みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
ファイルメーカーPro15Advを使っています。
会計のシステムの中で
精算管理というテーブルと精算詳細というテーブルがあり
精算管理が1レシート
その中に精算詳細があります。
例えば
1レシートの中に管理IDでリレーションして購入した品点数の詳細レコードがあります。
品名 単価 数量 合計の詳細
①リンゴ 138円 2個 276円
②みかん 56円 1個 56円
という感じになっています。
精算管理と精算詳細をポータル表示させた場合はそれぞれのレコード番号が分かるのですが
詳細の一覧を表示させた時にもそれぞれの管理IDにおいてのレコード番号が知りたいです。
可能でしょうか?
よろしくお願いいたします。
レコード番号とは、
①リンゴ
②みかん
の①②のことですか。これはどのように表示させていますか。
@@で表示させているのでしたら、同じようにすれば良いでしょう。
ただし、これはあくまで行の番号であり、レコード番号ではありません。データベースの中では、行の位置は相対的な意味しかありません。絶対的な意味のあるレコード番号は、Get(レコード番号) で得られる数字ですが、大体は十分大きい数字です。
Last edited by Shin (2022-08-15 23:36:44)
Offline
Shin様
ありがとうございます。
現在 管理テーブルの中にポータルを表示させて行番号を表示させているのですが
希望としては
詳細テーブルで一覧表示したときにポータルと同じ番号を表示させたいです。
つまり
詳細テーブルで一覧表示させるときにはShin様が仰る通り、レコード番号は大きな数字になってしまいます。
それを同じ精算内だけの数字(ポータル表示した時の行番号)を取得したいです。
なぜかと言いますと
詳細の一覧を表示させた時に
管理ID 日 時間 品名 単価 数量 合計
245 8/5 15:20 リンゴ 138円 2個 276円
245 8/5 15:20 みかん 56円 1個 56円
246 8/5 16:45 リンゴ 138円 1個 138円
247 8/6 10:20 八朔 220円 1個 220円
と表示させた時にポータル内の行番号を表示出来たら、1の上に線を入れる設定にするなど区切りが分かりやすく表示できるかと考えております。
よろしくお願い致します。
最初に計算フィールド、精算詳細::レコードIDを作成します。
内容は、Get ( レコード ID )
次に計算フィールド、並び順を下記の通りに作成します。
1. While関数を用いて、レコードIDの一覧からGetValueで選択した値と自分のレコードIDを比較し、
値が一致するまでの処理の番号を並び順として返します。
2. レコードIDの一覧はExecuteSQL関数を用いて取得。
3. ExecuteSQL関数の注意点は、\"を用いた日本語フィールドの扱いと、
where句の値を?を用いたダイナミック引数にすること
4. 2.の値をValueCount +1で計算した値を処理数とし、
処理<処理数 or 結果が出るまでの範囲で再帰処理を実行します。
While (
[
// 初期変数
#レコードのID = レコードID ;
#レコードIDの一覧 = ExecuteSQL (
"SELECT \"レコードID\" FROM \"精算詳細\" WHERE \"管理ID\"=?" ; "" ; "" ; 管理ID ) ;
#処理数 = ValueCount ( #レコードIDの一覧 ) +1 ;
#処理 = 1 ;
#結果 = ""
] ;
// 条件
#処理 < #処理数 or IsEmpty ( #結果 );
[
// ロジック
#選択ID = GetValue ( #レコードIDの一覧 ; #処理 ) ;
#結果 = If ( #選択ID = #レコードのID ; #処理 ; #結果 ) ;
#処理 = #処理 +1
] ;
// 結果
#結果
)ごめんなさい。FileMakerのバージョンを読み飛ばしていました。
レコード番号というのは、レコード固有の番号ではなく現在の検索ソート状態での1からの連番のことをいいますけど、それでいいんですか?
(ソートによってりんごが1だったりみかんが1だったりする)
精算管理 精算詳細 精算詳細 2
管理キー = 管理キー = 管理キー
シリアル ≥ シリアル
というリレーションを張っておきます。シリアルは、ポータルのソート順が再現できるように設定します。作成順でいいのでしたたら、シンプルにシリアルでいいです。
Count ( 生産詳細 2;;シリアル )
という計算フィールドを作ればいいでしょう。
ただ、詳細の一覧で区別のしたいのでしたら、管理キーを表示させておき、適当な色付けや、表示のフィルターをかける(同じ番号が続けば表示させない)などで十分なのでは。
Last edited by Shin (2022-08-16 13:59:48)
Offline
Pages: 1
[ Generated in 0.011 seconds, 9 queries executed - Memory usage: 560.02 KiB (Peak: 579.7 KiB) ]