| 2018/09/15(Sat) 13:52:44 編集(投稿者)
>>フォーム編集で行集計というのは相性が悪い > 「相性が悪い」ってどう悪いのですか? > ボタンには無いけど
ボタンの機能にない理由ですが…
たぶん…
コマンドボタンを実行したら、何かをするというのは簡単です。
しかし、編集対象表があるフォームを行集計状態に遷移させるのは無理なんですよ。
確かめる方法は簡単です。
フォーム編集から、表編集に遷移します。
表編集の状態で行集計を実行します。
すると、表編集からフォーム編集には遷移できません。
そして、表編集から別のフォームを選ぶことも出来ません。
ということで、フォーム編集で行集計というのは相性が悪いんです。
これってDOS桐の時からそうなんです。
ところが、一般手続きを実行すると、行集計が出来ちゃうんですね。
(例)
手続き定義開始 cmdTestClick( )
行集計条件登録 条件名="",並べ替え=しない,総計{[日付]#件数} 行集計 条件名=""
手続き定義終了
これって、無理やり許可しているのような、そうでもないような、実によくわからない状態なんですね。
フォーム編集では、会話操作と、コマンドボタンの機能名では、行集計できないが、
一般手続きでは、行集計出来ちゃうんですね。
ただし、[解除]または[すべて解除]しないと何も出来ませんから、使い易い状態ではありません。
従って、もしも行集計が必要ならば、別の表に書き出すとか、多重化するとかして、
別の表で表示するのがいいだろうと思うんですね。
<蛇足>
名札 メイン
*
手続き定義開始 cmd一覧表印刷Click( ) 変数宣言 自動,整数{ &tblNumber }
多重化 &tblNumber = #is表
行集計 条件名 = "行集計01", データ行 = 無効 一覧表印刷 条件名 = "印刷01", プレビュー = する
終了 表 &tblNumber
手続き定義終了
↑上の例では [多重化] ... [終了 表 &tblNumber] の範囲で
・行集計 ・一覧表印刷
を行っています。
一方、多重化したために、フォームで行っている絞込みが解除されると都合が悪い場合もあります。
その場合には、データと枠組みをディスクに書き出して、それらを使って
・行集計 ・一覧表印刷
を行えばいいです。
なお、枠組みを書き出すのは、条件名を使いたいからです。
要は、フォームの編集対象表(多重化した表を除く)ではない表なら何でもOKなんです。
[多重化]または[書き出し]で大体のことに対応可能です。お試しあれ。
<参考>
手続き定義開始 cmd一覧表印刷Click( ) 変数宣言 自動,文字列{ &tblStructure, &tblName } 変数宣言 自動,整数{ &tblNumber }
書き出し 表, &tblName
書き出し 枠組み, &tblStructure
表 &tblStructure &tblNumber = #is表
読み込み 表, &tblName, *
行集計 条件名 = "行集計01", データ行 = 無効 一覧表印刷 条件名 = "印刷01", プレビュー = する
終了 表 &tblNumber
手続き定義終了
|