ボタンをクリックするだけで、特定の発注書/請求仕訳帳に料金を割り当てる必要があるカスタマイズを作成しています。
フロントエンドからは、注文書のライフサイクルに従って請求書を発行することでこれを達成します。次に、PO の [Invoice] タブに移動し、[Invoice Journals] -> [Charges] -> [Adjustment] をクリックします。これにより目的のフォームが開き、料金コード、料金値、通貨、およびカテゴリを選択します。[OK] をクリックすると、残りのプロセスはシステムに処理されます。
フォーム名: MarkupAllocation_VendInvoiceTrans
親フォーム名: VendInvoiceJournal
請求書番号などのいくつかのパラメーターを使用して子フォームが呼び出されることがわかります。明らかにそのリンクが必要です。フォームの下で AOT に入ると、右クリックして VendInvoiceJournal を開きますが、パラメータが必要なため、MarkupAllocation_VendInvoiceTrans を開くことができません。
目的:
A: MarkupAllocation_VendInvoiceTrans を開くには、これらのパラメーターを手動で渡して親テーブルにリンクするコードを使用します。請求書番号などをお知らせします。目的は、親テーブルを開いて手動で調整することをスキップすることです。そのフォームを直接開き、指定したレコードにリンクさせたいと考えています。
B: _ChargesValue パラメーターを渡して、事前に入力できるようにする必要があります。これが可能かどうかわからないので、私は尋ねて相談したいと思いました。理想的には、カスタム フォームのボタンをクリックして、指定した請求書の MarkupAllocation_VendInvoiceTrans フォームを直接開いて、行に事前入力された値を表示できるようにする必要があります。
この問題に 1 つずつ取り組む必要があることはわかっているので、ステップ A が最優先事項です。
このように比較的簡単に親フォームを開くことができますが、子フォームに対して同じことを行うことはできません。親テーブルを開く前にその関係を指定する必要があるため、明らかに同じ時間のアプローチは機能しません。
private void allocateMarkup()
{
Object formRun;
Args args = new Args();
VendInvoiceJour jourTable;
;
select * from jourTable where jourTable.PurchId == 'PO000001191';
args.name(formstr(VendInvoiceJournal));
args.record(jourTable);
formRun = ClassFactory.formRunClass(args);
formRun.init();
formRun.run();
formRun.wait();
}
どうすればそうすることができますか?
(ちなみに、すぐに使える機能で処理するのではなく、プログラムですべてのトランザクションを実行すれば、このフォーム全体の呼び出しを回避できることはわかっていますが、マークアップと割り当てロジックはそれ自体が獣であり、私にははるかに複雑に思えますこれを行うよりも. 誰かがこの手動の方法でそれを行った場合, それについての助けも大歓迎です)