w_dwprint_dynamic.srw 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859
  1. $PBExportHeader$w_dwprint_dynamic.srw
  2. forward
  3. global type w_dwprint_dynamic from w_publ_base
  4. end type
  5. type dw_bill from u_dw_rbtnfilter within w_dwprint_dynamic
  6. end type
  7. type dw_dwprint from u_dw_rbtnfilter within w_dwprint_dynamic
  8. end type
  9. type cb_add from uo_imflatbutton within w_dwprint_dynamic
  10. end type
  11. type cb_edit from uo_imflatbutton within w_dwprint_dynamic
  12. end type
  13. type cb_delet from uo_imflatbutton within w_dwprint_dynamic
  14. end type
  15. type cb_retrieve from uo_imflatbutton within w_dwprint_dynamic
  16. end type
  17. type cb_edit_dw from uo_imflatbutton within w_dwprint_dynamic
  18. end type
  19. type dw_mx from u_dw_rbtnfilter within w_dwprint_dynamic
  20. end type
  21. type cb_saveas from uo_imflatbutton within w_dwprint_dynamic
  22. end type
  23. type cb_import from uo_imflatbutton within w_dwprint_dynamic
  24. end type
  25. type cb_1 from uo_imflatbutton within w_dwprint_dynamic
  26. end type
  27. type ln_bar2 from line within w_dwprint_dynamic
  28. end type
  29. type ln_bar from line within w_dwprint_dynamic
  30. end type
  31. type r_bar from rectangle within w_dwprint_dynamic
  32. end type
  33. end forward
  34. global type w_dwprint_dynamic from w_publ_base
  35. integer width = 3611
  36. integer height = 2372
  37. string title = "自定义单据打印格式"
  38. boolean maxbox = true
  39. windowstate windowstate = maximized!
  40. event retrieve_dw ( )
  41. event ue_f7 ( )
  42. event ue_f8 ( )
  43. event dwnkey pbm_dwnkey
  44. event retrieve_mx ( )
  45. event key pbm_keydown
  46. dw_bill dw_bill
  47. dw_dwprint dw_dwprint
  48. cb_add cb_add
  49. cb_edit cb_edit
  50. cb_delet cb_delet
  51. cb_retrieve cb_retrieve
  52. cb_edit_dw cb_edit_dw
  53. dw_mx dw_mx
  54. cb_saveas cb_saveas
  55. cb_import cb_import
  56. cb_1 cb_1
  57. ln_bar2 ln_bar2
  58. ln_bar ln_bar
  59. r_bar r_bar
  60. end type
  61. global w_dwprint_dynamic w_dwprint_dynamic
  62. type variables
  63. //long ll_billid
  64. uo_reportdef uo_report
  65. uo_billdef uo_bill
  66. boolean ls_update_flag=true
  67. Boolean dw_edit_mode_bill = FALSE
  68. long dw_bill_h,dw_dwprint_h,dw_dwprint_w
  69. long modifyrow_no
  70. DataWindowChild dw_child
  71. String ls_winname[]
  72. end variables
  73. forward prototypes
  74. public subroutine wf_get_qty ()
  75. public function integer wf_upload (ref string arg_msg)
  76. end prototypes
  77. event retrieve_dw();Long row
  78. row = dw_bill.GetRow()
  79. dw_bill.AcceptText()
  80. IF row > 0 THEN
  81. IF dw_bill.Object.printid[row] = 100000 THEN
  82. dw_dwprint.SetRedraw (FALSE)
  83. dw_dwprint.Retrieve(dw_bill.object.winname[row],0,ls_winname)
  84. dw_dwprint.SetRedraw (TRUE)
  85. ELSE
  86. dw_dwprint.SetRedraw (FALSE)
  87. dw_dwprint.Retrieve(dw_bill.object.winname[row],1,ls_winname)
  88. dw_dwprint.SetRedraw (TRUE)
  89. END IF
  90. ELSE
  91. dw_dwprint.Reset()
  92. END IF
  93. THIS.TriggerEvent('retrieve_mx')
  94. end event
  95. event ue_f8();//Long ll_rpt_row,ll_bill_row
  96. //s_rpt_imex s_rpt_imexreport
  97. //
  98. //ll_rpt_row = dw_report.GetRow()
  99. //ll_bill_row = dw_bill.GetRow()
  100. //
  101. //IF ll_bill_row <= 0 THEN RETURN
  102. //IF ll_rpt_row <= 0 THEN
  103. // s_rpt_imexreport.rpid = 0
  104. // s_rpt_imexreport.Billid = dw_bill.Object.Billid[ll_bill_row]
  105. //ELSE
  106. // s_rpt_imexreport.rpid = dw_report.Object.rpid[ll_rpt_row]
  107. // s_rpt_imexreport.RpName = dw_report.Object.RpName[ll_rpt_row]
  108. // s_rpt_imexreport.Flag = dw_report.Object.Flag[ll_rpt_row]
  109. // s_rpt_imexreport.Ifuse = dw_report.Object.Ifuse[ll_rpt_row]
  110. // s_rpt_imexreport.Billid = dw_report.Object.Billid[ll_rpt_row]
  111. // s_rpt_imexreport.auditprint = dw_report.Object.auditprint[ll_rpt_row]
  112. // s_rpt_imexreport.descrp = dw_report.Object.descrp[ll_rpt_row]
  113. //END IF
  114. //
  115. //OpenWithParm(w_rpt_imexport,s_rpt_imexreport)
  116. //
  117. //
  118. //
  119. //
  120. //
  121. //
  122. //
  123. //
  124. end event
  125. event retrieve_mx();String ls_pblname
  126. String ls_dwname
  127. String ls_pblpath
  128. String dwsyntax
  129. String ls_dw[],ls_msm[]
  130. Long ll_type[]
  131. Long ll_beg,ll_end
  132. Long it_max
  133. Long i,ll_row
  134. dw_dwprint.AcceptText()
  135. dw_mx.Reset()
  136. IF dw_dwprint.GetRow() = 0 THEN RETURN
  137. ls_pblname = dw_dwprint.Object.pblname[dw_dwprint.GetRow()]
  138. ls_dwname = dw_dwprint.Object.dft_new_dwname[dw_dwprint.GetRow()]
  139. ls_pblpath = sys_cur_path + ls_pblname
  140. dwsyntax = LibraryExport(ls_pblpath,ls_dwname,ExportDataWindow!)
  141. it_max ++
  142. ls_dw[it_max] = ls_dwname
  143. ll_type[it_max] = 0
  144. ll_end = 1
  145. DO WHILE Pos(dwsyntax,'dataobject=',ll_end) > 0
  146. ll_beg = Pos(dwsyntax,'dataobject=',ll_end)
  147. IF ll_beg = 0 THEN
  148. GOTO ext
  149. END IF
  150. ll_beg = ll_beg + 12
  151. ll_end = Pos(dwsyntax,'"',ll_beg)
  152. it_max ++
  153. ls_dw[it_max] = Mid(dwsyntax,ll_beg,ll_end - ll_beg )
  154. ll_type[it_max] = 1
  155. LOOP
  156. ext:
  157. String ls_data,s[]
  158. Long k
  159. s[4] = LibraryDirectory(ls_pblpath,DirDataWindow!) //name ~t date/time modified ~t comments ~n
  160. dw_mx.SetRedraw(FALSE)
  161. DO WHILE TRUE
  162. k = Pos(s[4],'~t')
  163. IF k = 0 THEN EXIT
  164. s[1] = Left(s[4],k -1) //DW名称
  165. s[4] = Mid(s[4],k+1)
  166. k = Pos(s[4],'~t')
  167. s[3] = Left(s[4],k -1)
  168. s[4] = Mid(s[4],k+1)
  169. k = Pos(s[4],'~n')
  170. s[2] = Left(s[4],k -1)
  171. s[4] = Mid(s[4],k+1)
  172. FOR i = 1 TO it_max
  173. IF s[1] = ls_dw[i] THEN
  174. k = dw_mx.InsertRow(0)
  175. dw_mx.SetItem(k,1,s[1])
  176. dw_mx.SetItem(k,2,s[2])
  177. dw_mx.SetItem(k,3,s[3])
  178. dw_mx.Object.fromtype[k] = ll_type[i]
  179. IF Len(Trim(s[2])) > 1 THEN
  180. ll_row = 0
  181. DO WHILE Pos(s[2],'&') > 0
  182. ll_row++
  183. ls_msm[ll_row] = Mid(s[2],1,Pos(s[2],'&') - 1)
  184. s[2] = Mid(s[2],Pos(s[2],'&') + 1)
  185. LOOP
  186. IF ll_row = 2 THEN
  187. dw_mx.object.product[k] = long(ls_msm[1])
  188. dw_mx.object.fromtype[k] = long(ls_msm[2] )
  189. end if
  190. if ll_row > 2 then
  191. dw_mx.object.product[k] = long(ls_msm[1])
  192. dw_mx.object.fromtype[k] = long(ls_msm[2] )
  193. dw_mx.object.wname[k] = ls_msm[3]
  194. dw_mx.object.dwname[k] = ls_msm[4]
  195. END IF
  196. END IF
  197. END IF
  198. NEXT
  199. LOOP
  200. dw_mx.SetRedraw(TRUE)
  201. dw_mx.SetSort('fromtype sec')
  202. dw_mx.Sort()
  203. IF dw_mx.GetRow() > 0 THEN
  204. dw_mx.SelectRow(0,FALSE)
  205. dw_mx.ScrollToRow (1)
  206. dw_mx.SelectRow(1,TRUE)
  207. END IF
  208. end event
  209. public subroutine wf_get_qty ();Long i
  210. Long ll_qty
  211. String ls_winname_temp
  212. dw_bill.AcceptText()
  213. FOR i = 1 TO dw_bill.RowCount()
  214. ls_winname_temp = dw_bill.Object.winname[i]
  215. ll_qty = 0
  216. SELECT count(*)
  217. INTO :ll_qty
  218. FROM sys_dft_dwprint_dynamic
  219. Where dwtype = :ls_winname_temp;
  220. IF sqlca.SQLCode <> 0 THEN
  221. MessageBox('错误','查询格式数量失败!',stopsign!,ok!)
  222. return
  223. END IF
  224. IF IsNull(ll_qty) THEN ll_qty = 0
  225. dw_bill.Object.qty[i] = ll_qty
  226. NEXT
  227. end subroutine
  228. public function integer wf_upload (ref string arg_msg);IF dw_bill.GetRow() = 0 THEN RETURN 1
  229. uo_atudexe uo_autoupdateexe
  230. String ls_pblname
  231. String ls_Filename
  232. Long rslt = 1
  233. Boolean if_find
  234. DateTime ld_mod
  235. uo_autoupdateexe = CREATE uo_atudexe
  236. uo_autoupdateexe.f_trycreate_sys_autoudexe(sqlca,arg_msg)
  237. String ls_pbl[]
  238. DateTime ld_uploadtime[]
  239. Long i,it_max
  240. i = 1
  241. DECLARE cur_inwaermx CURSOR FOR
  242. SELECT distinct pblname
  243. FROM sys_dft_dwprint_dynamic
  244. Where pblname Like '%.pbl';
  245. OPEN cur_inwaermx;
  246. FETCH cur_inwaermx INTO :ls_pbl[i] ;
  247. DO WHILE sqlca.SQLCode = 0
  248. i++
  249. FETCH cur_inwaermx INTO :ls_pbl[i] ;
  250. LOOP
  251. it_max = i - 1
  252. FOR i = 1 TO it_max
  253. if_find = TRUE
  254. ls_pblname = Trim(ls_pbl[i])
  255. ls_Filename = sys_cur_path + ls_pblname
  256. SELECT uploadtime
  257. INTO :ld_uploadtime[i]
  258. FROM sys_autoudexe
  259. Where Filename = :ls_pblname;
  260. IF sqlca.SQLCode = -1 THEN
  261. rslt = 0
  262. arg_msg = '查询更新列表失败'
  263. GOTO ext
  264. ELSEIF sqlca.SQLCode = 100 THEN
  265. if_find = FALSE
  266. END IF
  267. ld_mod = uo_autoupdateexe.pf_getfilecreatetime(ls_Filename)
  268. IF ld_uploadtime[i] < ld_mod OR NOT if_find THEN
  269. rslt = uo_autoupdateexe.f_del_uploadexe(sqlca,ls_pblname,arg_msg)
  270. IF rslt = 0 THEN
  271. arg_msg = arg_msg + '删除文件失败> '+ ls_pblname + '~n'
  272. rslt = 0
  273. GOTO ext
  274. END IF
  275. rslt = uo_autoupdateexe.f_uploadexe(sqlca,ls_Filename,&
  276. '[默认]',0,0,'',arg_msg)
  277. IF rslt = 0 THEN
  278. arg_msg = '上传操作失败> '+ ls_pblname + '~n'
  279. GOTO ext
  280. END IF
  281. END IF
  282. NEXT
  283. ext:
  284. RETURN rslt
  285. end function
  286. on w_dwprint_dynamic.create
  287. int iCurrent
  288. call super::create
  289. this.dw_bill=create dw_bill
  290. this.dw_dwprint=create dw_dwprint
  291. this.cb_add=create cb_add
  292. this.cb_edit=create cb_edit
  293. this.cb_delet=create cb_delet
  294. this.cb_retrieve=create cb_retrieve
  295. this.cb_edit_dw=create cb_edit_dw
  296. this.dw_mx=create dw_mx
  297. this.cb_saveas=create cb_saveas
  298. this.cb_import=create cb_import
  299. this.cb_1=create cb_1
  300. this.ln_bar2=create ln_bar2
  301. this.ln_bar=create ln_bar
  302. this.r_bar=create r_bar
  303. iCurrent=UpperBound(this.Control)
  304. this.Control[iCurrent+1]=this.dw_bill
  305. this.Control[iCurrent+2]=this.dw_dwprint
  306. this.Control[iCurrent+3]=this.cb_add
  307. this.Control[iCurrent+4]=this.cb_edit
  308. this.Control[iCurrent+5]=this.cb_delet
  309. this.Control[iCurrent+6]=this.cb_retrieve
  310. this.Control[iCurrent+7]=this.cb_edit_dw
  311. this.Control[iCurrent+8]=this.dw_mx
  312. this.Control[iCurrent+9]=this.cb_saveas
  313. this.Control[iCurrent+10]=this.cb_import
  314. this.Control[iCurrent+11]=this.cb_1
  315. this.Control[iCurrent+12]=this.ln_bar2
  316. this.Control[iCurrent+13]=this.ln_bar
  317. this.Control[iCurrent+14]=this.r_bar
  318. end on
  319. on w_dwprint_dynamic.destroy
  320. call super::destroy
  321. destroy(this.dw_bill)
  322. destroy(this.dw_dwprint)
  323. destroy(this.cb_add)
  324. destroy(this.cb_edit)
  325. destroy(this.cb_delet)
  326. destroy(this.cb_retrieve)
  327. destroy(this.cb_edit_dw)
  328. destroy(this.dw_mx)
  329. destroy(this.cb_saveas)
  330. destroy(this.cb_import)
  331. destroy(this.cb_1)
  332. destroy(this.ln_bar2)
  333. destroy(this.ln_bar)
  334. destroy(this.r_bar)
  335. end on
  336. event open;call super::open;Long i,ll_row,ll_row2
  337. dw_dwprint.SetTransObject(sqlca)
  338. dw_dwprint.GetChild('dwtype',dw_child)
  339. FOR i = 1 TO UpperBound(s_sys_bill)
  340. CHOOSE CASE sys_version_type
  341. CASE 0,1
  342. IF s_sys_bill[i].versiontype = sys_version_type OR s_sys_bill[i].versiontype = -1 THEN
  343. ll_row = dw_bill.InsertRow(0)
  344. dw_bill.Object.billname[ll_row] = s_sys_bill[i].billname
  345. dw_bill.Object.winname[ll_row] = s_sys_bill[i].winname
  346. dw_bill.Object.printid[ll_row] = s_sys_bill[i].printid
  347. ls_winname[ll_row] = s_sys_bill[i].winname
  348. ll_row2 = dw_child.InsertRow(0)
  349. dw_child.SetItem(ll_row2,1,s_sys_bill[i].winname)
  350. dw_child.SetItem(ll_row2,2,s_sys_bill[i].billname)
  351. END IF
  352. CASE 2
  353. IF s_sys_bill[i].versiontype = 0 OR s_sys_bill[i].versiontype = 2 OR s_sys_bill[i].versiontype = -1 THEN
  354. ll_row = dw_bill.InsertRow(0)
  355. dw_bill.Object.billname[ll_row] = s_sys_bill[i].billname
  356. dw_bill.Object.winname[ll_row] = s_sys_bill[i].winname
  357. dw_bill.Object.printid[ll_row] = s_sys_bill[i].printid
  358. ls_winname[ll_row] = s_sys_bill[i].winname
  359. ll_row2 = dw_child.InsertRow(0)
  360. dw_child.SetItem(ll_row2,1,s_sys_bill[i].winname)
  361. dw_child.SetItem(ll_row2,2,s_sys_bill[i].billname)
  362. END IF
  363. END CHOOSE
  364. NEXT
  365. ll_row = dw_bill.InsertRow(0)
  366. dw_bill.Object.billname[ll_row] = '[其他]'
  367. dw_bill.Object.winname[ll_row] = ''
  368. dw_bill.Object.printid[ll_row] = 100000
  369. dw_bill.SetSort('printid')
  370. dw_bill.Sort()
  371. wf_get_qty()
  372. dw_bill.TriggerEvent(RowFocusChanged!)
  373. end event
  374. event close;call super::close;
  375. DESTROY uo_report
  376. end event
  377. event resize;call super::resize;long w_width,w_height
  378. w_width = 3630
  379. w_height = 2290 + 150
  380. ln_bar.endx = this.width
  381. ln_bar2.endx = this.width
  382. r_bar.width = this.width
  383. if newwidth < w_width then this.width = w_width
  384. if newheight < w_height then this.height = w_height
  385. dw_bill.height = this.height - (w_height - dw_bill_h)
  386. dw_dwprint.width=this.width - (w_width - dw_dwprint_w)
  387. dw_mx.width=this.width - (w_width - dw_dwprint_w)
  388. dw_mx.height = dw_bill.height - dw_dwprint.height - cb_edit_dw.height - 20
  389. end event
  390. event ue_before_open;call super::ue_before_open;ls_winname[1] = 'w_saletask'
  391. end event
  392. type cb_func from w_publ_base`cb_func within w_dwprint_dynamic
  393. boolean visible = false
  394. end type
  395. type cb_exit from w_publ_base`cb_exit within w_dwprint_dynamic
  396. integer x = 1102
  397. integer width = 151
  398. integer height = 164
  399. integer picsize = 16
  400. toolbaralignment pic_align = alignattop!
  401. boolean border = false
  402. end type
  403. type dw_bill from u_dw_rbtnfilter within w_dwprint_dynamic
  404. integer y = 180
  405. integer width = 777
  406. integer height = 2080
  407. integer taborder = 20
  408. boolean bringtotop = true
  409. string dataobject = "ds_sys_billname"
  410. boolean hscrollbar = true
  411. boolean vscrollbar = true
  412. boolean rbutton_filter_use = true
  413. boolean titleclick_sort_use = true
  414. boolean autosave_setlayout_use = false
  415. end type
  416. event clicked;call super::clicked;IF not( dw_edit_mode or row <=0 ) THEN this.setrow(row)
  417. end event
  418. event rowfocuschanged;call super::rowfocuschanged;IF dw_edit_mode THEN RETURN
  419. IF currentrow <= 0 THEN
  420. dw_dwprint.Reset()
  421. RETURN
  422. END IF
  423. THIS.SetRow(currentrow)
  424. THIS.SelectRow(0,FALSE)
  425. THIS.SelectRow(currentrow,TRUE)
  426. PARENT.TriggerEvent('retrieve_dw')
  427. end event
  428. event constructor;call super::constructor;dw_bill_h = this.height
  429. end event
  430. event rowfocuschanging;call super::rowfocuschanging;if dw_edit_mode_bill then return 1
  431. end event
  432. event dwnkey;if keydown(KeyF4!) then //read layout
  433. uf_read_profile_filter()
  434. uf_read_profile_sort()
  435. //uf_read_profile_layout()
  436. elseif keydown(KeyF5!) then //save layout 不含列显示
  437. uf_save_profile_filter()
  438. uf_save_profile_sort()
  439. //uf_save_profile_layout()
  440. elseif keydown(KeyF9!) then //reset layout 不含列显示
  441. uf_reset_layout()
  442. end if
  443. PARENT.TriggerEvent(Key!)
  444. end event
  445. type dw_dwprint from u_dw_rbtnfilter within w_dwprint_dynamic
  446. integer x = 791
  447. integer y = 180
  448. integer width = 2779
  449. integer height = 1464
  450. integer taborder = 20
  451. boolean bringtotop = true
  452. string dataobject = "dw_dwprint_dynamic"
  453. boolean hscrollbar = true
  454. boolean vscrollbar = true
  455. boolean rbutton_filter_use = true
  456. boolean titleclick_sort_use = true
  457. end type
  458. event rowfocuschanged;call super::rowfocuschanged;this.selectrow(0,false)
  459. this.selectrow(currentrow,true)
  460. parent.triggerevent('retrieve_mx')
  461. end event
  462. event rowfocuschanging;call super::rowfocuschanging;if dw_edit_mode then return 1
  463. end event
  464. event doubleclicked;call super::doubleclicked;cb_edit.triggerevent(clicked!)
  465. end event
  466. event constructor;call super::constructor;dw_dwprint_h = this.height
  467. dw_dwprint_w = this.width
  468. end event
  469. event clicked;call super::clicked;THIS.SelectRow(0,FALSE)
  470. THIS.SelectRow(row,TRUE)
  471. end event
  472. type cb_add from uo_imflatbutton within w_dwprint_dynamic
  473. string tag = "新建/保存[Alt+S]"
  474. integer width = 192
  475. integer height = 164
  476. integer taborder = 30
  477. boolean bringtotop = true
  478. string text = "新建&S"
  479. string normalpicname = "NEW.bmp"
  480. integer picsize = 16
  481. toolbaralignment pic_align = alignattop!
  482. boolean border = false
  483. end type
  484. event clicked;call super::clicked;if dw_bill.getrow() = 0 then return
  485. s_edit_index_tran s_tran
  486. s_tran.b_long = 0
  487. s_tran.b_string = dw_bill.object.winname[dw_bill.getrow()]
  488. s_tran.c_string = dw_bill.object.billname[dw_bill.getrow()]
  489. s_tran.d_long = dw_bill.object.printid[dw_bill.getrow()]
  490. openwithparm(w_dwprint_dynamic_mod,s_tran)
  491. parent.triggerevent('retrieve_dw')
  492. wf_get_qty()
  493. end event
  494. type cb_edit from uo_imflatbutton within w_dwprint_dynamic
  495. string tag = "修改/放弃[Alt+E]"
  496. integer x = 192
  497. integer width = 192
  498. integer height = 164
  499. integer taborder = 30
  500. boolean bringtotop = true
  501. string text = "修改&E"
  502. string normalpicname = "OPEN.bmp"
  503. integer picsize = 16
  504. toolbaralignment pic_align = alignattop!
  505. boolean border = false
  506. end type
  507. event clicked;call super::clicked;Long ll_row
  508. if dw_bill.getrow() = 0 then return
  509. dw_dwprint.AcceptText()
  510. ll_row = dw_dwprint.GetRow()
  511. IF ll_row <= 0 THEN RETURN
  512. IF dw_dwprint.Object.dwprintid[ll_row] < 0 THEN
  513. RETURN
  514. END IF
  515. s_edit_index_tran s_tran
  516. s_tran.b_long = dw_dwprint.Object.dwprintid[ll_row]
  517. s_tran.b_string = dw_dwprint.Object.dwtype[ll_row]
  518. s_tran.c_string = dw_bill.object.billname[dw_bill.getrow()]
  519. s_tran.d_long = dw_bill.object.printid[dw_bill.getrow()]
  520. OpenWithParm(w_dwprint_dynamic_mod,s_tran)
  521. PARENT.TriggerEvent('retrieve_dw')
  522. dw_dwprint.SelectRow(0,FALSE)
  523. dw_dwprint.ScrollToRow (ll_row)
  524. dw_dwprint.SelectRow(ll_row,TRUE)
  525. //wf_get_qty()
  526. end event
  527. type cb_delet from uo_imflatbutton within w_dwprint_dynamic
  528. integer x = 384
  529. integer width = 151
  530. integer height = 164
  531. integer taborder = 30
  532. boolean bringtotop = true
  533. string text = "删除"
  534. string normalpicname = "delete.bmp"
  535. integer picsize = 16
  536. toolbaralignment pic_align = alignattop!
  537. boolean border = false
  538. end type
  539. event clicked;call super::clicked;
  540. IF MessageBox ("询问","是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN
  541. RETURN
  542. END IF
  543. dw_dwprint.AcceptText()
  544. IF dw_dwprint.Object.dwprintid[dw_dwprint.GetRow()] < 0 THEN
  545. MessageBox('提示','默认格式不能删除!',information!,ok!)
  546. RETURN
  547. END IF
  548. dw_dwprint.SetRedraw (FALSE)
  549. dw_dwprint.DeleteRow (0)
  550. dw_dwprint.TriggerEvent (RowFocusChanged!)
  551. IF dw_dwprint.Update() = -1 THEN
  552. ROLLBACK;
  553. MessageBox ("错误","删除记录操作失败!",stopsign!,OK!)
  554. ELSE
  555. COMMIT;
  556. END IF
  557. dw_dwprint.SetRedraw (TRUE)
  558. wf_get_qty()
  559. end event
  560. type cb_retrieve from uo_imflatbutton within w_dwprint_dynamic
  561. event ue_f7 ( )
  562. integer x = 686
  563. integer width = 151
  564. integer height = 164
  565. integer taborder = 30
  566. boolean bringtotop = true
  567. string text = "重查"
  568. string normalpicname = "refresh.bmp"
  569. integer picsize = 16
  570. toolbaralignment pic_align = alignattop!
  571. boolean border = false
  572. end type
  573. event clicked;call super::clicked;parent.triggerevent('retrieve_dw')
  574. wf_get_qty()
  575. end event
  576. type cb_edit_dw from uo_imflatbutton within w_dwprint_dynamic
  577. integer x = 795
  578. integer y = 1660
  579. integer width = 288
  580. integer height = 92
  581. integer taborder = 30
  582. boolean bringtotop = true
  583. string text = "编辑"
  584. string normalpicname = "open.bmp"
  585. end type
  586. event clicked;call super::clicked;string ls_dw,ls_pblname
  587. dw_dwprint.accepttext()
  588. dw_mx.accepttext()
  589. if dw_dwprint.getrow() = 0 then return
  590. if dw_mx.getrow() = 0 then return
  591. ls_dw = dw_mx.object.ctag[dw_mx.getrow()]
  592. ls_pblname= trim(dw_dwprint.object.pblname[dw_dwprint.getrow()])
  593. Long lib_row
  594. Long list_row
  595. str_rpt s_rpt_parm
  596. s_rpt_parm.auto = "auto"
  597. s_rpt_parm.transation = sqlca//数据库连接
  598. s_rpt_parm.oname = ls_dw
  599. s_rpt_parm.otype = sys_cur_path + ls_pblname
  600. s_rpt_parm.rcname = ls_dw
  601. s_rpt_parm.retr_pram_falg = -1
  602. s_rpt_parm.retr_flag = true
  603. s_rpt_parm.import_flag = true
  604. s_rpt_parm.pblpath = sys_cur_path + ls_pblname
  605. OpenWithParm(w_rpt_main,s_rpt_parm)
  606. end event
  607. type dw_mx from u_dw_rbtnfilter within w_dwprint_dynamic
  608. integer x = 791
  609. integer y = 1760
  610. integer width = 2779
  611. integer height = 492
  612. integer taborder = 20
  613. boolean bringtotop = true
  614. string dataobject = "dw_dwprint_dynamicmx"
  615. boolean hscrollbar = true
  616. boolean rbutton_filter_use = true
  617. boolean rbutton_setposition_use = true
  618. boolean titleclick_sort_use = true
  619. end type
  620. event rowfocuschanged;call super::rowfocuschanged;this.selectrow(0,false)
  621. this.selectrow(currentrow,true)
  622. end event
  623. event doubleclicked;call super::doubleclicked;cb_edit_dw.triggerevent(clicked!)
  624. end event
  625. type cb_saveas from uo_imflatbutton within w_dwprint_dynamic
  626. integer x = 535
  627. integer width = 151
  628. integer height = 164
  629. integer taborder = 40
  630. boolean bringtotop = true
  631. string text = "另存"
  632. string normalpicname = "copy.BMP"
  633. integer picsize = 16
  634. toolbaralignment pic_align = alignattop!
  635. boolean border = false
  636. end type
  637. event clicked;call super::clicked;s_edit_index_tran s_tran
  638. string ls_dw,ls_pblname,ls_billname
  639. long ll_dwprintid
  640. Long ll_row
  641. ll_row = dw_dwprint.GetRow()
  642. dw_dwprint.accepttext()
  643. dw_mx.accepttext()
  644. if dw_dwprint.getrow() = 0 then return
  645. if dw_mx.getrow() = 0 then return
  646. ls_dw = dw_dwprint.object.dft_new_dwname[dw_dwprint.getrow()]
  647. ls_pblname= dw_dwprint.object.pblname[dw_dwprint.getrow()]
  648. ll_dwprintid = dw_dwprint.object.dwprintid[dw_dwprint.getrow()]
  649. ls_billname = dw_bill.object.billname[dw_bill.getrow()]
  650. s_tran.b_string = ls_pblname
  651. s_tran.c_string = ls_dw
  652. s_tran.b_long = ll_dwprintid
  653. s_tran.d_string = ls_billname
  654. OpenWithParm(w_dwprint_dynamic_saveas,s_tran)
  655. PARENT.TriggerEvent('retrieve_dw')
  656. dw_dwprint.SelectRow(0,FALSE)
  657. dw_dwprint.ScrollToRow (ll_row)
  658. dw_dwprint.SelectRow(ll_row,TRUE)
  659. end event
  660. type cb_import from uo_imflatbutton within w_dwprint_dynamic
  661. string tag = "新建/保存[Alt+S]"
  662. integer x = 837
  663. integer width = 265
  664. integer height = 164
  665. integer taborder = 40
  666. boolean bringtotop = true
  667. string text = "导入/导出"
  668. string normalpicname = "imexport.BMP"
  669. integer picsize = 16
  670. toolbaralignment pic_align = alignattop!
  671. boolean border = false
  672. end type
  673. event clicked;call super::clicked;open(w_dwprint_dynamic_imexport)
  674. parent.triggerevent('retrieve_dw')
  675. wf_get_qty()
  676. end event
  677. type cb_1 from uo_imflatbutton within w_dwprint_dynamic
  678. event ue_f7 ( )
  679. boolean visible = false
  680. integer x = 837
  681. integer height = 164
  682. integer taborder = 40
  683. boolean bringtotop = true
  684. string text = "上传格式库"
  685. string normalpicname = "update.BMP"
  686. integer picsize = 16
  687. toolbaralignment pic_align = alignattop!
  688. boolean border = false
  689. end type
  690. event clicked;call super::clicked;String ls_msg
  691. IF wf_upload(ls_msg) = 0 THEN
  692. MessageBox('提示',ls_msg)
  693. ELSE
  694. MessageBox('提示','上传成功!')
  695. END IF
  696. end event
  697. type ln_bar2 from line within w_dwprint_dynamic
  698. long linecolor = 16777215
  699. integer linethickness = 4
  700. integer beginy = 172
  701. integer endx = 3406
  702. integer endy = 172
  703. end type
  704. type ln_bar from line within w_dwprint_dynamic
  705. long linecolor = 268435456
  706. integer linethickness = 4
  707. integer beginy = 168
  708. integer endx = 3406
  709. integer endy = 168
  710. end type
  711. type r_bar from rectangle within w_dwprint_dynamic
  712. long linecolor = 16777215
  713. long fillcolor = 1073741824
  714. integer x = 3067
  715. integer width = 73
  716. integer height = 172
  717. end type
  718. event constructor;this.fillcolor = 14215660
  719. this.linecolor = 14215660
  720. this.x = -1
  721. this.y = -1
  722. this.height = ln_bar2.beginy - 5
  723. end event