Question create an internal procedure which takes input as a customer number and outputs the orders(include all fields of that Order) of that customer.

I am able to get how many Orders of the Customer (that is entered by user).
but am not able to get orders of that customer that should be return by internal procedure.


define variable iNum as integer no-undo.
define variable istatus as integer no-undo.
form
iNum label "enter the number" skip
with frame f
title "display customer number order number:".
update iNum with frame f.
run Proc1(input iNum ,output istatus).
display istatus label "Order of the Customer".


procedure Proc1:
define input parameter iNumber as integer no-undo.
define output parameter iOrder as integer no-undo.

for each Order no-lock where Order.CustNum = iNumber:
if available Order then
do:
iOrder = iOrder + 1.
end.
end.

end Procedure.
 
Last edited:

Osborne

Active Member
This is one option, but I am not sure if this is what you are referring to:
Code:
DEFINE TEMP-TABLE ttOrder NO-UNDO LIKE Order.

run Proc1(input 1 ,output table ttOrder).

FOR EACH ttOrder:
   DISPLAY ttOrder.Ordernum.
END.

procedure Proc1:
  define input parameter iNumber as integer no-undo.
  define output parameter table for ttOrder.

  EMPTY TEMP-TABLE ttOrder.

  for each Order no-lock where Order.CustNum = iNumber:
     create ttOrder.
     buffer-copy Order TO ttOrder.
  end.
end.
 
This is one option, but I am not sure if this is what you are referring to:
Code:
DEFINE TEMP-TABLE ttOrder NO-UNDO LIKE Order.

run Proc1(input 1 ,output table ttOrder).

FOR EACH ttOrder:
   DISPLAY ttOrder.Ordernum.
END.

procedure Proc1:
  define input parameter iNumber as integer no-undo.
  define output parameter table for ttOrder.

  EMPTY TEMP-TABLE ttOrder.

  for each Order no-lock where Order.CustNum = iNumber:
     create ttOrder.
     buffer-copy Order TO ttOrder.
  end.
end.
thank you very much Osborne
 
Top