w_mtrl_structure.srw 75 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973
  1. $PBExportHeader$w_mtrl_structure.srw
  2. forward
  3. global type w_mtrl_structure from w_publ_pageretr
  4. end type
  5. type cb_moveone from commandbutton within w_mtrl_structure
  6. end type
  7. type cb_removeone from commandbutton within w_mtrl_structure
  8. end type
  9. type cb_moveall from commandbutton within w_mtrl_structure
  10. end type
  11. type cb_removeall from commandbutton within w_mtrl_structure
  12. end type
  13. type st_codetitle from statictext within w_mtrl_structure
  14. end type
  15. type st_codetitleb from statictext within w_mtrl_structure
  16. end type
  17. type gb_4 from groupbox within w_mtrl_structure
  18. end type
  19. type mle_pfgy from multilineedit within w_mtrl_structure
  20. end type
  21. type cb_print from uo_imflatbutton within w_mtrl_structure
  22. end type
  23. type cb_refresh_tree from uo_imflatbutton within w_mtrl_structure
  24. end type
  25. type cb_save from uo_imflatbutton within w_mtrl_structure
  26. end type
  27. type cb_edit from uo_imflatbutton within w_mtrl_structure
  28. end type
  29. type cb_audit from uo_imflatbutton within w_mtrl_structure
  30. end type
  31. type cb_pfcopy from uo_imflatbutton within w_mtrl_structure
  32. end type
  33. type cb_pfpaste from uo_imflatbutton within w_mtrl_structure
  34. end type
  35. type ddlb_storageid from uo_ddlb_storageid within w_mtrl_structure
  36. end type
  37. type cb_help from uo_imflatbutton within w_mtrl_structure
  38. end type
  39. type st_msg from statictext within w_mtrl_structure
  40. end type
  41. type tab_1 from tab within w_mtrl_structure
  42. end type
  43. type tabpage_1 from userobject within tab_1
  44. end type
  45. type dw_mtrl_prdpfmx from u_dw_rbtnfilter within tabpage_1
  46. end type
  47. type tabpage_1 from userobject within tab_1
  48. dw_mtrl_prdpfmx dw_mtrl_prdpfmx
  49. end type
  50. type tabpage_2 from userobject within tab_1
  51. end type
  52. type tv_2 from treeview within tabpage_2
  53. end type
  54. type tabpage_2 from userobject within tab_1
  55. tv_2 tv_2
  56. end type
  57. type tab_1 from tab within w_mtrl_structure
  58. tabpage_1 tabpage_1
  59. tabpage_2 tabpage_2
  60. end type
  61. type cb_other from uo_imflatbutton within w_mtrl_structure
  62. end type
  63. type st_2 from statictext within w_mtrl_structure
  64. end type
  65. type st_3 from statictext within w_mtrl_structure
  66. end type
  67. type cb_xls from uo_imflatbutton within w_mtrl_structure
  68. end type
  69. type ddlb_mtrlorigin from uo_ddlb_mtrlorigin within w_mtrl_structure
  70. end type
  71. type cbx_packqty_cmpl from checkbox within w_mtrl_structure
  72. end type
  73. type ln_bar from line within w_mtrl_structure
  74. end type
  75. type ln_bar2 from line within w_mtrl_structure
  76. end type
  77. type r_bar from rectangle within w_mtrl_structure
  78. end type
  79. type ln_1 from line within w_mtrl_structure
  80. end type
  81. type ln_2 from line within w_mtrl_structure
  82. end type
  83. type ln_5 from line within w_mtrl_structure
  84. end type
  85. type ln_6 from line within w_mtrl_structure
  86. end type
  87. type cbx_auto_printid from checkbox within w_mtrl_structure
  88. end type
  89. type cbx_auto_zc from checkbox within w_mtrl_structure
  90. end type
  91. type cb_1 from commandbutton within w_mtrl_structure
  92. end type
  93. end forward
  94. global type w_mtrl_structure from w_publ_pageretr
  95. integer x = 14
  96. integer y = 16
  97. integer width = 3602
  98. integer height = 2300
  99. string title = "物料清单"
  100. boolean maxbox = true
  101. windowstate windowstate = maximized!
  102. event insert_childrow ( )
  103. event ue_viewprint_gy ( )
  104. event ue_viewprint ( )
  105. event ue_f8 ( )
  106. event ue_retrieve_info ( )
  107. event ue_insertmx ( )
  108. event ue_deletemx ( )
  109. event ue_help ( )
  110. event ue_viewprint_tree ( )
  111. event ue_xls ( )
  112. event ue_mtrl_info ( )
  113. event ue_checkrand ( )
  114. event ue_replace_p ( )
  115. cb_moveone cb_moveone
  116. cb_removeone cb_removeone
  117. cb_moveall cb_moveall
  118. cb_removeall cb_removeall
  119. st_codetitle st_codetitle
  120. st_codetitleb st_codetitleb
  121. gb_4 gb_4
  122. mle_pfgy mle_pfgy
  123. cb_print cb_print
  124. cb_refresh_tree cb_refresh_tree
  125. cb_save cb_save
  126. cb_edit cb_edit
  127. cb_audit cb_audit
  128. cb_pfcopy cb_pfcopy
  129. cb_pfpaste cb_pfpaste
  130. ddlb_storageid ddlb_storageid
  131. cb_help cb_help
  132. st_msg st_msg
  133. tab_1 tab_1
  134. cb_other cb_other
  135. st_2 st_2
  136. st_3 st_3
  137. cb_xls cb_xls
  138. ddlb_mtrlorigin ddlb_mtrlorigin
  139. cbx_packqty_cmpl cbx_packqty_cmpl
  140. ln_bar ln_bar
  141. ln_bar2 ln_bar2
  142. r_bar r_bar
  143. ln_1 ln_1
  144. ln_2 ln_2
  145. ln_5 ln_5
  146. ln_6 ln_6
  147. cbx_auto_printid cbx_auto_printid
  148. cbx_auto_zc cbx_auto_zc
  149. cb_1 cb_1
  150. end type
  151. global w_mtrl_structure w_mtrl_structure
  152. type variables
  153. long obj_mtrlid=0
  154. int obj_SAuditflag=0
  155. string obj_pfcode='组装'
  156. Long cur_cmpl_zc = 0
  157. string obj_mtrlcode=''
  158. string obj_source=''
  159. string obj_mtrlname=''
  160. long deep=0
  161. long pfcopy_mtrlid=0
  162. string pfcopy_pfcode=''
  163. string pfcopy_mtrlcode=''
  164. string pfcopy_source=''
  165. string pfcopy_mtrlname=''
  166. s_structuremx pfmx[]
  167. long p_pfmx=0
  168. long cur_storageid = -1
  169. int cur_mtrlorigin=0
  170. long page_mtrlid=0
  171. string ol_tvi_label
  172. datawindow dw_mtrl_prdpfmx
  173. treeview tv_1
  174. string ls_newname
  175. Long ll_xls_billid,ll_xls_Templatesid
  176. String ls_xls_DefaultDataWindow
  177. String ins_openfile_log[] //用于退出后删除
  178. Long ins_openfile_log_p = 0 //用于退出后删除
  179. long cur_isuse
  180. long cur_auto_printid
  181. end variables
  182. forward prototypes
  183. public function integer wf_save ()
  184. public function integer wf_checkrand (long checked_mtrlid)
  185. public function integer wf_changemtrl (long arg_mtrlid)
  186. public function integer wf_moveone (long sor_row)
  187. public function integer wf_removeone (long sor_row)
  188. public function integer wf_modefacechg ()
  189. private function integer wf_retrieve_childrenmtrl (long arg_mtrlid)
  190. public function integer pf_treegrowth (long arg_handl, long arg_mtrlid, decimal arg_num, integer arg_lp)
  191. public function integer wf_pfcopy ()
  192. public function integer wf_pfpaste ()
  193. public subroutine wf_flagstatus_rf (integer arg_sauditflag)
  194. public function integer wf_maketree ()
  195. public function integer wf_maketree_sub ()
  196. public function integer wf_refresh_curuc (long arg_mtrlid)
  197. 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)
  198. public subroutine wf_addlog_tempfilepathname (string arg_filepathname)
  199. public subroutine wf_del_tempfilepathname ()
  200. public subroutine wf_add_mx ()
  201. end prototypes
  202. event insert_childrow();long li_row
  203. li_row=dw_mtrl_prdpfmx.insertrow(0)
  204. dw_mtrl_prdpfmx.scrolltorow(li_row)
  205. dw_mtrl_prdpfmx.object.u_prdpf_printid[li_row] = li_row
  206. dw_mtrl_prdpfmx.SetColumn ('u_prdpf_printid')
  207. end event
  208. event ue_viewprint_gy();Long LS_ROW
  209. LS_ROW = dw_pageretr.GetRow()
  210. IF LS_ROW <= 0 THEN
  211. MessageBox('提示','没有打印目标单据!', Information!, OK! )
  212. RETURN
  213. END IF
  214. String ls_pf
  215. ls_pf = obj_pfcode
  216. S_print_MSG LS_PRMSG
  217. String ls_windowname
  218. ls_windowname = THIS.ClassName ( )
  219. String ls_old_dwname,ls_new_dwname = ''
  220. ls_old_dwname = 'dw_rp_prdstruct'
  221. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  222. IF ls_new_dwname = '' THEN
  223. ls_new_dwname = ls_old_dwname
  224. END IF
  225. LS_PRMSG.obj_dwNAME = ls_new_dwname
  226. LS_PRMSG.TAG_TEXT = '产品物料明细表[工艺]'
  227. LS_PRMSG.FILTER_STRING = ''
  228. LS_PRMSG.retr_pram_falg = 14
  229. LS_PRMSG.PAGECH_FLAG = 0
  230. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()]
  231. LS_PRMSG.retr_pramstr = ls_pf
  232. OpenWithParm(w_publ_preview,LS_PRMSG)
  233. end event
  234. event ue_viewprint(); Long ls_msgprintid
  235. ls_msgprintid = Message.LongParm
  236. SELECT dft_new_dwname
  237. INTO :ls_newname
  238. FROM sys_dft_dwprint_dynamic
  239. Where sys_dft_dwprint_dynamic.dwprintid = :ls_msgprintid USING sqlca;
  240. IF sqlca.SQLCode <> 0 THEN
  241. ls_newname = ''
  242. END IF
  243. Long LS_ROW
  244. LS_ROW = dw_pageretr.GetRow()
  245. IF LS_ROW <= 0 THEN
  246. MessageBox('提示','没有打印目标单据!',Information!,OK!)
  247. RETURN
  248. END IF
  249. S_print_MSG LS_PRMSG
  250. IF ls_newname <> '' THEN
  251. LS_PRMSG.obj_dwNAME = ls_newname
  252. ELSE
  253. LS_PRMSG.obj_dwNAME = 'dw_rp_prdstruct_yl'
  254. END IF
  255. LS_PRMSG.TAG_TEXT = '物料清单'
  256. LS_PRMSG.FILTER_STRING = ''
  257. LS_PRMSG.retr_pram_falg = 15
  258. LS_PRMSG.PAGECH_FLAG = 0
  259. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.mtrlid[LS_ROW]
  260. OpenWithParm(w_publ_preview,LS_PRMSG)
  261. end event
  262. event ue_f8();//用于选择明细内容,被F8[默认]\dw_mtrl_prdpfmx.doubleclicked调用
  263. IF NOT dw_edit_mode THEN RETURN
  264. Long child_row
  265. Long ins_storageid = 0
  266. child_row = dw_mtrl_prdpfmx.GetRow()
  267. IF NOT IsValid(W_mtrldef_edit) THEN
  268. s_edit_index_tran s_ch_tran //传递参数使用
  269. s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  270. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  271. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  272. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  273. s_ch_tran.if_select_all = TRUE
  274. s_ch_tran.b_long = 2
  275. Long chc = 1,ls_j
  276. dw_mtrl_prdpfmx.AcceptText()
  277. IF dw_mtrl_prdpfmx.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_mtrl_prdpfmx.Object.mtrlcode[dw_mtrl_prdpfmx.GetRow()])
  278. OpenWithParm(W_mtrldef_edit,s_ch_tran)
  279. s_mtrldef_array S_INSCUST
  280. S_INSCUST = Message.PowerObjectParm
  281. FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlid)
  282. IF S_INSCUST.mtrlid[ls_j] > 0 THEN
  283. IF dw_mtrl_prdpfmx.GetRow() > 0 THEN
  284. IF dw_mtrl_prdpfmx.Object.mtrlid[child_row] <> 0 THEN
  285. child_row = dw_mtrl_prdpfmx.InsertRow (0)
  286. ELSE
  287. child_row = dw_mtrl_prdpfmx.GetRow()
  288. END IF
  289. ELSE
  290. child_row = dw_mtrl_prdpfmx.InsertRow (0)
  291. END IF
  292. dw_mtrl_prdpfmx.Object.u_prdpf_printid[child_row] = child_row
  293. dw_mtrl_prdpfmx.Object.mtrlcode[child_row] = S_INSCUST.mtrlcode[ls_j]
  294. dw_mtrl_prdpfmx.Object.unit[child_row] = S_INSCUST.unit[ls_j]
  295. dw_mtrl_prdpfmx.Object.mtrlid[child_row] = S_INSCUST.mtrlid[ls_j]
  296. dw_mtrl_prdpfmx.Object.mtrlname[child_row] = S_INSCUST.mtrlname[ls_j]
  297. dw_mtrl_prdpfmx.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.mtrlengname[ls_j]
  298. dw_mtrl_prdpfmx.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.mtrlmode[ls_j]
  299. dw_mtrl_prdpfmx.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.mtrlsectype[ls_j]
  300. dw_mtrl_prdpfmx.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.zxmtrlmode[ls_j]
  301. IF NOT Len(Trim(dw_mtrl_prdpfmx.Object.u_prdpf_dscrp[child_row])) > 0 THEN
  302. dw_mtrl_prdpfmx.Object.u_prdpf_dscrp[child_row] = S_INSCUST.dscrp[ls_j]
  303. END IF
  304. END IF
  305. NEXT
  306. dw_mtrl_prdpfmx.SetFocus()
  307. END IF
  308. end event
  309. event ue_retrieve_info();Long ll_row
  310. Long ll_mtrlid
  311. ll_row = dw_pageretr.GetRow()
  312. IF ll_row <= 0 THEN
  313. ll_mtrlid = 0
  314. ELSE
  315. ll_mtrlid = dw_pageretr.Object.mtrlid[ll_row]
  316. END IF
  317. IF IsValid(w_mtrl_info) THEN
  318. w_mtrl_info.WindowState = Normal!
  319. w_mtrl_info.ins_mtrlid = ll_mtrlid
  320. w_mtrl_info.wf_retrieve(ll_mtrlid)
  321. END IF
  322. end event
  323. event ue_deletemx;if not keydown(KeyControl!) then
  324. IF MessageBox ('提示',"是否确定要删除当前组成原料吗",Question!,YesNo! ) = 2 THEN RETURN
  325. end if
  326. long find_row=0,sor_row
  327. sor_row=dw_mtrl_prdpfmx.getrow()
  328. if sor_row<=0 then
  329. Beep(1)
  330. return
  331. end if
  332. wf_removeone(sor_row)
  333. end event
  334. event ue_help();Int i
  335. i = htmlhelpA(Handle(THIS), sys_help_chm, 0, THIS.Title+".html")
  336. end event
  337. event ue_viewprint_tree();
  338. Long LS_ROW
  339. LS_ROW = dw_pageretr.GetRow()
  340. IF LS_ROW <= 0 THEN
  341. MessageBox('提示','没有打印目标单据!', Information!, OK! )
  342. RETURN
  343. END IF
  344. String ls_pf
  345. ls_pf = obj_pfcode
  346. S_print_MSG LS_PRMSG
  347. String ls_windowname
  348. ls_windowname = THIS.ClassName ( )
  349. String ls_old_dwname,ls_new_dwname = ''
  350. ls_old_dwname = 'dw_rp_prdstruct_tree'
  351. ls_new_dwname = f_get_dwprint_dynamic_chname(ls_old_dwname,ls_windowname)
  352. IF ls_new_dwname = '' THEN
  353. ls_new_dwname = ls_old_dwname
  354. END IF
  355. LS_PRMSG.obj_dwNAME = ls_new_dwname
  356. LS_PRMSG.TAG_TEXT = '产品物料明细表[树型结构]'
  357. LS_PRMSG.FILTER_STRING = ''
  358. LS_PRMSG.retr_pram_falg = 2
  359. LS_PRMSG.PAGECH_FLAG = 0
  360. LS_PRMSG.retr_pramnmb = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()]
  361. OpenWithParm(w_publ_preview,LS_PRMSG)
  362. end event
  363. event ue_xls();String arg_msg
  364. Long ll_Templatesid,ll_ationid
  365. ll_Templatesid = Message.LongParm
  366. ll_ationid = Long(Message.WordParm )
  367. IF IsNull(ll_Templatesid) THEN ll_Templatesid = 0
  368. IF IsNull(ll_ationid) THEN ll_ationid = 0
  369. IF ll_Templatesid = 0 THEN RETURN
  370. ll_xls_Templatesid = ll_Templatesid
  371. uo_xls_constant uo_constant //Excel全局设置对象
  372. uo_constant = CREATE uo_xls_constant
  373. uo_sendtoexcel obj_st //实例化数据处理对象
  374. obj_st = CREATE uo_sendtoexcel
  375. obj_st.commit_transaction = sqlca //事务对象 建议显示设置 默认等于sqlca
  376. obj_st.uo_const = uo_constant //全局配置对象
  377. s_xls_billlist str_billlist
  378. str_billlist = obj_st.of_getbillinfo(ll_Templatesid,arg_msg) //根据模版获取相应的单据信息
  379. IF str_billlist.count <= 0 THEN
  380. MessageBox('错误',arg_msg)
  381. RETURN
  382. END IF
  383. if wf_xls_retrievedata(ll_ationid,str_billlist,obj_st,arg_msg) <> 1 then
  384. MessageBox('错误',arg_msg)
  385. return
  386. end if
  387. //发送数据
  388. obj_st.EVENT oe_sendtoexcel(str_billlist)
  389. end event
  390. event ue_mtrl_info();Long ll_row
  391. ll_row = dw_pageretr.GetRow()
  392. IF ll_row <= 0 THEN
  393. MessageBox('提示','请选择物料', Information!, OK! )
  394. RETURN
  395. END IF
  396. Long ll_mtrlid
  397. ll_mtrlid = dw_pageretr.Object.mtrlid[ll_row]
  398. IF IsValid(w_mtrl_info) THEN
  399. w_mtrl_info.WindowState = Normal!
  400. w_mtrl_info.ins_mtrlid = ll_mtrlid
  401. w_mtrl_info.wf_retrieve(ll_mtrlid)
  402. ELSE
  403. OpenWithParm(w_mtrl_info,ll_mtrlid)
  404. END IF
  405. return
  406. end event
  407. event ue_checkrand;//检查有否环//
  408. Long ls_cr_rsl,LS_i
  409. FOR LS_i = 1 TO dw_mtrl_prdpfmx.RowCount()
  410. ls_cr_rsl = wf_checkrand(dw_mtrl_prdpfmx.Object.mtrlid[LS_i])
  411. IF ls_cr_rsl = 1 THEN
  412. MessageBox(String(dw_mtrl_prdpfmx.Object.mtrlid[LS_i]),'发现环!在 '+String(dw_mtrl_prdpfmx.Object.mtrlcode[LS_i])+' ,请核对!', Information!, OK! )
  413. RETURN
  414. ELSEIF ls_cr_rsl < 0 THEN
  415. MessageBox('系统提示','因为网络或其他原因导致查环操作失败!['+String(dw_mtrl_prdpfmx.Object.mtrlcode[LS_i])+']', Information!, OK! )
  416. RETURN
  417. END IF
  418. NEXT
  419. MessageBox('系统提示','没有发现闭环!', Information!, OK! )
  420. end event
  421. event ue_replace_p();IF NOT f_power_ind(32,sys_msg_pow) THEN
  422. MessageBox(publ_operator,sys_msg_pow)
  423. RETURN
  424. END IF
  425. Long ll_row
  426. Long ll_mtrlid
  427. ll_row = dw_pageretr.GetRow()
  428. IF ll_row <= 0 THEN
  429. ll_mtrlid = 0
  430. ELSE
  431. ll_mtrlid = dw_pageretr.Object.mtrlid[ll_row]
  432. END IF
  433. IF ll_mtrlid = 0 THEN
  434. MessageBox('系统提示','请选择物料')
  435. RETURN
  436. END IF
  437. OpenWithParm(w_mtrl_structure_replace_p,ll_mtrlid)
  438. wf_changemtrl(obj_mtrlid)
  439. //wf_maketree2()
  440. end event
  441. public function integer wf_save ();//wf_save
  442. //检查值有效性
  443. //查询环
  444. //删除原有明细
  445. //插入新明细
  446. //
  447. //
  448. Long rslt = 1,ls_i,ls_cr_rsl
  449. String arg_msg
  450. String u_prdpf_pfgroup,u_prdpf_dscrp
  451. Decimal u_prdpf_sonscale,u_prdpf_sonloss,u_prdpf_sondecloss,u_prdpf_sonahead,u_prdpf_updownrate
  452. Long ll_sonmtrlid,u_prdpf_ifreputate,u_prdpf_ifover
  453. String ls_status
  454. Long u_prdpf_printid,ll_printid_new
  455. Long u_prdpf_wrkgrpid
  456. String ls_woodcode,ls_pcode
  457. String ls_mtrlcode,u_prdpf_promode,u_prdpf_pfgroupmode,u_prdpf_pfklmode
  458. Decimal u_prdpf_pfgroupqty,ld_qgqty
  459. Long u_prdpf_dipztype
  460. dw_mtrl_prdpfmx.AcceptText()
  461. ////检查有否环 //
  462. Open(w_sys_wait_jdt) //打开进度窗口
  463. w_sys_wait_jdt.wf_set_msg('正在检查新BOM组成数量的合法性,请稍候...')
  464. IF cur_cmpl_zc = 1 THEN
  465. FOR ls_i = 1 To dw_mtrl_prdpfmx.RowCount()
  466. IF dw_mtrl_prdpfmx.Object.u_prdpf_qgqty[ls_i] = 0 THEN CONTINUE
  467. dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ls_i] = 1 / dw_mtrl_prdpfmx.Object.u_prdpf_qgqty[ls_i] * dw_mtrl_prdpfmx.Object.u_prdpf_pfgroupqty[ls_i]
  468. Next
  469. END IF
  470. dw_mtrl_prdpfmx.AcceptText()
  471. FOR ls_i = 1 To dw_mtrl_prdpfmx.RowCount()
  472. IF dw_mtrl_prdpfmx.Object.mtrlid[ls_i] <= 0 THEN CONTINUE
  473. ls_mtrlcode = dw_mtrl_prdpfmx.Object.mtrlcode[ls_i]
  474. IF dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ls_i] = 0 THEN
  475. arg_msg = '行:'+String(ls_i)+',物料:'+ls_mtrlcode+',请输入组成数量!'
  476. rslt = 0
  477. GOTO ext
  478. END IF
  479. IF dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ls_i] < 0 THEN
  480. arg_msg = '行:'+String(ls_i)+',物料:'+ls_mtrlcode+',不合理组成数量!'
  481. rslt = 0
  482. GOTO ext
  483. END IF
  484. IF dw_mtrl_prdpfmx.Object.u_prdpf_wrkgrpid[ls_i] <= 0 THEN
  485. arg_msg = '行:'+String(ls_i)+',物料:'+ls_mtrlcode+',请选择领料组!'
  486. rslt = 0
  487. GOTO ext
  488. END IF
  489. NEXT
  490. //
  491. w_sys_wait_jdt.wf_accepttol(dw_mtrl_prdpfmx.RowCount()) //初始化进度条
  492. w_sys_wait_jdt.wf_set_msg('正在检查新BOM是否存在环,请稍候...')
  493. FOR ls_i = 1 To dw_mtrl_prdpfmx.RowCount()
  494. IF dw_mtrl_prdpfmx.Object.mtrlid[ls_i] <= 0 THEN CONTINUE
  495. //处理
  496. w_sys_wait_jdt.wf_set_msg('正在检查新BOM是否存在环,请稍候...'+'行:'+String(ls_i)+',['+Trim(dw_mtrl_prdpfmx.Object.mtrlcode[ls_i])+']')
  497. ls_cr_rsl = wf_checkrand(dw_mtrl_prdpfmx.Object.mtrlid[ls_i])
  498. IF ls_cr_rsl = 1 THEN
  499. arg_msg = '行:'+String(ls_i)+',发现环!在 '+String(dw_mtrl_prdpfmx.Object.mtrlcode[ls_i])+' ,请核对!'
  500. rslt = 0
  501. GOTO ext
  502. ELSEIF ls_cr_rsl < 0 THEN
  503. arg_msg = '查询闭环操作失败!['+String(dw_mtrl_prdpfmx.Object.mtrlcode[ls_i])+']'
  504. rslt = 0
  505. GOTO ext
  506. END IF
  507. w_sys_wait_jdt.wf_inc(ls_i) //进度
  508. NEXT
  509. DELETE FROM u_prdpf
  510. WHERE ( u_prdpf.mtrlid = :obj_mtrlid ) AND
  511. ( u_prdpf.pfcode = :obj_pfcode );
  512. IF sqlca.SQLCode <> 0 THEN
  513. arg_msg = "删除原始BOM操作失败,"+sqlca.SQLErrText
  514. rslt = 0
  515. GOTO ext
  516. END IF
  517. //插入新记录
  518. w_sys_wait_jdt.wf_accepttol(dw_mtrl_prdpfmx.RowCount()) //初始化进度条
  519. w_sys_wait_jdt.wf_set_msg('正在生成新BOM,请稍候...')
  520. FOR ls_i = 1 To dw_mtrl_prdpfmx.RowCount()
  521. IF dw_mtrl_prdpfmx.Object.mtrlid[ls_i] <= 0 THEN CONTINUE
  522. IF dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ls_i] = 0 THEN CONTINUE
  523. //处理
  524. w_sys_wait_jdt.wf_set_msg('正在生成新BOM,请稍候...'+'['+Trim(dw_mtrl_prdpfmx.Object.mtrlcode[ls_i])+']')
  525. ll_printid_new++
  526. u_prdpf_sonscale = dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ls_i]
  527. u_prdpf_sonloss = dw_mtrl_prdpfmx.Object.u_prdpf_sonloss[ls_i]
  528. u_prdpf_sondecloss = dw_mtrl_prdpfmx.Object.u_prdpf_sondecloss[ls_i]
  529. u_prdpf_sonahead = 0
  530. u_prdpf_pfgroup = dw_mtrl_prdpfmx.Object.u_prdpf_pfgroup[ls_i]
  531. ll_sonmtrlid = dw_mtrl_prdpfmx.Object.mtrlid[ls_i]
  532. u_prdpf_dscrp = Trim(dw_mtrl_prdpfmx.Object.u_prdpf_dscrp[ls_i])
  533. u_prdpf_promode = dw_mtrl_prdpfmx.Object.u_prdpf_promode[ls_i]
  534. u_prdpf_pfgroupmode = dw_mtrl_prdpfmx.Object.u_prdpf_pfgroupmode[ls_i]
  535. u_prdpf_pfklmode = dw_mtrl_prdpfmx.Object.u_prdpf_pfklmode[ls_i]
  536. u_prdpf_pfgroupqty = dw_mtrl_prdpfmx.Object.u_prdpf_pfgroupqty[ls_i]
  537. u_prdpf_updownrate = 0
  538. u_prdpf_ifreputate = 0
  539. u_prdpf_ifover = dw_mtrl_prdpfmx.Object.u_prdpf_ifover[ls_i] //改了
  540. u_prdpf_dipztype = dw_mtrl_prdpfmx.Object.u_prdpf_dipztype[ls_i]
  541. IF IsNull(u_prdpf_ifover) THEN u_prdpf_ifover = 0
  542. IF IsNull(u_prdpf_dipztype) THEN u_prdpf_dipztype = -1
  543. IF cur_auto_printid = 1 THEN
  544. u_prdpf_printid = ll_printid_new
  545. ELSE
  546. u_prdpf_printid = dw_mtrl_prdpfmx.Object.u_prdpf_printid[ls_i]
  547. END IF
  548. u_prdpf_wrkgrpid = dw_mtrl_prdpfmx.Object.u_prdpf_wrkgrpid[ls_i]
  549. ls_status = Trim(dw_mtrl_prdpfmx.Object.u_prdpf_status[ls_i])
  550. ls_woodcode = Trim(dw_mtrl_prdpfmx.Object.u_prdpf_woodcode[ls_i])
  551. ls_pcode = Trim(dw_mtrl_prdpfmx.Object.u_prdpf_pcode[ls_i])
  552. ld_qgqty = dw_mtrl_prdpfmx.Object.u_prdpf_qgqty[ls_i]
  553. INSERT INTO u_prdpf
  554. ( mtrlid,
  555. pfcode,
  556. sonmtrlid,
  557. sonscale,
  558. sonloss,
  559. sondecloss,
  560. sonahead,
  561. dscrp,
  562. updownrate,
  563. ifreputate,
  564. ifover,
  565. dipztype,
  566. pfgroup,
  567. promode,
  568. pfgroupmode,
  569. pfklmode,
  570. pfgroupqty,
  571. printid,
  572. wrkgrpid,
  573. status,
  574. pcode,
  575. woodcode,
  576. qgqty)
  577. VALUES ( :obj_mtrlid,
  578. :obj_pfcode,
  579. :ll_sonmtrlid,
  580. :u_prdpf_sonscale,
  581. :u_prdpf_sonloss,
  582. :u_prdpf_sondecloss,
  583. :u_prdpf_sonahead,
  584. :u_prdpf_dscrp,
  585. :u_prdpf_updownrate,
  586. :u_prdpf_ifreputate,
  587. :u_prdpf_ifover,
  588. :u_prdpf_dipztype,
  589. :u_prdpf_pfgroup,
  590. :u_prdpf_promode,
  591. :u_prdpf_pfgroupmode,
  592. :u_prdpf_pfklmode,
  593. :u_prdpf_pfgroupqty,
  594. :u_prdpf_printid,
  595. :u_prdpf_wrkgrpid,
  596. :ls_status,
  597. :ls_pcode,
  598. :ls_woodcode,
  599. :ld_qgqty) ;
  600. IF sqlca.SQLCode <> 0 THEN
  601. arg_msg ="行"+string(ls_i)+" 物料:" +Trim(dw_mtrl_prdpfmx.Object.mtrlcode[ls_i])+" 插入新BOM操作失败,"+sqlca.SQLErrText
  602. rslt = 0
  603. GOTO ext
  604. END IF
  605. dw_mtrl_prdpfmx.Object.u_prdpf_printid[ls_i] = u_prdpf_printid
  606. w_sys_wait_jdt.wf_inc(ls_i) //进度
  607. NEXT
  608. //Close(w_sys_wait_jdt)
  609. //====================================================================
  610. // 工艺说明
  611. //====================================================================
  612. String ls_pf_gy
  613. ls_pf_gy = mle_pfgy.Text
  614. UPDATE u_mtrl_structure_gy
  615. SET pfgy = :ls_pf_gy
  616. WHERE ( mtrlid = :obj_mtrlid ) AND
  617. ( pfcode = :obj_pfcode ) ;
  618. IF sqlca.SQLCode = 0 THEN
  619. IF sqlca.SQLNRows = 0 THEN
  620. INSERT Into u_mtrl_structure_gy (mtrlid,pfcode, pfgy ) Values (:obj_mtrlid,:obj_pfcode, :ls_pf_gy);
  621. IF sqlca.SQLCode <> 0 THEN
  622. arg_msg = "插入新清单工艺说明操作失败,"+sqlca.SQLErrText
  623. rslt = 0
  624. GOTO ext
  625. END IF
  626. END IF
  627. ELSE
  628. arg_msg = "更新清单工艺说明操作失败,"+sqlca.SQLErrText
  629. rslt = 0
  630. GOTO ext
  631. END IF
  632. //DELETE FROM u_mtrl_structure_gy
  633. // WHERE ( u_mtrl_structure_gy.mtrlid = :obj_mtrlid ) AND
  634. // ( u_mtrl_structure_gy.pfcode = :obj_pfcode ) ;
  635. //IF sqlca.SQLCode <> 0 THEN
  636. // arg_msg = "删除旧清单工艺说明操作失败,"+sqlca.SQLErrText
  637. // rslt = 0
  638. // GOTO ext
  639. //END IF
  640. //
  641. //INSERT Into u_mtrl_structure_gy (mtrlid,pfcode, pfgy ) Values (:obj_mtrlid,:obj_pfcode, :ls_pf_gy);
  642. //IF sqlca.SQLCode <> 0 THEN
  643. // arg_msg = "插入新清单工艺说明操作失败,"+sqlca.SQLErrText
  644. // rslt = 0
  645. // GOTO ext
  646. //END IF
  647. //====================================================================
  648. // 更新时间
  649. //====================================================================
  650. UPDATE u_mtrldef
  651. SET sopdate = getdate() ,
  652. spopemp = :publ_operator
  653. Where mtrlid = :obj_mtrlid;
  654. IF sqlca.SQLCode <> 0 THEN
  655. arg_msg = "更新产品物料构成修改时间操作失败,"+sqlca.SQLErrText
  656. rslt = 0
  657. GOTO ext
  658. END IF
  659. wf_changemtrl(obj_mtrlid)
  660. page_mtrlid = obj_mtrlid
  661. ext:
  662. Close(w_sys_wait_jdt)
  663. IF rslt = 0 THEN
  664. ROLLBACK;
  665. MessageBox ("提示",arg_msg, Information!, OK! )
  666. ELSE
  667. COMMIT;
  668. MessageBox ("提示","清单保存成功!", Information!, OK! )
  669. wf_maketree()
  670. END IF
  671. RETURN rslt
  672. end function
  673. public function integer wf_checkrand (long checked_mtrlid);//wf_checkrand
  674. IF checked_mtrlid = obj_mtrlid THEN RETURN 1
  675. Long ls_mtrlid
  676. Long rt_b,rt_s,count
  677. Long mtrlid[],ls_i
  678. DECLARE pf_cur CURSOR FOR
  679. SELECT u_PrdPF.SonMtrlid
  680. FROM u_PrdPF
  681. Where ( u_PrdPF.mtrlid = :checked_mtrlid );
  682. OPEN pf_cur;
  683. count = 1
  684. FETCH pf_cur Into :mtrlid[count];
  685. DO WHILE sqlca.SQLCode = 0
  686. count++
  687. FETCH pf_cur Into :mtrlid[count];
  688. LOOP
  689. count = count - 1
  690. CLOSE pf_cur;
  691. FOR ls_i = 1 To count
  692. rt_b = wf_checkrand(mtrlid[ls_i])
  693. IF rt_b <> 0 THEN RETURN rt_b
  694. NEXT
  695. RETURN 0
  696. //DO
  697. //
  698. //LOOP WHILE
  699. end function
  700. public function integer wf_changemtrl (long arg_mtrlid); SELECT u_mtrldef.mtrlname,
  701. u_mtrldef.mtrlcode,
  702. u_mtrldef.SAuditflag
  703. INTO :obj_mtrlname,
  704. :obj_mtrlcode,
  705. :obj_SAuditflag
  706. FROM u_mtrldef
  707. WHERE u_mtrldef.mtrlid = :arg_mtrlid ;
  708. if sqlca.sqlcode<>0 then
  709. obj_mtrlid=0
  710. obj_SAuditflag=0
  711. return 0
  712. end if
  713. obj_mtrlid=arg_mtrlid
  714. st_codetitle.text=" "+trim(obj_mtrlname)+'/'+trim(obj_mtrlcode) +' 清单'
  715. wf_retrieve_childrenmtrl(obj_mtrlid)
  716. sle_usual_query.setfocus()
  717. wf_flagstatus_rf(obj_SAuditflag)
  718. return 1
  719. end function
  720. public function integer wf_moveone (long sor_row);//wf_moveone
  721. long new_row
  722. if sor_row<=0 then
  723. return 0
  724. end if
  725. new_row=dw_mtrl_prdpfmx.insertrow(dw_mtrl_prdpfmx.rowcount())
  726. dw_mtrl_prdpfmx.object.u_prdpf_printid[new_row] = new_row
  727. dw_mtrl_prdpfmx.object.mtrlcode[new_row]=dw_pageretr.object.mtrlcode[sor_row]
  728. dw_mtrl_prdpfmx.object.u_mtrldef_mtrlmode[new_row]=dw_pageretr.object.mtrlmode[sor_row]
  729. dw_mtrl_prdpfmx.object.mtrlname[new_row]=dw_pageretr.object.mtrlname[sor_row]
  730. dw_mtrl_prdpfmx.object.unit[new_row]=dw_pageretr.object.unit[sor_row]
  731. dw_mtrl_prdpfmx.object.mtrlid[new_row] =dw_pageretr.object.mtrlid[sor_row]
  732. dw_mtrl_prdpfmx.object.u_prdpf_dscrp[new_row] =dw_pageretr.object.dscrp[sor_row]
  733. return 1
  734. end function
  735. public function integer wf_removeone (long sor_row);//wf_removeone
  736. if sor_row<=0 then
  737. return 0
  738. end if
  739. dw_mtrl_prdpfmx.deleterow(sor_row)
  740. dw_mtrl_prdpfmx.triggerevent(rowfocuschanged!)
  741. return 1
  742. end function
  743. public function integer wf_modefacechg ();//wf_modefacechg
  744. Int LS_INT
  745. Int child_column_int = 18//可修改的前N个字段
  746. IF dw_edit_mode THEN
  747. cb_save.Enabled = TRUE
  748. cb_edit.Text = '放弃&E'
  749. cb_edit.normalpicname = 'undo.bmp'
  750. cb_removeall.Enabled = TRUE
  751. cb_removeone.Enabled = TRUE
  752. cb_moveall.Enabled = TRUE
  753. cb_moveone.Enabled = TRUE
  754. cb_pfpaste.Enabled = TRUE
  755. dw_pageretr.Title = '供选择物料'
  756. mle_pfgy.DisplayOnly = FALSE
  757. cb_audit.Enabled = FALSE
  758. cb_print.Enabled = FALSE
  759. FOR LS_INT = 1 TO child_column_int
  760. dw_mtrl_prdpfmx.SetTabOrder (LS_INT,LS_INT*10 )
  761. NEXT
  762. dw_mtrl_prdpfmx.SetFocus()
  763. if dw_mtrl_prdpfmx.rowcount()<=0 then
  764. this.triggerevent('insert_childrow')
  765. end if
  766. cb_refresh_tree.Enabled = FALSE
  767. ELSE
  768. cb_save.Enabled = FALSE
  769. cb_edit.Text = '修改&E'
  770. cb_edit.normalpicname = 'open.bmp'
  771. cb_removeall.Enabled = FALSE
  772. cb_removeone.Enabled = FALSE
  773. cb_moveall.Enabled = FALSE
  774. cb_moveone.Enabled = FALSE
  775. cb_pfpaste.Enabled = FALSE
  776. dw_pageretr.Title = '当前的清单产品(物料)'
  777. mle_pfgy.DisplayOnly = TRUE
  778. cb_audit.Enabled = TRUE
  779. cb_print.Enabled = TRUE
  780. FOR LS_INT = 1 TO child_column_int
  781. dw_mtrl_prdpfmx.SetTabOrder (LS_INT, 0)
  782. NEXT
  783. cb_refresh_tree.Enabled = TRUE
  784. END IF
  785. cb_edit.of_init_draw()
  786. cb_edit.of_paint()
  787. cb_edit.triggerevent('textchange')
  788. RETURN 0
  789. end function
  790. private function integer wf_retrieve_childrenmtrl (long arg_mtrlid);//wf_retrieve_childrenmtrl
  791. Int rslt = 1
  792. String ls_pf,l_pf_gy
  793. ls_pf = obj_pfcode
  794. obj_pfcode = ls_pf
  795. dw_mtrl_prdpfmx.Retrieve(arg_mtrlid,ls_pf)
  796. //==============================================================================
  797. datawindowchild childdw
  798. dw_mtrl_prdpfmx.SetTransObject (sqlca)
  799. dw_mtrl_prdpfmx.GetChild("u_prdpf_wrkgrpid",childdw)
  800. childdw.SetTransObject (sqlca)
  801. childdw.InsertRow(0)
  802. //==============================================================================
  803. SELECT u_mtrl_structure_gy.pfgy
  804. INTO :l_pf_gy
  805. FROM u_mtrl_structure_gy
  806. WHERE ( u_mtrl_structure_gy.mtrlid = :obj_mtrlid ) AND
  807. ( u_mtrl_structure_gy.pfcode = :obj_pfcode ) ;
  808. IF sqlca.SQLCode <> 0 AND sqlca.SQLCode <> 100 THEN
  809. MessageBox('提示','查询清单工艺说明内容失败!', Information!, OK! )
  810. END IF
  811. mle_pfgy.Text = l_pf_gy
  812. wf_maketree()
  813. RETURN rslt
  814. end function
  815. public function integer pf_treegrowth (long arg_handl, long arg_mtrlid, decimal arg_num, integer arg_lp);//pf_treegrowth(arg_handl,arg_mtrlid,arg_num,arg_lp)
  816. long rslt=1
  817. decimal Sonscale, SonLoss, SonDECLosS, Sonahead,num
  818. long SonMtrlid,count=0,ls_i
  819. string mtrlcode, mtrlname
  820. string ls_pf=''
  821. s_pfmx ls_s_pfmx[]
  822. //if arg_lp=2 then ls_pf=obj_pfcode //首层可以选择不同配方
  823. ls_pf=obj_pfcode
  824. long handl
  825. deep++
  826. if deep>1000 then //防止死递归
  827. return 0
  828. end if
  829. DECLARE pf_cur CURSOR FOR
  830. SELECT u_PrdPF.Sonscale,
  831. u_PrdPF.SonLoss,
  832. u_PrdPF.SonDECLosS,
  833. u_PrdPF.Sonahead,
  834. u_PrdPF.SonMtrlid,
  835. u_mtrldef.mtrlcode,
  836. u_mtrldef.mtrlname
  837. FROM u_PrdPF,
  838. u_mtrldef
  839. WHERE ( u_PrdPF.SonMtrlid = u_mtrldef.mtrlid ) and
  840. ( ( u_PrdPF.mtrlid = :arg_mtrlid ) AND
  841. ( u_PrdPF.pfcode = :ls_pf ) );
  842. open pf_cur;
  843. count=1
  844. fetch pf_cur into :ls_s_pfmx[count].Sonscale,:ls_s_pfmx[count].SonLoss,&
  845. :ls_s_pfmx[count].SonDECLosS,:ls_s_pfmx[count].Sonahead,&
  846. :ls_s_pfmx[count].SonMtrlid,:ls_s_pfmx[count].mtrlcode,:ls_s_pfmx[count].mtrlname;
  847. do while sqlca.sqlcode=0
  848. count++
  849. fetch pf_cur into :ls_s_pfmx[count].Sonscale,:ls_s_pfmx[count].SonLoss,&
  850. :ls_s_pfmx[count].SonDECLosS,:ls_s_pfmx[count].Sonahead,&
  851. :ls_s_pfmx[count].SonMtrlid,:ls_s_pfmx[count].mtrlcode,:ls_s_pfmx[count].mtrlname;
  852. loop
  853. count=count - 1
  854. close pf_cur;
  855. for ls_i=1 to count
  856. if ls_s_pfmx[ls_i].SonLoss<>1 then
  857. num=arg_num*ls_s_pfmx[ls_i].Sonscale/(1 - ls_s_pfmx[ls_i].SonLoss)+ls_s_pfmx[ls_i].SonDECLosS
  858. else
  859. num=0
  860. end if
  861. handl=tv_1.insertitemsort(arg_handl,ls_s_pfmx[ls_i].mtrlcode+'['+ls_s_pfmx[ls_i].mtrlname+']*'+string(num,'#0.####'),arg_lp) //生成树
  862. pf_treegrowth(handl,ls_s_pfmx[ls_i].SonMtrlid,num,arg_lp+1) //下级生成树
  863. next
  864. return 1
  865. end function
  866. public function integer wf_pfcopy ();//wf_pfcopy
  867. //记录当前复制的产品
  868. //记录复制的明细内容
  869. //界面提示
  870. IF dw_mtrl_prdpfmx.RowCount() = 0 THEN
  871. st_msg.Text = ''
  872. pfcopy_mtrlid = 0
  873. RETURN 0
  874. END IF
  875. Long ls_i = 0
  876. //记录当前复制的产品
  877. pfcopy_mtrlid = obj_mtrlid
  878. pfcopy_pfcode = obj_pfcode
  879. pfcopy_mtrlcode = obj_mtrlcode
  880. pfcopy_source = obj_source
  881. pfcopy_mtrlname = obj_mtrlname
  882. FOR ls_i = 1 TO dw_mtrl_prdpfmx.RowCount()
  883. pfmx[ls_i].sonscale = dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ls_i]
  884. // 注释开始
  885. pfmx[ls_i].sonloss = dw_mtrl_prdpfmx.Object.u_prdpf_sonloss[ls_i]
  886. pfmx[ls_i].sondecloss = dw_mtrl_prdpfmx.Object.u_prdpf_sondecloss[ls_i]
  887. // pfmx[ls_i].sonahead = dw_mtrl_prdpfmx.Object.u_prdpf_sonahead[ls_i]
  888. // 注释结束
  889. pfmx[ls_i].mtrlcode = dw_mtrl_prdpfmx.Object.mtrlcode[ls_i]
  890. pfmx[ls_i].mtrlid = dw_mtrl_prdpfmx.Object.mtrlid[ls_i]
  891. pfmx[ls_i].mtrlname = dw_mtrl_prdpfmx.Object.mtrlname[ls_i]
  892. pfmx[ls_i].unit = dw_mtrl_prdpfmx.Object.unit[ls_i]
  893. pfmx[ls_i].planprice = dw_mtrl_prdpfmx.Object.u_mtrldef_planprice[ls_i]
  894. // 注释开始
  895. pfmx[ls_i].promode= dw_mtrl_prdpfmx.Object.u_prdpf_promode[ls_i]
  896. pfmx[ls_i].pfgroup = dw_mtrl_prdpfmx.Object.u_prdpf_pfgroup[ls_i]
  897. pfmx[ls_i].pfgroupmode = dw_mtrl_prdpfmx.Object.u_prdpf_pfgroupmode[ls_i]
  898. pfmx[ls_i].pfgroupqty = dw_mtrl_prdpfmx.Object.u_prdpf_pfgroupqty[ls_i]
  899. pfmx[ls_i].pfklmode = dw_mtrl_prdpfmx.Object.u_prdpf_pfklmode[ls_i]
  900. // 注释结束 pfklmode
  901. pfmx[ls_i].dscrp = dw_mtrl_prdpfmx.Object.u_prdpf_dscrp[ls_i]
  902. // 注释开始
  903. // pfmx[ls_i].updownrate = dw_mtrl_prdpfmx.Object.u_prdpf_updownrate[ls_i]
  904. // pfmx[ls_i].ifover = dw_mtrl_prdpfmx.Object.u_prdpf_ifover[ls_i]
  905. // pfmx[ls_i].ifreputate = dw_mtrl_prdpfmx.Object.u_prdpf_ifreputate[ls_i]
  906. pfmx[ls_i].wrkgrpid = dw_mtrl_prdpfmx.Object.u_prdpf_wrkgrpid[ls_i]
  907. // 注释结束
  908. pfmx[ls_i].status = dw_mtrl_prdpfmx.Object.u_prdpf_status[ls_i]
  909. p_pfmx = ls_i
  910. NEXT
  911. st_msg.Text = '已复制 产品: '+pfcopy_mtrlcode+'/'+pfcopy_mtrlname+' 清单: '+pfcopy_pfcode
  912. RETURN 0
  913. end function
  914. public function integer wf_pfpaste ();//wf_pfpaste
  915. //没有复制则返回
  916. //循环删除原有的明细
  917. //循环写入新明细
  918. Long ls_i = 0,ls_row
  919. IF NOT dw_edit_mode THEN RETURN 0
  920. IF pfcopy_mtrlid = 0 THEN RETURN 0
  921. //DO WHILE dw_mtrl_prdpfmx.RowCount() > 0
  922. // dw_mtrl_prdpfmx.DeleteRow(0)
  923. //LOOP
  924. FOR ls_i = 1 TO p_pfmx
  925. ls_row = dw_mtrl_prdpfmx.InsertRow(0)
  926. dw_mtrl_prdpfmx.Object.u_prdpf_printid[ls_row] = ls_row
  927. dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ls_row] = pfmx[ls_i].sonscale
  928. // 注释开始
  929. // dw_mtrl_prdpfmx.Object.u_prdpf_sonloss[ls_row] = pfmx[ls_i].sonloss
  930. // dw_mtrl_prdpfmx.Object.u_prdpf_sondecloss[ls_row] = pfmx[ls_i].sondecloss
  931. // dw_mtrl_prdpfmx.Object.u_prdpf_sonahead[ls_row] = pfmx[ls_i].sonahead
  932. // 注释结束
  933. dw_mtrl_prdpfmx.Object.mtrlcode[ls_row] = pfmx[ls_i].mtrlcode
  934. dw_mtrl_prdpfmx.Object.mtrlid[ls_row] = pfmx[ls_i].mtrlid
  935. dw_mtrl_prdpfmx.Object.mtrlname[ls_row] = pfmx[ls_i].mtrlname
  936. dw_mtrl_prdpfmx.Object.unit[ls_row] = pfmx[ls_i].unit
  937. dw_mtrl_prdpfmx.Object.u_mtrldef_planprice[ls_row] = pfmx[ls_i].planprice
  938. // 注释开始
  939. dw_mtrl_prdpfmx.Object.u_prdpf_promode[ls_row] = pfmx[ls_i].promode
  940. dw_mtrl_prdpfmx.Object.u_prdpf_pfgroup[ls_row] = pfmx[ls_i].pfgroup
  941. dw_mtrl_prdpfmx.Object.u_prdpf_pfgroupmode[ls_row] = pfmx[ls_i].pfgroupmode
  942. dw_mtrl_prdpfmx.Object.u_prdpf_pfgroupqty[ls_row] = pfmx[ls_i].pfgroupqty
  943. dw_mtrl_prdpfmx.Object.u_prdpf_pfklmode[ls_row] = pfmx[ls_i].pfklmode
  944. // 注释结束
  945. dw_mtrl_prdpfmx.Object.u_prdpf_dscrp[ls_row] = pfmx[ls_i].dscrp
  946. // 注释开始
  947. // dw_mtrl_prdpfmx.Object.u_prdpf_updownrate[ls_row] = pfmx[ls_i].updownrate
  948. // dw_mtrl_prdpfmx.Object.u_prdpf_ifover[ls_row] = pfmx[ls_i].ifover
  949. // dw_mtrl_prdpfmx.Object.u_prdpf_ifreputate[ls_row] = pfmx[ls_i].ifreputate
  950. dw_mtrl_prdpfmx.Object.u_prdpf_wrkgrpid[ls_row] = pfmx[ls_i].wrkgrpid
  951. // // 注释结束
  952. dw_mtrl_prdpfmx.Object.u_prdpf_status[ls_row] = pfmx[ls_i].status
  953. NEXT
  954. RETURN 0
  955. end function
  956. public subroutine wf_flagstatus_rf (integer arg_sauditflag);IF arg_sauditflag = 1 THEN
  957. cb_audit.Text = '撤审'
  958. cb_audit.normalpicname = 'caudit.bmp'
  959. ELSE
  960. cb_audit.Text = '审核'
  961. cb_audit.normalpicname = 'audit.bmp'
  962. END IF
  963. cb_audit.of_init_draw()
  964. cb_audit.of_paint()
  965. cb_audit.TriggerEvent('ue_textchange')
  966. end subroutine
  967. public function integer wf_maketree ();//wf_maketree()
  968. long hand
  969. deep=1
  970. long tvi_hdl = 0
  971. DO UNTIL tv_1.FindItem(RootTreeItem!, 0) = -1
  972. tv_1.DeleteItem(tvi_hdl)
  973. LOOP
  974. hand=tv_1.insertitemlast(0,obj_mtrlcode+'['+obj_mtrlname+'] '+obj_pfcode,1)
  975. pf_treegrowth(hand,obj_mtrlid,1,2)
  976. tv_1.expanditem(hand)
  977. return 0
  978. end function
  979. public function integer wf_maketree_sub ();//wf_maketree_sub()
  980. long hand
  981. long ll_tvi,ll_tvi_child
  982. ll_tvi = tv_1.FindItem(CurrentTreeItem!, 0)
  983. ll_tvi_child=tv_1.FindItem(ChildTreeItem!, ll_tvi)
  984. DO UNTIL ll_tvi_child = -1
  985. tv_1.DeleteItem(ll_tvi_child)
  986. ll_tvi_child=tv_1.FindItem(ChildTreeItem!, ll_tvi)
  987. LOOP
  988. pf_treegrowth(ll_tvi,obj_mtrlid,1,2)
  989. tv_1.expanditem(ll_tvi)
  990. return 0
  991. end function
  992. public function integer wf_refresh_curuc (long arg_mtrlid);
  993. Int rslt = 1
  994. IF arg_mtrlid <= 0 OR IsNull(arg_mtrlid) THEN
  995. rslt = 0
  996. GOTO ext
  997. END IF
  998. Long uc_row
  999. uc_row = dw_pageretr.GetRow()
  1000. IF uc_row <= 0 THEN
  1001. rslt = 0
  1002. GOTO ext
  1003. END IF
  1004. Int sauditflag
  1005. String saudit_emp
  1006. DateTime saudit_date
  1007. SELECT sauditflag,
  1008. saudit_emp,
  1009. saudit_date
  1010. INTO :sauditflag,
  1011. :saudit_emp,
  1012. :saudit_date
  1013. FROM u_mtrldef
  1014. Where mtrlid = :arg_mtrlid;
  1015. IF sqlca.SQLCode <> 0 THEN
  1016. MessageBox('提示',"查询操作失败(错误订单唯一码)", Information!, OK! )
  1017. rslt = 0
  1018. GOTO ext
  1019. END IF
  1020. dw_pageretr.Object.sauditflag[uc_row] = sauditflag
  1021. dw_pageretr.Object.saudit_emp[uc_row] = saudit_emp
  1022. dw_pageretr.Object.saudit_date[uc_row] = saudit_date
  1023. ext:
  1024. RETURN rslt
  1025. end function
  1026. 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);Long LS_ROW,ll_mtrlid_obj,i
  1027. LS_ROW = dw_pageretr.GetRow()
  1028. IF LS_ROW <= 0 THEN
  1029. arg_msg = '没有目标单据!'
  1030. RETURN 0
  1031. END IF
  1032. //修改点:获取 指定retriev参数
  1033. //ll_id = dw_1.Object.#1[LS_ROW]
  1034. //ll_scid = dw_1.Object.scid[LS_ROW]
  1035. ll_mtrlid_obj = obj_mtrlid
  1036. //查询所选模版是否含有图片信息
  1037. Long ll_ifpic
  1038. Long ll_classid
  1039. SELECT ifpic
  1040. INTO :ll_ifpic
  1041. FROM U_XLS_Templates
  1042. Where id = :ll_xls_Templatesid;
  1043. IF sqlca.SQLCode <> 0 THEN
  1044. ll_ifpic = 0
  1045. END IF
  1046. Long ll_i,ll_j
  1047. Long ll_mtrlid
  1048. Long ll_fileid
  1049. Blob ls_filedata
  1050. SetNull(ls_filedata)
  1051. String Pathname,ls_filename,ls_filetype
  1052. String errmsg
  1053. uo_fj_mng_billtype ls_uo_fjbt
  1054. ls_uo_fjbt = CREATE uo_fj_mng_billtype
  1055. ////可选设置/ //
  1056. arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码
  1057. IF sys_option_xls_ifuse_passwd = 1 THEN arg_obj_st.uo_const.pwd = Trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码
  1058. Boolean xls_locked
  1059. xls_locked = Not (sys_option_xls_lock = 1)
  1060. // Excel 的可选设置
  1061. IF arg_obj_st.of_setoption(arg_ationid, xls_locked,TRUE,arg_msg) <> 1 THEN
  1062. RETURN 0
  1063. END IF
  1064. s_xls_pic_list s_pic //结构数组-用于保存图片路径
  1065. FOR i = 1 TO arg_str_billlist.count
  1066. ////可选操作/ //
  1067. arg_str_billlist.bill[i].ds_data = CREATE datastore //
  1068. arg_str_billlist.bill[i].ds_data.DataObject = arg_str_billlist.bill[i].datawindow //
  1069. arg_str_billlist.bill[i].ds_data.SetTransObject(sqlca)
  1070. arg_str_billlist.bill[i].ds_data.Retrieve(ll_mtrlid_obj )
  1071. IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件
  1072. SELECT classid
  1073. INTO :ll_classid
  1074. FROM u_billpic_fileclass
  1075. Where (billtype = 202);
  1076. IF sqlca.SQLCode <> 0 THEN
  1077. ll_classid = 0
  1078. END IF
  1079. IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息.
  1080. If arg_str_billlist.bill[i].ds_data.RowCount() > 0 THEN //设置图片路径 ///(arg_str_billlist.bill[i].datawindow = 'dw_xls_prdstruct_mx_tree' or arg_str_billlist.bill[i].datawindow = 'dw_xls_prdstruct_mx_tree2' ) AND
  1081. FOR ll_j = 1 TO arg_str_billlist.bill[i].ds_data.RowCount()
  1082. if arg_str_billlist.bill[i].datawindow = 'dw_xls_prdstruct_mx_tree' then
  1083. ll_mtrlid = arg_str_billlist.bill[i].ds_data.Object.u_prdpf_sonmtrlid[ll_j]
  1084. else
  1085. ll_mtrlid = arg_str_billlist.bill[i].ds_data.Object.u_mtrldef_mtrlid[ll_j]
  1086. end if
  1087. //取该附件类型中的第一个附件.
  1088. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype
  1089. FROM u_file
  1090. WHERE relid = :ll_mtrlid
  1091. AND classid = :ll_classid
  1092. AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf'
  1093. OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg')
  1094. USING sys_fileDB_sqlca;
  1095. IF sys_fileDB_sqlca.SQLCode <> 0 THEN
  1096. ll_fileid = 0
  1097. END IF
  1098. IF ll_fileid > 0 THEN
  1099. Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype
  1100. IF Trim(Pathname) <> '' THEN
  1101. IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN
  1102. RETURN 0
  1103. END IF
  1104. IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN
  1105. RETURN 0
  1106. ELSE
  1107. s_pic.path[ll_j] = Pathname
  1108. //记录临时文件位置,本窗口退出后删除
  1109. wf_addlog_tempfilepathname(Pathname)
  1110. END IF
  1111. ELSE
  1112. s_pic.path[ll_j] = ''
  1113. END IF
  1114. ELSE
  1115. s_pic.path[ll_j] = ''
  1116. END IF
  1117. NEXT
  1118. END IF
  1119. END IF
  1120. //
  1121. END IF
  1122. IF ll_ifpic = 1 AND ll_classid > 0 THEN
  1123. If arg_str_billlist.bill[i].ds_data.RowCount() > 0 THEN //设置图片路径
  1124. FOR ll_j = 1 TO arg_str_billlist.bill[i].ds_data.RowCount()
  1125. arg_str_billlist.bill[i].ds_data.Object.pic[ll_j] = s_pic.path[ll_j]
  1126. NEXT
  1127. END IF
  1128. END IF
  1129. NEXT
  1130. DESTROY ls_uo_fjbt
  1131. RETURN 1
  1132. end function
  1133. public subroutine wf_addlog_tempfilepathname (string arg_filepathname);//wf_addlog_tempfilepathname
  1134. if isnull(arg_filepathname) or len(trim(arg_filepathname))<3 then return
  1135. ins_openfile_log_p++
  1136. ins_openfile_log[ins_openfile_log_p]=arg_filepathname
  1137. // string ins_openfile_log[] //用于退出后删除
  1138. // long ins_openfile_log_p=0 //用于退出后删除
  1139. //
  1140. end subroutine
  1141. public subroutine wf_del_tempfilepathname ();//wf_del_tempfilepathname
  1142. // 删除临时文件
  1143. Long li
  1144. FOR li = 1 TO ins_openfile_log_p
  1145. IF Len(Trim(ins_openfile_log[li])) <= 0 THEN
  1146. ELSE
  1147. FileDelete(ins_openfile_log[li])
  1148. END IF
  1149. NEXT
  1150. end subroutine
  1151. public subroutine wf_add_mx ();Long i, ll_row
  1152. FOR i = 1 To s_tran.dw_share.RowCount()
  1153. ll_row = dw_mtrl_prdpfmx.InsertRow(0)
  1154. dw_mtrl_prdpfmx.Object.mtrlid[ll_row] = s_tran.dw_share.Object.u_quoterqmtrl_mtrlid[i]
  1155. dw_mtrl_prdpfmx.Object.mtrlcode[ll_row] = s_tran.dw_share.Object.u_mtrldef_mtrlcode[i]
  1156. dw_mtrl_prdpfmx.Object.u_mtrldef_mtrlmode[ll_row] = s_tran.dw_share.Object.u_mtrldef_mtrlmode[i]
  1157. dw_mtrl_prdpfmx.Object.mtrlname[ll_row] = s_tran.dw_share.Object.u_mtrldef_mtrlname[i]
  1158. dw_mtrl_prdpfmx.Object.unit[ll_row] = s_tran.dw_share.Object.u_mtrldef_unit[i]
  1159. // dw_mtrl_prdpfmx.Object.u_prdpf_status[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_workqty[i]
  1160. // dw_mtrl_prdpfmx.Object.u_prdpf_woodcode[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_workqty[i]
  1161. // dw_mtrl_prdpfmx.Object.u_prdpf_pcode[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_workqty[i]
  1162. dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ll_row] = s_tran.dw_share.Object.u_quoterqmtrl_rqqty[i]
  1163. dw_mtrl_prdpfmx.Object.u_prdpf_sonloss[ll_row] = 0
  1164. dw_mtrl_prdpfmx.Object.u_prdpf_sondecloss[ll_row] = 0
  1165. dw_mtrl_prdpfmx.Object.u_prdpf_dscrp[ll_row] = ''
  1166. dw_mtrl_prdpfmx.Object.u_prdpf_printid[ll_row] = ll_row
  1167. dw_mtrl_prdpfmx.Object.u_prdpf_pfgroup[ll_row] = ''
  1168. dw_mtrl_prdpfmx.Object.u_prdpf_wrkgrpid[ll_row] = 0
  1169. NEXT
  1170. end subroutine
  1171. on w_mtrl_structure.create
  1172. int iCurrent
  1173. call super::create
  1174. this.cb_moveone=create cb_moveone
  1175. this.cb_removeone=create cb_removeone
  1176. this.cb_moveall=create cb_moveall
  1177. this.cb_removeall=create cb_removeall
  1178. this.st_codetitle=create st_codetitle
  1179. this.st_codetitleb=create st_codetitleb
  1180. this.gb_4=create gb_4
  1181. this.mle_pfgy=create mle_pfgy
  1182. this.cb_print=create cb_print
  1183. this.cb_refresh_tree=create cb_refresh_tree
  1184. this.cb_save=create cb_save
  1185. this.cb_edit=create cb_edit
  1186. this.cb_audit=create cb_audit
  1187. this.cb_pfcopy=create cb_pfcopy
  1188. this.cb_pfpaste=create cb_pfpaste
  1189. this.ddlb_storageid=create ddlb_storageid
  1190. this.cb_help=create cb_help
  1191. this.st_msg=create st_msg
  1192. this.tab_1=create tab_1
  1193. this.cb_other=create cb_other
  1194. this.st_2=create st_2
  1195. this.st_3=create st_3
  1196. this.cb_xls=create cb_xls
  1197. this.ddlb_mtrlorigin=create ddlb_mtrlorigin
  1198. this.cbx_packqty_cmpl=create cbx_packqty_cmpl
  1199. this.ln_bar=create ln_bar
  1200. this.ln_bar2=create ln_bar2
  1201. this.r_bar=create r_bar
  1202. this.ln_1=create ln_1
  1203. this.ln_2=create ln_2
  1204. this.ln_5=create ln_5
  1205. this.ln_6=create ln_6
  1206. this.cbx_auto_printid=create cbx_auto_printid
  1207. this.cbx_auto_zc=create cbx_auto_zc
  1208. this.cb_1=create cb_1
  1209. iCurrent=UpperBound(this.Control)
  1210. this.Control[iCurrent+1]=this.cb_moveone
  1211. this.Control[iCurrent+2]=this.cb_removeone
  1212. this.Control[iCurrent+3]=this.cb_moveall
  1213. this.Control[iCurrent+4]=this.cb_removeall
  1214. this.Control[iCurrent+5]=this.st_codetitle
  1215. this.Control[iCurrent+6]=this.st_codetitleb
  1216. this.Control[iCurrent+7]=this.gb_4
  1217. this.Control[iCurrent+8]=this.mle_pfgy
  1218. this.Control[iCurrent+9]=this.cb_print
  1219. this.Control[iCurrent+10]=this.cb_refresh_tree
  1220. this.Control[iCurrent+11]=this.cb_save
  1221. this.Control[iCurrent+12]=this.cb_edit
  1222. this.Control[iCurrent+13]=this.cb_audit
  1223. this.Control[iCurrent+14]=this.cb_pfcopy
  1224. this.Control[iCurrent+15]=this.cb_pfpaste
  1225. this.Control[iCurrent+16]=this.ddlb_storageid
  1226. this.Control[iCurrent+17]=this.cb_help
  1227. this.Control[iCurrent+18]=this.st_msg
  1228. this.Control[iCurrent+19]=this.tab_1
  1229. this.Control[iCurrent+20]=this.cb_other
  1230. this.Control[iCurrent+21]=this.st_2
  1231. this.Control[iCurrent+22]=this.st_3
  1232. this.Control[iCurrent+23]=this.cb_xls
  1233. this.Control[iCurrent+24]=this.ddlb_mtrlorigin
  1234. this.Control[iCurrent+25]=this.cbx_packqty_cmpl
  1235. this.Control[iCurrent+26]=this.ln_bar
  1236. this.Control[iCurrent+27]=this.ln_bar2
  1237. this.Control[iCurrent+28]=this.r_bar
  1238. this.Control[iCurrent+29]=this.ln_1
  1239. this.Control[iCurrent+30]=this.ln_2
  1240. this.Control[iCurrent+31]=this.ln_5
  1241. this.Control[iCurrent+32]=this.ln_6
  1242. this.Control[iCurrent+33]=this.cbx_auto_printid
  1243. this.Control[iCurrent+34]=this.cbx_auto_zc
  1244. this.Control[iCurrent+35]=this.cb_1
  1245. end on
  1246. on w_mtrl_structure.destroy
  1247. call super::destroy
  1248. destroy(this.cb_moveone)
  1249. destroy(this.cb_removeone)
  1250. destroy(this.cb_moveall)
  1251. destroy(this.cb_removeall)
  1252. destroy(this.st_codetitle)
  1253. destroy(this.st_codetitleb)
  1254. destroy(this.gb_4)
  1255. destroy(this.mle_pfgy)
  1256. destroy(this.cb_print)
  1257. destroy(this.cb_refresh_tree)
  1258. destroy(this.cb_save)
  1259. destroy(this.cb_edit)
  1260. destroy(this.cb_audit)
  1261. destroy(this.cb_pfcopy)
  1262. destroy(this.cb_pfpaste)
  1263. destroy(this.ddlb_storageid)
  1264. destroy(this.cb_help)
  1265. destroy(this.st_msg)
  1266. destroy(this.tab_1)
  1267. destroy(this.cb_other)
  1268. destroy(this.st_2)
  1269. destroy(this.st_3)
  1270. destroy(this.cb_xls)
  1271. destroy(this.ddlb_mtrlorigin)
  1272. destroy(this.cbx_packqty_cmpl)
  1273. destroy(this.ln_bar)
  1274. destroy(this.ln_bar2)
  1275. destroy(this.r_bar)
  1276. destroy(this.ln_1)
  1277. destroy(this.ln_2)
  1278. destroy(this.ln_5)
  1279. destroy(this.ln_6)
  1280. destroy(this.cbx_auto_printid)
  1281. destroy(this.cbx_auto_zc)
  1282. destroy(this.cb_1)
  1283. end on
  1284. event open;call super::open;IF NOT f_power_ind(1439) THEN
  1285. dw_mtrl_prdpfmx.Modify('destroy u_prdpf_sptprice_t ~n u_prdpf_sptprice.visible=0 ~n ')
  1286. END IF
  1287. s_hide_col s_col
  1288. s_col.col_1 = 'planprice'
  1289. f_hide_col(1451,dw_pageretr,s_col)
  1290. s_hide_col s_col2
  1291. s_col2.col_1 = 'amt'
  1292. s_col2.col_2 = 'u_mtrldef_planprice'
  1293. f_hide_col(1451,dw_mtrl_prdpfmx,s_col2)
  1294. s_hide_col s_col3
  1295. s_col3.col_1 = 'u_prdpf_sptprice'
  1296. s_col3.col_2 = 'buyamt'
  1297. f_hide_col(121,dw_mtrl_prdpfmx,s_col3)
  1298. s_hide_col s_col_mtrlsectype
  1299. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  1300. f_hide_col(1308,dw_pageretr,s_col_mtrlsectype)
  1301. s_hide_col s_col_zxmtrlmode
  1302. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  1303. f_hide_col(1309,dw_pageretr,s_col_zxmtrlmode)
  1304. wf_modefacechg()
  1305. IF s_tran.b_long > 0 THEN
  1306. IF dw_pageretr.GetRow() > 0 THEN
  1307. IF dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()] = s_tran.b_long THEN
  1308. //修改
  1309. cb_edit.TriggerEvent(Clicked!)
  1310. //清空明细
  1311. dw_mtrl_prdpfmx.Reset()
  1312. //插入明细
  1313. wf_add_mx()
  1314. END IF
  1315. END IF
  1316. END IF
  1317. end event
  1318. event user_key;call super::user_key;IF KeyDown(KeyF1!) THEN
  1319. if cb_moveone.enabled then cb_moveone.TRIGGEREVENT(CLICKED!)
  1320. ELSEIF KeyDown(KeyF3!) then
  1321. if cb_moveall.enabled then cb_moveall.TRIGGEREVENT(CLICKED!)
  1322. end if
  1323. end event
  1324. event key;this.TRIGGEREVENT('user_key')
  1325. end event
  1326. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  1327. if trim(sle_usual_query.text)<>'' then
  1328. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  1329. obj_expr=obj_expr+'( mtrlcode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  1330. obj_expr = obj_expr+' or (mtrlname LIKE "%'+Trim(sle_usual_query.Text)+'%")'
  1331. ELSE
  1332. obj_expr=obj_expr+'( mtrlcode LIKE "'+trim(sle_usual_query.text)+'" )'
  1333. obj_expr = obj_expr+' or (mtrlname LIKE "'+Trim(sle_usual_query.Text)+'")'
  1334. END IF
  1335. end if
  1336. dw_pageretr.setfilter(obj_expr)
  1337. dw_pageretr.SetRedraw(False)
  1338. dw_pageretr.filter()
  1339. dw_pageretr.SetRedraw(TRUE)
  1340. end event
  1341. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  1342. ls_newselect=lower(ori_oldselect)
  1343. if trim(sle_usual_query.text)<>'' then
  1344. if pos(trim(sle_usual_query.text),'%')=0 then
  1345. ls_querystrpart="mtrlcode like '%"+trim(sle_usual_query.text)+"%'"
  1346. else
  1347. ls_querystrpart="mtrlcode like '"+trim(sle_usual_query.text)+"'"
  1348. end if
  1349. if Pos(ls_newselect," where ") <> 0 then
  1350. ls_newselect=ls_newselect+" AND ( "+ls_querystrpart+')'
  1351. else
  1352. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  1353. end if
  1354. end if
  1355. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  1356. this.TRIGGEREVENT('RETRIEVE_pageretr')
  1357. end event
  1358. event ue_before_open;tv_1 = tab_1.tabpage_2.tv_2
  1359. dw_mtrl_prdpfmx = tab_1.tabpage_1.dw_mtrl_prdpfmx
  1360. dw_mtrl_prdpfmx.settransobject(sqlca)
  1361. if_ue_retr=true
  1362. if_ue_filter=true
  1363. if_ue_sort=true
  1364. end event
  1365. event retrieve_pageretr;Boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  1366. Boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  1367. cb_nextpage_enabled = cb_nextpage.Enabled
  1368. cb_retrieveall_enabled = cb_retrieveall.Enabled
  1369. cb_func_enabled = cb_func.Enabled
  1370. cb_nextpage.Enabled = FALSE
  1371. cb_retrieveall.Enabled = FALSE
  1372. cb_func.Enabled = FALSE
  1373. SetPointer(HourGlass!)
  1374. dw_pageretr.Retrieve(cur_mtrlorigin,cur_storageid,cur_isuse)
  1375. IF dw_pageretr.RowCount() > 0 AND dw_pageretr.GetRow() = 0 THEN dw_pageretr.SetRow(1)
  1376. SetPointer(Arrow!)
  1377. cb_nextpage.Enabled = cb_nextpage_enabled
  1378. cb_retrieveall.Enabled = cb_retrieveall_enabled
  1379. cb_func.Enabled = cb_func_enabled
  1380. IF NOT dw_edit_mode AND dw_pageretr.GetRow() > 0 THEN
  1381. wf_changemtrl(dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()])
  1382. END IF
  1383. end event
  1384. event resize;call super::resize;ln_bar.endx = this.width
  1385. ln_bar2.endx = this.width
  1386. ln_1.endx = this.width
  1387. ln_2.endx = this.width
  1388. r_bar.width = this.width
  1389. long w_width,w_height
  1390. w_width = 3600
  1391. w_height = 2300
  1392. if newwidth < w_width then this.width = w_width
  1393. if newheight < w_height then this.height = w_height
  1394. dw_pageretr.width=this.width - (w_width - 2650)
  1395. gb_4.x = dw_pageretr.x + dw_pageretr.width + 20
  1396. mle_pfgy.x = gb_4.x + 20
  1397. st_codetitle.width=this.width - (w_width - 3544)
  1398. st_codetitleb.width=this.width - (w_width - 3552)
  1399. tab_1.width=this.width - (w_width - 3552)
  1400. tab_1.height=this.height - (w_height - 650)
  1401. tv_1.width=this.width - (w_width - 3552)
  1402. tv_1.height = tab_1.height - 100
  1403. dw_mtrl_prdpfmx.width=this.width - (w_width - 3552)
  1404. dw_mtrl_prdpfmx.height = tab_1.height - 100
  1405. cbx_auto_printid.y = tab_1.y + 10
  1406. cbx_auto_printid.x = tab_1.x + 700
  1407. cbx_auto_zc.y = tab_1.y + 10
  1408. cbx_auto_zc.x = tab_1.x + cbx_auto_printid.width +800
  1409. end event
  1410. event close;call super::close;wf_del_tempfilepathname()
  1411. end event
  1412. type cb_func from w_publ_pageretr`cb_func within w_mtrl_structure
  1413. integer x = 151
  1414. integer y = 0
  1415. integer width = 151
  1416. integer height = 172
  1417. integer taborder = 290
  1418. end type
  1419. event cb_func::clicked;call super::clicked;PARENT.TriggerEvent('ue_help')
  1420. end event
  1421. type cb_exit from w_publ_pageretr`cb_exit within w_mtrl_structure
  1422. integer x = 2057
  1423. integer y = 0
  1424. integer width = 151
  1425. integer height = 172
  1426. integer picsize = 16
  1427. toolbaralignment pic_align = alignattop!
  1428. boolean border = false
  1429. end type
  1430. type sle_usual_query from w_publ_pageretr`sle_usual_query within w_mtrl_structure
  1431. integer x = 1664
  1432. integer y = 192
  1433. integer width = 494
  1434. integer height = 96
  1435. boolean bringtotop = true
  1436. long backcolor = 16777215
  1437. end type
  1438. type cb_retrieveall from w_publ_pageretr`cb_retrieveall within w_mtrl_structure
  1439. integer x = 2619
  1440. integer height = 172
  1441. integer taborder = 240
  1442. string normalpicname = "p1.ico"
  1443. integer picsize = 16
  1444. toolbaralignment pic_align = alignattop!
  1445. boolean border = false
  1446. end type
  1447. type em_pagerowno from w_publ_pageretr`em_pagerowno within w_mtrl_structure
  1448. integer x = 2290
  1449. integer y = 44
  1450. integer width = 320
  1451. integer taborder = 130
  1452. boolean bringtotop = true
  1453. long backcolor = 16777215
  1454. end type
  1455. type dw_pageretr from w_publ_pageretr`dw_pageretr within w_mtrl_structure
  1456. integer y = 316
  1457. integer width = 2665
  1458. integer height = 976
  1459. integer taborder = 100
  1460. string dragicon = "WinLogo!"
  1461. boolean bringtotop = true
  1462. string title = "物料列表"
  1463. string dataobject = "dw_mtrl_index_structure"
  1464. boolean rbutton_filter_use = true
  1465. boolean rbutton_setposition_use = true
  1466. boolean titleclick_sort_use = true
  1467. end type
  1468. event dw_pageretr::doubleclicked;call super::doubleclicked;if dw_edit_mode and row>0 then cb_moveone.TRIGGEREVENT(CLICKED!)
  1469. end event
  1470. event dw_pageretr::rowfocuschanged;IF currentrow > 0 THEN
  1471. THIS.SelectRow(0,FALSE)
  1472. THIS.SelectRow(currentrow,TRUE)
  1473. END IF
  1474. IF NOT dw_edit_mode AND dw_pageretr.GetRow() > 0 THEN
  1475. wf_changemtrl(dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()])
  1476. page_mtrlid = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()]
  1477. END IF
  1478. PARENT.TriggerEvent('ue_retrieve_info')
  1479. end event
  1480. event dw_pageretr::rowfocuschanging;//IF dw_edit_mode THEN RETURN 1
  1481. end event
  1482. type st_1 from w_publ_pageretr`st_1 within w_mtrl_structure
  1483. integer x = 1463
  1484. integer y = 220
  1485. integer width = 192
  1486. integer height = 60
  1487. string text = "编码含"
  1488. alignment alignment = right!
  1489. end type
  1490. type cb_nextpage from w_publ_pageretr`cb_nextpage within w_mtrl_structure
  1491. integer x = 2784
  1492. integer width = 64
  1493. integer height = 172
  1494. integer taborder = 280
  1495. toolbaralignment pic_align = alignattop!
  1496. boolean border = false
  1497. end type
  1498. type cb_moveone from commandbutton within w_mtrl_structure
  1499. integer x = 27
  1500. integer y = 1300
  1501. integer width = 151
  1502. integer height = 84
  1503. integer taborder = 170
  1504. boolean bringtotop = true
  1505. integer textsize = -9
  1506. integer weight = 400
  1507. fontcharset fontcharset = gb2312charset!
  1508. fontpitch fontpitch = variable!
  1509. string facename = "宋体"
  1510. string text = "选择"
  1511. end type
  1512. event clicked;long find_row=0,new_row,sor_row
  1513. sor_row=dw_pageretr.getrow()
  1514. if sor_row<=0 then
  1515. messagebox('提示','请选择要加入的目标物料!', Information!, OK! )
  1516. return 0
  1517. end if
  1518. //find_row=dw_mtrl_prdpfmx.find('mtrlid='+string(dw_pageretr.object.mtrlid[sor_row]),0,dw_pageretr.rowcount())
  1519. //if find_row>0 then
  1520. // Beep(1)
  1521. // return 0
  1522. //end if
  1523. wf_moveone(sor_row)
  1524. end event
  1525. type cb_removeone from commandbutton within w_mtrl_structure
  1526. integer x = 178
  1527. integer y = 1300
  1528. integer width = 151
  1529. integer height = 84
  1530. integer taborder = 180
  1531. boolean bringtotop = true
  1532. integer textsize = -9
  1533. integer weight = 400
  1534. fontcharset fontcharset = gb2312charset!
  1535. fontpitch fontpitch = variable!
  1536. string facename = "宋体"
  1537. string text = "删除"
  1538. end type
  1539. event clicked;parent.triggerevent('ue_deletemx')
  1540. end event
  1541. type cb_moveall from commandbutton within w_mtrl_structure
  1542. integer x = 352
  1543. integer y = 1300
  1544. integer width = 151
  1545. integer height = 84
  1546. integer taborder = 190
  1547. boolean bringtotop = true
  1548. integer textsize = -9
  1549. integer weight = 400
  1550. fontcharset fontcharset = gb2312charset!
  1551. fontpitch fontpitch = variable!
  1552. string facename = "宋体"
  1553. string text = "全选"
  1554. end type
  1555. event clicked;long i
  1556. for i=1 to dw_pageretr.rowcount()
  1557. wf_moveone(i)
  1558. next
  1559. end event
  1560. type cb_removeall from commandbutton within w_mtrl_structure
  1561. integer x = 498
  1562. integer y = 1300
  1563. integer width = 151
  1564. integer height = 84
  1565. integer taborder = 200
  1566. boolean bringtotop = true
  1567. integer textsize = -9
  1568. integer weight = 400
  1569. fontcharset fontcharset = gb2312charset!
  1570. fontpitch fontpitch = variable!
  1571. string facename = "宋体"
  1572. string text = "全删"
  1573. end type
  1574. event clicked;
  1575. DO WHILE dw_mtrl_prdpfmx.rowcount()>0
  1576. wf_removeone(dw_mtrl_prdpfmx.rowcount())
  1577. LOOP
  1578. end event
  1579. type st_codetitle from statictext within w_mtrl_structure
  1580. integer x = 5
  1581. integer y = 1412
  1582. integer width = 3543
  1583. integer height = 92
  1584. boolean bringtotop = true
  1585. integer textsize = -12
  1586. integer weight = 700
  1587. fontcharset fontcharset = gb2312charset!
  1588. fontpitch fontpitch = variable!
  1589. string facename = "宋体"
  1590. long textcolor = 33554432
  1591. long backcolor = 79216776
  1592. boolean enabled = false
  1593. string text = "**************的组装构成"
  1594. boolean border = true
  1595. borderstyle borderstyle = styleraised!
  1596. boolean focusrectangle = false
  1597. end type
  1598. type st_codetitleb from statictext within w_mtrl_structure
  1599. integer y = 1404
  1600. integer width = 3552
  1601. integer height = 108
  1602. integer textsize = -12
  1603. integer weight = 700
  1604. fontcharset fontcharset = gb2312charset!
  1605. fontpitch fontpitch = variable!
  1606. string facename = "宋体"
  1607. long textcolor = 33554432
  1608. long backcolor = 79216776
  1609. boolean enabled = false
  1610. boolean border = true
  1611. boolean focusrectangle = false
  1612. end type
  1613. type gb_4 from groupbox within w_mtrl_structure
  1614. integer x = 2683
  1615. integer y = 316
  1616. integer width = 846
  1617. integer height = 1072
  1618. integer taborder = 110
  1619. integer textsize = -9
  1620. integer weight = 400
  1621. fontcharset fontcharset = gb2312charset!
  1622. fontpitch fontpitch = variable!
  1623. string facename = "宋体"
  1624. long textcolor = 16711680
  1625. long backcolor = 134217739
  1626. string text = "清单说明[保存]"
  1627. end type
  1628. type mle_pfgy from multilineedit within w_mtrl_structure
  1629. integer x = 2697
  1630. integer y = 384
  1631. integer width = 818
  1632. integer height = 988
  1633. integer taborder = 40
  1634. boolean bringtotop = true
  1635. integer textsize = -9
  1636. integer weight = 400
  1637. fontcharset fontcharset = gb2312charset!
  1638. fontpitch fontpitch = variable!
  1639. string facename = "宋体"
  1640. long textcolor = 33554432
  1641. boolean vscrollbar = true
  1642. integer limit = 1000
  1643. borderstyle borderstyle = stylelowered!
  1644. end type
  1645. type cb_print from uo_imflatbutton within w_mtrl_structure
  1646. integer x = 1413
  1647. integer width = 192
  1648. integer height = 172
  1649. integer taborder = 90
  1650. boolean bringtotop = true
  1651. string text = "预览&P"
  1652. string normalpicname = "preview.bmp"
  1653. integer picsize = 16
  1654. toolbaralignment pic_align = alignattop!
  1655. boolean border = false
  1656. end type
  1657. event clicked;call super::clicked;String ls_dft_old_dwname, ls_dft_new_dwname,ls_chnname,ls_dwtype
  1658. Long ls_dwprintid
  1659. String ls_windowname
  1660. Int ls_i
  1661. Long ll_billid
  1662. Int li_ifuse
  1663. Long ll_row
  1664. String Name,ll_rpname
  1665. Long ll_RpID,ll_flag,ll_ifuse
  1666. w_curwin = PARENT
  1667. ls_windowname = PARENT.ClassName ( )
  1668. SELECT billid,ifuse
  1669. INTO :ll_billid,
  1670. :li_ifuse
  1671. FROM u_report_bill
  1672. Where winName = :ls_windowname;
  1673. IF sqlca.SQLCode <> 0 THEN
  1674. li_ifuse = 0
  1675. END IF
  1676. li_ifuse = 0
  1677. IF li_ifuse = 0 THEN
  1678. DECLARE dft_dwprint CURSOR FOR
  1679. SELECT dwprintid,dft_old_dwname, dft_new_dwname, chnname, dwtype
  1680. FROM sys_dft_dwprint_dynamic
  1681. WHERE dwtype = :ls_windowname
  1682. AND ptype = 0 and ifuse = 1;
  1683. OPEN dft_dwprint;
  1684. FETCH dft_dwprint INTO :ls_dwprintid,:ls_dft_old_dwname, :ls_dft_new_dwname,:ls_chnname, :ls_dwtype;
  1685. IF sqlca.SQLCode <> 0 THEN
  1686. PARENT.TriggerEvent('ue_viewprint',0,0)
  1687. ELSE
  1688. m_dft_dwprint_item m_1
  1689. m_1 = CREATE m_dft_dwprint_item
  1690. ls_i = 1
  1691. DO WHILE sqlca.SQLCode = 0
  1692. f_add_menuItem_dft(m_1,ls_i,ls_chnname,String(ls_dwprintid))
  1693. FETCH dft_dwprint INTO :ls_dwprintid,:ls_dft_old_dwname, :ls_dft_new_dwname,:ls_chnname, :ls_dwtype;
  1694. ls_i++
  1695. LOOP
  1696. CLOSE dft_dwprint;
  1697. m_1.PopMenu(THIS.X+50,THIS.Y+50)
  1698. END IF
  1699. ELSE
  1700. DECLARE rpt_dwprint CURSOR FOR
  1701. SELECT RpID,RpName,Flag,Ifuse
  1702. FROM U_report_list
  1703. WHERE billid = :ll_billid
  1704. Order By RpName;
  1705. OPEN rpt_dwprint;
  1706. FETCH rpt_dwprint INTO :ll_RpID,:ll_rpname,:ll_flag,:ll_ifuse;
  1707. IF sqlca.SQLCode <> 0 THEN
  1708. PARENT.TriggerEvent('ue_rpt_viewprint',0,0)
  1709. ELSE
  1710. m_rpt_dwprint_item m_2
  1711. m_2 = CREATE m_rpt_dwprint_item
  1712. ls_i = 1
  1713. DO WHILE sqlca.SQLCode = 0
  1714. IF f_pow_rpt(ll_RpID) AND ll_ifuse = 1 AND ll_flag = 1 THEN //权限检查f_pow_rpt( )
  1715. f_add_menuItem_rpt(m_2,ls_i,ll_rpname,String(ll_RpID))
  1716. END IF
  1717. FETCH rpt_dwprint INTO :ll_RpID,:ll_rpname,:ll_flag,:ll_ifuse;
  1718. ls_i++
  1719. LOOP
  1720. CLOSE rpt_dwprint;
  1721. m_2.Item[1].Visible = FALSE
  1722. m_2.PopMenu(THIS.X+50,THIS.Y+50)
  1723. END IF
  1724. END IF
  1725. end event
  1726. type cb_refresh_tree from uo_imflatbutton within w_mtrl_structure
  1727. integer width = 151
  1728. integer height = 172
  1729. integer taborder = 290
  1730. boolean bringtotop = true
  1731. string text = "刷新"
  1732. string normalpicname = "refresh.bmp"
  1733. integer picsize = 16
  1734. toolbaralignment pic_align = alignattop!
  1735. boolean border = false
  1736. end type
  1737. event clicked;call super::clicked;wf_changemtrl(page_mtrlid)
  1738. end event
  1739. type cb_save from uo_imflatbutton within w_mtrl_structure
  1740. integer x = 306
  1741. integer width = 192
  1742. integer height = 172
  1743. integer taborder = 210
  1744. boolean enabled = false
  1745. string text = "保存&S"
  1746. string normalpicname = "save.bmp"
  1747. integer picsize = 16
  1748. toolbaralignment pic_align = alignattop!
  1749. boolean border = false
  1750. end type
  1751. event clicked;call super::clicked;IF dw_edit_mode THEN
  1752. IF wf_save() = 0 THEN RETURN
  1753. END IF
  1754. dw_edit_mode = Not dw_edit_mode
  1755. wf_modefacechg()
  1756. //cb_edit.triggerevent('textchange')
  1757. end event
  1758. type cb_edit from uo_imflatbutton within w_mtrl_structure
  1759. integer x = 494
  1760. integer width = 192
  1761. integer height = 172
  1762. integer taborder = 20
  1763. boolean bringtotop = true
  1764. string text = "修改&E"
  1765. string normalpicname = "undo.bmp"
  1766. integer picsize = 16
  1767. toolbaralignment pic_align = alignattop!
  1768. boolean border = false
  1769. end type
  1770. event clicked;call super::clicked;IF NOT f_power_ind(32) THEN
  1771. MessageBox('提示','你没有使用权限!', Information!, OK! )
  1772. RETURN
  1773. END IF
  1774. IF dw_edit_mode THEN
  1775. IF MessageBox ("询问","是否确定要放弃保存当前产品的物料构成,放弃后所修改的资料不作保存",Question!,YesNo! ) = 2 THEN
  1776. RETURN
  1777. END IF
  1778. wf_retrieve_childrenmtrl(obj_mtrlid)
  1779. ELSE
  1780. IF obj_sauditflag = 1 THEN
  1781. MessageBox('提示','产品的物料构成已审核,不能修改', Information!, OK! )
  1782. RETURN
  1783. END IF
  1784. END IF
  1785. dw_edit_mode = NOT dw_edit_mode
  1786. wf_modefacechg()
  1787. end event
  1788. type cb_audit from uo_imflatbutton within w_mtrl_structure
  1789. integer x = 690
  1790. integer width = 151
  1791. integer height = 172
  1792. integer taborder = 20
  1793. boolean bringtotop = true
  1794. string text = "审核"
  1795. string normalpicname = "audit.bmp"
  1796. integer picsize = 16
  1797. toolbaralignment pic_align = alignattop!
  1798. boolean border = false
  1799. end type
  1800. event clicked;call super::clicked;IF Not f_power_ind(56) THEN
  1801. MessageBox('提示','你没有使用权限!', Information!, OK! )
  1802. RETURN
  1803. END IF
  1804. DateTime null_dt
  1805. SetNull(null_dt)
  1806. String ls_msg
  1807. IF MessageBox ('提示',"是否确定要审核前产品的物料构成,审核后不能作修改操作",Question!,YesNo! ) = 2 THEN
  1808. RETURN
  1809. END IF
  1810. IF obj_sauditflag = 1 THEN
  1811. ls_msg = '撤审'
  1812. UPDATE u_mtrldef
  1813. SET SAuditflag = 0,
  1814. SAudit_emp = '',
  1815. SAudit_date = :null_dt
  1816. Where mtrlid = :obj_mtrlid;
  1817. ELSE
  1818. ls_msg = '审核'
  1819. UPDATE u_mtrldef
  1820. SET SAuditflag = 1,
  1821. SAudit_emp = :publ_operator,
  1822. SAudit_date = getdate()
  1823. Where mtrlid = :obj_mtrlid;
  1824. END IF
  1825. IF sqlca.SQLCode <> 0 THEN
  1826. ls_msg = ls_msg+'产品物料构成失改>>'+sqlca.SQLErrText
  1827. ROLLBACK;
  1828. ELSE
  1829. COMMIT;
  1830. IF obj_sauditflag = 1 THEN
  1831. obj_sauditflag = 0
  1832. ELSE
  1833. obj_sauditflag = 1
  1834. END IF
  1835. ls_msg = ls_msg+'产品物料构成成功'
  1836. END IF
  1837. wf_refresh_curuc(obj_mtrlid)
  1838. wf_flagstatus_rf(obj_sauditflag)
  1839. MessageBox('提示',ls_msg, Information!, OK! )
  1840. end event
  1841. type cb_pfcopy from uo_imflatbutton within w_mtrl_structure
  1842. integer x = 837
  1843. integer width = 151
  1844. integer height = 172
  1845. integer taborder = 20
  1846. boolean bringtotop = true
  1847. string text = "复制"
  1848. string normalpicname = "copy.bmp"
  1849. integer picsize = 16
  1850. toolbaralignment pic_align = alignattop!
  1851. boolean border = false
  1852. end type
  1853. event clicked;call super::clicked;IF NOT f_power_ind(32) THEN
  1854. MessageBox('提示','你没有使用权限!', Information!, OK! )
  1855. RETURN
  1856. END IF
  1857. wf_pfcopy()
  1858. end event
  1859. type cb_pfpaste from uo_imflatbutton within w_mtrl_structure
  1860. integer x = 987
  1861. integer width = 151
  1862. integer height = 172
  1863. integer taborder = 20
  1864. boolean bringtotop = true
  1865. boolean enabled = false
  1866. string text = "粘贴"
  1867. string normalpicname = "paste.bmp"
  1868. integer picsize = 16
  1869. toolbaralignment pic_align = alignattop!
  1870. boolean border = false
  1871. end type
  1872. event clicked;call super::clicked;wf_pfpaste()
  1873. end event
  1874. type ddlb_storageid from uo_ddlb_storageid within w_mtrl_structure
  1875. integer x = 270
  1876. integer y = 200
  1877. integer width = 695
  1878. integer height = 812
  1879. integer taborder = 30
  1880. boolean bringtotop = true
  1881. end type
  1882. event constructor;call super::constructor;cur_storageid = uo_storageid
  1883. end event
  1884. event selectionchanged;call super::selectionchanged;cur_storageid = uo_storageid
  1885. parent.triggerevent('retrieve_pageretr')
  1886. end event
  1887. type cb_help from uo_imflatbutton within w_mtrl_structure
  1888. string tag = "帮助[F1]"
  1889. integer x = 1906
  1890. integer width = 151
  1891. integer height = 172
  1892. integer taborder = 300
  1893. boolean bringtotop = true
  1894. string text = "帮助"
  1895. string normalpicname = "help.bmp"
  1896. integer picsize = 16
  1897. toolbaralignment pic_align = alignattop!
  1898. boolean border = false
  1899. end type
  1900. type st_msg from statictext within w_mtrl_structure
  1901. integer x = 2583
  1902. integer y = 212
  1903. integer width = 1019
  1904. integer height = 60
  1905. boolean bringtotop = true
  1906. integer textsize = -9
  1907. integer weight = 400
  1908. fontcharset fontcharset = gb2312charset!
  1909. fontpitch fontpitch = variable!
  1910. string facename = "宋体"
  1911. long textcolor = 33554432
  1912. long backcolor = 134217739
  1913. alignment alignment = right!
  1914. boolean focusrectangle = false
  1915. end type
  1916. type tab_1 from tab within w_mtrl_structure
  1917. event create ( )
  1918. event destroy ( )
  1919. integer x = 9
  1920. integer y = 1520
  1921. integer width = 3543
  1922. integer height = 612
  1923. integer taborder = 190
  1924. boolean bringtotop = true
  1925. integer textsize = -9
  1926. integer weight = 400
  1927. fontcharset fontcharset = gb2312charset!
  1928. fontpitch fontpitch = variable!
  1929. string facename = "宋体"
  1930. long backcolor = 134217739
  1931. boolean raggedright = true
  1932. boolean focusonbuttondown = true
  1933. integer selectedtab = 1
  1934. tabpage_1 tabpage_1
  1935. tabpage_2 tabpage_2
  1936. end type
  1937. on tab_1.create
  1938. this.tabpage_1=create tabpage_1
  1939. this.tabpage_2=create tabpage_2
  1940. this.Control[]={this.tabpage_1,&
  1941. this.tabpage_2}
  1942. end on
  1943. on tab_1.destroy
  1944. destroy(this.tabpage_1)
  1945. destroy(this.tabpage_2)
  1946. end on
  1947. event selectionchanged;IF THIS.SelectedTab = 1 THEN
  1948. cbx_auto_printid.visible = true
  1949. cbx_auto_zc.visible = true
  1950. ELSE
  1951. cbx_auto_printid.visible = false
  1952. cbx_auto_zc.visible = false
  1953. END IF
  1954. end event
  1955. type tabpage_1 from userobject within tab_1
  1956. event create ( )
  1957. event destroy ( )
  1958. integer x = 18
  1959. integer y = 96
  1960. integer width = 3506
  1961. integer height = 500
  1962. long backcolor = 134217739
  1963. string text = "直接构成物料"
  1964. long tabtextcolor = 33554432
  1965. long tabbackcolor = 134217739
  1966. long picturemaskcolor = 536870912
  1967. dw_mtrl_prdpfmx dw_mtrl_prdpfmx
  1968. end type
  1969. on tabpage_1.create
  1970. this.dw_mtrl_prdpfmx=create dw_mtrl_prdpfmx
  1971. this.Control[]={this.dw_mtrl_prdpfmx}
  1972. end on
  1973. on tabpage_1.destroy
  1974. destroy(this.dw_mtrl_prdpfmx)
  1975. end on
  1976. type dw_mtrl_prdpfmx from u_dw_rbtnfilter within tabpage_1
  1977. integer width = 2482
  1978. integer height = 492
  1979. integer taborder = 20
  1980. string dataobject = "dw_mtrl_structuremx"
  1981. boolean hscrollbar = true
  1982. boolean vscrollbar = true
  1983. boolean rbutton_filter_use = true
  1984. boolean rbutton_setposition_use = true
  1985. boolean titleclick_sort_use = true
  1986. end type
  1987. event rowfocuschanged;call super::rowfocuschanged;IF currentrow > 0 THEN
  1988. THIS.SelectRow(0,FALSE)
  1989. THIS.SelectRow(currentrow,TRUE)
  1990. END IF
  1991. end event
  1992. event clicked;call super::clicked;if row>0 then
  1993. this.setrow(row)
  1994. this.selectrow(0,false)
  1995. this.selectrow(row,true)
  1996. end if
  1997. end event
  1998. event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN
  1999. PARENT.GetParent().GetParent().TriggerEvent('ue_f8')
  2000. END IF
  2001. end event
  2002. event dwnkey;call super::dwnkey;PARENT.getparent().getparent().TriggerEvent('user_key')
  2003. String ls_mtrlcode,ls_mtrlname,ls_unit,ls_dscrp,ls_mtrlmode, ls_mtrlengname
  2004. Long ls_mtrlid
  2005. Long child_row
  2006. Long ls_null
  2007. SetNull(ls_null)
  2008. IF dw_edit_mode THEN
  2009. IF KeyDown(Keydownarrow!) THEN
  2010. Long li_row
  2011. IF dw_mtrl_prdpfmx.GetRow() = dw_mtrl_prdpfmx.RowCount() THEN
  2012. PARENT.getparent().getparent().TriggerEvent("insert_childrow")
  2013. END IF
  2014. ELSE
  2015. IF (KeyDown(KeyEnter!) OR KeyDown(KeyTab!)) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  2016. IF dw_mtrl_prdpfmx.GetColumnName() = 'mtrlcode' THEN
  2017. dw_mtrl_prdpfmx.AcceptText()
  2018. child_row = dw_mtrl_prdpfmx.GetRow()
  2019. ls_mtrlcode = dw_mtrl_prdpfmx.Object.mtrlcode[child_row]
  2020. SELECT u_mtrldef.mtrlid,
  2021. u_mtrldef.mtrlname,
  2022. u_mtrldef.unit,
  2023. u_mtrldef.dscrp,
  2024. u_mtrldef.mtrlmode,
  2025. u_mtrldef.mtrlengname
  2026. INTO :ls_mtrlid,:ls_mtrlname,:ls_unit,:ls_dscrp,:ls_mtrlmode,:ls_mtrlengname
  2027. FROM u_mtrldef
  2028. Where ( u_mtrldef.mtrlcode = :ls_mtrlcode);
  2029. IF sqlca.SQLCode <> 0 THEN
  2030. parent.getparent().getparent().triggerevent('ue_f8')
  2031. return 1
  2032. ELSE
  2033. dw_mtrl_prdpfmx.Object.mtrlid[child_row] = ls_mtrlid
  2034. dw_mtrl_prdpfmx.Object.mtrlname[child_row] = ls_mtrlname
  2035. dw_mtrl_prdpfmx.Object.u_mtrldef_mtrlengname[child_row] = ls_mtrlengname
  2036. dw_mtrl_prdpfmx.Object.unit[child_row] = ls_unit
  2037. if not len(trim(dw_mtrl_prdpfmx.object.u_prdpf_dscrp[child_row])) > 0 then
  2038. dw_mtrl_prdpfmx.object.u_prdpf_dscrp[child_row] =ls_dscrp
  2039. end if
  2040. END IF
  2041. IF Key = KeyEnter! THEN
  2042. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2043. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2044. RETURN 1
  2045. END IF
  2046. ELSEIF dw_mtrl_prdpfmx.GetColumnName( ) = 'u_prdpf_dscrp' AND dw_mtrl_prdpfmx.GetRow() = dw_mtrl_prdpfmx.RowCount() THEN
  2047. PARENT.getparent().getparent().TriggerEvent("insert_childrow")
  2048. RETURN 1
  2049. ELSE
  2050. IF Key = KeyEnter! THEN
  2051. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  2052. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  2053. RETURN 1
  2054. END IF
  2055. END IF
  2056. END IF
  2057. END IF
  2058. END IF
  2059. //u_mtrldef_mtrlcode
  2060. //u_mtrldef_unit
  2061. //u_inwaremx_mtrlid
  2062. //u_inwaremx_planprice
  2063. //u_inwaremx_price
  2064. //u_mtrldef_mtrlname
  2065. end event
  2066. event rbuttondown;Long ll_row
  2067. S_INPUTBOX_DECIMAL s_parm
  2068. IF dw_edit_mode THEN
  2069. IF dwo.Name = 'u_prdpf_wrkgrpid_t' THEN
  2070. // DONE: 批设领料组
  2071. Open(w_workgroup_edit_ch)
  2072. Long ll_workgroupid
  2073. ll_workgroupid = Message.DoubleParm
  2074. IF ll_workgroupid > 0 THEN
  2075. FOR ll_row = 1 To dw_mtrl_prdpfmx.RowCount()
  2076. dw_mtrl_prdpfmx.Object.u_prdpf_wrkgrpid[ll_row] = ll_workgroupid
  2077. NEXT
  2078. END IF
  2079. ELSEIF dwo.Name = 'u_prdpf_sonscale_t' THEN
  2080. // DONE: 批设组成数
  2081. s_parm.Title = '批设组成数'
  2082. s_parm.Value = 0
  2083. OpenWithParm(w_inputbox_decimal, s_parm)
  2084. s_parm = Message.PowerObjectParm
  2085. IF s_parm.has_rslt = 1 THEN
  2086. FOR ll_row = 1 To dw_mtrl_prdpfmx.RowCount()
  2087. dw_mtrl_prdpfmx.Object.u_prdpf_sonscale[ll_row] = s_parm.Value
  2088. NEXT
  2089. END IF
  2090. ELSEIF dwo.Name = 'u_prdpf_sonloss_t' THEN
  2091. // DONE: 批设损耗率
  2092. s_parm.Title = '批设损耗率'
  2093. s_parm.Value = 0
  2094. OpenWithParm(w_inputbox_decimal, s_parm)
  2095. s_parm = Message.PowerObjectParm
  2096. IF s_parm.has_rslt = 1 THEN
  2097. FOR ll_row = 1 To dw_mtrl_prdpfmx.RowCount()
  2098. dw_mtrl_prdpfmx.Object.u_prdpf_sonloss[ll_row] = s_parm.Value
  2099. NEXT
  2100. END IF
  2101. ELSE
  2102. m_Dfc_Control_PopupMenu dmPopupMenu
  2103. String menustr
  2104. menustr = "Text=增明细~tEvent=insert_childrow"
  2105. menustr = menustr + "|" + "Text=删明细~tEvent=ue_deletemx"
  2106. IF Len(Trim(menustr)) <> 0 THEN
  2107. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  2108. dmPopupMenu.mf_BuildMenu(This, menustr)
  2109. dmPopupMenu.mf_PopMenu()
  2110. Destroy dmPopupMenu
  2111. END IF
  2112. END IF
  2113. ELSE
  2114. CALL Super::RButtonDown
  2115. END IF
  2116. end event
  2117. type tabpage_2 from userobject within tab_1
  2118. event create ( )
  2119. event destroy ( )
  2120. integer x = 18
  2121. integer y = 96
  2122. integer width = 3506
  2123. integer height = 500
  2124. long backcolor = 134217739
  2125. string text = "清单树"
  2126. long tabtextcolor = 33554432
  2127. long tabbackcolor = 134217739
  2128. long picturemaskcolor = 536870912
  2129. tv_2 tv_2
  2130. end type
  2131. on tabpage_2.create
  2132. this.tv_2=create tv_2
  2133. this.Control[]={this.tv_2}
  2134. end on
  2135. on tabpage_2.destroy
  2136. destroy(this.tv_2)
  2137. end on
  2138. type tv_2 from treeview within tabpage_2
  2139. integer width = 2473
  2140. integer height = 500
  2141. integer taborder = 100
  2142. integer textsize = -9
  2143. integer weight = 400
  2144. fontcharset fontcharset = gb2312charset!
  2145. fontpitch fontpitch = variable!
  2146. string facename = "宋体"
  2147. long textcolor = 33554432
  2148. long backcolor = 16777215
  2149. borderstyle borderstyle = stylelowered!
  2150. string picturename[] = {"Project!","Custom030!","Custom028!","Custom031!","Custom029!","Custom041!","Custom032!"}
  2151. long picturemaskcolor = 536870912
  2152. long statepicturemaskcolor = 536870912
  2153. end type
  2154. type cb_other from uo_imflatbutton within w_mtrl_structure
  2155. integer x = 1138
  2156. integer width = 274
  2157. integer height = 172
  2158. integer taborder = 150
  2159. boolean bringtotop = true
  2160. string text = "辅助功能"
  2161. string normalpicname = "other.BMP"
  2162. integer picsize = 16
  2163. toolbaralignment pic_align = alignattop!
  2164. boolean border = false
  2165. end type
  2166. event clicked;call super::clicked;
  2167. m_Dfc_Control_PopupMenu dmPopupMenu
  2168. string menustr
  2169. menustr="Text=查闭环~tEvent=ue_checkrand"
  2170. menustr = menustr + "|" + "Text=批替换物料~tEvent=ue_replace_p"
  2171. menustr = menustr + "|" + "Text=-"
  2172. menustr = menustr + "|" + "Text=物料相关查询~tEvent=ue_mtrl_info"
  2173. if len(trim(menustr))<>0 then
  2174. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  2175. dmPopupMenu.mf_BuildMenu(This, menustr)
  2176. dmPopupMenu.mf_PopMenu()
  2177. Destroy dmPopupMenu
  2178. end if
  2179. end event
  2180. type st_2 from statictext within w_mtrl_structure
  2181. integer x = 704
  2182. integer y = 1324
  2183. integer width = 891
  2184. integer height = 48
  2185. boolean bringtotop = true
  2186. integer textsize = -9
  2187. integer weight = 400
  2188. fontcharset fontcharset = gb2312charset!
  2189. fontpitch fontpitch = variable!
  2190. string facename = "宋体"
  2191. long textcolor = 255
  2192. long backcolor = 134217739
  2193. string text = "操作说明:( 热键:>-[F1], >>-[F3])"
  2194. alignment alignment = right!
  2195. boolean focusrectangle = false
  2196. end type
  2197. type st_3 from statictext within w_mtrl_structure
  2198. integer x = 1637
  2199. integer y = 1324
  2200. integer width = 919
  2201. integer height = 48
  2202. boolean bringtotop = true
  2203. integer textsize = -9
  2204. integer weight = 400
  2205. fontcharset fontcharset = gb2312charset!
  2206. fontpitch fontpitch = variable!
  2207. string facename = "宋体"
  2208. long textcolor = 255
  2209. long backcolor = 134217739
  2210. string text = "右键标题批设 领料组 组成数 损耗率"
  2211. alignment alignment = right!
  2212. boolean focusrectangle = false
  2213. end type
  2214. type cb_xls from uo_imflatbutton within w_mtrl_structure
  2215. integer x = 1605
  2216. integer width = 306
  2217. integer height = 172
  2218. integer taborder = 30
  2219. boolean bringtotop = true
  2220. string text = "Excel打印"
  2221. string normalpicname = "excel.bmp"
  2222. integer picsize = 16
  2223. toolbaralignment pic_align = alignattop!
  2224. boolean border = false
  2225. end type
  2226. event clicked;call super::clicked;//检查是否已确认或已审核,否则不允许打印
  2227. Long LS_ROW,ll_mtrlid_obj,i
  2228. String arg_msg
  2229. LS_ROW = dw_pageretr.GetRow()
  2230. IF LS_ROW <= 0 THEN
  2231. arg_msg = '没有目标单据!'
  2232. RETURN 0
  2233. END IF
  2234. /////////// //
  2235. uo_sendtoexcel obj_st
  2236. obj_st = CREATE uo_sendtoexcel
  2237. obj_st.commit_transaction = sqlca
  2238. obj_st.TriggerEventObject = THIS.GetParent()
  2239. obj_st.TriggerEventname = 'ue_xls'
  2240. menu m1
  2241. m1 = obj_st.of_createmenu( PARENT.ClassName ( ),sys_user_xls_print_str,sys_user_xls_send_str)
  2242. IF UpperBound( m1.Item) = 2 THEN
  2243. MessageBox('错误','当前单据还没有设置Excel打印模板.')
  2244. ELSE
  2245. m1.PopMenu(THIS.X ,THIS.Y+THIS.Height)
  2246. END IF
  2247. end event
  2248. type ddlb_mtrlorigin from uo_ddlb_mtrlorigin within w_mtrl_structure
  2249. integer x = 974
  2250. integer y = 204
  2251. integer height = 812
  2252. integer taborder = 20
  2253. boolean bringtotop = true
  2254. end type
  2255. event selectionchanged;call super::selectionchanged;cur_mtrlorigin = this.uo_mtrlorigin
  2256. //wf_retrieveuc(dw_pageretr,ls_newselect,1)
  2257. parent.triggerevent('retrieve_pageretr')
  2258. f_SetProfileString (sys_empid,dw_pageretr.DataObject, "ddlb_mtrlorigin",String(cur_mtrlorigin))
  2259. end event
  2260. event constructor;call super::constructor;String ls_str
  2261. ls_str = f_ProfileString (sys_empid,dw_pageretr.DataObject, "ddlb_mtrlorigin",'0')
  2262. cur_mtrlorigin = integer(ls_str)
  2263. ddlb_mtrlorigin.uf_setitem(cur_mtrlorigin)
  2264. end event
  2265. type cbx_packqty_cmpl from checkbox within w_mtrl_structure
  2266. integer x = 2185
  2267. integer y = 212
  2268. integer width = 375
  2269. integer height = 68
  2270. boolean bringtotop = true
  2271. integer textsize = -9
  2272. integer weight = 400
  2273. fontcharset fontcharset = gb2312charset!
  2274. fontpitch fontpitch = variable!
  2275. string facename = "宋体"
  2276. long textcolor = 33554432
  2277. long backcolor = 134217739
  2278. string text = "只显示有效"
  2279. end type
  2280. event clicked;IF THIS.Checked THEN
  2281. cur_isuse = 1
  2282. ELSE
  2283. cur_isuse = -1
  2284. END IF
  2285. f_SetProfileString (sys_empid,publ_userid+'_'+'isuse', "isuse",String(cur_isuse))
  2286. parent.triggerevent('retrieve_pageretr')
  2287. end event
  2288. event constructor;//this.backcolor = 14215660
  2289. cur_isuse = Long(f_ProfileString (sys_empid,publ_userid+'_'+'isuse', "isuse",'1'))
  2290. IF cur_isuse = 1 THEN
  2291. THIS.Checked = TRUE
  2292. ELSE
  2293. THIS.Checked = FALSE
  2294. END IF
  2295. end event
  2296. type ln_bar from line within w_mtrl_structure
  2297. long linecolor = 268435456
  2298. integer linethickness = 4
  2299. integer beginy = 176
  2300. integer endx = 3429
  2301. integer endy = 176
  2302. end type
  2303. type ln_bar2 from line within w_mtrl_structure
  2304. long linecolor = 16777215
  2305. integer linethickness = 4
  2306. integer beginy = 180
  2307. integer endx = 3429
  2308. integer endy = 180
  2309. end type
  2310. type r_bar from rectangle within w_mtrl_structure
  2311. long linecolor = 16777215
  2312. long fillcolor = 1073741824
  2313. integer x = 3200
  2314. integer width = 73
  2315. integer height = 172
  2316. end type
  2317. event constructor;this.fillcolor = 14215660
  2318. this.linecolor = 14215660
  2319. this.x = -1
  2320. this.y = -1
  2321. this.height = ln_bar2.beginy - 5
  2322. end event
  2323. type ln_1 from line within w_mtrl_structure
  2324. long linecolor = 268435456
  2325. integer linethickness = 4
  2326. integer beginy = 300
  2327. integer endx = 3429
  2328. integer endy = 300
  2329. end type
  2330. type ln_2 from line within w_mtrl_structure
  2331. long linecolor = 16777215
  2332. integer linethickness = 4
  2333. integer beginy = 304
  2334. integer endx = 3429
  2335. integer endy = 304
  2336. end type
  2337. type ln_5 from line within w_mtrl_structure
  2338. long linecolor = 268435456
  2339. integer beginx = 2267
  2340. integer endx = 2267
  2341. integer endy = 176
  2342. end type
  2343. type ln_6 from line within w_mtrl_structure
  2344. long linecolor = 16777215
  2345. integer beginx = 2272
  2346. integer endx = 2272
  2347. integer endy = 180
  2348. end type
  2349. type cbx_auto_printid from checkbox within w_mtrl_structure
  2350. integer x = 649
  2351. integer y = 1532
  2352. integer width = 411
  2353. integer height = 68
  2354. boolean bringtotop = true
  2355. integer textsize = -9
  2356. integer weight = 400
  2357. fontcharset fontcharset = gb2312charset!
  2358. fontpitch fontpitch = variable!
  2359. string facename = "宋体"
  2360. long textcolor = 33554432
  2361. long backcolor = 134217739
  2362. string text = "明细自动顺序"
  2363. end type
  2364. event clicked;IF THIS.Checked THEN
  2365. cur_auto_printid = 1
  2366. ELSE
  2367. cur_auto_printid = 0
  2368. END IF
  2369. f_SetProfileString (sys_empid,publ_userid+'_'+'auto_printid', "printid",String(cur_auto_printid))
  2370. end event
  2371. event constructor;cur_auto_printid = Long(f_ProfileString (sys_empid,publ_userid+'_'+'auto_printid', "printid",'0'))
  2372. IF cur_auto_printid = 1 THEN
  2373. THIS.Checked = TRUE
  2374. ELSE
  2375. THIS.Checked = FALSE
  2376. END IF
  2377. end event
  2378. type cbx_auto_zc from checkbox within w_mtrl_structure
  2379. integer x = 1079
  2380. integer y = 1532
  2381. integer width = 686
  2382. integer height = 68
  2383. boolean bringtotop = true
  2384. integer textsize = -9
  2385. integer weight = 400
  2386. fontcharset fontcharset = gb2312charset!
  2387. fontpitch fontpitch = variable!
  2388. string facename = "宋体"
  2389. long textcolor = 33554432
  2390. long backcolor = 134217739
  2391. string text = "按切管数自动结算组成数"
  2392. end type
  2393. event clicked;IF THIS.Checked THEN
  2394. cur_cmpl_zc = 1
  2395. ELSE
  2396. cur_cmpl_zc = 0
  2397. END IF
  2398. f_SetProfileString (sys_empid,publ_userid+'_'+'autozc', "autozc",String(cur_cmpl_zc))
  2399. end event
  2400. event constructor;//this.backcolor = 14215660
  2401. cur_cmpl_zc = Long(f_ProfileString (sys_empid,publ_userid+'_'+'autozc', "autozc",'0'))
  2402. IF cur_cmpl_zc = 1 THEN
  2403. THIS.Checked = TRUE
  2404. ELSE
  2405. THIS.Checked = FALSE
  2406. END IF
  2407. end event
  2408. type cb_1 from commandbutton within w_mtrl_structure
  2409. integer y = 196
  2410. integer width = 251
  2411. integer height = 84
  2412. integer taborder = 40
  2413. boolean bringtotop = true
  2414. integer textsize = -9
  2415. integer weight = 400
  2416. fontcharset fontcharset = gb2312charset!
  2417. fontpitch fontpitch = variable!
  2418. string facename = "宋体"
  2419. string text = "刷新"
  2420. end type
  2421. event clicked;parent.triggerevent('retrieve_pageretr')
  2422. end event