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

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

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

■5315 / inTopicNo.1)  表の破棄終了が出来ません
  
□投稿者/ 舩井啓行 -(2009/11/02(Mon) 22:42:07)
    表の破棄終了が出来なくて困っています
    桐9-2005、Win2000を使用しています。

    表をフォームAのkevファイル内で開く(モード = 専有)。
    そのkevからフォームBをフォーム呼び出し(編集表=する)する。
    フォームBではグループ指定で行追加をしてデータ入力。
    フォームBに配置したコマンドボタン(機能名:閉じる、機能パラメータリスト:破棄する)を実行する。

    以上のような操作をしたとき、行追加したデータは破棄されると思っていたのですがそうならずに上書き保存されてしまいます。

    機能パラメータリストを「確認する」にしてみましたが、確認メッセージも出ず同様の結果となりました。
    コマンドボタンを実行する前に既に保存されているのかと考え、コマンドボタンの機能1に機能名:書き出し_表、機能パラメータリスト:"test"挿入して実行すると、「書き出し条件が無い」旨のメッセージが出てエラーとなりました。
    ここでどの様な操作をしても桐を終了できなくなったので、強制的にウインドウズのタスクマネージャーでタスクの終了を行い桐を終了させました。期待した表の書き出しは出来なかったものの、当該の表を開くと保存終了されていないことが分かりました。
    そうするとやはり、機能名:閉じるで上書き保存されている可能性が高いと思い至りました。

    そこでコマンドボタンに機能名:一括処理へ戻るを設定し、kevファイル側に 中止 表 編集対象表としましたが結果は変わりませんでした。

    なお、フォームBの定義で編集対象表は無し、表の共有はオープン指定値、表の更新はオープン指定値としております。

    どうすれば破棄終了が出来るようになるでしょうか。
引用返信 [メール受信/ON] 削除キー/
■5317 / inTopicNo.2)  Re[1]: 表の破棄終了が出来ません
□投稿者/ toshi-chan -(2009/11/03(Tue) 13:30:42)
    こんにちは。

    問題は表にあるような気がします。表定義のファイル属性で「バックアップをとる」にチェックが入っているでしょうか。

    入っていないと必ず上書きになります。
引用返信 [メール受信/OFF] 削除キー/
■5318 / inTopicNo.3)  Re[1]: 表の破棄終了が出来ません
□投稿者/ 尾形 -(2009/11/03(Tue) 13:44:07)
    どうも、こんにちは

    > 表をフォームAのkevファイル内で開く(モード = 専有)。
    > そのkevからフォームBをフォーム呼び出し(編集表=する)する。
    > なお、フォームBの定義で編集対象表は無し、
    フォームAの編集対照表と同じ表を
    フォームBでも開く事になるのでしょうから
    破棄は無理でしょう

    フォームBの用途によっては別の手法もあると思いますけど

引用返信 [メール受信/OFF] 削除キー/
■5319 / inTopicNo.4)  Re[2]: 表の破棄終了が出来ません
□投稿者/ 舩井啓行 -(2009/11/03(Tue) 16:13:02)
    toshi-chanさん コメントありがとうございます。

    >表定義のファイル属性で「バックアップをとる」にチェックが入っているでしょうか。

    チェックは入っております。

引用返信 [メール受信/ON] 削除キー/
■5320 / inTopicNo.5)  Re[2]: 表の破棄終了が出来ません
□投稿者/ 舩井啓行 -(2009/11/03(Tue) 16:15:10)
    尾形さん コメントありがとうございます。
    >フォームAの編集対照表と同じ表を
    >フォームBでも開く事になるのでしょうから
    >破棄は無理でしょう

    説明が不足していました。
    フォームAはフォームA専用の表(表A)、 フォームBはフォームB専用の表(表B)を開いています。(つもりです)
    ただし、フォームBを呼び出すにはフォームAのコマンドボタンから呼び出されるイベントの中で、
    表Bを開いてからフォームBを呼び出しています。この順序が何か影響しているのでしょうか。

    よろしくお願いいたします。

引用返信 [メール受信/ON] 削除キー/
■5321 / inTopicNo.6)  Re[3]: 表の破棄終了が出来ません
□投稿者/ Kanasy.Ge -(2009/11/03(Tue) 19:10:53)
    No5320に返信(舩井啓行さんの記事)

    肝心の部分がブラックボックス状態での質問なので、
    想像を激しく逞しくして検討してみると

     表 "舩井.tbl" (バックアップ指定ありの表)
     ・・・・・
     フォーム呼び出し "舩井B.wfm", 編集表=する, 終了状態=&実行リターン

    ここで「破棄する」で閉じたとしても
    問題は、引き続くkevの記述の中でこの表を閉じる時

     終了 表 編集対象表

    とすると、保存終了されます。

     中止 表 編集対象表

    にすれば、晴れて中止=破棄終了となります。
    が、こういうことでもないのかな?
    kevの一連の該当部分を挙げてもらうのが生産的なのですが。



    ついでに云えば、このように無理矢理破棄終了させるよりも、当該処理専用の作業表を使うやり方の方が私的には好みです。
    例えば

     ファイル複写 "舩井.tbl","舩井作業.tbl"
     表 "舩井作業.tbl"
     ・・・・・
     フォーム呼び出し "舩井B.wfm", 編集表=する, 終了状態=&実行リターン
     ・・・・(作業表なので、保存終了だろうが何だろうがお構いなし)
     終了 表 編集対象表
     ファイル削除 "舩井作業.tbl"
     (削除しなくても次回のファイル複写で上書きされてしまいますけど)

引用返信 [メール受信/OFF] 削除キー/
■5322 / inTopicNo.7)  Re[3]: 表の破棄終了が出来ません
□投稿者/ うにん -(2009/11/03(Tue) 19:24:56)
http://dev.mysql.com/downloads/mysql/5.1.html
    > フォームAはフォームA専用の表(表A)、 フォームBはフォームB専用の表(表B)を開いています。(つもりです)

    別の表なのに編集表=する、なのは?
引用返信 [メール受信/OFF] 削除キー/
■5324 / inTopicNo.8)  Re[1]: 表の破棄終了が出来ません
□投稿者/ 通りすがり -(2009/11/04(Wed) 13:40:14)
    > 表をフォームAのkevファイル内で開く(モード = 専有)。
    > そのkevからフォームBをフォーム呼び出し(編集表=する)する。

    関係ないかもしれないけど、
    ファイルパレットでフォームB表のビューが[イベント処理]になってない?
    経験上、[イベント処理]ビューだと上書き・破棄がイベント元に依存するような
    ウインドウ作成で別のインスタンス作ったら旨くいった覚えがあるような…

    勘違いだったらゴメン
引用返信 [メール受信/OFF] 削除キー/
■5325 / inTopicNo.9)  Re[2]: 表の破棄終了が出来ません
□投稿者/ 今村 誠 -(2009/11/04(Wed) 17:49:46)
    通りすがりさんこんにちは
    > ファイルパレットでフォームB表のビューが[イベント処理]になってない?
    初めてビューを見てみました。
    パレットの右端のボタンで表示するのですね。(編集表)
    イベントとかフォーム編集とか出て面白いです。
    今回のような流れを作ってみると最初のフォームAの編集対象表は
    フォーム編集から変わりませんね。
    新しいフォームBを開くと開いた表がフォーム編集に変わります。
    フォームBの閉じるボタンを押すとフォーム編集からイベント処理
    に変わります。
    (ここは閉じたあとに確認コマンドで無理に一時停止しました。)
    確認を閉じるとまた最初のファーム編集だけに変わりますね。
    ボタンにモーダルフォームだと即閉じて綺麗なものです。
    ファイルパレットも表の状態を確認するのに有効ですね。
    勉強になりました。
引用返信 [メール受信/OFF] 削除キー/
■5326 / inTopicNo.10)  Re[4]: 表の破棄終了が出来ません
□投稿者/ 舩井啓行 -(2009/11/04(Wed) 23:00:45)
    Kanasy.Geさん ありがとうございます。

    >肝心の部分がブラックボックス状態での質問なので、
    すいません。問題となると思っている箇所のみ質問させていただいたつもりでしたが
    早く解決するためにはオープンにする方がいいですよね。
    ということで分かりにくいとは思いますが作成中のkevを見て下さい。

    やりたい処理は以下の通りです。
    1.フォーム"住居情報"で同封者設定ボタンをクリックすると機関誌親子設定()を実行
    2.機関誌親子設定()の中で今回問題となっている表"機関誌親子(会員)"を開く
    3.その表を編集するフォーム"機関誌親子設定.wfm"をモーダルで呼び出す
    4.フォーム"機関誌親子設定.wfm"の開始時にグループ選択状態にする
    5.そのフォームで訂正や行追加を行う
    6.訂正や行追加を行ったことをキャンセルする(これが出来ません)

    ここまで書いていてふと思ったのですが、フォームのコマンドボタン(機能名:閉じる)は
    フォームは閉じるが編集対象としている表は閉じないのでしょうか。


    【住居情報.kev】フォーム"住居情報"
    手続き定義開始 機関誌親子設定()       /* フォーム"住居情報"の同封者設定ボタン押下時実行 */
      変数宣言 共通, 整数{&handlHONBU}
      ウィンドウリスト取得 &handlHONBU
      &表HONBU=#IS表
      &選択ファイル名 = "機関誌"
      ファイル複写 "機関誌親子(会員).tbl","親子copy.tbl"
      表 "機関誌親子(会員)"
      変数宣言 固有,整数{&表機関誌親子= #IS表}
      フォーム呼び出し "機関誌親子設定.wfm", 編集表=する
    手続き定義終了


    【機関誌会費親子設定.kev】フォーム"機関誌親子設定"
    手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
      &処理 = &選択ファイル名 , &選択ファイル名 = #未定義
      &STR = [更新日]
      条件( &処理 = "機関誌" ) 変数宣言 固有,整数{&表機関誌親子= #IS表} 
      条件( &処理 = "会費" )  変数宣言 固有,整数{&表会費親子 = #IS表}
      書き出し 表 , "絞込"
      グループ検索 { [親会員] = &親会員番号 }, 終了状態 = &実行リターン
      if ( &実行リターン = 0 ) /* 指定グループが存在しない場合 */
        グループ追加 { [親会員] = &親会員番号 }, 終了状態 = &実行リターン
        行追加 終了状態=&実行リターン
        ジャンプ 行番号=前行
      end
      置換  終了状態=&実行リターン , [子の状況] = #未定義 , [表示順] = #連番
      メソッド呼び出し @t子会員.フォーカス設定()
    手続き定義終了

    手続き定義開始 フォーム::フォーム終了()
      手続き実行 機関誌同封数または送付先()
      ファイル削除 "絞込.tbl"  /* いきなり中止で終了する時の対処 */
      ファイル削除 "親子copy.tbl"
    手続き定義終了

    手続き定義開始 機関誌同封数または送付先()
      編集表 &表HONBU
      &親会員番号 = [会員番号]
      変数宣言 自動,文字列{&送付先処理} /* この手続き内のみ有効 */
      &送付先処理 = #条件選択( [送付先]="本人" , "本人", [送付先]="別会員", "別会員" )
      if([送付先]="本人" .or [送付先]="別会員")   /* if_01 */
        if(#変数( "表機関誌親子" )≠#未定義)    /* if_04 */
          if( &表機関誌親子≠#未定義)  /* if_05 */
            編集表 &表機関誌親子
            多重化 /* &表機関誌親子がオープン済みであれば多重化する */
          else  /* if_05 */
            表 "機関誌親子(会員)"
          end  /* if_05 */
        else  /* if_04 */
          表 "機関誌親子(会員)"
        end  /* if_04 */
        &表親子 = #IS表
        if(&送付先処理="本人") /* if_02 */ /* 同封数を取得 */
          絞り込み [親会員] = &親会員番号
          &同封数 = &選択件数
        else if( &送付先処理="別会員" ) /* if_02 */ /* 送付先会員番号を取得 */
          &比較式 = #文字列(&親会員番号)
          検索 [子会員]_&比較式, 終了状態 = &実行リターン
          条件(&実行リターン = 1) &送付先 = [親会員]
        end /* if_02 */
        中止 表 &表親子
      end /* if_01 */
      編集表 &表HONBU
      if([送付先]="非会員") /* if_03 */
        表 "機関誌親子(非会員)"
          &表親子 = #IS表
          &比較式 = #文字列(&親会員番号)
          検索 [子会員]_&比較式, 終了状態 = &実行リターン
          条件(&実行リターン = 1) &送付先 = [非会員]
        中止 表 &表親子
      end /* if_03 */
      &同封数表示 = 0
      メソッド呼び出し @フォーム.変数変更()
    手続き定義終了


引用返信 [メール受信/ON] 削除キー/
■5327 / inTopicNo.11)  Re[4]: 表の破棄終了が出来ません
□投稿者/ 舩井啓行 -(2009/11/04(Wed) 23:07:35)
    うにんさん ありがとうございます。

    >別の表なのに編集表=する、なのは?
    その別の表を編集するのでその指定としているのですが、誤った使用法でしょうか?

引用返信 [メール受信/ON] 削除キー/
■5328 / inTopicNo.12)  Re[2]: 表の破棄終了が出来ません
□投稿者/ 舩井啓行 -(2009/11/04(Wed) 23:14:36)
    通りすがりさん ありがとうこざいます。

    > ファイルパレットでフォームB表のビューが[イベント処理]になってない?
    > 経験上、[イベント処理]ビューだと上書き・破棄がイベント元に依存するような
    > ウインドウ作成で別のインスタンス作ったら旨くいった覚えがあるような…

    イベント処理中にファイルパレットを使うことは出来るのでしょうか?
    どの様に確認するのかお教え頂ければ幸いです。

    あと、インスタンスとはどういうものでしょうか。すいません
引用返信 [メール受信/ON] 削除キー/
■5329 / inTopicNo.13)  Re[5]: 表の破棄終了が出来ません
□投稿者/ Kanasy.Ge -(2009/11/05(Thu) 00:33:54)
    No5326に返信(舩井啓行さんの記事)

    >すいません。問題となると思っている箇所のみ質問させていただいたつもりでしたが
    >早く解決するためにはオープンにする方がいいですよね。
    >ということで分かりにくいとは思いますが作成中のkevを見て下さい。

    確かに「分かりにく」く、目がチカチカします。(^^;)

    >ここまで書いていてふと思ったのですが、フォームのコマンドボタン(機能名:閉じる)は
    >フォームは閉じるが編集対象としている表は閉じないのでしょうか。

    御意。
    久しく「編集表=する」でフォーム呼び出しを使っていなかったので気づくのに時間がかかりましたが、リファレンスにも次のように明記されています。
    ----------------------------------------------------
    編集表 = しない|する
    つぎのいずれかを指定します。 選択肢 説明
    しない 表は自動的に開き、フォームを閉じた時点で一緒に閉じます。
    する 現在の編集対象表を<フォーム ファイル名>の対象表にします。
    ----------------------------------------------------
    ですから、「編集表=する」の場合は、表は別に閉じる必要があるようです。
    挙げられたkevでの直接の該当箇所は

    >【住居情報.kev】フォーム"住居情報"
    >手続き定義開始 機関誌親子設定()   /* フォーム"住居情報"の同封者設定ボタン押下時実行 */
    >  ・・・・・・・・・・・
    >  表 "機関誌親子(会員)"
    >  変数宣言 固有,整数{&表機関誌親子= #IS表}
    >  フォーム呼び出し "機関誌親子設定.wfm", 編集表=する
    >手続き定義終了

    の部分だと推測されますが、さて、この表はどこで閉じられる(中止=破棄終了)のでしょう? 「編集表=する」の場合は、明示的に閉じる必要があるはずなのですが。

    あるいは、処理の過程でどうしても保存終了されざるを得ないとしたら、そのことを前提として組むのも一考かもしれません。はたまた「編集表=しない」方式に変えてみるとか。(^^;)

引用返信 [メール受信/OFF] 削除キー/
■5330 / inTopicNo.14)  補足
□投稿者/ Kanasy.Ge -(2009/11/05(Thu) 00:58:20)
    No5329に返信(Kanasy.Geさんの記事)

    >さて、この表はどこで閉じられる(中止=破棄終了)のでしょう?

    もしほったらかしなのであれば、フォームが閉じるときに(フォーム自体の編集対象表でなくとも)自動的に閉じます。

    リファレンス 表 <表ファイル名> より
    --------------------------------------------------------------------------------
    イベントハンドラ内で開いた表は、フォームを閉じた時点で一緒に閉じます。ただし、その表のウィンドウがある場合または一括処理が実行されている場合は、開いたままになります。
    --------------------------------------------------------------------------------
    この時の表の自動的な閉じられ方は、一般的に「中止」優先ではなく「終了」優先なのではないかと私は思います。

引用返信 [メール受信/OFF] 削除キー/
■5331 / inTopicNo.15)  Re[3]: 表の破棄終了が出来ません
□投稿者/ 通りすがり -(2009/11/05(Thu) 08:58:46)
    思い出せない、私の勘違いかもしれない、再び試す気力も時間も無い、却って混乱させたかも知れないゴメンネ
    インスタンスってのも桐の用語にはないし

    別に似たような事を書いたのは残ってた、これは多重化の場合でかなり違うけど
    新たなウィンドウ作成するとビューが[イベント処理]から[表編集]になった
    ↓の最後の方
    http://www2u.biglobe.ne.jp/~s_tanaka/bbs/kiri/cbbs.cgi?mode=al2&namber=4367&page=0&rev=0&no=0&KLOG=30

    参考にならないかも…
引用返信 [メール受信/OFF] 削除キー/
■5332 / inTopicNo.16)  Re[5]: 表の破棄終了が出来ません
□投稿者/ うにん -(2009/11/05(Thu) 13:10:06)
    > >別の表なのに編集表=する、なのは?
    > その別の表を編集するのでその指定としているのですが、誤った使用法でしょうか?
    kanasy.geさんが書いてますが、=するならフォームが閉じた後で表をどうするか
    書かないといけないでしょうね。

    その後上がったevtによれば、表を開いた後何もしてないようだから、=するの
    必要はないですよね。=しない、でフォーム呼び出しに自動で開かせればいいんでは。
    もっとシンプルなテストですがコマンドボタンの"破棄する"でちゃんと破棄終了になりました。
    "確認する"も、編集してなければ黙って終わるし、編集してると「変更があります」で保存確認になる。(コマンドボタンでなくXで閉じても変更があれば確認になりますね)

    破棄できないのはバックアップがない他は、開き方が共有だったり、多重化でまだ他に開いている場合かな。
引用返信 [メール受信/OFF] 削除キー/
■5333 / inTopicNo.17)  表の破棄終了、出来ました!
□投稿者/ 舩井啓行 -(2009/11/07(Sat) 11:20:03)
    コメント頂いた皆様、ありがとうございました。
    あれから試行錯誤して、解決しました!

     フォーム呼び出し "機関誌親子設定.wfm", 編集表=する
    の次の行に
     中止 表 &表機関誌親子

    を追加することにより解決したのです。

    私が誤解していたのは次のことでした。

    ●コマンドボタンで機能名:閉じる、機能パラメータリスト:破棄する と設定すると
    フォームを閉じると同時に、編集対象表も破棄終了すると思っていたこと。

    ●イベントの中からフォーム呼び出しを実行し、実行後の戻りはその次の行であることに気づかなかったこと。

    これを皆様のコメントにより、理解でき、思っていたことが出来るようになりました。
    この掲示板にアップする前に、一人ずいぶんと同じ所をグルグル回っておりました。
    おかげですっきり解決です。

    ありがとうございました。今後ともよろしくお願いします。
解決済み!
引用返信 [メール受信/ON] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -