既存のテーブルに追記する形で別なテーブルから転記したい
-
ほぼ同じ構造を持つ二つのテーブルがあります。
-
【手配内容詳細】社内的に部品を発注する内容のテーブル
-
【売上計上詳細】請求書を起票に関するテーブル
-
フィールド構造はほぼ同じです。
-
計算式プラグインにて、スペースフィールドをボタン化して、テーブルの転記は実現しています。
DIALOG(
ARRAY("テーブルコピー","手配内容詳細 -> 売上計上詳細"),
FSET(売上計上詳細,
LET(
// --- CSVを生成 ---
rawcsv,
OTCSV(手配内容詳細,
TPFILTER(IN(結果,"使用","送料")),
TPOUT(部品番号, 部品名称, 備考, 数量, 単位, 仕切, 小売),
TPLABEL(
"売上計上_部品番号",
"売上計上_部品名称",
"売上計上_備考",
"売上計上_数量",
"売上計上_単位",
"売上計上_仕切",
"売上計上_小売"
)
),
// --- 不要文字(タブ、NBSP、全角スペース)を削除 ---
csv, REPLACERE(rawcsv, "[\t\u00A0\u3000]", "gu", ""),
// --- CSVをテーブル化してセット ---
vals, CSV_TVAL(csv),
vals
)
)
)
既存のテーブルの内容を保持したまま、追記したい。
- 現在のコードは「上書き」の処理になり、元々転記先のテーブルに存在していたデータは消去されます。
- フェリスちゃんに色々相談しながら、「売上計上詳細テーブル」のデータも一度CSV化して、転記するデータと結合するしてから上書きすれば?という事になりました。
- 結合がうまく出来ないようで、解決出来ずにいます。
現在検討していたコード
DIALOG(
ARRAY("実績コピー","手配実績詳細 -> 売上計上詳細に追記"),
FSET(売上計上詳細,
LET(
// --- A. 現在の「売上計上詳細」をCSV化 ---
current_csv,
OTCSV(売上計上詳細,
TPOUT(売上計上_部品番号, 売上計上_部品名称, 売上計上_備考, 売上計上_数量, 売上計上_単位, 売上計上_仕切, 売上計上_小売),
TPLABEL(
"売上計上_部品番号",
"売上計上_部品名称",
"売上計上_備考",
"売上計上_数量",
"売上計上_単位",
"売上計上_仕切",
"売上計上_小売"
)
),
// --- B. 新しく追加したい「手配内容詳細」をCSV化 ---
new_csv,
OTCSV(手配内容詳細,
TPFILTER(IN(結果,"使用","送料")),
TPOUT(部品番号, 部品名称, 備考, 数量, 単位, 仕切, 小売),
TPLABEL(
"売上計上_部品番号",
"売上計上_部品名称",
"売上計上_備考",
"売上計上_数量",
"売上計上_単位",
"売上計上_仕切",
"売上計上_小売"
)
),
// --- C. 二つを合体(どちらかが空の場合も考慮) ---
combined_csv,
IFS(
AND(current_csv <> "", new_csv <> ""), current_csv & NEWLINE() & new_csv,
current_csv <> "", current_csv,
new_csv <> "", new_csv,
""
),
// 不要文字削除
clean_csv, REPLACERE(combined_csv, "[\t\u00A0\u3000]", "gu", ""),
// --- CSVをテーブル化してセット ---
vals, CSV_TVAL(clean_csv),
vals
)
)
)
エラーが出ているフィールド(数量、仕切、小売、単位)は全て数値フィールドです。
もしかしてcsvを結合するときにヘッダー行も含んでいるのでは?というヒントもフェリスちゃんから聞きましたが、解決までには至っていません。
数値フィールドを除外して実行してみた。
上の数値フィールドの件。書いてから「そうか、試して見よう」と思い、数値フィールドを除外したコードで実行してみたところ、エラーは表示されなくなりました。
そして、ヘッダー行がレコードに追加されることも確認できました。
「既存のテーブルに追記する」はどう解決するのが良いでしょうか?
何かアドバイスを頂けると助かります。
よろしくお願いします。

