1

データウィンドウにデータを入力しています。列名には、「リクエスト番号」、「ステータス」などがあります。

「ステータス」列には、「保留中」、「アクティブ」、「期限切れ」などの値を含めることができます。

データウィンドウが読み込まれるたびに、PowerBuilder で「アクティブ」ステータスになっているレコードの数をカウントしたいと考えています。

レコードの数を取得したら、その数を静的テキストに入力します。

私は PowerBuilder を初めて使用するので、これを達成する方法を教えてください。

ありがとう

4

2 に答える 2

4

これで答えが得られますが、PowerBuilder 開発者が「Tilde Hell」として知っていることを紹介します。

ll_Count = Long (dw.Describe ("Evaluate('sum (if((status = ~~~"Active~~~"),1,0))',1)"))

チルダの狂気は、文字列評価の各レベルが次の評価のために式を要約するものと関係があります。(~~ は ~ に、~" は " に要約されます。これは、文字列が二重引用符で囲まれている場合に便利です)

Evaluate(<expression>, <row>)inside aは、指定された行Describe()の値を返します。<expression>(完全なデータセット全体で機能<row>する操作とは無関係であるため、sum()必要なことは、それが有効な行であること、つまりこの例では少なくとも 1 つの行があることを確認することだけです。)

幸運を、

テリー。

于 2012-06-04T15:18:01.967 に答える
3

1 つの解決策は、条件を使用して DW データをフィルター処理し、行数を取得することです。

何かのようなもの:

dw_ctrl.SetFilter("status='Active'")
dw_ctrl.Filter()
ll_count = dw_ctrl.RowCount()
//...
//don't forget to reset filter after that
dw_ctrl.SetFilter("")
dw_ctrl.Filter()
于 2012-06-04T08:55:12.210 に答える