w_order_ml_pro_mod.srw 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420
  1. $PBExportHeader$w_order_ml_pro_mod.srw
  2. forward
  3. global type w_order_ml_pro_mod from w_publ_base
  4. end type
  5. type dw_1 from u_dw_rbtnfilter within w_order_ml_pro_mod
  6. end type
  7. type cb_1 from uo_imflatbutton within w_order_ml_pro_mod
  8. end type
  9. type cb_2 from uo_imflatbutton within w_order_ml_pro_mod
  10. end type
  11. type cb_3 from uo_imflatbutton within w_order_ml_pro_mod
  12. end type
  13. type cb_4 from uo_imflatbutton within w_order_ml_pro_mod
  14. end type
  15. type cbx_ch from checkbox within w_order_ml_pro_mod
  16. end type
  17. end forward
  18. global type w_order_ml_pro_mod from w_publ_base
  19. integer width = 3611
  20. integer height = 2380
  21. string title = "计划工序修改"
  22. boolean minbox = false
  23. windowtype windowtype = response!
  24. dw_1 dw_1
  25. cb_1 cb_1
  26. cb_2 cb_2
  27. cb_3 cb_3
  28. cb_4 cb_4
  29. cbx_ch cbx_ch
  30. end type
  31. global w_order_ml_pro_mod w_order_ml_pro_mod
  32. type variables
  33. s_saletaskmx s_order_open
  34. String ins_sqlerrtext
  35. long ins_mtrlid
  36. string ins_status
  37. end variables
  38. on w_order_ml_pro_mod.create
  39. int iCurrent
  40. call super::create
  41. this.dw_1=create dw_1
  42. this.cb_1=create cb_1
  43. this.cb_2=create cb_2
  44. this.cb_3=create cb_3
  45. this.cb_4=create cb_4
  46. this.cbx_ch=create cbx_ch
  47. iCurrent=UpperBound(this.Control)
  48. this.Control[iCurrent+1]=this.dw_1
  49. this.Control[iCurrent+2]=this.cb_1
  50. this.Control[iCurrent+3]=this.cb_2
  51. this.Control[iCurrent+4]=this.cb_3
  52. this.Control[iCurrent+5]=this.cb_4
  53. this.Control[iCurrent+6]=this.cbx_ch
  54. end on
  55. on w_order_ml_pro_mod.destroy
  56. call super::destroy
  57. destroy(this.dw_1)
  58. destroy(this.cb_1)
  59. destroy(this.cb_2)
  60. destroy(this.cb_3)
  61. destroy(this.cb_4)
  62. destroy(this.cbx_ch)
  63. end on
  64. event open;call super::open;
  65. s_order_open = Message.PowerObjectParm
  66. ins_mtrlid = s_order_open.mtrlid
  67. dw_1.SetTransObject(sqlca)
  68. dw_1.Retrieve(s_order_open.scid,s_order_open.taskid,s_order_open.printid)
  69. end event
  70. type cb_func from w_publ_base`cb_func within w_order_ml_pro_mod
  71. boolean visible = false
  72. integer y = 1404
  73. boolean enabled = false
  74. end type
  75. type cb_exit from w_publ_base`cb_exit within w_order_ml_pro_mod
  76. integer x = 2373
  77. integer y = 2108
  78. integer width = 302
  79. string text = "取消"
  80. integer picsize = 16
  81. end type
  82. type dw_1 from u_dw_rbtnfilter within w_order_ml_pro_mod
  83. integer width = 3543
  84. integer height = 2076
  85. boolean bringtotop = true
  86. string title = "none"
  87. string dataobject = "dw_order_ml_pro_mod"
  88. boolean hscrollbar = true
  89. boolean vscrollbar = true
  90. end type
  91. event dberror;ins_sqlerrtext = SQLErrText
  92. RETURN 1
  93. end event
  94. event rbuttondown;Long ll_row,ll_column
  95. ll_row = THIS.GetRow()
  96. ll_column = THIS.GetColumn()
  97. IF ll_row <= 0 THEN RETURN
  98. IF ll_column <= 0 THEN RETURN
  99. IF Left( THIS.Describe( dwo.Name+ ".coltype"),4) = 'date' THEN
  100. s_calender_arg s_calender
  101. s_calender.PointerX = THIS.PointerX()
  102. s_calender.PointerY = THIS.PointerY()
  103. s_calender.X = THIS.X + PARENT.X
  104. s_calender.Y = THIS.Y + PARENT.Y
  105. OpenWithParm(w_calendar,s_calender)
  106. THIS.SetItem(ll_row,ll_column,id_date_selected)
  107. END IF
  108. end event
  109. event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN
  110. THIS.SelectRow(0,FALSE)
  111. THIS.SelectRow(currentrow,TRUE)
  112. END IF
  113. end event
  114. event clicked;call super::clicked;IF row > 0 THEN
  115. THIS.SelectRow(0,FALSE)
  116. THIS.SelectRow(row,TRUE)
  117. END IF
  118. end event
  119. event doubleclicked;call super::doubleclicked;Long uc_row,ll_mtrlid,child_row
  120. string ls_status
  121. child_row = dw_1.getrow()
  122. if child_row <= 0 then
  123. MessageBox('系统提示','请选择目标行')
  124. RETURN
  125. END IF
  126. dw_1.AcceptText()
  127. //IF NOT IsValid(w_configure_ch_zj) THEN
  128. // s_edit_index_tran s_ch_tran
  129. // s_ch_tran.c_long = ins_mtrlid
  130. //
  131. // OpenWithParm(w_configure_ch_zj,s_ch_tran) //调用
  132. //
  133. // ls_status = Message.StringParm //接受返回结构
  134. // dw_1.SetRedraw(FALSE)
  135. // IF len(trim(ls_status)) > 0 THEN
  136. // if ls_status = '[清空配置]' then ls_status = ''
  137. // dw_1.Object.u_orderrqwp_status[child_row] = ls_status
  138. // dw_1.SetFocus()
  139. // dw_1.SetColumn('u_orderrqwp_workprice')
  140. // END IF
  141. // dw_1.SetRedraw(TRUE)
  142. //END IF
  143. end event
  144. type cb_1 from uo_imflatbutton within w_order_ml_pro_mod
  145. integer x = 1998
  146. integer y = 2108
  147. integer height = 96
  148. integer taborder = 20
  149. boolean bringtotop = true
  150. string text = "保存"
  151. string normalpicname = "save.bmp"
  152. integer picsize = 16
  153. end type
  154. event clicked;call super::clicked;dw_1.AcceptText()
  155. String ls_errmsg
  156. Long ll_i
  157. Long ll_statusflag
  158. String ls_status_zj
  159. Boolean lb_iffind = FALSE
  160. Long ll_j
  161. FOR ll_i = 1 TO dw_1.RowCount()
  162. IF Trim(dw_1.Object.u_orderrqwp_procode[ll_i]) = '' THEN
  163. MessageBox('提示','行:'+String(ll_i)+',请输入工序号')
  164. RETURN
  165. END IF
  166. IF Trim(dw_1.Object.u_orderrqwp_proname[ll_i]) = '' THEN
  167. MessageBox('提示','行:'+String(ll_i)+',请输入工序名称')
  168. RETURN
  169. END IF
  170. IF dw_1.Object.u_orderrqwp_proqty[ll_i] <= 0 THEN
  171. MessageBox('提示','行:'+String(ll_i)+',请输入工序数量')
  172. RETURN
  173. END IF
  174. IF sys_option_taskwork_price_limit = 1 THEN
  175. IF dw_1.Object.u_orderrqwp_ifjd[ll_i] = 1 and dw_1.Object.u_orderrqwp_workprice[ll_i] <= 0 THEN
  176. MessageBox('提示','行:'+String(ll_i)+',请输入工序工价')
  177. RETURN
  178. END IF
  179. END IF
  180. NEXT
  181. IF dw_1.Update() = -1 THEN
  182. IF Pos(ins_sqlerrtext,"cannot insert duplicate key row") > 0 OR Pos(ins_sqlerrtext,"unique key") > 0 THEN
  183. ls_errmsg = "关键内容重复"
  184. ELSE
  185. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext
  186. END IF
  187. ROLLBACK;
  188. MessageBox ("系统提示",ls_errmsg+",保存操作失败!",exclamation!,ok!)
  189. RETURN
  190. ELSE
  191. COMMIT;
  192. MessageBox ("系统提示","保存操作成功!",exclamation!,ok!)
  193. Close(PARENT)
  194. END IF
  195. end event
  196. type cb_2 from uo_imflatbutton within w_order_ml_pro_mod
  197. integer x = 1248
  198. integer y = 2108
  199. integer height = 96
  200. integer taborder = 20
  201. boolean bringtotop = true
  202. string text = "增工序"
  203. string normalpicname = "mx.bmp"
  204. integer picsize = 16
  205. end type
  206. event clicked;call super::clicked;Long ll_row,ls_j
  207. dw_1.AcceptText()
  208. ll_row = dw_1.GetRow()
  209. s_edit_index_tran s_ch_tran
  210. s_ch_tran.if_retrieve_all = TRUE
  211. s_ch_tran.work_mode = 1
  212. s_ch_tran.arg_pkid = 0
  213. s_ch_tran.b_long = 0
  214. s_ch_tran.if_select_all = TRUE
  215. IF ll_row > 0 THEN s_ch_tran.arg_string_code = dw_1.Object.u_orderrqwp_procode[ll_row]
  216. IF NOT IsValid(w_sc_workprocedure_response) THEN
  217. OpenWithParm(w_sc_workprocedure_response,s_ch_tran) //调用
  218. s_workprocedure S_INSCUST
  219. S_INSCUST = Message.PowerObjectParm //接受返回结构
  220. FOR ls_j = 1 TO UpperBound(S_INSCUST.wrkproid)
  221. IF S_INSCUST.wrkproid[ls_j] > 0 THEN //正常返回值则可以取以下值
  222. IF dw_1.Find("u_orderrqwp_procode='"+S_INSCUST.wrkprocode[ls_j]+"'",1,dw_1.RowCount()) = 0 THEN
  223. IF dw_1.GetRow() <= 0 THEN
  224. ll_row = dw_1.InsertRow (0)
  225. ELSE
  226. IF Trim(dw_1.Object.u_orderrqwp_procode[dw_1.GetRow()]) = '' THEN
  227. ll_row = dw_1.GetRow()
  228. ELSE
  229. ll_row = dw_1.InsertRow (0)
  230. END IF
  231. END IF
  232. dw_1.Object.u_orderrqwp_procode[ll_row] = S_INSCUST.wrkprocode[ls_j]
  233. dw_1.Object.u_orderrqwp_proname[ll_row] = S_INSCUST.wrkproname[ls_j]
  234. dw_1.Object.u_orderrqwp_workprice[ll_row] = S_INSCUST.workprice[ls_j]
  235. dw_1.Object.u_orderrqwp_scid[ll_row] = s_order_open.scid
  236. dw_1.Object.u_orderrqwp_taskid[ll_row] = s_order_open.taskid
  237. dw_1.Object.u_orderrqwp_printid[ll_row] = s_order_open.printid
  238. dw_1.Object.u_orderrqwp_mtrlid[ll_row] = s_order_open.mtrlid
  239. dw_1.Object.u_orderrqwp_wrkgrpid[ll_row] = S_INSCUST.wrkGrid[ls_j]
  240. END IF
  241. END IF
  242. NEXT
  243. END IF
  244. end event
  245. type cb_3 from uo_imflatbutton within w_order_ml_pro_mod
  246. integer x = 1623
  247. integer y = 2108
  248. integer height = 96
  249. integer taborder = 30
  250. boolean bringtotop = true
  251. string text = "删工序"
  252. string normalpicname = "delete.bmp"
  253. integer picsize = 16
  254. end type
  255. event clicked;call super::clicked;Long ll_row
  256. Decimal ld_finishqty
  257. String ls_proname
  258. Long ll_i,cnt = 0
  259. dw_1.AcceptText()
  260. FOR ll_i = 1 TO dw_1.RowCount()
  261. IF dw_1.Object.ch[ll_i] = 1 THEN
  262. cnt++
  263. END IF
  264. NEXT
  265. IF cnt = 0 THEN
  266. ll_row = dw_1.GetRow()
  267. IF ll_row <= 0 THEN
  268. MessageBox('提示','请选择要删除的工序')
  269. RETURN
  270. END IF
  271. ld_finishqty = dw_1.Object.u_orderrqwp_finishqty[ll_row]
  272. ls_proname = dw_1.Object.u_orderrqwp_proname[ll_row]
  273. IF ld_finishqty > 0 THEN
  274. MessageBox('提示','已有完成数,不能删除')
  275. RETURN
  276. END IF
  277. IF MessageBox ("询问","是否确定要删除当前工序吗",Question!,YesNo! ) = 2 THEN RETURN
  278. dw_1.DeleteRow(ll_row)
  279. ELSE
  280. IF MessageBox ("询问","是否确定要删除当前选定的工序吗",Question!,YesNo! ) = 2 THEN RETURN
  281. FOR ll_i = 1 TO dw_1.RowCount()
  282. IF dw_1.Object.ch[ll_i] = 1 THEN
  283. ld_finishqty = dw_1.Object.u_orderrqwp_finishqty[ll_i]
  284. ls_proname = dw_1.Object.u_orderrqwp_proname[ll_i]
  285. IF ld_finishqty > 0 THEN
  286. MessageBox('提示','第'+String(ll_i)+'行,已有完成数,不能删除')
  287. dw_1.SelectRow(0,FALSE)
  288. dw_1.SelectRow(ll_i,TRUE)
  289. dw_1.SetRow(ll_i)
  290. RETURN
  291. END IF
  292. dw_1.DeleteRow(ll_i)
  293. ll_i = 0
  294. END IF
  295. NEXT
  296. END IF
  297. end event
  298. type cb_4 from uo_imflatbutton within w_order_ml_pro_mod
  299. integer x = 873
  300. integer y = 2108
  301. integer height = 96
  302. integer taborder = 20
  303. boolean bringtotop = true
  304. string text = "增行"
  305. string normalpicname = "mx1.bmp"
  306. integer picsize = 16
  307. end type
  308. event clicked;call super::clicked;dw_1.InsertRow(0)
  309. end event
  310. type cbx_ch from checkbox within w_order_ml_pro_mod
  311. integer x = 50
  312. integer y = 2128
  313. integer width = 233
  314. integer height = 60
  315. boolean bringtotop = true
  316. integer textsize = -9
  317. integer weight = 400
  318. fontcharset fontcharset = gb2312charset!
  319. fontpitch fontpitch = variable!
  320. string facename = "宋体"
  321. long textcolor = 33554432
  322. long backcolor = 134217739
  323. string text = "全选"
  324. end type
  325. event clicked;long ll_i
  326. dw_1.setredraw(false)
  327. if this.checked then
  328. for ll_i = 1 to dw_1.rowcount()
  329. dw_1.object.ch[ll_i] = 1
  330. next
  331. else
  332. for ll_i = 1 to dw_1.rowcount()
  333. dw_1.object.ch[ll_i] = 0
  334. next
  335. end if
  336. dw_1.setredraw(true)
  337. end event