fineReport不能自动查询,不能编辑问题


var location = this.options.location;  //获取当前控件的位置  
var cr = FR.cellStr2ColumnRow(location);  
var col = cr.col;  //列号  
var ro = cr.row;  //行号  
var A3 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col-2, row: ro}));
var B3 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col-1, row: ro}));
var sql="select g.form from T_Group_Maintenance g where g.suppler_code= '" + A3.getValue() + "'  and g.brand_code= '" + B3.getValue() + "'  and  g.state='启用'"

var res=FR.remoteEvaluate('=SQL("finereport","'+sql+'",1,1)');
if(res == "否"){
        this.setEnable(false);
        this.setVisible(true);
}
这个事件是根据 供应商和品牌 查出 是否可以修改  当值为是的时候 可以编辑品牌单价 当值为否的时候不可以编辑 品牌单价

SQL("finereport", "select g.brand_price from T_Group_Maintenance  g WHERE g.SUPPLER_CODE=" + " '" + A3 + "' AND g.BRAND_CODE=" + " '" + B3 + "'", 1, 1)
这条sql 是根据供应商和品牌查询出 对应的品牌单价

如上图所示 按道理 我第二次 加供应商 品牌的时候 应该会执行 上面的sql 查询出数据库里 已有的品牌单价的值,可是 他没查询没刷新 就直接 进入了那个事件 判断 是否可以修改  然后 不可编辑了  我要得 是  先查询出 对应的品牌单价 再那个框展示好 然后 在判断 是否可以 编辑
麻烦大家 看看

编辑于 2018-5-14 18:00  
FineReport卢茜 发布于 2018-5-14 17:55
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共16回答
最佳回答
0
yi丶搁浅发布于2018-5-14 17:55(编辑于 2023-9-6 09:34)
555
  • 卢茜 卢茜(提问者) 这样写可以 但是要点击两下框
    回复
    2018-05-15 14:30 
  • yi丶搁浅 yi丶搁浅 回复 卢茜 :为啥要点两下。点一下进不来事件里?
    回复
    2018-05-15 14:34 
  • 卢茜 卢茜(提问者) 回复 yi丶搁浅 :没问题 点一下就好了
    回复
    2018-05-15 15:15 
最佳回答
0
zy_20180110发布于2018-5-14 18:07(编辑于 2023-9-6 09:34)
555
最佳回答
0
卢茜发布于2018-5-14 18:10(编辑于 2023-9-6 09:34)
555
最佳回答
0
macro_hard发布于2018-5-14 20:53(编辑于 2023-9-6 09:34)
555
最佳回答
0
yi丶搁浅发布于2018-5-15 08:33(编辑于 2023-9-6 09:34)
555
  • 卢茜 卢茜(提问者) 试了用debugger 没错 他是先进事件 然后 直接不可编辑了  还没执行 品牌单价的那条sql  然后页面上 品牌单价是空的就不能编辑了
    回复
    2018-05-15 08:47 
  • yi丶搁浅 yi丶搁浅 回复 卢茜 :那就直接js里面查询那个单价,然后赋值
    回复
    2018-05-15 09:02 
  • 卢茜 卢茜(提问者) 回复 yi丶搁浅 :ar location = this.options.location;  //获取当前控件的位置  
    var cr = FR.cellStr2ColumnRow(location);  
    var col = cr.col;  //列号  
    var ro = cr.row;  //行号  
    var A3 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col-2, row: ro}));
    var B3 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col-1, row: ro}));
    var sql=\"select g.form from T_Group_Maintenance g where g.suppler_code= \'\" + A3.getValue() + \"\'  and g.brand_code= \'\" + B3.getValue() + \"\'  \"

    var res=FR.remoteEvaluate(\'=SQL(\"finereport\",\"\'+sql+\'\",1,1)\');


    是加个初始化后的事件 吗 怎么赋值
    回复
    2018-05-15 11:04 
最佳回答
0
yi丶搁浅发布于2018-5-15 11:12(编辑于 2023-9-6 09:34)
555
  • 卢茜 卢茜(提问者) ar location = this.options.location;  //获取当前控件的位置  
    var cr = FR.cellStr2ColumnRow(location);  
    var col = cr.col;  //列号  
    var ro = cr.row;  //行号  
    var A3 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col-2, row: ro}));
    var B3 = contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col-1, row: ro}));
    var sql=\"select g.form from T_Group_Maintenance g where g.suppler_code= \'\" + A3.getValue() + \"\'  and g.brand_code= \'\" + B3.getValue() + \"\'  \"

    var res=FR.remoteEvaluate(\'=SQL(\"finereport\",\"\'+sql+\'\",1,1)\');
    contentPane.setCellValue(cell,null,res)
    if(res == \"否\"){
            this.setEnable(false);
            this.setVisible(true);
    }
    回复
    2018-05-15 11:21 
  • 卢茜 卢茜(提问者) 这样写对吗
    回复
    2018-05-15 11:21 
  • yi丶搁浅 yi丶搁浅 回复 卢茜 :contentPane.setCellValue(cell,null,res)其中cell是单元格,如果列表不是扩展的可以用比如单元格A3。如果是扩展的用contentPane.setCellValue(col,row,value),col是所在列,row是所在行,value是要赋的值。可以根据当前单元格加减col实现给别的列赋值
    回复
    2018-05-15 11:24 
  • 卢茜 卢茜(提问者) 回复 yi丶搁浅 :contentPane.setCellValue(col,row,res)这样写 报错
    回复
    2018-05-15 11:42 
  • 0关注人数
  • 723浏览人数
  • 最后回答于:2018-5-15 15:15
    活动推荐 更多
    热门课程 更多
    返回顶部