<?xml version="1.0" encoding="UTF-8"?> <a:screen xmlns:a="http://www.leaf-framework.org/application" xmlns:p="uncertain.proc"> <a:init-procedure> <p:method-invoke className="leaf.application.features.cstm.CustomSourceCode" methodName="getBusinessObjectInContainer" resultPath="/model/results"> <p:arguments> <p:argument path="instance" type="uncertain.ocm.IObjectRegistry"/> <p:argument type="java.lang.String" value="${/parameter/@service_name}"/> <p:argument type="java.lang.String" value="${/parameter/@type}"/> <p:argument type="java.lang.String" value="${/parameter/@form_id}"/> </p:arguments> </p:method-invoke> </a:init-procedure> <a:view> <script type="text/javascript"><![CDATA[ function dynamicFlexFieldSave() { var qr = $('sys_dynamic_business_query_ds').getCurrentRecord(); var fds = $('sys_dynamic_business_field_ds'); var all = fds.getSelected(); var ds = $('${/parameter/@ds}'); for(var i=0;i<all.length;i++){ var record = all[i] ds.create({ field_id:record.get('field_id'), name:record.get('field_name'), prompt:record.get('field_description'), bind_target:qr.get('bindtarget') }); } dynamicFlexFieldClose(); } function dynamicFlexFieldClose() { $('buz_obj_flexfield_add_window').close() } function onDynamicBuzObjectUpdate(ds, record, name, value, ov){ if(name=='object_id'){ $('sys_dynamic_business_field_ds').setQueryParameter('business_object_id',value); $('sys_dynamic_business_field_ds').query(); } } function processFlexFieldSelection(record){ var field_name = record.get('field_name'); var ds = $('${/parameter/@ds}'); return ds.find('name',field_name) == null; } ]]></script> <a:dataSets> <a:dataSet id="sys_dynamic_business_object_ds"> <a:datas dataSource="/model/results"/> </a:dataSet> <a:dataSet id="sys_dynamic_business_query_ds" autoCreate="true"> <a:fields> <a:field name="business_name" displayField="object_name" options="sys_dynamic_business_object_ds" valueField="object_id"> <a:mapping> <a:map from="object_id" to="object_id"/> <a:map from="object_name" to="business_name"/> <a:map from="bindtarget" to="bindtarget"/> </a:mapping> </a:field> </a:fields> <a:events> <a:event name="update" handler="onDynamicBuzObjectUpdate"/> </a:events> </a:dataSet> <a:dataSet id="sys_dynamic_business_field_ds" autoCount="false" autoQuery="false" fetchall="true" model="sys.SYS1090.sys_business_flexfields" selectable="true" selectfunction="processFlexFieldSelection"/> </a:dataSets> <a:screenBody> <a:fieldSet column="1" title="动态配置" width="500"> <a:comboBox name="business_name" bindTarget="sys_dynamic_business_query_ds" prompt="业务对象" width="200"/> </a:fieldSet> <a:grid bindTarget="sys_dynamic_business_field_ds" height="385" width="580"> <a:columns> <a:column name="field_name" align="left" prompt="字段名" width="100"/> <a:column name="field_description" align="left" prompt="字段描述" width="100"/> <a:column name="comments" align="left" prompt="备注" width="200"/> <a:column name="type_display" align="center" prompt="编辑器类型" width="100"/> </a:columns> </a:grid> </a:screenBody> <a:windowToolbar> <a:button click="dynamicFlexFieldSave" text="确定" width="90"/> <a:button click="dynamicFlexFieldClose" text="关闭" width="90"/> </a:windowToolbar> </a:view> </a:screen>