w_rp_multibarmx.srw 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817
  1. $PBExportHeader$w_rp_multibarmx.srw
  2. forward
  3. global type w_rp_multibarmx from w_publ_base
  4. end type
  5. type dw_1 from datawindow within w_rp_multibarmx
  6. end type
  7. type cb_1 from uo_imflatbutton within w_rp_multibarmx
  8. end type
  9. type cb_2 from uo_imflatbutton within w_rp_multibarmx
  10. end type
  11. type dw_2 from datawindow within w_rp_multibarmx
  12. end type
  13. type cb_4 from uo_imflatbutton within w_rp_multibarmx
  14. end type
  15. type cb_sort from uo_imflatbutton within w_rp_multibarmx
  16. end type
  17. type sle_subid from singlelineedit within w_rp_multibarmx
  18. end type
  19. type cb_3 from uo_imflatbutton within w_rp_multibarmx
  20. end type
  21. type cb_6 from uo_imflatbutton within w_rp_multibarmx
  22. end type
  23. type cb_7 from uo_imflatbutton within w_rp_multibarmx
  24. end type
  25. type sle_barname from singlelineedit within w_rp_multibarmx
  26. end type
  27. type st_2 from statictext within w_rp_multibarmx
  28. end type
  29. type gb_1 from groupbox within w_rp_multibarmx
  30. end type
  31. type rb_1 from radiobutton within w_rp_multibarmx
  32. end type
  33. type rb_2 from radiobutton within w_rp_multibarmx
  34. end type
  35. type st_3 from statictext within w_rp_multibarmx
  36. end type
  37. type cb_8 from uo_imflatbutton within w_rp_multibarmx
  38. end type
  39. type cb_9 from uo_imflatbutton within w_rp_multibarmx
  40. end type
  41. type cb_5 from uo_imflatbutton within w_rp_multibarmx
  42. end type
  43. type st_1 from statictext within w_rp_multibarmx
  44. end type
  45. end forward
  46. global type w_rp_multibarmx from w_publ_base
  47. integer width = 1998
  48. integer height = 1532
  49. string title = "编缉多栏式明细分类帐"
  50. boolean minbox = false
  51. windowtype windowtype = response!
  52. long backcolor = 83162356
  53. dw_1 dw_1
  54. cb_1 cb_1
  55. cb_2 cb_2
  56. dw_2 dw_2
  57. cb_4 cb_4
  58. cb_sort cb_sort
  59. sle_subid sle_subid
  60. cb_3 cb_3
  61. cb_6 cb_6
  62. cb_7 cb_7
  63. sle_barname sle_barname
  64. st_2 st_2
  65. gb_1 gb_1
  66. rb_1 rb_1
  67. rb_2 rb_2
  68. st_3 st_3
  69. cb_8 cb_8
  70. cb_9 cb_9
  71. cb_5 cb_5
  72. st_1 st_1
  73. end type
  74. global w_rp_multibarmx w_rp_multibarmx
  75. type variables
  76. long multibarid
  77. string ins_sqlerrtext_1 ,ins_sqlerrtext_2
  78. end variables
  79. forward prototypes
  80. public function integer wf_checkdata ()
  81. end prototypes
  82. public function integer wf_checkdata ();string ls_csubid,ls_psubid
  83. long len_p,cnt
  84. ls_psubid=dw_1.object.subid[dw_1.getrow()]
  85. if ls_psubid='' then
  86. messagebox(publ_operator,'请输入多栏帐科目')
  87. return 0
  88. end if
  89. ls_csubid=sle_subid.text
  90. if ls_csubid='' then
  91. messagebox(publ_operator,'请输入多栏帐明细项科目代码')
  92. return 0
  93. end if
  94. select count(*) into:cnt from cw_subject
  95. where accsetid=:sys_accsetid
  96. and subid=:ls_csubid;
  97. if sqlca.sqlcode<>0 or cnt=0 then
  98. messagebox(publ_operator,'帐套内不存在科目>>'+ls_csubid)
  99. return 0
  100. end if
  101. if sle_barname.text='' then
  102. messagebox(publ_operator,'请输入多栏帐明细项栏目名称')
  103. return 0
  104. end if
  105. len_p=len(ls_psubid)
  106. if left(ls_csubid,len_p)<>ls_psubid then
  107. messagebox(publ_operator,'科目'+ls_csubid+'不是多栏帐科目'+ls_psubid+'的下级科目')
  108. return 0
  109. end if
  110. return 1
  111. end function
  112. on w_rp_multibarmx.create
  113. int iCurrent
  114. call super::create
  115. this.dw_1=create dw_1
  116. this.cb_1=create cb_1
  117. this.cb_2=create cb_2
  118. this.dw_2=create dw_2
  119. this.cb_4=create cb_4
  120. this.cb_sort=create cb_sort
  121. this.sle_subid=create sle_subid
  122. this.cb_3=create cb_3
  123. this.cb_6=create cb_6
  124. this.cb_7=create cb_7
  125. this.sle_barname=create sle_barname
  126. this.st_2=create st_2
  127. this.gb_1=create gb_1
  128. this.rb_1=create rb_1
  129. this.rb_2=create rb_2
  130. this.st_3=create st_3
  131. this.cb_8=create cb_8
  132. this.cb_9=create cb_9
  133. this.cb_5=create cb_5
  134. this.st_1=create st_1
  135. iCurrent=UpperBound(this.Control)
  136. this.Control[iCurrent+1]=this.dw_1
  137. this.Control[iCurrent+2]=this.cb_1
  138. this.Control[iCurrent+3]=this.cb_2
  139. this.Control[iCurrent+4]=this.dw_2
  140. this.Control[iCurrent+5]=this.cb_4
  141. this.Control[iCurrent+6]=this.cb_sort
  142. this.Control[iCurrent+7]=this.sle_subid
  143. this.Control[iCurrent+8]=this.cb_3
  144. this.Control[iCurrent+9]=this.cb_6
  145. this.Control[iCurrent+10]=this.cb_7
  146. this.Control[iCurrent+11]=this.sle_barname
  147. this.Control[iCurrent+12]=this.st_2
  148. this.Control[iCurrent+13]=this.gb_1
  149. this.Control[iCurrent+14]=this.rb_1
  150. this.Control[iCurrent+15]=this.rb_2
  151. this.Control[iCurrent+16]=this.st_3
  152. this.Control[iCurrent+17]=this.cb_8
  153. this.Control[iCurrent+18]=this.cb_9
  154. this.Control[iCurrent+19]=this.cb_5
  155. this.Control[iCurrent+20]=this.st_1
  156. end on
  157. on w_rp_multibarmx.destroy
  158. call super::destroy
  159. destroy(this.dw_1)
  160. destroy(this.cb_1)
  161. destroy(this.cb_2)
  162. destroy(this.dw_2)
  163. destroy(this.cb_4)
  164. destroy(this.cb_sort)
  165. destroy(this.sle_subid)
  166. destroy(this.cb_3)
  167. destroy(this.cb_6)
  168. destroy(this.cb_7)
  169. destroy(this.sle_barname)
  170. destroy(this.st_2)
  171. destroy(this.gb_1)
  172. destroy(this.rb_1)
  173. destroy(this.rb_2)
  174. destroy(this.st_3)
  175. destroy(this.cb_8)
  176. destroy(this.cb_9)
  177. destroy(this.cb_5)
  178. destroy(this.st_1)
  179. end on
  180. event open;call super::open;dw_1.settransobject(sqlca)
  181. dw_2.settransobject(sqlca)
  182. multibarid=message.doubleparm
  183. //messagebox("",multibarid)
  184. if multibarid=0 then
  185. dw_1.insertrow(0)
  186. else
  187. dw_1.retrieve(sys_accsetid,multibarid)
  188. dw_2.retrieve(sys_accsetid,multibarid)
  189. end if
  190. end event
  191. type cb_func from w_publ_base`cb_func within w_rp_multibarmx
  192. boolean visible = false
  193. integer x = 1065
  194. integer y = 280
  195. boolean enabled = false
  196. end type
  197. type cb_exit from w_publ_base`cb_exit within w_rp_multibarmx
  198. integer x = 1536
  199. integer y = 136
  200. string text = "取消"
  201. end type
  202. type dw_1 from datawindow within w_rp_multibarmx
  203. integer x = 41
  204. integer y = 24
  205. integer width = 1445
  206. integer height = 256
  207. integer taborder = 20
  208. boolean bringtotop = true
  209. string dataobject = "dw_multibar_edit"
  210. boolean border = false
  211. boolean livescroll = true
  212. end type
  213. event dberror;ins_sqlerrtext_1 = SQLErrText
  214. RETURN 1
  215. end event
  216. type cb_1 from uo_imflatbutton within w_rp_multibarmx
  217. integer x = 1536
  218. integer y = 24
  219. integer width = 311
  220. integer height = 96
  221. integer taborder = 140
  222. boolean bringtotop = true
  223. string normalpicname = "ok.bmp"
  224. end type
  225. event clicked;dw_1.AcceptText()
  226. dw_2.AcceptText()
  227. String arg_msg,ls_msg
  228. Long i
  229. IF dw_1.Object.subid[dw_1.GetRow()] = '' THEN
  230. MessageBox(publ_operator,'请输入多栏帐科目')
  231. RETURN 0
  232. END IF
  233. IF dw_2.RowCount() <= 0 THEN
  234. MessageBox(publ_operator,'没有设置多栏帐栏目,不能保存')
  235. RETURN
  236. END IF
  237. multibarid = dw_1.Object.multibarid[dw_1.GetRow()]
  238. IF multibarid = 0 THEN
  239. multibarid = f_sys_scidentity(sys_accsetid,"cw_multibar","multibarid",arg_msg,TRUE,id_sqlca)
  240. ROLLBACK;
  241. IF multibarid <= 0 THEN
  242. MessageBox(publ_operator,arg_msg)
  243. RETURN
  244. END IF
  245. END IF
  246. dw_1.Object.multibarid[dw_1.GetRow()] = multibarid
  247. dw_1.Object.accsetid[dw_1.GetRow()] = sys_accsetid
  248. FOR i = 1 TO dw_2.RowCount()
  249. dw_2.Object.accsetid[i] = sys_accsetid
  250. dw_2.Object.multibarid[i] = multibarid
  251. dw_2.Object.itemno[i] = i
  252. NEXT
  253. dw_1.AcceptText()
  254. dw_2.AcceptText()
  255. String ls_errmsg
  256. IF dw_1.UPDATE() = -1 THEN
  257. IF Pos(ins_sqlerrtext_1,"Cannot insert duplicate key row") > 0 THEN
  258. ls_errmsg = "关键内容重复"
  259. ELSE
  260. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext_1
  261. END IF
  262. ROLLBACK;
  263. MessageBox (publ_operator,ls_errmsg+",保存操作失败!",Exclamation!,OK!)
  264. RETURN
  265. END IF
  266. ins_sqlerrtext_1 = ""
  267. DELETE FROM cw_multibarmx
  268. WHERE accsetid = :sys_accsetid
  269. AND multibarid = :multibarid;
  270. IF sqlca.SQLCode <> 0 THEN
  271. ls_msg = sqlca.SQLErrText
  272. ROLLBACK;
  273. MessageBox (publ_operator,"删除原多栏帐项目操作失败!"+ls_msg,Exclamation!,OK!)
  274. RETURN
  275. END IF
  276. IF dw_2.UPDATE() = -1 THEN
  277. IF Pos(ins_sqlerrtext_2,"Cannot insert duplicate key row") > 0 THEN
  278. ls_errmsg = "关键内容重复"
  279. ELSE
  280. ls_errmsg = "因为网络或其他原因>"+ins_sqlerrtext_2
  281. END IF
  282. ROLLBACK;
  283. MessageBox (publ_operator,ls_errmsg+",保存操作失败!",Exclamation!,OK!)
  284. RETURN
  285. ELSE
  286. COMMIT;
  287. END IF
  288. ins_sqlerrtext_2 = ""
  289. IF IsValid(w_rp_multibar) THEN
  290. w_rp_multibar.wf_retrieve()
  291. END IF
  292. CLOSE(PARENT)
  293. end event
  294. type cb_2 from uo_imflatbutton within w_rp_multibarmx
  295. integer x = 901
  296. integer y = 40
  297. integer width = 155
  298. integer height = 88
  299. integer taborder = 150
  300. boolean bringtotop = true
  301. string text = "选择"
  302. end type
  303. event clicked;s_subject s_rt_subject
  304. openwithparm(w_subjectdef_edit,1)
  305. s_rt_subject=message.powerobjectparm
  306. if s_rt_subject.subid='' then return
  307. long li_row
  308. li_row=dw_1.getrow()
  309. if li_row<=0 then
  310. messagebox('系统提示','没有多栏帐!')
  311. return
  312. end if
  313. dw_1.object.subid[li_row]=s_rt_subject.subid
  314. dw_1.object.multibarname[li_row]=s_rt_subject.name
  315. end event
  316. type dw_2 from datawindow within w_rp_multibarmx
  317. integer x = 69
  318. integer y = 396
  319. integer width = 1810
  320. integer height = 728
  321. integer taborder = 40
  322. boolean bringtotop = true
  323. string dataobject = "dw_multibarmx"
  324. boolean hscrollbar = true
  325. boolean vscrollbar = true
  326. boolean livescroll = true
  327. borderstyle borderstyle = stylelowered!
  328. end type
  329. event rowfocuschanged;if currentrow<=0 then return
  330. this.selectrow(0,false)
  331. this.selectrow(currentrow,true)
  332. if this.rowcount() > 1 then
  333. sle_subid.text=dw_2.object.subid[dw_2.getrow()]
  334. sle_barname.text=dw_2.object.barname[dw_2.getrow()]
  335. if dw_2.object.dcflag[dw_2.getrow()]=1 then
  336. rb_1.checked=true
  337. else
  338. rb_2.checked=true
  339. end if
  340. end if
  341. end event
  342. event dberror;ins_sqlerrtext_2=sqlerrtext
  343. return 1
  344. end event
  345. type cb_4 from uo_imflatbutton within w_rp_multibarmx
  346. integer x = 1737
  347. integer y = 1260
  348. integer width = 142
  349. integer height = 96
  350. integer taborder = 100
  351. boolean bringtotop = true
  352. string text = "↓"
  353. end type
  354. event clicked;long li_row
  355. li_row=dw_2.getrow()
  356. if li_row<=0 or li_row=dw_2.rowcount() then return
  357. if dw_2.object.dcflag[li_row]<>dw_2.object.dcflag[li_row + 1] then return
  358. dw_2.object.itemno[li_row]=dw_2.object.itemno[li_row] + 1
  359. dw_2.object.itemno[li_row + 1]=dw_2.object.itemno[li_row + 1] - 1
  360. dw_2.SetRedraw(false)
  361. dw_2.SetSort(" itemno A")
  362. dw_2.sort()
  363. dw_2.SetRedraw(true)
  364. end event
  365. type cb_sort from uo_imflatbutton within w_rp_multibarmx
  366. integer x = 562
  367. integer y = 1260
  368. integer width = 274
  369. integer height = 96
  370. integer taborder = 80
  371. boolean bringtotop = true
  372. string text = "自动编排"
  373. end type
  374. event clicked;dw_2.SetRedraw(false)
  375. dw_2.SetSort("dcflag D,subid A")
  376. dw_2.sort()
  377. dw_2.SetRedraw(true)
  378. end event
  379. type sle_subid from singlelineedit within w_rp_multibarmx
  380. integer x = 315
  381. integer y = 1136
  382. integer width = 389
  383. integer height = 88
  384. integer taborder = 30
  385. boolean bringtotop = true
  386. integer textsize = -9
  387. integer weight = 400
  388. fontcharset fontcharset = gb2312charset!
  389. fontpitch fontpitch = variable!
  390. string facename = "宋体"
  391. long textcolor = 33554432
  392. boolean autohscroll = false
  393. borderstyle borderstyle = stylelowered!
  394. end type
  395. type cb_3 from uo_imflatbutton within w_rp_multibarmx
  396. integer x = 1591
  397. integer y = 1260
  398. integer width = 142
  399. integer height = 96
  400. integer taborder = 130
  401. boolean bringtotop = true
  402. string text = "↑"
  403. end type
  404. event clicked;long li_row
  405. li_row=dw_2.getrow()
  406. if li_row<=0 or li_row=1 then return
  407. if dw_2.object.dcflag[li_row]<>dw_2.object.dcflag[li_row - 1] then return
  408. dw_2.object.itemno[li_row]=dw_2.object.itemno[li_row] - 1
  409. dw_2.object.itemno[li_row - 1]=dw_2.object.itemno[li_row - 1] + 1
  410. dw_2.SetRedraw(false)
  411. dw_2.SetSort(" itemno A")
  412. dw_2.sort()
  413. dw_2.SetRedraw(true)
  414. end event
  415. type cb_6 from uo_imflatbutton within w_rp_multibarmx
  416. integer x = 1088
  417. integer y = 1260
  418. integer width = 247
  419. integer height = 96
  420. integer taborder = 90
  421. boolean bringtotop = true
  422. string text = "修改"
  423. string normalpicname = "open.bmp"
  424. end type
  425. event clicked;long li_row
  426. li_row=dw_2.getrow()
  427. if li_row<=0 then
  428. messagebox(publ_operator,'请选择要修改的多栏帐明细项')
  429. return
  430. end if
  431. if wf_checkdata()=0 then
  432. return
  433. end if
  434. int dcflag
  435. if rb_1.checked then
  436. dcflag=1
  437. else
  438. dcflag=0
  439. end if
  440. dw_2.object.dcflag[li_row]=dcflag
  441. dw_2.object.subid[li_row]=sle_subid.text
  442. dw_2.object.barname[li_row]=sle_barname.text
  443. dw_2.SetRedraw(false)
  444. dw_2.SetSort("dcflag D,itemno A")
  445. dw_2.sort()
  446. dw_2.SetRedraw(true)
  447. end event
  448. type cb_7 from uo_imflatbutton within w_rp_multibarmx
  449. integer x = 1335
  450. integer y = 1260
  451. integer width = 247
  452. integer height = 96
  453. integer taborder = 120
  454. boolean bringtotop = true
  455. string text = "删除"
  456. string normalpicname = "delete.bmp"
  457. end type
  458. event clicked;long li_row
  459. li_row=dw_2.getrow()
  460. if li_row<=0 then return
  461. dw_2.deleterow(li_row)
  462. end event
  463. type sle_barname from singlelineedit within w_rp_multibarmx
  464. integer x = 1015
  465. integer y = 1136
  466. integer width = 526
  467. integer height = 92
  468. integer taborder = 60
  469. boolean bringtotop = true
  470. integer textsize = -9
  471. integer weight = 400
  472. fontcharset fontcharset = gb2312charset!
  473. fontpitch fontpitch = variable!
  474. string facename = "宋体"
  475. long textcolor = 33554432
  476. boolean autohscroll = false
  477. borderstyle borderstyle = stylelowered!
  478. end type
  479. type st_2 from statictext within w_rp_multibarmx
  480. integer x = 91
  481. integer y = 1152
  482. integer width = 224
  483. integer height = 56
  484. boolean bringtotop = true
  485. integer textsize = -9
  486. integer weight = 400
  487. fontcharset fontcharset = gb2312charset!
  488. fontpitch fontpitch = variable!
  489. string facename = "宋体"
  490. long textcolor = 33554432
  491. long backcolor = 67108864
  492. boolean enabled = false
  493. string text = "科目代码"
  494. boolean focusrectangle = false
  495. end type
  496. type gb_1 from groupbox within w_rp_multibarmx
  497. integer x = 69
  498. integer y = 1104
  499. integer width = 1810
  500. integer height = 132
  501. integer taborder = 70
  502. integer textsize = -9
  503. integer weight = 400
  504. fontcharset fontcharset = gb2312charset!
  505. fontpitch fontpitch = variable!
  506. string facename = "宋体"
  507. long textcolor = 33554432
  508. long backcolor = 67108864
  509. end type
  510. type rb_1 from radiobutton within w_rp_multibarmx
  511. integer x = 1554
  512. integer y = 1152
  513. integer width = 151
  514. integer height = 56
  515. boolean bringtotop = true
  516. integer textsize = -9
  517. integer weight = 400
  518. fontcharset fontcharset = gb2312charset!
  519. fontpitch fontpitch = variable!
  520. string facename = "宋体"
  521. long textcolor = 33554432
  522. long backcolor = 67108864
  523. string text = "借"
  524. boolean checked = true
  525. end type
  526. type rb_2 from radiobutton within w_rp_multibarmx
  527. integer x = 1714
  528. integer y = 1152
  529. integer width = 155
  530. integer height = 56
  531. boolean bringtotop = true
  532. integer textsize = -9
  533. integer weight = 400
  534. fontcharset fontcharset = gb2312charset!
  535. fontpitch fontpitch = variable!
  536. string facename = "宋体"
  537. long textcolor = 33554432
  538. long backcolor = 67108864
  539. string text = "贷"
  540. end type
  541. type st_3 from statictext within w_rp_multibarmx
  542. integer x = 786
  543. integer y = 1152
  544. integer width = 224
  545. integer height = 56
  546. boolean bringtotop = true
  547. integer textsize = -9
  548. integer weight = 400
  549. fontcharset fontcharset = gb2312charset!
  550. fontpitch fontpitch = variable!
  551. string facename = "宋体"
  552. long textcolor = 33554432
  553. long backcolor = 67108864
  554. boolean enabled = false
  555. string text = "栏目名称"
  556. alignment alignment = right!
  557. boolean focusrectangle = false
  558. end type
  559. type cb_8 from uo_imflatbutton within w_rp_multibarmx
  560. integer x = 704
  561. integer y = 1140
  562. integer width = 78
  563. integer height = 84
  564. integer taborder = 50
  565. boolean bringtotop = true
  566. string text = ".."
  567. end type
  568. event clicked;s_subject s_rt_subject
  569. OpenWithParm(w_subjectdef_edit,0)
  570. s_rt_subject = Message.PowerObjectParm
  571. IF s_rt_subject.subid = '' THEN RETURN
  572. sle_subid.Text = s_rt_subject.subid
  573. sle_barname.Text = s_rt_subject.Name
  574. IF s_rt_subject.dcflag = 1 THEN
  575. rb_1.Checked = TRUE
  576. ELSE
  577. rb_2.Checked = TRUE
  578. END IF
  579. end event
  580. type cb_9 from uo_imflatbutton within w_rp_multibarmx
  581. integer x = 841
  582. integer y = 1260
  583. integer width = 247
  584. integer height = 96
  585. integer taborder = 110
  586. boolean bringtotop = true
  587. string text = "增加"
  588. string normalpicname = "new.bmp"
  589. end type
  590. event clicked;IF wf_checkdata() = 0 THEN
  591. RETURN
  592. END IF
  593. Long li_row,find_row
  594. Int dcflag
  595. IF rb_1.Checked THEN
  596. dcflag = 1
  597. ELSE
  598. dcflag = 0
  599. END IF
  600. find_row = dw_2.Find("subid = '"+sle_subid.Text+"'", 1, dw_2.RowCount())
  601. IF find_row > 0 THEN RETURN
  602. li_row = dw_2.InsertRow(0)
  603. dw_2.Object.dcflag[li_row] = dcflag
  604. dw_2.Object.subid[li_row] = sle_subid.Text
  605. dw_2.Object.barname[li_row] = sle_barname.Text
  606. IF li_row = 1 THEN
  607. dw_2.Object.itemno[li_row] = 1
  608. ELSE
  609. dw_2.Object.itemno[li_row] = dw_2.Object.itemno[li_row - 1] + 1
  610. END IF
  611. dw_2.SetRedraw(FALSE)
  612. dw_2.SetSort("dcflag D,itemno A")
  613. dw_2.Sort()
  614. dw_2.SetRedraw(TRUE)
  615. end event
  616. type cb_5 from uo_imflatbutton within w_rp_multibarmx
  617. integer x = 55
  618. integer y = 1260
  619. integer width = 494
  620. integer height = 96
  621. integer taborder = 60
  622. boolean bringtotop = true
  623. string text = "自动列出明细科目"
  624. end type
  625. event clicked;Long ll_uc_row,ll_child_row
  626. String ls_subid,ls_subname,ls_subid_uc
  627. Int li_dcflag
  628. Long ll_length_child_subid
  629. Long ll_length_uc_subid
  630. Long ll_1,ll_2,ll_3,ll_4,ll_5,ll_6
  631. ll_uc_row = dw_1.GetRow()
  632. IF ll_uc_row <= 0 THEN
  633. MessageBox('提示','请选择多栏帐科目')
  634. RETURN
  635. END IF
  636. IF dw_1.Object.subid[ll_uc_row] = '' THEN
  637. MessageBox('提示','没有多栏帐科目,请检查')
  638. RETURN
  639. END IF
  640. ls_subid_uc = dw_1.Object.subid[ll_uc_row]
  641. ll_1 = s_sys_accset.step1
  642. ll_2 = s_sys_accset.step1+s_sys_accset.step2
  643. ll_3 = s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3
  644. ll_4 = s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3+s_sys_accset.step4
  645. ll_5 = s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3+s_sys_accset.step4+s_sys_accset.step5
  646. ll_6 = s_sys_accset.step1+s_sys_accset.step2+s_sys_accset.step3+s_sys_accset.step4+s_sys_accset.step5+s_sys_accset.step6
  647. ll_length_uc_subid = Len(ls_subid_uc)
  648. CHOOSE CASE ll_length_uc_subid
  649. CASE ll_1
  650. ll_length_child_subid = ll_2
  651. CASE ll_2
  652. ll_length_child_subid = ll_3
  653. CASE ll_3
  654. ll_length_child_subid = ll_4
  655. CASE ll_4
  656. ll_length_child_subid = ll_5
  657. CASE ll_5
  658. ll_length_child_subid = ll_6
  659. CASE ll_6
  660. MessageBox('提示','第6级科目,没有明细科目')
  661. RETURN
  662. END CHOOSE
  663. dw_2.reset()
  664. DECLARE cur_subid CURSOR FOR
  665. SELECT cw_subject.subid,
  666. cw_subject.name,
  667. cw_subject.dcflag
  668. FROM cw_subject
  669. WHERE len(subid) = :ll_length_child_subid
  670. AND left(subid,:ll_length_uc_subid) = :ls_subid_uc
  671. AND accsetid = :sys_accsetid
  672. Order By subid;
  673. OPEN cur_subid;
  674. FETCH cur_subid INTO :ls_subid,:ls_subname,:li_dcflag;
  675. DO WHILE sqlca.SQLCode = 0
  676. ll_child_row = dw_2.InsertRow(0)
  677. dw_2.Object.dcflag[ll_child_row] = li_dcflag
  678. dw_2.Object.subid[ll_child_row] = ls_subid
  679. dw_2.Object.barname[ll_child_row] = ls_subname
  680. dw_2.Object.itemno[ll_child_row] = ll_child_row
  681. FETCH cur_subid INTO :ls_subid,:ls_subname,:li_dcflag;
  682. LOOP
  683. CLOSE cur_subid;
  684. end event
  685. type st_1 from statictext within w_rp_multibarmx
  686. integer x = 69
  687. integer y = 312
  688. integer width = 402
  689. integer height = 48
  690. boolean bringtotop = true
  691. integer textsize = -9
  692. integer weight = 400
  693. fontcharset fontcharset = gb2312charset!
  694. fontpitch fontpitch = variable!
  695. string facename = "宋体"
  696. long textcolor = 33554432
  697. long backcolor = 67108864
  698. string text = "多栏帐明细项"
  699. boolean focusrectangle = false
  700. end type