ofbiz的Form详情解析
form的各种形式

form的各种形式摘要:一、引言二、form 的定义与作用三、form 的各种形式1.表单2.表格3.形式4.形态5.方式四、form 在实际应用中的优势与局限五、总结正文:【引言】在日常生活和工作中,我们经常会接触到与“form”相关的事物,它具有多种含义和形式。
本文将详细介绍form 的各种形式,以及它们在实际应用中的优势和局限。
【form 的定义与作用】首先,我们需要了解form 的基本含义。
form 既可以表示表单、表格等形式,也可以表示方式、形态等概念。
它是一种用来展示信息、数据和内容的框架或结构。
通过form,我们可以更加高效地组织和传递信息,提高沟通的准确性。
【form 的各种形式】1.表单:表单是一种用于收集用户信息的数据输入界面。
在网页、应用程序等场景中,表单可以帮助用户快速填写和提交数据。
表单通常包括文本框、单选框、复选框、下拉列表等元素。
2.表格:表格是一种用于展示数据的二维结构。
通过表格,我们可以更加直观地比较和分析数据,从而得出有用的信息。
表格通常包括行、列和单元格,可以呈现不同类型的数据,如文本、数字和图片等。
3.形式:形式指的是一种事物存在或表现出来的样式。
它可以是具象的,如建筑、艺术作品等;也可以是抽象的,如思维方式、组织结构等。
形式往往体现了某种规律或原则,有助于我们更好地理解和把握事物。
4.形态:形态是指事物在外部表现出来的形状或姿态。
在生物学、艺术等领域,形态研究是一个重要的课题。
通过对形态的观察和分析,我们可以了解事物的变化和发展趋势。
5.方式:方式是指实现某一目标或任务的方法或途径。
在科学研究、技术创新等领域,方式的选择往往关系到成败。
不同的方式可能导致不同的结果,因此我们需要根据实际情况灵活选择。
【form 在实际应用中的优势与局限】form 在实际应用中具有很多优势,如提高信息传递的效率、便于数据分析等。
然而,它也存在一些局限,如表单填写繁琐、数据安全问题等。
ofbiz 中文文档解读

技术文档第一部分、ofbiz表现一、理解MVC模式当涉及大量商业逻辑项目的时候,我们需要考虑什么?如何分离用户界面和后台操作?如何避免将商业逻辑混淆于一般的流程控制中?作为企业信息系统,就需要考虑很多类似的问题。
源源不断的客户新需求, 要进行功能修改和扩充, 但是因为程序的高耦合,改动将变得非常困难,导致项目成本何风险增加。
而且,往往维护人员与开发人员不是同一个人,即使有详尽的文档,也很难理清程序里纵横交错的联系。
所以贯彻Model-View-Controller(MVC)模式的设计,在设计阶段首先杜绝此类问题, 是一个非常好的方法。
1、MVC理论描述所谓MVC模式,指的是一种划分系统功能的方法,它将一个系统划分为三个部分:l 模型(Model):封装的是数据源和所有基于对这些数据的操作。
在一个组件中,Model往往表示组件的状态和操作状态的方法。
l 视图(View):封装的是对数据源Model的一种显示。
一个模型可以由多个视图,而一个视图理论上也可以同不同的模型关联起来。
l 控制器(Control):封装的是外界作用于模型的操作。
通常,这些操作会转发到模型上,并调用模型中相应的一个或者多个方法。
一般Controller在Model和View之间起到了沟通的作用,处理用户在View上的输入,并转发给Model。
这样Model和View两者之间可以做到松散耦合,甚至可以彼此不知道对方,而由Controller连接起这两个部分。
模型,即相关的数据,它是对象的内在属性;视图是模型的外在表现形式,一个模型可以对应一个或者多个视图,视图还具有与外界交互的功能;控制器是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息转化成相应事件,然后由对应的控制器对模型进行更新;相应的,模型的更新与修改将通过控制器通知视图,保持视图与模型的一致性。
下图(图1.1)描述了这三者之间的关系:2、系统设计系统属于浏览器/服务器模型(Browser/Server)。
ofbiz国际化资源文件及uiLabelMap使用

<value xml:lang="fr">Réf. de statut en cours</value>
<value xml:lang="it">Stato Esecuzione</value>
--------------------------------------------------------------------------------
Xml代码 收藏代码
<property key="FormFieldTitle_runStatusId">
<value xml:lang="de">Laufzeitstatus ID</value>
在xml中我们先得到uiLabelMap这个map<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>然后用${monFtpFileCannotBeOpen}获取CommonUiLabels这个资源文件的CommonFtpFileCannotBeOpen的内容。
<value xml:lang="pt">ID de estado de execu?§?£o</value>
<value xml:lang="ro">Stat Executie</value>
OFBiz业务培训(04)-订单管理

订单管理
hongs
2021/3/11
1
目录
• 订单和订单条目、订单条目关联 • 订单当事人和联系机制 • 订单调整 • 订单状态和订单条款 • 需求 • 请求 • 报价 • 协议、协议项目、协议条款、协议定价。 • 协议到订单的关系
2021/3/11
2
1标准订单模型
• 大多数组织机构的订购活动是使用标准数 据模型来建模的,这种模型在许多关于数据 模型的教材中都有介绍。下图给出了这个 标准数据模型的图示。
• 条目描述属性也能说明非产品特定的订单,诸如完成工作计划或是预定专业 服务的时间的订单条目。订单条目也能和一个或多个工作计划有关。
2021/3/11
5
订单和订单条目
• 订单条目(购买 订单条目、销售 订单条目)
• 产品 • 产品特征(产品
质量、颜色、维、 尺寸、品牌、软 件特征、硬件特 征、付款特征、 其他特征) • 订单(购买订单、 销售订单)
• 杂项收费子类提供了一个机制,用于存储有关可能在订 单中产生的任何其他收费的信息。一个例子是用“错误 调整”来纠正先前的订单。订单调整类型实体实现这个 的一个功能,可以把各种类型的调整分类到细目录。描 述属性定义了与调整有关的可能值。
• 销售税查找表实体存储了销售税百分比,这个百分会随 地理范围,诸如县、市或州变化,也可能随产品类别变 化。例如,仪器与非腐烂的产品相比,有不同的税收内 容。一些类型的产品是免税的,可通过把它们和“免税” 产品类别关联来分类。
• 每个订单有一个或多个订单联系机制,每个订单条目有一个或多个订 单条目联系机制用于记录地址、电话、传真、电子邮件或者其他联系 机制,用来确认、装运、付款、接收或安装这个订单。联系机制目的 类型维护诸如“装运目标”、“付款”、“确认”、“下单”或“通过…接收”的 值来描述联系机制中的角色。联系机制实体存储了与订单关联使用的 实际地址、电话号码、传真号码、电子邮件地址或其他联系机制。
ofbiz菜鸟笔记

OFBIZ学习一、ofbiz之Hello World⏹下载OFBIZ并配置到当地⏹下载地址:解压(安装)OFBIZ:配置到当地:运行命令行: (cmd)进入到安装目录(即解压旳目录):在安装目录下运行命令: ant load-demo注: 版本较低旳命令也许是 ant run-install⏹安装成功后运行命令: java -jar ofbiz.jar导入到IDE(Eclipse)中:直接import安装目录, 将整个ofbiz导入到eclipse中1.新建练习项目:2.在hot-deploy目录下新建practice目录(apache-ofbiz-12.04.02\hot-deploy\practice)在practice目录下新建webapp、widget目录, 然后新建ofbiz-component.xml文献(apache-ofbiz-12.04.02\hot-deploy\practice\webapp)(apache-ofbiz-12.04.02\hot-deploy\practice\wid)(apache-ofbiz-12.04.02\hot-deploy\practice\ofbiz-component.xml)注: ofbiz-component.xml可直接从(apache-ofbiz-12.04.02\specialpurpose\example)下拷贝后来所有需要新建旳文献都直接从示例中拷贝, 然后进行修改。
代码如下:3.在webapp下新建practice目录(hot-deploy/practice/webapp/practice)4.在第二个practice下新建WEB-INF目录(hot-deploy/practice/webapp/practice/WEB-INF)注: 第一种practice是我们旳组件名, 第二个practice是我们旳应用名5.在下面我们不再使用第一种第二个这种说法, 会直接说组件(component)或应用(webapp)6.在WEB-INF下新建web.xml与controller.xml文献(去拷贝过来)先修改web.xml文献, 在ofbiz 中web.xml配置文献遵守j2ee旳规范, 与j2ee旳配置文献类似。
OFBiz缓存使用简介

OFBiz缓存使用简介OFBiz缓存使用细节OFBiz的GenericDelegator类支持在保存(新建,修改,批量修改),删除(包括批量删除)和查询数据时使用缓存(支持缓存的方法),这样在查询时使用缓存会提高查询的响应速度。
OFBiz在新建,保存,删除等操作时,如果没有加对缓存的删除操作它会自动加删除其对应的缓存记录,也可以调用不删除缓存的新建,保存删除等方法。
一个简单的新建数据例子,如下:一.默认调用的新建方法,没有带缓存标记,但是其在调用时会自动加上清除缓存参数。
/* (non-Javadoc)* @seeorg.ofbiz.entity.Delegator#create(org.ofbiz.entity.GenericPK) */public GenericValue create(GenericPK primaryKey) throws GenericEntityException {return this.create(primaryKey, true);}二.可以调用带有清除缓存标记的新建方法。
/* (non-Javadoc)* @seeorg.ofbiz.entity.Delegator#create(org.ofbiz.entity.GenericPK, boolean)*/public GenericValue create(GenericPK primaryKey, boolean doCacheClear) throws GenericEntityException {if (primaryKey == null) {throw new GenericEntityException("Cannot create from anull primaryKey");}return this.create(GenericValue.create(primaryKey), doCacheClear);}。
ofbiz基本流程

ofbiz各配置文件作用以及工作流程1.当客户端发出请求时,调用第一个配置文件WEB-INF/controller.xml,根据请求的地址处理方法1:直接调用java类的方法<request-map uri="login"><security https="true" auth="false"/><event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/><response name="success" type="view" value="main"/><response name="error" type="view" value="login"/></request-map>如果为login,会查找path="org.ofbiz.webapp.control.LoginWorker"这个类的invoke="login"这个方法进行处理处理方式2:通过service配置文件取查找对应的service(常用)<request-map uri="createForum"><security https="true" auth="true"/><event type="service" path="" invoke="createForum"/><response name="success" type="view" value="FindForum"/><response name="error" type="view" value="FindForum"/></request-map>表示调用的类型为type="service"调用的方法为invoke="createForum"2.进入servicedef/services.xml,这是service的配置文件从里面找到上面对应的配置信息<service name="createForum" default-entity-name="GroupForum" engine="simple"location="org/ofbiz/group/GroupServices.xml" invoke="createForum" auth="true"> <description>Create a GroupForum</description><permission-service service-name="exampleGenericPermission" main-action="CREATE"/><auto-attributes include="pk" mode="OUT" optional="false"/><auto-attributes include="nonpk" mode="IN" optional="true"/><override name="forumName" optional="false"/></service>文件配置的createForum这个文件实现的相关信息location="org/ofbiz/group/GroupServices.xml"表示实现是通过minilanguage配置文件3.进入script下面的org/ofbiz/group/GroupServices.xml文件通过minilanguage配置文件<simple-method method-name="createForum" short-description="create a GroupForum"> <make-value entity-name="GroupForum" value-name="newEntity"/><sequenced-id-to-env sequence-name="GroupForum" env-name="newEntity.forumId"/> <!-- get the next sequenced ID --><field-to-result field-name="newEntity.forumId" result-name="forumId"/><set-nonpk-fields map-name="parameters" value-name="newEntity"/><create-value value-name="newEntity"/></simple-method>配置了对entity-name="GroupForum"实体的创建的相关信息和操作,该步骤可以用java代码实现.4.进入实体配置文件部分entitymodel.xml<entity entity-name="GroupForum" package-name="org.ofbiz.group" title="GroupForum Entity"> <field name="forumId" type="id-ne"><!-- primary sequenced ID --></field><field name="forumName" type="name"></field><field name="description" type="description"></field><field name="authorID" type="id"></field><field name="created" type="date-time"></field><prim-key field="forumId"/></entity>配置了entity-name="GroupForum" 的实体与数据库映射文件entitygroup.xml<entitygroup xmlns:xsi="/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="/dtds/entitygroup.xsd"> <entity-group group="org.ofbiz" entity="GroupForum"/><entity-group group="org.ofbiz" entity="GroupCategory"/><entity-group group="org.ofbiz" entity="GroupThread"/><entity-group group="org.ofbiz" entity="GroupPost"/></entitygroup>配置了实体名称的组5.service执行成功后会返回到展现逻辑配置部分,也就是WEB-INF/controller.xml中<request-map uri="login"><security https="true" auth="false"/><event type="java" path="org.ofbiz.webapp.control.LoginWorker" invoke="login"/><response name="success" type="view" value="main"/><response name="error" type="view" value="login"/></request-map>现在会请求到main中,<view-map name="main" type="screen"page="component://group/widget/group/CommonScreens.xml#main"/>在WEB-INF/controller.xml中找到main的配置信息该显示用screen配置显示component://group/widget/group/CommonScreens.xml#main6.现在根据地址找到配置文件component://group/widget/group/CommonScreens.xml#main表示该文件中name为main的screen<screen name="main"><section><actions><set field="titleProperty" value="OrderOrderTaskList"/><set field="headerItem" value="tasklist"/><scriptlocation="component://order/webapp/ordermgr/WEB-INF/actions/task/ordertasklist.bsh"/> </actions><widgets><decorator-screen name="main-decorator"><decorator-section name="body"><container style="screenlet"><container style="screenlet-header"><label style="boxhead" text="Main Page"/></container><container style="screenlet-body"><section><condition><if-empty field-name="userLogin"/></condition><widgets><container><label text="${uiLabelMap.ExampleMessage}"/></container></widgets></section><container><label text="${uiLabelMap.Welcome}"/></container></container></container></decorator-section></decorator-screen></widgets></section></screen><screen name="login"><section><widgets><decorator-screen name="main-decorator"><decorator-section name="body"><platform-specific><html><html-template location="component://common/webcommon/login.ftl"/></html> </platform-specific></decorator-section></decorator-screen></widgets></section></screen></screens>该配置文件配置了显示的数据以及显示的格式其中数据是通过.bsh文件和service提供的,而显示的格式为ftl文件提供的7.进入group\webapp\group\WEB-INF\actions\forum在bsh为beansheel配置文件,语法与java类似,在这儿是为了提供显示数据import java.util.*;import java.io.*;import org.ofbiz.entity.*;import org.ofbiz.base.util.*;security = request.getAttribute("security");delegator = request.getAttribute("delegator");userLogin = session.getAttribute("userLogin");person = null;if (userLogin != null ) {person = userLogin.getRelatedOne("Person");}forumId = request.getParameter("forumId");categoryId = request.getParameter("categoryId");if ( categroyId == null ||UtilValidate.isEmpty(categoryId) ){categoryId = delegator.getNextSeqId("GroupCategory");}groupCategory = delegator.findByPrimaryKey("GroupCategory", UtilMisc.toMap("categoryId", categoryId));context.put("forumId", forumId);context.put("categoryId", categoryId);context.put("groupCategory", groupCategory);context.put("person", person);该文件把需要的数据放到返回的上下文中8.进入到group\webapp\group\forum\listForum.ftl该文件为Freemarker的文件,作用是代替jsp作显示层<#if forums?has_content>Some of the famous celebrities who have visited our site:<table><ul><#list forums as forum><tr><li><td><a href="EditForum?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> <td>12 ${forum.forumName?if_exists}</td><td> ${forum.description?if_exists}</td><li><td><a href="deleteForum?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> </tr><tr><li><td><a href="FindCategory?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> <td><a href="EditCategory?forumId=${forum.forumId?if_exists}">${forum.forumId?if_exists}</a></td> <td> </td><li><td></td></tr></#list></ul></table></#if>通过一些表达式和判断把数据显示出来,这样整个请求完毕其他配置文件的作用:data目录下的配置文件:<entity-engine-xml><UserLogin userLoginId="DemoBuyer"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoRepAll"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoRepStore"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoCustCompany"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoCustAgent"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="DemoCustomer"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLogin userLoginId="supplier" partyId="externaluser"currentPassword="47ca69ebb4bdc9ae0adec130880165d2cc05db1a" passwordHint=""/> <UserLoginSecurityGroup groupId="ORDERSUPPLIER_LTD" userLoginId="supplier" fromDate="2001-01-01 12:00:00.0"/></entity-engine-xml>配置了系统启动时后需要添加的一些数据config目录下的配置文件:为国际化配置信息<property key="OrderCaughtExceptionOnCartUpdate"><value xml:lang="en">Caught exception on cart update. </value><value xml:lang="es">Excepción capturada en la actualización del carro.</value><value xml:lang="fr">%Exception attrapée dans la mise à jour du chariot. %</value><value xml:lang="it">Eccezione sull'aggiornamento carrello. </value><value xml:lang="ro">Exceptie la actualizarea cosului. </value><value xml:lang="zh">更新购物车时发生意外情况</value></property>widget里面的form配置文件:<form name="OrderPurchaseProductOptions" type="single"target="OrderPurchaseReportProduct.pdf" title="" extends="OrderPurchaseReportOptions"> <field name="fromOrderDate" title="${uiLabelMap.OrderReportFromDate}"><date-timetype="timestamp"/></field><field name="thruOrderDate" title="${uiLabelMap.OrderReportThruDate}"><date-timetype="timestamp"/></field><field name="submitButton" title="${monRun}"widget-style="smallSubmit"><submit button-type="button"/></field></form>配置了一些表单信息,和screen一样,但是他可以直接显示数据不需要使用Freemaerker的文ftl文件作页面布局,根据配置信息可以直接生成ofbiz-componet.xml文件配置了项目要加载的配置文件的信息,它可以告诉OFBIZ应用程序组件的相关信息:数据模型,商业逻辑,用户接口,种子数据,以及其他程序需要的资源。
ofbiz 简介

FBiz简介,什么是OFBizOFBiz is an Apache Software Foundation top level project.Apache OFBiz全称是The ApacheOpen For Business Project。
是开放的电子商务平台,是一个非常著名的开源项目,提供了创建基于最新的J2EE/XML规范和技术标准,构建大中型企业级、快平台、跨数据库、跨应用服务器的多层、分布式电子商务类WEB应用系统的框架。
OFBiz几乎实现了所有的J2EE核心设计模式,各个模块之间的耦合比较松散,用户能够比较容易的根据自己的需要进行拆卸,非常灵活。
下面介绍一下它的目录结构以及文件说明。
2、目录结构整个项目目录结构applications:`各个应用的目录,包含了OFBiz核心的应用程序组件,如订单管理,电子商务存储等。
framework:框架目录,包含OFBiz框架的组件,例如实体引擎和服务引擎。
这是OFBiz框架的核心,其他应用程序都是基于它来构建的。
hot-deploy:热部署目录specialpurpose:专门目录,包含一些其他的应用程序,不是OFBiz的核心部分。
themes:主题目录tools:工具目录如果我们要写一个模块,那么建的目录如下,把此模块热部署到hot-deploy中即可。
Ofbiz-component.xml:每个组件都有这样一个文件。
他们用于定位该组件的entity,service,web配臵文件以及jar包等。
build.xml是ant文件,用于测试和构建这个应用程序。
build目录是放本模块生成的jar包和已编译的Java代码。
Config 目录包含配臵文件,例如国际化的UI标签的XML文件。
data目录包含种籽和演示数据。
entitydef目录包含实体配臵的xml,即数据模型定义。
script脚本目录包含业务逻辑的脚本文件。
servicedef包含services服务,是细粒度的业务逻辑(DAO方法)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Generated with oXygen XML Editor Take care of the environment, print only if necessary!Schema documentation for xml-form-1.3.xsd20 october 2013Table of ContentsNamespace: "" (2)Schemas (2)Main schema xml-form-1.3.xsd (2)Elements (2)Element AllWidgets (2)Element StandaloneFields (2)Element widget-templates (2)Element widget-template (2)Element SubFields (3)Element form-single (3)Element auto-fields-service (5)Element auto-fields-entity (5)Element field (5)Element header-field (6)Element conditional-field (7)Element default-field (8)Element field-layout (8)Element field-group (9)Element field-ref (9)Element fields-not-referenced (10)Element field-row (10)Element form-list (10)Element row-actions (12)Element form-list-column (12)Element link (13)Element parameter (14)Element image (14)Element label (15)Element editable (15)Element editable-load (17)Element auto-widget-service (17)Element auto-widget-entity (17)Element widget-template-include (18)Element check (18)Element entity-options (18)Element list-options (19)Element option (19)Element date-find (20)Element date-time (20)Element display (20)Element display-entity (21)Element drop-down (22)Element dynamic-options (23)Element depends-on (24)Element file (24)Element hidden (25)Element ignored (25)Element password (25)Element radio (25)Element range-find (25)Element reset (26)Element submit (26)Element text-line (26)Element text-area (27)Element text-find (28)Simple Types (29)Simple Type auto-field-type (29)Namespace: ""SchemasMain schema xml-form-1.3.xsdNamespace No namespaceElementsElement AllWidgetsNamespace No namespaceDiagramUsed by Elements conditional-field, default-field, header-field, widget-template Element StandaloneFieldsNamespace No namespaceDiagramUsed by Elements conditional-field, default-field, widget-template Element widget-templatesNamespace No namespaceDiagramInstance<widget-templates><widget-template name="">{0,unbounded}</widget-template></widget-templates>Element widget-templateNamespace No namespaceDiagramUsed by Element widget-templatesInstance<widget-template name=""><SubFields>{0,1}</SubFields><AllWidgets>{0,1}</AllWidgets><StandaloneFields>{0,unbounded}</StandaloneFields></widget-template>Attributes QName Type Fixed Default Usename xs:string required Element SubFieldsNamespace No namespaceDiagramUsed by Elements conditional-field, default-field, header-field, widget-templateElement form-singleNamespace No namespaceAnnotations A single form is used to view or edit fields of a single map/hash/record/etc.DiagramInstance<form-single background-message=""background-reload-id=""background-submit="false"dynamic="false"extends=""focus-field=""map="fieldValues"name=""skip-end="false"skip-start="false"transition=""><auto-fields-service field-type="edit"include="in"service-name="">{0,1}</auto-fields-service><auto-fields-entity entity-name=""field-type="find-display"include="all">{0,1}</auto-fields-entity><field entry-name=""hide=""name=""validate-parameter=""validate-service="">{0,1}</ field><field-layout active=""collapsible=""id="">{0,1}</field-layout></form-single>Attributes QName Type Fixed Default Usebackground-xs:string optionalmessageAfter the form is submitted in the background show this message.xs:string optionalbackground-reload-idAfter the form is submitted in the background reload thedynamic-container with this id.background-submit boolean false optionalSubmit the form in the background without reloading the screen.dynamic boolean false optionalIf true then this form will be considered dynamic and the internalQName Type Fixed Default Usedefinition will be built up each time it is used instead of only whenfirst referred to.extends xs:string optionalThe location and name (separated by a hash/pound sign) of the form toextend. If there is no location is a form in the current screen.focus-field xs:string optionalmap xs:string fieldValues optionalname xs:string requiredskip-end boolean false optionalskip-start boolean false optionaltransition xs:string optional Element auto-fields-serviceNamespace No namespaceDiagramUsed by Elements form-list, form-singleAttributes QName Type Fixed Default Usefield-type auto-field-type edit optionalinclude restriction of xs:token in optionalservice-name xs:string required Element auto-fields-entityNamespace No namespaceDiagramUsed by Elements form-list, form-singleAttributes QName Type Fixed Default Useentity-name xs:string requiredfield-type auto-field-type find-display optionalinclude restriction of xs:token all optional Element fieldNamespace No namespaceUsed by Elements form-list, form-singleInstance<field entry-name=""hide=""name=""validate-parameter=""validate-service=""><header-field show-order-by="false"title="">{0,1}</header-field><conditional-field condition=""red-when="by-name"title=""tooltip="">{0,unbounded}</ conditional-field><default-field red-when="by-name"title=""tooltip="">{0,1}</default-field></field>Attributes QName Type Fixed Default Useentry-name xs:string optionalThe name of the entry in the context that contains the value to use forthis field. By default will use the field name and look in the contextand if not found in thecontext then in a map called "fieldValues" (ie: "fieldValues.${name}").With this convention whenyou do an entity find to get a recard to edit, use "fieldValues" forthe value-field.hide boolean optionalIf false field will always be visible (at least the title if nothingelse). If true will always be hidden regardless of title and widgetsdefined. If empty (default)will guess based on definition of field.Note that for form-list fields this governs the entire column for thefield, and not just a singlerow.name xs:string requiredA unique name for this field. Used for the parameter name, referencingthe field in other places, etc.validate-parameter xs:string optionalvalidate-service xs:string optional Element header-fieldNamespace No namespaceAnnotations Only applicable to fields until a form-list element.Used to show a field to filter the results by (instead of a separate search form), and/orto show theorder-by option in the header.Used by Element fieldInstance<header-field show-order-by="false"title=""><SubFields>{0,1}</SubFields><AllWidgets>{0,1}</AllWidgets><set default-value=""field=""from=""set-if-empty="true"type=""value="">{0,unbounded}</set></header-field>Attributes QName Type Fixed Default Useshow-order-by restriction of xs:token false optionalOnly applicable to multi and list type forms. If true header links forordering by this field will be displayed.title xs:string optionalThe name of this field that will be shown to the user; can use the ${}and map.key (dot) syntax to insert values from the context.Element conditional-fieldNamespace No namespaceDiagramUsed by Element fieldInstance<conditional-field condition=""red-when="by-name"title=""tooltip=""><SubFields>{0,1}</SubFields><AllWidgets>{0,1}</AllWidgets><StandaloneFields>{0,unbounded}</StandaloneFields><set default-value=""field=""from=""set-if-empty="true"type=""value="">{0,unbounded}</set></conditional-field>Attributes QName Type Fixed Default Usecondition xs:string requiredA boolean expression in Groovy.red-when restriction of xs:token by-name optionalThe widget/interaction part will be red if the date value is before-now(for thruDate), after-now (for fromDate), or by-name (if the field'sname or entry-name or fromDateQName Type Fixed Default Useor thruDate the corresponding action will be done); only applicablewhen the field is a timestamp.title xs:string optionalThe name of this field that will be shown to the user; can use the ${}and map.key (dot) syntax to insert values from the context.tooltip xs:string optionalThe text to show on mouse over or help for more information; can usethe ${} and map.key (dot) syntax to insert values from the context. Element default-fieldNamespace No namespaceDiagramUsed by Element fieldInstance<default-field red-when="by-name"title=""tooltip=""><SubFields>{0,1}</SubFields><AllWidgets>{0,1}</AllWidgets><StandaloneFields>{0,unbounded}</StandaloneFields><set default-value=""field=""from=""set-if-empty="true"type=""value="">{0,unbounded}</set></default-field>Attributes QName Type Fixed Default Usered-when restriction of xs:token by-name optionalThe widget/interaction part will be red if the date value is before-now(for thruDate), after-now (for fromDate), or by-name (if the field'sname or entry-name or fromDateor thruDate the corresponding action will be done); only applicablewhen the field is a timestamp.title xs:string optionalThe name of this field that will be shown to the user; can use the ${}and map.key (dot) syntax to insert values from the context.tooltip xs:string optionalThe text to show on mouse over or help for more information; can usethe ${} and map.key (dot) syntax to insert values from the context. Element field-layoutNamespace No namespaceUsed by Element form-singleInstance<field-layout active=""collapsible=""id=""><field-group style=""title="">{1,1}</field-group><field-row>{1,1}</field-row><field-ref name="">{1,1}</field-ref><fields-not-referenced>{1,1}</fields-not-referenced></field-layout>Attributes QName Type Fixed Default Useactive xs:string optionalIf collapsible=true use thisto specify the accordion section index to be open, or false for all tobe closed.collapsible boolean optionalid xs:string optional Element field-groupNamespace No namespaceDiagramUsed by Element field-layoutInstance<field-group style=""title=""><field-ref name="">{1,1}</field-ref><fields-not-referenced>{1,1}</fields-not-referenced><field-row>{1,1}</field-row></field-group>Attributes QName Type Fixed Default Usestyle xs:string optionaltitle xs:string required Element field-refNamespace No namespaceUsed by Elements field-group, field-layout, field-row, form-list-columnAttributes QName Type Fixed Default Usename xs:string required Element fields-not-referencedNamespace No namespaceAnnotations Fields not explicitly referenced will be inserted where this element is. Ifthis element is left out the non-referenced fields will not be displayed.DiagramUsed by Elements field-group, field-layoutElement field-rowNamespace No namespaceAnnotations Fields in the field-row will be "floated" left so that they stack up on asingle line as long as them will fit, and then will overflow to the next line, etc.DiagramUsed by Elements field-group, field-layoutInstance<field-row><field-ref name="">{0,unbounded}</field-ref></field-row>Element form-listNamespace No namespaceAnnotations A list form is a list of individual forms in a table (could be called a tabular form), it has a list ofsets of values and creates one form for each list element.A variation on the list form is the multi form (set the attribute multi=true). In themulti mode alllist elements will be put into a single large form with suffixes on each field for eachrow, with asingle submit button at the bottom instead of a submit button on each row.DiagramInstance<form-list dynamic="false"extends=""list=""list-entry=""multi="true"name=""paginate="true"paginate-always-show="true"skip-end="false"skip-form="false"skip-start="false"transition=""><row-actions>{0,1}</row-actions><form-list-column>{0,unbounded}</form-list-column></form-list>Attributes QName Type Fixed Default Usedynamic boolean false optionalIf true then this form will be considered dynamic and the internaldefinition will be built up each time it is used instead of only whenfirst referred to.extends xs:string optionalThe location and name (separated by a hash/pound sign) of the form toextend. If there is no location is a form in the current screen.list xs:string optionalThe name of the list in the context to iterate over.QName Type Fixed Default Uselist-entry xs:string optionalIf specified each list entry will be put in the context with thisname; otherwise the list entry must be a Map and the entries in the Mapwill be put into the contextroot directly.multi boolean true optionalname xs:string requiredpaginate xs:string true optionalIndicate if this form should paginate or not. Defaults to true.paginate-always-xs:string true optionalshowAlways show the pagination control with count of rows, even when thereis only one page? Defaults to true.skip-end boolean false optionalskip-form boolean false optionalMake the output a plain table, not submittable (in HTML don't generate'form' elements).skip-start boolean false optionaltransition xs:string optional Element row-actionsNamespace No namespaceDiagramUsed by Element form-listInstance<row-actions><CallOperations>{1,1}</CallOperations><EnvOperations>{1,1}</EnvOperations><EntityMiscOperations>{1,1}</EntityMiscOperations><EntityFindOperations>{1,1}</EntityFindOperations><EntityValueOperations>{1,1}</EntityValueOperations><EntityListOperations>{1,1}</EntityListOperations><ControlOperations>{1,1}</ControlOperations><IfBasicOperations>{1,1}</IfBasicOperations><IfOtherOperations>{1,1}</IfOtherOperations><OtherOperations>{1,1}</OtherOperations></row-actions>Element form-list-columnNamespace No namespaceDiagramUsed by Element form-listInstance<form-list-column><field-ref name="">{0,unbounded}</field-ref></form-list-column>Element linkNamespace No namespaceDiagramInstance<link confirmation=""expand-transition-url="true"icon=""id=""link-type="auto"parameter-map=""target-window=""text=""url=""url-type="transition"><parameter from=""name=""value="">{0,unbounded}</parameter><image alt=""height=""id=""url=""url-type="content"width="">{0,1}</image></link>Attributes QName Type Fixed Default Useconfirmation xs:string optionalIf there is a message here it will show in a confirmation box when thelink is clicked on.expand-transition-boolean true optionalurlIf this target transition has no condition, no actions, noconditional responses and the default-response type is "url" and url-type is "screen-path" thenURLs to this transition may be expanded. Set this to true to expandthem to what thedefault-response points to instead of a URL to this transition.icon xs:string optionalid xs:string optionallink-type restriction of xs:token auto optionalparameter-map xs:string optionalA Map to get parameter names and values from in addition to theparameter sub-elements.target-window xs:string optionaltext xs:string optionalurl xs:string requiredurl-type url-type transition optionalThe type for the url attribute. Defaults to transition (on thisscreen).Element parameterNamespace No namespaceDiagramUsed by Elements editable, editable-load, linkAttributes QName Type Fixed Default Usefrom xs:string optionalname xs:string requiredvalue xs:string optional Element imageNamespace No namespaceDiagramUsed by Elements link, submitAttributes QName Type Fixed Default Usealt xs:string optionalid xs:string optionalurl xs:string requiredurl-type url-type content optionalwidth xs:string optional Element labelNamespace No namespaceDiagramAttributes QName Type Fixed Default Usedisplay-if-empty boolean false optionalGenerate text container even if text value is empty (or justwhitespace)?Defaults to false.encode boolean true optionalIf true text will be encoded so that it does not interfere with markupof the target output.For example, if output is HTML then data presented will be HTML encodedso that allHTML-specific characters are escaped.id xs:string optionaltext xs:string optionaltype restriction of xs:token span optional Element editableNamespace No namespaceDiagramInstance<editable display-if-empty="false"encode="false"id=""parameter-map=""parameter-name="value"text=""transition=""type="span"widget-type="textarea"><parameter from=""name=""value="">{0,unbounded}</parameter><editable-load parameter-map=""transition="">{0,1}</editable-load></editable>Attributes QName Type Fixed Default Usedisplay-if-empty boolean false optionalGenerate text container even if text value is empty (or justwhitespace)?Defaults to false.encode boolean false optionalIf true text will be encoded so that it does not interfere with markupof the target output.For example, if output is HTML then data presented will be HTML encodedso that allHTML-specific characters are escaped.id xs:string requiredparameter-map xs:string optionalA Map to get parameternames and values from in addition to the parameter sub-elements.parameter-name xs:string value optionalThe name of theparameter to pass the edited value in.text xs:string requiredtransition xs:string requiredtype restriction of xs:token span optionalwidget-type restriction of xs:token textarea optionalElement editable-loadNamespace No namespaceDiagramUsed by Element editableInstance<editable-load parameter-map=""transition=""><parameter from=""name=""value="">{0,unbounded}</parameter></editable-load>Attributes QName Type Fixed Default Useparameter-map xs:string optionalA Map to get parameternames and values from in addition to the parameter sub-elements.transition xs:string required Element auto-widget-serviceNamespace No namespaceDiagramAttributes QName Type Fixed Default Usefield-type auto-field-type edit optionalparameter-name xs:string optionalservice-name xs:string required Element auto-widget-entityNamespace No namespaceDiagramAttributes QName Type Fixed Default Useentity-name xs:string requiredQName Type Fixed Default Usefield-type auto-field-type find-display optional Element widget-template-includeNamespace No namespaceDiagramInstance<widget-template-include location=""><set default-value=""field=""from=""set-if-empty="true"type=""value="">{0,unbounded}</set></widget-template-include>Attributes QName Type Fixed Default Uselocation xs:string required Element checkNamespace No namespaceDiagramInstance<check all-checked=""no-current-selected-key=""><entity-options key=""text="">{1,1}</entity-options><list-options key=""list=""text="">{1,1}</list-options><option key=""text="">{1,1}</option></check>Attributes QName Type Fixed Default Useall-checked xs:string optionalxs:string optional no-current-selected-keyElement entity-optionsNamespace No namespaceAnnotations Look up options for the field using the named entity.DiagramUsed by Elements check, drop-down, radioInstance<entity-options key=""text=""><entity-find cache=""distinct="false"entity-name=""for-update="false"limit=""list=""offset="">{0,1}</entity-find></entity-options>Attributes QName Type Fixed Default Usekey xs:string optionalThe text representing the key. Use the ${} syntax to insert entriesfrom the entity value or from the context. If empty will use the firstprimary key field name tolookup a value in the context.text xs:string optionalActual text shown to the user. Use the ${} syntax to insert variables.If empty defaults to the value of the key.Element list-optionsNamespace No namespaceAnnotations Create options based on data in a List of Maps.DiagramUsed by Elements check, drop-down, radioAttributes QName Type Fixed Default Usekey xs:string optionalThe text representing the key. Use the ${} syntax to insert entriesfrom a Map in the list or from the context. If empty and the Listcontains EntityValue instancesthen will use the first primary key field name to lookup a value in thecontext, otherwise willuse the name of the field to lookup a value in the context.list xs:string requiredThe name of the list to iterate through to get values.text xs:string optionalActual text shown to the user. Use the ${} syntax to insert entriesfrom a Map in the list or from the context. If empty defaults to thevalue of the key.Element optionNamespace No namespaceDiagramUsed by Elements check, drop-down, radioAttributes QName Type Fixed Default Usekey xs:string requiredtext xs:string optionalWhat the user will see in the widget; defaults to the value of the keyattribute.Element date-findNamespace No namespaceDiagramAttributes QName Type Fixed Default Usedefault-value-from xs:string optionaldefault-value-thru xs:string optionalformat xs:string optionalUsed to format the output of Time/Date/Timestamp objects. Withauto-fields-service will inherit from service parameter.type restriction of xs:token timestamp optional Element date-timeNamespace No namespaceDiagramAttributes QName Type Fixed Default Usedefault-value xs:string optionalformat xs:string optionalUsed to format the output of Time/Date/Timestamp objects. Withauto-fields-service will inherit from service parameter.type restriction of xs:token timestamp optional Element displayNamespace No namespaceAttributes QName Type Fixed Default Usealso-hidden boolean true optionalIf set to true, a hidden form field is also rendered, with the name ofthe field and its value.currency-unit-field xs:string optionalSpecifies the currency uomId (ISO code) used to format the value.Will only format as currency if this is specified.encode boolean true optionalIf true text will be encoded so that it does not interfere with markupof the target output.format xs:string optionalUsed to format the output of Number/Time/Date/Timestamp/etc objects.With auto-fields-service will inherit from service parameter.text xs:string optionalSpecifies the string to display, can use the ${} syntax to insertcontext values; if empty the value of the field will be printed for adefault.Element display-entityNamespace No namespaceAnnotations This is just like display but looks up a description using the Entity Facade;note that if also-hidden is true then it uses the key as the value, not the showndescription.Attributes QName Type Fixed Default Usealso-hidden boolean true optionalencode boolean true optionalIf true text will be encoded so that it does not interfere with markupof the target output.entity-name xs:string requiredkey-field-name xs:string optionaltext xs:string${description}optionaluse-cache boolean true optional Element drop-downNamespace No namespaceInstance<drop-down allow-empty="false"allow-multiple="false"combo-box="false"current="first-in-list"current-description=""no-current-selected-key=""size="1"><dynamic-options label-field="label"transition=""value-field="value">{1,1}</dynamic-options></drop-down>Attributes QName Type Fixed Default Useallow-empty xs:string false optionalallow-multiple boolean false optionalcombo-box boolean false optionalcurrent restriction of xs:token first-in-list optionalcurrent-description xs:string optionalno-current-selected-xs:string optionalkeyThe key to mark as selected when there is no current entry value.size xs:integer1optional Element dynamic-optionsNamespace No namespaceAnnotations Look up options for the field using a JSON over HTTP call to a server.Used by Element drop-downInstance<dynamic-options label-field="label"transition=""value-field="value"><depends-on field="">{0,unbounded}</depends-on></dynamic-options>Attributes QName Type Fixed Default Uselabel-field xs:string label optionalThe field in the result that represents the label for the option.transition xs:string optionalThe transition in this screen to get the option list from.value-field xs:string value optionalThe field in the result that represents the value (key) for the option. Element depends-onNamespace No namespaceDiagramUsed by Element dynamic-optionsAttributes QName Type Fixed Default Usefield xs:string required Element fileNamespace No namespaceDiagramAttributes QName Type Fixed Default Usedefault-value xs:string optionalmaxlength xs:positiveInteger optionalsize xs:positiveInteger30optional。