填报联动不好用

楼主
我是社区第85位番薯,欢迎点我头像关注我哦~
我做了一个填报,在物料代码行做了一个二次查询,通过点击查看可以调出物料明细,通过查找选定后赋值给物料代码单元格,在物料名称处写了一个联动公式=if(len(C8)==0,"",sql("ALLWIN","SELECT fname FROM t_icitem WHERE fnumber= '"+c8+"'",1,1)),C8是物料代码单元格,我的问题是:手工录入物料代码,在物料名称处可以出来名称,但用查询后赋值给单元格就不行了,物料名称根据公式出不来。下面的代码是赋值给单元格的,我如何修改JS代码可以激活这个单元格呢?
var currentCell = contentPane.curLGP.currentTDCell; //当前选中的单元格   
var val = FR.getCellValue(currentCell); //拿取当前选中的单元格   
var form = window.parent.contentPane; //拿取当前页面的父窗口(即获取参数界面的form)   
form.curLGP.setCellValue(2,7,val);; //给文本控件的格子赋值val   
window.parent.FR.closeDialog(); //确定获取值后,关闭取消父窗口的对话框   
window.parent.FR.destroyDialog();


分享扩散:

沙发
发表于 2012-4-1 10:17:55
二次查询那边选了物料后,已经获得了物料代码和物料名称了,所以二次查询查询的话何不直接两个格子都通过赋值的方式进行?
手写的话还是用那个sql公式进行联动
板凳
发表于 2012-4-1 12:45:16
首先获取物料代码和名称:
var curLGP = contentPane.curLGP;
var currentCell = curLGP .currentTDCell; //当前选中的单元格
var nextCell = currentCell.nextSibling; //当前单元格旁的格子
var currentVal = FR.getCellValue(currentCell); //根据单元格拿值
var nextVal = FR.getCellValue(nextCell);
然后给父报表单元格赋值
var form = window.parent.contentPane; //拿取当前页面的父窗口
form.curLGP.setCellValue(2,7,currentVal); //给物料代码单元格赋值
form.curLGP.setCellValue(3,7,nextVal); //给物料名称单元格赋值
地板
发表于 2012-4-1 13:26:39
需要与物料代码联动的共有5项。
5楼
发表于 2012-4-1 13:57:32
根据列号获取值
var curLGP = contentPane.curLGP;
var currentCell = curLGP .currentTDCell; //当前选中的单元格
var row = currentCell; //获取当前行号
var id = curLGP.getCellValue(0,row); 获取第1列第row行
var name = curLGP.getCellValue(1,row); 获取第2列第row行
不过有5项要联动啊,那还是想办法用联动公式好一点
6楼
发表于 2012-4-2 09:13:05
楼主淡定吧,你难道才知道?
7楼
发表于 2012-4-2 09:36:29
通达查文档,终于搞定,要想获取行数,需要在加载结束增加监听事件:
var curLGP = contentPane.curLGP;  //获取当前填报界面

var rownum = $("td.test").parent().attr("tridx")-1 ;  //给rownum赋值

curLGP.setCellValue("D1",rownum);  //给单元格F2置数,改变其实际值,但不显示

curLGP.displayTDCell($("#D1-0"),rownum);  //表示显示出Cell单元格的实际值rownum

//下面的事件contentPane.on是监听事件,即当单元格被选中时触发该事件,rowvalue为参数,在下面获取行号的时候使用

contentPane.on("cellselect", function(rowvalue) {

  rownum = $(rowvalue).parent().attr("tridx")-1 ;

  curLGP.setCellValue("D1",rownum);

  curLGP.displayTDCell($("#D1-0"),rownum);

});
8楼
发表于 2012-4-2 09:57:15
:L
这个不是监听事件,这个叫判断取值事件。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7回帖数 1关注人数 5368浏览人数
最后回复于:2012-4-2 09:57

返回顶部 返回列表