/** * @author herong 05q多记录组件 */ var CFWSGlt = _FW.fCreateClass(); /** * 05q多记录组件API */ CFWSGlt.prototype = { // 原先没有这个, 不添加就报错 STX fInitialize : function(options) { }, /** * 功能描述: 获取中文名称 (fnGet05qText)。 功能详细说明: type=05q控件是从多行数据集中筛选合适的一行数据,显示在界面上, * 因此当保存再跳转回当前页面的时候,页面不会显示数据,因为保存数据时只保存了代码值, * 没有保存代码值所对应的显示文本,因此界面初始化时通过fnGet05qText(oBjc,newText), 这个函数获取控件中文值。 * * @param oBjc * 必须, 对象名称,类型为object, 如:aform.XB * @returns 返回当前jquery集合 * *
* 使用方法举例:
* 打印读取出来的数据
* alert("读取出来的数据: " + CFW.oSGlt.fnGet05qText(sGltFormDeom.HDFQR));
*
*/
fnGet05qText : function(oBjc) {
if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnGet05qText 对象名称")) {
return;
}
return $(oBjc).map(function() {
return $.data($(oBjc).get(0), 'searchgrid').input.val();
}).get(0);
},
/**
* 功能描述: 设置中文名称 (fnSet05qText)。 功能详细说明: type=05q控件是从多行数据集中筛选合适的一行数据,显示在界面上,
* 因此当保存再跳转回当前页面的时候,页面不会显示数据,因为保存数据时只保存了代码值,
* 没有保存代码值所对应的显示文本,因此界面初始化时通过fnSet05qText(oBjc,newText), 这个函数给控件赋值。
*
* @param oBjc
* 对象名称,类型为object, 如:aform.XB
* @param sNewText
* 新值
* @returns 返回当前jquery集合
*
*
* 使用方法举例:
* 设置显示值为 textNewWal
* var newText="textNewWal"
* CFW.oSGlt.fnSet05qText(sGltFormDeom.HDFQR,newText);
* alert("设置成功,显示值: "+newText);
*
*/
fnSet05qText : function(oBjc, sNewText) {
if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSet05qText 对象名称")) {
return;
}
if (CFW.oValid.fnIsNull(sNewText, "CFW.oSGlt.fnSet05qText 显示值")) {
return;
}
return $(oBjc).each(function() {
$.data(oBjc, 'searchgrid').input.val(sNewText);
$.data(oBjc, 'searchgrid').input.attr("tx", sNewText);
$.data(oBjc, 'searchgrid').input.attr("vl", this.value);
});
},
/**
* 功能描述: 设置显示域 (fnSetTextField)。 功能详细说明:设置控件的显示值对应的字段,在05q控件中的显示值对应的字段,
* 若不设置,默认sql配置中的第二列为显示字段。此API应在页面初始化时调用设置才有效。
*
* @param oBjc
* 对象名称,类型为object, 如:aform.XB
* @param sNewTextField
* 字段名 String
* @returns boolean,true或者false
*
*
* 使用方法举例:
* 使用方法:
* 设置显示 loginid 或者 opername 并打印出显示值
* 1 显示loginid
* var val='loginid';
* 2 显示opername
* var val='opername';
* CFW.oSGlt.setTextField(sGltFormDeom.HDFQR, val);
*
*/
fnSetTextField : function(oBjc, sNewTextField) {
if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSetTextField 对象名称")) {
return;
}
if (CFW.oValid.fnIsNull(sNewTextField, "CFW.oSGlt.fnSetTextField 字段名")) {
return;
}
// 系统只认大写, 需要转换
var newTextField = sNewTextField.toUpperCase();
return $(oBjc).each(function() {
if (this.length == 0) {
return null;
}
if (newTextField.length == 0) {
return null;
}
var opts = $.data(this, 'searchgrid').options;
opts.textField = newTextField;
});
},
/**
* 功能描述:设置控件是否只读 (fnSet05qReadOnly)。 功能详细说明:当05q控件需要获取或者设置成为只读属性时,则可采用此方法
*
* @param oBjc
* 对象名称,类型为object, 如:aform.XB
* @param sFlag
* boolean,设置此参数时,表示设置05q控件的只读属性, 否则表示获取05q控件的只读属性
* @returns jQuery,jquery集合
*
*
* 使用方法举例:
* 1 只读
* var flag=true;
* 2 取消只读
* var flag=false;
*
* CFW.oSGlt.fnSet05qReadOnly(sGltFormDeom.HDFQR,flag);
* alert("设置为'"+(flag? "只读":"可读")+"'成功");
*
*/
fnSet05qReadOnly : function(oBjc, flag) {
if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSet05qReadOnly 对象名称")) {
return;
}
if (CFW.oValid.fnIsNull(flag, "CFW.oSGlt.fnSet05qReadOnly 只读属性")) {
return;
}
return $(oBjc).each(function() {
if (flag) {
// 设置为只读
var opts = $.data(this, 'searchgrid').options;
var input = $.data(this, 'searchgrid').input;
opts.disabled = true;
$(this).removeAttr('disabled');
CFW.oGt._disablePrimitiveInput(input[0]);
} else {
// 设置为非只读
var opts = $.data(this, 'searchgrid').options;
if (opts.disabled) {
var input = $.data(this, 'searchgrid').input;
CFW.oGt._enablePrimitiveInput(input[0]);
opts.disabled = false;
}
}
});
},
/**
* 功能描述: 获取控件是否只读 (fnGet05qReadOnly)。 功能详细说明:当05Qq控件需要获取或者设置成为只读属性时,则可采用此方法
*
* @param oBjc
* 对象名称,类型为object, 如:aform.XB 否则表示获取05q控件的只读属性
* @returns boolean
*
*
* 使用方法举例:
* 获取sGltFormDeom.HDFQR的只读属性
* alert("获取只读属性为: "+CFW.oSGlt.fnGet05qReadOnly(sGltFormDeom.HDFQR));
*
*/
fnGet05qReadOnly : function(oBjc) {
if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnGet05qReadOnly 对象名称")) {
return;
}
var opts = $.data($(oBjc).get(0), 'searchgrid').options;
var rst = opts.disabled;
// 经观察. 如果为可编辑的最初状态, 返回的不是 false. 而是undefined;
return rst ? true : false;
},
/**
* 功能描述: 设置05q查询条件(setWhereCls)。
* 功能详细说明:设置控件查询后台的where语句,05q想查询出所有的结果,设置where语句1=1即可。
* 想用05q想查询出与输入有关的结果,用?代表输入的信息,设置where语句即可。
*
* @param oBjc(必需)
* 对象名称,类型为object, 如:aform.XB
* @param sWhereCls(必需)
* 05q控件查询后台的where语句,类型:Stirng。
* @returns boolean, true或者false
*
*
* 使用方法举例:
* 测试1 var whereSql='1=1';
* 测试2 var whereSql=" opername like '%?%' or loginid like '%?%'";
*
* CFW.oSGlt.fnSetWhereCls(sGltFormDeom.HDFQR, whereSql); *
*/
fnSetWhereCls : function(oBjc, whereCls) {
if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSetWhereCls 对象名称")) {
return false;
}
if (CFW.oValid.fnIsNull(whereCls, "CFW.oSGlt.fnSetWhereCls 05q控件查询后台的where语句")) {
return false;
}
whereCls = whereCls || "1=2";
$(oBjc).each(function() {
var opts = $.data(this, 'searchgrid').options;
opts.whereCls = whereCls;
});
return true;
}
};