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

[ 最新記事及び返信フォームをトピックトップへ ]

■15056 / inTopicNo.1)  一括処理について
  
□投稿者/ キリマンジャロ -(2025/08/04(Mon) 11:09:50)
    WIN11、桐10S使用です
    いつもお世話になっております
    表1
    項目名 工NO 整数
    表2
    項目名 工NO1 整数

    現在の表1:工NOという項目があり、値が 1、2、3 などが入っている。
    別の表2:工NO1、工NO2、工NO3 という項目がある。

    目標:一括処理にて、もし工NOが1なら、別の表2の工NO1項目にデータを置換(上書き)したい。工NOが2なら、別のテーブルの工NO2項目に置換したい、というように、工NOの値によって置換先の項目を切り替えたい。



    ifを使うと長くなりそうなのと、追加の項目があった場合、表+一括処理の変更もしなければいけないので悩んでおります。

    お忙しいところ恐縮ですがよろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■15057 / inTopicNo.2)  Re[1]: 一括処理について
□投稿者/ キリマンジャロ -(2025/08/04(Mon) 11:34:20)
    No15056に返信(キリマンジャロさんの記事)
    データ型ですが、両方とも文字列でした。よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■15058 / inTopicNo.3)  Re[2]: 一括処理について
□投稿者/ キリマンジャロ -(2025/08/04(Mon) 11:53:15)
    No15057に返信(キリマンジャロさんの記事)
    > ■No15056に返信(キリマンジャロさんの記事)
    > データ型ですが、両方とも文字列でした。よろしくお願いします。
    削除キ-を忘れてしまい追加します。
    度々申し訳ありませんが、工NOが整数で工NO1が文字列でした。よろしくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■15060 / inTopicNo.4)  Re[1]: 一括処理について
□投稿者/ うにん -(2025/08/04(Mon) 18:50:40)
    >追加の項目があった場合、表+一括処理の変更もしなければいけないので悩んでおります。

    追加の項目があれば表の変更が必要なのは当然ですが。表の構造に問題がありそうということですね。
    そもそもやりたいことは、どういったものでしょうか。

    >別の表2の工NO1項目にデータを置換
    この処理内容がわかりませんが

    表定義を変えずにやるには、項目名になってるものを項目値にするのが定番です。

    表2は持たずに、表1から転置集計で出せたりしないですかね。
引用返信 [メール受信/OFF] 削除キー/
■15061 / inTopicNo.5)  Re[2]: 一括処理について
□投稿者/ キリマンジャロ -(2025/08/05(Tue) 10:31:29)
    2025/08/05(Tue) 10:45:24 編集(投稿者)
    2025/08/05(Tue) 10:44:59 編集(投稿者)

    うにんさん、ありがとうございます。
    >追加の項目があった場合、表+一括処理の変更もしなければいけないので悩んでおります。
    >
    > 追加の項目があれば表の変更が必要なのは当然ですが。表の構造に問題がありそうということですね。
    > そもそもやりたいことは、どういったものでしょうか。
    表の変更はしかたないですが、一括処理は表の項目追加に左右されずに処理したいです。 

    > >別の表2の工NO1項目にデータを置換
    > この処理内容がわかりませんが
    >
    > 表定義を変えずにやるには、項目名になってるものを項目値にするのが定番です。
    >
    > 表2は持たずに、表1から転置集計で出せたりしないですかね。

    表1に[工NO]があり、1.2.3.と整数でデータがあります。
    表2に[工NO1] [工NO2] [工NO3] と項目名文字列であります。

    表1にて、
    何かうまい事やって、
    代入 &工NO1=工NO+[工NO] ??みたいので[工NO]が1なら…&[工NO1]の項目名を作り

    表2
    併合 "表1",置換,{[キーコード]照合,[工NO1]照合&[工NO1],[工程名]複写}

    [工NO]を項目名に
    出来たらいいなと思いました。すごくボヤっとしたものですので
    「そもそも無理だよ〜」でもいいので、ご教示いただきたく存じます。

引用返信 [メール受信/OFF] 削除キー/
■15062 / inTopicNo.6)  Re[3]: 一括処理について
□投稿者/ ジェダイの桐 -(2025/08/05(Tue) 15:24:57)
    キリマンジャロさん

    こんにちは!

    私の理解力が悪いので教えて下さい(^^ゞ

    > 表1に[工NO]があり、1.2.3.と整数でデータがあります。
    > 表2に[工NO1] [工NO2] [工NO3] と項目名文字列であります。

    1、表1の 項目名 : [工NO] データ型 : 整数 に入力された 1-3 の整数を
      表2 の 項目名 : [工NO1] [工NO2] [工NO3] データ型 : 文字列 に 1-3 を入れたいと言う事ですか?

    2、表1の 項目名 : [工NO] データ型 : 整数 とは別項目があって、[工NO] に 1-3 のいずれかが入力された時の[工NO]の別項目を
      表2の 項目名 : [工NO1] [工NO2] [工NO3] データ型 : 文字列 に値を入れたいと言う事ですか??

    これが分かれば、もっとアドバイスしてくれる人が増えそうな気がします(^^ゞ
引用返信 [メール受信/OFF] 削除キー/
■15063 / inTopicNo.7)  Re[3]: 一括処理について
□投稿者/ まさやん -(2025/08/05(Tue) 22:48:36)
    2025/08/06(Wed) 06:57:24 編集(投稿者)
    2025/08/06(Wed) 06:30:53 編集(投稿者)
    2025/08/06(Wed) 01:59:12 編集(投稿者)
    2025/08/06(Wed) 01:14:56 編集(投稿者)
    2025/08/05(Tue) 23:30:43 編集(投稿者)
    2025/08/05(Tue) 23:18:13 編集(投稿者)
    2025/08/05(Tue) 23:17:26 編集(投稿者)
    2025/08/05(Tue) 23:05:31 編集(投稿者)
    2025/08/05(Tue) 23:02:07 編集(投稿者)


    こんばんは

    > 表1に[工NO]があり、1.2.3.と整数でデータがあります。
    > 表2に[工NO1] [工NO2] [工NO3] と項目名文字列であります。
    >
    > 表1にて、
    > 何かうまい事やって、
    > 代入 &工NO1=工NO+[工NO] ??みたいので[工NO]が1なら…&[工NO1]の項目名を作り
    >
    > 表2
    > 併合 "表1",置換,{[キーコード]照合,[工NO1]照合&[工NO1],[工程名]複写}
    >
    > [工NO]を項目名に
    > 出来たらいいなと思いました。すごくボヤっとしたものですので

    項目を増やしたり・・ は なんか データベースの定義に反する考えかもしれません
    が なんとなく項目を作り・・とか データの更新 とかヒントに ちと考えてみました

    項目番号を取得する 関数 #項目番号 というのがあります
    つまり [工NO1] [工NO2]でも [工NO3]でも・・・
    という項目があるかどうか を調べる関数 

    この項目がない場合 項目を 追加する コマンドが 項目属性変更 追加{"○○",文字列(か数値型か どうかは目的に合わせて)}

    これらを うまく組み合わせると 

    >工NOの値によって置換先の項目を切り替えたい。

    ができるのかなぁ と感じました
    ただそれ以降の 何のデータを置換したいのかは 推測です
    [キーコード]を 照合基準にして [キーコード]の値がデータにあるかどうかと推測
    [工程名]の値を データ書き換えする・との推測で 考えてみました

    あっているかどうかわかりませんが

    >併合 "表1",置換,{[キーコード]照合,[工NO1]照合&[工NO1],[工程名]複写}
    併合コマンドは やったことがないので この文章を基に 推測です




    変数宣言 共通,整数{&項目番号}
    変数宣言 共通,数値{&番号データ,&deta}
    変数宣言 共通,文字列{&項目名,&行程名}   /*(&項目名は 文字列かな)


    表 "表1"
    表 "表2"

    繰り返し ( .not #終端行)
    編集表 "表1"
        &番号データ=[工NO],&項目名="工NO"+#文字列(&番号データ),&キーコード=[キーコード],&行程名=[行程名]
        
    編集表 "表2"
        &項目番号=#項目番号(&項目名)
        if (&項目番号="")
    項目属性変更 追加{&項目名,文字列}  /*(数値型か文字列型か目的にあわせて設定してください)

             &項目番号=#項目番号(&項目名)

             検索 [キーコード]=&キーコード

            if (#終端行)

               行追加 [キーコード]=&キーコード,&項目番号=&行程名
            else
               行訂正 &項目番号=&行程名

               *&deta=#項目属性(&項目番号,0) ←数値型の場合 文字列の場合は不要
               *(数値型の場合は  行訂正 &項目番号=&deta+&▲)
            end
        else
            検索 [キーコード]=&キーコード

            if (#終端行)

               行追加 [キーコード]=&キーコード,&項目番号=&行程名
            else

               * &deta=#項目属性(&項目番号,0) ←数値型の場合 数値型だったら&項目番号=&deta+&▲ 文字列の場合は不要)
               行訂正 &項目番号=&行程名   /*←文字列
     
            end
        end
    編集表 "表1"
        ジャンプ 行番号=+1
    繰り返し終了

    かと 思います




    &番号データ=[工NO] は [工NO]で取得した(例えば 3 ) &番号データ=3
    &項目名="工NO”+#文字列(&番号データ)         &項目名="工NO”+ "3" つまり "工NO3"

    "工NO3" という項目があるかどうか 調べる関数  #項目番号(&項目名) で

    if 項目がない場合 (&項目番号="")
      項目属性変更 追加{&項目名,文字列}     項目追加コマンド
      &項目番号=#項目番号(&項目名)        追加した項目の番号を取得

      [キーコード]で &キーコードを検索

      結果 無い場合

      行追加 [キーコード]=&キーコード,&項目番号=&行程名

      結果 ある場合

      行訂正 &項目番号=&行程名

    else 項目がある場合

      [キーコード]で &キーコードを検索

      結果 無い場合 #終端行

      行追加 [キーコード]=&キーコード,&項目番号=&行程名

      結果 ある場合

      行訂正 &項目番号=&行程名
    end

    と コマンドの解説です

    外していたらごめんなさい
    その後の詳しい説明が無かったので 今までの推測で たぶんこうだろう劇場的な考えです

引用返信 [メール受信/OFF] 削除キー/
■15064 / inTopicNo.8)  Re[4]: 一括処理について
□投稿者/ まさやん -(2025/08/05(Tue) 23:11:28)
    2025/08/06(Wed) 02:29:58 編集(投稿者)
    2025/08/05(Tue) 23:45:20 編集(投稿者)
    2025/08/05(Tue) 23:22:08 編集(投稿者)
    2025/08/05(Tue) 23:14:16 編集(投稿者)

    参考までに 推測で 作ってみましたが

    基本的に  そのような項目を 増やす ということは

    データベースの考えからして キリがないとおもいます

    項目として考えるのじゃなく データとして考えて
    縦の方向に増やしていくという考えが いいと思います

    そして 工NO01  工NO02  工NO03・・・
    のグループ化して フォームで表示させたらどうでしょうか?

    項目が 100あっても 200あっても 300あっても 足りない・・ことになると思います


    結論

    あれ? ようく考えると・・・

    表1 の 1 2 3  をグループ化したフォームを作って
    フォームで表示すれば? いいのでは? ちがうかな・
引用返信 [メール受信/OFF] 削除キー/
■15065 / inTopicNo.9)  Re[4]: 一括処理について
□投稿者/ まさやん -(2025/08/06(Wed) 02:04:04)
    2025/08/06(Wed) 02:30:59 編集(投稿者)

    コマンド 最初に投稿したのは 違っていたので 修正しました


    結論

    あれ? ようく考えると・・・

    表1 の 1 2 3  をグループ化したフォームを作って
    フォームで表示すれば? いいのでは? ちがうかな・
引用返信 [メール受信/OFF] 削除キー/
■15066 / inTopicNo.10)  Re[5]: 一括処理について
□投稿者/ まさやん -(2025/08/06(Wed) 06:17:35)
    2025/08/06(Wed) 06:21:20 編集(投稿者)

    > 結論
    >
    > あれ? ようく考えると・・・
    >
    > 表1 の 1 2 3  をグループ化したフォームを作って
    > フォームで表示すれば? いいのでは ? ちがうかな・

    キリマンジャロさん  もしかして エクセル長くやっていましたか?

    もしそうだとしたら  ONnojiさん(ONnojiさんすみません名前出しちゃって)がよく話していた

    エクセル的な発想の桐の使い方してたんですね (ごめんなさいこの様な表現で)

    質問の内容が 表を追加して・・・ となっていたので
    なんで 追加した表に 項目追加して なんでだろうと思っていました (ONnojiさんはもうすでに気づいていたと察します)

    もしそうだったら
    エクセル的な発想はもう捨てて 試しにフォームを作って遊びましょう(違っていたらごめんなさい)

    サンプルを提示すると 理屈が覚えられないと思いアップしません

    AKOMEさんや ONnojiさんのホームページに フォームの作り方が詳しく載っていますので
    参考にして 作って遊びましょう

    そうすると 以前 行集計コマンドの質問が ありましたね?
    伝票フォームを作っただけで  あのコマンド実行しなくても 常に 合計が表示するようになります

    行集計コマンドに #大計[〇〇] とありましたね

    それが グループ項目に相当する物で (フォーム定義画面右側の クリップの模様)
    ヘッダ部に グループ項目オブジェクト作成します  そこのオブジェクトのソースは [〇〇]になります
    そして #合計[▲▲]のグループ項目オブジェクトをフッダ部に作ります
    同じく オブジェクトのソースは合計したい項目[▲▲]を設定
    明細部には 蓄積された データを 表示するように 必要項目だけの 
    テキストオブジェクトをレイアウトします

    すると 常に グループの 必要項目[▲▲]の 集計合計が 表示されます


    それの考えで 今回質問の 表1 のTBLを基にして

    [工NO] の項目を  グループ項目として 設置します

    イベントの 

    手続き定義開始 フォーム::フォーム開始(長整数 &表番号) から

    手続き定義終了   の間に

    例えば 

     グループ検索 {[工NO]=1},終了状態=&終了状態   ← &終了状態 整数型の変数を定義済とする
            条件 (&終了状態=0) グループ追加 {[工NO]=1},終了状態=&終了状態


    と記述します その結果

    [工NO] のデータが 1 だけのグループを表示します

    つまり  表2 に項目増やして データを置換することを しているわけです

    上記は かいつまんで書きました

    詳しくは AKOMEさん  ONnojiさんのホームページ参考に作って遊んでください


    因みに 表1 の表形式編集(今までの表示)の 会話処理で 

    [工NO] のデータ 1 を絞り込んで見てください
    表2 で項目追加した 工NO01の必要なデータだけ 表示されましたよね
    次に 絞り込み解除して  同じく [工NO] の 2だけ 絞り込んでください
    表2 で項目追加した 工NO02 の必要なデータだけ出てきましたよね


    つまりこの一連の 操作が 伝票形式フォームでレイアウトして実行すると
    グループ移動の ボタン押すだけで 一人で やってくれてる・・ ということです


    考えを フォームを作って遊んでみる・・ の意識に 切り替わるように・・

    もうすでに やっていたら ご容赦ください
    まとはずれな時も ご容赦ください

引用返信 [メール受信/OFF] 削除キー/
■15067 / inTopicNo.11)  Re[1]: 一括処理について
□投稿者/ 尾形 -(2025/08/06(Wed) 06:25:04)
    どうも、こんにちは

    参考になるか分かりませんが
    #表引き2
    という関数があります


引用返信 [メール受信/OFF] 削除キー/
■15068 / inTopicNo.12)  Re[2]: 一括処理について
□投稿者/ 尾形 -(2025/08/06(Wed) 06:37:18)
    ごめんなさい

    逆パターンみたいですね
    使えないですね


引用返信 [メール受信/OFF] 削除キー/
■15069 / inTopicNo.13)  Re[4]: 一括処理について
□投稿者/ まさやん -(2025/08/06(Wed) 17:00:36)
    > 変数宣言 共通,整数{&項目番号}
    > 変数宣言 共通,数値{&番号データ,&deta}
    > 変数宣言 共通,文字列{&項目名,&行程名}   /*(&項目名は 文字列かな)
    >
    >
    > 表 "表1"
    > 表 "表2"
    >
    > 繰り返し ( .not #終端行)
    > 編集表 "表1"
    >     &番号データ=[工NO],&項目名="工NO"+#文字列(&番号データ),&キーコード=[キーコード],&行程名=[行程名]
    >     
    > 編集表 "表2"
    >     &項目番号=#項目番号(&項目名)
    >     if (&項目番号="")
    > 項目属性変更 追加{&項目名,文字列}  /*(数値型か文字列型か目的にあわせて設定してください)
    >
    >          &項目番号=#項目番号(&項目名)
    >
    >          検索 [キーコード]=&キーコード
    >
    >         if (#終端行)
    >
    >            行追加 [キーコード]=&キーコード,&項目番号=&行程名
    >         else
    >            行訂正 &項目番号=&行程名
    >
    >            *&deta=#項目属性(&項目番号,0) ←数値型の場合 文字列の場合は不要
    >            *(数値型の場合は  行訂正 &項目番号=&deta+&▲)
    >         end
    >     else
    >         検索 [キーコード]=&キーコード
    >
    >         if (#終端行)
    >
    >            行追加 [キーコード]=&キーコード,&項目番号=&行程名
    >         else
    >
    >            * &deta=#項目属性(&項目番号,0) ←数値型の場合 数値型だったら&項目番号=&deta+&▲ 文字列の場合は不要)
    >            行訂正 &項目番号=&行程名   /*←文字列
    >  
    >         end
    >     end
    > 編集表 "表1"
    >     ジャンプ 行番号=+1
    > 繰り返し終了
    >

    のコマンドが 共通の箇所がありましたので

    変数宣言 共通,整数{&項目番号}
    変数宣言 共通,数値{&番号データ,&deta}
    変数宣言 共通,文字列{&項目名,&行程名}   /*(&項目名は 文字列かな)


    表 "表1"
    表 "表2"

    繰り返し ( .not #終端行)
    編集表 "表1"
        &番号データ=[工NO],&項目名="工NO"+#文字列(&番号データ),&キーコード=[キーコード],&行程名=[行程名]
        
    編集表 "表2"
        &項目番号=#項目番号(&項目名)
        if (&項目番号="")
            項目属性変更 追加{&項目名,文字列}  /*(数値型か文字列型か目的にあわせて設定してください)

             &項目番号=#項目番号(&項目名)
        end


             検索 [キーコード]=&キーコード

            if (#終端行)

               行追加 [キーコード]=&キーコード,&項目番号=&行程名
            else
               行訂正 &項目番号=&行程名

               *&deta=#項目属性(&項目番号,0) ←数値型の場合 文字列の場合は不要
               *(数値型の場合は  行訂正 &項目番号=&deta+&▲)
            end

    編集表 "表1"
        ジャンプ 行番号=+1
    繰り返し終了


    と 同じ事ですね
引用返信 [メール受信/OFF] 削除キー/
■15070 / inTopicNo.14)  Re[6]: 一括処理について
□投稿者/ ONnoji -(2025/08/06(Wed) 19:57:39)
    2025/08/07(Thu) 10:48:31 編集(投稿者)

    > 質問の内容が 表を追加して・・・ となっていたので
    > なんで 追加した表に 項目追加して なんでだろうと思っていました (ONnojiさんはもうすでに気づいていたと察します)

    いえいえ、私( ONnoji )は何も気づいていませんですよ。アハハハha

    失礼ながら、キリマンジャロさんの説明を何度読み返しても、やりたいことがサッパリわかりません。

    なので、傍観者になっているだけですよ。(^^ゞ

    p.s.

    [まさやん]さんへ申し上げますが・・・

    当方を「過大評価」するのはご遠慮くださいね。アハハhha

引用返信 [メール受信/OFF] 削除キー/
■15071 / inTopicNo.15)  Re[4]: 一括処理について
□投稿者/ キリマンジャロ -(2025/08/07(Thu) 10:11:39)
    うにんさん、ジェダイの桐さん、まさやんさん、尾形さん、ONnojiさん
    ありがとうございます。

    今回の質問自体が出来るか、出来ないかの分からない質問だったので抽象的な表現になってしまったのを反省しております。
    また分からないことがあれば、質問させて頂きますのでその時は宜しくお願い致します。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Mode/  Pass/

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

- Child Tree -
- Antispam Version -