我们有一个自定义对象说Sales表单。在客户对象的编辑apge上,我们需要添加一个按钮保存和添加产品(类似于我们在商机页面上可以拥有的一个)。用户忘记在保存销售表单后添加产品/ SKU
新建按钮(保存并添加产品),将首先保存销售表单,然后依赖记录类型将打开相关列表(子对象)。
保存后,将销售表单用于自定义程序。它将打开自定义程序关联列表。 如果记录类型是价格变更通知,它将打开SKU详细信息的相关列表..
这是否可行,请注意,我们有9-10种不同的记录类型,我们不想使用visualforce和所有自定义重新编写应用程序。使用Visualforce页面重写有一些陷阱。
答案 0 :(得分:4)
据我所知,您无法替换“保存”按钮,因为它是“编辑”页面的一部分,而不是标准布局,因此要使用一个按钮实现此目的,您需要编写自定义的visualforce页面,这不需要复杂 - 一个简单的自定义控制器使用standardController来管理记录就足够了。
您可以在StandardController上调用Save,然后根据记录类型返回不同的页面重定向,页面本身几乎只包含<apex:detail>
标记。如果您想了解更多细节,我可以提供更多。
如果您真的不想编写任何自定义代码或页面,那么您需要执行此操作作为两个步骤,即使用标准页面然后使用自定义“继续”按钮将用户带到基于记录类型的自定义URL。我刚刚通过以下方式创建了一个人为的版本:
1 - 在对象上定义自定义公式字段,该字段应为text类型,并且可以使用CASE()
语句来确定用户在点击时将被带到的URL按钮(请注意,这只是为了一个例子,所以它转发到记录类型'朋友'的帐户标准页面和'敌人'的联系页面。)
CASE($RecordType.DeveloperName, 'Friend', '../001/o', 'Foe', '../003/o', '')
注意 我在这里使用公式字段而不是在自定义按钮中执行此操作的原因是由于某种原因您看起来不可能 定义自定义按钮时,按名称访问记录类型。
2 - 为名为“继续”的对象定义一个自定义按钮或类似的对您有意义的按钮。对于我的示例,我只使用了Contact对象,因此我在记录中引用了自定义字段并指定了此处显示的选项:
3 - 自定义记录类型使用的页面布局以包含此新按钮,您应该完成!