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

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

記事リスト ( )内の数字はレス数
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) | Nomalテーブルの項目を整理する際の影響確認(5) | Nomalフォームの閉じ方について(18) | Nomalレポートにつきまして(5) | Nomal【アイデア募集】スケジュール表示(2) |



■記事リスト / ▼下のスレッド
■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]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15152 / 親記事)  一括処理の絞込みについて
□投稿者/ キリマンジャロ -(2025/10/24(Fri) 16:55:54)
    IN11、桐10S使用です
    いつもお世話になっております

    一括処理にて、二つの項目の値が一致したら絞込みを
    行いたいです。




    項目    データ型

    金額    数値
    合否区   文字列
    完区    文字列


    金額  合否区 完区
    100   0    1

    200   1    0

    300    1     1


    この場合なら、金額300のレコードが絞込みされるように
    したいですが、上手くいきません。

    絞り込み {[完区]{1},[合否区]{1}}

    こんな感じかと思いましたが、違うようです。
    お忙しいところ恐縮ですがよろしくお願いします。
     
引用返信 [メール受信/OFF]

▽[全レス2件(ResNo.1-2 表示)]
■15153 / ResNo.1)  Re[1]: 一括処理の絞込みについて
□投稿者/ ONnoji -(2025/10/24(Fri) 19:20:40)
    2025/10/25(Sat) 01:01:19 編集(投稿者)

    No15152に返信(キリマンジャロさんの記事)
    > 絞り込み {[完区]{1},[合否区]{1}}
    > ↑
    > こんな感じかと思いましたが、違うようです。
    > お忙しいところ恐縮ですがよろしくお願いします。

    以下を参考にしてください。

    桐の釣魚大全のトップ > フォームアプリケーション教書 第2部
    21.4 [絞り込み:比較式]コマンドによるレコードの絞り込み
    https://silicon7565.cloudfree.jp/guide/guide_Part2.htm#section21-4

     :
     :

     ■[絞り込み:検索条件]コマンドと[絞り込み(検索):比較式]コマンドでは波括弧({})の使い方が異なる

     時々、[絞り込み:検索条件]コマンドと[絞り込み(検索):比較式]コマンドは、どちらも表記法が同じだろうと高を括ってコマンドをコピペして失敗する人がいます。
        ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    以下に同等の条件を示します。

    単純にコピペしてはいけないことが判ると思います。

     【検索条件】
     検索条件(S):
     ┌───┬────┬───────┬────
     │   │ 性別 │  体重   │ ほか   【コマンド】
     ├───┼────┼───────┼────
     │条件1 │"女性" │ ≧ 25, ≦50 │      検索条件登録  "",{[性別]{"女性"}, [体重]{ ≧ 25, ≦50 }}
     │条件2 │    │       │      絞り込み 条件名 = ""
     │条件3 │    │       │
     : : :    :       :
     : : :    :       :      × 絞り込み [ほか]{[性別]{"女性"}, [体重]{ ≧ 25, ≦50 }}
     │条件10│    │       │
     └───┴────┴───────┴────  ○ 絞り込み [ほか]{[性別] = "女性", [体重]≧ 25,[体重]≦ 50 }


     【絞り込み:比較式】
     項目名(N): [ほか]               【コマンド】
     比較式(H):
     [性別] = "女性",[体重]≧ 25,[体重]≦ 50    絞り込み [ほか]{ [性別] = "女性",[体重]≧ 25,[体重]≦ 50 }

引用返信 [メール受信/OFF]
■15159 / ResNo.2)  Re[2]: 一括処理の絞込みについて
□投稿者/ キリマンジャロ -(2025/10/27(Mon) 08:42:43)
    ONnojiさん返信ありがとうございます。

    無事に絞り込みを行うことが出来ました。
    ありがとうございました。
解決済み!
引用返信 [メール受信/OFF]

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15141 / 親記事)  繰り返しコマンドについて
□投稿者/ ひで -(2025/10/23(Thu) 17:18:15)
    「繰り返し」コマンドを使うときにあまり理解できていません
    皆様の例題とか見ていますと、もっと簡略化できるのではと思っています

    今回の場合ですと
    [連番]項目の1から21を順に選んで
    [連番2]項目を#連番で置換するという事です
    (皆様はすぐおわかりですよね・)

    桐のホームページのヘルプで
    配列変数(?)とか出てきて
    繰り返し &回数 = 1,64
    &氏名[ &回数 ] = [氏名]

    なんのことだか分からないのですが・
    こういう感じで、コマンドの意味がわかればもっと楽に利用できるのではと思い質問させていただきました

    初心者過ぎる質問で申し訳ありませんが
    どなたか解説していただける助かります
    どうか、よろしくお願い致します


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

    変数宣言 整数{&回数, &回数2 }

    表 ”AAA.tbl”
    &回数 = 1

    繰り返し
    条件 (22=&回数)繰り返し中止

    並べ替え 条件名="番号"
    絞り込み [連番]{=&回数}
    置換 [連番2]=#連番
    代入 &回数2=&回数+1
    代入 &回数=&回数2
    解除 *
    繰り返し終了

    名札 中止
    終了



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

▽[全レス9件(ResNo.5-9 表示)]
■15146 / ResNo.5)  Re[3]: 繰り返しコマンドについて
□投稿者/ ONnoji -(2025/10/24(Fri) 13:12:15)
    2025/10/24(Fri) 16:37:02 編集(投稿者)

    > >頭が回りませんでした。(^^ゞ
    > 直前値を使えば全体を1回置換だけでできるはずですね。

    [ワンライン]コマンドで行けるかと思ったけれど、

    インクリメントに使う変数:&実行リターン の初期化が必要でした。残念 (>_<)

    以下に、組み込み変数:&実行リターン と #直前値を使った例を以下に示します。(^^ok

    ■ [置換]を使った例

     データパス名 #一括パス名, 固定 = しない
     表 "AAA" /* 桐9系か桐10系か不明なので、拡張子は省略しました */

     並べ替え { [連番]昇順 }
     &実行リターン = 0  /* インクリメントに使う変数の初期化 */
     置換 [連番2] = #cond( [連番] <> #直前値( [連番],[連番] ), #代入( &実行リターン, 1 ), 1, #代入( &実行リターン, &実行リターン + 1 ) )

     *終了

    ■ 表の定義

    項目番号 項目名 データ型
    1     連番  数値
    2     連番2  数値

    ちなみに、

    一括処理や[フォーム+イベント処理]では無く、普通の対話操作ならば

    表を開いて、

    1.[変数管理]で組み込み変数:&実行リターンの値をゼロにする

    2.[連番]で整列する

    3.項目置換で計算式に式を入れて実行

    と3ステップでOKです。

    p.s.

    単純に枝番を振るだけならば、今回の例の方が圧倒的に簡単ですね。アハハハハha

    ただし、ちょっと見には、何なのか?分かり難いです。

    トリッキーとまでは言えないですが、分かり難いのでトリッキーに近いですね。


    しかし、ワンパスでグループごとに処理する場合には、No15144 の例が必要ですね。
        ・・・・・・・・・・・・・・・・・・   ・・・・・・・・・

    No15144 の例の方がが断然応用が効きますよ。v(^^)v




引用返信 [メール受信/OFF]
■15149 / ResNo.6)  Re[4]: 繰り返しコマンドについて
□投稿者/ ひで -(2025/10/24(Fri) 16:15:54)
    みなさん、いろいろありがとうございました
    キチンと勉強してみます

引用返信 [メール受信/OFF]
■15154 / ResNo.7)  Re[4]: 繰り返しコマンドについて
□投稿者/ うにん -(2025/10/24(Fri) 22:20:24)
    変数を使わずに、
    #直前値([連番2],0)+1
    でできませんか。

    #cond( [連番] <> #直前値( [連番],[連番] ), 1, 1, #直前値( [連番2] , 0 ) + 1 )

    > No15144 の例の方がが断然応用が効きますよ。v(^^)v

    まあ、DOS桐時代のテクニックですよね。
引用返信 [メール受信/OFF]
■15156 / ResNo.8)  Re[5]: 繰り返しコマンドについて
□投稿者/ ONnoji -(2025/10/25(Sat) 00:37:23)
    No15154に返信(うにんさんの記事)
    > 変数を使わずに、
    > #直前値([連番2],0)+1
    > でできませんか。
    >
    > #cond( [連番] <> #直前値( [連番],[連番] ), 1, 1, #直前値( [連番2] , 0 ) + 1 )

    (例)

     データパス名 #一括パス名, 固定 = しない
     表 "AAA"  /* 桐9系か桐10系か不明なので、拡張子は省略しました */

     並べ替え { [連番]昇順 }
     置換 [連番2] = #cond( [連番] <> #直前値( [連番],[連番] ), 1, 1, #直前値( [連番2] , 0 ) + 1 )

    出来ましたよ。

    p.s.

    >>No15144 の例の方がが断然応用が効きますよ。v(^^)v
    > まあ、DOS桐時代のテクニックですよね。

    いえいえ、同じグループ内の処理をするために Win桐でも非常に有効ですよ。
         ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    むしろ、枝番は副次的な効果ですね。
    ・・・・・・・・・・・・・・・・

引用返信 [メール受信/OFF]
■15157 / ResNo.9)  Re[6]: 繰り返しコマンドについて
□投稿者/ ひで -(2025/10/25(Sat) 10:14:25)
    すごいですね。。
    高度すぎて、、笑
    もっと勉強してみます
    ありがとうございます

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

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



■記事リスト / ▼下のスレッド / ▲上のスレッド
■15131 / 親記事)  ファンクションキーがCTRLを押しながらでないとつかえない?
□投稿者/ momoyaji -(2025/10/15(Wed) 08:44:01)
    新しいパソコン(Windows11)に桐10をインストールしましたがファンクションキーがFNを押しながらでないと以前の様に使えなくなりました。どうすれば以前のパソコン(Windows11)のように、{ F2は訂正、F3は行挿入 }といった使用になりますか?
引用返信 [メール受信/OFF]

▽[全レス3件(ResNo.1-3 表示)]
■15132 / ResNo.1)  Re[1]: ファンクションキーがFNを押しながらでないとつかえない?
□投稿者/ momoyaji -(2025/10/15(Wed) 08:44:41)
    No15131に返信(momoyajiさんの記事)
    > 新しいパソコン(Windows11)に桐10をインストールしましたがファンクションキーがFNを押しながらでないと以前の様に使えなくなりました。どうすれば以前のパソコン(Windows11)のように、{ F2は訂正、F3は行挿入 }といった使用になりますか?
引用返信 [メール受信/OFF]
■15133 / ResNo.2)  Re[1]: ファンクションキーがCTRLを押しながらでないとつかえない?
□投稿者/ ONnoji -(2025/10/15(Wed) 10:48:18)
    2025/10/15(Wed) 19:50:48 編集(投稿者)

    2No15131に返信(momoyajiさんの記事)
    > 新しいパソコン(Windows11)に桐10をインストールしましたが
    > ファンクションキーがFNを押しながらでないと以前の様に使えなくなりました。
    > どうすれば以前のパソコン(Windows11)のように、{ F2は訂正、F3は行挿入 }といった使用になりますか?

    メニューバー > 環境設定 > 全般タブ > ファンクションバーを使用する をオンにする

    メニューバー > ツール > カスタマイズ > キーボード > 特殊キーの構成 で 桐ver.5互換の構成 を選ぶ

    ですが、

    小型のノートPCの場合にはファンクションキーの操作で[FN]キーを押す機種がありますので、
    〇〇〇〇〇〇〇〇〇〇〇〇〇・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

    PCの取扱説明書、またはPCメーカーのヘルプデスクで確認してください。
    ・・・・・・・・    ・・・・・・・・・・・・・・・・・・・・・・

    p.s.

    ネットを検索しても情報が得られます。

    例えば

    F Lock 機能について教えてください。
    https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=3711-1909
    > F Lock(エフロック)機能とは、【Fn】キーを押さずに、ファンクションキーを押すだけで、ファンクションキーに割り当てられた機能を実行できる機能です。

    DELLノートパソコンでファンクションキーが使えない
    https://www.occ21.co.jp/news/13566/
    > 達人パソコンセットで大人気の「DELLノートパソコン」ですが、ファンクションキーが使えないというお問い合わせをいただくことが有ります。
    > この場合、「ファンクションキー」に「マルチメディアキー」が割り当てられていないか確認してください。
    > ※この現象はマルチメディアキーボードが搭載された機種でのみ起こります。
    > 設定の変更方法
    > 「Fnキー」+「ESCキー」を同時押しでロックが解除され「ファンクションキー」が有効になります。

    LAVIEマニュアル機能を知るキーボードキーの使い方
    https://support.nec-lavie.jp/e-manual/m/nx/lv/202311/pdf/v3/#!/3_040_030_pm

    などなど。(^^ゞ

    p.p.s.

    > 新しいパソコン(Windows11)に桐10をインストールしましたが

    これは、Windows の問題でも、桐の問題でもありません。

    使うノートPCの使い方の問題です。
    ・・・・・・・・・・・・・・・・

    PCの取扱説明書、またはPCメーカーのヘルプデスクで確認してください。

引用返信 [メール受信/OFF]
■15135 / ResNo.3)  Re[2]: ファンクションキーがCTRLを押しながらでないとつかえない?
□投稿者/ momoyaji -(2025/10/15(Wed) 21:19:34)
    No15133に返信(ONnojiさんの記事)
    > 2025/10/15(Wed) 19:50:48 編集(投稿者)
    >
    > 2No15131に返信(momoyajiさんの記事)
    >>新しいパソコン(Windows11)に桐10をインストールしましたが
    >>ファンクションキーがFNを押しながらでないと以前の様に使えなくなりました。
    >>どうすれば以前のパソコン(Windows11)のように、{ F2は訂正、F3は行挿入 }といった使用になりますか?
    >
    > メニューバー > 環境設定 > 全般タブ > ファンクションバーを使用する をオンにする
    >
    > メニューバー > ツール > カスタマイズ > キーボード > 特殊キーの構成 で 桐ver.5互換の構成 を選ぶ
    >
    > ですが、
    >
    > 小型のノートPCの場合にはファンクションキーの操作で[FN]キーを押す機種がありますので、
    > 〇〇〇〇〇〇〇〇〇〇〇〇〇・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
    >
    > PCの取扱説明書、またはPCメーカーのヘルプデスクで確認してください。
    > ・・・・・・・・    ・・・・・・・・・・・・・・・・・・・・・・
    >
    > p.s.
    >
    > ネットを検索しても情報が得られます。
    >
    > 例えば
    >
    > F Lock 機能について教えてください。
    > https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=3711-1909
    >>F Lock(エフロック)機能とは、【Fn】キーを押さずに、ファンクションキーを押すだけで、ファンクションキーに割り当てられた機能を実行できる機能です。
    >
    > DELLノートパソコンでファンクションキーが使えない
    > https://www.occ21.co.jp/news/13566/
    >>達人パソコンセットで大人気の「DELLノートパソコン」ですが、ファンクションキーが使えないというお問い合わせをいただくことが有ります。
    >>この場合、「ファンクションキー」に「マルチメディアキー」が割り当てられていないか確認してください。
    >>※この現象はマルチメディアキーボードが搭載された機種でのみ起こります。
    >>設定の変更方法
    >>「Fnキー」+「ESCキー」を同時押しでロックが解除され「ファンクションキー」が有効になります。
    >
    > LAVIEマニュアル機能を知るキーボードキーの使い方
    > https://support.nec-lavie.jp/e-manual/m/nx/lv/202311/pdf/v3/#!/3_040_030_pm
    >
    > などなど。(^^ゞ
    >
    > p.p.s.
    >
    >>新しいパソコン(Windows11)に桐10をインストールしましたが
    >
    > これは、Windows の問題でも、桐の問題でもありません。
    >
    > 使うノートPCの使い方の問題です。
    > ・・・・・・・・・・・・・・・・
    >
    > PCの取扱説明書、またはPCメーカーのヘルプデスクで確認してください。

    ありがとうございました。
    >
解決済み!
引用返信 [メール受信/OFF]

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



■記事リスト / ▲上のスレッド
■15124 / 親記事)  指定の文字数を入力したとき自動でタブ
□投稿者/ みどり -(2025/10/10(Fri) 10:08:56)
    お世話になっております。
    Windows11 桐10sを使用しております。

    入力フォームで一桁の数字を順々にテキストボックスに入力しているのですが、
    VBAにおける「AutoTab」のような機能はありますでしょうか。
    最大文字数を「1」に指定し、1、2、3と入力すればエンターキーやタブキーを押さなくても次のテキストボックスにフォーカスが移動してほしいです。
    よろしくお願い致します。
引用返信 [メール受信/OFF]

▽[全レス6件(ResNo.2-6 表示)]
■15127 / ResNo.2)  Re[2]: 指定の文字数を入力したとき自動でタブ
□投稿者/ みどり -(2025/10/10(Fri) 13:09:27)
    ONnojiさん、ありがとうございます。
    説明不足ですみません。
    おっしゃるとおりです。

    今現在、1→エンター(次のボックスへ)2→エンター(次のボックスへ)・・としているところ、
    1→2→3と入力するだけで次々とテキストボックスにタブオーダーの順に入力していきたいです。
    入力する数値は1〜4の変数で半角数字です。
    よろしくお願い致します。
引用返信 [メール受信/OFF]
■15128 / ResNo.3)  Re[3]: 指定の文字数を入力したとき自動でタブ
□投稿者/ ONnoji -(2025/10/10(Fri) 14:42:56)
    > 今現在、1→エンター(次のボックスへ)2→エンター(次のボックスへ)・・としているところ、
    > 1→2→3と入力するだけで次々とテキストボックスにタブオーダーの順に入力していきたいです。
    > 入力する数値は1〜4の変数で半角数字です。

    フォームの[テキストボックス]オブジェクトの属性には、[最大何文字まで]のような設定は見当たらないですね。

    > VBAにおける「AutoTab」のような機能はありますでしょうか。

    桐には似たような機能はなさそうですね。(T_T)

     ◇ ◇ ◇ ◇ ◇ ◇

    さて、[テキストボックス]オブジェクトの属性では出来ませんけれど、

    試したところ、[フォーム(.wfx)+イベント処理(.kex]の[イベント駆動]のプログラミングでは可能でした。

    (例)

    手続き定義開始 txtVariablDim1::編集文字列変更()
     変数宣言 自動,整数{ &length }
     変数宣言 自動,整数{ &return }

     メソッド呼び出し 戻り値 = &return, &this.編集文字列長( &length )
     トレース出力 "編集文字列長"
     トレース出力 _&return
     トレース出力 _&length

     if ( &length >= 1 )
      メソッド呼び出し 戻り値 = &return @txtVariablDim2.フォーカス設定()
      トレース出力 "フォーカス設定"
      トレース出力 _&return
     end

    手続き定義終了

    添付ファイルは数日を目途に削除しますので、ダウンロードはお早めに願います。

    ■AutoTabみたいな.wfx

     フォーム
     ├ ファミリ
     ├ ワークスペース
     ├ フォーム操作バー
     ├ フォームヘッダ部
     │ └ txtタイトル
     └ フォーム明細部
       ├ txtVariablDim1
       │ └ lbl1
       ├ txtVariablDim2
       │ └ lbl2
       ├ txtVariablDim3
       │ └ lbl3
       ├ txtVariablDim4
       │ └ lbl4
       └ txtVariablDim5
         └ lbl5

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    なお、[桐 - ヘルプ]の[フォーカス設定]メソッドの項の[ノート]によると、

    [編集文字列変更]イベントハンドラ内では実行できないという記載があります。

    しかし、実際には実行出来て、[入力後]イベントハンドラと絡めても問題なく動作していますので、

    [桐 - ヘルプ]の説明が誤っているか、ヘルプ執筆後に桐のバージョンアップの際に仕様が変更された可能性が高いです。

    以下にトレース出力の例を示します。

    ┌when 手続き"txtVariablDim1::編集文字列変更( )"を実行開始しました

    │ :編集文字列長
    │ :&return : 1
    │ :&length : 1

    │┌when 手続き"txtVariablDim1::入力後("1",1,0)"を実行開始しました
    ││
    ││ :&入力継続 : 1
    ││
    │└end

    │ :フォーカス設定
    │ :&return : 0

    └end


    ┌when 手続き"txtVariablDim1::編集文字列変更( )"を実行開始しました

    │ :編集文字列長
    │ :&return : 1
    │ :&length : 1

    │┌when 手続き"txtVariablDim1::入力後("1",1,0)"を実行開始しました
    ││
    ││ :&入力継続 : 0
    ││
    │└end

    │ :フォーカス設定
    │ :&return : 1

    └end

     ↑
    以上のこのように、正しくハンドリングしているので、桐10s以降の仕様変更の可能性が高いです。

    本件はK3殿に照会中です。

    p.s.

    [フォーム(.wfx)+イベント処理(.kex]の[イベント駆動]のプログラミングに関しては、拙作:webサイトを参考にしてください。

    こちら
     ↓
    桐の釣魚大全
    https://silicon7565.cloudfree.jp/

    桐の釣魚大全のトップ > 新 フォームアプリケーション入門 §1
    https://silicon7565.cloudfree.jp/primer/primer_section_01.html

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



引用返信 [メール受信/OFF]
■15129 / ResNo.4)  Re[4]: 指定の文字数を入力したとき自動でタブ
□投稿者/ みどり -(2025/10/10(Fri) 15:15:30)
    ONnojiさん、貴重なお時間を割いて、コードまで作成いただき感謝しきれません。
    まだ途中ではありますが、希望通りの動作が実現できそうです。
    取り急ぎ、お礼申し上げます。
    本当にありがとうございます。
    ウェブサイトも拝見し、勉強させていただきます。
解決済み!
引用返信 [メール受信/OFF]
■15130 / ResNo.5)  Re[5]: 指定の文字数を入力したとき自動でタブ
□投稿者/ ONnoji -(2025/10/11(Sat) 21:44:56)
    2025/10/12(Sun) 09:46:33 編集(投稿者)

    > なお、[桐 - ヘルプ]の[フォーカス設定]メソッドの項の[ノート]によると、
    >
    > [編集文字列変更]イベントハンドラ内では実行できないという記載があります。
    >
    > しかし、実際には実行出来て、[入力後]イベントハンドラと絡めても問題なく動作していますので、
    >
    > [桐 - ヘルプ]の説明が誤っているか、ヘルプ執筆後に桐のバージョンアップの際に仕様が変更された可能性が高いです。
    >
    > 以下にトレース出力の例を示します。
    >
    > ┌when 手続き"txtVariablDim1::編集文字列変更( )"を実行開始しました
    > │
    > │ :編集文字列長
    > │ :&return : 1
    > │ :&length : 1
    > │
    > │┌when 手続き"txtVariablDim1::入力後("1",1,0)"を実行開始しました
    > ││
    > ││ :&入力継続 : 1
    > ││
    > │└end
    > │
    > │ :フォーカス設定
    > │ :&return : 0
    > │
    > └end
    >
    >
    > ┌when 手続き"txtVariablDim1::編集文字列変更( )"を実行開始しました
    > │
    > │ :編集文字列長
    > │ :&return : 1
    > │ :&length : 1
    > │
    > │┌when 手続き"txtVariablDim1::入力後("1",1,0)"を実行開始しました
    > ││
    > ││ :&入力継続 : 0
    > ││
    > │└end
    > │
    > │ :フォーカス設定
    > │ :&return : 1
    > │
    > └end
    >
    >  ↑
    > 以上のこのように、正しくハンドリングしているので、桐10s以降の仕様変更の可能性が高いです。
    >
    > 本件はK3殿に照会中です。

    桐のバージョンを遡ってみた。

    とは言っても、桐9-2012 までが限界。

    試してみると、桐10sと全く同じ動作でした。

    そうなると、桐ヘルプ(マニュアル)は 桐8 sp6/7 の時のまま改訂されずに放置されていたのかなと???

    p.s.

    これは個人の感想ですが、桐に限らずヘルプには誤記(書き過ぎを含む)・抜けなどが多いです。
                     ・・・・・・・・・・・・・・・・・・・・・・・・

    しかし、桐の桐ヘルプ(マニュアル)は他社のヘルプと比べると群を抜いて誤記・抜けが多いという印象です。

    従って、桐ヘルプ(マニュアル)を読んでも、まず試してみる事ですね。

    誤記・抜けが多いが多いのですから、まず試してみなければ本当の事はワカリマセン。

    p.p.s.

    ヘルプやマニュアルは無謬(誤りが無い事)だと思うのが普通の人情ですよね。

    しかし、桐に限らずヘルプには誤記・抜けなどが多いので、実際に試してみるしか確かめる方法がありません。

引用返信 [メール受信/OFF]
■15134 / ResNo.6)  Re[6]: 指定の文字数を入力したとき自動でタブ
□投稿者/ ONnoji -(2025/10/15(Wed) 11:12:44)
    No15130に返信(ONnojiさんの記事)

    > そうなると、桐ヘルプ(マニュアル)は 桐8 sp6/7 の時のまま改訂されずに放置されていたのかなと???

    確かに昔は出来なかったんですよ。

    桐9 sp1/sp2 とかまでかな??

    2004/07/29 と 2004/02/21 の桐井戸端BBSの過去ログにあります。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    過去の桐井戸端BBS (桐ver.9)
    http://www.habata.net/kiri/kbbs/kakov9/27219.htm

    27220 Re:フォーカスの移動 悲しげ 2004/07/29-14:35
    記事番号27219へのコメント

    「入力前(後)」イベントでは、更新モードの変更やフォーカスの移動はできませんね。
    ですから、(入力途中での取得値の訂正よりも)フォーカスの移動の方を優先させたければ、
    例えば「入力前」で扱った「t費目」よりもひとつ前の項目(某オブジェクト)の「ソース値更新」イベントを
    利用するやり方なんかも考えられます。


    http://www.habata.net/kiri/kbbs/kakov9/24983.htm
    24999 Re:項目値如何で次のフォーカスを指定するに際して ONnoji 2004/02/21-10:43
    記事番号24997へのコメント
    >ONnojiさん、おはようございます。
    >ぼくの勘違いでした。

    アックンさん、こんにちは。

    了解しました。(^^v

    >ところで。他に手がないときは、タイマーイベントを駆使するだろうなと思ってました。

    [ソース値更新]は簡単で便利ですが、強力過ぎて困ることがありますね。

    [フォーカス設定]メソッドが実行できるイベントが限られるので、
    タイマーを利用しようと思ったのですが、内容が複雑に見えるかもしれませんね。
    仕掛けは単純なのですが…

    タイマーの他にも、いろいろと方法があるわけですから、
    ケースバイケースで考えれば良いのではないかと思います。

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

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






02812

Mode/  Pass/

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

- Child Tree -
- Antispam Version -