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

《 桐質問以外の話題は、「のほか掲示板」からどうぞ 》
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Nomal一括処理にて編集対象表をダイアログから指定したい(8) | Nomalマルチディスプレイについて(14) | Nomalフォームのズームについて(4) | Nomal制約について(17) | Nomal配列変数の扱いについて(10) | Nomal一括処理の絞込みについて(2) | Nomal繰り返しコマンドについて(9) | NomalファンクションキーがCTRLを押しながらでないとつかえない?(3) | Nomal指定の文字数を入力したとき自動でタブ(6) | Nomal一括処理について(13) | Nomal文字列変換について(3) | Nomal平均額の算出(4) | Nomal絞り込み 条件名 エラー KD1084:比較式の形式に誤りがあります(2) | Nomal変数自体の文字列変換(4) | Nomal中央値について(10) | Nomal数値型項目で入力の際数値以外のキーを受け付けない(20) | Nomal一括処理について(14) | Nomal数値の複写の「項目計算式」(3) | Nomal認知症検査(1) | Nomal絞り込み検索条件式(3) | Nomal軸単位の異なるデータを一つのグラフで表示させたい(4) | Nomal表のサイズが小さくなる。(6) | Nomal項目の値を変数に取り込むには(2) | Nomal桐10終了(12) | Nomal最新(直近)のデータだけを表示させたい(2) | Nomalレポートについて(12) | Nomal文字列の計算(12) | Nomal表整理の一括化(17) | Nomalwindows10の動作(8) | Nomal経過日を知りたい(5) | Nomal表引きについて(13) | Nomal超初心者です。桐の変数代入について教えて下さい。(2) | Nomal区分ごとに行で色を付けたい(4) | Nomal絞り込み式(5) | Nomal連番を入れたら、その日の年月を自動で入れたい(6) | Nomal併合の絞り込みについて(8) | Nomalライブラリが読み込まれない(1) | Nomal絞り込み:比較式での日時値絞り込みの相談(12) | Nomal常時「訂正」モードにしたい(20) | Nomal桐s-2024 LTへのバージョンアップ(16) | Nomalテキスト読み込み(3) | Nomal一括処理でテキストを選択したい(8) | Nomal課税、非課税(8) | Nomalビルド番号について(4) | Nomal12ヶ月分のレコードを一度に作成する方法について(5) | Nomal一括処理で集計したい(2) | Nomalハンドルとは?(31) | Nomal帳票印刷(7) | Nomalメール送信(9) | Nomal拡張子CSVで項目間をカンマで区切り書き出したい(32) | Nomal正か負かで区分を付けたい(4) | Nomal項目計算式にメモ(4) | Nomal連番を自動入力したい(8) | Nomal項目別 連番生産(9) | Nomalイベントでフォームをまとめて開く(8) | Nomal9000バイトの出力(4) | Nomal一括処理書き方(7) | Nomal印字コマンド(13) | Nomal状態表示について(3) | NomalTXTファイルからDATファイルに変更(4) |



■記事リスト / ▼下のスレッド
■15202 / 親記事)  一括処理にて編集対象表をダイアログから指定したい
□投稿者/ tessie -(2025/11/13(Thu) 16:18:10)
    一括処理の記述を教えていただきたいです。

    編集対象とする表は通常

    表 ○○.tbx

    というように記述して指定すると思うのですが、この「○○.tbx」を
    ダイアログなどで選択することはできますでしょうか。
    VBAのFiledialogと同じイメージです
引用返信 [メール受信/OFF]

▽[全レス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ページに掲載していますので参考にしてください。

引用返信 [メール受信/OFF]
■15207 / ResNo.5)  Re[2]: 一括処理にて編集対象表をダイアログから指定したい
□投稿者/ うにん -(2025/11/13(Thu) 19:41:59)
    > よく「一括処理の記述」と、よく質問されますが、これは「一括処理コマンド」の事ですよね。

    「一括処理ファイル」の中身は「一括処理」だから、記述方法を聞くのは「一括処理の記述」でいいのでは。
    その中で使う1行ごとの命令が「一括処理コマンド」なので、
    特定の「一括処理コマンド」(例えば「表」)が決まってて、それの使い方を聞く場合は「一括処理コマンドの記述」(例えば「表」コマンドでファイル名をユーザ入力にする場合は?)となりますが、今回の質問は、表コマンドにそういう記述はできないことがわかってて(複数の一括処理コマンドをどう使えばよいか)聞いてるので...
引用返信 [メール受信/OFF]
■15208 / ResNo.6)  Re[2]: 一括処理にて編集対象表をダイアログから指定したい
□投稿者/ まさやん -(2025/11/14(Fri) 08:58:10)
    以前から思っていたこと・・


    > 「フロー駆動型」の一括処理ファイル(.cmx)を用意して実行するのですか?
    >
    > 「イベント駆動型」の「フォーム(.wfx)+イベント処理(.kex)」を用意して実行するのですか?
    >

    私も たまに思うのですが
    質問の時に

    イベントの とか イベントで行っている   一括処理の記述で・・

    と イベントで行っている方は 書き添えていただくと
    回答する方はありがたいかと思います

    確かに フロー駆動型が 知らない方もいるかと思うし
        イベント駆動型が知らない方もいると思いますが・・


引用返信 [メール受信/OFF]
■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.ボタン名>
    >
    早速こちらを参考に[機能名:ファイル名入力]のバージョンを作ってみようと思います。ありがとうございます
    >
    >
解決済み!
引用返信 [メール受信/OFF]
■15210 / ResNo.8)  Re[3]: 一括処理にて編集対象表をダイアログから指定したい
□投稿者/ ONnoji -(2025/11/14(Fri) 09:18:33)
    > 以前から思っていたこと・・
    >>「フロー駆動型」の一括処理ファイル(.cmx)を用意して実行するのですか?
    >>「イベント駆動型」の「フォーム(.wfx)+イベント処理(.kex)」を用意して実行するのですか?
    >
    > 私も たまに思うのですが
    > 質問の時に
    > イベントの とか イベントで行っている   一括処理の記述で・・
    > と イベントで行っている方は 書き添えていただくと
    > 回答する方はありがたいかと思います

    以下同文です。(^^ゞ

    ホント、困るのよね。アハハハハha

    > 確かに フロー駆動型が 知らない方もいるかと思うし
    >     イベント駆動型が知らない方もいると思いますが・・

    桐ver.8で可能になった「イベント駆動型」は25年以上前からあるんですけれどね・・・

    なぜでしょうかね?

    桐10sのサンプルには、「一括処理のアプリケーション」が同梱されていないのにね。不思議。(@_@)

    「一括処理のアプリケーション」が山のようにあって移行が困難だからでしょうかね?

    「一括処理のアプリケーション」は、あたかも「COBOL言語」みたいな存在ですよね。

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

■記事リスト / レス記事表示 → [親記事-8]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15180 / 親記事)  マルチディスプレイについて
□投稿者/ 尾形 -(2025/11/06(Thu) 15:03:43)
    よろしくお願いします
    桐10sです

    小型ノートパソコンに
    HDMIで大型モニタをつないで使っています
    表示画面を拡張する の設定です

    ノートパソコン側の画面は小さいので
    大型モニタ側で桐を使っています

    「ウィンドウ位置」コマンドで
    フォームの配置等操作するのに
    デスクトップのサイズを取得したいのですが
    #デスクトップサイズ 関数では
    ノート側画面しか把握できません

    良い方法ありませんでしょうか


    よろしくお願いします

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

▽[全レス14件(ResNo.10-14 表示)]
■15190 / ResNo.10)  Re[7]: マルチディスプレイについて
□投稿者/ うにん -(2025/11/06(Thu) 20:59:52)

    > メインの Width=1536 の右側にサブウィンドウがあるので
    > サブの開始は X=1536
    >
    > と言うことでは?

    そうです、うちのはそれで納得してるんですが、hidetakeさんのは、Xの値とWidthの値が違ってますよね?

    >>Bounds : {X=0,Y=0,Width=2048,Height=1152}

    >>Bounds : {X=-2560,Y=0,Width=2048,Height=1152}

    >>Bounds : {X=2560,Y=0,Width=1920,Height=1080}

    最初のデータ、1番(配置真ん中)のWidthが2048なのに、3番目のデータの(配置右)のXが2560になっている。
引用返信 [メール受信/OFF]
■15192 / ResNo.11)  Re[1]: マルチディスプレイについて
□投稿者/ 尾形 -(2025/11/07(Fri) 04:56:22)
    皆さん、色々とありがとうございます

    頂いた情報を元に自分なりに確認してみたいと思います

    自分の場合オーバーラップフォームが起点なので、
    最終的には2画面間で自在に制御したいと思っていますが


    とりあえず、
    ウィンドウ位置  最大化
    ウィンドウ位置  取得
    ウィンドウ位置  復元
    あたりで、当初の狙いはできそうに思われました

    ありがとうございました

解決済み!
引用返信 [メール受信/OFF]
■15193 / ResNo.12)  Re[8]: マルチディスプレイについて
□投稿者/ hidetake -(2025/11/07(Fri) 09:22:45)
    > そうです、うちのはそれで納得してるんですが、
    > hidetakeさんのは、Xの値とWidthの値が違ってますよね?

    ノートパソコンでも試してみました。

    どれも Windows11 25H2 で、すべて最新のアップデイトを
    かけているものですが、1台の Dell は最初のものとまったく
    同じで、X は表示サイズでは無く実サイズで表示されました。

    もう1台のノートでやってみると、サブを左に置いた場合、
    X は、サブの表示サイズでも実サイズでもなく、メインの
    表示サイズを差し引いたものとなりました。
    サブを右に置いた場合、メインの表示サイズの値となり正しく
    は見えるのですが。

    X は表示サイズだったり、実サイズだったり、メインの
    画面サイズが反映されたものだったり、どうもおかしな挙動を
    示します。

    X はプラスマイナスだけを信じ、あとは Width, Height を
    元に計算した方が良さそうです。


引用返信 [メール受信/OFF]
■15200 / ResNo.13)  Re[2]: マルチディスプレイについて
□投稿者/ 尾形 -(2025/11/13(Thu) 06:02:16)
    確認してみました

    左画面がメインで、右にマルチモニタな状態で
    ウィンドウ位置 設定,&hwindow,位置=(-500,1),サイズ=(500,500)

    存在しない座標を指定したら
    フォームは生きた状態で
    行方不明になってしまうようでした



引用返信 [メール受信/OFF]
■15201 / ResNo.14)  Re[3]: マルチディスプレイについて
□投稿者/ うにん -(2025/11/13(Thu) 14:54:18)
    > 左画面がメインで、右にマルチモニタな状態で
    > ウィンドウ位置 設定,&hwindow,位置=(-500,1),サイズ=(500,500)
    >
    > 存在しない座標を指定したら
    > フォームは生きた状態で
    > 行方不明になってしまうようでした

    存在しないというか、画面外というか、マルチモニタかどうかとは関係なく
    ウィンドウを隠すテクニックとして使われますね。
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-14]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15194 / 親記事)  フォームのズームについて
□投稿者/ キリマンジャロ -(2025/11/10(Mon) 10:27:47)
    IN11、桐10S使用です
    いつもお世話になっております。

    現在フォームにて、コマンドボタンを使用し
    機能名にズームをいれてフォームをズームしています。

    ここで出来たら嬉しいのが、
    クリックしたボタンに対してズーム出来たらいいなと思います。

    コマンドボタンA・Bを作った場合ならAを押せばA中心にズームされ
    Bを押せばB中心にズームを行いたいです。

    お忙しいところ恐縮ですが、よろしくお願いいたします。
引用返信 [メール受信/OFF]

▽[全レス4件(ResNo.1-4 表示)]
■15195 / ResNo.1)  Re[1]: フォームのズームについて
□投稿者/ ONnoji -(2025/11/10(Mon) 13:18:37)
    2025/11/11(Tue) 16:38:24 編集(投稿者)

    > 現在フォームにて、コマンドボタンを使用し
    > 機能名にズームをいれてフォームをズームしています。
    > ここで出来たら嬉しいのが、
    > クリックしたボタンに対してズーム出来たらいいなと思います。
    > コマンドボタンA・Bを作った場合ならAを押せばA中心にズームされ
    > Bを押せばB中心にズームを行いたいです。

    フォームのズームイン・ズームアウトはフォーム全体に対して行われますが、

    これは[フォーム]オブジェクトの縦横比を保持して全体に拡大・縮小するものです。

    この質問の任意のオブジェクトを中心に拡大・縮小という意味は、
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    おそらく任意のオブジェクトの位置が変化しないで、拡大縮小したいということなのでしょう?
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    あくまでも私が知る限りですが、これは桐の機能では無理だと思いますよ。

    なお、もちろんオブジェクトの位置を検出して、それに応じてやり繰りすると出来るのカモしれませんが、
    そもそも実現するか否かも不明ですので、労多くして得るものは少ないと思いますよ。(^^ok
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    ちなみに、ズームイン・ズームアウトのボタンは、フォームヘッダ部の隅っこ(一番左側上)に並べて配置すると良いと思いますよ。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    これをフォームフッタ部やフォームの中央部に配置したりすると、とても扱い難くなりますよ。

    また、コマンドボタンにアクセスキー( Alt + キー )をセットすると、キー操作だけで使えて便利ですよ。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    p.s.

    ちなみに、フォームの[フォームスクロールバー]のオフでは、フォームウィンドウの大きさを変えないで拡大縮小出来ます。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    一方[フォームスクロールバー]のオフではフォームウィンドウの大きさも変化します。
      ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    <参考>
    [桐 - ヘルプ]より

     [フォームスクロールバー]
     このフォームを表示するウィンドウがフォームのサイズより小さいとき、スクロールバーを表示する場合はON、表示しない場合にはOFFにします。
     フォームスクロールバーは、右レコードスクロールバーより内側に表示されます。
     この項目をOFFにした場合、フォームの表示倍率を変更すると、ウィンドウサイズも倍率に応じたサイズに変わります。


    <参考>
    桐の釣魚大全のトップ > フォームアプリケーション教書 第1部
    12.5 コマンドボタンの機能グループ・機能名・機能パラメータ・説明・起動条件など
    https://silicon7565.cloudfree.jp/guide/guide_Part1.htm#section12-5

    機能グループ 機能名    機能パラメータ 説明
    表示     ズームイン  なし      フォームを10%単位で拡大表示する(最大400%)。  
    表示     ズームアウト なし      フォームを10%単位で縮小表示する(最小10%)。

    p.p.s.

    ちなみに、拙作:INF_Framework のズームインボタン/ズームアウトボタンでは、フォームを 5%単位 で拡大・縮小します。

    桐のコマンドボタンの機能名の10%単位では少し刻みが荒い気がします。(^^ゞ

引用返信 [メール受信/OFF]
■15197 / ResNo.2)  Re[2]: フォームのズームについて
□投稿者/ キリマンジャロ -(2025/11/10(Mon) 15:32:37)
    返信ありがとうございます。
    別の方法で解決しようと思います。

    > ちなみに、ズームイン・ズームアウトのボタンは、フォームヘッダ部の隅っこ(一番左側上)に並べて配置すると良いと思いますよ。
    >      ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    >
    > これをフォームフッタ部やフォームの中央部に配置したりすると、とても扱い難くなりますよ。
    >
    > また、コマンドボタンにアクセスキー( Alt + キー )をセットすると、キー操作だけで使えて便利ですよ。
    >

    こちらの機能がとても気になり調べたのですが、やり方がいまいち分かりませんでした。
    やり方を教えて頂けたら嬉しいです。よろしくお願いいたします。

引用返信 [メール受信/OFF]
■15198 / ResNo.3)  Re[3]: フォームのズームについて
□投稿者/ ONnoji -(2025/11/10(Mon) 17:25:05)
    2025/11/11(Tue) 12:52:29 編集(投稿者)

    No15197に返信(キリマンジャロさんの記事)
    >>また、コマンドボタンにアクセスキー( Alt + キー )をセットすると、キー操作だけで使えて便利ですよ。
    > こちらの機能がとても気になり調べたのですが、やり方がいまいち分かりませんでした。
    > やり方を教えて頂けたら嬉しいです。よろしくお願いいたします。

    実際に[桐 - ヘルプ]で確認してください。
    ・・・・・・・・・・・・・・・・・・・・

    こちら
     ↓
    [桐 - ヘルプ] > フォーム > 詳細プロパティ > オブジェクトの種類 > コマンドボタン

    【アクセスキー 】
    アクセスキーとは、フォーム編集時に[コマンドボタン]オブジェクトの中に表示される、下線の半角英数字のことです。
    フォーム編集時、[Alt]キーを押しながらアクセスキーを押すことで、コマンドボタンを押すことができます。

    [コマンドボタン]オブジェクトの標題にアクセスキーを含めるには、アクセスキーにする半角英数字の前に & を入力します。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    たとえば F をアクセスキーにするには、半角 F の前に、半角の & を入力します。
                       ・・・     ・・・・
      (例)検索(&F) → 検索(F)

    アクセスキーとして使用できる文字は、半角の英数字だけです。
                      ・・・・・・

    p.s.

    ズームイン は … &I 半角アイ
    ズームアウトは … &O 半角オー

    が良いと思いますよ。
引用返信 [メール受信/OFF]
■15199 / ResNo.4)  Re[4]: フォームのズームについて
□投稿者/ キリマンジャロ -(2025/11/12(Wed) 08:22:17)
    ONnojiさんありがとうございます。

    > アクセスキーとして使用できる文字は、半角の英数字だけです。
    >                   ・・・・・・
    無事解決することが出来ました。
    ありがとうございます。
    > p.s.
    >
    > ズームイン は … &I 半角アイ
    > ズームアウトは … &O 半角オー
    >
    > が良いと思いますよ。

    とても便利なので
    ほかのフォームにも波及させたいと思います。

解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15162 / 親記事)  制約について
□投稿者/ キリマンジャロ -(2025/10/30(Thu) 13:04:09)
    IN11、桐10S使用です
    いつもお世話になっております

    今回ですが、データ型 文字列、項目名 機械No
    という表のデータがあります。

    ここにP01 や R01 や T05 など頭が英語で
    そのあと2文字が数字で入ります。

    入力する際に、P1やP5などにならない様に3桁
    しか入らないように、制約を付けたいを思いましたが
    やり方が分からなかったので、
    忙しいところ恐縮ですが教えて頂きたいです。
    宜しくお願い致します。
引用返信 [メール受信/OFF]

▽[全レス17件(ResNo.13-17 表示)]
■15175 / ResNo.13)  Re[5]: 制約について
□投稿者/ キリマンジャロ -(2025/10/31(Fri) 11:09:26)
    ジェダイの桐さん、ONnojiさんありがとうございます。

    >#文字数( [機械No] ) = 3
    >と入力すれば、3文字入力でないとエラーがでます。
    素早い回答ありがとうございます。
    これから使わせて頂きます。

    >この段階で、作り手と利用者は反目しあうことになります。
    >こういう経験は藤野さん自身もたくさんしていると思います。
    >ですから、作り手は「利用者はいつまでも初心者のレベルに留まっていない」ということ>を自覚するべきです。

    この話はとても参考になりました。
    考えながらフォームの作成を行いたいと思います。

    >#cond( ( #is英字( #sstr([機械No],1,1 ), 1 ) = 0 .or #is数字( #sstr([機械No], >2, 2 ), 1 ) = 0 .or #文字数( [機械No] ) <> 3 ),"背景色'赤'" )

    こちらを使おうと思いますが、未完成の場合は、背景白なんて
    事が出来たら嬉しいです。可能でしたらご教示お願い致します。

引用返信 [メール受信/OFF]
■15176 / ResNo.14)  Re[6]: 制約について
□投稿者/ ONnoji -(2025/10/31(Fri) 11:34:24)
    > >この段階で、作り手と利用者は反目しあうことになります。
    > >こういう経験は藤野さん自身もたくさんしていると思います。
    > >ですから、作り手は「利用者はいつまでも初心者のレベルに留まっていない」ということ>を自覚するべきです。
    >
    > この話はとても参考になりました。
    > 考えながらフォームの作成を行いたいと思います。

    表の項目制約といったものは、表を作った人自身が使うのであれば、多少の不便も気にならないでしょう。

    しかし、PCに疎いひとが突然現れた威圧的なエラーメッセージに遭遇するとどうでしょうか??

    まず、エラーメッセージの意味が分からないことが多いでしょ。

    そして、「この表は使いにくいなぁ〜」という感想を持つと思います。

    キリマンジャロさんは、企業コンサルタントなのか存じませんが、

    PCを使ったアプリケーションを作成したりアドバイスをする場合には、ユーザインタフェースによく注意してください。

    特に唐突に表示されるメッセージは、ユーザの作業の流れを妨げるので要注意です。

    早い話が、PCに詳しい人と、PCに疎い人では、PC対する感性が異なっているということですよ。

    ちなみに、プログラミングは心理学とか、ユーザインターフェースの知識というのがあります。

    非常に有名な書籍があるので、会社の経費で買って貰って読んでみてください。

     誰のためのデザイン? 増補・改訂版 ―認知科学者のデザイン原論
     出版社 :新曜社; 増補・改訂版 (2015/4/23)
     発売日 :2015/4/23
     言語  :日本語
     単行本 :520ページ
     ISBN-10 :4092534647
     ISBN-13 :978-4788514348

    こういう本は売れないからバカ高いのですよ。会社に本代を払わせた方がいいですよ。アハハハ

    > >#cond( ( #is英字( #sstr([機械No],1,1 ), 1 ) = 0 .or #is数字( #sstr([機械No], >2, 2 ), 1 ) = 0 .or #文字数( [機械No] ) <> 3 ),"背景色'赤'" )
    >
    > こちらを使おうと思いますが、未完成の場合は、背景白なんて
    > 事が出来たら嬉しいです。可能でしたらご教示お願い致します。

     #cond( ( #is英字( #sstr([機械No], 1, 1), 1) = 0 .or #is数字( #sstr([機械No], 2, 2), 1) = 0 .or #文字数( [機械No] ) <> 3 ),"背景色'赤'" ) + #cond( ([機械No] = #u),"背景色'白'" )

    ですね。
引用返信 [メール受信/OFF]
■15177 / ResNo.15)  Re[7]: 制約について
□投稿者/ キリマンジャロ -(2025/10/31(Fri) 16:15:43)
    ONnojiさんありがとうございます。


    > ちなみに、プログラミングは心理学とか、ユーザインターフェースの知識というのがあります。
    >
    > 非常に有名な書籍があるので、会社の経費で買って貰って読んでみてください。
    >
    >  誰のためのデザイン? 増補・改訂版 ―認知科学者のデザイン原論
    >  出版社 :新曜社; 増補・改訂版 (2015/4/23)
    >  発売日 :2015/4/23
    >  言語  :日本語
    >  単行本 :520ページ
    >  ISBN-10 :4092534647
    >  ISBN-13 :978-4788514348
    >

    Amazonで3500円で売っていたので、会社に相談しようと思います。

    >  #cond( ( #is英字( #sstr([機械No], 1, 1), 1) = 0 .or #is数字( #sstr([機械No], 2, 2), 1) = 0 .or #文字数( [機械No] ) <> 3 ),"背景色'赤'" ) + #cond( ([機械No] = #u),"背景色'白'" )
    >
    > ですね。

    無事解決することが出来ました。ありがとうございました。
引用返信 [メール受信/OFF]
■15178 / ResNo.16)  Re[8]: 制約について
□投稿者/ キリマンジャロ -(2025/10/31(Fri) 16:16:31)
    > 無事解決することが出来ました。ありがとうございました。
解決済み!
引用返信 [メール受信/OFF]
■15179 / ResNo.17)  Re[9]: オートINF_Frameworkによる変換
□投稿者/ ONnoji -(2025/11/01(Sat) 13:05:41)
    2025/11/01(Sat) 15:08:51 編集(投稿者)

    ジェダイの桐さんへ

    > >#cond( ( #is英字( #sstr([機械No],1,1 ), 1 ) = 0 .or #is数字( #sstr([機械No], >2, 2 ), 1 ) = 0 .or #文字数( [機械No] ) <> 3 ),"背景色'赤'" )
    >
    > こちらを使おうと思いますが、未完成の場合は、背景白なんて
    > 事が出来たら嬉しいです。可能でしたらご教示お願い致します。

    答えは、

     #cond( ( #is英字( #sstr([機械No], 1, 1), 1) = 0 .or #is数字( #sstr([機械No], 2, 2), 1) = 0 .or #文字数( [機械No] ) <> 3 ),"背景色'赤'" ) + #cond( ([機械No] = #u),"背景色'白'" )

    です。

    なお、この式は オートINF_Framework が表の【項目の表示条件】を解析して、フォームのテキストボックスの【編集属性式】属性を自動的に設定したものです。

     ◇ ◇ ◇ ◇ ◇

    <注意する点1>

    表の【項目の表示条件】 ※1番めと2番めの条件式の順番を入れ替えるとNGです。
                 ・・・・・・・・・・・・・・・・・・・・・・・・・
    1番め

    ⇒ [] = #u
    ⇒ 背景色:白

    2番め

    ⇒ #is英字( #sstr([],1,1 ), 1 ) = 0 .or #is数字( #sstr([], 2, 2 ), 1 ) = 0 .or #文字数( [] ) <> 3
    ⇒ 背景色:赤

    オートINF_Framework を使用するのであれば、表(.tbx)の【項目の表示条件】だけをセットするだけでOKです。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    後は、オートINF_Framework がテキストボックスの【編集属性式】属性を自動的に設定します。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    つまり、フォームのテキストボックスの【編集属性式】は以下のように設定されます。

     #cond( ( #is英字( #sstr([機械No], 1, 1), 1) = 0 .or #is数字( #sstr([機械No], 2, 2), 1) = 0 .or #文字数( [機械No] ) <> 3 ),"背景色'赤'" ) + #cond( ([機械No] = #u),"背景色'白'" )

    <注意する点2>

    ここでもうひとつ注意があります。

    表の【項目の表示条件】の1番めを

     背景色:白 から 背景色:継承 に変更してもよさそうですが、

    そうすると、

     編集属性式が一つもありません。
     このまま保存しますか?

    が表示されます。

    つまり、背景色:継承 は何もしないのと同じなのです。
        ・・・・・・・・・・・・・・・・

    そうなると、オートINF_Framework がテキストボックスの[編集属性式]属性を自動的に設定しようとしても、

    【項目の表示条件】の設定情報が空欄なので何も設定できないのでした。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    (例) ([]=#u) , (#is英字( #sstr([],1,1), 1 ) = 0 .or #is数字( #sstr([], 2, 2), 1 ) = 0 .or #文字数( [] ) <> 3) CB3
           ↑
       背景色"CB"のカラーコードが空
       ・・・・・・・・・・・・・・

    というご注意です。(^^ゞ

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

■記事リスト / レス記事表示 → [親記事-9] [10-17]



■記事リスト / ▲上のスレッド
■15136 / 親記事)  配列変数の扱いについて
□投稿者/ ジェダイの桐 -(2025/10/22(Wed) 17:46:01)
    桐10s Windows10を使用しています。


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

    知りたい事

    配列変数は #対応番号 のような 要素数に対応する文字列で 要素数を取得する
    関数が有るのか?


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

    今やっている取得方法 例

    変数宣言 自動,文字列{ &月名Dim[12] }
    変数宣言 自動,文字列{ &targetNum }
    変数宣言 自動,整数 { &i, &loop, &step = 1 }

     &月名Dim = { "睦月","如月","弥生","卯月","皐月","水無月","文月", "葉月", "長月", "神無月", "霜月", "師走" }

     &loop = #配列要素数( "月名Dim" )

     繰り返し &i = 1, &loop, &step
       if ( &月名Dim[ &i ] = "葉月" )
         &targetNum = #文字列( &i )
         繰り返し中止
       end
     繰り返し終了

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

    こんにちは。

    今やっている方法で、要素数を取得できているんですが、要素数が 257 あります。
    なので、 #対応番号 のような関数があればなぁ・・・

    と思い質問しました。

    ヘルプを見てみたんですが、自分では見つける事が出来ませんでした。

    お時間がある時、分かる方回答頂けたら幸いですm(__)m





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

▽[全レス10件(ResNo.6-10 表示)]
■15148 / ResNo.6)  Re[4]: 配列変数の扱いについて
□投稿者/ ジェダイの桐 -(2025/10/24(Fri) 15:57:23)
    2025/10/24(Fri) 16:21:38 編集(投稿者)
    2025/10/24(Fri) 16:02:50 編集(投稿者)
    2025/10/24(Fri) 16:00:05 編集(投稿者)

    ONnojiさん


    こんにちは。


    >>257の配列に対して、必要であれば30回前後(動的に回数は変化します)チェックする事をやろうとしています。
    >
    > 1.ひとつの配列変数を用意して、同じ配列変数を最大30回前後チェックするということでしょうか?
    >                 ・・・・・・・・・・・・・・・・・・・


    そうでした。
    しかし、回避方法を考えました(^^ゞ


    > 2.それとも、チェックする配列変数はチェックする度に異なる配列変数になるのでしょうか??
    >                   ・・・・・・・・・・・・・・・・・・


    いえ。同一の配列変数です。


    > ひょっとして、部品展開・逆展開のような事をやろうとしていますか??


    やりたい事は、 ■14473 / inTopicNo.1)  主ウィンドウ と 補助ウィンドウについて と根本的に同じで
    生産指示を入力したら、指示した製品に使用する在庫有無の取得です。

    オペレータが生産指示をしても、材料在庫が無いと生産が出来ないのですが、
    現状はオペレータが材料在庫が有るか無いかが分からないんです。


    > もしも、1.ならば、配列変数の文字数に拠りますが、
    >
    > 事前に半角コンマ区切りストリング(ひも:文字列)を生成すれば、#対応番号( )関数が使えますよ。


    一番最初に カンマ区切りリスト 作成を試みました。
    だけど、意図した値にならなかったんです。

    文字数に引っかかったのだと思います。
    ( これに関しては、最初から気にはなっていたんです・・・ )


    それなら、配列にするか。と思ったんですが、要素番号取得に無駄打ちが多くなるせいか、
    処理速度が若干気になる様になったんです。


    それで、対応番号のような関数がないかと質問したのでした(^^ゞ


    > もしも、半角コンマ区切りストリング(ひも:文字列)が4000文字を超える場合には、複数の変数にしてもいいですよ。
    >
    > (例)
    >
    >  変数宣言 局所,文字列{ &mStringList1, &mStringList2, &mStringList3 }
    >   または
    >  変数宣言 局所,文字列{ &mStringListDim[3] }


    これに インスピレーションを受けて コードを作成しました。
    但し、リストを固定で作るのではなく 動的に 作成したかったので 変則的なコードかな? って自分で思うのですが。
    ( フォーム + イベント で固有変数を意図して使用する事が初めてです )


    ----------------------------------------------------------------------------------------------------------------------

    名札 メイン
     
     変数宣言 局所, 整数  { &mCNT }

     

    手続き定義開始 prcGETウレタン在庫数List( 参照 数値 &当日在庫数Dim[], 数値 &loop )
     変数宣言 自動,文字列 { &title = "prcGETウレタン在庫数List()", &msg }
     変数宣言 自動,文字列 { &comma = #jis( #hex("2C") ), &WQ = #jis( #hex("22") ) }
     変数宣言 自動,整数  { &i, &step = 1 }
     変数宣言 自動,整数  { &j }
     変数宣言 自動,整数  { &traceON }

     &traceON = 1
     条件 ( &traceON ) トレース出力 &title + "を実行開始しました"

     &当日在庫数Dim = { "" }

     ジャンプ 行番号 = 先頭
    ┌繰り返し &i = 1, &loop, &step
    │ &当日在庫数Dim[ &i ] = [当日在庫数]
    │ ジャンプ 行番号 = 次行
    │ 条件 ( &traceON ) トレース出力 _&i, " ", _&当日在庫数Dim[ &i ]
    └繰り返し終了

     ジャンプ 行番号 = 先頭
     &j = 1
     &mCNT = 1
     コマンド "変数宣言 固有,文字列 { &gウレタン品名List" + #STR( &mCNT ) + " }"

    ┌繰り返し &i = 1, &loop, &step
    │┌if ( &j <= 100 )
    ││ コマンド "&gウレタン品名List" + #STR( &mCNT ) + " = &gウレタン品名List" + #STR( &mCNT ) + " + #条件選択( &gウレタン品名List" + #STR( &mCNT ) + " <> #u, " + &WQ + &comma + &WQ + " ) + " + &WQ + [ウレタン品名] + &WQ
    ││ &j = &j + 1
    │├else
    ││ &mCNT =&mCNT + 1
    ││ コマンド "変数宣言 固有,文字列 { &gウレタン品名List" + #STR( &mCNT ) + " }"
    ││ コマンド "&gウレタン品名List" + #STR( &mCNT ) + " = &gウレタン品名List" + #STR( &mCNT ) + " + #条件選択( &gウレタン品名List" + #STR( &mCNT ) + " <> #u, " + &WQ + &comma + &WQ + " ) + " + &WQ + [ウレタン品名] + &WQ
    ││ &j = 2
    │└end
    │ ジャンプ 行番号 = 次行
    └繰り返し終了

     条件 ( &traceON ) トレース出力 &title + "を実行終了しました"

    手続き定義終了

    手続き定義開始 prcGETウレタン仕入情報( 整数 &生産計画ウレタン部TbxNum, 日時 &targetDate, 参照 整数 &canProceed, 参照 文字列 &仕入ウレタン品名NumList, 整数 &loop ) /* &loop = &mCNT */
     変数宣言 自動,文字列 { &title = "prcGETウレタン仕入情報()", &msg }
     変数宣言 自動,文字列 { &targetウレタン品名 }
     変数宣言 自動,文字列 { &comma = #jis( #hex("2C") ) }
     変数宣言 自動,整数  { &仕入計画ウレタン部TbxNum }
     変数宣言 自動,整数  { &i, &step = 1, &offset, &targetNum }
     変数宣言 自動,整数  { &traceON, &return, &logical }

     &traceON = 1
     条件 ( &traceON ) トレース出力 &title + "を実行開始しました"

     &canProceed = 0
     &仕入ウレタン品名NumList = #u

     表 &mTbxFileName仕入計画ウレタン部, モード = 参照
     &仕入計画ウレタン部TbxNum = #is表

     検索 [納期] { = &targetDate }, 文字比較方法 = 自動, 部分一致検索 = しない, 自動調整 = しない, 終了状態 = &return
    ┌if ( &return = 1 )
    │ 絞り込み [納期] { = &targetDate }, 文字比較方法 = 自動, 部分一致検索 = しない
    │ 条件 ( &traceON ) トレース出力 _&loop
    │ ジャンプ 行番号 = 先頭
    │┌繰り返し ( .not #eof )
    ││ &logical = 0
    ││┌繰り返し &i = 1, &loop, &step
    │││ &targetウレタン品名 = [ウレタン品名]
    │││┌if ( &targetウレタン品名 <> "35×70×500" )
    ││││ コマンド "&logical = #対応番号( &gウレタン品名List" + #STR( &i ) + ", &targetウレタン品名 )"
    ││││ 条件 ( &traceON ) トレース出力 _&logical
    ││││ 条件 ( &traceON ) トレース出力 "if ( &logical <> 0 ) : ", if ( &logical <> 0 )
    ││││┌if ( &logical <> 0 )
    │││││ &offset = ( &i - 1 ) × 100
    │││││ &targetNum = &logical + &offset
    │││││ &仕入ウレタン品名NumList = &仕入ウレタン品名NumList + #条件選択( &仕入ウレタン品名NumList <> #u, &comma ) + #文字列( &targetNum )
    │││││ 条件 ( &traceON ) トレース出力 _&i, "  ", _&offset, "  ", _&targetNum
    │││││ 条件 ( &traceON ) トレース出力 _&仕入ウレタン品名NumList
    ││←┼┼─繰り返し中止
    ││││└end
    │││└end
    ││└繰り返し終了
    ││ ジャンプ 行番号 = 次行
    │└繰り返し終了

    │ &canProceed = 1
    └end

     終了 表 &仕入計画ウレタン部TbxNum
     編集表 &生産計画ウレタン部TbxNum

     条件 ( &traceON ) トレース出力 &title + "を実行終了しました"

    手続き定義終了

    ----------------------------------------------------------------------------------------------------------------------

    意図した、&仕入ウレタン品名NumList の取得は出来ました(^^ゞ
    そして、処理速度も比較にならない程、早くなりました。


    ところが、


    > 配列変数にこだわらないで、表(.tbx)にデータを展開してもいいかもしれません。


    うにんさんにも、同じアドバイスを受けたんですが、在庫表.tbx がある訳ですから、検索して
    #行番号 で取得すれば 同じ結果を求める事が出来たなと気付きました・・・


    この思い込みは、自部署で且つ自分のPCで行う作業ではなく、自部署で自分のデータ(在庫表.tbx)を他部署(生産指示を出す部署)へ
    渡して行う作業の為、何故か発想を難しくしていたからだと思います。


    とは言え、頭の体操にもなり今までの自分では考えつかない、動的な文字列リスト取得方法が分かって勉強になった事は事実なのです。


    アドバイスありがとうございましたm(__)m
    今回の経験は、財産になると思います!


    p.s.

    他部署のフォーム( サブフォーム有り )の為、Thin_INF_Framework は組み込んでいませんm(__)m




引用返信 [メール受信/OFF]
■15150 / ResNo.7)  Re[5]: 配列変数の扱いについて
□投稿者/ ONnoji -(2025/10/24(Fri) 16:27:08)
    2025/10/25(Sat) 16:21:44 編集(投稿者)

    > 他部署のフォーム( サブフォーム有り )の為、Thin_INF_Framework は組み込んでいませんm(__)m

    確か・・・、メインフォームにだけ適用すれば使えるハズですよ。
          ・・・・・・・・・・・・・・・・・・・・・・

    サブフォームに組み込まなければOKのハズだったと・・・(^^ゞ
    ・・・・・・・・・・・・・・・・・・・・

     ◇ ◇ ◇ ◇ ◇ ◇ ◇

    桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    https://silicon7565.cloudfree.jp/guide/guide_Part2.htm#section37-4
    37.4 INF_Framework とメイン&サブフォーム

     拙作:INF_Framework は、当初はメイン&サブフォームでも動作するようになっていました。
    しかし、メイン&サブフォームでは局所変数が上書きされるために、メイン側とサブフォーム側のフォーカスが切り替わるたびに、
    テキストデータを外部へ値を出力して、保存してあったテキストデータを読み込んでというスワップ動作をしていました。
     しかし、手間が掛かる割には、メイン&サブフォームを利用することが非常に少ないので第3版から完全にスワップ動作を中止しました。
    これによって第3版では、メインフォームだけにしか拙作:INF_Framework を導入出来なくなりました。
    ※サブフォーム側に拙作:INF_Framework を導入しようとしても、自動的に検知して導入をキャンセルするようになっています。

引用返信 [メール受信/OFF]
■15158 / ResNo.8)  Re[6]: 配列変数の扱いについて
□投稿者/ ONnoji -(2025/10/25(Sat) 11:42:02)
    2025/10/26(Sun) 11:31:27 編集(投稿者)

    >>他部署のフォーム( サブフォーム有り )の為、Thin_INF_Framework は組み込んでいませんm(__)m
    >
    > 確か・・・、メインフォームにだけ適用すれば使えるハズですよ。
    >       ・・・・・・・・・・・・・・・・・・・・・・
    >
    > サブフォームに組み込まなければOKのハズだったと・・・(^^ゞ
    > ・・・・・・・・・・・・・・・・・・・・
    >
    > サブフォーム側からメインフォームのコマンドボタンをメソッドで実行すれば・・・
    >
    > Thin_INF_Framework のランチャーとか使えるでしょ。アハハハハha

    試してみました。

    ・メインフォームに Thin_INF_Framework を導入する

    ・サブフォームには Thin_INF_Framework を導入しない
     ・・・・・・・・・・・・・・・・・・・・・・・・

    状態で、サブフォームのイベント処理(.kex)に以下のプロシージャを作成する

    手続き定義開始 cmdメインの実行Click( )
     変数宣言 自動,文字列{ &icon, &title = "cmdメインの実行Click( )", &msg }

     メソッド呼び出し ハンドル = &hwindow, @INFcmdWhoAreYou.実行( ) /* メインフォームに配置されたコマンドボタンを実行 */

     メソッド呼び出し ハンドル = &hwindow, @cmdテストClick.実行( )  /* メインフォームに配置されたコマンドボタンを実行 */

    手続き定義終了

    ↑このように[実行]メソッドが実行出来ますよ。

    メインフォームのオブジェクトを指定する場合には、ハンドル = &hwindow パラメータが必要です。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    p.s.

    メイン&サブフォームだから Thin_INF_Framework が使えないというのは誤解・迷信ですよ。

    メインフォームでは普通に使えますよ。

    サブフォームでは INF_Framework のプロシージャが実行出来ないので、サブフォームからメインフォームのコマンドボタンをメソッドで実行してください。

    サブフォームに導入できない理由は、サブフォームの[名札 メイン]でINF_FW の局所変数が上書きされるからです。

    メイン&サブフォームというのは、複数のイベント処理(.kex)がオープンされるわけです。

    だから、うっかりするとサブフォームのイベント処理(.kex)の[名札 メイン]で同名の局所変数が上書きされるわけです。

    こういう所に気を付けなければならないので結構神経使いますよ。

    p.p.s.

    当初はサブフォームでも EZW機能( 項目の列固定やスクロール )が使いたかったのです。

    しかし、Thin_INF_Framework は、EZW機能( 項目の列固定やスクロール )が出来ないサブセットなワケですから、

    局所変数の上書きにだけ注意すればいいとカナと割り切れますね。

引用返信 [メール受信/OFF]
■15160 / ResNo.9)  Re[7]: 配列変数の扱いについて
□投稿者/ ジェダイの桐 -(2025/10/27(Mon) 09:27:49)
    ONnojiさん


    おはようございます。


    > ・メインフォームに Thin_INF_Framework を導入する
    > ・サブフォームには Thin_INF_Framework を導入しない
    >  ・・・・・・・・・・・・・・・・・・・・・・・・

    > メイン&サブフォームだから Thin_INF_Framework が使えないというのは誤解・迷信ですよ。
    > メインフォームでは普通に使えますよ。

    > サブフォームに導入できない理由は、サブフォームの[名札 メイン]でINF_FW の局所変数が上書きされるからです。
    > メイン&サブフォームというのは、複数のイベント処理(.kex)がオープンされるわけです。
    > だから、うっかりするとサブフォームのイベント処理(.kex)の[名札 メイン]で同名の局所変数が上書きされるわけです。

    > しかし、Thin_INF_Framework は、EZW機能( 項目の列固定やスクロール )が出来ないサブセットなワケですから、
    > 局所変数の上書きにだけ注意すればいいとカナと割り切れますね。


    なるほど。
    私は間違った認識をしていました。

    メインフォームのみに組み込めば、使用が可能なのですね。

    認識を改めます。

    p.s.

    Thin_INF_Framework とは全く関係なく、私自身の問題なのですが、
    やはり、サブフォームがシックリきません・・・
    ( 苦手意識が有ります・・・ )


引用返信 [メール受信/OFF]
■15161 / ResNo.10)  Re[8]: 配列変数の扱いについて
□投稿者/ ONnoji -(2025/10/27(Mon) 16:44:35)
    > やはり、サブフォームがシックリきません・・・
    > ( 苦手意識が有ります・・・ )

    もちろん、個人の感想ですが・・・(^^ゞ

    以下同文、だなぁ〜。アハハハha。
    ・・・・

    以上

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

■記事リスト / レス記事表示 → [親記事-9] [10-10]






11324

Mode/  Pass/

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

- Child Tree -
- Antispam Version -