w_grade_ch.srw 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. $PBExportHeader$w_grade_ch.srw
  2. forward
  3. global type w_grade_ch from w_publ_edit_choice
  4. end type
  5. type cbx_mlselect from checkbox within w_grade_ch
  6. end type
  7. type cbx_allselect from checkbox within w_grade_ch
  8. end type
  9. end forward
  10. global type w_grade_ch from w_publ_edit_choice
  11. integer width = 3054
  12. integer height = 1880
  13. string title = "客户等级选择"
  14. cbx_mlselect cbx_mlselect
  15. cbx_allselect cbx_allselect
  16. end type
  17. global w_grade_ch w_grade_ch
  18. type variables
  19. int if_mlselect=0
  20. boolean if_select_all=false
  21. boolean if_changeselect=true
  22. s_grade INS_RT_STRU
  23. end variables
  24. forward prototypes
  25. public function integer wf_face_change ()
  26. end prototypes
  27. public function integer wf_face_change (); cbx_mlselect.enabled = not dw_edit_mode
  28. cbx_allselect.enabled = not dw_edit_mode
  29. IF dw_edit_mode THEN
  30. cb_func.Enabled = FALSE
  31. cb_choice.Enabled = FALSE
  32. cb_delet.Enabled = FALSE
  33. cb_rtr.Enabled = FALSE
  34. cb_edit.Text = "放弃&E"
  35. cb_add.Text = "保存&S"
  36. cb_edit.normalpicname = 'Undo.bmp'
  37. cb_add.normalpicname = 'Save.bmp'
  38. ELSE
  39. cb_func.Enabled = TRUE
  40. cb_delet.Enabled = TRUE
  41. cb_choice.Enabled = TRUE
  42. cb_rtr.Enabled = TRUE
  43. cb_edit.Text = "修改&E"
  44. cb_add.Text = "新建&S"
  45. cb_edit.normalpicname = 'OPEN.bmp'
  46. cb_add.normalpicname = 'new.bmp'
  47. END IF
  48. cb_edit.of_init_draw()
  49. cb_add.of_init_draw()
  50. cb_edit.of_paint()
  51. cb_add.of_paint()
  52. cb_add.TriggerEvent('ue_textchange')
  53. cb_edit.TriggerEvent('ue_textchange')
  54. RETURN 1
  55. end function
  56. on w_grade_ch.create
  57. int iCurrent
  58. call super::create
  59. this.cbx_mlselect=create cbx_mlselect
  60. this.cbx_allselect=create cbx_allselect
  61. iCurrent=UpperBound(this.Control)
  62. this.Control[iCurrent+1]=this.cbx_mlselect
  63. this.Control[iCurrent+2]=this.cbx_allselect
  64. end on
  65. on w_grade_ch.destroy
  66. call super::destroy
  67. destroy(this.cbx_mlselect)
  68. destroy(this.cbx_allselect)
  69. end on
  70. event close;call super::close;CLOSEWITHRETURN(THIS,INS_RT_STRU)
  71. end event
  72. type cb_func from w_publ_edit_choice`cb_func within w_grade_ch
  73. end type
  74. type cb_exit from w_publ_edit_choice`cb_exit within w_grade_ch
  75. integer x = 603
  76. end type
  77. type cb_add from w_publ_edit_choice`cb_add within w_grade_ch
  78. boolean visible = false
  79. end type
  80. event cb_add::clicked;call super::clicked;IF NOT f_power_ind(1645,sys_msg_pow) THEN
  81. MessageBox(publ_operator,sys_msg_pow)
  82. RETURN
  83. END IF
  84. Long ll_newid,i
  85. String errmsg
  86. IF dw_edit_mode THEN
  87. dw_uc.AcceptText()
  88. IF dw_uc.GetNextModified(0, Primary!) = 0 THEN
  89. MessageBox(publ_operator,'没有任何修改,不可以保存!')
  90. RETURN
  91. END IF
  92. dw_uc.Object.expensesname[dw_uc.GetRow()] = Trim(dw_uc.Object.expensesname[dw_uc.GetRow()])
  93. dw_uc.Object.expensescode[dw_uc.GetRow()] = Trim(dw_uc.Object.expensescode[dw_uc.GetRow()])
  94. IF dw_uc.Object.expensesname[dw_uc.GetRow()] = '' THEN
  95. MessageBox(publ_operator,'请输入项目名称!')
  96. RETURN
  97. END IF
  98. IF dw_uc.Object.expensescode[dw_uc.GetRow()] = '' THEN
  99. MessageBox(publ_operator,'请输入项目名称!')
  100. RETURN
  101. END IF
  102. IF dw_uc.Object.expensesid[dw_uc.GetRow()] = 0 THEN
  103. ll_newid = f_sys_scidentity(0,"U_Expenses","ExpensesID",errmsg,TRUE,id_sqlca)
  104. IF ll_newid <= 0 THEN
  105. MessageBox(publ_operator,errmsg)
  106. RETURN
  107. ELSE
  108. dw_uc.Object.expensesid[dw_uc.GetRow()] = ll_newid
  109. END IF
  110. END IF
  111. END IF
  112. IF dw_edit_mode THEN
  113. String ls_errmsg
  114. IF dw_uc.Update() = -1 THEN
  115. IF Pos(ins_sqlerrtext,"Cannot insert duplicate key row") > 0 THEN
  116. ls_errmsg = "关键内容重复"
  117. ELSE
  118. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext
  119. END IF
  120. ROLLBACK;
  121. MessageBox (publ_operator,ls_errmsg+",保存操作失败!",Exclamation!,OK!)
  122. LS_UPDATE_FLAG = FALSE
  123. RETURN
  124. ELSE
  125. COMMIT;
  126. FOR i = 1 TO 3
  127. dw_uc.SetTabOrder ( i, 0 )
  128. NEXT
  129. LS_UPDATE_FLAG = TRUE
  130. END IF
  131. ins_sqlerrtext = ""
  132. ELSE
  133. Long li_row, li_cur_row
  134. li_cur_row = dw_uc.GetRow()
  135. li_row = dw_uc.InsertRow (0)
  136. FOR i = 1 TO 3
  137. dw_uc.SetTabOrder ( i, i*10 )
  138. NEXT
  139. dw_uc.SelectRow(0,FALSE)
  140. dw_uc.ScrollToRow (li_row)
  141. dw_uc.SelectRow(li_row,TRUE)
  142. dw_uc.SetFocus()
  143. modifyrow_no = li_row
  144. END IF
  145. dw_edit_mode = NOT dw_edit_mode
  146. WF_FACE_CHANGE()
  147. end event
  148. type cb_edit from w_publ_edit_choice`cb_edit within w_grade_ch
  149. boolean visible = false
  150. end type
  151. event cb_edit::clicked;call super::clicked;IF NOT f_power_ind(1645,sys_msg_pow) THEN
  152. MessageBox(publ_operator,sys_msg_pow)
  153. RETURN
  154. END IF
  155. long i
  156. IF dw_edit_mode THEN
  157. if dw_uc.GetItemStatus(dw_UC.getrow(), 0, Primary!)=NewModified! or dw_uc.GetItemStatus(dw_UC.getrow(), 0, Primary!)=New! then
  158. dw_UC.deleterow(dw_UC.getrow())
  159. else
  160. dw_UC.ReselectRow(dw_UC.getrow())
  161. end if
  162. for i=1 to 3
  163. dw_UC.SetTabOrder ( i, 0 )
  164. next
  165. modifyrow_no = 0
  166. ELSE
  167. modifyrow_no = dw_UC.getrow()
  168. for i=1 to 3
  169. dw_UC.SetTabOrder ( i, i*10 )
  170. next
  171. dw_UC.SetFocus()
  172. dw_UC.selectrow(0,false)
  173. dw_UC.ScrollToRow (modifyrow_no)
  174. dw_uc.selectrow(modifyrow_no,true)
  175. END IF
  176. dw_edit_mode= NOT dw_edit_mode
  177. WF_FACE_CHANGE()
  178. end event
  179. type cb_delet from w_publ_edit_choice`cb_delet within w_grade_ch
  180. boolean visible = false
  181. end type
  182. event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(1645,sys_msg_pow) THEN
  183. MessageBox(publ_operator,sys_msg_pow)
  184. RETURN
  185. END IF
  186. IF MessageBox (publ_operator,"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN
  187. RETURN
  188. END IF
  189. Long LS_id
  190. Long LS_LONG = 0
  191. String ls_code,arg_msg
  192. IF DW_UC.GetRow() <= 0 THEN
  193. MessageBox('','没有操作目标记录!')
  194. RETURN
  195. END IF
  196. LS_id = DW_UC.Object.Expensesid[DW_UC.GetRow()]
  197. SELECT count(u_reissuemx.mtrlid) INTO :LS_LONG
  198. FROM u_reissuemx INNER JOIN
  199. u_reissue ON u_reissuemx.reissueid = u_reissue.reissueid AND
  200. u_reissuemx.scid = u_reissue.scid
  201. Where (u_reissue.TYPE = 1) AND u_reissuemx.mtrlid = :LS_id;
  202. IF SQLCA.SQLCode <> 0 THEN
  203. MessageBox (publ_operator,"数据查询操作失败!(请重试!)",Exclamation!,OK!)
  204. RETURN
  205. END IF
  206. IF LS_LONG > 0 THEN
  207. MessageBox (publ_operator,"该资料已经使用于补件单,不可以删除!",Exclamation!,OK!)
  208. RETURN
  209. END IF
  210. DW_UC.SetRedraw (FALSE)
  211. DW_UC.DeleteRow (0)
  212. DW_UC.TriggerEvent (RowFocusChanged!)
  213. IF DW_UC.Update() = -1 THEN
  214. ROLLBACK;
  215. MessageBox (publ_operator,"删除记录操作失败!",Exclamation!,OK!)
  216. ELSE
  217. COMMIT;
  218. END IF
  219. DW_UC.SetRedraw (TRUE)
  220. end event
  221. type cb_choice from w_publ_edit_choice`cb_choice within w_grade_ch
  222. integer x = 302
  223. end type
  224. event cb_choice::clicked;call super::clicked;Long ROW,ls_i,chC = 0
  225. ROW = dw_uc.GetRow()
  226. If ROW <= 0 Then
  227. MessageBox('系统提示','请先选择目标行!',StopSign!)
  228. Return
  229. End If
  230. For ls_i = 1 To dw_uc.RowCount()
  231. If dw_uc.IsSelected(ls_i) Then
  232. chC++
  233. INS_RT_STRU.grade[chC] = dw_uc.Object.grade[ls_i]
  234. End If
  235. Next
  236. If chC = 0 Then
  237. MessageBox('系统提示','请至少选择一个目标行!',StopSign!)
  238. Return
  239. End If
  240. Close(Parent)
  241. end event
  242. type dw_uc from w_publ_edit_choice`dw_uc within w_grade_ch
  243. integer width = 3026
  244. integer height = 1600
  245. string dataobject = "dw_grade_ch"
  246. end type
  247. event dw_uc::clicked;IF row > 0 AND NOT dw_edit_mode THEN
  248. THIS.SetRow(row)
  249. IF if_mlselect = 1 THEN
  250. IF if_changeselect THEN
  251. THIS.SelectRow(row,NOT THIS.IsSelected(row))
  252. ELSE
  253. if_changeselect = TRUE
  254. END IF
  255. ELSE
  256. THIS.SelectRow(0,FALSE)
  257. THIS.SelectRow(row,TRUE)
  258. END IF
  259. END IF
  260. end event
  261. event dw_uc::rowfocuschanged;IF modifyrow_no > 0 AND dw_edit_mode THEN
  262. THIS.SetRow(modifyrow_no)
  263. THIS.ScrollToRow(modifyrow_no)
  264. ELSE
  265. IF if_mlselect = 1 THEN
  266. IF currentrow <= 0 THEN RETURN
  267. IF KeyDown(keycontrol!) THEN
  268. IF THIS.IsSelected(currentrow) THEN
  269. THIS.SelectRow(currentrow,FALSE)
  270. if_changeselect = FALSE
  271. ELSE
  272. if_changeselect = TRUE
  273. END IF
  274. ELSE
  275. IF NOT THIS.IsSelected(currentrow) THEN
  276. THIS.SelectRow(currentrow,TRUE)
  277. if_changeselect = FALSE
  278. ELSE
  279. if_changeselect = TRUE
  280. END IF
  281. END IF
  282. ELSE
  283. IF dw_edit_mode THEN RETURN
  284. IF currentrow <= 0 THEN RETURN
  285. THIS.SelectRow(0,FALSE)
  286. THIS.SelectRow(currentrow,TRUE)
  287. dw_uc.SetRow(currentrow)
  288. dw_uc.ScrollToRow (currentrow)
  289. END IF
  290. END IF
  291. end event
  292. event dw_uc::rbuttondown; if dw_edit_mode then return
  293. call super::rbuttondown
  294. end event
  295. event dw_uc::doubleclicked;call super::doubleclicked;IF NOT dw_edit_mode THEN cb_choice.TriggerEvent( Clicked!)
  296. end event
  297. type cb_rtr from w_publ_edit_choice`cb_rtr within w_grade_ch
  298. end type
  299. type cb_help from w_publ_edit_choice`cb_help within w_grade_ch
  300. integer x = 453
  301. end type
  302. type ln_bar from w_publ_edit_choice`ln_bar within w_grade_ch
  303. end type
  304. type ln_bar2 from w_publ_edit_choice`ln_bar2 within w_grade_ch
  305. end type
  306. type r_bar from w_publ_edit_choice`r_bar within w_grade_ch
  307. integer x = 827
  308. end type
  309. type cbx_mlselect from checkbox within w_grade_ch
  310. integer x = 878
  311. integer y = 96
  312. integer width = 215
  313. integer height = 60
  314. boolean bringtotop = true
  315. integer textsize = -9
  316. integer weight = 400
  317. fontcharset fontcharset = gb2312charset!
  318. fontpitch fontpitch = variable!
  319. string facename = "宋体"
  320. long textcolor = 16711680
  321. long backcolor = 134217739
  322. string text = "多选"
  323. end type
  324. event clicked;If This.Checked Then
  325. if_mlselect = 1
  326. cbx_allselect.Enabled = True
  327. Else
  328. if_mlselect = 0
  329. cbx_allselect.Enabled = False
  330. cbx_allselect.Checked = False
  331. cbx_allselect.TriggerEvent(Clicked!)
  332. End If
  333. f_SetProfileString (sys_empid,dw_uc.DataObject, "if_mlselect", String(if_mlselect))
  334. end event
  335. event constructor;This.BackColor = 14215660
  336. if_mlselect = Long(f_ProfileString(sys_empid,dw_uc.DataObject, "if_mlselect",'0'))
  337. If if_mlselect = 0 Then
  338. cbx_mlselect.Checked = False
  339. cbx_allselect.Enabled = false
  340. Else
  341. cbx_mlselect.Checked = True
  342. cbx_allselect.Enabled = True
  343. End If
  344. end event
  345. type cbx_allselect from checkbox within w_grade_ch
  346. integer x = 1115
  347. integer y = 96
  348. integer width = 229
  349. integer height = 60
  350. boolean bringtotop = true
  351. integer textsize = -9
  352. integer weight = 400
  353. fontcharset fontcharset = gb2312charset!
  354. fontpitch fontpitch = variable!
  355. string facename = "宋体"
  356. long textcolor = 16711680
  357. long backcolor = 134217739
  358. boolean enabled = false
  359. string text = "全选"
  360. end type
  361. event clicked;if dw_uc.rowcount()<=0 then return
  362. long li
  363. if this.checked then
  364. for li =1 to dw_uc.rowcount()
  365. dw_uc.selectrow(li,true)
  366. next
  367. else
  368. for li =1 to dw_uc.rowcount()
  369. dw_uc.selectrow(li,false)
  370. next
  371. end if
  372. end event
  373. event constructor;this.backcolor = 14215660
  374. end event