w_outware_other.srw 59 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092
  1. $PBExportHeader$w_outware_other.srw
  2. forward
  3. global type w_outware_other from w_publ_1ton_share_detail
  4. end type
  5. type ddlb_scid from uo_ddlb_scid within w_outware_other
  6. end type
  7. type ddlb_status from dropdownlistbox within w_outware_other
  8. end type
  9. type st_3 from statictext within w_outware_other
  10. end type
  11. type st_2 from statictext within w_outware_other
  12. end type
  13. type cbx_packqty_cmpl from checkbox within w_outware_other
  14. end type
  15. end forward
  16. global type w_outware_other from w_publ_1ton_share_detail
  17. integer height = 2300
  18. string title = "其他出仓单"
  19. boolean maxbox = true
  20. windowstate windowstate = maximized!
  21. boolean chkstorage = true
  22. event insert_childrow ( )
  23. event ue_fj_edit ( )
  24. event ue_fj_view ( )
  25. event ue_cmpl_status_qty ( )
  26. event ue_p_cmpl_qty ( )
  27. event ue_cmpl_qty ( )
  28. event ue_p_formula_set ( )
  29. event ue_ch_reason ( )
  30. event ue_cmpl_set0 ( )
  31. ddlb_scid ddlb_scid
  32. ddlb_status ddlb_status
  33. st_3 st_3
  34. st_2 st_2
  35. cbx_packqty_cmpl cbx_packqty_cmpl
  36. end type
  37. global w_outware_other w_outware_other
  38. type variables
  39. long cur_scid //分店ID
  40. long cur_scid_arr[]
  41. long copy_storageid = 0
  42. int cur_flag=-1
  43. uo_outware_other uo_ware
  44. string ol_cdw_str =''
  45. int ii_packqty_cmpl
  46. end variables
  47. forward prototypes
  48. public function integer wf_refresh_curuc (long arg_scid, long arg_wareid)
  49. public function integer wf_flagstatus_rf ()
  50. public subroutine wf_check_billfj ()
  51. public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg)
  52. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg)
  53. public subroutine wf_check_ware (long arg_scid, long arg_billid)
  54. public function integer wf_check_qtyandaddqty (ref string arg_msg)
  55. end prototypes
  56. event insert_childrow();long li_row
  57. li_row=dw_child.insertrow(0)
  58. dw_child.scrolltorow(li_row)
  59. dw_child.SetColumn ('u_mtrldef_mtrlcode')
  60. end event
  61. event ue_fj_edit();IF dw_edit_mode THEN
  62. MessageBox('提示','编辑状态下不可用',information!,ok!)
  63. RETURN
  64. END IF
  65. //IF NOT f_power_ind(1098) THEN
  66. // MessageBox(publ_operator,'你没有使用权限!')
  67. // RETURN
  68. //END IF
  69. s_edit_index_tran s_pic
  70. Long ll_ConnectionID
  71. String arg_msg
  72. Long ls_row
  73. ls_row = dw_uc.GetRow()
  74. IF ls_row <= 0 THEN
  75. RETURN
  76. END IF
  77. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  78. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,ok!)
  79. RETURN
  80. END IF
  81. s_pic.f_long = 303 //销售订单的mainID
  82. s_pic.f_string = dw_uc.Object.u_outware_outwarecode[ls_row]
  83. s_pic.g_long = dw_uc.Object.u_outware_outwareid[ls_row]
  84. s_pic.e_long = dw_uc.Object.u_outware_scid[ls_row]
  85. s_pic.sqltransaction = sys_filedb_sqlca
  86. OpenWithParm(w_fj_bill_mng,s_pic)
  87. wf_check_billfj()
  88. end event
  89. event ue_fj_view();IF dw_edit_mode THEN
  90. MessageBox('提示','编辑状态下不可用',information!,ok!)
  91. RETURN
  92. END IF
  93. s_edit_index_tran s_pic
  94. Long ll_ConnectionID
  95. String arg_msg
  96. Long ls_row
  97. ls_row = dw_uc.GetRow()
  98. IF ls_row <= 0 THEN
  99. RETURN
  100. END IF
  101. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  102. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,ok!)
  103. RETURN
  104. END IF
  105. s_pic.f_long = 303 //销售订单的mainID
  106. s_pic.f_string = dw_uc.Object.u_outware_outwarecode[ls_row]
  107. s_pic.g_long = dw_uc.Object.u_outware_outwareid[ls_row]
  108. s_pic.e_long = dw_uc.Object.u_outware_scid[ls_row]
  109. s_pic.sqltransaction = sys_filedb_sqlca
  110. OpenWithParm(w_fj_bill_view,s_pic)
  111. end event
  112. event ue_cmpl_status_qty();Int ll_flag
  113. Decimal ll_value
  114. Long ll_num
  115. Long i,j,k
  116. String ls_mtrlmode
  117. String ls_status
  118. Decimal ld_qty
  119. Decimal ld_addqty
  120. String ls_msg
  121. Long ll_type
  122. s_cmpl_addqty s_cmpl
  123. dw_child.AcceptText()
  124. dw_uc.SetRedraw(FALSE)
  125. IF dw_edit_mode THEN
  126. Open(w_cmpl_status_qty_ch)
  127. s_cmpl = Message.PowerObjectParm
  128. ll_flag = s_cmpl.flag
  129. ll_value = s_cmpl.addvalue
  130. ll_num = s_cmpl.num
  131. ll_type = s_cmpl.cmptype
  132. IF ll_value <= 0 THEN RETURN
  133. IF dw_child.RowCount() <= 0 THEN RETURN
  134. FOR i = 1 TO dw_child.RowCount()
  135. ld_addqty = dw_child.Object.u_outwaremx_addqty[i]
  136. CHOOSE CASE ll_type
  137. CASE 0
  138. ls_status = dw_child.Object.u_outwaremx_status[i]
  139. CASE 1
  140. ls_status = dw_child.Object.u_outwaremx_woodcode[i]
  141. CASE 2
  142. ls_status = dw_child.Object.u_outwaremx_pcode[i]
  143. CASE 3
  144. ls_status = dw_child.Object.u_mtrldef_mtrlsectype[i]
  145. CASE 4
  146. ls_status = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  147. END CHOOSE
  148. IF ld_addqty = 0 OR ls_status = '' THEN
  149. ELSE
  150. ld_qty = 0
  151. IF f_cmpl_status_qty(ld_addqty,ls_status,ld_qty,ls_msg) = 0 THEN
  152. MessageBox('错误',ls_msg,stopsign!,ok!)
  153. GOTO ext
  154. END IF
  155. IF ll_flag = 0 THEN
  156. dw_child.Object.u_outwaremx_qty[i] = Round(ld_qty * ll_value,ll_num)
  157. ELSE
  158. dw_child.Object.u_outwaremx_qty[i] = Round(ld_qty / ll_value,ll_num)
  159. END IF
  160. END IF
  161. NEXT
  162. END IF
  163. ext:
  164. dw_uc.SetRedraw(TRUE)
  165. end event
  166. event ue_p_cmpl_qty();IF dw_child.RowCount() = 0 THEN RETURN
  167. Long i
  168. String ls_formula
  169. String ls_msg
  170. String ls_rs
  171. String ls_num
  172. Decimal ld_addqty
  173. Decimal ld_price
  174. Decimal ld_rebate
  175. Decimal ld_qty
  176. dw_child.AcceptText()
  177. s_cmpl_qty s_cmpl
  178. Open(w_cmpl_qty_ch_son)
  179. s_cmpl = Message.PowerObjectParm
  180. dw_uc.SetRedraw(FALSE)
  181. FOR i = 1 TO dw_child.RowCount()
  182. ld_qty = 0
  183. IF dw_child.Object.u_outwaremx_formula[i] <> '' THEN
  184. s_cmpl.formula = dw_child.Object.u_outwaremx_formula[i]
  185. s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[i]
  186. s_cmpl.price = dw_child.Object.u_outwaremx_fprice[i]
  187. s_cmpl.ifnorebate = 1
  188. s_cmpl.status = dw_child.Object.u_outwaremx_status[i]
  189. s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[i]
  190. s_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[i]
  191. s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i]
  192. s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  193. IF f_cmpl_qty(s_cmpl,ld_qty,ls_msg) = 0 THEN
  194. MessageBox('提示','第' + String(i) + '行,' + ls_msg, Information!, OK! )
  195. GOTO ext
  196. END IF
  197. dw_child.Object.u_outwaremx_qty[i] = ld_qty
  198. END IF
  199. NEXT
  200. ext:
  201. dw_child.SetColumn('u_outwaremx_qty')
  202. dw_uc.SetRedraw(TRUE)
  203. end event
  204. event ue_cmpl_qty();IF dw_child.GetRow() = 0 THEN RETURN
  205. Long child_row
  206. dw_child.AcceptText()
  207. child_row = dw_child.GetRow()
  208. s_cmpl_qty s_cmpl,s_return
  209. s_cmpl.qty = dw_child.Object.u_outwaremx_qty[child_row]
  210. s_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row]
  211. s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row]
  212. s_cmpl.price = dw_child.Object.u_outwaremx_fprice[child_row]
  213. s_cmpl.ifnorebate = 1
  214. s_cmpl.status = dw_child.Object.u_outwaremx_status[child_row]
  215. s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row]
  216. s_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row]
  217. s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row]
  218. s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row]
  219. IF NOT IsValid(w_cmpl_qty_ch) THEN
  220. OpenWithParm(w_cmpl_qty_ch,s_cmpl)
  221. s_return = Message.PowerObjectParm
  222. IF s_return.formula <> s_cmpl.formula or s_return.qty <> s_cmpl.qty THEN
  223. dw_child.Object.u_outwaremx_qty[child_row] = s_return.qty
  224. dw_child.Object.u_outwaremx_formula[child_row] = s_return.formula
  225. END IF
  226. END IF
  227. end event
  228. event ue_p_formula_set();IF NOT dw_edit_mode THEN RETURN
  229. IF MessageBox('提示','是否要确定要批设定公式', question!, YesNo!, 2) = 2 THEN
  230. RETURN
  231. END IF
  232. Long ll_i
  233. dw_child.AcceptText()
  234. dw_child.SetRedraw(FALSE)
  235. FOR ll_i = 1 TO dw_child.RowCount()
  236. IF ll_i = 1 THEN CONTINUE
  237. dw_child.Object.u_outwaremx_formula[ll_i] = dw_child.Object.u_outwaremx_formula[1]
  238. NEXT
  239. dw_child.SetRedraw(TRUE)
  240. end event
  241. event ue_ch_reason();IF NOT IsValid(w_inout_reason_ch) THEN
  242. s_edit_index_tran s_open //传递参数使用
  243. s_open.work_mode = 1
  244. s_open.c_long = 0
  245. Openwithparm(w_inout_reason_ch, s_open)
  246. s_inout_reason s_ch
  247. s_ch = Message.PowerObjectParm
  248. IF s_ch.reason <> '' THEN
  249. dw_uc.Object.cusname[dw_uc.GetRow()] = s_ch.reason
  250. END IF
  251. datawindowchild childdw
  252. dw_uc.GetChild("cusname",childdw)
  253. childdw.SetTransObject (sqlca)
  254. childdw.Retrieve()
  255. END IF
  256. end event
  257. event ue_cmpl_set0();long i
  258. for i=1 to dw_child.rowcount()
  259. dw_child.object.u_outwaremx_qty[i]=0
  260. next
  261. end event
  262. public function integer wf_refresh_curuc (long arg_scid, long arg_wareid);//wf_refresh_curuc
  263. IF arg_wareid <= 0 OR IsNull(arg_wareid) THEN RETURN 0
  264. Long uc_row
  265. uc_row = dw_pageretr.GetRow()
  266. IF uc_row <= 0 THEN RETURN 0
  267. Long outwareid
  268. DateTime outdate
  269. String part
  270. String cusname
  271. String outrep
  272. String dscrp
  273. Int balcflag
  274. String outwarecode
  275. DateTime opdate
  276. String opemp
  277. DateTime moddate
  278. String modemp
  279. Int flag
  280. DateTime auditingdate
  281. String Auditingrep
  282. String storagename
  283. int storageid
  284. SELECT
  285. u_outware.outdate,
  286. u_outware.outrep,
  287. u_outware.part,
  288. u_outware.dscrp,
  289. u_outware.outwarecode,
  290. u_outware.opdate,
  291. u_outware.opemp,
  292. u_outware.moddate,
  293. u_outware.modemp,
  294. u_outware.auditingdate,
  295. u_outware.flag,
  296. u_outware.Auditingrep,
  297. u_outware.cusname,
  298. u_outware.balcflag,
  299. u_storage.storagename,
  300. u_outware.storageid
  301. INTO
  302. :outdate,
  303. :outrep,
  304. :part,
  305. :dscrp,
  306. :outwarecode,
  307. :opdate,
  308. :opemp,
  309. :moddate,
  310. :modemp,
  311. :auditingdate,
  312. :flag,
  313. :Auditingrep,
  314. :cusname,
  315. :balcflag,
  316. :storagename,
  317. :storageid
  318. FROM u_outware ,u_storage
  319. Where ( u_outware.outwareid = :arg_wareid )
  320. AND ( u_outware.storageid = u_storage.storageid )
  321. and ( u_outware.scid = :arg_scid );
  322. IF sqlca.SQLCode <> 0 THEN
  323. MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,ok!)
  324. RETURN 0
  325. END IF
  326. dw_pageretr.Object.u_outware_scid[uc_row] = arg_scid
  327. dw_pageretr.Object.u_outware_outwareid[uc_row] = arg_wareid
  328. dw_pageretr.Object.u_outware_outdate[uc_row] = outdate
  329. dw_pageretr.Object.u_outware_part[uc_row] = part
  330. dw_pageretr.Object.u_outware_outrep[uc_row] = outrep
  331. dw_pageretr.Object.u_outware_dscrp[uc_row] = dscrp
  332. dw_pageretr.Object.u_outware_balcflag[uc_row] = balcflag
  333. dw_pageretr.Object.u_outware_outwarecode[uc_row] = outwarecode
  334. dw_pageretr.Object.u_outware_opdate[uc_row] = opdate
  335. dw_pageretr.Object.u_outware_opemp[uc_row] = opemp
  336. dw_pageretr.Object.u_outware_moddate[uc_row] = moddate
  337. dw_pageretr.Object.u_outware_modemp[uc_row] = modemp
  338. dw_pageretr.Object.cusname[uc_row] = cusname
  339. dw_pageretr.Object.flag[uc_row] = flag
  340. dw_pageretr.Object.u_outware_Auditingdate[uc_row] = auditingdate
  341. dw_pageretr.Object.u_outware_Auditingrep[uc_row] = Auditingrep
  342. dw_pageretr.Object.u_storage_storagename[uc_row] = storagename
  343. dw_pageretr.Object.u_outware_storageid[uc_row] = storageid
  344. dw_uc.Reset()
  345. dw_pageretr.RowsCopy(dw_pageretr.GetRow(),dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  346. dw_uc.ResetUpdate()
  347. dw_uc.SetRedraw(TRUE)
  348. wf_flagstatus_rf()
  349. RETURN 1
  350. end function
  351. public function integer wf_flagstatus_rf ();//====================================================================
  352. // Function: wf_flagstatus_rf()
  353. //--------------------------------------------------------------------
  354. // Description:
  355. //--------------------------------------------------------------------
  356. // Arguments:(None)
  357. //--------------------------------------------------------------------
  358. // Returns: integer
  359. //--------------------------------------------------------------------
  360. // Author: yyx Date: 2003.12.26
  361. //--------------------------------------------------------------------
  362. // Modify History:
  363. //
  364. //====================================================================
  365. long pagerert_row
  366. pagerert_row=dw_pageretr.getrow()
  367. if pagerert_row<=0 then
  368. cb_auditing.enabled=false
  369. goto ext
  370. end if
  371. if dw_edit_mode then
  372. cb_auditing.enabled=false
  373. cb_auditing_cancel.enabled=false
  374. else
  375. if dw_pageretr.object.flag[pagerert_row]=0 then
  376. cb_auditing.enabled=true
  377. cb_auditing_cancel.enabled=false
  378. elseif dw_pageretr.object.flag[pagerert_row]=1 then
  379. cb_auditing.enabled=false
  380. cb_auditing_cancel.enabled=true
  381. end if
  382. end if
  383. ext:
  384. return 0
  385. end function
  386. public subroutine wf_check_billfj ();String arg_msg
  387. Long ll_ConnectionID
  388. Long cur_billtype
  389. long ll_relid,ll_relid_mx,ll_scid
  390. Long ls_filecount = 0
  391. Int rslt = 1
  392. uo_fj_mng_billtype ls_uo_fjbt
  393. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  394. Long row,uc_relid
  395. row = dw_pageretr.GetRow()
  396. IF row > 0 THEN
  397. ll_relid = dw_pageretr.Object.u_outware_outwareid[row]
  398. ll_scid = dw_pageretr.Object.u_outware_scid[row]
  399. ll_relid_mx = 0
  400. ELSE
  401. rslt = 0
  402. GOTO ext
  403. END IF
  404. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  405. rslt = 0
  406. GOTO ext
  407. END IF
  408. cur_billtype = 303 //客户投拆单的 mainiD
  409. ls_uo_fjbt.uf_check_billfj( cur_billtype, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount)
  410. IF ls_filecount > 0 THEN
  411. rslt = 1
  412. GOTO ext
  413. ELSE
  414. rslt = 0
  415. GOTO ext
  416. END IF
  417. ext:
  418. wf_encl(rslt)
  419. DESTROY ls_uo_fjbt
  420. end subroutine
  421. public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg);//==============================================================================
  422. // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata()
  423. //------------------------------------------------------------------------------
  424. // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可
  425. //------------------------------------------------------------------------------
  426. Long LS_ROW,ll_id,i,ll_scid
  427. LS_ROW = dw_uc.GetRow()
  428. IF LS_ROW <= 0 THEN
  429. arg_msg = '没有目标单据!'
  430. RETURN 0
  431. END IF
  432. //修改点:获取 指定retriev参数
  433. ll_id = dw_uc.Object.#1[LS_ROW]
  434. ll_scid = dw_uc.Object.u_outware_scid[LS_ROW]
  435. //查询所选模版是否含有图片信息
  436. Long ll_ifpic
  437. Long ll_classid
  438. SELECT ifpic
  439. INTO :ll_ifpic
  440. FROM U_XLS_Templates
  441. Where id = :ll_xls_Templatesid;
  442. IF sqlca.SQLCode <> 0 THEN
  443. ll_ifpic = 0
  444. END IF
  445. Long ll_i,ll_j
  446. Long ll_mtrlid
  447. Long ll_fileid
  448. Blob ls_filedata
  449. SetNull(ls_filedata)
  450. String Pathname,ls_filename,ls_filetype
  451. String errmsg
  452. uo_fj_mng_billtype ls_uo_fjbt
  453. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  454. s_xls_pic_list s_pic //结构数组-用于保存图片路径
  455. IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件
  456. SELECT classid
  457. INTO :ll_classid
  458. FROM u_billpic_fileclass
  459. Where (billtype = 303);
  460. IF sqlca.SQLCode <> 0 THEN
  461. ll_classid = 0
  462. END IF
  463. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  464. FOR ll_i = 1 TO dw_child.RowCount()
  465. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_i]
  466. //取该附件类型中的第一个附件.
  467. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  468. FROM u_file
  469. WHERE relid = :ll_mtrlid
  470. AND classid = :ll_classid
  471. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  472. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  473. USING sys_fileDB_sqlca;
  474. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  475. ll_fileid = 0
  476. END IF
  477. IF ll_fileid > 0 THEN
  478. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  479. IF Trim(Pathname) <> '' THEN
  480. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  481. RETURN 0
  482. END IF
  483. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  484. RETURN 0
  485. ELSE
  486. s_pic.path[ll_i] = Pathname
  487. //记录临时文件位置,本窗口退出后删除
  488. wf_addlog_tempfilepathname(Pathname)
  489. END IF
  490. ELSE
  491. s_pic.path[ll_i] = ''
  492. END IF
  493. ELSE
  494. s_pic.path[ll_i] = ''
  495. END IF
  496. NEXT
  497. END IF
  498. //
  499. END IF
  500. ////可选设置///
  501. arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码
  502. if sys_option_xls_ifuse_passwd = 1 then arg_obj_st.uo_const.pwd = trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码
  503. boolean xls_locked
  504. xls_locked = not (sys_option_xls_lock = 1)
  505. /// Excel 的可选设置
  506. if arg_obj_st.of_setoption(arg_ationid, xls_locked,true,arg_msg) <> 1 then
  507. return 0
  508. end if
  509. for i = 1 to arg_str_billlist.count
  510. ////可选操作///
  511. arg_str_billlist.bill[i].ds_data = create datastore //
  512. arg_str_billlist.bill[i].ds_data.dataobject = arg_str_billlist.bill[i].datawindow //
  513. arg_str_billlist.bill[i].ds_data.settransobject(sqlca)
  514. //修改点:注意retrieve 参数与上文对应
  515. arg_str_billlist.bill[i].ds_data.retrieve(ll_scid,ll_id)
  516. next
  517. return 1
  518. end function
  519. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg);Long LS_ROW,ll_id,i,ll_scid
  520. LS_ROW = dw_pageretr.GetRow()
  521. IF LS_ROW <= 0 THEN
  522. arg_msg = '没有目标单据!'
  523. RETURN 0
  524. END IF
  525. //修改点:获取 指定retriev参数
  526. ll_id = dw_pageretr.Object.#1[LS_ROW]
  527. ll_scid = dw_pageretr.Object.u_outware_scid[LS_ROW]
  528. Long ll_i,ll_j
  529. Long ll_mtrlid
  530. Long ll_fileid
  531. Blob ls_filedata
  532. SetNull(ls_filedata)
  533. String Pathname,ls_filename,ls_filetype
  534. String errmsg
  535. uo_fj_mng_billtype ls_uo_fjbt
  536. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  537. Long ll_classid
  538. SELECT classid
  539. INTO :ll_classid
  540. FROM u_billpic_fileclass
  541. Where (billtype = 102);
  542. IF sqlca.SQLCode <> 0 THEN
  543. ll_classid = 0
  544. END IF
  545. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  546. FOR ll_i = 1 TO dw_child.RowCount()
  547. ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_i]
  548. arg_s_pic.mtrlid[ll_i] = ll_mtrlid
  549. //取该附件类型中的第一个附件.
  550. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  551. FROM u_file
  552. WHERE relid = :ll_mtrlid
  553. AND classid = :ll_classid
  554. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  555. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  556. USING sys_fileDB_sqlca;
  557. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  558. ll_fileid = 0
  559. END IF
  560. IF ll_fileid > 0 THEN
  561. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  562. IF Trim(Pathname) <> '' THEN
  563. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  564. RETURN 0
  565. END IF
  566. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  567. RETURN 0
  568. ELSE
  569. arg_s_pic.path[ll_i] = Pathname
  570. //记录临时文件位置,本窗口退出后删除
  571. wf_addlog_tempfilepathname(Pathname)
  572. END IF
  573. ELSE
  574. arg_s_pic.path[ll_i] = ''
  575. END IF
  576. ELSE
  577. arg_s_pic.path[ll_i] = ''
  578. END IF
  579. NEXT
  580. END IF
  581. RETURN 1
  582. end function
  583. public subroutine wf_check_ware (long arg_scid, long arg_billid);IF sys_option_outware_ware_check = 0 THEN RETURN
  584. LONG CNT
  585. //IF THEN
  586. select
  587. count(*) into :cnt
  588. from (select
  589. scid,
  590. outwareid,
  591. mtrlid,
  592. status,
  593. pcode,
  594. woodcode
  595. from u_outwaremx
  596. group by scid,
  597. outwareid,
  598. mtrlid,
  599. status,
  600. pcode,
  601. woodcode) as u_outwaremx
  602. inner join u_mtrldef on u_mtrldef.mtrlid = u_outwaremx.mtrlid
  603. left outer join u_mtrldef_maxminqty on u_mtrldef_maxminqty.mtrlid = u_outwaremx.mtrlid
  604. and u_mtrldef_maxminqty.status = u_outwaremx.status
  605. and u_mtrldef_maxminqty.woodcode = u_outwaremx.woodcode
  606. and u_mtrldef_maxminqty.pcode = u_outwaremx.pcode
  607. left outer join (select
  608. mtrlid,
  609. status,
  610. pcode,
  611. woodcode,
  612. sum(noallocqty) as noallocqty
  613. from u_mtrlware
  614. group by mtrlid,
  615. status,
  616. pcode,
  617. woodcode) as u_mtrlware_a
  618. on u_mtrldef_maxminqty.mtrlid = u_mtrlware_a.mtrlid
  619. and u_mtrldef_maxminqty.status = u_mtrlware_a.status
  620. and u_mtrldef_maxminqty.woodcode = u_mtrlware_a.woodcode
  621. and u_mtrldef_maxminqty.pcode = u_mtrlware_a.pcode
  622. where u_outwaremx.scid = :arg_scid and u_outwaremx.outwareid = :arg_billid
  623. and ( isnull(u_mtrlware_a.noallocqty,0) - isnull(u_mtrldef_maxminqty.minqty,0)<=0);
  624. IF CNT>0 THEN
  625. s_edit_index_tran s_tran1
  626. s_tran1.c_long = arg_scid
  627. s_tran1.d_long = arg_billid
  628. OPENWITHPARM(w_check_ware,s_tran1)
  629. END IF
  630. //END IF
  631. end subroutine
  632. public function integer wf_check_qtyandaddqty (ref string arg_msg);Long i
  633. Int rslt = 1
  634. Long lk_mtrlid,lk_ifcheckaddqty
  635. String ls_strcheckaddqty,ls_mtrlmode
  636. Decimal dec_qty,dec_addqty,dec_danpackqty,dec_packqty,dec_rebate
  637. String ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode
  638. Long num
  639. s_cmpl_qty s_cmpl
  640. s_cmpl.addvalue = 1
  641. String ls_msg
  642. dw_child.AcceptText()
  643. FOR i = 1 To dw_child.RowCount()
  644. lk_mtrlid = dw_child.Object.u_outwaremx_mtrlid[i]
  645. dec_qty = dw_child.Object.u_outwaremx_qty[i]
  646. dec_addqty = dw_child.Object.u_outwaremx_addqty[i]
  647. ls_status = dw_child.Object.u_outwaremx_status[i]
  648. ls_woodcode = dw_child.Object.u_outwaremx_woodcode[i]
  649. ls_pcode = dw_child.Object.u_outwaremx_pcode[i]
  650. ls_mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i]
  651. ls_zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i]
  652. dec_danpackqty=0
  653. dec_packqty= dw_child.Object.u_outwaremx_packqty[i]
  654. dec_rebate = 1
  655. ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i]
  656. SELECT ifcheckaddqty,strcheckaddqty,strcheck_digit Into :lk_ifcheckaddqty,:ls_strcheckaddqty,:num From u_mtrldef Where mtrlid = :lk_mtrlid;
  657. s_cmpl.formula = ls_strcheckaddqty
  658. s_cmpl.status = ls_status
  659. s_cmpl.woodcode = ls_woodcode
  660. s_cmpl.pcode = ls_pcode
  661. s_cmpl.mtrlsectype = ls_mtrlsectype
  662. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  663. s_cmpl.addqty = dec_addqty
  664. s_cmpl.num = num
  665. s_cmpl.oldqty = dec_qty
  666. s_cmpl.mtrlsectype = ls_mtrlsectype
  667. s_cmpl.zxmtrlmode = ls_zxmtrlmode
  668. s_cmpl.packqty = dec_packqty
  669. s_cmpl.rebate = dec_rebate
  670. //如果有填写数量 则 只检查数量和辅数的关系
  671. Decimal dec_tmp
  672. IF lk_mtrlid > 0 And dec_qty <> 0 THEN
  673. IF f_cmpl_qty_check(s_cmpl,dec_tmp,ls_msg) <> TRUE THEN
  674. rslt = 0
  675. arg_msg = '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行不符合该项定义,公式是 ' + ls_strcheckaddqty
  676. GOTO ext
  677. END IF
  678. END IF
  679. //如果没有填写数量 则 由辅数计算出数量
  680. IF lk_mtrlid > 0 And dec_qty = 0 THEN
  681. IF f_cmpl_qty(s_cmpl,dec_tmp,ls_msg) = 0 THEN
  682. rslt = 0
  683. arg_msg += '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行由辅数计算出数量为0,请检查资料定义公式是 ' + ls_strcheckaddqty
  684. goto ext
  685. END IF
  686. dw_child.Object.u_outwaremx_qty[i] = dec_tmp
  687. END IF
  688. NEXT
  689. dw_child.AcceptText()
  690. ext:
  691. RETURN rslt
  692. end function
  693. on w_outware_other.create
  694. int iCurrent
  695. call super::create
  696. this.ddlb_scid=create ddlb_scid
  697. this.ddlb_status=create ddlb_status
  698. this.st_3=create st_3
  699. this.st_2=create st_2
  700. this.cbx_packqty_cmpl=create cbx_packqty_cmpl
  701. iCurrent=UpperBound(this.Control)
  702. this.Control[iCurrent+1]=this.ddlb_scid
  703. this.Control[iCurrent+2]=this.ddlb_status
  704. this.Control[iCurrent+3]=this.st_3
  705. this.Control[iCurrent+4]=this.st_2
  706. this.Control[iCurrent+5]=this.cbx_packqty_cmpl
  707. end on
  708. on w_outware_other.destroy
  709. call super::destroy
  710. destroy(this.ddlb_scid)
  711. destroy(this.ddlb_status)
  712. destroy(this.st_3)
  713. destroy(this.st_2)
  714. destroy(this.cbx_packqty_cmpl)
  715. end on
  716. event close;call super::close;destroy uo_ware
  717. wf_del_tempfilepathname()
  718. end event
  719. event open;call super::open;uc_column_int=7 //uc dw前7列可以编辑
  720. child_column_int=10 //子dw前8列可以编辑
  721. uo_ware=create uo_outware_other
  722. uo_ware.commit_transaction=sqlca
  723. s_hide_col s_col
  724. s_col.col_1 = 'u_outwaremx_fprice'
  725. s_col.col_2 = 'amt'
  726. f_hide_col(1473,dw_child,s_col)
  727. s_hide_col s_col_mtrlsectype
  728. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  729. f_hide_col(1308,dw_child,s_col_mtrlsectype)
  730. s_hide_col s_col_zxmtrlmode
  731. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  732. f_hide_col(1309,dw_child,s_col_zxmtrlmode)
  733. end event
  734. event refresh_interface;call super::refresh_interface;wf_flagstatus_rf()
  735. ddlb_status.enabled=not dw_edit_mode
  736. if dw_edit_mode then
  737. ddlb_scid.enabled=false
  738. else
  739. if sys_scid > 0 then
  740. ddlb_scid.enabled=false
  741. else
  742. ddlb_scid.enabled=true
  743. end if
  744. end if
  745. end event
  746. event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid,ll_scid
  747. row = dw_pageretr.GetRow()
  748. IF row > 0 THEN
  749. ll_scid = dw_pageretr.Object.u_outware_scid[row]
  750. uc_relid = dw_pageretr.Object.u_outware_outwareid[row]
  751. dw_child.SetRedraw (FALSE)
  752. dw_child.Retrieve(ll_scid,uc_relid)
  753. dw_child.SetRedraw (TRUE)
  754. ELSE
  755. dw_child.Reset()
  756. END IF
  757. end event
  758. event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  759. boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  760. cb_nextpage_enabled=cb_nextpage.enabled
  761. cb_retrieveall_enabled=cb_retrieveall.enabled
  762. cb_func_enabled=cb_func.enabled
  763. cb_nextpage.enabled=false
  764. cb_retrieveall.enabled=false
  765. cb_func.enabled=false
  766. //只显未自已管的仓库
  767. datawindowchild childdw
  768. string new_sqlstr,modify_str
  769. dw_uc.SetTransObject (sqlca)
  770. dw_uc.getchild("storageid",childdw)
  771. childdw.SetTransObject (sqlca)
  772. new_sqlstr=childdw.Describe("DataWindow.Table.Select")
  773. if len(ol_cdw_str) = 0 then ol_cdw_str = new_sqlstr
  774. new_sqlstr=f_modify_selectstr(ol_cdw_str)
  775. modify_str="DataWindow.Table.Select='" + new_sqlstr +"'"
  776. childdw.modify ( modify_str )
  777. if childdw.retrieve(cur_scid) = 0 then
  778. childdw.InsertRow(0)
  779. END IF
  780. //childdw.retrieve()
  781. dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数
  782. dw_pageretr.Retrieve(cur_scid_arr,sys_user_storageid,cur_flag)
  783. IF dw_pageretr.RowCount() > 0 THEN
  784. dw_pageretr.SetRow(1)
  785. dw_pageretr.triggerevent(rowfocuschanged!)
  786. end if
  787. this.triggerevent('retrieve_childdw')
  788. cb_nextpage.enabled=cb_nextpage_enabled
  789. cb_retrieveall.enabled=cb_retrieveall_enabled
  790. cb_func.enabled=cb_func_enabled
  791. end event
  792. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  793. if trim(sle_usual_query.text)<>'' then
  794. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  795. obj_expr=obj_expr+'( u_outware_outwarecode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  796. ELSE
  797. obj_expr=obj_expr+'( u_outware_outwarecode LIKE "'+trim(sle_usual_query.text)+'" )'
  798. END IF
  799. end if
  800. dw_pageretr.setfilter(obj_expr)
  801. dw_pageretr.SetRedraw(False)
  802. dw_pageretr.filter()
  803. if dw_pageretr.rowcount()>=1 then
  804. dw_pageretr.selectrow(0,false)
  805. dw_pageretr.selectrow(1,true)
  806. dw_pageretr.SetRow(1)
  807. dw_pageretr.triggerevent(rowfocuschanged!)
  808. end if
  809. dw_pageretr.SetRedraw(TRUE)
  810. end event
  811. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  812. ls_newselect=lower(ori_oldselect)
  813. if trim(sle_usual_query.text)<>'' then
  814. if pos(trim(sle_usual_query.text),'%')=0 then
  815. ls_querystrpart="(u_outware.outwarecode like '%"+trim(sle_usual_query.text)+"%')"
  816. else
  817. ls_querystrpart="(u_outware.outwarecode like '"+trim(sle_usual_query.text)+"')"
  818. end if
  819. if Pos(ls_newselect," where ") <> 0 then
  820. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  821. else
  822. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  823. end if
  824. end if
  825. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  826. this.triggerevent('retrieve_pageretr')
  827. end event
  828. event ue_f8;call super::ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  829. IF Not dw_edit_mode THEN RETURN
  830. Long child_row,ins_storageid = 0
  831. ins_storageid = dw_uc.Object.storageid[dw_uc.GetRow()]
  832. IF ins_storageid = 0 Or IsNull(ins_storageid) THEN
  833. MessageBox('提示','请先选择仓库',stopsign!,ok!)
  834. RETURN
  835. END IF
  836. child_row = dw_child.GetRow()
  837. IF Not IsValid(w_mtrlware_storageid_ch) THEN
  838. s_edit_index_tran s_tranf8 //传递参数使用
  839. s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行
  840. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  841. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  842. s_tranf8.b_long = - 1 //选择原料或产品
  843. s_tranf8.d_long = ins_storageid
  844. s_tranf8.c_long = -1
  845. Long chc = 1,ls_j
  846. dw_child.AcceptText()
  847. IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()])
  848. OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) //调用
  849. s_mtrlware_noalloc_array S_INSCUST
  850. S_INSCUST = Message.PowerObjectParm //接受返回结构
  851. FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid)
  852. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  853. IF dw_child.GetRow() > 0 THEN
  854. IF dw_child.Object.u_outwaremx_mtrlid[child_row] <> 0 THEN
  855. child_row = dw_child.InsertRow (0)
  856. ELSE
  857. child_row = dw_child.GetRow()
  858. END IF
  859. ELSE
  860. child_row = dw_child.InsertRow (0)
  861. END IF
  862. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  863. dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  864. dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  865. dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  866. dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  867. dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  868. dw_child.Object.u_mtrldef_prdpackcode[child_row] = S_INSCUST.u_mtrldef_prdpackcode[ls_j]
  869. dw_child.Object.u_mtrldef_packqty[child_row] = S_INSCUST.u_mtrldef_packqty[ls_j]
  870. IF sys_option_outware_other_ware = 0 THEN
  871. ELSEIF sys_option_outware_other_ware = 1 THEN
  872. dw_child.Object.u_outwaremx_qty[child_row] = S_INSCUST.noallocqty[ls_j] - S_INSCUST.noauditingqty[ls_j]
  873. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j] - S_INSCUST.noauditingaddqty[ls_j]
  874. ELSE
  875. dw_child.Object.u_outwaremx_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  876. dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]
  877. END IF
  878. dw_child.Object.u_outwaremx_fprice[child_row] = S_INSCUST.cost[ls_j]
  879. dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j]
  880. dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j]
  881. dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j]
  882. dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j]
  883. dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  884. dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j]
  885. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j]
  886. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j]
  887. dw_child.Object.u_mtrldef_mtrltype[child_row] = S_INSCUST.u_mtrldef_mtrltype[ls_j]
  888. dw_child.Object.u_mtrldef_handtype[child_row] = S_INSCUST.u_mtrldef_handtype[ls_j]
  889. dw_child.SetColumn('u_outwaremx_qty')
  890. END IF
  891. NEXT
  892. END IF
  893. end event
  894. event ue_viewprint;call super::ue_viewprint;IF NOT f_power_ind(475) THEN
  895. MessageBox('提示','你没有使用权限!',information!,ok!)
  896. RETURN
  897. END IF
  898. Long LS_ROW
  899. LS_ROW = dw_pageretr.GetRow()
  900. IF LS_ROW <= 0 THEN
  901. MessageBox('提示','没有打印目标单据!',information!,ok!)
  902. RETURN
  903. END IF
  904. S_print_MSG LS_PRMSG
  905. IF ls_newname <> '' THEN
  906. IF li_auditprint = 1 THEN
  907. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  908. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  909. RETURN
  910. END IF
  911. END IF
  912. LS_PRMSG.obj_dwNAME = ls_newname
  913. ELSE
  914. LS_PRMSG.obj_dwNAME = 'dw_rp_outware_other_edit'
  915. END IF
  916. LS_PRMSG.TAG_TEXT = '其它出仓单'
  917. LS_PRMSG.FILTER_STRING = ''
  918. LS_PRMSG.retr_pram_falg = 15
  919. LS_PRMSG.PAGECH_FLAG = 0
  920. LS_PRMSG.retr_scid = cur_scid
  921. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[LS_ROW]
  922. LS_PRMSG.rowcnt = dw_child.RowCount()
  923. IF ifpic = 1 THEN
  924. String ls_msg
  925. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  926. MessageBox('提示','下载图片失败!',information!,OK!)
  927. RETURN
  928. END IF
  929. END IF
  930. OpenWithParm(w_publ_preview,LS_PRMSG)
  931. IF ifpic = 1 THEN
  932. Long li
  933. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  934. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  935. FileDelete(LS_PRMSG.s_pic.path[li])
  936. END IF
  937. NEXT
  938. END IF
  939. end event
  940. event ue_print;call super::ue_print;//--直接打印
  941. IF NOT f_power_ind(475) THEN
  942. MessageBox('提示','你没有使用权限!',information!,ok!)
  943. RETURN
  944. END IF
  945. uo_print_preview uo_print
  946. S_print_MSG LS_PRMSG
  947. IF dw_pageretr.RowCount() = 0 THEN
  948. MessageBox('提示','没有可打印的单据!',information!,ok!)
  949. RETURN
  950. END IF
  951. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  952. IF ls_newname <> '' THEN
  953. IF li_auditprint = 1 THEN
  954. IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN
  955. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  956. RETURN
  957. END IF
  958. END IF
  959. LS_PRMSG.obj_dwNAME = ls_newname
  960. ELSE
  961. LS_PRMSG.obj_dwNAME = 'dw_rp_outware_other_edit'
  962. END IF
  963. LS_PRMSG.retr_pram_falg = 15
  964. LS_PRMSG.TAG_TEXT = '其它出仓单'
  965. LS_PRMSG.FILTER_STRING = ''
  966. LS_PRMSG.PAGECH_FLAG = 0
  967. LS_PRMSG.retr_scid = cur_scid
  968. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()]
  969. LS_PRMSG.rowcnt = dw_child.RowCount()
  970. IF ifpic = 1 THEN
  971. String ls_msg
  972. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  973. MessageBox('提示','下载图片失败!',information!,OK!)
  974. RETURN
  975. END IF
  976. END IF
  977. uo_print.FACT_PRINT_MSG = LS_PRMSG
  978. String arg_msg
  979. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  980. MessageBox("错误",arg_msg,stopsign!,ok!)
  981. RETURN
  982. END IF
  983. uo_print.ds_print()
  984. IF ifpic = 1 THEN
  985. Long li
  986. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  987. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  988. FileDelete(LS_PRMSG.s_pic.path[li])
  989. END IF
  990. NEXT
  991. END IF
  992. end event
  993. event ue_addzy;call super::ue_addzy;IF dw_edit_mode THEN
  994. MessageBox('提示',"编辑状态下不可以使用!",information!,ok!)
  995. return
  996. END IF
  997. if not f_power_ind(795) then
  998. messagebox('提示','你没有使用权限!',information!,ok!)
  999. return
  1000. end if
  1001. string arg_msg='',LS_STR
  1002. long uc_row
  1003. s_inputbox S_SREU
  1004. uc_row=dw_pageretr.getrow()
  1005. if uc_row<=0 then
  1006. messagebox('提示','请选定当前目标单据!',information!,ok!)
  1007. return
  1008. end if
  1009. S_SREU.TITLE='请输入要补充到备注的内容'
  1010. S_SREU.OLD_TEXT=''
  1011. openwithparm(w_inputbox,S_SREU)
  1012. LS_STR=Message.StringParm
  1013. if trim(LS_STR)='' or isnull(LS_STR) then return
  1014. if uo_ware.add_dscrp(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.object.u_outware_outwareid[uc_row],LS_STR,arg_msg)=0 then
  1015. messagebox('错误',arg_msg,stopsign!,ok!)
  1016. return
  1017. else
  1018. messagebox('提示','添加备注操作成功!',information!,ok!)
  1019. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.object.u_outware_outwareid[uc_row])
  1020. end if
  1021. end event
  1022. event ue_f10;call super::ue_f10;IF NOT dw_edit_mode THEN RETURN
  1023. Long child_row
  1024. Int if_addmxdscrp
  1025. String ls_mxdscrp
  1026. s_addqty_input s_input
  1027. dw_child.AcceptText( )
  1028. child_row = dw_child.GetRow()
  1029. IF child_row <= 0 THEN RETURN
  1030. IF dw_child.Object.u_outwaremx_mtrlid[child_row] <= 0 THEN RETURN
  1031. ls_mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row]
  1032. IF NOT IsValid(w_addqty_input) THEN
  1033. OpenWithParm(w_addqty_input,ls_mxdscrp)
  1034. s_input = Message.PowerObjectParm
  1035. IF s_input.addqty = -1 THEN RETURN
  1036. dw_child.Object.u_outwaremx_addqty[child_row] = s_input.addqty
  1037. IF s_input.addqtystr <> '' THEN
  1038. dw_child.Object.u_outwaremx_mxdscrp[child_row] = s_input.addqtystr
  1039. END IF
  1040. IF s_input.formula <> '' THEN
  1041. dw_child.Object.u_outwaremx_formula[child_row] = s_input.formula
  1042. END IF
  1043. IF s_input.flag = 1 THEN
  1044. dw_child.Object.u_outwaremx_qty[child_row] = s_input.qty
  1045. END IF
  1046. END IF
  1047. end event
  1048. event ue_rpt_print;call super::ue_rpt_print;IF NOT f_power_ind(475) THEN
  1049. MessageBox('提示','你没有使用权限!',information!,ok!)
  1050. RETURN
  1051. END IF
  1052. Long row,uc_relid,ll_scid
  1053. row = dw_pageretr.GetRow()
  1054. IF row = 0 THEN RETURN
  1055. uo_rpt_print_preview uo_print
  1056. S_rpt_print_MSG LS_PRMSG
  1057. IF dw_pageretr.RowCount() = 0 THEN
  1058. MessageBox('提示','没有可打印的单据!',information!,ok!)
  1059. RETURN
  1060. END IF
  1061. IF ls_rpname = '' THEN RETURN
  1062. IF li_auditprint = 1 THEN
  1063. IF dw_pageretr.Object.flag[row] = 0 THEN
  1064. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  1065. RETURN
  1066. END IF
  1067. END IF
  1068. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  1069. LS_PRMSG.retr_pram_falg = 15
  1070. LS_PRMSG.TAG_TEXT = THIS.Title
  1071. LS_PRMSG.rpname = ls_rpname
  1072. LS_PRMSG.FILTER_STRING = ''
  1073. LS_PRMSG.PAGECH_FLAG = 0
  1074. LS_PRMSG.rpid = ls_msgprintid_rpt
  1075. LS_PRMSG.retr_scid = dw_pageretr.Object.u_outware_scid[row]
  1076. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row]
  1077. LS_PRMSG.rowcnt = dw_child.RowCount()
  1078. uo_print.FACT_PRINT_MSG = LS_PRMSG
  1079. String arg_msg
  1080. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  1081. MessageBox("错误",arg_msg,stopsign!,ok!)
  1082. RETURN
  1083. END IF
  1084. uo_print.ds_print()
  1085. end event
  1086. event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF NOT f_power_ind(475) THEN
  1087. MessageBox('提示','你没有使用权限!',information!,ok!)
  1088. RETURN
  1089. END IF
  1090. Long row,uc_relid,ll_scid
  1091. row = dw_pageretr.GetRow()
  1092. IF row = 0 THEN RETURN
  1093. IF ls_rpname = '' THEN RETURN
  1094. IF li_auditprint = 1 THEN
  1095. IF dw_pageretr.Object.flag[row] = 0 THEN
  1096. MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!)
  1097. RETURN
  1098. END IF
  1099. END IF
  1100. s_rpt_print_msg s_print
  1101. s_print.retr_pram_falg = 15
  1102. s_print.rpid = ls_msgprintid_rpt
  1103. s_print.retr_flag = TRUE
  1104. s_print.tag_text = THIS.Title
  1105. s_print.rpname = ls_rpname
  1106. s_print.retr_scid = dw_pageretr.Object.u_outware_scid[row]
  1107. s_print.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row]
  1108. s_print.rowcnt = dw_child.RowCount()
  1109. OpenWithParm(w_rpt_preview,s_print)
  1110. end event
  1111. type cb_func from w_publ_1ton_share_detail`cb_func within w_outware_other
  1112. end type
  1113. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_outware_other
  1114. end type
  1115. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_outware_other
  1116. integer x = 178
  1117. integer y = 188
  1118. integer width = 549
  1119. end type
  1120. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_outware_other
  1121. integer x = 3049
  1122. end type
  1123. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_outware_other
  1124. integer x = 2725
  1125. integer y = 52
  1126. integer width = 320
  1127. end type
  1128. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_outware_other
  1129. integer x = 2117
  1130. integer width = 1422
  1131. integer height = 844
  1132. string dataobject = "dw_outware_other_index"
  1133. end type
  1134. event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf()
  1135. wf_check_billfj()
  1136. end event
  1137. type st_1 from w_publ_1ton_share_detail`st_1 within w_outware_other
  1138. integer x = 0
  1139. integer y = 208
  1140. end type
  1141. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_outware_other
  1142. integer x = 3200
  1143. end type
  1144. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_outware_other
  1145. integer width = 2112
  1146. integer height = 844
  1147. string dataobject = "dw_outware_other_edit"
  1148. end type
  1149. event dw_uc::dwnkey;parent.triggerevent('user_key')
  1150. if key = KeyDownArrow! then return 1
  1151. if dw_edit_mode then
  1152. if dw_uc.GetColumnName ( )='u_outware_dscrp' and key = KeyEnter! then
  1153. dw_child.setfocus()
  1154. dw_child.scrolltorow(1)
  1155. dw_child.SetColumn ('u_mtrldef_mtrlcode')
  1156. return 1
  1157. else
  1158. if key = KeyEnter! Then //
  1159. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1160. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1161. Return 1
  1162. end If
  1163. end if
  1164. end if
  1165. end event
  1166. event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN
  1167. IF dwo.Name = 'storageid' THEN
  1168. dw_child.Reset()
  1169. PARENT.TriggerEvent("insert_childrow")
  1170. END IF
  1171. end event
  1172. event dw_uc::clicked;call super::clicked;IF dw_edit_mode THEN
  1173. IF dwo.Name = 'p_reason' THEN
  1174. Parent.TriggerEvent('ue_ch_reason')
  1175. END IF
  1176. END IF
  1177. end event
  1178. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_outware_other
  1179. end type
  1180. type dw_child from w_publ_1ton_share_detail`dw_child within w_outware_other
  1181. integer y = 1136
  1182. integer height = 1020
  1183. string dataobject = "dw_outwaremx_other_edit"
  1184. end type
  1185. event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  1186. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_prdpackcode
  1187. String ls_plancode,ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrltype
  1188. Long ls_mtrlwareid,ls_mtrlid,ls_storageid
  1189. Dec ls_noallocqty,ls_noauditingqty,ls_cost,ls_planprice,ls_packqty
  1190. Long child_row
  1191. Long ls_null
  1192. SetNull(ls_null)
  1193. s_mtrlware_noalloc_array arg_s_mtrlware
  1194. IF dw_edit_mode THEN
  1195. dw_uc.AcceptText()
  1196. ls_storageid = dw_uc.Object.storageid[dw_uc.GetRow()]
  1197. IF ls_storageid = 0 OR IsNull(ls_storageid) THEN
  1198. MessageBox('提示','请先选择仓库',information!,ok!)
  1199. RETURN
  1200. END IF
  1201. IF KeyDown(Keydownarrow!) THEN
  1202. Long li_row
  1203. IF dw_child.GetRow() = dw_child.RowCount() THEN
  1204. PARENT.TriggerEvent("insert_childrow")
  1205. END IF
  1206. ELSE
  1207. If KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  1208. IF dw_child.GetColumnName( ) = 'u_mtrldef_mtrlcode' THEN
  1209. dw_child.AcceptText()
  1210. child_row = dw_child.GetRow()
  1211. ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row]
  1212. IF f_find_mtrlware(ls_mtrlcode,ls_storageid,-1,arg_s_mtrlware) = 0 THEN
  1213. PARENT.TriggerEvent('ue_f8')
  1214. RETURN 1
  1215. ELSE
  1216. ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1]
  1217. ls_mtrlid = arg_s_mtrlware.mtrlid[1]
  1218. ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1]
  1219. ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1]
  1220. ls_unit = arg_s_mtrlware.u_mtrldef_unit[1]
  1221. ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1]
  1222. ls_planprice = arg_s_mtrlware.planprice[1]
  1223. ls_noallocqty = arg_s_mtrlware.noallocqty[1]
  1224. ls_storageid = arg_s_mtrlware.storageid[1]
  1225. ls_plancode = arg_s_mtrlware.plancode[1]
  1226. ls_cost = arg_s_mtrlware.cost[1]
  1227. ls_noauditingqty = arg_s_mtrlware.noauditingqty[1]
  1228. ls_status = arg_s_mtrlware.status[1]
  1229. ls_woodcode = arg_s_mtrlware.woodcode[1]
  1230. ls_pcode = arg_s_mtrlware.pcode[1]
  1231. ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1]
  1232. ls_mtrltype = arg_s_mtrlware.u_mtrldef_mtrltype[1]
  1233. ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[][1]
  1234. END IF
  1235. dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ls_mtrlwareid
  1236. dw_child.Object.u_outwaremx_mtrlid[child_row] = ls_mtrlid
  1237. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  1238. dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode
  1239. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  1240. dw_child.Object.u_mtrldef_prdpackcode[child_row] = ls_prdpackcode
  1241. dw_child.Object.u_mtrldef_packqty[child_row] = ls_packqty
  1242. dw_child.Object.u_outwaremx_qty[child_row] = ls_noallocqty - ls_noauditingqty
  1243. dw_child.Object.u_outwaremx_fprice[child_row] = ls_cost
  1244. dw_child.Object.u_outwaremx_planprice[child_row] = ls_planprice
  1245. dw_child.Object.u_outwaremx_storageid[child_row] = ls_storageid
  1246. dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode
  1247. dw_child.Object.u_outwaremx_status[child_row] = ls_status
  1248. dw_child.Object.u_outwaremx_woodcode[child_row] = ls_woodcode
  1249. dw_child.Object.u_outwaremx_pcode[child_row] = ls_pcode
  1250. dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode
  1251. dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode
  1252. dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype
  1253. dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype
  1254. IF Key = KeyEnter! THEN //
  1255. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1256. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1257. RETURN 1
  1258. END IF
  1259. ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_mxdscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN
  1260. PARENT.TriggerEvent("insert_childrow")
  1261. RETURN 1
  1262. ELSE
  1263. IF Key = KeyEnter! THEN //
  1264. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1265. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1266. RETURN 1
  1267. END IF
  1268. END IF
  1269. END IF
  1270. END IF
  1271. END IF
  1272. end event
  1273. event dw_child::doubleclicked;if dw_edit_mode then
  1274. if dwo.name = 'u_outwaremx_addqty' then
  1275. parent.triggerevent('ue_f10')
  1276. ELSEIF dwo.Name = 'u_outwaremx_formula' or dwo.Name = 'u_outwaremx_qty' then
  1277. PARENT.TriggerEvent('ue_cmpl_qty')
  1278. else
  1279. parent.triggerevent('ue_f8')
  1280. end if
  1281. end if
  1282. end event
  1283. event dw_child::itemchanged;call super::itemchanged;IF Not dw_edit_mode THEN RETURN
  1284. This.AcceptText()
  1285. IF dwo.Name = 'u_outwaremx_packqty' THEN
  1286. Long ll_mtrlid
  1287. Decimal lde_packqty_single, lde_packqty, lde_rate
  1288. IF ii_packqty_cmpl = 1 THEN
  1289. ll_mtrlid = This.Object.u_outwaremx_mtrlid[row]
  1290. lde_packqty_single = f_get_packqty(ll_mtrlid)
  1291. lde_packqty = This.Object.u_outwaremx_packqty[row]
  1292. //lde_rate = This.Object.u_outwaremx_rate[row]
  1293. //if lde_rate = 0 then lde_rate = 1
  1294. This.Object.u_outwaremx_qty[row] = lde_packqty * lde_packqty_single
  1295. //This.Object.u_outwaremx_buyqty[row] = lde_packqty * lde_packqty_single / lde_rate
  1296. //This.Object.u_outwaremx_saleqty[row] = lde_packqty * lde_packqty_single / lde_rate
  1297. END IF
  1298. END IF
  1299. end event
  1300. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_outware_other
  1301. end type
  1302. type cb_print from w_publ_1ton_share_detail`cb_print within w_outware_other
  1303. end type
  1304. type cb_add from w_publ_1ton_share_detail`cb_add within w_outware_other
  1305. end type
  1306. event cb_add::clicked;IF NOT f_power_ind(69) THEN
  1307. MessageBox('提示','你没有使用权限!',information!,ok!)
  1308. RETURN
  1309. END IF
  1310. String arg_msg = ''
  1311. Long uc_row,i
  1312. s_outwaremx s_mx
  1313. IF dw_edit_mode THEN
  1314. dw_uc.AcceptText()
  1315. dw_child.AcceptText()
  1316. uc_row = dw_uc.GetRow()
  1317. IF uc_row <= 0 THEN
  1318. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  1319. RETURN
  1320. END IF
  1321. IF NOT dw_uc.Object.u_outware_outdate[uc_row] > DateTime(2000-01-01,Now()) THEN
  1322. MessageBox('提示','不合理发生时间',information!,ok!)
  1323. dw_uc.SetFocus()
  1324. dw_uc.SetColumn("u_outware_outdate")
  1325. RETURN
  1326. END IF
  1327. IF NOT Len(String(dw_uc.Object.u_outware_outrep[uc_row])) > 0 THEN
  1328. MessageBox('提示','请填写经手人',information!,ok!)
  1329. dw_uc.SetFocus()
  1330. dw_uc.SetColumn("u_outware_outrep")
  1331. RETURN
  1332. END IF
  1333. IF NOT Len(String(dw_uc.Object.cusname[uc_row])) > 0 THEN
  1334. MessageBox('提示','请选择原因!',information!,ok!)
  1335. dw_uc.SetFocus()
  1336. dw_uc.SetColumn("cusname")
  1337. RETURN
  1338. END IF
  1339. //保存前根据物料资料定义,检查数量和辅数的关系是否正确,如果辅数有填写 ,数量没有填写 ,会根据物料资料里的定义自动计算出数量
  1340. IF wf_check_qtyandaddqty(arg_msg) = 0 THEN
  1341. MessageBox('提示',arg_msg + ',不能保存!',information!,OK!)
  1342. RETURN
  1343. END IF
  1344. uo_ware.outdate = dw_uc.Object.u_outware_outdate[uc_row] // 发生时间
  1345. uo_ware.outrep = dw_uc.Object.u_outware_outrep[uc_row] // 经手人
  1346. uo_ware.part = dw_uc.Object.u_outware_part[uc_row] //相关部门
  1347. uo_ware.dscrp = dw_uc.Object.u_outware_dscrp[uc_row] //备注
  1348. uo_ware.cusname = dw_uc.Object.cusname[uc_row]
  1349. uo_ware.storageid = dw_uc.Object.storageid[uc_row]
  1350. FOR i = 1 TO dw_child.RowCount()
  1351. IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  1352. s_mx.mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i]
  1353. s_mx.qty = dw_child.Object.u_outwaremx_qty[i]
  1354. s_mx.addqty = dw_child.Object.u_outwaremx_addqty[i]
  1355. s_mx.fprice = dw_child.Object.u_outwaremx_fprice[i]
  1356. s_mx.rebate = 1
  1357. s_mx.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[i]
  1358. s_mx.printid = dw_child.Object.printid[i]
  1359. s_mx.ifrel = 0
  1360. s_mx.relid = 0
  1361. s_mx.relprintid = 0
  1362. s_mx.relid2 = 0
  1363. s_mx.olmtrlid = 0
  1364. s_mx.packqty = 0
  1365. s_mx.outtype = 0
  1366. s_mx.unit = dw_child.Object.u_mtrldef_unit[i]
  1367. s_mx.rate = 1
  1368. s_mx.mtrlcuscode = ''
  1369. s_mx.formula = dw_child.Object.u_outwaremx_formula[i]
  1370. s_mx.packqty = dw_child.Object.u_outwaremx_packqty[i]
  1371. s_mx.mxdscrp2 = dw_child.Object.u_outwaremx_mxdscrp2[i]
  1372. s_mx.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[i]
  1373. s_mx.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[i]
  1374. IF uo_ware.acceptmx(s_mx, arg_msg) = 0 THEN
  1375. MessageBox('错误',arg_msg,stopsign!,ok!)
  1376. RETURN
  1377. END IF
  1378. END IF
  1379. NEXT
  1380. // FOR i = 1 TO dw_child.RowCount()
  1381. // IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN
  1382. // IF uo_ware.acceptmx(dw_child.Object.u_outwaremx_mtrlwareid[i],&
  1383. // dw_child.Object.u_outwaremx_qty[i],&
  1384. // dw_child.Object.u_outwaremx_addqty[i],&
  1385. // dw_child.Object.u_outwaremx_fprice[i],&
  1386. // 1,&
  1387. // dw_child.Object.u_outwaremx_mxdscrp[i],&
  1388. // dw_child.Object.printid[i],&
  1389. // arg_msg,0,0,0,0,0,0,0,&
  1390. // dw_child.Object.u_mtrldef_unit[i],1,'',&
  1391. // dw_child.Object.u_outwaremx_formula[i]) = 0 THEN
  1392. // MessageBox('错误',arg_msg,stopsign!,ok!)
  1393. // RETURN
  1394. // END IF
  1395. // END IF
  1396. // NEXT
  1397. IF uo_ware.Save(true,arg_msg) = 0 THEN
  1398. MessageBox('错误',arg_msg,stopsign!,ok!)
  1399. RETURN
  1400. END IF
  1401. // MessageBox(publ_operator,'保存操作成功!')
  1402. //write ini
  1403. f_SetProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.storageid[dw_uc.GetRow()]))
  1404. //
  1405. long ll_row
  1406. ll_row = dw_pageretr.getrow()
  1407. dw_pageretr.SelectRow(0,FALSE)
  1408. dw_pageretr.SelectRow(ll_row,TRUE)
  1409. wf_refresh_curuc(cur_scid,uo_ware.outwareid)
  1410. ELSE
  1411. IF uo_ware.newbegin(cur_scid,8,arg_msg) = 0 THEN
  1412. MessageBox('错误',arg_msg,stopsign!,ok!)
  1413. RETURN
  1414. END IF
  1415. END IF
  1416. CALL SUPER::Clicked
  1417. //read ini
  1418. IF dw_edit_mode THEN
  1419. PARENT.TriggerEvent("insert_childrow")
  1420. dw_uc.SetRedraw(FALSE)
  1421. String ls_storageid
  1422. ls_storageid = f_ProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",'0')
  1423. IF f_find_storageid(ls_storageid) = '' THEN
  1424. ls_storageid = '0'
  1425. END IF
  1426. dw_uc.Object.storageid[dw_uc.GetRow()] = Long(ls_storageid)
  1427. dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] =publ_operator
  1428. dw_uc.SetColumn("storageid")
  1429. dw_uc.SetRedraw(TRUE)
  1430. ELSE
  1431. PARENT.TriggerEvent("retrieve_childdw")
  1432. END IF
  1433. //
  1434. end event
  1435. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_outware_other
  1436. end type
  1437. event cb_edit::clicked;if not f_power_ind(69) then
  1438. messagebox('提示','你没有使用权限!',information!,ok!)
  1439. return
  1440. end if
  1441. string arg_msg=''
  1442. long uc_row
  1443. uc_row=dw_pageretr.getrow()
  1444. if uc_row<=0 then
  1445. messagebox('提示','请选定当前目标单据!',information!,ok!)
  1446. return
  1447. end if
  1448. if not dw_edit_mode then
  1449. if uo_ware.updatebegin(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.object.u_outware_outwareid[uc_row],8,arg_msg)=0 then
  1450. messagebox('错误',arg_msg,stopsign!,ok!)
  1451. return
  1452. end if
  1453. end if
  1454. call super::clicked
  1455. end event
  1456. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_outware_other
  1457. end type
  1458. event cb_delet::clicked;if not f_power_ind(602) then
  1459. messagebox('提示','你没有使用权限!',information!,ok!)
  1460. return
  1461. end if
  1462. if dw_edit_mode then return
  1463. string arg_msg=''
  1464. long uc_row
  1465. uc_row=dw_pageretr.getrow()
  1466. if uc_row<=0 then
  1467. messagebox('提示','请选定当前目标单据!',information!,ok!)
  1468. return
  1469. end if
  1470. IF MessageBox ("询问","是否确定要删除当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  1471. if uo_ware.del(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.object.u_outware_outwareid[uc_row],arg_msg,true)=0 then
  1472. messagebox('错误',arg_msg,stopsign!,ok!)
  1473. ELSE
  1474. //日志
  1475. long ls_id
  1476. string ls_code
  1477. ls_id=dw_pageretr.object.u_outware_outwareid[uc_row]
  1478. ls_code=dw_pageretr.object.u_outware_outwarecode[uc_row]
  1479. f_setsysoplog('其它出仓单','删除,ID:'+string(LS_id)+',code:'+ls_code,arg_msg,true)
  1480. //--
  1481. MESSAGEBOX('提示','删除单据'+string(dw_pageretr.object.u_outware_outwarecode[uc_row])+'成功!',information!,ok!)
  1482. dw_pageretr.deleterow(uc_row)
  1483. dw_pageretr.postevent(rowfocuschanged!)
  1484. end if
  1485. end event
  1486. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_outware_other
  1487. end type
  1488. event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1489. string menustr
  1490. menustr="Text=增加备注~tEvent=ue_addzy"
  1491. menustr=menustr + "|" + "Text=复制单据~tEvent=ue_bill_copy"
  1492. menustr=menustr + "|" + "Text=粘贴单据~tEvent=ue_bill_paste"
  1493. menustr = menustr + "|" + "Text=-"
  1494. menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  1495. menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit"
  1496. if len(trim(menustr))<>0 then
  1497. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1498. dmPopupMenu.mf_BuildMenu(This, menustr)
  1499. dmPopupMenu.mf_PopMenu()
  1500. Destroy dmPopupMenu
  1501. end if
  1502. end event
  1503. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_outware_other
  1504. end type
  1505. event cb_auditing::clicked;IF NOT f_power_ind(70) THEN
  1506. MessageBox('提示','你没有使用权限!',information!,ok!)
  1507. RETURN
  1508. END IF
  1509. IF dw_edit_mode THEN RETURN
  1510. IF NOT KeyDown(KeyControl!) THEN
  1511. String arg_msg = ''
  1512. Long pagerert_row
  1513. pagerert_row = dw_pageretr.GetRow()
  1514. IF pagerert_row <= 0 THEN
  1515. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  1516. RETURN
  1517. END IF
  1518. IF MessageBox ("询问","是否确定要审核当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  1519. IF uo_ware.getinfo(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],arg_msg) = 0 THEN
  1520. MessageBox('错误',arg_msg,stopsign!,ok!)
  1521. RETURN
  1522. END IF
  1523. IF uo_ware.auditing(TRUE,arg_msg) = 0 THEN
  1524. MessageBox('错误',arg_msg,stopsign!,ok!)
  1525. ELSE
  1526. MessageBox('提示','审核成功!',information!,ok!)
  1527. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  1528. wf_check_ware(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  1529. END IF
  1530. ELSE
  1531. IF MessageBox ("询问","是否确定要批审核列表中未审核的单据?",Question!,YesNo! ) = 2 THEN RETURN
  1532. Long ll_i,ll_billid
  1533. Int li_flag
  1534. Long ll_suc,ll_fail
  1535. dw_pageretr.AcceptText()
  1536. OPEN(w_sys_wait_jdt) //初始化进度条
  1537. w_sys_wait_jdt.Show()
  1538. w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount())
  1539. FOR ll_i = 1 TO dw_pageretr.RowCount()
  1540. w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在审核..." //进度信息
  1541. li_flag = dw_pageretr.Object.flag[ll_i]
  1542. IF li_flag = 1 THEN CONTINUE
  1543. ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i]
  1544. IF uo_ware.getinfo(cur_scid,ll_billid,arg_msg) = 0 THEN
  1545. ll_fail++
  1546. CONTINUE
  1547. END IF
  1548. IF uo_ware.auditing(TRUE,arg_msg) = 0 THEN
  1549. ll_fail++
  1550. CONTINUE
  1551. END IF
  1552. ll_suc++
  1553. w_sys_wait_jdt.wf_inc(ll_i) //进度
  1554. NEXT
  1555. CLOSE(w_sys_wait_jdt)
  1556. MessageBox('提示','批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail),information!,ok!)
  1557. PARENT.TriggerEvent('retrieve_pageretr')
  1558. END IF
  1559. end event
  1560. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_outware_other
  1561. end type
  1562. event cb_xm::clicked;is_mx_menustr = ''
  1563. is_mx_menustr = is_mx_menustr + "|" + "Text=批设定公式~tEvent=ue_p_formula_set"
  1564. is_mx_menustr = is_mx_menustr + "|" + "Text=批由公式计算数量~tEvent=ue_p_cmpl_qty"
  1565. is_mx_menustr = is_mx_menustr + "|" + "Text=批由辅数和配置计算数量~tEvent=ue_cmpl_status_qty"
  1566. is_mx_menustr = is_mx_menustr + "|" + "Text=批设数量为0~tEvent=ue_cmpl_set0"
  1567. call super::clicked
  1568. end event
  1569. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_outware_other
  1570. end type
  1571. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_outware_other
  1572. end type
  1573. type cb_help from w_publ_1ton_share_detail`cb_help within w_outware_other
  1574. end type
  1575. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_outware_other
  1576. end type
  1577. event cb_auditing_cancel::clicked;call super::clicked;IF NOT f_power_ind(913) THEN
  1578. MessageBox('提示','你没有使用权限!',information!,ok!)
  1579. RETURN
  1580. END IF
  1581. IF dw_edit_mode THEN RETURN
  1582. String arg_msg = ''
  1583. Long pagerert_row
  1584. pagerert_row = dw_pageretr.GetRow()
  1585. IF pagerert_row <= 0 THEN
  1586. MessageBox('提示','请选定当前目标单据!',information!,ok!)
  1587. RETURN
  1588. END IF
  1589. IF MessageBox ("询问","是否确定要撤消审核当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  1590. IF uo_ware.getinfo(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],arg_msg) = 0 THEN
  1591. MessageBox('错误',arg_msg,stopsign!,ok!)
  1592. RETURN
  1593. END IF
  1594. IF uo_ware.c_auditing(TRUE,arg_msg) = 0 THEN
  1595. MessageBox('错误',arg_msg,stopsign!,ok!)
  1596. ELSE
  1597. MessageBox('提示','撤消审核成功!',information!,ok!)
  1598. //日志
  1599. String ls_code,ls_opemp,ls_outpart
  1600. ls_code = dw_pageretr.Object.u_outware_outwarecode[pagerert_row]
  1601. ls_opemp = dw_pageretr.Object.u_outware_opemp[pagerert_row]
  1602. ls_outpart = dw_pageretr.Object.u_outware_part[pagerert_row]
  1603. f_setsysoplog('其它出仓单','撤审'+',code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,TRUE)
  1604. //--
  1605. wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row])
  1606. END IF
  1607. end event
  1608. type p_msg from w_publ_1ton_share_detail`p_msg within w_outware_other
  1609. end type
  1610. type p_help from w_publ_1ton_share_detail`p_help within w_outware_other
  1611. end type
  1612. type p_encl from w_publ_1ton_share_detail`p_encl within w_outware_other
  1613. end type
  1614. type p_other from w_publ_1ton_share_detail`p_other within w_outware_other
  1615. end type
  1616. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_outware_other
  1617. end type
  1618. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_outware_other
  1619. integer beginx = 14
  1620. integer endx = 3616
  1621. end type
  1622. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_outware_other
  1623. integer beginx = 14
  1624. integer endx = 3616
  1625. end type
  1626. type r_bar from w_publ_1ton_share_detail`r_bar within w_outware_other
  1627. end type
  1628. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_outware_other
  1629. end type
  1630. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_outware_other
  1631. end type
  1632. type ddlb_scid from uo_ddlb_scid within w_outware_other
  1633. integer x = 987
  1634. integer y = 188
  1635. integer width = 549
  1636. integer height = 668
  1637. integer taborder = 20
  1638. boolean bringtotop = true
  1639. end type
  1640. event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid
  1641. cur_scid_arr = THIS.uo_scid_arr
  1642. parent.triggerevent("retrieve_pageretr")
  1643. end event
  1644. event constructor;call super::constructor;cur_scid=this.uo_scid
  1645. cur_scid_arr = THIS.uo_scid_arr
  1646. end event
  1647. type ddlb_status from dropdownlistbox within w_outware_other
  1648. integer x = 1719
  1649. integer y = 188
  1650. integer width = 517
  1651. integer height = 300
  1652. integer taborder = 30
  1653. boolean bringtotop = true
  1654. integer textsize = -9
  1655. integer weight = 400
  1656. fontcharset fontcharset = gb2312charset!
  1657. fontpitch fontpitch = variable!
  1658. string facename = "宋体"
  1659. long textcolor = 33554432
  1660. string text = "[全部]"
  1661. boolean sorted = false
  1662. string item[] = {"[全部]","待审核","已审核"}
  1663. borderstyle borderstyle = stylelowered!
  1664. end type
  1665. event selectionchanged;if index=1 then
  1666. cur_flag=-1
  1667. elseif index=2 then
  1668. cur_flag=0
  1669. elseif index=3 then
  1670. cur_flag=1
  1671. end if
  1672. parent.triggerevent('retrieve_pageretr')
  1673. end event
  1674. type st_3 from statictext within w_outware_other
  1675. integer x = 1550
  1676. integer y = 204
  1677. integer width = 219
  1678. integer height = 48
  1679. integer textsize = -9
  1680. integer weight = 400
  1681. fontcharset fontcharset = gb2312charset!
  1682. fontpitch fontpitch = variable!
  1683. string facename = "宋体"
  1684. long textcolor = 33554432
  1685. long backcolor = 134217739
  1686. string text = "状 态"
  1687. boolean focusrectangle = false
  1688. end type
  1689. type st_2 from statictext within w_outware_other
  1690. integer x = 818
  1691. integer y = 204
  1692. integer width = 219
  1693. integer height = 48
  1694. integer textsize = -9
  1695. integer weight = 400
  1696. fontcharset fontcharset = gb2312charset!
  1697. fontpitch fontpitch = variable!
  1698. string facename = "宋体"
  1699. long textcolor = 33554432
  1700. long backcolor = 134217739
  1701. string text = "分 部"
  1702. boolean focusrectangle = false
  1703. end type
  1704. type cbx_packqty_cmpl from checkbox within w_outware_other
  1705. integer x = 3282
  1706. integer y = 100
  1707. integer width = 576
  1708. integer height = 60
  1709. boolean bringtotop = true
  1710. integer textsize = -9
  1711. integer weight = 400
  1712. fontcharset fontcharset = gb2312charset!
  1713. fontpitch fontpitch = variable!
  1714. string facename = "宋体"
  1715. long textcolor = 33554432
  1716. long backcolor = 134217739
  1717. string text = "录入包装数计算数量"
  1718. end type
  1719. event clicked;IF THIS.Checked THEN
  1720. ii_packqty_cmpl = 1
  1721. ELSE
  1722. ii_packqty_cmpl = 0
  1723. END IF
  1724. f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",String(ii_packqty_cmpl))
  1725. end event
  1726. event constructor;this.backcolor = 14215660
  1727. ii_packqty_cmpl = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",'0'))
  1728. IF ii_packqty_cmpl = 1 THEN
  1729. THIS.Checked = TRUE
  1730. ELSE
  1731. THIS.Checked = FALSE
  1732. END IF
  1733. //this.y = cbx_enamt_edit.y
  1734. //this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10
  1735. end event