1

Я пытаюсь привести имя поставщика в каждой строке в 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; 
} 

После этого я просто перетаскиваю этот метод на сетке моей формы.

ответ

1

Вы можете добавить метод отображения в ledgerJournalTrans таблице:

[SysClientCacheDataMethodAttribute(true)] 
display VendName vendName() 
{ 
    return this.AccountType == LedgerJournalACType::Vend ? vendTable::find(DimensionStorage::ledgerDimension2AccountNum(this.LedgerDimension)).name() : ''; 
} 

один вкладыш.

+1

Рассмотрите вопрос о кешировании значения метода. https://msdn.microsoft.com/en-us/library/aa596691.aspx –

 Смежные вопросы

  • Нет связанных вопросов^_^