?????svc??

2011-12-28 09:58:38by ??

简析form

将头dataset的submitUrl声明为一个svc文件,在此例中,svc文件如下:

                
<?xml version="1.0" encoding="UTF-8"?>
<a:service xmlns:a="http://www.aurora-framework.org/application" xmlns:p="uncertain.proc" trace="true">
    <a:init-procedure>
        <batch-apply sourcepath="/parameter">
            <p:switch test="@current_parameter/@_status">
                <p:case value="update">
                    <a:model-update model="sys.sys_codes"/>
                    <a:model-batch-update model="sys.sys_code_values" sourcePath="@current_parameter/result_ds"/>
                </p:case>
                <p:case value="insert">
                    <a:model-insert model="sys.sys_codes"/>
                    <a:model-batch-update model="sys.sys_code_values" sourcePath="@current_parameter/result_ds"/>
                </p:case>
                <p:case value="delete">
                    <a:model-delete model="sys.sys_codes"/>
                    <a:model-delete model="sys.sys_code_values_del"/>
                </p:case>
            </p:switch>
        </batch-apply>
    </a:init-procedure>
    <a:service-output output="/parameter"/>
</a:service>
      

我们结合一次更新操作,来理解一下svc文件在这里的作用,界面

点击“保存”后的请求参数(已被格式化):

                
_request_data : {
    "parameter" : [ {
        "code" : "TEST_EMERSON",
        "sys_flag" : "N",
        "enabled_flag" : "Y",
        "code_name" : "Emerson的测试code",
        "result_ds" : [ {
            "code_value" : "1",
            "code_value_name" : "优",
            "enabled_flag" : "Y",
            "_id" : 1064,
            "_status" : "insert"
        }, {
            "code_value" : "2",
            "code_value_name" : "良",
            "enabled_flag" : "Y",
            "_id" : 1065,
            "_status" : "insert"
        }, {
            "code_value" : "3",
            "code_value_name" : "中",
            "enabled_flag" : "Y",
            "_id" : 1066,
            "_status" : "insert"
        }, {
            "code_value" : "4",
            "code_value_name" : "差",
            "enabled_flag" : "Y",
            "_id" : 1067,
            "_status" : "insert"
        } ],
        "_id" : 1063,
        "_status" : "insert"
    } ]
}

      


可以发现,我们提交过去的参数中又出现了个名为result_ds的json数组,其中正是我们在行表中填写的项。名字正是我们在行dataset中声明的bindName。
总体步骤是:
1、 在页面上写两个dataset,两个grid分别绑定上去;
2、 在行dataset上写属性bindTarget=“头dataset的ID”;bindName自行确定;
3、 将头dataset的submitUrl指向一个svc文件(切记提交时是提交头dataset);
4、 在svc文件中指明头数据的循环根路径;
5、 在svc文件中指明行数据的循环根路径;
6、 在行bm中,保存头表记录ID的字段,加入属性insertExpression
insertExpression="${../../@头表ID字段名}

详细代码请参见“HAP”系统中的“代码维护”功能。

      

Demo
    Attachments

      Comments

      6 Responses to the article
      1. [email protected] 留言于:2017年06月06日 14:33
        好东西。
      2. [email protected] 留言于:2018年07月19日 18:52
        666666
      3. [email protected] 留言于:2018年10月08日 14:01
        999999
      4. [email protected] 留言于:2019年02月12日 11:46
        。。。
      5. [email protected] 留言于:2019年02月12日 11:46
        **********************************************************************
      6. [email protected] 留言于:2019年03月22日 14:28
        好歹把调试的文档写上啊,都要被干掉了,还有什么秘密么
      发表评论