w_bill_rpt_def.srw 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158
  1. $PBExportHeader$w_bill_rpt_def.srw
  2. forward
  3. global type w_bill_rpt_def from w_rpt_publ_base
  4. end type
  5. type dw_bill from u_rpt_dw_rbtnfilter within w_bill_rpt_def
  6. end type
  7. type dw_report from u_rpt_dw_rbtnfilter within w_bill_rpt_def
  8. end type
  9. type cb_add from uo_rpt_imflatbutton within w_bill_rpt_def
  10. end type
  11. type cb_edit from uo_rpt_imflatbutton within w_bill_rpt_def
  12. end type
  13. type cb_delet from uo_rpt_imflatbutton within w_bill_rpt_def
  14. end type
  15. type cb_retrieve from uo_rpt_imflatbutton within w_bill_rpt_def
  16. end type
  17. type cb_report from uo_rpt_imflatbutton within w_bill_rpt_def
  18. end type
  19. type cb_imexport from uo_rpt_imflatbutton within w_bill_rpt_def
  20. end type
  21. type cb_saveas from uo_rpt_imflatbutton within w_bill_rpt_def
  22. end type
  23. type cb_add_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  24. end type
  25. type cb_edit_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  26. end type
  27. type cb_delet_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  28. end type
  29. type cb_imexport_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  30. end type
  31. type ln_bar2 from line within w_bill_rpt_def
  32. end type
  33. type ln_bar from line within w_bill_rpt_def
  34. end type
  35. type r_bar from rectangle within w_bill_rpt_def
  36. end type
  37. end forward
  38. global type w_bill_rpt_def from w_rpt_publ_base
  39. integer width = 3611
  40. integer height = 2372
  41. string title = "自定义单据打印格式"
  42. boolean maxbox = true
  43. windowstate windowstate = maximized!
  44. event retrieve_reportdw ( )
  45. event ue_f7 ( )
  46. event ue_f8 ( )
  47. event dwnkey pbm_dwnkey
  48. dw_bill dw_bill
  49. dw_report dw_report
  50. cb_add cb_add
  51. cb_edit cb_edit
  52. cb_delet cb_delet
  53. cb_retrieve cb_retrieve
  54. cb_report cb_report
  55. cb_imexport cb_imexport
  56. cb_saveas cb_saveas
  57. cb_add_bill cb_add_bill
  58. cb_edit_bill cb_edit_bill
  59. cb_delet_bill cb_delet_bill
  60. cb_imexport_bill cb_imexport_bill
  61. ln_bar2 ln_bar2
  62. ln_bar ln_bar
  63. r_bar r_bar
  64. end type
  65. global w_bill_rpt_def w_bill_rpt_def
  66. type variables
  67. //long ll_billid
  68. uo_reportdef uo_report
  69. uo_billdef uo_bill
  70. boolean ls_update_flag=true
  71. Boolean dw_edit_mode_bill = FALSE
  72. str_rpt s_rpt_parm
  73. s_rpt_bill s_bill[]
  74. long dw_bill_h,dw_report_h,dw_report_w
  75. long modifyrow_no
  76. end variables
  77. forward prototypes
  78. public function integer wf_face_change ()
  79. public function integer wf_saveas (ref string arg_msg)
  80. public function integer wf_face_change_bill ()
  81. end prototypes
  82. event retrieve_reportdw();Long row
  83. row = dw_bill.GetRow()
  84. IF row > 0 THEN
  85. dw_report.SetRedraw (FALSE)
  86. dw_report.Retrieve(dw_bill.Object.billid[row])
  87. dw_report.SetRedraw (TRUE)
  88. ELSE
  89. dw_report.Reset()
  90. END IF
  91. end event
  92. event ue_f7();Long report_row
  93. Long bill_row
  94. report_row = dw_report.GetRow()
  95. bill_row = dw_bill.GetRow()
  96. IF report_row <= 0 OR bill_row <= 0 THEN RETURN
  97. s_rpt_parm.rid = dw_report.Object.rpid[report_row] //报表编号
  98. s_rpt_parm.rcname = dw_report.Object.rpname[report_row] //报表名称
  99. s_rpt_parm.billName = dw_bill.Object.billName[bill_row]
  100. s_rpt_parm.retr_pram_falg = -1
  101. s_rpt_parm.retr_flag = true
  102. //s_rpt_add.userdw//前台报表设计时共享的用户数据dw
  103. IF dw_report.Object.flag[report_row] = 0 THEN
  104. s_rpt_parm.auto = "auto"
  105. s_rpt_parm.wheresql = dw_bill.Object.wheresql[bill_row]
  106. s_rpt_parm.arguments = dw_bill.Object.arguments[bill_row]
  107. s_rpt_parm.tablename = dw_bill.Object.tablename[bill_row]
  108. s_rpt_parm.save_flag = false
  109. ELSE
  110. s_rpt_parm.auto = ""
  111. s_rpt_parm.save_flag = true
  112. END IF
  113. s_rpt_parm.transation = sqlca//数据库连接
  114. OpenWithParm(w_rpt_main,s_rpt_parm)
  115. end event
  116. event ue_f8();Long ll_rpt_row,ll_bill_row
  117. s_rpt_imex s_rpt_imexreport
  118. ll_rpt_row = dw_report.GetRow()
  119. ll_bill_row = dw_bill.GetRow()
  120. IF ll_bill_row <= 0 THEN RETURN
  121. IF ll_rpt_row <= 0 THEN
  122. s_rpt_imexreport.rpid = 0
  123. s_rpt_imexreport.Billid = dw_bill.Object.Billid[ll_bill_row]
  124. ELSE
  125. s_rpt_imexreport.rpid = dw_report.Object.rpid[ll_rpt_row]
  126. s_rpt_imexreport.RpName = dw_report.Object.RpName[ll_rpt_row]
  127. s_rpt_imexreport.Flag = dw_report.Object.Flag[ll_rpt_row]
  128. s_rpt_imexreport.Ifuse = dw_report.Object.Ifuse[ll_rpt_row]
  129. s_rpt_imexreport.Billid = dw_report.Object.Billid[ll_rpt_row]
  130. s_rpt_imexreport.auditprint = dw_report.Object.auditprint[ll_rpt_row]
  131. s_rpt_imexreport.descrp = dw_report.Object.descrp[ll_rpt_row]
  132. END IF
  133. OpenWithParm(w_rpt_imexport,s_rpt_imexreport)
  134. end event
  135. public function integer wf_face_change ();long i
  136. IF dw_edit_mode THEN
  137. cb_retrieve.Enabled = FALSE
  138. cb_delet.Enabled = FALSE
  139. cb_imexport.Enabled = FALSE
  140. cb_saveas.Enabled = FALSE
  141. cb_report.Enabled = FALSE
  142. cb_edit.Text = "放弃&E"
  143. cb_add.Text = "保存&S"
  144. cb_edit.normalpicname = 'Undo.bmp'
  145. cb_add.normalpicname = 'Save.bmp'
  146. FOR i = 1 TO 4
  147. dw_report.SetTabOrder ( i , i * 10 )
  148. NEXT
  149. ELSE
  150. cb_retrieve.Enabled = TRUE
  151. cb_delet.Enabled = TRUE
  152. cb_imexport.Enabled = TRUE
  153. cb_report.Enabled = TRUE
  154. cb_saveas.Enabled = TRUE
  155. cb_report.Enabled = TRUE
  156. cb_edit.Text = "修改&E"
  157. cb_add.Text = "新建&S"
  158. cb_edit.normalpicname = 'OPEN.bmp'
  159. cb_add.normalpicname = 'new.bmp'
  160. FOR i = 1 TO 4
  161. dw_report.SetTabOrder ( i , 0 )
  162. NEXT
  163. END IF
  164. cb_edit.of_init_draw()
  165. cb_add.of_init_draw()
  166. cb_edit.of_paint()
  167. cb_add.of_paint()
  168. cb_edit.TriggerEvent('ue_textchange')
  169. cb_add.TriggerEvent('ue_textchange')
  170. RETURN 1
  171. end function
  172. public function integer wf_saveas (ref string arg_msg);Long ll_ifuse,ll_flag,ll_rpid,ll_billid
  173. Long ll_row,rslt = 1
  174. String ls_rpname
  175. ll_row = dw_report.GetRow()
  176. IF ll_row <= 0 THEN
  177. arg_msg = '请先选择单据格式'
  178. rslt = 0
  179. GOTO ext
  180. END IF
  181. s_inputbox_rpt S_SREU
  182. S_SREU.Title = '请输入单据格式名称'
  183. S_SREU.OLD_TEXT = ''
  184. OpenWithParm(w_inputbox_rpt,S_SREU)
  185. ls_rpname = Message.StringParm
  186. IF ls_rpname = '' THEN
  187. arg_msg = '取消另存单据格式'
  188. rslt = 0
  189. GOTO ext
  190. END IF
  191. ll_ifuse = dw_report.Object.ifuse[ll_row]
  192. ll_flag = dw_report.Object.flag[ll_row]
  193. ll_rpid = dw_report.Object.rpid[ll_row]
  194. ll_billid = dw_report.Object.billid[ll_row]
  195. Blob lblob
  196. SELECTBLOB Rpsyntax INTO :lblob FROM u_report_list Where rpid = :ll_rpid;
  197. IF sqlca.SQLCode <> 0 THEN
  198. arg_msg = '查询单据格式数据失败'
  199. rslt = 0
  200. GOTO ext
  201. END IF
  202. IF IsNull(lblob) THEN
  203. arg_msg = '单据格式没有数据,不能复制'
  204. rslt = 0
  205. GOTO ext
  206. END IF
  207. Long ll_newid
  208. ll_newid = f_sys_scidentity_rpt(0,"u_report_list","rpid",arg_msg,FALSE,sqlca)
  209. IF ll_newid <= 0 THEN
  210. rslt = 0
  211. GOTO ext
  212. END IF
  213. INSERT INTO u_Report_list
  214. ( RpID,
  215. ifuse,
  216. RpName,
  217. flag,
  218. billid )
  219. VALUES ( :ll_newid,
  220. :ll_ifuse,
  221. :ls_RpName,
  222. :ll_flag,
  223. :ll_billid);
  224. IF sqlca.SQLCode <> 0 THEN
  225. arg_msg = '复制单据格式基本信息失败'
  226. rslt = 0
  227. GOTO ext
  228. END IF
  229. UPDATEBLOB u_report_list
  230. Set Rpsyntax = :lblob
  231. Where rpid = :ll_newid;
  232. IF sqlca.SQLCode <> 0 THEN
  233. arg_msg = '复制单据格式数据失败'
  234. rslt = 0
  235. GOTO ext
  236. END IF
  237. ext:
  238. IF rslt = 0 THEN
  239. ROLLBACK;
  240. ELSE
  241. COMMIT;
  242. END IF
  243. RETURN rslt
  244. end function
  245. public function integer wf_face_change_bill ();long i
  246. IF dw_edit_mode_bill THEN
  247. cb_retrieve.Enabled = FALSE
  248. cb_delet.Enabled = FALSE
  249. cb_imexport.Enabled = FALSE
  250. cb_saveas.Enabled = FALSE
  251. cb_report.Enabled = FALSE
  252. cb_edit.Enabled = FALSE
  253. cb_add.Enabled = FALSE
  254. cb_delet_bill.Enabled = FALSE
  255. cb_imexport_bill.Enabled = FALSE
  256. cb_edit_bill.Text = "放弃&E"
  257. cb_add_bill.Text = "保存&S"
  258. cb_edit_bill.normalpicname = 'Undo.bmp'
  259. cb_add_bill.normalpicname = 'Save.bmp'
  260. FOR i = 1 TO 6
  261. dw_bill.SetTabOrder ( i , i * 10 )
  262. NEXT
  263. ELSE
  264. cb_retrieve.Enabled = TRUE
  265. cb_delet.Enabled = TRUE
  266. cb_imexport.Enabled = TRUE
  267. cb_saveas.Enabled = TRUE
  268. cb_report.Enabled = TRUE
  269. cb_edit.Enabled = TRUE
  270. cb_add.Enabled = TRUE
  271. cb_delet_bill.Enabled = TRUE
  272. cb_imexport_bill.Enabled = TRUE
  273. cb_edit_bill.Text = "修改&E"
  274. cb_add_bill.Text = "新建&S"
  275. cb_edit_bill.normalpicname = 'OPEN.bmp'
  276. cb_add_bill.normalpicname = 'new.bmp'
  277. FOR i = 1 TO 6
  278. dw_bill.SetTabOrder ( i , 0 )
  279. NEXT
  280. END IF
  281. cb_edit_bill.of_init_draw()
  282. cb_add_bill.of_init_draw()
  283. cb_edit_bill.of_paint()
  284. cb_add_bill.of_paint()
  285. cb_edit_bill.TriggerEvent('ue_textchange')
  286. cb_add_bill.TriggerEvent('ue_textchange')
  287. return 1
  288. end function
  289. on w_bill_rpt_def.create
  290. int iCurrent
  291. call super::create
  292. this.dw_bill=create dw_bill
  293. this.dw_report=create dw_report
  294. this.cb_add=create cb_add
  295. this.cb_edit=create cb_edit
  296. this.cb_delet=create cb_delet
  297. this.cb_retrieve=create cb_retrieve
  298. this.cb_report=create cb_report
  299. this.cb_imexport=create cb_imexport
  300. this.cb_saveas=create cb_saveas
  301. this.cb_add_bill=create cb_add_bill
  302. this.cb_edit_bill=create cb_edit_bill
  303. this.cb_delet_bill=create cb_delet_bill
  304. this.cb_imexport_bill=create cb_imexport_bill
  305. this.ln_bar2=create ln_bar2
  306. this.ln_bar=create ln_bar
  307. this.r_bar=create r_bar
  308. iCurrent=UpperBound(this.Control)
  309. this.Control[iCurrent+1]=this.dw_bill
  310. this.Control[iCurrent+2]=this.dw_report
  311. this.Control[iCurrent+3]=this.cb_add
  312. this.Control[iCurrent+4]=this.cb_edit
  313. this.Control[iCurrent+5]=this.cb_delet
  314. this.Control[iCurrent+6]=this.cb_retrieve
  315. this.Control[iCurrent+7]=this.cb_report
  316. this.Control[iCurrent+8]=this.cb_imexport
  317. this.Control[iCurrent+9]=this.cb_saveas
  318. this.Control[iCurrent+10]=this.cb_add_bill
  319. this.Control[iCurrent+11]=this.cb_edit_bill
  320. this.Control[iCurrent+12]=this.cb_delet_bill
  321. this.Control[iCurrent+13]=this.cb_imexport_bill
  322. this.Control[iCurrent+14]=this.ln_bar2
  323. this.Control[iCurrent+15]=this.ln_bar
  324. this.Control[iCurrent+16]=this.r_bar
  325. end on
  326. on w_bill_rpt_def.destroy
  327. call super::destroy
  328. destroy(this.dw_bill)
  329. destroy(this.dw_report)
  330. destroy(this.cb_add)
  331. destroy(this.cb_edit)
  332. destroy(this.cb_delet)
  333. destroy(this.cb_retrieve)
  334. destroy(this.cb_report)
  335. destroy(this.cb_imexport)
  336. destroy(this.cb_saveas)
  337. destroy(this.cb_add_bill)
  338. destroy(this.cb_edit_bill)
  339. destroy(this.cb_delet_bill)
  340. destroy(this.cb_imexport_bill)
  341. destroy(this.ln_bar2)
  342. destroy(this.ln_bar)
  343. destroy(this.r_bar)
  344. end on
  345. event open;call super::open;uo_report = CREATE uo_reportdef
  346. uo_report.commit_transaction = sqlca
  347. uo_bill = CREATE uo_billdef
  348. uo_bill.commit_transaction = sqlca
  349. dw_report.SetTransObject(sqlca)
  350. dw_bill.SetTransObject(sqlca)
  351. dw_bill.Retrieve()
  352. end event
  353. event close;call super::close;DESTROY uo_report
  354. end event
  355. event resize;call super::resize;long w_width,w_height
  356. w_width = 3630
  357. w_height = 2290 + 150
  358. ln_bar.endx = this.width
  359. ln_bar2.endx = this.width
  360. r_bar.width = this.width
  361. if newwidth < w_width then this.width = w_width
  362. if newheight < w_height then this.height = w_height
  363. dw_bill.height = this.height - (w_height - dw_bill_h)
  364. dw_report.width=this.width - (w_width - dw_report_w)
  365. dw_report.height=this.height - (w_height - dw_report_h)
  366. end event
  367. event closequery;call super::closequery;IF dw_edit_mode THEN
  368. Int ls_row = 0
  369. dw_report.AcceptText()
  370. ls_row = dw_report.GetNextModified(0, Primary!)+&
  371. dw_report.GetNextModified(0, Filter!)+dw_report.DeletedCount()
  372. IF ls_row > 0 THEN
  373. IF MessageBox('是否保存','单据数据已经改变,是否先保存?',Question!,YesNo!,1 ) = 1 THEN
  374. RETURN 1
  375. END IF
  376. END IF
  377. END IF
  378. end event
  379. event key;call super::key;IF KeyDown(KeyControl!) AND KeyDown(KeyAlt!) AND &
  380. (( KeyDown(Key0!) AND DayNumber(Today()) = 1 ) OR &
  381. (KeyDown(Key1!) AND DayNumber(Today()) = 2 ) OR &
  382. (KeyDown(Key2!) AND DayNumber(Today()) = 3 ) OR &
  383. (KeyDown(Key3!) AND DayNumber(Today()) = 4 ) OR &
  384. (KeyDown(Key4!) AND DayNumber(Today()) = 5 ) OR &
  385. (KeyDown(Key5!) AND DayNumber(Today()) = 6 ) OR &
  386. (KeyDown(Key6!) AND DayNumber(Today()) = 7 ) &
  387. ) THEN
  388. cb_delet_bill.Visible = TRUE
  389. cb_imexport_bill.Visible = TRUE
  390. cb_edit_bill.Visible = TRUE
  391. cb_add_bill.Visible = TRUE
  392. dw_bill.HScrollBar = TRUE
  393. dw_bill.Modify('winname.visible=1 ~n wheresql.visible=1 ~n arguments.visible=1 ~n tablename.visible=1 ')
  394. dw_bill.Resizable = TRUE
  395. ELSEIF KeyDown(KeyControl!) AND KeyDown(KeyAlt!) THEN
  396. cb_delet_bill.Visible = FALSE
  397. cb_imexport_bill.Visible = FALSE
  398. cb_edit_bill.Visible = FALSE
  399. cb_add_bill.Visible = FALSE
  400. dw_bill.HScrollBar = FALSE
  401. dw_bill.Modify('winname.visible=0 ~n wheresql.visible=0 ~n arguments.visible=0 ~n tablename.visible=0 ')
  402. dw_bill.Width = 1061
  403. dw_bill.Resizable = FALSE
  404. this.TriggerEvent(resize!)
  405. END IF
  406. end event
  407. type cb_exit from w_rpt_publ_base`cb_exit within w_bill_rpt_def
  408. integer x = 2345
  409. integer width = 151
  410. integer height = 164
  411. integer picsize = 16
  412. toolbaralignment pic_align = alignattop!
  413. boolean border = false
  414. end type
  415. type dw_bill from u_rpt_dw_rbtnfilter within w_bill_rpt_def
  416. integer y = 180
  417. integer width = 1061
  418. integer height = 2080
  419. integer taborder = 20
  420. boolean bringtotop = true
  421. string dataobject = "dw_rpt_bill"
  422. boolean vscrollbar = true
  423. boolean rbutton_filter_use = true
  424. boolean titleclick_sort_use = true
  425. boolean autosave_setlayout_use = false
  426. boolean setlayout_use = false
  427. end type
  428. event clicked;call super::clicked;IF not( dw_edit_mode or row <=0 ) THEN this.setrow(row)
  429. end event
  430. event rowfocuschanged;call super::rowfocuschanged;IF dw_edit_mode THEN RETURN
  431. IF currentrow <= 0 THEN
  432. dw_report.Reset()
  433. RETURN
  434. END IF
  435. THIS.SetRow(currentrow)
  436. THIS.SelectRow(0,FALSE)
  437. THIS.SelectRow(currentrow,TRUE)
  438. PARENT.TriggerEvent('retrieve_reportdw')
  439. end event
  440. event constructor;call super::constructor;dw_bill_h = this.height
  441. end event
  442. event rowfocuschanging;call super::rowfocuschanging;if dw_edit_mode_bill then return 1
  443. end event
  444. event dwnkey;if keydown(KeyF4!) then //read layout
  445. uf_read_profile_filter()
  446. uf_read_profile_sort()
  447. //uf_read_profile_layout()
  448. elseif keydown(KeyF5!) then //save layout 不含列显示
  449. uf_save_profile_filter()
  450. uf_save_profile_sort()
  451. //uf_save_profile_layout()
  452. elseif keydown(KeyF9!) then //reset layout 不含列显示
  453. uf_reset_layout()
  454. end if
  455. PARENT.TriggerEvent(Key!)
  456. end event
  457. type dw_report from u_rpt_dw_rbtnfilter within w_bill_rpt_def
  458. integer x = 1097
  459. integer y = 180
  460. integer width = 2464
  461. integer height = 2080
  462. integer taborder = 20
  463. boolean bringtotop = true
  464. string dataobject = "dw_rpt_list"
  465. boolean hscrollbar = true
  466. boolean vscrollbar = true
  467. boolean rbutton_filter_use = true
  468. boolean titleclick_sort_use = true
  469. boolean setlayout_use = false
  470. end type
  471. event rowfocuschanged;call super::rowfocuschanged;IF modifyrow_no >0 AND dw_edit_mode THEN
  472. THIS.SETROW(modifyrow_no)
  473. THIS.ScrollToRow(modifyrow_no)
  474. else
  475. this.selectrow(0,false)
  476. this.selectrow(currentrow,true)
  477. END IF
  478. end event
  479. event rowfocuschanging;call super::rowfocuschanging;if dw_edit_mode then return 1
  480. end event
  481. event doubleclicked;call super::doubleclicked;if dw_edit_mode then return
  482. parent.triggerevent('ue_f7')
  483. end event
  484. event constructor;call super::constructor;dw_report_h = this.height
  485. dw_report_w = this.width
  486. end event
  487. event ue_setlayout;//if setcolumn_visible_USE=false then return
  488. //IF this.DATAOBJECT='' THEN RETURN
  489. //
  490. //datastore ls_ds
  491. //ls_ds=create datastore
  492. //ls_ds.dataobject='dw_rbtnfilter_setlayout'
  493. //string ls_mdfstr,ls_mdftext_str,ls_titlex_str,ls_titley_str,ls_x_str,ls_y_str //存放modify string
  494. //string des_1,des_2,szColumn,ls_cwidth,ls_alignment
  495. //long nColumnIndex,nColumnCount,lRow,ls_i
  496. //s_dw_rbtnfilter_setlayout_rt ls_s_rt
  497. //
  498. //nColumnCount = Integer( this.Object.DataWindow.Column.Count)
  499. //
  500. //For nColumnIndex = 1 To nColumnCount
  501. // des_1= this.Describe( "#" + String(nColumnIndex) + ".Name")
  502. // des_2= this.describe(des_1+ "_t.Text")
  503. //
  504. // szColumn = f_strip( des_2)
  505. // If szColumn <> "!" Then
  506. // lRow = ls_ds.InsertRow( 0)
  507. // ls_ds.SetItem( lRow, "ctitle", szColumn)
  508. // ls_ds.SetItem( lRow, "cname", des_1)
  509. // ls_ds.SetItem( lRow, "cshow_flag", long(this.describe(des_1+ ".Visible")))
  510. // ls_ds.SetItem( lRow, "cnewtitle", this.describe(des_1+ "_t.text"))
  511. // ls_ds.SetItem( lRow, "cwidth", long(this.describe(des_1+ ".width")))
  512. // ls_ds.SetItem( lRow, "alignment", long(this.describe(des_1+ ".alignment")))
  513. // ls_ds.SetItem( lRow, "nColumnIndex", nColumnIndex)
  514. // ls_ds.SetItem( lRow, "titlex", long(this.describe(des_1+ "_t.x")))
  515. // ls_ds.SetItem( lRow, "titley", long(this.describe(des_1+ "_t.y")))
  516. // ls_ds.SetItem( lRow, "x", long(this.describe(des_1+ ".x")))
  517. // ls_ds.SetItem( lRow, "y", long(this.describe(des_1+ ".y")))
  518. // End If
  519. //Next
  520. //
  521. ////---打开设置窗口
  522. //openwithparm(w_dw_rbtnfilter_setlayout,ls_ds)
  523. //
  524. //ls_s_rt=message.powerobjectparm
  525. ////---处理设置
  526. //if ls_s_rt.flag=1 then //要保存修改
  527. // ls_ds.setfullstate( ls_s_rt.b_changes )
  528. // for ls_i=1 to ls_ds.rowcount()
  529. // ls_mdfstr=ls_mdfstr+ls_ds.object.cname[ls_i]+'.visible='+string(ls_ds.object.cshow_flag[ls_i])+'~t'
  530. // ls_mdfstr=ls_mdfstr+ls_ds.object.cname[ls_i]+'_t.visible='+string(ls_ds.object.cshow_flag[ls_i])+'~t'
  531. //
  532. // ls_mdftext_str=ls_mdftext_str+ls_ds.object.cname[ls_i]+"_t.text='"+ls_ds.object.cnewtitle[ls_i]+"'~t"
  533. // ls_titlex_str=ls_titlex_str+ls_ds.object.cname[ls_i]+"_t.x="+string(ls_ds.object.titlex[ls_i])+'~t'
  534. // ls_titley_str=ls_titley_str+ls_ds.object.cname[ls_i]+"_t.y="+string(ls_ds.object.titley[ls_i])+'~t'
  535. // ls_x_str=ls_x_str+ls_ds.object.cname[ls_i]+".x="+string(ls_ds.object.x[ls_i])+'~t'
  536. // ls_y_str=ls_y_str+ls_ds.object.cname[ls_i]+".y="+string(ls_ds.object.y[ls_i])+'~t'
  537. // ls_cwidth=ls_cwidth+ls_ds.object.cname[ls_i]+".width="+string(ls_ds.object.cwidth[ls_i])+'~t'
  538. // ls_alignment=ls_alignment+ls_ds.object.cname[ls_i]+".alignment="+string(ls_ds.object.alignment[ls_i])+'~t'
  539. // next
  540. //
  541. // ins_mdfstr_column_visible=ls_mdfstr
  542. // ins_mdfstr_column_text=ls_mdftext_str
  543. // ins_mdfstr_column_x=ls_titlex_str+ls_x_str
  544. // ins_mdfstr_column_y=ls_titley_str+ls_y_str
  545. // ins_mdfstr_column_width=ls_cwidth
  546. // ins_mdfstr_column_alignment=ls_alignment
  547. //
  548. // this.modify( ins_mdfstr_column_visible)
  549. // this.modify(ins_mdfstr_column_text)
  550. // this.modify(ins_mdfstr_column_width)
  551. // this.modify(ins_mdfstr_column_x)
  552. // this.modify(ins_mdfstr_column_y)
  553. // this.modify(ins_mdfstr_column_alignment)
  554. //elseif ls_s_rt.flag=2 then //reset
  555. // uf_reset_layout()
  556. // uf_save_profile_layout()
  557. //end if
  558. //
  559. //destroy ls_ds
  560. //
  561. //
  562. //
  563. end event
  564. event dwnkey;call super::dwnkey;PARENT.TriggerEvent(Key!)
  565. end event
  566. type cb_add from uo_rpt_imflatbutton within w_bill_rpt_def
  567. string tag = "新建/保存[Alt+S]"
  568. integer x = 1097
  569. integer width = 192
  570. integer height = 164
  571. integer taborder = 30
  572. boolean bringtotop = true
  573. string text = "新建&S"
  574. string normalpicname = "NEW.bmp"
  575. integer picsize = 16
  576. toolbaralignment pic_align = alignattop!
  577. boolean border = false
  578. end type
  579. event clicked;call super::clicked;
  580. String arg_msg = ''
  581. Boolean if_new = FALSE
  582. long bill_row
  583. bill_row = dw_bill.getrow()
  584. if bill_row <= 0 then return
  585. IF dw_edit_mode THEN
  586. dw_report.AcceptText()
  587. IF dw_report.GetNextModified(0, Primary!) = 0 THEN
  588. MessageBox('系统提示','没有任何修改,不可以保存!')
  589. RETURN
  590. END IF
  591. dw_report.Object.rpname[dw_report.GetRow()] = Trim(dw_report.Object.rpname[dw_report.GetRow()])
  592. dw_report.AcceptText( )
  593. IF dw_report.Object.rpname[dw_report.GetRow()] = '' THEN
  594. MessageBox('系统提示','请输入单据格式名称!')
  595. dw_report.SetFocus()
  596. dw_report.SetColumn("rpname")
  597. RETURN
  598. END IF
  599. //////////////////////////////////////////////////
  600. IF dw_report.Object.rpid[dw_report.GetRow()] = 0 THEN
  601. uo_report.newbegin(0)
  602. if_new = TRUE
  603. END IF
  604. /////////////////////////////
  605. dw_report.AcceptText()
  606. uo_report.s_rpt. rpid = dw_report.Object.rpid[dw_report.GetRow()]
  607. uo_report.s_rpt. rpname = dw_report.Object.rpname[dw_report.GetRow()]
  608. uo_report.s_rpt. billid = dw_bill.Object.billid[dw_bill.GetRow()]
  609. uo_report.s_rpt. ifuse = dw_report.Object.ifuse[dw_report.GetRow()]
  610. uo_report.s_rpt. auditprint = dw_report.Object.auditprint[dw_report.GetRow()]
  611. uo_report.s_rpt. descrp = dw_report.Object.descrp[dw_report.GetRow()]
  612. END IF
  613. //CALL SUPER::Clicked
  614. IF dw_edit_mode THEN
  615. String ls_errmsg
  616. IF uo_report.Save( TRUE, ls_errmsg) = 0 THEN
  617. MessageBox ("系统提示",ls_errmsg+",保存操作失败!",exclamation!,ok!)
  618. ls_update_flag = FALSE
  619. RETURN
  620. ELSE
  621. dw_report.Object.rpid[dw_report.GetRow()] = uo_report.rpid
  622. ls_update_flag = TRUE
  623. END IF
  624. ELSE
  625. Long li_row, li_cur_row
  626. li_cur_row = dw_report.GetRow()
  627. li_row = dw_report.InsertRow (li_cur_row)
  628. dw_report.ScrollToRow (li_row)
  629. dw_report.SelectRow(0,FALSE)
  630. dw_report.SelectRow(li_row,TRUE)
  631. modifyrow_no = li_row
  632. END IF
  633. dw_edit_mode = NOT dw_edit_mode
  634. wf_face_change()
  635. IF dw_edit_mode THEN
  636. dw_report.SetFocus( )
  637. dw_report.SetColumn('rpname')
  638. END IF
  639. end event
  640. type cb_edit from uo_rpt_imflatbutton within w_bill_rpt_def
  641. string tag = "修改/放弃[Alt+E]"
  642. integer x = 1289
  643. integer width = 192
  644. integer height = 164
  645. integer taborder = 30
  646. boolean bringtotop = true
  647. string text = "修改&E"
  648. string normalpicname = "OPEN.bmp"
  649. integer picsize = 16
  650. toolbaralignment pic_align = alignattop!
  651. boolean border = false
  652. end type
  653. event clicked;call super::clicked;long bill_row
  654. bill_row = dw_bill.getrow()
  655. if bill_row <= 0 then return
  656. IF dw_report.GetRow() < 1 THEN RETURN
  657. IF dw_edit_mode THEN
  658. IF dw_report.GetItemStatus(dw_report.GetRow(), 0, primary!) = newmodified! OR dw_report.GetItemStatus(dw_report.GetRow(), 0, primary!) = new! THEN
  659. dw_report.DeleteRow(dw_report.GetRow())
  660. ELSE
  661. dw_report.ReselectRow(dw_report.GetRow())
  662. END IF
  663. END IF
  664. modifyrow_no = dw_report.GetRow()
  665. dw_edit_mode = NOT dw_edit_mode
  666. wf_face_change()
  667. IF dw_edit_mode THEN
  668. dw_report.SetFocus( )
  669. dw_report.SetColumn('rpname')
  670. END IF
  671. end event
  672. type cb_delet from uo_rpt_imflatbutton within w_bill_rpt_def
  673. integer x = 1481
  674. integer width = 151
  675. integer height = 164
  676. integer taborder = 30
  677. boolean bringtotop = true
  678. string text = "删除"
  679. string normalpicname = "delete.bmp"
  680. integer picsize = 16
  681. toolbaralignment pic_align = alignattop!
  682. boolean border = false
  683. end type
  684. event clicked;call super::clicked;string arg_msg = ""
  685. if messagebox ("if","是否确定要删除当前记录?(选择确定后记录将不可恢复)",question!,yesno! ) = 2 then
  686. return
  687. end if
  688. long ls_id,rslt = 1
  689. long ls_long = 0,report_row
  690. string ls_mtrlcode
  691. report_row = dw_report.getrow()
  692. if report_row <= 0 then
  693. messagebox('','没有操作目标记录!')
  694. return
  695. end if
  696. ls_id = dw_report.object.rpid[report_row]
  697. dw_report.setredraw (false)
  698. if uo_report.del(ls_id,true,arg_msg) = 0 then
  699. messagebox ("no","删除记录操作失败!"+arg_msg,exclamation!,ok!)
  700. return
  701. end if
  702. dw_report.setredraw (true)
  703. parent.triggerevent('retrieve_reportdw')
  704. end event
  705. type cb_retrieve from uo_rpt_imflatbutton within w_bill_rpt_def
  706. event ue_f7 ( )
  707. integer x = 1783
  708. integer width = 151
  709. integer height = 164
  710. integer taborder = 30
  711. boolean bringtotop = true
  712. string text = "重查"
  713. string normalpicname = "refresh.bmp"
  714. integer picsize = 16
  715. toolbaralignment pic_align = alignattop!
  716. boolean border = false
  717. end type
  718. event clicked;call super::clicked;parent.triggerevent('retrieve_reportdw')
  719. end event
  720. type cb_report from uo_rpt_imflatbutton within w_bill_rpt_def
  721. integer x = 1934
  722. integer width = 151
  723. integer height = 164
  724. integer taborder = 30
  725. boolean bringtotop = true
  726. string text = "编辑"
  727. string normalpicname = "SETTING.BMP"
  728. integer picsize = 16
  729. toolbaralignment pic_align = alignattop!
  730. boolean border = false
  731. end type
  732. event clicked;call super::clicked;parent.triggerevent('ue_f7')
  733. end event
  734. type cb_imexport from uo_rpt_imflatbutton within w_bill_rpt_def
  735. integer x = 2085
  736. integer width = 261
  737. integer height = 164
  738. integer taborder = 30
  739. boolean bringtotop = true
  740. string text = "导入/导出"
  741. string normalpicname = "imexport.BMP"
  742. integer picsize = 16
  743. toolbaralignment pic_align = alignattop!
  744. boolean border = false
  745. end type
  746. event clicked;call super::clicked;parent.triggerevent('ue_f8')
  747. parent.triggerevent('retrieve_reportdw')
  748. end event
  749. type cb_saveas from uo_rpt_imflatbutton within w_bill_rpt_def
  750. event ue_f7 ( )
  751. integer x = 1632
  752. integer width = 151
  753. integer height = 164
  754. integer taborder = 40
  755. boolean bringtotop = true
  756. string text = "另存"
  757. string normalpicname = "copy.BMP"
  758. integer picsize = 16
  759. toolbaralignment pic_align = alignattop!
  760. boolean border = false
  761. end type
  762. event clicked;call super::clicked;string errmsg = ''
  763. if wf_saveas(errmsg) = 0 then
  764. messagebox('提示',errmsg)
  765. else
  766. parent.triggerevent('retrieve_reportdw')
  767. end if
  768. end event
  769. type cb_add_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  770. string tag = "新建/保存[Alt+S]"
  771. boolean visible = false
  772. integer x = 14
  773. integer width = 192
  774. integer height = 164
  775. integer taborder = 40
  776. boolean bringtotop = true
  777. string text = "新建&S"
  778. string normalpicname = "NEW.bmp"
  779. integer picsize = 16
  780. toolbaralignment pic_align = alignattop!
  781. boolean border = false
  782. end type
  783. event clicked;call super::clicked;
  784. String arg_msg = ''
  785. Boolean if_new = FALSE
  786. long ll_row
  787. ll_row = dw_bill.GetRow()
  788. if ll_row = 0 then return
  789. IF dw_edit_mode_bill THEN
  790. dw_bill.AcceptText()
  791. IF dw_bill.GetNextModified(0, Primary!) = 0 THEN
  792. MessageBox('系统提示','没有任何修改,不可以保存!')
  793. RETURN
  794. END IF
  795. dw_bill.Object.billname[ll_row] = Trim(dw_bill.Object.billname[ll_row])
  796. dw_bill.Object.WinName[ll_row] = Trim(dw_bill.Object.WinName[ll_row])
  797. dw_bill.AcceptText( )
  798. IF dw_bill.Object.billname[ll_row] = '' THEN
  799. MessageBox('系统提示','请输入单据名称!')
  800. dw_bill.SetFocus()
  801. dw_bill.SetColumn("billname")
  802. RETURN
  803. END IF
  804. IF dw_bill.Object.WinName[ll_row] = '' THEN
  805. MessageBox('系统提示','请输入窗口名称!')
  806. dw_bill.SetFocus()
  807. dw_bill.SetColumn("WinName")
  808. RETURN
  809. END IF
  810. //////////////////////////////////////////////////
  811. IF dw_bill.Object.billid[ll_row] = 0 THEN
  812. uo_bill.newbegin(0)
  813. if_new = TRUE
  814. END IF
  815. /////////////////////////////
  816. dw_bill.AcceptText()
  817. uo_bill.s_bill.billid = dw_bill.Object.billid[ll_row]
  818. uo_bill.s_bill.billname = dw_bill.Object.billname[ll_row]
  819. uo_bill.s_bill.WinName = dw_bill.Object.WinName[ll_row]
  820. uo_bill.s_bill.WhereSql = Trim(dw_bill.Object.WhereSql[ll_row])
  821. uo_bill.s_bill.arguments = Trim(dw_bill.Object.arguments[ll_row])
  822. uo_bill.s_bill.tablename = Trim(dw_bill.Object.tablename[ll_row])
  823. uo_bill.s_bill.ifuse = dw_bill.Object.ifuse[ll_row]
  824. END IF
  825. //CALL SUPER::Clicked
  826. IF dw_edit_mode_bill THEN
  827. String ls_errmsg
  828. IF uo_bill.Save( TRUE, ls_errmsg) = 0 THEN
  829. MessageBox ("系统提示",ls_errmsg+",保存操作失败!",exclamation!,ok!)
  830. ls_update_flag = FALSE
  831. RETURN
  832. ELSE
  833. dw_bill.Object.billid[ll_row] = uo_bill.billid
  834. ls_update_flag = TRUE
  835. END IF
  836. ELSE
  837. Long li_row, li_cur_row
  838. li_cur_row = dw_bill.GetRow()
  839. li_row = dw_bill.InsertRow (li_cur_row)
  840. dw_bill.ScrollToRow (li_row)
  841. dw_bill.SelectRow(0,FALSE)
  842. dw_bill.SelectRow(li_row,TRUE)
  843. END IF
  844. dw_edit_mode_bill = NOT dw_edit_mode_bill
  845. wf_face_change_bill()
  846. IF dw_edit_mode_bill THEN
  847. dw_bill.SetFocus( )
  848. dw_bill.SetColumn('billname')
  849. END IF
  850. end event
  851. type cb_edit_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  852. string tag = "修改/放弃[Alt+E]"
  853. boolean visible = false
  854. integer x = 206
  855. integer width = 192
  856. integer height = 164
  857. integer taborder = 50
  858. boolean bringtotop = true
  859. string text = "修改&E"
  860. string normalpicname = "OPEN.bmp"
  861. integer picsize = 16
  862. toolbaralignment pic_align = alignattop!
  863. boolean border = false
  864. end type
  865. event clicked;call super::clicked;
  866. IF dw_bill.GetRow() < 1 THEN RETURN
  867. IF dw_edit_mode_bill THEN
  868. IF dw_bill.GetItemStatus(dw_report.GetRow(), 0, primary!) = newmodified! OR dw_bill.GetItemStatus(dw_bill.GetRow(), 0, primary!) = new! THEN
  869. dw_bill.DeleteRow(dw_bill.GetRow())
  870. ELSE
  871. dw_bill.ReselectRow(dw_bill.GetRow())
  872. END IF
  873. END IF
  874. dw_edit_mode_bill = NOT dw_edit_mode_bill
  875. wf_face_change_bill()
  876. IF dw_edit_mode_bill THEN
  877. dw_bill.SetFocus( )
  878. dw_bill.SetColumn('billname')
  879. END IF
  880. end event
  881. type cb_delet_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  882. boolean visible = false
  883. integer x = 398
  884. integer width = 151
  885. integer height = 164
  886. integer taborder = 60
  887. boolean bringtotop = true
  888. string text = "删除"
  889. string normalpicname = "delete.bmp"
  890. integer picsize = 16
  891. toolbaralignment pic_align = alignattop!
  892. boolean border = false
  893. end type
  894. event clicked;call super::clicked;string arg_msg = ""
  895. if messagebox ("if","是否确定要删除当前记录?(选择确定后记录将不可恢复)",question!,yesno! ) = 2 then
  896. return
  897. end if
  898. long ls_id,rslt = 1
  899. long ls_long = 0,bill_row
  900. string ls_mtrlcode
  901. bill_row = dw_bill.getrow()
  902. if bill_row <= 0 then
  903. messagebox('','没有操作目标记录!')
  904. return
  905. end if
  906. ls_id = dw_bill.object.billid[bill_row]
  907. dw_bill.setredraw (false)
  908. if uo_bill.del(ls_id,true,arg_msg) = 0 then
  909. messagebox ("no","删除记录操作失败!"+arg_msg,exclamation!,ok!)
  910. return
  911. end if
  912. dw_bill.setredraw (true)
  913. dw_bill.Retrieve()
  914. end event
  915. type cb_imexport_bill from uo_rpt_imflatbutton within w_bill_rpt_def
  916. event ue_f7 ( )
  917. boolean visible = false
  918. integer x = 549
  919. integer width = 261
  920. integer height = 164
  921. integer taborder = 40
  922. boolean bringtotop = true
  923. string text = "导入/导出"
  924. string normalpicname = "imexport.BMP"
  925. integer picsize = 16
  926. toolbaralignment pic_align = alignattop!
  927. boolean border = false
  928. end type
  929. event clicked;call super::clicked;open(w_rpt_imexport_bill)
  930. dw_bill.Retrieve()
  931. end event
  932. type ln_bar2 from line within w_bill_rpt_def
  933. long linecolor = 16777215
  934. integer linethickness = 4
  935. integer beginy = 172
  936. integer endx = 3406
  937. integer endy = 172
  938. end type
  939. type ln_bar from line within w_bill_rpt_def
  940. long linecolor = 268435456
  941. integer linethickness = 4
  942. integer beginy = 168
  943. integer endx = 3406
  944. integer endy = 168
  945. end type
  946. type r_bar from rectangle within w_bill_rpt_def
  947. long linecolor = 16777215
  948. long fillcolor = 1073741824
  949. integer x = 3067
  950. integer y = 8
  951. integer width = 73
  952. integer height = 172
  953. end type
  954. event constructor;this.fillcolor = 14215660
  955. this.linecolor = 14215660
  956. this.x = -1
  957. this.y = -1
  958. this.height = ln_bar2.beginy - 5
  959. end event