2016-09-20 27 views
0

は、それらの1が、私は次のCustNameを示すCustAccountの列を作成するフォームで、CustAccountあります。表示方法の顧客名

私はdisplayにCustAccountの選択に基づいて顧客名を入力します。私は、次のコードを含むテーブルCustTable、上の既存の方法nameを使用してみましたが

:CustAccountの選択に基づいていないを除いてこれは、顧客名を表示し

display CustName name() 
{ 
    DirPartyTable dirPartyTable; 
    CustName  custName; 
    boolean   isSet = false; 

    try 
    { 
     if (this.hasRelatedTable(identifierStr(DirPartyTable_FK))) 
     { 
      dirPartyTable = this.relatedTable(identifierStr(DirPartyTable_FK)) as DirPartyTable; 

      //Check to make sure the fields we are accessing are selected. 
      if (dirPartyTable && dirPartyTable.isFieldDataRetrieved(fieldStr(DirPartyTable, Name))) 
      { 
       custName = dirPartyTable.Name; 
       isSet = true; 
      } 
     } 
    } 
    catch (Exception::Error) 
    { 
     isSet = false; 
    } 

    //If we aren't joined to DirPartyTable or it isn't selected, then do a query to get it. 
    if(!isSet) 
    { 
     custName = DirPartyTable::getName(this.Party); 
    } 

    return custName; 
} 

。新しいテーブルの新しいメソッドにコードをコピーすることを考えています。これを達成するためにコードを編集するにはどうすればよいですか?

もっと良い方法がありますか?

+0

答えを受け入れることを検討してください。 –

答えて

4

を。代わりにこの方法をあなたのテーブルに載せて参照してください:

// BP deviation documented 
display CustName name() 
{ 
    return CustTable::find(this.CustAcccount).name(); 
} 
0

はいこのメソッドName()は問題ありません。また、他の方法です。

私はあなたが望む結果を得るには二つの方法のまま:あなたがあなたのテーブルにそのメソッドをコピーしたくない

CustTable  CustTable; 
AccountNum pCust; 
str   cName;    
DirPartyTable DirPartyTable; 

; 

//First option  
pCust = "YourCustomer";  
Select * from CustTable where CustTable.AccountNum == pCust; 
cName = CustTable.name(); //Get Name 
//First option END 

//Second option 
pCust = "YourCustomer";  
Select Party from CustTable where CustTable.AccountNum == pCust 
    join DirPartyTable where DirPartyTable.RecId == CustTable.Party; 
cName = DirPartyTable.Name; //Get Name 
//Second option END 
+0

'AccountNum'基準の値を格納するために' SqlParameters'テーブルを使用するのはなぜですか? –

+0

こんにちは、単純なstr変数を使用すると、実行時エラーが発生するためです。よろしく。 –

+0

'AccountNum'拡張データ型を使用して任意のテーブルフィールドの代わりに変数を定義する方が理にかなっていませんか?または 'str [20] pCust;'を使用しますか?おそらく –

関連する問題