(現在 過去ログ85 を表示中)

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

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

■12638 / inTopicNo.1)  グループ追加時の初期値
  
□投稿者/ ねこ -(2020/10/16(Fri) 09:47:52)
    グループ項目[No]には、挿入初期値/編集初期値として#直前値([No],0)+1を定義し、表形式編集では行追加時に初期値として反映されているが、伝票フォームでグループ追加しようとしても追加直前にいたグループ値となてしまう。なぜ? また回避策は?
引用返信 [メール受信/ON] 削除キー/
■12639 / inTopicNo.2)  Re[1]: グループ追加時の初期値
□投稿者/ 今村 誠 -(2020/10/16(Fri) 10:11:41)
    2020/10/16(Fri) 14:15:31 編集(投稿者)

    ねこさんこんにちは、
    > グループ項目[No]には、挿入初期値/編集初期値として#直前値([No],0)+1を
    > 定義し、伝票フォームでグループ追加しようとしても追加直前にいた
    > グループ値となてしまう。なぜ? また回避策は?
    桐のバージョンはあった方が良いのでは?
    改善したいのか、仕様ですと説明したが良いのか?
    改善具体例を述べるよりサンプルが早いのではないですか?
    現在のグループ値(直前値)に1を足すことと表のグループ値の最大値に1を足す
    ことは違います。
    グループ値とカウンター項目は意味が違うので要望を伝えないと
    サンプルの意味がないですよ。
引用返信 [メール受信/OFF] 削除キー/
■12640 / inTopicNo.3)  Re[1]: グループ追加時の初期値
□投稿者/ ONnoji -(2020/10/16(Fri) 12:14:18)
    2020/10/17(Sat) 18:02:33 編集(投稿者)
    2020/10/16(Fri) 21:28:20 編集(投稿者)
    2020/10/16(Fri) 14:51:01 編集(投稿者)

    > グループ項目[No]には、挿入初期値/編集初期値として#直前値([No],0)+1を定義し、表形式編集では行追加時に初期値として反映されているが、
    > 伝票フォームでグループ追加しようとしても追加直前にいたグループ値となてしまう。なぜ?

    グループ項目オブジェクトが無いフォームならば、行追加すれば表編集のようになりますが、

    グループ項目オブジェクトを配置したフォームでは、[グループ値の追加モード]というのがあるのでした。

    だから、挿入初期値/編集初期値は反映されないということだと思いますよ。

    これは桐のヘルプを見ても分かりますよ。
     ↓
    ― [フォーム]オブジェクト(フォーム) 桐のヘルプより

    [フォーム]オブジェクトには、つぎの属性を設定することができます。

    [グループ値の初期化]
    [グループ項目]オブジェクトを配置しているフォームで、[グループ検索]または[グループ追加]を行なう際に、グループ項目値を空欄にするかどうかを選びます。

    選択肢    説明
    しない    両方とも、実行前に表示していたグループ項目値を初期値として表示します。
    する     両方とも、グループ項目値を未記入にします。
    グループ検索 グループ検索を実行したときのみ、グループ項目値を未記入にします。
    グループ追加 グループ追加を実行したときのみ、グループ項目値を未記入にします。

    > また回避策は?

    ↑上で述べたように、[フォームのグループ値の追加モード]の[グループ値の初期化]のことなので回避策は’なし’です。

    以下のようなイベント処理( .kex )を組めば、グループ値の制御は可能です。ご参考まで。


    ■グループ化直前値.kex

    名札  メイン



    手続き定義開始 フォーム::グループ追加開始()
     変数宣言 自動,文字列{ &objectName }
     変数宣言 自動,長整数{ &No }

     &objectName = "grpNo"
     メソッド呼び出し &objectName.グループソース値取得( &No, 0 )

     &No = &No + 1
     **確認 #str( &No )
     **NG:オブジェクト操作 &objectName{ グループソース = &No }
     グループ値代入 [No] = &No

    手続き定義終了



引用返信 [メール受信/OFF] 削除キー/
■12641 / inTopicNo.4)  Re[1]: グループ追加時の初期値
□投稿者/ うにん -(2020/10/16(Fri) 13:50:52)
    なぜ?

    そういう仕様ということなんですね。
    グループ項目のあるフォームでは「グループ選択状態」で、グループを追加した時点ではグループ内の行がない、つまり「直前の行」が存在しません。

引用返信 [メール受信/OFF] 削除キー/
■12643 / inTopicNo.5)  Re[1]: グループ追加時の初期値
□投稿者/ 尾形 -(2020/10/17(Sat) 07:40:52)
    どうも、こんにちは

    >回避策は?
    もしグループ項目が[No]だけなら
    [No]をグループ項目にせずに、明細項目にするとか


引用返信 [メール受信/OFF] 削除キー/
■12644 / inTopicNo.6)  Re[1]: グループ追加時の初期値
□投稿者/ くおんたむ -(2020/10/17(Sat) 11:00:35)
    どうも、ねこさん

    テーブルをヘッダと明細に分けて、メインフォームとサブフォームに
    分ければ[No]をグループ化しなくてもすむようになります。
    ただ、場合によってはメイン側とサブ側の操作が面倒になるだけです。
    面倒とは、主キーの有無によってはです。

引用返信 [メール受信/OFF] 削除キー/
■12645 / inTopicNo.7)  Re[2]: グループ追加時の初期値
□投稿者/ 悲しげ -(2020/10/17(Sat) 16:50:19)
    2020/10/18(Sun) 11:08:34 編集(投稿者)

    No12640に返信(ONnojiさんの記事)

    ひとつ気になったこととして

    >&No = &No + 1

    ここで言うNoは一般には identity を求められていると思いますが、
    仮にNo値が1〜5あるとして、たまたまカレントデータがNo=2に在った時には、
    導かれる&Noは3、すなわち既存グループとなってしまい、新規グループ追加
    ならぬグループの移動になってしまうのでは?
    すいません、試してないので、もしかしたらこんなのは杞憂かもしれない(^^;)。

    (cf.過去ログNo11897からのツリー、就中No11910

    ps.
    No12648での指摘を受けて、誤記を訂正します
    4行上の記述はNo11910ではなくNo11901でした(^^;)。
引用返信 [メール受信/OFF] 削除キー/
■12646 / inTopicNo.8)  Re[3]: グループ追加時の初期値
□投稿者/ ONnoji -(2020/10/17(Sat) 18:08:40)
    2020/10/18(Sun) 15:01:56 編集(投稿者)
    2020/10/17(Sat) 19:04:57 編集(投稿者)

    > ひとつ気になったこととして
    >
    > >&No = &No + 1
    >
    > ここで言うNoは一般には identity を求められていると思いますが、
    > 仮にNo値が1〜5あるとして、たまたまカレントデータがNo=2に在った時には、
    > 導かれる&Noは3、すなわち既存グループとなってしまい、新規グループ追加
    > ならぬグループの移動になってしまうのでは?

    ピンポン!、そのとおりですよ。(^^ゞ

    単純に

     &objectName = "grpNo"
     メソッド呼び出し &objectName.グループソース値取得( &No, 0 )
     &No = &No + 1

    というのは駄目ですねぇ〜。

    というわけで、いろいろあるので↑のサンプルは添付しませんでした。(^^ゞ

    グサッと鋭利なご指摘を受けましたので、改良版を謹製して以下に示します。今回も添付なしです。

    ががが、しかし、これもあくまでもご参考までですよ程度の内容ですよ。

    つまり、参考にして、決してこれにて一件落着というものではありませんよ。

    p.s.

    なお、[グループの連番]と[各行の連番]がごちゃごちゃに捉えられていますが、
    最初から当方はグループの連番という扱いで考えております。

    なぜならば、質問のタイトルは「グループ追加時の初期値」でありますから、
    言うまでも無く、[グループ追加時の初期値の自動加算の目論見]でありましょう。

    つまり、[グループ追加時の初期値の自動加算]を、
    [表の機能の挿入初期値/編集初期値で援用]しようとしてドツボにハマったというのが質問の出発点でせう。

     ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇

    ※桐10と桐10sでは、コピペで動くはずですよ。

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



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

     &mTblNum = &表番号

     多重化
     &mMultiTblNum = #is表

     編集表 &mTblNum

    手続き定義終了

    手続き定義開始 フォーム::グループ追加開始()
     変数宣言 自動,長整数{ &No }

     編集表 &mMultiTblNum
     解除 *
     並べ替え { [No]昇順 }
     ジャンプ 行番号 = 最終
     &No = [No] + 1
     **トレース出力 _[No], " ", _&No

     編集表 &mTblNum

     グループ値代入 [No] = &No

    手続き定義終了

引用返信 [メール受信/OFF] 削除キー/
■12647 / inTopicNo.9)  Re[2]: グループ追加時の初期値
□投稿者/ 通りすがり -(2020/10/17(Sat) 21:43:38)
    2020/10/19(Mon) 10:19:36 編集(投稿者)

    いいね!
    これが普通の方法です

    桐には、グループ項目という便利な機能があるので、桐が想定しているシチュエーションでは超便利です
    一般的な状況では、それを使うと色々と不便になります
引用返信 [メール受信/OFF] 削除キー/
■12648 / inTopicNo.10)  リンク切れ 11901 の誤記でありましょう
□投稿者/ ONnoji -(2020/10/18(Sun) 09:43:02)
    2020/10/18(Sun) 11:08:09 編集(投稿者)

    > (cf.過去ログNo11897からのツリー、就中No11910)

    ↑はリンク切れですが、これは 11901 の誤記でありましょう。
    過去ログ78

    ■11897 / inTopicNo.1)  メイン&サブフォームでメイン側で行追加
    □投稿者/ 篤姫 -(2019/09/13(Fri) 16:42:27)
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=11897&rev=&no=0&KLOG=78


    ■11901 / inTopicNo.4)  Re[3]: メイン&サブフォームでメイン側で行追加
    □投稿者/ 悲しげ -(2019/09/15(Sun) 14:28:00)


引用返信 [メール受信/OFF] 削除キー/
■12649 / inTopicNo.11)  Re[4]: グループ追加時の初期値
□投稿者/ ねこ -(2020/10/19(Mon) 11:59:44)
    たくさんの方々にアドバイス頂き、感謝に耐えません。
    結果としては、ONnojiさんのものをそのまま流用させていただきました。
    グループ追加イベント中にはグループ操作できないので、多重化の考えが思い付きませんでした。
    桐はVer.9sをwindowsXp/7にて十数本を使用し事務処理していますが、まだまだ勉強不足ですね・・・
    今後も皆様方にお世話になると思います。
    有難うございました。

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



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

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

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

- Child Tree -
- Antispam Version -