w_publ_preview.srw 70 KB

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