w_dwprint_dynamic_saveas.srw 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. $PBExportHeader$w_dwprint_dynamic_saveas.srw
  2. forward
  3. global type w_dwprint_dynamic_saveas from w_publ_base
  4. end type
  5. type cb_export from uo_imflatbutton within w_dwprint_dynamic_saveas
  6. end type
  7. type st_1 from statictext within w_dwprint_dynamic_saveas
  8. end type
  9. type st_2 from statictext within w_dwprint_dynamic_saveas
  10. end type
  11. type sle_dw from singlelineedit within w_dwprint_dynamic_saveas
  12. end type
  13. type sle_chnname from singlelineedit within w_dwprint_dynamic_saveas
  14. end type
  15. type st_3 from statictext within w_dwprint_dynamic_saveas
  16. end type
  17. type ddlb_1 from dropdownlistbox within w_dwprint_dynamic_saveas
  18. end type
  19. type gb_2 from groupbox within w_dwprint_dynamic_saveas
  20. end type
  21. end forward
  22. global type w_dwprint_dynamic_saveas from w_publ_base
  23. integer width = 2491
  24. integer height = 788
  25. string title = "打印格式另存"
  26. boolean minbox = false
  27. windowtype windowtype = response!
  28. long backcolor = 67108864
  29. cb_export cb_export
  30. st_1 st_1
  31. st_2 st_2
  32. sle_dw sle_dw
  33. sle_chnname sle_chnname
  34. st_3 st_3
  35. ddlb_1 ddlb_1
  36. gb_2 gb_2
  37. end type
  38. global w_dwprint_dynamic_saveas w_dwprint_dynamic_saveas
  39. type variables
  40. s_edit_index_tran s_tran
  41. long flag = 0
  42. String ls_code
  43. end variables
  44. forward prototypes
  45. public function integer wf_save (ref string arg_msg)
  46. end prototypes
  47. public function integer wf_save (ref string arg_msg);Int rslt = 1
  48. Long ll_newid
  49. String dft_new_dwname,pblname,chnname
  50. Long old_dwprintid
  51. dft_new_dwname = Trim(sle_dw.Text)
  52. pblname = Trim(ddlb_1.Text)
  53. old_dwprintid = s_tran.b_long
  54. chnname = Trim(sle_chnname.text)
  55. ll_newid = f_sys_scidentity(0,"sys_dft_dwprint_dynamic","dwprintid",arg_msg,FALSE,sqlca)
  56. IF ll_newid <= 0 THEN
  57. rslt = 0
  58. GOTO ext
  59. END IF
  60. INSERT INTO sys_dft_dwprint_dynamic
  61. ( dwprintid,
  62. dft_new_dwname,
  63. chnname,
  64. powerid,
  65. dwtype,
  66. auditprint,
  67. prownum,
  68. ptype,
  69. pblname,
  70. ifuse)
  71. SELECT :ll_newid ,
  72. :dft_new_dwname,
  73. :chnname,
  74. powerid,
  75. dwtype,
  76. auditprint,
  77. prownum,
  78. ptype,
  79. :pblname,
  80. 1 FROM
  81. sys_dft_dwprint_dynamic
  82. Where dwprintid = :old_dwprintid;
  83. IF sqlca.SQLCode <> 0 THEN
  84. IF Pos(sqlca.SQLErrText,"IX_sys_dft_dwprint_dynamic1") > 0 THEN
  85. arg_msg = '打印格式名称不能重复,增加打印格式失败!'
  86. ELSEIF Pos(sqlca.SQLErrText,"IX_sys_dft_dwprint_dynamic") > 0 THEN
  87. arg_msg = '打印格式数据窗口不能重复,增加打印格式失败!'
  88. ELSE
  89. arg_msg = '增加打印格式失败!'
  90. END IF
  91. rslt = 0
  92. GOTO ext
  93. END IF
  94. ext:
  95. IF rslt = 0 THEN
  96. ROLLBACK;
  97. ELSE
  98. COMMIT;
  99. END IF
  100. RETURN rslt
  101. end function
  102. on w_dwprint_dynamic_saveas.create
  103. int iCurrent
  104. call super::create
  105. this.cb_export=create cb_export
  106. this.st_1=create st_1
  107. this.st_2=create st_2
  108. this.sle_dw=create sle_dw
  109. this.sle_chnname=create sle_chnname
  110. this.st_3=create st_3
  111. this.ddlb_1=create ddlb_1
  112. this.gb_2=create gb_2
  113. iCurrent=UpperBound(this.Control)
  114. this.Control[iCurrent+1]=this.cb_export
  115. this.Control[iCurrent+2]=this.st_1
  116. this.Control[iCurrent+3]=this.st_2
  117. this.Control[iCurrent+4]=this.sle_dw
  118. this.Control[iCurrent+5]=this.sle_chnname
  119. this.Control[iCurrent+6]=this.st_3
  120. this.Control[iCurrent+7]=this.ddlb_1
  121. this.Control[iCurrent+8]=this.gb_2
  122. end on
  123. on w_dwprint_dynamic_saveas.destroy
  124. call super::destroy
  125. destroy(this.cb_export)
  126. destroy(this.st_1)
  127. destroy(this.st_2)
  128. destroy(this.sle_dw)
  129. destroy(this.sle_chnname)
  130. destroy(this.st_3)
  131. destroy(this.ddlb_1)
  132. destroy(this.gb_2)
  133. end on
  134. event open;call super::open;s_tran = Message.PowerObjectParm
  135. ddlb_1.Text = s_tran.b_string
  136. sle_chnname.text = s_tran.d_string
  137. DateTime server_dt
  138. SELECT Top 1 getdate() INTO :server_dt FROM u_user USING sqlca ;
  139. //取得系统时间,借用操作员表
  140. IF sqlca.SQLCode <> 0 THEN
  141. MessageBox('错误','查询系统时间失败!',stopsign!,ok!)
  142. return
  143. END IF
  144. sle_dw.Text = s_tran.c_string
  145. end event
  146. event close;call super::close;IF flag = 0 THEN
  147. ROLLBACK;
  148. ELSE
  149. IF Pos(sle_dw.Text,ls_code) > 0 THEN
  150. COMMIT;
  151. ELSE
  152. ROLLBACK;
  153. END IF
  154. END IF
  155. end event
  156. type cb_func from w_publ_base`cb_func within w_dwprint_dynamic_saveas
  157. boolean visible = false
  158. end type
  159. type cb_exit from w_publ_base`cb_exit within w_dwprint_dynamic_saveas
  160. integer x = 1947
  161. integer y = 576
  162. integer width = 325
  163. end type
  164. type cb_export from uo_imflatbutton within w_dwprint_dynamic_saveas
  165. integer x = 1623
  166. integer y = 576
  167. integer width = 325
  168. integer height = 96
  169. integer taborder = 40
  170. boolean bringtotop = true
  171. string text = "另存"
  172. end type
  173. event clicked;call super::clicked;String dwsyntax
  174. String ls_pblpath1,ls_pblpath2
  175. String ls_dwname1,ls_dwname2
  176. String ls_error
  177. Long it_max,ll_beg,ll_end
  178. String ls_dw[]
  179. String dwmxsyntax[]
  180. Long i
  181. String dwmxname
  182. ls_pblpath1 = sys_cur_path + s_tran.b_string
  183. ls_dwname1 = s_tran.c_string
  184. ls_pblpath2 = sys_cur_path + Trim(ddlb_1.Text)
  185. ls_dwname2 = Trim(sle_dw.Text)
  186. IF Trim(ls_dwname1) = Trim(ls_dwname2) THEN
  187. MessageBox('提示','另存名称重复,不能另存!',information!,ok!)
  188. RETURN
  189. END IF
  190. dwsyntax = LibraryExport(ls_pblpath1,ls_dwname1,ExportDataWindow!)
  191. it_max = 0
  192. ll_end = 1
  193. DO WHILE Pos(dwsyntax,'dataobject=',ll_end) > 0
  194. ll_beg = Pos(dwsyntax,'dataobject=',ll_end)
  195. IF ll_beg = 0 THEN
  196. GOTO ext
  197. END IF
  198. ll_beg = ll_beg + 12
  199. ll_end = Pos(dwsyntax,'"',ll_beg)
  200. it_max ++
  201. ls_dw[it_max] = Mid(dwsyntax,ll_beg,ll_end - ll_beg )
  202. LOOP
  203. IF it_max > 0 THEN
  204. FOR i = 1 TO it_max
  205. dwmxsyntax[i] = LibraryExport(ls_pblpath1,ls_dw[i],ExportDataWindow!)
  206. dwmxname = ls_dwname2 + '_mx' + String(i,'###0')
  207. IF LibraryImport(ls_pblpath2,dwmxname, ImportDataWindow!, dwmxsyntax[i], ls_error ) = -1 THEN
  208. MessageBox('错误',ls_error,stopsign!,ok!)
  209. RETURN
  210. END IF
  211. dwsyntax = Replace(dwsyntax,Pos(dwsyntax,ls_dw[i],1),Len(ls_dw[i]),dwmxname)
  212. NEXT
  213. END IF
  214. ext:
  215. IF LibraryImport(ls_pblpath2,ls_dwname2, ImportDataWindow!, dwsyntax, ls_error ) = -1 THEN
  216. MessageBox('错误',ls_error,stopsign!,ok!)
  217. RETURN
  218. END IF
  219. String arg_msg
  220. IF wf_save(arg_msg) = 0 THEN
  221. MessageBox('错误',arg_msg,stopsign!,ok!)
  222. RETURN
  223. ELSE
  224. MessageBox('提示','另存数据窗口成功!',information!,ok!)
  225. END IF
  226. flag = 1
  227. Close(PARENT)
  228. end event
  229. type st_1 from statictext within w_dwprint_dynamic_saveas
  230. integer x = 50
  231. integer y = 140
  232. integer width = 384
  233. integer height = 60
  234. boolean bringtotop = true
  235. integer textsize = -9
  236. integer weight = 400
  237. fontcharset fontcharset = gb2312charset!
  238. fontpitch fontpitch = variable!
  239. string facename = "宋体"
  240. long textcolor = 33554432
  241. long backcolor = 79741120
  242. string text = "格式库相对路径"
  243. alignment alignment = right!
  244. boolean focusrectangle = false
  245. end type
  246. type st_2 from statictext within w_dwprint_dynamic_saveas
  247. integer x = 91
  248. integer y = 264
  249. integer width = 343
  250. integer height = 60
  251. boolean bringtotop = true
  252. integer textsize = -9
  253. integer weight = 400
  254. fontcharset fontcharset = gb2312charset!
  255. fontpitch fontpitch = variable!
  256. string facename = "宋体"
  257. long textcolor = 33554432
  258. long backcolor = 79741120
  259. string text = "数据窗口名称"
  260. alignment alignment = right!
  261. boolean focusrectangle = false
  262. end type
  263. type sle_dw from singlelineedit within w_dwprint_dynamic_saveas
  264. integer x = 443
  265. integer y = 248
  266. integer width = 1888
  267. integer height = 92
  268. integer taborder = 50
  269. boolean bringtotop = true
  270. integer textsize = -9
  271. integer weight = 400
  272. fontcharset fontcharset = gb2312charset!
  273. fontpitch fontpitch = variable!
  274. string facename = "宋体"
  275. long textcolor = 33554432
  276. borderstyle borderstyle = stylelowered!
  277. end type
  278. type sle_chnname from singlelineedit within w_dwprint_dynamic_saveas
  279. integer x = 443
  280. integer y = 372
  281. integer width = 1888
  282. integer height = 92
  283. integer taborder = 60
  284. boolean bringtotop = true
  285. integer textsize = -9
  286. integer weight = 400
  287. fontcharset fontcharset = gb2312charset!
  288. fontpitch fontpitch = variable!
  289. string facename = "宋体"
  290. long textcolor = 33554432
  291. borderstyle borderstyle = stylelowered!
  292. end type
  293. type st_3 from statictext within w_dwprint_dynamic_saveas
  294. integer x = 91
  295. integer y = 388
  296. integer width = 343
  297. integer height = 60
  298. boolean bringtotop = true
  299. integer textsize = -9
  300. integer weight = 400
  301. fontcharset fontcharset = gb2312charset!
  302. fontpitch fontpitch = variable!
  303. string facename = "宋体"
  304. long textcolor = 33554432
  305. long backcolor = 79741120
  306. string text = "格式名称"
  307. alignment alignment = right!
  308. boolean focusrectangle = false
  309. end type
  310. type ddlb_1 from dropdownlistbox within w_dwprint_dynamic_saveas
  311. integer x = 443
  312. integer y = 124
  313. integer width = 1888
  314. integer height = 328
  315. integer taborder = 30
  316. boolean bringtotop = true
  317. integer textsize = -9
  318. integer weight = 400
  319. fontcharset fontcharset = gb2312charset!
  320. fontpitch fontpitch = variable!
  321. string facename = "宋体"
  322. long textcolor = 33554432
  323. boolean allowedit = true
  324. boolean autohscroll = true
  325. boolean vscrollbar = true
  326. borderstyle borderstyle = stylelowered!
  327. end type
  328. event constructor;long i,it_max,no_mxcheck
  329. string ls_libname[]
  330. i = 1
  331. DECLARE cur_inwaermx CURSOR FOR
  332. SELECT u_setliblist.libname
  333. from u_setliblist;
  334. OPEN cur_inwaermx;
  335. FETCH cur_inwaermx INTO :ls_libname[i];
  336. DO WHILE sqlca.SQLCode = 0
  337. i++
  338. FETCH cur_inwaermx INTO :ls_libname[i];
  339. loop
  340. CLOSE cur_inwaermx;
  341. SELECT count(*) INTO :no_mxcheck
  342. FROM u_setliblist ;
  343. IF sqlca.SQLCode <> 0 THEN
  344. it_max = 0
  345. END IF
  346. IF i <> (no_mxcheck+1) THEN
  347. it_max = 0
  348. else
  349. it_max = i - 1
  350. END IF
  351. for i = 1 to it_max
  352. THIS.AddItem (ls_libname[i])
  353. next
  354. end event
  355. type gb_2 from groupbox within w_dwprint_dynamic_saveas
  356. integer x = 32
  357. integer y = 8
  358. integer width = 2432
  359. integer height = 524
  360. integer taborder = 20
  361. integer textsize = -9
  362. integer weight = 400
  363. fontcharset fontcharset = gb2312charset!
  364. fontpitch fontpitch = variable!
  365. string facename = "宋体"
  366. long textcolor = 33554432
  367. long backcolor = 79741120
  368. string text = "导出数据窗口信息"
  369. end type