我简化一下:通过卡号在数据库中 能 查询到卡类是900的就需要填写L;反之其他情况不管。对不?
---------------------
//卡号控件的编辑后事件
var a = this.getValue();
var location = this.options.location; //获取当前控件的位置
var cr = FR.cellStr2ColumnRow(location);
var col = cr.col; //列号
var ro = cr.row; //行号
var sql_="SELECT COUNT(*) [C] FROM (SELECT DISTINCT a.cas_name as 姓名,a.cas_ca_cd as 卡号,a.cas_card_cat as 卡类,b.typ_name as 银行 FROM bank_case a JOIN type_list b ON a.cas_typ_bid = b.typ_id WHERE a.cas_ca_cd='"+a+"') T"
var COUNT_=FR.remoteEvaluate('SQL("你的数据连接", "'+sql_+'", 1, 1)');//查总数
var sql_="SELECT TOP 1 '1' [CAT] FROM bank_case a JOIN type_list b ON a.cas_typ_bid = b.typ_id WHERE a.cas_ca_cd='"+a+"' AND a.cas_card_cat='900'"
var CAT_=FR.remoteEvaluate('SQL("你的数据连接", "'+sql_+'", 1, 1)');//查分类
var c= contentPane.getWidgetByCell(FR.columnRow2CellStr({col: col+2, row: ro}));//后面两列控件(假设卡号在J列,+2后就L列)
if(COUNT_>1&&CAT_=="1"){
c.setVisible(true);}//可用
contentPane.setCellValue(0, col + 1, ro, "T"); //假设K列是辅助列且为文本控件(可见不可用).辅助列赋值,以便填报校验使用
}
else {
c.setVisible(false);}//不可用
contentPane.setCellValue(0, col + 1, ro, ""); //假设K列是辅助列且为文本控件(可见不可用).辅助列赋值,以便填报校验使用
}
