Copy Finished Production Order to a new Production Order

tompynationtompynation Member Posts: 398
Hi, i created a new function in the Finished production order which creates a new Production Order from the Finished Order.
This will be used when the production has failed...

So the copying works just fine but i have a question about showing the newly created Order.

IF CONFIRM(Text001) THEN BEGIN
lv_ProdOrder.INIT;
lv_ProdOrder.VALIDATE(Status,lv_ProdOrder.Status::Planned);
lv_ProdOrder.VALIDATE("No.",'');
lv_ProdOrder.INSERT(TRUE);

lv_ProdOrder."Source Type" := lv_ProdOrder."Source Type"::Item;
lv_ProdOrder.VALIDATE("Source No.",Rec."Source No.");

lv_ProdOrder.VALIDATE(Quantity,Rec.Quantity);
lv_ProdOrder.MODIFY;

// Aanmaken van Product Order Line
ProdOrder.SETRANGE(Status,lv_ProdOrder.Status);
ProdOrder.SETRANGE("No.",lv_ProdOrder."No.");
REPORT.RUNMODAL(REPORT::"Refresh Production Order",FALSE,TRUE,ProdOrder);
COMMIT;

IF CONFIRM(Text002,FALSE,lv_ProdOrder."No.") THEN BEGIN
lv_ProdOrder1.RESET;
lv_ProdOrder1.SETRANGE("No.",lv_ProdOrder."No.");
lv_ProdOrderForm.SETTABLEVIEW(lv_ProdOrder1);
lv_ProdOrderForm.RUN;
END;

END;

The problem is the part in BOLD.
After the Order has been created i ask the user if he would like to see the new Order now...
So with this code this works fine..

But when he is viewing the new order then There is a table Filter on the "No." due to the TABLEVIEW
So he has to remove this filter before he is able to view the other "Planned Production Orders".

And i dont like that... Isnt itn possible to just open the form displaying the newly created order.
But without a filter on the Form? So that he can navigate through all the "Planned Orders" without having the users to remove a filter ? :x

Answers

  • kapamaroukapamarou Member Posts: 1,152
    Try:
    IF CONFIRM(Text002,FALSE,lv_ProdOrder."No.") THEN BEGIN
    lv_ProdOrder1.RESET;
    lv_ProdOrder1.SETRANGE("No.",lv_ProdOrder."No.");
    IF lv_ProdOrder1.FINDFIRST THEN BEGIN
      lv_ProdOrderForm.SETRECORD(lv_ProdOrder1);
      lv_ProdOrder1.SETRANGE("No.");
    END;
    lv_ProdOrderForm.SETTABLEVIEW(lv_ProdOrder1);
    lv_ProdOrderForm.RUN;
    END;
    
  • kapamaroukapamarou Member Posts: 1,152
    Think about the filters though...


    Maybe you want
    lv_ProdOrder1.SETRANGE("No.");
    

    outside the IF block or the
    lv_ProdOrderForm.SETTABLEVIEW(lv_ProdOrder1);
    lv_ProdOrderForm.RUN;
    

    inside the IF block...
  • tompynationtompynation Member Posts: 398
    allright that code solved it. Is there any difference between:

    IF CONFIRM(Text002,FALSE,lv_ProdOrder."No.") THEN BEGIN
    lv_ProdOrder1.RESET;
    lv_ProdOrder1.SETRANGE("No.",lv_ProdOrder."No.");
    IF lv_ProdOrder1.FINDFIRST THEN
    BEGIN
    lv_ProdOrderForm.SETRECORD(lv_ProdOrder1);
    lv_ProdOrderForm.RUN;
    END;
    END;

    And:


    IF CONFIRM(Text002,FALSE,lv_ProdOrder."No.") THEN BEGIN
    lv_ProdOrder1.RESET;
    lv_ProdOrder1.SETRANGE("No.",lv_ProdOrder."No.");
    IF lv_ProdOrder1.FINDFIRST THEN
    BEGIN
    lv_ProdOrderForm.SETRECORD(lv_ProdOrder1);
    lv_ProdOrder1.SETRANGE("No.");
    lv_ProdOrderForm.SETTABLEVIEW(lv_ProdOrder1);
    lv_ProdOrderForm.RUN;
    END;
    END;
Sign In or Register to comment.