【问题标题】:(groovy) How to hide all the fields on a form, and show just one?(groovy)如何隐藏表单上的所有字段,只显示一个?
【发布时间】:2015-11-22 09:01:12
【问题描述】:

所以,这就是问题所在。我正在在线工作流平台上使用 Groovy 编写脚本。我有 9 个包含自定义字段的表单。我有编辑操作,其中我根据产品类型显示/隐藏表单。 现在,我有公共字段,我应该根据产品类型显示/隐藏它们。 例如:我有一个自定义字段“成本货币”,它在表格 2 上。如果产品在 A 轨道中,这没关系。如果产品在 B 轨中,则应在 5 号表格上显示。现在,问题是,软件不允许复制字段,moveAfter 和 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”在“complexity_review”表单上,但我想显示“costing”表单+“complexity_review”中的一个字段。如果我做 form.getWidget('complexity_review').show(); 然后我需要隐藏所有字段,除了一个。有没有另一种方法,只显示一个字段?

【问题讨论】:

    标签: forms groovy scripting custom-fields


    【解决方案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 中使用它(例如,询问小部件,如果它已经隐藏并且不要' t 再次隐藏)。

    重要的部分:DRY!如果您有复制粘贴代码块的冲动,请不要!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-15
      • 2011-10-16
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      相关资源
      最近更新 更多