(現在 過去ログ75 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■11426 / inTopicNo.1)  フォームのコマンドボタンを押したら、行集計を一覧表印刷のプレビューを表示する
  
□投稿者/ なんでやねん -(2018/09/13(Thu) 18:38:49)
    初めまして。よろしくお願いします。
    桐9を使っています。

    フォームのコマンドボタンを押したら、

    対象となっているtblの集計に登録してある“行集計01”を実行。
    行集計実行後、集計行のみを表示。
    一覧表印刷の“印刷01”のプレビューを表示する。

    ということは出来ないものかと思っています。
    イベントなどよくわからないのですが、よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■11427 / inTopicNo.2)  Re[1]: フォームのコマンドボタンを押したら、行集計を一覧表印刷のプレビューを表示する
□投稿者/ ONnoji -(2018/09/13(Thu) 20:37:24)
    2018/09/13(Thu) 21:36:17 編集(投稿者)
    2018/09/13(Thu) 21:28:32 編集(投稿者)
    2018/09/13(Thu) 20:59:18 編集(投稿者)
    2018/09/13(Thu) 20:40:25 編集(投稿者)

    > フォームのコマンドボタンを押したら、
    >
    > 対象となっているtblの集計に登録してある“行集計01”を実行。
    > 行集計実行後、集計行のみを表示。
    > 一覧表印刷の“印刷01”のプレビューを表示する。

    一覧表印刷のプレビューをしたいということですね。

    イベント処理のプログラミングに慣れている人にとっては、これは実に簡単です。

    ただし、フォーム編集で行集計というのは相性が悪いので、フォームの編集対象表を多重化します。

    1.フォームの編集対象表を多重化した表で

    2.行集計して、

    3.一覧表印刷でプレビューします。

    4.そして、多重化した表を閉じる。

    慣れていれば、実に簡単な一般手続きを使用したプログラム処理なのですが、

    残念ながら、これはコマンドボタンの機能だけでは実現できません。

    ということで、いきなり敷居が高くなりますが、イベント処理の一般手続きが必要になりますよ。

    とりあえず、桐9の適当なサンプルデータを利用してデモフォームを作ってみました。

    ※C:\K3\KIRIV9\Sample\例題\表リファレンス\試験1年.TBL

    なお、説明は非常に大変なので省略させていただきます。

    とりあえず出来るということを実感していただくだけになりますが、添付ファイルのフォームを開いてみてください。


    <参考>

    名札 メイン



    手続き定義開始 cmd一覧表印刷Click( )
     変数宣言 自動,整数{ &tblNumber }

     多重化
     &tblNumber = #is表

     行集計 条件名 = "行集計01", データ行 = 無効
     一覧表印刷 条件名 = "印刷01", プレビュー = する

     終了 表 &tblNumber

    手続き定義終了








1536838644.zip
/21KB
引用返信 [メール受信/OFF] 削除キー/
■11428 / inTopicNo.3)  Re[2]: フォームのコマンドボタンを押したら、行集計を一覧表印刷のプレビューを表示する
□投稿者/ ONnoji -(2018/09/13(Thu) 21:46:59)

    > なお、説明は非常に大変なので省略させていただきます。
    >
    > とりあえず出来るということを実感していただくだけになりますが、添付ファイルのフォームを開いてみてください。

    イベント処理によるプログラミングの基本情報は桐9 のヘルプに収録されています。

    ご一読して、実際に試してみることをお勧めします。



795×448 => 250×140

1536842819.jpg
/76KB
引用返信 [メール受信/OFF] 削除キー/
■11430 / inTopicNo.4)  Re[2]: フォームのコマンドボタンを押したら、行集計を一覧表印刷のプレビューを表示する
□投稿者/ ねむねむ -(2018/09/14(Fri) 11:27:53)
    No11427に返信(ONnojiさんの記事)
    > 2018/09/13(Thu) 21:36:17 編集(投稿者)
    > 2018/09/13(Thu) 21:28:32 編集(投稿者)
    > 2018/09/13(Thu) 20:59:18 編集(投稿者)
    > 2018/09/13(Thu) 20:40:25 編集(投稿者)
    >
    >>フォームのコマンドボタンを押したら、
    >>
    >>対象となっているtblの集計に登録してある“行集計01”を実行。
    >>行集計実行後、集計行のみを表示。
    >>一覧表印刷の“印刷01”のプレビューを表示する。
    >
    > フォームのコマンドボタンを押したら、
    >
    > 対象となっているtblの集計に登録してある“行集計01”を実行。
    > 行集計実行後、集計行のみを表示。
    > 一覧表印刷の“印刷01”のプレビューを表示する。

    履歴の一括処理に手を加えてできるのではないかなと思いサンプルを
    添付しました。一括処理の作成およびフォームのボタンの設定は以下の通りです。


    1)まず履歴登録で一括処理ファイルを作成します。
     対象のtblファイルを開いて履歴登録で、
      1.行集計
      2.集計行のみ表示
      3.解除
     の順に登録して終了する。

    2)登録した履歴は、ユーザー名.CMDと名で作成されますので、処理がわかる名前などに
      ファイル名を変えます。(添付したサンプルふぁいるでは、集計行一覧.CMDとしました)

    3)一括処理ファイルを編集します。

      一覧表印刷 条件名="登録してある一覧表印刷名" 
      使用フォーム "売上げ伝票"
      フォーム表示
      
      のコマンドを追加し、終了します。


    4)フォームのボタンに
      機能名  |  機能パラメーターリスト
      ――――――――――――――――
       開く  |  "集計行一覧.CMD"

     を設定します。

     以上です。詳細は添付したファイルを確認して下さい。

     ただし、フォームに戻ったとき、データが先頭になってしまいますが、
     ボタンをクリックした位置に戻るには変数で行番号を覚えさせておかないと
     いけませんがとりあえずそこは考えずに作ってみました。


1536892073.zip
/13KB
引用返信 [メール受信/OFF] 削除キー/
■11431 / inTopicNo.5)  Re[3]: フォームのコマンドボタンを押したら、行集計を一覧表印刷のプレビューを表示する
□投稿者/ ONnoji -(2018/09/14(Fri) 11:38:54)
    2018/09/14(Fri) 11:46:15 編集(投稿者)

    横レスで大変失礼。m(__)m

    さて老婆心ながらですが…

    コマンドボタンの機能名:開くで一括処理を開く場合、副作用が発生する場合があることが判っています。

    詳しくは、

    フォームで起動時にメッセ−ジ表示 / hiro (18/06/30(Sat) 06:12) #11276

    のスレッドを参照してください。

    なお、一応該当部分を以下に引用しておきます。

    【引用】■11279 フォームで起動時にメッセ−ジ表示 □投稿者/ ONnoji -(2018/06/30(Sat) 11:29:46)
    >>フォーム( .wfx )のコマンドボタンを押したときに既定の処理を実行する場合、
    > >
    >>コマンドボタンの[マウス左クリック]イベントではなく、コマンドボタンの機能名:手続き実行を利用します。
    > >
    >>× コマンドボタンの機能名:開く         → 一括処理
    >>△ コマンドボタンの[マウス左クリック]イベント → イベントハンドラ
    >>○ コマンドボタンの機能名:手続き実行      → 一般手続き名
    > >
    >>この場合には、一括処理を開くのではなく、※イベント処理と一括処理のチャンポンは混乱するのでお勧めしません。
    > >
    >>フォーム( .wfx )に対応するイベント( .kex )に記述されたプロシージャ:手続きをコマンドボタンの機能名:手続き実行で呼び出します。
    > >
    >>従って、フォーム( .wfx )に対応するイベント( .kex )が必須になります。
    >
    >
    > ・一括処理は一括処理から実行する
    > ・イベント処理はフォームを開いて実行する
    >
    > このどちらにも当てはまらないものがある。
    >
    > 1.会話処理でフォームを開いて、コマンドボタンの機能名:開く で一括処理を実行する
    >
    >  または
    >
    > 2.一括処理でフォームを開いて、コマンドボタンの機能名:開く で一括処理を実行する
    > ※↑2の場合にはどうやってもコマンドボタンが実行できないようです…(^^ゞ
    >
    > 1.のように確かにコマンドボタンの機能名:開く で一括処理 を実行できる。
    >
    > しかし、一括処理に[表形式編集]コマンドが含まれている場合、一括処理が停止してしまうことが判っている。
    >
    >  ◇ ◇ ◇ ◇
    >
    > 人それぞれに意見が異なるだろうと思いますが、
    >
    > 私( ONnoji )は、イベント処理と一括処理のチャンポンは止めた方がよいと考えています。
    >
    > <理由>
    >
    > ・Windows ではフォームを使ったイベントドリブンのプログラミングが一般的である。
    >
    > ・一括処理は、Dos桐のプログラミングスタイルである。※対話処理をしない純粋なバッチ処理ならばOK
    >
    > ・二兎を追う者のは一兎も得ず。※イベント処理と一括処理の両方の知識を持つ必要ない



引用返信 [メール受信/OFF] 削除キー/
■11432 / inTopicNo.6)  Re[4]: フォームのコマンドボタンを押したら、行集計を一覧表印刷のプレビューを表示する
□投稿者/ ねむねむ -(2018/09/14(Fri) 12:02:26)
    >>人それぞれに意見が異なるだろうと思いますが、
    >>
    >>私( ONnoji )は、イベント処理と一括処理のチャンポンは止めた方がよいと考えています。
    >>
    >><理由>
    >>
    >>・Windows ではフォームを使ったイベントドリブンのプログラミングが一般的である。
    >>
    >>・一括処理は、Dos桐のプログラミングスタイルである。※対話処理をしない純粋なバッチ処理ならばOK
    >>
    >>・二兎を追う者のは一兎も得ず。※イベント処理と一括処理の両方の知識を持つ必要ない
    >

    確かにその通りですね。勉強になります。
引用返信 [メール受信/OFF] 削除キー/
■11433 / inTopicNo.7)  Re[5]: フォームのコマンドボタンを押したら、行集計を一覧表印刷のプレビューを表示する
□投稿者/ なんでやねん -(2018/09/14(Fri) 17:10:06)
    ONnojiさん、ねむねむさん、ありがとうございます。

    ONnojiさんのサンプルを元にして、無事うまくできました。感謝です。

    ねむねむさんの方法でも以前トライしていましたが、
    > 2.一括処理でフォームを開いて、コマンドボタンの機能名:開く で一括処理を実行する
    > ※↑2の場合にはどうやってもコマンドボタンが実行できないようです…(^^ゞ
    >
    が原因だと思いますが、出来ずにいました。

    イベントの書き方は未だによくわかっていませんが、少しずつ勉強していきます。

    ありがとうごじあました。

解決済み!
引用返信 [メール受信/OFF] 削除キー/
■11434 / inTopicNo.8)  Re[2]: フォームで行集計
□投稿者/ 尾形 -(2018/09/15(Sat) 04:07:26)
    どうも、こんにちは


    > フォーム編集で行集計というのは相性が悪い

    「相性が悪い」ってどう悪いのですか?

    ボタンには無いけど

引用返信 [メール受信/OFF] 削除キー/
■11435 / inTopicNo.9)  Re[3]: フォームで行集計
□投稿者/ ONnoji -(2018/09/15(Sat) 10:21:06)
    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

    手続き定義終了



引用返信 [メール受信/OFF] 削除キー/
■11438 / inTopicNo.10)  Re[4]: フォームで行集計
□投稿者/ 尾形 -(2018/09/15(Sat) 18:05:33)
    どうも、こんにちは


    > すると、表編集からフォーム編集には遷移できません。
    > そして、表編集から別のフォームを選ぶことも出来ません。

    よく分かりませんが
    表編集とフォーム編集で行き来できないから
    相性が悪いという事でしょうか?





引用返信 [メール受信/OFF] 削除キー/
■11440 / inTopicNo.11)  Re[4]: フォームで行集計
□投稿者/ 尾形 -(2018/09/15(Sat) 18:19:01)
    「項集計」とかもボタンには無いけど
    コマンドだと可能ですよね


    相性が悪いとかではなく
    わたし的に、表としての機能なんじゃないかと
    勝手に想像してます


    ボタンに無くて、コマンドだけの機能って色々ありますよね


    だから、わざわざ多重化とかしなくてもいいんじゃないのかな
    という疑問でした


引用返信 [メール受信/OFF] 削除キー/
■11441 / inTopicNo.12)  Re[5]: フォームで行集計
□投稿者/ ONnoji -(2018/09/15(Sat) 18:25:19)
    > ボタンに無くて、コマンドだけの機能って色々ありますよね
    > だから、わざわざ多重化とかしなくてもいいんじゃないのかな
    > という疑問でした

    初級者の質問に対するサンプルなので、成り行きで多重化を使いました。

    行集計を解除するのが面倒なので、ただそれだけの意味しかないですよ。


引用返信 [メール受信/OFF] 削除キー/
■11442 / inTopicNo.13)  Re[6]: フォームで行集計
□投稿者/ ONnoji -(2018/09/15(Sat) 18:26:40)
    > よく分かりませんが
    > 表編集とフォーム編集で行き来できないから
    > 相性が悪いという事でしょうか?

    相性云々というのは、あくまでも私の個人的な感想です。

    プログラムの作り方は自由ですから、フォーム編集のままで、一般手続きによって行集計状態にしても当然構いません。

    しかし、いったん行集計すると解除という操作が必要になるので、わずらわしいです。

    また、行集計は、表編集で許可されていて、フォーム編集では許可されていないのですから、

    素直に、それに従うのを良しとしているだけですよ。

    以上、すべて私の個人的な感想です。
引用返信 [メール受信/OFF] 削除キー/
■11444 / inTopicNo.14)  Re[7]: フォームで行集計
□投稿者/ ONnoji -(2018/09/15(Sat) 18:38:44)
    2018/09/15(Sat) 18:39:17 編集(投稿者)

    > 相性が悪いとかではなく
    > わたし的に、表としての機能なんじゃないかと
    > 勝手に想像してます

    同感です。私も行集計は表編集の場合の機能だと思いますよ。

    例えば、グループ化されていたフォームなんかですと、行集計できると困るでしょうね。

    > ボタンに無くて、コマンドだけの機能って色々ありますよね

    コマンドボタンの機能の有無よりも、メニューバー(ファンクションバー)に当該機能があるかを重視したのです。

    メニューバー(ファンクションバー)に無いことを、やっちゃっていいのかな?、と一抹の不安もあるのです。


引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -