Next, I will set up the calculation formulas for the Notes form that references the master data.
みなさま、こんにちは!!
さてまずは宣伝です。
ノーツコンソーシアム2018年第一回大阪研究会の日程が決まりました!!
4月20日(金曜) 13:30~
於:日本アイ・ビー・エム株式会社 大阪事業所
大阪事業所が移転し、初めての大阪研究会になります。
真新しいスペースで、ぜひお会いいたしましょう!
会員外の方の見学も大歓迎です!上記研究会のリンクより、ノーツコンソーシアム事務局へご相談ください。
またこの日は第三金曜日、テクてくLotus技術者夜会も開催されます。
今回は特別に同じく大阪事業所にてパブリックビューを開催いただけることになりました。
こちらはどなたでも参加可能ですが、会場への入館手続きが必要になりますので、参加ご希望の方は、予めテクてくLotus技術者夜会のサイトより申し込みを行ってください。
※現在は3月分の申し込みを行っておりますので、4月分はもう少しお待ちください。
それでは本題にもどります。
前回に続き、今回はビューを作成して参ります。
早速ですが、まずはメーカーマスター用のビューです。
すべてのビューの選択式に、「使用フォームにより検索」・・・「makerForm」を設定してください。
メーカー\コード順|bym_code コード: m_MakerCode(昇順) メーカー名: m_MakerName カナ: m_Kana メーカー\名称順|bym_kana カナ: m_Kana(昇順) メーカー名: m_MakerName コード: m_MakerCode (メーカー\参照用|bym_ref) コード: m_MakerCode(昇順) ・・・1 メーカー名: m_MakerName ・・・2 カナ: m_Kana ・・・3 銀行: m_Bank ・・・4 銀行コード: m_BankCode ・・・5 支店: m_Branch ・・・6 支店コード: m_BranchCode ・・・7 口座区分: m_Account ・・・8 口座区分コード: m_AccountCode ・・・9 口座番号: m_AccountNo ・・・10 口座名義: m_AccountName ・・・11 支払条件: m_Payment ・・・12 支払条件金額1: m_PaymentAmount1 ・・・13 支払条件金額2: m_PaymentAmount2 ・・・14 支払条件1: m_PaymentTerm1 ・・・15 支払条件2: m_PaymentTerm2 ・・・16 支払条件3: m_PaymentTerm3 ・・・17 (メーカー\支払条件|bym_payment) 支払条件: m_Payment(昇順・カテゴリ別) |
それぞれアクションには
[終了][新規作成(メーカーマスタ/支払)][編集][印刷][削除]
を組み込んでおります。
続いて支払フォーム用のビューです。
こちらも先と同様に「使用フォームにより検索」・・・「paymentForm」を設定してください。
支払\作成日順|bycreatedate 作成日: created(降順) メーカー名: MakerName 金額: PurchaseAmount 締日: closingdate 支払日: PaymentDay 支払\締日順|byclosingdate 締日: closingdate(降順・カテゴリ別) カナ: kana(昇順・非表示) メーカー名: MakerName 金額: PurchaseAmount 支払日: PaymentDay 支払\支払日順|bypaydate 締日: closingdate(降順・カテゴリ別) カナ: kana(昇順・非表示) メーカー名: MakerName 金額: PurchaseAmount 支払日: PaymentDay 支払\名称順|bykana カナ: kana(昇順・カテゴリ別) メーカー名: MakerName 金額: PurchaseAmount 締日: closingdate(降順) 支払日: PaymentDay 支払\エクスポート|export 銀行コード: BankCode(昇順) 支店コード: BranchCode 口座名義: AccountName(昇順) 口座区分: AccountCode 口座番号: AccountNo 支払金額: PurchaseAmount 支払日: PaymentDay |
こちらもアクションには
[終了][新規作成(メーカーマスタ/支払)][編集][印刷][削除]
を組み込んでおります。
続いて参照するビューができましたので、メーカーマスタの支払条件のダイアログを設定します。
[makerForm]の[m_Payment]フィールドを選択し、制御タブの[選択]を
【式で選択肢を設定】とし、以下の式を入力します。
最後に【リストにない値も可】としておきます。
次に支払フォームについて、メーカーマスタから参照できる項目を設定します。
まずは[MakerCode]について、ダイアログでメーカーマスタからコードを呼び出す設定を行います。
コードを選ぶ場合、カナを検索して選択するような設計としました。
制御タブの[選択]を【[ビュー]ダイアログから選択】とし、現在のデータベースの【メーカー\名称順】の3列目を取得させます。
・・・こちらは御代様の記事「フォームの再計算」より拝借致しました。
続いて[MakerName]です。
こちらは先の[MakerCode]をキーとして、(メーカー\参照用)ビューから値をLookupします。
編集可能から計算結果へ変更し、以下式を設定します。
末尾の数字は、メーカー\参照用|bym_refの列番号(上記に記載)をセットしてあります。
引き続き以下フィールドも計算結果へ変更し、それぞれ式を設定します。
続いて参照するビューができましたので、メーカーマスタの支払条件のダイアログを設定します。
[makerForm]の[m_Payment]フィールドを選択し、制御タブの[選択]を
【式で選択肢を設定】とし、以下の式を入力します。
@DbColumn("":"NoCache";"";bym_pay;1) |
最後に【リストにない値も可】としておきます。
次に支払フォームについて、メーカーマスタから参照できる項目を設定します。
まずは[MakerCode]について、ダイアログでメーカーマスタからコードを呼び出す設定を行います。
コードを選ぶ場合、カナを検索して選択するような設計としました。
制御タブの[選択]を【[ビュー]ダイアログから選択】とし、現在のデータベースの【メーカー\名称順】の3列目を取得させます。
なおフィールドのExitingイベントに以下スクリプトを設定することで、フォーム内の参照フィールドが更新されます。
Sub Exiting(Source As Field) Dim uiws As New NotesUIWorkspace Dim uidoc As NotesUIDocument Set uidoc = uiws.CurrentDocument Call uidoc.Refresh End Sub |
・・・こちらは御代様の記事「フォームの再計算」より拝借致しました。
こちらは先の[MakerCode]をキーとして、(メーカー\参照用)ビューから値をLookupします。
編集可能から計算結果へ変更し、以下式を設定します。
末尾の数字は、メーカー\参照用|bym_refの列番号(上記に記載)をセットしてあります。
@if(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;2)) |
引き続き以下フィールドも計算結果へ変更し、それぞれ式を設定します。
[Kana] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;3)) [Bank] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;4)) [BankCode] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;5)) [Branch] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;6)) [BranchCode] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;7)) [Account] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;8)) [AccountCode] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;9)) [AccountNo] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;10)) [AccountName] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;11)) [Payment] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;12)) [PaymentAmount1] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;13)) [PaymentAmount2] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;14)) [PaymentTerm1] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;15)) [PaymentTerm2] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;16)) [PaymentTerm3] @If(MakerCode="";"";@DbLookup("":"NoCache";"";"bym_ref";MakerCode;17)) |
それでは実際に値が反映されるか確認しておきます。
正しく設定されていれば、以下のように「メーカー名」「カナ」及び「口座情報」「支払条件」の全フィールドが計算結果として取得されます。
最後に支払金額の「合計」を計算結果フィールドに変換します。
[PurchaseAmount]フィールドを計算結果に変更し、に求めたい式を設定します。
@If(Purchase="";"";@If(Tax="";"";Purchase + Tax)) |
もし内税処理されるのであれば、消費税のデフォルト値に"0"を設定してください。
それではNotesでプリビューし、[仕入金額]と[消費税]を入力してみましょう。
当たり前ですが、正しく計算結果が表示されました。
なお[仕入金額]もしくは[消費税]がブランクであった場合、下記のようなエラー表示になります。
本日は以上とさせて頂きます。
次回はもう少しアプリケーションとしての機能を追加する予定です。
0 件のコメント:
コメントを投稿