十六、选择弹窗(DialogueWindow)

ComBo类控件在进行选择操作时,能显示的内容比较少。如果某种需求是在进行选择操作时,需要能看到更多的字段内容,那么DialogueWindow这个控件就能满足你的需求了。

相较于ComBo类控件的设置,DialogueWindow控件的设置就比较复杂点了。首先在字段属性的编辑类型选择DialogueWindow,然后往下翻找到数据源配置,点击进入。

需要注意的是,当字段的编辑类型选取【DialogueWindow】后,会在字段列表中自动创建一个xxxxText的字段(此处的xxxx表示的是DialogueWindow控件的字段名)。比如:当前字段为ShouKuanZhangHu,编辑类型选择DialogueWindow之后,字段列表中会多出一个ShouKuanZhangHuText字段。请不要随意删除这个字段,该字段是有重大作用的,主要用于存储该控件的显示值。

本例子选的是模块作为数据源(其他数据源的操作大抵相同),需要在控件中显示多少字段,就配置多少字段(PS: 数据源配置中,字段key为key的字段是实际存入到到数据库中的值,caption的字段是控件实际上显示的值)。

我配置了三个字段,所以平台上的选择弹窗控件就会显示三个字段的数据。

PS:这里说明一下如何给Dialogwindow控件赋值。需要注意的是,给Dialogwindow控件赋值跟给其他控件赋值是不一样的,一定要注意,以免出现一些不必要的错误。

Dialogwindow控件在子表与主表的上赋值又有所不同,所以这里分开来讲。

① 主表

先讲主表的赋值。其他控件的主表赋值比较简单,使用 jwpf.setFormVal() 就行。比如说给设置为comboBox控件的xx字段赋值:

var val = "12"
jwpf.setFormVal("xx",val);

Dialogwindow控件的赋值就不能这么写了,需要这么赋值,举例说明一下:CRM案例的报价单模块中,我们选择客户名称后,需要动态给主表上的联系人(dialogwindow控件)字段赋值,怎么做呢?首先,通过 jwpf.getFilterData(函数具体用法,请见函数的具体章节),获取到客户信息,然后通过获取到的信息给联系人字段赋值,具体代码如下:

Sql代码:

SELECT
  a.WoFangGongSi,
  a.FuKuanFangShi,
  a.WaiXiaoBiZhong,
  a.ShiFuKaiPiao,
  a.KeHuBianHao,
  a.ShuiHaoXinXi,
  a.YunShuFangShi,
  a.KaiPiaoDanWeiMingChen,
  CONCAT(a.DiZhi, '-', a.DianHua) AS KaiPiaoDiZhi,
  a.KaiHuYinXing,
  a.YeWuYuan,
  a.KeFu,
  b.ID AS lxr,
  b.XingMing,
  b.ShouHuoDiZhi,
  b.DianHua
FROM
  KE_HU_XIN_XI_ZHU_BIAO a
LEFT JOIN KE_HU_XIN_XI_ZI_BIAO_1 b 
ON 
a.ID = b.MASTER_ID
AND b.MoRen = '1'
WHERE
  a.ID = :kid

SQL生成规则如下:

QQ图片20210601135051.png

JS代码如下:

if(newValue){
  var data=jwpf.getFilterData("quotations.QuotationsZhuBiao.dinggoukehu.sql1",{"filter_EQL_kid":newValue});
  if(data&&data.list&&data.list.length)
  {
      jwpf.setFormVal("dinggoulianxiren",{"key":data.list[0]['lxr'],"caption": data.list[0]['xingming'],"id":data.list[0]['lxr'],"text": data.list[0]['xingming']});
  }
}

② 子表

Dialogwindow控件在子表上的赋值与其他控件也是不一样的,这里就不举例了,直接上代码:

QQ图片20210601135123.png

var kh = jwpf.getFormVal("kehumingcheng");
var tableKey = "ShouKuanHeXiaoZiBiao2";
if (!kh) {
    alert("请先选择客户");
    return;
}
var onAfterSure = function (win) {
    var rowData = win._getSelectFilterData_();
    console.log(rowData)
    if (rowData && rowData.length) {
        var data = jwpf.getTableVal(tableKey,false);
        var n = rowData.length;
        var rowsData = []
        for (var i = 0; i < n; i++) {
            var row = rowData[i];
            rowsData[i] = {
                "daokuandanhao": row.danhao,
                "shoukuanzhanghutext": row.shoukuanzhanghutext,
                "shoukuanzhanghu": row.shoukuanzhanghu,
                "shoukuanjine": row.shoukuanjine,
                "shoukuanshijian": row.shoukuanshijian,
                "danjuleixing": row.danjuleixing,
                "beizhu": row.beizhu
            }
            var ifXt = jwpf.checkRowInRows(rowsData[i], data, ["daokuandanhao"]);
            if (ifXt) {
                alert("亲,单号为" + rowsData[i]["daokuandanhao"] + "的数据已经下推过了,请重新选择!");
                return false;
            }
        }
        jwpf.setTableData(tableKey, rowsData, true, false)
        return true;
    } else {
        alert("亲,请选择订单");
        return false;
    }
};
var wfgs = jwpf.getFormVal("wofanggongsi");
var filterParam = { "fix_EQL_kh": kh, "fix_EQL_wfgs": wfgs };

var formParam = {
    "title": "到款登记",
    "formKey": "DaoKuanDengJiZhuBiao",
    "filterParam": filterParam,
    "isMaxWin": false,
    "width": 1000,
    "height": 500,
    "onAfterSure": onAfterSure
};
openFormWin(formParam);
Copyright © 2022 杭州企云信息科技有限公司 all right reserved,powered by 简搭(jabdp)该文件修订时间: 2022-06-30 10:21:58

results matching ""

    No results matching ""