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