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

■15107 / 親記事)  一括処理について
  
□投稿者/ キリマンジャロ -(2025/09/16(Tue) 16:19:29)
    WIN11、桐10S使用です
    いつもお世話になっております

    一括処理で分からい事があり質問させていただきます。




    表 "W36仕入印刷"
    *
    終了

    と、一度すべての表を閉じてから、また"W36仕入印刷"
    を開いた状態で一括処理を終えたいと考えております。

    表 "W36仕入印刷"で表を画面に表示させた状態で
    一括処理を終わりたいと考えておりましたが、表示できません。

    お忙しいところ恐縮ですが分かる方いましたら、よろしくお願いします。

引用返信 [メール受信/OFF] 削除キー/
■15109 / ResNo.1)  Re[1]: 一括処理について
□投稿者/ まさやん -(2025/09/16(Tue) 18:33:49)
    2025/09/21(Sun) 12:49:43 編集(投稿者)
    2025/09/16(Tue) 21:21:59 編集(投稿者)
    2025/09/16(Tue) 21:19:14 編集(投稿者)

    >
    > 表
    > 表 "W36仕入印刷"

    表形式編集 ・・・・・・

    > ・

    > *
    > 終了
    >

    > 表 "W36仕入印刷"で表を画面に表示させた状態で
    > 一括処理を終わりたいと考えておりましたが、表示できません。

    表形式編集  コマンドを 書き入れる

    が 目的に合っているかどうかは判りませんが・・


    表 "W36仕入印刷"

    だけでは この表を 使います と宣言するだけで
    表を表示するわけではありません

    表形式編集 プラス パラメータが必要です
    表形式編集 のコマンド 詳しくは ヘルプを参照にしてください

    表表示 というコマンドも あります 詳しくはヘルプを
引用返信 [メール受信/OFF] 削除キー/
■15110 / ResNo.2)  Re[1]: 一括処理について
□投稿者/ ジェダイの桐 -(2025/09/17(Wed) 09:29:20)
    2025/09/17(Wed) 09:34:39 編集(投稿者)
    2025/09/17(Wed) 09:34:18 編集(投稿者)
    2025/09/17(Wed) 09:32:45 編集(投稿者)
    2025/09/17(Wed) 09:30:13 編集(投稿者)

    キリマンジャロさん


    おはようございます!
    回答ではありませんが・・・

    > 終了

    ヘルプを見てみました。

     表もフォームも開いていない状態で一括処理を実行した場合は、一括処理を終了する前に、表の更新結果を保存して、使用したファイルとウィンドウをすべて閉じます。
     表またはフォームを開いた状態で一括処理を実行した場合は、一括処理だけを終了します。

    自分は一括処理を使った事がないから、ハッキリとは分からないのですが、
    一括処理使用時の表状態( 開いている or 閉じている )で 終了コマンド の結果が変わるみたいですね。

    表 "W36仕入印刷" この表が開いた状態にならないのであれば、
    表が閉じた状態で、一括処理を使っているのでしょうか??


    ○○.CMX を開く所がスタートなんですかね??


引用返信 [メール受信/OFF] 削除キー/
■15111 / ResNo.3)  Re[1]: 一括処理について
□投稿者/ ONnoji -(2025/09/17(Wed) 09:59:08)
    2025/09/17(Wed) 12:59:57 編集(投稿者)

    > WIN11、桐10S使用です
    >
    > 一括処理で分からい事があり質問させていただきます。
    > ・
    > 表
    > 表 "W36仕入印刷"
    > *
    > 終了
    >
    > 表 "W36仕入印刷"で表を画面に表示させた状態で
     ・・・・・・・・・・・・・・・・・・・・・・
    > 一括処理を終わりたいと考えておりましたが、表示できません。
     ・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    一括処理を終わらせるという事は、一括処理で実行したコマンドの会話処理を終わらせるという事です。

    従って、"W36仕入印刷" を会話状態で画面に残して置くことは出来ないと思いますよ。

    一括処理というのは、「フロー駆動」型のプログラミングなので、

    フロー(つまり、一括処理ファイル(.cmx))に書かれていない事は出来ないですよ。たぶんね。(^^ゞ
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    (例)


    表 "W36仕入印刷"

    ** 表形式編集コマンドを実行しても一括処理は終了していない
    表形式編集 画面消去 = しない /* 一括処理は終了していない */

    ** ウィンドウ作成⇒ウィンドウ会話コマンドを実行しても一括処理は終了していない
    ウィンドウ作成 表,ハンドル = &実行リターン /* 一括処理は終了していない */
    ウィンドウ会話 &実行リターン         /* 一括処理は終了していない */

    終了 /* 終了コマンド、または一括処理の最終行超えた時に一括処理は終了する */


    p.s.

    老婆心ながら・・・(^^ゞ

    一括処理というのは、「フロー駆動」型のプログラミングですが、

    「フォーム+イベント処理」という「イベント駆動」型は、フォームが開いている間は「イベント発生」待ちのアイドリング状態です。
                               ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    従って、「開く」ダイアログで開いた表(tbx)やフォーム(.wfx)は、「フォーム+イベント処理」のフォームが閉じても、開いたままですよ。
                                   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    しかし、一括処理に慣れている人にとっては、

    「フォーム+イベント処理」という「イベント駆動」型のプログラミングは慣れないので超難しいハズです。

    この超難しさは、すべてをフロー・流れ(つまり、一括処理ファイル(.cmx))に書くという行為に慣れているために発生します。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・


    しかし、「フォーム+イベント処理」の場合には、必要な動作をコマンドボタンの機能で作るだけで済みますし、必要ならばイベントハンドラも利用できます。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    つまり、両者は180度反対方向のプログラミングスタイルなので、
        ・・・・・・・・・・・・・・・・・・・・・・・

    従来通りに一括処理を作り続けるならば、頭の切り替えが出来なくて「フォーム+イベント処理」へ進むことは難しいですよ。

    p.p.s.

    > つまり、両者は180度反対方向のプログラミングスタイルなので

    一括処理というのは、すべてのフロー・流れを作者が作り出すことです。

    一方、「フォーム+イベント処理」というのは、この機能が欲しいなと思った時に機能を追加していくスタイルです。

    例えてみれば、一括処理の作者はすべてを統べるのですから「天地を創造する万能の神」と同じです。
           ・・・・・・・・・・・・・・・

    一方、「フォーム+イベント処理」の作者は、「必要な機能」を必要な時に実行するようにフォームの仕掛けを作る人です。
                         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    なお、「フォーム+イベント処理」という「イベント駆動」型は、フォームが開いている間は「イベント発生」待ちのアイドリング状態です。

    ということなので、一括処理(.cmx)のような強い制限・制約に縛られることはあまりありません。

    すでに、Windows の時代になって30年くらいになりますが、一括処理は基本的にDOS桐と同じ「フロー駆動」型のアプローチです。

    従って、現代的には Windows の時代にふさわしい、イベント駆動型の「フォーム+イベント処理」でアプローチすることをおススメしますけれどね。

    しかし、繰り返しになりますが、一括処理の「すべてのフローを統べる」スタイルに慣れている人には、この切り替えが出来ないと思います。


引用返信 [メール受信/OFF] 削除キー/
■15112 / ResNo.4)  Re[2]: 一括処理について
□投稿者/ ONnoji -(2025/09/19(Fri) 08:28:43)
    2025/09/19(Fri) 09:24:17 編集(投稿者)

    > なお、「フォーム+イベント処理」という「イベント駆動」型は、フォームが開いている間は「イベント発生」待ちのアイドリング状態です。
    > ということなので、一括処理(.cmx)のような強い制限・制約に縛られることはあまりありません。
    > すでに、Windows の時代になって30年くらいになりますが、一括処理は基本的にDOS桐と同じ「フロー駆動」型のアプローチです。
    > 従って、現代的には Windows の時代にふさわしい、イベント駆動型の「フォーム+イベント処理」でアプローチすることをおススメしますけれどね。
    > しかし、繰り返しになりますが、一括処理の「すべてのフローを統べる」スタイルに慣れている人には、この切り替えが出来ないと思います。

    「フォーム+イベント処理」で分かり難い所の一つが、フォームの編集対象表以外の他の表を操作することでしょう。

    以下にヘルプを転載しますが、[桐 - ヘルプ]にかなり誤解されるような内容が見つかりましたので以下に添削しました。

    [桐 オンラインヘルプ]より

    一括処理・履歴・イベント > 入門 > イベント処理 > 他の表を操作する

    【イベント処理】他の表を操作する
    ------------------------------------------------------------------------------
    △ イベントハンドラの中から、フォームの対象表以外の表を操作することができます。
    〇 イベントハンドラと一般手続きの中から、フォームの対象表以外の表を操作することができます。
    ------------------------------------------------------------------------------
    △ 表を開くには[表]コマンドを使用します。
    〇 表を開くには[表]コマンドを使用しますが、ウィンドウとして表示されるわけではありません。
    ------------------------------------------------------------------------------
    × イベントハンドラとメイン処理のどちらでも、表を開くことができます。
    〇 イベントハンドラと一般手続きとメイン処理のどちらでも、表を開くことができます。
    ------------------------------------------------------------------------------
    × イベントハンドラの中でしか使用していない表は、フォームを閉じたときに一緒に閉じられます
      (ただし、一括処理実行中であれば、フォームを閉じた後も表は開かれたまま残ります)。
    〇 イベントハンドラと一般手続きとメイン処理の中でしか使用していない表は、フォームを閉じたときに一緒に閉じられます
      (ただし、一括処理実行中であれば、フォームを閉じた後も表は開かれたまま残ります)。
    ------------------------------------------------------------------------------
    × フォームを閉じたあとも表を開いておきたい場合は、[ウィンドウ作成]コマンドを使用して、ウィンドウを作成しておきます。
    〇 フォームを閉じたあとも表を開いておきたい場合は、[ウィンドウ作成]コマンドまたはコマンドボタンの機能名:開くでウィンドウを作成しておきます。
    ------------------------------------------------------------------------------
    △ 開かれている表を操作するときは、[編集表]コマンドを使用して、編集対象表を切り替えます。
    〇 開かれている表を操作するときは、[編集表]コマンドを使用して、編集対象表を切り替えます。
      ただし、編集表の表ウィンドウが存在した場合でもフォーカスが移動するわけではありません。
          ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    ------------------------------------------------------------------------------
    × イベントハンドラが実行されるときは、編集対象表はつねにフォームの対象表になります。
      対象表がないフォームでは、編集対象表がない状態になります。前回実行したときの編集対象表にならないことに注意してください。
    〇 イベントハンドラとコマンドボタンの機能名が実行されるときは、編集対象表はつねにフォームの対象表になります。
      編集対象表を変更するときには、編集表コマンドを使用します。
      対象表がないフォームでは、編集対象表がない状態になります。
    ------------------------------------------------------------------------------
    〇 フォームの編集対象表をもうひとつ開きたい場合は、[多重化]コマンドを使用します。
      このコマンドを使用することで、開かれている表の編集状態を、そのままにしておくことができます。
    ------------------------------------------------------------------------------
    × 画面に表示されている表を、イベントハンドラの中で操作すると、その操作に応じてウィンドウも更新されます。
      たとえば別のフォームの対象表を絞り込むと、それに応じて、フォームのウィンドウが更新されます。
    〇 画面に表示されている表を、イベントハンドラまたは一般手続きの中で操作すると、その操作に応じてウィンドウも更新されます。
      たとえば別のフォームの対象表を絞り込むと、それに応じて、フォームのウィンドウが更新されます。
    ------------------------------------------------------------------------------
    × イベントハンドラの中で[ウィンドウ終了]コマンドを実行すると、ウィンドウだけでなく、表も閉じられます
      (ただし、一括処理実行中であれば、フォームを閉じた後も表は開かれたまま残ります)。
    〇 イベントハンドラの中で[ウィンドウ終了]コマンドを実行すると、ウィンドウだけでなく、表も閉じられます
      閉じる表が「バックアップ取る」の場合には、保存するかを確認するメッセージボックスが表示されます。
      しかし、閉じる表が「バックアップ取らない」の場合では、行訂正・行挿入等の更新中の行のデータは失われますので、
      閉じる表がを必ず表示状態にしてから[ウィンドウ終了]コマンドを実行します
      この場合の対策としては、[ウィンドウ終了]コマンドの替わりに、表ウィンドウの[×]ボタンを直接操作することを強く推奨します。
      (ただし、一括処理実行中であれば、フォームを閉じた後も表は開かれたまま残ります)。
    ------------------------------------------------------------------------------
    × ウィンドウが割り当てられている表を、[終了]コマンド、[中止]コマンド、[表]コマンドで閉じることはできません。
      [ウィンドウ終了]コマンドを使用して、表とウィンドウの両方を閉じてください。
    〇 ウィンドウが割り当てられている表を、[終了]コマンド、[中止]コマンド、[表]コマンドで閉じることはできません。
      [ウィンドウ終了]コマンドを使用して、表とウィンドウの両方を閉じてください。
      閉じる表が「バックアップ取る」の場合には、保存するかを確認するメッセージボックスが表示されます。
      しかし、閉じる表が「バックアップ取らない」の場合では、行訂正・行挿入等の更新中の行のデータは失われますので、
      閉じる表がを必ず表示状態にしてから[ウィンドウ終了]コマンドを実行します
      この場合の対策としては、[ウィンドウ終了]コマンドの替わりに、表ウィンドウの[×]ボタンを直接操作することを強く推奨します。

    p.s.

    これは余談です。(^^ゞ

    「一括処理(.cmx)」と「フォーム(.wfx)+イベント処理(.kex)」は、180度反対方向に顔を向けたプログラミングスタイルです。
                                   ・・・・・・・・・・・・・・・・・・・・・・・・・
    すなわち、[フロー駆動]対[イベント駆動]という違いです。
         ・・・・・・・・・・・・・・・・・・・・・

    これは、[DOS桐一括処理との互換および拡張]対[Windows的なプログラミングスタイル]という際立った違いです。

    ということで、両方を同時に扱うと頭の中が混乱しますし、今さらDOS桐的な事を行う意味もありません。
                               ・・・・・・・・・・・・・・・・・・・・・

    従って、「フォーム+イベント処理」の一本でプログラミングを進める事をお勧めします。(^^ok

引用返信 [メール受信/OFF] 削除キー/
■15113 / ResNo.5)  Re[3]: 一括処理について
□投稿者/ ONnoji -(2025/09/19(Fri) 17:41:16)
    2025/09/20(Sat) 08:13:56 編集(投稿者)

    > × フォームを閉じたあとも表を開いておきたい場合は、[ウィンドウ作成]コマンドを使用して、ウィンドウを作成しておきます。
    > 〇 フォームを閉じたあとも表を開いておきたい場合は、[ウィンドウ作成]コマンドまたはコマンドボタンの機能名:開くでウィンドウを作成しておきます。

    「フォーム+イベント処理」の場合でも、フォームから別のフォームや表のウィンドウを開くのは結構手間なんですよ。

    しかし、拙作:INF_Framework を導入したフォームであれば簡単です。

    ■名称:ランチャー(またはローンチャー)

      手続き名(引数):HDLLNCprcWindowAppear( &wfm, &tbl, &hdl, &openStatus )

      値渡し引数:

      文字列/ &wfm … フルパスのフォームファイル名と拡張子(.wfx)
      文字列/ &tbl … フルパスの表ファイル名と拡張子(.tbx/.vix/.xvx)

      参照渡し引数:

      整数型/ &hdl    … ローンチに成功した場合にハンドル番号が返される/ 失敗した場合にゼロ( 0 ) が返される
      整数型/ &openStatus … 新しいウィンドウを開いた時は 1 、その他は 0

      使い方( usage ): 

       &wfm = #一括パス名 + "transaction_A.wfx"
       &tbl = #一括パス名 + "transaction_A.tbx"
       手続き実行 HDLLNCprcWindowAppear( &wfm, &tbl, &hdl, &openStatus )
       条件 ( &traceON ) トレース出力 _&wfm, " ", _&tbl
       条件 ( &traceON ) トレース出力 _&hdl, " ", _&openStatus

     桐の釣魚大全のトップ > INF_Framework の手続きリファレンス
     https://silicon7565.cloudfree.jp/INF_Framework/INF_Framework_procedure.html

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    AI による INF_Framework の概要 by Gemini( AI )

    桐の釣魚大全で紹介されている**INF_Framework**は、桐のアプリケーション開発を効率化するための**フレームワーク**(基盤環境)です。

    これは単なる手続きの寄せ集めではなく、フォームアプリケーションを開発する際の基本的なパターンやテンプレートを提供するライブラリとして位置づけられています。

    ---

    ### INF_Framework の主な特徴

    * **基盤としての機能**: アプリケーションの骨格となるインフラ(Infrastructure)を提供し、開発者は個別の業務ロジックに集中できるように設計されています。
    * **「ハリウッドの原則」**: 「Don't call us. We'll call you.」(こちらからお呼びします)という考え方に基づいており、
       開発者はフレームワークの内部構造をすべて理解する必要がありません。問題が発生した場合は、フレームワーク側が自動的にメッセージボックスなどで通知します。
    * **手続きの集約**: メッセージボックスの表示、ファイル操作、データ処理など、桐のプログラミングで頻繁に利用される手続きが整理され、使いやすい形で提供されています。
      これにより、複雑なコードを自作する手間を省けます。
    * **用途**: プログラム学習の参考用ではなく、実用性を重視して作られており、実際の業務アプリケーションの迅速な開発を目的としています。

    このフレームワークは、桐を使ったアプリケーション開発において、コードの再利用性を高め、開発プロセスをより体系的かつ効率的に進めるために非常に有用なツールです。

    p.s.

    AI による INF_Framework の概要は、AIによくある明らかなハルシネーションが全くないのでそのまま掲載しました。(^^ゞ


引用返信 [メール受信/OFF] 削除キー/
■15114 / ResNo.6)  Re[4]: 「フォーム+イベント処理」のキモ
□投稿者/ ONnoji -(2025/09/21(Sun) 08:23:54)
    2025/09/21(Sun) 13:42:40 編集(投稿者)

    > 「フォーム+イベント処理」で分かり難い所の一つが、フォームの編集対象表以外の他の表を操作することでしょう。

    でもねぇ〜、それ以前の問題がありますので少々。(^^ゞ

    「フォーム+イベント処理」と聞くと

    フォーム(.wfx)を作ったことが無い人 ⇒ まず作ってみてください。あなたが思うより簡単です!

    イベント処理(.kex)を作ったことが無い人 ⇒ フォームと同じフォルダに、フォームと同じ名前のイベント処理を作成すればOK!

    イベント処理(.kex)を作るのも、あなたが思うより簡単です!!

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    さて、「フォーム+イベント処理」のキモを以下の少々。(^^ゞ

    「フォーム+イベント処理」でありながら、個々のオブジェクト(GUI部品)にイベントを定義する必要はありません。

    基本スタイルはイベントを定義せずに、コマンドボタンを大いに活用するだけで十分便利に使えます。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    コマンドボタンは、あなたが思うより簡単です!!!

      桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
      12   コマンドボタン
      https://silicon7565.cloudfree.jp/guide/guide_Part1.htm#section12

    コマンドボタンの機能名は10分類で91種類が用意されていますが、実際に使用する機能名は極わずかです。

      12.5 コマンドボタンの機能グループ・機能名・機能パラメータ・説明・起動条件など
      https://silicon7565.cloudfree.jp/guide/guide_Part1.htm#section12-5

    実は、このコマンドボタンの機能名が一括処理でのコマンドに相当します。※一括処理コマンドで実現できない機能も多くあります

    コマンドボタンの機能名はたくさんあるけれど、よく使う機能名はそれほど多くありませんから、全部覚える必要はありません。

    と、ここまで読んだ人は「な〜んだ、単なるフォームじゃん!」と思ったでしょう。

    そこでキモになるのが、コマンドボタンの[機能名:手続き実行]なんです。

    (例)コマンドボタンの[機能名:手続き実行]

      オブジェクト名: cmdObjectName
      標題     : ぱふぱふ

       機能名   機能パラメータリスト
      1 表示
      2 手続き実行 cmdObjectNameClick
      3 なし
      4 なし

    1番めの[機能名:表示]は、一括処理のコマンドは多くの場合に「表示モード」でないとエラーになるからです。

    2番めの[機能名:手続き実行]がまさに「フォーム+イベント処理」のキモです。

    これはフォームと同じフォルダにフォームと同じ名前作成したイベント処理に、あらかじめ記述した一般手続きを実行します。

     手続き定義開始 cmdObjectNameClick( )

       :
      イベント処理で利用可能な一括処理コマンドを記述
       :

     手続き定義終了

    ↑これを見てどう思いますか?

    まるで一括処理の[手続き定義開始 ... 手続き定義終了]と同じだと気が付くでしょう!

    そうなんです!、一括処理で動かしていた手続きをコピペすれば、多くの場合に手直し不要で実行できるワケなんです。

    というわけで、一括処理のメインルーチンやサブルーチンを「イベント処理(.kex)」へ移植することは簡単なんです。

    ちなみに、簡単です!とは言ったものの、やはり「イベント処理(.kex)」で実行できないコマンドもあるわけです。

    それは、DOS桐一括処理との互換コマンドと桐ver.7以降で使用できる一部の一括処理コマンドです。

    ザックリいうと、「イベント処理(.kex)」で実行できないコマンドというのは、スクリーン座標を指定する(または指定できる)コマンドです。
            ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    これらは、DOSのCUIのスクリーン用のコマンドですから WindowsのGUIには馴染まないという事なんですよ。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    また、一括処理の実行中で一時的に会話処理状態になるコマンドは、「イベント駆動」とは馴染まないので使えません。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    しかし、残念ながらココで挫折してしまう人も多いカモしれませんね。

      桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
      ■レガシー(古典一括処理・拡張一括処理)なコマンド
      https://silicon7565.cloudfree.jp/guide/guide_Part1.htm#section15

    だから、情熱を持って作業を進められる人しか一括処理を「フォーム+イベント処理」に移行するのは難しいのです。

    しかし、「やれば、出来る!」なのです。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    一括処理を「フォーム+イベント処理」に移行する場合のネックは次のものです。

    ・イベント処理(.kex)で実行できないコマンドがある ⇒ 代替のコマンドまたは方法を模索する

    ・一括処理実行時の画面の遷移を WindowsのGUIで再現するのは困難 ⇒ 複数の「フォーム+イベント処理」を利用する

    ・「フロー駆動」型から「イベント駆動」型へ変更する際に頭の切り替えが難しい ⇒ 操作・制御主体の反転を乗り越える

    とね、しかし、「言うは易しですが、行うのは難しです」。

    しかし、繰り返しになりますが「やれば、出来る!」なのです。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    最後に、オブジェクトのクリックイベントに関して述べます。

    多くのサンプルでよく見られるのですが、コマンドボタンの「マウス左クリック」イベントは不要です。

    コマンドボタンの「マウス左クリック」イベントのイベントハンドラで一括処理コマンドを実行するのではなく、

    コマンドボタンの「機能名:手続き実行」で、自前の一般手続きを実行するようにします。

    サンプルでは、自動的にイベントハンドラが作られるので「マウス左クリック」イベントを紹介しているようですが、

    そもそも、コマンドボタンの「機能名:手続き実行」で任意のルーチンを実行できるのですから「マウス左クリック」イベントは不要なのです。

    ちなみに、「Ctrl + マウス左クリック」等の特殊なインタフェースを作る場合には「マウス左クリック」イベントが必要です。

    しかし、「Shift + マウス左クリック」等とか普通はしませんよね。

    だから、コマンドボタンの「マウス左クリック」イベントは不要なのです。

    しかし、サンプルを見たために「機能名:手続き実行」を使わずに、「マウス左クリック」イベントだらけのイベント処理(.kex)を作ってしまう人が後を絶ちません。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    もちそん、コマンドボタン以外のオブジェクトでは、「マウス左クリック」イベントはOKですが、使い道は多くありません。

    なお、チェックボックス等の「トグルボタン」オブジェクトの場合には、「ソース値更新」イベントを使ってください。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    ということで、皆様〜、「マウス左クリック」イベント沼に落ち込んで溺れないようにお気お付けください。(@^^)/~~~

      桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
      12.3 コマンドボタンを実行する
      https://silicon7565.cloudfree.jp/guide/guide_Part1.htm#section12-3

    p.s.

    生成AIによる拙作webページの紹介です。

    プロンプト :データベース桐を紹介している桐の釣魚大全(https://silicon7565.cloudfree.jp/)というwebサイトを知っていますか

    Gemini:はい、ご指摘のウェブサイト「**桐の釣魚大全**」は、日本語データベースソフト「桐」に関する専門的な情報を扱っているサイトです。

    このサイトは、主に「桐」を使ったプログラミングやアプリケーション開発に焦点を当てています。具体的には、以下の内容が掲載されています。

    * **プログラミング情報**: 「桐」の**フォーム**や**イベント処理**に関するプログラミング講座、入門情報。
    * **アプリケーションサンプル**: 蔵書物品管理や紙のExcelデータ対策など、業務に役立つ実用的なアプリケーションのサンプルファイルを提供しています。
    * **開発ノウハウ**: プログラムの作り方やユーティリティなど、独自の開発ノウハウが公開されています。

    このサイトは、特に「桐」の**プログラミング機能**を深く学びたいユーザーにとって、非常に有益な情報源だと言えます。

引用返信 [メール受信/OFF] 削除キー/
■15115 / ResNo.7)  Re[1]: 一括処理について
□投稿者/ ONnoji -(2025/09/25(Thu) 10:59:58)
    > 表
    > 表 "W36仕入印刷"
    > *
    > 終了
    >
    > と、一度すべての表を閉じてから、また"W36仕入印刷"
    > を開いた状態で一括処理を終えたいと考えております。
    >
    > 表 "W36仕入印刷"で表を画面に表示させた状態で
    > 一括処理を終わりたいと考えておりましたが、表示できません。

    いろいろと試してみましたが、これは出来ませんね。

    > 表もフォームも開いていない状態で一括処理を実行した場合は、一括処理を終了する前に、表の更新結果を保存して、使用したファイルとウィンドウをすべて閉じます。
     ↑
    ジェダイの桐さんが、「終了」コマンドのヘルプを引用しています。

    一括処理が終了した時点で「表のウィンドウを表示しておきたい」のであれば、

    一括処理を実行する前に、「手操作でその表ウィンドウを開いておく」しか方法がありません。

    これは、履歴実行と同じです。つまり、履歴実行しても表ウィンドウは表示されたままですよね。

    しかし、貴殿のご希望は

    > と、一度すべての表を閉じてから、また"W36仕入印刷"
    > を開いた状態で一括処理を終えたいと考えております。

    という事ですから、似て非なるものですよね。

    結論としては、これは不可能、つまり出来ませんです。

    ■ テスト用の一括処理

     表
     表 "test_中央値"
     表形式編集 画面消去 = しない
     *ウィンドウ作成 表,ハンドル = &実行リターン
     *ウィンドウ会話 &実行リターン

     トレース出力 " begin"
     表 "test_中央値"
     トレース出力 " end"
     終了

    ■ トレース出力ウィンドウ

     "D:\kiri10s\kiri10テスト\中央値\表形式編集.CMX"を一括処理実行で開きました
     DB( 1):"D:\kiri10s\kiri10テスト\中央値\test_中央値.tbx"をモード=専有更新で開きました
     : begin
     : end
     DB  :"D:\kiri10s\kiri10テスト\中央値\test_中央値.tbx"を閉じました
     "D:\kiri10s\kiri10テスト\中央値\表形式編集.CMX"を閉じました

    p.s.

    当方は、何か抜け道がないかと、考えられるありとあらゆる方法を試してみましたが出来ませんでしたよ。

    つまり、出来ないことは、出来ませんということですよ。

引用返信 [メール受信/OFF] 削除キー/
■15116 / ResNo.8)  Re[2]: 一括処理について
□投稿者/ うにん -(2025/09/29(Mon) 17:00:13)
    No15115に返信(ONnojiさんの記事)
    >>表
    >>表 "W36仕入印刷"
    >>*
    >>終了
    >>
    >>と、一度すべての表を閉じてから、また"W36仕入印刷"
    >>を開いた状態で一括処理を終えたいと考えております。
    >>
    >>表 "W36仕入印刷"で表を画面に表示させた状態で
    >>一括処理を終わりたいと考えておりましたが、表示できません。

    ほんとかなあ?
    「表」でわざわざ閉じるということは、あらかじめ開いている表があるということですよね。
    実はその表も同じ一括処理内で開いているのを、書いてないだけかな。

    >>表もフォームも開いていない状態で一括処理を実行した場合は、一括処理を終了する前に、表の更新結果を保存して、使用したファイルとウィンドウをすべて閉じます。
    >  ↑
    > ジェダイの桐さんが、「終了」コマンドのヘルプを引用しています。
    >
    > 一括処理が終了した時点で「表のウィンドウを表示しておきたい」のであれば、
    >
    > 一括処理を実行する前に、「手操作でその表ウィンドウを開いておく」しか方法がありません。

    「その表」とは別のファイルでも問題ないようですね。
    何でもいいから表を開いた状態で一括処理を実行すれば、何かの表を開いた状態で終了できます。

    だからどうした、という話になってしまいますが...
    一番最初の時点で何か表を開いてから一括処理を実行するように(バッチファイルか何かで)組み立てればいいということですね。

    例えば手元の桐が9なので古すぎますが...
    C:\K3\KIRIV9\System\KIRI9.EXE -o tekitouna.tbl -r ファイルを開いたまま終了.cmd -dp d:\kiridata
    みたいに実行すると、tekitouna.tblは閉じて一括処理で開いたファイルのウィンドウのまま残りますね。
    (-o を指定しないと閉じてしまう)

    起動時パラメーターは今でも使えるのかな。
引用返信 [メール受信/OFF] 削除キー/
■15117 / ResNo.9)  Re[3]: 一括処理について
□投稿者/ ONnoji -(2025/09/30(Tue) 10:17:29)
    2025/09/30(Tue) 14:58:58 編集(投稿者)

    > 起動時パラメーターは今でも使えるのかな。

    使えるようですよ。(^^ゞ

    桐オンラインヘルプ > 桐の起動と終了 > 起動時パラメータ|管理工学研究所
    https://www.kthree.co.jp/kihelp/index.html?page=bas/kw_StartOpt&type=html

    バッチファイル(.bat)で使うのでしょうけれど・・・

    コレってDOS桐の時代ならばアリかな?と思うけれど、Windows の場合には普通には使わないよね。アハハハha
                              ・・・・・・・・・・・・・・・・・・・

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

次のレス10件>

スレッド内ページ移動 / << 0 | 1 >>

このスレッドに書きこむ

Mode/  Pass/

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

- Child Tree -
- Antispam Version -