w_rpt_field_def.srw 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
  1. $PBExportHeader$w_rpt_field_def.srw
  2. forward
  3. global type w_rpt_field_def from w_publ_base
  4. end type
  5. type dw_table from u_dw_rbtnfilter within w_rpt_field_def
  6. end type
  7. type dw_field from u_dw_rbtnfilter within w_rpt_field_def
  8. end type
  9. type cb_add from uo_imflatbutton within w_rpt_field_def
  10. end type
  11. type cb_edit from uo_imflatbutton within w_rpt_field_def
  12. end type
  13. type cb_delet from uo_imflatbutton within w_rpt_field_def
  14. end type
  15. type cb_retrieve from uo_imflatbutton within w_rpt_field_def
  16. end type
  17. type cb_add_table from uo_imflatbutton within w_rpt_field_def
  18. end type
  19. type cb_edit_table from uo_imflatbutton within w_rpt_field_def
  20. end type
  21. type cb_delet_table from uo_imflatbutton within w_rpt_field_def
  22. end type
  23. type cb_imexport_table from uo_imflatbutton within w_rpt_field_def
  24. end type
  25. type cb_imexport from uo_imflatbutton within w_rpt_field_def
  26. end type
  27. type cb_retrieve_table from uo_imflatbutton within w_rpt_field_def
  28. end type
  29. type ln_bar2 from line within w_rpt_field_def
  30. end type
  31. type ln_bar from line within w_rpt_field_def
  32. end type
  33. type r_bar from rectangle within w_rpt_field_def
  34. end type
  35. end forward
  36. global type w_rpt_field_def from w_publ_base
  37. integer width = 3611
  38. integer height = 2372
  39. string title = "系统数据字典"
  40. boolean maxbox = true
  41. windowstate windowstate = maximized!
  42. event retrieve_field ( )
  43. event dwnkey pbm_dwnkey
  44. dw_table dw_table
  45. dw_field dw_field
  46. cb_add cb_add
  47. cb_edit cb_edit
  48. cb_delet cb_delet
  49. cb_retrieve cb_retrieve
  50. cb_add_table cb_add_table
  51. cb_edit_table cb_edit_table
  52. cb_delet_table cb_delet_table
  53. cb_imexport_table cb_imexport_table
  54. cb_imexport cb_imexport
  55. cb_retrieve_table cb_retrieve_table
  56. ln_bar2 ln_bar2
  57. ln_bar ln_bar
  58. r_bar r_bar
  59. end type
  60. global w_rpt_field_def w_rpt_field_def
  61. type variables
  62. //long ll_billid
  63. uo_reportdef uo_report
  64. uo_billdef uo_bill
  65. boolean ls_update_flag=true
  66. Boolean dw_edit_mode_table = FALSE
  67. str_rpt s_rpt_parm
  68. s_rpt_bill s_bill[]
  69. long dw_table_h,dw_field_h,dw_field_w
  70. long modifyrow_no
  71. string ins_sqlerrtext
  72. end variables
  73. forward prototypes
  74. public function integer wf_face_change ()
  75. public function integer wf_face_change_table ()
  76. end prototypes
  77. event retrieve_field();Long row
  78. row = dw_table.GetRow()
  79. IF row > 0 THEN
  80. dw_field.SetRedraw (FALSE)
  81. dw_field.Retrieve(dw_table.Object.table_english[row])
  82. dw_field.SetRedraw (TRUE)
  83. ELSE
  84. dw_field.Reset()
  85. END IF
  86. end event
  87. public function integer wf_face_change ();Long i
  88. IF dw_edit_mode THEN
  89. cb_delet_table.Enabled = FALSE
  90. cb_imexport_table.Enabled = FALSE
  91. cb_retrieve_table.Enabled = FALSE
  92. cb_edit_table.Enabled = FALSE
  93. cb_add_table.Enabled = FALSE
  94. cb_retrieve.Enabled = FALSE
  95. cb_delet.Enabled = FALSE
  96. cb_imexport.Enabled = FALSE
  97. cb_add.Enabled = TRUE
  98. cb_edit.Text = "放弃&E"
  99. cb_edit.normalpicname = 'Undo.bmp'
  100. FOR i = 1 TO 2
  101. dw_field.SetTabOrder ( i , i * 10 )
  102. NEXT
  103. dw_table.Enabled = FALSE
  104. ELSE
  105. cb_delet_table.Enabled = TRUE
  106. cb_imexport_table.Enabled = TRUE
  107. cb_retrieve_table.Enabled = TRUE
  108. cb_edit_table.Enabled = TRUE
  109. cb_add_table.Enabled = TRUE
  110. cb_retrieve.Enabled = TRUE
  111. cb_delet.Enabled = TRUE
  112. cb_imexport.Enabled = TRUE
  113. cb_add.Enabled = FALSE
  114. cb_edit.Text = "修改&E"
  115. cb_edit.normalpicname = 'OPEN.bmp'
  116. FOR i = 1 TO 2
  117. dw_field.SetTabOrder ( i , 0 )
  118. NEXT
  119. dw_table.Enabled = TRUE
  120. END IF
  121. cb_edit.of_init_draw()
  122. cb_edit.of_paint()
  123. cb_edit.TriggerEvent('ue_textchange')
  124. RETURN 1
  125. end function
  126. public function integer wf_face_change_table ();Long i
  127. IF dw_edit_mode_table THEN
  128. cb_retrieve.Enabled = FALSE
  129. cb_delet.Enabled = FALSE
  130. cb_imexport.Enabled = FALSE
  131. cb_edit.Enabled = FALSE
  132. cb_add.Enabled = FALSE
  133. cb_delet_table.Enabled = FALSE
  134. cb_imexport_table.Enabled = FALSE
  135. cb_retrieve_table.Enabled = FALSE
  136. cb_edit_table.Text = "放弃&E"
  137. cb_add_table.Text = "保存&S"
  138. cb_edit_table.normalpicname = 'Undo.bmp'
  139. cb_add_table.normalpicname = 'Save.bmp'
  140. dw_field.Enabled = FALSE
  141. ELSE
  142. cb_retrieve.Enabled = TRUE
  143. cb_delet.Enabled = TRUE
  144. cb_imexport.Enabled = TRUE
  145. cb_edit.Enabled = TRUE
  146. cb_add.Enabled = FALSE
  147. cb_delet_table.Enabled = TRUE
  148. cb_imexport_table.Enabled = TRUE
  149. cb_retrieve_table.Enabled = TRUE
  150. cb_edit_table.Text = "修改&E"
  151. cb_add_table.Text = "新建&S"
  152. cb_edit_table.normalpicname = 'OPEN.bmp'
  153. cb_add_table.normalpicname = 'new.bmp'
  154. dw_field.Enabled = TRUE
  155. END IF
  156. cb_edit_table.of_init_draw()
  157. cb_add_table.of_init_draw()
  158. cb_edit_table.of_paint()
  159. cb_add_table.of_paint()
  160. cb_edit_table.TriggerEvent('ue_textchange')
  161. cb_add_table.TriggerEvent('ue_textchange')
  162. RETURN 1
  163. end function
  164. on w_rpt_field_def.create
  165. int iCurrent
  166. call super::create
  167. this.dw_table=create dw_table
  168. this.dw_field=create dw_field
  169. this.cb_add=create cb_add
  170. this.cb_edit=create cb_edit
  171. this.cb_delet=create cb_delet
  172. this.cb_retrieve=create cb_retrieve
  173. this.cb_add_table=create cb_add_table
  174. this.cb_edit_table=create cb_edit_table
  175. this.cb_delet_table=create cb_delet_table
  176. this.cb_imexport_table=create cb_imexport_table
  177. this.cb_imexport=create cb_imexport
  178. this.cb_retrieve_table=create cb_retrieve_table
  179. this.ln_bar2=create ln_bar2
  180. this.ln_bar=create ln_bar
  181. this.r_bar=create r_bar
  182. iCurrent=UpperBound(this.Control)
  183. this.Control[iCurrent+1]=this.dw_table
  184. this.Control[iCurrent+2]=this.dw_field
  185. this.Control[iCurrent+3]=this.cb_add
  186. this.Control[iCurrent+4]=this.cb_edit
  187. this.Control[iCurrent+5]=this.cb_delet
  188. this.Control[iCurrent+6]=this.cb_retrieve
  189. this.Control[iCurrent+7]=this.cb_add_table
  190. this.Control[iCurrent+8]=this.cb_edit_table
  191. this.Control[iCurrent+9]=this.cb_delet_table
  192. this.Control[iCurrent+10]=this.cb_imexport_table
  193. this.Control[iCurrent+11]=this.cb_imexport
  194. this.Control[iCurrent+12]=this.cb_retrieve_table
  195. this.Control[iCurrent+13]=this.ln_bar2
  196. this.Control[iCurrent+14]=this.ln_bar
  197. this.Control[iCurrent+15]=this.r_bar
  198. end on
  199. on w_rpt_field_def.destroy
  200. call super::destroy
  201. destroy(this.dw_table)
  202. destroy(this.dw_field)
  203. destroy(this.cb_add)
  204. destroy(this.cb_edit)
  205. destroy(this.cb_delet)
  206. destroy(this.cb_retrieve)
  207. destroy(this.cb_add_table)
  208. destroy(this.cb_edit_table)
  209. destroy(this.cb_delet_table)
  210. destroy(this.cb_imexport_table)
  211. destroy(this.cb_imexport)
  212. destroy(this.cb_retrieve_table)
  213. destroy(this.ln_bar2)
  214. destroy(this.ln_bar)
  215. destroy(this.r_bar)
  216. end on
  217. event open;call super::open;dw_table.SetTransObject(sqlca)
  218. dw_field.SetTransObject(sqlca)
  219. dw_table.Retrieve()
  220. end event
  221. event close;call super::close;DESTROY uo_report
  222. end event
  223. event resize;call super::resize;long w_width,w_height
  224. w_width = 3630
  225. w_height = 2290 + 100
  226. ln_bar.endx = this.width
  227. ln_bar2.endx = this.width
  228. r_bar.width = this.width
  229. if newwidth < w_width then this.width = w_width
  230. if newheight < w_height then this.height = w_height
  231. dw_table.height = this.height - (w_height - dw_table_h)
  232. dw_field.width=this.width - (w_width - dw_field_w)
  233. dw_field.height=this.height - (w_height - dw_field_h)
  234. end event
  235. event closequery;call super::closequery;
  236. Int ls_row = 0
  237. IF dw_edit_mode THEN
  238. dw_field.AcceptText()
  239. ls_row = dw_field.GetNextModified(0, Primary!)+&
  240. dw_field.GetNextModified(0, Filter!)+dw_field.DeletedCount()
  241. IF ls_row > 0 THEN
  242. IF MessageBox('询问','数据已经改变,是否先保存?',Question!,YesNo!,1 ) = 1 THEN
  243. RETURN 1
  244. END IF
  245. END IF
  246. END IF
  247. IF dw_edit_mode_table THEN
  248. dw_table.AcceptText()
  249. ls_row = dw_table.GetNextModified(0, Primary!)+&
  250. dw_table.GetNextModified(0, Filter!)+dw_table.DeletedCount()
  251. IF ls_row > 0 THEN
  252. IF MessageBox('询问','数据已经改变,是否先保存?',Question!,YesNo!,1 ) = 1 THEN
  253. RETURN 1
  254. END IF
  255. END IF
  256. END IF
  257. end event
  258. event key;call super::key;IF KeyDown(KeyDelete!) THEN
  259. cb_delet_table.TriggerEvent(clicked!)
  260. end if
  261. end event
  262. type cb_func from w_publ_base`cb_func within w_rpt_field_def
  263. end type
  264. type cb_exit from w_publ_base`cb_exit within w_rpt_field_def
  265. integer x = 2446
  266. integer width = 151
  267. integer height = 164
  268. integer picsize = 16
  269. toolbaralignment pic_align = alignattop!
  270. boolean border = false
  271. end type
  272. type dw_table from u_dw_rbtnfilter within w_rpt_field_def
  273. integer y = 188
  274. integer width = 1499
  275. integer height = 2080
  276. integer taborder = 20
  277. boolean bringtotop = true
  278. string dataobject = "dw_rpt_table_def"
  279. boolean vscrollbar = true
  280. boolean rbutton_filter_use = true
  281. boolean titleclick_sort_use = true
  282. boolean autosave_setlayout_use = false
  283. end type
  284. event clicked;call super::clicked;IF not( dw_edit_mode or row <=0 ) THEN this.setrow(row)
  285. end event
  286. event rowfocuschanged;call super::rowfocuschanged;IF dw_edit_mode THEN RETURN
  287. IF currentrow <= 0 THEN
  288. dw_field.Reset()
  289. RETURN
  290. END IF
  291. THIS.SetRow(currentrow)
  292. THIS.SelectRow(0,FALSE)
  293. THIS.SelectRow(currentrow,TRUE)
  294. PARENT.TriggerEvent('retrieve_field')
  295. end event
  296. event constructor;call super::constructor;dw_table_h = this.height
  297. end event
  298. event rowfocuschanging;call super::rowfocuschanging;if dw_edit_mode_table then return 1
  299. end event
  300. event dwnkey;if keydown(KeyF4!) then //read layout
  301. uf_read_profile_filter()
  302. uf_read_profile_sort()
  303. //uf_read_profile_layout()
  304. elseif keydown(KeyF5!) then //save layout 不含列显示
  305. uf_save_profile_filter()
  306. uf_save_profile_sort()
  307. //uf_save_profile_layout()
  308. elseif keydown(KeyF9!) then //reset layout 不含列显示
  309. uf_reset_layout()
  310. end if
  311. PARENT.TriggerEvent(Key!)
  312. end event
  313. type dw_field from u_dw_rbtnfilter within w_rpt_field_def
  314. integer x = 1504
  315. integer y = 184
  316. integer width = 2085
  317. integer height = 2080
  318. integer taborder = 20
  319. boolean bringtotop = true
  320. string dataobject = "dw_rpt_field_def"
  321. boolean hscrollbar = true
  322. boolean vscrollbar = true
  323. boolean rbutton_filter_use = true
  324. boolean titleclick_sort_use = true
  325. end type
  326. event rowfocuschanged;call super::rowfocuschanged;
  327. this.selectrow(0,false)
  328. this.selectrow(currentrow,true)
  329. end event
  330. event doubleclicked;call super::doubleclicked;if dw_edit_mode then return
  331. parent.triggerevent('ue_f7')
  332. end event
  333. event constructor;call super::constructor;dw_field_h = this.height
  334. dw_field_w = this.width
  335. end event
  336. event ue_setlayout;//if setcolumn_visible_USE=false then return
  337. //IF this.DATAOBJECT='' THEN RETURN
  338. //
  339. //datastore ls_ds
  340. //ls_ds=create datastore
  341. //ls_ds.dataobject='dw_rbtnfilter_setlayout'
  342. //string ls_mdfstr,ls_mdftext_str,ls_titlex_str,ls_titley_str,ls_x_str,ls_y_str //存放modify string
  343. //string des_1,des_2,szColumn,ls_cwidth,ls_alignment
  344. //long nColumnIndex,nColumnCount,lRow,ls_i
  345. //s_dw_rbtnfilter_setlayout_rt ls_s_rt
  346. //
  347. //nColumnCount = Integer( this.Object.DataWindow.Column.Count)
  348. //
  349. //For nColumnIndex = 1 To nColumnCount
  350. // des_1= this.Describe( "#" + String(nColumnIndex) + ".Name")
  351. // des_2= this.describe(des_1+ "_t.Text")
  352. //
  353. // szColumn = f_strip( des_2)
  354. // If szColumn <> "!" Then
  355. // lRow = ls_ds.InsertRow( 0)
  356. // ls_ds.SetItem( lRow, "ctitle", szColumn)
  357. // ls_ds.SetItem( lRow, "cname", des_1)
  358. // ls_ds.SetItem( lRow, "cshow_flag", long(this.describe(des_1+ ".Visible")))
  359. // ls_ds.SetItem( lRow, "cnewtitle", this.describe(des_1+ "_t.text"))
  360. // ls_ds.SetItem( lRow, "cwidth", long(this.describe(des_1+ ".width")))
  361. // ls_ds.SetItem( lRow, "alignment", long(this.describe(des_1+ ".alignment")))
  362. // ls_ds.SetItem( lRow, "nColumnIndex", nColumnIndex)
  363. // ls_ds.SetItem( lRow, "titlex", long(this.describe(des_1+ "_t.x")))
  364. // ls_ds.SetItem( lRow, "titley", long(this.describe(des_1+ "_t.y")))
  365. // ls_ds.SetItem( lRow, "x", long(this.describe(des_1+ ".x")))
  366. // ls_ds.SetItem( lRow, "y", long(this.describe(des_1+ ".y")))
  367. // End If
  368. //Next
  369. //
  370. ////---打开设置窗口
  371. //openwithparm(w_dw_rbtnfilter_setlayout,ls_ds)
  372. //
  373. //ls_s_rt=message.powerobjectparm
  374. ////---处理设置
  375. //if ls_s_rt.flag=1 then //要保存修改
  376. // ls_ds.setfullstate( ls_s_rt.b_changes )
  377. // for ls_i=1 to ls_ds.rowcount()
  378. // ls_mdfstr=ls_mdfstr+ls_ds.object.cname[ls_i]+'.visible='+string(ls_ds.object.cshow_flag[ls_i])+'~t'
  379. // ls_mdfstr=ls_mdfstr+ls_ds.object.cname[ls_i]+'_t.visible='+string(ls_ds.object.cshow_flag[ls_i])+'~t'
  380. //
  381. // ls_mdftext_str=ls_mdftext_str+ls_ds.object.cname[ls_i]+"_t.text='"+ls_ds.object.cnewtitle[ls_i]+"'~t"
  382. // ls_titlex_str=ls_titlex_str+ls_ds.object.cname[ls_i]+"_t.x="+string(ls_ds.object.titlex[ls_i])+'~t'
  383. // ls_titley_str=ls_titley_str+ls_ds.object.cname[ls_i]+"_t.y="+string(ls_ds.object.titley[ls_i])+'~t'
  384. // ls_x_str=ls_x_str+ls_ds.object.cname[ls_i]+".x="+string(ls_ds.object.x[ls_i])+'~t'
  385. // ls_y_str=ls_y_str+ls_ds.object.cname[ls_i]+".y="+string(ls_ds.object.y[ls_i])+'~t'
  386. // ls_cwidth=ls_cwidth+ls_ds.object.cname[ls_i]+".width="+string(ls_ds.object.cwidth[ls_i])+'~t'
  387. // ls_alignment=ls_alignment+ls_ds.object.cname[ls_i]+".alignment="+string(ls_ds.object.alignment[ls_i])+'~t'
  388. // next
  389. //
  390. // ins_mdfstr_column_visible=ls_mdfstr
  391. // ins_mdfstr_column_text=ls_mdftext_str
  392. // ins_mdfstr_column_x=ls_titlex_str+ls_x_str
  393. // ins_mdfstr_column_y=ls_titley_str+ls_y_str
  394. // ins_mdfstr_column_width=ls_cwidth
  395. // ins_mdfstr_column_alignment=ls_alignment
  396. //
  397. // this.modify( ins_mdfstr_column_visible)
  398. // this.modify(ins_mdfstr_column_text)
  399. // this.modify(ins_mdfstr_column_width)
  400. // this.modify(ins_mdfstr_column_x)
  401. // this.modify(ins_mdfstr_column_y)
  402. // this.modify(ins_mdfstr_column_alignment)
  403. //elseif ls_s_rt.flag=2 then //reset
  404. // uf_reset_layout()
  405. // uf_save_profile_layout()
  406. //end if
  407. //
  408. //destroy ls_ds
  409. //
  410. //
  411. //
  412. end event
  413. event dwnkey;call super::dwnkey;PARENT.TriggerEvent(Key!)
  414. end event
  415. type cb_add from uo_imflatbutton within w_rpt_field_def
  416. string tag = "保存[Alt+S]"
  417. integer x = 1499
  418. integer width = 192
  419. integer height = 164
  420. integer taborder = 30
  421. boolean bringtotop = true
  422. boolean enabled = false
  423. string text = "保存&S"
  424. string normalpicname = "Save.bmp"
  425. integer picsize = 16
  426. toolbaralignment pic_align = alignattop!
  427. boolean border = false
  428. end type
  429. event clicked;call super::clicked;
  430. String errmsg
  431. IF dw_edit_mode THEN
  432. String ls_errmsg
  433. IF dw_field.Update() = -1 THEN
  434. IF Pos(ins_sqlerrtext,"Cannot insert duplicate key row") > 0 THEN
  435. ls_errmsg = "关键内容重复"
  436. ELSE
  437. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext
  438. END IF
  439. ROLLBACK;
  440. MessageBox ('错误',ls_errmsg+",保存操作失败!",stopsign!,OK!)
  441. LS_UPDATE_FLAG = FALSE
  442. RETURN
  443. ELSE
  444. COMMIT;
  445. LS_UPDATE_FLAG = TRUE
  446. END IF
  447. END IF
  448. dw_edit_mode = NOT dw_edit_mode
  449. WF_FACE_CHANGE()
  450. end event
  451. type cb_edit from uo_imflatbutton within w_rpt_field_def
  452. string tag = "修改/放弃[Alt+E]"
  453. integer x = 1691
  454. integer width = 192
  455. integer height = 164
  456. integer taborder = 30
  457. boolean bringtotop = true
  458. string text = "修改&E"
  459. string normalpicname = "OPEN.bmp"
  460. integer picsize = 16
  461. toolbaralignment pic_align = alignattop!
  462. boolean border = false
  463. end type
  464. event clicked;call super::clicked;long table_row
  465. table_row = dw_table.getrow()
  466. if table_row <= 0 then return
  467. IF dw_field.GetRow() < 1 THEN RETURN
  468. IF dw_edit_mode THEN
  469. IF dw_field.GetItemStatus(dw_field.GetRow(), 0, primary!) = newmodified! OR dw_field.GetItemStatus(dw_field.GetRow(), 0, primary!) = new! THEN
  470. dw_field.DeleteRow(dw_field.GetRow())
  471. ELSE
  472. dw_field.ReselectRow(dw_field.GetRow())
  473. END IF
  474. END IF
  475. modifyrow_no = dw_field.GetRow()
  476. dw_edit_mode = NOT dw_edit_mode
  477. wf_face_change()
  478. IF dw_edit_mode THEN
  479. dw_field.SetFocus( )
  480. dw_field.SetColumn('pbc_labl')
  481. END IF
  482. end event
  483. type cb_delet from uo_imflatbutton within w_rpt_field_def
  484. integer x = 1883
  485. integer width = 151
  486. integer height = 164
  487. integer taborder = 30
  488. boolean bringtotop = true
  489. string text = "删除"
  490. string normalpicname = "delete.bmp"
  491. integer picsize = 16
  492. toolbaralignment pic_align = alignattop!
  493. boolean border = false
  494. end type
  495. event clicked;call super::clicked;String ls_tablename
  496. IF MessageBox ('询问',"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN
  497. RETURN
  498. END IF
  499. String arg_msg
  500. IF dw_field.GetRow() <= 0 THEN
  501. MessageBox('提示','没有操作目标记录!',information!,OK!)
  502. RETURN
  503. END IF
  504. dw_field.SetRedraw (FALSE)
  505. dw_field.DeleteRow (0)
  506. dw_field.TriggerEvent (RowFocusChanged!)
  507. IF dw_field.Update() = -1 THEN
  508. ROLLBACK;
  509. MessageBox ('错误',"删除记录操作失败!",stopsign!,OK!)
  510. ELSE
  511. COMMIT;
  512. END IF
  513. dw_field.SetRedraw (TRUE)
  514. PARENT.TriggerEvent('retrieve_field')
  515. end event
  516. type cb_retrieve from uo_imflatbutton within w_rpt_field_def
  517. event ue_f7 ( )
  518. integer x = 2295
  519. integer width = 151
  520. integer height = 164
  521. integer taborder = 30
  522. boolean bringtotop = true
  523. string text = "重查"
  524. string normalpicname = "refresh.bmp"
  525. integer picsize = 16
  526. toolbaralignment pic_align = alignattop!
  527. boolean border = false
  528. end type
  529. event clicked;call super::clicked;PARENT.TriggerEvent('retrieve_field')
  530. end event
  531. type cb_add_table from uo_imflatbutton within w_rpt_field_def
  532. string tag = "新建/保存[Alt+S]"
  533. integer x = 5
  534. integer width = 192
  535. integer height = 164
  536. integer taborder = 40
  537. boolean bringtotop = true
  538. string text = "新建&S"
  539. string normalpicname = "NEW.bmp"
  540. integer picsize = 16
  541. toolbaralignment pic_align = alignattop!
  542. boolean border = false
  543. end type
  544. event clicked;call super::clicked;Long ll_newid,i,table_row
  545. String errmsg
  546. table_row = dw_table.getrow()
  547. IF dw_edit_mode_table THEN
  548. dw_table.AcceptText()
  549. IF dw_table.GetNextModified(0, Primary!) = 0 THEN
  550. MessageBox('提示','没有任何修改,不可以保存!',information!,ok!)
  551. RETURN
  552. END IF
  553. dw_table.Object.table_english[table_row] = Trim(dw_table.Object.table_english[table_row])
  554. dw_table.Object.table_chinese[table_row] = Trim(dw_table.Object.table_chinese[table_row])
  555. if dw_table.Object.table_chinese[table_row] = '' then
  556. MessageBox('提示','英文名称不能为空,不可以保存!',information!,ok!)
  557. RETURN
  558. END IF
  559. IF dw_table.Object.tableid[table_row] = 0 THEN
  560. ll_newid = f_sys_scidentity(0,"u_report_table","tableid",errmsg,FALSE,sqlca)
  561. IF ll_newid <= 0 THEN
  562. MessageBox('错误',errmsg,stopsign!,ok!)
  563. RETURN
  564. ELSE
  565. dw_table.Object.tableid[table_row] = ll_newid
  566. END IF
  567. END IF
  568. END IF
  569. IF dw_edit_mode_table THEN
  570. String ls_errmsg
  571. IF dw_table.Update() = -1 THEN
  572. IF Pos(ins_sqlerrtext,"Cannot insert duplicate key row") > 0 THEN
  573. ls_errmsg = "关键内容重复"
  574. ELSE
  575. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext
  576. END IF
  577. ROLLBACK;
  578. MessageBox ('错误',ls_errmsg+",保存操作失败!",stopsign!,OK!)
  579. LS_UPDATE_FLAG = FALSE
  580. RETURN
  581. ELSE
  582. COMMIT;
  583. FOR i = 1 TO 3
  584. dw_table.SetTabOrder ( i, 0 )
  585. NEXT
  586. LS_UPDATE_FLAG = TRUE
  587. END IF
  588. ins_sqlerrtext = ""
  589. ELSE
  590. Long li_row, li_cur_row
  591. li_cur_row = dw_table.GetRow()
  592. li_row = dw_table.InsertRow (0)
  593. FOR i = 1 TO 3
  594. dw_table.SetTabOrder ( i, i*10 )
  595. NEXT
  596. dw_table.SelectRow(0,FALSE)
  597. dw_table.ScrollToRow (li_row)
  598. dw_table.SelectRow(li_row,TRUE)
  599. dw_table.SetFocus()
  600. modifyrow_no = li_row
  601. END IF
  602. dw_edit_mode_table = NOT dw_edit_mode_table
  603. WF_FACE_CHANGE_table()
  604. end event
  605. type cb_edit_table from uo_imflatbutton within w_rpt_field_def
  606. string tag = "修改/放弃[Alt+E]"
  607. integer x = 197
  608. integer width = 192
  609. integer height = 164
  610. integer taborder = 50
  611. boolean bringtotop = true
  612. string text = "修改&E"
  613. string normalpicname = "OPEN.bmp"
  614. integer picsize = 16
  615. toolbaralignment pic_align = alignattop!
  616. boolean border = false
  617. end type
  618. event clicked;call super::clicked;Long i
  619. IF dw_edit_mode_table THEN
  620. IF dw_table.GetItemStatus(dw_table.GetRow(), 0, Primary!) = NewModified! OR dw_table.GetItemStatus(dw_table.GetRow(), 0, Primary!) = New! THEN
  621. dw_table.DeleteRow(dw_table.GetRow())
  622. ELSE
  623. dw_table.ReselectRow(dw_table.GetRow())
  624. END IF
  625. FOR i = 1 TO 3
  626. dw_table.SetTabOrder ( i, 0 )
  627. NEXT
  628. modifyrow_no = 0
  629. ELSE
  630. modifyrow_no = dw_table.GetRow()
  631. FOR i = 1 TO 3
  632. dw_table.SetTabOrder ( i, i*10 )
  633. NEXT
  634. dw_table.SetFocus()
  635. dw_table.SelectRow(0,FALSE)
  636. dw_table.ScrollToRow (modifyrow_no)
  637. dw_table.SelectRow(modifyrow_no,TRUE)
  638. END IF
  639. dw_edit_mode_table = NOT dw_edit_mode_table
  640. WF_FACE_CHANGE_table()
  641. end event
  642. type cb_delet_table from uo_imflatbutton within w_rpt_field_def
  643. integer x = 389
  644. integer width = 151
  645. integer height = 164
  646. integer taborder = 60
  647. boolean bringtotop = true
  648. string text = "删除"
  649. string normalpicname = "delete.bmp"
  650. integer picsize = 16
  651. toolbaralignment pic_align = alignattop!
  652. boolean border = false
  653. end type
  654. event clicked;call super::clicked;String ls_tablename
  655. IF MessageBox ('询问',"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN
  656. RETURN
  657. END IF
  658. String arg_msg
  659. IF dw_table.GetRow() <= 0 THEN
  660. MessageBox('错误','没有操作目标记录!',information!,OK!)
  661. RETURN
  662. END IF
  663. ls_tablename = dw_table.Object.table_english[dw_table.GetRow()]
  664. DELETE FROM pbcatcol
  665. Where ( pbcatcol.pbc_tnam = :ls_tablename);
  666. IF sqlca.SQLCode <> 0 THEN
  667. ROLLBACK;
  668. MessageBox ('错误',"删除字段信息操作失败!",stopsign!,OK!)
  669. RETURN
  670. END IF
  671. dw_table.SetRedraw (FALSE)
  672. dw_table.DeleteRow (0)
  673. dw_table.TriggerEvent (RowFocusChanged!)
  674. IF dw_table.Update() = -1 THEN
  675. ROLLBACK;
  676. MessageBox ('错误',"删除记录操作失败!",stopsign!,OK!)
  677. ELSE
  678. COMMIT;
  679. END IF
  680. dw_table.SetRedraw (TRUE)
  681. dw_table.Retrieve()
  682. end event
  683. type cb_imexport_table from uo_imflatbutton within w_rpt_field_def
  684. event ue_f7 ( )
  685. integer x = 539
  686. integer width = 261
  687. integer height = 164
  688. integer taborder = 40
  689. boolean bringtotop = true
  690. string text = "导入/导出"
  691. string normalpicname = "imexport.BMP"
  692. integer picsize = 16
  693. toolbaralignment pic_align = alignattop!
  694. boolean border = false
  695. end type
  696. event clicked;call super::clicked;open(w_rpt_imexport_table)
  697. dw_table.Retrieve()
  698. end event
  699. type cb_imexport from uo_imflatbutton within w_rpt_field_def
  700. event ue_f7 ( )
  701. integer x = 2034
  702. integer width = 261
  703. integer height = 164
  704. integer taborder = 50
  705. boolean bringtotop = true
  706. string text = "导入/导出"
  707. string normalpicname = "imexport.BMP"
  708. integer picsize = 16
  709. toolbaralignment pic_align = alignattop!
  710. boolean border = false
  711. end type
  712. event clicked;call super::clicked;open(w_rpt_imexport_field)
  713. PARENT.TriggerEvent('retrieve_field')
  714. end event
  715. type cb_retrieve_table from uo_imflatbutton within w_rpt_field_def
  716. event ue_f7 ( )
  717. integer x = 800
  718. integer width = 151
  719. integer height = 164
  720. integer taborder = 40
  721. boolean bringtotop = true
  722. string text = "重查"
  723. string normalpicname = "refresh.bmp"
  724. integer picsize = 16
  725. toolbaralignment pic_align = alignattop!
  726. boolean border = false
  727. end type
  728. event clicked;call super::clicked;//dw_table.Retrieve()
  729. end event
  730. type ln_bar2 from line within w_rpt_field_def
  731. long linecolor = 16777215
  732. integer linethickness = 4
  733. integer beginy = 176
  734. integer endx = 3406
  735. integer endy = 176
  736. end type
  737. type ln_bar from line within w_rpt_field_def
  738. long linecolor = 268435456
  739. integer linethickness = 4
  740. integer beginy = 172
  741. integer endx = 3406
  742. integer endy = 172
  743. end type
  744. type r_bar from rectangle within w_rpt_field_def
  745. long linecolor = 16777215
  746. long fillcolor = 1073741824
  747. integer x = 3250
  748. integer y = -8
  749. integer width = 73
  750. integer height = 172
  751. end type
  752. event constructor;this.fillcolor = 14215660
  753. this.linecolor = 14215660
  754. this.x = -1
  755. this.y = -1
  756. this.height = ln_bar2.beginy - 5
  757. end event