0

コントロールキーを実行して、ブラウズ内で選択された行の数と、選択されたすべての行の一時テーブルからの合計数量を表示する Progress-4gl でブラウズを使用しようとしています。行の総数を簡単に取得できましたが、作成した一時テーブルから合計数量を取得しようとすると、最後に選択した行の値しかありません。選択した行から for each を実行するにはどうすればよいですか? ブラウズ用にいくつかのコードを次に示します。

on CTRL-L of browse-1 in frame a do:
   assign buf-cnt = 0.
   /***  FOR EACH BROWSE RECORD SELECTED **/
       assign jqty = jqty + int(tt.tt-qty).
   assign jlines = browse-1:num-selected-rows.
  display
       jlineslabel "Selected Number Of Lines"
       jqtylabel "Quantity Of All Lines"
       with frame fselect down row 5 centered overlay.
  pause.
end. /* on CTRL-L */
4

2 に答える 2

1

疑問に思っている人のために...

on CTRL-L of browse-1 in frame a do:
 assign buf-cnt = 0
        jqty = 0.
 do x = 1 to browse-1:num-selected-rows:
   stat = browse-1:fetch-selected-row(x).
   for each usrw_wkfl no-lock where
            usrw_wkfl.usrw_key1 = "862" and
            entry(1,usrw_wkfl.usrw_key2) = tt.tt-part and
            usrw_wkfl.usrw_key4 = tt.tt-dest and
            usrw_wkfl.usrw_key3 = tt.tt-duedate and
            usrw_wkfl.usrw_charfld[3] = tt.tt-qty:
      assign jqty = jqty + int(tt.tt-qty).
   end. /* for each usrw_wkfl */
 end. /* do x = 1 to browse-1 */
 assign jlines = browse-1:num-selected-rows
        jtotal = browse-1:query:num-results.
 display
      jlines         column-label "Selected Number!Of Lines"
      jtotal         column-label "Total Number!Of Lines"
      jqty           column-label "Quantity Of!All Lines"
      with frame fselect down row 5 centered overlay.
 pause.

終わり。/* CTRL-L で */

于 2012-09-10T16:27:58.783 に答える
0

私が質問を正しく理解していれば、ブラウズに関連付けられているクエリ ハンドルの num-results 属性が必要になる可能性があります。これは、browse-1:query になります。そう:

jqty = browse-1:query:num-results.
于 2012-09-10T15:29:14.923 に答える