w_buytask_rece_fx.srw 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707
  1. $PBExportHeader$w_buytask_rece_fx.srw
  2. $PBExportComments$分销系统--客户采购订单接收窗口
  3. forward
  4. global type w_buytask_rece_fx from w_publ_base_style
  5. end type
  6. type cb_accept from uo_imflatbutton within w_buytask_rece_fx
  7. end type
  8. type dw_main from datawindow within w_buytask_rece_fx
  9. end type
  10. type st_1 from statictext within w_buytask_rece_fx
  11. end type
  12. type mle_summary from multilineedit within w_buytask_rece_fx
  13. end type
  14. type st_2 from statictext within w_buytask_rece_fx
  15. end type
  16. type mle_postscript from multilineedit within w_buytask_rece_fx
  17. end type
  18. type st_3 from statictext within w_buytask_rece_fx
  19. end type
  20. type mle_remark from multilineedit within w_buytask_rece_fx
  21. end type
  22. type dw_mx from u_dw_rbtnfilter within w_buytask_rece_fx
  23. end type
  24. type cb_feedback from uo_imflatbutton within w_buytask_rece_fx
  25. end type
  26. type cb_reject from uo_imflatbutton within w_buytask_rece_fx
  27. end type
  28. end forward
  29. global type w_buytask_rece_fx from w_publ_base_style
  30. integer width = 4686
  31. integer height = 2620
  32. string title = "接收-采购订单"
  33. boolean minbox = false
  34. windowtype windowtype = response!
  35. windowstate windowstate = maximized!
  36. long backcolor = 16777215
  37. string icon = "graphics\chain_link_128px.ico"
  38. boolean center = true
  39. cb_accept cb_accept
  40. dw_main dw_main
  41. st_1 st_1
  42. mle_summary mle_summary
  43. st_2 st_2
  44. mle_postscript mle_postscript
  45. st_3 st_3
  46. mle_remark mle_remark
  47. dw_mx dw_mx
  48. cb_feedback cb_feedback
  49. cb_reject cb_reject
  50. end type
  51. global w_buytask_rece_fx w_buytask_rece_fx
  52. type variables
  53. s_open_packet s_tran
  54. end variables
  55. forward prototypes
  56. public function integer wf_retrieve ()
  57. public function boolean wf_chk_ifchange (ref string arg_msg)
  58. end prototypes
  59. public function integer wf_retrieve ();int rslt = 1
  60. dw_main.ReSet()
  61. dw_mx.ReSet()
  62. string arg_msg
  63. oleobject obj, buytask, buytaskMxs, mxItem
  64. obj = FXAppCom.GetReceBuytask(app_token_fx, s_tran.sn, ref arg_msg)
  65. if (arg_msg <> '') then
  66. rslt = 0
  67. MessageBox('提示', '获取采购订单信息有误:' + arg_msg)
  68. goto ext
  69. end if
  70. // 明细
  71. dw_mx.SetRedraw(false)
  72. buytaskMxs = obj.GetArrOfPBDictionary('buytaskMxs')
  73. datetime min_date
  74. long i, row
  75. decimal enprice, rebate, tax, uqty
  76. for i = 1 to buytaskMxs.Count
  77. row = dw_mx.InsertRow(0)
  78. mxItem = buytaskMxs.GetItem(i - 1)
  79. enprice = mxItem.GetDouble('enprice')
  80. rebate = mxItem.GetDouble('rebate')
  81. tax = mxItem.GetDouble('tax')
  82. uqty = mxItem.GetDouble('uqty')
  83. dw_mx.Object.printid[row] = mxItem.GetInt('printid')
  84. dw_mx.Object.mtrlname[row] = mxItem.GetString('mtrlname')
  85. dw_mx.Object.mtrlcode[row] = mxItem.GetString('mtrlcode')
  86. dw_mx.Object.mtrlmode[row] = mxItem.GetString('mtrlmode')
  87. dw_mx.Object.uqty[row] = uqty
  88. dw_mx.Object.spt_uqty[row] = uqty
  89. dw_mx.Object.unit[row] = Trim(mxItem.GetString('unit'))
  90. dw_mx.Object.enprice[row] = enprice
  91. dw_mx.Object.spt_enprice[row] = enprice
  92. dw_mx.Object.rebate[row] = rebate
  93. dw_mx.Object.tax[row] = tax
  94. if not IsNull(mxItem.GetDateTime('Requiredate')) then
  95. dw_mx.Object.Requiredate[row] = mxItem.GetDateTime('Requiredate')
  96. dw_mx.Object.spt_Requiredate[row] = mxItem.GetDateTime('Requiredate')
  97. end if
  98. dw_mx.Object.status[row] = mxItem.GetString('status')
  99. dw_mx.Object.spt_status[row] = mxItem.GetString('status')
  100. dw_mx.Object.woodcode[row] = mxItem.GetString('woodcode')
  101. dw_mx.Object.spt_woodcode[row] = mxItem.GetString('woodcode')
  102. dw_mx.Object.pcode[row] = mxItem.GetString('pcode')
  103. dw_mx.Object.spt_pcode[row] = mxItem.GetString('pcode')
  104. dw_mx.Object.dscrp[row] = mxItem.GetString('dscrp')
  105. dw_mx.Object.spt_dscrp[row] = mxItem.GetString('dscrp')
  106. dw_mx.Object.bateprice[row] = enprice * rebate
  107. dw_mx.Object.enprice_tax[row] = enprice / (1 + tax)
  108. dw_mx.Object.bateprice_tax[row] = (enprice * rebate) / (1 + tax)
  109. dw_mx.Object.taxamt[row] = (enprice * rebate * uqty) / (1 + tax) * tax
  110. dw_mx.Object.enamt_tax[row] = (uqty * enprice * rebate) / (1 + tax)
  111. dw_mx.Object.mtrlcuscode[row] = mxItem.GetString('mtrlcuscode')
  112. dw_mx.Object.plancode[row] = mxItem.GetString('plancode')
  113. if (i > 1) then
  114. if (mxItem.GetDateTime('Requiredate') < min_date) then
  115. min_date = mxItem.GetDateTime('Requiredate')
  116. end if
  117. else
  118. min_date = mxItem.GetDateTime('Requiredate') // i = 1 初始化min_date
  119. end if
  120. next
  121. dw_mx.SetRedraw(true)
  122. // 主表
  123. dw_main.SetRedraw(false)
  124. buytask = obj.GetPBDictionary('buytask')
  125. row = dw_main.InsertRow(0)
  126. dw_main.Object.taskcode[row] = buytask.GetString('taskcode')
  127. dw_main.Object.moneyname[row] = buytask.GetString('moneyname')
  128. dw_main.Object.mrate[row] = buytask.GetDouble('mrate')
  129. dw_main.Object.status[row] = buytask.GetInt('status')
  130. dw_main.Object.packetstatus[row] = buytask.GetInt('packetstatus')
  131. if (not IsNull(buytask.GetDateTime('opdate'))) then
  132. dw_main.Object.opdate[row] = buytask.GetDateTime('opdate')
  133. end if
  134. dw_main.Object.requiredate[row] = min_date
  135. dw_main.Object.cuscode[row] = buytask.GetString('cuscode')
  136. dw_main.Object.comname[row] = buytask.GetString('comname')
  137. dw_main.Object.simplename[row] = buytask.GetString('simplename')
  138. dw_main.Object.address[row] = buytask.GetString('address')
  139. dw_main.Object.custype[row] = buytask.GetString('custype')
  140. dw_main.Object.tele[row] = buytask.GetString('tele')
  141. dw_main.Object.freight[row] = buytask.GetString('freight')
  142. dw_main.Object.freight_tele[row] = buytask.GetString('freight_tele')
  143. dw_main.Object.billamt[row] = buytask.GetDouble('billamt')
  144. dw_main.Object.train[row] = buytask.GetString('train')
  145. dw_main.Object.banktypename[row] = buytask.GetString('banktypename')
  146. dw_main.Object.dscrp[row] = buytask.GetString('dscrp')
  147. dw_main.Object.dscrp2[row] = buytask.GetString('dscrp2')
  148. //dw_main.Object.redscrp[row] = buytask.GetString('dscrp')
  149. //dw_main.Object.redscrp2[row] = buytask.GetString('dscrp2')
  150. dw_main.Object.opemp[row] = buytask.GetString('opemp')
  151. if (not IsNull(buytask.GetDateTime('opdate'))) then
  152. dw_main.Object.opdate1[row] = buytask.GetDateTime('opdate')
  153. end if
  154. dw_main.Object.modemp[row] = buytask.GetString('modemp')
  155. if (not IsNull(buytask.GetDateTime('moddate'))) then
  156. dw_main.Object.moddate[row] = buytask.GetDateTime('moddate')
  157. end if
  158. dw_main.Object.permit_emp[row] = buytask.GetString('permit_emp')
  159. if (not IsNull(buytask.GetDateTime('permit_date'))) then
  160. dw_main.Object.permit_date[row] = buytask.GetDateTime('permit_date')
  161. end if
  162. dw_main.Object.confirmuser[row] = buytask.GetString('confirmuser')
  163. if (not IsNull(buytask.GetDateTime('confirmtime'))) then
  164. dw_main.Object.confirmtime[row] = buytask.GetDateTime('confirmtime')
  165. end if
  166. dw_main.SetRedraw(true)
  167. if (f_find_fx_user_power(31, ref arg_msg) <> 1) then // 31-采购订单查看(单价)
  168. dw_main.Modify('destroy ljfieb_tempbuytask_billamt_t ~r~n destroy billamt ~r~n')
  169. dw_mx.Modify('destroy enprice_t ~r~n destroy enprice ~r~n')
  170. dw_mx.Modify('destroy spt_enprice_t ~r~n destroy spt_enprice ~r~n')
  171. dw_mx.Modify('destroy rebate_t ~r~n destroy rebate ~r~n')
  172. dw_mx.Modify('destroy tax_t ~r~n destroy tax ~r~n')
  173. dw_mx.Modify('destroy bateprice_t ~r~n destroy bateprice ~r~n')
  174. dw_mx.Modify('destroy enprice_tax_t ~r~n destroy enprice_tax ~r~n')
  175. dw_mx.Modify('destroy bateprice_tax_t ~r~n destroy bateprice_tax ~r~n')
  176. dw_mx.Modify('destroy taxamt_t ~r~n destroy taxamt ~r~n')
  177. dw_mx.Modify('destroy enamt_tax_t ~r~n destroy enamt_tax ~r~n')
  178. end if
  179. if (buytask.GetInt('Complete') = 1) then
  180. cb_accept.Enabled = false
  181. cb_feedback.Enabled = false
  182. cb_reject.Enabled = false
  183. else
  184. // if (f_find_fx_user_power(33, ref arg_msg) <> 1) then // 33-采购订单确认
  185. // cb_accept.Enabled = false
  186. // end if
  187. if (f_find_fx_user_power(32, ref arg_msg) <> 1) then // 32-采购订单协商
  188. cb_feedback.Enabled = false
  189. end if
  190. if (f_find_fx_user_power(34, ref arg_msg) <> 1) then // 34-采购订单拒绝
  191. cb_reject.Enabled = false
  192. end if
  193. end if
  194. ext:
  195. return rslt
  196. end function
  197. public function boolean wf_chk_ifchange (ref string arg_msg);// 检查是否对明细进行修改
  198. boolean ifchange = false
  199. dw_main.AcceptText()
  200. dw_mx.AcceptText()
  201. string msg_period
  202. long i
  203. for i = 1 to dw_mx.RowCount()
  204. msg_period = ''
  205. // 回复数量
  206. if (dw_mx.Object.uqty[i] <> dw_mx.Object.spt_uqty[i]) then
  207. ifchange = true
  208. msg_period += '回复数量:(' + string(dw_mx.Object.uqty[i], '#,##0.##') + ' -> ' + string(dw_mx.Object.spt_uqty[i], '#,##0.##') + ');'
  209. end if
  210. // 回复单价
  211. if (dw_mx.Object.enprice[i] <> dw_mx.Object.spt_enprice[i]) then
  212. ifchange = true
  213. msg_period += '回复单价:(' + string(dw_mx.Object.enprice[i], '#,##0.##') + ' -> ' + string(dw_mx.Object.spt_enprice[i], '#,##0.##') + ');'
  214. end if
  215. // 回复交期
  216. if (dw_mx.Object.requiredate[i] <> dw_mx.Object.spt_requiredate[i]) then
  217. ifchange = true
  218. msg_period += '回复交期:(' + string(dw_mx.Object.requiredate[i], 'yyyy-MM-dd') + ' -> ' + string(dw_mx.Object.spt_requiredate[i], 'yyyy-MM-dd') + ');'
  219. end if
  220. // 回复配置
  221. if (dw_mx.Object.status[i] <> dw_mx.Object.spt_status[i]) then
  222. ifchange = true
  223. msg_period += '回复配置:(' + dw_mx.Object.status[i] + ' -> ' + dw_mx.Object.spt_status[i] + ');'
  224. end if
  225. // 回复配置1
  226. if (dw_mx.Object.woodcode[i] <> dw_mx.Object.spt_woodcode[i]) then
  227. ifchange = true
  228. msg_period += '回复配置1:(' + dw_mx.Object.woodcode[i] + ' -> ' + dw_mx.Object.spt_woodcode[i] + ');'
  229. end if
  230. // 回复配置2
  231. if (dw_mx.Object.pcode[i] <> dw_mx.Object.spt_pcode[i]) then
  232. ifchange = true
  233. msg_period += '回复配置2:(' + dw_mx.Object.pcode[i] + ' -> ' + dw_mx.Object.spt_pcode[i] + ');'
  234. end if
  235. // 回复备注
  236. if (dw_mx.Object.dscrp[i] <> dw_mx.Object.spt_dscrp[i]) then
  237. ifchange = true
  238. msg_period += '回复备注:(' + dw_mx.Object.dscrp[i] + ' -> ' + dw_mx.Object.spt_dscrp[i] + ');'
  239. end if
  240. // 汇总
  241. if (msg_period <> '') then
  242. arg_msg += '明细第' + string(i) + '行,物料[' + dw_mx.Object.mtrlname[i] + ']回复内容:~r~n' + msg_period + '~r~n'
  243. end if
  244. next
  245. if (Len(arg_msg) > 490) then
  246. arg_msg = Mid(arg_msg, 1, 490) + '...' // 会有~r~n被截断问题?
  247. end if
  248. return ifchange
  249. end function
  250. on w_buytask_rece_fx.create
  251. int iCurrent
  252. call super::create
  253. this.cb_accept=create cb_accept
  254. this.dw_main=create dw_main
  255. this.st_1=create st_1
  256. this.mle_summary=create mle_summary
  257. this.st_2=create st_2
  258. this.mle_postscript=create mle_postscript
  259. this.st_3=create st_3
  260. this.mle_remark=create mle_remark
  261. this.dw_mx=create dw_mx
  262. this.cb_feedback=create cb_feedback
  263. this.cb_reject=create cb_reject
  264. iCurrent=UpperBound(this.Control)
  265. this.Control[iCurrent+1]=this.cb_accept
  266. this.Control[iCurrent+2]=this.dw_main
  267. this.Control[iCurrent+3]=this.st_1
  268. this.Control[iCurrent+4]=this.mle_summary
  269. this.Control[iCurrent+5]=this.st_2
  270. this.Control[iCurrent+6]=this.mle_postscript
  271. this.Control[iCurrent+7]=this.st_3
  272. this.Control[iCurrent+8]=this.mle_remark
  273. this.Control[iCurrent+9]=this.dw_mx
  274. this.Control[iCurrent+10]=this.cb_feedback
  275. this.Control[iCurrent+11]=this.cb_reject
  276. end on
  277. on w_buytask_rece_fx.destroy
  278. call super::destroy
  279. destroy(this.cb_accept)
  280. destroy(this.dw_main)
  281. destroy(this.st_1)
  282. destroy(this.mle_summary)
  283. destroy(this.st_2)
  284. destroy(this.mle_postscript)
  285. destroy(this.st_3)
  286. destroy(this.mle_remark)
  287. destroy(this.dw_mx)
  288. destroy(this.cb_feedback)
  289. destroy(this.cb_reject)
  290. end on
  291. event open;call super::open;s_tran = Message.PowerObjectParm
  292. if IsNUll(s_tran) then
  293. MessageBox('提示', '打开方式有误')
  294. Close(this)
  295. return
  296. end if
  297. if (not IsValid(s_tran)) then
  298. MessageBox('提示', '打开方式无效')
  299. Close(this)
  300. return
  301. end if
  302. string arg_msg // 30-采购订单 31-采购订单查看(单价)
  303. if (f_find_fx_user_power(30, ref arg_msg) <> 1 &
  304. and f_find_fx_user_power(31, ref arg_msg) <> 1) then
  305. MessageBox('权限提示', arg_msg)
  306. Close(this)
  307. return
  308. end if
  309. mle_summary.Text = s_tran.summary
  310. mle_postscript.Text = s_tran.postscript
  311. mle_remark.Text = s_tran.remark
  312. if (wf_retrieve( ) = 0) then
  313. Close(this)
  314. end if
  315. end event
  316. event resize;call super::resize;if (this.Width < 3762) then this.Width = 3762
  317. if (this.Height < 2292) then this.Height = 2292
  318. mle_summary.Width = this.workspacewidth( ) - mle_summary.X - 14
  319. mle_postscript.Width = mle_summary.Width
  320. mle_remark.Width = mle_summary.Width
  321. dw_mx.Width = this.workspacewidth( )
  322. dw_mx.Height = this.workspaceheight( ) - dw_main.Y - dw_main.Height
  323. cb_exit.X = this.workspacewidth( ) - cb_exit.Width
  324. end event
  325. type cb_func from w_publ_base_style`cb_func within w_buytask_rece_fx
  326. boolean visible = false
  327. end type
  328. type cb_exit from w_publ_base_style`cb_exit within w_buytask_rece_fx
  329. integer x = 2610
  330. end type
  331. type ln_bar from w_publ_base_style`ln_bar within w_buytask_rece_fx
  332. end type
  333. type ln_bar2 from w_publ_base_style`ln_bar2 within w_buytask_rece_fx
  334. end type
  335. type r_bar from w_publ_base_style`r_bar within w_buytask_rece_fx
  336. end type
  337. type cb_accept from uo_imflatbutton within w_buytask_rece_fx
  338. integer width = 549
  339. integer height = 164
  340. integer taborder = 30
  341. boolean bringtotop = true
  342. string text = "接受并转为销售订单"
  343. string normalpicname = "ok.bmp"
  344. integer picsize = 16
  345. toolbaralignment pic_align = alignattop!
  346. boolean border = false
  347. end type
  348. event clicked;call super::clicked;dw_mx.SetFilter('')
  349. dw_mx.Filter()
  350. string arg_msg
  351. //if (f_find_fx_user_power(33, ref arg_msg) <> 1) then // 33-采购订单确认
  352. // MessageBox('权限提示', arg_msg)
  353. // return
  354. //end if
  355. // 检查是否对明细进行修改
  356. if wf_chk_ifchange(ref arg_msg) then
  357. MessageBox('提示', '已对订单明细进行修改,请使用[反馈修改内容]功能~r~n' + arg_msg)
  358. return
  359. end if
  360. // 没有修改,则直接确认接受
  361. if (dw_mx.RowCount() <= 0) then
  362. MessageBox('提示', '没有明细内容')
  363. return
  364. end if
  365. long row
  366. row = dw_main.GetRow()
  367. if (IsNull(row)) then return
  368. if (dw_main.Object.status[row] <> 1) then
  369. MessageBox('提示', '该客户的采购订单未完成审核,不能转为正式销售订单,请通知该客户审核后重新发送.本次单据可拒绝.')
  370. return
  371. end if
  372. FXAppCom.AcceptBuytask(app_token_fx, s_tran.sn, ref arg_msg)
  373. if (arg_msg <> '') then
  374. MessageBox('提示', '接受并转为销售订单操作失败:' + arg_msg)
  375. else
  376. MessageBox('提示', '操作成功!')
  377. Close(parent)
  378. end if
  379. end event
  380. type dw_main from datawindow within w_buytask_rece_fx
  381. integer y = 172
  382. integer width = 2226
  383. integer height = 1396
  384. integer taborder = 20
  385. boolean bringtotop = true
  386. string title = "none"
  387. string dataobject = "dw_tempbuytask"
  388. boolean livescroll = true
  389. end type
  390. type st_1 from statictext within w_buytask_rece_fx
  391. integer x = 2249
  392. integer y = 172
  393. integer width = 146
  394. integer height = 48
  395. boolean bringtotop = true
  396. integer textsize = -9
  397. integer weight = 400
  398. fontcharset fontcharset = gb2312charset!
  399. fontpitch fontpitch = variable!
  400. string facename = "宋体"
  401. long textcolor = 33554432
  402. long backcolor = 16777215
  403. string text = "摘要"
  404. boolean focusrectangle = false
  405. end type
  406. type mle_summary from multilineedit within w_buytask_rece_fx
  407. integer x = 2249
  408. integer y = 232
  409. integer width = 1499
  410. integer height = 392
  411. integer taborder = 30
  412. boolean bringtotop = true
  413. integer textsize = -9
  414. integer weight = 400
  415. fontcharset fontcharset = gb2312charset!
  416. fontpitch fontpitch = variable!
  417. string facename = "宋体"
  418. long textcolor = 33554432
  419. boolean vscrollbar = true
  420. boolean autovscroll = true
  421. boolean displayonly = true
  422. end type
  423. type st_2 from statictext within w_buytask_rece_fx
  424. integer x = 2249
  425. integer y = 644
  426. integer width = 146
  427. integer height = 48
  428. boolean bringtotop = true
  429. integer textsize = -9
  430. integer weight = 400
  431. fontcharset fontcharset = gb2312charset!
  432. fontpitch fontpitch = variable!
  433. string facename = "宋体"
  434. long textcolor = 33554432
  435. long backcolor = 16777215
  436. string text = "附言"
  437. boolean focusrectangle = false
  438. end type
  439. type mle_postscript from multilineedit within w_buytask_rece_fx
  440. integer x = 2249
  441. integer y = 700
  442. integer width = 1499
  443. integer height = 392
  444. integer taborder = 40
  445. boolean bringtotop = true
  446. integer textsize = -9
  447. integer weight = 400
  448. fontcharset fontcharset = gb2312charset!
  449. fontpitch fontpitch = variable!
  450. string facename = "宋体"
  451. long textcolor = 33554432
  452. boolean vscrollbar = true
  453. boolean autovscroll = true
  454. boolean displayonly = true
  455. end type
  456. type st_3 from statictext within w_buytask_rece_fx
  457. integer x = 2249
  458. integer y = 1116
  459. integer width = 146
  460. integer height = 48
  461. boolean bringtotop = true
  462. integer textsize = -9
  463. integer weight = 400
  464. fontcharset fontcharset = gb2312charset!
  465. fontpitch fontpitch = variable!
  466. string facename = "宋体"
  467. long textcolor = 33554432
  468. long backcolor = 16777215
  469. string text = "备注"
  470. boolean focusrectangle = false
  471. end type
  472. type mle_remark from multilineedit within w_buytask_rece_fx
  473. integer x = 2249
  474. integer y = 1176
  475. integer width = 1499
  476. integer height = 392
  477. integer taborder = 40
  478. boolean bringtotop = true
  479. integer textsize = -9
  480. integer weight = 400
  481. fontcharset fontcharset = gb2312charset!
  482. fontpitch fontpitch = variable!
  483. string facename = "宋体"
  484. long textcolor = 33554432
  485. boolean vscrollbar = true
  486. boolean autovscroll = true
  487. boolean displayonly = true
  488. end type
  489. type dw_mx from u_dw_rbtnfilter within w_buytask_rece_fx
  490. integer y = 1572
  491. integer width = 3771
  492. integer height = 832
  493. integer taborder = 20
  494. boolean bringtotop = true
  495. boolean titlebar = true
  496. string title = "订单明细"
  497. string dataobject = "dw_tempbuytaskmx"
  498. boolean controlmenu = true
  499. boolean maxbox = true
  500. boolean hscrollbar = true
  501. boolean vscrollbar = true
  502. boolean resizable = true
  503. boolean rbutton_filter_use = true
  504. boolean rbutton_setposition_use = true
  505. boolean titleclick_sort_use = true
  506. end type
  507. event itemfocuschanged;call super::itemfocuschanged;if (row > 0) then
  508. this.SetRow(row)
  509. this.SelectRow(0, false)
  510. this.SelectRow(row, true)
  511. string colName
  512. colName = this.GetColumnName()
  513. if (colName = 'spt_uqty' &
  514. or colName = 'spt_enprice' &
  515. or colName = 'spt_requiredate' &
  516. or colName = 'spt_status' &
  517. or colName = 'spt_woodcode' &
  518. or colName = 'spt_pcode' &
  519. or colName = 'spt_dscrp' &
  520. ) then
  521. this.SelectText(1, Len(this.GetText()))
  522. end if
  523. end if
  524. end event
  525. type cb_feedback from uo_imflatbutton within w_buytask_rece_fx
  526. integer x = 553
  527. integer width = 384
  528. integer height = 164
  529. integer taborder = 20
  530. boolean bringtotop = true
  531. string text = "反馈修改内容"
  532. toolbaralignment pic_align = alignattop!
  533. boolean border = false
  534. end type
  535. event clicked;call super::clicked;dw_mx.SetFilter('')
  536. dw_mx.Filter()
  537. string arg_msg
  538. if (f_find_fx_user_power(32, ref arg_msg) <> 1) then // 32-采购订单协商
  539. MessageBox('权限提示', arg_msg)
  540. return
  541. end if
  542. if (dw_mx.RowCount() <= 0) then
  543. MessageBox('提示', '没有明细内容')
  544. return
  545. end if
  546. if not wf_chk_ifchange(ref arg_msg) then
  547. MessageBox('提示', '没有明细内容被修改')
  548. return
  549. end if
  550. If MessageBox('提示','确认要反馈此单据的修改内容吗?',Question!,YesNoCancel!) <> 1 Then Return
  551. OpenWithParm(w_packet_msg_edit_fx, arg_msg)
  552. s_open_packet s_ret
  553. s_ret = Message.PowerObjectParm
  554. if (s_ret.returnflag = 0) then
  555. MessageBox('提示', '操作取消')
  556. return
  557. end if
  558. string redscrp, redscrp2, postscript
  559. redscrp = Trim(dw_main.Object.redscrp[1])
  560. if IsNull(redscrp) then
  561. redscrp = ''
  562. end if
  563. redscrp2 = Trim(dw_main.Object.redscrp2[1])
  564. if IsNull(redscrp2) then
  565. redscrp2 = ''
  566. end if
  567. postscript = s_ret.postscript
  568. if IsNull(postscript) then
  569. postscript = ''
  570. end if
  571. if (Len(postscript) > 500) then
  572. MessageBox('提示', '留言板信息超长(500),请进行删减')
  573. return
  574. end if
  575. oleobject list, item
  576. list = FXAppCom.CreArrOfPbDictionary()
  577. long i
  578. for i = 1 to dw_mx.RowCount()
  579. item = FXAppCom.CreatePbDictionary()
  580. item.SetInt('printid', dw_mx.Object.printid[i])
  581. item.SetDouble('uqty', dw_mx.Object.spt_uqty[i])
  582. item.SetDouble('enprice', dw_mx.Object.spt_enprice[i])
  583. item.SetDateTime('requiredate', dw_mx.Object.spt_Requiredate[i])
  584. item.SetString('status', dw_mx.Object.spt_status[i])
  585. item.SetString('woodcode', dw_mx.Object.spt_woodcode[i])
  586. item.SetString('pcode', dw_mx.Object.spt_pcode[i])
  587. item.SetString('dscrp', dw_mx.Object.spt_dscrp[i])
  588. list.Add(item)
  589. next
  590. FXAppCom.FeedbackBuytask(app_token_fx, s_tran.sn, redscrp, redscrp2, postscript, list, ref arg_msg)
  591. if (arg_msg <> '') then
  592. MessageBox('提示', '反馈修改内容失败:' + arg_msg)
  593. else
  594. MessageBox('提示', '操作成功')
  595. Close(parent)
  596. end if
  597. end event
  598. type cb_reject from uo_imflatbutton within w_buytask_rece_fx
  599. integer x = 942
  600. integer width = 151
  601. integer height = 164
  602. integer taborder = 20
  603. boolean bringtotop = true
  604. boolean enabled = false
  605. string text = "拒绝"
  606. string normalpicname = "DELETE.BMP"
  607. integer picsize = 16
  608. toolbaralignment pic_align = alignattop!
  609. boolean border = false
  610. end type