■記事リスト / ▼下のスレッド
/ ▲上のスレッド
| ■15202 / 親記事) |
一括処理にて編集対象表をダイアログから指定したい
|
□投稿者/ tessie -(2025/11/13(Thu) 16:18:10)
| 一括処理の記述を教えていただきたいです。
編集対象とする表は通常
表 ○○.tbx
というように記述して指定すると思うのですが、この「○○.tbx」を ダイアログなどで選択することはできますでしょうか。 VBAのFiledialogと同じイメージです
|
|
|
▽[全レス8件(ResNo.4-8 表示)]
| ■15206 / ResNo.4) |
Re[4]: 一括処理にて編集対象表をダイアログから指定したい
|
□投稿者/ ONnoji -(2025/11/13(Thu) 18:01:45)
| 2025/11/15(Sat) 16:50:22 編集(投稿者) 2025/11/13(Thu) 20:19:26 編集(投稿者)
【多遊】さんのHPのトップページにダウンロードコーナーがあります。
こちら ↓ 観験桐 桐のファイルがダウンロードができます http://tayu.o0o0.jp/download/
ここに、手間がかかるアプリケーション作成を支援する拙作:フレームワークと拙作:ユーティリティがあります。
#208 イベント処理のランチャー・シーカー・メッセージセンダー Thin INF_Framework for 桐10 / 桐10s / 桐s [Thin_INF_Framework]は、自作フォームに[INF_Frameworkのサブセット]が組み込める便利なフレームワークです。
#206 イベント処理の整形ユーティリティ 第 3.91 版 for 桐10 / 桐10s / 桐sSL
#205 INF_Framework 第3.3版 改訂版(MkII) サンプル集 for 桐10s / 桐sSL
#204 INF_Framework 第3.3版 改訂版(MkII) 基本セット for 桐10s / 桐sSL
よろしければ、ダウンロードしてご利用ください。無料です。(^^ok
p.s.
<参考>
桐の釣魚大全のトップ > INF_Framework の手続きリファレンス https://silicon7565.cloudfree.jp/INF_Framework/INF_Framework_procedure.html
あこめの桐のプログラミング入門 by AKome https://akome409102.cloudfree.jp/
p.p.s.
桐の釣魚大全のトップ > 目からウロコのデータベース桐プログラミング入門 https://silicon7565.cloudfree.jp/primer/primer_side_reader.html
桐の釣魚大全のトップ > 目からウロコのデータベース桐プログラミング入門 パート2 https://silicon7565.cloudfree.jp/primer/primer_side_reader_part2.html
桐の釣魚大全のトップ > 目からウロコのデータベース桐プログラミング入門 https://silicon7565.cloudfree.jp/primer/primer_side_reader.html#section3
3 イベント駆動型のプログラミング 今では見ることが無くなったMS-DOS用の桐ver.5でもプログラミングが出来ました。 そうです、一括処理というプログラミング手法です。 その後、MS-Windowsに対応して発売された桐ver.7において一括処理が利用できるようになりました。 この時の一括処理は、MS-DOSの時代に蓄積された桐ユーザのプログラム資産を、そのまま利用できるように工夫されたものでした。 しかし、MS-DOSには矩形をしたMS-Windowsのウィンドウという概念がありませんでした。※矩形(読み)くけい:(意味)長方形・四角形 そこで、桐ver.7の一括処理では矩形をしたMS-Windowsのウィンドウも扱えるように機能が拡張されました。 MS-DOS時代の桐の一括処理コマンドは画面(スクリーン)の縦横の座標を指定するのが特徴です。 画面表示 ( <開始行>, <開始桁> ) - ( <終了行>, <終了桁> ), 式, 左寄せ, 青, 下線, 反転 キー入力 ( <開始行>,<開始桁> ) - ( <終了行>,<終了桁> ),プロンプト = "文字を入力してください", &文字列型の変数 このようにWin桐においてもMS-DOSの画面(スクリーン)を再現した一括処理になるので、これを便宜上、古典一括処理コマンドと呼ぶことにします。 しかし、MS-Windowsの高解像度の環境でMS-DOSの画面(スクリーン)を再現するのは、さすがに時代錯誤でMS-Windowsに適合しませんから、 桐ver.7では矩形をしたMS-Windowsのウィンドウを扱えるように拡張した一括処理も同時に用意されました。 余談ながら、その当時のパソコン雑誌のライターの多くが旧態依然とした桐ver.7のプログラミング方法に対して失望を表明しています。 しかし、MS-DOSの時代に蓄積された桐ユーザのプログラム資産を大切にするという管理工学研究所の遠謀深慮に気付いたライターは非常に少なかったのです。 以下の例は、[表のウィンドウ]と[フォームのウィンドウ]を扱う為のプログラムですが、 なんと3ステップのコマンドを実行しないと、矩形をしたMS-Windowsのウィンドウが扱えないのです。
―[表のウィンドウ]を操作する手順 表 "Jusho.tbl" ウィンドウ作成 表, ハンドル = &hWnd ウィンドウ会話 &hWnd, 更新 = 禁止, 許可作業 = なし, 項目番号 = &Field, 終了状態 = &OK
―[フォームのウィンドウ]を操作する手順 表 "Jusho.tbl", 使用フォーム = "Jusho.wfm" ウィンドウ作成 フォーム, ハンドル = &hWnd ウィンドウ会話 &hWnd, 初期項目 = @bOK, ボタン = &Obj,終了状態 = &OK
これを便宜上、拡張一括処理コマンドと呼ぶことにします。 古典一括処理と拡張一括処理は、表示方法として画面(スクリーン)と矩形をしたMS-Windowsのウィンドウの違いこそありますが、 どちらもフロー(つまりプログラムの流れ)を一括処理ファイルに記述して実行する点で全く同じです。 このような一括処理のスタイルを「フロー駆動型」と呼びます。 「フロー駆動型」の難点としては、フロー(つまりプログラムの流れ)をすべて記述しなければプログラムが完成しないことが挙げられます。 また、フロー(つまりプログラムの流れ)の途中でエラーが発生すると、初めからやり直しになります。トホホ〜。 このように「フロー駆動型」は非常に手間がかかり大変なのです。 その後桐ver.8が発売されて「フォーム+イベント処理」のプログラミングが出来るようになりました。 これは、フォームを利用するユーザの操作によってイベントが発生して、そのイベントに対応するプログラムが実行されるというものです。 実行されるプログラムには[コマンドボタンの機能名:手続き実行]から呼び出す手続き(一般手続きと呼ぶ)と、イベント発生で実行する手続き(イベントハンドラと呼ぶ)の2種類があります。 実際にはイベントハンドラは案外と出番が少なくて、多くのケースでは[コマンドボタンの機能名:手続き実行]から一般手続きを呼び出します。 このような「フォーム+イベント処理」のプログラミングスタイルを「イベント駆動型(イベントドリブン)」と呼びます。 「フォーム+イベント処理」のプログラミングでは、まず[フォームのウィンドウ]を開くだけで準備が完了するので実に簡単です。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ そして、イベント処理ファイルに[コマンドボタンの機能名:手続き実行]に対応する一般手続きや、イベントの発生に対応するイベントハンドラを付け加えていけばOKです。 つまり、「フォーム+イベント処理」では、拡張一括処理のように[表のウィンドウ]や[フォームのウィンドウ]を3ステップのコマンドを使って開く必要がありません。 「フォーム+イベント処理」では、桐の[ファイル]メニューの[開く]ダイアログでフォームを開いたら、すでにプログラムが実行可能の状態になっています。 さらに、開いた[フォームのウィンドウ]から別のウィンドウ開くには[コマンドボタンの機能名:開く]でフォームファイル名や表ファイル名を指定するだけで済みます。 以上をまとめてみると、「フロー駆動型」の一括処理は、「イベント駆動型」の「フォーム+イベント処理」と比べると、扱い難いものであると理解していただけるでしょう。 また、古典一括処理と拡張一括処理のコマンドの中には「フォーム+イベント処理」で実行できないものが40種余りありますので、 桐ver.8以降の桐10sや桐sでは「フロー駆動型」の一括処理の勉強はまったく不要になったと言えます。
また、「フロー駆動型」と「イベント駆動型」では、制御の主体が「フロー(プログラムの流れ)」と「ユーザの操作」と異なっています。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ これは「制御主体の反転」と言うべきで、そのために「フロー駆動型」と「イベント駆動型」を同時に勉強すると頭の中が大混乱になってしまいます。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 「順番として、履歴を勉強してから、一括処理を勉強して、最後にイベント処理を勉強する」と考える人が案外と多く居ますが、 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ それでは、「イベント処理で使えないコマンド」や「制御主体の反転」に思いがけず遭遇して、分けが分からなくなるのでお勧めしません。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ ということで、一括処理(履歴を含む)の勉強はスルーして、「フォーム+イベント処理」の勉強だけすることをお勧めします。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ なお、古典一括処理と拡張一括処理のコマンドは以下の拙作webページに掲載していますので参考にしてください。
|
|
|
| ■15207 / ResNo.5) |
Re[2]: 一括処理にて編集対象表をダイアログから指定したい
|
□投稿者/ うにん -(2025/11/13(Thu) 19:41:59)
| > よく「一括処理の記述」と、よく質問されますが、これは「一括処理コマンド」の事ですよね。
「一括処理ファイル」の中身は「一括処理」だから、記述方法を聞くのは「一括処理の記述」でいいのでは。 その中で使う1行ごとの命令が「一括処理コマンド」なので、 特定の「一括処理コマンド」(例えば「表」)が決まってて、それの使い方を聞く場合は「一括処理コマンドの記述」(例えば「表」コマンドでファイル名をユーザ入力にする場合は?)となりますが、今回の質問は、表コマンドにそういう記述はできないことがわかってて(複数の一括処理コマンドをどう使えばよいか)聞いてるので...
|
|
|
| ■15208 / ResNo.6) |
Re[2]: 一括処理にて編集対象表をダイアログから指定したい
|
□投稿者/ まさやん -(2025/11/14(Fri) 08:58:10)
| 以前から思っていたこと・・
> 「フロー駆動型」の一括処理ファイル(.cmx)を用意して実行するのですか? > > 「イベント駆動型」の「フォーム(.wfx)+イベント処理(.kex)」を用意して実行するのですか? >
私も たまに思うのですが 質問の時に
イベントの とか イベントで行っている 一括処理の記述で・・
と イベントで行っている方は 書き添えていただくと 回答する方はありがたいかと思います
確かに フロー駆動型が 知らない方もいるかと思うし イベント駆動型が知らない方もいると思いますが・・
|
|
|
| ■15209 / ResNo.7) |
Re[4]: 一括処理にて編集対象表をダイアログから指定したい
|
□投稿者/ tessie -(2025/11/14(Fri) 08:59:29)
| ■No15205に返信(ONnojiさんの記事) > 2025/11/13(Thu) 17:50:08 編集(投稿者) > >>バージョン10sです >>フロー駆動型(.cmx) を実行しています。 > >>一括処理の記述を教えていただきたいです。 >> >>編集対象とする表は通常 >> >>表 ○○.tbx > > 以下のヘルプを参考にしてください。 > > こちら > ↓ > 「桐オンラインヘルプ」 > ファイル名入力 > https://www.kthree.co.jp/kihelp/index.html?page=cmd/stx/cinfname&type=html
こちらのヘルプを参考に記述したところうまく選択することができました。 ありがとうございます。
> > このコマンドはDOS桐の一括処理コマンドとの互換性があります。 > > しかし、DOS時代の名残なので、フォームのGUI部品のダイアログと比べると機能が劣ります。 > ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ > > せめてVBAの「開く」ダイアログボックスと同じルック&フィールを求めるのであれば、 > ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ > > 「イベント駆動型」の「フォーム(.wfx)+イベント処理(.kex)」のコマンドボタンに[機能名:ファイル名入力]セットして、 > > 一般手続き(またはイベントハンドラ)で[実行]メソッドでコマンドボタンを実行すれば、変数にファイル名が代入できます。 > >>※イベント駆動型というものの存在を知らず、ずっと.cmxで作業しておりました。 >> イベント駆動型のほうが融通が利くとことですのでそちらについても今後調べてみようと思います。 > > 「桐」というと、直ちに「一括処理」という固定観念が世間に蔓延しています。 > > もちろん、DOS時代の桐は「フロー駆動型」の一括処理(.cmd)しが使えなかったのですから、その影響なのですが・・・ > > しかし、困ったことに、桐ver.8以降からは「イベント駆動型」の「フォーム(.wfx)+イベント処理(.kex)」が使えるようになっても、 > > 「桐=一括処理(.cmx)」という固定観念がなかなか払拭されませんでした。 > > アプリケーションを発注する側の人達でさえ、今でも「桐=一括処理(.cmx)」という固定観念の人が多いです。 > > VBやVBAの技術者は、「イベント駆動型」のプログラミングの方が慣れているというのにもです。アハハハha > ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ > > 結局、慣れないDOS桐譲りの「一括処理(.cmx)」を作るように頼まれるのですから、ガラパゴス桐になってしまうのです。 > > これは笑えませんよね。(T_T)/~~~ > > p.s. > >>※イベント駆動型というものの存在を知らず、ずっと.cmxで作業しておりました。 >> イベント駆動型のほうが融通が利くとことですのでそちらについても今後調べてみようと思います。 > > 以下の拙作:webサイトを参考にしてください。 > > 桐の釣魚大全のトップ > フォームアプリケーション教書 第1部 > https://silicon7565.cloudfree.jp/guide/guide_Part1.htm > > > 桐の釣魚大全のトップ > フォームアプリケーション教書 第2部 > https://silicon7565.cloudfree.jp/guide/guide_Part2.htm > 非常に参考になる資料ありがとうございます 桐のデータベースを学び始めたばかりなので、一括処理(.cmx)だけでも相当に便利だと思っておりましたが、イベント駆動型を学ぶにもいいタイミングだと思うので勉強してみます。 web上に情報が少ない中、このようにまとまった内容があるのは初学者に非常に有用で感謝しかありません
> > p.p.s. > >>「イベント駆動型」の「フォーム(.wfx)+イベント処理(.kex)」を用意して実行するのであれば、フォームのGUI部品の[開く]ダイアログが使えますよ。 > > > 桐の釣魚大全のトップ > フォームアプリケーション教書 第1部 > 12.4 コマンドボタンの機能の実行 > https://silicon7565.cloudfree.jp/guide/guide_Part1.htm#section12-4 > > > ■ファイル名入力 > [機能名:ファイル名入力]は、レガシーな古典一括処理の[ファイル名入力]コマンドよりも機能が豊富なので断然おススメします。 > なお、機能の説明には呆れるほど簡素な構文しかありません。 > <1.ファイル名>,<2.表題>,<3.ファイル拡張子>,<4.ファイルフィルタ>,<5.初期フォルダ名>,<6.ボタンの名前> ※著者( ONnoji )が数字を付加して角括弧は省略しました > さすがに↑これでは具体的な書き方がサッパリ分かりませんので、桐ヘルプの[入力支援ボタン リストの種別:ファイル名選択]を参照します。 > > 【存在するファイル名を入力する例】<6.ボタンの名前>を指定しなかった場合にはボタン名は[開く(O)]になります > ┌──────────────────────────────────────────────────────────┐ > │オブジェクト名: cmdファイルを開く │ > │標題 :開く │ > │ │ > │ 機能名 機能パラメータリスト │ > │1 なし │ > │2 ファイル名入力 &STR,"ファイルを開く","tbx","表(*.tbx)|*.tbx|フォーム(*.wfx)|*.wfx|すべて(*.tbx *.wfx)|*.tbx;*.wfx" │ > │3 なし │ > │4 なし #代入( &実行リターン, 99 ) │ > └──────────────────────────────────────────────────────────┘ > ※<1.ファイル名>, <2.表題>, <3.ファイル拡張子>, <4.ファイルフィルタ> ※著者( ONnoji )が数字を付加しました > ※ファイルフィルタはパイプ記号( | )で区切ります > > 【存在しないファイル名を入力する例】<6.ボタンの名前>を「保存(&S)」「書き出し(&W)」「Save(&S)」「Write(&W)」のいずれかにします。 > ┌─────────────────────────────────────────────┐ > │オブジェクト名: cmdテキストファイルを保存する │ > │標題 :テキストファイルを保存 │ > │ │ > │ 機能名 機能パラメータリスト │ > │1 なし │ > │2 ファイル名入力 &STR, "テキストの保存", "txt","テキスト(*.txt)|*.txt", "", "保存(&S)" │ > │3 なし │ > │4 なし #代入( &実行リターン, 99 ) │ > └─────────────────────────────────────────────┘ > ※<1.ファイル名>, <2.表題>, <3.ファイル拡張子>, <4.ファイルフィルタ>, <5.初期フォルダ名>, <6.ボタンの名前> ※著者( ONnoji )が数字を付加しました > ※ファイルフィルタはパイプ記号( | )で区切ります > > なお、[入力支援ボタン]の[リストの種別:ファイル名選択]では、パラメータリストに[ファイル名を受け取る変数名]がありませんが、 > それ以外のパラメータは同じ並び順なので、桐ヘルプの[入力支援ボタン]の[リストの種別:ファイル名選択]の項を参照してください。 > 必ず参考になるはずです。 > > −パラメータリストの対照表− > 【機能名 :ファイル名入力】<1.ファイル名>, <2.表題>, <3.ファイル拡張子>, <4.ファイルフィルタ>, <5.初期フォルダ名>, <6.ボタンの名前> > 【入力支援ボタン:ファイル名選択】 <1.タイトル>, <2.拡張子>, <3.種類>, <4.ファイルの場所>, <5.ボタン名> > 早速こちらを参考に[機能名:ファイル名入力]のバージョンを作ってみようと思います。ありがとうございます > >
|
解決済み! |
|
| ■15210 / ResNo.8) |
Re[3]: 一括処理にて編集対象表をダイアログから指定したい
|
□投稿者/ ONnoji -(2025/11/14(Fri) 09:18:33)
| > 以前から思っていたこと・・ >>「フロー駆動型」の一括処理ファイル(.cmx)を用意して実行するのですか? >>「イベント駆動型」の「フォーム(.wfx)+イベント処理(.kex)」を用意して実行するのですか? > > 私も たまに思うのですが > 質問の時に > イベントの とか イベントで行っている 一括処理の記述で・・ > と イベントで行っている方は 書き添えていただくと > 回答する方はありがたいかと思います
以下同文です。(^^ゞ
ホント、困るのよね。アハハハハha
> 確かに フロー駆動型が 知らない方もいるかと思うし > イベント駆動型が知らない方もいると思いますが・・
桐ver.8で可能になった「イベント駆動型」は25年以上前からあるんですけれどね・・・
なぜでしょうかね?
桐10sのサンプルには、「一括処理のアプリケーション」が同梱されていないのにね。不思議。(@_@)
「一括処理のアプリケーション」が山のようにあって移行が困難だからでしょうかね?
「一括処理のアプリケーション」は、あたかも「COBOL言語」みたいな存在ですよね。
|
|
|
■記事リスト /
レス記事表示 →
[親記事-8]
|