problem with code

mkpjsrmkpjsr Member Posts: 587
Hi All,

I have created a table Called "Create Schedule" with the following fields:

Field No. Field Name Data Type Length Description
50001 No. Code 10
50002 Part No. Text 30
50003 Description Text 50
50004 Schedule Quantity Decimal
50005 Schedule Date Date
50006 Schedule Month Option
50007 Schedule Year Option
50008 Remarks Text 200


Now i am creating a report that has two data items,
Item and "Create Schedule". I have set Required Filters property of Item table as No.
and "Schedule Month" and "Schedule Year" of "Create Schedule" Table as required filter.
Now, I want to calculate the Schedule Quantity for the filtered item, month and year but the filter is not working and i am getting the sum of all items from Create Schedule Table.

Globals I have used:

ItemRec->Record->Item
SchQty->Decimal

"Create Schedule".RESET;
"Create Schedule".SETFILTER("Create Schedule"."Part No.",ItemRec.GETFILTER("No."));
"Create Schedule".SETFILTER("Create Schedule"."Schedule Month","Create Schedule".GETFILTER("Schedule Month"));
"Create Schedule".SETFILTER("Create Schedule"."Schedule Year","Create Schedule".GETFILTER("Schedule Year"));

IF "Create Schedule".FIND('-') THEN
REPEAT
SchQty:=SchQty+"Create Schedule"."Schedule Quantity";
UNTIL ("Create Schedule".NEXT=0);

MESSAGE('%1',SchQty); // showing whole quantity

What is wrong with the filter code, can anybody suggest me.

Answers

  • JedrzejTJedrzejT Member Posts: 267
    Hi,

    For first., do you set "DataItemLink" property for second dataitem and Indent it?
    If yes, then you dont need filter "create shedule" second time in code
    "Create Schedule".SETFILTER("Create Schedule"."Part No.",ItemRec.GETFILTER("No."));
    replace with
    "Create Schedule".SETFILTER("Create Schedule"."Part No.",ItemDataitemName."No.");
    
    I gues ItemRec - is not name of the first dataitem (item)? Then IremRec has always GetFilter("No.") - empty - and you have sum for all.

    Dont use GETFILTER in filter expression - this will always set filter for "No." set in request form - not for actual proccesing item in report.

    but again - you dont have to filter in code - use standard functionality for it
    For Calculate sum use Currrepor.CREATOTALS function - in OnAfter in "CreateShedule" - dataitem
  • SavatageSavatage Member Posts: 7,142
    fyi
    IF 50001 No. Code 10
    Where No. is related to Item."No." then think about changing the length to 20 just like the item."no." length so you have no future issues.
  • mkpjsrmkpjsr Member Posts: 587
    Savatage wrote:
    fyi
    IF 50001 No. Code 10
    Where No. is related to Item."No." then think about changing the length to 20 just like the item."no." length so you have no future issues.

    its no item no, its record no.
Sign In or Register to comment.