過去の桐井戸端BBS (桐ver.9)
23293 項目訂正と直前値の関係がよくわからない 手塚 修 2003/11/11-21:03
 タイトルにはどう書いたらよいのかわからなっかたのですが、
月毎に車の走行距離を計算しようとしています。

 表に[番号] [年月] [今月末メーター] [前月末メーター] [走行距離]の項目をつくり、
並べ替え(番号年月順)後、[前月末メーター]の項目で項目置換を行いました。
[前月末メーター]の計算式は、 #条件選択(#直前値([番号],"")<>[番号], "",1,#直前値([今月末メーター],"")) です。

 上記を編集表としたフォームで10月分は正しく計算されますが、
いざ今月分(11月)を入力しようとすると、[前月末メーター]の項目に表示されていたデータが消えてしまいます.
[今月末メーター]にデータを入力した後、リターンキーを押す、
あるいは次の行の[今月末メーター]をクリックすると表示されていた[前月末メーター]は空白になってしまいます。
[走行距離]=[当月末メーター]-0 になってしまいます。

 空白はそのままにして、コマンドボタンで グループ解除 並べ替え 項目置換
 グループ再抽出 を試しましたが、最初のグループが表示され、
今月のグループを即表示とはなりませんでした。

 本来の目的である[前月末メーター]をそのまま表示させておき、
しかも [走行距離]= [今月末メーター]- [前月末メーター]を正確に計算させるにはどのようにすればようでしょうか?

フォームは一括処理で開いています。桐9です。

よろしくおねがいいたします。 

23296 Re:項目訂正と直前値の関係 うにん 2003/11/12-09:53
記事番号23293へのコメント

> 表に[番号] [年月] [今月末メーター] [前月末メーター] [走行距離]の項目を
>つくり、並べ替え(番号年月順)後、[前月末メーター]の項目で項目置換を行いま
>した。[前月末メーター]の計算式は、 #条件選択(#直前値([番号],"")<>[番
>号], "",1,#直前値([今月末メーター],"")) です。

[前月末メーター]は一度記入したら変更不要なデータなので、計算項目にせずに
項目置換をその計算式でやるのが簡単だと思います。

空白になってしまっても、もう一度項目置換すれば直りそうなものですが?

23297 Re:項目訂正と直前値の関係 宮城 2003/11/12-11:00
記事番号23293へのコメント
手塚 修さん、こんにちは。

> いざ今月分
> (11月)を入力しようとすると、[前月末メーター]の項目に表示されていたデー
> タが消えてしまいます.

確認させてください。11月データは新たな行(レコード)を追加するんだと思いますが、
となると「表示されていたデータが消え」るとは?
 追加した行には何も表示されていないはずですが。


23298 Re:項目訂正と直前値の関係 悲しげ 2003/11/12-11:19
記事番号23293へのコメント
どもっ、手塚修さん
諸々の前提が書かれていないので、想像を逞しくするしかないのですが、

>・・・・コマンドボタンで グループ解除 並べ替え 項目置換
>グループ再抽出・・・・、最初のグループが・・、今月のグループ

の表現から推すに、ひょっとして月をグループ項目(のひとつ?)とする
「グループ項目のある伝票(または)一覧表フォーム」を使っているのではないでしょうか?
あ、且つ「項目置換」と書かれている中味はもしかして項目計算式を設定してある項目の再計算を意味しているとか。

もしそうだととすれば、当月グループの1行目について「#直前値」関数を使うこととなる訳だから、
直前値が「消える」と云うよりも、そもそも直前行自体が「存在しない」と云う問題だったりしませんか?

23307 Re:項目訂正と直前値の関係 手塚 修 2003/11/12-16:54
記事番号23298へのコメント
 うにんさん 宮城さん 悲しげさん 連絡ありがとうございます。

>ひょっとして月をグループ項目(のひとつ?)とする
>「グループ項目のある伝票(または)一覧表フォーム」を使っているのでは

 その通りです。[年][月][年月]をグループ項目とした伝票形式フォームです。
 桐8添付の成績管理を基にしています。前回の点数を見ながら今回の点数を入力したい。と理解してください。

>あ、且つ「項目置換」と書かれている中味はもしかして項目計算式を設定
>してある項目の再計算を意味しているとか。

 表で項目計算式を設定しています。前月に入力した[今月末メーター]を今月の
入力時(前に)[前月末メーター]として計算させています。表で並べ替え、
項目置換で計算されます。

>直前値が「消える」と云うよりも、そもそも直前行自体が「存在しない」と云う
>問題だったりしませんか?
>確認させてください。11月データは新たな行(レコード)を追加するんだと思
>いますが  追加した行には何も表示されていないはずですが。

 最初のグループ、例えば9月の[今月末メーター]は0kmからスタートさせています。

>空白になってしまっても、もう一度項目置換をすれば直りそうですが?

 表で[今月末メーター]を入力し、その後、並べ替え、項目置換を行えば正確な計算になるのですが、
フォーム入力時に、前月に入力した[今月末メーター]を[前月末メーター]として見ながら[今月末メーター]を入力したい。
これが目的です.
 むずかしそうですが、項目計算が終了した時点で別な表に書出し(項目計算式なし)、
その表を基に入力、再計算 書出しと2つの表を行ったり来たりする方法もあるのでしょうか?
イベントではいかがなものでしょうか?

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


23308 Re:項目訂正と直前値の関係 うにん 2003/11/12-17:23
記事番号23307へのコメント

> その通りです。[年][月][年月]をグループ項目とした伝票形式フォームです。

前月のレコードが表示されてない状態で#直前値を使っても無理ですね。

>あるのでしょうか?イベントではいかがなものでしょうか?

[番号]のソース値更新イベントで前月データを検索して行訂正で[前月メーター]に
入れるのがよろしいのでは?もちろん項目計算式は削除します。

23309 Re:項目訂正と直前値の関係 悲しげ 2003/11/12-17:35
記事番号23308へのコメント
うにんさん wrote

>前月のレコードが表示されてない状態で#直前値を使っても無理ですね。

ですね。(^^;)

イベントを使わずに、項目計算式として#直前値を生かすには次のような方法もあります。
グループ項目のあるフォームで入力しない、つまり入力は表形式編集または
(グループ項目を持たない)一覧表フォーム上で行う。
これは置換(再計算)を含めて。
グループ項目を持つフォームを使いたければ、データの入力・訂正は行わず表示オンリーとする。
私は長期借入金の処理をこのようにやっていて、そこそこ使えてます。
23312 Re:項目訂正と直前値の関係 手塚 修 2003/11/12-19:10
記事番号23309へのコメント
 うにんさん 悲しげさん ありがとうございます。

>前月のレコードが表示されてない状態で#直前値を使っても無理ですね。

 何となくわかった気がします。[今月末メーター]を入力すると今までの行の
最後にグループとして追加され、前行が全く違う[番号]のため#直前値での
計算が空白(0)となってしまう。

>[番号]のソース値更新イベントで前月データを検索して行訂正で[前月メータ
ー]に入れるのがよろしいのでは?もちろん項目計算式は削除します。
 
 もうすこし詳しいとありがたいのですが?。これから勉強していきます。

>イベントを使わずに、項目計算式として#直前値を生かすには次のよう
>な方法もあります。
>グループ項目のあるフォームで入力しない、つまり入力は表形式編集
>または(グループ項目を持たない)一覧表フォーム上で行う。これは
>置換(再計算)を含めて。
>グループ項目を持つフォームを使いたければ、データの入力・訂正は
>行わず表示オンリーとする。
>私は長期借入金の処理をこのようにやっていて、そこそこ使えてます。
 
 イベントを使ったことがないので、上記を参考に、新しく、入力用のフォームや
表示用のフォームを作っていこうと考えています。
 

 お世話になりました。



23313 グループ選択状態と#直前値 悲しげ 2003/11/12-19:55
記事番号23312へのコメント
手塚さんwrote

>[今月末メーター]を入力すると今までの行の最
>後にグループとして追加され、前行が全く違う[番号]のため#直前値での計算が
>空白(0)となってしまう。

う〜ん、仰ることがよく判らない、つーか間違っているような気がします。(^^;)
グループ項目のあるフォームでは、グループ選択状態(当該グループについての
絞り込み状態)となっています。
だから、新しい[月](または[番号]?)でのグループ選択状態(つまり新規にグループを追加した直後)と
云うのは、これから先頭行を入力しようかと云う段階です。
当然ながら、直前行も存在しないし、前の[月](または[番号]?)分のデータなんぞは絞り込まれてない訳です。

>新しく、入力用のフォームや表示用のフォームを作っていこうと考えています。

表示用のフォームは入力・訂正さえしなければ現在のものをそのまま使えるのではないでしょうか?
(許可作業で行訂正などをさせない設定にするとか)
入力を、表編集ではなく一覧表フォームでやるのなら、くれぐれもグループ項目は設けないようにしましょう。

ps
タイトルも内容に合うよう変更してみました。(^^)v

23314 あるいは 悲しげ 2003/11/12-20:01
記事番号23307へのコメント
> [年][月][年月]をグループ項目とした伝票形式フォームです。

#直前値関数は[番号]項目を軸に設定されているようですから、
[年][月][年月]ではなく、[番号](のみ?)をグループ項目とする
伝票フォームなら、それなりに使えるかもしれません?
(委細はよく判らないながら)

23336 Re:グループ選択状態と#直前値 手塚 修 2003/11/13-10:10
記事番号23313へのコメント

>う〜ん、仰ることがよく判らない、つーか間違っているような気がします。(^^;)
>グループ項目のあるフォームでは、グループ選択状態(当該グループについての
>絞り込み状態)となっています。
>だから、新しい[月](または[番号]?)でのグループ選択状態(つまり新規に
>グループを追加した直後)と云うのは、これから先頭行を入力しようかと云う
>段階です。当然ながら、直前行も存在しないし、前の[月](または[番号]?)
>分のデータなんぞは絞り込まれてない訳です。

>タイトルも内容に合うよう変更してみました。(^^)v

タイトルが的を得ていなかったのも含めて、まだまだ理解できていないみたいです。

>表示用のフォームは入力・訂正さえしなければ現在のものをそのまま使えるの
>ではないでしょうか?(許可作業で行訂正などをさせない設定にするとか)
>入力を、表編集ではなく一覧表フォームでやるのなら、くれぐれもグループ項目
>は設けないようにしましょう。

 助言をもとに、いままでのフォームを利用しながら完成させようと思っています。

 ありがとうございました。


戻る