過去の桐井戸端BBS (桐ver.9)
27473 一覧表形式フォームの明細繰り返し数を変数を使ったりして可変にしたい くもん 2004/08/25-17:37
Ver9 2004です。
一覧表形式フォームの明細繰り返し数を変数を使用るなどで可変に出来ませんでしょうか。
当該WFMで参照入力用データを表示しています。
データ数は1件から30件程度です。例えば表示データが9件までのときは、繰り返し数をデータ件数に、
10件以上の時は繰り返し数を10に設定したいと思います。

表示するデータは条件により絞り込んで使用し、当該WFMは繰り返し使用します。
表示するデータ件数が少ない場合でも大きい表示枠(繰り返し10)を表示するのを避けたいのです。
何かよい方法がありましたらご教授下さい。よろしくお願いします。
27474 Re:明細繰り返し数の制御 悲しげ 2004/08/25-23:11
記事番号27473へのコメント
>一覧表形式フォームの明細繰り返し数を変数を使用るなどで可変に出来ませ
>んでしょうか。

可変にすることの意義がいまいち腑に落ちなかったりしますけど(^^;)、
明細部の繰り返し数は、kevの「名札 メイン」で「オブジェクト操作」コマンドを使えば変更できます。
「名札 メイン」以外では、ちょっと試した限りではできないようでした。
とすれば、明細部の繰り返し数の変更は、フォームを開いた時だけしかできないようです。
それでもよいのであれば、例えば次のような感じでしょうか?

---- a.wfmのa.kevの記述 -------
・・・・・・
表 "b.tbl"
絞り込み ・・・・・
*↑「表示するデータは条件により絞り込んで使用」云々
* ここで組込変数 &選択件数 に値が入る筈
フォーム呼び出し "b.wfm",編集表=する
・・・・・
※ b.wfmの編集対象表はb.tblであるとします。

---- b.wfmのb.kevの記述 -------
名札 メイン
 if(0<&選択件数 .and &選択件数<10)
  オブジェクト操作 @フォーム明細部.表示行数=#str(&選択件数)
 else
  オブジェクト操作 @フォーム明細部.表示行数="10"
 end

・・・・・
※ 上記「@フォーム明細部」の「フォーム」は半角カタカナです。

27475 Re:明細繰り返し数の制御 kochin 2004/08/26-00:50
記事番号27473へのコメント
くもんさんこんにちは
kochinです。
同じく、桐9−2004です。
ちょっと興味があったので横からコメントさせて頂きます。

何の解決にもなっていませんが、フォーム開始イベントでも反応してくれました。

悲しげさんのおっしゃるとおり
一括処理コマンドリファレンスの
オブジェクト操作−設定コマンドのページには
「・つぎのオブジェクト属性は、変更できません。」の最後に、
この「表示対象行数」が書いてあります。

ちなみにこのページの先頭にこのコマンドによる変更は一時的な扱いである旨書いてあります。
(このことを知らないで、悲しげさんから、やんわりと教えて頂いたことがあります)

>表示するデータは条件により絞り込んで使用し、当該WFMは繰り返し使用します。

の部分が私も、どのようにお使いになるのかわかりませんが。

>当該WFMで参照入力用データを表示しています。

入力支援ボタンからのモーダルフォームで値を受け取ったり、
というような使い方をされるのであれば、
フォーム開始イベントでもお望みのことは可能なのではないでしょうか。
私が書いたイベントを下に記します。

グループ指定 一覧
項目集計 [集計する項目名]
if (&有効件数≦9)
   オブジェクト操作 @フォーム明細部.表示行数 =&有効件数
else
   オブジェクト操作 @フォーム明細部.表示行数 =10
end

メイン処理との違いは、編集対象表を開いた後なので
直接表をいじれることです。
冒頭に書いたとおり何の解決にもなっていませんが・・・。
グループ化しないでご使用であれば、グループ指定−一覧コマンドに変えて、
絞り込みをするなり、やって頂ければよろしいかと思います。
蛇足だと思いますが、集計する項目は未定義レコードの無い項目を使用するか
カウンタ型の項目を作りそれを集計させればよいかと思います。

27498 Re:明細繰り返し数の制御 くもん 2004/08/26-11:54
記事番号27475へのコメント
悲しげ様
kochin様
早速有益なコメントを戴き有難うございます。
まだ改善記述はしていませんが、間違いなく私の希望どおりだと喜んでいます。
なぜこんなつまらないことをとお思いのことでしょう。
参照データが少ないのに大きな表示枠はあまり見栄えがよくないとおもいますのと、
最初から繰り返し数を少なくしておくとコマンドボタンでジャンプさせて
参照データをさがす手間が多くなることからこんなことを考えました。
技量不足のため他によい方法が有るかも知れませんが、全体的にみると自分なりに気に入った物なのです。
(勿論皆様にご披露申し上げる様な代物では御座いませんが。)
有難うございました、今後もよろしくお願い致します。

27502 Re:明細繰り返し数の制御 悲しげ 2004/08/26-15:24
記事番号27498へのコメント
No.27498、くもんさん、
私なら繰り返し数(表示行数)は「実行数+1」の方が見易いので、
好んでそうしています。終端行が見えていれば一目瞭然でこれで全部
だと判るのですが、最終行までデータが入っていると、その次があるのか
否かが二目(?)瞭然となるので。ま、多分に好みの問題かも。

No.27475 kochinさん、
あ、「フォーム開始」イベントでも可能でしたか。

>メイン処理との違いは、編集対象表を開いた後なので
>直接表をいじれることです。

それも使いようによっては便利そうですね。ただ、

>項目集計 [集計する項目名]
>if (&有効件数≦9)
・・・・
>蛇足だと思いますが、集計する項目は未定義レコードの無い項目を
>使用するかカウンタ型の項目を作りそれを集計させればよいかと

これは、&有効件数で判断させているからそうなのであって、&件数
を使えば未定義値のある項目でも行数として拾ってくれる筈ですから、
特に項目にこだわる必要もないような・・・。


27541 Re:明細繰り返し数の制御 くもん 2004/08/29-20:25
記事番号27502へのコメント
悲しげ様いつも有難うございます。
実業数+1 有効便利な方法だと思い使用させて頂きます。
項目DT件数集計の件は私の場合0又は未定義の場合の受け皿を作っておりますので、
私の場合に限りましては、何も問題は御座いません。
お礼かたがたご報告まで。

27547 Re:明細繰り返し数の制御 kochin 2004/08/30-20:18
記事番号27502へのコメント
kochinです。

>これは、&有効件数で判断させているからそうなのであって、&件数
>を使えば未定義値のある項目でも行数として拾ってくれる筈ですか
>ら、特に項目にこだわる必要もないような・・・。

恥ずかしながら私、項目集計コマンドの&件数は
削除行の件数も拾うのだと、ずーっとずーっと信じていました・・・。

実際に検証してみましたが、悲しげさんのおっしゃるとおり、&件数による判断で
集計に使用する項目は何でもOKでした。
勉強になりました、ありがとうございました。

27548 Re:明細繰り返し数の制御 悲しげ 2004/09/01-12:25
記事番号27547へのコメント
ちなみに、単に件数を拾うだけなら、#総件数を使った方が速いです。

戻る