w_porfit_loss_auto.srw 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. $PBExportHeader$w_porfit_loss_auto.srw
  2. forward
  3. global type w_porfit_loss_auto from w_publ_1ton_share_detail
  4. end type
  5. type ddlb_1 from dropdownlistbox within w_porfit_loss_auto
  6. end type
  7. end forward
  8. global type w_porfit_loss_auto from w_publ_1ton_share_detail
  9. integer x = 0
  10. integer y = 0
  11. integer height = 2380
  12. string title = "自动转帐凭证"
  13. boolean maxbox = true
  14. windowstate windowstate = maximized!
  15. event insert_childrow ( )
  16. ddlb_1 ddlb_1
  17. end type
  18. global w_porfit_loss_auto w_porfit_loss_auto
  19. type variables
  20. int ls_ifalways = -1
  21. uo_credence_mode uo_porfit_loss_auto
  22. end variables
  23. event insert_childrow;long li_row
  24. li_row=dw_child.insertrow(0)
  25. dw_child.scrolltorow(li_row)
  26. dw_child.SetColumn ('brief')
  27. end event
  28. on w_porfit_loss_auto.create
  29. int iCurrent
  30. call super::create
  31. this.ddlb_1=create ddlb_1
  32. iCurrent=UpperBound(this.Control)
  33. this.Control[iCurrent+1]=this.ddlb_1
  34. end on
  35. on w_porfit_loss_auto.destroy
  36. call super::destroy
  37. destroy(this.ddlb_1)
  38. end on
  39. event retrieve_pageretr;boolean cb_nextpage_enabled,cb_retrieveall_enabled
  40. boolean cb_retrieve_enabled
  41. cb_nextpage_enabled=cb_nextpage.enabled
  42. cb_retrieveall_enabled=cb_retrieveall.enabled
  43. cb_nextpage.enabled=false
  44. cb_retrieveall.enabled=false
  45. dw_pageretr.sharedataoff()
  46. dw_pageretr.retrieve(sys_accsetid,ls_ifalways)
  47. if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1)
  48. dw_pageretr.sharedata(dw_uc)
  49. this.triggerevent('retrieve_childdw')
  50. cb_nextpage.enabled=cb_nextpage_enabled
  51. cb_retrieveall.enabled=cb_retrieveall_enabled
  52. end event
  53. event retrieve_childdw;call super::retrieve_childdw;long row,uc_credid
  54. row=dw_uc.getrow()
  55. if row>0 then
  56. uc_credid=dw_uc.object.credid [row]
  57. dw_child.SetRedraw (false)
  58. dw_child.retrieve(sys_accsetid,uc_credid)
  59. dw_child.SetRedraw (true)
  60. else
  61. dw_child.reset()
  62. end if
  63. end event
  64. event ue_before_open;call super::ue_before_open;//1.会计科目
  65. datawindowchild childdw_subid
  66. dw_child.getchild("subid",childdw_subid)
  67. childdw_subid.SetTransObject (sqlca)
  68. ddd_subid_display_detail.sharedata(childdw_subid)
  69. //2.凭证字
  70. datawindowchild childdw_credword
  71. dw_uc.getchild("credtype",childdw_credword)
  72. childdw_credword.SetTransObject (sqlca)
  73. childdw_credword.retrieve(sys_accsetid)
  74. if childdw_credword.rowcount()<=0 then
  75. childdw_credword.insertrow(0)
  76. end if
  77. //5.项目
  78. datawindowchild childdw_itemid
  79. dw_child.getchild("itemid",childdw_itemid)
  80. childdw_itemid.SetTransObject (sqlca)
  81. childdw_itemid.retrieve(sys_accsetid)
  82. if childdw_itemid.rowcount()<=0 then
  83. childdw_itemid.insertrow(0)
  84. end if
  85. end event
  86. event refresh_interface;call super::refresh_interface;sle_usual_query.enabled = not dw_edit_mode
  87. ddlb_1.enabled = not dw_edit_mode
  88. end event
  89. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  90. if trim(sle_usual_query.text)<>'' then
  91. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  92. obj_expr=obj_expr+'( credname LIKE "%'+trim(sle_usual_query.text)+'%" )'
  93. ELSE
  94. obj_expr=obj_expr+'( credname LIKE "'+trim(sle_usual_query.text)+'" )'
  95. END IF
  96. end if
  97. dw_pageretr.setfilter(obj_expr)
  98. dw_pageretr.SetRedraw(False)
  99. dw_pageretr.filter()
  100. if dw_pageretr.rowcount()>=1 then
  101. dw_pageretr.selectrow(0,false)
  102. dw_pageretr.selectrow(1,true)
  103. end if
  104. dw_pageretr.SetRedraw(TRUE)
  105. end event
  106. event open;call super::open;uc_column_int=4 //uc dw前5列可以编辑
  107. child_column_int=8 //子dw前10列可以编辑
  108. uo_porfit_loss_auto=create uo_credence_mode
  109. end event
  110. event ue_addmx;Int li_row_1, li_cur_row_1
  111. li_cur_row_1 = dw_child.GetRow()
  112. li_row_1 = dw_child.InsertRow (li_cur_row_1)
  113. dw_child.ScrollToRow (li_row_1)
  114. dw_child.SetFocus()
  115. end event
  116. type cb_func from w_publ_1ton_share_detail`cb_func within w_porfit_loss_auto
  117. integer x = 174
  118. end type
  119. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_porfit_loss_auto
  120. integer x = 1326
  121. end type
  122. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_porfit_loss_auto
  123. integer x = 224
  124. integer y = 188
  125. integer width = 640
  126. end type
  127. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_porfit_loss_auto
  128. boolean visible = false
  129. integer x = 599
  130. integer y = 1768
  131. end type
  132. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_porfit_loss_auto
  133. boolean visible = false
  134. integer x = 334
  135. integer y = 1768
  136. end type
  137. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_porfit_loss_auto
  138. integer x = 1541
  139. integer y = 188
  140. integer width = 2007
  141. integer height = 768
  142. string title = "凭证摘要内容"
  143. string dataobject = "dw_credence_auto_index"
  144. boolean hscrollbar = false
  145. boolean hsplitscroll = false
  146. end type
  147. type st_1 from w_publ_1ton_share_detail`st_1 within w_porfit_loss_auto
  148. integer x = 27
  149. integer y = 200
  150. integer width = 215
  151. string text = "名称含:"
  152. end type
  153. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_porfit_loss_auto
  154. boolean visible = false
  155. integer x = 2565
  156. end type
  157. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_porfit_loss_auto
  158. integer width = 1541
  159. integer height = 768
  160. string dataobject = "dw_credence_auto_edit"
  161. boolean border = false
  162. borderstyle borderstyle = stylebox!
  163. end type
  164. type dw_child from w_publ_1ton_share_detail`dw_child within w_porfit_loss_auto
  165. integer y = 960
  166. integer width = 3547
  167. integer height = 1156
  168. string title = "转帐凭证明细"
  169. string dataobject = "dw_credencemx_auto_index"
  170. end type
  171. event dw_child::rowfocuschanged;int i = 0
  172. end event
  173. event dw_child::doubleclicked;//cb_addzy.triggerevent(clicked!)
  174. end event
  175. event dw_child::dwnkey;if dw_edit_mode then
  176. If keydown(Keydownarrow!) Then
  177. long li_row
  178. if dw_child.getrow()=dw_child.rowcount() then
  179. parent.triggerevent("insert_childrow")
  180. end if
  181. else
  182. If key = KeyEnter! Then
  183. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  184. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  185. return 1
  186. end if
  187. end if
  188. end if
  189. end event
  190. event dw_child::itemchanged;if not dw_edit_mode then return
  191. if row <= 0 then return
  192. this.setredraw(false)
  193. this.accepttext()
  194. choose case dwo.name
  195. case 'subid'
  196. int ls_hsitem
  197. string ls_subid
  198. ls_subid = this.object.subid[row]
  199. select hsitem into :ls_hsitem from cw_subject
  200. where accsetid = :sys_accsetid
  201. and subid = :ls_subid;
  202. if sqlca.sqlcode <> 0 then ls_hsitem = 0
  203. this.object.cw_subject_hsitem[row] = ls_hsitem
  204. case 'modetype'
  205. int ls_modetype
  206. ls_modetype = this.object.modetype[row]
  207. choose case ls_modetype
  208. case 1
  209. this.object.ifnopost[row] = 0
  210. this.object.autorate[row] = 100
  211. this.object.expressions[row] = ''
  212. case 2
  213. this.object.expressions[row] = ''
  214. case 3
  215. this.object.autorate[row] = 100
  216. this.object.expressions[row] = ''
  217. case 4
  218. end choose
  219. end choose
  220. this.setredraw(true)
  221. end event
  222. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_porfit_loss_auto
  223. boolean visible = false
  224. integer x = 2331
  225. end type
  226. type cb_print from w_publ_1ton_share_detail`cb_print within w_porfit_loss_auto
  227. boolean visible = false
  228. integer x = 1394
  229. integer y = 1764
  230. end type
  231. type cb_add from w_publ_1ton_share_detail`cb_add within w_porfit_loss_auto
  232. integer x = 338
  233. end type
  234. event cb_add::clicked;IF NOT f_power_ind(1058,sys_msg_pow) THEN
  235. MessageBox(publ_operator,'你没有使用权限!')
  236. RETURN
  237. END IF
  238. String arg_msg = ''
  239. Long uc_row
  240. Decimal sum_debit,sum_credit
  241. DateTime firstdate,enddate
  242. Long i
  243. IF dw_edit_mode THEN
  244. dw_uc.AcceptText()
  245. dw_child.AcceptText()
  246. uc_row = dw_uc.GetRow()
  247. IF uc_row <= 0 THEN
  248. MessageBox(publ_operator,'请选定当前目标凭证!')
  249. RETURN
  250. END IF
  251. IF Trim(dw_uc.Object.credname[uc_row]) = '' THEN
  252. MessageBox(publ_operator,'请正确填写凭证名称!')
  253. RETURN
  254. END IF
  255. //检查借贷
  256. Int debit_cnt,credit_cnt
  257. FOR i = 1 TO dw_child.RowCount()
  258. IF dw_child.Object.dcflag[i] = 0 THEN
  259. credit_cnt++
  260. ELSE
  261. debit_cnt++
  262. END IF
  263. NEXT
  264. IF debit_cnt = 0 OR credit_cnt = 0 THEN
  265. MessageBox(publ_operator,'转帐凭证缺少转帐分录!')
  266. RETURN
  267. END IF
  268. IF dw_child.RowCount() > 0 THEN
  269. IF dw_child.Object.modetype[dw_child.RowCount()] <> 1 THEN
  270. MessageBox('提示','凭证最后一行必须为转入类型')
  271. RETURN
  272. END IF
  273. END IF
  274. uo_porfit_loss_auto.credname = dw_uc.Object.credname[uc_row]
  275. uo_porfit_loss_auto.credtype = dw_uc.Object.credtype[uc_row]
  276. uo_porfit_loss_auto.ifalways = dw_uc.Object.ifalways[uc_row]
  277. FOR i = 1 TO dw_child.RowCount()
  278. IF uo_porfit_loss_auto.acceptmx(dw_child.Object.subid[i],&
  279. dw_child.Object.brief[i],&
  280. dw_child.Object.dcflag[i],&
  281. dw_child.Object.modetype[i],&
  282. dw_child.Object.ifnopost[i],&
  283. dw_child.Object.autorate[i],&
  284. dw_child.Object.expressions[i],&
  285. 0,0,0,0,0,&
  286. dw_child.Object.itemid [i],&
  287. 0,'',arg_msg,dw_child.Object.prid[i]) = 0 THEN
  288. MessageBox('error!',arg_msg)
  289. RETURN
  290. END IF
  291. NEXT
  292. IF uo_porfit_loss_auto.Save(arg_msg,TRUE) = 0 THEN
  293. MessageBox('error!',arg_msg)
  294. RETURN
  295. END IF
  296. MessageBox(publ_operator,'保存操作成功!')
  297. dw_pageretr.SelectRow(0,FALSE)
  298. dw_pageretr.SelectRow(uc_row,TRUE)
  299. dw_uc.Object.credid[uc_row] = uo_porfit_loss_auto.credid
  300. ELSE
  301. IF uo_porfit_loss_auto.newbegin(1,arg_msg) = 0 THEN
  302. MessageBox('error!',arg_msg)
  303. RETURN
  304. END IF
  305. END IF
  306. CALL SUPER::Clicked
  307. IF dw_edit_mode THEN
  308. PARENT.TriggerEvent("insert_childrow")
  309. ELSE
  310. PARENT.TriggerEvent("retrieve_childdw")
  311. END IF
  312. //
  313. THIS.TriggerEvent('refresh_interface')
  314. end event
  315. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_porfit_loss_auto
  316. integer x = 530
  317. end type
  318. event cb_edit::clicked;IF NOT f_power_ind(1058,sys_msg_pow) THEN
  319. MessageBox(publ_operator,'你没有使用权限!')
  320. RETURN
  321. END IF
  322. String arg_msg = ''
  323. Long uc_row
  324. Long ls_credid
  325. uc_row = dw_uc.GetRow()
  326. IF uc_row <= 0 THEN
  327. MessageBox('系统提示','请选定当前目标凭证!')
  328. RETURN
  329. END IF
  330. ls_credid = dw_uc.Object.credid[uc_row]
  331. IF NOT dw_edit_mode THEN
  332. IF uo_porfit_loss_auto.UPDATEbegin(ls_credid,arg_msg) = 0 THEN
  333. MessageBox(publ_operator,arg_msg)
  334. RETURN
  335. END IF
  336. END IF
  337. CALL SUPER::Clicked
  338. end event
  339. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_porfit_loss_auto
  340. integer x = 722
  341. end type
  342. event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(1059,sys_msg_pow) THEN
  343. MessageBox(publ_operator,'你没有使用权限!')
  344. RETURN
  345. END IF
  346. IF dw_edit_mode THEN RETURN
  347. IF MessageBox ("IF","是否确定要删除当前凭证吗?",Question!,YesNo! ) = 2 THEN RETURN
  348. String arg_msg = ''
  349. Long uc_row
  350. Long ls_credid
  351. uc_row = dw_pageretr.GetRow()
  352. IF uc_row <= 0 THEN
  353. MessageBox('系统提示','请选定当前目标凭证!')
  354. RETURN
  355. END IF
  356. ls_credid = dw_uc.Object.credid[uc_row]
  357. IF uo_porfit_loss_auto.del(ls_credid,arg_msg,TRUE) = 0 THEN
  358. MessageBox('Error!',arg_msg)
  359. ELSE
  360. MessageBox(publ_operator,'删除凭证'+String(dw_uc.Object.credname[uc_row])+'成功!')
  361. dw_pageretr.DeleteRow(uc_row)
  362. dw_pageretr.PostEvent(RowFocusChanged!)
  363. END IF
  364. end event
  365. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_porfit_loss_auto
  366. integer x = 1051
  367. integer width = 274
  368. string text = "生成凭证"
  369. end type
  370. event cb_auditing::clicked;call super::clicked;IF NOT f_power_ind(1058,sys_msg_pow) THEN
  371. MessageBox(publ_operator,'你没有使用权限!')
  372. RETURN
  373. END IF
  374. IF dw_edit_mode THEN RETURN
  375. String arg_msg = ''
  376. Long pagerert_row
  377. pagerert_row = dw_uc.GetRow()
  378. IF pagerert_row <= 0 THEN
  379. MessageBox('系统提示','请选定当前目标凭证!')
  380. RETURN
  381. END IF
  382. IF uo_porfit_loss_auto.auto_createcred(dw_uc.Object.credid[pagerert_row],arg_msg) = 0 THEN
  383. MessageBox('Error!',arg_msg)
  384. ELSE
  385. MessageBox(publ_operator,'自动转帐成功!')
  386. END IF
  387. end event
  388. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_porfit_loss_auto
  389. integer x = 887
  390. end type
  391. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_porfit_loss_auto
  392. integer x = 0
  393. end type
  394. type cb_help from w_publ_1ton_share_detail`cb_help within w_porfit_loss_auto
  395. boolean visible = false
  396. integer x = 1888
  397. end type
  398. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_porfit_loss_auto
  399. end type
  400. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_porfit_loss_auto
  401. end type
  402. type r_bar from w_publ_1ton_share_detail`r_bar within w_porfit_loss_auto
  403. end type
  404. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_porfit_loss_auto
  405. boolean visible = false
  406. integer beginx = 2638
  407. integer endx = 2638
  408. end type
  409. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_porfit_loss_auto
  410. boolean visible = false
  411. integer beginx = 2642
  412. integer endx = 2642
  413. end type
  414. type ddlb_1 from dropdownlistbox within w_porfit_loss_auto
  415. integer x = 873
  416. integer y = 196
  417. integer width = 334
  418. integer height = 228
  419. integer taborder = 60
  420. boolean bringtotop = true
  421. integer textsize = -9
  422. integer weight = 400
  423. fontcharset fontcharset = gb2312charset!
  424. fontpitch fontpitch = variable!
  425. string facename = "宋体"
  426. long textcolor = 33554432
  427. string text = "[全部]"
  428. boolean sorted = false
  429. boolean vscrollbar = true
  430. string item[] = {"[常用]","[全部]"}
  431. borderstyle borderstyle = stylelowered!
  432. end type
  433. event selectionchanged;if index = 0 then
  434. ls_ifalways = -1
  435. else
  436. ls_ifalways = 1
  437. end if
  438. //wf_retrieveuc(1)
  439. end event