Axapta 在LedgerTransAccount表单中将供应商名称作为一列
我试图在TransAccountForm中的每一行输入供应商名称 我已经编写了一小段代码,当来自LedgerJournalTrans的LedgerDimension可用时,它会获取供应商名称:Axapta 在LedgerTransAccount表单中将供应商名称作为一列,axapta,microsoft-dynamics,dynamics-ax-2012,dynamics-ax-2012-r3,Axapta,Microsoft Dynamics,Dynamics Ax 2012,Dynamics Ax 2012 R3,我试图在TransAccountForm中的每一行输入供应商名称 我已经编写了一小段代码,当来自LedgerJournalTrans的LedgerDimension可用时,它会获取供应商名称: static void GetVendorName(Args _args) { CustAccount custAccount; VendTable vendTable; LedgerJournalTrans ledgerJournalTrans; while select l
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));
}
}
}
但是,我如何才能运行这段代码,以便使用供应商名称创建新列呢
感谢Jan B.Kjeldsen我得到了这个解决方案:
LedgerTransAccount中的一个数据源是GeneralJournalEntry,我添加了显示方法。
在Subgradgervoucher的帮助下,我能够从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;
}
在此之后,我只需将此方法拖放到表单的网格上。您可以将显示方法添加到
ledgerJournalTrans
表中:
[SysClientCacheDataMethodAttribute(true)]
display VendName vendName()
{
return this.AccountType == LedgerJournalACType::Vend ? vendTable::find(DimensionStorage::ledgerDimension2AccountNum(this.LedgerDimension)).name() : '';
}
一行。考虑缓存方法值。