見積書保存について
2023-12-20 10:05
いつもお世話になっております。
見積書を作成し、テーブルに保存したいです。
もし、見積NOがなければ新規登録として保存。
見積NOがあれば更新として保存したいです。
その際、明細保存の時に1行でなく2行などになった場合のアクション
が知りたいです。
お忙しいところ恐縮ですが、ご教示の程お願いいたします。
回答を投稿するにはログインが必要です。
ベストアンサー
こんにちは。
同じ見積NOがあれば更新ということですが、登録済みの見積書を画面に呼び出して修正するということだと思います。
登録は良いのですが、修正はどこまで可能かステータスなどで制御する必要があります。
通常はユーザーが登録しているのか、修正しているのかをはっきりと認識させる必要があると思います。(画面の色を変えるとか)
見積書、請求書等のDB作成は、ヘッダーと明細を一つのテーブルに保管するか、見積NOをキーにしてヘッダーと明細を別のテーブルに保管するかの二択になると思います。
明細が2件ある場合、1テーブルの場合はデータ件数は2件です。
2テーブルの場合はヘッダー(マスタテーブル)データ1件、明細データ(明細テーブル)2件となります。
見積NOをキーにしてテーブルを結合して使用することができます。
どちらも長所短所がありますが、明細件数が少ない場合は一つのテーブルのほうが取り回しが良いと思います。
更新データは、明細の追加・削除などがあると、キーのデータ件数が変わってしまいます。
「テーブルのデータを更新する」というアクションは使えないので、キーデータ(対象見積NOのすべてのデータ)を削除して同じキーで登録する必要があります。
同じ見積NOがあれば更新ということですが、登録済みの見積書を画面に呼び出して修正するということだと思います。
登録は良いのですが、修正はどこまで可能かステータスなどで制御する必要があります。
通常はユーザーが登録しているのか、修正しているのかをはっきりと認識させる必要があると思います。(画面の色を変えるとか)
見積書、請求書等のDB作成は、ヘッダーと明細を一つのテーブルに保管するか、見積NOをキーにしてヘッダーと明細を別のテーブルに保管するかの二択になると思います。
明細が2件ある場合、1テーブルの場合はデータ件数は2件です。
2テーブルの場合はヘッダー(マスタテーブル)データ1件、明細データ(明細テーブル)2件となります。
見積NOをキーにしてテーブルを結合して使用することができます。
どちらも長所短所がありますが、明細件数が少ない場合は一つのテーブルのほうが取り回しが良いと思います。
更新データは、明細の追加・削除などがあると、キーのデータ件数が変わってしまいます。
「テーブルのデータを更新する」というアクションは使えないので、キーデータ(対象見積NOのすべてのデータ)を削除して同じキーで登録する必要があります。
新日本コンピュータマネジメント株式会社
パートナー
こんにちは。
先程INDIRECT関数を用いると申し上げましたが、
最近追加されたUTIL.CELLV関数を利用して頂いても同様の結果が得られると思います。
○INDIRECT関数
参照文字列(例:="A"&C1)によって指定されるセルに入力されている
文字列を介して、間接的にセルを指定する。
C1は1以上の整数。C1=5なら="A"&C1はA5になり、A5セルに格納されている値を取得。
○UTIL.CELLV関数
行番号と列番号によって指定したセルの値を返す。
よろしくお願いします。
先程INDIRECT関数を用いると申し上げましたが、
最近追加されたUTIL.CELLV関数を利用して頂いても同様の結果が得られると思います。
○INDIRECT関数
参照文字列(例:="A"&C1)によって指定されるセルに入力されている
文字列を介して、間接的にセルを指定する。
C1は1以上の整数。C1=5なら="A"&C1はA5になり、A5セルに格納されている値を取得。
○UTIL.CELLV関数
行番号と列番号によって指定したセルの値を返す。
よろしくお願いします。
新日本コンピュータマネジメント株式会社
パートナー
こんにちは。
単純に明細に記載された行数分のデータを登録、もしくは更新したいのでしたら
「制御」タブの中にある「もし~を満たす間は繰り返す」アクションを
ご活用してみてはいかがでしょうか。
繰り返しの条件は、明細列に記載された行数分とし、
INDIRECT関数を用いてセル内が空白でないかで判定すると宜しいかと思います。
事象が解決しない場合はご連絡ください。
よろしくお願いします。
単純に明細に記載された行数分のデータを登録、もしくは更新したいのでしたら
「制御」タブの中にある「もし~を満たす間は繰り返す」アクションを
ご活用してみてはいかがでしょうか。
繰り返しの条件は、明細列に記載された行数分とし、
INDIRECT関数を用いてセル内が空白でないかで判定すると宜しいかと思います。
事象が解決しない場合はご連絡ください。
よろしくお願いします。