w_inware_wfjg_waste.srw 76 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738
  1. $PBExportHeader$w_inware_wfjg_waste.srw
  2. forward
  3. global type w_inware_wfjg_waste from w_publ_1ton_share_detail
  4. end type
  5. type ddlb_scid from uo_ddlb_scid within w_inware_wfjg_waste
  6. end type
  7. type ddlb_status from dropdownlistbox within w_inware_wfjg_waste
  8. end type
  9. type st_3 from statictext within w_inware_wfjg_waste
  10. end type
  11. type st_2 from statictext within w_inware_wfjg_waste
  12. end type
  13. type tab_1 from tab within w_inware_wfjg_waste
  14. end type
  15. type tabpage_1 from userobject within tab_1
  16. end type
  17. type dw_1 from u_dw_rbtnfilter within tabpage_1
  18. end type
  19. type tabpage_1 from userobject within tab_1
  20. dw_1 dw_1
  21. end type
  22. type tabpage_2 from userobject within tab_1
  23. end type
  24. type dw_2 from u_dw_rbtnfilter within tabpage_2
  25. end type
  26. type tabpage_2 from userobject within tab_1
  27. dw_2 dw_2
  28. end type
  29. type tab_1 from tab within w_inware_wfjg_waste
  30. tabpage_1 tabpage_1
  31. tabpage_2 tabpage_2
  32. end type
  33. type cb_in_2_out from uo_imflatbutton within w_inware_wfjg_waste
  34. end type
  35. type cbx_autocmp from checkbox within w_inware_wfjg_waste
  36. end type
  37. end forward
  38. global type w_inware_wfjg_waste from w_publ_1ton_share_detail
  39. string title = "外协损耗单"
  40. boolean maxbox = true
  41. windowstate windowstate = maximized!
  42. event insert_childrow ( )
  43. event insert_childrow_spt ( )
  44. event ue_fj_edit ( )
  45. event ue_fj_view ( )
  46. event ue_in_to_out2 ( )
  47. ddlb_scid ddlb_scid
  48. ddlb_status ddlb_status
  49. st_3 st_3
  50. st_2 st_2
  51. tab_1 tab_1
  52. cb_in_2_out cb_in_2_out
  53. cbx_autocmp cbx_autocmp
  54. end type
  55. global w_inware_wfjg_waste w_inware_wfjg_waste
  56. type variables
  57. long cur_scid //分店ID
  58. int cur_flag=-1
  59. uo_wfjg_waste uo_ware
  60. uo_spt_price uo_sptprice
  61. long cur_id=0
  62. int cur_editfocus=0 //1:新建2:修改
  63. long aflag= 0
  64. string ol_cdw_str =''
  65. datawindow dw_order_spt,dw_ware_spt
  66. Long child_column_spt
  67. end variables
  68. forward prototypes
  69. public function integer wf_flagstatus_rf ()
  70. public function integer wf_refresh_curuc (long arg_scid, long arg_wasteid)
  71. public function integer wf_lock_child ()
  72. public subroutine wf_check_billfj ()
  73. 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)
  74. public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg)
  75. public function integer wf_in_to_out2 (ref string arg_msg)
  76. end prototypes
  77. event insert_childrow();Long li_row
  78. li_row = dw_order_spt.InsertRow(0)
  79. dw_order_spt.ScrollToRow(li_row)
  80. dw_order_spt.SetColumn ('u_order_wfjg_wastemx_ifrel')
  81. Long li_ifrel
  82. li_ifrel = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "ifrel", '0'))
  83. dw_order_spt.Object.u_order_wfjg_wastemx_ifrel[li_row] = li_ifrel
  84. end event
  85. event insert_childrow_spt();Long li_row
  86. li_row = dw_ware_spt.InsertRow(0)
  87. dw_ware_spt.ScrollToRow(li_row)
  88. dw_ware_spt.SetColumn ('u_mtrldef_mtrlcode')
  89. end event
  90. event ue_fj_edit();IF dw_edit_mode THEN
  91. MessageBox('提示','编辑状态下不可用',information!,OK!)
  92. RETURN
  93. END IF
  94. //IF NOT f_power_ind(1446) THEN
  95. // MessageBox(publ_operator,'你没有使用权限!')
  96. // RETURN
  97. //END IF
  98. s_edit_index_tran s_pic
  99. Long ll_ConnectionID
  100. String arg_msg
  101. Long ls_row
  102. ls_row = dw_uc.GetRow()
  103. IF ls_row <= 0 THEN
  104. RETURN
  105. END IF
  106. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  107. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!)
  108. RETURN
  109. END IF
  110. s_pic.f_long = 228 //采购订单的mainID
  111. s_pic.f_string = dw_uc.Object.u_order_wfjg_waste_wastecode[ls_row]
  112. s_pic.g_long = dw_uc.Object.u_order_wfjg_waste_wasteid[ls_row]
  113. s_pic.e_long = dw_uc.Object.u_order_wfjg_waste_scid[ls_row]
  114. s_pic.sqltransaction = sys_filedb_sqlca
  115. OpenWithParm(w_fj_bill_mng,s_pic)
  116. //wf_check_billfj()
  117. end event
  118. event ue_fj_view();IF dw_edit_mode THEN
  119. MessageBox('提示','编辑状态下不可用',information!,OK!)
  120. RETURN
  121. END IF
  122. s_edit_index_tran s_pic
  123. Long ll_ConnectionID
  124. String arg_msg
  125. Long ls_row
  126. ls_row = dw_uc.GetRow()
  127. IF ls_row <= 0 THEN
  128. RETURN
  129. END IF
  130. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  131. MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!)
  132. RETURN
  133. END IF
  134. s_pic.f_long = 228 //采购订单的mainID
  135. s_pic.f_string = dw_uc.Object.u_order_wfjg_waste_wastecode[ls_row]
  136. s_pic.g_long = dw_uc.Object.u_order_wfjg_waste_wasteid[ls_row]
  137. s_pic.e_long = dw_uc.Object.u_order_wfjg_waste_scid[ls_row]
  138. s_pic.sqltransaction = sys_filedb_sqlca
  139. OpenWithParm(w_fj_bill_view,s_pic)
  140. end event
  141. event ue_in_to_out2();IF NOT dw_edit_mode THEN RETURN
  142. String arg_msg
  143. IF wf_in_to_out2(arg_msg) = 0 THEN
  144. MessageBox(publ_operator,arg_msg)
  145. END IF
  146. end event
  147. public function integer wf_flagstatus_rf ();//wf_flagstatus_rf()
  148. long pagerert_row
  149. pagerert_row=dw_pageretr.getrow()
  150. if pagerert_row<=0 then
  151. cb_auditing.enabled=false
  152. aflag=-1
  153. goto ext
  154. end if
  155. aflag=dw_pageretr.object.u_order_wfjg_waste_flag[pagerert_row]
  156. if dw_edit_mode then
  157. cb_auditing.enabled=false
  158. if cur_editfocus=1 then
  159. aflag=-1
  160. end if
  161. cb_auditing_cancel.enabled=false
  162. else
  163. if aflag=0 then
  164. cb_auditing.enabled=true
  165. cb_auditing_cancel.enabled=false
  166. elseif aflag=1 then
  167. cb_auditing.enabled=false
  168. cb_auditing_cancel.enabled=true
  169. end if
  170. end if
  171. ext:
  172. return 0
  173. end function
  174. public function integer wf_refresh_curuc (long arg_scid, long arg_wasteid);//====================================================================
  175. // Function: wf_refresh_curuc(arg_scid,arg_wasteid)
  176. //--------------------------------------------------------------------
  177. // Description: 刷新dw_pageretr
  178. //--------------------------------------------------------------------
  179. // Arguments:
  180. // value long arg_scid
  181. // value long arg_wasteid
  182. //--------------------------------------------------------------------
  183. // Returns: integer
  184. //--------------------------------------------------------------------
  185. // Author: yyx Date: 2003.11.14
  186. //--------------------------------------------------------------------
  187. // Modify History:
  188. //
  189. //====================================================================
  190. IF arg_wasteid <= 0 OR IsNull(arg_wasteid) THEN RETURN 0
  191. Long uc_row
  192. uc_row = dw_pageretr.GetRow()
  193. IF uc_row <= 0 THEN RETURN 0
  194. DateTime waste_date
  195. String waste_rep
  196. String dscrp
  197. String waste_code
  198. String sptname
  199. DateTime opdate
  200. String opemp
  201. String modemp
  202. DateTime moddate
  203. Int flag
  204. DateTime Auditingdate
  205. String Auditingrep
  206. Long sptid
  207. String relcode
  208. string sptcode
  209. SELECT u_order_wfjg_waste.wastecode,
  210. u_order_wfjg_waste.sptid,
  211. u_order_wfjg_waste.wastedate,
  212. u_order_wfjg_waste.assign_emp,
  213. u_order_wfjg_waste.relcode,
  214. u_order_wfjg_waste.dscrp,
  215. u_order_wfjg_waste.flag,
  216. u_order_wfjg_waste.auditingdate,
  217. u_order_wfjg_waste.auditingrep,
  218. u_order_wfjg_waste.modemp,
  219. u_order_wfjg_waste.moddate,
  220. u_order_wfjg_waste.opdate,
  221. u_order_wfjg_waste.opemp,
  222. u_spt.sptcode,
  223. u_spt.name
  224. INTO :waste_code,
  225. :sptid,
  226. :waste_date,
  227. :waste_rep,
  228. :relcode,
  229. :dscrp,
  230. :flag,
  231. :Auditingdate,
  232. :Auditingrep,
  233. :modemp,
  234. :moddate,
  235. :opdate,
  236. :opemp,
  237. :sptcode,
  238. :sptname
  239. FROM u_order_wfjg_waste INNER JOIN
  240. u_spt ON u_order_wfjg_waste.sptid = u_spt.sptid
  241. WHERE u_order_wfjg_waste.wasteid = :arg_wasteid
  242. AND u_order_wfjg_waste.scid = :arg_scid
  243. USING sqlca;
  244. IF sqlca.SQLCode <> 0 THEN
  245. MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,OK!)
  246. RETURN 0
  247. END IF
  248. dw_pageretr.Object.u_order_wfjg_waste_scid[uc_row] = arg_scid
  249. dw_pageretr.Object.u_order_wfjg_waste_wasteid[uc_row] = arg_wasteid
  250. dw_pageretr.Object.u_order_wfjg_waste_wastedate[uc_row] = waste_date
  251. dw_pageretr.Object.u_order_wfjg_waste_assign_emp[uc_row] = waste_rep
  252. dw_pageretr.Object.u_order_wfjg_waste_dscrp[uc_row] = dscrp
  253. dw_pageretr.Object.u_order_wfjg_waste_wastecode[uc_row] = waste_code
  254. dw_pageretr.Object.u_order_wfjg_waste_opdate[uc_row] = opdate
  255. dw_pageretr.Object.u_order_wfjg_waste_opemp[uc_row] = opemp
  256. dw_pageretr.Object.u_order_wfjg_waste_moddate[uc_row] = moddate
  257. dw_pageretr.Object.u_order_wfjg_waste_modemp[uc_row] = modemp
  258. dw_pageretr.Object.u_order_wfjg_waste_flag[uc_row] = flag
  259. dw_pageretr.Object.u_order_wfjg_waste_Auditingdate[uc_row] = Auditingdate
  260. dw_pageretr.Object.u_order_wfjg_waste_Auditingrep[uc_row] = Auditingrep
  261. dw_pageretr.Object.u_spt_name[uc_row] = sptname
  262. dw_pageretr.Object.u_spt_sptcode[uc_row] = sptcode
  263. dw_pageretr.Object.u_order_wfjg_waste_relcode[uc_row] = relcode
  264. dw_pageretr.Object.u_order_wfjg_waste_sptid[uc_row] = sptid
  265. dw_uc.Reset()
  266. dw_pageretr.RowsCopy(dw_pageretr.GetRow(),&
  267. dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!)
  268. dw_uc.ResetUpdate()
  269. dw_uc.SetRedraw(TRUE)
  270. wf_flagstatus_rf()
  271. RETURN 1
  272. end function
  273. public function integer wf_lock_child ();Int LS_INT
  274. IF dw_edit_mode THEN
  275. FOR LS_INT = 1 TO child_column_int
  276. dw_order_spt.SetTabOrder (LS_INT,LS_INT*10 )
  277. NEXT
  278. ELSE
  279. FOR LS_INT = 1 TO child_column_int
  280. dw_order_spt.SetTabOrder (LS_INT, 0)
  281. NEXT
  282. END IF
  283. IF dw_edit_mode THEN
  284. FOR LS_INT = 1 TO child_column_spt
  285. dw_ware_spt.SetTabOrder (LS_INT,LS_INT*10 )
  286. NEXT
  287. ELSE
  288. FOR LS_INT = 1 TO child_column_spt
  289. dw_ware_spt.SetTabOrder (LS_INT, 0)
  290. NEXT
  291. END IF
  292. RETURN 1
  293. end function
  294. public subroutine wf_check_billfj ();String arg_msg
  295. Long ll_ConnectionID
  296. Long cur_billtype
  297. long ll_relid,ll_relid_mx,ll_scid
  298. Long ls_filecount = 0
  299. Int rslt = 1
  300. uo_fj_mng_billtype ls_uo_fjbt
  301. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  302. Long row,uc_relid
  303. row = dw_pageretr.GetRow()
  304. IF row > 0 THEN
  305. ll_relid = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row]
  306. ll_scid = dw_pageretr.Object.u_order_wfjg_waste_scid[row]
  307. ll_relid_mx = 0
  308. ELSE
  309. rslt = 0
  310. GOTO ext
  311. END IF
  312. IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN
  313. rslt = 0
  314. GOTO ext
  315. END IF
  316. cur_billtype = 228 //客户投拆单的 mainiD
  317. ls_uo_fjbt.uf_check_billfj( cur_billtype, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount)
  318. IF ls_filecount > 0 THEN
  319. rslt = 1
  320. GOTO ext
  321. ELSE
  322. rslt = 0
  323. GOTO ext
  324. END IF
  325. ext:
  326. wf_encl(rslt)
  327. DESTROY ls_uo_fjbt
  328. end subroutine
  329. 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);//==============================================================================
  330. // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata()
  331. //------------------------------------------------------------------------------
  332. // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可
  333. //------------------------------------------------------------------------------
  334. Long LS_ROW,ll_id,i,ll_scid
  335. LS_ROW = dw_uc.GetRow()
  336. IF LS_ROW <= 0 THEN
  337. arg_msg = '没有目标单据!'
  338. RETURN 0
  339. END IF
  340. //修改点:获取 指定retriev参数
  341. ll_id = dw_uc.Object.#1[LS_ROW]
  342. ll_scid = dw_uc.Object.u_order_wfjg_waste_scid[LS_ROW]
  343. //查询所选模版是否含有图片信息
  344. Long ll_ifpic
  345. Long ll_classid
  346. SELECT ifpic
  347. INTO :ll_ifpic
  348. FROM U_XLS_Templates
  349. Where id = :ll_xls_Templatesid;
  350. IF sqlca.SQLCode <> 0 THEN
  351. ll_ifpic = 0
  352. END IF
  353. Long ll_i,ll_j
  354. Long ll_mtrlid
  355. Long ll_fileid
  356. Blob ls_filedata
  357. SetNull(ls_filedata)
  358. String Pathname,ls_filename,ls_filetype
  359. String errmsg
  360. uo_fj_mng_billtype ls_uo_fjbt
  361. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  362. s_xls_pic_list s_pic //结构数组-用于保存图片路径
  363. IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件
  364. SELECT classid
  365. INTO :ll_classid
  366. FROM u_billpic_fileclass
  367. Where (billtype = 228);
  368. IF sqlca.SQLCode <> 0 THEN
  369. ll_classid = 0
  370. END IF
  371. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  372. FOR ll_i = 1 TO dw_order_spt.RowCount()
  373. ll_mtrlid = dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[ll_i]
  374. //取该附件类型中的第一个附件.
  375. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  376. FROM u_file
  377. WHERE relid = :ll_mtrlid
  378. AND classid = :ll_classid
  379. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  380. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  381. USING sys_fileDB_sqlca;
  382. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  383. ll_fileid = 0
  384. END IF
  385. IF ll_fileid > 0 THEN
  386. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  387. IF Trim(Pathname) <> '' THEN
  388. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  389. RETURN 0
  390. END IF
  391. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  392. RETURN 0
  393. ELSE
  394. s_pic.path[ll_i] = Pathname
  395. //记录临时文件位置,本窗口退出后删除
  396. wf_addlog_tempfilepathname(Pathname)
  397. END IF
  398. ELSE
  399. s_pic.path[ll_i] = ''
  400. END IF
  401. ELSE
  402. s_pic.path[ll_i] = ''
  403. END IF
  404. NEXT
  405. END IF
  406. //
  407. END IF
  408. ////可选设置///
  409. arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码
  410. if sys_option_xls_ifuse_passwd = 1 then arg_obj_st.uo_const.pwd = trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码
  411. boolean xls_locked
  412. xls_locked = not (sys_option_xls_lock = 1)
  413. /// Excel 的可选设置
  414. if arg_obj_st.of_setoption(arg_ationid, xls_locked,true,arg_msg) <> 1 then
  415. return 0
  416. end if
  417. for i = 1 to arg_str_billlist.count
  418. ////可选操作///
  419. arg_str_billlist.bill[i].ds_data = create datastore //
  420. arg_str_billlist.bill[i].ds_data.dataobject = arg_str_billlist.bill[i].datawindow //
  421. arg_str_billlist.bill[i].ds_data.settransobject(sqlca)
  422. //修改点:注意retrieve 参数与上文对应
  423. arg_str_billlist.bill[i].ds_data.retrieve(ll_scid,ll_id)
  424. next
  425. return 1
  426. end function
  427. 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
  428. LS_ROW = dw_pageretr.GetRow()
  429. IF LS_ROW <= 0 THEN
  430. arg_msg = '没有目标单据!'
  431. RETURN 0
  432. END IF
  433. //修改点:获取 指定retriev参数
  434. ll_id = dw_pageretr.Object.#1[LS_ROW]
  435. ll_scid = dw_pageretr.Object.u_order_wfjg_waste_scid[LS_ROW]
  436. Long ll_i,ll_j
  437. Long ll_mtrlid
  438. Long ll_fileid
  439. Blob ls_filedata
  440. SetNull(ls_filedata)
  441. String Pathname,ls_filename,ls_filetype
  442. String errmsg
  443. uo_fj_mng_billtype ls_uo_fjbt
  444. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  445. Long ll_classid
  446. SELECT classid
  447. INTO :ll_classid
  448. FROM u_billpic_fileclass
  449. Where (billtype = 102);
  450. IF sqlca.SQLCode <> 0 THEN
  451. ll_classid = 0
  452. END IF
  453. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  454. FOR ll_i = 1 TO dw_order_spt.RowCount()
  455. ll_mtrlid = dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[ll_i]
  456. arg_s_pic.mtrlid[ll_i] = ll_mtrlid
  457. //取该附件类型中的第一个附件.
  458. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  459. FROM u_file
  460. WHERE relid = :ll_mtrlid
  461. AND classid = :ll_classid
  462. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  463. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  464. USING sys_fileDB_sqlca;
  465. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  466. ll_fileid = 0
  467. END IF
  468. IF ll_fileid > 0 THEN
  469. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  470. IF Trim(Pathname) <> '' THEN
  471. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  472. RETURN 0
  473. END IF
  474. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  475. RETURN 0
  476. ELSE
  477. arg_s_pic.path[ll_i] = Pathname
  478. //记录临时文件位置,本窗口退出后删除
  479. wf_addlog_tempfilepathname(Pathname)
  480. END IF
  481. ELSE
  482. arg_s_pic.path[ll_i] = ''
  483. END IF
  484. ELSE
  485. arg_s_pic.path[ll_i] = ''
  486. END IF
  487. NEXT
  488. END IF
  489. RETURN 1
  490. end function
  491. public function integer wf_in_to_out2 (ref string arg_msg);
  492. Int rslt = 1
  493. Long ll_sptid
  494. Long uc_row
  495. uc_row = dw_uc.GetRow()
  496. IF uc_row <= 0 THEN
  497. rslt = 0
  498. arg_msg = '请先选择单据'
  499. GOTO ext
  500. END IF
  501. ll_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[uc_row]
  502. IF ll_sptid <= 0 THEN
  503. rslt = 0
  504. arg_msg = '请先选择供应商'
  505. GOTO ext
  506. END IF
  507. IF NOT dw_edit_mode THEN
  508. rslt = 0
  509. arg_msg = '非编辑状态不可用'
  510. GOTO ext
  511. END IF
  512. dw_order_spt.AcceptText()
  513. Long child_llrow
  514. Long ll_dw_in_rowcount
  515. Long ll_i,i = 1,ll_itmx,ll_j
  516. Long ll_in_mtrlid
  517. Decimal ld_qty
  518. Long ll_row
  519. String ls_pfcode
  520. Decimal mtrlwaresum_qty,r_qty,i_qty,ins_qty,ins_planprice,ins_price
  521. Long ll_mtrlwareid
  522. decimal li_cost
  523. String ins_status,ins_woodcode,ins_pcode,ins_plancode
  524. s_mtrldef_wfjg_array s_wfjg
  525. ll_dw_in_rowcount = dw_order_spt.RowCount()
  526. IF ll_dw_in_rowcount <= 0 THEN
  527. rslt = 0
  528. arg_msg = '没有收货明细内容'
  529. GOTO ext
  530. END IF
  531. dw_order_spt.AcceptText()
  532. dw_ware_spt.AcceptText()
  533. dw_ware_spt.SetRedraw(FALSE)
  534. dw_ware_spt.Reset()
  535. FOR ll_i = 1 TO ll_dw_in_rowcount
  536. // //数量 转换
  537. // IF sys_option_2unit = 0 THEN
  538. // dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i]
  539. // ELSE
  540. // IF dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] <> 0 THEN
  541. // dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i]
  542. // ELSE
  543. // dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = 0
  544. // END IF
  545. // END IF
  546. //
  547. // dw_aft.AcceptText()
  548. //
  549. ll_in_mtrlid = dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[ll_i]
  550. ld_qty = dw_order_spt.Object.u_order_wfjg_wastemx_qty[ll_i]
  551. //查找 收货对应的发出 明细
  552. DECLARE cur_inmx CURSOR FOR
  553. SELECT u_PrdPF.SonMtrlid,
  554. u_mtrldef.mtrlcode,
  555. u_mtrldef.mtrlname,
  556. u_mtrldef.mtrlmode,
  557. u_mtrldef.unit,
  558. u_mtrldef.mtrlsectype,
  559. u_mtrldef.zxmtrlmode,
  560. :ld_qty * u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss
  561. FROM u_PrdPF INNER JOIN
  562. u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid
  563. Where ( u_PrdPF.mtrlid = :ll_in_mtrlid ) ;
  564. OPEN cur_inmx;
  565. FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i],
  566. :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i],
  567. :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i];
  568. DO WHILE sqlca.SQLCode = 0
  569. i++
  570. FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i],
  571. :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i],
  572. :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i];
  573. LOOP
  574. CLOSE cur_inmx;
  575. NEXT
  576. ll_itmx = i - 1
  577. FOR ll_j = 1 TO ll_itmx
  578. li_cost=0
  579. SELECT top 1 mtrlwareid,cost
  580. INTO :ll_mtrlwareid,:li_cost
  581. FROM ow_wfjgware
  582. WHERE mtrlid = :s_wfjg.mtrlid[ll_j]
  583. AND sptid = :ll_sptid
  584. order by noallocqty desc;
  585. IF sqlca.SQLCode = 0 THEN
  586. ELSEIF sqlca.SQLCode = 100 THEN
  587. ll_mtrlwareid = 0
  588. ELSE
  589. arg_msg = '查询库存量失败>'+sqlca.SQLErrText
  590. rslt = 0
  591. GOTO ext
  592. END IF
  593. IF dw_ware_spt.GetRow() <= 0 THEN
  594. child_llrow = dw_ware_spt.InsertRow(0)
  595. ELSE
  596. IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[dw_ware_spt.GetRow()] > 0 THEN
  597. child_llrow = dw_ware_spt.InsertRow(0)
  598. ELSE
  599. child_llrow = dw_ware_spt.GetRow()
  600. END IF
  601. END IF
  602. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlwareid[child_llrow] = ll_mtrlwareid
  603. dw_ware_spt.Object.u_mtrldef_mtrlcode[child_llrow] = s_wfjg.mtrlcode[ll_j]
  604. dw_ware_spt.Object.u_mtrldef_unit[child_llrow] = s_wfjg.unit[ll_j]
  605. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_qty[child_llrow] = s_wfjg.qty[ll_j]
  606. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[child_llrow] = s_wfjg.mtrlid[ll_j]
  607. dw_ware_spt.Object.u_mtrldef_mtrlname[child_llrow] = s_wfjg.mtrlname[ll_j]
  608. dw_ware_spt.Object.u_mtrldef_mtrlmode[child_llrow] = s_wfjg.mtrlmode[ll_j]
  609. dw_ware_spt.Object.u_mtrldef_mtrlsectype[child_llrow] = s_wfjg.mtrlsectype[ll_j]
  610. dw_ware_spt.Object.u_mtrldef_zxmtrlmode[child_llrow] = s_wfjg.zxmtrlmode[ll_j]
  611. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_fprice[child_llrow] = li_cost
  612. NEXT
  613. dw_ware_spt.SetRedraw(TRUE)
  614. ext:
  615. RETURN rslt
  616. end function
  617. on w_inware_wfjg_waste.create
  618. int iCurrent
  619. call super::create
  620. this.ddlb_scid=create ddlb_scid
  621. this.ddlb_status=create ddlb_status
  622. this.st_3=create st_3
  623. this.st_2=create st_2
  624. this.tab_1=create tab_1
  625. this.cb_in_2_out=create cb_in_2_out
  626. this.cbx_autocmp=create cbx_autocmp
  627. iCurrent=UpperBound(this.Control)
  628. this.Control[iCurrent+1]=this.ddlb_scid
  629. this.Control[iCurrent+2]=this.ddlb_status
  630. this.Control[iCurrent+3]=this.st_3
  631. this.Control[iCurrent+4]=this.st_2
  632. this.Control[iCurrent+5]=this.tab_1
  633. this.Control[iCurrent+6]=this.cb_in_2_out
  634. this.Control[iCurrent+7]=this.cbx_autocmp
  635. end on
  636. on w_inware_wfjg_waste.destroy
  637. call super::destroy
  638. destroy(this.ddlb_scid)
  639. destroy(this.ddlb_status)
  640. destroy(this.st_3)
  641. destroy(this.st_2)
  642. destroy(this.tab_1)
  643. destroy(this.cb_in_2_out)
  644. destroy(this.cbx_autocmp)
  645. end on
  646. event retrieve_pageretr;Boolean cb_nextpage_enabled,cb_retrieveall_enabled
  647. Boolean cb_func_enabled,cb_retrieve_enabled
  648. cb_nextpage_enabled = cb_nextpage.Enabled
  649. cb_retrieveall_enabled = cb_retrieveall.Enabled
  650. cb_func_enabled = cb_func.Enabled
  651. cb_nextpage.Enabled = FALSE
  652. cb_retrieveall.Enabled = FALSE
  653. cb_func.Enabled = FALSE
  654. dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数
  655. dw_pageretr.Retrieve(cur_scid,cur_flag,sys_user_spttype)
  656. IF dw_pageretr.RowCount() > 0 THEN
  657. dw_pageretr.SetRow(1)
  658. dw_pageretr.triggerevent(rowfocuschanged!)
  659. end if
  660. THIS.TriggerEvent('retrieve_childdw')
  661. cb_nextpage.Enabled = cb_nextpage_enabled
  662. cb_retrieveall.Enabled = cb_retrieveall_enabled
  663. cb_func.Enabled = cb_func_enabled
  664. end event
  665. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  666. if trim(sle_usual_query.text)<>'' then
  667. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  668. obj_expr=obj_expr+'( u_order_wfjg_waste_wastecode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  669. ELSE
  670. obj_expr=obj_expr+'( u_order_wfjg_waste_wastecode LIKE "'+trim(sle_usual_query.text)+'" )'
  671. END IF
  672. end if
  673. dw_pageretr.setfilter(obj_expr)
  674. dw_pageretr.SetRedraw(False)
  675. dw_pageretr.filter()
  676. if dw_pageretr.rowcount()>=1 then
  677. dw_pageretr.selectrow(0,false)
  678. dw_pageretr.selectrow(1,true)
  679. dw_pageretr.SetRow(1)
  680. dw_pageretr.triggerevent(rowfocuschanged!)
  681. end if
  682. dw_pageretr.SetRedraw(TRUE)
  683. end event
  684. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  685. ls_newselect=lower(ori_oldselect)
  686. if trim(sle_usual_query.text)<>'' then
  687. if pos(trim(sle_usual_query.text),'%')=0 then
  688. ls_querystrpart="(u_order_wfjg_waste.wastecode like '%"+trim(sle_usual_query.text)+"%')"
  689. else
  690. ls_querystrpart="(u_order_wfjg_waste.wastecode like '"+trim(sle_usual_query.text)+"')"
  691. end if
  692. if Pos(ls_newselect," where ") <> 0 then
  693. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  694. else
  695. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  696. end if
  697. end if
  698. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  699. this.triggerevent('retrieve_pageretr')
  700. end event
  701. event open;THIS.TriggerEvent('ue_before_open')
  702. wf_movetocenter()
  703. OLD_TITLE = THIS.Title
  704. s_tran = Message.PowerObjectParm
  705. IF NOT IsNull(s_tran) THEN
  706. retrieve_all = s_tran.if_retrieve_all
  707. mode = s_tran.work_mode
  708. arg_pkid = s_tran.arg_pkid
  709. arg_string_code = s_tran.arg_string_code
  710. if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  711. ds_share = s_tran.ds_share
  712. END IF
  713. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  714. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  715. dw_pageretr.SetTransObject (sqlca)
  716. pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  717. ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select")
  718. ls_newselect = ori_oldselect
  719. ds_curquery = CREATE DATASTORE
  720. ds_curquery.DataObject = 'd_extr_find'
  721. ds_curquery.SetTransObject (sqlca)
  722. wf_editindex_lockf()
  723. sle_usual_query.Text = Trim(arg_string_code)
  724. IF NOT retrieve_all THEN
  725. THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve
  726. ELSE
  727. IF if_sharedata THEN
  728. ds_share.ShareData(dw_pageretr)
  729. ELSE
  730. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  731. THIS.TriggerEvent('RETRIEVE_pageretr')
  732. END IF
  733. END IF
  734. IF retrieve_all THEN
  735. THIS.TriggerEvent("ue_usual_query_filt")
  736. END IF
  737. uc_column_int = 7 //uc dw前7列可以编辑
  738. child_column_int = 11 //子dw前8列可以编辑
  739. child_column_spt = 4 //子dw前8列可以编辑
  740. uo_ware = CREATE uo_wfjg_waste
  741. uo_ware.commit_transaction = sqlca
  742. s_hide_col s_col_mtrlsectype
  743. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  744. f_hide_col(1308,dw_order_spt,s_col_mtrlsectype)
  745. f_hide_col(1308,dw_ware_spt,s_col_mtrlsectype)
  746. s_hide_col s_col_zxmtrlmode
  747. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  748. f_hide_col(1309,dw_order_spt,s_col_zxmtrlmode)
  749. f_hide_col(1309,dw_ware_spt,s_col_zxmtrlmode)
  750. end event
  751. event refresh_interface;call super::refresh_interface;wf_flagstatus_rf()
  752. ddlb_status.enabled=not dw_edit_mode
  753. if dw_edit_mode then
  754. ddlb_scid.enabled=false
  755. else
  756. if sys_scid > 0 then
  757. ddlb_scid.enabled=false
  758. else
  759. ddlb_scid.enabled=true
  760. end if
  761. end if
  762. end event
  763. event close;call super::close;destroy uo_ware
  764. wf_del_tempfilepathname()
  765. end event
  766. event ue_f8;call super::ue_f8;//用于选择明细内容,被f8[默认]\dw_order_spt.doubleclicked调用
  767. IF NOT dw_edit_mode THEN RETURN
  768. Long child_row,ls_null,cnt_childdw
  769. Long ins_storageid = 0
  770. Long ls_sptid
  771. Dec ls_lastprice,ls_rebate
  772. s_edit_index_tran s_tranf8
  773. s_tranf8.if_retrieve_all = FALSE
  774. s_tranf8.arg_pkid = 0
  775. s_tranf8.arg_string_code = ''
  776. s_tranf8.b_long = 2
  777. Long chc = 1,ls_j
  778. SetNull(ls_null)
  779. child_row = dw_order_spt.GetRow()
  780. cnt_childdw = dw_order_spt.RowCount()
  781. ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()]
  782. IF IsNull(ls_sptid) OR ls_sptid = 0 THEN
  783. THIS.TriggerEvent("ue_f9")
  784. END IF
  785. dw_uc.AcceptText()
  786. this.enabled = false
  787. ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()]
  788. IF NOT IsValid(w_mtrldef_edit) THEN
  789. s_edit_index_tran s_ch_tran
  790. s_ch_tran.if_retrieve_all = FALSE
  791. s_ch_tran.work_mode = 1
  792. s_ch_tran.arg_pkid = 0
  793. s_ch_tran.arg_string_code = ''
  794. s_ch_tran.b_long = 3
  795. s_ch_tran.if_select_all = TRUE
  796. dw_order_spt.AcceptText()
  797. IF dw_order_spt.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_order_spt.Object.u_mtrldef_mtrlcode[dw_order_spt.GetRow()])
  798. OpenWithParm(w_mtrldef_edit,s_ch_tran) //调用
  799. s_mtrldef_array s_inscust
  800. s_inscust = Message.PowerObjectParm //接受返回结构
  801. FOR ls_j = 1 TO UpperBound(s_inscust.mtrlid)
  802. IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值
  803. IF dw_order_spt.GetRow() > 0 THEN
  804. IF dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[child_row] <> 0 THEN
  805. child_row = dw_order_spt.InsertRow (0)
  806. ELSE
  807. child_row = dw_order_spt.GetRow()
  808. END IF
  809. ELSE
  810. child_row = dw_order_spt.InsertRow (0)
  811. END IF
  812. dw_order_spt.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j]
  813. dw_order_spt.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j]
  814. dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[child_row] = s_inscust.mtrlid[ls_j]
  815. dw_order_spt.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j]
  816. dw_order_spt.Object.u_mtrldef_statusflag[child_row] = s_inscust.statusflag[ls_j]
  817. dw_order_spt.Object.u_mtrldef_woodcodeflag[child_row] = s_inscust.woodcodeflag[ls_j]
  818. dw_order_spt.Object.u_mtrldef_pcodeflag[child_row] = s_inscust.pcodeflag[ls_j]
  819. END IF
  820. NEXT
  821. END IF
  822. THIS.TriggerEvent('ue_allowedit')
  823. dw_order_spt.SetRedraw(TRUE)
  824. dw_order_spt.SetFocus()
  825. this.enabled = true
  826. end event
  827. event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid
  828. row = dw_pageretr.GetRow()
  829. IF row > 0 THEN
  830. uc_relid = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row]
  831. dw_order_spt.SetRedraw (FALSE)
  832. dw_order_spt.Retrieve(cur_scid,uc_relid)
  833. dw_order_spt.SetRedraw (TRUE)
  834. dw_ware_spt.SetRedraw (FALSE)
  835. dw_ware_spt.Retrieve(cur_scid,uc_relid)
  836. dw_ware_spt.SetRedraw (TRUE)
  837. ELSE
  838. dw_order_spt.Reset()
  839. dw_ware_spt.Reset()
  840. END IF
  841. end event
  842. event ue_f9;call super::ue_f9;//用于选择明细内容,被F9[默认]
  843. if not dw_edit_mode then return
  844. long uc_row
  845. uc_row=dw_pageretr.getrow()
  846. if uc_row=0 then
  847. messagebox('提示','请选定损耗单!',information!,OK!)
  848. return
  849. end if
  850. dw_uc.accepttext()
  851. if not isvalid(W_spt_edit) then
  852. s_edit_index_tran s_ch_tran //传递参数使用
  853. s_ch_tran.if_retrieve_all=false //是否一次RETRIEVE所有行
  854. s_ch_tran.work_mode=1 //0-单纯编辑模式 1-选择\编辑模式
  855. s_ch_tran.arg_pkid=0 //目标定位PKID (备用)
  856. //查询列(物料编码)部分内容,用于初步筛选
  857. s_ch_tran.arg_string_code=upper(trim(dw_uc.object.u_spt_sptcode[dw_uc.getrow()]))
  858. OPENwithparm(W_spt_edit,s_ch_tran) //调用
  859. S_spt S_INSCUST
  860. S_INSCUST=Message.PowerObjectParm //接受返回结构
  861. IF S_INSCUST.sptid>0 THEN //正常返回值则可以取以下值
  862. dw_uc.setredraw(false)
  863. dw_uc.object.u_order_wfjg_waste_sptid[uc_row]=S_INSCUST.sptid
  864. dw_uc.object.u_spt_name[uc_row]=S_INSCUST.name
  865. dw_uc.object.u_spt_sptcode[uc_row]=S_INSCUST.sptcode
  866. dw_uc.setredraw(true)
  867. dw_uc.setcolumn("u_order_wfjg_waste_wastedate")
  868. END IF
  869. end if
  870. end event
  871. event ue_viewprint;call super::ue_viewprint;IF Not (f_power_ind(392)) THEN
  872. MessageBox('提示','你没有使用权限!',information!,OK!)
  873. RETURN
  874. END IF
  875. LONG LS_ROW
  876. LS_ROW=dw_pageretr.getrow()
  877. IF LS_ROW<=0 THEN
  878. MESSAGEBOX('提示','没有打印目标单据!',information!,OK!)
  879. RETURN
  880. END IF
  881. S_print_MSG LS_PRMSG
  882. LS_PRMSG.obj_dwNAME='dw_rp_wfjg_waste_edit'
  883. LS_PRMSG.TAG_TEXT='损耗单'
  884. LS_PRMSG.FILTER_STRING = ''
  885. LS_PRMSG.retr_pram_falg=12
  886. LS_PRMSG.PAGECH_FLAG=0
  887. LS_PRMSG.retr_scid=cur_scid
  888. LS_PRMSG.retr_pramnmb=dw_pageretr.object.u_order_wfjg_waste_wasteid[LS_ROW]
  889. LS_PRMSG.rowcnt = dw_order_spt.RowCount()
  890. IF ifpic = 1 THEN
  891. String ls_msg
  892. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  893. MessageBox('提示','下载图片失败!',information!,OK!)
  894. RETURN
  895. END IF
  896. END IF
  897. Openwithparm(w_publ_preview,LS_PRMSG)
  898. IF ifpic = 1 THEN
  899. Long li
  900. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  901. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  902. FileDelete(LS_PRMSG.s_pic.path[li])
  903. END IF
  904. NEXT
  905. END IF
  906. //**更新打印次料
  907. string arg_msg
  908. printnum = message.doubleparm
  909. f_update_printnum('u_order_wfjg_waste',printnum,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[LS_ROW],'','',arg_msg,true)
  910. end event
  911. event ue_f7;call super::ue_f7;IF NOT dw_edit_mode THEN RETURN
  912. Long childrow,ls_sptid,ls_j
  913. childrow = dw_order_spt.GetRow()
  914. Int li_statusflag,li_woodcodeflag,li_pcodeflag
  915. s_mtrldef_array arg_s_mtrldef
  916. ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()]
  917. IF ls_sptid <= 0 THEN
  918. MessageBox("提示","请先选择供应商",information!,OK!)
  919. RETURN
  920. END IF
  921. s_edit_index_tran s_tranf8
  922. s_tranf8.if_retrieve_all = FALSE
  923. s_tranf8.arg_pkid = 0
  924. s_tranf8.arg_string_code = ''
  925. s_tranf8.b_long = 2
  926. s_tranf8.d_long = ls_sptid
  927. IF NOT IsValid(w_inware_wfjg_ch) THEN
  928. OpenWithParm(w_inware_wfjg_ch,s_tranf8)
  929. s_mtrldef_wfjg_array s_inscust
  930. s_inscust = Message.PowerObjectParm //接受返回结构
  931. dw_order_spt.SetRedraw(FALSE)
  932. FOR ls_j = 1 TO UpperBound(s_inscust.wfjgid)
  933. IF s_inscust.wfjgid[ls_j] > 0 THEN //正常返回值则可以取以下值
  934. IF dw_order_spt.GetRow() > 0 THEN
  935. IF dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_orderid[childrow] <> 0 THEN
  936. childrow = dw_order_spt.InsertRow (0)
  937. ELSE
  938. childrow = dw_order_spt.GetRow()
  939. END IF
  940. ELSE
  941. childrow = dw_order_spt.InsertRow (0)
  942. END IF
  943. dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_orderid[childrow] = s_inscust.wfjgid[ls_j]
  944. dw_order_spt.Object.u_order_wfjg_wastemx_orderid[childrow] = s_inscust.orderid[ls_j]
  945. dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[childrow] = s_inscust.mtrlid[ls_j]
  946. dw_order_spt.Object.u_mtrldef_mtrlcode[childrow] = s_inscust.mtrlcode[ls_j]
  947. dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_ordercode[childrow] = s_inscust.taskcode[ls_j]
  948. dw_order_spt.Object.u_order_wfjg_wastemx_price[childrow] = s_inscust.price[ls_j]
  949. dw_order_spt.Object.u_mtrldef_mtrlname[childrow] = s_inscust.mtrlname[ls_j]
  950. dw_order_spt.Object.u_order_wfjg_wastemx_status[childrow] = s_inscust.status[ls_j]
  951. dw_order_spt.Object.u_order_wfjg_wastemx_woodcode[childrow] = s_inscust.woodcode[ls_j]
  952. dw_order_spt.Object.u_order_wfjg_wastemx_pcode[childrow] = s_inscust.pcode[ls_j]
  953. dw_order_spt.Object.u_mtrldef_unit[childrow] = s_inscust.unit[ls_j]
  954. dw_order_spt.Object.u_order_wfjg_wastemx_wastedscrp[childrow] = s_inscust.dscrp[ls_j]
  955. IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN
  956. li_statusflag = 0
  957. li_woodcodeflag = 0
  958. li_pcodeflag = 0
  959. ELSE
  960. li_statusflag = arg_s_mtrldef.statusflag[1]
  961. li_pcodeflag = arg_s_mtrldef.pcodeflag[1]
  962. li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1]
  963. END IF
  964. dw_order_spt.Object.u_mtrldef_statusflag[childrow] = li_statusflag
  965. dw_order_spt.Object.u_mtrldef_woodcodeflag[childrow] = li_woodcodeflag
  966. dw_order_spt.Object.u_mtrldef_pcodeflag[childrow] = li_pcodeflag
  967. END IF
  968. NEXT
  969. THIS.TriggerEvent('ue_allowedit')
  970. dw_order_spt.SetRedraw(TRUE)
  971. END IF
  972. end event
  973. event ue_print;call super::ue_print;IF Not (f_power_ind(392)) THEN
  974. MessageBox('提示','你没有使用权限!',information!,OK!)
  975. RETURN
  976. END IF
  977. //--直接打印
  978. uo_print_preview uo_print
  979. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  980. S_print_MSG LS_PRMSG
  981. if dw_pageretr.rowcount()=0 then
  982. Messagebox('提示','没有可打印的单据!',information!,OK!)
  983. return
  984. end if
  985. LS_PRMSG.retr_pram_falg=12
  986. LS_PRMSG.obj_dwNAME='dw_rp_wfjg_waste_edit'
  987. LS_PRMSG.TAG_TEXT='损耗单'
  988. LS_PRMSG.FILTER_STRING = ''
  989. LS_PRMSG.PAGECH_FLAG=0
  990. LS_PRMSG.retr_scid=cur_scid
  991. LS_PRMSG.retr_pramnmb=dw_pageretr.object.u_order_wfjg_waste_wasteid[dw_pageretr.getrow()]
  992. LS_PRMSG.rowcnt = dw_order_spt.RowCount()
  993. IF ifpic = 1 THEN
  994. String ls_msg
  995. IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN
  996. MessageBox('提示','下载图片失败!',information!,OK!)
  997. RETURN
  998. END IF
  999. END IF
  1000. uo_print.FACT_PRINT_MSG=LS_PRMSG
  1001. string arg_msg
  1002. if uo_print.uof_print_begin(arg_msg)=0 then
  1003. messagebox("错误",arg_msg,stopsign!,OK!)
  1004. return
  1005. end if
  1006. uo_print.ds_print()
  1007. IF ifpic = 1 THEN
  1008. Long li
  1009. FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path)
  1010. IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN
  1011. FileDelete(LS_PRMSG.s_pic.path[li])
  1012. END IF
  1013. NEXT
  1014. END IF
  1015. //**更新打印次料
  1016. f_update_printnum('u_order_wfjg_waste',1,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[dw_pageretr.getrow()],'','',arg_msg,true)
  1017. end event
  1018. event ue_before_open;call super::ue_before_open;dw_order_spt = tab_1.tabpage_1.dw_1
  1019. dw_ware_spt = tab_1.tabpage_2.dw_2
  1020. dw_order_spt.settransobject(sqlca)
  1021. dw_ware_spt.settransobject(sqlca)
  1022. end event
  1023. event resize;ln_bar.EndX = THIS.Width
  1024. ln_bar2.EndX = THIS.Width
  1025. ln_1.EndX = THIS.Width
  1026. ln_2.EndX = THIS.Width
  1027. r_bar.Width = THIS.Width
  1028. Long w_width,w_height
  1029. w_width = 3602
  1030. w_height = 2300
  1031. IF newwidth < w_width THEN THIS.Width = w_width
  1032. IF newheight < w_height THEN THIS.Height = w_height
  1033. //dw_child.Width = THIS.Width - (w_width - dw_child_w)
  1034. //dw_child.Height = THIS.Height - (w_height - dw_child_h)
  1035. //dw_pageretr.Width = THIS.Width - (w_width - dw_pageretr_w)
  1036. //==============================================================================
  1037. //YYX081007
  1038. //==============================================================================
  1039. IF uc_width > 0 THEN
  1040. dw_uc.Width = uc_width
  1041. END IF
  1042. IF uc_height > 0 THEN
  1043. dw_uc.Height = uc_height
  1044. END IF
  1045. dw_pageretr.X = dw_uc.X + dw_uc.Width
  1046. dw_pageretr.Width = THIS.Width - dw_pageretr.X - 40
  1047. dw_pageretr.Height = dw_uc.Height
  1048. tab_1.Y = dw_uc.Y + dw_uc.Height + 4
  1049. tab_1.Width = THIS.Width - tab_1.X - 40
  1050. tab_1.Height = THIS.Height - tab_1.Y - 150
  1051. dw_order_spt.Width = THIS.Width - (3602 - 3515)
  1052. dw_order_spt.Height = tab_1.Height - 112
  1053. dw_ware_spt.Width = THIS.Width - (3602 - 3515)
  1054. dw_ware_spt.Height = tab_1.Height - 112
  1055. this.triggerevent('resize_p')
  1056. end event
  1057. event ue_f11;call super::ue_f11;//用于选择明细内容,被F8[默认]\dw_ware_spt.doubleclicked调用
  1058. IF NOT dw_edit_mode THEN RETURN
  1059. Long child_row,ins_sptid = 0
  1060. Long ls_j
  1061. dw_uc.accepttext()
  1062. ins_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()]
  1063. IF ins_sptid = 0 OR IsNull(ins_sptid) THEN
  1064. MessageBox(publ_operator,'请先选择加工商')
  1065. RETURN
  1066. END IF
  1067. child_row = dw_ware_spt.GetRow()
  1068. IF NOT IsValid(w_sptware_sptid_ch) THEN
  1069. s_edit_index_tran s_tranf8 //传递参数使用
  1070. s_tranf8.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  1071. s_tranf8.arg_pkid = 0 //目标定位PKID (备用)
  1072. s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  1073. s_tranf8.b_long = - 1 //选择原料或产品
  1074. s_tranf8.d_long = ins_sptid
  1075. s_tranf8.f_long =cur_scid
  1076. dw_ware_spt.AcceptText()
  1077. IF dw_ware_spt.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_ware_spt.Object.u_mtrldef_mtrlcode[dw_ware_spt.GetRow()])
  1078. OpenWithParm(w_sptware_sptid_ch,s_tranf8) //调用
  1079. s_sptware_array S_INSCUST
  1080. S_INSCUST = Message.PowerObjectParm //接受返回结构
  1081. FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlwareid)
  1082. IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN
  1083. IF dw_ware_spt.GetRow() > 0 THEN
  1084. IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[child_row] <> 0 THEN
  1085. child_row = dw_ware_spt.InsertRow (0)
  1086. ELSE
  1087. child_row = dw_ware_spt.GetRow()
  1088. END IF
  1089. ELSE
  1090. child_row = dw_ware_spt.InsertRow (0)
  1091. END IF
  1092. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j]
  1093. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  1094. dw_ware_spt.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j]
  1095. dw_ware_spt.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j]
  1096. dw_ware_spt.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j]
  1097. dw_ware_spt.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j]
  1098. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_qty[child_row] = S_INSCUST.noallocqty[ls_j]
  1099. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_fprice[child_row] = S_INSCUST.cost[ls_j]
  1100. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_plancode[child_row] = S_INSCUST.plancode[ls_j]
  1101. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_status[child_row] = S_INSCUST.status[ls_j]
  1102. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_woodcode[child_row] = S_INSCUST.woodcode[ls_j]
  1103. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_pcode[child_row] = S_INSCUST.pcode[ls_j]
  1104. dw_ware_spt.SetColumn('u_order_wfjg_wastemx_spt_qty')
  1105. END IF
  1106. NEXT
  1107. END IF
  1108. end event
  1109. event ue_addmx;if tab_1.selectedtab = 1 then
  1110. this.triggerevent('ue_f8')
  1111. dw_order_spt.SetFocus()
  1112. else
  1113. this.triggerevent('ue_f11')
  1114. dw_order_spt.SetFocus()
  1115. end if
  1116. end event
  1117. event ue_deletemx;IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN
  1118. IF tab_1.SelectedTab = 1 THEN
  1119. IF dw_order_spt.GetRow() = 0 THEN
  1120. MessageBox('提示','请选择删除的行对象!',information!,OK!)
  1121. RETURN
  1122. END IF
  1123. dw_order_spt.DeleteRow (0)
  1124. dw_order_spt.TriggerEvent (RowFocusChanged!)
  1125. ELSE
  1126. IF dw_ware_spt.GetRow() = 0 THEN
  1127. MessageBox('提示','请选择删除的行对象!',information!,OK!)
  1128. RETURN
  1129. END IF
  1130. dw_ware_spt.DeleteRow (0)
  1131. dw_ware_spt.TriggerEvent (RowFocusChanged!)
  1132. END IF
  1133. end event
  1134. event ue_rpt_print;call super::ue_rpt_print;IF Not (f_power_ind(392)) THEN
  1135. MessageBox('提示','你没有使用权限!',information!,OK!)
  1136. RETURN
  1137. END IF
  1138. Long row,uc_relid,ll_scid
  1139. row = dw_pageretr.GetRow()
  1140. IF row = 0 THEN RETURN
  1141. uo_rpt_print_preview uo_print
  1142. S_rpt_print_MSG LS_PRMSG
  1143. IF dw_pageretr.RowCount() = 0 THEN
  1144. MessageBox('提示','没有可打印的单据!',information!,OK!)
  1145. RETURN
  1146. END IF
  1147. IF ls_rpname = '' THEN RETURN
  1148. IF li_auditprint = 1 THEN
  1149. IF dw_pageretr.Object.u_order_wfjg_waste_flag[row] = 0 THEN
  1150. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  1151. RETURN
  1152. END IF
  1153. END IF
  1154. IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  1155. LS_PRMSG.retr_pram_falg = 15
  1156. LS_PRMSG.TAG_TEXT = THIS.Title
  1157. LS_PRMSG.rpname = ls_rpname
  1158. LS_PRMSG.FILTER_STRING = ''
  1159. LS_PRMSG.PAGECH_FLAG = 0
  1160. LS_PRMSG.rpid = ls_msgprintid_rpt
  1161. LS_PRMSG.retr_scid = dw_pageretr.Object.u_order_wfjg_waste_scid[row]
  1162. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row]
  1163. LS_PRMSG.rowcnt = dw_order_spt.RowCount()
  1164. uo_print.FACT_PRINT_MSG = LS_PRMSG
  1165. String arg_msg
  1166. IF uo_print.uof_print_begin(arg_msg) = 0 THEN
  1167. MessageBox("错误",arg_msg,stopsign!,OK!)
  1168. RETURN
  1169. END IF
  1170. uo_print.ds_print()
  1171. //**更新打印次料
  1172. printnum = message.doubleparm
  1173. f_update_printnum('u_order_wfjg_waste',printnum,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[ROW],'','',arg_msg,true)
  1174. end event
  1175. event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF Not (f_power_ind(392)) THEN
  1176. MessageBox('提示','你没有使用权限!',information!,OK!)
  1177. RETURN
  1178. END IF
  1179. Long row,uc_relid,ll_scid
  1180. row = dw_pageretr.GetRow()
  1181. IF row = 0 THEN RETURN
  1182. IF ls_rpname = '' THEN RETURN
  1183. IF li_auditprint = 1 THEN
  1184. IF dw_pageretr.Object.u_order_wfjg_waste_flag[row] = 0 THEN
  1185. MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!)
  1186. RETURN
  1187. END IF
  1188. END IF
  1189. s_rpt_print_msg s_print
  1190. s_print.retr_pram_falg = 15
  1191. s_print.rpid = ls_msgprintid_rpt
  1192. s_print.retr_flag = TRUE
  1193. s_print.tag_text = THIS.Title
  1194. s_print.rpname = ls_rpname
  1195. s_print.retr_scid = dw_pageretr.Object.u_order_wfjg_waste_scid[row]
  1196. s_print.retr_pramnmb = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row]
  1197. s_print.rowcnt = dw_order_spt.RowCount()
  1198. OpenWithParm(w_rpt_preview,s_print)
  1199. //**更新打印次料
  1200. string arg_msg
  1201. printnum = message.doubleparm
  1202. f_update_printnum('u_order_wfjg_waste',printnum,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[ROW],'','',arg_msg,true)
  1203. end event
  1204. event ue_allowedit;Long Columns
  1205. Int i
  1206. String ls_modify_str
  1207. Long ll_row
  1208. Long ll_value
  1209. Long ll_statusflag,ll_woodcodeflag,ll_pcodeflag
  1210. String ls_status,ls_woodcode,ls_pcode
  1211. String ls_data_type
  1212. ll_row = dw_order_spt.GetRow()
  1213. IF ll_row <= 0 THEN RETURN
  1214. Columns = Long(dw_order_spt.Describe("DataWindow.Column.Count"))
  1215. FOR i = 1 TO Columns
  1216. ls_modify_str = dw_order_spt.Describe("#" + String(i) + ".name")
  1217. ls_modify_str = Lower(ls_modify_str)
  1218. IF i = 1 THEN //第1个字段,约定物料ID
  1219. ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType")
  1220. IF ls_data_type = "long" THEN
  1221. ll_value = dw_order_spt.GetItemNumber(ll_row,ls_modify_str)
  1222. END IF
  1223. END IF
  1224. IF Pos(ls_modify_str,'statusflag') > 0 THEN
  1225. ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType")
  1226. IF ls_data_type = "long" THEN
  1227. ll_statusflag = dw_order_spt.GetItemNumber(ll_row,ls_modify_str)
  1228. END IF
  1229. END IF
  1230. IF Pos(ls_modify_str,'woodcodeflag') > 0 THEN
  1231. ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType")
  1232. IF ls_data_type = "long" THEN
  1233. ll_woodcodeflag = dw_order_spt.GetItemNumber(ll_row,ls_modify_str)
  1234. END IF
  1235. END IF
  1236. IF Pos(ls_modify_str,'pcodeflag') > 0 THEN
  1237. ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType")
  1238. IF ls_data_type = "long" THEN
  1239. ll_pcodeflag = dw_order_spt.GetItemNumber(ll_row,ls_modify_str)
  1240. END IF
  1241. END IF
  1242. IF Pos(ls_modify_str,'status') > 0 AND Pos(ls_modify_str,'statusflag') = 0 AND Pos(ls_modify_str,'statustype') = 0 THEN
  1243. IF Len(ls_modify_str) = Len('status') OR Pos(ls_modify_str,'_status') > 0 THEN
  1244. IF Not (Pos(ls_modify_str,'u_saletask_status') > 0 OR &
  1245. Pos(ls_modify_str,'u_buytask_status') > 0 OR &
  1246. Pos(ls_modify_str,'u_order_ml_status') > 0 OR &
  1247. Pos(ls_modify_str,'u_order_wfjg_status') > 0 OR &
  1248. Pos(ls_modify_str,'u_rs_empinfo_status') > 0 ) THEN
  1249. ls_status = ls_modify_str
  1250. END IF
  1251. END IF
  1252. END IF
  1253. IF Pos(ls_modify_str,'woodcode') > 0 AND Pos(ls_modify_str,'woodcodeflag') = 0 AND Pos(ls_modify_str,'woodcodetype') = 0 THEN
  1254. IF Len(ls_modify_str) = Len('woodcode') OR Pos(ls_modify_str,'_woodcode') > 0 THEN
  1255. ls_woodcode = ls_modify_str
  1256. END IF
  1257. END IF
  1258. IF Pos(ls_modify_str,'pcode') > 0 AND Pos(ls_modify_str,'pcodeflag') = 0 AND Pos(ls_modify_str,'pcodetype') = 0 THEN
  1259. IF Len(ls_modify_str) = Len('pcode') OR Pos(ls_modify_str,'_pcode') > 0 THEN
  1260. ls_pcode = ls_modify_str
  1261. END IF
  1262. END IF
  1263. NEXT
  1264. IF ls_status <> '' THEN
  1265. IF ll_statusflag <> 0 OR ll_value = 0 THEN
  1266. dw_order_spt.Modify(ls_status+".dddw.allowedit = no")
  1267. ELSE
  1268. dw_order_spt.Modify(ls_status+".dddw.allowedit = yes")
  1269. END IF
  1270. END IF
  1271. IF ls_woodcode <> '' THEN
  1272. IF ll_woodcodeflag <> 0 OR ll_value = 0 THEN
  1273. dw_order_spt.Modify(ls_woodcode+".dddw.allowedit = no")
  1274. ELSE
  1275. dw_order_spt.Modify(ls_woodcode+".dddw.allowedit = yes")
  1276. END IF
  1277. END IF
  1278. IF ls_pcode <> '' THEN
  1279. IF ll_pcodeflag <> 0 OR ll_value = 0 THEN
  1280. dw_order_spt.Modify(ls_pcode+".dddw.allowedit = no")
  1281. ELSE
  1282. dw_order_spt.Modify(ls_pcode+".dddw.allowedit = yes")
  1283. END IF
  1284. END IF
  1285. end event
  1286. type cb_func from w_publ_1ton_share_detail`cb_func within w_inware_wfjg_waste
  1287. end type
  1288. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_inware_wfjg_waste
  1289. end type
  1290. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_inware_wfjg_waste
  1291. integer x = 183
  1292. integer width = 549
  1293. end type
  1294. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_inware_wfjg_waste
  1295. integer x = 3045
  1296. end type
  1297. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_inware_wfjg_waste
  1298. integer x = 2725
  1299. integer y = 56
  1300. integer width = 320
  1301. end type
  1302. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_inware_wfjg_waste
  1303. integer x = 2034
  1304. integer y = 296
  1305. integer width = 1495
  1306. integer height = 864
  1307. string dataobject = "dw_inware_wfjg_waste_index"
  1308. end type
  1309. event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf()
  1310. wf_check_billfj()
  1311. IF dw_edit_mode THEN RETURN
  1312. IF currentrow <=0 THEN
  1313. dw_child.reset()
  1314. RETURN
  1315. end if
  1316. this.selectrow(0,false)
  1317. this.selectrow(currentrow,true)
  1318. DW_UC.SETROW(currentrow)
  1319. DW_UC.ScrollToRow (currentrow)
  1320. if not dw_edit_mode then parent.triggerevent('retrieve_childdw')
  1321. end event
  1322. type st_1 from w_publ_1ton_share_detail`st_1 within w_inware_wfjg_waste
  1323. integer x = 5
  1324. string text = "编码含"
  1325. end type
  1326. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_inware_wfjg_waste
  1327. integer x = 3195
  1328. end type
  1329. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_inware_wfjg_waste
  1330. integer y = 296
  1331. integer width = 2025
  1332. integer height = 864
  1333. string dataobject = "dw_inware_wfjg_waste_edit"
  1334. end type
  1335. event dw_uc::dwnkey;parent.triggerevent('user_key')
  1336. if key = KeyDownArrow! then return 1
  1337. if dw_edit_mode then
  1338. if dw_uc.GetColumnName ( )='u_order_wfjg_waste_dscrp' and key = KeyEnter! then
  1339. dw_order_spt.setfocus()
  1340. dw_order_spt.scrolltorow(dw_child.rowcount())
  1341. dw_order_spt.SetColumn ('u_order_wfjg_wastemx_wfjg_ordercode')
  1342. return 1
  1343. elseif dw_uc.GetColumnName ( )='u_spt_sptcode' and key = KeyEnter! then
  1344. String ls_code,ls_name,ls_find_code
  1345. Long ls_sptid
  1346. Long cnt = 0
  1347. Boolean if_find = FALSE
  1348. dw_uc.AcceptText()
  1349. ls_code = Upper(Trim(dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()]))
  1350. SELECT u_spt.sptid,
  1351. u_spt.name,
  1352. u_spt.sptcode
  1353. INTO :ls_sptid,:ls_name,:ls_code
  1354. FROM u_spt
  1355. Where ( sptcode = :ls_code OR Name = :ls_code );
  1356. IF sqlca.SQLCode <> 0 THEN
  1357. IF Pos(Trim(ls_code),'%') = 0 THEN
  1358. ls_find_code = '%'+ Trim(ls_code) + '%'
  1359. ELSE
  1360. ls_find_code = Trim(ls_code)
  1361. END IF
  1362. SELECT count(*) INTO :cnt
  1363. FROM u_spt
  1364. Where ( sptcode Like :ls_find_code OR Name Like :ls_find_code );
  1365. IF sqlca.SQLCode <> 0 THEN
  1366. PARENT.TriggerEvent('ue_f9')
  1367. RETURN 1
  1368. END IF
  1369. IF cnt <> 1 THEN
  1370. PARENT.TriggerEvent('ue_f9')
  1371. RETURN 1
  1372. ELSE
  1373. SELECT u_spt.sptid,
  1374. u_spt.sptcode,
  1375. u_spt.name
  1376. INTO :ls_sptid,:ls_code,:ls_name
  1377. FROM u_spt
  1378. Where ( sptcode Like :ls_find_code OR Name Like :ls_find_code );
  1379. IF sqlca.SQLCode <> 0 THEN
  1380. PARENT.TriggerEvent('ue_f9')
  1381. RETURN 1
  1382. ELSE
  1383. if_find = TRUE
  1384. END IF
  1385. END IF
  1386. ELSE
  1387. if_find = TRUE
  1388. END IF
  1389. IF if_find THEN
  1390. dw_uc.SetRedraw(FALSE)
  1391. dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] = ls_sptid
  1392. dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()] = ls_code
  1393. dw_uc.Object.u_spt_name[dw_uc.GetRow()] = ls_name
  1394. dw_uc.SetRedraw(TRUE)
  1395. dw_uc.SetColumn("u_order_wfjg_waste_wastedate")
  1396. RETURN 1
  1397. END IF
  1398. else
  1399. if key = KeyEnter! Then //
  1400. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1401. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1402. Return 1
  1403. end If
  1404. end if
  1405. end if
  1406. end event
  1407. event dw_uc::doubleclicked;IF dw_edit_mode and row >0 THEN
  1408. parent.triggerevent('ue_f9')
  1409. END IF
  1410. end event
  1411. event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN
  1412. IF dwo.Name = 'storageid' THEN
  1413. dw_child.Reset()
  1414. PARENT.TriggerEvent("insert_childrow")
  1415. END IF
  1416. end event
  1417. event dw_uc::clicked;call super::clicked;IF NOT dw_edit_mode THEN RETURN
  1418. IF row <= 0 THEN RETURN
  1419. IF dwo.Name = 'p_p' THEN
  1420. PARENT.TriggerEvent('ue_f9')
  1421. ELSEIF dwo.Name = 'p_b' THEN
  1422. PARENT.TriggerEvent('ue_f7')
  1423. END IF
  1424. end event
  1425. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_inware_wfjg_waste
  1426. end type
  1427. type dw_child from w_publ_1ton_share_detail`dw_child within w_inware_wfjg_waste
  1428. boolean visible = false
  1429. integer x = 713
  1430. integer y = 524
  1431. integer width = 695
  1432. integer height = 456
  1433. string dataobject = "dw_inwaremx_wfjg_waste_edit"
  1434. end type
  1435. event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key')
  1436. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_wfjg_code,ls_taskcode
  1437. Long ls_mtrlid,ls_sptid,ls_wfjgid,ls_orderid
  1438. String ls_prdpackcode
  1439. Decimal ls_packqty
  1440. Int cnt = 0
  1441. Long child_row
  1442. Long ls_null
  1443. SetNull(ls_null)
  1444. IF dw_edit_mode THEN
  1445. ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()]
  1446. IF IsNull(ls_sptid) OR ls_sptid = 0 THEN
  1447. PARENT.TriggerEvent("ue_f9")
  1448. END IF
  1449. IF KeyDown(keydownarrow!) THEN
  1450. Long li_row
  1451. IF dw_child.GetRow() = dw_child.RowCount() THEN
  1452. PARENT.TriggerEvent("insert_childrow")
  1453. END IF
  1454. ELSE
  1455. If (KeyDown(keyenter!) OR KeyDown(keytab!)) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN
  1456. dw_child.AcceptText()
  1457. IF dw_child.GetColumnName() = 'u_mtrldef_mtrlcode' THEN
  1458. dw_child.AcceptText()
  1459. child_row = dw_child.GetRow()
  1460. ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row]
  1461. SELECT u_mtrldef.mtrlid,
  1462. u_mtrldef.mtrlname,
  1463. u_mtrldef.unit
  1464. INTO :ls_mtrlid,:ls_mtrlname,:ls_unit
  1465. FROM u_mtrldef
  1466. Where ( u_mtrldef.mtrlcode = :ls_mtrlcode);
  1467. IF sqlca.SQLCode = 100 THEN
  1468. PARENT.TriggerEvent('ue_f8')
  1469. RETURN
  1470. END IF
  1471. dw_child.Object.u_order_wfjg_wastemx_mtrlid[child_row] = ls_mtrlid
  1472. dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  1473. dw_child.Object.u_mtrldef_unit[child_row] = ls_unit
  1474. IF Key = keyenter! THEN
  1475. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1476. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1477. RETURN 1
  1478. END IF
  1479. ELSEIF dw_child.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ifrel' THEN
  1480. IF dw_child.Object.u_order_wfjg_wastemx_wfjg_ifrel[dw_child.GetRow()] = 1 THEN
  1481. dw_child.Object.u_mtrldef_mtrlcode.protect = 1
  1482. ELSE
  1483. dw_child.Object.u_mtrldef_mtrlcode.protect = 0
  1484. END IF
  1485. IF Key = keyenter! THEN
  1486. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1487. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1488. RETURN 1
  1489. END IF
  1490. ELSEIF dw_child.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ordercode' AND dw_child.GetRow() = dw_child.RowCount() THEN
  1491. PARENT.TriggerEvent('ue_f7')
  1492. dw_child.SetColumn('u_order_wfjg_wastemx_qty')
  1493. IF Key = keyenter! THEN
  1494. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1495. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1496. RETURN 1
  1497. END IF
  1498. ELSEIF dw_child.GetColumnName( ) = 'u_order_wfjg_wastemx_wastedscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN
  1499. PARENT.TriggerEvent("insert_childrow")
  1500. RETURN 1
  1501. ELSE
  1502. IF Key = keyenter! THEN
  1503. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  1504. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  1505. RETURN 1
  1506. END IF
  1507. END IF
  1508. END IF
  1509. END IF
  1510. END IF
  1511. end event
  1512. event dw_child::doubleclicked;dw_child.accepttext()
  1513. if dw_edit_mode then
  1514. if row > 0 then
  1515. if dwo.name='u_order_wfjg_wastemx_wfjg_ordercode' then
  1516. parent.triggerevent('ue_f7')
  1517. else
  1518. parent.triggerevent('ue_f8')
  1519. end if
  1520. else
  1521. parent.triggerevent('ue_f8')
  1522. end if
  1523. end if
  1524. end event
  1525. event dw_child::itemchanged;call super::itemchanged;//if not dw_edit_mode then return
  1526. //this.accepttext()
  1527. //if dwo.name = 'u_inwaremx_ifrel' then
  1528. // if this.object.u_inwaremx_ifrel[row] = 0 then
  1529. // dw_child.object.u_inwaremx_relid[row] = 0
  1530. // dw_child.object.u_order_wfjg_taskcode[row] = ''
  1531. // end if
  1532. //end if
  1533. end event
  1534. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_inware_wfjg_waste
  1535. end type
  1536. type cb_print from w_publ_1ton_share_detail`cb_print within w_inware_wfjg_waste
  1537. end type
  1538. type cb_add from w_publ_1ton_share_detail`cb_add within w_inware_wfjg_waste
  1539. end type
  1540. event cb_add::clicked;IF Not f_power_ind(247) THEN
  1541. MessageBox('提示','你没有使用权限!',information!,OK!)
  1542. RETURN
  1543. END IF
  1544. String arg_msg = ''
  1545. Long uc_row,pagerert_row
  1546. Long relid_pageretr,reld_uc,j
  1547. IF dw_edit_mode THEN
  1548. dw_uc.AcceptText()
  1549. dw_order_spt.AcceptText()
  1550. uc_row = dw_uc.GetRow()
  1551. dw_ware_spt.AcceptText()
  1552. IF uc_row <= 0 THEN
  1553. MessageBox('提示','请选定当前目标单据!',information!,OK!)
  1554. RETURN
  1555. END IF
  1556. IF Not dw_uc.Object.u_order_wfjg_waste_wastedate[uc_row] > DateTime(2000-01-01,Now()) THEN
  1557. MessageBox('提示','不合理发生时间!',information!,OK!)
  1558. dw_uc.SetFocus()
  1559. dw_uc.SetColumn("u_order_wfjg_waste_wastedate")
  1560. RETURN
  1561. END IF
  1562. IF Not Len(String(dw_uc.Object.u_order_wfjg_waste_assign_emp[uc_row])) > 0 THEN
  1563. MessageBox('提示','请填写经手人!',information!,OK!)
  1564. dw_uc.SetFocus()
  1565. dw_uc.SetColumn("u_order_wfjg_waste_assign_emp")
  1566. RETURN
  1567. END IF
  1568. FOR j = 1 To dw_order_spt.RowCount()
  1569. IF dw_order_spt.Object.u_order_wfjg_wastemx_qty[j] < 0 THEN
  1570. MessageBox('提示','数量要输入正数',information!,OK!)
  1571. RETURN
  1572. END IF
  1573. NEXT
  1574. IF cbx_autocmp.Checked THEN //保存自动按收货明细计算外协商库存明细
  1575. IF wf_in_to_out2(arg_msg) = 0 THEN
  1576. MessageBox(publ_operator,arg_msg)
  1577. RETURN
  1578. END IF
  1579. END IF
  1580. uo_ware.waste_date = dw_uc.Object.u_order_wfjg_waste_wastedate[uc_row] // 发生时间
  1581. uo_ware.waste_rep = dw_uc.Object.u_order_wfjg_waste_assign_emp[uc_row] // 经手人
  1582. uo_ware.dscrp = dw_uc.Object.u_order_wfjg_waste_dscrp[uc_row] //备注
  1583. uo_ware.relcode = dw_uc.Object.u_order_wfjg_waste_relcode[uc_row]
  1584. uo_ware.sptname = dw_uc.Object.u_spt_name[uc_row]
  1585. uo_ware.sptid = dw_uc.Object.u_order_wfjg_waste_sptid[uc_row]
  1586. Long i
  1587. FOR i = 1 To dw_order_spt.RowCount()
  1588. IF dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[i] > 0 THEN
  1589. IF uo_ware.acceptmx(dw_order_spt.Object.printid[i],&
  1590. dw_order_spt.Object.u_order_wfjg_wastemx_ifrel[i],&
  1591. dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[i],&
  1592. dw_order_spt.Object.u_mtrldef_mtrlcode[i],&
  1593. dw_order_spt.Object.u_order_wfjg_wastemx_status[i],&
  1594. dw_order_spt.Object.u_order_wfjg_wastemx_woodcode[i],&
  1595. dw_order_spt.Object.u_order_wfjg_wastemx_pcode[i],&
  1596. dw_order_spt.Object.u_order_wfjg_wastemx_qty[i],&
  1597. dw_order_spt.Object.u_order_wfjg_wastemx_wastedscrp[i],&
  1598. arg_msg,&
  1599. dw_order_spt.Object.u_order_wfjg_wastemx_price[i],&
  1600. dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_orderid[i],&
  1601. dw_order_spt.Object.u_order_wfjg_wastemx_orderid[i],&
  1602. dw_order_spt.Object.u_order_wfjg_wastemx_plancode[i]) = 0 THEN
  1603. MessageBox('错误',arg_msg,stopsign!,OK!)
  1604. RETURN
  1605. END IF
  1606. END IF
  1607. NEXT
  1608. FOR i = 1 To dw_ware_spt.RowCount()
  1609. IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[i] > 0 THEN
  1610. IF uo_ware.acceptmx_bef(dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlwareid[i],&
  1611. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_qty[i],&
  1612. dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mxdscrp[i],&
  1613. dw_ware_spt.Object.printid[i],&
  1614. arg_msg) = 0 THEN
  1615. MessageBox('错误',arg_msg,stopsign!,OK!)
  1616. RETURN
  1617. END IF
  1618. END IF
  1619. NEXT
  1620. IF uo_ware.Save(True,arg_msg) = 0 THEN
  1621. MessageBox('错误',arg_msg,stopsign!,OK!)
  1622. RETURN
  1623. END IF
  1624. MessageBox('提示','保存操作成功!',information!,OK!)
  1625. Long ll_row
  1626. ll_row = dw_pageretr.GetRow()
  1627. dw_pageretr.SelectRow(0,False)
  1628. dw_pageretr.SelectRow(ll_row,True)
  1629. wf_refresh_curuc(cur_scid,uo_ware.wasteid) //刷新uc
  1630. ELSE
  1631. IF uo_ware.newbegin(cur_scid,4,arg_msg) = 0 THEN
  1632. MessageBox('错误',arg_msg,stopsign!,OK!)
  1633. RETURN
  1634. END IF
  1635. END IF
  1636. IF Not dw_edit_mode THEN
  1637. Int li_row
  1638. li_row = dw_pageretr.InsertRow (1)
  1639. dw_pageretr.ScrollToRow(li_row)
  1640. dw_order_spt.Reset()
  1641. dw_ware_spt.Reset()
  1642. dw_uc.Reset()
  1643. dw_uc.SetFocus()
  1644. dw_pageretr.RowsCopy(li_row,li_row, Primary!, dw_uc, 1, Primary!)
  1645. IF dw_uc.GetRow() > 0 THEN
  1646. dw_uc.Object.u_order_wfjg_waste_assign_emp[dw_uc.GetRow()] = publ_operator
  1647. END IF
  1648. END IF
  1649. dw_edit_mode = Not dw_edit_mode
  1650. wf_refresh_interface()
  1651. IF dw_edit_mode THEN
  1652. Parent.TriggerEvent("insert_childrow")
  1653. Parent.TriggerEvent("insert_childrow_spt")
  1654. ELSE
  1655. Parent.TriggerEvent("retrieve_childdw")
  1656. END IF
  1657. This.TriggerEvent('refresh_interface')
  1658. end event
  1659. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_inware_wfjg_waste
  1660. end type
  1661. event cb_edit::clicked;
  1662. IF NOT f_power_ind(247) THEN
  1663. MessageBox('提示','你没有使用权限!',information!,OK!)
  1664. RETURN
  1665. END IF
  1666. string arg_msg=''
  1667. long uc_row
  1668. uc_row=dw_pageretr.getrow()
  1669. if uc_row<=0 then
  1670. messagebox('提示','请选定当前目标单据!',information!,OK!)
  1671. return
  1672. end if
  1673. if not dw_edit_mode then
  1674. if uo_ware.updatebegin(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[uc_row],arg_msg)=0 then
  1675. messagebox('错误',arg_msg,stopsign!,OK!)
  1676. return
  1677. end if
  1678. end if
  1679. call super::clicked
  1680. end event
  1681. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_inware_wfjg_waste
  1682. end type
  1683. event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(622) THEN
  1684. MessageBox('提示','你没有使用权限!',information!,OK!)
  1685. RETURN
  1686. END IF
  1687. string arg_msg=''
  1688. if dw_edit_mode then return
  1689. if messagebox ("询问","是否确定要删除当前单据?",question!,yesno! ) = 2 then return
  1690. long uc_row
  1691. uc_row=dw_pageretr.getrow()
  1692. if uc_row<=0 then
  1693. messagebox('提示','请选定当前目标单据!',information!,OK!)
  1694. return
  1695. end if
  1696. if uo_ware.del(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[uc_row],arg_msg,true)=0 then
  1697. messagebox('错误',arg_msg,stopsign!,OK!)
  1698. else
  1699. //日志
  1700. long ls_id
  1701. string ls_code
  1702. ls_id=dw_pageretr.object.u_order_wfjg_waste_wasteid[uc_row]
  1703. ls_code=dw_pageretr.object.u_order_wfjg_waste_wastecode[uc_row]
  1704. f_setsysoplog('损耗单','损耗单删除,id:'+string(ls_id)+',code:'+ls_code,arg_msg,true)
  1705. //--
  1706. messagebox('提示','删除单据'+string(dw_pageretr.object.u_order_wfjg_waste_wastecode[uc_row])+'成功!',information!,OK!)
  1707. dw_pageretr.deleterow(uc_row)
  1708. dw_pageretr.postevent(rowfocuschanged!)
  1709. end if
  1710. end event
  1711. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_inware_wfjg_waste
  1712. end type
  1713. event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  1714. string menustr
  1715. menustr="Text=增加备注~tEvent=ue_addzy"
  1716. menustr=menustr + "|" + "Text=-"
  1717. menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view"
  1718. menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit"
  1719. if len(trim(menustr))<>0 then
  1720. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1721. dmPopupMenu.mf_BuildMenu(This, menustr)
  1722. dmPopupMenu.mf_PopMenu()
  1723. Destroy dmPopupMenu
  1724. end if
  1725. end event
  1726. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_inware_wfjg_waste
  1727. end type
  1728. event cb_auditing::clicked;call super::clicked;IF NOT f_power_ind(248) THEN
  1729. MessageBox('提示','你没有使用权限!',information!,OK!)
  1730. RETURN
  1731. END IF
  1732. if dw_edit_mode then return
  1733. string arg_msg=''
  1734. if messagebox ("询问","是否确定要审核当前单据?",question!,yesno! ) = 2 then return
  1735. long pagerert_row
  1736. pagerert_row=dw_pageretr.getrow()
  1737. if pagerert_row<=0 then
  1738. messagebox('提示','请选定当前目标单据!',information!,OK!)
  1739. return
  1740. end if
  1741. if uo_ware.getinfo(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[pagerert_row],arg_msg)=0 then
  1742. messagebox('错误',arg_msg,stopsign!,OK!)
  1743. return
  1744. end if
  1745. if uo_ware.auditing(true,arg_msg)=0 then
  1746. messagebox('错误',arg_msg,stopsign!,OK!)
  1747. else
  1748. messagebox('提示','审核成功!',information!,OK!)
  1749. wf_refresh_curuc(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[pagerert_row])
  1750. end if
  1751. end event
  1752. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_inware_wfjg_waste
  1753. end type
  1754. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_inware_wfjg_waste
  1755. end type
  1756. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_inware_wfjg_waste
  1757. end type
  1758. type cb_help from w_publ_1ton_share_detail`cb_help within w_inware_wfjg_waste
  1759. end type
  1760. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_inware_wfjg_waste
  1761. end type
  1762. event cb_auditing_cancel::clicked;call super::clicked;if not f_power_ind(901) then
  1763. messagebox('提示','你没有使用权限!',information!,OK!)
  1764. return
  1765. end if
  1766. if dw_edit_mode then return
  1767. if not keydown(KeyControl!) then
  1768. IF MessageBox ("询问","是否确定要"+this.text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN
  1769. end if
  1770. string arg_msg='',ls_code,ls_opemp,ls_outpart
  1771. long pagerert_row,ls_id
  1772. pagerert_row=dw_pageretr.getrow()
  1773. if pagerert_row<=0 then
  1774. messagebox('提示','请选定当前目标单据!',information!,OK!)
  1775. return
  1776. end if
  1777. if uo_ware.getinfo(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid [pagerert_row],arg_msg)=0 then
  1778. messagebox('错误',arg_msg,stopsign!,OK!)
  1779. return
  1780. end if
  1781. if dw_pageretr.object.u_order_wfjg_waste_flag[pagerert_row]=1 then
  1782. if uo_ware.c_auditing(true,arg_msg)=0 then
  1783. messagebox('错误',arg_msg,stopsign!,OK!)
  1784. else
  1785. messagebox('提示','撤审成功!',information!,OK!)
  1786. wf_refresh_curuc(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[pagerert_row])
  1787. end if
  1788. end if
  1789. end event
  1790. type p_msg from w_publ_1ton_share_detail`p_msg within w_inware_wfjg_waste
  1791. end type
  1792. type p_help from w_publ_1ton_share_detail`p_help within w_inware_wfjg_waste
  1793. end type
  1794. type p_encl from w_publ_1ton_share_detail`p_encl within w_inware_wfjg_waste
  1795. end type
  1796. type p_other from w_publ_1ton_share_detail`p_other within w_inware_wfjg_waste
  1797. end type
  1798. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_inware_wfjg_waste
  1799. end type
  1800. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_inware_wfjg_waste
  1801. end type
  1802. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_inware_wfjg_waste
  1803. end type
  1804. type r_bar from w_publ_1ton_share_detail`r_bar within w_inware_wfjg_waste
  1805. end type
  1806. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_inware_wfjg_waste
  1807. integer beginx = 9
  1808. integer endx = 3273
  1809. end type
  1810. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_inware_wfjg_waste
  1811. integer beginx = 9
  1812. integer endx = 3273
  1813. end type
  1814. type ddlb_scid from uo_ddlb_scid within w_inware_wfjg_waste
  1815. integer x = 946
  1816. integer y = 188
  1817. integer width = 549
  1818. integer height = 1120
  1819. integer taborder = 20
  1820. boolean bringtotop = true
  1821. end type
  1822. event constructor;call super::constructor;cur_scid=this.uo_scid
  1823. end event
  1824. event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid
  1825. parent.triggerevent("retrieve_pageretr")
  1826. end event
  1827. type ddlb_status from dropdownlistbox within w_inware_wfjg_waste
  1828. integer x = 1691
  1829. integer y = 188
  1830. integer width = 549
  1831. integer height = 300
  1832. integer taborder = 30
  1833. boolean bringtotop = true
  1834. integer textsize = -9
  1835. integer weight = 400
  1836. fontcharset fontcharset = gb2312charset!
  1837. fontpitch fontpitch = variable!
  1838. string facename = "宋体"
  1839. long textcolor = 33554432
  1840. string text = "[全部]"
  1841. boolean sorted = false
  1842. string item[] = {"[全部]","待审核","已审核"}
  1843. borderstyle borderstyle = stylelowered!
  1844. end type
  1845. event selectionchanged;if index=1 then
  1846. cur_flag=-1
  1847. elseif index=2 then
  1848. cur_flag=0
  1849. elseif index=3 then
  1850. cur_flag=1
  1851. end if
  1852. parent.triggerevent('retrieve_pageretr')
  1853. end event
  1854. type st_3 from statictext within w_inware_wfjg_waste
  1855. integer x = 1513
  1856. integer y = 208
  1857. integer width = 219
  1858. integer height = 48
  1859. integer textsize = -9
  1860. integer weight = 400
  1861. fontcharset fontcharset = gb2312charset!
  1862. fontpitch fontpitch = variable!
  1863. string facename = "宋体"
  1864. long textcolor = 33554432
  1865. long backcolor = 134217739
  1866. string text = "状 态"
  1867. boolean focusrectangle = false
  1868. end type
  1869. type st_2 from statictext within w_inware_wfjg_waste
  1870. integer x = 768
  1871. integer y = 208
  1872. integer width = 219
  1873. integer height = 48
  1874. integer textsize = -9
  1875. integer weight = 400
  1876. fontcharset fontcharset = gb2312charset!
  1877. fontpitch fontpitch = variable!
  1878. string facename = "宋体"
  1879. long textcolor = 33554432
  1880. long backcolor = 134217739
  1881. string text = "分 部"
  1882. boolean focusrectangle = false
  1883. end type
  1884. type tab_1 from tab within w_inware_wfjg_waste
  1885. integer y = 1180
  1886. integer width = 3529
  1887. integer height = 1064
  1888. integer taborder = 40
  1889. boolean bringtotop = true
  1890. integer textsize = -9
  1891. integer weight = 400
  1892. fontcharset fontcharset = gb2312charset!
  1893. fontpitch fontpitch = variable!
  1894. string facename = "宋体"
  1895. long backcolor = 134217739
  1896. boolean raggedright = true
  1897. boolean focusonbuttondown = true
  1898. integer selectedtab = 1
  1899. tabpage_1 tabpage_1
  1900. tabpage_2 tabpage_2
  1901. end type
  1902. on tab_1.create
  1903. this.tabpage_1=create tabpage_1
  1904. this.tabpage_2=create tabpage_2
  1905. this.Control[]={this.tabpage_1,&
  1906. this.tabpage_2}
  1907. end on
  1908. on tab_1.destroy
  1909. destroy(this.tabpage_1)
  1910. destroy(this.tabpage_2)
  1911. end on
  1912. type tabpage_1 from userobject within tab_1
  1913. integer x = 18
  1914. integer y = 96
  1915. integer width = 3493
  1916. integer height = 952
  1917. long backcolor = 134217739
  1918. string text = "损耗外协计划"
  1919. long tabtextcolor = 33554432
  1920. long tabbackcolor = 134217739
  1921. long picturemaskcolor = 536870912
  1922. dw_1 dw_1
  1923. end type
  1924. on tabpage_1.create
  1925. this.dw_1=create dw_1
  1926. this.Control[]={this.dw_1}
  1927. end on
  1928. on tabpage_1.destroy
  1929. destroy(this.dw_1)
  1930. end on
  1931. type dw_1 from u_dw_rbtnfilter within tabpage_1
  1932. event ue_dwndropdown pbm_dwndropdown
  1933. integer width = 3493
  1934. integer height = 952
  1935. integer taborder = 20
  1936. string dataobject = "dw_inwaremx_wfjg_waste_edit"
  1937. boolean hscrollbar = true
  1938. boolean vscrollbar = true
  1939. end type
  1940. event ue_dwndropdown;IF NOT dw_edit_mode THEN RETURN
  1941. String ls_col_pz,ls_col_mtrlid
  1942. String ls_pz_ch
  1943. Long ll_row,ll_mtrlid
  1944. s_pzwin_open arg_s_win
  1945. ll_row = THIS.GetRow()
  1946. IF ll_row > 0 THEN
  1947. ls_col_mtrlid = THIS.Describe("#1.Name")
  1948. IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN
  1949. ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid)
  1950. ls_col_pz = THIS.GetColumnName( )
  1951. arg_s_win.arg_x = THIS.X + PARENT.X + THIS.PointerX() + tab_1.X
  1952. arg_s_win.arg_y = THIS.Y + PARENT.Y + THIS.PointerY() + tab_1.Y
  1953. arg_s_win.arg_col = ls_col_pz
  1954. arg_s_win.arg_mtrlid = ll_mtrlid
  1955. ls_pz_ch = f_mtrl_pz(arg_s_win)
  1956. IF ls_pz_ch = '' THEN RETURN
  1957. THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch)
  1958. END IF
  1959. end event
  1960. event doubleclicked;call super::doubleclicked;dw_child.accepttext()
  1961. if dw_edit_mode then
  1962. if row > 0 then
  1963. if dwo.name='u_order_wfjg_wastemx_wfjg_ordercode' then
  1964. PARENT.GetParent().GetParent().TriggerEvent('ue_f7')
  1965. elseif dwo.name = 'u_mtrldef_mtrlcode' then
  1966. PARENT.GetParent().GetParent().TriggerEvent('ue_f8')
  1967. end if
  1968. end if
  1969. end if
  1970. end event
  1971. event dwnkey;call super::dwnkey;PARENT.GetParent().GetParent().TriggerEvent('user_key')
  1972. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_wfjg_code,ls_taskcode
  1973. Long ls_mtrlid,ls_sptid,ls_wfjgid,ls_orderid
  1974. String ls_prdpackcode
  1975. Decimal ls_packqty
  1976. Int cnt = 0
  1977. Long child_row
  1978. Long ls_null
  1979. Int li_statusflag,li_woodcodeflag,li_pcodeflag
  1980. SetNull(ls_null)
  1981. IF dw_edit_mode THEN
  1982. ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()]
  1983. IF IsNull(ls_sptid) OR ls_sptid = 0 THEN
  1984. PARENT.TriggerEvent("ue_f9")
  1985. END IF
  1986. IF KeyDown(keydownarrow!) THEN
  1987. Long li_row
  1988. IF dw_order_spt.GetRow() = dw_order_spt.RowCount() THEN
  1989. PARENT.GetParent().GetParent().TriggerEvent("insert_childrow")
  1990. END IF
  1991. ELSE
  1992. If (KeyDown(keyenter!) OR KeyDown(keytab!)) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN
  1993. dw_order_spt.AcceptText()
  1994. IF dw_order_spt.GetColumnName() = 'u_mtrldef_mtrlcode' THEN
  1995. dw_order_spt.AcceptText()
  1996. child_row = dw_order_spt.GetRow()
  1997. ls_mtrlcode = dw_order_spt.Object.u_mtrldef_mtrlcode[child_row]
  1998. SELECT u_mtrldef.mtrlid,
  1999. u_mtrldef.mtrlname,
  2000. u_mtrldef.unit,
  2001. u_mtrldef.statusflag,
  2002. u_mtrldef.woodcodeflag,
  2003. u_mtrldef.pcodeflag
  2004. INTO :ls_mtrlid,:ls_mtrlname,:ls_unit,
  2005. :li_statusflag,:li_woodcodeflag,:li_pcodeflag
  2006. FROM u_mtrldef
  2007. Where ( u_mtrldef.mtrlcode = :ls_mtrlcode);
  2008. IF sqlca.SQLCode = 100 THEN
  2009. PARENT.GetParent().GetParent().TriggerEvent('ue_f8')
  2010. RETURN
  2011. END IF
  2012. dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[child_row] = ls_mtrlid
  2013. dw_order_spt.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname
  2014. dw_order_spt.Object.u_mtrldef_unit[child_row] = ls_unit
  2015. dw_order_spt.Object.u_mtrldef_statusflag[child_row] = li_statusflag
  2016. dw_order_spt.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag
  2017. dw_order_spt.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag
  2018. PARENT.TriggerEvent('ue_allowedit')
  2019. IF Key = keyenter! THEN
  2020. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2021. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2022. RETURN 1
  2023. END IF
  2024. ELSEIF dw_order_spt.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ifrel' THEN
  2025. IF dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_ifrel[dw_order_spt.GetRow()] = 1 THEN
  2026. dw_order_spt.Object.u_mtrldef_mtrlcode.protect = 1
  2027. ELSE
  2028. dw_order_spt.Object.u_mtrldef_mtrlcode.protect = 0
  2029. END IF
  2030. IF Key = keyenter! THEN
  2031. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2032. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2033. RETURN 1
  2034. END IF
  2035. ELSEIF dw_order_spt.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ordercode' AND dw_order_spt.GetRow() = dw_order_spt.RowCount() THEN
  2036. PARENT.GetParent().GetParent().TriggerEvent('ue_f7')
  2037. dw_order_spt.SetColumn('u_order_wfjg_wastemx_qty')
  2038. dw_order_spt.SetFocus( )
  2039. RETURN 1
  2040. ELSEIF dw_order_spt.GetColumnName( ) = 'u_order_wfjg_wastemx_wastedscrp' AND dw_order_spt.GetRow() = dw_order_spt.RowCount() THEN
  2041. PARENT.GetParent().GetParent().TriggerEvent("insert_childrow")
  2042. RETURN 1
  2043. ELSE
  2044. IF Key = keyenter! THEN
  2045. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2046. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2047. RETURN 1
  2048. END IF
  2049. END IF
  2050. END IF
  2051. END IF
  2052. END IF
  2053. end event
  2054. event rowfocuschanged;call super::rowfocuschanged;IF currentrow <= 0 THEN RETURN
  2055. THIS.SelectRow(0,FALSE)
  2056. THIS.SelectRow(currentrow,TRUE)
  2057. end event
  2058. event itemchanged;call super::itemchanged;int li_autocmpl
  2059. dw_order_spt.accepttext()
  2060. //
  2061. if row>0 then
  2062. li_autocmpl=dw_order_spt.object.u_order_wfjg_wastemx_ifrel[row]
  2063. f_SetProfileString (sys_empid,dw_pageretr.DataObject, "ifrel", String(li_autocmpl))
  2064. end if
  2065. end event
  2066. type tabpage_2 from userobject within tab_1
  2067. integer x = 18
  2068. integer y = 96
  2069. integer width = 3493
  2070. integer height = 952
  2071. long backcolor = 134217739
  2072. string text = "损耗外协商库存"
  2073. long tabtextcolor = 33554432
  2074. long tabbackcolor = 134217739
  2075. long picturemaskcolor = 536870912
  2076. dw_2 dw_2
  2077. end type
  2078. on tabpage_2.create
  2079. this.dw_2=create dw_2
  2080. this.Control[]={this.dw_2}
  2081. end on
  2082. on tabpage_2.destroy
  2083. destroy(this.dw_2)
  2084. end on
  2085. type dw_2 from u_dw_rbtnfilter within tabpage_2
  2086. integer width = 3493
  2087. integer height = 952
  2088. integer taborder = 30
  2089. string dataobject = "dw_inwaremx_wfjg_waste_spt_edit"
  2090. boolean hscrollbar = true
  2091. boolean vscrollbar = true
  2092. end type
  2093. event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN
  2094. IF row > 0 THEN
  2095. PARENT.GetParent().GetParent().TriggerEvent('ue_f11')
  2096. END IF
  2097. END IF
  2098. end event
  2099. event dwnkey;call super::dwnkey;parent.getparent().getparent().TriggerEvent('user_key')
  2100. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode
  2101. String ls_plancode,ls_status,ls_woodcode,ls_pcode
  2102. Long ls_mtrlwareid,ls_mtrlid,ls_sptid
  2103. Dec ls_noallocqty,ls_cost,ls_planprice,ls_packqty
  2104. Long child_row
  2105. Long ls_null
  2106. SetNull(ls_null)
  2107. s_sptware_array arg_s_sptware
  2108. IF dw_edit_mode THEN
  2109. dw_uc.AcceptText()
  2110. ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()]
  2111. IF ls_sptid = 0 OR IsNull(ls_sptid) THEN
  2112. MessageBox('提示','请先选择加工商',information!,OK!)
  2113. RETURN
  2114. END IF
  2115. IF KeyDown(Keydownarrow!) THEN
  2116. Long li_row
  2117. IF dw_ware_spt.GetRow() = dw_ware_spt.RowCount() THEN
  2118. parent.getparent().getparent().TriggerEvent("insert_childrow_out")
  2119. END IF
  2120. ELSE
  2121. If KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  2122. IF dw_ware_spt.GetColumnName( ) = 'u_mtrldef_mtrlcode' THEN
  2123. dw_ware_spt.AcceptText()
  2124. child_row = dw_ware_spt.GetRow()
  2125. ls_mtrlcode = dw_ware_spt.Object.u_mtrldef_mtrlcode[child_row]
  2126. //查询产品是否多于一批库存
  2127. int cnt=0
  2128. SELECT count(mtrlwareid) into :cnt
  2129. FROM ow_wfjgware, u_mtrldef
  2130. WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid )
  2131. and ( ow_wfjgware.sptid=:ls_sptid )
  2132. and ( u_mtrldef.mtrlcode=:ls_mtrlcode)
  2133. and ( ow_wfjgware.noallocqty > 0 );
  2134. if sqlca.sqlcode=100 or cnt > 1 then
  2135. parent.getparent().getparent().triggerevent('ue_f11')
  2136. return
  2137. end if
  2138. /////////////////////////////
  2139. SELECT top 1 ow_wfjgware.mtrlwareid ,
  2140. ow_wfjgware.mtrlid,
  2141. u_mtrldef.mtrlname,
  2142. u_mtrldef.unit,
  2143. ow_wfjgware.noallocqty,
  2144. ow_wfjgware.cost ,
  2145. ow_wfjgware.sptid,
  2146. ow_wfjgware.plancode,
  2147. u_mtrldef.mtrlmode,
  2148. ow_wfjgware.planprice,
  2149. ow_wfjgware.status,
  2150. ow_wfjgware.woodcode,
  2151. ow_wfjgware.pcode
  2152. INTO :ls_mtrlwareid,:ls_mtrlid,:ls_mtrlname,:ls_unit,:ls_noallocqty,
  2153. :ls_cost,:ls_sptid,:ls_plancode,:ls_mtrlmode,
  2154. :ls_planprice,:ls_status,:ls_woodcode,
  2155. :ls_pcode
  2156. FROM u_mtrldef,
  2157. ow_wfjgware left outer join u_spt
  2158. on ( ow_wfjgware.sptid = u_spt.sptid)
  2159. WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid )
  2160. and ( ow_wfjgware.sptid=:ls_sptid )
  2161. and ( u_mtrldef.mtrlcode=:ls_mtrlcode )
  2162. and ( ow_wfjgware.scid = :cur_scid )
  2163. and ( ow_wfjgware.noallocqty > 0 )
  2164. order by ow_wfjgware.mtrlwareid asc;
  2165. if sqlca.sqlcode=100 then
  2166. parent.getparent().getparent().triggerevent('ue_f11')
  2167. return
  2168. end if
  2169. dw_ware_spt.object.ow_wfjgmx_in_bef_mtrlwareid[child_row]=ls_mtrlwareid
  2170. dw_ware_spt.object.ow_wfjgmx_in_bef_mtrlid[child_row] =ls_mtrlid
  2171. dw_ware_spt.object.u_mtrldef_mtrlname[child_row] =ls_mtrlname
  2172. dw_ware_spt.object.u_mtrldef_mtrlmode[child_row] =ls_mtrlmode
  2173. dw_ware_spt.object.u_mtrldef_unit[child_row] =ls_unit
  2174. dw_ware_spt.object.ow_wfjgmx_in_bef_qty[child_row]=ls_noallocqty
  2175. dw_ware_spt.object.ow_wfjgmx_in_bef_fprice[child_row] =ls_cost
  2176. dw_ware_spt.object.ow_wfjgmx_in_bef_plancode[child_row] =ls_plancode
  2177. dw_ware_spt.object.ow_wfjgmx_in_bef_status[child_row] =ls_status
  2178. dw_ware_spt.object.ow_wfjgmx_in_bef_woodcode[child_row] =ls_woodcode
  2179. dw_ware_spt.object.ow_wfjgmx_in_bef_pcode[child_row] =ls_pcode
  2180. If key = KeyEnter! Then //
  2181. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2182. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2183. return 1
  2184. end if
  2185. elseif dw_ware_spt.GetColumnName( )='ow_wfjgmx_in_bef_mxdscrp' and dw_ware_spt.getrow()=dw_ware_spt.rowcount() then
  2186. parent.getparent().getparent().triggerevent("insert_childrow_out")
  2187. return 1
  2188. ELSE
  2189. IF Key = KeyEnter! THEN //
  2190. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2191. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2192. RETURN 1
  2193. END IF
  2194. END IF
  2195. END IF
  2196. END IF
  2197. END IF
  2198. end event
  2199. event rowfocuschanged;call super::rowfocuschanged;IF currentrow <= 0 THEN RETURN
  2200. THIS.SelectRow(0,FALSE)
  2201. THIS.SelectRow(currentrow,TRUE)
  2202. end event
  2203. type cb_in_2_out from uo_imflatbutton within w_inware_wfjg_waste
  2204. integer x = 3378
  2205. integer y = 188
  2206. integer width = 603
  2207. integer height = 84
  2208. integer taborder = 390
  2209. boolean bringtotop = true
  2210. string text = "按清单计算外协商库存"
  2211. end type
  2212. event clicked;call super::clicked;parent.triggerevent("ue_in_to_out2")
  2213. end event
  2214. type cbx_autocmp from checkbox within w_inware_wfjg_waste
  2215. integer x = 2267
  2216. integer y = 192
  2217. integer width = 1074
  2218. integer height = 76
  2219. boolean bringtotop = true
  2220. integer textsize = -9
  2221. integer weight = 400
  2222. fontcharset fontcharset = gb2312charset!
  2223. fontpitch fontpitch = variable!
  2224. string facename = "宋体"
  2225. long textcolor = 33554432
  2226. long backcolor = 67108864
  2227. string text = "保存自动按收货明细计算外协商库存明细"
  2228. end type
  2229. event clicked;int li_autocmpl
  2230. IF THIS.Checked THEN
  2231. li_autocmpl = 1
  2232. ELSE
  2233. li_autocmpl = 0
  2234. END IF
  2235. f_SetProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmpl", String(li_autocmpl))
  2236. end event
  2237. event constructor;int li_autocmpl
  2238. li_autocmpl = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmpl", '0'))
  2239. IF li_autocmpl = 0 THEN
  2240. THIS.Checked = FALSE
  2241. ELSE
  2242. THIS.Checked = TRUE
  2243. END IF
  2244. end event