我正在创建一个自定义项,只需单击一个按钮,我就需要为特定的采购订单/发票日记帐分配费用。
在前端,我将通过遵循采购订单生命周期并为其开具发票来完成此操作。然后我会在 PO 的发票选项卡下,点击 Invoice Journals -> Charges -> Adjustment 。这将打开我想要的表单,我将在其中选择费用代码、费用价值、货币和类别,然后我将单击“确定”并让系统处理其余的过程。
表单名称:MarkupAllocation_VendInvoiceTrans
父表单名称:VendInvoiceJournal
您可以看到子表单被调用了一些参数,例如发票号码,显然需要那个链接。如果我进入表单下的 AOT,我右键单击并打开 VendInvoiceJournal,但我无法打开 MarkupAllocation_VendInvoiceTrans,因为它需要参数。
客观的:
答:通过代码打开 MarkupAllocation_VendInvoiceTrans,我手动传递这些参数以链接到父表。我会提供发票号码等。目标是跳过打开父表并手动进行调整。我想直接打开该表单并将其链接到我指定的任何记录。
B:我需要能够传递 _ChargesValue 参数并为我预先填充该参数。我不知道这是否可能,所以我想询问和协商。理想情况下,我应该能够单击自定义表单上的按钮,并直接为指定的发票打开 MarkupAllocation_VendInvoiceTrans 表单,并在行上预先填充值。
我知道我应该一步一步地解决这个问题,所以步骤 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();
}
我怎么能这样做?
(旁注,我意识到如果以编程方式执行所有事务而不是让开箱即用的功能处理它,则可以避免整个表单调用,但是标记和分配逻辑是它自己的野兽,对我来说似乎要复杂得多而不是这样做。如果有人以这种手动方式完成了它,那么任何帮助也将不胜感激)