1
我试图在TransAccountForm的每一行上提供供应商名称。将供应商名称作为LedgerTransAccount表单中的列
我已经写了一小段代码,它获取的供应商名称时,从LedgerJournalTrans LedgerDimension可用:
static void GetVendorName(Args _args)
{
CustAccount custAccount;
VendTable vendTable;
LedgerJournalTrans ledgerJournalTrans;
while select ledgerJournalTrans
{
if (ledgerJournalTrans.AccountType == LedgerJournalACType::Vend)
{
custAccount = DimensionStorage::ledgerDimension2AccountNum(LedgerJournalTrans.LedgerDimension);
select firstOnly vendTable
where vendTable.AccountNum == custAccount;
info(strFmt("Vendor Name: %1, Voucher: %2", DirPartyTable::getName(vendTable.Party), ledgerJournalTrans.Voucher));
}
}
}
但我怎么能去为用户带来新的列与供应商运行这段代码名称?
由于扬B.杰德森练到此解决方案:
一个在LedgerTransAccount的数据源是GeneralJournalEntry上至极我添加显示方法。 在SubLedgerVoucher的帮助下,我可以从LedgerJournalTrans中获得一行。
public display Name VendorName()
{
Name ret;
LedgerJournalTrans ledgerJournalTrans;
select firstFast firstOnly ledgerJournalTrans
where ledgerJournalTrans.Voucher == this.SubledgerVoucher &&
ledgerJournalTrans.TransDate == this.AccountingDate;
ret = ledgerJournalTrans.AccountType == LedgerJournalACType::Vend ?
vendTable::find(DimensionStorage::ledgerDimension2AccountNum
(ledgerJournalTrans.LedgerDimension)).name() : '';
return ret;
}
在此之后,我只需将此方法拖放到窗体的网格上即可。
考虑缓存方法值。 https://msdn.microsoft.com/en-us/library/aa596691.aspx –