• 使用Epp开发过程中在主界面遇到的问题


    1.主界面的视图

    <sbe-data-grid options="gridOptions" ng-model="gridData" sbe-autoheight sbe-autoheight-exclusion="footer">

    </sbe-data-grid>

    这个标签的主要作用是来实现页面的数据绑定的,options="gridOptions";它的作用是来绑定表头的,

    ng-model="CarBrand"l实现数据的绑定的;

    2.主界面的控制器。

    这里的主要作用是对数据进行操作,包括数据表的查询,以及表投的设置,

    function getGridOptions(){
    var gridOptions={
    canEdit:false,//是否允许编辑
    height:"auto",
    title:"车辆品牌分类",
    multiSelect:false,//
    // enableFullRowSelection:true,
    onRowSelectChanged:function(dataGrid,row){//当选中一行时便会触发该函数
    //alert(1);
    //alert(row);
    if(scope.row==row){
    scope.row="";
    }else if(row){
    scope.row = row;
    }
    },
    columns:[
    {displayName: "品牌名称",name: "CarBrandType",120},
    {displayName: "显示名称",name: "SysFlag",120},
    {displayName: "顺序码",name: "OrderCode",120}
    ]
    };

    return gridOptions;
    }

    这段代码的主要作用是说明,我们的表头分别叫“品牌名称”,"显示名称", "顺序码",以及这个表的标题title:"车辆品牌分类",以及设了一些属性,列入禁止用户对表进行操作。


    //新增
    scope.add_row=function () {
    //alert("add_row");
    ShellService.shellModel.popupScreen("S_CarBrandEdit",[1],null,function(a,b,c){
    if(b==1){
    DOMProvider.alert('<div class="text-center">品牌新增成功!</div>','消息',function(){
    getCarBrand(scope.CarBrandType);
    },{autoClose:true,hideTitle:true,hideButton:true});
    }
    });
    };

    这句话的意思是说在我们点击确定按钮后,触发这个函数,从而使副页面中的模态框弹出,从副页面返回一个状态值,对这个状态值进行判断看是否为1,如果不为1则会报错。反之这新增成功,从而关闭,模态框。

    我们在对数据表进行操作时我们一定要注意这时我们一定要在数据表名后面加上Edit,这是固定语法。在对数据进行新增时我们使用的ShellService这个服务

    //修改
    scope.edit_row=function () {
    if(scope.row==""||!scope.row){
    DOMProvider.error('请选择要修改的数据!','错误',false);
    return false;
    }
    ShellService.shellModel.popupScreen("S_CarBrandEdit",[2,scope.row],null,function(a,b,c){
    if(b==1){
    DOMProvider.alert('<div class="text-center">品牌修改成功!</div>','消息',function(){
    getCarBrand(scope.CarBrandType);
    },{autoClose:true,hideTitle:true,hideButton:true});

    }
    });
    };

    这段代码的主要作用是修改数据

    点击选择按钮触发函数,首先判断你是否选中了你要修改的数据,如果则继续触发函数,如果没有选中那么他就会发出警告让你选择要修改的数据。

    如果你选中要修改行数,那么就会继续触发函数,到付界面,告诉副界面我要修改数据,从而副界面对数据进行操作。饭后返回一个状态值,如果为1,则说明执行成功否则,则为失败,同时关闭模态框。

    //删除
    scope.del_row=function () {
    if(scope.row==""||!scope.row){
    DOMProvider.error('请选择要删除的数据!','错误',false);
    return false;
    }
    DOMProvider.confirm("确定要删除品牌为["+scope.row.entity.CarBrandType+"]的数据吗?","消息",function(err,result){
    if(result){
    var del = {
    DeletedEntities:[//待删除的数据,数组型
    {
    __EntityType: 'ApplicationData.T_CarBrandType',//表名
    __UniqueId: 1,//记录序号,1开始依次增长
    CarBrandType: scope.row.entity.CarBrandType,//主键字段及对应值,
    }]
    };
    DataService.saveChanges(del,function(err,result){
    //alert(result.Status);
    if(result.Status=="OK"){
    getCarBrand(scope.CarBrandType);
    }else{
    DOMProvider.error('车辆品牌删除失败!','错误',false);
    }
    });
    }
    },false);
    };

    这句话的主要作用是对数据表进行删除操作。因为删除操作较为简单,不需要去副界面,那么就在主界面进行操作。在进行操作之前我们要进行判断此时你是否选中了要删除的行数,如果没有选中那么就会报警告。否则则继续则行下面的操作。

    弹出对话框询问是否确定删除如果去顶删除这是行if(result){}中的内容

    var del = {
    DeletedEntities:[//待删除的数据,数组型
    {
    __EntityType: 'ApplicationData.T_CarBrandType',//表名
    __UniqueId: 1,//记录序号,1开始依次增长
    CarBrandType: scope.row.entity.CarBrandType,//主键字段及对应值,
    }]
    };

    这里切记在连接数据库时一定不要加Edit

    这里面的主要内容有:待删除的数据

              进行删除操作

    DataService.saveChanges(del,function(err,result){
    //alert(result.Status);
    if(result.Status=="OK"){
    getCarBrand(scope.CarBrandType);
    }else{
    DOMProvider.error('车辆品牌删除失败!','错误',false);
    }
    });

    这句话就是进行删除操作

    //品牌查询
    function getCarBrand(CarBrand) {
    // var query="ApplicationData.T_CarBrandTypeSet";//注意后面要加Set固定搭配
    var query="ApplicationData.T_CarBrandTypeSet."+
    "Where(b=>(b.CarBrandType.Contains('"+scope.CarBrand +"') or'"+ scope.CarBrand+"' == ''or'"+ scope.CarBrand+"' == null))";
    DataService.linqQuery(query,null,function(err,result){
    // alert(result.Status);
    if(result.Status=="OK"){
    //document.write(result);
    scope.row="";
    scope.gridData=result.Value;
    //alert(scope.gridData);
    }else{
    DOMProvider.error('车辆品牌查询失败!','错误',false);
    }
    });
    }

    这句话的主要作用是对数据进行数据的数据库查询,以及在通过搜索框对数据进行查询操作。

    在数据行进初次加载时我们通过将参数设置为空从而在sql语句查询时我们设定条件当参数为空时便触发该函数从而达到整表查询的作用。在通过搜索狂查询时我们通过传递参数,将这个参数作为查询的条件。这样当我们点击搜索是边可以获得到我们要查询的字段了。

    他们也是不需要副界面从而实现直接的查询的。

    //刷新

    scope.refresh=function(){
    scope.CarBrand = '';
    getCarBrand(scope.CarBrand);
    };

    这句话的主要作用是点击刷新从新加载页面。也就是说它将整张数据表从新加载到页面中。

    //关闭

    scope.close=function(){
    scope.$screen.close(true);
    };

    当我们不需要查看数据表示就关闭当前的菜单。

  • 相关阅读:
    Flask之蓝图
    Flask之请求扩展
    Flask之flash
    Flask之session
    Flask之请求与响应
    Flask之模板系统
    Flask之路由系统
    Flask之配置文件
    Flask之快速入门
    Django项目 第一课 【nvm、node、npm安装及使用】
  • 原文地址:https://www.cnblogs.com/boonook/p/7661578.html
Copyright © 2020-2023  润新知