2016-11-28 6 views
0

顧客番号を受け入れて、各注文とアイテムの詳細をエディタウィジェットに出力します。 エディタウィジェット(editor-1をオブジェクト名として表示)に表示します。進捗状況を使用して結果フィールド値をエディタウィジェットに表示する方法4gl

define temp-table ttcustomer 
field custnum like customer.cust-num 
field cname like customer.name 
field orders like order.order-num 
field items like item.item-num 
field itemname like item.item-name . 


find first customer WHERE customer.cust-num = input f1 NO-LOCK . 

create ttcustomer . 

    assign 
    ttcustomer.custnum = customer.cust-num 
    ttcustomer.cname  = customer.name. 



for each order WHERE Order.cust-num = input f1 NO-LOCK . 

    assign 
    ttcustomer.orders = order.order-num. 

    for each order-line where order-line.order-num = order.order-num no-lock. 


    for each item where item.item-num = order-line.item-num no-lock. 

    assign 
    ttcustomer.items = item.item-num 
    ttcustomer.itemname = item.item-name. 
    end. 
    end. 
end. 

答えて

0

なぜそれをエディタに表示したいのかわかりません。ですから、各ループのために集めた情報をエディタに連結したいとします。 だから、最後の終了後に、あなたはこれを行うことができます:CHR(13)がラインをスキップするように動作しない場合は、CHR(10)を試す

define variable editor-1 as character view-as editor. 
for each ttcustomer: 
    assign editor-1 = editor-1 + ttcustomer.items + ' ' + ttcustomer.itemname + chr(13). 
end. 
display editor-1. 

。 PS:エディタは実際にはこれを表示したいウィジェットではないでしょう。私はブラウズを使うだろう。しかし、この質問はエディタを求めているので、そこにある。 PS2:テンポラリテーブルに置いた他のフィールドを割り当てなかったので、私はそれらを表示しません。しかし、スペース、ダッシュ、またはセパレータとして使用したいものを忘れずに、上記のアサイン行に追加するだけです。

+0

あなたが言ったコードを使ってみましたが、私は割り当てようとしているところで、ttcustomerテーブルを更新できないというエラーが表示されています。 – sri

+0

あなたのコードを読んでいました。あなたがこれを行うには、Progressの構文とコマンドが少しうまくいくかを理解する必要があります。 最初に、最初にttcustomerを作成すると、1つのレコードが作成されます。各注文ループの中の後続の割り当ては、以前の値を上書きします。アイテムにも同じように、ループ内でサイクリングしている人の数にかかわらず、1つのレコードになります。 一時テーブルについて少し調べてから、情報を連結してください。可能であれば、いくつかのチュートリアルや正式なトレーニングに従ってください。 – bupereira

+0

ありがとう@bupereira :) – sri