123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515 |
- $PBExportHeader$w_modify_rate.srw
- forward
- global type w_modify_rate from w_publ_base
- end type
- type cb_1 from uo_imflatbutton within w_modify_rate
- end type
- type dw_1 from datawindow within w_modify_rate
- end type
- type sle_1 from singlelineedit within w_modify_rate
- end type
- type cb_2 from uo_imflatbutton within w_modify_rate
- end type
- type p_1 from picture within w_modify_rate
- end type
- type mle_1 from multilineedit within w_modify_rate
- end type
- type st_1 from statictext within w_modify_rate
- end type
- type st_2 from statictext within w_modify_rate
- end type
- type ddlb_credtype from dropdownlistbox within w_modify_rate
- end type
- end forward
- global type w_modify_rate from w_publ_base
- integer width = 2423
- integer height = 1296
- string title = "期末调汇"
- boolean minbox = false
- long backcolor = 80269524
- cb_1 cb_1
- dw_1 dw_1
- sle_1 sle_1
- cb_2 cb_2
- p_1 p_1
- mle_1 mle_1
- st_1 st_1
- st_2 st_2
- ddlb_credtype ddlb_credtype
- end type
- global w_modify_rate w_modify_rate
- on w_modify_rate.create
- int iCurrent
- call super::create
- this.cb_1=create cb_1
- this.dw_1=create dw_1
- this.sle_1=create sle_1
- this.cb_2=create cb_2
- this.p_1=create p_1
- this.mle_1=create mle_1
- this.st_1=create st_1
- this.st_2=create st_2
- this.ddlb_credtype=create ddlb_credtype
- iCurrent=UpperBound(this.Control)
- this.Control[iCurrent+1]=this.cb_1
- this.Control[iCurrent+2]=this.dw_1
- this.Control[iCurrent+3]=this.sle_1
- this.Control[iCurrent+4]=this.cb_2
- this.Control[iCurrent+5]=this.p_1
- this.Control[iCurrent+6]=this.mle_1
- this.Control[iCurrent+7]=this.st_1
- this.Control[iCurrent+8]=this.st_2
- this.Control[iCurrent+9]=this.ddlb_credtype
- end on
- on w_modify_rate.destroy
- call super::destroy
- destroy(this.cb_1)
- destroy(this.dw_1)
- destroy(this.sle_1)
- destroy(this.cb_2)
- destroy(this.p_1)
- destroy(this.mle_1)
- destroy(this.st_1)
- destroy(this.st_2)
- destroy(this.ddlb_credtype)
- end on
- event open;call super::open;dw_1.settransobject(sqlca)
- dw_1.retrieve(sys_accsetid)
- end event
- type cb_func from w_publ_base`cb_func within w_modify_rate
- boolean visible = false
- integer x = 165
- integer y = 200
- boolean enabled = false
- end type
- type cb_exit from w_publ_base`cb_exit within w_modify_rate
- integer x = 1893
- integer y = 1048
- string text = "取消"
- end type
- type cb_1 from uo_imflatbutton within w_modify_rate
- integer x = 1893
- integer y = 936
- integer width = 311
- integer height = 96
- integer taborder = 30
- boolean bringtotop = true
- boolean default = true
- string normalpicname = "ok.bmp"
- end type
- event clicked;Long i,j
- Long ll_row
- Long ll_ch_cnt
- Long ll_moneyid
- String ls_subid
- Int li_detailflag
- DateTime null_dt
- String arg_msg
- String ls_subid_f,ls_subid_arr[]
- Decimal ld_rate_arr[],ld_rate_old_arr[],ld_rate_new_arr[]
- Decimal ld_rate_old,ld_rate_new
- String ls_moneyname,ls_moneyname_arr[]
- Long ll_mx
- Int li_credtype
- String tmp_credtype
- li_credtype = f_check_credtype(sys_accsetid)
- IF li_credtype = 0 THEN
- MessageBox(publ_operator,'查询凭证字数目失败')
- RETURN
- ELSEIF li_credtype = 2 THEN
- tmp_credtype = Trim(ddlb_credtype.Text)
- IF tmp_credtype = '' THEN
- MessageBox(publ_operator,'请选择凭证字')
- RETURN
- END IF
- END IF
- uo_credence uo_cred
- uo_cred = CREATE uo_credence
- datastore credmx_ds
- credmx_ds = CREATE datastore
- credmx_ds.DataObject = "ds_credencemx"
- credmx_ds.SetTransObject(sqlca)
- SetNull(null_dt)
- dw_1.AcceptText()
- FOR i = 1 TO dw_1.RowCount()
- IF dw_1.Object.rate[i] <> dw_1.Object.newrate[i] THEN
- ll_ch_cnt++
- END IF
- NEXT
- IF ll_ch_cnt = 0 THEN RETURN
- ls_subid = Trim(sle_1.Text)
- IF ls_subid = '' THEN
- MessageBox('提示','请选择汇兑损益科目')
- RETURN
- END IF
- SELECT detailflag INTO :li_detailflag
- FROM cw_subject
- WHERE accsetid = :sys_accsetid
- AND subid = :ls_subid;
- IF sqlca.SQLCode = -1 THEN
- MessageBox('提示','查询科目:'+ls_subid+',失败,'+sqlca.SQLErrText)
- RETURN
- ELSEIF sqlca.SQLCode = 100 THEN
- MessageBox('提示','科目:'+ls_subid+',资料不存在,请检查')
- RETURN
- END IF
- IF li_detailflag = 0 THEN
- MessageBox('提示','科目:'+ls_subid+',不是明细科目,不能操作')
- RETURN
- END IF
- FOR i = 1 TO dw_1.RowCount()
-
- IF dw_1.Object.rate[i] = dw_1.Object.newrate[i] THEN CONTINUE
-
- ll_moneyid = dw_1.Object.moneyid[i]
- ld_rate_old = dw_1.Object.newrate[i]
- ld_rate_new = dw_1.Object.rate[i]
- ls_moneyname = dw_1.Object.Name[i]
-
- DECLARE cur_sub CURSOR FOR
- SELECT cw_subject.subid
- FROM cw_subject
- WHERE accsetid = :sys_accsetid
- AND moneyid = :ll_moneyid
- AND detailflag = 1;
- OPEN cur_sub;
- FETCH cur_sub INTO :ls_subid_f;
- DO WHILE sqlca.SQLCode = 0
- ll_mx++
- ls_subid_arr[ll_mx] = ls_subid_f
- ld_rate_arr[ll_mx] = ld_rate_new - ld_rate_old
- ld_rate_new_arr[ll_mx] = ld_rate_new
- ld_rate_old_arr[ll_mx] = ld_rate_old
- ls_moneyname_arr[ll_mx] = ls_moneyname
-
- FETCH cur_sub INTO :ls_subid_f;
- LOOP
- CLOSE cur_sub;
- NEXT
- IF ll_mx = 0 THEN
- MessageBox('提示','外币没有核算科目,操作取消,请检查')
- RETURN
- END IF
- Decimal ld_edebit,ld_ecredit,ld_balance_1,ld_balance_2
- Decimal ld_sum_balance,ld_balance
- Int li_dcflag
- FOR j = 1 TO ll_mx
- ld_edebit = 0
- ld_ecredit = 0
- ld_balance_1 = 0
- ld_balance_2 = 0
- li_dcflag = 0
-
- SELECT dcflag
- INTO :li_dcflag
- FROM cw_subject
- WHERE cw_subject.accsetid = :sys_accsetid
- AND cw_subject.subid = :ls_subid_arr[j];
- IF sqlca.SQLCode <> 0 THEN
- MessageBox('提示','查询科目:'+ls_subid_arr[j]+',余额方向失败,'+sqlca.SQLErrText)
- RETURN
- END IF
-
- SELECT cw_Balance.erawdebit,
- cw_Balance.erawcredit
- INTO :ld_edebit,
- :ld_ecredit
- FROM cw_Balance
- WHERE cw_Balance.accsetid = :sys_accsetid
- AND cw_Balance.YearMon = :sys_curyearmon
- AND cw_Balance.subid = :ls_subid_arr[j];
- IF sqlca.SQLCode = -1 THEN
- MessageBox('提示','查询科目:'+ls_subid_arr[j]+',期末余额失败,'+sqlca.SQLErrText)
- RETURN
- ELSEIF sqlca.SQLCode = 100 THEN
- CONTINUE
- END IF
-
- IF ld_edebit = 0 AND ld_ecredit = 0 THEN CONTINUE
-
- IF li_dcflag = 1 THEN
- ld_balance_1 = round((ld_edebit - ld_ecredit) * ld_rate_arr[j],2)
- ld_balance_2 = 0
- ld_balance = ld_edebit - ld_ecredit
- ELSE
- ld_balance_1 = 0
- ld_balance_2 = round((ld_ecredit - ld_edebit) * ld_rate_arr[j],2)
- ld_balance = ld_ecredit - ld_edebit
- END IF
-
- ld_sum_balance = ld_sum_balance + ld_balance_1 - ld_balance_2
-
- ll_row = credmx_ds.InsertRow(0)
- credmx_ds.Object.fuluno[ll_row] = ll_row
- credmx_ds.Object.subid[ll_row] = ls_subid_arr[j]
- credmx_ds.Object.brief[ll_row] = '调汇-'+ls_moneyname_arr[j]+',从:'+String(ld_rate_old_arr[j],'#0.00###')+'变成:'+String(ld_rate_new_arr[j],'#0.00###')+',调汇前原币余额:'+String(ld_balance,'#0.00###')
- credmx_ds.Object.rate[ll_row] = ld_rate_new_arr[j]
- credmx_ds.Object.rawdebit[ll_row] = 0.00
- credmx_ds.Object.rawcredit[ll_row] = 0.00
- credmx_ds.Object.debit[ll_row] = ld_balance_1
- credmx_ds.Object.credit[ll_row] = ld_balance_2
- credmx_ds.Object.amount[ll_row] = 0.00
- credmx_ds.Object.price[ll_row] = 0.00
- credmx_ds.Object.deptid[ll_row] = 0
- credmx_ds.Object.itemid[ll_row] = 0
- credmx_ds.Object.READONLY[ll_row] = 0
- credmx_ds.Object.billdate[ll_row] = null_dt
- credmx_ds.Object.billid[ll_row] = 0
- credmx_ds.Object.billno[ll_row] = ''
- credmx_ds.Object.cropbillid[ll_row] = 0
- NEXT
- credmx_ds.AcceptText()
- IF credmx_ds.RowCount() = 0 THEN
- MessageBox('提示','没有可操作科目,操作取消,请检查')
- RETURN
- END IF
- ll_row = credmx_ds.InsertRow(0)
- credmx_ds.Object.fuluno[ll_row] = ll_row
- credmx_ds.Object.subid[ll_row] = ls_subid
- credmx_ds.Object.brief[ll_row] = '调汇'
- credmx_ds.Object.rate[ll_row] = 0.00
- credmx_ds.Object.rawdebit[ll_row] = 0.00
- credmx_ds.Object.rawcredit[ll_row] = 0.00
- credmx_ds.Object.debit[ll_row] = 0
- credmx_ds.Object.credit[ll_row] = ld_sum_balance
- credmx_ds.Object.amount[ll_row] = 0.00
- credmx_ds.Object.price[ll_row] = 0.00
- credmx_ds.Object.deptid[ll_row] = 0
- credmx_ds.Object.itemid[ll_row] = 0
- credmx_ds.Object.READONLY[ll_row] = 0
- credmx_ds.Object.billdate[ll_row] = null_dt
- credmx_ds.Object.billid[ll_row] = 0
- credmx_ds.Object.billno[ll_row] = ''
- credmx_ds.Object.cropbillid[ll_row] = 0
- //生成凭证
- IF uo_cred.newbegin() = 0 THEN
- MessageBox('提示',arg_msg)
- RETURN
- END IF
- IF String(credmx_ds.Object.sum_debit[1],'###0.00') <> String(credmx_ds.Object.sum_credit[1],'###0.00') THEN
- MessageBox('提示','借、贷方金额不等!')
- RETURN
- END IF
- uo_cred.subaccsetid = 0 //子帐ID
- uo_cred.credno = uo_cred.get_new_credno(0,tmp_credtype,sys_curyearmon,arg_msg) // 编号
- uo_cred.creddate = f_rst_mon_1st(3,sys_curyearmon) // 日期
- uo_cred.billnumber = 0 //附件
- uo_cred.credtype = tmp_credtype //凭证字
- uo_cred.Readtype = 0
- uo_cred.relevantbillid = sys_curyearmon
- uo_cred.cmonth = sys_curyearmon
- uo_cred.ifauto = 0
- credmx_ds.AcceptText()
- FOR i = 1 TO credmx_ds.RowCount()
- IF uo_cred.acceptmx(credmx_ds.Object.no[i],credmx_ds.Object.subid[i],&
- credmx_ds.Object.brief[i],credmx_ds.Object.rate[i],&
- credmx_ds.Object.rawdebit[i],credmx_ds.Object.rawcredit[i],&
- credmx_ds.Object.debit[i],credmx_ds.Object.credit[i],&
- credmx_ds.Object.amount[i],credmx_ds.Object.price[i],&
- credmx_ds.Object.deptid[i],credmx_ds.Object.itemid[i],&
- credmx_ds.Object.billdate[i],credmx_ds.Object.billid[i],&
- credmx_ds.Object.billno[i],credmx_ds.Object.cropbillid[i],&
- credmx_ds.Object.READONLY[i],0,0,0,arg_msg) = 0 THEN
- MessageBox('提示',arg_msg)
- RETURN
- END IF
- NEXT
- IF uo_cred.Save('机制',arg_msg,FALSE) = 0 THEN
- MessageBox('提示',arg_msg)
- RETURN
- END IF
- IF dw_1.UPDATE() = -1 THEN
- ROLLBACK;
- MessageBox ('提示',"保存新汇率操作失败!",Exclamation!,OK!)
- RETURN
- ELSE
- COMMIT;
- END IF
- MessageBox('提示','调汇成功,并产生一张记帐凭证。')
- end event
- type dw_1 from datawindow within w_modify_rate
- integer x = 603
- integer y = 192
- integer width = 1705
- integer height = 600
- integer taborder = 20
- boolean bringtotop = true
- string dataobject = "dw_modify_rate"
- boolean livescroll = true
- borderstyle borderstyle = stylelowered!
- end type
- type sle_1 from singlelineedit within w_modify_rate
- integer x = 603
- integer y = 1048
- integer width = 882
- integer height = 92
- integer taborder = 50
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- boolean autohscroll = false
- boolean displayonly = true
- borderstyle borderstyle = stylelowered!
- end type
- type cb_2 from uo_imflatbutton within w_modify_rate
- integer x = 1522
- integer y = 1064
- integer width = 114
- integer height = 80
- integer taborder = 60
- boolean bringtotop = true
- string text = "..."
- end type
- event clicked;s_subject s_rt_subject
- openwithparm(w_subjectdef_edit,0)
- s_rt_subject=message.powerobjectparm
-
- if s_rt_subject.subid='' then return
-
- sle_1.text=s_rt_subject.subid
-
- end event
- type p_1 from picture within w_modify_rate
- integer x = 37
- integer y = 104
- integer width = 544
- integer height = 836
- boolean bringtotop = true
- boolean originalsize = true
- string picturename = "graphics\modify_rate.bmp"
- boolean border = true
- borderstyle borderstyle = stylelowered!
- boolean focusrectangle = false
- end type
- type mle_1 from multilineedit within w_modify_rate
- integer x = 603
- integer y = 28
- integer width = 1143
- integer height = 164
- integer taborder = 40
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 16711680
- long backcolor = 80269524
- string text = " 以下表中所列汇率与期末汇率是否一致, 如果不一致,在调汇前你需要先修改他们。"
- boolean border = false
- end type
- type st_1 from statictext within w_modify_rate
- integer x = 603
- integer y = 956
- integer width = 594
- integer height = 48
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 700
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 16711680
- long backcolor = 67108864
- string text = "汇兑损益科目代码:"
- alignment alignment = right!
- boolean focusrectangle = false
- end type
- type st_2 from statictext within w_modify_rate
- integer x = 603
- integer y = 856
- integer width = 594
- integer height = 48
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 700
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 16711680
- long backcolor = 67108864
- string text = "凭证字:"
- alignment alignment = right!
- boolean focusrectangle = false
- end type
- type ddlb_credtype from dropdownlistbox within w_modify_rate
- integer x = 1193
- integer y = 836
- integer width = 549
- integer height = 300
- integer taborder = 30
- boolean bringtotop = true
- integer textsize = -9
- integer weight = 700
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- borderstyle borderstyle = stylelowered!
- end type
- event constructor;String ls_credtype
- DECLARE cur_credtype CURSOR FOR
- SELECT cw_Credenceword.Credenceword
- FROM cw_Credenceword
- Where accsetid = :sys_accsetid;
-
- OPEN cur_credtype;
- FETCH cur_credtype INTO :ls_credtype;
- DO WHILE sqlca.SQLCode = 0
- THIS.AddItem(ls_credtype)
- FETCH cur_credtype INTO :ls_credtype;
- LOOP
- CLOSE cur_credtype;
- end event
|