w_publ_preview.srw 69 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399
  1. $PBExportHeader$w_publ_preview.srw
  2. forward
  3. global type w_publ_preview from w_publ_base
  4. end type
  5. type cb_refresh from uo_imflatbutton within w_publ_preview
  6. end type
  7. type st_1 from statictext within w_publ_preview
  8. end type
  9. type cb_savestyle from uo_imflatbutton within w_publ_preview
  10. end type
  11. type cb_3 from uo_imflatbutton within w_publ_preview
  12. end type
  13. type ddlb_1 from dropdownlistbox within w_publ_preview
  14. end type
  15. type dw_1 from datawindow within w_publ_preview
  16. end type
  17. type ddlb_printerlist from dropdownlistbox within w_publ_preview
  18. end type
  19. type em_1 from editmask within w_publ_preview
  20. end type
  21. type st_2 from statictext within w_publ_preview
  22. end type
  23. type cbx_select_page from checkbox within w_publ_preview
  24. end type
  25. type cb_mdfmxrp from commandbutton within w_publ_preview
  26. end type
  27. type st_3 from statictext within w_publ_preview
  28. end type
  29. type st_4 from statictext within w_publ_preview
  30. end type
  31. type cb_1 from uo_imflatbutton within w_publ_preview
  32. end type
  33. type lb_1 from listbox within w_publ_preview
  34. end type
  35. type st_5 from statictext within w_publ_preview
  36. end type
  37. type st_6 from statictext within w_publ_preview
  38. end type
  39. type cbx_ifprint_xj from checkbox within w_publ_preview
  40. end type
  41. type cbx_ifprint_hj from checkbox within w_publ_preview
  42. end type
  43. type cb_2 from commandbutton within w_publ_preview
  44. end type
  45. type ln_bar from line within w_publ_preview
  46. end type
  47. type ln_bar2 from line within w_publ_preview
  48. end type
  49. type r_bar from rectangle within w_publ_preview
  50. end type
  51. type ln_1 from line within w_publ_preview
  52. end type
  53. type ln_2 from line within w_publ_preview
  54. end type
  55. end forward
  56. global type w_publ_preview from w_publ_base
  57. integer x = 9
  58. integer y = 24
  59. integer width = 4494
  60. integer height = 2372
  61. string title = "打印预览"
  62. boolean minbox = false
  63. windowtype windowtype = response!
  64. windowstate windowstate = maximized!
  65. event ue_filter ( )
  66. event ue_sentdataout ( )
  67. event ue_setprintpage_value ( )
  68. event ue_spp ( )
  69. event ue_snp ( )
  70. event ue_mod_printbill ( )
  71. cb_refresh cb_refresh
  72. st_1 st_1
  73. cb_savestyle cb_savestyle
  74. cb_3 cb_3
  75. ddlb_1 ddlb_1
  76. dw_1 dw_1
  77. ddlb_printerlist ddlb_printerlist
  78. em_1 em_1
  79. st_2 st_2
  80. cbx_select_page cbx_select_page
  81. cb_mdfmxrp cb_mdfmxrp
  82. st_3 st_3
  83. st_4 st_4
  84. cb_1 cb_1
  85. lb_1 lb_1
  86. st_5 st_5
  87. st_6 st_6
  88. cbx_ifprint_xj cbx_ifprint_xj
  89. cbx_ifprint_hj cbx_ifprint_hj
  90. cb_2 cb_2
  91. ln_bar ln_bar
  92. ln_bar2 ln_bar2
  93. r_bar r_bar
  94. ln_1 ln_1
  95. ln_2 ln_2
  96. end type
  97. global w_publ_preview w_publ_preview
  98. type prototypes
  99. //function boolean IsWindowsNT() library "PrintCtrl.dll"
  100. //SUBROUTINE About() library "PrintCtrl.dll"
  101. //function boolean GetDefaultPrinter(ref string PrinterName, int BufferLen) library "PrintCtrl.dll"
  102. //function boolean GetPrinterPort(ref string PrinterName, ref string Port, int PortLen, ref string Driver, int DriverLen) library "PrintCtrl.dll"
  103. //function boolean GetPrinterList(ref string PrinterList, ref long bufferLen) library "PrintCtrl.dll"
  104. //function boolean GetPrinterStatus(ref string Printer, ref long status) library "PrintCtrl.dll"
  105. //function boolean GetPaperList(ref string Printer, ref string PaperList, ref long bufferLen) library "PrintCtrl.dll"
  106. //function boolean SetPrinterDefault(ref string Printer) library "PrintCtrl.dll"
  107. //function boolean AddCustomPaper( ref string Printer, ref string PaperName, long pwidth, long pheight, long left, long right, long top, long bottom) library "PrintCtrl.dll"
  108. //function boolean DeleteCustomPaper(ref string Printer, ref string PaperName) library "PrintCtrl.dll"
  109. //function boolean SetUserDefinePaper(ref string Printer, ref long pWidth, ref long pHeight) library "PrintCtrl.dll"
  110. //function boolean GetUserDefinePaperMinMax(ref string Printer, ref long minWidth, ref long minHeight, ref long maxWidth, ref long maxHeight) library "PrintCtrl.dll"
  111. //function boolean GetDefaultPaper(ref string Printer, ref string PaperName, ref int nOrientation) library "PrintCtrl.dll"
  112. //function boolean SetDefaultPaper(ref string Printer, ref string PaperName, int nOrientation) library "PrintCtrl.dll"
  113. //function boolean GetDefaultPaper(ref string Printer, ref string PaperName,ref long nPapserSize, ref long nOrientation) library "PrintCtrl.dll"
  114. //function boolean GetPaperName(ref string Printer, ref string PaperName, int PaperSize) library "PrintCtrl.dll"
  115. //function boolean GetPaperSize(ref string Printer, ref string PaperName, ref int PaperSize) library "PrintCtrl.dll"
  116. //function boolean GetBinNameList(ref string Printer, ref string BinNameList) library "PrintCtrl.dll"
  117. //function boolean GetBin(ref string Printer, ref string BinName, ref int Bin) library "PrintCtrl.dll"
  118. //function boolean GetBinName(ref string Printer, ref string BinName, int Bin) library "PrintCtrl.dll"
  119. end prototypes
  120. type variables
  121. s_print_msg fact_print_msg
  122. String dwdataobject
  123. datawindowchild ins_dwcld
  124. s_childreportxwidth s_xwidth
  125. dwobject dwod
  126. Long retrieveid = 0,secondretrieveid = 0
  127. String retrievestr = ''
  128. uo_printer_setting lnv_printer
  129. String ins_printerlist [ ]
  130. Int p_printerlist = 0
  131. String dw_default_printer = '',default_printer = ''
  132. String default_printer_info = ''
  133. Long print_row
  134. String default_dwname,default_dname
  135. Int rslt_printnum = 0
  136. string obj_dwname
  137. string ls_dw_arr[]
  138. long it_max
  139. long ifwork = 1
  140. string ls_comments[]
  141. dwobject childwod
  142. end variables
  143. forward prototypes
  144. public function integer wf_mdfmxreport (s_childreportxwidth s_xw)
  145. public function integer wf_mdfx (s_childreportxwidth s_xw, integer pt)
  146. public function integer wf_initprinterinfo ()
  147. public function integer wf_setdefaultprinter ()
  148. public function integer wf_write_childdw_pos (string arg_childdw_name, s_childreportxwidth arg_s_xwidth)
  149. public function integer wf_read_childdw_pos (string arg_childdw_name, ref s_childreportxwidth arg_s_xwidth)
  150. public subroutine wf_readini_begin ()
  151. public function integer wf_trycreate_sys_dwnsyntax (ref string arg_msg)
  152. public function integer wf_dwcreate (string arg_dwname, string arg_formatname, ref string arg_errmsg)
  153. public subroutine wf_defdataobject ()
  154. public subroutine wf_subdwpos_strutoblob (s_childreportxwidth arg_s_xwidth, ref blob subdwpos)
  155. public subroutine wf_subdwpos_blobtostru (blob arg_blob, ref s_childreportxwidth arg_s_xwidth)
  156. public subroutine wf_dowithm (integer commid)
  157. public function integer wf_read_subdwpos (string arg_dwname, string arg_dname, ref s_childreportxwidth s_subdwwidth, ref string arg_msg)
  158. public subroutine wf_nullrow (long arg_rowcnt, long arg_pagerow, ref long arg_nullrow)
  159. public function integer f_export ()
  160. public function integer f_inport ()
  161. public function integer wf_check_mxreport ()
  162. public subroutine dw_retrieve ()
  163. public subroutine wf_add_pic ()
  164. public subroutine wf_clear_temp ()
  165. end prototypes
  166. event ue_filter();OPENWITHPARM(w_filter_query,dw_1)
  167. STRING LS_EXPR
  168. LS_EXPR=Message.StringParm
  169. if len(LS_EXPR)>2 and trim(LS_EXPR)='' then return
  170. dw_1.setfilter(LS_EXPR)
  171. dw_1.SetRedraw (false)
  172. dw_1.filter()
  173. dw_1.SetRedraw (TRUE)
  174. end event
  175. event ue_sentdataout;IF NOT f_power_ind(sys_func_print_sentdataout) THEN
  176. MessageBox(publ_operator,sys_msg_pow)
  177. RETURN
  178. END IF
  179. OPENWITHPARM(w_sentdataout,dw_1)
  180. end event
  181. event ue_setprintpage_value();s_print_value s_print
  182. s_print.obj_dw = DW_1
  183. s_print.dft_printername = ddlb_printerlist.text
  184. OpenWithParm(w_sys_printpage_value,s_print)
  185. end event
  186. event ue_spp();dw_1.ScrollPriorPage()
  187. end event
  188. event ue_snp();dw_1.ScrollNextPage()
  189. end event
  190. event ue_mod_printbill();//
  191. IF NOT sys_power_issuper THEN
  192. MessageBox('提示','只有管理员才能编辑打印格式')
  193. RETURN
  194. END IF
  195. String ls_dwname,ls_pblname
  196. ls_dwname = fact_print_msg.obj_dwname
  197. SELECT pblname
  198. INTO :ls_pblname
  199. FROM sys_dft_dwprint_dynamic
  200. Where dft_new_dwname = :ls_dwname;
  201. IF sqlca.SQLCode <> 0 THEN
  202. ls_pblname = ''
  203. END IF
  204. IF ls_pblname = '' THEN
  205. MessageBox('提示','该格式没有指定格式库文件,不能编辑!')
  206. RETURN
  207. END IF
  208. Long lib_row
  209. Long list_row
  210. str_rpt s_rpt_parm
  211. s_rpt_parm.auto = "auto"
  212. s_rpt_parm.transation = sqlca //数据库连接
  213. s_rpt_parm.oname = ls_dwname
  214. s_rpt_parm.otype = sys_cur_path + ls_pblname
  215. s_rpt_parm.rcname = ls_dwname
  216. s_rpt_parm.retr_pram_falg = -1
  217. s_rpt_parm.retr_flag = TRUE
  218. s_rpt_parm.import_flag = TRUE
  219. s_rpt_parm.pblpath = sys_cur_path + ls_pblname
  220. OpenWithParm(w_rpt_main,s_rpt_parm)
  221. end event
  222. public function integer wf_mdfmxreport (s_childreportxwidth s_xw);//wf_mdfmxreport(s_childreportxwidth)
  223. if s_xw.p=0 then
  224. return 0
  225. end if
  226. if mod(s_xw.cmplp,2)=1 then
  227. if s_xw.cmplx[1]>0 then dwod.object.cmpl1.width=s_xw.cmplwidth[1]
  228. end if
  229. if s_xw.cmplp=2 or s_xw.cmplp=3 then
  230. if s_xw.cmplx[2]>0 then dwod.object.cmpl2.width= s_xw.cmplwidth[2]
  231. end if
  232. if s_xw.cmplp=4 or s_xw.cmplp=6 or s_xw.cmplp=7 then
  233. if s_xw.cmplx[3]>0 then dwod.object.cmpl3.width= s_xw.cmplwidth[3]
  234. end if
  235. if s_xw.x[1]>0 then dwod.object.#1.width=s_xw.width[1]
  236. if s_xw.p<2 then goto mdfx
  237. if s_xw.x[2]>0 then dwod.object.#2.width=s_xw.width[2]
  238. if s_xw.p<3 then goto mdfx
  239. if s_xw.x[3]>0 then dwod.object.#3.width=s_xw.width[3]
  240. if s_xw.p<4 then goto mdfx
  241. if s_xw.x[4]>0 then dwod.object.#4.width=s_xw.width[4]
  242. if s_xw.p<5 then goto mdfx
  243. if s_xw.x[5]>0 then dwod.object.#5.width=s_xw.width[5]
  244. if s_xw.p<6 then goto mdfx
  245. if s_xw.x[6]>0 then dwod.object.#6.width=s_xw.width[6]
  246. if s_xw.p<7 then goto mdfx
  247. if s_xw.x[7]>0 then dwod.object.#7.width=s_xw.width[7]
  248. if s_xw.p<8 then goto mdfx
  249. if s_xw.x[8]>0 then dwod.object.#8.width=s_xw.width[8]
  250. if s_xw.p<9 then goto mdfx
  251. if s_xw.x[9]>0 then dwod.object.#9.width=s_xw.width[9]
  252. if s_xw.p<10 then goto mdfx
  253. if s_xw.x[10]>0 then dwod.object.#10.width=s_xw.width[10]
  254. if s_xw.p<11 then goto mdfx
  255. if s_xw.x[11]>0 then dwod.object.#11.width=s_xw.width[11]
  256. if s_xw.p<12 then goto mdfx
  257. if s_xw.x[12]>0 then dwod.object.#12.width=s_xw.width[12]
  258. if s_xw.p<13 then goto mdfx
  259. if s_xw.x[13]>0 then dwod.object.#13.width=s_xw.width[13]
  260. if s_xw.p<14 then goto mdfx
  261. if s_xw.x[14]>0 then dwod.object.#14.width=s_xw.width[14]
  262. if s_xw.p<15 then goto mdfx
  263. if s_xw.x[15]>0 then dwod.object.#15.width=s_xw.width[15]
  264. if s_xw.p<16 then goto mdfx
  265. if s_xw.x[16]>0 then dwod.object.#16.width=s_xw.width[16]
  266. if s_xw.p<17 then goto mdfx
  267. if s_xw.x[17]>0 then dwod.object.#17.width=s_xw.width[17]
  268. if s_xw.p<18 then goto mdfx
  269. if s_xw.x[18]>0 then dwod.object.#18.width=s_xw.width[18]
  270. if s_xw.p<19 then goto mdfx
  271. if s_xw.x[19]>0 then dwod.object.#19.width=s_xw.width[19]
  272. if s_xw.p<20 then goto mdfx
  273. if s_xw.x[20]>0 then dwod.object.#20.width=s_xw.width[20]
  274. if s_xw.p<21 then goto mdfx
  275. if s_xw.x[21]>0 then dwod.object.#21.width=s_xw.width[21]
  276. if s_xw.p<22 then goto mdfx
  277. if s_xw.x[22]>0 then dwod.object.#22.width=s_xw.width[22]
  278. if s_xw.p<23 then goto mdfx
  279. if s_xw.x[23]>0 then dwod.object.#23.width=s_xw.width[23]
  280. if s_xw.p<24 then goto mdfx
  281. if s_xw.x[24]>0 then dwod.object.#24.width=s_xw.width[24]
  282. if s_xw.p<25 then goto mdfx
  283. if s_xw.x[25]>0 then dwod.object.#25.width=s_xw.width[25]
  284. if s_xw.p<26 then goto mdfx
  285. if s_xw.x[26]>0 then dwod.object.#26.width=s_xw.width[26]
  286. if s_xw.p<27 then goto mdfx
  287. if s_xw.x[27]>0 then dwod.object.#27.width=s_xw.width[27]
  288. if s_xw.p<28 then goto mdfx
  289. if s_xw.x[28]>0 then dwod.object.#28.width=s_xw.width[28]
  290. if s_xw.p<29 then goto mdfx
  291. if s_xw.x[29]>0 then dwod.object.#29.width=s_xw.width[29]
  292. mdfx:
  293. if mod(s_xw.cmplp,2)=1 then
  294. if s_xw.cmplx[1]>0 then dwod.object.cmpl1.x= s_xw.cmplx[1] - 9
  295. end if
  296. if s_xw.cmplp=2 or s_xw.cmplp=3 then
  297. if s_xw.cmplx[2]>0 then dwod.object.cmpl2.x= s_xw.cmplx[2] - 9
  298. end if
  299. if s_xw.cmplp=4 or s_xw.cmplp=6 or s_xw.cmplp=7 then
  300. if s_xw.cmplx[3]>0 then dwod.object.cmpl3.x= s_xw.cmplx[3] - 9
  301. end if
  302. long obp,bp,bi,bj,bk
  303. obp=0
  304. for bi=1 to s_xw.p
  305. bp=50000
  306. bk=0
  307. for bj=1 to s_xw.p
  308. if s_xw.x[bj]<bp and s_xw.x[bj]>obp and s_xw.x[bj]>0 then
  309. bp=s_xw.x[bj]
  310. bk=bj
  311. end if
  312. next
  313. if mod(s_xw.cmplp,2)=1 then
  314. if s_xw.cmplx[1]<bp and s_xw.cmplx[1]>obp and s_xw.cmplx[1]>0 then
  315. bp=s_xw.cmplx[1]
  316. bk=0
  317. bi = bi -1
  318. dwod.object.cmpl1.x= s_xw.cmplx[1] - 9
  319. end if
  320. end if
  321. wf_mdfx(s_xw,bk)
  322. obp=bp
  323. next
  324. if mod(s_xw.cmplp,2)=1 then
  325. if s_xw.cmplx[1]>0 then dwod.object.cmpl1.x= s_xw.cmplx[1] - 9
  326. end if
  327. if s_xw.cmplp=2 or s_xw.cmplp=3 then
  328. if s_xw.cmplx[2]>0 then dwod.object.cmpl2.x= s_xw.cmplx[2] - 9
  329. end if
  330. if s_xw.cmplp=4 or s_xw.cmplp=6 or s_xw.cmplp=7 then
  331. if s_xw.cmplx[3]>0 then dwod.object.cmpl3.x= s_xw.cmplx[3] - 9
  332. end if
  333. //if s_xw.x[1]>0 then dwod.object.#1.x=s_xw.x[1] - 1
  334. //if s_xw.p<2 then goto ext
  335. //if s_xw.x[2]>0 then dwod.object.#2.x=s_xw.x[2] - 1
  336. //if s_xw.p<3 then goto ext
  337. //if s_xw.x[3]>0 then dwod.object.#3.x=s_xw.x[3] - 1
  338. //if s_xw.p<4 then goto ext
  339. //if s_xw.x[4]>0 then dwod.object.#4.x=s_xw.x[4] - 1
  340. //if s_xw.p<5 then goto ext
  341. //if s_xw.x[5]>0 then dwod.object.#5.x=s_xw.x[5] - 1
  342. //if s_xw.p<6 then goto ext
  343. //if s_xw.x[6]>0 then dwod.object.#6.x=s_xw.x[6] - 1
  344. //if s_xw.p<7 then goto ext
  345. //if s_xw.x[7]>0 then dwod.object.#7.x=s_xw.x[7] - 1
  346. //if s_xw.p<8 then goto ext
  347. //if s_xw.x[8]>0 then dwod.object.#8.x=s_xw.x[8] - 1
  348. //if s_xw.p<9 then goto ext
  349. //if s_xw.x[9]>0 then dwod.object.#9.x=s_xw.x[9] - 1
  350. //if s_xw.p<10 then goto ext
  351. //if s_xw.x[10]>0 then dwod.object.#10.x=s_xw.x[10] - 1
  352. //if s_xw.p<11 then goto ext
  353. //if s_xw.x[11]>0 then dwod.object.#11.x=s_xw.x[11] - 1
  354. //if s_xw.p<12 then goto ext
  355. //if s_xw.x[12]>0 then dwod.object.#12.x=s_xw.x[12] - 1
  356. //if s_xw.p<13 then goto ext
  357. //if s_xw.x[13]>0 then dwod.object.#13.x=s_xw.x[13] - 1
  358. //if s_xw.p<14 then goto ext
  359. //if s_xw.x[14]>0 then dwod.object.#14.x=s_xw.x[14] - 1
  360. //if s_xw.p<15 then goto ext
  361. //if s_xw.x[15]>0 then dwod.object.#15.x=s_xw.x[15] - 1
  362. //if s_xw.p<16 then goto ext
  363. //if s_xw.x[16]>0 then dwod.object.#16.x=s_xw.x[16] - 1
  364. //if s_xw.p<17 then goto ext
  365. //if s_xw.x[17]>0 then dwod.object.#17.x=s_xw.x[17] - 1
  366. //if s_xw.p<18 then goto ext
  367. //if s_xw.x[18]>0 then dwod.object.#18.x=s_xw.x[18] - 1
  368. //if s_xw.p<19 then goto ext
  369. //if s_xw.x[19]>0 then dwod.object.#19.x=s_xw.x[19] - 1
  370. //if s_xw.p<20 then goto ext
  371. //if s_xw.x[20]>0 then dwod.object.#20.x=s_xw.x[20] - 1
  372. //if s_xw.p<21 then goto ext
  373. //if s_xw.x[21]>0 then dwod.object.#21.x=s_xw.x[21] - 1
  374. //if s_xw.p<22 then goto ext
  375. //if s_xw.x[22]>0 then dwod.object.#22.x=s_xw.x[22] - 1
  376. //if s_xw.p<23 then goto ext
  377. //if s_xw.x[23]>0 then dwod.object.#23.x=s_xw.x[23] - 1
  378. //if s_xw.p<24 then goto ext
  379. //if s_xw.x[24]>0 then dwod.object.#24.x=s_xw.x[24] - 1
  380. //if s_xw.p<25 then goto ext
  381. //if s_xw.x[25]>0 then dwod.object.#25.x=s_xw.x[25] - 1
  382. //if s_xw.p<26 then goto ext
  383. //if s_xw.x[26]>0 then dwod.object.#26.x=s_xw.x[26] - 1
  384. //if s_xw.p<27 then goto ext
  385. //if s_xw.x[27]>0 then dwod.object.#27.x=s_xw.x[27] - 1
  386. //if s_xw.p<28 then goto ext
  387. //if s_xw.x[28]>0 then dwod.object.#28.x=s_xw.x[28] - 1
  388. //if s_xw.p<29 then goto ext
  389. //if s_xw.x[29]>0 then dwod.object.#29.x=s_xw.x[29] - 1
  390. //
  391. //ext:
  392. return 0
  393. end function
  394. public function integer wf_mdfx (s_childreportxwidth s_xw, integer pt);//wf_mdfx(s_childreportxwidth,int)
  395. if s_xw.p=0 or pt=0 then
  396. return 0
  397. end if
  398. CHOOSE CASE pt
  399. CASE 1
  400. if s_xw.p>=1 and s_xw.x[1]>0 then dwod.object.#1.x=s_xw.x[1] - 9
  401. CASE 2
  402. if s_xw.p>=2 and s_xw.x[2]>0 then dwod.object.#2.x=s_xw.x[2] - 9
  403. CASE 3
  404. if s_xw.p>=3 and s_xw.x[3]>0 then dwod.object.#3.x=s_xw.x[3] - 9
  405. CASE 4
  406. if s_xw.p>=4 and s_xw.x[4]>0 then dwod.object.#4.x=s_xw.x[4] - 9
  407. CASE 5
  408. if s_xw.p>=5 and s_xw.x[5]>0 then dwod.object.#5.x=s_xw.x[5] - 9
  409. CASE 6
  410. if s_xw.p>=6 and s_xw.x[6]>0 then dwod.object.#6.x=s_xw.x[6] - 9
  411. CASE 7
  412. if s_xw.p>=7 and s_xw.x[7]>0 then dwod.object.#7.x=s_xw.x[7] - 9
  413. CASE 8
  414. if s_xw.p>=8 and s_xw.x[8]>0 then dwod.object.#8.x=s_xw.x[8] - 9
  415. CASE 9
  416. if s_xw.p>=9 and s_xw.x[9]>0 then dwod.object.#9.x=s_xw.x[9] - 9
  417. CASE 10
  418. if s_xw.p>=10 and s_xw.x[10]>0 then dwod.object.#10.x=s_xw.x[10] - 9
  419. CASE 11
  420. if s_xw.p>=11 and s_xw.x[11]>0 then dwod.object.#11.x=s_xw.x[11] - 9
  421. CASE 12
  422. if s_xw.p>=12 and s_xw.x[12]>0 then dwod.object.#12.x=s_xw.x[12] - 9
  423. CASE 13
  424. if s_xw.p>=13 and s_xw.x[13]>0 then dwod.object.#13.x=s_xw.x[13] - 9
  425. CASE 14
  426. if s_xw.p>=14 and s_xw.x[14]>0 then dwod.object.#14.x=s_xw.x[14] - 9
  427. CASE 15
  428. if s_xw.p>=15 and s_xw.x[15]>0 then dwod.object.#15.x=s_xw.x[15] - 9
  429. CASE 16
  430. if s_xw.p>=16 and s_xw.x[16]>0 then dwod.object.#16.x=s_xw.x[16] - 9
  431. CASE 17
  432. if s_xw.p>=17 and s_xw.x[17]>0 then dwod.object.#17.x=s_xw.x[17] - 9
  433. CASE 18
  434. if s_xw.p>=18 and s_xw.x[18]>0 then dwod.object.#18.x=s_xw.x[18] - 9
  435. CASE 19
  436. if s_xw.p>=19 and s_xw.x[19]>0 then dwod.object.#19.x=s_xw.x[19] - 9
  437. CASE 20
  438. if s_xw.p>=20 and s_xw.x[20]>0 then dwod.object.#20.x=s_xw.x[20] - 9
  439. CASE 21
  440. if s_xw.p>=21 and s_xw.x[21]>0 then dwod.object.#21.x=s_xw.x[21] - 9
  441. CASE 22
  442. if s_xw.p>=22 and s_xw.x[22]>0 then dwod.object.#22.x=s_xw.x[22] - 9
  443. CASE 23
  444. if s_xw.p>=23 and s_xw.x[23]>0 then dwod.object.#23.x=s_xw.x[23] - 9
  445. CASE 24
  446. if s_xw.p>=24 and s_xw.x[24]>0 then dwod.object.#24.x=s_xw.x[24] - 9
  447. CASE 25
  448. if s_xw.p>=25 and s_xw.x[25]>0 then dwod.object.#25.x=s_xw.x[25] - 9
  449. CASE 26
  450. if s_xw.p>=26 and s_xw.x[26]>0 then dwod.object.#26.x=s_xw.x[26] - 9
  451. CASE 27
  452. if s_xw.p>=27 and s_xw.x[27]>0 then dwod.object.#27.x=s_xw.x[27] - 9
  453. CASE 28
  454. if s_xw.p>=28 and s_xw.x[28]>0 then dwod.object.#28.x=s_xw.x[28] - 9
  455. CASE 29
  456. if s_xw.p>=29 and s_xw.x[29]>0 then dwod.object.#29.x=s_xw.x[29] - 9
  457. END CHOOSE
  458. return 0
  459. end function
  460. public function integer wf_initprinterinfo ();///////////////////////读取打印机信息
  461. //// 用uo取打印机列表
  462. //int ls_ii
  463. //p_printerlist = lnv_printer.of_GetPrinterList ( ins_printerlist )
  464. //
  465. //for ls_ii=1 to p_printerlist
  466. // ddlb_printerlist.additem(ins_printerlist[ls_ii])
  467. //next
  468. ////用dll取打印机列表
  469. //String printerlist = Space(512)
  470. //Long bufferlen = 512
  471. //Boolean rt
  472. //ddlb_printerlist.Reset()
  473. //Long p1,p2
  474. //p1 = 1
  475. //p2 = 0
  476. //rt = GetPrinterList(REF printerlist, REF bufferlen)
  477. //IF rt THEN
  478. // p2 = Pos(printerlist,"~t",p1)
  479. // DO WHILE p2 > 0
  480. // ddlb_printerlist.AddItem(Mid(printerlist,p1,p2 - p1))
  481. // p1 = p2+1
  482. // p2 = Pos(printerlist,"~t",p1)
  483. // LOOP
  484. //END IF
  485. //用pb取打印机列表
  486. String ls_left, ls_prntrs,ls_printername
  487. Long ll_pos_n,ll_pos_t
  488. ddlb_printerlist.Reset()
  489. ls_prntrs = PrintGetPrinters()
  490. DO WHILE Len(Trim(ls_prntrs)) > 0
  491. ll_pos_n = Pos (ls_prntrs, "~n" )
  492. IF ll_pos_n > 0 THEN
  493. ls_left = Left (ls_prntrs, ll_pos_n - 1)
  494. ll_pos_t = Pos (ls_left, "~t" )
  495. ls_printername = Left (ls_left, ll_pos_t - 1)
  496. ddlb_printerlist.AddItem(ls_printername)
  497. ls_prntrs = Mid (ls_prntrs, ll_pos_n + 1)
  498. ELSE
  499. ll_pos_t = Pos (ls_prntrs, "~t" )
  500. ls_printername = Left (ls_prntrs, ll_pos_t - 1)
  501. ddlb_printerlist.AddItem(ls_printername)
  502. ls_prntrs = ''
  503. END IF
  504. LOOP
  505. // 取PB缺省打印机
  506. default_printer = lnv_printer.of_GetPBPrinter ( )
  507. //// 取dll缺省打印机
  508. //String printerName
  509. //Boolean rt_1
  510. //printerName = Space(255)
  511. //rt_1 = GetDefaultPrinter(REF printerName, 255)
  512. //IF rt_1 THEN
  513. // default_printer = Trim(printerName)
  514. //ELSE
  515. // default_printer = ''
  516. //END IF
  517. //取PB缺省打印机设置字符串
  518. default_printer_info=ProfileString ( "win.ini", "windows", "device", "" )
  519. return 0
  520. end function
  521. public function integer wf_setdefaultprinter ();///wf_setdefaultprinter
  522. if default_printer_info='' or pos(default_printer_info,',')=0 then return 0
  523. setProfileString ( "win.ini", "windows", "device", default_printer_info )
  524. return 1
  525. end function
  526. public function integer wf_write_childdw_pos (string arg_childdw_name, s_childreportxwidth arg_s_xwidth);//wf_write_childdw_pos(string arg_childdw_name,s_childreportxwidth arg_s_xwidth)
  527. //
  528. long ls_clmxp,ls_clm_cmplxp
  529. long i,j
  530. //列数
  531. ls_clmxp=arg_s_xwidth.p
  532. if ls_clmxp > 0 then
  533. for i=1 to ls_clmxp
  534. SetProfileString (sys_inifilename,arg_childdw_name, string(i)+".x",string(arg_s_xwidth.x[i]))
  535. SetProfileString (sys_inifilename,arg_childdw_name, string(i)+".width",string(arg_s_xwidth.width[i]))
  536. next
  537. end if
  538. //计算列数量
  539. ls_clm_cmplxp=arg_s_xwidth.cmplp
  540. choose case ls_clm_cmplxp
  541. case 1
  542. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(1)+".x",string(arg_s_xwidth.cmplx[1]))
  543. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(1)+".width",string(arg_s_xwidth.cmplwidth[1]))
  544. case 2
  545. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".x",string(arg_s_xwidth.cmplx[2]))
  546. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".width",string(arg_s_xwidth.cmplwidth[2]))
  547. case 3
  548. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(1)+".x",string(arg_s_xwidth.cmplx[1]))
  549. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(1)+".width",string(arg_s_xwidth.cmplwidth[1]))
  550. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".x",string(arg_s_xwidth.cmplx[2]))
  551. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".width",string(arg_s_xwidth.cmplwidth[2]))
  552. case 4
  553. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(4)+".x",string(arg_s_xwidth.cmplx[4]))
  554. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(4)+".width",string(arg_s_xwidth.cmplwidth[4]))
  555. case 5
  556. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".x",string(arg_s_xwidth.cmplx[2]))
  557. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".width",string(arg_s_xwidth.cmplwidth[2]))
  558. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(3)+".x",string(arg_s_xwidth.cmplx[3]))
  559. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(3)+".width",string(arg_s_xwidth.cmplwidth[3]))
  560. case 6
  561. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".x",string(arg_s_xwidth.cmplx[2]))
  562. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".width",string(arg_s_xwidth.cmplwidth[2]))
  563. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(4)+".x",string(arg_s_xwidth.cmplx[3]))
  564. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(4)+".width",string(arg_s_xwidth.cmplwidth[3]))
  565. case 7
  566. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(1)+".x",string(arg_s_xwidth.cmplx[1]))
  567. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(1)+".width",string(arg_s_xwidth.cmplwidth[1]))
  568. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".x",string(arg_s_xwidth.cmplx[2]))
  569. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(2)+".width",string(arg_s_xwidth.cmplwidth[2]))
  570. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(4)+".x",string(arg_s_xwidth.cmplx[3]))
  571. SetProfileString (sys_inifilename,arg_childdw_name, "cmpl"+string(4)+".width",string(arg_s_xwidth.cmplwidth[3]))
  572. end choose
  573. return 1
  574. end function
  575. public function integer wf_read_childdw_pos (string arg_childdw_name, ref s_childreportxwidth arg_s_xwidth);//f_read_childdw_pos(string arg_childdw_name,s_childreportxwidth arg_s_xwidth)
  576. //
  577. int ls_i,ls_clmno
  578. int rslt=1
  579. datastore obj_dw
  580. obj_dw =create datastore
  581. obj_dw.dataobject=arg_childdw_name
  582. obj_dw.settransobject(sqlca)
  583. ls_clmno=integer(obj_dw.Describe('DataWindow.Column.Count'))
  584. if ls_clmno=0 then
  585. rslt=0
  586. goto ext
  587. end if
  588. for ls_i=1 to ls_clmno
  589. long column_xpos,column_width
  590. column_xpos=long(ProfileString(sys_inifilename,arg_childdw_name, string(ls_i)+".x",'-1'))
  591. column_width=long(ProfileString(sys_inifilename,arg_childdw_name, string(ls_i)+".width",'-1'))
  592. if column_xpos = -1 or column_width = -1 then
  593. rslt=0
  594. goto ext
  595. end if
  596. arg_s_xwidth.width[ls_i]=column_width
  597. arg_s_xwidth.x[ls_i]=column_xpos
  598. next
  599. arg_s_xwidth.p=ls_clmno
  600. if obj_dw.Describe('cmpl1.name')='cmpl1' then
  601. arg_s_xwidth.cmplwidth[1]=long(ProfileString(sys_inifilename,arg_childdw_name, "cmpl1.width",'-1'))
  602. arg_s_xwidth.cmplx[1]=long(ProfileString(sys_inifilename,arg_childdw_name, "cmpl1.x",'-1'))
  603. if arg_s_xwidth.cmplx[1] = -1 or arg_s_xwidth.cmplwidth[1] = -1 then
  604. rslt=0
  605. goto ext
  606. end if
  607. arg_s_xwidth.cmplp=1
  608. end if
  609. if obj_dw.Describe('cmpl2.name')='cmpl2' then
  610. arg_s_xwidth.cmplwidth[2]=long(ProfileString(sys_inifilename,arg_childdw_name, "cmpl2.width",'-1'))
  611. arg_s_xwidth.cmplx[2]=long(ProfileString(sys_inifilename,arg_childdw_name, "cmpl2.x",'-1'))
  612. if arg_s_xwidth.cmplx[2] = -1 or arg_s_xwidth.cmplwidth[2] = -1 then
  613. rslt=0
  614. goto ext
  615. end if
  616. arg_s_xwidth.cmplp=arg_s_xwidth.cmplp+2
  617. end if
  618. if obj_dw.Describe('cmpl3.name')='cmpl3' then
  619. arg_s_xwidth.cmplwidth[3]=long(ProfileString(sys_inifilename,arg_childdw_name, "cmpl3.width",'-1'))
  620. arg_s_xwidth.cmplx[3]=long(ProfileString(sys_inifilename,arg_childdw_name, "cmpl3.x",'-1'))
  621. if arg_s_xwidth.cmplx[3] = -1 or arg_s_xwidth.cmplwidth[3] = -1 then
  622. rslt=0
  623. goto ext
  624. end if
  625. arg_s_xwidth.cmplp=arg_s_xwidth.cmplp+4
  626. end if
  627. ext:
  628. return rslt
  629. end function
  630. public subroutine wf_readini_begin ();dwod=dw_1.object.mxreport
  631. s_mdfxwidth_tran s_mdfxw_tran
  632. s_mdfxw_tran.retrieveid=retrieveid
  633. if em_1.enabled then
  634. secondretrieveid=long(em_1.text)
  635. end if
  636. s_mdfxw_tran.secondretrieveid=secondretrieveid
  637. s_mdfxw_tran.dataobject=dwod.dataobject
  638. if wf_read_childdw_pos(dwod.dataobject,s_xwidth)=0 then
  639. return
  640. end if
  641. wf_mdfmxreport(s_xwidth)
  642. end subroutine
  643. public function integer wf_trycreate_sys_dwnsyntax (ref string arg_msg);//wf_trycreate_sys_dwnsyntax
  644. long rslt=1
  645. long cnt
  646. string createsql_string,t_str
  647. createsql_string="CREATE TABLE sys_dwnSyntax ( dwname char (50) NOT NULL,dname char (50) NOT NULL,default_flag tinyint not null default (0),dwSyntaxB image not NULL DEFAULT (''),subdwSyntaxB image not NULL DEFAULT ('')) "+&
  648. " ~n ALTER TABLE sys_dwnSyntax WITH NOCHECK ADD CONSTRAINT PK_sys_dwnSyntax PRIMARY KEY CLUSTERED (dwname,dname)"
  649. t_str="select count(*) from sys_dwnSyntax"
  650. Execute immediate :t_str;
  651. if sqlca.sqlcode=0 then //已经存在该表
  652. rslt=1
  653. goto ext
  654. end if
  655. Execute immediate :createsql_string ;
  656. if sqlca.sqlcode<>0 then
  657. arg_msg='建立表sys_dwnSyntax失败>>'+sqlca.sqlerrtext
  658. rollback ;
  659. rslt=0
  660. goto ext
  661. end if
  662. commit ;
  663. ext:
  664. return rslt
  665. return 0
  666. end function
  667. public function integer wf_dwcreate (string arg_dwname, string arg_formatname, ref string arg_errmsg);blob dwSyntax
  668. int rslt=1
  669. selectblob dwSyntaxB into :dwSyntax from sys_dwnSyntax where dwname=:arg_dwname and dname=:arg_formatname;
  670. if sqlca.sqlcode=-1 then
  671. Messagebox('系统提示','查询单据格式失败,原因:'+sqlca.sqlerrtext)
  672. rslt=0
  673. goto ext
  674. end if
  675. //Messagebox('string(dwSyntax)',string(dwSyntax))
  676. if dw_1.create(string(dwSyntax),arg_errmsg)<>1 then
  677. Messagebox('系统提示',arg_errmsg)
  678. goto ext
  679. end if
  680. dw_1.object.DataWindow.Print.Preview = 'yes'
  681. // dw_1.Object.DataWindow.Print.Duplex = 2
  682. dw_1.Object.DataWindow.Print.Preview.Rulers = "yes"
  683. ext:
  684. return rslt
  685. end function
  686. public subroutine wf_defdataobject ();String errmsg
  687. Long ls_count,rslt = 1
  688. Blob sqlblob
  689. SELECT count(*) INTO :ls_count FROM sys_dwnSyntax Where dwname = :fact_print_msg.obj_dwname AND default_flag = 1 ;
  690. IF sqlca.SQLCode = -1 THEN
  691. MessageBox('系统提示','查询单据格式失败'+sqlca.SQLErrText)
  692. RETURN
  693. END IF
  694. IF ls_count = 1 THEN
  695. SELECT dwname,dname INTO :default_dwname,:default_dname FROM sys_dwnSyntax Where dwname = :fact_print_msg.obj_dwname AND default_flag = 1 ;
  696. IF sqlca.SQLCode = -1 THEN
  697. MessageBox('系统提示','查询单据格式失败'+sqlca.SQLErrText)
  698. RETURN
  699. END IF
  700. IF wf_dwcreate(default_dwname,default_dname,errmsg) = 0 THEN
  701. MessageBox('系统提示','打开单据格式失败!原因:'+errmsg)
  702. RETURN
  703. END IF
  704. st_4.Text = default_dname
  705. dw_1.SetTransObject(sqlca)
  706. ELSEIF ls_count = 0 THEN
  707. st_4.Text = '标准格式'
  708. END IF
  709. st_5.text = dw_1.dataobject
  710. end subroutine
  711. public subroutine wf_subdwpos_strutoblob (s_childreportxwidth arg_s_xwidth, ref blob subdwpos);long ls_clmxp,ls_cmplxp
  712. long i,j
  713. string x_str,width_str,clmxp_str,cmpx_str,cmpwidth_str,cmp_str,subdwstr
  714. //列数
  715. ls_clmxp=arg_s_xwidth.p
  716. if ls_clmxp > 0 then
  717. for i=1 to ls_clmxp
  718. x_str=x_str+string(arg_s_xwidth.x[i])+','
  719. width_str=width_str+string(arg_s_xwidth.width[i])+','
  720. next
  721. x_str=left(x_str,len(x_str) - 1)+';'
  722. width_str=left(width_str,len(width_str) - 1)+';'
  723. clmxp_str='P:'+string(ls_clmxp)+';x:'+x_str+'width:'+width_str
  724. end if
  725. //Messagebox('clmxp_str',clmxp_str)
  726. ls_cmplxp=arg_s_xwidth.cmplp
  727. if ls_cmplxp>0 then
  728. for i= 1 to upperbound(arg_s_xwidth.cmplx)
  729. cmpwidth_str=cmpwidth_str+string(arg_s_xwidth.cmplwidth[i])+','
  730. cmpx_str=cmpx_str+string(arg_s_xwidth.cmplx[i])+','
  731. next
  732. cmpx_str=left(cmpx_str,len(cmpx_str) - 1)+';'
  733. cmpwidth_str=left(cmpwidth_str,len(cmpwidth_str) - 1)+';'
  734. cmp_str='cmplp:'+string(ls_cmplxp)+';x:'+cmpx_str+'width:'+cmpwidth_str
  735. end if
  736. //Messagebox('cmp_str',cmp_str)
  737. //Messagebox('',clmxp_str+cmp_str)
  738. subdwpos=blob(clmxp_str+cmp_str)
  739. //s_subdwxwidth
  740. end subroutine
  741. public subroutine wf_subdwpos_blobtostru (blob arg_blob, ref s_childreportxwidth arg_s_xwidth);//wf_subdwpos_blobtostru(arg_blob,arg_s_xwidth)
  742. string subdwpos_str,clm_str,cmp_str,clm_strx,clm_strwidth,cmplp_x,cmplp_width
  743. long clm_p,cmplp,i
  744. subdwpos_str=string(arg_blob)
  745. if pos(subdwpos_str,'cmplp:') > 0 then
  746. clm_str=mid(subdwpos_str,1,pos(subdwpos_str,'cmplp:') - 1)
  747. else
  748. clm_str=mid(subdwpos_str,1)
  749. end if
  750. cmp_str=mid(subdwpos_str,pos(subdwpos_str,'cmplp:'))
  751. clm_strx=mid(clm_str,pos(clm_str,'x:')+2,pos(clm_str,';width:') - pos(clm_str,'x:') - 1 ) //x_str
  752. clm_strwidth=mid(clm_str,pos(clm_str,'width:') + 6) //width_str
  753. cmplp_x=mid(cmp_str,pos(cmp_str,'x:')+2,pos(cmp_str,';width:') - pos(cmp_str,'x:') - 1 )
  754. cmplp_width=mid(cmp_str,pos(cmp_str,'width:') + 6) //cmplpwidth_str
  755. clm_p=long(mid(clm_str,3,pos(clm_str,';') - 3)) //P
  756. cmplp=long(mid(cmp_str,7,pos(cmp_str,';') - 7)) //cmplp
  757. arg_s_xwidth.p=clm_p
  758. arg_s_xwidth.cmplp=cmplp
  759. //messagebox('all',subdwpos_str)
  760. //MEssagebox('clm_str',clm_str)
  761. //MEssagebox('cmp_str',cmp_str)
  762. //
  763. //MEssagebox('clm_p',clm_p)
  764. //MEssagebox('cmplp',cmplp)
  765. //
  766. //MEssagebox('clm_strx',clm_strx)
  767. //MEssagebox('clm_strwidth',clm_strwidth)
  768. long xmx
  769. string xstr
  770. xmx=0
  771. xstr=''
  772. for i =1 to len(clm_strx) //x
  773. if mid(clm_strx,i,1)<>',' and mid(clm_strx,i,1)<>';' then
  774. xstr=xstr+mid(clm_strx,i,1)
  775. else
  776. xmx++
  777. arg_s_xwidth.x[xmx]=long(xstr)
  778. xstr=''
  779. end if
  780. next
  781. xmx=0
  782. xstr=''
  783. for i =1 to len(clm_strwidth) //width
  784. if mid(clm_strwidth,i,1)<>',' and mid(clm_strwidth,i,1)<>';' then
  785. xstr=xstr+mid(clm_strwidth,i,1)
  786. else
  787. xmx++
  788. arg_s_xwidth.width[xmx]=long(xstr)
  789. xstr=''
  790. end if
  791. next
  792. xmx=0
  793. xstr=''
  794. for i =1 to len(cmplp_x) //cmplp_x
  795. if mid(cmplp_x,i,1)<>',' and mid(cmplp_x,i,1)<>';' then
  796. xstr=xstr+mid(cmplp_x,i,1)
  797. else
  798. xmx++
  799. arg_s_xwidth.cmplx[xmx]=long(xstr)
  800. xstr=''
  801. end if
  802. next
  803. xmx=0
  804. xstr=''
  805. for i =1 to len(cmplp_width) //cmplp_width
  806. if mid(cmplp_width,i,1)<>',' and mid(cmplp_width,i,1)<>';' then
  807. xstr=xstr+mid(cmplp_width,i,1)
  808. else
  809. xmx++
  810. arg_s_xwidth.cmplwidth[xmx]=long(xstr)
  811. xstr=''
  812. end if
  813. next
  814. //messagebox('','sdfsdf')
  815. end subroutine
  816. public subroutine wf_dowithm (integer commid);//wf_dowithm
  817. String errmsg
  818. Blob subdwpos
  819. s_childreportxwidth s_subdwpos
  820. CHOOSE CASE commid
  821. CASE 1
  822. cb_mdfmxrp.TriggerEvent(Clicked!)
  823. CASE 21
  824. String ls_STR,ls_subsy
  825. ls_STR = dw_1.Describe("DataWindow.Syntax")
  826. s_preview_billformatset_tran s_billformat
  827. s_billformat.dwname = dw_1.DataObject
  828. s_billformat.dname = st_4.Text
  829. s_billformat.dwsyntaxb = Blob(ls_STR)
  830. wf_subdwpos_strutoblob(s_xwidth,subdwpos)
  831. s_billformat.subdwsyntaxb = subdwpos
  832. OpenWithParm(w_publ_preview_billformatset,s_billformat)
  833. s_billformat = Message.PowerObjectParm
  834. IF s_billformat.dname <> '' And s_billformat.dname <> '标准格式' THEN
  835. IF wf_dwcreate(s_billformat.dwname,s_billformat.dname,errmsg) = 0 THEN
  836. MessageBox('系统提示','打开单据格式失败!原因:'+errmsg)
  837. RETURN
  838. END IF
  839. END IF
  840. IF s_billformat.dname = '标准格式' THEN
  841. dw_1.DataObject = dw_1.DataObject
  842. END IF
  843. IF s_billformat.dname <> '' THEN
  844. s_childreportxwidth s_subdw
  845. st_4.Text = s_billformat.dname
  846. // wf_subdwpos_blobtostru(s_billformat.subdwsyntaxb,s_subdw)
  847. // wf_mdfmxreport(s_subdw)
  848. dw_1.Object.DataWindow.Print.Preview = 'yes'
  849. // dw_1.Object.DataWindow.Print.Duplex = 2
  850. dw_1.Object.DataWindow.Print.Preview.Rulers = "yes"
  851. dw_1.SetTransObject(sqlca)
  852. cb_refresh.TriggerEvent(Clicked!)
  853. END IF
  854. IF wf_read_subdwpos(dw_1.DataObject,s_billformat.dname,s_subdwpos,errmsg) = 0 THEN
  855. MessageBox('系统信息',errmsg)
  856. RETURN
  857. ELSE
  858. wf_mdfmxreport(s_subdwpos)
  859. END IF
  860. CASE 22
  861. st_4.Text = '标准格式'
  862. dw_1.DataObject = dw_1.DataObject
  863. dw_1.Object.DataWindow.Print.Preview = 'yes'
  864. // dw_1.Object.DataWindow.Print.Duplex = 2
  865. dw_1.Object.DataWindow.Print.Preview.Rulers = "yes"
  866. dw_1.SetTransObject(sqlca)
  867. dw_retrieve()
  868. END CHOOSE
  869. end subroutine
  870. public function integer wf_read_subdwpos (string arg_dwname, string arg_dname, ref s_childreportxwidth s_subdwwidth, ref string arg_msg);//wf_read_subdwpos(arg_dwname,arg_dname,arg_msg)
  871. Blob ls_subdwSyntaxB
  872. Int rslt = 1
  873. SELECTBLOB subdwSyntaxB INTO :ls_subdwSyntaxB FROM sys_dwnSyntax Where dwname = :arg_dwname AND dname = :arg_dname;
  874. IF sqlca.SQLCode = -1 THEN
  875. arg_msg = '读取单据明细表格式失败,'+sqlca.SQLErrText
  876. rslt = 0
  877. GOTO ext
  878. END IF
  879. IF Len(trim(string(ls_subdwSyntaxB))) > 0 THEN
  880. dwod = dw_1.Object.mxreport
  881. wf_subdwpos_blobtostru(ls_subdwSyntaxB,s_subdwwidth)
  882. END IF
  883. ext:
  884. RETURN rslt
  885. end function
  886. public subroutine wf_nullrow (long arg_rowcnt, long arg_pagerow, ref long arg_nullrow);//====================================================================
  887. // Function: wf_nullrow()
  888. //--------------------------------------------------------------------
  889. // Description:返回加空行数
  890. //--------------------------------------------------------------------
  891. // Arguments:
  892. // value long arg_rowcnt
  893. // value long arg_pagerow
  894. // reference long arg_nullrow
  895. //--------------------------------------------------------------------
  896. // Returns: (none)
  897. //--------------------------------------------------------------------
  898. // Author: yyx Date: 2004.09.13
  899. //--------------------------------------------------------------------
  900. // Modify History:
  901. //
  902. //====================================================================
  903. Long pagecnt,tal_rowcnt
  904. pagecnt = Long(arg_rowcnt / arg_pagerow)
  905. tal_rowcnt += arg_rowcnt
  906. //小计
  907. IF cbx_ifprint_xj.Checked THEN
  908. tal_rowcnt += pagecnt
  909. END IF
  910. //合计
  911. IF cbx_ifprint_hj.Checked THEN
  912. tal_rowcnt += 1
  913. END IF
  914. //tal_rowcnt = arg_rowcnt + pagecnt + 1
  915. IF Mod(tal_rowcnt,arg_pagerow) <> 0 THEN
  916. arg_nullrow = arg_pagerow - Mod(tal_rowcnt,arg_pagerow)
  917. ELSE
  918. arg_nullrow = 0
  919. END IF
  920. end subroutine
  921. public function integer f_export ();Blob subdwpos
  922. String ls_STR,ls_subsy
  923. s_childreportxwidth s_subdwpos
  924. ls_STR = dw_1.Describe("DataWindow.Syntax")
  925. s_preview_billformatset_tran s_billformat
  926. s_billformat.dwname = dw_1.DataObject
  927. s_billformat.dname = st_4.Text
  928. s_billformat.dwsyntaxb = Blob(ls_STR)
  929. wf_subdwpos_strutoblob(s_xwidth,subdwpos)
  930. s_billformat.subdwsyntaxb = subdwpos
  931. s_billformat.ifimporflag = 1
  932. OpenWithParm(w_report_inexport,s_billformat)
  933. RETURN 1
  934. end function
  935. public function integer f_inport ();Blob subdwpos
  936. String ls_STR,ls_subsy
  937. s_childreportxwidth s_subdwpos
  938. // ls_STR=dw_1.Describe("DataWindow.Syntax")
  939. s_preview_billformatset_tran s_billformat
  940. // s_billformat.dwname=dw_1.dataobject
  941. // s_billformat.dname=st_4.text
  942. // s_billformat.dwsyntaxb=blob(ls_STR)
  943. // wf_subdwpos_strutoblob(s_xwidth,subdwpos)
  944. // s_billformat.subdwsyntaxb=subdwpos
  945. s_billformat.ifimporflag = 0
  946. OpenWithParm(w_report_inexport,s_billformat)
  947. //s_billformat = message.powerobjectparm
  948. RETURN 1
  949. end function
  950. public function integer wf_check_mxreport ();Int rslt = 1
  951. //datawindowchild childdw
  952. //
  953. //dw_uc.GetChild("u_outware_storageid",childdw)
  954. //childdw.SetTransObject (sqlca)
  955. //IF childdw.Retrieve(cur_scid,sys_user_storageid) = 0 THEN
  956. // childdw.InsertRow(0)
  957. //END IF
  958. //
  959. RETURN rslt
  960. end function
  961. public subroutine dw_retrieve ();//dw_retrieve
  962. CHOOSE CASE fact_print_msg.retr_pram_falg
  963. CASE 0 //SHARE DATAWINDOW
  964. DATAWINDOW LS_DW
  965. LS_DW = fact_print_msg.SHARE_DW
  966. LS_DW.ShareData(DW_1)
  967. CASE 1 //ONE STRING PRAM
  968. DW_1.Retrieve(fact_print_msg.retr_pramstr)
  969. CASE 2 //ONE NUMBER PRAM
  970. DW_1.Retrieve(fact_print_msg.retr_pramnmb)
  971. retrieveid = fact_print_msg.retr_pramnmb
  972. CASE 3 //ONE DATE PRAM
  973. DW_1.Retrieve(fact_print_msg.retr_pramfd)
  974. CASE 4 //TWO DATE PRAM
  975. DW_1.Retrieve(fact_print_msg.retr_pramfd,fact_print_msg.retr_pramed)
  976. CASE 5 //TWO NUMBER PRAM
  977. DW_1.Retrieve(fact_print_msg.retr_pramnmb,fact_print_msg.b_long)
  978. CASE 6 //TWO DATETIME PRAM
  979. DW_1.Retrieve(fact_print_msg.retr_pramfdt,fact_print_msg.retr_pramedt)
  980. CASE 7 //scid and TWO DATETIME PRAM
  981. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramfdt,fact_print_msg.retr_pramedt)
  982. CASE 8 //scid,long and TWO DATETIME PRAM
  983. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramnmb,fact_print_msg.retr_pramfdt,fact_print_msg.retr_pramedt)
  984. CASE 9 //TWO NUMBER PRAM and one string pram
  985. DW_1.Retrieve(fact_print_msg.retr_pramnmb,fact_print_msg.retr_pramstr,fact_print_msg.b_long)
  986. CASE 11 //scid string
  987. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramstr)
  988. CASE 12 //scid long
  989. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramnmb)
  990. CASE 13 //scid long and TWO NUMBER PRAM
  991. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramnmb,fact_print_msg.b_long)
  992. CASE 14 //ONE NUMBER PRAM and ONE STRING PRAM
  993. DW_1.Retrieve(fact_print_msg.retr_pramnmb,fact_print_msg.retr_pramstr)
  994. CASE 15 //scid long and TWO NUMBER PRAM and null_row
  995. wf_nullrow(fact_print_msg.rowcnt,fact_print_msg.printrow,fact_print_msg.nullrow)
  996. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramnmb,fact_print_msg.printrow,fact_print_msg.nullrow)
  997. CASE 16 //scid long and TWO NUMBER PRAM and null_row
  998. wf_nullrow(fact_print_msg.rowcnt,fact_print_msg.printrow,fact_print_msg.nullrow)
  999. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramstr,fact_print_msg.printrow,fact_print_msg.nullrow)
  1000. CASE 17 //SCID LONG AND STRING_ARRAY and null_row
  1001. wf_nullrow(fact_print_msg.rowcnt,fact_print_msg.printrow,fact_print_msg.nullrow)
  1002. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.a_string_arr,fact_print_msg.printrow,fact_print_msg.nullrow,fact_print_msg.retr_pramfdt,fact_print_msg.retr_pramedt)
  1003. case 18
  1004. DW_1.Retrieve(fact_print_msg.retr_scid,fact_print_msg.retr_pramnmb,fact_print_msg.b_long,fact_print_msg.c_long)
  1005. CASE ELSE
  1006. DW_1.Retrieve()
  1007. END CHOOSE
  1008. IF fact_print_msg.retr_pram_falg <> 0 THEN
  1009. DW_1.SetFilter(fact_print_msg.FILTER_STRING)
  1010. DW_1.Filter()
  1011. END IF
  1012. //dw_1.object.title.text=sys_message_report_title
  1013. //messagebox('',sys_message_report_title)
  1014. end subroutine
  1015. public subroutine wf_add_pic ();Long Columns,i,j,k
  1016. String ls_modify_str
  1017. Boolean lb_find = False
  1018. IF Pos(Lower(dw_1.Describe("DataWindow.Objects")),'print_picture') > 0 THEN
  1019. Columns = Long(dw_1.Describe("DataWindow.Column.Count"))
  1020. FOR i = 1 To Columns
  1021. ls_modify_str = dw_1.Describe("#" + String(i) + ".name")
  1022. ls_modify_str = Lower(ls_modify_str)
  1023. IF Pos(ls_modify_str,'mtrlid') > 0 Or Pos(ls_modify_str,'_mtrlid') > 0 THEN
  1024. lb_find = True
  1025. EXIT
  1026. END IF
  1027. NEXT
  1028. IF lb_find THEN
  1029. FOR j = 1 To dw_1.RowCount()
  1030. IF dw_1.GetItemNumber( j, ls_modify_str ) > 0 THEN
  1031. FOR k = 1 To UpperBound(fact_print_msg.s_pic.path)
  1032. IF dw_1.GetItemNumber( j, ls_modify_str ) = fact_print_msg.s_pic.mtrlid[k] THEN
  1033. dw_1.Object.Print_Picture[j] = fact_print_msg.s_pic.path[k]
  1034. END IF
  1035. NEXT
  1036. ELSE
  1037. EXIT
  1038. END IF
  1039. NEXT
  1040. END IF
  1041. END IF
  1042. //String a,c
  1043. //a = childwod.dataobject
  1044. //datastore b
  1045. //b = create datastore
  1046. //b.DataObject = a
  1047. //b.SetTransObject (sqlca)
  1048. //
  1049. //IF dw_1.Describe('mxreport.type') = 'report' And Pos(Lower(b.Describe("DataWindow.Objects")),'print_picture') > 0 THEN
  1050. // Columns = Long(b.Describe("DataWindow.Column.Count"))
  1051. // childwod = dw_1.Object.mxreport
  1052. //
  1053. // FOR i = 1 To Columns
  1054. // ls_modify_str = b.Describe("#" + String(i) + ".name")
  1055. // ls_modify_str = Lower(ls_modify_str)
  1056. // IF Pos(Lower(ls_modify_str),'mtrlid') > 0 Or Pos(Lower(ls_modify_str),'_mtrlid') > 0 THEN
  1057. // FOR j = 1 To 1
  1058. // FOR k = 1 To UpperBound(fact_print_msg.s_pic.path)
  1059. //// IF childwod.GetItemNumber( j, ls_modify_str ) = fact_print_msg.s_pic.mtrlid[k] THEN
  1060. // childwod.Object.Print_Picture[j] = fact_print_msg.s_pic.path[k]
  1061. //// END IF
  1062. // NEXT
  1063. // NEXT
  1064. // END IF
  1065. // NEXT
  1066. //ELSE
  1067. //END IF
  1068. end subroutine
  1069. public subroutine wf_clear_temp ();
  1070. String ls_label
  1071. String ls_type,LS_PATH
  1072. Int li_count,i = 1
  1073. ls_type = "*.*"
  1074. LS_PATH = sys_cur_path+ins_fjtemppath
  1075. lb_1.Reset()
  1076. lb_1.DirList(LS_PATH+'\'+ls_type, 0)
  1077. li_count = lb_1.TotalItems()
  1078. IF li_count > 0 THEN
  1079. FOR i = li_count TO 1 STEP -1
  1080. ls_label = lb_1.Text(i)
  1081. if pos(ls_label,String(sys_empid) + '_' + fact_print_msg.obj_dwname) > 0 then
  1082. FileDelete(LS_PATH+'\' + ls_label)
  1083. end if
  1084. NEXT
  1085. END IF
  1086. end subroutine
  1087. on w_publ_preview.create
  1088. int iCurrent
  1089. call super::create
  1090. this.cb_refresh=create cb_refresh
  1091. this.st_1=create st_1
  1092. this.cb_savestyle=create cb_savestyle
  1093. this.cb_3=create cb_3
  1094. this.ddlb_1=create ddlb_1
  1095. this.dw_1=create dw_1
  1096. this.ddlb_printerlist=create ddlb_printerlist
  1097. this.em_1=create em_1
  1098. this.st_2=create st_2
  1099. this.cbx_select_page=create cbx_select_page
  1100. this.cb_mdfmxrp=create cb_mdfmxrp
  1101. this.st_3=create st_3
  1102. this.st_4=create st_4
  1103. this.cb_1=create cb_1
  1104. this.lb_1=create lb_1
  1105. this.st_5=create st_5
  1106. this.st_6=create st_6
  1107. this.cbx_ifprint_xj=create cbx_ifprint_xj
  1108. this.cbx_ifprint_hj=create cbx_ifprint_hj
  1109. this.cb_2=create cb_2
  1110. this.ln_bar=create ln_bar
  1111. this.ln_bar2=create ln_bar2
  1112. this.r_bar=create r_bar
  1113. this.ln_1=create ln_1
  1114. this.ln_2=create ln_2
  1115. iCurrent=UpperBound(this.Control)
  1116. this.Control[iCurrent+1]=this.cb_refresh
  1117. this.Control[iCurrent+2]=this.st_1
  1118. this.Control[iCurrent+3]=this.cb_savestyle
  1119. this.Control[iCurrent+4]=this.cb_3
  1120. this.Control[iCurrent+5]=this.ddlb_1
  1121. this.Control[iCurrent+6]=this.dw_1
  1122. this.Control[iCurrent+7]=this.ddlb_printerlist
  1123. this.Control[iCurrent+8]=this.em_1
  1124. this.Control[iCurrent+9]=this.st_2
  1125. this.Control[iCurrent+10]=this.cbx_select_page
  1126. this.Control[iCurrent+11]=this.cb_mdfmxrp
  1127. this.Control[iCurrent+12]=this.st_3
  1128. this.Control[iCurrent+13]=this.st_4
  1129. this.Control[iCurrent+14]=this.cb_1
  1130. this.Control[iCurrent+15]=this.lb_1
  1131. this.Control[iCurrent+16]=this.st_5
  1132. this.Control[iCurrent+17]=this.st_6
  1133. this.Control[iCurrent+18]=this.cbx_ifprint_xj
  1134. this.Control[iCurrent+19]=this.cbx_ifprint_hj
  1135. this.Control[iCurrent+20]=this.cb_2
  1136. this.Control[iCurrent+21]=this.ln_bar
  1137. this.Control[iCurrent+22]=this.ln_bar2
  1138. this.Control[iCurrent+23]=this.r_bar
  1139. this.Control[iCurrent+24]=this.ln_1
  1140. this.Control[iCurrent+25]=this.ln_2
  1141. end on
  1142. on w_publ_preview.destroy
  1143. call super::destroy
  1144. destroy(this.cb_refresh)
  1145. destroy(this.st_1)
  1146. destroy(this.cb_savestyle)
  1147. destroy(this.cb_3)
  1148. destroy(this.ddlb_1)
  1149. destroy(this.dw_1)
  1150. destroy(this.ddlb_printerlist)
  1151. destroy(this.em_1)
  1152. destroy(this.st_2)
  1153. destroy(this.cbx_select_page)
  1154. destroy(this.cb_mdfmxrp)
  1155. destroy(this.st_3)
  1156. destroy(this.st_4)
  1157. destroy(this.cb_1)
  1158. destroy(this.lb_1)
  1159. destroy(this.st_5)
  1160. destroy(this.st_6)
  1161. destroy(this.cbx_ifprint_xj)
  1162. destroy(this.cbx_ifprint_hj)
  1163. destroy(this.cb_2)
  1164. destroy(this.ln_bar)
  1165. destroy(this.ln_bar2)
  1166. destroy(this.r_bar)
  1167. destroy(this.ln_1)
  1168. destroy(this.ln_2)
  1169. end on
  1170. event open;call super::open;//检查本地的打印格式库跟服务器的修改时间是否一致
  1171. String ls_msg
  1172. //初始化打印机
  1173. wf_initprinterinfo()
  1174. ///////////////////// //
  1175. String errmsg
  1176. fact_print_msg = Message.PowerObjectParm
  1177. Long ls_rslt
  1178. String lls_str
  1179. ls_comments[1] = ''
  1180. obj_dwname = fact_print_msg.obj_dwname
  1181. //获取DW嵌套子DW
  1182. String ls_pblname,ls_pblpath,dwsyntax
  1183. Long ll_beg,ll_end
  1184. SELECT pblname
  1185. INTO :ls_pblname
  1186. FROM sys_dft_dwprint_dynamic
  1187. Where dft_new_dwname = :obj_dwname;
  1188. IF sqlca.SQLCode <> 0 THEN
  1189. ls_pblname = ''
  1190. END IF
  1191. IF ls_pblname <> '' THEN
  1192. IF f_init_dftpbl(ls_pblname,obj_dwname,ls_msg) = 0 THEN
  1193. MessageBox('系统信息',ls_msg)
  1194. RETURN
  1195. END IF
  1196. END IF
  1197. st_1.Text = fact_print_msg.tag_text
  1198. dw_1.DataObject = fact_print_msg.obj_dwname
  1199. IF dw_1.Describe("DataWindow.Objects") = "" THEN
  1200. MessageBox('提示','初始化打印格式失败,请检查重定向设置')
  1201. dw_1.DataObject = ''
  1202. RETURN
  1203. END IF
  1204. IF fact_print_msg.printrow = 0 THEN
  1205. em_1.Enabled = True
  1206. em_1.Text = ProfileString (sys_inifilename,dw_1.DataObject, "printrow", '10')
  1207. fact_print_msg.printrow = Long(em_1.Text)
  1208. ELSE
  1209. em_1.Enabled = False
  1210. em_1.Text = String(fact_print_msg.printrow)
  1211. END IF
  1212. IF f_ProfileString (sys_empid,dw_1.DataObject, "cbx_ifprint_xj", '1') = '1' THEN
  1213. cbx_ifprint_xj.Checked = True
  1214. ELSE
  1215. cbx_ifprint_xj.Checked = False
  1216. END IF
  1217. IF f_ProfileString (sys_empid,dw_1.DataObject, "cbx_ifprint_hj", '1') = '1' THEN
  1218. cbx_ifprint_hj.Checked = True
  1219. ELSE
  1220. cbx_ifprint_hj.Checked = False
  1221. END IF
  1222. retrieveid = fact_print_msg.retr_pramnmb
  1223. retrievestr = fact_print_msg.retr_pramstr
  1224. //********************
  1225. //====================================================================
  1226. // script - w_publ_preview inherited from w_publ_base for open
  1227. // reason:
  1228. //--------------------------------------------------------------------
  1229. // modified by: yyx date: 2004.05.09
  1230. //--------------------------------------------------------------------
  1231. IF fact_print_msg.obj_dwname = 'dw_rp_mtrlprocode_lsx' Or fact_print_msg.obj_dwname = 'dw_rp_mtrlprocode_lsx_mg' THEN
  1232. cbx_select_page.Checked = True
  1233. ELSE
  1234. cbx_select_page.Checked = False
  1235. END IF
  1236. //====================================================================
  1237. dw_1.SetTransObject(sqlca)
  1238. IF wf_trycreate_sys_dwnsyntax(errmsg) = 0 THEN
  1239. MessageBox('提示',errmsg)
  1240. END IF
  1241. IF fact_print_msg.share_dw_title <> '' THEN
  1242. dw_1.Object.rp_title.Text = fact_print_msg.share_dw_title
  1243. END IF
  1244. wf_defdataobject()
  1245. dw_retrieve()
  1246. IF wf_read_subdwpos(default_dwname,default_dname,s_xwidth,errmsg) = 0 THEN
  1247. MessageBox('错误',errmsg)
  1248. ELSE
  1249. wf_mdfmxreport(s_xwidth)
  1250. END IF
  1251. dw_1.SetRedraw(False)
  1252. IF /* Not IsNull(fact_print_msg.ini_group) And*/ Trim(dw_1.DataObject) <> '' THEN
  1253. // integer li_test
  1254. // li_test = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_top", "11"))
  1255. // li_test = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_left", "10" ))
  1256. // li_test = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_bottom", "11"))
  1257. // li_test = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_right", "10" ))
  1258. // dw_1.Object.datawindow.Print.margin.Top = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_top", "20"))
  1259. // dw_1.Object.datawindow.Print.margin.Left = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_left", "15" ))
  1260. //
  1261. // dw_1.Object.datawindow.Print.margin.bottom = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_bottom", "20"))
  1262. // dw_1.Object.datawindow.Print.margin.Right = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "margin_right", "15" ))
  1263. //
  1264. // dw_1.Object.datawindow.Print.paper.size = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "paper_size", "0" ))
  1265. // dw_1.Object.datawindow.Print.orientation = Integer(ProfileString(sys_inifilename,dw_1.DataObject, "orientation", "0" ))
  1266. Integer margin_top =-1,margin_left=-1,margin_bottom=-1,margin_right=-1,paper_size=-1,orientation=-1
  1267. margin_top = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_top", "-1"))
  1268. margin_left= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_left", "-1" ))
  1269. margin_bottom= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_bottom", "-1"))
  1270. margin_right= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_right", "-1" ))
  1271. paper_size= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "paper_size", "-1" ))
  1272. orientation= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "orientation", "-1" ))
  1273. // dw_1.Object.datawindow.Print.margin.Top = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_top", "20"))
  1274. // dw_1.Object.datawindow.Print.margin.Left = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_left", "15" ))
  1275. //
  1276. // dw_1.Object.datawindow.Print.margin.bottom = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_bottom", "20"))
  1277. // dw_1.Object.datawindow.Print.margin.Right = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_right", "15" ))
  1278. //
  1279. // dw_1.Object.datawindow.Print.paper.size = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "paper_size", "0" ))
  1280. // dw_1.Object.datawindow.Print.orientation = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "orientation", "0" ))
  1281. if margin_top > 0 then
  1282. dw_1.Object.datawindow.Print.margin.Top =margin_top
  1283. end if
  1284. if margin_left > 0 then
  1285. dw_1.Object.datawindow.Print.margin.Left =margin_left
  1286. end if
  1287. if margin_bottom > 0 then
  1288. dw_1.Object.datawindow.Print.margin.bottom =margin_bottom
  1289. end if
  1290. if margin_right > 0 then
  1291. dw_1.Object.datawindow.Print.margin.Right =margin_right
  1292. end if
  1293. if paper_size > 0 then
  1294. dw_1.Object.datawindow.Print.paper.size =paper_size
  1295. end if
  1296. if orientation > 0 then
  1297. dw_1.Object.datawindow.Print.orientation =orientation
  1298. end if
  1299. dw_default_printer = f_ProfileString(sys_empid,dw_1.DataObject, "dw_default_printer ", "" )
  1300. IF dw_default_printer = '' THEN
  1301. ddlb_printerlist.Text = default_printer
  1302. ELSE
  1303. ddlb_printerlist.Text = dw_default_printer
  1304. END IF
  1305. END IF
  1306. dw_1.SetRedraw(True)
  1307. /////////////////////////////////////////////
  1308. // dw_1.Modify("DataWindow.Print.Paper.Size=256")
  1309. // //25.4 centimeters long
  1310. // dw_1.Modify("DataWindow.Print.CustomPage.Length=140")
  1311. // //19.5 centimeters wide 94
  1312. // dw_1.Modify("DataWindow.Print.CustomPage.Width=210")
  1313. /////////////////////////////////////////
  1314. dw_1.Object.datawindow.Print.Preview = 'yes'
  1315. dw_1.Object.datawindow.Print.Preview.rulers = "yes"
  1316. IF Not dw_1.Describe('mxreport.type') = 'report' Or retrieveid = 0 And retrievestr = '' THEN
  1317. cb_mdfmxrp.Enabled = False //检查是否存在名为mxreport的report没有则此功能不可以用
  1318. END IF
  1319. IF fact_print_msg.ifpic = 1 THEN
  1320. wf_add_pic()
  1321. END IF
  1322. //read ini
  1323. //if cb_mdfmxrp.enabled then
  1324. // wf_readini_begin()
  1325. //end if
  1326. ///
  1327. /*
  1328. 使用调整子dw的列宽及序列功能的约定:
  1329. 1.明细内嵌dw的名称必须为'mxreport'
  1330. 2.mxreport的retrieve参数必须为主dw的第一列值,必须是一个,且必须是long
  1331. 3.mxreport必须是grid
  1332. 4.显示的列必须都是selete列,不可以是dw计算列
  1333. 5.一般(14cm宽打印纸)mxreport.width=3287
  1334. 6.mxreport中的计算列必须命名为(最多支持三个):cmpl1,cmpl2,cmpl3
  1335. */
  1336. //dw_1.modify('title.text="'+trim(fact_print_msg.tag_text)+'"')
  1337. //dw_1.object.datawindow.print.preview.zoom = 100
  1338. /*structure: s_print_msg
  1339. obj_dwname: retrieve datawindow 名称
  1340. share_dw : 目标 share datawindow 名称
  1341. retr_pram_falg :int 参数传递形式
  1342. case 0 //share datawindow
  1343. datawindow ls_dw
  1344. ls_dw=fact_print_msg.share_dw
  1345. ls_dw.sharedata(dw_1)
  1346. case 1 //one string pram
  1347. dw_1.retrieve(fact_print_msg.retr_pramstr)
  1348. case 2 //one number pram
  1349. dw_1.retrieve(fact_print_msg.retr_pramnmb)
  1350. case 3 //one date pram
  1351. dw_1.retrieve(fact_print_msg.retr_pramfd)
  1352. case 4 //two date pram
  1353. dw_1.retrieve(fact_print_msg.retr_pramfd,fact_print_msg.retr_pramed)
  1354. case else
  1355. dw_1.retrieve()
  1356. retr_pramstr
  1357. retr_pramnmb
  1358. retr_pramfd
  1359. retr_pramed
  1360. tag_text
  1361. filter_string : filter 表达式
  1362. title :datawindow title
  1363. titleobjectname :datawindow title
  1364. setup_flag :0- printsetup enabled 1- printsetup disabled
  1365. pagech_flag : 1 打印时提示选页打印
  1366. ini_group : 存取普通打印设置的系统 ini 文件组名,为空时不存取
  1367. */
  1368. end event
  1369. event resize;dw_1.setredraw(false)
  1370. ln_bar.endx = this.width
  1371. ln_bar2.endx = this.width
  1372. ln_1.endx = this.width
  1373. ln_2.endx = this.width
  1374. r_bar.width = this.width
  1375. DW_1.WIDTH=THIS.WIDTH - DW_1.X - 40
  1376. DW_1.HEIGHT=THIS.HEIGHT - DW_1.Y - 150
  1377. dw_1.setredraw(true)
  1378. end event
  1379. event activate;
  1380. if dw_1.DataObject <> '' then dw_1.Modify("DataWindow.Print.Preview = 'yes'")
  1381. end event
  1382. event close;call super::close;wf_clear_temp()
  1383. CloseWithReturn(THIS,rslt_printnum)
  1384. end event
  1385. event ue_before_open;call super::ue_before_open;///
  1386. end event
  1387. type cb_func from w_publ_base`cb_func within w_publ_preview
  1388. boolean visible = false
  1389. integer x = 155
  1390. integer y = 452
  1391. integer width = 265
  1392. integer height = 92
  1393. boolean enabled = false
  1394. end type
  1395. type cb_exit from w_publ_base`cb_exit within w_publ_preview
  1396. integer x = 709
  1397. integer width = 151
  1398. integer height = 164
  1399. integer picsize = 16
  1400. toolbaralignment pic_align = alignattop!
  1401. boolean border = false
  1402. end type
  1403. type cb_refresh from uo_imflatbutton within w_publ_preview
  1404. integer width = 151
  1405. integer height = 164
  1406. integer taborder = 110
  1407. string text = "刷新"
  1408. string normalpicname = "refresh.bmp"
  1409. integer picsize = 16
  1410. toolbaralignment pic_align = alignattop!
  1411. boolean border = false
  1412. end type
  1413. event clicked;call super::clicked;setProfileString (sys_inifilename,dw_1.DataObject, "printrow", em_1.text)
  1414. fact_print_msg.printrow = Long(em_1.Text)
  1415. dw_retrieve()
  1416. String errmsg
  1417. IF wf_read_subdwpos(default_dwname,default_dname,s_xwidth,errmsg) = 0 THEN
  1418. MessageBox('系统信息',errmsg)
  1419. ELSE
  1420. wf_mdfmxreport(s_xwidth)
  1421. END IF
  1422. dw_1.SetRedraw(TRUE)
  1423. end event
  1424. type st_1 from statictext within w_publ_preview
  1425. integer x = 928
  1426. integer y = 36
  1427. integer width = 1120
  1428. integer height = 60
  1429. integer textsize = -9
  1430. integer weight = 700
  1431. fontcharset fontcharset = gb2312charset!
  1432. fontpitch fontpitch = variable!
  1433. string facename = "宋体"
  1434. long backcolor = 134217739
  1435. string text = "标题"
  1436. boolean focusrectangle = false
  1437. end type
  1438. event constructor;this.backcolor = 14215660
  1439. end event
  1440. type cb_savestyle from uo_imflatbutton within w_publ_preview
  1441. integer x = 302
  1442. integer width = 256
  1443. integer height = 164
  1444. integer taborder = 120
  1445. string text = "单据格式"
  1446. string normalpicname = "other.bmp"
  1447. integer picsize = 16
  1448. toolbaralignment pic_align = alignattop!
  1449. boolean border = false
  1450. end type
  1451. event clicked;call super::clicked;m_publ_preview_dnset m_dnset
  1452. m_dnset = CREATE m_publ_preview_dnset
  1453. IF NOT dw_1.Describe('mxreport.type') = 'report' or retrieveid = 0 and retrievestr = '' THEN m_dnset.m_main.m_mxd.Enabled = FALSE //检查是否存在名为mxreport的report没有则此功能不可以用
  1454. m_dnset.m_main.PopMenu(THIS.X+50,THIS.Y+50)
  1455. //m_Dfc_Control_PopupMenu dmPopupMenu
  1456. //String menustr
  1457. //
  1458. //menustr = menustr + "|" + "Text=数据发送~tEvent=ue_sentdataout"
  1459. //menustr = menustr + "|" + "Text=筛选~tEvent=ue_filter"
  1460. //menustr = menustr + "|" + "Text=页面设置~tEvent=ue_setprintpage_value"
  1461. //menustr = menustr + "|" + "Text=-"
  1462. //menustr = menustr + "|" + "Text=下一页~tEvent=ue_snp"
  1463. //menustr = menustr + "|" + "Text=上一页~tEvent=ue_spp"
  1464. //
  1465. //IF Len(Trim(menustr)) <> 0 THEN
  1466. // dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1467. // dmPopupMenu.mf_BuildMenu(This, menustr)
  1468. // dmPopupMenu.mf_PopMenu()
  1469. // Destroy dmPopupMenu
  1470. //END IF
  1471. end event
  1472. type cb_3 from uo_imflatbutton within w_publ_preview
  1473. integer x = 151
  1474. integer width = 151
  1475. integer height = 164
  1476. integer taborder = 110
  1477. string text = "功能"
  1478. string normalpicname = "setting.bmp"
  1479. integer picsize = 16
  1480. toolbaralignment pic_align = alignattop!
  1481. boolean border = false
  1482. end type
  1483. event clicked;call super::clicked;//m_publ_preview_func m_func
  1484. //m_func=create m_publ_preview_func
  1485. //m_func.m_0.popmenu(this.x+50,this.y+50)
  1486. m_Dfc_Control_PopupMenu dmPopupMenu
  1487. String menustr
  1488. menustr = menustr + "|" + "Text=数据发送~tEvent=ue_sentdataout"
  1489. menustr = menustr + "|" + "Text=筛选~tEvent=ue_filter"
  1490. menustr = menustr + "|" + "Text=页面设置~tEvent=ue_setprintpage_value"
  1491. menustr = menustr + "|" + "Text=-"
  1492. menustr = menustr + "|" + "Text=下一页~tEvent=ue_snp"
  1493. menustr = menustr + "|" + "Text=上一页~tEvent=ue_spp"
  1494. IF Len(Trim(menustr)) <> 0 THEN
  1495. dmPopupMenu = Create m_Dfc_Control_PopupMenu
  1496. dmPopupMenu.mf_BuildMenu(This, menustr)
  1497. dmPopupMenu.mf_PopMenu()
  1498. Destroy dmPopupMenu
  1499. END IF
  1500. end event
  1501. type ddlb_1 from dropdownlistbox within w_publ_preview
  1502. integer x = 411
  1503. integer y = 184
  1504. integer width = 283
  1505. integer height = 632
  1506. integer taborder = 100
  1507. integer textsize = -9
  1508. integer weight = 400
  1509. fontcharset fontcharset = gb2312charset!
  1510. fontpitch fontpitch = variable!
  1511. string facename = "宋体"
  1512. long textcolor = 33554432
  1513. string text = "适当大小"
  1514. boolean vscrollbar = true
  1515. string item[] = {"100%","150%","200%","75%","50%","25%"}
  1516. borderstyle borderstyle = stylelowered!
  1517. end type
  1518. event selectionchanged;dw_1.Object.DataWindow.Print.Preview.Zoom = INTEGER(LEFT(TRIM(this.text),LEN(TRIM(this.text)) - 1))
  1519. dw_1.object.DataWindow.Print.Preview = 'yes'
  1520. end event
  1521. event constructor;if THIS.TotalItems ( )>=1 then THIS.SelectItem(1)
  1522. end event
  1523. type dw_1 from datawindow within w_publ_preview
  1524. integer y = 292
  1525. integer width = 2848
  1526. integer height = 1284
  1527. integer taborder = 90
  1528. boolean bringtotop = true
  1529. boolean hscrollbar = true
  1530. boolean vscrollbar = true
  1531. boolean hsplitscroll = true
  1532. boolean livescroll = true
  1533. borderstyle borderstyle = stylelowered!
  1534. end type
  1535. event rbuttondown;if not f_power_ind(666) then
  1536. // messagebox(publ_operator,'你没有使用权限!')
  1537. return
  1538. end if
  1539. if LOWER(LEFT(dwo.type,4))='text' then
  1540. s_inputbox S_SREU
  1541. STRING LS_STR,column_name
  1542. S_SREU.TITLE='目前标题为: '+dwo.TEXT+' 。请输入新标题: '
  1543. S_SREU.OLD_TEXT=dwo.TEXT
  1544. column_name=DWO.NAME
  1545. openwithparm(w_inputbox,S_SREU)
  1546. LS_STR=Message.StringParm
  1547. if trim(LS_STR)<>'' AND dwo.TEXT<>LS_STR then
  1548. THIS.Modify(column_name+'.text="'+LS_STR+'"')
  1549. END IF
  1550. end if
  1551. //if string(dwo.type)='report' then
  1552. // messagebox('report',string(DWO.NAME))
  1553. //string str_mdf='',str_mdf_width='',str_mdf_x='',str_ls=''
  1554. //int ls_i,ls_clmno,ls_rslt
  1555. //
  1556. ////ins_dwcld=create DataWindowChild
  1557. //ls_rslt=dw_1.getchild(string(DWO.NAME),ins_dwcld)
  1558. //messagebox('',string(ls_rslt))
  1559. // if ls_rslt =1 then
  1560. // ls_clmno=integer(ins_dwcld.Describe('DataWindow.Column.Count'))
  1561. // messagebox('DataWindow.Column.Count',string(ls_clmno))
  1562. // //integer(ins_dwcld.Object.DataWindow.Column.Count)
  1563. // for ls_i=1 to ls_clmno
  1564. // str_ls= '#'+string(ls_i)+'.width='+ins_dwcld.Describe('#'+string(ls_i)+'.width')
  1565. // str_mdf_width=str_mdf_width+'~n'+str_ls
  1566. //
  1567. // str_ls= '#'+string(ls_i)+'.x='+ins_dwcld.Describe('#'+string(ls_i)+'.x')
  1568. // str_mdf_x=str_mdf_x+'~n'+str_ls
  1569. //
  1570. // next
  1571. // str_mdf=str_mdf_width+'~n'+str_mdf_x
  1572. //
  1573. // messagebox('str_mdf',str_mdf)
  1574. // end if
  1575. //end if
  1576. //
  1577. ////1.取子dw,及类型,是grid则处理
  1578. ////2.取dataobject,
  1579. ////3.弹出窗口,设dataobject,sharedata
  1580. ////4.记录语句descrp(列宽,列系列)
  1581. ////5.修改原子dw(Modify)
  1582. ////
  1583. ////
  1584. end event
  1585. event doubleclicked;IF f_power_ind(666) AND NOT sys_power_issuper THEN
  1586. MessageBox(publ_operator,'你没有使用权限!')
  1587. RETURN
  1588. END IF
  1589. IF dwo.TYPE = 'datawindow' THEN RETURN
  1590. IF dwo.TYPE = 'line' THEN RETURN
  1591. s_preview_dwoprp_tran S_SREU
  1592. S_SREU.yn = 0
  1593. S_SREU.X = Integer(dwo.X)
  1594. S_SREU.Y = Integer(dwo.Y)
  1595. S_SREU.Width = Integer(dwo.Width)
  1596. S_SREU.Height = Integer(dwo.Height)
  1597. S_SREU.dwotype = dwo.TYPE
  1598. S_SREU.dwoname = dwo.Name
  1599. IF Lower(Left(dwo.TYPE,4)) = 'text' THEN
  1600. S_SREU.dwotext = dwo.Text
  1601. ELSE
  1602. S_SREU.dwotext = ''
  1603. END IF
  1604. OpenWithParm(w_publ_preview_setdwoprp,S_SREU)
  1605. S_SREU = Message.PowerObjectParm
  1606. IF S_SREU.yn = 1 THEN
  1607. dwo.X = S_SREU.X
  1608. dwo.Y = S_SREU.Y
  1609. dwo.Width = S_SREU.Width
  1610. dwo.Height = S_SREU.Height
  1611. IF Lower(Left(dwo.TYPE,4)) = 'text' THEN
  1612. THIS.Modify(dwo.Name+'.text="'+S_SREU.dwotext+'"')
  1613. // dwo.TEXT=S_SREU.dwotext
  1614. END IF
  1615. END IF
  1616. end event
  1617. type ddlb_printerlist from dropdownlistbox within w_publ_preview
  1618. integer x = 1408
  1619. integer y = 184
  1620. integer width = 1376
  1621. integer height = 1380
  1622. integer taborder = 110
  1623. boolean bringtotop = true
  1624. integer textsize = -9
  1625. integer weight = 400
  1626. fontcharset fontcharset = gb2312charset!
  1627. fontpitch fontpitch = variable!
  1628. string facename = "宋体"
  1629. long textcolor = 33554432
  1630. boolean autohscroll = true
  1631. boolean vscrollbar = true
  1632. borderstyle borderstyle = stylelowered!
  1633. end type
  1634. type em_1 from editmask within w_publ_preview
  1635. integer x = 256
  1636. integer y = 184
  1637. integer width = 151
  1638. integer height = 92
  1639. integer taborder = 120
  1640. boolean bringtotop = true
  1641. integer textsize = -9
  1642. integer weight = 400
  1643. fontcharset fontcharset = gb2312charset!
  1644. fontpitch fontpitch = variable!
  1645. string facename = "宋体"
  1646. long textcolor = 33554432
  1647. alignment alignment = right!
  1648. borderstyle borderstyle = stylelowered!
  1649. string mask = "######"
  1650. end type
  1651. event constructor;//messagebox("",ProfileString (sys_inifilename,dw_1.DATAOBJECT, "printrow", '18'))
  1652. //
  1653. //this.text=ProfileString (sys_inifilename,dw_1.DATAOBJECT, "printrow", '18')
  1654. //cb_6.triggerevent(clicked!)
  1655. end event
  1656. event modified;if long(trim(em_1.text))<=2 then
  1657. em_1.text='2'
  1658. end if
  1659. setProfileString (sys_inifilename,dw_1.DATAOBJECT, "printrow", trim(em_1.text))
  1660. end event
  1661. type st_2 from statictext within w_publ_preview
  1662. integer x = 5
  1663. integer y = 204
  1664. integer width = 238
  1665. integer height = 52
  1666. boolean bringtotop = true
  1667. integer textsize = -9
  1668. integer weight = 400
  1669. fontcharset fontcharset = gb2312charset!
  1670. fontpitch fontpitch = variable!
  1671. string facename = "宋体"
  1672. long textcolor = 33554432
  1673. long backcolor = 134217739
  1674. boolean enabled = false
  1675. string text = "每页行数"
  1676. alignment alignment = right!
  1677. boolean focusrectangle = false
  1678. end type
  1679. type cbx_select_page from checkbox within w_publ_preview
  1680. integer x = 718
  1681. integer y = 192
  1682. integer width = 343
  1683. integer height = 72
  1684. boolean bringtotop = true
  1685. integer textsize = -9
  1686. integer weight = 700
  1687. fontcharset fontcharset = gb2312charset!
  1688. fontpitch fontpitch = variable!
  1689. string facename = "宋体"
  1690. long textcolor = 16711680
  1691. long backcolor = 134217739
  1692. string text = "选页打印"
  1693. end type
  1694. type cb_mdfmxrp from commandbutton within w_publ_preview
  1695. boolean visible = false
  1696. integer x = 421
  1697. integer y = 456
  1698. integer width = 379
  1699. integer height = 92
  1700. integer taborder = 40
  1701. integer textsize = -9
  1702. integer weight = 400
  1703. fontcharset fontcharset = gb2312charset!
  1704. fontpitch fontpitch = variable!
  1705. string facename = "宋体"
  1706. string text = "明细网格调整"
  1707. end type
  1708. event clicked;dwod=dw_1.object.mxreport
  1709. s_mdfxwidth_tran s_mdfxw_tran
  1710. s_mdfxw_tran.retrievetype = fact_print_msg.retr_pram_falg
  1711. s_mdfxw_tran.retrieveid=retrieveid
  1712. ///////////yyx0821
  1713. if em_1.enabled then
  1714. secondretrieveid=long(em_1.text)
  1715. else
  1716. secondretrieveid = sys_scid
  1717. end if
  1718. ///////////
  1719. s_mdfxw_tran.secondretrieveid=secondretrieveid
  1720. s_mdfxw_tran.retrievestr=fact_print_msg.retr_pramstr
  1721. s_mdfxw_tran.dataobject=dwod.dataobject
  1722. openwithparm(w_publ_preview_mdfcrptxwidth,s_mdfxw_tran)
  1723. s_xwidth=message.powerobjectparm
  1724. //write ini
  1725. //wf_write_childdw_pos(s_mdfxw_tran.dataobject,s_xwidth)
  1726. //
  1727. wf_mdfmxreport(s_xwidth)
  1728. end event
  1729. type st_3 from statictext within w_publ_preview
  1730. integer x = 2075
  1731. integer y = 36
  1732. integer width = 288
  1733. integer height = 60
  1734. boolean bringtotop = true
  1735. integer textsize = -9
  1736. integer weight = 400
  1737. fontcharset fontcharset = gb2312charset!
  1738. fontpitch fontpitch = variable!
  1739. string facename = "宋体"
  1740. long textcolor = 33554432
  1741. long backcolor = 134217739
  1742. boolean enabled = false
  1743. string text = "单据格式:"
  1744. boolean focusrectangle = false
  1745. end type
  1746. event constructor;this.backcolor = 14215660
  1747. end event
  1748. type st_4 from statictext within w_publ_preview
  1749. integer x = 2368
  1750. integer y = 36
  1751. integer width = 1001
  1752. integer height = 60
  1753. boolean bringtotop = true
  1754. integer textsize = -9
  1755. integer weight = 400
  1756. fontcharset fontcharset = gb2312charset!
  1757. fontpitch fontpitch = variable!
  1758. string facename = "宋体"
  1759. long textcolor = 33554432
  1760. long backcolor = 134217739
  1761. boolean enabled = false
  1762. boolean focusrectangle = false
  1763. end type
  1764. event constructor;this.backcolor = 14215660
  1765. end event
  1766. type cb_1 from uo_imflatbutton within w_publ_preview
  1767. integer x = 558
  1768. integer width = 151
  1769. integer height = 164
  1770. integer taborder = 130
  1771. boolean bringtotop = true
  1772. string text = "打印"
  1773. boolean default = true
  1774. string normalpicname = "print.bmp"
  1775. integer picsize = 16
  1776. toolbaralignment pic_align = alignattop!
  1777. boolean border = false
  1778. end type
  1779. event clicked;call super::clicked;IF cbx_select_page.Checked THEN
  1780. dw_default_printer = ddlb_printerlist.Text
  1781. IF dw_default_printer = '' THEN
  1782. MessageBox('提示','请选择打印机')
  1783. RETURN
  1784. END IF
  1785. lnv_printer.of_setdefault ( dw_default_printer )
  1786. OpenWithParm(w_sys_printpagesetting,dw_1)
  1787. wf_setdefaultprinter()
  1788. ELSE
  1789. dw_default_printer = ddlb_printerlist.Text
  1790. IF dw_default_printer = '' THEN
  1791. MessageBox('提示','请选择打印机')
  1792. RETURN
  1793. END IF
  1794. lnv_printer.of_setdefault ( dw_default_printer )
  1795. dw_1.Print()
  1796. wf_setdefaultprinter()
  1797. END IF
  1798. IF IsNull(fact_print_msg.ini_group) OR Trim(dw_1.DataObject) = '' THEN RETURN
  1799. f_SetProfileString (sys_empid,dw_1.DataObject, "margin_top", String(dw_1.Object.datawindow.Print.margin.Top))
  1800. f_SetProfileString (sys_empid,dw_1.DataObject, "margin_left", String(dw_1.Object.datawindow.Print.margin.Left))
  1801. f_SetProfileString (sys_empid,dw_1.DataObject, "margin_bottom", String(dw_1.Object.datawindow.Print.margin.bottom))
  1802. f_SetProfileString (sys_empid,dw_1.DataObject, "margin_right", String(dw_1.Object.datawindow.Print.margin.Right))
  1803. f_SetProfileString (sys_empid,dw_1.DataObject, "paper_size", String(dw_1.Object.datawindow.Print.paper.size) )
  1804. f_SetProfileString (sys_empid,dw_1.DataObject, "orientation", String(dw_1.Object.datawindow.Print.orientation))
  1805. f_SetProfileString (sys_empid,dw_1.DataObject, "dw_default_printer ", dw_default_printer )
  1806. rslt_printnum++
  1807. IF fact_print_msg.obj_dwname = 'dw_rp_order_ml_lsx' OR fact_print_msg.obj_dwname = 'dw_rp_order_ml_lsx_mg' THEN
  1808. ELSE
  1809. cb_exit.TriggerEvent(Clicked!)
  1810. END IF
  1811. end event
  1812. type lb_1 from listbox within w_publ_preview
  1813. boolean visible = false
  1814. integer x = 2880
  1815. integer y = 56
  1816. integer width = 549
  1817. integer height = 452
  1818. integer taborder = 120
  1819. boolean bringtotop = true
  1820. integer textsize = -12
  1821. integer weight = 400
  1822. fontcharset fontcharset = ansi!
  1823. fontpitch fontpitch = variable!
  1824. fontfamily fontfamily = swiss!
  1825. string facename = "Arial"
  1826. long textcolor = 33554432
  1827. borderstyle borderstyle = stylelowered!
  1828. end type
  1829. type st_5 from statictext within w_publ_preview
  1830. integer x = 2368
  1831. integer y = 100
  1832. integer width = 1001
  1833. integer height = 60
  1834. boolean bringtotop = true
  1835. integer textsize = -9
  1836. integer weight = 400
  1837. fontcharset fontcharset = gb2312charset!
  1838. fontpitch fontpitch = variable!
  1839. string facename = "宋体"
  1840. long textcolor = 33554432
  1841. long backcolor = 134217739
  1842. boolean enabled = false
  1843. boolean focusrectangle = false
  1844. end type
  1845. event constructor;this.backcolor = 14215660
  1846. end event
  1847. type st_6 from statictext within w_publ_preview
  1848. integer x = 1079
  1849. integer y = 204
  1850. integer width = 329
  1851. integer height = 48
  1852. boolean bringtotop = true
  1853. integer textsize = -9
  1854. integer weight = 400
  1855. fontcharset fontcharset = gb2312charset!
  1856. fontpitch fontpitch = variable!
  1857. string facename = "宋体"
  1858. long textcolor = 33554432
  1859. long backcolor = 134217739
  1860. string text = "打印机选择:"
  1861. alignment alignment = right!
  1862. boolean focusrectangle = false
  1863. end type
  1864. type cbx_ifprint_xj from checkbox within w_publ_preview
  1865. integer x = 3209
  1866. integer y = 188
  1867. integer width = 416
  1868. integer height = 72
  1869. boolean bringtotop = true
  1870. integer textsize = -9
  1871. integer weight = 400
  1872. fontcharset fontcharset = gb2312charset!
  1873. fontpitch fontpitch = variable!
  1874. string facename = "宋体"
  1875. long textcolor = 33554432
  1876. long backcolor = 134217739
  1877. string text = "每页有小计行"
  1878. end type
  1879. event clicked;Int li_cbx_ifprint_xj
  1880. IF Checked THEN
  1881. li_cbx_ifprint_xj = 1
  1882. ELSE
  1883. li_cbx_ifprint_xj = 0
  1884. END IF
  1885. f_SetProfileString (sys_empid,dw_1.DataObject,"cbx_ifprint_xj",String(li_cbx_ifprint_xj))
  1886. end event
  1887. type cbx_ifprint_hj from checkbox within w_publ_preview
  1888. integer x = 3634
  1889. integer y = 188
  1890. integer width = 416
  1891. integer height = 72
  1892. boolean bringtotop = true
  1893. integer textsize = -9
  1894. integer weight = 400
  1895. fontcharset fontcharset = gb2312charset!
  1896. fontpitch fontpitch = variable!
  1897. string facename = "宋体"
  1898. long textcolor = 33554432
  1899. long backcolor = 134217739
  1900. string text = "最后有合计行"
  1901. end type
  1902. event clicked;Int li_cbx_ifprint_hj
  1903. IF Checked THEN
  1904. li_cbx_ifprint_hj = 1
  1905. ELSE
  1906. li_cbx_ifprint_hj = 0
  1907. END IF
  1908. f_SetProfileString (sys_empid,dw_1.DataObject,"cbx_ifprint_hj",String(li_cbx_ifprint_hj))
  1909. end event
  1910. type cb_2 from commandbutton within w_publ_preview
  1911. integer x = 2793
  1912. integer y = 180
  1913. integer width = 402
  1914. integer height = 84
  1915. integer taborder = 130
  1916. boolean bringtotop = true
  1917. integer textsize = -9
  1918. integer weight = 400
  1919. fontcharset fontcharset = gb2312charset!
  1920. fontpitch fontpitch = variable!
  1921. string facename = "宋体"
  1922. string text = "读取上次布局"
  1923. end type
  1924. event clicked;dw_1.SetRedraw(False)
  1925. IF Trim(dw_1.DataObject) <> '' THEN
  1926. Integer margin_top =-1,margin_left=-1,margin_bottom=-1,margin_right=-1,paper_size=-1,orientation=-1
  1927. margin_top = Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_top", "-1"))
  1928. margin_left= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_left", "-1" ))
  1929. margin_bottom= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_bottom", "-1"))
  1930. margin_right= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "margin_right", "-1" ))
  1931. paper_size= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "paper_size", "-1" ))
  1932. orientation= Integer(f_ProfileString(sys_empid,dw_1.DataObject, "orientation", "-1" ))
  1933. if margin_top > 0 then
  1934. dw_1.Object.datawindow.Print.margin.Top =margin_top
  1935. end if
  1936. if margin_left > 0 then
  1937. dw_1.Object.datawindow.Print.margin.Left =margin_left
  1938. end if
  1939. if margin_bottom > 0 then
  1940. dw_1.Object.datawindow.Print.margin.bottom =margin_bottom
  1941. end if
  1942. if margin_right > 0 then
  1943. dw_1.Object.datawindow.Print.margin.Right =margin_right
  1944. end if
  1945. if paper_size > 0 then
  1946. dw_1.Object.datawindow.Print.paper.size =paper_size
  1947. end if
  1948. if orientation > 0 then
  1949. dw_1.Object.datawindow.Print.orientation =orientation
  1950. end if
  1951. END IF
  1952. dw_1.SetRedraw(True)
  1953. end event
  1954. type ln_bar from line within w_publ_preview
  1955. long linecolor = 268435456
  1956. integer linethickness = 4
  1957. integer beginy = 172
  1958. integer endx = 2007
  1959. integer endy = 172
  1960. end type
  1961. type ln_bar2 from line within w_publ_preview
  1962. long linecolor = 16777215
  1963. integer linethickness = 4
  1964. integer beginy = 176
  1965. integer endx = 2039
  1966. integer endy = 176
  1967. end type
  1968. type r_bar from rectangle within w_publ_preview
  1969. long linecolor = 16777215
  1970. integer linethickness = 4
  1971. long fillcolor = 1073741824
  1972. integer x = 2711
  1973. integer y = 12
  1974. integer width = 146
  1975. integer height = 68
  1976. end type
  1977. event constructor;this.fillcolor = 14215660
  1978. this.linecolor = 14215660
  1979. this.x = -1
  1980. this.y = -1
  1981. this.height = ln_bar.beginy - 5
  1982. end event
  1983. type ln_1 from line within w_publ_preview
  1984. long linecolor = 268435456
  1985. integer linethickness = 4
  1986. integer beginy = 284
  1987. integer endx = 2016
  1988. integer endy = 284
  1989. end type
  1990. type ln_2 from line within w_publ_preview
  1991. long linecolor = 16777215
  1992. integer linethickness = 4
  1993. integer beginy = 288
  1994. integer endx = 2048
  1995. integer endy = 288
  1996. end type