過去の桐井戸端BBS (桐ver.8)
7768 会計簿での残高について 桐初心者 2000/09/24-00:29
桐v8で一般的な会計簿作ってます。
収入と支出と残高があるとします。
残高欄の項目計算式は(#直前値([残高],0)+[収入]-[支出])です。
新規や追加の時はいいのですが、以前の行の金額訂正をしても、その行は訂正されても、次行からの訂正をしてくれません。
そのたびに全ての金額を打ち直していたのですが、後から以前の行の金額訂正をしても全て正しく表示するのは
どのようにしたらいいのでしょう。初心者的な質問で申し訳ないですが、よろしくお願いします。
7769 Re:会計簿での残高について 幅田 2000/09/24-00:41
記事番号7768へのコメント
桐はエクセル等のようにデータを訂正してもその行(レコード)は計算しなおしますが、他の行に対して自動計算してくれません。

編集→置換→再計算を実行してください。

7792 Re:会計簿での残高について 桐初心者 2000/09/25-21:47
記事番号7769へのコメント
>編集→置換→再計算を実行してください。

実は、フォームで会計簿を作ってるんですが、編集→置換→再計算は
何かコマンド牡丹で割り付ける方法とか、「手続き実行」で代行できますか?
最初から、こう書けば良かったんですがよろしくお願いします。
7817 Re:会計簿での残高について tatsu344 2000/09/27-15:24
記事番号7792へのコメント
こんにちわ tatsu344と申します。

ぼくも桐を再勉強中なものでして,ご一緒に考えさせていただくということで,発言させてください。

>実は、フォームで会計簿を作ってるんですが、編集→置換→再計算は
>何かコマンド牡丹で割り付ける方法とか、「手続き実行」で代行できますか?
>最初から、こう書けば良かったんですがよろしくお願いします。

ケース開始

   ケース(条件式1)
    
     コマンド群

   ケース(条件式2)

行訂正 帳票,[項目名],枠組み表示=しない,終了キー=<変数名>
置換 [残高]

ケース終了



書式は桐5です。ご了承ください。
7827 Re:再計算 bonito 2000/09/27-20:04
記事番号7792へのコメント
コマンドボタンなら
機能名は、 「編集」のなかの「項目置換」
パラメータは、再計算する項目名、(例えば[残高])
とするだけです。

イベントを使うなら
行訂正終了イベントに
手続き定義開始 フォーム::行訂正終了(長整数 &明細番号,長整数 &モード)
 置換 終了状態=&実行リターン,[残高]
手続き定義終了
とします。(,[残高]は省略可)
(フォームの定義で、イベントタブの行訂正終了にチェックを入れて、
タブルクリックしますとKEV名指定の後イベント雛形から編集可となります…)

7831 Re:再計算 悲しげ 2000/09/27-20:55
記事番号7827へのコメント
置換を行うと確か先頭行に跳んでしまうので、次のようにジャンプで処理対象行に戻しておいた方が違和感がないように思います。

(行訂正終了イベントに)
手続き定義開始 フォーム::行訂正終了(長整数 &明細番号,長整数 &モード)
 置換 終了状態=&実行リターン,[残高]
 ジャンプ 行番号=&明細番号
手続き定義終了
7833 Re:再計算 桐初心者 2000/09/27-22:38
記事番号7831へのコメント
>
>(行訂正終了イベントに)
>手続き定義開始 フォーム::行訂正終了(長整数 &明細番号,長整数 &モード)
> 置換 終了状態=&実行リターン,[残高]
> ジャンプ 行番号=&明細番号
>手続き定義終了

????
その通り、入れたんですが???変な動きをします。
[収入][支出][残高]とあって計算式は最初書いたとおりです。
収入OR支出の欄で金額訂正すると、先頭行に飛んでしまって編集状態のまま抜け出せません。
計算はするのですが編集状態のまま終わらないんです。
表示状態になりません。

ちなみに桐V8のsp5です。よろしくお願いします。
7834 Re:再計算 悲しげ 2000/09/28-00:07
記事番号7833へのコメント
どもっ、桐初心者さん、

>>手続き定義開始 フォーム::行訂正終了(長整数 &明細番号,長整数 &モード)
>> 置換 終了状態=&実行リターン,[残高]
>> ジャンプ 行番号=&明細番号
>>手続き定義終了
>
>その通り、入れたんですが???変な動きをします。
>[収入][支出][残高]とあって計算式は最初書いたとおりです。
>収入OR支出の欄で金額訂正すると、先頭行に飛んでしまって編集状態のまま
>抜け出せません。計算はするのですが編集状態のまま終わらないんです。
>表示状態になりません。

すいません、&明細番号ってのは、画面上で何行目になるかでしたね。(^^;)
つまり、処理対象行が30行目だったとしても画面上2行目だったら、行訂正終了時に処理対象行2行目に飛んでしまうことになります
(この場合、先頭行に飛んだのは、画面上1行目を扱ったからです)。
ただし、更新モードについての挙動が変と云うことはないはずです。
行訂正時ならば[f・4]か[Esc]を押さない限り表示モードにはならないのは当然ですし、
単項目訂正時なら単に[Enter]または[Esc]で表示モードとなります。
更新モードの件はさておいて、行訂正終了時に先頭行に飛ばないようにするために、今度は次のようにして試して見て下さい。
(挙動確認済)

手続き定義開始 フォーム::行訂正終了(長整数 &明細番号,長整数 &モード)
 &件数=#行番号
 置換 終了状態=&実行リターン
 ジャンプ 行番号=&件数
手続き定義終了

このやり方だと、画面上での表示行が1行動いてしまうのがちょっと気になります。
この辺りのうまい逃げ方、どなたかお願い。
7835 Re:&明細番号 bonito 2000/09/28-00:30
記事番号7833へのコメント
悲しげさん、フォローありがとうございます。
>置換を行うと確か先頭行に跳んでしまうので…

そうですね、自分んちの処理なら当然そこまで考えますね。
ところで、標題の&明細番号ですが、つい最近まで私も勘違いしてましたが、
これは#行番号とは全くの別人で、現在の表の何番目の行にあるかを返すものではなく、
現在の表示フォーム上の(画面上の)何番目の明細行であるかを返します(と思います)
つまり、明細行5行の伝票wfmの3頁目の2行目を行訂正した場合
#行番号では12ですが&明細番号は2です。
ですから1画面でおさまりきれない複数行フォームの場合、
>ジャンプ 行番号=&明細番号
で元の行に帰れるのは1頁(画面)目、編集時のみに限られます。
SP6では、そこのところを払拭する関数だかメソッド呼び出しだかが現れたように記憶致しますが、
今だ試用しておりませんので、後日確認後に報告致したいと思います。

ところで
>収入OR支出の欄で金額訂正すると、先頭行に飛んでしまって編集状態のまま
>抜け出せません。計算はするのですが編集状態のまま終わらないんです。
>表示状態になりません。

別のイベントが働いていませんか?

*泥酔状態のため、ここまでで断筆(?)とします m(__)m
 続編は明日、脳みその回復を待って…とします 重ねて m(__)m
7837 Re: bonito 2000/09/28-00:50
記事番号7835へのコメント
悲しげさま、ごめんなさい。
タッチの差で余計なコメントを流してしまいました。
なにぶん泥酔しますもんで…(^^;

>ただし、更新モードについての挙動が変と云うことはないはずです。行訂正時な
>らば[f・4]か[Esc]を押さない限り表示モードにはならないのは当然ですし
そりゃそうだ (^^;

>このやり方だと、画面上での表示行が1行動いてしまうのがちょっと気になりま
>す。この辺りのうまい逃げ方、どなたかお願い。
SP6なら、メソッド呼び出し @フォーム.明細番号設定()が使えそう…(ヒントのみ)

ps.
日本経済同様、回復基調にあるようでうれしゅうございます。

7844 Re:明細番号 bonito 2000/09/28-09:43
記事番号7837へのコメント
おはようございます、ゆうべは大変失礼致しました>ALL
ゴミを流し続けていますが… (^^;

>このやり方だと、画面上での表示行が1行動いてしまうのがちょっと気になりま
>す。この辺りのうまい逃げ方、どなたかお願い。

うまくはないですが、大体いつも
条件 (&モード=1) ジャンプ 行番号=-1
と簡単な式を1行書いて済ましてしまっています。(よく考えずに…)

>SP6なら、メソッド呼び出し @フォーム.明細番号設定()が使えそう…
これは、DOS時代から一括で移動した処理行が画面の1行目ではなく
真ん中辺(?)に表示されて…どうするこうする…という事があって、
結構苦労した画面上の行位置をユーザーが簡単にコントロール出来て
なかなか利用価値のあるスグレモノだと思います。
(遅すぎた…か?)
そういえば、アクティブイベントはまだ登場しませんね (^^;

7877 Re:明細番号 桐初心者 2000/09/29-21:55
記事番号7844へのコメント
悲しげさん。bonitoさん、幅田さん。どうもありがとうございました。

早速の回答いろいろとご教示いただいて助かりました。
私の桐ではまだ、解決していません。
というか、どうしても値を持ったまま先頭の行に移動してしまいます。
[支出]の欄で途中行に3000入力しても3000の値を持ったまま、先頭行に移動し、編集状態のままです。
[収入]の欄でも同じです。スペースキーとf4キーは反応しなくなります。ESCキーだけは反応するのですが・・
どっかがおかしいのでしょう。いろいろと試してみます。

7878 Re:明細番号 桐初心者 2000/09/29-21:57
記事番号7877へのコメント

前段のコメント
行訂正イベントを悲しげさんのやりかたでしてもという意味です。

7879 Re:明細番号 ケント 2000/09/30-09:40
記事番号7877へのコメント
桐初心者 こんにちは

もしかして[収入][支出]の訂正時に行訂正ではなく項目訂正にしていませんか。
フォームのオブジェクト属性の編集タブで"訂正モード"にチェックを入れると強制的に行訂正モードになるので、試してみてください。

どうも行訂正終了イベントを設定して項目訂正をするとおかしな動きになるみたいですね。
7969 Re:明細番号 桐初心者 2000/10/06-23:27
記事番号7879へのコメント
ケントさんは、BONITOさん、悲しげさん、管理人さん。
ありがとうございました。私の未熟さ故、迷惑をおかけしました。
項目計算式の設定をしたまま、置換で同じことをさせていました。
原因はこれだったようです。
それから明細番号の件、SP6でばっちりできました。
メソッド呼び出し、いいですね。
やはり、ここのサイトが一番桐のヒントが出ています。
これからもちょくちょくご迷惑をかけに伺います。

戻る