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

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

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



■記事リスト / ▼下のスレッド
■14473 / 親記事)  主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/08(Mon) 16:23:57)
    2024/07/09(Tue) 17:44:50 編集(投稿者)
    2024/07/08(Mon) 16:26:00 編集(投稿者)

    桐10s Windows10を使用しています。


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


    やりたい事

     主ウィンドウの情報 で 補助ウィンドウのデータを絞り込み
     
     ある条件時には 主ウィンドウの情報 で 補助ウィンドウのデータを計算したい

     補助ウィンドウ を直接触ることはない


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


    こんにちは。


    計画表.TBX
    計画表.WFX 主ウィンドウ
    在庫表.TBX
    在庫表.WFX 補助ウィンドウ
    計画表.kex  があります。


    計画表.TBX には
     
     [商品名]    (文字列)
     [受注数]    (数値)
     [出荷準備日]  (日時)
     [出荷日]    (日時)

    の情報が有り [商品名] と [受注数] と [出荷日] は必ず情報が入っています。


    在庫表.TBX には

     [商品名]    (文字列)
     [在庫数]    (数値)

    の情報が入っています。


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


    計画表.WFX に 在庫表.WFX(ポップアップ) を開くコマンドボタンを作成しています。

    1、

    計画表.WFX に レコード移動 で &商品名 に [商品名] を代入しています。

    計画表.WFX の レコード移動毎 に 在庫表.WFX の [商品名] を &商品名で絞り込み 計画表.WFX へ戻る。

    流れ

    起点 計画表.WFX レコード移動 → 在庫表.WFX 絞り込み → 計画表.WFX に戻る

    2、

    計画表.WFX の [出荷準備日] が 未定義から定義になった時(初めて入力された) &受注数 に [受注数] を代入する。

    代入した &受注数 を 在庫表.WFX の [在庫数] から &受注数 を引く


    若しくは

    計画表.WFX の [出荷準備日] が 定義から未定義になった時(出荷準備を止めた) &受注数 に -[受注数] を代入する。

    代入した &受注数 を 在庫表.WFX の [在庫数] から &受注数 を引く


    流れ

    起点 計画表.WFX [出荷準備日] が 初めて入力される .or 入力削除される → 在庫表.WFX 絞り込み → 在庫表.WFX [在庫数] 計算 → 計画表.WFX に戻る


    1と2 を実現する方法が知りたいです。


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


    自分の考えとしては、 レコード移動 と 入力前 と 入力後 と ソース値更新 を使用するのではと思いプログラムを作成しました。

    主ウィンドウ → 補助ウィンドウ → 補助ウィンドウでやりたい事実行 → 主ウィンドウに戻る

    の方法が思いつかないです。


    分かる方、お時間のある時教えて頂ければ幸いです。

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

▽[全レス42件(ResNo.38-42 表示)]
■14516 / ResNo.38)  Re[5]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/11(Thu) 11:08:54)
    2024/07/11(Thu) 11:27:12 編集(投稿者)

    ONnojiさん


    おはようございます。


    > ということで、モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」は難易度が中程度になります。
    > 【難易度】
    >  高い  モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    >  ↑
    >  │   モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」
    >  │
    >  │   モードレスな「フォーム+イベント処理」+「ステルスな表」
    >  ↓
    >  低い  モードレスな「フォーム+イベント処理」


    今回、サンプル提供頂いたデザインはこのチャート表でいえば中間ですね。
    凄くポジティブに考えれば、中間ステップまでこれたなと捉える事が出来ます。
    勿論、サンプル の プログラムを理解し、使いこなせる事が前提です。


    一方 モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」 に関しては
    ■14350 期間絞込でのエラー時対応について の時 ONnojiさんに プログラム提供 と 考え方 を教えて頂いたので、教えて頂いた範囲は理解出来ています。
    (範囲外の概念の場合は未知数ですが・・・)


    あの時点で モードレスな「フォーム+イベント処理」+「ステルスな表」 より一つ上のデザインを希望してしまっていたのですね。


    最終的には モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」 を目指したいですが、

    モードレスA → こんにちは。モードレスB → モードレスB で こんにちは。モードレスB を表示

    モードレスB → こんにちは。モードレスA → モードレスA で こんにちは。モードレスA を表示


    と言う、やり取りを作る所からというイメージを抱きました。
    (当分先の事になりますが・・・)


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


    そもそも、どうして モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    を発想したかと言うと単純に フォーム と サブフォーム の関係に苦手意識があるからです。


    単純に表示だけする場合には、サブフォームはありと思いますが、プログラムを書くと言う事になれば別の話になります。


    昔、メインフォーム側ではプログラムが動くのに、サブ側では一部しか動かない。
    と言う事がありました。今にして思えば ウインドウハンドル番号問題 もありそうです。


    が、とにかく メイン サブ の関係がややこしいので それなら モードレスで開いた方が分かりやすいな 位の発想だったんです。


    結果、最高難易度で撃沈・・・
    でも、道しるべ(チャート表)を教えて頂いたので、その時その時の自分の理解度とチャート表を照合して、設計をデザインしていきます(^^ゞ


    今回も本当にありがとうございましたm(__)m
引用返信 [メール受信/OFF]
■14517 / ResNo.39)  Re[6]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ONnoji -(2024/07/11(Thu) 12:50:35)
    2024/07/11(Thu) 13:21:28 編集(投稿者)

    > そもそも、どうして モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    > を発想したかと言うと単純に フォーム と サブフォーム の関係に苦手意識があるからです。
    > 単純に表示だけする場合には、サブフォームはありと思いますが、プログラムを書くと言う事になれば別の話になります。
    > 昔、メインフォーム側ではプログラムが動くのに、サブ側では一部しか動かない。
    > と言う事がありました。今にして思えば ウインドウハンドル番号問題 もありそうです。

    メイン&サブフォームの場合、サブフォームはメインフォームにラップ(包含)されているので、ウィンドウハンドル番号はメインと同じですよ。

    ハンドル番号は同じですが、[オブジェクト操作]と[メソッド呼び出し]は @メインのsubformObjectName@サブのobjectName で指定します。

    例えば、

     メソッド呼び出し 戻り値 = &return, @subformAccept.@txt日付_入力用.フォーカス設定()
     メソッド呼び出し 戻り値 = &return, @subformAccept.@cmd訂正.実行()

    これは、少し前の スケジュール表_main.kex より。

    ユーザの操作で発生するイベントは、操作対象のフォームのものですよ。

    つまり、メインとサブのどちらが現在フォーカスを持っているかが重要になってきます。

    > が、とにかく メイン サブ の関係がややこしいので それなら モードレスで開いた方が分かりやすいな 位の発想だったんです。
    > 結果、最高難易度で撃沈・・・
    > でも、道しるべ(チャート表)を教えて頂いたので、その時その時の自分の理解度とチャート表を照合して、設計をデザインしていきます(^^ゞ

    ちなみに、私( ONnoji )がメイン&サブフォームが大嫌いなことは割と有名カモしれませんが・・・アハハha

    そんなわけで、前回のチャートではメイン&サブフォームは敢えて無視しました。

    しかし、チャートに付け加えるとすれば以下のような感じでしょうかねぇ〜。

    【難易度】

     最高  メイン「フォーム+イベント処理」+サブ「フォーム+イベント処理」
     ↑
     │   メイン「フォーム+イベント処理」+サブ「フォームのみ」
     │
     │   メイン「フォームのみ」+サブ「フォームのみ」
     ↑
     高い  モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
     ↑
     │   モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」
     │
     │   モードレスな「フォーム+イベント処理」+「ステルスな表」
     ↓
     低い  モードレスな「フォーム+イベント処理」

    というのも、メイン&サブフォームというのは、ウィンドウの数が2つか1つかの違だけで、
                          ・・・・・・・・・・・・・・・・・・

     モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」≒ メイン「フォームのみ」+サブ「フォームのみ」

    ニアリーイコール(≒)なんですよね。
    ・・・・・・・・・・・・・・・

     最高  メイン「フォーム+イベント処理」+サブ「フォーム+イベント処理」
     ↑
     │   メイン「フォーム+イベント処理」+サブ「フォームのみ」
     │
     高い  メイン「フォームのみ」+サブ「フォームのみ」


    さらにイベント処理が付け加わると、メインフォームの局所変数とサブフォームの局所変数に同名のものがあると後から宣言(または代入)した変数に上書きされるワケです。
                                         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    もしも、そのような事態になると、もうお気づきだと思いますが、プログラムが破綻してしまうんですよ。
                                  ・・・・・・・・・・・・・

    という由緒正しい理由から、私( ONnoji )は、メイン&サブフォームを避けているのです。アハハハha。


    > 最終的には モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」 を目指したいですが、
    > モードレスA → こんにちは。モードレスB → モードレスB で こんにちは。モードレスB を表示
    > モードレスB → こんにちは。モードレスA → モードレスA で こんにちは。モードレスA を表示
    > と言う、やり取りを作る所からというイメージを抱きました。

    アラ!懐かしいですね、思い出してしまいました。

    私は20年以上前にAフォームとBフォームでジャンケンの勝負をさせようと思ったことがありましたっけ。

    ただし、考えただけで実際には作りませんでしたけれどね。グァハハハ。

    ここにある「こんにちは」はアラン・ケイが言う所のメッセージングのような意味かと思いますが・・・(^^ゞ

    実に面白いですね。v(^^)v

    ちなみに、拙作フレームワーク:INF_Framework の場合には、

     ** HDLCOM var 第 2.1 版で追加された変数
     変数宣言 局所,文字列{ &HDLCOMmSendMacro, &HDLCOMmReceiveMacro }
     変数宣言 局所,整数 { &HDLCOMmOnMacro, &HDLCOMmReceiveReady = 1 }

     一般手続き:HDLCOMprcMacroSend( 整数 &hdl, 文字列 &sendMacro, 参照 整数 &done )

    といった具合に、ハンドル+通信( communication )の意味合いで HDLCOM という機能名を用意していますよ。


引用返信 [メール受信/OFF]
■14518 / ResNo.40)  Re[1]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ななーし -(2024/07/11(Thu) 14:33:25)
    ジェダイの桐さんこんにちは。

    過去話で上記の連携フォーム作ったのですが、結構バグが出て、
    現在は以下のようなやり方になりました。
    (作業者の人為的なバグで予想外なことをやってくれまして・・・)

    目的:発注システムで設備情報を確認できるようにしたい。

    過去:右に情報用のフォームを表示、行移動で情報が変わるシステム
       右の情報用フォーム内で検索等が可能なシステム

    現在:行を右クリック時にモーダルフォームで該当行に関する情報を
       検索し表示するシステムに変更

    過去システムの際は自分で作ったのもあり、行移動イベントごとにサブウィンドウの情報が切り替わったことで行移動にものすごく時間がかかりました。
    結論、見たい情報は右クリックやコマンドボタン押すなどイベントタイミングで
    適切なモーダルウィンドウ(一時的に確認するウィンドウを表示、確認後閉じる)
    にし、共有変数を作成し、確認した数字がいいならメインフォームに代入する
    これくらいにすると、後の開発が楽になります。
引用返信 [メール受信/OFF]
■14519 / ResNo.41)  Re[7]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/11(Thu) 15:55:18)
    ONnojiさん


    >  メソッド呼び出し 戻り値 = &return, @subformAccept.@txt日付_入力用.フォーカス設定()
    >  メソッド呼び出し 戻り値 = &return, @subformAccept.@cmd訂正.実行()


    @subformAccept これが正直謎でした。
    サブフォームの指定でどこの段階で代入したっけ??
    と思っていたのですが、


    > ユーザの操作で発生するイベントは、操作対象のフォームのものですよ。
    >
    > つまり、メインとサブのどちらが現在フォーカスを持っているかが重要になってきます。


    この文章がヒントとなり、試しにメインフォームの サブフォーム部分で右クリック → オブジェクトの属性 → サブフォームタブ → オブジェクト名


    しっかりと定義されていました。
    サブフォームを使う事がないので、発想が出来ませんでした。


    理解度が上がりました。ありがとうございますm(__)m


    > 【難易度】
    >
    >  最高  メイン「フォーム+イベント処理」+サブ「フォーム+イベント処理」
    >  ↑
    >  │   メイン「フォーム+イベント処理」+サブ「フォームのみ」
    >  │
    >  │   メイン「フォームのみ」+サブ「フォームのみ」
    >  ↑
    >  高い  モードレスな「フォーム+イベント処理」+モードレスな「フォーム+イベント処理」
    >  ↑
    >  │   モードレスな「フォーム+イベント処理」+モーダルな「フォーム+イベント処理」
    >  │
    >  │   モードレスな「フォーム+イベント処理」+「ステルスな表」
    >  ↓
    >  低い  モードレスな「フォーム+イベント処理」
    >


    より詳しいチャート表ありがとうございます!


引用返信 [メール受信/OFF]
■14520 / ResNo.42)  Re[2]: 主ウィンドウ と 補助ウィンドウについて
□投稿者/ ジェダイの桐 -(2024/07/11(Thu) 16:00:21)
    ななーしさん


    こんにちは。


    > 目的:発注システムで設備情報を確認できるようにしたい。
    >
    > 過去:右に情報用のフォームを表示、行移動で情報が変わるシステム
    >    右の情報用フォーム内で検索等が可能なシステム
    >
    > 現在:行を右クリック時にモーダルフォームで該当行に関する情報を
    >    検索し表示するシステムに変更


    結局、どんなに気を使ったプログラムを作っても、 原点は使用者 に有ると言う事なんですよね。


    そして、プログラムをアップデートしていく。


    結果として、使用者に喜ばれ 開発者はノウハウが溜まる。


    私もこういう流れになる様に、日々精進します!


    お話を聞かせて頂きありがとうございます。
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-19] [20-29] [30-39] [40-42]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■14648 / 親記事)  拡張子CSVで項目間をカンマで区切り書き出したい
□投稿者/ hiro -(2024/11/01(Fri) 23:37:08)
    今まで銀行へ全銀手順のTXTデータでやり取りしてたのですが、今後LTAXの方にデータ送信することになりました。
    今までは@ヘッダレコード(@の表は項目が「区分」「種別」「委託者」・・幾つかあり最後の項目「Z」で全項目を連結しています。以下AからCも同じ。)、Aデータレコード、Bフッタレコード等を送信表のA項目に@の「Z」Aの「Z」Bの「Z」Cの「Z」順番に読み込んでまとめてA項目をTXTで書き出す事で出来ていました。

    今度LTXは各項目間はカンマで区切って@ABCをつなげ、データの拡張子はCSVとしてデータを作らないといけないのですが、まず項目間をカンマ区切りで「Z」項目で連結させることは出来ないでしょうか?
    別のいい方法があればそれでも構いません、よろしくお願いします。
引用返信 [メール受信/OFF]

▽[全レス32件(ResNo.28-32 表示)]
■14682 / ResNo.28)  Re[9]: 拡張子CSVで項目間をカンマで区切り書き出したい
□投稿者/ ONnoji -(2024/11/04(Mon) 23:36:14)
    2024/11/05(Tue) 00:03:55 編集(投稿者)

    > (最初はdat拡張子は作れないと思っていましたので)同じ感じで作ってましたが項目間はカンマ区切りで無いといけないとあったので
    > 09ですとタブ区切りのようですが、それで私は@ヘッダ、データ、トレーラー、エンド表の項目をカンマ区切りでテキスト出力し、(元々各表は1レコード120桁で合っています)

    > A別表でその全項目をタブ形式で読み込んでBCSV書き出しする事で、
    > カンマ区切りのCSVが出来ていました、ただ出来たファイルを桁数で数えると1レコードが120桁+項目間のカンマ数になって120桁でなくなるけど
    > カンマ区切りだから良いのかな?
    > 実際に読み込んでみないと分からないな、という状態でした。

    桁数が云々というのは、普通の場合には固定長(桁:バイト単位)のデータファイルの場合です。

    一般的に、csv と言う場合には、コンマで区切られていれば良いのですが・・・

    しかし私( ONnoji )は、「仕様書 個人住民税(特別徴収)CSVレイアウト仕様書(CSVフォーマット).xlsx」を隅から隅まで目を通したワケではありませんので、

    仕様に関しては、必ずご自身で仕様書を精読してください。

    悪しからず。m(__)m

    > その後、印字コマンドでDAT形式が出来ると言う事で、それにもトライして元々使っていた全銀手順の形式をdat拡張子に変えた状態です。
    > (地銀協フォーマットにした事でutf-8はもう関係なくなるとは思いますが)
    > 今はカンマ区切りにしたCSVと、地銀協フォーマットのdatの2つが試せる状態です

    印字コマンドでテキストファイルが作れますが、出力するファイルの拡張子は自由です。
                          ・・・・・・・・・・・・・・・・・

    世の中には、拡張子(.dat)のファイルがありますが、内容は千差万別です。

    それは、ファイルを利用するサービスやアプリケーションによって内容が異なるからです。

    だから、一般的な拡張子(.dat)のファイルも、一般的な拡張子(.csv)ファイルというのも存在しませんよ。

    つまり、今回の仕様に基づいた拡張子(.dat)のファイルと、今回の仕様に基づいた拡張子(.csv)ファイルと考えてください。
        ・・・・・・・・・・・・・・・・・・・・・  ・・・・・・・・・・・・・・・・・・・・

    p.s.

    仕様書の

    ・個人住民税(特別徴収)CSVレイアウト仕様書(CSVフォーマット).xlsx

    ・個人住民税(特別徴収)ファイルレイアウト定義書(地銀協フォーマット).xlsx

    この2つの仕様書がありますが、地銀協フォーマットがいわゆる固定長ですね。

    CSV フォーマットの方は、(地銀協フォーマット)にコンマで区切る点が付け加えられただけの違いようですね。

    それにしても、これらの仕様書の内容はワカリニクイですね。

    ちなみに、一般的な「全銀フォーマット」もしかりで、どれもこれも超ワカリニクイです。

    もう少し、分かり易い仕様書を書いて欲しいと思いますが・・・技術屋さんが書いたものをネット上に丸投げしているようですから期待できませんね。

    繰り返しになりますが、仕様に関しては、必ずご自身で仕様書を精読してください。

    悪しからず。m(__)m

    p.p.s.

    蛇足です。

    雑感を続けると・・・

    元々は、シフトJIS のファイルが標準だったのでしょうね。

    ところが、UTF-8 のファイルがよく使われるようになったので、新しい仕様を追加したのでしょう。
         ・・・・・・・・・・・・・・・・・・・・・・・

    その際に、エクセルでも読めるようにコンマ区切り、つまり CSV の仕様にしたのかなぁ〜???
         ・・・・・・・・・・・・

    なんでんかんでん、エクセルを基準に考える技術者が多いという事でしょうかねぇ〜。

    当方は、そんなところだろうと、妄想しています。アハハハハha

    ちなみに、普通の場合には、誰でも csv = 可変長 だと思っているんですよ。

    でも、固定長のままながら、単にエクセルで開けるからという理由で、コンマの区切りを使っただけというのが実情でしょうかね。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    全部、タラレバですよ。(^^ゞ



引用返信 [メール受信/OFF]
■14683 / ResNo.29)  Re[10]: 拡張子CSVで項目間をカンマで区切り書き出したい
□投稿者/ hiro -(2024/11/05(Tue) 15:11:43)
    No14682に返信(ONnojiさんの記事)
    ONnojiさん、皆さまどうもありがとうございました。
    ようやく解決しました
    2つのパターンともダメで最終的に地銀協フォーマットでやっていたのにUTF-8の設定のままになっていたのが原因のようでした(マニュアルではSJIS)
    今回には関係ありませんが、地銀協フォーマットなのでUTF-8設定は要りませんがヘルプの印字コマンド説明でSJIS出力=する=しないでUTF-16が書かれていますがUTF-16は誤りだそうで、SJIS出力=しない、にした時、環境設定が生きてくるそうです。
    確かUTF-8に変える前はSJISだったと思うので、結局、今まで使ってたデータ形式を拡張子.datにするだけで済んだ気がします。遠回りしましたw

解決済み!
引用返信 [メール受信/OFF]
■14684 / ResNo.30)  Re[11]: 拡張子CSVで項目間をカンマで区切り書き出したい
□投稿者/ ONnoji -(2024/11/05(Tue) 16:35:18)
    2024/11/05(Tue) 17:23:42 編集(投稿者)

    訂正がありました。m(__)m

    No14675に返信(ONnojiさんの記事)
    > 2024/11/05(Tue) 16:32:04 編集(投稿者)
    > 2024/11/04(Mon) 19:07:44 編集(投稿者)

    > [印字開始]コマンドのパラメータは
    >
    >   印字開始  <ファイル名>,\
    >    追加,\
    >     SJIS出力 = しない|する,\
    >      制御文字展開 = しない|する,\
    >       終了状態 = <変数名>
    >
    > と変わっていないようですね。 ^^) _旦~~


    2024.11.06 追記

    【訂正】

    × と変わっていないようですね。 ^^) _旦~~

    〇 SJIS出力 パラメータを省略 または SJIS出力 = しない の時に環境設定の設定を反映します。

    注意:ただし、UTF-8 で、先頭から文字列が ASCIIコード の場合には、メモ帳ではシフトJIS と UTF-8の判別に失敗して、UTF-16LE と誤判断してしまいます。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

       したがって、メモ帳で確認する場合には、UTF-8(BON付き), UTF-16LE, UTF-16BE のいずれかの設定でテストしてください。
             ・・・・・・・・・・・・

       従って、正確に判断する場合には、バイナリエディタで確認することをお勧めします。
           ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    p.s.

    今やブラウザ関係では、UTF-8 が全盛です。

    しかし、困ったことに、UTF-8 と ANSI は区別できません。

    もともと、UTF-8 を除くUnicode では、BOM (Byte Order Mark:バイト・オーダー・マーク)がありますが、

    UTF-8 には、LEもBEも無いので、BOM がありませんでした。
    ・・・・・・・・・・・・

    しかし、前述のように UTF-8 と ANSI は区別できないために、あえてUTF-8 にもBOM が付けられるようになった経緯があります。
               ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    次善の策のように思えるUTF-8(BON付き)ではありますが、世の中にシフトJIS が存在し続ける限り、役に立つ仕様です。

    ちなみに、UTF-8 と ANSI は区別できないのは基本的な問題ですので、

    桐に限ったことではなく、エクセルや他のソフトでも同じです。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    桐やMSオフィスとのデータ交換を目的としている場合には、UTF-8(BON付き)を選択する方がトラブルが無くベターです。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    ただし、今回話題にしたネットのサービスのように、

    インターネット上でのやり取りでは、BOM 無しのUTF-8 が標準になっていることが多いことでしょう。(^^ゞ
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

引用返信 [メール受信/OFF]
■14685 / ResNo.31)  Re[12]: 拡張子CSVで項目間をカンマで区切り書き出したい
□投稿者/ ONnoji -(2024/11/05(Tue) 17:16:43)
    > ONnojiさん、皆さまどうもありがとうございました。
    > ようやく解決しました

    ずいぶんと遠回りしましたね。

    > 2つのパターンともダメで最終的に地銀協フォーマットでやっていたのにUTF-8の設定のままになっていたのが原因のようでした(マニュアルではSJIS)
    > 今回には関係ありませんが、地銀協フォーマットなのでUTF-8設定は要りませんがヘルプの印字コマンド説明でSJIS出力=する=しないでUTF-16が書かれていますがUTF-16は誤りだそうで、
    > SJIS出力=しない、にした時、環境設定が生きてくるそうです。

    これは、2024年6月の桐sSL/桐sLTの仕様変更に伴う事柄です。

    オンラインヘルプ等にも追記していただきたいですね。>K3

    > 確かUTF-8に変える前はSJISだったと思うので、結局、今まで使ってたデータ形式を拡張子.datにするだけで済んだ気がします。遠回りしましたw

    その通りです。

    少し前にも。

      ■TXTファイルからDATファイルに変更
      http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=all&namber=14579&type=0&space=0&no=0

      ■印字コマンド
      http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=all&namber=14584&type=0&space=0&no=0

      ■一括処理書き方
      http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=all&namber=14597&type=0&space=0&no=0

      ■9000バイトの出力
      http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=all&namber=14619&type=0&space=0&no=0

    ↑のような、非常によく似たやり取りがあり、すったもんだしました。

    このやり取りも、拡張子(.dat)が単にテキストファイルのことだと看破できなかったから発生したものでした。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    つまり、 DATファイル形式というものが世の中に存在すると思い込んでしまったことが原因です。

    繰り返しになりますが、 DATファイル形式などというファイルは世の中には存在しないのでした。

    しかし、特定のサービスまたはアプリケーションで必要とするテキストファイルでは、拡張子を(.dat)にすることがその業界でのお決まりになっているのでした。
                                                        ・・・・・・・・・・・・・・・・・・・・
    いわば業界用語にPCユーザが振り回されたということになりますね。
       ・・・・・・・・・・・・・・・・・

    今回の質問も、まず最初に仕様書のありかを提示していれば、直ちに解決したハズですよ。

    p.s.

    当方は、DAT ファイルにはもうコリゴリです。

    願わくば。「もう、柳の下に3匹目のドジョウが居ませんように」と願っています。

引用返信 [メール受信/OFF]
■14686 / ResNo.32)  Re[13]: 拡張子CSVで項目間をカンマで区切り書き出したい
□投稿者/ hiro -(2024/11/05(Tue) 22:39:28)
    ONnojiさん、どうもありがとうございました。
    そうですね、現状の状態をもっと詳しく書いていたらもっと早く解決していたでしょうね、すみません。サポートセンターの人に桐で拡張子datは書き出せないとか、印字コマンドで出来ますよとかも言われなかった事や、私も印字コマンドを全く知らなかった上に、元々現状の一括処理を少し変更すれば早く終わると思った事で結果的に時間がかかってしまいました。UTF-8やら16やら、SJIS、txt、dat、csv等関係がややこしいですねw
    > つまり、 DATファイル形式というものが世の中に存在すると思い込んでしまったことが原因です。
    > 繰り返しになりますが、 DATファイル形式などというファイルは世の中には存在しないのでした。
    > しかし、特定のサービスまたはアプリケーションで必要とするテキストファイルでは、拡張子を(.dat)にすることがその業界でのお決まりになっているのでした。
    >                                                     
    LTAXの回答する人もdatファイルでお願いしますと言う事で、何か違うんだろうなと思ってしまいますね(お互い詳しくない人同士のやりとりで)w
解決済み!
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-19] [20-29] [30-32]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■14706 / 親記事)  ハンドルとは?
□投稿者/ hiro -(2024/11/11(Mon) 15:52:48)
    桐10.4使用してます
    コマンドのウィンドウ作成でハンドル=長整数・・・ウィンドウのハンドルを取得するための変数名ってありますが、ウィンドウのハンドルを取得ってよく分かりませんが、これは何をしてるものでしょうか?
    無くても良いんじゃない?と思ったのですが必須なようで・・よろしくお願いします。
引用返信 [メール受信/OFF]

▽[全レス31件(ResNo.27-31 表示)]
■14738 / ResNo.27)  「すでに変数があるから使っちゃおう!」なんて考えるから、今回も大きく遠回りしたんですよ。
□投稿者/ ONnoji -(2024/11/12(Tue) 22:51:07)
    2024/11/14(Thu) 12:21:39 編集(投稿者)
    2024/11/12(Tue) 23:39:19 編集(投稿者)


    結論からすると、固有変数/整数:&総回数 の値の40は、

     ウィンドウ作成 ”複写回数2.WFX”,ハンドル=&総回数

    で代入されたのです。

    それ以外の理由はありませんよ。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

     変数削除 *
     変数宣言 固有,整数{&数,&回数,&総回数 }

     表 ”01201用.tbx”

     ジャンプ 行番号=最終
     絞り込み 行数=1
     書き出し 表,”複写用.tbl”,*

     ウィンドウ作成 ”複写回数2.WFX”,ハンドル=&総回数 /* 複写回数2.WFX のウィンドウを作成した時に、&総回数 にハンドル番号が代入されます */
                                /* 複写回数2.WF は 変数対象表が無いフォーム、つまり NULLフォームなので、40から順番に値が割り当てられます */
     確認 #文字列(&総回数)

     ウィンドウ会話 &総回数
     確認 #文字列(&総回数)

     &回数=0
     繰り返し

      条件 (&総回数=&回数) 繰り返し中止
      読み込み 表,”複写用”,*
      &回数=&回数+1
     繰り返し終了

     確認 #文字列(&総回数)
     表形式編集
     ウィンドウ終了 &総回数

     確認 #文字列(&総回数)

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    わざわざ、添付ファイルを作っていただくまでもないことでしたけれどね。(−−〆)

    なお、

     ウィンドウ終了 &総回数  の替わりに

     ウィンドウ終了 40

    だって、エラーにはなりませんよ。

    何故ならば、

     ウィンドウ作成 ”複写回数2.WFX”,ハンドル=&総回数

    で作成した[ウィンドウ]のハンドル番号が、40だからです。
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    もちろん、他の変数であっても値が40ならばOKですよ。

    つまり、

     &数 = 40
     ウィンドウ終了 &数

    でもOKなわけですよ。

    たまたま、&数 が未定義値だったので、エラーにならなかっただけだと思いますが、

     ウィンドウ終了 #u

    普通は、未定義値のハンドル番号なんて誰も指定しませんよ。(ーー;)--------------> ※遠い目線


     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    単に、ハンドルを格納する変数と、繰り返す変数を使い回しているから駄目なんでしょ。

    変数と言うのは、目的ごとに宣言しなければだめですよ。

    「すでに変数があるから使っちゃおう!」なんて考えるから、今回も大きく遠回りしたんですよ。(−−〆)
    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

     ◇ ◇ ◇ ◇ ◇ ◇

    ハンドル用の変数:&hdl を追加して以下のように変更すればOKでしょ。

     変数削除 *
     変数宣言 固有,整数{&数,&回数,&総回数 }

     &総回数 = 10

     変数宣言 固有,長整数{ &hdl }

     表 ”01201用.tbx”

     ジャンプ 行番号=最終
     絞り込み 行数=1
     書き出し 表,”複写用.tbl”,*

     ウィンドウ作成 ”複写回数2.WFX”,ハンドル= &hdl

     確認 #文字列(&総回数)

     ウィンドウ会話 &hdl
     確認 #文字列(&総回数)

     *&回数=0
     *繰り返し

     &回数 = 1
     繰り返し ( &回数 <= &総回数 )

      *条件 (&総回数=&回数) 繰り返し中止
     
      読み込み 表,”複写用”,*

      &回数=&回数+1
     繰り返し終了

     確認 #文字列(&総回数)
     表形式編集
     ウィンドウ終了 &hdl

     確認 #文字列(&総回数)

    p.s.

    後は、ご自身で考えてください。

    バイバイ(@^^)/~~~


引用返信 [メール受信/OFF]
■14740 / ResNo.28)  Re[20]: ハンドルとは?
□投稿者/ hiro -(2024/11/12(Tue) 23:25:28)
    ONnojiさん、どうもありがとうございます
    話が変わると言いますか、自分でも原因を探っていますので、探っているうちにここが怪しいと思う所を上げていっているのでこのような形になってしまいました、分かりにくくなってすみません。

    > 結論からすると、固有変数/整数:&総回数 の値の40は、
    >  ウィンドウ作成 ”複写回数2.WFX”,ハンドル=&総回数
    > で代入されたのです。
    > それ以外の理由はありませんよ。
    代入されると言う事ですが、最初はまっさらなはずなのに何故入っているのか、何処から出て来たのかが謎だったのです。数字を変えたら次はそれに置き換わるなら未だしも常に40が出てくる、これが謎だったのです。
                                /* 複写回数2.WF は 変数対象表が無いフォーム、つまり NULLフォームなので、40から順番に値が割り当てられます */
    40という数字が定番の数字と言う事なのですね?

    > わざわざ、添付ファイルを作っていただくまでもないことでしたけれどね。(−−〆)
    ここまでくると実際に見ないと何が原因か分からないだろうなと思った次第です

    > 普通は、未定義値のハンドル番号なんて誰も指定しませんよ。(ーー;)--------------> ※
    これも謎だったのですが、未定義値のハンドル番号があって初めてエラーなく終了出来るという・・結果的には40が強制的な初期値だと言う事でそれに合わせる事でエラーが消えるのですね。
    イメージしていたのは初期値は空白で、そこに希望回数入れたものが最初のハンドル値になると思っていました。ややこしいですね、やっと分かりました、ありがとうございました。

解決済み!
引用返信 [メール受信/OFF]
■14741 / ResNo.29)  Re[21]: ハンドルとは?
□投稿者/ ONnoji -(2024/11/12(Tue) 23:43:39)
    2024/11/13(Wed) 00:59:55 編集(投稿者)


    ウィンドウ作成|桐オンラインヘルプ
    https://www.kthree.co.jp/kihelp/index.html?page=cmd/stx/cwcreate&type=html

    ■パラメータ

    ハンドル = <長整数>
    ウィンドウのハンドルを取得する変数名を指定します。
          ・・・・・・・・・

    今後はヘルプをよく読んで、自己流の解釈を避けるようにしてください。


引用返信 [メール受信/OFF]
■14742 / ResNo.30)  Re[22]: ハンドルとは?
□投稿者/ hiro -(2024/11/13(Wed) 00:10:34)
    ONnojiさん、ありがとうございます
    確認コマンドを繰り返しの中に変数名分4つ作って見る事で謎が解けました
    フォームの中の変数名とウィンドウ作成のハンドルの変数名は同じじゃダメなんですね
    何故か同じにしないといけないと思ってたのが原因でした
    永長とありがとうございました。


解決済み!
引用返信 [メール受信/OFF]
■14743 / ResNo.31)  Re[23]: ハンドルとは?
□投稿者/ ONnoji -(2024/11/13(Wed) 01:04:05)
    > 確認コマンドを繰り返しの中に変数名分4つ作って見る事で謎が解けました
    > フォームの中の変数名とウィンドウ作成のハンドルの変数名は同じじゃダメなんですね
    > 何故か同じにしないといけないと思ってたのが原因でした

    貴殿は思い込みや、勘違いする傾向が非常に強いですね。

    直近の拡張子(.dat)の件も、相当すったもんだしたでしょ。

    まず、慌てない事ですよ。

    慌てるから拙速になって大失敗するのです。

    他の人も巻き添えになりますから、今後は拙速にならないように慎重に願います。

    p.s.

    4年前には、こんなこともありましたっけね。
     ↓
    過去ログ84
    ■12547 / inTopicNo.1)  繰り返し
    □投稿者/ hiro -(2020/08/11(Tue) 17:21:47)
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=12547&no=0&KLOG=84


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

■記事リスト / レス記事表示 → [親記事-9] [10-19] [20-29] [30-31]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■14187 / 親記事)  行制約について
□投稿者/ ダークサイドになりかけ -(2024/02/28(Wed) 14:54:09)
    2024/02/29(Thu) 08:54:51 編集(投稿者)

    桐10s Windows10 使用

    桐初心者です。

    商品名 数量 納期
    上記項目があり、納期が未定義の時のみ、数量出来るように行制約を入れたいです。

    桐のヘルプを見て
    ( [数量] .and [納期] = "").or ( [数量] = "" .and [納期] <> "")
    と書いたのですがダメでした・・・

    分かる方、解決方法を教えて頂けたら幸いです。

    よろしくお願いします。


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

▽[全レス31件(ResNo.27-31 表示)]
■14333 / ResNo.27)  Re[8]: ガントチャートの試作品
□投稿者/ ONnoji -(2024/05/15(Wed) 12:05:36)
    ジェダイの桐さん

    お待たせしました。

    試作ガントチャート_Rev0 のダウンロードの準備が出来ました。

    以下のページからダウンロード出来ます。

    【多遊】さんのHPのトップページの

    [桐質問掲示板] [桐質問のほか掲示板] [DOWN LOAD} [全掲示板]
                            ↑
                          ここをクリック

    または、

    [観験桐]のページの[ダウンロードコーナご利用の皆様へ
               感想・質問・要望お聞かせください]
                    ↑
                   ここをクリック

    で[DOWN LOAD BBS]をご覧ください。

     All ガントチャート試作品 / ONnoji (24/05/15(Wed) 00:58) #393 GanttChart_Trial_Rev0.zip/173KB
     └ Re[1]: ガントチャート試作品 / ONnoji (24/05/15(Wed) 01:04) #394 GanttChart_Trial_DatePicker.zip/112KB



引用返信 [メール受信/OFF]
■14334 / ResNo.28)  Re[9]: ガントチャートの試作品
□投稿者/ 尾形 -(2024/05/16(Thu) 07:34:44)
    どうも、こんにちは

    DLさせていただきました

    ガンチャート.wfx を開こうかすると
    IPS_Formライブラリが見つかりません
    となります

    使い方が間違っているのでしょうか

引用返信 [メール受信/OFF]
■14335 / ResNo.29)  Re[10]: ガントチャートの試作品
□投稿者/ ONnoji -(2024/05/16(Thu) 09:34:15)
    2024/05/16(Thu) 11:26:47 編集(投稿者)

    No14334に返信(尾形さんの記事)
    > ガンチャート.wfx を開こうかすると
    > IPS_Formライブラリが見つかりません
    > となります

    拙作は、#204 INF_Framework 第3.3版 改訂版(MkII) 基本セットに含まれる

     INF_Framework.cmx ※これはライブラリです 一括処理ではありません
     IPS_Framework.cmx ※これはライブラリです 一括処理ではありません

    2つのファイルが必須ですので、これらのファイルををコピーしてください。

    p.s.

    > ■393 / 親階層) ガントチャート試作品 から転載
    > INF_Framework を使用した実践的な応用例のご紹介です。※#204 INF_Framework 第3.3版 改訂版(MkII) 基本セット
    > (注意)
    >  1.の任意のフォルダに解凍(展開)した時には、2.#204 INF_Framework 第3.3版 改訂版(MkII) 基本セット に含まれている
    >  INF_Framework.cmx
    >  IPS_Framework.cmx
    >  の2つのファイルを当該のフォルダにコピーしてください。

引用返信 [メール受信/OFF]
■14405 / ResNo.30)  Re[11]: ガントチャートの試作品
□投稿者/ ななーし -(2024/05/28(Tue) 15:56:50)
    ONnojiさんジェダイの桐さんこんにちは。
    返信遅くなり申し訳ございません。
    メールサーバーとホームページサーバーの更新と求人対応含めて死んでました。

    会社で使っているガントチャートは物件数が多いので担当ごとに1行で色で表示していて、大日程で見る際は圧縮して見れるようにしています。

    日程をいじる際は担当ベースで開き、日程がここかなーって調整します。
    理由として作業者確保目線で利用しており、これがエクセルベースのVBAなので実工数管理ができておらずorz

    データベース化したいなーって悩んでおります
697×254 => 250×91

1716879410.jpg
/41KB
引用返信 [メール受信/OFF]
■14409 / ResNo.31)  Re[12]: ガントチャートの試作品
□投稿者/ ななーし -(2024/05/28(Tue) 16:20:03)
    2024/05/28(Tue) 16:49:36 編集(投稿者)

    No14405に返信(ななーしさんの記事)
    > ONnojiさんジェダイの桐さんこんにちは。
    > 返信遅くなり申し訳ございません。
    > メールサーバーとホームページサーバーの更新と求人対応含めて死んでました。
    >
    > 会社で使っているガントチャートは物件数が多いので担当ごとに1行で色で表示していて、大日程で見る際は圧縮して見れるようにしています。
    >
    > 日程をいじる際は担当ベースで開き、日程がここかなーって調整します。
    > 理由として作業者確保目線で利用しており、これがエクセルベースのVBAなので実工数管理ができておらずorz
    >
    > データベース化したいなーって悩んでおります
    掲示板じゃなくDOWNLOAD側にガントチャートの生産管理での運用について
    自分なりの使い方を記載しました。ご参考になれば幸いです。
引用返信 [メール受信/OFF]

■記事リスト / レス記事表示 → [親記事-9] [10-19] [20-29] [30-31]



■記事リスト / ▲上のスレッド
■15017 / 親記事)  数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ まさやん -(2025/07/09(Wed) 15:00:38)
    2025/07/09(Wed) 15:24:55 編集(投稿者)


    いつも お世話になっております

    桐9s Win11 イベント処理を行っています

    フォーム入力時に
    品名や 備考 などの 文字列型項目での入力では
    全キーボード入力を 拒まないのですが

    数値型項目入力時に
    数字キー以外の キーを受け付けないという 方法はできますか?

    イベント実行中 数字入力だけの (例えば 単価 とか 数量など)際に
    間違って 英字キー 押して 間違ってエンターキー押すと
    メッセが出て その先の 処理を受け付けてくれません

    そのための 回避策を探していますが
    そのようなことができるかどうかもわかりませんが

    宜しくお願い致します。

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

▽[全レス20件(ResNo.16-20 表示)]
■15037 / ResNo.16)  Re[11]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ ONnoji -(2025/07/10(Thu) 20:50:28)
    2025/07/11(Fri) 08:51:12 編集(投稿者)

    > 論より証拠。
    > サンプルを作りました。
    > INF_Framework をダウンロードしたフォルダに解凍してください。

    > 先日 ダウンロードコーナーから ダウンロードしたのがありまして
    > その中のと同じのかと思われますので 試してみます
      ↑
    そのフォルダに解凍する

     または

    ダウンロードコーナーからダウンロードしたファイルが存在するフォルダの

    ・INF_Framework.cmd
    ・IPS_Framework.cmd

    この2つのファイルを VK_使用例.wfm/kev があるフォルダにコピーしてください

    p.s.

    > また AKOMEさんのと もひとつのURL 見てみました
    > 私のレベルでは まだ 解釈不足です

    そもそも初めて経験するインタフェースなのですから誰でも最初から理解・解釈出来ないのが普通ですよ。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    まず、考えずに AKomeさんの例を試してみることです。
       ・・・・・・・・・・・・・・・・・・・・・

    例えば、表示モードで[/][−]キーが押された時に現れる「スラッシュ・メニュー」を止めるとかなど・・・

    そうすれば、なるほど!と分かってくるハズですよ。

    ただ考えるのは何もしないのと同じです。(^^ゞ

    p.p.s.

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

    フレームワークというものは内容を理解する必要は無いのです。
    ・・・・・・・・・・・・・・・・・・・・・・・・・

    それよりも、使い方を理解する事が重要なんです。
          ・・・・・・・・・・・・・・・・

    フレームワークの内容に関心が無くて、フレームワークの使い方に関心がある人はソフトウェア開発に適性があります。

    そういう人はフレームワークを利用して、短時間に[フォーム+イベント処理]アプリケーションを作っています。

    それに対して、DOS桐からのベテラン組の人達は、長年一括処理、つまり[フロー駆動型]を使っていたので、

    [フロー]=[コーディング]=プログラミングと認識しているようです。

    つまり、全部自分でプログラムを書かないと気が済まない人が多いように思います。

    勿論、その方が気分が良い人も居ることでしょう。

    しかし、それではいつまでたっても[イベント駆動]のプログラミングを効率よく構築出来ないと思いますよ。
                    ・・・・・・・・・・・・・・・・・・・・・・・

    既に出来上がっている車輪=フレームワークを利用する方が、車輪を再発明するよりも効率がよいのですから・・・

    <用語>

    車輪の再発明 出典: フリー百科事典『ウィキペディア(Wikipedia)』

     車輪の再発明(しゃりんのさいはつめい、英: reinventing the wheel)とは、
    「広く受け入れられ確立されている技術や解決法を(知らずに、または意図的に無視して)再び一から作ること」を指すための慣用句。
    誰でも直観的にその意味が分かるように、車輪という誰でも知っていて古くから広く使われている既存の技術を比喩の題材として使った慣用表現で、世界中で使われている。

    再利用すべき「車輪」

     IT業界において、再発明するのではなく再利用すべき「車輪」の例としては以下のようなものがある[1]。

    ・ライブラリやフレームワーク

      ドキュメントが整備されていることや日々メンテナンスされてバグが無くなっていることが必要。
     使用するライブラリやフレームワークが広く知られている場合には、
     開発経験をもった人をアサインすることで引き継ぎなどもスムーズに行くというメリットもある。



引用返信 [メール受信/OFF]
■15038 / ResNo.17)  Re[12]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ ONnoji -(2025/07/10(Thu) 23:53:47)
    2025/07/11(Fri) 07:53:55 編集(投稿者)

    拙作:VK_Framework で試したところ当初の予想よりも簡単に[数値以外のキーを受け付けない]が実現できました。(^^ゞ

    簡単なレビューを以下にご報告します。

     ◇ ◇ ◇ ◇ ◇ ◇

    【イベントハンドラに直接記述する】

    手続き定義開始 フォーム::キーダウン(長整数 &仮想キーコード,長整数 &スキャンコード,長整数 &フラグ,参照 長整数 &処理中止)

     メソッド呼び出し @フォーム.更新モード取得(&更新モード)
     メソッド呼び出し @フォーム.フォーカスオブジェクト取得(&STR)
    ┌if (&更新モード≠0)
    │┌if ((&仮想キーコード>=65 .and &仮想キーコード<=90 .and &仮想キーコード≠13) .or (&仮想キーコード>=106 .and &仮想キーコード≠110)
    ││ &比較式=#項目属性(#項目番号(#部分列(&STR,#IS全角(&STR,0))),2)
    ││ 条件 (&比較式≠"文字列") &処理中止=1
    ││ 条件 (&比較式≠"文字列") メッセージボックス "","数字キーのみの入力です",ボタン=1
    │└end
    └end

    手続き定義終了

    上↑と下↓

    【VK_Framework を利用する】

    手続き定義開始 txtA::入力前(参照 文字列 &編集文字列)

     手続き実行 VKprcEventKeyDownON( )
     手続き実行 VKprcKeyON( )
     手続き実行 VKprcKeySet( "key", 1, "項目訂正,訂正", "手続き実行 prcTest( &VKmChr, &処理中止 )" )

    手続き定義終了を

    手続き定義開始 txtA::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 VKprcEventKeyDownOFF( )         /* キーダウンイベントをオフ */
     手続き実行 VKprcKeyOFF( )              /* 実行禁止         */
     手続き実行 VKprcKeyClear( "key", "項目訂正,訂正" ) /* クリア          */

    手続き定義終了

    手続き定義開始 prcTest( 文字列 &key, 参照 長整数 &処理中止 )
     変数宣言 自動,文字列{ &keyList = "0,1,2,3,4,5,6,7,8,9,+,-" } /* 必要ならば小数点のドットも加える */

     トレース出力 _( #対応番号( &keyList, &key ) <> 0 )
     if ( #対応番号( &keyList, &key ) <> 0 )
      &処理中止 = 0
     end

     トレース出力 _&key, "     ", _&処理中止
    手続き定義終了

    比べてみると、

    拙作:VK_Framework を利用する場合には

    ・65,90 といった恣意的な仮想キーコードに振り回されなくて分かり易い
     ・・・・・・・・・・・・・・・・・・

    ・[Enter][Tab][Esc]の各キーに対して透過的である

    ・更新モードによって実行内容を指定できる

    ・分かり易いから改造が簡単に出来る
     ・・・・・・・

    というメリットがあることに気が付く事でしょう。

    なお、VK_Framework は Thin INF_Framework / オートINF_Framework 等すべての INF_Framework で使用できます。

    p.s.

    >>なお、この方法でキーをマスクすると、キーボードが壊れたんじゃないかと不審に思われるかもしれませんね。
    >>                  ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    >>なので、「やり過ぎ感がハンパ無しで満載」ですね。 ※何事もほどほどがいいですよ。

    これは杞憂、つまり「とりこし苦労」でしたね。

    [入力後]イベントハンドラで不要文字を取り除くよりも、ストレートでパフォーマンスも悪く無いでした。アハハハha

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    余談ながらトレースの結果です。


    ┌when 手続き"txtA::入力前("0")"を実行開始しました

    │┌when 手続き"VKprcEventKeyDownON( )"を実行開始しました
    │└end

    │┌when 手続き"VKprcKeyON( )"を実行開始しました
    │└end

    │┌when 手続き"VKprcKeySet("key",1,"項目訂正,訂正","手続き実行 prcTest( &VKmChr, &処理中止 )")"を実行開始しました
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(97,79,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(97,79,0,0)"を実行開始しました
    ││
    ││┌when 手続き"prcTest("1",1)"を実行開始しました
    │││
    │││ :( #対応番号( &keyList, &key ) <> 0 ) : 1
    │││ :&key : 1     &処理中止 : 0
    │││
    ││└end
    ││
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(98,80,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(98,80,0,0)"を実行開始しました
    ││
    ││┌when 手続き"prcTest("2",1)"を実行開始しました
    │││
    │││ :( #対応番号( &keyList, &key ) <> 0 ) : 1
    │││ :&key : 2     &処理中止 : 0
    │││
    ││└end
    ││
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(99,81,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(99,81,0,0)"を実行開始しました
    ││
    ││┌when 手続き"prcTest("3",1)"を実行開始しました
    │││
    │││ :( #対応番号( &keyList, &key ) <> 0 ) : 1
    │││ :&key : 3     &処理中止 : 0
    │││
    ││└end
    ││
    │└end

    └end

    ┌when 手続き"フォーム::キーダウン(13,28,0,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyEval(13,28,0,0)"を実行開始しました
    ││
    │└end

    └end

    ┌when 手続き"txtA::入力後("123",1,0)"を実行開始しました

    │┌when 手続き"VKprcEventKeyDownOFF( )"を実行開始しました
    ││
    │└end

    │┌when 手続き"VKprcKeyOFF( )"を実行開始しました
    │└end

    │┌when 手続き"VKprcKeyClear("key","項目訂正,訂正")"を実行開始しました
    │└end

    └end

引用返信 [メール受信/OFF]
■15079 / ResNo.18)  Re[2]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ ONnoji -(2025/08/09(Sat) 14:53:47)
    2025/08/09(Sat) 18:57:01 編集(投稿者)

    すでに解決済との事ですが・・・

    当初から、私の直感では、使用できるキーを数字と正負記号に制限するのは、解決策の本命には思えませんでした。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    結論としては、[キーダウン]イベントハンドラは必要ないです。

    なぜならば、[入力後]イベントハンドラが呼び出す一般手続きですべて処理できるからです。

    結局、先回りして数字と正負記号以外の文字キーをブロックしても、ほとんど無意味という事なんです。
       ・・・・・・・・・・・・・・・・・・・・・・・・・・・・◎◎◎◎◎◎◎・・・・・・・・

    つまり、問題解決の本質部分は、[キーダウン]イベントハンドラにあるのではなくて、[入力後]イベントハンドラにあるということです。(^^ok

    ということで、[入力後]イベントハンドラの工夫次第ということで解決になります。ガッハハハha (^^♪

    今回の添付ファイルには、拙作:INF_Framework を使用していません。

    普通にフォームを開けば実行できますよ。

    なお、サンプルは数日を目途に削除しますので、ダウンロードはお早めに願います

    <参考>

    名札  メイン



    手続き定義開始 txt数値::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 txt整数::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 txt長整数::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 txt通貨::入力後(参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)

     手続き実行 prc数値の入力後イベント処理( &this, &編集文字列,&モード,&入力継続 )

    手続き定義終了

    手続き定義開始 INFprcMsgPause( 文字列 &icon, 文字列 &title, 文字列 &msg )
     変数宣言 自動,文字列{ &iconList = "i,?,!,e" } /* 半角コンマで区切った文字列リスト */
     変数宣言 自動,文字列{ &macro }
     変数宣言 自動,整数 { &at }

     &icon = #半角( #lc( #sstr( &icon, 1, 1 ) ) ) /* &icon はこの手続きの引数 */
     &at = #対応番号( &iconList, &icon )

     &macro = "メッセージボックス &title, &msg" + #cond( &at, ", アイコン = " + &icon ) + ", ボタン指定 = 1, 制御文字展開 = する"
     コマンド &macro

    手続き定義終了

    手続き定義開始 prc数値の入力後イベント処理(文字列 &objectName, 参照 文字列 &編集文字列,長整数 &モード,参照 長整数 &入力継続)
     変数宣言 自動,文字列{ &icon, &title = "prc数値の入力後イベント処理( )", &msg }
     変数宣言 自動,文字列{ &string }
     変数宣言 自動,文字列{ &dataType }
     変数宣言 自動,文字列{ &source }
     変数宣言 自動,文字列{ &dataTypeList = "整数,長整数,数値,通貨,実数" }
     変数宣言 自動,数値 { &num }
     変数宣言 自動,数値 { &mod }
     変数宣言 自動,整数 { &isError = 0 }

     オブジェクト操作 &objectName{ &dataType = データ型, &source = ソース }

     if ( #対応番号( &dataTypeList, &dataType ) <> 0 )

      &string = &編集文字列
      &string = #str( #num( &string ) )

      &num = #未定義値変換( #num( &string ), 0 )
      &mod = #mod( &num, 1 )

      if ( &dataType = "整数" .or &dataType = "長整数" )

       if ( &mod <> 0 )

        &msg = "このテキストのソースは[" + &dataType + "]なので、小数点以下の数値は切り捨てられます"
        &msg = &msg + "\n\n⇒ " + &string
        &icon = "!"
        手続き実行 INFprcMsgPause( &icon, &title, &msg )
        &isError = 1
       end

       if ( ( &dataType = "整数" .and ( &num < -32768 .or &num > 32767 ) ) .or ( &dataType = "長整数" .and ( &num < -2147483648 .or &num > 2147483647 ) ) )

        メソッド呼び出し &this.編集選択位置設定( 1 ,-1 )

        &msg =      "このテキストのソースは[" + &dataType + "型]なので、"
        条件 ( &dataType = "整数"  ) &msg = &msg + "\n\n-32768 〜 32767 の範囲外の整数は入力できません"
        条件 ( &dataType = "長整数" ) &msg = &msg + "\n\n-2147483648 〜 2147483647 の範囲外の整数は入力できません""
        &msg = &msg + "\n\n⇒ " + &string
        **&msg = &msg + "\n\nお手数ですが"
        &msg = &msg + "\n\n・値を削除する"
        &msg = &msg + "\n  または"
        &msg = &msg + "\n・範囲内の値を入力してください"
        &icon   = "e"
        手続き実行 INFprcMsgPause( &icon, &title, &msg )

        &isError = 1
        &入力継続 = 1
       end
      end

      &編集文字列 = &string

     end

    手続き定義終了

引用返信 [メール受信/OFF]
■15080 / ResNo.19)  Re[3]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ まさやん -(2025/08/09(Sat) 17:21:53)
    2025/08/09(Sat) 17:22:13 編集(投稿者)

    > 当初から、私の直感では、使用できるキーを数字と正負記号に制限するのは、解決策の本命には思えませんでした。
    > 結論としては、[キーダウン]イベントハンドラは必要ないです。
    >
    > なぜならば、[入力後]イベントハンドラが呼び出す一般手続きですべて処理できるからです。
    >
    > 結局、先回りして数字と正負記号以外の文字キーをブロックしても、ほとんど無意味という事なんです。
    >    ・・・・・・・・・・・・・・・・・・・・・・・・・・・・◎◎◎◎◎◎◎・・・・・・・・
    >
    > つまり、問題解決の本質部分は、[キーダウン]イベントハンドラにあるのではなくて、[入力後]イベントハンドラにあるということです。(^^ok
    >


    サンプルありがとうございました

    確かにそうですね ありがとうございました

    先日の投稿で 勝手にお名前出してすみませんでした(×_×)
引用返信 [メール受信/OFF]
■15081 / ResNo.20)  Re[3]: 数値型項目で入力の際数値以外のキーを受け付けない
□投稿者/ まさやん -(2025/08/09(Sat) 18:31:34)

    >   &string = #str( #num( &string ) )

    考えてみれば

    簡単に言うと

     上のコマンドを 入力後イベントで処理すればいいっていうことなんですね

    入力後イベント の チェックマーク入れなかったので
    桐からのメッセが出て それ以降のイベントが 走らなかったので
    その対処策を 考えた次第です


    対処策の 方法が 入力後イベント走らせたほうが 正解だったのと
    自然な成り行きですもんね

    確かに 今まで
    数字と数字以外の混ざった データを

    #num(&〇〇) で

    数値だけになってました そうでした   ありがとうございます。
引用返信 [メール受信/OFF]

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






01661

Mode/  Pass/

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

- Child Tree -
- Antispam Version -