1

カスタムオブジェクトのフィールドレコードのリストを表示するVFページを設計しました。私のオブジェクトには2つの数値フィールドがあり、ページの下部に合計でこれらの数値フィールドを表示するようにVFページを設計しました。将来、同じオブジェクトに追加の数値フィールドが追加された場合、どのようにコードを記述して列を追加し、それをvisualforceページに自動的に入力する必要がありますか。セールスフォースで可能ですか。

4

2 に答える 2

0

このページにコントローラー/コントローラー拡張機能がある場合は、describe 呼び出しを使用して、オブジェクト内のすべてのフィールドのリストを学習し、それらのタイプを確認して、表示および要約するフィールドを決定できます。

Schema.DescribeFieldResult f = Account.NumberOfEmployees.getDescribe();
System.assertEquals(Schema.DisplayType.INTEGER, f.getType());

ただし、describe 呼び出しの結果に依存することには、いくつかの制限があります (リクエストごとに 100 の記述のガバナー制限に達すると、フィールドは名前でソートされ、表示したい順序ではない可能性があります...)。

動的な Visualforce が必要なため、必要なフィールドをリストするフィールドセットまたはカスタム設定を作成することを検討できます。次に、Apex を使用して小計を計算している場合は、コードから参照します。そうすれば、後で更新する必要があるときに、コントローラーに触れる必要がなくなります。

于 2012-11-12T07:26:42.650 に答える
0

以下のコードを見つけてください。これはテストされていませんが、完全なアイデアが得られることに注意してください。

VF Page:
<apex:form>
      <!-- this column will return the sum -->
      <apex:column value="{!Sum}"/>
</apex:form>

Apex Class:
//Your class will contain the below method
    public String getSum(){
             Double Sum;
            //Return a list of the object
            List <Custom_Object__c> listCustom = [Select Num1, Num2 from Custom_Object__c];
            for(Custom_Object__c co : listCustom){
                Sum = co.Num1 + co.Num2;
              }
             return String.valueOf(Sum);
    }

答えは、これらの線に沿ったものになります。試してみてください。うまくいかない場合は返信してください。喜んでお手伝いさせていただきます。

于 2012-11-14T15:06:33.423 に答える