w_buybill.srw 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863
  1. $PBExportHeader$w_buybill.srw
  2. forward
  3. global type w_buybill from w_publ_pageretr
  4. end type
  5. type dw_uc from datawindow within w_buybill
  6. end type
  7. type dw_child from u_dw_rbtnfilter within w_buybill
  8. end type
  9. type cb_delet from uo_imflatbutton within w_buybill
  10. end type
  11. type cb_addzy from uo_imflatbutton within w_buybill
  12. end type
  13. type cb_auditing from uo_imflatbutton within w_buybill
  14. end type
  15. type cb_cauditing from uo_imflatbutton within w_buybill
  16. end type
  17. type cb_print from uo_imflatbutton within w_buybill
  18. end type
  19. type cb_retrieve from uo_imflatbutton within w_buybill
  20. end type
  21. type st_3 from statictext within w_buybill
  22. end type
  23. type ddlb_status from dropdownlistbox within w_buybill
  24. end type
  25. type cb_help from uo_imflatbutton within w_buybill
  26. end type
  27. type cb_add from uo_imflatbutton within w_buybill
  28. end type
  29. type cb_edit from uo_imflatbutton within w_buybill
  30. end type
  31. type cb_reset from uo_imflatbutton within w_buybill
  32. end type
  33. type ln_bar from line within w_buybill
  34. end type
  35. type ln_bar2 from line within w_buybill
  36. end type
  37. type r_bar from rectangle within w_buybill
  38. end type
  39. type ln_1 from line within w_buybill
  40. end type
  41. type ln_2 from line within w_buybill
  42. end type
  43. end forward
  44. global type w_buybill from w_publ_pageretr
  45. integer width = 3611
  46. integer height = 2404
  47. string title = "供应商对数单"
  48. boolean maxbox = true
  49. windowstate windowstate = maximized!
  50. event retrieve_childdw ( )
  51. event retrieve_uc ( )
  52. event refresh_interface ( )
  53. event ue_f7 ( )
  54. event ue_f8 ( )
  55. event ue_f9 ( )
  56. event ue_f10 ( )
  57. event ue_f6 ( )
  58. event ue_f11 ( )
  59. event ue_f12 ( )
  60. event ue_addzy ( )
  61. event retrieve_childdw_uc ( )
  62. dw_uc dw_uc
  63. dw_child dw_child
  64. cb_delet cb_delet
  65. cb_addzy cb_addzy
  66. cb_auditing cb_auditing
  67. cb_cauditing cb_cauditing
  68. cb_print cb_print
  69. cb_retrieve cb_retrieve
  70. st_3 st_3
  71. ddlb_status ddlb_status
  72. cb_help cb_help
  73. cb_add cb_add
  74. cb_edit cb_edit
  75. cb_reset cb_reset
  76. ln_bar ln_bar
  77. ln_bar2 ln_bar2
  78. r_bar r_bar
  79. ln_1 ln_1
  80. ln_2 ln_2
  81. end type
  82. global w_buybill w_buybill
  83. type variables
  84. int child_column_int=1,uc_column_int=1
  85. uo_buybill uo_bill
  86. int cur_flag = -1
  87. long dw_child_w,dw_child_h,dw_pageretr_w,dw_pageretr_h
  88. String ls_newname = ''
  89. Long ll_prownum
  90. Long ls_powerid
  91. Int li_auditprint
  92. String ls_rpname = ''
  93. end variables
  94. forward prototypes
  95. public function integer wf_refresh_interface ()
  96. public function integer wf_lock_child ()
  97. public function integer wf_lock_uc ()
  98. public subroutine wf_autoadd_mx ()
  99. public function integer wf_refresh_curuc (long arg_buybillid)
  100. public subroutine wf_addnew (long arg_scid, long arg_id)
  101. end prototypes
  102. event retrieve_childdw;long row,uc_relid
  103. row=dw_pageretr.getrow()
  104. if row>0 then
  105. uc_relid=dw_pageretr.object.u_buybill_buybillid[row]
  106. dw_child.SetRedraw (false)
  107. dw_child.retrieve(uc_relid)
  108. dw_child.SetRedraw (true)
  109. else
  110. dw_child.reset()
  111. end if
  112. end event
  113. event refresh_interface;//被 wf_refresh_interface() 调用,用于界面刷新
  114. end event
  115. event ue_f7;//cb_add_xm.triggerevent(clicked!)
  116. end event
  117. event ue_f8;////用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  118. //long child_row
  119. //if child_row=0 then
  120. // messagebox('系统提示','请选定目标明细行!')
  121. // return
  122. //end if
  123. //
  124. //s_edit_index_tran s_ch_tran //传递参数使用
  125. //s_ch_tran.if_retrieve_all=false //是否一次RETRIEVE所有行
  126. //s_ch_tran.work_mode=1 //0-单纯编辑模式 1-选择\编辑模式
  127. //s_ch_tran.arg_pkid=0 //目标定位PKID (备用)
  128. ////查询列(物料编码)部分内容,用于初步筛选
  129. //s_ch_tran.arg_string_code=trim(dw_child.object.u_mtrldef_mtrlcode[child_row])
  130. //
  131. //OPENwithparm(W_materiel,s_ch_tran) //调用
  132. //
  133. //S_materiel S_INSCUST
  134. //S_INSCUST=Message.PowerObjectParm //接受返回结构
  135. //IF S_INSCUST.mtrlid>0 THEN //正常返回值则可以取以下值
  136. //
  137. //dw_child.object.u_mtrldef_mtrlcode[child_row]
  138. //dw_child.object.u_mtrldef_unit[child_row]
  139. //dw_child.object.u_wasterinwaremx_mtrlid[child_row]
  140. //dw_child.object.u_wasterinwaremx_planprice[child_row]
  141. //dw_child.object.u_mtrldef_mtrlname[child_row]
  142. //
  143. ////S_INSCUST.mtrlid
  144. ////S_INSCUST.mtrlname
  145. ////S_INSCUST.mtrlcode
  146. ////S_INSCUST.unit
  147. ////S_INSCUST.mtrltype
  148. ////S_INSCUST.mtrlmode
  149. ////S_INSCUST.planprice
  150. //
  151. ////S_INSCUST.storageid
  152. ////S_INSCUST.cost
  153. ////S_INSCUST.price
  154. ////S_INSCUST.descrp
  155. ////S_INSCUST.source
  156. //END IF
  157. //
  158. end event
  159. event ue_f9();if not dw_edit_mode then return
  160. long child_row
  161. child_row=dw_uc.getrow()
  162. if child_row=0 then
  163. messagebox('提示','请选定单据!',information!,ok!)
  164. return
  165. end if
  166. if not isvalid(W_spt_edit) then
  167. s_edit_index_tran s_ch_tran //传递参数使用
  168. s_ch_tran.if_retrieve_all=local_retrieve_all //是否一次RETRIEVE所有行
  169. s_ch_tran.work_mode=1 //0-单纯编辑模式 1-选择\编辑模式
  170. s_ch_tran.arg_pkid=0 //目标定位PKID (备用)
  171. s_ch_tran.arg_string_code=''//查询列(物料编码)部分内容,用于初步筛选
  172. OPENwithparm(W_spt_edit,s_ch_tran) //调用
  173. s_spt S_INSCUST
  174. S_INSCUST=Message.PowerObjectParm //接受返回结构
  175. IF S_INSCUST.sptid>0 THEN //正常返回值则可以取以下值
  176. dw_uc.setredraw(false)
  177. dw_uc.object.u_buybill_sptid[child_row]=S_INSCUST.sptid
  178. dw_uc.object.u_spt_name[child_row]=S_INSCUST.name
  179. dw_uc.object.u_spt_sptcode[child_row]=S_INSCUST.sptcode
  180. dw_uc.setredraw(true)
  181. END IF
  182. wf_autoadd_mx()
  183. dw_uc.setcolumn("u_buybill_billtype")
  184. end if
  185. end event
  186. event ue_addzy();if not f_power_ind(524) then
  187. messagebox('提示','你没有使用权限!',information!,ok!)
  188. return
  189. end if
  190. if dw_edit_mode then return
  191. string arg_msg='',LS_STR
  192. long uc_row
  193. s_inputbox S_SREU
  194. uc_row=dw_pageretr.getrow()
  195. if uc_row<=0 then
  196. messagebox('提示','请选定当前目标单据!',information!,ok!)
  197. return
  198. end if
  199. S_SREU.TITLE='请输入要补充到备注的内容'
  200. S_SREU.OLD_TEXT=''
  201. openwithparm(w_inputbox,S_SREU)
  202. LS_STR=Message.StringParm
  203. if trim(LS_STR)='' or isnull(LS_STR) then return
  204. if uo_bill.add_dscrp(dw_pageretr.object.u_buybill_buybillid[uc_row],LS_STR,arg_msg,true)=0 then
  205. messagebox('错误',arg_msg,stopsign!,ok!)
  206. return
  207. else
  208. messagebox('提示','添加备注操作成功!',information!,ok!)
  209. wf_refresh_curuc(dw_pageretr.object.u_buybill_buybillid[uc_row])
  210. end if
  211. end event
  212. event retrieve_childdw_uc();IF NOT dw_edit_mode THEN
  213. dw_uc.Reset()
  214. dw_pageretr.RowsCopy(dw_pageretr.GetRow(), dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  215. END IF
  216. end event
  217. public function integer wf_refresh_interface ();//wf_refresh_interface
  218. IF dw_edit_mode THEN
  219. cb_addzy.enabled=FALSE
  220. cb_retrieve.ENABLED=FALSE
  221. cb_delet.ENABLED=FALSE
  222. cb_print.ENABLED=FALSE
  223. cb_auditing.ENABLED=FALSE
  224. cb_cauditing.ENABLED=FALSE
  225. cb_func.ENABLED=FALSE
  226. cb_edit.Enabled = TRUE
  227. cb_add.Enabled = TRUE
  228. cb_reset.Enabled = TRUE
  229. cb_edit.Text = "放弃&E"
  230. cb_add.Text = "保存&S"
  231. cb_edit.normalpicname = 'Undo.bmp'
  232. cb_add.normalpicname = 'Save.bmp'
  233. dw_pageretr.RBUTTON_FILTER_USE=false //右键查询功能开关
  234. dw_pageretr.titleclick_sort_use=false //单击标题排序功能开关
  235. dw_child.dataobject='dw_buybillmx_index'
  236. dw_child.SetTransObject (sqlca)
  237. dw_child.RESET()
  238. ELSE
  239. cb_addzy.enabled=TRUE
  240. cb_retrieve.ENABLED=TRUE
  241. cb_delet.ENABLED=TRUE
  242. cb_print.ENABLED=TRUE
  243. cb_auditing.ENABLED=true
  244. cb_cauditing.ENABLED=true
  245. cb_func.ENABLED=true
  246. cb_add.Enabled = TRUE
  247. cb_edit.Enabled = TRUE
  248. cb_edit.Text = "修改&E"
  249. cb_add.Text = "新建&S"
  250. cb_edit.normalpicname = 'OPEN.bmp'
  251. cb_add.normalpicname = 'new.bmp'
  252. dw_pageretr.RBUTTON_FILTER_USE=true //右键查询功能开关
  253. dw_pageretr.titleclick_sort_use=true //单击标题排序功能开关
  254. dw_child.dataobject='dw_buybillmx_edit'
  255. dw_child.SetTransObject (sqlca)
  256. this.triggerevent('retrieve_childdw')
  257. if dw_pageretr.getrow()<=0 then
  258. cb_addzy.ENABLED=false
  259. cb_auditing.ENABLED=false
  260. end if
  261. END IF
  262. if retrieve_all or dw_edit_mode then
  263. cb_nextpage.enabled=false
  264. cb_retrieveall.enabled=false
  265. em_pagerowno.enabled=false
  266. sle_usual_query.enabled=false
  267. Else
  268. cb_nextpage.enabled=true
  269. cb_retrieveall.enabled=TRUE
  270. em_pagerowno.enabled=true
  271. sle_usual_query.enabled=true
  272. end if
  273. wf_lock_child()
  274. wf_lock_uc()
  275. cb_edit.of_init_draw()
  276. cb_add.of_init_draw()
  277. cb_edit.of_paint()
  278. cb_add.of_paint()
  279. cb_add.TriggerEvent('ue_textchange')
  280. cb_edit.TriggerEvent('ue_textchange')
  281. this.triggerevent('refresh_interface')
  282. RETURN 1
  283. end function
  284. public function integer wf_lock_child ();//wf_lock_child
  285. INT LS_INT
  286. IF dw_edit_mode THEN
  287. FOR LS_INT=1 TO child_column_int
  288. dw_child.SetTabOrder (LS_INT,LS_INT*10 )
  289. NEXT
  290. ELSE
  291. FOR LS_INT=1 TO child_column_int
  292. dw_child.SetTabOrder (LS_INT, 0)
  293. NEXT
  294. END IF
  295. RETURN 1
  296. end function
  297. public function integer wf_lock_uc ();//wf_lock_uc
  298. INT LS_INT
  299. long ls_row
  300. ls_row=dw_uc.getrow()
  301. IF dw_edit_mode THEN
  302. FOR LS_INT=1 TO uc_column_int
  303. dw_uc.SetTabOrder (LS_INT,LS_INT*10 )
  304. NEXT
  305. ELSE
  306. FOR LS_INT=1 TO uc_column_int
  307. dw_uc.SetTabOrder (LS_INT, 0)
  308. NEXT
  309. END IF
  310. if ls_row>0 then dw_uc.setrow(ls_row)
  311. RETURN 1
  312. end function
  313. public subroutine wf_autoadd_mx ();Long ucrow,ls_sptid,li_row
  314. Long ls_payid
  315. String ls_billcode
  316. Decimal ls_oriamt,ls_Mstpayamt,ls_payamt
  317. DateTime ls_paydate
  318. ucrow = dw_uc.GetRow()
  319. IF ucrow <= 0 THEN RETURN
  320. ls_sptid = dw_uc.Object.u_buybill_sptid[ucrow]
  321. IF ls_sptid = 0 THEN
  322. dw_child.Reset()
  323. RETURN
  324. END IF
  325. dw_child.Reset()
  326. dw_uc.AcceptText()
  327. IF dw_uc.Object.u_buybill_billtype[ucrow] = 1 THEN
  328. DECLARE pay_cur CURSOR FOR
  329. SELECT U_Bmstpay.payid,
  330. U_Bmstpay.Billcode,
  331. U_Bmstpay.oriamt,
  332. U_Bmstpay.Mstpayamt,
  333. U_Bmstpay.payamt,
  334. U_Bmstpay.paydate
  335. FROM U_Bmstpay
  336. WHERE U_Bmstpay.finishflag = 0 AND sptid = :ls_sptid AND
  337. (U_Bmstpay.Mstpayamt - U_Bmstpay.payamt) > 0 AND (U_Bmstpay.Mstpayamt <> 0)
  338. Order By U_Bmstpay.paydate Asc ;
  339. OPEN pay_cur;
  340. FETCH pay_cur INTO :ls_payid,:ls_billcode,:ls_oriamt,:ls_Mstpayamt,:ls_payamt,:ls_paydate;
  341. DO WHILE sqlca.SQLCode = 0
  342. li_row = dw_child.InsertRow(0)
  343. dw_child.Object.payid [li_row] = ls_payid
  344. dw_child.Object.paydate[li_row] = ls_paydate
  345. dw_child.Object.oriamt[li_row] = ls_oriamt
  346. dw_child.Object.billcode[li_row] = ls_billcode
  347. dw_child.Object.mainmstpayamt[li_row] = ls_Mstpayamt
  348. dw_child.Object.mainpayamt[li_row] = ls_payamt
  349. FETCH pay_cur INTO :ls_payid,:ls_billcode,:ls_oriamt,:ls_Mstpayamt,:ls_payamt,:ls_paydate;
  350. LOOP
  351. CLOSE pay_cur;
  352. ELSE
  353. DECLARE pay_cur1 CURSOR FOR
  354. SELECT U_Bmstpay.payid,
  355. U_Bmstpay.Billcode,
  356. U_Bmstpay.oriamt,
  357. U_Bmstpay.Mstpayamt,
  358. U_Bmstpay.payamt,
  359. U_Bmstpay.paydate
  360. FROM U_Bmstpay
  361. WHERE U_Bmstpay.finishflag = 0 AND sptid = :ls_sptid AND
  362. (U_Bmstpay.Mstpayamt - U_Bmstpay.payamt) < 0 AND (U_Bmstpay.Mstpayamt <> 0)
  363. Order By U_Bmstpay.paydate Asc ;
  364. OPEN pay_cur1;
  365. FETCH pay_cur1 INTO :ls_payid,:ls_billcode,:ls_oriamt,:ls_Mstpayamt,:ls_payamt,:ls_paydate;
  366. DO WHILE sqlca.SQLCode = 0
  367. li_row = dw_child.InsertRow(0)
  368. dw_child.Object.payid [li_row] = ls_payid
  369. dw_child.Object.paydate[li_row] = ls_paydate
  370. dw_child.Object.oriamt[li_row] = ls_oriamt
  371. dw_child.Object.billcode[li_row] = ls_billcode
  372. dw_child.Object.mainmstpayamt[li_row] = ls_Mstpayamt
  373. dw_child.Object.mainpayamt[li_row] = ls_payamt
  374. FETCH pay_cur1 INTO :ls_payid,:ls_billcode,:ls_oriamt,:ls_Mstpayamt,:ls_payamt,:ls_paydate;
  375. LOOP
  376. CLOSE pay_cur1;
  377. END IF
  378. // payid
  379. // u_bmstpay_paydate
  380. // u_bmstpay_oriamt
  381. // u_bmstpay_billcode
  382. // u_bmstpay_mstpayamt
  383. // u_bmstpay_payamt
  384. //
  385. end subroutine
  386. public function integer wf_refresh_curuc (long arg_buybillid);//wf_refresh_curuc
  387. if arg_buybillid<=0 or isnull(arg_buybillid) then return 0
  388. long uc_row
  389. uc_row=dw_pageretr.getrow()
  390. if uc_row<=0 then return 0
  391. string relcode,dscrp,opemp,auditrep,inrep,buybillcode
  392. datetime paydate,opdate,auditdate
  393. decimal mstpayamt,payamt
  394. long sptid,moneyid
  395. int flag
  396. long itemid
  397. SELECT u_buybill.relcode,
  398. u_buybill.paydate,
  399. u_buybill.mstpayamt,
  400. u_buybill.payamt,
  401. u_buybill.sptid,
  402. u_buybill.dscrp,
  403. u_buybill.opdate,
  404. u_buybill.opemp,
  405. u_buybill.auditdate,
  406. u_buybill.auditrep,
  407. u_buybill.flag,
  408. u_buybill.inrep ,
  409. u_buybill.buybillcode,
  410. u_buybill.moneyid,
  411. u_buybill.itemid
  412. into :relcode,
  413. :paydate,
  414. :mstpayamt,
  415. :payamt,
  416. :sptid,
  417. :dscrp,
  418. :opdate,
  419. :opemp,
  420. :auditdate,
  421. :auditrep,
  422. :flag,
  423. :inrep,
  424. :buybillcode,
  425. :moneyid,
  426. :itemid
  427. FROM u_buybill
  428. WHERE ( u_buybill.buybillid = :arg_buybillid ) ;
  429. if sqlca.sqlcode<>0 then
  430. messagebox('错误',"查询操作失败(错误单据唯一码)>> "+sqlca.sqlerrtext,stopsign!,ok!)
  431. return 0
  432. end if
  433. dw_pageretr.object.u_buybill_buybillid[uc_row]=arg_buybillid
  434. dw_pageretr.object.u_buybill_paydate[uc_row]=paydate
  435. dw_pageretr.object.u_buybill_relcode[uc_row]=relcode
  436. dw_pageretr.object.u_buybill_inrep[uc_row]=inrep
  437. dw_pageretr.object.u_buybill_mstpayamt[uc_row]=mstpayamt
  438. dw_pageretr.object.u_buybill_payamt[uc_row]=payamt
  439. dw_pageretr.object.u_buybill_dscrp[uc_row]=dscrp
  440. dw_pageretr.object.u_buybill_sptid[uc_row]=sptid
  441. dw_pageretr.object.u_buybill_opdate[uc_row]=opdate
  442. dw_pageretr.object.u_buybill_opemp[uc_row]=opemp
  443. dw_pageretr.object.u_buybill_auditdate[uc_row]=auditdate
  444. dw_pageretr.object.u_buybill_auditrep[uc_row]=auditrep
  445. dw_pageretr.object.u_buybill_flag[uc_row]=flag
  446. dw_pageretr.object.u_buybill_buybillcode[uc_row]=buybillcode
  447. dw_pageretr.object.u_buybill_moneyid[uc_row]=moneyid
  448. dw_pageretr.object.u_buybill_itemid[uc_row]=itemid
  449. dw_uc.Reset()
  450. dw_pageretr.RowsCopy(dw_pageretr.GetRow(),dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  451. dw_uc.ResetUpdate()
  452. dw_uc.SetRedraw(TRUE)
  453. //wf_flagstatus_rf()
  454. return 1
  455. // u_buybill_buybillid
  456. // u_buybill_paydate
  457. // u_buybill_relcode
  458. // u_buybill_inrep
  459. // u_buybill_mstpayamt
  460. // u_buybill_payamt
  461. // u_buybill_paytype
  462. // u_buybill_dscrp
  463. // u_buybill_sptid
  464. // u_buybill_opdate
  465. // u_buybill_opemp
  466. // u_buybill_auditdate
  467. // u_buybill_auditrep
  468. // u_buybill_flag
  469. end function
  470. public subroutine wf_addnew (long arg_scid, long arg_id);String ls_sptcode,ls_sptname
  471. Long uc_row
  472. IF arg_id = 0 THEN RETURN
  473. cb_add.TriggerEvent( 'clicked')
  474. uc_row = dw_uc.GetRow( )
  475. SELECT sptcode,name
  476. INTO :ls_sptcode,:ls_sptname
  477. FROM u_spt
  478. Where sptid = :arg_id;
  479. dw_uc.SetRedraw(FALSE)
  480. IF sqlca.SQLCode <> 0 THEN
  481. THIS.TriggerEvent('ue_f9')
  482. ELSE
  483. dw_uc.Object.u_buybill_sptid[uc_row] = arg_id
  484. dw_uc.Object.u_spt_name[uc_row] = ls_sptname
  485. dw_uc.Object.u_spt_sptcode[uc_row] = ls_sptcode
  486. wf_autoadd_mx()
  487. END IF
  488. dw_uc.SetRedraw(TRUE)
  489. dw_uc.SetColumn("u_buybill_billtype")
  490. end subroutine
  491. on w_buybill.create
  492. int iCurrent
  493. call super::create
  494. this.dw_uc=create dw_uc
  495. this.dw_child=create dw_child
  496. this.cb_delet=create cb_delet
  497. this.cb_addzy=create cb_addzy
  498. this.cb_auditing=create cb_auditing
  499. this.cb_cauditing=create cb_cauditing
  500. this.cb_print=create cb_print
  501. this.cb_retrieve=create cb_retrieve
  502. this.st_3=create st_3
  503. this.ddlb_status=create ddlb_status
  504. this.cb_help=create cb_help
  505. this.cb_add=create cb_add
  506. this.cb_edit=create cb_edit
  507. this.cb_reset=create cb_reset
  508. this.ln_bar=create ln_bar
  509. this.ln_bar2=create ln_bar2
  510. this.r_bar=create r_bar
  511. this.ln_1=create ln_1
  512. this.ln_2=create ln_2
  513. iCurrent=UpperBound(this.Control)
  514. this.Control[iCurrent+1]=this.dw_uc
  515. this.Control[iCurrent+2]=this.dw_child
  516. this.Control[iCurrent+3]=this.cb_delet
  517. this.Control[iCurrent+4]=this.cb_addzy
  518. this.Control[iCurrent+5]=this.cb_auditing
  519. this.Control[iCurrent+6]=this.cb_cauditing
  520. this.Control[iCurrent+7]=this.cb_print
  521. this.Control[iCurrent+8]=this.cb_retrieve
  522. this.Control[iCurrent+9]=this.st_3
  523. this.Control[iCurrent+10]=this.ddlb_status
  524. this.Control[iCurrent+11]=this.cb_help
  525. this.Control[iCurrent+12]=this.cb_add
  526. this.Control[iCurrent+13]=this.cb_edit
  527. this.Control[iCurrent+14]=this.cb_reset
  528. this.Control[iCurrent+15]=this.ln_bar
  529. this.Control[iCurrent+16]=this.ln_bar2
  530. this.Control[iCurrent+17]=this.r_bar
  531. this.Control[iCurrent+18]=this.ln_1
  532. this.Control[iCurrent+19]=this.ln_2
  533. end on
  534. on w_buybill.destroy
  535. call super::destroy
  536. destroy(this.dw_uc)
  537. destroy(this.dw_child)
  538. destroy(this.cb_delet)
  539. destroy(this.cb_addzy)
  540. destroy(this.cb_auditing)
  541. destroy(this.cb_cauditing)
  542. destroy(this.cb_print)
  543. destroy(this.cb_retrieve)
  544. destroy(this.st_3)
  545. destroy(this.ddlb_status)
  546. destroy(this.cb_help)
  547. destroy(this.cb_add)
  548. destroy(this.cb_edit)
  549. destroy(this.cb_reset)
  550. destroy(this.ln_bar)
  551. destroy(this.ln_bar2)
  552. destroy(this.r_bar)
  553. destroy(this.ln_1)
  554. destroy(this.ln_2)
  555. end on
  556. event closequery;IF dw_edit_mode THEN
  557. Int ls_row = 0
  558. dw_UC.AcceptText()
  559. ls_row = dw_UC.GetNextModified(0, Primary!)+&
  560. dw_UC.GetNextModified(0, Filter!)+dw_UC.DeletedCount()
  561. IF ls_row > 0 THEN
  562. IF MessageBox('询问','单据数据已经改变,是否先保存?',Question!,YesNo!,1 ) = 1 THEN
  563. RETURN 1
  564. END IF
  565. ELSE
  566. ls_row = dw_child.GetNextModified(0, Primary!)+&
  567. dw_child.GetNextModified(0, Filter!)+dw_child.DeletedCount()
  568. IF ls_row > 0 THEN
  569. IF MessageBox('询问','单据明细数据已经改变,是否先保存?',Question!,YesNo!,1 ) = 1 THEN
  570. RETURN 1
  571. END IF
  572. END IF
  573. END IF
  574. END IF
  575. end event
  576. event user_key;call super::user_key;IF KeyDown(KeyF6!) THEN
  577. this.TRIGGEREVENT('ue_f6')
  578. ELSEIF KeyDown(KeyF7!) THEN
  579. this.TRIGGEREVENT('ue_f7')
  580. ELSEIF KeyDown(KeyF8!) or KeyDown(KeyShift!) and KeyDown(KeyEnter!) THEN
  581. this.TRIGGEREVENT('ue_f8')
  582. ELSEIF KeyDown(KeyF9!) THEN
  583. this.TRIGGEREVENT('ue_f9')
  584. ELSEIF KeyDown(KeyF10!) THEN
  585. this.TRIGGEREVENT('ue_f10')
  586. ELSEIF KeyDown(KeyF11!) THEN
  587. this.TRIGGEREVENT('ue_f11')
  588. ELSEIF KeyDown(KeyF12!) THEN
  589. this.TRIGGEREVENT('ue_f12')
  590. elseIF KeyDown(KeyF1!) THEN
  591. this.TriggerEvent("ue_help")
  592. end if
  593. end event
  594. event open;this.triggerevent('ue_before_open')
  595. wf_movetocenter()
  596. OLD_TITLE=THIS.TITLE
  597. s_tran=Message.PowerObjectParm
  598. IF not ISNULL(s_tran) then
  599. retrieve_all=s_tran.if_retrieve_all
  600. mode=s_tran.work_mode
  601. arg_pkid=s_tran.arg_pkid
  602. arg_string_code=s_tran.arg_string_code
  603. if_sharedata=s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  604. ds_share=s_tran.ds_share
  605. end if
  606. //CHOOSE CASE MODE
  607. // CASE 0
  608. // THIS.TITLE=OLD_TITLE+' 编辑模式 [F4-新建/保存 F5-编辑/放弃]'
  609. // CASE 1
  610. // THIS.TITLE=OLD_TITLE+' 选择模式 [F4-新建/保存 F5-编辑/放弃]'
  611. //END CHOOSE
  612. dw_pageretr.RBUTTON_FILTER_USE=true //右键查询功能开关
  613. dw_pageretr.titleclick_sort_use=true //单击标题排序功能开关
  614. dw_pageretr.SetTransObject (sqlca)
  615. //pkcolumndbtname=dw_pageretr.Describe("#1.dbname") //取第一列为关键字
  616. pkcolumndbtname=wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  617. ori_oldselect=dw_pageretr.Describe("DataWindow.Table.Select")
  618. ls_newselect=ori_oldselect
  619. ds_curquery=CREATE DATASTORE
  620. ds_curquery.DATAOBJECT='d_extr_find'
  621. ds_curquery.SetTransObject (sqlca)
  622. //if mode=1 then cb_mode_itfchg.TRIGGEREVENT(CLICKED!)
  623. wf_editindex_lockf()
  624. sle_usual_query.text=trim(arg_string_code)
  625. if NOT retrieve_all then
  626. THIS.TRIGGEREVENT("ue_usual_query_RETR") //修改ls_newselect,retrieve
  627. else
  628. if if_sharedata then
  629. ds_share.sharedata(dw_pageretr)
  630. else
  631. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  632. this.TRIGGEREVENT('RETRIEVE_pageretr')
  633. end if
  634. end if
  635. IF retrieve_all THEN
  636. THIS.TRIGGEREVENT("ue_usual_query_filt")
  637. END IF
  638. wf_refresh_interface()
  639. uc_column_int=13 //uc dw前8列可以编辑
  640. child_column_int=2 //子dw前4列可以编辑
  641. uo_bill=create uo_buybill
  642. IF not ISNULL(s_tran) then
  643. if s_tran.b_long>0 then
  644. wf_addnew(s_tran.c_long , s_tran.b_long)
  645. end if
  646. end if
  647. end event
  648. event ue_before_open;dw_child.settransobject(sqlca)
  649. dw_uc.settransobject(sqlca)
  650. end event
  651. event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  652. boolean cb_priorpage_enabled,cb_retrieve_enabled
  653. cb_nextpage_enabled=cb_nextpage.enabled
  654. cb_retrieveall_enabled=cb_retrieveall.enabled
  655. cb_nextpage.enabled=false
  656. cb_retrieveall.enabled=false
  657. dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数
  658. dw_pageretr.retrieve(cur_flag,sys_user_spttype)
  659. IF dw_pageretr.RowCount() > 0 THEN
  660. dw_pageretr.SetRow(1)
  661. dw_pageretr.triggerevent(rowfocuschanged!)
  662. end if
  663. this.triggerevent('retreve_childdw')
  664. cb_nextpage.enabled=cb_nextpage_enabled
  665. cb_retrieveall.enabled=cb_retrieveall_enabled
  666. end event
  667. event key;this.triggerevent('user_key')
  668. end event
  669. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  670. ls_newselect=lower(ori_oldselect)
  671. if trim(sle_usual_query.text)<>'' then
  672. if pos(trim(sle_usual_query.text),'%')=0 then
  673. ls_querystrpart="( u_buybill.buybillcode like '%"+trim(sle_usual_query.text)+"%')"
  674. else
  675. ls_querystrpart="( u_buybill.buybillcode like '"+trim(sle_usual_query.text)+"')"
  676. end if
  677. if Pos(ls_newselect," where ") <> 0 then
  678. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  679. else
  680. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  681. end if
  682. end if
  683. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  684. this.triggerevent('retrieve_pageretr')
  685. end event
  686. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  687. if trim(sle_usual_query.text)<>'' then
  688. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  689. obj_expr=obj_expr+'( u_buybill_buybillcode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  690. ELSE
  691. obj_expr=obj_expr+'( u_buybill_buybillcode LIKE "'+trim(sle_usual_query.text)+'" )'
  692. END IF
  693. end if
  694. dw_pageretr.setfilter(obj_expr)
  695. dw_pageretr.SetRedraw(False)
  696. dw_pageretr.filter()
  697. if dw_pageretr.rowcount()>=1 then
  698. dw_pageretr.selectrow(0,false)
  699. dw_pageretr.selectrow(1,true)
  700. end if
  701. dw_pageretr.SetRedraw(TRUE)
  702. end event
  703. event resize;call super::resize;ln_bar.EndX = THIS.Width
  704. ln_bar2.EndX = THIS.Width
  705. ln_1.EndX = THIS.Width
  706. ln_2.EndX = THIS.Width
  707. r_bar.Width = THIS.Width
  708. Long w_width,w_height
  709. w_width = 3602
  710. w_height = 2300
  711. IF newwidth < w_width THEN THIS.Width = w_width
  712. IF newheight < w_height THEN THIS.Height = w_height
  713. dw_child.Width = THIS.Width - (w_width - dw_child_w)
  714. dw_child.Height = THIS.Height - (w_height - dw_child_h)
  715. dw_pageretr.Width = THIS.Width - (w_width - dw_pageretr_w)
  716. end event
  717. type cb_func from w_publ_pageretr`cb_func within w_buybill
  718. integer x = 151
  719. integer y = 0
  720. integer width = 151
  721. integer height = 172
  722. end type
  723. type cb_exit from w_publ_pageretr`cb_exit within w_buybill
  724. integer x = 1888
  725. integer y = 0
  726. integer width = 151
  727. integer height = 172
  728. integer taborder = 230
  729. integer picsize = 16
  730. toolbaralignment pic_align = alignattop!
  731. boolean border = false
  732. end type
  733. type sle_usual_query from w_publ_pageretr`sle_usual_query within w_buybill
  734. integer x = 251
  735. integer y = 188
  736. integer width = 549
  737. boolean bringtotop = true
  738. end type
  739. type cb_retrieveall from w_publ_pageretr`cb_retrieveall within w_buybill
  740. integer x = 2473
  741. integer height = 172
  742. integer taborder = 180
  743. string normalpicname = "p1.ico"
  744. integer picsize = 16
  745. toolbaralignment pic_align = alignattop!
  746. boolean border = false
  747. end type
  748. type em_pagerowno from w_publ_pageretr`em_pagerowno within w_buybill
  749. integer x = 2130
  750. integer y = 52
  751. integer width = 334
  752. integer taborder = 160
  753. boolean bringtotop = true
  754. end type
  755. type dw_pageretr from w_publ_pageretr`dw_pageretr within w_buybill
  756. integer x = 2025
  757. integer y = 296
  758. integer width = 1536
  759. integer height = 1000
  760. boolean bringtotop = true
  761. string title = "单据摘要内容"
  762. string dataobject = "dw_buybilledit_index"
  763. end type
  764. event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;IF NOT dw_edit_mode THEN
  765. PARENT.TriggerEvent('retrieve_childdw_uc')
  766. PARENT.TriggerEvent('retrieve_childdw')
  767. END IF
  768. DW_UC.SETROW(currentrow)
  769. DW_UC.ScrollToRow (currentrow)
  770. end event
  771. event dw_pageretr::ue_after_filter;if not dw_edit_mode then parent.triggerevent('retrieve_childdw')
  772. end event
  773. event dw_pageretr::constructor;call super::constructor;dw_pageretr_w = this.width
  774. dw_pageretr_h = this.height
  775. end event
  776. type st_1 from w_publ_pageretr`st_1 within w_buybill
  777. integer x = 46
  778. integer y = 208
  779. integer width = 201
  780. string text = "单号含:"
  781. end type
  782. type cb_nextpage from w_publ_pageretr`cb_nextpage within w_buybill
  783. integer x = 2638
  784. integer width = 64
  785. integer height = 172
  786. integer taborder = 220
  787. integer picsize = 16
  788. toolbaralignment pic_align = alignattop!
  789. boolean border = false
  790. end type
  791. type dw_uc from datawindow within w_buybill
  792. event dwnkey pbm_dwnkey
  793. integer x = 14
  794. integer y = 296
  795. integer width = 2007
  796. integer height = 1004
  797. integer taborder = 80
  798. string dataobject = "dw_buybilledit_edit"
  799. boolean livescroll = true
  800. borderstyle borderstyle = stylelowered!
  801. end type
  802. event dwnkey;parent.triggerevent('user_key')
  803. string ls_sptcode
  804. string ls_sptname
  805. long ll_sptid,uc_row
  806. uc_row=dw_uc.getrow()
  807. if dw_uc.GetColumnName ( )='u_spt_sptcode' and key = KeyEnter! then
  808. dw_uc.accepttext()
  809. ls_sptcode=trim(dw_uc.object.u_spt_sptcode[uc_row])
  810. select sptid,name into :ll_sptid,:ls_sptname from u_spt where sptcode=:ls_sptcode;
  811. dw_uc.setredraw(false)
  812. if sqlca.sqlcode<>0 then
  813. parent.triggerevent('ue_f9')
  814. return 1
  815. else
  816. dw_uc.object.u_buybill_sptid[uc_row]=ll_sptid
  817. dw_uc.object.u_spt_name[uc_row]=ls_sptname
  818. wf_autoadd_mx()
  819. end if
  820. dw_uc.setredraw(true)
  821. dw_uc.SetColumn("u_buybill_billtype")
  822. return 1
  823. else
  824. If key = KeyEnter! or key = Keydownarrow! Then //
  825. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  826. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  827. Return 1
  828. elseif key = Keyuparrow! then
  829. keybd_event ( 16, 0, 0 , 0 )
  830. keybd_event ( 9, 0, 0 , 0 )
  831. keybd_event ( 9, 0, 2, 0 )
  832. keybd_event ( 16, 0, 2, 0 )
  833. return 1
  834. End If
  835. end if
  836. //parent.triggerevent('user_key')
  837. //If key = KeyEnter! Then //
  838. //keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  839. //keybd_event ( 9, 0, 2, 0 ) // 释放tab
  840. //Return 1
  841. //End If
  842. //
  843. end event
  844. event rowfocuschanged;IF not dw_edit_mode then
  845. if currentrow >0 THEN
  846. dw_pageretr.SETROW(currentrow)
  847. dw_pageretr.ScrollToRow(currentrow)
  848. dw_pageretr.selectrow(0,false)
  849. dw_pageretr.selectrow(currentrow,true)
  850. end if
  851. // parent.triggerevent('retrieve_childdw')
  852. end if
  853. //if currentrow>0 and not dw_edit_mode then
  854. // if dw_uc.object.flag[currentrow]=1 then
  855. // cb_auditing.enabled=false
  856. // cb_delet.enabled=false
  857. // cb_edit.enabled=false
  858. // cb_addzy.enabled=true
  859. // else
  860. // cb_auditing.enabled=true
  861. // cb_delet.enabled=true
  862. // cb_edit.enabled=true
  863. // cb_addzy.enabled=false
  864. // end if
  865. //else
  866. // cb_auditing.enabled=false
  867. // cb_delet.enabled=false
  868. // cb_edit.enabled=false
  869. // cb_addzy.enabled=false
  870. //end if
  871. end event
  872. event rowfocuschanging;if dw_edit_mode then return 1
  873. end event
  874. event doubleclicked;IF dw_edit_mode and row >0 THEN
  875. parent.triggerevent('ue_f9')
  876. END IF
  877. end event
  878. event itemchanged;IF NOT dw_edit_mode THEN RETURN
  879. IF row <= 0 THEN RETURN
  880. IF dw_uc.GetColumnName ( ) = 'u_sptt_sptcode' THEN
  881. String ls_code,ls_name,ls_spttype
  882. Long ls_sptid
  883. dw_uc.AcceptText()
  884. ls_code = dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()]
  885. SELECT u_spt.sptid,
  886. u_spt.name,
  887. u_spt.spttype
  888. INTO :ls_sptid,:ls_name,:ls_spttype
  889. FROM u_spt
  890. Where (sptcode = :ls_code);
  891. dw_uc.SetRedraw(FALSE)
  892. IF sqlca.SQLCode <> 0 THEN
  893. dw_uc.Object.u_buybill_sptid[dw_uc.GetRow()] = 0
  894. dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()] = ''
  895. dw_uc.Object.u_spt_name[dw_uc.GetRow()] = ''
  896. ELSE
  897. dw_uc.Object.u_salebill_sptid[dw_uc.GetRow()] = ls_sptid
  898. dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()] = ls_code
  899. dw_uc.Object.u_spt_name[dw_uc.GetRow()] = ls_name
  900. END IF
  901. wf_autoadd_mx()
  902. dw_uc.SetRedraw(TRUE)
  903. ELSEIF dw_uc.GetColumnName ( ) = 'u_buybill_billtype' THEN
  904. wf_autoadd_mx()
  905. END IF
  906. end event
  907. event buttonclicked;IF dw_edit_mode and row >0 THEN
  908. parent.triggerevent('ue_f9')
  909. END IF
  910. end event
  911. type dw_child from u_dw_rbtnfilter within w_buybill
  912. event dwnkey pbm_dwnkey
  913. integer x = 5
  914. integer y = 1300
  915. integer width = 3543
  916. integer height = 876
  917. integer taborder = 30
  918. boolean bringtotop = true
  919. boolean titlebar = true
  920. string title = "单据明细摘要内容"
  921. string dataobject = "dw_buybillmx_edit"
  922. boolean maxbox = true
  923. boolean hscrollbar = true
  924. boolean vscrollbar = true
  925. boolean resizable = true
  926. boolean hsplitscroll = true
  927. borderstyle borderstyle = stylebox!
  928. end type
  929. event dwnkey;call super::dwnkey;If key = KeyEnter! Then //
  930. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  931. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  932. return 1
  933. End If
  934. parent.triggerevent('user_key')
  935. end event
  936. event constructor;call super::constructor;titleclick_sort_use=true
  937. dw_child_h = THIS.Height
  938. dw_child_w = THIS.Width
  939. end event
  940. event clicked;call super::clicked;IF row>0 and dw_edit_mode THEN
  941. this.setrow(row)
  942. end if
  943. end event
  944. event rowfocuschanged;//IF dw_edit_mode THEN RETURN
  945. IF currentrow <=0 THEN RETURN
  946. this.selectrow(0,false)
  947. this.selectrow(currentrow,true)
  948. end event
  949. type cb_delet from uo_imflatbutton within w_buybill
  950. integer x = 631
  951. integer width = 151
  952. integer height = 172
  953. integer taborder = 250
  954. boolean bringtotop = true
  955. string text = "删除"
  956. string normalpicname = "delete.bmp"
  957. integer picsize = 16
  958. toolbaralignment pic_align = alignattop!
  959. boolean border = false
  960. end type
  961. event clicked;call super::clicked;IF Not f_power_ind(655) THEN
  962. MessageBox('提示','你没有使用权限!',information!,ok!)
  963. RETURN
  964. END IF
  965. IF dw_edit_mode THEN RETURN
  966. IF Not KeyDown(KeyControl!) THEN
  967. IF MessageBox ("询问","是否确定要删除当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  968. String arg_msg = ''
  969. Long uc_row
  970. uc_row = dw_pageretr.GetRow()
  971. IF uc_row <= 0 THEN
  972. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  973. RETURN
  974. END IF
  975. string ll_buydscrp
  976. long ll_buybillid
  977. ll_buybillid = dw_pageretr.Object.u_buybill_buybillid[uc_row]
  978. Select dscrp Into :ll_buydscrp From u_buybill Where buybillid=:ll_buybillid ;
  979. IF trim(ll_buydscrp) = "供应商付款结算单自动生成" THEN
  980. MessageBox('错误',"单据为自动建立类型单据,请撤审相关单据。")
  981. return
  982. END IF
  983. IF uo_bill.del(dw_pageretr.Object.u_buybill_buybillid[uc_row],arg_msg,True) = 0 THEN
  984. MessageBox('错误',arg_msg,stopsign!,ok!)
  985. ELSE
  986. MessageBox('提示','删除单据'+String(dw_pageretr.Object.u_buybill_buybillcode[uc_row])+'成功!',information!,ok!)
  987. //日志
  988. Long ls_id,ls_curid
  989. String ls_code,ls_opemp
  990. ls_id = dw_pageretr.Object.u_buybill_buybillid[uc_row]
  991. ls_curid = dw_pageretr.Object.u_buybill_sptid[uc_row]
  992. ls_code = dw_pageretr.Object.u_buybill_buybillcode[uc_row]
  993. ls_opemp = dw_pageretr.Object.u_buybill_opemp[uc_row]
  994. f_setsysoplog('供应商对数单','供应商对数单删除,ID:'+String(ls_id)+',供应商ID:'+String(ls_curid)+',code:'+ls_code+',建立人:'+ls_opemp,arg_msg,True)
  995. dw_pageretr.DeleteRow(uc_row)
  996. dw_pageretr.PostEvent(RowFocusChanged!)
  997. END IF
  998. ELSE
  999. IF MessageBox ("询问","是否确定要批删除列表中未审核的单据?",Question!,YesNo! ) = 2 THEN RETURN
  1000. Long ll_billid, ll_i
  1001. String ls_msg , ll_dscrp
  1002. Int li_flag
  1003. Long ll_suc,ll_fail
  1004. dw_pageretr.AcceptText()
  1005. // li_flag = dw_pageretr.Object.u_buybill_flag[dw_pageretr.GetRow()]
  1006. Open(w_sys_wait_jdt) //初始化进度条
  1007. w_sys_wait_jdt.Show()
  1008. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  1009. FOR ll_i = 1 To dw_pageretr.RowCount()
  1010. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_buybill_buybillcode[ll_i] + " 正在删除..." //进度信息
  1011. li_flag = dw_pageretr.Object.u_buybill_flag[ll_i]
  1012. IF li_flag = 1 THEN CONTINUE
  1013. ll_billid = dw_pageretr.Object.u_buybill_buybillid[ll_i]
  1014. // ls_taskcode = dw_pageretr.Object.u_salebill_salebillcode[ll_i]
  1015. Select dscrp Into :ll_buydscrp From u_buybill Where buybillid=:ll_billid ;
  1016. IF trim(ll_buydscrp) = "供应商付款结算单自动生成" THEN
  1017. ll_fail++
  1018. ls_msg = "单据为自动建立类型单据,请撤审相关单据。"
  1019. CONTINUE
  1020. END IF
  1021. IF uo_bill.del(ll_billid,arg_msg,True) = 0 THEN
  1022. ll_fail++
  1023. CONTINUE
  1024. END IF
  1025. ll_suc++
  1026. w_sys_wait_jdt.wf_inc(ll_i) //进度
  1027. NEXT
  1028. Close(w_sys_wait_jdt)
  1029. MessageBox('提示','批删除成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail) + ls_msg,information!,ok!)
  1030. Parent.TriggerEvent('retrieve_pageretr')
  1031. END IF
  1032. end event
  1033. type cb_addzy from uo_imflatbutton within w_buybill
  1034. integer x = 1335
  1035. integer width = 251
  1036. integer height = 172
  1037. integer taborder = 240
  1038. boolean bringtotop = true
  1039. string text = "单据功能"
  1040. string normalpicname = "other.bmp"
  1041. integer picsize = 16
  1042. toolbaralignment pic_align = alignattop!
  1043. boolean border = false
  1044. end type
  1045. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1046. string menustr
  1047. menustr="Text=增加备注~tEvent=ue_addzy"
  1048. if len(trim(menustr))<>0 then
  1049. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1050. dmPopupMenu.mf_BuildMenu(This, menustr)
  1051. dmPopupMenu.mf_PopMenu()
  1052. Destroy dmPopupMenu
  1053. end if
  1054. end event
  1055. type cb_auditing from uo_imflatbutton within w_buybill
  1056. integer x = 782
  1057. integer width = 151
  1058. integer height = 172
  1059. integer taborder = 250
  1060. string text = "审核"
  1061. string normalpicname = "audit.bmp"
  1062. integer picsize = 16
  1063. toolbaralignment pic_align = alignattop!
  1064. boolean border = false
  1065. end type
  1066. event clicked;call super::clicked;if not f_power_ind(654) then
  1067. messagebox('提示','你没有使用权限!',information!,ok!)
  1068. return
  1069. end if
  1070. if dw_edit_mode then return
  1071. string arg_msg=''
  1072. long pagerert_row
  1073. pagerert_row=dw_pageretr.getrow()
  1074. if pagerert_row<=0 then
  1075. messagebox('提示','请选定当前目标单据!',information!,ok!)
  1076. return
  1077. end if
  1078. if uo_bill.auditing(dw_pageretr.object.u_buybill_buybillid[pagerert_row],publ_operator,arg_msg,true)=0 then
  1079. messagebox('错误',arg_msg,stopsign!,ok!)
  1080. ELSE
  1081. messagebox('提示','审核成功!',information!,ok!)
  1082. wf_refresh_curuc(dw_pageretr.object.u_buybill_buybillid[pagerert_row])
  1083. end if
  1084. end event
  1085. type cb_cauditing from uo_imflatbutton within w_buybill
  1086. integer x = 933
  1087. integer width = 151
  1088. integer height = 172
  1089. integer taborder = 260
  1090. boolean bringtotop = true
  1091. string text = "撤审"
  1092. string normalpicname = "caudit.bmp"
  1093. integer picsize = 16
  1094. toolbaralignment pic_align = alignattop!
  1095. boolean border = false
  1096. end type
  1097. event clicked;call super::clicked;if not f_power_ind(654) then
  1098. messagebox('提示','你没有使用权限!',information!,ok!)
  1099. return
  1100. end if
  1101. if dw_edit_mode then return
  1102. string arg_msg=''
  1103. long pagerert_row
  1104. pagerert_row=dw_pageretr.getrow()
  1105. if pagerert_row<=0 then
  1106. messagebox('提示','请选定当前目标单据!',information!,ok!)
  1107. return
  1108. end if
  1109. if uo_bill.c_auditing(dw_pageretr.object.u_buybill_buybillid[pagerert_row],publ_operator,arg_msg,true)=0 then
  1110. messagebox('错误',arg_msg,stopsign!,ok!)
  1111. ELSE
  1112. messagebox('提示','撤审成功!',information!,ok!)
  1113. wf_refresh_curuc(dw_pageretr.object.u_buybill_buybillid[pagerert_row])
  1114. end if
  1115. end event
  1116. type cb_print from uo_imflatbutton within w_buybill
  1117. event ue_viewprint ( )
  1118. integer x = 1737
  1119. integer width = 151
  1120. integer height = 172
  1121. integer taborder = 40
  1122. boolean bringtotop = true
  1123. string text = "预览"
  1124. string normalpicname = "preview.bmp"
  1125. integer picsize = 16
  1126. toolbaralignment pic_align = alignattop!
  1127. boolean border = false
  1128. end type
  1129. event ue_viewprint();Long ls_msgprintid
  1130. ls_msgprintid = Message.LongParm
  1131. SELECT dft_new_dwname,powerid,auditprint,prownum
  1132. INTO :ls_newname,:ls_powerid,:li_auditprint,:ll_prownum
  1133. FROM sys_dft_dwprint_dynamic
  1134. Where sys_dft_dwprint_dynamic.dwprintid = :ls_msgprintid USING sqlca;
  1135. IF sqlca.SQLCode <> 0 THEN
  1136. ls_newname = ''
  1137. ls_powerid = 0
  1138. END IF
  1139. IF dw_pageretr.RowCount() = 0 THEN
  1140. MessageBox('提示','没有可打印的单据!', Information!, OK! )
  1141. RETURN
  1142. END IF
  1143. Long LS_ROW
  1144. LS_ROW = dw_pageretr.GetRow()
  1145. IF LS_ROW <= 0 THEN
  1146. MessageBox('提示','没有打印目标单据!', Information!, OK! )
  1147. RETURN
  1148. END IF
  1149. S_print_MSG LS_PRMSG
  1150. IF ls_newname <> '' THEN
  1151. LS_PRMSG.obj_dwNAME = ls_newname
  1152. ELSE
  1153. LS_PRMSG.obj_dwNAME = 'dw_rp_buybill_print'
  1154. END IF
  1155. LS_PRMSG.TAG_TEXT = '供应商对数单'
  1156. LS_PRMSG.FILTER_STRING = ''
  1157. LS_PRMSG.retr_pram_falg = 15
  1158. LS_PRMSG.PAGECH_FLAG = 0
  1159. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_buybill_buybillid[LS_ROW]
  1160. LS_PRMSG.rowcnt = dw_child.RowCount()
  1161. OpenWithParm(w_publ_preview,LS_PRMSG)
  1162. end event
  1163. event clicked;call super::clicked;String ls_dft_old_dwname, ls_dft_new_dwname,ls_chnname,ls_dwtype
  1164. Long ls_dwprintid
  1165. String ls_windowname
  1166. Int ls_i
  1167. Long ll_billid
  1168. Int li_ifuse
  1169. Long ll_row
  1170. String Name,ll_rpname
  1171. Long ll_RpID,ll_flag,ll_ifuse
  1172. w_curwin = PARENT
  1173. ls_windowname = PARENT.ClassName ( )
  1174. SELECT billid,ifuse
  1175. INTO :ll_billid,
  1176. :li_ifuse
  1177. FROM u_report_bill
  1178. Where winName = :ls_windowname;
  1179. IF sqlca.SQLCode <> 0 THEN
  1180. li_ifuse = 0
  1181. END IF
  1182. IF li_ifuse = 0 THEN
  1183. DECLARE dft_dwprint CURSOR FOR
  1184. SELECT dwprintid,dft_old_dwname, dft_new_dwname, chnname, dwtype
  1185. FROM sys_dft_dwprint_dynamic
  1186. WHERE dwtype = :ls_windowname
  1187. AND ptype = 0 and ifdefault = 0 ;
  1188. OPEN dft_dwprint;
  1189. FETCH dft_dwprint INTO :ls_dwprintid,:ls_dft_old_dwname, :ls_dft_new_dwname,:ls_chnname, :ls_dwtype;
  1190. IF sqlca.SQLCode <> 0 THEN
  1191. TriggerEvent('ue_viewprint',0,0)
  1192. ELSE
  1193. m_dft_dwprint_item m_1
  1194. m_1 = CREATE m_dft_dwprint_item
  1195. ls_i = 1
  1196. DO WHILE sqlca.SQLCode = 0
  1197. f_add_menuItem_dft(m_1,ls_i,ls_chnname,String(ls_dwprintid))
  1198. FETCH dft_dwprint INTO :ls_dwprintid,:ls_dft_old_dwname, :ls_dft_new_dwname,:ls_chnname, :ls_dwtype;
  1199. ls_i++
  1200. LOOP
  1201. CLOSE dft_dwprint;
  1202. m_1.PopMenu(THIS.X+50,THIS.Y+50)
  1203. END IF
  1204. ELSE
  1205. DECLARE rpt_dwprint CURSOR FOR
  1206. SELECT RpID,RpName,Flag,Ifuse
  1207. FROM U_report_list
  1208. WHERE billid = :ll_billid
  1209. Order By RpName;
  1210. OPEN rpt_dwprint;
  1211. FETCH rpt_dwprint INTO :ll_RpID,:ll_rpname,:ll_flag,:ll_ifuse;
  1212. IF sqlca.SQLCode <> 0 THEN
  1213. PARENT.TriggerEvent('ue_rpt_viewprint',0,0)
  1214. ELSE
  1215. m_rpt_dwprint_item m_2
  1216. m_2 = CREATE m_rpt_dwprint_item
  1217. ls_i = 1
  1218. DO WHILE sqlca.SQLCode = 0
  1219. IF f_pow_rpt(ll_RpID) AND ll_ifuse = 1 AND ll_flag = 1 THEN //权限检查f_pow_rpt( )
  1220. f_add_menuItem_rpt(m_2,ls_i,ll_rpname,String(ll_RpID))
  1221. END IF
  1222. FETCH rpt_dwprint INTO :ll_RpID,:ll_rpname,:ll_flag,:ll_ifuse;
  1223. ls_i++
  1224. LOOP
  1225. CLOSE rpt_dwprint;
  1226. m_2.Item[1].Visible = FALSE
  1227. m_2.PopMenu(THIS.X+50,THIS.Y+50)
  1228. END IF
  1229. END IF
  1230. end event
  1231. type cb_retrieve from uo_imflatbutton within w_buybill
  1232. integer width = 151
  1233. integer height = 172
  1234. integer taborder = 40
  1235. string text = "重查"
  1236. string normalpicname = "refresh.bmp"
  1237. integer picsize = 16
  1238. toolbaralignment pic_align = alignattop!
  1239. boolean border = false
  1240. end type
  1241. event clicked;call super::clicked;parent.triggerevent('retrieve_pageretr')
  1242. end event
  1243. type st_3 from statictext within w_buybill
  1244. integer x = 814
  1245. integer y = 208
  1246. integer width = 201
  1247. integer height = 52
  1248. boolean bringtotop = true
  1249. integer textsize = -9
  1250. integer weight = 400
  1251. fontcharset fontcharset = gb2312charset!
  1252. fontpitch fontpitch = variable!
  1253. string facename = "宋体"
  1254. long textcolor = 33554432
  1255. long backcolor = 134217739
  1256. string text = "状 态:"
  1257. boolean focusrectangle = false
  1258. end type
  1259. type ddlb_status from dropdownlistbox within w_buybill
  1260. integer x = 1019
  1261. integer y = 188
  1262. integer width = 361
  1263. integer height = 300
  1264. integer taborder = 30
  1265. boolean bringtotop = true
  1266. integer textsize = -9
  1267. integer weight = 400
  1268. fontcharset fontcharset = gb2312charset!
  1269. fontpitch fontpitch = variable!
  1270. string facename = "宋体"
  1271. long textcolor = 33554432
  1272. string text = "[全部]"
  1273. boolean sorted = false
  1274. string item[] = {"[全部]","待审核","已审核"}
  1275. borderstyle borderstyle = stylelowered!
  1276. end type
  1277. event selectionchanged;if index=1 then
  1278. cur_flag=-1
  1279. elseif index=2 then
  1280. cur_flag=0
  1281. elseif index=3 then
  1282. cur_flag=1
  1283. end if
  1284. parent.triggerevent('retrieve_pageretr')
  1285. end event
  1286. type cb_help from uo_imflatbutton within w_buybill
  1287. string tag = "帮助[F1]"
  1288. integer x = 1586
  1289. integer width = 151
  1290. integer height = 172
  1291. integer taborder = 50
  1292. boolean bringtotop = true
  1293. string text = "帮助"
  1294. string normalpicname = "help.bmp"
  1295. integer picsize = 16
  1296. toolbaralignment pic_align = alignattop!
  1297. boolean border = false
  1298. end type
  1299. event clicked;call super::clicked;parent.triggerevent("ue_help")
  1300. end event
  1301. type cb_add from uo_imflatbutton within w_buybill
  1302. integer x = 302
  1303. integer width = 165
  1304. integer height = 172
  1305. integer taborder = 270
  1306. boolean bringtotop = true
  1307. string text = "新建&S"
  1308. string normalpicname = "new.bmp"
  1309. integer picsize = 16
  1310. toolbaralignment pic_align = alignattop!
  1311. boolean border = false
  1312. end type
  1313. event clicked;call super::clicked;IF NOT f_power_ind(642) THEN
  1314. MessageBox('提示','你没有使用权限!',information!,ok!)
  1315. RETURN
  1316. END IF
  1317. String arg_msg = ''
  1318. Long uc_row,pagerert_row
  1319. Long relid_pageretr,reld_uc
  1320. Long i
  1321. IF dw_edit_mode THEN
  1322. dw_uc.AcceptText()
  1323. dw_child.AcceptText()
  1324. uc_row = dw_uc.GetRow()
  1325. IF uc_row <= 0 THEN
  1326. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  1327. RETURN
  1328. END IF
  1329. IF NOT dw_uc.Object.u_buybill_paydate[uc_row] > DateTime(2000-01-01,Now()) THEN
  1330. MessageBox('提示','不合理发生时间!',information!,ok!)
  1331. dw_uc.SetFocus()
  1332. dw_uc.SetColumn("u_buybill_paydate")
  1333. RETURN
  1334. END IF
  1335. IF NOT Len(String(dw_uc.Object.u_buybill_inrep[uc_row])) > 0 THEN
  1336. MessageBox('提示','请填写经手人!',information!,ok!)
  1337. dw_uc.SetFocus()
  1338. dw_uc.SetColumn("u_buybill_inrep")
  1339. RETURN
  1340. END IF
  1341. IF dw_uc.Object.u_buybill_banktypeid[uc_row] <= 0 THEN
  1342. MessageBox('提示','请填写结算方式!',information!,ok!)
  1343. dw_uc.SetFocus()
  1344. dw_uc.SetColumn("u_buybill_banktypeid")
  1345. RETURN
  1346. END IF
  1347. IF dw_uc.Object.u_buybill_moneyid[uc_row] <= 0 THEN
  1348. MessageBox('提示','请填写币种!',information!,ok!)
  1349. dw_uc.SetFocus()
  1350. dw_uc.SetColumn("u_buybill_moneyid")
  1351. RETURN
  1352. END IF
  1353. uo_bill.opemp = publ_operator
  1354. uo_bill.paydate = dw_uc.Object.u_buybill_paydate[uc_row]
  1355. uo_bill.relcode = dw_uc.Object.u_buybill_relcode[uc_row]
  1356. uo_bill.inrep = dw_uc.Object.u_buybill_inrep[uc_row]
  1357. uo_bill.banktypeid = dw_uc.Object.u_buybill_banktypeid[uc_row]
  1358. uo_bill.dscrp = dw_uc.Object.u_buybill_dscrp[uc_row]
  1359. uo_bill.sptid = dw_uc.Object.u_buybill_sptid[uc_row]
  1360. uo_bill.mstpayamt = dw_uc.Object.u_buybill_mstpayamt[uc_row]
  1361. uo_bill.payamt = dw_uc.Object.u_buybill_payamt[uc_row]
  1362. uo_bill.accountsid = dw_uc.Object.u_buybill_accountsid[uc_row]
  1363. uo_bill.itemid = dw_uc.Object.u_buybill_itemid[uc_row]
  1364. uo_bill.billtype = dw_uc.Object.u_buybill_billtype[uc_row]
  1365. uo_bill.moneyid = dw_uc.Object.u_buybill_moneyid[uc_row]
  1366. //uo_bill.buildtype=1
  1367. FOR i = 1 TO dw_child.RowCount()
  1368. IF dw_child.Object.Mstpayamt[i] <> 0 OR dw_child.Object.payamt[i] <> 0 THEN
  1369. IF uo_bill.acceptmx(dw_child.Object.payid[i],&
  1370. dw_child.Object.billcode[i],&
  1371. dw_child.Object.Mstpayamt[i],&
  1372. dw_child.Object.payamt[i],&
  1373. dw_child.Object.oriamt[i],&
  1374. dw_child.Object.mainmstpayamt[i],&
  1375. dw_child.Object.mainpayamt[i],&
  1376. dw_child.Object.relbillcode[i],&
  1377. arg_msg) = 0 THEN
  1378. MessageBox('错误',arg_msg,stopsign!,ok!)
  1379. RETURN
  1380. END IF
  1381. END IF
  1382. NEXT
  1383. IF uo_bill.Save(arg_msg,TRUE) = 0 THEN
  1384. MessageBox('错误',arg_msg,stopsign!,ok!)
  1385. RETURN
  1386. END IF
  1387. MessageBox('提示','保存操作成功!',information!,ok!)
  1388. Long ll_row
  1389. ll_row = dw_pageretr.GetRow()
  1390. dw_pageretr.SelectRow(0,FALSE)
  1391. dw_pageretr.SelectRow(ll_row,TRUE)
  1392. wf_refresh_curuc(uo_bill.buybillid) //刷新uc
  1393. ELSE
  1394. IF uo_bill.newbegin() = 0 THEN //生产令领料
  1395. MessageBox('错误',arg_msg,stopsign!,ok!)
  1396. RETURN
  1397. END IF
  1398. END IF
  1399. IF NOT dw_edit_mode THEN
  1400. Int li_row
  1401. li_row = dw_pageretr.InsertRow (1)
  1402. dw_pageretr.ScrollToRow(li_row)
  1403. dw_child.Reset()
  1404. dw_uc.Reset()
  1405. dw_uc.SetFocus()
  1406. dw_pageretr.RowsCopy(li_row,li_row, Primary!, dw_uc, 1, Primary!)
  1407. END IF
  1408. dw_edit_mode = NOT dw_edit_mode
  1409. wf_refresh_interface()
  1410. end event
  1411. type cb_edit from uo_imflatbutton within w_buybill
  1412. integer x = 466
  1413. integer width = 165
  1414. integer height = 172
  1415. integer taborder = 280
  1416. boolean bringtotop = true
  1417. string text = "修改&E"
  1418. string normalpicname = "open.bmp"
  1419. integer picsize = 16
  1420. toolbaralignment pic_align = alignattop!
  1421. boolean border = false
  1422. end type
  1423. event clicked;call super::clicked;if not f_power_ind(642) then
  1424. messagebox('提示','你没有使用权限!',information!,ok!)
  1425. return
  1426. end if
  1427. string arg_msg=''
  1428. long uc_row
  1429. uc_row=dw_pageretr.getrow()
  1430. if uc_row<=0 then
  1431. messagebox('提示','请选定当前目标单据!',information!,ok!)
  1432. return
  1433. end if
  1434. if not dw_edit_mode then
  1435. if uo_bill.updatebegin(dw_pageretr.object.u_buybill_buybillid[uc_row],arg_msg)=0 then
  1436. messagebox('错误',arg_msg,stopsign!,ok!)
  1437. return
  1438. end if
  1439. end if
  1440. dw_edit_mode= NOT dw_edit_mode
  1441. wf_refresh_interface()
  1442. IF dw_edit_mode THEN
  1443. dw_pageretr.SetFocus()
  1444. else
  1445. parent.triggerevent('retrieve_pageretr')
  1446. END IF
  1447. end event
  1448. type cb_reset from uo_imflatbutton within w_buybill
  1449. integer x = 1083
  1450. integer width = 251
  1451. integer height = 172
  1452. integer taborder = 260
  1453. boolean bringtotop = true
  1454. string text = "分配金额"
  1455. string normalpicname = "bill.bmp"
  1456. integer picsize = 16
  1457. toolbaralignment pic_align = alignattop!
  1458. boolean border = false
  1459. end type
  1460. event clicked;if not dw_edit_mode then return
  1461. wf_autoadd_mx()
  1462. dw_uc.accepttext()
  1463. dw_child.accepttext()
  1464. long li_row,i
  1465. decimal mstpayamt=0,payamt=0,mxpayamt=0
  1466. li_row=dw_uc.getrow()
  1467. if li_row<=0 then
  1468. messagebox('提示','请选择单据',information!,ok!)
  1469. return
  1470. end if
  1471. if dw_child.rowcount()<=0 then
  1472. messagebox('提示','请单据明细',information!,ok!)
  1473. return
  1474. end if
  1475. mstpayamt=dw_uc.object.u_buybill_mstpayamt[li_row]
  1476. payamt=dw_uc.object.u_buybill_payamt[li_row]
  1477. //第一次循环:分配应付、计算总可分配
  1478. for i=1 to dw_child.rowcount()
  1479. if mstpayamt > 0 then
  1480. if dw_child.Object.mainmstpayamt[i]<=mstpayamt then
  1481. dw_child.Object.mstpayamt[i]=dw_child.Object.mainmstpayamt[i]
  1482. mstpayamt=mstpayamt - dw_child.Object.mainmstpayamt[i]
  1483. else
  1484. dw_child.Object.mstpayamt[i]=mstpayamt
  1485. mstpayamt=0
  1486. end if
  1487. end if
  1488. payamt = payamt - (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])
  1489. dw_child.Object.payamt[i] = (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])
  1490. next
  1491. dw_child.accepttext()
  1492. //第二次循环:根据可分配判断正负,修正相关结余(正-负、负-正)
  1493. if payamt<0 then //不够分配
  1494. for i=dw_child.rowcount() to 1 STEP - 1
  1495. if (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])<=0 then CONTINUE
  1496. if dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i] + payamt <0 then
  1497. dw_child.Object.payamt[i]=0
  1498. payamt=payamt + (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])
  1499. else
  1500. dw_child.Object.payamt[i]=payamt + (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])
  1501. payamt=0
  1502. end if
  1503. next
  1504. else // 分配有剩
  1505. for i=dw_child.rowcount() to 1 STEP - 1
  1506. if (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])>=0 then CONTINUE
  1507. if dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i] + payamt >0 then
  1508. dw_child.Object.payamt[i]=0
  1509. payamt=payamt + (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])
  1510. dw_child.Object.mainpayamt[i] =payamt
  1511. else
  1512. dw_child.Object.payamt[i]=payamt + (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])
  1513. payamt=0
  1514. end if
  1515. next
  1516. end if
  1517. dw_child.accepttext()
  1518. //for i=1 to dw_child.rowcount()
  1519. // if dw_child.Object.mainmstpayamt[i] = 0 then
  1520. // mxpayamt = mxpayamt + dw_child.Object.mainpayamt[i]
  1521. // end if
  1522. //next
  1523. //
  1524. //payamt = payamt + mxpayamt
  1525. //for i=1 to dw_child.rowcount()
  1526. // if mstpayamt > 0 then
  1527. // if dw_child.Object.mainmstpayamt[i]<=mstpayamt then
  1528. // dw_child.Object.mstpayamt[i]=dw_child.Object.mainmstpayamt[i]
  1529. // mstpayamt=mstpayamt - dw_child.Object.mainmstpayamt[i]
  1530. // else
  1531. // dw_child.Object.mstpayamt[i]=mstpayamt
  1532. // mstpayamt=0
  1533. // end if
  1534. // end if
  1535. //
  1536. // if payamt > 0 then
  1537. // if dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i]<=payamt then
  1538. // dw_child.Object.payamt[i]=dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i]
  1539. // payamt=payamt - (dw_child.Object.mainmstpayamt[i] - dw_child.Object.mainpayamt[i])
  1540. // else
  1541. // dw_child.Object.payamt[i]=payamt
  1542. // payamt=0
  1543. // end if
  1544. // end if
  1545. //next
  1546. end event
  1547. type ln_bar from line within w_buybill
  1548. long linecolor = 268435456
  1549. integer linethickness = 4
  1550. integer beginx = -187
  1551. integer beginy = 176
  1552. integer endx = 3136
  1553. integer endy = 176
  1554. end type
  1555. type ln_bar2 from line within w_buybill
  1556. long linecolor = 16777215
  1557. integer linethickness = 4
  1558. integer beginy = 180
  1559. integer endx = 3323
  1560. integer endy = 180
  1561. end type
  1562. type r_bar from rectangle within w_buybill
  1563. long linecolor = 16777215
  1564. long fillcolor = 1073741824
  1565. integer x = 3410
  1566. integer width = 73
  1567. integer height = 172
  1568. end type
  1569. event constructor;this.fillcolor = 14215660
  1570. this.linecolor = 14215660
  1571. this.x = -1
  1572. this.y = -1
  1573. this.height = ln_bar2.beginy - 5
  1574. end event
  1575. type ln_1 from line within w_buybill
  1576. long linecolor = 268435456
  1577. integer beginy = 284
  1578. integer endx = 3291
  1579. integer endy = 284
  1580. end type
  1581. type ln_2 from line within w_buybill
  1582. long linecolor = 16777215
  1583. integer beginy = 288
  1584. integer endx = 3227
  1585. integer endy = 288
  1586. end type