Я пытаюсь привести имя поставщика в каждой строке в TransAccountForm.Принесите имя поставщика в качестве столбца в форме LedgerTransAccount
Я написал небольшой кусок кода, получившее название поставщика, когда LedgerDimension из LedgerJournalTrans доступно:
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));
}
}
}
Но как я могу запустить этот код для того, чтобы привести этот новый столбец с поставщиком имя?
Благодаря Яна Б. Kjeldsen меня к этому решению:
Один из источника данных в 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 –