Ofbiz:一种具有两个提交按钮的表单,具有两个不同的目标

时间:2018-11-06 14:51:27

标签: xml button service ofbiz

Ofbiz提供以xml格式编写的表单:

partyForm.xml: 

<form name="AddPartyNote" type="single" target="createPartyNote"
    focus-field-name="noteId" header-row-style="header-row" default-table-style="basic-table">
    <auto-fields-service service-name="createPartyNote"/>
    <field name="partyId"><hidden/></field>
    <field name="noteId" tooltip="${uiLabelMap.PartyOptional}"><hidden/></field>
    <field name="noteName" title="${uiLabelMap.FormFieldTitle_noteName}" tooltip="${uiLabelMap.PartyOptional}"> </field>
    <field name="note"><textarea cols="70" rows="10"/></field>
    <field name="submitButton" title="${uiLabelMap.CommonSave}" widget-style="smallSubmit"><submit button-type="text-link"/></field>
    <field name="cancelLink" title=" " widget-style="smallSubmit">
        <hyperlink target="${donePage}" also-hidden="false" description="${uiLabelMap.CommonCancelDone}">
            <parameter param-name="partyId"/>
        </hyperlink>
    </field>
</form>

每个表单都有一个“提交”按钮和其他一些按钮,例如“取消”,“更新”等。

以上表格用于添加注释。为了实现这一点,它调用了服务和目标createPartyNote

我创建了名为createPartyNoteAndNotify的新服务,对于目标也是如此。

现在我需要添加一个名为保存并通知

的新按钮

保存按钮的作用相同:上面的<field name="submitButton" title="${uiLabelMap.Common.....,但目标和服务不同(新的createPartyNoteAndNotify

我尝试了以下操作:

<auto-fields-service service-name="createPartyNoteAndNotify"/>
<field name="submitAndNotifyButton" title=" " widget-style="smallSubmit"><submit button-type="text-link"/></field>

以及许多其他方法都没有成功。

如何在用于其他目的的表单中添加一个按钮?

2 个答案:

答案 0 :(得分:2)

您可以通过使用alt-target和use-when条件来实现。还可以使用use-when显示或隐藏按钮。 请在同一文件PartyForms.xml中查找下面提到的类似代码

`<alt-target use-when="${your_condition}" target="${your_target}" ..../>`

`<field name="${field_name}" use-when="${your_condition}" ..... />`

答案 1 :(得分:0)

我建议创建一个目标为createPartyNoteAndNotify的表单,并且表单中只包含隐藏字段。
在屏幕中包含该表格。
现在以上述形式添加一个字段,使

<field name="notify" title=" " widget-style="buttontext">
            <hyperlink description="save and notify" target="javascript:(document.formname.submit())" also-hidden="false" target-type="plain"/>
</field>

其中,formname将是包含的新表单的名称。

您也可以使用Apache OFBiz用户邮件list进行此类查询。

HTH