1

TransAccountForm の各行にベンダー名を表示しようとしています。

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));
        }
    }
}

しかし、その新しい列にベンダー名を表示するために、このコードを実行するにはどうすればよいでしょうか?

Jan B. Kjeldsen のおかげで、この解決策にたどり着きました。

LedgerTransAccount のデータ ソースの 1 つは、表示方法を追加する GeneralJournalEntry です。SubLedgerVoucher の助けを借りて、LedgerJournalTrans から 1 行を取得できます。

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;
}

この後、このメソッドをフォームのグリッドにドラッグ アンド ドロップするだけです。

4

1 に答える 1