0

我有一个创建零件订单的自定义对象(零件订单)。每个行项目有 3 个字段(零件类型、数量和零件编号),对于每个零件订单,最多可以有 10 个行项目。我似乎找不到实现这一点的好方法。我想一种方法是创建 30 个单独的字段,但我不禁觉得必须有更好的方法。我可以将 3 个字段放入一个字段集中,但有没有办法将一个字段集数组放入页面上?如果有任何其他建议,我将不胜感激。

4

3 回答 3

0

如果您提到“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>

FieldSet1..n与页面的当前对象类型关联的字段集的名称在哪里,Object__c可以是任何标准或自定义 sObject

您可以混合和匹配“渲染”而不是“渲染”的任何子集,具体取决于recordtype创建该对象的任何其他标准。

但是,关于创建第二个对象的评论可能更简洁,请记住跨多个对象关系的报告有点困难。

如果您使用标准 VF 页面,我可能会建议使用多种记录类型,每种类型都有自己的页面布局

于 2012-07-31T00:59:01.177 回答
0

由于一个零件订单可能有许多行项目,您应该创建一个零件订单行项目对象,它是零件订单的子对象(就像 Opportunity 和 OpportunityLineItem 一样)。

要了解如何创建多编辑页面以便人们可以轻松地一次添加/编辑多个行项目,您应该查看文档中出色的visualforce 列表控制器示例

于 2012-07-31T01:01:05.953 回答
0

正如 grigriforce 所说,您需要一个 Line Item 自定义对象来表示订单与所订购商品之间的关系。这种对象称为自定义联结对象。使用自定义联结对象比使用 10 个查找字段更具可扩展性;如果你明年需要 20 条线路怎么办?您可以很快用完查找字段。

当前的 force.com 工作簿将引导您完全创建这种仓库应用程序。Line Item 对象在教程 2 第 2 步中进行了说明。http://www.salesforce.com/us/developer/docs/workbook/index.htm

于 2012-07-31T03:07:36.423 回答