所以,这就是问题所在。我在一个在线Workflow平台上使用Groovy编写脚本。我有9个包含自定义字段的表单。我有编辑操作,其中我根据产品类型显示/隐藏表单。 现在,我有共同的领域,我应该根据产品的类型显示/隐藏它们。 例如:我有一个自定义字段"货币代价",它在2号表格上。如果产品在A轨道中,那也没关系。如果产品在轨道B中,则应在第5号表格中显示。现在,问题是,软件不允许复制字段,移动后,moveBefore。所以,我隐藏了所有表格,除了表格号码。 5,但如何只显示一个自定义字段(货币为成本)。 2,无需在代码中隐藏其余部分?
else if (step_to_editValue == 'costing') {
form.getWidget('customer_contact_information').hide();
form.getWidget('CAR').hide();
form.getWidget('product_questionnaire').hide();
form.getWidget('costing').show();
form.getWidget('complexity_review').hide();
form.getWidget('design_definition').hide();
form.getWidget('cost_estimation').hide();
form.getWidget('design_and_costing').hide();
form.getWidget('send_quote_to_customer').hide();
form.getWidget('check_quotation_status').hide();
form.getWidget('multi_pricing_screen1').hide();
form.getField('production_site').show();
}
所以," production_site"正在进行复杂度查看'形式,但我想展示“成本计算”。表格+来自复杂性查看'的一个字段。如果我做 form.getWidget(' complexity_review&#39)。显示(); 然后我需要隐藏所有字段,除了一个。还有另外一种方法,只显示一个字段吗?
答案 0 :(得分:1)
添加辅助功能:
void soloWidget(List<String> widgetNames, String showOnly) {
widgetNames.each{ form.getWidget(it).hide() }
form.getWidget(showOnly).show()
}
保留表单列表并调用该fn而不是复制和粘贴:
def forms = ['customer_contact_information', 'CAR', ...]
// ...
soloWidget(forms, 'costing')
如果您的引擎存在视觉伪影,同时积极地隐藏所有并再次显示,则添加(show|hide)Widget
函数,处理该函数并在showForm
中使用它(例如,询问小部件,是否已经隐藏,不要再隐藏了。)
重要的部分:DRY!如果您有复制和粘贴代码块的冲动,请不要!