1

会社間タスクを処理しているときに会社名を取得しようとしています。

次のコードを使用して、現在の会社名が請求書会社である会社名を取得しました。

 CrossCompanyPostingRules    crossCompanyPostingRulesLoc;
    int i;
    Container Comp;
    dataArea dataArea1;
    companyID company;
;


company = curExt();

    while select dataArea1  where dataArea1.id != curExt()
    {
        comp += [dataArea1.id];
    }

    for(i=1;i<=conlen(comp);i++)
    {
       com = conpeek(comp,i);
       element.company(com,company);
    }

void company(companyID name,companyID company)
{
      CompanyName companyNameLoc;
       LedgerEmSysParameters_EMS    ledgerEmSysParameters_EMSLoc;
      ;

      changeCompany(name)
      {
      select ledgerEmSysParameters_EMSLoc;
      if(ledgerEmSysParameters_EMSLoc.Invoicecompany == company)
          {
            changecompany(company)
            {
                companyNameLoc.Name = name;
                companyNameLoc.insert();
            }
          }

      }

}

上記のコードではそれをテーブルに保存していますが、テーブルを使用する必要はありません。それではなく、companyInfoテーブルを使用して、レコードをルックアップにフィルターで除外する必要があります。

4

1 に答える 1

1

次のようなことができると思います。

select crosscompany DataAreaId, InvoiceCompany from ledgerEmSysParameters_EMSLoc
    group by DataAreaId, InvoiceCompany
    where ledgerEmSysParameters_EMSLoc.DataAreaId       != curExt()
       && ledgerEmSysParameters_EMSLoc.InvoiceCompany   == curExt();

クエリでのみ実行し、必要に応じてルックアップ フォームを作成します。

于 2011-04-20T21:26:02.430 に答える