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

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

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

■6553 / inTopicNo.1)  サブフォームの検索結果代入
  
□投稿者/ ノンタン -(2011/08/01(Mon) 15:02:33)
    お初です、過去ログ検索でこっそり勉強させて貰っていましたが。
    どうにも自己解決出来なかったのでお尋ねです。
    桐9SP1 WindowsXP SP3です。
    メイン・サブフォームを作りました、両方グループ項目を設定してあり
    同じ表を違う形で見えるようにしています。
    やりたい事は
    サブフォームの[コード]の項目に、入力支援ボタンを作り、コード表のモーダルフォームを表示させ、色々な条件で見つけた、コード番号を[コード]に記入。
    次にそのコードを使って、開いたコード表から[品名]等を変数に取り込み、項目値訂正で記入。
    まずはサブフォームだけでテストして見ました。
    正常に動きました。
    次にメインに組み込まれた状態で実行すると
    「KU1069:対象表が更新中またはグループ操作中ではないためこのコマンドは使用できません 」と出てきます。
    こんな具合です
    手続き定義開始 コード::ソース値更新()
    1:   表 "SHKHIN.TBL",表番号=5,モード=参照
    2:       絞り込み [食品コード]=&SCO
    3:     &HIN=[食品名]
    4:     終了 表 5
    5:     項目値代入 [品名]=&HIN
    この最後 5: でエラーになります。
    フォーカスが外れたかと
    4.5: メソッド呼び出し ハンドル = &hwindow,@食品SUB.@コード.フォーカス設定()
    と途中に入れてみましたがダメでした。
    モーダルフォームの中で変数に格納して、1から4を使わないと正常に動きます。
    出来ればコードの直接入力でも動作するように、1から4の処理は欲しいのです。
    宜しくお願いします。
引用返信 [メール受信/OFF] 削除キー/
■6556 / inTopicNo.2)  Re[1]: サブフォームの検索結果代入
□投稿者/ 尾形 -(2011/08/02(Tue) 11:05:44)
    どうも、こんにちは

    > 手続き定義開始 コード::ソース値更新()
    > 1:   表 "SHKHIN.TBL",表番号=5,モード=参照
    > 2:       絞り込み [食品コード]=&SCO
    > 3:     &HIN=[食品名]
    > 4:     終了 表 5
    > 5:     項目値代入 [品名]=&HIN
    表5 を閉じた後の編集対象表の指定がありません
    編集対象表 "○○○.tbl"
    が必要かと思います

引用返信 [メール受信/OFF] 削除キー/
■6557 / inTopicNo.3)  Re[2]: サブフォームの検索結果代入
□投稿者/ ノンタン -(2011/08/02(Tue) 12:45:09)
    尾形さんの 有り難うございます
    > 編集対象表の指定がありません
    > 編集対象表 "○○○.tbl"
    > が必要かと思います

    残念ながらその手も試してみていますがダメでした。
    閉じた時点で元の表に戻るはずですし、又表は1個しか開いていません。
    エラーの「対象表が更新中または・・・」で対象表には書き込みに行っているはずと思います。
    但しメインとサブで開いていますから、サブから開いた表の指定が出来れば
    とは思っています。
    サブだけで実行したテスト時点では動きましたから。
    メイン・サブと開いた時の表をどちから指定出来るのでしょうか?
    フォーカス設定でサブの画面にフォーカスを指定してもダメでした。
引用返信 [メール受信/OFF] 削除キー/
■6559 / inTopicNo.4)  Re[1]: サブフォームの検索結果代入
□投稿者/ ノンタン -(2011/08/02(Tue) 13:38:07)
    簡略化した物を上げてみました。
    成績.wfm から開くとエラーです
    成績SUB.wfm だと正常です
    サンプルなので
    作ったのはコードの1行目だけです。
    モーダルを使っても一緒ですから
    直接コード欄に数字を入れてみて下さい。


1312259887.zip
/12KB
引用返信 [メール受信/OFF] 削除キー/
■6560 / inTopicNo.5)  Re[2]: サブフォームの検索結果代入
□投稿者/ 尾形 -(2011/08/02(Tue) 14:13:01)
    どうも、こんにちは

    同一表(成績.tbl)に対する
    メインサブフォームのようなので
    多重化されていると思います
    tbl名指定では、無理がいくので
    表番号で指定するといいかと思います


    &秒=#IS表
    &CODE=[コード1]
    表 "生徒.TBL",表番号=5,モード=参照
    絞り込み [コード]=&CODE
    &NAME=[氏名]
    終了 表 5
    *     編集表 "成績.TBL"
    編集表 &秒


    メインwfm側とサブwfm側の両方に
    同じkevがイベント定義されています
    これが原因で#6552の(挙動不審な変数)でないかな

引用返信 [メール受信/OFF] 削除キー/
■6561 / inTopicNo.6)  Re[2]: サブフォームの検索結果代入
□投稿者/ 今村 誠 -(2011/08/02(Tue) 14:13:09)
    横からすいません。
    以下のようにフォームの編集対象表を表番号で
    指定するとエラーメッセージは出ないようです。

    手続き定義開始 tコード1::ソース値更新()
     var int { &Itbl = #IS表 }
     &CODE=[コード1]
       表 "生徒.TBL",表番号=5,モード=参照
          絞り込み [コード]=&CODE
          &NAME=[氏名]
         終了 表 5
         編集表 &Itbl
         項目値代入 [氏名1]=&NAME
    *     行訂正 [氏名1]=&NAME
    *    行訂正だと KD1688:他のウインドウで更新中です D:\kap\sample\成績.tbl:1 最後の :1 が気になる
    手続き定義終了

    今回のエラーはメインフォームがサブフォームと同じ表
    を対象となっているのでメインフォームの表番号は表示
    状態でサブフォームの表は訂正状態です。
    この状態で表の名前で指定してもメインフォームの対象表
    に対しては更新状態でないためエラー表示するしサブの
    編集表に対しては更新状態のため行訂正はできない。
    最初の尾形さんの指摘のように項目値代入したい表が
    どちらの成績表かが不明なので明示的に表番号で指定して
    訂正するのが最善の方法だと思います。
    他の対処方法としては更新モードを変更して表示状態に
    して行訂正をしてもいいと思いますが、ソース値更新
    イベント自体は更新中に使用するので、項目値訂正コマ
    ンドの方が良いと思います。
引用返信 [メール受信/OFF] 削除キー/
■6562 / inTopicNo.7)  Re[3]: サブフォームの検索結果代入
□投稿者/ ノンタン -(2011/08/02(Tue) 23:08:49)
    今村 誠さん、尾形さん 感謝です
    #IS表ですね。
    気になって、それから後一歩進むべきでした。
    有り難うございました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -