• 一个设计项上的按钮调另一个设计项的列表界面,同时加筛选条件


    说明:它们是一对多的关系

    例如:一个检查方案对应多个检查记录。

    设计说明:也就是【方案管理】的列表界面上有一个【检查记录】按钮,点击【检查记录】按钮时,调出的是【日常检查】的列表界面,点击【日常检查】列表界面上的新增按钮,只能增加该检查方案【方案管理】所对应的【检查记录】,也就是说,所新增的【检查记录】是该【检查方案】的

    a、(例如此按钮为【检查记录】)中的代码:

     1 function(button, record, e)
     2 {
     3     var me = this;                          // this 为列表视图控制器
     4     var viewModel = this.getViewModel();    // 获取视图模型
     5     var grid = this.getView();              // 获取到列表视图
     6     var records = grid.getSelectionModel().getSelection();  // 获取到选中的记录数组
     7     var record=records[0];                  // 如果是单选模式则获取到第1条选中的行记录
     8     var dictName = record.get('FangAnMingChen');              // 获取选中行记录的UserName字段的值
     9     var win = Ext.create('Ext.window.Window', {
    10         title: '[ '+dictName+' ] 日常检查',
    11         height: '60%',   // 窗体高。示例为按父grid高的比例,也可直接指定数字作为高度,单位为:px
    12          '60%',    // 窗体宽。示例为按父grid宽的比例,也可直接指定数字作为宽度,单位为:px
    13         closable: true,
    14         layout: 'fit',
    15         items: [{ 
    16             xtype: util.getCodeGenerate1ClassName('日常检查','list'),
    17             title: null,
    18             JianChaLeiBie:record.get('FangAnMingChen'),
    19             store:{
    20                 type: util.getCodeGenerate1ClassName('日常检查','store'),
    21                 //httpGetRequestExParams: { DictID: record.get('ID') }   // 如使用本行代码将要求后台的方法中必须有参数DictID接收
    22                 httpGetRequestExParams: { // 如使用本行代码只要求后台的方法中有参数QueryCondition(默认生成的List()方法中就包含有该参数)即可接收多字段查询条件。建议使用本行代码
    23                     QueryCondition: {
    24                         JianChaLeiBie:{
    25                             Value1: record.get('FangAnMingChen'),
    26                             CompareMode: '等于'   // 比较模式:包含;等于;大于等于;等
    27                         }
    28                     }
    29                 }
    30             }
    31         }]
    32     });
    33     grid.add(win);
    34     win.showBy(grid);
    35 
    36 }

    b、需要在【检查记录】设计项的列表界面上的新增按钮中增加此代码

      if(grid.QiYeID)
            record.set('QiYeID',grid.QiYeID);
    代码块如下:
     1 function(button, e) 
     2 {
     3     debugger; // 中断调试指令,可以手动删除它
     4 
     5     var grid    = this.getView(),   // 获取到grid
     6         record  = Ext.create(util.getCodeGenerate1ClassName('日常检查','Model'),{
     7             // 此处放置新记录的字段的默认值
     8             // 如:Descript: 'test' 则会使record记录中的Descript字段的值为'test'
     9         });   // 创建新记录
    10     if(grid.JianChaLeiBie)
    11         record.set('JianChaLeiBie',grid.JianChaLeiBie);
    12     else        
    13         record.set('JianChaLeiBie','日常检查'); 
    14     var win     = Ext.create(util.getCodeGenerate1ClassName('日常检查','Edit'), {
    15         viewModel: {
    16             data: {
    17                 data: record    // record记录的各字段值与win窗体中的各输入控件绑定
    18             }
    19         },  // win窗体的视图模型
    20         title: '日常检查 <i class="fa fa-long-arrow-right"></i> 新增'   // 窗体标题
    21     });  // 创建win窗体
    22     var loginUser = config.loginUser;
    23     record.set('JianGuanRenYuan',loginUser.name);
    24     record.set('JianGuanRenYuanID',loginUser.id);
    25     record.set('IsGuiDang',false); 
    26     record.set('JianChaShiJian',new Date());    
    27     grid.add(win);  // 将win归入到grid管理
    28     win.showBy(grid);   //在grid中居中显示窗体
    29 }

    c、一个设计项调用另一个设计项代码的解释

     1 2、代码设计
     2  2 function(button, record, e)
     3  3 {
     4  4     var me = this;                         
     5  5    // this 是函数的调用者,在这里是指列表界面中的维护按钮,并将其赋值给me这个变量
     6  6     var viewModel = this.getViewModel(); 
     7  7    // ViewModel()是视图中放数据的地方,常用于编辑界面中存放选中的记录
     8  8 // this.getViewModel()获取
     9  9     var grid = this.getView();  
    10 10  // 获取按钮所在的列表界面
    11 11     var records = grid.getSelection(); 
    12 12  // 获取列表界面中选中的多条记录
    13 13     var record=records[0];                
    14 14   // 获取选中多条记录中的第1条行记录
    15 15     var dictName = record.get('Name');     
    16 16      // 获取选中行记录的字段的值Name
    17 17     var codeGenerate = record.get('IsTree')==true?'词典条目维护(树形结构)':'词典条目维护';
    18 18 //这是三目运算符,问号前面是表达式,如果该表达式为真,则表达式的结果为b,如果表达式为假,则为c的结果。
    19 19 如b = a>0?1:0;
    20 20 如果a=1,则结果是b=1;
    21 21 如果a=-1,则结果是b=0.
    22 22 
    23 23     var win = Ext.create('Ext.window.Window', {
    24 24 //Ext.create创建一个类的实例,Ext.window.Window'为类的名称  { }里面的内容为类的属性
    25 25         title: '[ '+dictName+' ]词典条目维护',
    26 26         height: '60%',  //是指grid的60%
    27 27          '60%',
    28 28         closable: true,
    29 29         hideHeaders: true,
    30 30         layout: 'fit',
    31 31 //用layout指定win的布局,fit的作用是让子元素充满父元素的空间
    32 32         items: { 
    33 33 //子元素的属性,是指win里面的属性
    34 34             xtype: util.getCodeGenerate1ClassName(codeGenerate,'list'),
    35 35 //xtype为任意类型,util为工具的类库
    36 36 设计项所包含的四种元素:1、列表界面 2、编辑界面 3、模型  4、store:从后台获取多条记录的数据
    37 37             title: null,
    38 38             ID: record.get('ID'),
    39 39             store:Ext.create(util.getCodeGenerate1ClassName(codeGenerate,'Store'),{
    40 40                 httpGetRequestExParams: { 
    41 41 // 如使用本行代码只要求后台的方法中有参数QueryCondition(默认生成的List()方法中就包含有该参数)即可接收多字段查询条件。建议使用本行代码
    42 42                     QueryCondition: {
    43 43                         DictID:{
    44 44                             Value1: record.get('ID'),
    45 45                             CompareMode: 1   // 比较模式:0=>包含;1=>等于
    46 46                         }
    47 47                     }
    48 48                 }
    49 49             })
    50 50         }
    51 51     });
    52 52     grid.add(win);
    53 53 //将win窗口归入到grid里面
    54 54 grid.add(win)的作用
    55 55 1、    避免切换选项卡时win窗口在浏览器界面上浮动
    56 56 2、在使用win.up()是能找到grid
    57 57  grid = win.up()  win的上级就是grid
    58 58 
    59 59     win.showBy(grid);
    60 60 }
  • 相关阅读:
    Jenkins操作学习 --邮箱配置及测试结果构建
    Jenkins操作学习 --初始化安装
    Jenkins操作学习 -- 配置及使用
    Jenkins登录后空白页
    Linux-(kill,wc,killall,ln,cal,date)
    Linux-(tar,gzip,df,du)
    Linux-(chgrp,chown,chmod)
    Linux-文件和目录属性
    Linux-(which,whereis,locate,find)
    Linux-(touch,cat,nl,more|less,head|tail)
  • 原文地址:https://www.cnblogs.com/jiaowoyaoshu/p/9803060.html
Copyright © 2020-2023  润新知