w_rpt_def.srw 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777
  1. $PBExportHeader$w_rpt_def.srw
  2. forward
  3. global type w_rpt_def from w_rpt_publ_base
  4. end type
  5. type dw_report from u_rpt_dw_rbtnfilter within w_rpt_def
  6. end type
  7. type cb_add from uo_rpt_imflatbutton within w_rpt_def
  8. end type
  9. type cb_edit from uo_rpt_imflatbutton within w_rpt_def
  10. end type
  11. type cb_delet from uo_rpt_imflatbutton within w_rpt_def
  12. end type
  13. type cb_retrieve from uo_rpt_imflatbutton within w_rpt_def
  14. end type
  15. type cb_report from uo_rpt_imflatbutton within w_rpt_def
  16. end type
  17. type cb_imexport from uo_rpt_imflatbutton within w_rpt_def
  18. end type
  19. type cb_saveas from uo_rpt_imflatbutton within w_rpt_def
  20. end type
  21. type cb_view from uo_rpt_imflatbutton within w_rpt_def
  22. end type
  23. type ln_bar2 from line within w_rpt_def
  24. end type
  25. type ln_bar from line within w_rpt_def
  26. end type
  27. type r_bar from rectangle within w_rpt_def
  28. end type
  29. end forward
  30. global type w_rpt_def from w_rpt_publ_base
  31. integer width = 3639
  32. integer height = 2372
  33. string title = "自定义报表"
  34. boolean maxbox = true
  35. windowstate windowstate = maximized!
  36. event ue_f7 ( )
  37. event ue_f8 ( )
  38. event dwnkey pbm_dwnkey
  39. event ue_viewprint ( )
  40. dw_report dw_report
  41. cb_add cb_add
  42. cb_edit cb_edit
  43. cb_delet cb_delet
  44. cb_retrieve cb_retrieve
  45. cb_report cb_report
  46. cb_imexport cb_imexport
  47. cb_saveas cb_saveas
  48. cb_view cb_view
  49. ln_bar2 ln_bar2
  50. ln_bar ln_bar
  51. r_bar r_bar
  52. end type
  53. global w_rpt_def w_rpt_def
  54. type variables
  55. //long ll_billid
  56. uo_reportdef uo_report
  57. Boolean ls_update_flag = TRUE
  58. str_rpt s_rpt_parm
  59. s_rpt_bill s_bill[]
  60. Long dw_bill_h,dw_report_h,dw_report_w
  61. long modifyrow_no
  62. end variables
  63. forward prototypes
  64. public function integer wf_face_change ()
  65. public function integer wf_saveas (ref string arg_msg)
  66. end prototypes
  67. event ue_f7();Long report_row
  68. report_row = dw_report.GetRow()
  69. IF report_row <= 0 THEN RETURN
  70. s_rpt_parm.rid = dw_report.Object.rpid[report_row] //报表编号
  71. s_rpt_parm.rcname = dw_report.Object.rpname[report_row] //报表名称
  72. s_rpt_parm.billName = '自定义报表'
  73. s_rpt_parm.retr_pram_falg = -1
  74. s_rpt_parm.retr_flag = false ////////////自定义报表区别
  75. //s_rpt_add.userdw//前台报表设计时共享的用户数据dw
  76. IF dw_report.Object.flag[report_row] = 0 THEN
  77. s_rpt_parm.auto = "auto"
  78. s_rpt_parm.save_flag = false
  79. ELSE
  80. s_rpt_parm.auto = ""
  81. s_rpt_parm.save_flag = true
  82. END IF
  83. s_rpt_parm.transation = sqlca//数据库连接
  84. OpenWithParm(w_rpt_main,s_rpt_parm)
  85. end event
  86. event ue_f8();Long ll_rpt_row,ll_bill_row
  87. s_rpt_imex s_rpt_imexreport
  88. ll_rpt_row = dw_report.GetRow()
  89. IF ll_rpt_row <= 0 THEN
  90. s_rpt_imexreport.rpid = 0
  91. s_rpt_imexreport.Billid = 0
  92. ELSE
  93. s_rpt_imexreport.rpid = dw_report.Object.rpid[ll_rpt_row]
  94. s_rpt_imexreport.RpName = dw_report.Object.RpName[ll_rpt_row]
  95. s_rpt_imexreport.Flag = dw_report.Object.Flag[ll_rpt_row]
  96. s_rpt_imexreport.Ifuse = dw_report.Object.Ifuse[ll_rpt_row]
  97. s_rpt_imexreport.Billid = 0
  98. s_rpt_imexreport.auditprint = dw_report.Object.auditprint[ll_rpt_row]
  99. s_rpt_imexreport.descrp = dw_report.Object.descrp[ll_rpt_row]
  100. END IF
  101. OpenWithParm(w_rpt_imexport,s_rpt_imexreport)
  102. dw_report.retrieve()
  103. end event
  104. event ue_viewprint();long report_row,bill_row
  105. report_row = dw_report.getrow()
  106. if report_row <= 0 then return
  107. if dw_report.object.flag[report_row] = 0 then return
  108. s_rpt_print_msg s_print
  109. s_print.rpid = dw_report.object.rpid[report_row]
  110. s_print.retr_flag = false ////////////自定义报表区别
  111. s_print.tag_text = '自定义报表'
  112. s_print.rpname = dw_report.object.rpname[report_row]
  113. openwithparm(w_rpt_preview,s_print)
  114. end event
  115. public function integer wf_face_change ();long i
  116. IF dw_edit_mode THEN
  117. cb_retrieve.Enabled = FALSE
  118. cb_delet.Enabled = FALSE
  119. cb_imexport.Enabled = FALSE
  120. cb_saveas.Enabled = FALSE
  121. cb_report.Enabled = FALSE
  122. cb_view.Enabled = FALSE
  123. cb_edit.Text = "放弃&E"
  124. cb_add.Text = "保存&S"
  125. cb_edit.normalpicname = 'Undo.bmp'
  126. cb_add.normalpicname = 'Save.bmp'
  127. FOR i = 1 TO 3
  128. dw_report.SetTabOrder ( i , i * 10 )
  129. NEXT
  130. ELSE
  131. cb_retrieve.Enabled = TRUE
  132. cb_delet.Enabled = TRUE
  133. cb_imexport.Enabled = TRUE
  134. cb_report.Enabled = TRUE
  135. cb_saveas.Enabled = TRUE
  136. cb_report.Enabled = TRUE
  137. cb_view.Enabled = TRUE
  138. cb_edit.Text = "修改&E"
  139. cb_add.Text = "新建&S"
  140. cb_edit.normalpicname = 'OPEN.bmp'
  141. cb_add.normalpicname = 'new.bmp'
  142. FOR i = 1 TO 3
  143. dw_report.SetTabOrder ( i , 0 )
  144. NEXT
  145. END IF
  146. cb_edit.of_init_draw()
  147. cb_add.of_init_draw()
  148. cb_edit.of_paint()
  149. cb_add.of_paint()
  150. cb_edit.TriggerEvent('ue_textchange')
  151. cb_add.TriggerEvent('ue_textchange')
  152. RETURN 1
  153. end function
  154. public function integer wf_saveas (ref string arg_msg);Long ll_ifuse,ll_flag,ll_rpid,ll_billid
  155. Long ll_row,rslt = 1
  156. String ls_rpname,ls_descrp
  157. ll_row = dw_report.GetRow()
  158. IF ll_row <= 0 THEN
  159. arg_msg = '请先选择单据格式'
  160. rslt = 0
  161. GOTO ext
  162. END IF
  163. s_inputbox_rpt S_SREU
  164. S_SREU.Title = '请输入单据格式/报表名称'
  165. S_SREU.OLD_TEXT = ''
  166. OpenWithParm(w_inputbox_rpt,S_SREU)
  167. ls_rpname = Message.StringParm
  168. IF ls_rpname = '' THEN
  169. arg_msg = '取消另存单据格式'
  170. rslt = 0
  171. GOTO ext
  172. END IF
  173. ll_ifuse = dw_report.Object.ifuse[ll_row]
  174. ll_flag = dw_report.Object.flag[ll_row]
  175. ll_rpid = dw_report.Object.rpid[ll_row]
  176. ll_billid = dw_report.Object.billid[ll_row]
  177. ls_descrp = dw_report.Object.descrp[ll_row]
  178. Blob lblob
  179. SELECTBLOB Rpsyntax INTO :lblob FROM u_report_list Where rpid = :ll_rpid;
  180. IF sqlca.SQLCode <> 0 THEN
  181. arg_msg = '查询单据格式数据失败'
  182. rslt = 0
  183. GOTO ext
  184. END IF
  185. IF IsNull(lblob) THEN
  186. arg_msg = '单据格式没有数据,不能复制'
  187. rslt = 0
  188. GOTO ext
  189. END IF
  190. Long ll_newid
  191. ll_newid = f_sys_scidentity_rpt(0,"u_report_list","rpid",arg_msg,FALSE,sqlca)
  192. IF ll_newid <= 0 THEN
  193. rslt = 0
  194. GOTO ext
  195. END IF
  196. INSERT INTO u_Report_list
  197. ( RpID,
  198. ifuse,
  199. RpName,
  200. flag,
  201. billid ,
  202. descrp)
  203. VALUES ( :ll_newid,
  204. :ll_ifuse,
  205. :ls_RpName,
  206. :ll_flag,
  207. :ll_billid,
  208. :ls_descrp);
  209. IF sqlca.SQLCode <> 0 THEN
  210. arg_msg = '复制单据格式基本信息失败'
  211. rslt = 0
  212. GOTO ext
  213. END IF
  214. UPDATEBLOB u_report_list
  215. Set Rpsyntax = :lblob
  216. Where rpid = :ll_newid;
  217. IF sqlca.SQLCode <> 0 THEN
  218. arg_msg = '复制单据格式数据失败'
  219. rslt = 0
  220. GOTO ext
  221. END IF
  222. ext:
  223. IF rslt = 0 THEN
  224. ROLLBACK;
  225. ELSE
  226. COMMIT;
  227. END IF
  228. RETURN rslt
  229. end function
  230. on w_rpt_def.create
  231. int iCurrent
  232. call super::create
  233. this.dw_report=create dw_report
  234. this.cb_add=create cb_add
  235. this.cb_edit=create cb_edit
  236. this.cb_delet=create cb_delet
  237. this.cb_retrieve=create cb_retrieve
  238. this.cb_report=create cb_report
  239. this.cb_imexport=create cb_imexport
  240. this.cb_saveas=create cb_saveas
  241. this.cb_view=create cb_view
  242. this.ln_bar2=create ln_bar2
  243. this.ln_bar=create ln_bar
  244. this.r_bar=create r_bar
  245. iCurrent=UpperBound(this.Control)
  246. this.Control[iCurrent+1]=this.dw_report
  247. this.Control[iCurrent+2]=this.cb_add
  248. this.Control[iCurrent+3]=this.cb_edit
  249. this.Control[iCurrent+4]=this.cb_delet
  250. this.Control[iCurrent+5]=this.cb_retrieve
  251. this.Control[iCurrent+6]=this.cb_report
  252. this.Control[iCurrent+7]=this.cb_imexport
  253. this.Control[iCurrent+8]=this.cb_saveas
  254. this.Control[iCurrent+9]=this.cb_view
  255. this.Control[iCurrent+10]=this.ln_bar2
  256. this.Control[iCurrent+11]=this.ln_bar
  257. this.Control[iCurrent+12]=this.r_bar
  258. end on
  259. on w_rpt_def.destroy
  260. call super::destroy
  261. destroy(this.dw_report)
  262. destroy(this.cb_add)
  263. destroy(this.cb_edit)
  264. destroy(this.cb_delet)
  265. destroy(this.cb_retrieve)
  266. destroy(this.cb_report)
  267. destroy(this.cb_imexport)
  268. destroy(this.cb_saveas)
  269. destroy(this.cb_view)
  270. destroy(this.ln_bar2)
  271. destroy(this.ln_bar)
  272. destroy(this.r_bar)
  273. end on
  274. event open;call super::open;uo_report = CREATE uo_reportdef
  275. uo_report.commit_transaction = sqlca
  276. dw_report.SetTransObject(sqlca)
  277. dw_report.retrieve()
  278. end event
  279. event close;call super::close;DESTROY uo_report
  280. end event
  281. event resize;call super::resize;long w_width,w_height
  282. w_width = 3630
  283. w_height = 2290 + 150
  284. ln_bar.endx = this.width
  285. ln_bar2.endx = this.width
  286. r_bar.width = this.width
  287. if newwidth < w_width then this.width = w_width
  288. if newheight < w_height then this.height = w_height
  289. dw_report.width=this.width - (w_width - dw_report_w)
  290. dw_report.height=this.height - (w_height - dw_report_h)
  291. end event
  292. event closequery;call super::closequery;IF dw_edit_mode THEN
  293. Int ls_row = 0
  294. dw_report.AcceptText()
  295. ls_row = dw_report.GetNextModified(0, Primary!)+&
  296. dw_report.GetNextModified(0, Filter!)+dw_report.DeletedCount()
  297. IF ls_row > 0 THEN
  298. IF MessageBox('是否保存','单据数据已经改变,是否先保存?',Question!,YesNo!,1 ) = 1 THEN
  299. RETURN 1
  300. END IF
  301. END IF
  302. END IF
  303. end event
  304. type cb_exit from w_rpt_publ_base`cb_exit within w_rpt_def
  305. integer x = 1445
  306. integer width = 151
  307. integer height = 164
  308. integer picsize = 16
  309. toolbaralignment pic_align = alignattop!
  310. boolean border = false
  311. end type
  312. type dw_report from u_rpt_dw_rbtnfilter within w_rpt_def
  313. integer y = 180
  314. integer width = 3579
  315. integer height = 2080
  316. integer taborder = 20
  317. boolean bringtotop = true
  318. string dataobject = "dw_mod_rpt_list"
  319. boolean hscrollbar = true
  320. boolean vscrollbar = true
  321. boolean rbutton_filter_use = true
  322. boolean titleclick_sort_use = true
  323. boolean setlayout_use = false
  324. end type
  325. event rowfocuschanged;call super::rowfocuschanged;IF modifyrow_no >0 AND dw_edit_mode THEN
  326. THIS.SETROW(modifyrow_no)
  327. THIS.ScrollToRow(modifyrow_no)
  328. else
  329. this.selectrow(0,false)
  330. this.selectrow(currentrow,true)
  331. END IF
  332. end event
  333. event rowfocuschanging;call super::rowfocuschanging;if dw_edit_mode then return 1
  334. end event
  335. event doubleclicked;call super::doubleclicked;if dw_edit_mode then return
  336. parent.triggerevent('ue_f7')
  337. end event
  338. event constructor;call super::constructor;dw_report_h = this.height
  339. dw_report_w = this.width
  340. end event
  341. event ue_setlayout;//if setcolumn_visible_USE=false then return
  342. //IF this.DATAOBJECT='' THEN RETURN
  343. //
  344. //datastore ls_ds
  345. //ls_ds=create datastore
  346. //ls_ds.dataobject='dw_rbtnfilter_setlayout'
  347. //string ls_mdfstr,ls_mdftext_str,ls_titlex_str,ls_titley_str,ls_x_str,ls_y_str //存放modify string
  348. //string des_1,des_2,szColumn,ls_cwidth,ls_alignment
  349. //long nColumnIndex,nColumnCount,lRow,ls_i
  350. //s_dw_rbtnfilter_setlayout_rt ls_s_rt
  351. //
  352. //nColumnCount = Integer( this.Object.DataWindow.Column.Count)
  353. //
  354. //For nColumnIndex = 1 To nColumnCount
  355. // des_1= this.Describe( "#" + String(nColumnIndex) + ".Name")
  356. // des_2= this.describe(des_1+ "_t.Text")
  357. //
  358. // szColumn = f_strip( des_2)
  359. // If szColumn <> "!" Then
  360. // lRow = ls_ds.InsertRow( 0)
  361. // ls_ds.SetItem( lRow, "ctitle", szColumn)
  362. // ls_ds.SetItem( lRow, "cname", des_1)
  363. // ls_ds.SetItem( lRow, "cshow_flag", long(this.describe(des_1+ ".Visible")))
  364. // ls_ds.SetItem( lRow, "cnewtitle", this.describe(des_1+ "_t.text"))
  365. // ls_ds.SetItem( lRow, "cwidth", long(this.describe(des_1+ ".width")))
  366. // ls_ds.SetItem( lRow, "alignment", long(this.describe(des_1+ ".alignment")))
  367. // ls_ds.SetItem( lRow, "nColumnIndex", nColumnIndex)
  368. // ls_ds.SetItem( lRow, "titlex", long(this.describe(des_1+ "_t.x")))
  369. // ls_ds.SetItem( lRow, "titley", long(this.describe(des_1+ "_t.y")))
  370. // ls_ds.SetItem( lRow, "x", long(this.describe(des_1+ ".x")))
  371. // ls_ds.SetItem( lRow, "y", long(this.describe(des_1+ ".y")))
  372. // End If
  373. //Next
  374. //
  375. ////---打开设置窗口
  376. //openwithparm(w_dw_rbtnfilter_setlayout,ls_ds)
  377. //
  378. //ls_s_rt=message.powerobjectparm
  379. ////---处理设置
  380. //if ls_s_rt.flag=1 then //要保存修改
  381. // ls_ds.setfullstate( ls_s_rt.b_changes )
  382. // for ls_i=1 to ls_ds.rowcount()
  383. // ls_mdfstr=ls_mdfstr+ls_ds.object.cname[ls_i]+'.visible='+string(ls_ds.object.cshow_flag[ls_i])+'~t'
  384. // ls_mdfstr=ls_mdfstr+ls_ds.object.cname[ls_i]+'_t.visible='+string(ls_ds.object.cshow_flag[ls_i])+'~t'
  385. //
  386. // ls_mdftext_str=ls_mdftext_str+ls_ds.object.cname[ls_i]+"_t.text='"+ls_ds.object.cnewtitle[ls_i]+"'~t"
  387. // ls_titlex_str=ls_titlex_str+ls_ds.object.cname[ls_i]+"_t.x="+string(ls_ds.object.titlex[ls_i])+'~t'
  388. // ls_titley_str=ls_titley_str+ls_ds.object.cname[ls_i]+"_t.y="+string(ls_ds.object.titley[ls_i])+'~t'
  389. // ls_x_str=ls_x_str+ls_ds.object.cname[ls_i]+".x="+string(ls_ds.object.x[ls_i])+'~t'
  390. // ls_y_str=ls_y_str+ls_ds.object.cname[ls_i]+".y="+string(ls_ds.object.y[ls_i])+'~t'
  391. // ls_cwidth=ls_cwidth+ls_ds.object.cname[ls_i]+".width="+string(ls_ds.object.cwidth[ls_i])+'~t'
  392. // ls_alignment=ls_alignment+ls_ds.object.cname[ls_i]+".alignment="+string(ls_ds.object.alignment[ls_i])+'~t'
  393. // next
  394. //
  395. // ins_mdfstr_column_visible=ls_mdfstr
  396. // ins_mdfstr_column_text=ls_mdftext_str
  397. // ins_mdfstr_column_x=ls_titlex_str+ls_x_str
  398. // ins_mdfstr_column_y=ls_titley_str+ls_y_str
  399. // ins_mdfstr_column_width=ls_cwidth
  400. // ins_mdfstr_column_alignment=ls_alignment
  401. //
  402. // this.modify( ins_mdfstr_column_visible)
  403. // this.modify(ins_mdfstr_column_text)
  404. // this.modify(ins_mdfstr_column_width)
  405. // this.modify(ins_mdfstr_column_x)
  406. // this.modify(ins_mdfstr_column_y)
  407. // this.modify(ins_mdfstr_column_alignment)
  408. //elseif ls_s_rt.flag=2 then //reset
  409. // uf_reset_layout()
  410. // uf_save_profile_layout()
  411. //end if
  412. //
  413. //destroy ls_ds
  414. //
  415. //
  416. //
  417. end event
  418. event dwnkey;call super::dwnkey;PARENT.TriggerEvent(Key!)
  419. end event
  420. type cb_add from uo_rpt_imflatbutton within w_rpt_def
  421. string tag = "新建/保存[Alt+S]"
  422. integer x = 5
  423. integer width = 192
  424. integer height = 164
  425. integer taborder = 30
  426. boolean bringtotop = true
  427. string text = "新建&S"
  428. string normalpicname = "NEW.bmp"
  429. integer picsize = 16
  430. toolbaralignment pic_align = alignattop!
  431. boolean border = false
  432. end type
  433. event clicked;call super::clicked;
  434. String arg_msg = ''
  435. Boolean if_new = FALSE
  436. IF dw_edit_mode THEN
  437. dw_report.AcceptText()
  438. IF dw_report.GetNextModified(0, Primary!) = 0 THEN
  439. MessageBox('系统提示','没有任何修改,不可以保存!')
  440. RETURN
  441. END IF
  442. dw_report.Object.rpname[dw_report.GetRow()] = Trim(dw_report.Object.rpname[dw_report.GetRow()])
  443. dw_report.AcceptText( )
  444. IF dw_report.Object.rpname[dw_report.GetRow()] = '' THEN
  445. MessageBox('系统提示','请输入单据格式名称!')
  446. dw_report.SetFocus()
  447. dw_report.SetColumn("rpname")
  448. RETURN
  449. END IF
  450. //////////////////////////////////////////////////
  451. IF dw_report.Object.rpid[dw_report.GetRow()] = 0 THEN
  452. uo_report.newbegin(0)
  453. if_new = TRUE
  454. END IF
  455. /////////////////////////////
  456. dw_report.AcceptText()
  457. uo_report.s_rpt. rpid = dw_report.Object.rpid[dw_report.GetRow()]
  458. uo_report.s_rpt. rpname = dw_report.Object.rpname[dw_report.GetRow()]
  459. uo_report.s_rpt. billid = 0
  460. uo_report.s_rpt. ifuse = dw_report.Object.ifuse[dw_report.GetRow()]
  461. uo_report.s_rpt. auditprint = dw_report.Object.auditprint[dw_report.GetRow()]
  462. uo_report.s_rpt. descrp = dw_report.Object.descrp[dw_report.GetRow()]
  463. END IF
  464. //CALL SUPER::Clicked
  465. IF dw_edit_mode THEN
  466. String ls_errmsg
  467. IF uo_report.Save( TRUE, ls_errmsg) = 0 THEN
  468. MessageBox ("系统提示",ls_errmsg+",保存操作失败!",exclamation!,ok!)
  469. ls_update_flag = FALSE
  470. RETURN
  471. ELSE
  472. dw_report.Object.rpid[dw_report.GetRow()] = uo_report.rpid
  473. ls_update_flag = TRUE
  474. END IF
  475. ELSE
  476. Long li_row, li_cur_row
  477. li_cur_row = dw_report.GetRow()
  478. li_row = dw_report.InsertRow (li_cur_row)
  479. dw_report.ScrollToRow (li_row)
  480. dw_report.SelectRow(0,FALSE)
  481. dw_report.SelectRow(li_row,TRUE)
  482. modifyrow_no = li_row
  483. END IF
  484. dw_edit_mode = NOT dw_edit_mode
  485. wf_face_change()
  486. IF dw_edit_mode THEN
  487. dw_report.SetFocus( )
  488. dw_report.SetColumn('rpname')
  489. END IF
  490. end event
  491. type cb_edit from uo_rpt_imflatbutton within w_rpt_def
  492. string tag = "修改/放弃[Alt+E]"
  493. integer x = 197
  494. integer width = 192
  495. integer height = 164
  496. integer taborder = 30
  497. boolean bringtotop = true
  498. string text = "修改&E"
  499. string normalpicname = "OPEN.bmp"
  500. integer picsize = 16
  501. toolbaralignment pic_align = alignattop!
  502. boolean border = false
  503. end type
  504. event clicked;call super::clicked;IF dw_report.GetRow() <= 0 THEN RETURN
  505. IF dw_edit_mode THEN
  506. IF dw_report.GetItemStatus(dw_report.GetRow(), 0, primary!) = newmodified! OR dw_report.GetItemStatus(dw_report.GetRow(), 0, primary!) = new! THEN
  507. dw_report.DeleteRow(dw_report.GetRow())
  508. ELSE
  509. dw_report.ReselectRow(dw_report.GetRow())
  510. END IF
  511. END IF
  512. modifyrow_no = dw_report.GetRow()
  513. dw_edit_mode = NOT dw_edit_mode
  514. wf_face_change()
  515. IF dw_edit_mode THEN
  516. dw_report.SetFocus( )
  517. dw_report.SetColumn('rpname')
  518. END IF
  519. end event
  520. type cb_delet from uo_rpt_imflatbutton within w_rpt_def
  521. integer x = 389
  522. integer width = 151
  523. integer height = 164
  524. integer taborder = 30
  525. boolean bringtotop = true
  526. string text = "删除"
  527. string normalpicname = "delete.bmp"
  528. integer picsize = 16
  529. toolbaralignment pic_align = alignattop!
  530. boolean border = false
  531. end type
  532. event clicked;call super::clicked;string arg_msg = ""
  533. if messagebox ("if","是否确定要删除当前记录?(选择确定后记录将不可恢复)",question!,yesno! ) = 2 then
  534. return
  535. end if
  536. long ls_id,rslt = 1
  537. long ls_long = 0,report_row
  538. string ls_mtrlcode
  539. report_row = dw_report.getrow()
  540. if report_row <= 0 then
  541. messagebox('','没有操作目标记录!')
  542. return
  543. end if
  544. ls_id = dw_report.object.rpid[report_row]
  545. dw_report.setredraw (false)
  546. if uo_report.del(ls_id,true,arg_msg) = 0 then
  547. messagebox ("no","删除记录操作失败!"+arg_msg,exclamation!,ok!)
  548. return
  549. end if
  550. dw_report.setredraw (true)
  551. dw_report.retrieve()
  552. end event
  553. type cb_retrieve from uo_rpt_imflatbutton within w_rpt_def
  554. event ue_f7 ( )
  555. integer x = 690
  556. integer width = 151
  557. integer height = 164
  558. integer taborder = 30
  559. boolean bringtotop = true
  560. string text = "重查"
  561. string normalpicname = "refresh.bmp"
  562. integer picsize = 16
  563. toolbaralignment pic_align = alignattop!
  564. boolean border = false
  565. end type
  566. event clicked;call super::clicked;dw_report.retrieve()
  567. end event
  568. type cb_report from uo_rpt_imflatbutton within w_rpt_def
  569. integer x = 841
  570. integer width = 151
  571. integer height = 164
  572. integer taborder = 30
  573. boolean bringtotop = true
  574. string text = "编辑"
  575. string normalpicname = "SETTING.BMP"
  576. integer picsize = 16
  577. toolbaralignment pic_align = alignattop!
  578. boolean border = false
  579. end type
  580. event clicked;call super::clicked;parent.triggerevent('ue_f7')
  581. end event
  582. type cb_imexport from uo_rpt_imflatbutton within w_rpt_def
  583. integer x = 1184
  584. integer width = 261
  585. integer height = 164
  586. integer taborder = 30
  587. boolean bringtotop = true
  588. string text = "导入/导出"
  589. string normalpicname = "imexport.BMP"
  590. integer picsize = 16
  591. toolbaralignment pic_align = alignattop!
  592. boolean border = false
  593. end type
  594. event clicked;call super::clicked;parent.triggerevent('ue_f8')
  595. parent.triggerevent('retrieve_reportdw')
  596. end event
  597. type cb_saveas from uo_rpt_imflatbutton within w_rpt_def
  598. event ue_f7 ( )
  599. integer x = 539
  600. integer width = 151
  601. integer height = 164
  602. integer taborder = 40
  603. boolean bringtotop = true
  604. string text = "另存"
  605. string normalpicname = "copy.BMP"
  606. integer picsize = 16
  607. toolbaralignment pic_align = alignattop!
  608. boolean border = false
  609. end type
  610. event clicked;call super::clicked;string errmsg = ''
  611. if wf_saveas(errmsg) = 0 then
  612. messagebox('提示',errmsg)
  613. else
  614. dw_report.retrieve()
  615. end if
  616. end event
  617. type cb_view from uo_rpt_imflatbutton within w_rpt_def
  618. string tag = "预览[Alt+P]"
  619. integer x = 992
  620. integer width = 192
  621. integer height = 164
  622. integer taborder = 40
  623. boolean bringtotop = true
  624. string text = "预览&P"
  625. string normalpicname = "PREVIEW.BMP"
  626. integer picsize = 16
  627. toolbaralignment pic_align = alignattop!
  628. boolean border = false
  629. end type
  630. event clicked;call super::clicked;parent.triggerevent('ue_viewprint')
  631. end event
  632. type ln_bar2 from line within w_rpt_def
  633. long linecolor = 16777215
  634. integer linethickness = 4
  635. integer beginy = 172
  636. integer endx = 3406
  637. integer endy = 172
  638. end type
  639. type ln_bar from line within w_rpt_def
  640. long linecolor = 268435456
  641. integer linethickness = 4
  642. integer beginy = 168
  643. integer endx = 3406
  644. integer endy = 168
  645. end type
  646. type r_bar from rectangle within w_rpt_def
  647. long linecolor = 16777215
  648. long fillcolor = 1073741824
  649. integer x = 3067
  650. integer y = 8
  651. integer width = 73
  652. integer height = 172
  653. end type
  654. event constructor;this.fillcolor = 14215660
  655. this.linecolor = 14215660
  656. this.x = -1
  657. this.y = -1
  658. this.height = ln_bar2.beginy - 5
  659. end event