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

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

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

■11462 / inTopicNo.1)  一覧表wfx → カードwfx(行追加)→ 一覧表wfx
  
□投稿者/ 悲しげ -(2018/09/23(Sun) 19:07:57)
    他に宿題は幾つか抱えているけれども、取りあえず今詰まっていることで
    お尋ねします。

    @一覧表フォームから、コマンドボタン「新規追加」でカード画面を呼び出す。
     モーダルフォームor開く。当然多重化。
    Aカードフォームの方で行追加して新規品目を追加する。
    Bさて一覧表フォームに戻った時、画面上で追加したデータが反映されてない!
    C手動でもって、検索や解除〜並べ替えをすると出てくるが、Bで戻った時に
     直ちに表示されていて欲しい。
    D「カードから一覧表に戻ったよ」ということを判断できるイベント(のよう
     なもの?)が何かないものであろうか?
    Eフォーム開始等は使えない。フォームを開き直せばいいのかも? しかし・・・
    F苦肉の策として(まだ試してないが)、一覧表フォームの方で行追加して、
     その行についてカードフォームで入力し、また一覧表フォームに戻るとか?

    悩むこと数時間・・・・お知恵を拝借したく<(_ _)>
    実は初歩的なことなのかもしれませんが・・・
引用返信 [メール受信/OFF] 削除キー/
■11463 / inTopicNo.2)  Re[1]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ 悲しげ -(2018/09/23(Sun) 20:06:41)
    No11462に返信(悲しげさんの記事)

    書くことによって閃きました。
    (と言うか思い出した)

    >D「カードから一覧表に戻ったよ」ということを判断できるイベント(のよう
    > なもの?)が何かないものであろうか?

    独立したボタンからではなく、「フォーム呼び出し」と使えば、
    kexの記述の中でフォームから戻った次の行の処理が行われるのでした。

    ちょっとこの線でやってみます。
    取り急ぎ・・・・アタフタ(^^;)

引用返信 [メール受信/OFF] 削除キー/
■11464 / inTopicNo.3)  Re[1]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ ONnoji -(2018/09/23(Sun) 20:46:52)
    2018/09/23(Sun) 21:32:52 編集(投稿者)
    2018/09/23(Sun) 21:01:16 編集(投稿者)
    2018/09/23(Sun) 20:50:57 編集(投稿者)
    2018/09/23(Sun) 20:47:13 編集(投稿者)

    閃きを得られたそうですが…(^^ゞ

    > @一覧表フォームから、コマンドボタン「新規追加」でカード画面を呼び出す。
    >  モーダルフォームor開く。当然多重化。
    > Aカードフォームの方で行追加して新規品目を追加する。

    レコードをフォームで一覧しながら、カード型フォームでレコードの新規追加をしちゃおうということですね。

    プログラムの作り方は自由ですので、以下はひとつのアイデア(例)です。

    いきなり前提をひっくり返しますが、私だったら、当然多重化シマセン。(^^ゞ

    1.一覧表フォーム:[新規追加]コマンドボタンを実行して一般手続きを呼び出します。

    2.呼び出された一般手続きを仮に cmd新規追加Click( ) だとします。

     ※変数の内容は具体的に代入していませんが、これらは適当なファイル名等です。
     ※ということで、実際に動かしたものではありません

    手続き定義開始 cmd新規追加Click( )

     書き出し 枠組み, &structureTbl /* 毎回上書きします */

     フォーム呼び出し &modalForm, 終了状態 = &status /* カード型フォーム:&modalForm の編集対象表は &structureTbl */

     if ( &status = 1 )

      編集表 &hwindow /* 複数の表を開いている場合の念のため */

      ジャンプ 行番号 = 終端

      読み込み 表, &structureTbl, *

     end

    手続き定義終了

    ちなみに、多重化は、こそっとやり繰りする場合にはいいですが、
    新規レコード登録には馴染まないような気がします。

    すべて個人の感想です。(^^ゞ


    <蛇足>

    なお、カード型フォーム:&modalForm で1行しか駄目よという場合には、

    ■11012 カードで1行だけで処理させる 投稿者/ 悲しげ -(2018/04/24(Tue) 01:01:51)

    というスレッドが参考になろうかと。


引用返信 [メール受信/OFF] 削除キー/
■11465 / inTopicNo.4)  Re[2]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ 尾形 -(2018/09/24(Mon) 05:44:50)
    どうも、こんにちは


    色々なやり方があると思いますけど


    自分がよくやるのは


    一覧表側に[複写追加]ボタンを設置して一覧表側で行複写

    [詳細表示]ボタンで
    引数変数で、カード形式フォームを開き、該当行にジャンプ

    カードフォームのフォーム終了イベントとかで
    一覧表フォームの[画面更新]ボタンとかをメソッド実行


    こんな感じかな


    モーダルフォームは何かと使いにくい気がします


引用返信 [メール受信/OFF] 削除キー/
■11467 / inTopicNo.5)  Re[3]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ 悲しげ -(2018/09/24(Mon) 12:27:31)
    No11465に返信(尾形さんの記事)
    どもっ、尾形さん、コメントおありがとうございました。

    >一覧表側に[複写追加]ボタンを設置して一覧表側で行複写

    私が11462で挙げてみた
    >>F苦肉の策として(まだ試してないが)、一覧表フォームの方で行追加して、
    >> その行についてカードフォームで入力し、また一覧表フォームに戻るとか?

    のような感じですね。
    で、一覧表フォームに戻った時について
    >カードフォームのフォーム終了イベントとかで
    >一覧表フォームの[画面更新]ボタンとかをメソッド実行

    これってやったことが無いのですが、どうやってやるんですか?
    ハンドル指定するんでしょうか?
    ズボラで試してない(^^;)。

    ps.
    >モーダルフォームは何かと使いにくい気がします

    モーダル命(^^;)

引用返信 [メール受信/OFF] 削除キー/
■11470 / inTopicNo.6)  Re[2]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ 悲しげ -(2018/09/24(Mon) 12:42:23)
    2018/09/24(Mon) 12:44:59 編集(投稿者)

    No11464に返信(ONnojiさんの記事)
    どもっ、ONnojiさん、コメントおありがとうございました。

    別表=作業表で用意するデータを読み込むというやり方ですね。
    確かに、私はこれまではどちらかというとそっちの方でやっていたように
    思います。
    今回すっかり囚われてしまったのは、
    本件はこれまで一覧表wfxのデータ(既存)をカードwfxで参照するような
    使い方をしていたのですが、
    このカードwfxで新規登録にも流用したいというスケベ根性を出してしま
    ったことによります。(^^;)

    *

    >ちなみに、多重化は、こそっとやり繰りする場合にはいいですが、
    >新規レコード登録には馴染まないような気がします。

    御意。

    *

    一応No11463でやった解決法を挙げておきます。
    こんな感じ(一覧表の方のkex)
    ----
    proc カード表示()
     if(新規の場合)
      &code="",&newF=1
     else
      &code=[code],&newF=0
     end
     フォーム呼び出し "某Card.wfx"
     if(&newF=1)
      method @b解除.実行()
      検索 [code]{&code}
     end
     &code="",&newF=0
    end
    ----

    今度の機会には別表読込みでやろうと思いました。
    が、このやり方もまあまあの経験値アップだったかと。(^^;)

    *

    >編集表 &hwindow /* 複数の表を開いている場合の念のため */

    はぁ、こんなやり方もあるんですね。(メモメモ)

    *

    >なお、カード型フォーム:&modalForm で1行しか駄目よという場合には、
    >■11012 カードで1行だけで処理させる 投稿者/ 悲しげ -(2018/04/24(Tue) 01:01:51)
    >というスレッドが参考になろうかと。

    あの件は、コメントを元に色々試したのですが、どれも一長一短で
    結局は一番最初のやり方(No11012)のやり方に戻って

    >手続き定義開始 フォーム::レコード移動(長整数 &行番号,長整数 &総件数,長整数 &明細番号)
    > cond(#総件数>0) ジャンプ 行番号=1  /*2行目=eofに行かせない*/
    >手続き定義終了
    >のようにしてみたのですが、たまに訂正モードになっている時なんかは叱られます。

    この際に予め更新モードを判断して、訂正系のモードを強制的に表示モード
    に切替えることで対処しました。
    (おっとこのことは元ツリーに投稿しておこう、一応の「解決済」として)
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■11471 / inTopicNo.7)  Re[1]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ 通りすがり -(2018/09/24(Mon) 13:17:59)
    > Bさて一覧表フォームに戻った時、画面上で追加したデータが反映されてない!

    私の桐では、モーダルフォームを閉じた瞬間に反映されます!
引用返信 [メール受信/OFF] 削除キー/
■11472 / inTopicNo.8)  Re[2]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ 悲しげ -(2018/09/24(Mon) 14:29:51)
    2018/09/24(Mon) 21:56:42 編集(投稿者)
    2018/09/24(Mon) 14:38:12 編集(投稿者)

    No11471に返信(通りすがりさんの記事)
    >>Bさて一覧表フォームに戻った時、画面上で追加したデータが反映されてない!
    > 私の桐では、モーダルフォームを閉じた瞬間に反映されます!

    そうですか。いいですね、期待どおりの挙動ですね。
    私の場合、データとしては入っているのだが、そのままだと幾ら検索しても画面に出てこなかったのです。最終行にも。
    なんでだろ、なんでだろ?
    で、苦肉の策で解除・・・等を行うに際し、画面リフレッシュするタイミング探しを。
引用返信 [メール受信/OFF] 削除キー/
■11473 / inTopicNo.9)  Re[3]: 一覧表wfx → カードwfx(行追加)→ 一覧表wfx
□投稿者/ ONnoji -(2018/09/24(Mon) 15:26:52)
    2018/09/24(Mon) 15:29:39 編集(投稿者)

    > >編集表 &hwindow /* 複数の表を開いている場合の念のため */
    >
    > はぁ、こんなやり方もあるんですね。(メモメモ)

    以下に過去ログを引用しておきます。

    過去ログ65 ■10021 テーブル内で条件付き合計の計算
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=10021&no=0&KLOG=65
    ■10036 Re[7]: 桐の場合は、表を多重化することが出来ます
    投稿者/ ONnoji -(2016/08/25(Thu) 10:16:56)

    >>※フォームの編集対象表には、編集表 &hwindow で切り替えられます。
    > &hwindow って表番号ではなく
    > ウインドウハンドルでは?

    確かに &hwindow は 桐が管理しているウィンドウハンドルの番号です。

    (暗黙の了解というか)すでに気が付いている人も多いと思いますが、

    <編集対象表があるフォーム>ではウィンドウハンドル:&hwindow の値 とフォームの編集対象表:表番号は同値です。

    <NULLフォーム>では、フォームの編集対象表がありませんので #is表 はゼロ( 0 )ですが、<編集対象表があるフォーム>では #is表 も同値です。

    確認するには、[フォーム開始]イベントハンドラの引数:&表番号 と &hwindow を比較します。

    編集対象表があるフォームでは、同値であることがわかりますよ。


    >※フォームの編集対象表には、編集表 &hwindow で切り替えられます。



    &hwindow の替わりに、[フォーム開始]イベントハンドラの引数:&表番号 の値を利用してもOKです。

    この方が納得しやすいかもしれませんね。(^^ゞ

    しかしこれだと、このために[フォーム開始]イベントハンドラを用意する必要があります。

    これはとても面倒なので、同値の &hwindow と説明した次第です。

    なお、拙作のオリジナルでは &hwindow の代わりに、&INFmMyTblNum を使用しています。

    しかし、&hwindow と &INFmMyTblNum は同値なのでどちらを使用しても問題ありません。


    <蛇足>

    まとめ

    ■編集対象表があるフォーム

    ・&hwindow
    ・[フォーム開始]イベントの引数:&表番号
    ・ #is表

    すべて同値。


    ■NULLフォーム

    ・&hwindow
    ・[フォーム開始]イベントの引数:&表番号

    上二つは同値だが、

    ・ #is表

    は ゼロ( 0 )。

    ※注意

    #is表 の値は、[編集表]コマンドや[多重化]コマンドを実行すると、変わるので注意が必要です。


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



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -