部品注文を作成するカスタム オブジェクト (部品注文) があります。各明細項目には 3 つのフィールド (部品タイプ、数量、部品番号) があり、部品注文ごとに最大 10 の明細項目を作成できます。これを実装する良い方法が見つからないようです。1 つの方法として 30 の個別のフィールドを作成することも考えられますが、もっと良い方法があるはずだと感じずにはいられません。3 つのフィールドをフィールドセットに入れることはできますが、フィールドセットの配列をページに入力する方法はありますか? 他の提案があれば、私はどんなアイデアでも感謝します。
3 に答える
grigriforceが言ったように、注文と注文されているアイテムの間の関係を表すために、LineItemカスタムオブジェクトが必要です。この種のオブジェクトは、カスタムジャンクションオブジェクトと呼ばれます。カスタムジャンクションオブジェクトの使用は、10個のルックアップフィールドを持つよりもはるかにスケーラブルです。来年20行必要な場合はどうなりますか?ルックアップフィールドがすぐに不足する可能性があります。
現在のforce.comワークブックでは、まさにこの種のウェアハウスアプリの作成について説明しています。Line Itemオブジェクトは、チュートリアル2、ステップ2で説明されています。http://www.salesforce.com/us/developer/docs/workbook/index.htm
「FieldSets」を参照する場合、次のようにループして VisualForce に出力できます。
<apex:repeat value="{!$ObjectType.Object__c.FieldSets.FieldSet1}" var="f">
<apex:outputField value="{!currentObject[f]}" />
<apex:inputField value="{!currentObject[f]}" required="{!f.required}" />
</apex:repeat>
<apex:repeat value="{!$ObjectType.Object__c.FieldSets.FieldSet2}" var="f">
<apex:outputField value="{!currentObject[f]}" />
<apex:inputField value="{!currentObject[f]}" required="{!f.required}" />
</apex:repeat>
<apex:repeat value="{!$ObjectType.Object__c.FieldSets.FieldSet2}" var="f">
<apex:outputField value="{!currentObject[f]}" />
<apex:inputField value="{!currentObject[f]}" required="{!f.required}" />
</apex:repeat>
は、ページの現在のobjecttypeFieldSet1..n
に関連付けられている項目セットの名前で、Object__c
標準またはカスタム sObject のいずれかです。
recordtype
そのオブジェクトを作成するための他の基準に応じて、「レンダリング」ではなく「レンダリング」のサブセットを組み合わせて一致させることができます。
ただし、2 番目のオブジェクトの作成に関するコメントはより簡潔かもしれませんが、複数のオブジェクトの関係にまたがってレポートを作成するのは難しいことを覚えておいてください。
標準 VF ページを使用している場合は、それぞれ独自のページ レイアウトを持つ複数のレコード タイプを使用することをお勧めします。
1 つの部品注文には多くの明細がある場合があるため、部品注文の子である部品注文明細オブジェクトを作成する必要があります (Opportunity や OpportunityLineItem と同様)。
複数の項目を一度に簡単に追加/編集できるマルチ編集ページを作成する方法を確認するには、ドキュメントの優れたvisualforce リスト コントローラーの例を確認してください。