w_bill_sign_def.srw 25 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058
  1. $PBExportHeader$w_bill_sign_def.srw
  2. forward
  3. global type w_bill_sign_def from w_xls_publ_edit_choice
  4. end type
  5. type dw_child from u_xls_dw_rbtnfilter within w_bill_sign_def
  6. end type
  7. type cb_save from uo_xls_imflatbutton within w_bill_sign_def
  8. end type
  9. type cb_refresh_child from uo_xls_imflatbutton within w_bill_sign_def
  10. end type
  11. type tv_1 from uo_xls_tree_billlist within w_bill_sign_def
  12. end type
  13. type cbx_autogetsign from checkbox within w_bill_sign_def
  14. end type
  15. type cb_cancel from uo_xls_imflatbutton within w_bill_sign_def
  16. end type
  17. type cb_refresh_uc from uo_xls_imflatbutton within w_bill_sign_def
  18. end type
  19. type cb_load from uo_xls_imflatbutton within w_bill_sign_def
  20. end type
  21. end forward
  22. global type w_bill_sign_def from w_xls_publ_edit_choice
  23. integer width = 3630
  24. integer height = 2540
  25. string title = "单据字段标记定义"
  26. boolean minbox = true
  27. boolean maxbox = true
  28. windowtype windowtype = popup!
  29. windowstate windowstate = maximized!
  30. event ue_f9 ( )
  31. event retrieve_child ( )
  32. event ue_modify_mx ( )
  33. event ue_save_mx ( )
  34. event ue_add_child ( )
  35. event ue_tv_selectionchange ( )
  36. event ue_newbill ( )
  37. event ue_newmx ( )
  38. dw_child dw_child
  39. cb_save cb_save
  40. cb_refresh_child cb_refresh_child
  41. tv_1 tv_1
  42. cbx_autogetsign cbx_autogetsign
  43. cb_cancel cb_cancel
  44. cb_refresh_uc cb_refresh_uc
  45. cb_load cb_load
  46. end type
  47. global w_bill_sign_def w_bill_sign_def
  48. type variables
  49. datastore ds
  50. datastore cur_ds
  51. end variables
  52. forward prototypes
  53. public function integer wf_new_facechange (integer arg_flag)
  54. end prototypes
  55. event retrieve_child();IF dw_uc.GetRow( ) <= 0 THEN
  56. dw_child.Reset( )
  57. RETURN
  58. END IF
  59. String dwname
  60. Long i,find_row
  61. Boolean bl_autogetsign
  62. bl_autogetsign = cbx_autogetsign.Checked
  63. s_xls_dwcolumnlist s_dwcol
  64. dwname = dw_uc.Object.defaultdatawindow[dw_uc.GetRow( ) ]
  65. IF dwname = '' THEN
  66. dw_child.Reset( )
  67. RETURN
  68. END IF
  69. IF Not f_xls_chkdw(dwname) THEN
  70. dw_child.Reset( )
  71. RETURN
  72. END IF
  73. IF Not IsValid(cur_ds) THEN
  74. cur_ds = Create datastore
  75. cur_ds.SetTransObject(sqlca)
  76. END IF
  77. cur_ds.DataObject = dwname
  78. s_dwcol = f_xls_getcolumnlist(cur_ds)
  79. IF UpperBound(s_dwcol.columnname) = 0 THEN
  80. dw_child.Reset( )
  81. RETURN
  82. END IF
  83. dw_child.SetRedraw(False)
  84. dw_child.Retrieve(dw_uc.Object.billid[dw_uc.GetRow( )] ,s_dwcol.columnname)
  85. Long newrow
  86. FOR i = 1 To UpperBound(s_dwcol.columnname)
  87. find_row = dw_child.Find( "U_XLS_BillColumn_Def.columnname = '"+s_dwcol.columnname[i]+"'", 1, dw_child.RowCount( ) )
  88. IF find_row > 0 THEN
  89. IF bl_autogetsign THEN
  90. IF Trim(dw_child.Object.signname[find_row]) = '' THEN
  91. dw_child.Object.signname[find_row] = Trim(s_dwcol.column_dscrp[i])
  92. IF s_dwcol.columnname[i] = 'pic' THEN
  93. dw_child.Object.columntype[newrow] = 1
  94. ELSE
  95. dw_child.Object.columntype[newrow] = 0
  96. END IF
  97. END IF
  98. END IF
  99. CONTINUE
  100. END IF
  101. newrow = dw_child.InsertRow( 0)
  102. dw_child.Object.columnname[newrow] = Lower(s_dwcol.columnname[i])
  103. IF bl_autogetsign THEN dw_child.Object.signname[newrow] = Trim(s_dwcol.column_dscrp[i])
  104. dw_child.Object.columntype[newrow] = -1
  105. IF bl_autogetsign THEN
  106. IF s_dwcol.columnname[i] = 'pic' THEN
  107. dw_child.Object.columntype[newrow] = 1
  108. ELSE
  109. dw_child.Object.columntype[newrow] = 0
  110. END IF
  111. END IF
  112. NEXT
  113. dw_child.SetRedraw(True)
  114. end event
  115. EVENT ue_modify_mx();
  116. //
  117. //IF dw_child_main.RowCount( ) = 0 or dw_child_mx.RowCount( ) = 0 THEN
  118. // MessageBox('系统提示','没有任何明细!')
  119. // RETURN
  120. //END IF
  121. String arg_msg = ''
  122. Long uc_row
  123. Long i
  124. uc_row = dw_uc.GetRow()
  125. IF uc_row <= 0 THEN
  126. MessageBox('系统提示','请选定当前目标单据!')
  127. RETURN
  128. END IF
  129. IF dw_child.RowCount( ) <= 0 THEN
  130. MessageBox('系统提示','没有任何明细字段!')
  131. RETURN
  132. END IF
  133. IF dw_edit_mode THEN
  134. THIS.TriggerEvent( 'retrieve_child')
  135. FOR i = 1 TO 4
  136. dw_child.SetTabOrder ( i, 0 )
  137. NEXT
  138. ELSE
  139. FOR i = 1 TO 4
  140. dw_child.SetTabOrder ( i, i*10 )
  141. NEXT
  142. // IF dw_child.RowCount( ) = 0 THEN
  143. // dw_child.InsertRow( 0)
  144. // END IF
  145. //
  146. END IF
  147. dw_edit_mode = NOT dw_edit_mode
  148. wf_new_facechange(0)
  149. END EVENT
  150. event ue_save_mx();dw_child.accepttext( )
  151. IF dw_child.RowCount( ) = 0 THEN
  152. MessageBox('系统提示','没有任何明细!')
  153. RETURN
  154. END IF
  155. String arg_msg = ''
  156. Long uc_row
  157. Long i
  158. uc_row = dw_uc.GetRow()
  159. IF uc_row <= 0 THEN
  160. MessageBox('系统提示','请选定当前目标数据库表!')
  161. RETURN
  162. END IF
  163. s_xls_table_column s_c[]
  164. Long cnt = 0,ls_tid
  165. ls_tid = dw_uc.Object.billid[dw_uc.GetRow() ]
  166. IF dw_edit_mode THEN
  167. cnt = 0
  168. dw_child.SetFilter('')
  169. dw_child.Filter()
  170. dw_child.AcceptText( )
  171. FOR i = 1 TO dw_child.RowCount( )
  172. IF dw_child.Object.signname[i] <> '' THEN
  173. IF dw_child.Object.columntype[i] < 0 THEN
  174. MessageBox('系统提示','请选择该列所属的类型')
  175. dw_child.SetRow( i)
  176. dw_child.ScrollToRow( i)
  177. dw_child.SetFocus( )
  178. dw_child.SetColumn( 'columntype')
  179. RETURN
  180. END IF
  181. cnt ++
  182. s_c[cnt].cid = dw_child.Object.pid[i]
  183. s_c[cnt].TID = ls_tid
  184. s_c[cnt].columnname = dw_child.Object.columnname[i]
  185. s_c[cnt].signname = dw_child.Object.signname[i]
  186. s_c[cnt].columntype = dw_child.Object.columntype[i]
  187. END IF
  188. NEXT
  189. IF cnt = 0 THEN
  190. MessageBox('系统提示','没有任何明细!')
  191. RETURN
  192. END IF
  193. DELETE FROM U_XLS_BillColumn_Def
  194. Where billid = :ls_tid;
  195. IF sqlca.SQLCode <> 0 THEN
  196. ROLLBACK;
  197. MessageBox('系统提示','删除原有明细失败!')
  198. RETURN
  199. END IF
  200. FOR i = 1 TO cnt
  201. INSERT INTO U_XLS_BillColumn_Def
  202. (ColumnID,
  203. BillID,
  204. columnname,
  205. signname,
  206. ColumnType)
  207. VALUES(
  208. :s_c[i].cid,
  209. :s_c[i].tid,
  210. :s_c[i].columnname,
  211. :s_c[i].signname,
  212. :s_c[i].columntype);
  213. IF sqlca.SQLCode <> 0 THEN
  214. ROLLBACK;
  215. MessageBox('系统提示','插入明细操作失败' + sqlca.SQLErrText)
  216. dw_child.scrolltorow( i)
  217. RETURN
  218. END IF
  219. NEXT
  220. COMMIT;
  221. FOR i = 1 TO 4
  222. dw_child.SetTabOrder ( i, 0 )
  223. NEXT
  224. END IF
  225. dw_edit_mode = NOT dw_edit_mode
  226. wf_new_facechange(0)
  227. THIS.TriggerEvent( 'retrieve_child')
  228. end event
  229. event ue_add_child();//
  230. //IF NOT dw_edit_mode THEN RETURN
  231. //OpenWithParm(w_table_sign_def_ch,1)
  232. //s_xls_column_list s_col
  233. //s_col = Message.PowerObjectParm
  234. //Long i,row = 0,tabletype = -1
  235. //IF s_col.tabletype = 0 THEN
  236. // tabletype = 0
  237. //ELSEIF s_col.tabletype = 1 THEN
  238. // tabletype = 1
  239. //END IF
  240. //String Len = '0'
  241. //FOR i = 1 TO UpperBound(s_col.columnname )
  242. // IF s_col.columnname[i] = '' OR s_col.signname[i] = '' THEN CONTINUE
  243. // Len = String(Len(Lower(s_col.columnname[i])) +1)
  244. // row = dw_child.Find( "U_XLS_BillColumn_Def.columnname = '"+Lower(s_col.columnname[i])+"'", 1, dw_child.RowCount( ) )
  245. //
  246. // // IF row <= 0 THEN row = dw_child.Find( "U_XLS_BillColumn_Def.columnname like '%_"+Lower(s_col.columnname[i])+"'", 1, dw_child.RowCount( ) )
  247. // // IF row <= 0 THEN row = dw_child.Find( "Pos(U_XLS_BillColumn_Def.columnname,'"+Lower(s_col.columnname[i])+"') > 0", 1, dw_child.RowCount( ) )
  248. //
  249. // IF row <= 0 THEN row = dw_child.Find( "right(U_XLS_BillColumn_Def.columnname,"+Len+") = '_"+Lower(s_col.columnname[i])+"'", 1, dw_child.RowCount( ) )
  250. //
  251. // IF row > 0 THEN
  252. //
  253. // IF dw_child.Object.signname[row] = '' THEN
  254. // dw_child.Object.signname[row] = s_col.signname[i]
  255. // dw_child.Object.columntype[row] = s_col.tabletype
  256. // END IF
  257. // END IF
  258. //NEXT
  259. //
  260. end event
  261. event ue_tv_selectionchange();long ll_row
  262. ll_row = message.longparm
  263. dw_uc.setrow( ll_row)
  264. dw_uc.scrolltorow( ll_row)
  265. end event
  266. event ue_newbill(); Long li_row, li_cur_row,ll_parentid
  267. li_cur_row = dw_uc.GetRow()
  268. li_row = dw_uc.InsertRow (0)
  269. dw_uc.ScrollToRow (li_row)
  270. //dw_uc.SetFocus()
  271. modifyrow_no = li_row
  272. // ll_parentid = dw_uc.object.billid[li_cur_row]
  273. // dw_uc.object.rootid[li_row] = ll_parentid
  274. // dw_edit_mode = Not dw_edit_mode
  275. // wf_new_facechange(1)
  276. end event
  277. event ue_newmx(); Long li_row, li_cur_row,ll_parentid
  278. li_cur_row = dw_uc.GetRow()
  279. ll_parentid = dw_uc.object.billid[li_cur_row]
  280. li_row = dw_uc.InsertRow (0)
  281. dw_uc.ScrollToRow (li_row)
  282. //dw_uc.SetFocus()
  283. dw_uc.object.parentid[li_row] = ll_parentid
  284. dw_uc.object.rootid[li_row] = ll_parentid
  285. modifyrow_no = li_row
  286. // dw_edit_mode = Not dw_edit_mode
  287. // wf_new_facechange(1)
  288. end event
  289. public function integer wf_new_facechange (integer arg_flag);
  290. IF dw_edit_mode THEN
  291. cb_refresh_child.Enabled = FALSE
  292. cbx_autogetsign.Enabled = FALSE
  293. cb_refresh_uc.Enabled = FALSE
  294. cb_func.Enabled = FALSE
  295. cb_choice.Enabled = FALSE
  296. cb_delet.Enabled = FALSE
  297. cb_view.Enabled = FALSE
  298. cb_load.Enabled = FALSE
  299. ELSE
  300. cb_func.Enabled = TRUE
  301. cb_delet.Enabled = TRUE
  302. cb_choice.Enabled = TRUE
  303. cb_view.Enabled = TRUE
  304. cb_refresh_child.Enabled = TRUE
  305. cbx_autogetsign.Enabled = TRUE
  306. cb_refresh_uc.Enabled = TRUE
  307. cb_load.Enabled = true
  308. END IF
  309. IF arg_flag = 1 THEN
  310. IF dw_edit_mode THEN
  311. cb_cancel.Text = "放弃&E"
  312. cb_add.Text = "保存&S"
  313. cb_cancel.normalpicname = 'Undo.bmp'
  314. cb_add.normalpicname = 'Save.bmp'
  315. cb_cancel.Enabled = TRUE
  316. cb_delet.Enabled = FALSE
  317. cb_edit.Enabled = FALSE
  318. cb_save.Enabled = FALSE
  319. ELSE
  320. cb_cancel.Text = "修改&E"
  321. cb_add.Text = "新建&S"
  322. cb_cancel.normalpicname = 'OPEN.bmp'
  323. cb_add.normalpicname = 'new.bmp'
  324. cb_cancel.Enabled = TRUE
  325. cb_delet.Enabled = TRUE
  326. cb_edit.Enabled = TRUE
  327. cb_save.Enabled = FALSE
  328. dw_uc.setrow (tv_1.cur_row )
  329. END IF
  330. dw_uc.enabled = dw_edit_mode
  331. tv_1.enabled = not dw_edit_mode
  332. ELSE
  333. IF dw_edit_mode THEN
  334. cb_edit.Text = "放弃&E"
  335. // cb_add.Text = "保存&S"
  336. cb_edit.normalpicname = 'Undo.bmp'
  337. // cb_add.normalpicname = 'Save.bmp'
  338. cb_cancel.Enabled = FALSE
  339. cb_delet.Enabled = FALSE
  340. cb_edit.Enabled = TRUE
  341. cb_save.Enabled = TRUE
  342. cb_add.Enabled = FALSE
  343. ELSE
  344. cb_edit.Text = "修改&E"
  345. // cb_add.Text = "新建&S"
  346. cb_edit.normalpicname = 'OPEN.bmp'
  347. // cb_add.normalpicname = 'new.bmp'
  348. cb_cancel.Enabled = TRUE
  349. cb_delet.Enabled = TRUE
  350. cb_edit.Enabled = TRUE
  351. cb_save.Enabled = FALSE
  352. cb_add.Enabled = TRUE
  353. END IF
  354. END IF
  355. cb_cancel.of_init_draw()
  356. cb_edit.of_init_draw()
  357. cb_add.of_init_draw()
  358. cb_edit.of_paint()
  359. cb_add.of_paint()
  360. cb_cancel.of_paint()
  361. cb_add.TriggerEvent('ue_textchange')
  362. cb_edit.TriggerEvent('ue_textchange')
  363. cb_cancel.TriggerEvent('ue_textchange')
  364. cb_save.of_init_draw()
  365. cb_save.of_paint()
  366. cb_save.TriggerEvent('ue_textchange')
  367. RETURN 1
  368. end function
  369. on w_bill_sign_def.create
  370. int iCurrent
  371. call super::create
  372. this.dw_child=create dw_child
  373. this.cb_save=create cb_save
  374. this.cb_refresh_child=create cb_refresh_child
  375. this.tv_1=create tv_1
  376. this.cbx_autogetsign=create cbx_autogetsign
  377. this.cb_cancel=create cb_cancel
  378. this.cb_refresh_uc=create cb_refresh_uc
  379. this.cb_load=create cb_load
  380. iCurrent=UpperBound(this.Control)
  381. this.Control[iCurrent+1]=this.dw_child
  382. this.Control[iCurrent+2]=this.cb_save
  383. this.Control[iCurrent+3]=this.cb_refresh_child
  384. this.Control[iCurrent+4]=this.tv_1
  385. this.Control[iCurrent+5]=this.cbx_autogetsign
  386. this.Control[iCurrent+6]=this.cb_cancel
  387. this.Control[iCurrent+7]=this.cb_refresh_uc
  388. this.Control[iCurrent+8]=this.cb_load
  389. end on
  390. on w_bill_sign_def.destroy
  391. call super::destroy
  392. destroy(this.dw_child)
  393. destroy(this.cb_save)
  394. destroy(this.cb_refresh_child)
  395. destroy(this.tv_1)
  396. destroy(this.cbx_autogetsign)
  397. destroy(this.cb_cancel)
  398. destroy(this.cb_refresh_uc)
  399. destroy(this.cb_load)
  400. end on
  401. event retrieve_uc;ds.retrieve( )
  402. //CALL SUPER::retrieve_uc;
  403. ds.sharedata( dw_uc)
  404. dw_uc.selectrow(0,false)
  405. dw_uc.setrow( 1)
  406. THIS.TriggerEvent( 'retrieve_child')
  407. tv_1.of_init()
  408. //messagebox(string(tv_1.cur_row) ,string(dw_uc.GetRow( )))
  409. end event
  410. event ue_before_open;
  411. CALL SUPER::ue_before_open;
  412. dw_child.SetTransObject (sqlca)
  413. cur_ds = CREATE datastore
  414. cur_ds.SetTransObject( sqlca)
  415. ds = CREATE datastore
  416. ds.dataobject =dw_uc.dataobject
  417. ds.SetTransObject( sqlca)
  418. tv_1.ds = ds
  419. tv_1.dw = dw_uc
  420. tv_1.col_data = 'bid'
  421. tv_1.col_parentid = 'pid'
  422. tv_1.col_showtext = 'billname'
  423. tv_1.col_handle = 'handle'
  424. tv_1.rootid = '0'
  425. tv_1.tv_selectionchange = 'ue_tv_selectionchange'
  426. end event
  427. event resize;
  428. CALL SUPER::Resize;
  429. tv_1.height = THIS.Height - dw_uc.height - 310
  430. dw_uc.x = tv_1.x
  431. dw_uc.y = tv_1.y+ tv_1.height + 10
  432. dw_child.Width = THIS.Width - tv_1.X - 50 - tv_1.width
  433. dw_child.y=tv_1.y
  434. dw_child.x = tv_1.x+tv_1.width +10
  435. dw_child.Height = THIS.Height - 300
  436. end event
  437. event open;call super::open;cbx_autogetsign.backcolor=r_bar.fillcolor
  438. end event
  439. type cb_func from w_xls_publ_edit_choice`cb_func within w_bill_sign_def
  440. boolean visible = false
  441. integer x = 4946
  442. integer y = 412
  443. end type
  444. type cb_exit from w_xls_publ_edit_choice`cb_exit within w_bill_sign_def
  445. integer x = 2094
  446. integer height = 168
  447. end type
  448. type r_bar from w_xls_publ_edit_choice`r_bar within w_bill_sign_def
  449. integer x = 1961
  450. integer width = 78
  451. integer height = 168
  452. end type
  453. type cb_add from w_xls_publ_edit_choice`cb_add within w_bill_sign_def
  454. integer x = 192
  455. integer width = 197
  456. integer height = 168
  457. end type
  458. event cb_add::clicked;
  459. //CALL SUPER::Clicked;
  460. Long ll_newid,i,lrow
  461. String errmsg
  462. String menustr
  463. IF dw_edit_mode THEN
  464. dw_uc.AcceptText()
  465. IF dw_uc.GetNextModified(0, Primary!) = 0 THEN
  466. MessageBox("系统提示",'没有任何修改,不可以保存!')
  467. RETURN
  468. END IF
  469. lrow = dw_uc.GetRow()
  470. IF lrow = 0 THEN
  471. MessageBox("系统提示",'没有要保存的内容!')
  472. RETURN
  473. END IF
  474. dw_uc.Object.billname[dw_uc.GetRow()] = Trim(dw_uc.Object.billname[dw_uc.GetRow()])
  475. dw_uc.Object.defaultdatawindow[dw_uc.GetRow()] = Trim(dw_uc.Object.defaultdatawindow[dw_uc.GetRow()])
  476. dw_uc.Object.billtype[dw_uc.GetRow()] = Trim(dw_uc.Object.billtype[dw_uc.GetRow()])
  477. IF dw_uc.Object.billname[dw_uc.GetRow()] = '' THEN
  478. MessageBox("系统提示",'输入单据名称!')
  479. RETURN
  480. END IF
  481. IF dw_uc.Object.defaultdatawindow[dw_uc.GetRow()] = '' THEN
  482. MessageBox("系统提示",'请输入默认数据窗口名称!')
  483. RETURN
  484. END IF
  485. IF NOT f_xls_chkdw(dw_uc.Object.defaultdatawindow[dw_uc.GetRow()]) THEN
  486. MessageBox("系统提示",'默认数据窗口无效!')
  487. RETURN
  488. END IF
  489. IF dw_uc.Object.billtype[dw_uc.GetRow()] = '' THEN
  490. MessageBox("系统提示",'请输入单据类型!')
  491. RETURN
  492. END IF
  493. IF dw_uc.Object.billid[dw_uc.GetRow()] = 0 THEN
  494. SELECT Max(billid) INTO :ll_newid FROM U_XLS_BillList;
  495. IF sqlca.SQLCode <> 0 THEN
  496. MessageBox('系统提示','插入新纪录失败')
  497. RETURN
  498. END IF
  499. IF IsNull(ll_newid) THEN ll_newid = 10
  500. IF ll_newid < 10 THEN ll_newid = 10
  501. ll_newid++
  502. dw_uc.Object.billid[dw_uc.GetRow()] = ll_newid
  503. IF dw_uc.Object.parentid[dw_uc.GetRow()] = 0 THEN
  504. dw_uc.Object.rootid[dw_uc.GetRow()] = ll_newid
  505. END IF
  506. END IF
  507. dw_uc.AcceptText( )
  508. String ls_errmsg
  509. IF dw_uc.Update() = -1 THEN
  510. IF Pos(ins_sqlerrtext,"Cannot insert duplicate key row") > 0 THEN
  511. ls_errmsg = "关键内容重复"
  512. ELSE
  513. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext+sqlca.SQLErrText
  514. END IF
  515. ROLLBACK;
  516. MessageBox ("系统提示",ls_errmsg+",保存操作失败!",Exclamation!,OK!)
  517. LS_UPDATE_FLAG = FALSE
  518. RETURN
  519. ELSE
  520. COMMIT;
  521. LS_UPDATE_FLAG = TRUE
  522. END IF
  523. ins_sqlerrtext = ""
  524. cb_refresh_uc.TriggerEvent( Clicked!)
  525. PARENT.TriggerEvent( 'retrieve_child')
  526. dw_edit_mode = NOT dw_edit_mode
  527. wf_new_facechange(1)
  528. ELSE
  529. m_xls_Dfc_Control_PopupMenu dmPopupMenu
  530. lrow = dw_uc.GetRow()
  531. menustr = "Text=单据~tEvent=ue_newbill"
  532. IF lrow > 0 THEN
  533. IF dw_uc.Object.parentid[lrow] = 0 THEN
  534. menustr = menustr + "|" + "Text=-"
  535. menustr = menustr + "|" + "Text=明细~tEvent=ue_newmx"
  536. END IF
  537. END IF
  538. IF Len(Trim(menustr)) <> 0 THEN
  539. dmPopupMenu = CREATE m_xls_Dfc_Control_PopupMenu
  540. dmPopupMenu.mf_BuildMenu(THIS, menustr)
  541. dmPopupMenu.mf_PopMenu()
  542. DESTROY dmPopupMenu
  543. END IF
  544. dw_edit_mode = Not dw_edit_mode
  545. wf_new_facechange(1)
  546. dw_uc.SetFocus()
  547. END IF
  548. //parent.triggerevent( 'ue_f9')
  549. end event
  550. type cb_edit from w_xls_publ_edit_choice`cb_edit within w_bill_sign_def
  551. integer x = 1710
  552. integer height = 168
  553. end type
  554. EVENT cb_edit::Clicked;
  555. CALL SUPER::Clicked;
  556. PARENT.TriggerEvent( "ue_modify_mx")
  557. END EVENT
  558. type cb_delet from w_xls_publ_edit_choice`cb_delet within w_bill_sign_def
  559. integer x = 590
  560. integer width = 160
  561. integer height = 168
  562. end type
  563. event cb_delet::clicked;
  564. IF MessageBox ("系统提示","是否确定要删除当前记录,和所有相应的字段标记明细和Excel模版?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN
  565. RETURN
  566. END IF
  567. Long LS_id
  568. Long LS_LONG = 0
  569. String ls_code,arg_msg
  570. IF dw_uc.GetRow() <= 0 THEN
  571. MessageBox('','没有操作目标记录!')
  572. RETURN
  573. END IF
  574. LS_id = dw_uc.Object.billid[dw_uc.GetRow()]
  575. select COUNT(*) into :LS_LONG from U_XLS_Templates
  576. where U_XLS_Templates.tid=:LS_id ;
  577. if SQLCA.SQLCode<>0 then
  578. MessageBox ("系统提示","数据查询操作失败!(请重试!)",Exclamation!,OK!)
  579. return
  580. end if
  581. IF LS_LONG>0 THEN
  582. MessageBox ("系统提示","请先删除所有与该单据有关的模版,再删除单据!",Exclamation!,OK!)
  583. RETURN
  584. END IF
  585. DELETE FROM U_XLS_BillColumn_Def
  586. WHERE (BillID IN
  587. (SELECT billid
  588. FROM U_XLS_BillList
  589. WHERE billid = :LS_id OR
  590. parentid = :LS_id));
  591. IF sqlca.SQLCode <> 0 THEN
  592. MessageBox('系统提示','删除字段明细失败!')
  593. ROLLBACK;
  594. RETURN
  595. END IF
  596. DELETE FROM U_XLS_BillList
  597. Where parentid = :LS_id or billid = :ls_id;
  598. IF sqlca.SQLCode <> 0 THEN
  599. MessageBox('系统提示','删除明细失败!')
  600. ROLLBACK;
  601. RETURN
  602. END IF
  603. //
  604. //dw_uc.SetRedraw (FALSE)
  605. //dw_uc.DeleteRow (0)
  606. //dw_uc.TriggerEvent (RowFocusChanged!)
  607. commit;
  608. cb_refresh_uc.triggerevent( clicked!)
  609. //IF dw_uc.Update() = -1 THEN
  610. // ROLLBACK;
  611. // MessageBox ("系统提示","删除记录操作失败!",Exclamation!,OK!)
  612. //ELSE
  613. // COMMIT;
  614. //END IF
  615. //dw_uc.SetRedraw (TRUE)
  616. end event
  617. type cb_choice from w_xls_publ_edit_choice`cb_choice within w_bill_sign_def
  618. boolean visible = false
  619. integer x = 4997
  620. integer y = 772
  621. end type
  622. type dw_uc from w_xls_publ_edit_choice`dw_uc within w_bill_sign_def
  623. event ue_vscroll pbm_vscroll
  624. integer y = 1580
  625. integer width = 1499
  626. integer height = 692
  627. boolean enabled = false
  628. string title = "单据列表"
  629. string dataobject = "dw_xls_billedit"
  630. boolean maxbox = true
  631. boolean vscrollbar = false
  632. end type
  633. event dw_uc::ue_vscroll;return 1
  634. end event
  635. event dw_uc::rowfocuschanged;
  636. PARENT.TriggerEvent( 'retrieve_child')
  637. end event
  638. event dw_uc::constructor;call super::constructor;titleclick_sort_use = false //单击标题排序-功能开关
  639. RBUTTON_FILTER_USE = false //右键查询-功能开关
  640. setcolumn_visible_USE = false //自动保存显示列-功能开关
  641. autosave_setlayout_USE = false //自动保存列位置及宽度-功能开关
  642. end event
  643. event dw_uc::doubleclicked;call super::doubleclicked;if dw_edit_mode then
  644. // if dwo.name = "billtype" then
  645. open(w_system_window_ch)
  646. long ll_mainid
  647. string ls_win, ls_title
  648. ll_mainid = message.doubleparm
  649. if ll_mainid > 0 then
  650. if UpperBound(s_sys_win_open) >= ll_mainid then
  651. ls_win = s_sys_win_open[ll_mainid].Name
  652. ls_title = s_sys_win_open[ll_mainid].Title
  653. this.object.billname[row] = ls_title
  654. this.object.billtype[row] = ls_win
  655. this.object.sign[row] = f_get_pym(ls_title)
  656. end if
  657. end if
  658. // end if
  659. end if
  660. end event
  661. event dw_uc::dwnkey;call super::dwnkey;//if dw_edit_mode then
  662. // if dwo.name = "billtype" then
  663. // open(w_system_window_ch)
  664. //
  665. // long ll_mainid
  666. // string ls_win
  667. // ll_mainid = message.doubleparm
  668. //
  669. // if ll_mainid > 0 then
  670. // if UpperBound(s_sys_win_open) >= ll_mainid then
  671. // ls_win = s_sys_win_open[ll_mainid].Name
  672. // this.object.billname[row] = s_sys_win_open[ll_mainid].Title
  673. // this.object.billtype[row] = ls_win
  674. // end if
  675. // end if
  676. // end if
  677. //end if
  678. end event
  679. type cb_view from w_xls_publ_edit_choice`cb_view within w_bill_sign_def
  680. boolean visible = false
  681. integer x = 5221
  682. integer y = 800
  683. end type
  684. type cb_help from w_xls_publ_edit_choice`cb_help within w_bill_sign_def
  685. boolean visible = false
  686. integer x = 5239
  687. integer y = 496
  688. end type
  689. type ln_bar from w_xls_publ_edit_choice`ln_bar within w_bill_sign_def
  690. end type
  691. type ln_bar2 from w_xls_publ_edit_choice`ln_bar2 within w_bill_sign_def
  692. end type
  693. type dw_child from u_xls_dw_rbtnfilter within w_bill_sign_def
  694. integer x = 1499
  695. integer y = 188
  696. integer width = 2080
  697. integer height = 2084
  698. integer taborder = 20
  699. boolean bringtotop = true
  700. string title = "表字段标记定义"
  701. string dataobject = "dw_xls_billcolumn_def"
  702. boolean maxbox = true
  703. boolean hscrollbar = true
  704. boolean vscrollbar = true
  705. end type
  706. EVENT RowFocusChanged;
  707. CALL SUPER::RowFocusChanged;
  708. THIS.SelectRow(0,FALSE)
  709. THIS.SelectRow(currentrow,TRUE)
  710. END EVENT
  711. EVENT Clicked;
  712. CALL SUPER::Clicked;
  713. THIS.SetRow( row)
  714. END EVENT
  715. event constructor;
  716. CALL SUPER::Constructor;
  717. titleclick_sort_use=true //单击标题排序-功能开关
  718. RBUTTON_FILTER_USE=true //右键查询-功能开关
  719. // setcolumn_visible_USE= true //自动保存显示列-功能开关
  720. autosave_setlayout_USE = TRUE //自动保存列位置及宽度-功能开关
  721. end event
  722. event rbuttondown;call super::rbuttondown;//
  723. //CALL SUPER::RButtonDown;
  724. ////if dw_pageretr.rowcount() = 0 then return
  725. //THIS.SetRow( row)
  726. //m_xls_dfc_control_popupmenu dmPopupMenu
  727. //String menustr
  728. //
  729. //IF dw_edit_mode THEN
  730. // menustr = "Text=添加~tEvent=ue_add_child"
  731. // menustr = menustr + "|" + "Text=-"
  732. // menustr = menustr + "|" + "Text=保存~tEvent=ue_save_mx"
  733. // menustr = menustr + "|" + "Text=取消~tEvent=ue_modify_mx"
  734. //ELSE
  735. // menustr = "Text=修改~tEvent=ue_modify_mx"
  736. //END IF
  737. //
  738. //
  739. //
  740. //
  741. //IF Len(Trim(menustr)) <> 0 THEN
  742. // dmPopupMenu = CREATE m_xls_dfc_control_popupmenu
  743. // dmPopupMenu.mf_BuildMenu(THIS, menustr)
  744. // dmPopupMenu.mf_PopMenu()
  745. // DESTROY dmPopupMenu
  746. //END IF
  747. end event
  748. event doubleclicked;
  749. //CALL SUPER::DoubleClicked;
  750. //IF NOT dw_edit_mode THEN RETURN
  751. //PARENT.TriggerEvent( "ue_add_child")
  752. end event
  753. type cb_save from uo_xls_imflatbutton within w_bill_sign_def
  754. integer x = 1902
  755. integer width = 192
  756. integer height = 168
  757. integer taborder = 30
  758. boolean bringtotop = true
  759. boolean enabled = false
  760. string text = "保存&S"
  761. string normalpicname = "Save.bmp"
  762. integer picsize = 16
  763. toolbaralignment pic_align = alignattop!
  764. boolean border = false
  765. end type
  766. EVENT Clicked;
  767. CALL SUPER::Clicked;
  768. PARENT.TriggerEvent( "ue_save_mx")
  769. END EVENT
  770. type cb_refresh_child from uo_xls_imflatbutton within w_bill_sign_def
  771. integer x = 1518
  772. integer width = 192
  773. integer height = 168
  774. integer taborder = 50
  775. boolean bringtotop = true
  776. string text = "刷新"
  777. string normalpicname = "refresh.bmp"
  778. integer picsize = 16
  779. toolbaralignment pic_align = alignattop!
  780. boolean border = false
  781. end type
  782. EVENT Clicked;
  783. CALL SUPER::Clicked;
  784. PARENT.TriggerEvent( 'retrieve_child')
  785. END EVENT
  786. type tv_1 from uo_xls_tree_billlist within w_bill_sign_def
  787. integer y = 188
  788. integer width = 1499
  789. integer height = 1392
  790. integer taborder = 50
  791. boolean bringtotop = true
  792. integer textsize = -11
  793. fontcharset fontcharset = gb2312charset!
  794. fontfamily fontfamily = anyfont!
  795. string facename = "宋体"
  796. boolean linesatroot = true
  797. boolean hideselection = false
  798. boolean trackselect = true
  799. string picturename[] = {"",""}
  800. end type
  801. event constructor;return
  802. end event
  803. type cbx_autogetsign from checkbox within w_bill_sign_def
  804. integer x = 2286
  805. integer y = 84
  806. integer width = 567
  807. integer height = 68
  808. boolean bringtotop = true
  809. integer textsize = -9
  810. integer weight = 400
  811. fontcharset fontcharset = gb2312charset!
  812. fontpitch fontpitch = variable!
  813. string facename = "宋体"
  814. long textcolor = 33554432
  815. long backcolor = 67108864
  816. string text = "自动更新字段标记"
  817. end type
  818. type cb_cancel from uo_xls_imflatbutton within w_bill_sign_def
  819. string tag = "修改/放弃[Alt+E]"
  820. integer x = 393
  821. integer width = 197
  822. integer height = 168
  823. integer taborder = 40
  824. boolean bringtotop = true
  825. string text = "修改&E"
  826. string normalpicname = "open.bmp"
  827. integer picsize = 16
  828. toolbaralignment pic_align = alignattop!
  829. boolean border = false
  830. end type
  831. event clicked;
  832. CALL SUPER::Clicked;
  833. IF dw_uc.GetRow() <= 0 THEN
  834. MessageBox('系统提示','请选择要修改的单据')
  835. RETURN
  836. END IF
  837. Long i
  838. IF dw_edit_mode THEN
  839. IF dw_uc.GetItemStatus(dw_uc.GetRow(), 0, Primary!) = NewModified! OR dw_uc.GetItemStatus(dw_uc.GetRow(), 0, Primary!) = New! THEN
  840. dw_uc.DeleteRow(dw_uc.GetRow())
  841. ELSE
  842. dw_uc.ReselectRow(dw_uc.GetRow())
  843. END IF
  844. modifyrow_no = 0
  845. ELSE
  846. modifyrow_no = dw_uc.GetRow()
  847. dw_uc.SetFocus()
  848. dw_uc.ScrollToRow (modifyrow_no)
  849. END IF
  850. dw_edit_mode = NOT dw_edit_mode
  851. wf_new_facechange(1)
  852. //cb_refresh_uc.triggerevent( clicked!)
  853. //PARENT.TriggerEvent( 'retrieve_child')
  854. end event
  855. type cb_refresh_uc from uo_xls_imflatbutton within w_bill_sign_def
  856. integer width = 197
  857. integer height = 168
  858. integer taborder = 30
  859. boolean bringtotop = true
  860. string text = "刷新"
  861. string normalpicname = "refresh.bmp"
  862. integer picsize = 16
  863. toolbaralignment pic_align = alignattop!
  864. boolean border = false
  865. end type
  866. event clicked;
  867. PARENT.TriggerEvent('retrieve_uc')
  868. end event
  869. type cb_load from uo_xls_imflatbutton within w_bill_sign_def
  870. integer x = 750
  871. integer width = 288
  872. integer height = 168
  873. integer taborder = 50
  874. boolean bringtotop = true
  875. string text = "导入/导出"
  876. string normalpicname = "open.bmp"
  877. integer picsize = 16
  878. toolbaralignment pic_align = alignattop!
  879. boolean border = false
  880. end type
  881. event clicked;IF MessageBox ("警告","导入功能会全部删除现有单据字段设置,可能会导致数据错误,是否要继续?",Question!,YesNo! ) = 2 THEN
  882. RETURN
  883. END IF
  884. Open(w_xls_backup)
  885. Long ins_rslt
  886. ins_rslt = Message.DoubleParm
  887. IF ins_rslt = 1 THEN //如果是导入,则刷新
  888. cb_refresh_uc.TriggerEvent( Clicked!)
  889. END IF
  890. end event