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

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

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

■11012 / inTopicNo.1)  カードで1行だけで処理させる
  
□投稿者/ 悲しげ -(2018/04/24(Tue) 01:01:51)
    カードフォームで入力しています。
    1行だけで処理したいので、2行目に行かないような縛りをかけたいのですが、うまい方法が思いつきません。

    手続き定義開始 フォーム::レコード移動(長整数 &行番号,長整数 &総件数,長整数 &明細番号)
     cond(#総件数>0) ジャンプ 行番号=1  /*2行目=eofに行かせない*/
    手続き定義終了

    のようにしてみたのですが、たまに訂正モードになっている時なんかは叱られます。
    お知恵拝借させて下さい。


引用返信 [メール受信/OFF] 削除キー/
■11013 / inTopicNo.2)  Re[1]: カードで1行だけで処理させる
□投稿者/ Vision Maker -(2018/04/24(Tue) 08:02:43)
    悲しげさん

    こんにちは。

    > たまに訂正モードになっている時なんかは叱られます。

    エラーが再現できません。
    その時の画像か、サンプルがあるといいですね。

引用返信 [メール受信/OFF] 削除キー/
■11014 / inTopicNo.3)  Re[1]: カードで1行だけで処理させる
□投稿者/ ONnoji -(2018/04/24(Tue) 09:36:22)
    > カードフォームで入力しています。
    > 1行だけで処理したいので、2行目に行かないような縛りをかけたいのですが、うまい方法が思いつきません。
    > お知恵拝借させて下さい。

    表を使うからレコードを固定したいということになりますね。

    だったら、表を使わなければよいのではありませんか。

    つまり、NULLフォームで変数を編集して、

    [登録]ボタンを実行すると、

     編集表 エントリー.tbl
     行追加 [項目]=&変数, ・・・
     手続き実行 prc変数クリア( )

    みたいな。

    <追伸>

    これって、DOS時代の dBASEII/III/IIIPlus では普通に当たり前の処理なんですよ。

    だから逆転の発想でもなんでもなく、既知のアプローチなんですね。

    残念ながら、DOS桐の時代にはフォーム(帳票)で変数を編集できなかったので、

    NULLフォームで変数を編集して行追加という発想にならない人が多いのかもしれません。


引用返信 [メール受信/OFF] 削除キー/
■11015 / inTopicNo.4)  Re[1]: カードで1行だけで処理させる
□投稿者/ 今村 誠 -(2018/04/24(Tue) 09:44:47)
    2018/04/24(Tue) 09:50:16 編集(投稿者)

    過去ログにこんなのありました。
    http://tayu.o0o0.jp/bbs/kiri/cbbs.cgi?mode=al2&namber=2161&no=0&KLOG=15
    1行だけの表がほしいのか、特定の行から移動したくないのか
    桐のバージョンが不明です。
    フォームの定義画面に行挿入や行追加を禁止できる設定もある
    ように思います。
    表示から表編集にいったらどうしようもありませんが。

引用返信 [メール受信/OFF] 削除キー/
■11016 / inTopicNo.5)  Re[2]: カードで1行だけで処理させる
□投稿者/ ONnoji -(2018/04/24(Tue) 10:52:45)
    >>たまに訂正モードになっている時なんかは叱られます。
    >
    > エラーが再現できません。
    > その時の画像か、サンプルがあるといいですね。

    訂正ではエラーになりませんね。(^^ゞ

    絞り込み状態で

    ・行挿入
    ・行追加

    の操作をすると以下のエラーになりますね。

    [KD1367:絞り込み状態または行集計状態では実行できません]

    ※桐9-2012 と 桐10s のどちらでも同じエラーになります。

    ちなみに、悲しげ氏の環境は 桐10 でござるかな。

     ◇ ◇ ◇ ◇ ◇ ◇

    ちなみに、

    絞り込み状態 + 行挿入 + ジャンプ

    絞り込み状態 + 行追加 + ジャンプ

    というのは無理なんでしょうね。きっと。



467×544 => 214×250

1524534765.jpg
/38KB
引用返信 [メール受信/OFF] 削除キー/
■11017 / inTopicNo.6)  Re[1]: カードで1行だけで処理させる
□投稿者/ 通りすがり -(2018/04/24(Tue) 10:52:54)
    レコードソースの方を限定しちゃうのが常道みたいな
    フォーム→編集対象表→表の操作 で、[絞り込み]を指定すのが良いかな
    [絞り込み]条件に変数使ったり
引用返信 [メール受信/OFF] 削除キー/
■11018 / inTopicNo.7)  Re[2]: カードで1行だけで処理させる
□投稿者/ ONnoji -(2018/04/24(Tue) 11:25:22)
    2018/04/24(Tue) 11:30:17 編集(投稿者)

    > 表を使うからレコードを固定したいということになりますね。
    >
    > だったら、表を使わなければよいのではありませんか。
    >
    > つまり、NULLフォームで変数を編集して、
    >
    > [登録]ボタンを実行すると、
    >
    >  編集表 エントリー.tbl
    >  行追加 [項目]=&変数, ・・・
    >  手続き実行 prc変数クリア( )
    >
    > みたいな。

    [表引き]もあるし、NULLフォームはちょっとねぇ〜、という場合には、

    1行だけの表を用意して、

    カード型フォームの

    フォームの属性→[編集対象表]タブ→[許可作業]で、

    ・行挿入
    ・行削除
    ・行復活
    ・絞り込み
    ・併合

    をオフにする。

    そうすると、絶対に1行が保持される。

    そしてイベントは、以下のように。

    名札 メイン



    手続き定義開始 フォーム::レコード移動(長整数 &行番号,長整数 &総件数,長整数 &明細番号)
     if ( #eof )
      ジャンプ 行番号 = 最終
     end
    手続き定義終了

    で、終端へ行かないようにする。


    後は、[登録]ボタンを実行すると、

     編集表 エントリー.tbl
     ジャンプ 行番号 = 終端
     読み込み 表,うんたら.tbl
     手続き実行 prc項目値クリア( )

    みたいな。



507×425 => 250×209

1524536722.jpg
/48KB
引用返信 [メール受信/OFF] 削除キー/
■11019 / inTopicNo.8)  Re[1]: カードで1行だけで処理させる
□投稿者/ 尾形 -(2018/04/24(Tue) 16:11:59)
    どうも、こんにちは

    たぶん却下とは思いますが (^^;

    結合表で、対象ソース自体を1行だけにするとか



引用返信 [メール受信/OFF] 削除キー/
■11020 / inTopicNo.9)  Re[1]: カードで1行だけで処理させる
□投稿者/ 悲しげ -(2018/04/24(Tue) 20:09:11)
    皆さん、ありがとうございます。

    たまに「訂正モードの時にエラーとなる」のは、実は私自身もどのようなケースで
    そうなっているのが特定できていないのです。
    で、本投稿の目的はその原因究明ではなくて、
    または下記に何らかのエラー対策のパッチを当てることでもなくて、

    >手続き定義開始 フォーム::レコード移動(長整数 &行番号,長整数 &総件数,長整数 &明細番号)
    > cond(#総件数>0) ジャンプ 行番号=1  /*2行目=eofに行かせない*/
    >手続き定義終了

    のような手法によって、「カードフォームで1行だけで処理」を実現しようとしているのは
    何か苦しいなぁ、他にもっといい方法がありませんか、と言うオネダリが目的です。

    その意味では、No11015で今村さんが示された過去ログで、
    No2161での質問者の長門さんの問題意識に近いように感じました。
    で、そのツリー中のNo2164(by今村さん)がヒントになりそうです。
    ので、後で試してみます。

    ps
    桐のバージョンは主にV10ですが、どれも同じだと思うので挙げませんでした。
    (この件はV8くらいから悩んでいたような気がする)
引用返信 [メール受信/OFF] 削除キー/
■11021 / inTopicNo.10)  Re[2]: カードで1行だけで処理させる
□投稿者/ �淳り^ス�ス�ス -(2018/04/24(Tue) 22:23:54)
    No11020に返信(悲しげさんの記事)
    ん? ひょっとして・・・・
    フォームの「編集対象表」タブ→「許可作業」ボタンから
    「行挿入」のチェックを外すだけでいい?
    これで試してみます。
    (だとしたら私の10数年の悩みは・・・)

引用返信 [メール受信/OFF] 削除キー/
■11022 / inTopicNo.11)  Re[3]: カードで1行だけで処理させる
□投稿者/ 悲しげ -(2018/04/24(Tue) 22:27:08)
    No11021に返信(�淳り^ス�ス�スさんの記事)
    名前が化けました。(^^;)
    No11021の投稿者は悲しげです。
引用返信 [メール受信/OFF] 削除キー/
■11468 / inTopicNo.12)  Re[2]: カードで1行だけで処理させる
□投稿者/ 悲しげ -(2018/09/24(Mon) 12:38:41)
    2018/09/25(Tue) 18:55:06 編集(投稿者)

    No11020に返信(悲しげさんの記事)
    本件は、戴いたコメントを元にあの後色々試したのですが、どれも一長一短で
    結局は一番最初のやり方に戻って

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

    この際に、強制的に表示モードに切替えておくことで対処しました。(^^;)
     method @b表示.実行()
    ※ボタンの機能名;表示、パラメ;確定する

    ps.
    ついでにコメントを補足しますと

    No11014の「NULLフォームで変数」というのは
    項目数が150超あるので変数でやるにはちょっと目眩が。

    No11019
    >結合表で、対象ソース自体を1行だけにする
    結合は苦手で(^^;)

    当然「許可作業」で「行挿入」とかは押さえていますが、
    あとNo11017他で例示された「1行絞り込み」については
    オペレータが(うっかり)PnDnキーを押してしまった時、
    終端行に行くことにより見かけ上「全項目が空に」なって
    びっくり・・・を避けたかった。
    もちろん「キーダウン」イベントでPnDnキーを殺しては
    みたりしたが、何か他にも類似案件があったような・・・
    で、最後は「レコード移動」イベントに戻った次第。
解決済み!
引用返信 [メール受信/OFF] 削除キー/



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

このトピックに書きこむ

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

Mode/  Pass/

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

- Child Tree -
- Antispam Version -