fw.sglt.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. /**
  2. * @author herong 05q多记录组件
  3. */
  4. var CFWSGlt = _FW.fCreateClass();
  5. /**
  6. * 05q多记录组件API
  7. */
  8. CFWSGlt.prototype = {
  9. // 原先没有这个, 不添加就报错 STX
  10. fInitialize : function(options) {
  11. },
  12. /**
  13. * 功能描述: 获取中文名称 (fnGet05qText)。 功能详细说明: type=05q控件是从多行数据集中筛选合适的一行数据,显示在界面上,
  14. * 因此当保存再跳转回当前页面的时候,页面不会显示数据,因为保存数据时只保存了代码值,
  15. * 没有保存代码值所对应的显示文本,因此界面初始化时通过fnGet05qText(oBjc,newText), 这个函数获取控件中文值。
  16. *
  17. * @param oBjc
  18. * 必须, 对象名称,类型为object, 如:aform.XB
  19. * @returns 返回当前jquery集合
  20. *
  21. * <pre>
  22. * 使用方法举例:
  23. * 打印读取出来的数据
  24. * alert("读取出来的数据: " + CFW.oSGlt.fnGet05qText(sGltFormDeom.HDFQR));
  25. * </pre>
  26. */
  27. fnGet05qText : function(oBjc) {
  28. if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnGet05qText 对象名称")) {
  29. return;
  30. }
  31. return $(oBjc).map(function() {
  32. return $.data($(oBjc).get(0), 'searchgrid').input.val();
  33. }).get(0);
  34. },
  35. /**
  36. * 功能描述: 设置中文名称 (fnSet05qText)。 功能详细说明: type=05q控件是从多行数据集中筛选合适的一行数据,显示在界面上,
  37. * 因此当保存再跳转回当前页面的时候,页面不会显示数据,因为保存数据时只保存了代码值,
  38. * 没有保存代码值所对应的显示文本,因此界面初始化时通过fnSet05qText(oBjc,newText), 这个函数给控件赋值。
  39. *
  40. * @param oBjc
  41. * 对象名称,类型为object, 如:aform.XB
  42. * @param sNewText
  43. * 新值
  44. * @returns 返回当前jquery集合
  45. *
  46. * <pre>
  47. * 使用方法举例:
  48. * 设置显示值为 textNewWal
  49. * var newText="textNewWal"
  50. * CFW.oSGlt.fnSet05qText(sGltFormDeom.HDFQR,newText);
  51. * alert("设置成功,显示值: "+newText);
  52. * </pre>
  53. */
  54. fnSet05qText : function(oBjc, sNewText) {
  55. if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSet05qText 对象名称")) {
  56. return;
  57. }
  58. if (CFW.oValid.fnIsNull(sNewText, "CFW.oSGlt.fnSet05qText 显示值")) {
  59. return;
  60. }
  61. return $(oBjc).each(function() {
  62. $.data(oBjc, 'searchgrid').input.val(sNewText);
  63. $.data(oBjc, 'searchgrid').input.attr("tx", sNewText);
  64. $.data(oBjc, 'searchgrid').input.attr("vl", this.value);
  65. });
  66. },
  67. /**
  68. * 功能描述: 设置显示域 (fnSetTextField)。 功能详细说明:设置控件的显示值对应的字段,在05q控件中的显示值对应的字段,
  69. * 若不设置,默认sql配置中的第二列为显示字段。此API应在页面初始化时调用设置才有效。
  70. *
  71. * @param oBjc
  72. * 对象名称,类型为object, 如:aform.XB
  73. * @param sNewTextField
  74. * 字段名 String
  75. * @returns boolean,true或者false
  76. *
  77. * <pre>
  78. * 使用方法举例:
  79. * 使用方法:
  80. * 设置显示 loginid 或者 opername 并打印出显示值
  81. * 1 显示loginid
  82. * var val='loginid';
  83. * 2 显示opername
  84. * var val='opername';
  85. * CFW.oSGlt.setTextField(sGltFormDeom.HDFQR, val);
  86. * </pre>
  87. */
  88. fnSetTextField : function(oBjc, sNewTextField) {
  89. if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSetTextField 对象名称")) {
  90. return;
  91. }
  92. if (CFW.oValid.fnIsNull(sNewTextField, "CFW.oSGlt.fnSetTextField 字段名")) {
  93. return;
  94. }
  95. // 系统只认大写, 需要转换
  96. var newTextField = sNewTextField.toUpperCase();
  97. return $(oBjc).each(function() {
  98. if (this.length == 0) {
  99. return null;
  100. }
  101. if (newTextField.length == 0) {
  102. return null;
  103. }
  104. var opts = $.data(this, 'searchgrid').options;
  105. opts.textField = newTextField;
  106. });
  107. },
  108. /**
  109. * 功能描述:设置控件是否只读 (fnSet05qReadOnly)。 功能详细说明:当05q控件需要获取或者设置成为只读属性时,则可采用此方法
  110. *
  111. * @param oBjc
  112. * 对象名称,类型为object, 如:aform.XB
  113. * @param sFlag
  114. * boolean,设置此参数时,表示设置05q控件的只读属性, 否则表示获取05q控件的只读属性
  115. * @returns jQuery,jquery集合
  116. *
  117. * <pre>
  118. * 使用方法举例:
  119. * 1 只读
  120. * var flag=true;
  121. * 2 取消只读
  122. * var flag=false;
  123. *
  124. * CFW.oSGlt.fnSet05qReadOnly(sGltFormDeom.HDFQR,flag);
  125. * alert("设置为'"+(flag? "只读":"可读")+"'成功");
  126. * </pre>
  127. */
  128. fnSet05qReadOnly : function(oBjc, flag) {
  129. if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSet05qReadOnly 对象名称")) {
  130. return;
  131. }
  132. if (CFW.oValid.fnIsNull(flag, "CFW.oSGlt.fnSet05qReadOnly 只读属性")) {
  133. return;
  134. }
  135. return $(oBjc).each(function() {
  136. if (flag) {
  137. // 设置为只读
  138. var opts = $.data(this, 'searchgrid').options;
  139. var input = $.data(this, 'searchgrid').input;
  140. opts.disabled = true;
  141. $(this).removeAttr('disabled');
  142. CFW.oGt._disablePrimitiveInput(input[0]);
  143. } else {
  144. // 设置为非只读
  145. var opts = $.data(this, 'searchgrid').options;
  146. if (opts.disabled) {
  147. var input = $.data(this, 'searchgrid').input;
  148. CFW.oGt._enablePrimitiveInput(input[0]);
  149. opts.disabled = false;
  150. }
  151. }
  152. });
  153. },
  154. /**
  155. * 功能描述: 获取控件是否只读 (fnGet05qReadOnly)。 功能详细说明:当05Qq控件需要获取或者设置成为只读属性时,则可采用此方法
  156. *
  157. * @param oBjc
  158. * 对象名称,类型为object, 如:aform.XB 否则表示获取05q控件的只读属性
  159. * @returns boolean
  160. *
  161. * <pre>
  162. * 使用方法举例:
  163. * 获取sGltFormDeom.HDFQR的只读属性
  164. * alert("获取只读属性为: "+CFW.oSGlt.fnGet05qReadOnly(sGltFormDeom.HDFQR));
  165. * </pre>
  166. */
  167. fnGet05qReadOnly : function(oBjc) {
  168. if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnGet05qReadOnly 对象名称")) {
  169. return;
  170. }
  171. var opts = $.data($(oBjc).get(0), 'searchgrid').options;
  172. var rst = opts.disabled;
  173. // 经观察. 如果为可编辑的最初状态, 返回的不是 false. 而是undefined;
  174. return rst ? true : false;
  175. },
  176. /**
  177. * 功能描述: 设置05q查询条件(setWhereCls)。
  178. * 功能详细说明:设置控件查询后台的where语句,05q想查询出所有的结果,设置where语句1=1即可。
  179. * 想用05q想查询出与输入有关的结果,用?代表输入的信息,设置where语句即可。
  180. *
  181. * @param oBjc(必需)
  182. * 对象名称,类型为object, 如:aform.XB
  183. * @param sWhereCls(必需)
  184. * 05q控件查询后台的where语句,类型:Stirng。
  185. * @returns boolean, true或者false
  186. *
  187. * <pre>
  188. * 使用方法举例:
  189. * 测试1 var whereSql='1=1';
  190. * 测试2 var whereSql=" opername like '%?%' or loginid like '%?%'";
  191. *
  192. * CFW.oSGlt.fnSetWhereCls(sGltFormDeom.HDFQR, whereSql); * </pre>
  193. */
  194. fnSetWhereCls : function(oBjc, whereCls) {
  195. if (CFW.oValid.fnIsNull(oBjc, "CFW.oSGlt.fnSetWhereCls 对象名称")) {
  196. return false;
  197. }
  198. if (CFW.oValid.fnIsNull(whereCls, "CFW.oSGlt.fnSetWhereCls 05q控件查询后台的where语句")) {
  199. return false;
  200. }
  201. whereCls = whereCls || "1=2";
  202. $(oBjc).each(function() {
  203. var opts = $.data(this, 'searchgrid').options;
  204. opts.whereCls = whereCls;
  205. });
  206. return true;
  207. }
  208. };