w_asset_clear.srw 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020
  1. $PBExportHeader$w_asset_clear.srw
  2. forward
  3. global type w_asset_clear from w_publ_1ton_share_detail
  4. end type
  5. type cb_credence from uo_imflatbutton within w_asset_clear
  6. end type
  7. end forward
  8. global type w_asset_clear from w_publ_1ton_share_detail
  9. string title = "固定资产减少"
  10. boolean maxbox = true
  11. windowstate windowstate = maximized!
  12. event insert_childrow ( )
  13. cb_credence cb_credence
  14. end type
  15. global w_asset_clear w_asset_clear
  16. type variables
  17. boolean if_credence=false
  18. int cur_editfocus=0//0:非编缉,1:新建,2:修改
  19. long new_astclearid=0
  20. long old_assetcardid[],old_mxt //原固定资产ID
  21. long new_assetcardid[],new_mxt //新固定资产ID
  22. long old_credid //原对应凭证ID
  23. long new_credid //新对应凭证ID
  24. uo_asset_clear uo_clear
  25. uo_credence uo_cred
  26. uo_asset uo_assettcard
  27. end variables
  28. event insert_childrow;long li_row
  29. li_row=dw_child.insertrow(0)
  30. dw_child.scrolltorow(li_row)
  31. dw_child.SetColumn ('cw_assetcard_assetcardcode')
  32. end event
  33. on w_asset_clear.create
  34. int iCurrent
  35. call super::create
  36. this.cb_credence=create cb_credence
  37. iCurrent=UpperBound(this.Control)
  38. this.Control[iCurrent+1]=this.cb_credence
  39. end on
  40. on w_asset_clear.destroy
  41. call super::destroy
  42. destroy(this.cb_credence)
  43. end on
  44. event close;destroy uo_clear
  45. destroy uo_cred
  46. destroy uo_assettcard
  47. end event
  48. event open;call super::open;uc_column_int = 6 //uc dw前8列可以编辑
  49. child_column_int = 5 //子dw前4列可以编辑
  50. uo_clear = CREATE uo_asset_clear
  51. uo_cred = CREATE uo_credence
  52. uo_assettcard = CREATE uo_asset
  53. wf_refresh_interface()
  54. end event
  55. event refresh_interface;call super::refresh_interface;cb_credence.enabled=dw_edit_mode
  56. sle_usual_query.enabled =not dw_edit_mode
  57. end event
  58. event ue_before_open;call super::ue_before_open;dw_uc.settransobject(sqlca)
  59. datawindowchild childdw_incrdecid
  60. dw_child.getchild("cw_astclear_incrdecid",childdw_incrdecid)
  61. childdw_incrdecid.SetTransObject (sqlca)
  62. childdw_incrdecid.retrieve(sys_accsetid)
  63. if childdw_incrdecid.rowcount()<=0 then
  64. childdw_incrdecid.insertrow(0)
  65. end if
  66. end event
  67. event retrieve_pageretr;boolean cb_nextpage_enabled,cb_retrieveall_enabled
  68. boolean cb_retrieve_enabled
  69. cb_nextpage_enabled=cb_nextpage.enabled
  70. cb_retrieveall_enabled=cb_retrieveall.enabled
  71. cb_nextpage.enabled=false
  72. cb_retrieveall.enabled=false
  73. dw_pageretr.sharedataoff()
  74. dw_pageretr.retrieve(sys_accsetid)
  75. if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1)
  76. dw_pageretr.sharedata(dw_uc)
  77. this.triggerevent('retrieve_childdw')
  78. cb_nextpage.enabled=cb_nextpage_enabled
  79. cb_retrieveall.enabled=cb_retrieveall_enabled
  80. end event
  81. event ue_usual_query_retr;call super::ue_usual_query_retr;
  82. string ls_querystrpart=''
  83. ls_newselect=lower(ori_oldselect)
  84. if trim(sle_usual_query.text)<>'' then
  85. if pos(trim(sle_usual_query.text),'%')=0 then
  86. ls_querystrpart="(cw_astclear_bill.relcode like '%"+trim(sle_usual_query.text)+"%')"
  87. else
  88. ls_querystrpart="(cw_astclear_bill.relcode like '"+trim(sle_usual_query.text)+"')"
  89. end if
  90. if Pos(ls_newselect," where ") <> 0 then
  91. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  92. else
  93. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  94. end if
  95. end if
  96. //wf_retrieveuc(1) //注意必须有此句
  97. end event
  98. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  99. if trim(sle_usual_query.text)<>'' then
  100. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  101. obj_expr=obj_expr+'( relcode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  102. ELSE
  103. obj_expr=obj_expr+'( relcode LIKE "'+trim(sle_usual_query.text)+'" )'
  104. END IF
  105. end if
  106. dw_pageretr.setfilter(obj_expr)
  107. dw_pageretr.SetRedraw(False)
  108. dw_pageretr.filter()
  109. if dw_pageretr.rowcount()>=1 then
  110. dw_pageretr.selectrow(0,false)
  111. dw_pageretr.selectrow(1,true)
  112. end if
  113. dw_pageretr.SetRedraw(TRUE)
  114. end event
  115. event ue_f8;call super::ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用
  116. IF NOT dw_edit_mode THEN RETURN
  117. Long child_row
  118. child_row = dw_child.GetRow()
  119. IF NOT IsValid(w_assetdef_ch) THEN
  120. s_edit_index_tran s_ch_tran //传递参数使用
  121. s_ch_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  122. s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式
  123. s_ch_tran.arg_pkid = 0 //目标定位PKID (备用)
  124. s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选
  125. s_ch_tran.if_select_all = TRUE
  126. Long chc = 1,ls_j
  127. dw_child.AcceptText()
  128. IF dw_child.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_child.Object.cw_assetcard_assetcardcode[dw_child.GetRow()])
  129. OpenWithParm(w_assetdef_ch,s_ch_tran)
  130. s_assetcard_array S_INSCUST
  131. S_INSCUST = Message.PowerObjectParm
  132. FOR ls_j = 1 TO UpperBound(S_INSCUST.assetcardid)
  133. IF S_INSCUST.assetcardid[ls_j] > 0 THEN
  134. IF dw_child.GetRow() > 0 THEN
  135. IF dw_child.Object.cw_astclear_assetcardid[child_row] <> 0 THEN
  136. child_row = dw_child.InsertRow (0)
  137. ELSE
  138. child_row = dw_child.GetRow()
  139. END IF
  140. ELSE
  141. child_row = dw_child.InsertRow (0)
  142. END IF
  143. dw_child.Object.cw_assetcard_assetcardcode[child_row] = S_INSCUST.assetcardcode[ls_j]
  144. dw_child.Object.cw_assetcard_assetcardname[child_row] = S_INSCUST.assetcardname[ls_j]
  145. dw_child.Object.cw_astclear_assetcardid[child_row] = S_INSCUST.assetcardid[ls_j]
  146. dw_child.setcolumn('cw_astclear_incrdecid')
  147. END IF
  148. NEXT
  149. dw_child.SetFocus()
  150. END IF
  151. end event
  152. event retrieve_childdw;call super::retrieve_childdw;long row,uc_relid
  153. row=dw_pageretr.getrow()
  154. if row>0 then
  155. uc_relid=dw_pageretr.object.astclearid[row]
  156. dw_child.SetRedraw (false)
  157. dw_child.retrieve(sys_accsetid,uc_relid)
  158. dw_child.SetRedraw (true)
  159. else
  160. dw_child.reset()
  161. end if
  162. end event
  163. type cb_func from w_publ_1ton_share_detail`cb_func within w_asset_clear
  164. end type
  165. type cb_exit from w_publ_1ton_share_detail`cb_exit within w_asset_clear
  166. integer x = 1362
  167. end type
  168. type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_asset_clear
  169. integer x = 334
  170. integer y = 188
  171. end type
  172. type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_asset_clear
  173. boolean visible = false
  174. integer x = 2441
  175. end type
  176. type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_asset_clear
  177. boolean visible = false
  178. integer x = 2085
  179. end type
  180. type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_asset_clear
  181. integer x = 1938
  182. integer width = 1609
  183. integer height = 772
  184. string dataobject = "dw_assetclear_bill_index"
  185. end type
  186. type st_1 from w_publ_1ton_share_detail`st_1 within w_asset_clear
  187. integer width = 315
  188. string text = "相关号码含:"
  189. end type
  190. type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_asset_clear
  191. boolean visible = false
  192. integer x = 2935
  193. end type
  194. type dw_uc from w_publ_1ton_share_detail`dw_uc within w_asset_clear
  195. integer width = 1938
  196. integer height = 772
  197. string dataobject = "dw_assetclear_bill_edit"
  198. boolean border = false
  199. borderstyle borderstyle = stylebox!
  200. end type
  201. event dw_uc::dwnkey;parent.triggerevent('user_key')
  202. if key = KeyDownArrow! then return 1
  203. if dw_edit_mode then
  204. if dw_uc.GetColumnName ( )='othersubid' and key = KeyEnter! then
  205. dw_child.setfocus()
  206. dw_child.scrolltorow(1)
  207. dw_child.SetColumn ('cw_assetcard_assetcardcode')
  208. return 1
  209. else
  210. if key = KeyEnter! Then //
  211. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  212. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  213. Return 1
  214. end If
  215. end if
  216. end if
  217. end event
  218. event dw_uc::buttonclicked;IF NOT dw_edit_mode THEN RETURN
  219. Long uc_row
  220. s_subject s_rt_subject
  221. IF dwo.Name = 'b_subid' THEN
  222. uc_row = dw_uc.GetRow()
  223. IF uc_row <= 0 THEN
  224. MessageBox('系统提示','请选定当前目标固定资产!')
  225. RETURN
  226. END IF
  227. OPEN(w_subjectdef_edit)
  228. s_rt_subject = Message.PowerObjectParm
  229. IF s_rt_subject.subid = '' THEN RETURN
  230. dw_uc.SetRedraw(FALSE)
  231. dw_uc.Object.othersubid[uc_row] = s_rt_subject.subid
  232. dw_uc.SetRedraw(TRUE)
  233. END IF
  234. end event
  235. type gb_2 from w_publ_1ton_share_detail`gb_2 within w_asset_clear
  236. end type
  237. type dw_child from w_publ_1ton_share_detail`dw_child within w_asset_clear
  238. integer y = 1072
  239. integer width = 3547
  240. integer height = 1096
  241. string title = "资产减少明细"
  242. string dataobject = "dw_assetclear_index"
  243. end type
  244. event dw_child::dwnkey;PARENT.TriggerEvent('user_key')
  245. String ls_assetcardcode,ls_assetcardname
  246. Long ll_assetcardid
  247. Long child_row
  248. IF dw_edit_mode THEN
  249. IF KeyDown(Keydownarrow!) THEN
  250. Long li_row
  251. IF dw_child.GetRow() = dw_child.RowCount() THEN
  252. PARENT.TriggerEvent("insert_childrow")
  253. END IF
  254. ELSE
  255. IF KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN
  256. IF dw_child.GetColumnName() = 'cw_assetcard_assetcardcode' THEN
  257. dw_child.AcceptText()
  258. child_row = dw_child.GetRow()
  259. ls_assetcardcode = dw_child.Object.cw_assetcard_assetcardcode[child_row]
  260. SELECT assetcardname,assetcardid
  261. INTO :ls_assetcardname,:ll_assetcardid
  262. FROM cw_assetcard
  263. WHERE assetcardcode = :ls_assetcardcode
  264. AND accsetid = :sys_accsetid;
  265. IF sqlca.SQLCode <> 0 THEN
  266. PARENT.TriggerEvent('ue_f8')
  267. RETURN 1
  268. END IF
  269. dw_child.Object.cw_astclear_assetcardid[child_row] = ll_assetcardid
  270. dw_child.Object.cw_assetcard_assetcardname[child_row] = ls_assetcardname
  271. dw_child.Object.cw_assetcard_assetcardcode[child_row] = ls_assetcardcode
  272. IF Key = KeyEnter! THEN
  273. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  274. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  275. RETURN 1
  276. END IF
  277. ELSEIF dw_child.GetColumnName( ) = 'cw_astclear_dscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN
  278. PARENT.TriggerEvent("insert_childrow")
  279. RETURN 1
  280. ELSE
  281. IF Key = KeyEnter! THEN
  282. keybd_event ( 9, 0, 0 , 0 ) // 按下tab
  283. keybd_event ( 9, 0, 2, 0 ) // 释放tab
  284. RETURN 1
  285. END IF
  286. END IF
  287. END IF
  288. END IF
  289. END IF
  290. end event
  291. event dw_child::doubleclicked;dw_child.accepttext()
  292. if dw_edit_mode and row > 0 then
  293. parent.triggerevent('ue_f8')
  294. end if
  295. end event
  296. type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_asset_clear
  297. boolean visible = false
  298. integer x = 2089
  299. integer y = 552
  300. boolean enabled = false
  301. end type
  302. type cb_print from w_publ_1ton_share_detail`cb_print within w_asset_clear
  303. boolean visible = false
  304. integer x = 2661
  305. boolean enabled = false
  306. end type
  307. type cb_add from w_publ_1ton_share_detail`cb_add within w_asset_clear
  308. end type
  309. event cb_add::clicked;IF Not f_power_ind(1942,sys_msg_pow) THEN
  310. MessageBox(publ_operator,'你没有使用权限!')
  311. RETURN
  312. END IF
  313. String arg_msg = ''
  314. Long uc_row,i
  315. IF dw_edit_mode THEN
  316. dw_uc.AcceptText()
  317. uc_row = dw_pageretr.GetRow()
  318. IF uc_row <= 0 THEN
  319. MessageBox('系统提示','请选定当前目标固定资产清理单据!')
  320. RETURN
  321. END IF
  322. IF NOT if_credence THEN
  323. MessageBox (publ_operator,"相应的记帐凭证还没有完成,请先单击'记帐凭证'将其完成")
  324. RETURN
  325. END IF
  326. IF cur_editfocus = 2 THEN //修改
  327. //**删除旧凭证
  328. IF new_credid > 0 THEN
  329. IF uo_cred.del(1,0,old_credid,arg_msg,FALSE) = 0 THEN
  330. MessageBox(publ_operator,arg_msg)
  331. RETURN
  332. END IF
  333. END IF
  334. END IF
  335. uo_clear.billdate = dw_uc.Object.billdate[uc_row]
  336. uo_clear.memo = Trim(dw_uc.Object.memo[uc_row])
  337. uo_clear.relcode = Trim(dw_uc.Object.relcode[uc_row])
  338. uo_clear.dscrp = Trim(dw_uc.Object.dscrp[uc_row])
  339. uo_clear.othersubid = Trim(dw_uc.Object.othersubid[uc_row])
  340. dw_uc.Object.credid[uc_row] = new_credid
  341. dw_uc.AcceptText()
  342. uo_clear.credid = dw_uc.Object.credid[uc_row]
  343. FOR i = 1 TO dw_child.RowCount()
  344. IF uo_clear.acceptmx(dw_child.Object.cw_astclear_assetcardid[i],&
  345. dw_child.Object.cw_astclear_incrdecid[i],&
  346. dw_child.Object.cw_astclear_earing[i],&
  347. dw_child.Object.cw_astclear_payout[i],&
  348. arg_msg,&
  349. dw_child.Object.cw_astclear_dscrp[i]) = 0 THEN
  350. MessageBox('Error!',arg_msg)
  351. RETURN
  352. END IF
  353. NEXT
  354. //2.更新清理标记
  355. FOR i = 1 TO dw_child.RowCount()
  356. IF uo_assettcard.update_clearflag(dw_child.Object.cw_astclear_assetcardid[i],1,arg_msg,FALSE) = 0 THEN
  357. MessageBox('Error!',arg_msg)
  358. RETURN
  359. END IF
  360. NEXT
  361. IF uo_clear.Save(new_astclearid,arg_msg,TRUE) = 0 THEN
  362. MessageBox(publ_operator,arg_msg)
  363. RETURN
  364. END IF
  365. MessageBox(publ_operator,'保存操作成功!')
  366. if_credence = FALSE
  367. new_astclearid = 0
  368. new_credid = 0
  369. old_credid = 0
  370. dw_uc.Object.accsetid[uc_row] = sys_accsetid
  371. dw_uc.Object.astclearid[uc_row] = uo_clear.astclearid
  372. dw_pageretr.SelectRow(0,FALSE)
  373. dw_pageretr.SelectRow(uc_row,TRUE)
  374. ELSE
  375. IF uo_clear.newbegin() = 0 THEN
  376. MessageBox('Error!','Error!')
  377. RETURN
  378. END IF
  379. END IF
  380. CALL SUPER::Clicked
  381. IF dw_edit_mode THEN
  382. cur_editfocus = 1
  383. ELSE
  384. cur_editfocus = 0
  385. END IF
  386. //read ini
  387. IF dw_edit_mode THEN
  388. PARENT.TriggerEvent("insert_childrow")
  389. dw_uc.SetRedraw(FALSE)
  390. datetime ls_creddate
  391. ls_creddate = f_rst_mon_1st(3,sys_curyearmon)
  392. dw_uc.Object.billdate[dw_uc.getrow()] = ls_creddate
  393. dw_uc.SetColumn("billdate")
  394. dw_uc.SetRedraw(TRUE)
  395. ELSE
  396. PARENT.TriggerEvent("retrieve_childdw")
  397. END IF
  398. //
  399. THIS.TriggerEvent('refresh_interface')
  400. end event
  401. type cb_edit from w_publ_1ton_share_detail`cb_edit within w_asset_clear
  402. end type
  403. event cb_edit::clicked;IF Not f_power_ind(1942,sys_msg_pow) THEN
  404. MessageBox(publ_operator,'你没有使用权限!')
  405. RETURN
  406. END IF
  407. String arg_msg = ''
  408. Long uc_row
  409. Long ls_astclearid
  410. Long ls_credid,ll_ref_credid
  411. Int ls_postflag
  412. Long ll_assetcardid,i
  413. Boolean if_modify = FALSE
  414. uc_row = dw_pageretr.GetRow()
  415. IF uc_row <= 0 THEN
  416. MessageBox('系统提示','请选定当前目标固定资产!')
  417. RETURN
  418. END IF
  419. ls_astclearid = dw_uc.Object.astclearid[uc_row]
  420. ls_credid = dw_uc.Object.credid[uc_row]
  421. IF NOT dw_edit_mode THEN
  422. //查找相应凭证
  423. IF uo_cred.get_asset_credinfo(202,ls_astclearid,0,ll_ref_credid,ls_postflag,arg_msg) = 0 THEN
  424. MessageBox(publ_operator,arg_msg)
  425. RETURN
  426. END IF
  427. IF ls_postflag = 1 THEN
  428. IF MessageBox ("IF","该固定资产清理单据对应的记帐凭证已登帐,或已计提折旧,有关的折旧要素将不能修改,是否继续?",Question!,YesNo! ) = 2 THEN
  429. RETURN
  430. END IF
  431. END IF
  432. MessageBox(String(ls_credid),ll_ref_credid)
  433. IF ls_credid <> ll_ref_credid THEN
  434. MessageBox(publ_operator,'该相关记帐凭证不正确,不能被修改!')
  435. RETURN
  436. END IF
  437. //清除标记
  438. FOR i = 1 TO dw_child.RowCount()
  439. ll_assetcardid = dw_child.Object.cw_astclear_assetcardid[i]
  440. old_mxt++
  441. old_assetcardid[old_mxt] = ll_assetcardid
  442. IF uo_assettcard.update_clearflag(ll_assetcardid,0,arg_msg,FALSE) = 0 THEN
  443. MessageBox('Error!',arg_msg)
  444. RETURN
  445. END IF
  446. NEXT
  447. old_credid = ls_credid
  448. IF uo_clear.updatebegin(dw_uc.Object.astclearid[uc_row],arg_msg) = 0 THEN
  449. MessageBox('Error!',arg_msg)
  450. RETURN
  451. END IF
  452. ELSE
  453. IF MessageBox ("IF","是否确定要放弃保存当前单据?",Question!,YesNo! ) = 2 THEN RETURN
  454. END IF
  455. dw_edit_mode = NOT dw_edit_mode
  456. wf_refresh_interface()
  457. IF dw_edit_mode THEN
  458. cur_editfocus = 2
  459. dw_uc.SetFocus()
  460. dw_uc.SetColumn("billdate")
  461. ELSE
  462. PARENT.TriggerEvent('retrieve_pageretr')
  463. cur_editfocus = 0
  464. if_credence = FALSE
  465. //更新原来标记
  466. IF cur_editfocus = 2 THEN
  467. FOR i = 1 TO old_mxt
  468. ll_assetcardid = old_assetcardid[i]
  469. IF uo_assettcard.update_clearflag(ll_assetcardid,1,arg_msg,FALSE) = 0 THEN
  470. MessageBox('Error!',arg_msg)
  471. RETURN
  472. END IF
  473. if_modify = TRUE
  474. NEXT
  475. END IF
  476. //如果放弃删除凭证
  477. IF new_credid > 0 THEN
  478. IF uo_cred.del(1,0,new_credid,arg_msg,FALSE) = 0 THEN
  479. MessageBox(publ_operator,arg_msg)
  480. RETURN
  481. END IF
  482. if_modify = TRUE
  483. END IF
  484. IF if_modify THEN
  485. COMMIT;
  486. END IF
  487. new_astclearid = 0
  488. old_credid = 0
  489. new_credid = 0
  490. old_mxt = 0
  491. END IF
  492. end event
  493. type cb_delet from w_publ_1ton_share_detail`cb_delet within w_asset_clear
  494. end type
  495. event cb_delet::clicked;call super::clicked;IF Not f_power_ind(1942,sys_msg_pow) THEN
  496. MessageBox(publ_operator,'你没有使用权限!')
  497. RETURN
  498. END IF
  499. IF dw_edit_mode THEN RETURN
  500. IF MessageBox ("IF","是否确定要删除当前固定资产清理吗?",Question!,YesNo! ) = 2 THEN RETURN
  501. String arg_msg = ''
  502. Long uc_row,cnt
  503. Long ls_astclearid
  504. Long ls_credid,ll_ref_credid
  505. Int ls_postflag
  506. Long ll_assetcardid,i
  507. uc_row = dw_pageretr.GetRow()
  508. IF uc_row <= 0 THEN
  509. MessageBox('系统提示','请先选择单据再删除!')
  510. RETURN
  511. END IF
  512. ls_astclearid = dw_uc.Object.astclearid[uc_row]
  513. ls_credid = dw_uc.Object.credid[uc_row]
  514. //1.检查对应凭证是否已登帐
  515. IF uo_cred.get_asset_credinfo(202,ls_astclearid,0,ll_ref_credid,ls_postflag,arg_msg) = 0 THEN
  516. IF sys_power_issuper AND sys_option_super_del_asset = 1 THEN
  517. GOTO del_
  518. END IF
  519. MessageBox('提示',arg_msg)
  520. RETURN
  521. END IF
  522. IF ll_ref_credid <> ll_ref_credid THEN
  523. MessageBox('提示','该相关记帐凭证不正确,不能被删除!')
  524. RETURN
  525. END IF
  526. IF ls_postflag = 1 THEN
  527. MessageBox('提示','该相关记帐凭证已登帐,不能被删除!')
  528. RETURN
  529. END IF
  530. //2.删除旧凭证
  531. IF uo_cred.del(1,0,ls_credid,arg_msg,FALSE) = 0 THEN
  532. MessageBox('提示',arg_msg)
  533. RETURN
  534. END IF
  535. del_:
  536. //3.更新清理标记
  537. FOR i = 1 TO dw_child.RowCount()
  538. ll_assetcardid = dw_child.Object.cw_astclear_assetcardid[i]
  539. IF uo_assettcard.update_clearflag(ll_assetcardid,0,arg_msg,FALSE) = 0 THEN
  540. MessageBox('提示',arg_msg)
  541. RETURN
  542. END IF
  543. NEXT
  544. IF uo_clear.del(ls_astclearid,arg_msg,TRUE) = 0 THEN
  545. MessageBox('提示',arg_msg)
  546. ELSE
  547. MessageBox('提示','删除清理资产单据'+String(dw_uc.Object.relcode[uc_row])+'成功!')
  548. dw_uc.DeleteRow(uc_row)
  549. dw_uc.PostEvent(RowFocusChanged!)
  550. END IF
  551. end event
  552. type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_asset_clear
  553. boolean visible = false
  554. integer x = 2807
  555. integer y = 488
  556. boolean enabled = false
  557. end type
  558. type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_asset_clear
  559. boolean visible = false
  560. integer x = 2583
  561. integer y = 688
  562. end type
  563. type cb_xm from w_publ_1ton_share_detail`cb_xm within w_asset_clear
  564. integer x = 1111
  565. end type
  566. type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_asset_clear
  567. end type
  568. type cb_xls from w_publ_1ton_share_detail`cb_xls within w_asset_clear
  569. boolean visible = false
  570. integer x = 2281
  571. integer y = 552
  572. end type
  573. type cb_help from w_publ_1ton_share_detail`cb_help within w_asset_clear
  574. boolean visible = false
  575. integer x = 2606
  576. integer y = 528
  577. end type
  578. type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_asset_clear
  579. boolean visible = false
  580. integer x = 2450
  581. integer y = 364
  582. boolean enabled = false
  583. end type
  584. type p_msg from w_publ_1ton_share_detail`p_msg within w_asset_clear
  585. end type
  586. type p_help from w_publ_1ton_share_detail`p_help within w_asset_clear
  587. end type
  588. type p_encl from w_publ_1ton_share_detail`p_encl within w_asset_clear
  589. end type
  590. type p_other from w_publ_1ton_share_detail`p_other within w_asset_clear
  591. end type
  592. type gb_3 from w_publ_1ton_share_detail`gb_3 within w_asset_clear
  593. end type
  594. type ln_bar from w_publ_1ton_share_detail`ln_bar within w_asset_clear
  595. end type
  596. type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_asset_clear
  597. end type
  598. type r_bar from w_publ_1ton_share_detail`r_bar within w_asset_clear
  599. end type
  600. type ln_1 from w_publ_1ton_share_detail`ln_1 within w_asset_clear
  601. end type
  602. type ln_2 from w_publ_1ton_share_detail`ln_2 within w_asset_clear
  603. end type
  604. type cb_credence from uo_imflatbutton within w_asset_clear
  605. integer x = 837
  606. integer width = 274
  607. integer height = 172
  608. integer taborder = 40
  609. boolean bringtotop = true
  610. string text = "记帐凭证"
  611. string normalpicname = "update.bmp"
  612. integer picsize = 16
  613. toolbaralignment pic_align = alignattop!
  614. boolean border = false
  615. end type
  616. event clicked;IF NOT dw_edit_mode THEN RETURN
  617. Long li_row,i_row,i
  618. Decimal ls_rawvalue,ls_sum_rawvalue
  619. Decimal ld_rawvalue,ld_usedvalue
  620. Decimal ls_usedvalue,ls_sum_usedvalue
  621. DateTime null_date,ldt_startdate
  622. datastore credencemx_ds
  623. Blob ds_blob
  624. Long ls_astclearid
  625. Long ls_credid
  626. Long ls_assetcardid
  627. Int ls_postflag
  628. String ls_assetcardcode
  629. String arg_msg
  630. String ls_assetsubid,ls_deprsubid
  631. SetNull(null_date)
  632. li_row = dw_uc.GetRow()
  633. IF li_row <= 0 THEN RETURN
  634. s_edit_index_tran s_tran_mx //翻页功能窗口 传递参数使用
  635. s_tran_mx.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  636. s_tran_mx.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  637. s_tran_mx.arg_pkid = 0 //目标定位PKID (备用)
  638. s_tran_mx.arg_string_code = String(sys_curyearmon) //查询列部分内容,用于初步筛选
  639. credencemx_ds = CREATE datastore
  640. credencemx_ds.DataObject = "ds_credencemx"
  641. credencemx_ds.SetTransObject(sqlca)
  642. dw_uc.AcceptText()
  643. dw_child.AcceptText()
  644. ls_astclearid = dw_uc.Object.astclearid[li_row]
  645. ls_credid = dw_uc.Object.credid[li_row]
  646. IF ls_astclearid = 0 THEN
  647. ls_astclearid = f_sys_scidentity(sys_accsetid,"cw_astclear","astclearid",arg_msg,TRUE,id_sqlca)
  648. IF ls_astclearid <= 0 THEN
  649. MessageBox(publ_operator,arg_msg)
  650. RETURN
  651. END IF
  652. END IF
  653. FOR i = 1 TO dw_child.RowCount()
  654. ls_assetcardid = dw_child.Object.cw_astclear_assetcardid[i]
  655. ls_assetcardcode = dw_child.Object.cw_assetcard_assetcardcode[i]
  656. IF ls_assetcardid = 0 THEN CONTINUE
  657. //查固定资产信息
  658. SELECT assetsubid,rawvalue,startdate,usedvalue,deprsubid
  659. INTO :ls_assetsubid,:ld_rawvalue,:ldt_startdate,:ld_usedvalue,:ls_deprsubid
  660. FROM cw_assetcard
  661. WHERE accsetid = :sys_accsetid
  662. AND assetcardid = :ls_assetcardid;
  663. IF sqlca.SQLCode <> 0 THEN
  664. MessageBox(publ_operator,'明细行:'+String(i)+',查询固定资产'+ls_assetcardcode+'对应固定资产科目失败,'+sqlca.SQLErrText)
  665. RETURN
  666. END IF
  667. IF ls_assetsubid = '' THEN
  668. MessageBox(publ_operator,'明细行:'+String(i)+',查询固定资产'+ls_assetcardcode+'未设置对应固定资产科目,请检查')
  669. RETURN
  670. END IF
  671. IF ls_deprsubid = '' THEN
  672. MessageBox(publ_operator,'明细行:'+String(i)+',查询固定资产'+ls_assetcardcode+'未设置对应累计折旧科目,请检查')
  673. RETURN
  674. END IF
  675. IF DaysAfter(Date(ldt_startdate),Today()) = 1 THEN
  676. ls_rawvalue = ld_rawvalue
  677. ls_usedvalue = ld_usedvalue
  678. ELSE
  679. //**查累计折旧
  680. SELECT bdprcredit + dprcredit,bastdebit INTO :ls_usedvalue,:ls_rawvalue
  681. FROM cw_astbalance
  682. WHERE accsetid = :sys_accsetid
  683. AND yearmon = :sys_curyearmon
  684. AND assetcardid = :ls_assetcardid;
  685. IF sqlca.SQLCode <> 0 THEN
  686. MessageBox(publ_operator,'查询固定资产'+ls_assetcardcode+'累计折旧失败')
  687. RETURN
  688. END IF
  689. END IF
  690. //************************
  691. IF ls_rawvalue > 0 THEN
  692. i_row = credencemx_ds.InsertRow(0)
  693. credencemx_ds.Object.fuluno[i_row] = i_row
  694. credencemx_ds.Object.subid[i_row] = ls_assetsubid
  695. credencemx_ds.Object.brief[i_row] = '清理' + ls_assetcardcode
  696. credencemx_ds.Object.rate[i_row] = 0.00
  697. credencemx_ds.Object.rawdebit[i_row] = 0.00
  698. credencemx_ds.Object.rawcredit[i_row] = 0.00
  699. credencemx_ds.Object.debit[i_row] = 0.00
  700. credencemx_ds.Object.credit[i_row] = ls_rawvalue
  701. credencemx_ds.Object.amount[i_row] = 0.00
  702. credencemx_ds.Object.price[i_row] = 0.00
  703. credencemx_ds.Object.deptid[i_row] = 0
  704. credencemx_ds.Object.itemid[i_row] = 0
  705. credencemx_ds.Object.READONLY[i_row] = 1
  706. credencemx_ds.Object.billdate[i_row] = null_date
  707. credencemx_ds.Object.billid[i_row] = 0
  708. credencemx_ds.Object.billno[i_row] = ''
  709. credencemx_ds.Object.cropbillid[i_row] = 0
  710. END IF
  711. ls_sum_rawvalue = ls_sum_rawvalue + ls_rawvalue
  712. ls_sum_usedvalue = ls_sum_usedvalue + ls_usedvalue
  713. IF ls_usedvalue > 0 THEN
  714. i_row = credencemx_ds.InsertRow(0)
  715. credencemx_ds.Object.fuluno[i_row] = i_row
  716. credencemx_ds.Object.subid[i_row] = ls_deprsubid
  717. credencemx_ds.Object.brief[i_row] = '累计折旧' + ls_assetcardcode
  718. credencemx_ds.Object.rate[i_row] = 0.00
  719. credencemx_ds.Object.rawdebit[i_row] = 0.00
  720. credencemx_ds.Object.rawcredit[i_row] = 0.00
  721. credencemx_ds.Object.debit[i_row] = ls_usedvalue
  722. credencemx_ds.Object.credit[i_row] = 0.00
  723. credencemx_ds.Object.amount[i_row] = 0.00
  724. credencemx_ds.Object.price[i_row] = 0.00
  725. credencemx_ds.Object.deptid[i_row] = 0
  726. credencemx_ds.Object.itemid[i_row] = 0
  727. credencemx_ds.Object.READONLY[i_row] = 1
  728. credencemx_ds.Object.billdate[i_row] = null_date
  729. credencemx_ds.Object.billid[i_row] = 0
  730. credencemx_ds.Object.billno[i_row] = ''
  731. credencemx_ds.Object.cropbillid[i_row] = 0
  732. END IF
  733. NEXT
  734. String ls_othersubid,ls_dscrp
  735. Long cnt
  736. ls_othersubid = dw_uc.Object.othersubid[li_row]
  737. ls_dscrp = dw_uc.Object.dscrp[li_row]
  738. IF ls_othersubid <> '' THEN
  739. SELECT count(*) INTO :cnt
  740. FROM cw_subject
  741. WHERE accsetid = :sys_accsetid
  742. AND subid = :ls_othersubid;
  743. IF sqlca.SQLCode <> 0 OR cnt <> 1 THEN
  744. MessageBox(publ_operator,'查询对方科目:'+ls_othersubid+'资料失败,可能资料不存在')
  745. RETURN
  746. END IF
  747. i_row = credencemx_ds.InsertRow(0)
  748. credencemx_ds.Object.fuluno[i_row] = i_row
  749. credencemx_ds.Object.subid[i_row] = ls_othersubid
  750. credencemx_ds.Object.brief[i_row] = ls_dscrp
  751. credencemx_ds.Object.rate[i_row] = 0.00
  752. credencemx_ds.Object.rawdebit[i_row] = 0.00
  753. credencemx_ds.Object.rawcredit[i_row] = 0.00
  754. credencemx_ds.Object.debit[i_row] = 0.00
  755. credencemx_ds.Object.credit[i_row] = 0.00
  756. credencemx_ds.Object.amount[i_row] = 0.00
  757. credencemx_ds.Object.price[i_row] = 0.00
  758. credencemx_ds.Object.deptid[i_row] = 0
  759. credencemx_ds.Object.itemid[i_row] = 0
  760. credencemx_ds.Object.READONLY[i_row] = 0
  761. credencemx_ds.Object.billdate[i_row] = null_date
  762. credencemx_ds.Object.billid[i_row] = 0
  763. credencemx_ds.Object.billno[i_row] = ''
  764. credencemx_ds.Object.cropbillid[i_row] = 0
  765. END IF
  766. credencemx_ds.GetFullState( ds_blob )
  767. s_tran_mx.arg_blobds = ds_blob
  768. s_tran_mx.c_long = 202
  769. s_tran_mx.d_long = ls_astclearid
  770. s_tran_mx.b_datetime = dw_uc.Object.billdate[li_row]
  771. OpenWithParm(w_credence_edit,s_tran_mx)
  772. //**查对应凭证
  773. Long ll_ref_credid
  774. //用202,astclearid查找相应凭证
  775. IF uo_cred.get_asset_credinfo(202,ls_astclearid,ls_credid,ll_ref_credid,ls_postflag,arg_msg) = 0 THEN
  776. MessageBox(publ_operator,arg_msg)
  777. RETURN
  778. END IF
  779. IF ll_ref_credid = 0 THEN
  780. if_credence = FALSE
  781. ELSE
  782. if_credence = TRUE
  783. new_credid = ll_ref_credid
  784. new_astclearid = ls_astclearid
  785. END IF
  786. end event