w_porfit_loss.srw 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592
  1. $PBExportHeader$w_porfit_loss.srw
  2. forward
  3. global type w_porfit_loss from w_publ_base
  4. end type
  5. type p_1 from picture within w_porfit_loss
  6. end type
  7. type cb_1 from uo_imflatbutton within w_porfit_loss
  8. end type
  9. type gb_1 from groupbox within w_porfit_loss
  10. end type
  11. type st_2 from statictext within w_porfit_loss
  12. end type
  13. type st_3 from statictext within w_porfit_loss
  14. end type
  15. type st_4 from statictext within w_porfit_loss
  16. end type
  17. type st_5 from statictext within w_porfit_loss
  18. end type
  19. type st_6 from statictext within w_porfit_loss
  20. end type
  21. type st_7 from statictext within w_porfit_loss
  22. end type
  23. type ddlb_credtype from dropdownlistbox within w_porfit_loss
  24. end type
  25. type st_1 from statictext within w_porfit_loss
  26. end type
  27. type st_8 from statictext within w_porfit_loss
  28. end type
  29. type sle_subid from singlelineedit within w_porfit_loss
  30. end type
  31. type cb_2 from commandbutton within w_porfit_loss
  32. end type
  33. end forward
  34. global type w_porfit_loss from w_publ_base
  35. integer width = 1723
  36. integer height = 1376
  37. string title = "结转本期损益"
  38. boolean minbox = false
  39. long backcolor = 80269524
  40. p_1 p_1
  41. cb_1 cb_1
  42. gb_1 gb_1
  43. st_2 st_2
  44. st_3 st_3
  45. st_4 st_4
  46. st_5 st_5
  47. st_6 st_6
  48. st_7 st_7
  49. ddlb_credtype ddlb_credtype
  50. st_1 st_1
  51. st_8 st_8
  52. sle_subid sle_subid
  53. cb_2 cb_2
  54. end type
  55. global w_porfit_loss w_porfit_loss
  56. type variables
  57. end variables
  58. on w_porfit_loss.create
  59. int iCurrent
  60. call super::create
  61. this.p_1=create p_1
  62. this.cb_1=create cb_1
  63. this.gb_1=create gb_1
  64. this.st_2=create st_2
  65. this.st_3=create st_3
  66. this.st_4=create st_4
  67. this.st_5=create st_5
  68. this.st_6=create st_6
  69. this.st_7=create st_7
  70. this.ddlb_credtype=create ddlb_credtype
  71. this.st_1=create st_1
  72. this.st_8=create st_8
  73. this.sle_subid=create sle_subid
  74. this.cb_2=create cb_2
  75. iCurrent=UpperBound(this.Control)
  76. this.Control[iCurrent+1]=this.p_1
  77. this.Control[iCurrent+2]=this.cb_1
  78. this.Control[iCurrent+3]=this.gb_1
  79. this.Control[iCurrent+4]=this.st_2
  80. this.Control[iCurrent+5]=this.st_3
  81. this.Control[iCurrent+6]=this.st_4
  82. this.Control[iCurrent+7]=this.st_5
  83. this.Control[iCurrent+8]=this.st_6
  84. this.Control[iCurrent+9]=this.st_7
  85. this.Control[iCurrent+10]=this.ddlb_credtype
  86. this.Control[iCurrent+11]=this.st_1
  87. this.Control[iCurrent+12]=this.st_8
  88. this.Control[iCurrent+13]=this.sle_subid
  89. this.Control[iCurrent+14]=this.cb_2
  90. end on
  91. on w_porfit_loss.destroy
  92. call super::destroy
  93. destroy(this.p_1)
  94. destroy(this.cb_1)
  95. destroy(this.gb_1)
  96. destroy(this.st_2)
  97. destroy(this.st_3)
  98. destroy(this.st_4)
  99. destroy(this.st_5)
  100. destroy(this.st_6)
  101. destroy(this.st_7)
  102. destroy(this.ddlb_credtype)
  103. destroy(this.st_1)
  104. destroy(this.st_8)
  105. destroy(this.sle_subid)
  106. destroy(this.cb_2)
  107. end on
  108. type cb_func from w_publ_base`cb_func within w_porfit_loss
  109. boolean visible = false
  110. boolean enabled = false
  111. end type
  112. type cb_exit from w_publ_base`cb_exit within w_porfit_loss
  113. integer x = 1038
  114. integer y = 1136
  115. string text = "取消"
  116. end type
  117. type p_1 from picture within w_porfit_loss
  118. integer x = 46
  119. integer y = 28
  120. integer width = 544
  121. integer height = 832
  122. boolean bringtotop = true
  123. boolean originalsize = true
  124. string picturename = "graphics\profit_loss.bmp"
  125. boolean border = true
  126. borderstyle borderstyle = stylelowered!
  127. boolean focusrectangle = false
  128. end type
  129. type cb_1 from uo_imflatbutton within w_porfit_loss
  130. integer x = 416
  131. integer y = 1136
  132. integer width = 311
  133. integer height = 96
  134. integer taborder = 20
  135. boolean bringtotop = true
  136. boolean default = true
  137. string normalpicname = "ok.bmp"
  138. end type
  139. event clicked;//结转损益
  140. //1.结转总帐
  141. //2.结转0子帐
  142. datastore ds_5x_balance
  143. Long i,ls_subaccsetid,no_mxt = 0,zero_cnt = 0,all_cnt = 0
  144. DateTime end_date,null_datetime
  145. Decimal ls_debit,ls_credit,ls_rawdebit,ls_rawcredit,ls_rate,ls_cmount,ls_price
  146. String ls_subid,ls_subname,ls_brief
  147. Long ls_deptid,ls_itemid
  148. String arg_msg = ''
  149. Int ls_dcflag,tmp_dcflag = 0
  150. Decimal sum_debit,sum_credit
  151. String sum_subid,sum_brief
  152. Long ll_ref_credid,ll_ref_credno
  153. s_credence arg_s_cred
  154. SetNull(null_datetime)
  155. IF Trim(sle_subid.Text) = '' THEN
  156. MessageBox(publ_operator,'请选择本年利润科目')
  157. RETURN
  158. END IF
  159. SELECT cw_calendar.edate INTO :end_date FROM cw_calendar
  160. Where cw_calendar.accsetid = :sys_accsetid AND cmonth = :sys_curyearmon;
  161. IF sqlca.SQLCode <> 0 THEN
  162. MessageBox(publ_operator,'查询本期间期末日期失败')
  163. RETURN
  164. END IF
  165. Int li_credtype
  166. String tmp_credtype
  167. String ls_retr_subid
  168. Long ll_len_retr_subid
  169. li_credtype = f_check_credtype(sys_accsetid)
  170. IF li_credtype = 0 THEN
  171. MessageBox(publ_operator,'查询凭证字数目失败')
  172. RETURN
  173. ELSEIF li_credtype = 2 THEN
  174. tmp_credtype = Trim(ddlb_credtype.Text)
  175. IF tmp_credtype = '' THEN
  176. MessageBox(publ_operator,'请选择凭证字')
  177. RETURN
  178. END IF
  179. END IF
  180. IF s_sys_accset.ifnewsubid = 0 THEN
  181. ls_retr_subid = '500'
  182. ll_len_retr_subid = 3
  183. ELSE
  184. ls_retr_subid = '6000'
  185. ll_len_retr_subid = 4
  186. END IF
  187. ds_5x_balance = CREATE datastore
  188. ds_5x_balance.DataObject = 'ds_5x_balance'
  189. ds_5x_balance.SetTransObject(sqlca)
  190. ds_5x_balance.Retrieve(sys_accsetid,sys_curyearmon,0,ls_retr_subid,ll_len_retr_subid)
  191. IF ds_5x_balance.RowCount() = 0 THEN
  192. all_cnt = 0
  193. GOTO suc
  194. END IF
  195. FOR i = 1 TO ds_5x_balance.RowCount()
  196. no_mxt++
  197. ls_subid = ds_5x_balance.Object.cw_credencemx_subid[i]
  198. ls_subname = ds_5x_balance.Object.cw_subject_name[i]
  199. ls_dcflag = ds_5x_balance.Object.cw_subject_dcflag[i]
  200. ls_brief = '结转'+ls_subname
  201. IF ls_dcflag = 0 THEN
  202. ls_debit = 0 - ds_5x_balance.Object.balance[i]
  203. ls_credit = 0
  204. sum_debit = sum_debit + ls_debit
  205. ls_rawdebit = 0 - ds_5x_balance.Object.rawbalance[i]
  206. ls_rawcredit = 0
  207. ELSE
  208. ls_debit = 0
  209. ls_credit = ds_5x_balance.Object.balance[i]
  210. sum_credit = sum_credit + ls_credit
  211. ls_rawdebit = 0
  212. ls_rawcredit = ds_5x_balance.Object.rawbalance[i]
  213. END IF
  214. ls_rate = ds_5x_balance.Object.cw_credencemx_rate[i]
  215. ls_cmount = ds_5x_balance.Object.amount[i]
  216. ls_price = ds_5x_balance.Object.cw_credencemx_price[i]
  217. ls_deptid = ds_5x_balance.Object.cw_credencemx_deptid[i]
  218. ls_itemid = ds_5x_balance.Object.cw_credencemx_itemid[i]
  219. //--结转贷方-----------
  220. IF ls_dcflag <> tmp_dcflag AND sum_debit <> 0 THEN
  221. sum_subid = Trim(sle_subid.Text)
  222. sum_brief = '结转本期损益'
  223. arg_s_cred.arg_s_credmx[no_mxt].fuluno = no_mxt
  224. arg_s_cred.arg_s_credmx[no_mxt].subid = sum_subid
  225. arg_s_cred.arg_s_credmx[no_mxt].brief = sum_brief
  226. arg_s_cred.arg_s_credmx[no_mxt].rate = 0
  227. arg_s_cred.arg_s_credmx[no_mxt].rawdebit = 0
  228. arg_s_cred.arg_s_credmx[no_mxt].rawcredit = 0
  229. arg_s_cred.arg_s_credmx[no_mxt].debit = 0
  230. arg_s_cred.arg_s_credmx[no_mxt].credit = sum_debit
  231. arg_s_cred.arg_s_credmx[no_mxt].amount = 0
  232. arg_s_cred.arg_s_credmx[no_mxt].price = 0
  233. arg_s_cred.arg_s_credmx[no_mxt].deptid = 0
  234. arg_s_cred.arg_s_credmx[no_mxt].itemid = 0
  235. arg_s_cred.arg_s_credmx[no_mxt].billdate = null_datetime
  236. arg_s_cred.arg_s_credmx[no_mxt].billid = 0
  237. arg_s_cred.arg_s_credmx[no_mxt].billno = ''
  238. arg_s_cred.arg_s_credmx[no_mxt].cropbillid = 0
  239. arg_s_cred.arg_s_credmx[no_mxt].ifreadonly = 1
  240. tmp_dcflag = ls_dcflag
  241. no_mxt++
  242. END IF
  243. //---------------
  244. arg_s_cred.arg_s_credmx[no_mxt].fuluno = no_mxt
  245. arg_s_cred.arg_s_credmx[no_mxt].subid = ls_subid
  246. arg_s_cred.arg_s_credmx[no_mxt].brief = ls_brief
  247. arg_s_cred.arg_s_credmx[no_mxt].rate = ls_rate
  248. arg_s_cred.arg_s_credmx[no_mxt].rawdebit = ls_rawdebit
  249. arg_s_cred.arg_s_credmx[no_mxt].rawcredit = ls_rawcredit
  250. arg_s_cred.arg_s_credmx[no_mxt].debit = ls_debit
  251. arg_s_cred.arg_s_credmx[no_mxt].credit = ls_credit
  252. arg_s_cred.arg_s_credmx[no_mxt].amount = ls_cmount
  253. arg_s_cred.arg_s_credmx[no_mxt].price = ls_price
  254. arg_s_cred.arg_s_credmx[no_mxt].deptid = ls_deptid
  255. arg_s_cred.arg_s_credmx[no_mxt].itemid = ls_itemid
  256. arg_s_cred.arg_s_credmx[no_mxt].billdate = null_datetime
  257. arg_s_cred.arg_s_credmx[no_mxt].billid = 0
  258. arg_s_cred.arg_s_credmx[no_mxt].billno = ''
  259. arg_s_cred.arg_s_credmx[no_mxt].cropbillid = 0
  260. arg_s_cred.arg_s_credmx[no_mxt].ifreadonly = 1
  261. NEXT
  262. //--结转借方-----------
  263. IF sum_credit <> 0 THEN
  264. no_mxt++
  265. sum_subid = Trim(sle_subid.Text)
  266. sum_brief = '结转本期损益'
  267. arg_s_cred.arg_s_credmx[no_mxt].fuluno = no_mxt
  268. arg_s_cred.arg_s_credmx[no_mxt].subid = sum_subid
  269. arg_s_cred.arg_s_credmx[no_mxt].brief = sum_brief
  270. arg_s_cred.arg_s_credmx[no_mxt].rate = 0
  271. arg_s_cred.arg_s_credmx[no_mxt].rawdebit = 0
  272. arg_s_cred.arg_s_credmx[no_mxt].rawcredit = 0
  273. arg_s_cred.arg_s_credmx[no_mxt].debit = sum_credit
  274. arg_s_cred.arg_s_credmx[no_mxt].credit = 0
  275. arg_s_cred.arg_s_credmx[no_mxt].amount = 0
  276. arg_s_cred.arg_s_credmx[no_mxt].price = 0
  277. arg_s_cred.arg_s_credmx[no_mxt].deptid = 0
  278. arg_s_cred.arg_s_credmx[no_mxt].itemid = 0
  279. arg_s_cred.arg_s_credmx[no_mxt].billdate = null_datetime
  280. arg_s_cred.arg_s_credmx[no_mxt].billid = 0
  281. arg_s_cred.arg_s_credmx[no_mxt].billno = ''
  282. arg_s_cred.arg_s_credmx[no_mxt].cropbillid = 0
  283. arg_s_cred.arg_s_credmx[no_mxt].ifreadonly = 1
  284. END IF
  285. //-----------------------
  286. arg_s_cred.creddate = end_date
  287. arg_s_cred.readtype = 100
  288. arg_s_cred.credtype = tmp_credtype
  289. arg_s_cred.ifauto = 0
  290. IF f_create_cred(arg_s_cred,TRUE,arg_msg,ll_ref_credid,ll_ref_credno) = 0 THEN
  291. MessageBox('error!',arg_msg)
  292. RETURN
  293. END IF
  294. suc:
  295. MessageBox(publ_operator,'本期结转成功!')
  296. CLOSE(PARENT)
  297. end event
  298. type gb_1 from groupbox within w_porfit_loss
  299. integer x = 50
  300. integer y = 1052
  301. integer width = 1591
  302. integer height = 36
  303. integer taborder = 30
  304. integer textsize = -9
  305. integer weight = 400
  306. fontcharset fontcharset = gb2312charset!
  307. fontpitch fontpitch = variable!
  308. string facename = "宋体"
  309. long textcolor = 33554432
  310. long backcolor = 67108864
  311. end type
  312. type st_2 from statictext within w_porfit_loss
  313. integer x = 677
  314. integer y = 176
  315. integer width = 933
  316. integer height = 60
  317. boolean bringtotop = true
  318. integer textsize = -9
  319. integer weight = 400
  320. fontcharset fontcharset = gb2312charset!
  321. fontpitch fontpitch = variable!
  322. string facename = "宋体"
  323. long textcolor = 16711680
  324. long backcolor = 67108864
  325. boolean enabled = false
  326. string text = "的余额转入《本年利润》科目,以反映"
  327. alignment alignment = right!
  328. boolean focusrectangle = false
  329. end type
  330. type st_3 from statictext within w_porfit_loss
  331. integer x = 677
  332. integer y = 264
  333. integer width = 933
  334. integer height = 60
  335. boolean bringtotop = true
  336. integer textsize = -9
  337. integer weight = 400
  338. fontcharset fontcharset = gb2312charset!
  339. fontpitch fontpitch = variable!
  340. string facename = "宋体"
  341. long textcolor = 16711680
  342. long backcolor = 67108864
  343. boolean enabled = false
  344. string text = "企来在一个会计期间内实现的利润或亏"
  345. alignment alignment = right!
  346. boolean focusrectangle = false
  347. end type
  348. type st_4 from statictext within w_porfit_loss
  349. integer x = 677
  350. integer y = 352
  351. integer width = 933
  352. integer height = 60
  353. boolean bringtotop = true
  354. integer textsize = -9
  355. integer weight = 400
  356. fontcharset fontcharset = gb2312charset!
  357. fontpitch fontpitch = variable!
  358. string facename = "宋体"
  359. long textcolor = 16711680
  360. long backcolor = 67108864
  361. boolean enabled = false
  362. string text = "损总额!并且生成相应的记帐凭证。"
  363. boolean focusrectangle = false
  364. end type
  365. type st_5 from statictext within w_porfit_loss
  366. integer x = 677
  367. integer y = 572
  368. integer width = 933
  369. integer height = 60
  370. boolean bringtotop = true
  371. integer textsize = -9
  372. integer weight = 400
  373. fontcharset fontcharset = gb2312charset!
  374. fontpitch fontpitch = variable!
  375. string facename = "宋体"
  376. long textcolor = 255
  377. long backcolor = 80269524
  378. boolean enabled = false
  379. string text = "在结转本期损益以前,要求你将本"
  380. alignment alignment = right!
  381. boolean focusrectangle = false
  382. end type
  383. type st_6 from statictext within w_porfit_loss
  384. integer x = 677
  385. integer y = 652
  386. integer width = 933
  387. integer height = 60
  388. boolean bringtotop = true
  389. integer textsize = -9
  390. integer weight = 400
  391. fontcharset fontcharset = gb2312charset!
  392. fontpitch fontpitch = variable!
  393. string facename = "宋体"
  394. long textcolor = 255
  395. long backcolor = 80269524
  396. boolean enabled = false
  397. string text = "期的凭证全部登帐!"
  398. boolean focusrectangle = false
  399. end type
  400. type st_7 from statictext within w_porfit_loss
  401. integer x = 677
  402. integer y = 976
  403. integer width = 187
  404. integer height = 56
  405. boolean bringtotop = true
  406. integer textsize = -9
  407. integer weight = 400
  408. fontcharset fontcharset = gb2312charset!
  409. fontpitch fontpitch = variable!
  410. string facename = "宋体"
  411. long textcolor = 33554432
  412. long backcolor = 67108864
  413. boolean enabled = false
  414. string text = "凭证字"
  415. alignment alignment = right!
  416. boolean focusrectangle = false
  417. end type
  418. type ddlb_credtype from dropdownlistbox within w_porfit_loss
  419. integer x = 873
  420. integer y = 964
  421. integer width = 453
  422. integer height = 340
  423. integer taborder = 10
  424. boolean bringtotop = true
  425. integer textsize = -9
  426. integer weight = 400
  427. fontcharset fontcharset = gb2312charset!
  428. fontpitch fontpitch = variable!
  429. string facename = "宋体"
  430. long textcolor = 33554432
  431. boolean vscrollbar = true
  432. borderstyle borderstyle = stylelowered!
  433. end type
  434. event constructor;String ls_credtype
  435. DECLARE cur_credtype CURSOR FOR
  436. SELECT cw_Credenceword.Credenceword
  437. FROM cw_Credenceword
  438. Where accsetid = :sys_accsetid;
  439. OPEN cur_credtype;
  440. FETCH cur_credtype INTO :ls_credtype;
  441. DO WHILE sqlca.SQLCode = 0
  442. THIS.AddItem(ls_credtype)
  443. FETCH cur_credtype INTO :ls_credtype;
  444. LOOP
  445. CLOSE cur_credtype;
  446. end event
  447. type st_1 from statictext within w_porfit_loss
  448. integer x = 677
  449. integer y = 88
  450. integer width = 933
  451. integer height = 48
  452. boolean bringtotop = true
  453. integer textsize = -9
  454. integer weight = 400
  455. fontcharset fontcharset = gb2312charset!
  456. fontpitch fontpitch = variable!
  457. string facename = "宋体"
  458. long textcolor = 16711680
  459. long backcolor = 67108864
  460. string text = "提示:该功能帮助你将损益类科目"
  461. alignment alignment = right!
  462. boolean focusrectangle = false
  463. end type
  464. type st_8 from statictext within w_porfit_loss
  465. integer x = 462
  466. integer y = 876
  467. integer width = 402
  468. integer height = 48
  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. long backcolor = 67108864
  477. string text = "本年利润科目"
  478. alignment alignment = right!
  479. boolean focusrectangle = false
  480. end type
  481. type sle_subid from singlelineedit within w_porfit_loss
  482. integer x = 873
  483. integer y = 860
  484. integer width = 626
  485. integer height = 84
  486. integer taborder = 30
  487. boolean bringtotop = true
  488. integer textsize = -9
  489. integer weight = 400
  490. fontcharset fontcharset = gb2312charset!
  491. fontpitch fontpitch = variable!
  492. string facename = "宋体"
  493. long textcolor = 33554432
  494. boolean displayonly = true
  495. borderstyle borderstyle = stylelowered!
  496. end type
  497. type cb_2 from commandbutton within w_porfit_loss
  498. integer x = 1509
  499. integer y = 856
  500. integer width = 142
  501. integer height = 84
  502. integer taborder = 40
  503. boolean bringtotop = true
  504. integer textsize = -9
  505. integer weight = 400
  506. fontcharset fontcharset = gb2312charset!
  507. fontpitch fontpitch = variable!
  508. string facename = "宋体"
  509. string text = "..."
  510. end type
  511. event clicked;s_subject s_rt_subject
  512. IF NOT IsValid(w_subjectdef_edit) THEN
  513. OpenWithParm(w_subjectdef_edit,0)
  514. s_rt_subject = Message.PowerObjectParm
  515. IF s_rt_subject.subid = '' THEN RETURN
  516. sle_subid.Text = s_rt_subject.subid
  517. END IF
  518. end event