w_scdef_edit.srw 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. $PBExportHeader$w_scdef_edit.srw
  2. forward
  3. global type w_scdef_edit from w_publ_edit_choice
  4. end type
  5. type cb_view from uo_imflatbutton within w_scdef_edit
  6. end type
  7. end forward
  8. global type w_scdef_edit from w_publ_edit_choice
  9. integer width = 1550
  10. integer height = 1308
  11. string title = "分部"
  12. boolean minbox = true
  13. windowtype windowtype = popup!
  14. cb_view cb_view
  15. end type
  16. global w_scdef_edit w_scdef_edit
  17. type variables
  18. uo_usergroup uo_user
  19. end variables
  20. on w_scdef_edit.create
  21. int iCurrent
  22. call super::create
  23. this.cb_view=create cb_view
  24. iCurrent=UpperBound(this.Control)
  25. this.Control[iCurrent+1]=this.cb_view
  26. end on
  27. on w_scdef_edit.destroy
  28. call super::destroy
  29. destroy(this.cb_view)
  30. end on
  31. event close;call super::close;destroy uo_user
  32. end event
  33. event open;call super::open;uo_user=create uo_usergroup
  34. end event
  35. type cb_func from w_publ_edit_choice`cb_func within w_scdef_edit
  36. end type
  37. type cb_exit from w_publ_edit_choice`cb_exit within w_scdef_edit
  38. end type
  39. type cb_add from w_publ_edit_choice`cb_add within w_scdef_edit
  40. end type
  41. event cb_add::clicked;String arg_msg = ''
  42. Long ll_newid,i
  43. String ls_sccode,ls_ffpsw
  44. Boolean if_newarea = FALSE
  45. IF dw_edit_mode THEN
  46. dw_uc.AcceptText()
  47. IF dw_uc.GetNextModified(0, Primary!) = 0 THEN
  48. MessageBox('提示','没有任何修改,不可以保存!', Information!, OK! )
  49. RETURN
  50. END IF
  51. dw_uc.Object.sccode[dw_uc.GetRow()] = Trim(dw_uc.Object.sccode[dw_uc.GetRow()])
  52. ls_sccode = dw_uc.Object.sccode[dw_uc.GetRow()]
  53. IF dw_uc.Object.scid[dw_uc.GetRow()] > 0 THEN
  54. IF dw_uc.Object.sccode[dw_uc.GetRow()] = '' THEN
  55. MessageBox('提示','请输分部代号!', Information!, OK! )
  56. RETURN
  57. END IF
  58. IF Len(ls_sccode) > 2 THEN
  59. MessageBox('',String(Len(ls_sccode)))
  60. MessageBox('提示','代号不能超过两位!', Information!, OK! )
  61. RETURN
  62. END IF
  63. END IF
  64. IF dw_uc.Object.scid[dw_uc.GetRow()] = -1 THEN
  65. //参数0表示取得目标本身的ID
  66. ll_newid = f_sys_scidentity(0,"u_scdef","scid",arg_msg,FALSE,sqlca)
  67. IF ll_newid < 0 THEN
  68. MessageBox('提示',arg_msg, Information!, OK! )
  69. RETURN
  70. ELSE
  71. dw_uc.Object.scid[dw_uc.GetRow()] = ll_newid
  72. if_newarea = TRUE
  73. END IF
  74. END IF
  75. ls_ffpsw = Trim(dw_uc.Object.ffpsw[dw_uc.GetRow()])
  76. dw_uc.Object.mffpsw[dw_uc.GetRow()] = f_psw_bczh(ls_sccode + ls_ffpsw,0,sys_power_key) //加密
  77. END IF
  78. IF dw_edit_mode THEN
  79. String ls_errmsg
  80. IF dw_uc.UPDATE() = -1 THEN
  81. IF Pos(ins_sqlerrtext,"Cannot insert duplicate key row") > 0 THEN
  82. ls_errmsg = "关键内容重复"
  83. ELSE
  84. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext
  85. END IF
  86. ROLLBACK;
  87. MessageBox ('提示',ls_errmsg+",保存操作失败!", Information!, OK! )
  88. LS_UPDATE_FLAG = FALSE
  89. RETURN
  90. ELSE
  91. // IF if_newarea THEN
  92. // IF uo_user.saveuser(FALSE,ll_newid,0,'super','超级用户','','','-1',arg_msg,FALSE) = 0 THEN
  93. // MessageBox('系统提示','分部建立超级用户失败>>'+arg_msg)
  94. // ROLLBACK;
  95. // RETURN
  96. // END IF
  97. // END IF
  98. // COMMIT;
  99. FOR i = 1 TO 4
  100. dw_uc.SetTabOrder ( i, 0 )
  101. NEXT
  102. LS_UPDATE_FLAG = TRUE
  103. END IF
  104. ins_sqlerrtext = ""
  105. ELSE
  106. Long li_row, li_cur_row
  107. li_cur_row = dw_uc.GetRow()
  108. li_row = dw_uc.InsertRow (0)
  109. FOR i = 1 TO 4
  110. dw_uc.SetTabOrder ( i, i*10 )
  111. NEXT
  112. dw_uc.SelectRow(0,FALSE)
  113. dw_uc.ScrollToRow (li_row)
  114. dw_uc.SelectRow(li_row,TRUE)
  115. dw_uc.SetFocus()
  116. modifyrow_no = li_row
  117. END IF
  118. dw_edit_mode = NOT dw_edit_mode
  119. WF_FACE_CHANGE()
  120. end event
  121. type cb_edit from w_publ_edit_choice`cb_edit within w_scdef_edit
  122. end type
  123. event cb_edit::clicked;String arg_msg = ''
  124. Long i
  125. IF dw_edit_mode THEN
  126. IF dw_uc.GetItemStatus(dw_uc.GetRow(), 0, Primary!) = NewModified! OR dw_uc.GetItemStatus(dw_uc.GetRow(), 0, Primary!) = New! THEN
  127. dw_uc.DeleteRow(dw_uc.GetRow())
  128. ELSE
  129. dw_uc.ReselectRow(dw_uc.GetRow())
  130. END IF
  131. FOR i = 1 TO 4
  132. dw_uc.SetTabOrder ( i, 0 )
  133. NEXT
  134. modifyrow_no = 0
  135. ELSE
  136. modifyrow_no = dw_uc.GetRow()
  137. IF modifyrow_no > 0 THEN
  138. IF dw_uc.Object.scid[modifyrow_no] = 0 THEN
  139. FOR i = 4 TO 4
  140. dw_uc.SetTabOrder ( i, i*10)
  141. NEXT
  142. ELSE
  143. FOR i = 1 TO 4
  144. dw_uc.SetTabOrder ( i, i*10)
  145. NEXT
  146. END IF
  147. ELSE
  148. MessageBox('提示','没有可修改的资料!', Information!, OK! )
  149. RETURN
  150. END IF
  151. dw_uc.SetFocus()
  152. dw_uc.SelectRow(0,FALSE)
  153. dw_uc.ScrollToRow (modifyrow_no)
  154. dw_uc.SelectRow(modifyrow_no,TRUE)
  155. END IF
  156. dw_edit_mode = NOT dw_edit_mode
  157. WF_FACE_CHANGE()
  158. end event
  159. type cb_delet from w_publ_edit_choice`cb_delet within w_scdef_edit
  160. end type
  161. event cb_delet::clicked;call super::clicked;String arg_msg = ''
  162. IF MessageBox ('询问',"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN
  163. RETURN
  164. END IF
  165. Long LS_id
  166. Long LS_LONG = 0
  167. String ls_code
  168. IF DW_UC.GetRow() <= 0 THEN
  169. MessageBox('提示','没有操作目标记录!', Information!, OK! )
  170. RETURN
  171. END IF
  172. LS_id = DW_UC.Object.scid[DW_UC.GetRow()]
  173. IF DW_UC.Object.scid[DW_UC.GetRow()] = 0 THEN
  174. MessageBox('提示','总部记录不可以删除!', Information!, OK! )
  175. RETURN
  176. END IF
  177. SELECT COUNT(*) INTO :LS_LONG FROM u_bsnno
  178. Where u_bsnno.scid = :LS_id;
  179. IF SQLCA.SQLCode = -1 THEN
  180. MessageBox ('提示',"数据查询操作失败!(请重试!)", Information!, OK! )
  181. RETURN
  182. END IF
  183. IF LS_LONG > 0 THEN
  184. MessageBox ('提示',"该分部代号已经使用于业务编号表中,不可以删除!", Information!, OK! )
  185. RETURN
  186. END IF
  187. IF uo_user.deluser(TRUE,LS_id,0,arg_msg,FALSE) = 0 THEN
  188. MessageBox('提示','删除失败>>'+arg_msg, Information!, OK! )
  189. RETURN
  190. END IF
  191. DW_UC.SetRedraw (FALSE)
  192. DW_UC.DeleteRow (0)
  193. DW_UC.TriggerEvent (RowFocusChanged!)
  194. IF DW_UC.Update() = -1 THEN
  195. ROLLBACK;
  196. MessageBox ('提示',"删除记录操作失败!", Information!, OK! )
  197. ELSE
  198. COMMIT;
  199. END IF
  200. DW_UC.SetRedraw (TRUE)
  201. end event
  202. type cb_choice from w_publ_edit_choice`cb_choice within w_scdef_edit
  203. boolean visible = false
  204. integer x = 1394
  205. boolean enabled = false
  206. end type
  207. type dw_uc from w_publ_edit_choice`dw_uc within w_scdef_edit
  208. integer width = 1522
  209. integer height = 1036
  210. string dataobject = "dw_scdef"
  211. end type
  212. type cb_rtr from w_publ_edit_choice`cb_rtr within w_scdef_edit
  213. end type
  214. type cb_help from w_publ_edit_choice`cb_help within w_scdef_edit
  215. end type
  216. type ln_bar from w_publ_edit_choice`ln_bar within w_scdef_edit
  217. integer endx = 1513
  218. end type
  219. type ln_bar2 from w_publ_edit_choice`ln_bar2 within w_scdef_edit
  220. end type
  221. type r_bar from w_publ_edit_choice`r_bar within w_scdef_edit
  222. integer x = 1326
  223. end type
  224. type cb_view from uo_imflatbutton within w_scdef_edit
  225. integer x = 837
  226. integer width = 151
  227. integer height = 164
  228. integer taborder = 30
  229. boolean bringtotop = true
  230. string text = "预览"
  231. string normalpicname = "preview.bmp"
  232. integer picsize = 16
  233. toolbaralignment pic_align = alignattop!
  234. boolean border = false
  235. end type
  236. event clicked;call super::clicked;S_print_MSG LS_PRMSG
  237. LS_PRMSG.obj_dwNAME = 'dw_rp_scdef'
  238. LS_PRMSG.SHARE_DW = DW_UC
  239. LS_PRMSG.TAG_TEXT = parent.title
  240. LS_PRMSG.SETUP_FLAG = 0
  241. LS_PRMSG.PAGECH_FLAG = 1
  242. OpenWithParm(w_publ_preview,LS_PRMSG)
  243. end event