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

■14522 / 親記事)  連番を自動入力したい
  
□投稿者/ キリマンジャロ -(2024/07/17(Wed) 11:07:37)
    [A] [NO]
    a   1
    a   2
    b   1
    a   3
    c   1
    b   2

    [A]を並び替えれば[NO]に項目名毎に連番を付与(下記)できますが、並び替えないで上記のように項目名毎に最大値+1したい


    という質問があり、[フォーム+イベント処理]で解決されていたので参考にして作ったのですが動きません。
    サンプルになるフォームを見せて頂きたいと思い投稿しました。よろしくお願いいたします。

    https://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=13544&rev=&no=0&KLOG=91
    参考にしたURLです。
引用返信 [メール受信/OFF] 削除キー/
■14523 / ResNo.1)  Re[1]: 連番を自動入力したい
□投稿者/ ONnoji -(2024/07/17(Wed) 11:52:32)
    2024/07/17(Wed) 18:09:48 編集(投稿者)

    > サンプルになるフォームを見せて頂きたいと思い投稿しました。よろしくお願いいたします。
    > https://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=13544&rev=&no=0&KLOG=91
    > 参考にしたURLです。

    たぶん私でしょうね。

     ■13552 / inTopicNo.8)  Re[2]: 連番の自動付与
     □投稿者/ ONnoji -(2022/09/01(Thu) 18:09:57)

    サンプルはすでに削除していますのでありません。ご了承ください。

    参考にしたツリーの内容と、貴殿が行いたい内容が一致しているのか否か疑問です。

    > という質問があり、[フォーム+イベント処理]で解決されていたので参考にして作ったのですが動きません。

    貴殿が作られたものを添付していただくと、この掲示板を見ている人から回答があると思いますよ。

    p.s.

    質問の際には、桐のバージョンを提示してください。桐9-2012?、桐9s?、桐10s?、桐s?

    p.p.s.

    当方のサンプルの表の定義、フォームの定義、イベント処理の定義は、過去ログにすべて掲載されているので、

    一覧表形式のフォームを作れば、そのまま動くはずです。

    しかし、サンプルの一部分を切り取って使うという目的には適していませんよ。

    以下に再掲載(■13552 Re[2]: 連番の自動付与 2022/09/01(Thu))します。

    ■グループ毎の連番を振る.wfm

     フォーム
     ├ ファミリ
     ├ ワークスペース
     │ └ cmdStartup
     ├ フォーム操作バー
     ├ フォームヘッダ部
     │ ├ a
     │ ├ lblA
     │ └ lblNO
     └ フォーム明細部
       ├ 行セレクタ
       ├ txtA
       └ txtNO

     グループ毎の連番を振る.wfm の開始時実行コマンドボタン

     オブジェクト名: cmdStartup
     標題     : cmdStartup

      機能名    機能パラメータリスト
     1 表示
     2 手続き実行  cmdStartupClick
     3 なし
     4 なし

    ■グループ毎の連番を振る.tbl

    項目番号 項目名 データ型
    1     A    文字列        
    2     NO    長整数        
                    

    ■グループ毎の連番を振る.kev

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



    手続き定義開始 cmdStartupClick( )
     変数宣言 自動,文字列{ &icon, &title = "cmdStartupClick( )", &msg }
     変数宣言 自動,整数 { &traceON }
     変数宣言 自動,整数 { &multiTblNum }

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

     編集表 &hwindow
     多重化
     &mMultiTblNum = #is表

     **if ( &mMultiTblNum )
     ** 終了 表 &multiTblNum
     **end
     編集表 &hwindow

     &msg =     "done"
     **メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する

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

    手続き定義開始 フォーム::行挿入終了前(長整数 &明細番号,長整数 &モード,参照 長整数 &行挿入継続)
     変数宣言 自動,文字列{ &icon, &title = "フォーム::行挿入終了前( )", &msg }
     変数宣言 自動,文字列{ &objectName }
     変数宣言 自動,文字列{ &string }
     変数宣言 自動,文字列{ &expression }
     変数宣言 自動,文字列{ &WQ = #jis( #hex("22") ) }
     変数宣言 自動,整数 { &return }
     変数宣言 自動,長整数{ &NO }
     変数宣言 自動,整数 { &traceON }

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

     条件 ( &traceON ) トレース出力 _&モード
     if ( &モード )
      &string = [A]
      条件 ( &traceON ) トレース出力 _&string
     
      編集表 &mMultiTblNum
      &expression = &WQ + &string + &WQ
      解除 *
      絞り込み [A]_&expression
      if ( .not #eof )
      
       並べ替え { [NO]降順 }
       ジャンプ 行番号 = 先頭
       &NO = [NO]
       条件 ( &traceON ) トレース出力 _&NO
      
       編集表 &hwindow
       項目値代入 [NO] = &NO + 1
       **&msg =     "[NO] = " + #str( [NO] )
       **メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
      else
      
       編集表 &hwindow
       項目値代入 [NO] = 1
      end
     end


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

引用返信 [メール受信/OFF] 削除キー/
■14524 / ResNo.2)  Re[1]: 連番を自動入力したい
□投稿者/ ななーし -(2024/07/17(Wed) 13:00:04)
    こんにちは。
    深く考えなくとも以下の動作をどうやるかだけだと思いますよ。

    1.絞り込み動作でaならaで絞り込みをする
    2.並び替え降順で末番が一番上にくるようにする。
    3.ジャンプ 行番号 = 先頭で先頭行の値を取得
    4.値を先頭行の値+1にして返す

    あとは表が桐の場合は複製なのか色々な方法でとってくるといった形です。

    まずは表形式で実現したい内容なのかフォームアプリケーションかは
    質問時に記載すると回答する方もしやすいと思いますよ〜^^V

引用返信 [メール受信/OFF] 削除キー/
■14525 / ResNo.3)  Re[2]: 連番を自動入力したい
□投稿者/ ONnoji -(2024/07/17(Wed) 19:56:11)
    2024/07/17(Wed) 20:12:00 編集(投稿者)

    > という質問があり、[フォーム+イベント処理]で解決されていたので参考にして作ったのですが動きません。

    コピペで動かないというのであれば・・・

    以下の3点をチェックしてください。

    1.もしも、桐10以降の場合であれば、イベント処理ファイルのイベントハンドラの「フォーム」のオブジェクト名を全角にしてください。

    × 手続き定義開始 フォーム::行挿入終了前(長整数 &明細番号,長整数 &モード,参照 長整数 &行挿入継続)

    〇 手続き定義開始 フォーム::行挿入終了前(長整数 &明細番号,長整数 &モード,参照 長整数 &行挿入継続)

    2.フォームの[行挿入終了前]イベントのチェックもオンにしてください。

    3.コマンドボタン:cmdStartup を[開始時実行コマンド]に指定してください。※添付画像参照


512×431 => 250×210

1721213771.jpg
/38KB
引用返信 [メール受信/OFF] 削除キー/
■14534 / ResNo.4)  Re[2]: 連番を自動入力したい
□投稿者/ キリマンジャロ -(2024/08/06(Tue) 10:51:15)
    No14523に返信(ONnojiさんの記事)
    > 2024/07/17(Wed) 18:09:48 編集(投稿者)
    >
    >>サンプルになるフォームを見せて頂きたいと思い投稿しました。よろしくお願いいたします。
    >>https://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=13544&rev=&no=0&KLOG=91
    >>参考にしたURLです。
    >
    > たぶん私でしょうね。
    >
    >  ■13552 / inTopicNo.8)  Re[2]: 連番の自動付与
    >  □投稿者/ ONnoji -(2022/09/01(Thu) 18:09:57)
    >
    > サンプルはすでに削除していますのでありません。ご了承ください。
    >
    > 参考にしたツリーの内容と、貴殿が行いたい内容が一致しているのか否か疑問です。
    >
    >>という質問があり、[フォーム+イベント処理]で解決されていたので参考にして作ったのですが動きません。
    >
    > 貴殿が作られたものを添付していただくと、この掲示板を見ている人から回答があると思いますよ。
    >
    > p.s.
    >
    > 質問の際には、桐のバージョンを提示してください。桐9-2012?、桐9s?、桐10s?、桐s?
    >
    > p.p.s.
    >
    > 当方のサンプルの表の定義、フォームの定義、イベント処理の定義は、過去ログにすべて掲載されているので、
    >
    > 一覧表形式のフォームを作れば、そのまま動くはずです。
    >
    > しかし、サンプルの一部分を切り取って使うという目的には適していませんよ。
    >
    > 以下に再掲載(■13552 Re[2]: 連番の自動付与 2022/09/01(Thu))します。
    >
    > ■グループ毎の連番を振る.wfm
    >
    >  フォーム
    >  ├ ファミリ
    >  ├ ワークスペース
    >  │ └ cmdStartup
    >  ├ フォーム操作バー
    >  ├ フォームヘッダ部
    >  │ ├ a
    >  │ ├ lblA
    >  │ └ lblNO
    >  └ フォーム明細部
    >    ├ 行セレクタ
    >    ├ txtA
    >    └ txtNO
    >
    >  グループ毎の連番を振る.wfm の開始時実行コマンドボタン
    >
    >  オブジェクト名: cmdStartup
    >  標題     : cmdStartup
    >
    >   機能名    機能パラメータリスト
    >  1 表示
    >  2 手続き実行  cmdStartupClick
    >  3 なし
    >  4 なし
    >
    > ■グループ毎の連番を振る.tbl
    >
    > 項目番号 項目名 データ型
    > 1     A    文字列        
    > 2     NO    長整数        
    >                 
    >
    > ■グループ毎の連番を振る.kev
    >
    > 名札  メイン
    >  変数宣言 局所,整数 { &mMultiTblNum }
    >
    > *
    >
    > 手続き定義開始 cmdStartupClick( )
    >  変数宣言 自動,文字列{ &icon, &title = "cmdStartupClick( )", &msg }
    >  変数宣言 自動,整数 { &traceON }
    >  変数宣言 自動,整数 { &multiTblNum }
    >
    >  &traceON = 0
    >  条件 ( &traceON ) トレース出力 &title + "を実行開始しました"
    >
    >  編集表 &hwindow
    >  多重化
    >  &mMultiTblNum = #is表
    >
    >  **if ( &mMultiTblNum )
    >  ** 終了 表 &multiTblNum
    >  **end
    >  編集表 &hwindow
    >
    >  &msg =     "done"
    >  **メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
    >
    >  条件 ( &traceON ) トレース出力 &title + "を実行終了しました"
    > 手続き定義終了
    >
    > 手続き定義開始 フォーム::行挿入終了前(長整数 &明細番号,長整数 &モード,参照 長整数 &行挿入継続)
    >  変数宣言 自動,文字列{ &icon, &title = "フォーム::行挿入終了前( )", &msg }
    >  変数宣言 自動,文字列{ &objectName }
    >  変数宣言 自動,文字列{ &string }
    >  変数宣言 自動,文字列{ &expression }
    >  変数宣言 自動,文字列{ &WQ = #jis( #hex("22") ) }
    >  変数宣言 自動,整数 { &return }
    >  変数宣言 自動,長整数{ &NO }
    >  変数宣言 自動,整数 { &traceON }
    >
    >  &traceON = 1
    >  条件 ( &traceON ) トレース出力 &title + "を実行開始しました"
    >
    >  条件 ( &traceON ) トレース出力 _&モード
    >  if ( &モード )
    >   &string = [A]
    >   条件 ( &traceON ) トレース出力 _&string
    >  
    >   編集表 &mMultiTblNum
    >   &expression = &WQ + &string + &WQ
    >   解除 *
    >   絞り込み [A]_&expression
    >   if ( .not #eof )
    >   
    >    並べ替え { [NO]降順 }
    >    ジャンプ 行番号 = 先頭
    >    &NO = [NO]
    >    条件 ( &traceON ) トレース出力 _&NO
    >   
    >    編集表 &hwindow
    >    項目値代入 [NO] = &NO + 1
    >    **&msg =     "[NO] = " + #str( [NO] )
    >    **メッセージボックス &title, &msg, アイコン = i, ボタン指定 = 1, 制御文字展開 = する
    >   else
    >   
    >    編集表 &hwindow
    >    項目値代入 [NO] = 1
    >   end
    >  end
    >
    >
    >  条件 ( &traceON ) トレース出力 &title + "を実行終了しました"
    > 手続き定義終了

    返信遅れて申し訳ありません。
    再度チャレンジしたいとおもいます!
    > またなにかあれば報告させていただきます。
引用返信 [メール受信/OFF] 削除キー/
■14535 / ResNo.5)  Re[2]: 連番を自動入力したい
□投稿者/ キリマンジャロ -(2024/08/06(Tue) 10:55:17)
    No14524に返信(ななーしさんの記事)
    > 返信遅くなって申し訳ありません。
    様々なことをやってみたくなってしまって、、、また一度考えていきたいと思います。アドバイスありがとうございます。
引用返信 [メール受信/OFF] 削除キー/
■14536 / ResNo.6)  Re[3]: 連番を自動入力したい
□投稿者/ キリマンジャロ -(2024/08/06(Tue) 10:56:57)
    No14525に返信(ONnojiさんの記事)
    > 2024/07/17(Wed) 20:12:00 編集(投稿者)
    >
    桐は10sを使用しています。
    今週中に一度試して見ようと思います。
    アドバイスありがとうございます!

引用返信 [メール受信/OFF] 削除キー/
■14571 / ResNo.7)  Re[3]: 連番を自動入力したい
□投稿者/ 緒方 -(2024/09/18(Wed) 11:20:28)
    No14535に返信(キリマンジャロさんの記事)
    もう解決ずみでしたらすみません
    NOの項目に下記の計算式ではだめですかね
    #条件選択(#直前値([A],"")<>[A],1,1,#直前値([NO],0)+1)
    皆さんが言っておられるように{A]を並び替えして[no]を項目置換すると希望の連番になりますよ
引用返信 [メール受信/OFF] 削除キー/
■14642 / ResNo.8)  Re[4]: 連番を自動入力したい
□投稿者/ キリマンジャロ -(2024/10/31(Thu) 10:38:25)
    No14571に返信(緒方さんの記事)
    > ■No14535に返信(キリマンジャロさんの記事)
    > もう解決ずみでしたらすみません
    > NOの項目に下記の計算式ではだめですかね
    > #条件選択(#直前値([A],"")<>[A],1,1,#直前値([NO],0)+1)
    > 皆さんが言っておられるように{A]を並び替えして[no]を項目置換すると希望の連番になりますよ

    ありがとうございます。解決することが出来ました!

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



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/

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

- Child Tree -
- Antispam Version -