资讯详情

hap项目功能总结,以及技术注意点

非常重要的是要注意,一旦项目中出现问题,就属于事故 1.物料批 ,这两张表的查询一定不能用全表查询,sql一定要走层面 条件查询,同样java层面一定要 传参过去,传参时,

唯一索引: 普通索引:table_N1,2,3… 主键索引:table_PK

varchar ( 文本) 对应java类型 String (二进制 图片) 对应java类型 byte[]

注意: 1.直接查询 对 clob类型不需要任何处理,映射到java类型 就是 String 如果是这样的话 PL/SQL看效果,然后直接查询,字段框只显示一个 clob(因为太长,PL/SQL 默认不显示) 解决办法: 1.select to_char(clob) 这样在 可以看到字段框 字符串了 2.在 PL/SQL 点击弹框 弹出 字符串的内容

看文档功能总结,就知道其他都是关联表。

段和初始值

<span class="btn btn-primary k-grid-excel" style="float:left;" onclick='Hap.importExcel("")' >  <i class="fa fa-arrow-circle-up" style="margin-right:3px;">  </i><@spring.message "excel.import"/> 

 <span class="btn btn-primary k-grid-excel" style="float:left;margin-right:5px;" data-bind="click:exportExcel"><i class="fa fa-file-excel-o" style="margin-right:3px;"></i>导出</span>

16.kendoUi前端使用的几个注意点

1.grid不可编辑:

 {
                field: "name",
                title: '姓名',
                width: 120,
                headerAttributes: {style: "text-align:center"},
                attributes: {style: "text-align:center"},
                editor: function(container,options){
                        container.html(options.model.name);
                        container.removeClass('k-edit-cell');
                }
            },

2.form不可编辑? 不会

3.必输校验 ?不会

4.选定lov 后带出 name框的值(就是将lov查出的 name 也赋值给 viewModel ,这样 lov框选中值后,name也赋上值了,判断的name框的值也就达到了自动带出的效果了)

 {
                field: "employeeId",
                title: '用户名',
                width: 120,
                headerAttributes: {style: "text-align:center"},
                attributes: {style: "text-align:center"},
                template: function (dataItem) {
                    return dataItem['employeeCode'] || ''; /* 数据列默认显示值 */
                },
                editor: function (container, options) {
                    $('<input required name="' + options.field + '" />').appendTo(container)
                        .kendoLov($.extend( <@lov"EMPLOYEE_LOV"/>, {

                        select: function (e) {
                            // 将选择后的属性更新到数据模型中以保存
                            options.model.set('employeeId', e.item.employeeId);
                            
                            //重要的就是这个,带出name值,就是给name赋值
                            options.model.set('name',e.item.name); 
                        },
                        //TODO 之前的toolCategoryCode
                        textField: 'employeeCode', /* 编辑器显示的值 */
                        model: options.model
                    }));
                }

5.下拉框默认值(optionLabel: “是”)

 editor: function (container, options) {
                    $('<input required name="' + options.field + '"/>')
                        .appendTo(container)
                        .kendoDropDownList({
                            dataTextField: "meaning",   //显示的文本
                            dataValueField: "value",    //实际的值
                            optionLabel: "是",//默认选项值
                            dataSource: YES_NO,
                            valuePrimitive: true
                        });
                }

kendoui ,或者 hap

,插入的时候,insert(主键 , cid) vaules(seq_s.nextvalue , seq_cid_s.nextvalue)创建的代码已经创建好了的

 <script>kendo.bind($('#div 的 id'), viewModel);</script>

这样保证,这些div 的script事件是,将 数据 绑定到 对应 grid的 viewModel ,这些script就是,首先调用对应的下拉框 或 lov 然后,将框里面的值,赋值给 viewModel 例如

<script> $("#siteId").kendoLov($.extend(${ 
          lovProvider.getLov(base.contextPath, base.locale, "LOV_SITE")}, { 
           select: function (e) { 
           viewModel.model.set("siteId", e.item.siteId); } })); </script>

<script type="text/javascript"> var viewModel = Hap.createGridViewModel("#grid"); var viewModelLine = Hap.createGridViewModel("#gridLine") </script>

这个代表的是,grid里面的 viewModel也就是数据模型,这是 grid的根本,viewModel 不是说对应的 实体类的json或者 说 colums的json,他在创建的时候,就是一个 map 里面的 key value都是为null的, var viewModel = Hap.createGridViewModel(“#grid”); 这句最先执行 然后在,访问接口之前,你可以给 viewModel赋值,后,最先访问 read接口,这时在parameterMap中,对viewModel初始化了一下

你可以随便put 键值对,但是,一般

 			parameterMap: function (options, type) {
                if (type !== "read" && options.models) {
                    var datas = Hap.prepareSubmitParameter(options, type)
                    return kendo.stringify(datas);
                } else if (type === "read") {
                    return Hap.prepareQueryParameter(viewModel.model.toJSON(), options)
                }
            }

这是 viewModel的初始化,代码,这话的意思其实很简单,就是 调用查询方法,将查询出来的 JSON 赋值给 viewModel,所以说,viewModel的初始 key 是和 查询出来的,json相对应的

22:整个页面需要的关注点 1.各个div 2.grid 3.各个事件发生 绑定的 script ,各个div绑定的 script …(script) 4.viewModel 5.viewModel赋值,取值的几个位置,script里面,paramterMap viewMoel初始化的时候,头行,传值,赋值给 viewModel的时候

1.第一步,定义 2个 grid的 viewModel

<script type="text/javascript"> var viewModel = Hap.createGridViewModel("#grid"); var viewModelLine = Hap.createGridViewModel("#gridLine") </script>

2.第二步,定义头的div 和 行的 div 头div

<div id="page-content">
    <div class="pull-left" id="toolbar-btn" style="padding-bottom:10px;">
        <span class="btn btn-primary k-grid-add" style="float:left;margin-right:5px;" data-bind="click:create"><@spring.message "hap.new"/></span>
        <span class="btn btn-success k-grid-save-changes" data-bind="click:save" style="float:left;margin-right:5px;"><@spring.message "hap.save"/></span>
        <span data-bind="click:remove" class="btn btn-danger" style="float:left;"><@spring.message "hap.delete"/></span>
    </div>
    <script>kendo.bind($('#toolbar-btn'), viewModel);</script>

    <div class="pull-right" id="query-form" style="padding-bottom:10px;">
        <input type="text" data-role="maskedtextbox" style="float:left;width:150px;margin-right:5px;" placeholder='<@spring.message "OdInspectionPlan.inspectionPlanCode"/>' data-bind="value:model.inspectionPlanCode" class="k-textbox">

        <input type="text" data-role="maskedtextbox" style="float:left;width:150px;margin-right:5px;" placeholder='<@spring.message "OdInspectionPlan.inspectionPlanName"/>' data-bind="value:model.inspectionPlanName" class="k-textbox">

        <input placeholder='<@spring.message "bom.sitecode"/>' data-bind="value:model.siteId" id="siteId">
        <script> $("#siteId").kendoLov($.extend(${ 
          lovProvider.getLov(base.contextPath, base.locale, "LOV_SITE")}, { 
           select: function (e) { 
           viewModel.model.set("siteId", e.item.siteId); } })); </script>

        <input placeholder='<@spring.message "odinspectionplan.materialid"/>' data-bind="value:model.materialId" id="materialId">
        <script> $("#materialId").kendoLov($.extend(${ 
          lovProvider.getLov(base.contextPath, base.locale, "LOV_MATERIAL")}, { 
           select: function (e) { 
           viewModel.model.set("materialId", e.item.materialId); } })); </script>

        <input placeholder='<@spring.message "odinspectionplan.status"/>' data-bind="value:model.status" id="status">
        <script> $("#status").kendoComboBox({ 
           dataTextField: "meaning", dataValueField: "value", valuePrimitive: true, dataSource: STATUS }); </script>

        <input placeholder='<@spring.message "odinspectionplan.identifycategory"/>' data-bind="value:model.identifyCategory" id="identifyCategory">
        <script> $("#identifyCategory").kendoComboBox({ 
           dataTextField: "meaning", dataValueField: "value", valuePrimitive: true, dataSource: I_CATE }); </script>

        <span class="btn btn-primary" style="float:left;width:70px" data-bind="click:query" type="submit"><@spring.message "hap.query"/></span>

    </div>
    <script>kendo.bind($('#query-form'), viewModel);</script>
	
	

    <!-- 第一个页面的 div -->
    <div id = "xxx" style="clear:both">
        <div id="grid"></div>
    </div>
    <script>kendo.bind($('#xxx'), viewModel);</script>
</div>

行div

<!--行 div-->
<div class="pull-left" id="toolbar-btn1" style="padding-bottom:10px;">
    <span class="btn btn-primary k-grid-add" style="float:left;margin-right:5px;" data-bind="click:create"><@spring.message "hap.new"/></span>
    <span class="btn btn-success k-grid-save-changes" data-bind="click:save" style="float:left;margin-right:5px;"><@spring.message "hap.save"/></span>
    <span data-bind="click:remove" class="btn btn-danger" style="float:left;"><@spring.message "hap.delete"/></span>
</div>
<script>kendo.bind($('#toolbar-btn1'), viewModelLine);</script>

<div id="bottom-content" style="clear:both;margin: 10px 5px 5px;">
    <div id="gridLine"></div>
</div>
<script>kendo.bind($('#bottom-content'), viewModelLine);</script>

3.定义头和行的 script grid 头的grid

<!--头 script -->
<script type="text/javascript"> <!--绑定前面的 html 内容 --> Hap.initEnterQuery('#query-form', viewModel.query); var BaseUrl = _basePath; dataSource = new kendo.data.DataSource({ 
           transport: { 
           read: { 
           url: BaseUrl + "/calb/od/inspection/plan/query", type: "POST", dataType: "json" }, update: { 
           url: BaseUrl + "/calb/od/inspection/plan/submit", type: "POST", contentType: "application/json" }, destroy: { 
           url: BaseUrl + "/calb/od/inspection/plan/remove", type: "POST", contentType: "application/json" }, create: { 
           url: BaseUrl + "/calb/od/inspection/plan/submit", type: "POST", contentType: "application/json" }, //这里比较重要,这里是初始化 viewModel的代码,如果是查询的话,那么viewModel初始值和查询的VO的json串一样 parameterMap 

标签: jrs1ds过载继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台