$PBExportHeader$w_rp.srw forward global type w_rp from w_publ_choice end type type cb_1 from uo_imflatbutton within w_rp end type type cb_2 from uo_imflatbutton within w_rp end type type cb_3 from uo_imflatbutton within w_rp end type type cb_4 from uo_imflatbutton within w_rp end type type dw_1 from u_dw_rbtnfilter within w_rp end type type dw_2 from u_dw_rbtnfilter within w_rp end type type cb_5 from uo_imflatbutton within w_rp end type type cb_6 from uo_imflatbutton within w_rp end type type cb_7 from uo_imflatbutton within w_rp end type type cb_ext from uo_imflatbutton within w_rp end type type rb_1 from radiobutton within w_rp end type type rb_2 from radiobutton within w_rp end type type sle_1 from singlelineedit within w_rp end type type mle_1 from multilineedit within w_rp end type type cb_13 from uo_imflatbutton within w_rp end type type cb_8 from uo_imflatbutton within w_rp end type type cb_9 from uo_imflatbutton within w_rp end type type cb_imexport from uo_imflatbutton within w_rp end type type cb_export from uo_imflatbutton within w_rp end type type mle_2 from multilineedit within w_rp end type type gb_1 from groupbox within w_rp end type type ln_3 from line within w_rp end type type s_kh from structure within w_rp end type end forward type s_kh from structure integer l_star integer l_end end type global type w_rp from w_publ_choice integer width = 4119 integer height = 2956 string title = "报表设计" boolean controlmenu = true boolean minbox = true boolean maxbox = true boolean resizable = true windowtype windowtype = main! windowstate windowstate = maximized! cb_1 cb_1 cb_2 cb_2 cb_3 cb_3 cb_4 cb_4 dw_1 dw_1 dw_2 dw_2 cb_5 cb_5 cb_6 cb_6 cb_7 cb_7 cb_ext cb_ext rb_1 rb_1 rb_2 rb_2 sle_1 sle_1 mle_1 mle_1 cb_13 cb_13 cb_8 cb_8 cb_9 cb_9 cb_imexport cb_imexport cb_export cb_export mle_2 mle_2 gb_1 gb_1 ln_3 ln_3 end type global w_rp w_rp type variables string s_col="",s_text="" integer l_row=0 integer rp_dw_row integer rp_rptype long rp_rpid integer left_or_right long rowid long rpid integer rowcode string rowname integer rowtype integer rowcmpltype string Rowformula1 string Rowformula2 end variables forward prototypes public subroutine p_clearmx () public function integer save (ref string arg_msg) public function integer cancel (ref string arg_msg) public function integer acceptmx (long arg_rpid, integer arg_rowcode, string arg_rowname, integer arg_rowtype, integer arg_rowcmpltype, string arg_rowformula1, string arg_rowformula2) public subroutine f_bulid_rp (integer row) public function string of_globalreplace (string as_source, string as_old, string as_new) public function string f_add (integer arg_i, string arg_s) public function string f_minus (integer arg_i, string arg_s) public function integer f_writefile (blob ib_file, string is_filename) public function integer f_get_rpid () public subroutine f_readfile () public subroutine f_zcfzb_text (ref string arg_text) public subroutine f_create_zcfzb () public subroutine f_lrb_text (ref string arg_text) public subroutine f_creat_lrb () public subroutine wf_face () public function string of_globalreplace1 (string as_source, string as_old, string as_new) end prototypes public subroutine p_clearmx (); rowid=0 rpid=0 rowcode=0 rowname="" rowtype=0 rowcmpltype=0 Rowformula1="" Rowformula2="" end subroutine public function integer save (ref string arg_msg);Integer rslt = 1 //rowid = f_sys_scidentity(0,"u_rp_rowdef","rowid",arg_msg,True,sqlca) //数据commit事务) // IF rowid <= 0 THEN // rslt = 0 // GOTO ext // END IF INSERT INTO u_rp_rowdef (rpid, rowcode, rowname, rowtype, rowcmpltype, Rowformula1, Rowformula2 ) VALUES ( :rpid, :rowcode, :rowname, :rowtype, :rowcmpltype, :Rowformula1, :Rowformula2 ) Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF ext: IF rslt = 0 THEN p_clearmx() ROLLBACK Using sqlca; ELSEIF rslt = 1 THEN COMMIT Using sqlca; END IF RETURN rslt end function public function integer cancel (ref string arg_msg);int rslt=1 DELETE From u_rp_rowdef Where u_rp_rowdef.rpid = :rp_rpid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或其它原因导致删除明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF ext: return rslt end function public function integer acceptmx (long arg_rpid, integer arg_rowcode, string arg_rowname, integer arg_rowtype, integer arg_rowcmpltype, string arg_rowformula1, string arg_rowformula2);Int rslt = 1 p_clearmx() if isnull(arg_rpid) then arg_rpid=0 if isnull(arg_rowcode) then arg_rowcode=0 if isnull(arg_rowname) then arg_rowname="" if isnull( arg_rowtype ) then arg_rowtype=0 if isnull(rowcmpltype) then rowcmpltype=0 if isnull(arg_Rowformula1) then arg_Rowformula1="" if isnull(arg_Rowformula2) then arg_Rowformula2="" rpid = arg_rpid rowcode = arg_rowcode rowname = arg_rowname rowtype = arg_rowtype rowcmpltype = arg_rowcmpltype Rowformula1 = arg_Rowformula1 Rowformula2 = arg_Rowformula2 IF rpid = 0 THEN MessageBox("Error","报表id错误") rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN p_clearmx() RETURN rslt end function public subroutine f_bulid_rp (integer row);if row<=0 then return f_get_rpid() cb_5.Enabled = False cb_6.Enabled = False cb_7.Enabled = False cb_8.Enabled = False cb_9.Enabled = False dw_2.Reset() //dw_1.Object.rpid[row] //messagebox("",string("sql_l1.text ='" + dw_1.Object.col1name1[row] + "'")) dw_2.Modify("colname_l_t.text ='" + dw_1.Object.col1name0[row] + "'") dw_2.Modify("sql_l1_t.text ='" + dw_1.Object.col1name1[row] + "'") dw_2.Modify("sql_l2_t.text ='" + dw_1.Object.col1name2[row] + "'") dw_2.Modify("colname_r_t.text='" + dw_1.Object.col2name0[row] + "'") dw_2.Modify("sql_r1_t.text ='" + dw_1.Object.col2name1[row] + "'") dw_2.Modify("sql_r2_t.text ='" + dw_1.Object.col2name2[row] + "'") Integer ll_rowcount,ll_i Integer s_rowcode String s_rowname Integer l_rowtype Integer l_rowcmpltype String s_Rowformula1 String s_Rowformula2 IF dw_1.Object.rptype[row] = 0 THEN dw_2.Modify("colname_r.Visible = 0") dw_2.Modify("sql_r1.Visible =0") dw_2.Modify("sql_r2.Visible = 0") SELECT Max(rowcode) Into :ll_rowcount From u_rp_rowdef Where rpid = :rp_rpid; FOR ll_i = 1 To ll_rowcount dw_2.InsertRow(0) //左 rowname = "" Rowformula1 = "" Rowformula2 = "" SELECT rowname,Rowformula1,Rowformula2 Into :s_rowname,:s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ; dw_2.Object.colname_l[ll_i] = s_rowname dw_2.Object.sql_l1[ll_i] = s_Rowformula1 dw_2.Object.sql_l2[ll_i] = s_Rowformula2 NEXT ELSE dw_2.Modify("colname_r.Visible = 1") dw_2.Modify("sql_r1.Visible =1") dw_2.Modify("sql_r2.Visible = 1") SELECT Max(rowcode) Into :ll_rowcount From u_rp_rowdef Where rpid = :rp_rpid; FOR ll_i = 1 To ll_rowcount dw_2.InsertRow(0) //左 rowname = "" Rowformula1 = "" Rowformula2 = "" SELECT rowname,Rowformula1,Rowformula2 Into :s_rowname,:s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 0 And rowcode = :ll_i ; dw_2.Object.colname_l[ll_i] = s_rowname dw_2.Object.sql_l1[ll_i] = s_Rowformula1 dw_2.Object.sql_l2[ll_i] = s_Rowformula2 //右 rowname = "" Rowformula1 = "" Rowformula2 = "" SELECT rowname,Rowformula1,Rowformula2 Into :s_rowname,:s_Rowformula1,:s_Rowformula2 From u_rp_rowdef Where rpid = :rp_rpid And rowcmpltype = 1 And rowcode = :ll_i ; dw_2.Object.colname_r[ll_i] = s_rowname dw_2.Object.sql_r1[ll_i] = s_Rowformula1 dw_2.Object.sql_r2[ll_i] = s_Rowformula2 NEXT END IF end subroutine public function string of_globalreplace (string as_source, string as_old, string as_new);long ll_oldlen, ll_newlen, ll_pos ll_pos = Pos(as_source,as_old) IF ll_pos > 0 Then ll_oldlen = Len(as_old) ll_newlen = Len(as_new) as_source = Replace(as_source,ll_pos,ll_oldlen,as_new) ll_pos = Pos(as_source,as_old,ll_pos + ll_newlen) END IF RETURN as_source end function public function string f_add (integer arg_i, string arg_s);String s_rslt,s_s,s_s1,ls_s,ls_e String ss1,ss2 String s1,s2 Integer i,j FOR i = 1 To Len(arg_s) ls_s = Mid(arg_s,i,1) IF ls_s = "[" THEN FOR j = i To Len(arg_s) ls_e = Mid(arg_s,j,1) IF ls_e = "]" THEN s_s = Mid(arg_s,i + 1,j - i -1) IF Pos(s_s,":") > 0 THEN ss1 = Left(s_s,Pos(s_s,":") - 1) IF arg_i <= Long(ss1) THEN ss1 = String(Long(ss1) + 1) END IF ss2 = Right(s_s,Len(s_s) - Pos(s_s,":")) IF arg_i <= Long(ss2) THEN ss2 = String(Long(ss2) + 1) END IF arg_s = of_globalreplace(arg_s,"[" +s_s + "]","[" +ss1 + ":" + ss2 + "]") i = j EXIT ELSE IF Long(s_s) = 0 THEN s_rslt = "公式错误" GOTO ext END IF s_s1 = String(Long(s_s) + 1) s1 = Left(arg_s,i - 1) s2 = Right(arg_s,Len(arg_s) - i + 1) IF arg_i <= Long(s_s) THEN s2 = of_globalreplace(s2,"[" +s_s + "]","[" +s_s1 + "]") END IF arg_s = s1 + s2 i = j EXIT END IF END IF NEXT END IF NEXT s_rslt = arg_s ext: RETURN s_rslt end function public function string f_minus (integer arg_i, string arg_s);String s_rslt,s_s,s_s1,ls_s,ls_e String s1,s2 string ss1,ss2 Integer i,j FOR i = 1 To Len(arg_s) ls_s = Mid(arg_s,i,1) IF ls_s = "[" THEN FOR j = i To Len(arg_s) ls_e = Mid(arg_s,j,1) IF ls_e = "]" THEN s_s = Mid(arg_s,i + 1,j - i -1) IF Pos(s_s,":") > 0 THEN ss1 = Left(s_s,Pos(s_s,":") - 1) IF arg_i <= Long(ss1) THEN ss1 = String(Long(ss1) - 1) END IF ss2 = Right(s_s,Len(s_s) - Pos(s_s,":")) IF arg_i <= Long(ss2) THEN ss2 = String(Long(ss2) - 1) END IF arg_s = of_globalreplace(arg_s,"[" +s_s + "]","[" +ss1 + ":" + ss2 + "]") i = j EXIT ELSE IF Long(s_s) = 0 THEN s_rslt = "公式错误" GOTO ext END IF s_s1 = String(Long(s_s) - 1) s1 = Left(arg_s,i - 1) s2 = Right(arg_s,Len(arg_s) - i + 1) IF arg_i < Long(s_s) THEN s2 = of_globalreplace(s2,"[" +s_s + "]","[" +s_s1 + "]") END IF arg_s = s1 + s2 i = j EXIT END IF END IF NEXT END IF NEXT s_rslt = arg_s ext: RETURN s_rslt end function public function integer f_writefile (blob ib_file, string is_filename);uLONG ll_len,li_count,loops int li_FileNum blob lblb_b,b_x int liResult = 1 //f_readfile(b_x,is_filename) //ib_file=blob(string(ib_file) +char(13) +char(10) + string(b_x)) //////////////////////////////////////////////////////////// ll_len=len(ib_file) IF ll_len > 32765 THEN IF Mod(ll_len, 32765) = 0 THEN loops = ll_len/32765 ELSE loops = (ll_len/32765) + 1 END IF ELSE loops = 1 END IF li_FileNum = FileOpen(is_filename,StreamMode!, write!, shared!,Replace!) if li_FileNum = -1 then messagebox("系统提示","无法打开文件"+is_filename) return 0 end if FOR li_count = 1 to loops lblb_b = blobmid( ib_file , ( li_count - 1) * 32765 + 1 , 32765 ) if FileWrite(li_FileNum, lblb_b) = -1 then messagebox("系统提示","写文件" + is_filename+"失败") liResult=0 exit end if//8010 NEXT Fileclose(li_FileNum) //if liResult=1 then // liResult = gf_setfiletime(is_filename,idt_file_time) //end if return liResult end function public function integer f_get_rpid ();Long ll_row, ll_i FOR ll_i = dw_1.RowCount() To 1 Step -1 IF dw_1.IsSelected(ll_i) THEN ll_row = ll_i END IF NEXT IF ll_row <= 0 THEN RETURN 0 rp_rpid = dw_1.Object.rpid[ll_row] rp_rptype= dw_1.Object.rptype[ll_row] end function public subroutine f_readfile (); end subroutine public subroutine f_zcfzb_text (ref string arg_text);arg_text = "" //arg_text = arg_text + "arg_text = arg_text + "biaotou|32|001|资产负债表|1|资 产|期末余额|年初余额|负债和股东权益|期末余额|年初余额|" + Char(13) + Char(10) arg_text = arg_text + "biaotou|32|001|资产负债表|1|资 产|期末余额|年初余额|负债和股东权益|期末余额|年初余额|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|1|流动资产:|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|2| 货币资金|0|0|[3] +[4]|[3] +[4]|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|3| 现金|0|0|SELECT sum(v_accounts_balc.accounts_balcamt) FROM u_accounts , v_accounts_balc WHERE ( u_accounts.accountsid = v_accounts_balc.accountsid ) AND ( u_accounts.accountstype = 1 ) and (v_accounts_balc.opdate>=@开始日期@ and v_accounts_balc.opdate<= @结束日期@ ) |SELECT sum(v_accounts_balc.accounts_balcamt) FROM u_accounts , v_accounts_balc WHERE ( u_accounts.accountsid = v_accounts_balc.accountsid ) AND ( u_accounts.accountstype = 1 ) and (v_accounts_balc.opdate>='2000-01-01' and v_accounts_balc.opdate< cast(year(getdate()) as varchar(5)) + '-01-01' )|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|4| 银行|0|0|SELECT sum(v_accounts_balc.accounts_balcamt) FROM u_accounts , v_accounts_balc WHERE ( u_accounts.accountsid = v_accounts_balc.accountsid ) AND ( u_accounts.accountstype = 0 ) and (v_accounts_balc.opdate>=@开始日期@ and v_accounts_balc.opdate<= @结束日期@ )|SELECT sum(v_accounts_balc.accounts_balcamt) FROM u_accounts , v_accounts_balc WHERE ( u_accounts.accountsid = v_accounts_balc.accountsid ) AND ( u_accounts.accountstype = 0 ) and (v_accounts_balc.opdate>='2000-01-01' and v_accounts_balc.opdate< cast(year(getdate()) as varchar(5)) + '-01-01' )|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|5| 短期投资|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|6| 应收票据|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|7| 应收账款|0|0| SELECT ISNULL(SUM(u_Bmsttake.Msttakeamt), 0) - ISNULL(SUM(u_Bmsttake.takeamt), 0) FROM u_Bmsttake RIGHT OUTER JOIN v_cusid_moneyid ON u_Bmsttake.scid = v_cusid_moneyid.ScID AND u_Bmsttake.cusid = v_cusid_moneyid.cusid AND u_Bmsttake.moneyid = v_cusid_moneyid.moneyid where u_Bmsttake.takedate>=@开始日期@ and u_Bmsttake.takedate<= @结束日期@ | SELECT ISNULL(SUM(u_Bmsttake.Msttakeamt), 0) - ISNULL(SUM(u_Bmsttake.takeamt), 0) FROM u_Bmsttake RIGHT OUTER JOIN v_cusid_moneyid ON u_Bmsttake.scid = v_cusid_moneyid.ScID AND u_Bmsttake.cusid = v_cusid_moneyid.cusid AND u_Bmsttake.moneyid = dbo.v_cusid_moneyid.moneyid where u_Bmsttake.takedate>='2000-01-01' and u_Bmsttake.takedate< cast(year(getdate()) as varchar(5)) + '-01-01' |" + Char(13) + Char(10) arg_text = arg_text + "biaoti|8| 预付账款|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|9| 应收股利|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|10| 应收利息|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|11| 其他应收款|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|12| 存货|0|0|[14:16]|[14:16]|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|13| 其中:|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|14| 原材料|0|0|SELECT sum(wareamt) FROM u_mtrlware,u_storage WHERE u_mtrlware.storageid = u_storage.storageid AND u_storage.mtrlprp = 1 and u_mtrlware.outdate>=@开始日期@ and u_mtrlware.outdate<= @结束日期@ |SELECT sum(wareamt) FROM u_mtrlware,u_storage WHERE u_mtrlware.storageid = u_storage.storageid AND u_storage.mtrlprp = 1 and u_mtrlware.outdate>='2000-01-01' and u_mtrlware.outdate< cast(year(getdate()) as varchar(5)) + '-01-01'|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|15| 在产品|0|0|SELECT sum(wareamt) FROM u_mtrlware,u_storage WHERE u_mtrlware.storageid = u_storage.storageid AND u_storage.mtrlprp = 3 and u_mtrlware.outdate>=@开始日期@ and u_mtrlware.outdate<= @结束日期@ |SELECT sum(wareamt) FROM u_mtrlware,u_storage WHERE u_mtrlware.storageid = u_storage.storageid AND u_storage.mtrlprp = 3 and u_mtrlware.outdate>='2000-01-01' and u_mtrlware.outdate< cast(year(getdate()) as varchar(5)) + '-01-01'|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|16| 库存商品|0|0|SELECT sum(wareamt) FROM u_mtrlware,u_storage WHERE u_mtrlware.storageid = u_storage.storageid AND ( u_storage.mtrlprp = 0 OR u_storage.mtrlprp = 2 ) and u_mtrlware.outdate>=@开始日期@ and u_mtrlware.outdate<= @结束日期@ |SELECT sum(wareamt) FROM u_mtrlware,u_storage WHERE u_mtrlware.storageid = u_storage.storageid AND ( u_storage.mtrlprp = 0 OR u_storage.mtrlprp = 2 ) and u_mtrlware.outdate>='2000-01-01' and u_mtrlware.outdate< cast(year(getdate()) as varchar(5)) + '-01-01'|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|17| 周转材料|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|18| 其他流动资产|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|19| 流动资产合计|0|0|[2]+[5:12]+[18]|[2]+[5:12]+[18]|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|20|非流动资产:|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|21| 长期股权投资|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|22| 长期债权投资|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|23| 固定资产原价|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|24| 减:累计折旧|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|25| 固定资产账面价值|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|26| 在建工程|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|27| 工程物资|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|28| 固定资产清理|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|29| 生产性生物资产|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|30| 无形资产|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|31| 开发支出|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|32| 长期待摊费用|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|33| 其他非流动资产|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|34| 非流动资产合计|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|35| 资产总计|0|0|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|1|流动负债:|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|2| 短期借款|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|3| 应付票据|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|4| 应付账款|0|1|SELECT ISNULL(SUM(u_Bmstpay.Mstpayamt), 0) - ISNULL(SUM(u_Bmstpay.Payamt), 0) FROM u_Bmstpay RIGHT OUTER JOIN v_sptid_moneyid ON u_Bmstpay.scid = v_sptid_moneyid.ScID AND u_Bmstpay.sptid = v_sptid_moneyid.sptid AND u_Bmstpay.moneyid = v_sptid_moneyid.moneyid where u_Bmstpay.paydate>=@开始日期@ and u_Bmstpay.paydate<= @结束日期@|SELECT ISNULL(SUM(u_Bmstpay.Mstpayamt), 0) - ISNULL(SUM(u_Bmstpay.Payamt), 0) FROM u_Bmstpay RIGHT OUTER JOIN v_sptid_moneyid ON u_Bmstpay.scid = v_sptid_moneyid.ScID AND u_Bmstpay.sptid = v_sptid_moneyid.sptid AND u_Bmstpay.moneyid = v_sptid_moneyid.moneyid where u_Bmstpay.paydate>='2000-01-01' and u_Bmstpay.paydate< cast(year(getdate()) as varchar(5)) + '-01-01'|" + Char(13) + Char(10) arg_text = arg_text + "biaoti|5| 预收账款|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|6| 应付职工薪酬|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|7| 应交税费|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|8| 应付利息|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|9| 应付利润|0|1||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|10| 其他应付款|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|11| 其他流动负债|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|12| 流动负债合计|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|13|非流动负债:|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|14| 长期借款|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|15| 长期应付款|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|16| 递延收益|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|17| 其他非流动负债|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|18| 非流动负债合计|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|19| 负债合计|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|20||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|21||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|22||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|23||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|24||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|25||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|26||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|27|所有者权益(或股东权益):|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|28| 实收资本(或股本)|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|29| 资本公积|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|30| 盈余公积|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|31| 未分配利润|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|32| 所有者权益合计|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|33| 负债及所有者权益总计|0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|34||0|1|||" + Char(13) + Char(10) arg_text = arg_text + "biaoti|35||0|1|||" + Char(13) + Char(10) end subroutine public subroutine f_create_zcfzb ();string ss_text,s_line f_zcfzb_text(ss_text) String arg_msg,ss Long l_rp_rpid Integer l_i Long ll_i,ll_rowcount //biaotou Long imexport_rpid String imexport_rpcode String imexport_rpname Integer imexport_rptype String imexport_col1name0 String imexport_col1name1 String imexport_col1name2 String imexport_col2name0 String imexport_col2name1 String imexport_col2name2 //biaotou //biaoti Integer imexport_rowcode String imexport_rowname Integer imexport_rowtype Integer imexport_rowcmpltype String imexport_Rowformula1 String imexport_Rowformula2 //biaoti DO While(Pos(ss_text,Char(13) +Char(10)) > 0) s_line = Left(ss_text,Pos(ss_text,Char(13) +Char(10))) ss_text = Right(ss_text,Len(ss_text) - Pos(ss_text,Char(13) +Char(10)) - 1) s_line = Trim(s_line) IF Left(s_line,6) = "biaoti" THEN l_i = Pos(s_line,'|') ss = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowcode l_i = Pos(s_line,'|') imexport_rowcode = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowname l_i = Pos(s_line,'|') imexport_rowname = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowtype l_i = Pos(s_line,'|') imexport_rowtype = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowcmpltype l_i = Pos(s_line,'|') imexport_rowcmpltype = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_Rowformula1 l_i = Pos(s_line,'|') imexport_Rowformula1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_Rowformula2 l_i = Pos(s_line,'|') imexport_Rowformula2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) INSERT INTO u_rp_rowdef (rpid, rowcode, rowname, rowtype, rowcmpltype, Rowformula1, Rowformula2 ) VALUES ( :l_rp_rpid, :imexport_rowcode, :imexport_rowname, :imexport_rowtype, :imexport_rowcmpltype, :imexport_Rowformula1, :imexport_Rowformula2 ) Using sqlca; IF sqlca.SQLCode <> 0 THEN arg_msg="" arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF //MessageBox(string(imexport_rowcode),String(imexport_rowname)) ELSE l_i = Pos(s_line,'|') ss = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpid l_i = Pos(s_line,'|') imexport_rpid = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpcode l_i = Pos(s_line,'|') imexport_rpcode = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpname l_i = Pos(s_line,'|') imexport_rpname = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rptype l_i = Pos(s_line,'|') imexport_rptype = Long(Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name0 l_i = Pos(s_line,'|') imexport_col1name0 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name1 l_i = Pos(s_line,'|') imexport_col1name1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name2 l_i = Pos(s_line,'|') imexport_col1name2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name0 l_i = Pos(s_line,'|') imexport_col2name0 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name1 l_i = Pos(s_line,'|') imexport_col2name1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name2 l_i = Pos(s_line,'|') imexport_col2name2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) SELECT count(*) Into :ll_rowcount From u_rp Where rpid = :imexport_rpid; IF ll_rowcount > 0 THEN SELECT Max(rpid) Into :ll_rowcount From u_rp ; l_rp_rpid = ll_rowcount + 1 ELSE l_rp_rpid = imexport_rpid END IF INSERT INTO u_rp (rpid, rpcode, rpname, rptype, col1name0, col1name1, col1name2, col2name0, col2name1, col2name2 ) VALUES ( :l_rp_rpid, :imexport_rpcode, :imexport_rpname, :imexport_rptype, :imexport_col1name0 , :imexport_col1name1 , :imexport_col1name2, :imexport_col2name0, :imexport_col2name1, :imexport_col2name2 ) Using sqlca; IF sqlca.SQLCode <> 0 THEN arg_msg="" arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF END IF LOOP cb_1.TriggerEvent(Clicked!) return ext: messagebox("error",arg_msg) RETURN end subroutine public subroutine f_lrb_text (ref string arg_text);arg_text="" //arg_text=arg_text + "biaotou|33|002|利润表|0|项目|本期数|本年累计数||||" + Char(13) + Char(10) arg_text=arg_text + "biaotou|33|002|利润表|0|项目|本期数|本年累计数||||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|1|一、营业收入|0|0|SELECT sum(u_outwaremx.price * u_outwaremx.qty) FROM u_outware,u_outwaremx WHERE ( u_outware.scid = u_outwaremx.scid ) AND ( u_outware.outwareid = u_outwaremx.outwareid ) AND ( u_outware.outdate >= @开始日期@ ) AND ( u_outware.outdate < @结束日期@ ) AND ( u_outware.billtype = 1 ) AND ( u_outware.secflag = 1 )|SELECT sum(u_outwaremx.price * u_outwaremx.qty) FROM u_outware,u_outwaremx WHERE ( u_outware.scid = u_outwaremx.scid ) AND ( u_outware.outwareid = u_outwaremx.outwareid ) AND ( u_outware.outdate >= cast(year(getdate()) as varchar(5)) + '-01-01' ) AND ( u_outware.outdate <= cast(year(getdate()) as varchar(5)) + '-12-31' ) AND ( u_outware.billtype = 1 ) AND ( u_outware.secflag = 1 )|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|2|减:营业成本|0|0|[3:6]|[3:6]|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|3| 营业税金及附加|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|4| 销售费用|0|0|SELECT sum(u_outwaremx.costamt) FROM u_outware,u_outwaremx WHERE ( u_outware.scid = u_outwaremx.scid ) AND ( u_outware.outwareid = u_outwaremx.outwareid ) AND ( u_outware.outdate >= @开始日期@ ) AND ( u_outware.outdate < @结束日期@ ) AND ( u_outware.billtype = 1 ) AND ( u_outware.secflag = 1 )|SELECT sum(u_outwaremx.costamt) FROM u_outware,u_outwaremx WHERE ( u_outware.scid = u_outwaremx.scid ) AND ( u_outware.outwareid = u_outwaremx.outwareid ) AND ( u_outware.outdate >= cast(year(getdate()) as varchar(5)) + '-01-01') AND ( u_outware.outdate <= cast(year(getdate()) as varchar(5)) + '-12-01' ) AND ( u_outware.billtype = 1 ) AND ( u_outware.secflag = 1 )|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|5| 管理费用|0|0|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '经营费用' ) ANd (U_income_expenses.auditdate>=@开始日期@ and U_income_expenses.auditdate<@结束日期@)|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '经营费用' ) ANd (U_income_expenses.auditdate>=cast(year(getdate()) as varchar(5)) + '-01-01') and U_income_expenses.auditdate<=cast(year(getdate()) as varchar(5)) + '-12-01' ))|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|6| 财务费用|0|0|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '财务费用' ) ANd (U_income_expenses.auditdate>=@开始日期@ and U_income_expenses.auditdate<@结束日期@)|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '财务费用' ) ANd (U_income_expenses.auditdate>=cast(year(getdate()) as varchar(5)) + '-01-01') and U_income_expenses.auditdate<=cast(year(getdate()) as varchar(5)) + '-12-01' ))|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|7| 资产减值损失|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|8|加:公允价值变动收益(损失以“-”号填列)|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|9| 投资收益(亏损以“-”号填列)|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|10| 其中:对联营企业和合营企业的投资收益|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|11|二、营业利润(亏损以“-”号填列)|0|0|[12]-[13]|[12]-[13]|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|12|加:营业外收入|0|0|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '营业外收入' ) ANd (U_income_expenses.auditdate>=@开始日期@ and U_income_expenses.auditdate<@结束日期@)|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '营业外收入' ) ANd (U_income_expenses.auditdate>=cast(year(getdate()) as varchar(5)) + '-01-01') and U_income_expenses.auditdate<=cast(year(getdate()) as varchar(5)) + '-12-01' ))|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|13|减:营业外支出|0|0|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '营业外支出' ) ANd (U_income_expenses.auditdate>=@开始日期@ and U_income_expenses.auditdate<@结束日期@)|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '营业外支出' ) ANd (U_income_expenses.auditdate>=cast(year(getdate()) as varchar(5)) + '-01-01') and U_income_expenses.auditdate<=cast(year(getdate()) as varchar(5)) + '-12-01' ))|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|14| 其中:非流动资产处置损失|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|15|三、利润总额(亏损以“-”号填列)|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|16|减:所得税费用|0|0|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '所得税' ) ANd (U_income_expenses.auditdate>=@开始日期@ and U_income_expenses.auditdate<@结束日期@)|SELECT sum(U_income_expenses.amt) FROM U_income_expenses , u_itemdef WHERE ( U_income_expenses.itemid = u_itemdef.itemid ) AND ( U_income_expenses.flag = 1 ) AND ( u_itemdef.itemtype = '所得税' ) ANd (U_income_expenses.auditdate>=cast(year(getdate()) as varchar(5)) + '-01-01') and U_income_expenses.auditdate<=cast(year(getdate()) as varchar(5)) + '-12-01' ))|" + Char(13) + Char(10) arg_text=arg_text + "biaoti|17|四、净利润(亏损以“-”号填列)|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|18|加:年初未分配利润|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|19|五、可供分配的利润|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|20|减:提取法定盈余公积|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|21|六、可供股东分配的利润|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|22|减:应付利润|0|0|||" + Char(13) + Char(10) arg_text=arg_text + "biaoti|23|七、年末未分配利润|0|0|||" + Char(13) + Char(10) end subroutine public subroutine f_creat_lrb ();string ss_text,s_line f_lrb_text(ss_text) String arg_msg,ss Long l_rp_rpid Integer l_i Long ll_i,ll_rowcount //biaotou Long imexport_rpid String imexport_rpcode String imexport_rpname Integer imexport_rptype String imexport_col1name0 String imexport_col1name1 String imexport_col1name2 String imexport_col2name0 String imexport_col2name1 String imexport_col2name2 //biaotou //biaoti Integer imexport_rowcode String imexport_rowname Integer imexport_rowtype Integer imexport_rowcmpltype String imexport_Rowformula1 String imexport_Rowformula2 //biaoti DO While(Pos(ss_text,Char(13) +Char(10)) > 0) s_line = Left(ss_text,Pos(ss_text,Char(13) +Char(10))) ss_text = Right(ss_text,Len(ss_text) - Pos(ss_text,Char(13) +Char(10)) - 1) s_line = Trim(s_line) IF Left(s_line,6) = "biaoti" THEN l_i = Pos(s_line,'|') ss = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowcode l_i = Pos(s_line,'|') imexport_rowcode = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowname l_i = Pos(s_line,'|') imexport_rowname = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowtype l_i = Pos(s_line,'|') imexport_rowtype = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowcmpltype l_i = Pos(s_line,'|') imexport_rowcmpltype = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_Rowformula1 l_i = Pos(s_line,'|') imexport_Rowformula1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_Rowformula2 l_i = Pos(s_line,'|') imexport_Rowformula2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) INSERT INTO u_rp_rowdef (rpid, rowcode, rowname, rowtype, rowcmpltype, Rowformula1, Rowformula2 ) VALUES ( :l_rp_rpid, :imexport_rowcode, :imexport_rowname, :imexport_rowtype, :imexport_rowcmpltype, :imexport_Rowformula1, :imexport_Rowformula2 ) Using sqlca; IF sqlca.SQLCode <> 0 THEN arg_msg="" arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF //MessageBox(string(imexport_rowcode),String(imexport_rowname)) ELSE l_i = Pos(s_line,'|') ss = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpid l_i = Pos(s_line,'|') imexport_rpid = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpcode l_i = Pos(s_line,'|') imexport_rpcode = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpname l_i = Pos(s_line,'|') imexport_rpname = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rptype l_i = Pos(s_line,'|') imexport_rptype = Long(Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name0 l_i = Pos(s_line,'|') imexport_col1name0 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name1 l_i = Pos(s_line,'|') imexport_col1name1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name2 l_i = Pos(s_line,'|') imexport_col1name2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name0 l_i = Pos(s_line,'|') imexport_col2name0 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name1 l_i = Pos(s_line,'|') imexport_col2name1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name2 l_i = Pos(s_line,'|') imexport_col2name2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) SELECT count(*) Into :ll_rowcount From u_rp Where rpid = :imexport_rpid; IF ll_rowcount > 0 THEN SELECT Max(rpid) Into :ll_rowcount From u_rp ; l_rp_rpid = ll_rowcount + 1 ELSE l_rp_rpid = imexport_rpid END IF INSERT INTO u_rp (rpid, rpcode, rpname, rptype, col1name0, col1name1, col1name2, col2name0, col2name1, col2name2 ) VALUES ( :l_rp_rpid, :imexport_rpcode, :imexport_rpname, :imexport_rptype, :imexport_col1name0 , :imexport_col1name1 , :imexport_col1name2, :imexport_col2name0, :imexport_col2name1, :imexport_col2name2 ) Using sqlca; IF sqlca.SQLCode <> 0 THEN arg_msg="" arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF END IF LOOP cb_1.TriggerEvent(Clicked!) return ext: messagebox("error",arg_msg) RETURN end subroutine public subroutine wf_face ();IF dw_edit_mode = True THEN IF rb_1.Checked = True THEN sle_1.Enabled = True END IF IF rb_2.Checked = True THEN mle_1.Enabled = True END IF ELSE sle_1.Enabled = False mle_1.Enabled = False END IF end subroutine public function string of_globalreplace1 (string as_source, string as_old, string as_new);long ll_oldlen, ll_newlen, ll_pos ll_pos = Pos(as_source,as_old) IF ll_pos > 0 Then ll_oldlen = Len(as_old) ll_newlen = Len(as_new) DO WHILE ll_pos > 0 as_source = Replace(as_source,ll_pos,ll_oldlen,as_new) ll_pos = Pos(as_source,as_old,ll_pos + ll_newlen) LOOP END IF RETURN as_source end function on w_rp.create int iCurrent call super::create this.cb_1=create cb_1 this.cb_2=create cb_2 this.cb_3=create cb_3 this.cb_4=create cb_4 this.dw_1=create dw_1 this.dw_2=create dw_2 this.cb_5=create cb_5 this.cb_6=create cb_6 this.cb_7=create cb_7 this.cb_ext=create cb_ext this.rb_1=create rb_1 this.rb_2=create rb_2 this.sle_1=create sle_1 this.mle_1=create mle_1 this.cb_13=create cb_13 this.cb_8=create cb_8 this.cb_9=create cb_9 this.cb_imexport=create cb_imexport this.cb_export=create cb_export this.mle_2=create mle_2 this.gb_1=create gb_1 this.ln_3=create ln_3 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_1 this.Control[iCurrent+2]=this.cb_2 this.Control[iCurrent+3]=this.cb_3 this.Control[iCurrent+4]=this.cb_4 this.Control[iCurrent+5]=this.dw_1 this.Control[iCurrent+6]=this.dw_2 this.Control[iCurrent+7]=this.cb_5 this.Control[iCurrent+8]=this.cb_6 this.Control[iCurrent+9]=this.cb_7 this.Control[iCurrent+10]=this.cb_ext this.Control[iCurrent+11]=this.rb_1 this.Control[iCurrent+12]=this.rb_2 this.Control[iCurrent+13]=this.sle_1 this.Control[iCurrent+14]=this.mle_1 this.Control[iCurrent+15]=this.cb_13 this.Control[iCurrent+16]=this.cb_8 this.Control[iCurrent+17]=this.cb_9 this.Control[iCurrent+18]=this.cb_imexport this.Control[iCurrent+19]=this.cb_export this.Control[iCurrent+20]=this.mle_2 this.Control[iCurrent+21]=this.gb_1 this.Control[iCurrent+22]=this.ln_3 end on on w_rp.destroy call super::destroy destroy(this.cb_1) destroy(this.cb_2) destroy(this.cb_3) destroy(this.cb_4) destroy(this.dw_1) destroy(this.dw_2) destroy(this.cb_5) destroy(this.cb_6) destroy(this.cb_7) destroy(this.cb_ext) destroy(this.rb_1) destroy(this.rb_2) destroy(this.sle_1) destroy(this.mle_1) destroy(this.cb_13) destroy(this.cb_8) destroy(this.cb_9) destroy(this.cb_imexport) destroy(this.cb_export) destroy(this.mle_2) destroy(this.gb_1) destroy(this.ln_3) end on event resize;call super::resize;dw_1.Height=this.height -dw_1.y - 100 dw_2.Height=this.height -dw_2.y - gb_1.height - 100 dw_2.width=this.width -dw_2.x //cb_ext.x=this.width - cb_ext.width gb_1.y=dw_2.y + dw_2.Height gb_1.width=this.width -gb_1.x rb_1.y=gb_1.y + 96 sle_1.y=gb_1.y + 96 sle_1.width=gb_1.width - (sle_1.x - gb_1.x) - 100 rb_2.y=gb_1.y + 252 mle_1.y=gb_1.y +252 mle_1.width=gb_1.width - (mle_1.x - gb_1.x) - 100 mle_2.y=gb_1.y +580 mle_2.width=gb_1.width - (mle_2.x - gb_1.x) - 100 end event event open;call super::open;dw_1.SetTransObject (sqlca) dw_1.Retrieve() //rb_1.TriggerEvent(Clicked!) Int LS_INT FOR LS_INT = 1 To 20 dw_2.SetTabOrder (LS_INT,0 ) NEXT rb_1.Enabled = False rb_2.Enabled = False Integer ll_rowcount = 0 SELECT count(*) Into :ll_rowcount From u_rp; IF IsNull(ll_rowcount) Or ll_rowcount = 0 THEN f_create_zcfzb() f_creat_lrb() END IF mle_2.text="例子:公式 [1]+[2]意思是 第1行 + 第2行 [2:10] 意思是第2到第10行相加" +char(13) +char(10) +" Sql:select SUM( u_outwaremx.price * u_outwaremx.saleqty ) from u_outwaremx where outwareid in(select outwareid from u_outware where outdate>=@开始日期@ and outdate<=@结束日期@ and secflag=1)《 @开始日期@ 代表动态的开始日期; @结束日期@ 代表动态的结束日期》 " end event event doubleclicked;call super::doubleclicked;s_edit_index_tran s_tran OpenWithParm(w_rp_tj,s_tran) end event type cb_func from w_publ_choice`cb_func within w_rp boolean visible = false end type type cb_exit from w_publ_choice`cb_exit within w_rp boolean visible = false end type type sle_ch from w_publ_choice`sle_ch within w_rp boolean visible = false end type type dw_ch from w_publ_choice`dw_ch within w_rp boolean visible = false end type type st_1 from w_publ_choice`st_1 within w_rp boolean visible = false end type type cb_retrieve from w_publ_choice`cb_retrieve within w_rp boolean visible = false end type type cb_choice from w_publ_choice`cb_choice within w_rp boolean visible = false end type type ln_bar from w_publ_choice`ln_bar within w_rp integer beginx = 5 integer endx = 2011 end type type ln_bar2 from w_publ_choice`ln_bar2 within w_rp integer beginx = 9 integer endx = 2048 end type type r_bar from w_publ_choice`r_bar within w_rp integer x = 1595 end type type ln_1 from w_publ_choice`ln_1 within w_rp integer beginx = 14 integer beginy = 204 integer endx = 2030 integer endy = 204 end type type ln_2 from w_publ_choice`ln_2 within w_rp integer beginx = 9 integer beginy = 196 integer endx = 2057 integer endy = 196 end type type cb_1 from uo_imflatbutton within w_rp integer width = 192 integer height = 164 integer taborder = 130 boolean bringtotop = true string text = "刷新" string normalpicname = "refresh.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;dw_1.Retrieve() end event type cb_2 from uo_imflatbutton within w_rp integer x = 192 integer width = 192 integer height = 164 integer taborder = 180 boolean bringtotop = true string text = "新建&S" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF Not IsValid(w_rp_add) THEN String s s = "new" OpenWithParm(w_rp_add,s ) cb_1.TriggerEvent(Clicked!) END IF end event type cb_3 from uo_imflatbutton within w_rp integer x = 384 integer width = 192 integer height = 164 integer taborder = 190 boolean bringtotop = true string text = "修改&E" string normalpicname = "open.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_row, ll_i IF Not IsValid(w_rp_add) THEN String s FOR ll_i = dw_1.RowCount() To 1 Step -1 IF dw_1.IsSelected(ll_i) THEN ll_row = ll_i END IF NEXT IF ll_row <= 0 THEN RETURN s = String(dw_1.Object.rpid[ll_row]) OpenWithParm(w_rp_add,s ) cb_1.TriggerEvent(Clicked!) END IF end event type cb_4 from uo_imflatbutton within w_rp integer x = 576 integer width = 197 integer height = 164 integer taborder = 200 boolean bringtotop = true string text = "删除" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_row,l_rpid,ll_i String arG_MSG //ll_row = dw_1.GetRow() FOR ll_i = dw_1.RowCount() TO 1 STEP -1 IF dw_1.IsSelected(ll_i) THEN ll_row=ll_i END IF NEXT IF ll_row <= 0 THEN RETURN IF MessageBox('提示信息','确定删除当前选中报表?', Question! ,YesNo! , 1 ) = 1 THEN ELSE RETURN END IF l_rpid = dw_1.Object.rpid[ll_row] DELETE From u_rp Where u_rp.rpid = :l_rpid; IF sqlca.SQLCode <> 0 THEN arG_MSG = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText MessageBox("Error",arG_MSG) ROLLBACK Using sqlca; GOTO ext END IF COMMIT Using sqlca; DELETE From u_rp_rowdef Where u_rp_rowdef.rpid = :l_rpid; IF sqlca.SQLCode <> 0 THEN arG_MSG = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText MessageBox("Error",arG_MSG) ROLLBACK Using sqlca; GOTO ext END IF COMMIT Using sqlca; dw_1.DeleteRow(ll_row) ext: RETURN end event type dw_1 from u_dw_rbtnfilter within w_rp integer x = 5 integer y = 216 integer width = 1403 integer height = 1632 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_rpdef" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event clicked;call super::clicked;IF row <= 0 THEN RETURN This.SelectRow(0,False) This.SelectRow(row,True) IF cb_8.Enabled = True THEN IF MessageBox('提示信息','是否保存报表设计?', Question! ,YesNo! , 1 ) = 1 THEN cb_8.TriggerEvent(Clicked!) END IF END IF rp_dw_row=row f_bulid_rp(rp_dw_row) Int LS_INT FOR LS_INT = 1 To 20 dw_2.SetTabOrder (LS_INT,0 ) NEXT end event type dw_2 from u_dw_rbtnfilter within w_rp integer x = 1422 integer y = 212 integer width = 1755 integer height = 668 integer taborder = 30 boolean bringtotop = true string dataobject = "dw_rp_design" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true end type event clicked;call super::clicked;IF row <= 0 THEN RETURN This.SelectRow(0,False) This.SelectRow(row,True) IF l_row <= 0 THEN s_col = dwo.Name l_row = row RETURN END IF TRY ///////////////////////// // IF s_col = "sql_l1" THEN IF IsNull(dw_2.Object.sql_l1[l_row]) THEN dw_2.AcceptText() IF IsNull(dw_2.Object.sql_l1[l_row]) THEN dw_2.Object.sql_l1[l_row] = "" END IF END IF IF cb_8.Enabled = True THEN IF rb_1.Checked = True THEN IF Trim(sle_1.Text) <> "" And Trim(sle_1.Text) <> dw_2.Object.sql_l1[l_row] THEN dw_2.Object.sql_l1[l_row] = sle_1.Text ELSE IF Trim(mle_1.Text) <> "" And Trim(mle_1.Text) <> dw_2.Object.sql_l1[l_row] THEN dw_2.Object.sql_l1[l_row] = mle_1.Text END IF END IF ELSEIF s_col = "sql_l2" THEN IF IsNull(dw_2.Object.sql_l2[l_row]) THEN dw_2.AcceptText() IF IsNull(dw_2.Object.sql_l2[l_row]) THEN dw_2.Object.sql_l2[l_row] = "" END IF END IF IF cb_8.Enabled = True THEN IF rb_1.Checked = True THEN IF Trim(sle_1.Text) <> "" And Trim(sle_1.Text) <> dw_2.Object.sql_l2[l_row] THEN dw_2.Object.sql_l2[l_row] = sle_1.Text ELSE IF Trim(mle_1.Text) <> "" And Trim(mle_1.Text) <> dw_2.Object.sql_l2[l_row] THEN dw_2.Object.sql_l2[l_row] = mle_1.Text END IF END IF ELSEIF s_col = "sql_r1" THEN IF IsNull(dw_2.Object.sql_r1[l_row]) THEN dw_2.AcceptText() IF IsNull(dw_2.Object.sql_r1[l_row]) THEN dw_2.Object.sql_r1[l_row] = "" END IF END IF IF cb_8.Enabled = True THEN IF rb_1.Checked = True THEN IF Trim(sle_1.Text) <> "" And Trim(sle_1.Text) <> dw_2.Object.sql_r1[l_row] THEN dw_2.Object.sql_r1[l_row] = sle_1.Text ELSE IF Trim(mle_1.Text) <> "" And Trim(mle_1.Text) <> dw_2.Object.sql_r1[l_row] THEN dw_2.Object.sql_r1[l_row] = mle_1.Text END IF END IF ELSEIF s_col = "sql_r2" THEN IF IsNull(dw_2.Object.sql_r2[l_row]) THEN dw_2.AcceptText() IF IsNull(dw_2.Object.sql_r2[l_row]) THEN dw_2.Object.sql_r2[l_row] = "" END IF END IF IF cb_8.Enabled = True THEN IF rb_1.Checked = True THEN IF Trim(sle_1.Text) <> "" And Trim(sle_1.Text) <> dw_2.Object.sql_r2[l_row] THEN dw_2.Object.sql_r2[l_row] = sle_1.Text ELSE IF Trim(mle_1.Text) <> "" And Trim(mle_1.Text) <> dw_2.Object.sql_r2[l_row] THEN dw_2.Object.sql_r2[l_row] = mle_1.Text END IF END IF END IF s_col = dwo.Name l_row = row sle_1.Text = "" mle_1.Text = "" //messagebox(string(s_col),string(l_row)) /////////////////////// // dw_2.AcceptText() //rb_1.Enabled = False //rb_2.Enabled = False sle_1.Text = "" sle_1.Enabled = False mle_1.Text = "" mle_1.Enabled = False IF dwo.Name = "sql_l1" THEN IF Trim(dw_2.Object.sql_l1[row]) <> "" THEN IF Pos(Trim(dw_2.Object.sql_l1[row]),"[") > 0 THEN rb_1.Checked = True rb_1.Enabled = True sle_1.Text = Trim(dw_2.Object.sql_l1[row]) ELSE rb_2.Checked = True rb_2.Enabled = True mle_1.Text = Trim(dw_2.Object.sql_l1[row]) END IF ELSE rb_1.Enabled = True rb_2.Enabled = True END IF ELSEIF dwo.Name = "sql_l2" THEN IF Trim(dw_2.Object.sql_l2[row]) <> "" THEN IF Pos(Trim(dw_2.Object.sql_l2[row]),"[") > 0 THEN rb_1.Checked = True rb_1.Enabled = True sle_1.Text = Trim(dw_2.Object.sql_l2[row]) ELSE rb_2.Checked = True rb_2.Enabled = True mle_1.Text = Trim(dw_2.Object.sql_l2[row]) END IF ELSE rb_1.Enabled = True rb_2.Enabled = True END IF ELSEIF dwo.Name = "sql_r1" THEN IF Trim(dw_2.Object.sql_r1[row]) <> "" THEN IF Pos(Trim(dw_2.Object.sql_r1[row]),"[") > 0 THEN rb_1.Checked = True rb_1.Enabled = True sle_1.Text = Trim(dw_2.Object.sql_r1[row]) ELSE rb_2.Checked = True rb_2.Enabled = True mle_1.Text = Trim(dw_2.Object.sql_r1[row]) END IF ELSE rb_1.Enabled = True rb_2.Enabled = True END IF ELSEIF dwo.Name = "sql_r2" THEN IF Trim(dw_2.Object.sql_r2[row]) <> "" THEN IF Pos(Trim(dw_2.Object.sql_r2[row]),"[") > 0 THEN rb_1.Checked = True rb_1.Enabled = True sle_1.Text = Trim(dw_2.Object.sql_r2[row]) ELSE rb_2.Checked = True rb_2.Enabled = True mle_1.Text = Trim(dw_2.Object.sql_r2[row]) END IF ELSE rb_1.Enabled = True rb_2.Enabled = True END IF ELSE // rb_1.Enabled = False // rb_2.Enabled = False sle_1.Text = "" sle_1.Enabled = False mle_1.Text = "" mle_1.Enabled = False END IF IF cb_8.Enabled = False THEN rb_1.Enabled = False rb_2.Enabled = False END IF wf_face() //ext: RETURN Catch(runtimeerror err) // MessageBox("Error",err.Text) RETURN END TRY end event event itemchanged;call super::itemchanged; //s_text="" //IF s_col = "" Or l_row = 0 THEN // s_col = dwo.Name // l_row = row // GOTO ext //END IF // //IF s_col = "sql_l1" THEN // IF rb_1.Checked = True THEN // dw_2.Object.sql_l1[l_row] = sle_1.Text // ELSE // dw_2.Object.sql_l1[l_row] = mle_1.Text // END IF // //ELSEIF dwo.Name = "sql_l2" THEN // IF rb_1.Checked = True THEN // dw_2.Object.sql_l2[l_row] = sle_1.Text // ELSE // dw_2.Object.sql_l2[l_row] = mle_1.Text // END IF //ELSEIF dwo.Name = "sql_r1" THEN // IF rb_1.Checked = True THEN // dw_2.Object.sql_r1[l_row] = sle_1.Text // ELSE // dw_2.Object.sql_r1[l_row] = mle_1.Text // END IF //ELSEIF dwo.Name = "sql_r2" THEN // IF rb_1.Checked = True THEN // dw_2.Object.sql_r2[l_row] = sle_1.Text // ELSE // dw_2.Object.sql_r2[l_row] = mle_1.Text // END IF //END IF //s_col = dwo.Name //l_row = row //ext: //RETURN // // // // // // // // // // // // end event type cb_5 from uo_imflatbutton within w_rp integer x = 2528 integer width = 192 integer height = 164 integer taborder = 210 boolean bringtotop = true boolean enabled = false string text = "删行" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_row, ll_i TRY FOR ll_i = dw_2.RowCount() To 1 Step -1 IF dw_2.IsSelected(ll_i) THEN ll_row = ll_i END IF NEXT IF ll_row <= 0 THEN RETURN String lpo_object IF rp_rptype = 1 THEN Open(w_col_choose) lpo_object = String( Message.StringParm) ELSE lpo_object = "whole" END IF IF lpo_object = "left" THEN dw_2.InsertRow(0) FOR ll_i = dw_2.RowCount() - 1 To ll_row Step -1 dw_2.Object.colname_r[ll_i + 1] = dw_2.Object.colname_r[ll_i] dw_2.Object.sql_r1[ll_i + 1] = dw_2.Object.sql_r1[ll_i ] dw_2.Object.sql_r2[ll_i + 1] = dw_2.Object.sql_r2[ll_i] NEXT FOR ll_i = 1 To dw_2.RowCount() dw_2.Object.sql_l1[ll_i ] = f_minus(ll_row, dw_2.Object.sql_l1[ll_i]) dw_2.Object.sql_l2[ll_i ] = f_minus(ll_row,dw_2.Object.sql_l2[ll_i]) NEXT ELSEIF lpo_object = "right" THEN dw_2.InsertRow(0) FOR ll_i = dw_2.RowCount() - 1 To ll_row Step -1 dw_2.Object.colname_l[ll_i + 1] = dw_2.Object.colname_l[ll_i] dw_2.Object.sql_l1[ll_i + 1] = dw_2.Object.sql_l1[ll_i ] dw_2.Object.sql_l2[ll_i + 1] = dw_2.Object.sql_l2[ll_i] NEXT FOR ll_i = 1 To dw_2.RowCount() dw_2.Object.sql_r1[ll_i ] = f_minus(ll_row, dw_2.Object.sql_r1[ll_i]) dw_2.Object.sql_r2[ll_i ] = f_minus(ll_row,dw_2.Object.sql_r2[ll_i]) NEXT ELSEIF lpo_object = "whole" THEN FOR ll_i = 1 To dw_2.RowCount() dw_2.Object.sql_l1[ll_i ] = f_minus(ll_row, dw_2.Object.sql_l1[ll_i]) dw_2.Object.sql_l2[ll_i ] = f_minus(ll_row,dw_2.Object.sql_l2[ll_i]) dw_2.Object.sql_r1[ll_i ] = f_minus(ll_row, dw_2.Object.sql_r1[ll_i]) dw_2.Object.sql_r2[ll_i ] = f_minus(ll_row,dw_2.Object.sql_r2[ll_i]) NEXT END IF dw_2.DeleteRow(ll_row) sle_1.Text = "" mle_1.Text = "" l_row = l_row - 1 Catch(runtimeerror err) MessageBox("Error",err.Text) RETURN END TRY end event type cb_6 from uo_imflatbutton within w_rp integer x = 2336 integer width = 192 integer height = 164 integer taborder = 220 boolean bringtotop = true boolean enabled = false string text = "插行" string normalpicname = "open.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long ll_row, ll_i FOR ll_i = dw_2.RowCount() To 1 Step -1 IF dw_2.IsSelected(ll_i) THEN ll_row = ll_i END IF NEXT IF ll_row <= 0 THEN RETURN String lpo_object IF rp_rptype = 1 THEN Open(w_col_choose) lpo_object = String( Message.StringParm) ELSE lpo_object = "whole" END IF dw_2.InsertRow(ll_row) IF lpo_object = "left" THEN FOR ll_i = ll_row To dw_2.RowCount() - 1 dw_2.Object.colname_r[ll_i ] = dw_2.Object.colname_r[ll_i + 1] dw_2.Object.sql_r1[ll_i ] = dw_2.Object.sql_r1[ll_i + 1] dw_2.Object.sql_r2[ll_i ] = dw_2.Object.sql_r2[ll_i + 1] dw_2.Object.colname_r[ll_i + 1] = "" dw_2.Object.sql_r1[ll_i + 1 ] = "" dw_2.Object.sql_r2[ll_i + 1 ] = "" NEXT FOR ll_i = 1 To dw_2.RowCount() dw_2.Object.sql_l1[ll_i ] = f_add(ll_row, dw_2.Object.sql_l1[ll_i]) dw_2.Object.sql_l2[ll_i ] = f_add(ll_row,dw_2.Object.sql_l2[ll_i]) NEXT ELSEIF lpo_object = "right" THEN FOR ll_i = ll_row To dw_2.RowCount() - 1 dw_2.Object.colname_l[ll_i ] = dw_2.Object.colname_l[ll_i + 1] dw_2.Object.sql_l1[ll_i ] = dw_2.Object.sql_l1[ll_i + 1 ] dw_2.Object.sql_l2[ll_i ] = dw_2.Object.sql_l2[ll_i + 1] dw_2.Object.colname_l[ll_i + 1] = "" dw_2.Object.sql_l1[ll_i + 1] = "" dw_2.Object.sql_l2[ll_i + 1] = "" NEXT FOR ll_i = 1 To dw_2.RowCount() dw_2.Object.sql_r1[ll_i ] = f_add(ll_row, dw_2.Object.sql_r1[ll_i]) dw_2.Object.sql_r2[ll_i ] = f_add(ll_row,dw_2.Object.sql_r2[ll_i]) NEXT ELSEIF lpo_object = "whole" THEN FOR ll_i = 1 To dw_2.RowCount() dw_2.Object.sql_l1[ll_i ] = f_add( ll_row,dw_2.Object.sql_l1[ll_i]) dw_2.Object.sql_l2[ll_i ] = f_add(ll_row,dw_2.Object.sql_l2[ll_i]) dw_2.Object.sql_r1[ll_i ] = f_add(ll_row, dw_2.Object.sql_r1[ll_i]) dw_2.Object.sql_r2[ll_i ] = f_add(ll_row,dw_2.Object.sql_r2[ll_i]) NEXT END IF sle_1.Text = "" mle_1.Text = "" l_row = l_row + 1 end event type cb_7 from uo_imflatbutton within w_rp integer x = 2112 integer width = 219 integer height = 164 integer taborder = 220 boolean bringtotop = true boolean enabled = false string text = "增行" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Integer i FOR i = 1 To 5 dw_2.InsertRow(0) NEXT end event type cb_ext from uo_imflatbutton within w_rp integer x = 1184 integer width = 210 integer height = 164 integer taborder = 220 boolean bringtotop = true string text = "退出" string normalpicname = "exit.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;close(parent) end event type rb_1 from radiobutton within w_rp integer x = 1513 integer y = 1036 integer width = 306 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "公式" boolean checked = true end type event clicked;IF rb_1.Checked = True THEN sle_1.Enabled = True mle_1.Enabled = False END IF end event type rb_2 from radiobutton within w_rp integer x = 1513 integer y = 1180 integer width = 320 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 700 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "Sql" end type event clicked;IF rb_2.Checked = True THEN sle_1.Enabled = False mle_1.Enabled = True END IF end event type sle_1 from singlelineedit within w_rp integer x = 1755 integer y = 1036 integer width = 1371 integer height = 84 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean enabled = false borderstyle borderstyle = stylelowered! end type event losefocus;dw_2.Trigger Event clicked(0,0,1,dw_2.object) end event type mle_1 from multilineedit within w_rp integer x = 1755 integer y = 1180 integer width = 1371 integer height = 408 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean enabled = false boolean hscrollbar = true boolean vscrollbar = true boolean autohscroll = true boolean autovscroll = true borderstyle borderstyle = stylelowered! end type event losefocus;dw_2.Trigger Event clicked(0,0,1,dw_2.object) end event type cb_13 from uo_imflatbutton within w_rp integer x = 1426 integer width = 192 integer height = 164 integer taborder = 190 boolean bringtotop = true string text = "设计" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;dw_edit_mode=not dw_edit_mode f_get_rpid() cb_5.Enabled = True cb_6.Enabled = True cb_7.Enabled = True cb_8.Enabled = True cb_9.Enabled = True Int LS_INT FOR LS_INT = 1 To 20 dw_2.SetTabOrder (LS_INT,LS_INT*10 ) NEXT rb_1.Enabled = True rb_2.Enabled = True sle_1.text="" mle_1.text="" wf_face() end event type cb_8 from uo_imflatbutton within w_rp integer x = 1623 integer width = 192 integer height = 164 integer taborder = 200 boolean bringtotop = true boolean enabled = false string text = "保存" string normalpicname = "save.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;String arg_msg Long l_rpid integer s_rowcode String s_rowname Integer l_rowtype Integer l_rowcmpltype String s_Rowformula1 String s_Rowformula2 Integer l_i dw_2.AcceptText() IF cancel(arg_msg ) = 0 THEN //i 为printid MessageBox('Error!',arg_msg) RETURN END IF FOR l_i = 1 To dw_2.RowCount() l_rpid = rp_rpid s_rowcode = dw_2.Object.compute_1[l_i] s_rowname = dw_2.Object.colname_l[l_i] l_rowtype = 0 l_rowcmpltype = 0 s_Rowformula1 = dw_2.Object.sql_l1[l_i] s_Rowformula2 = dw_2.Object.sql_l2[l_i] IF acceptmx(l_rpid,s_rowcode, s_rowname,l_rowtype,l_rowcmpltype,s_Rowformula1,s_Rowformula2) = 0 THEN GOTO ext END IF IF Save(arg_msg ) = 0 THEN //i 为printid MessageBox('Error!',arg_msg) RETURN END IF IF rp_rptype = 1 THEN l_rpid = rp_rpid s_rowcode = dw_2.Object.compute_1[l_i] s_rowname = dw_2.Object.colname_r[l_i] l_rowtype = 0 l_rowcmpltype = 1 s_Rowformula1 = dw_2.Object.sql_r1[l_i] s_Rowformula2 = dw_2.Object.sql_r2[l_i] IF acceptmx(l_rpid,s_rowcode, s_rowname,l_rowtype,l_rowcmpltype,s_Rowformula1,s_Rowformula2) = 0 THEN GOTO ext END IF IF Save(arg_msg ) = 0 THEN //i 为printid MessageBox('Error!',arg_msg) RETURN END IF END IF NEXT MessageBox(publ_operator,'保存操作成功!') cb_5.Enabled = False cb_6.Enabled = False cb_7.Enabled = False cb_8.Enabled = False cb_9.Enabled = False Int LS_INT FOR LS_INT = 1 To 20 dw_2.SetTabOrder (LS_INT,0 ) NEXT dw_edit_mode=not dw_edit_mode wf_face() ext: RETURN end event type cb_9 from uo_imflatbutton within w_rp integer x = 1819 integer width = 192 integer height = 164 integer taborder = 210 boolean bringtotop = true boolean enabled = false string text = "放弃" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;cb_5.Enabled = False cb_6.Enabled = False cb_7.Enabled = False cb_8.Enabled = False cb_9.Enabled = False Int LS_INT FOR LS_INT = 1 To 20 dw_2.SetTabOrder (LS_INT,0 ) NEXT rb_1.Enabled = False rb_2.Enabled = False f_bulid_rp(rp_dw_row) dw_edit_mode=not dw_edit_mode wf_face() end event type cb_imexport from uo_imflatbutton within w_rp integer x = 782 integer width = 192 integer height = 164 integer taborder = 140 boolean bringtotop = true string text = "导入" string normalpicname = "imexport.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;String arg_msg,ss Long Handle,i_rc,i String Pathname,Filename,ss_text String s_line Blob tb i = GetFileSaveName("导入",Pathname,Filename,"rp","报表数据文件rp,*.rp") IF i = 0 THEN arg_msg = "请选择要导入的文件" GOTO ext END IF Long l_rp_rpid Integer l_i Long ll_i,ll_rowcount //biaotou Long imexport_rpid String imexport_rpcode String imexport_rpname Integer imexport_rptype String imexport_col1name0 String imexport_col1name1 String imexport_col1name2 String imexport_col2name0 String imexport_col2name1 String imexport_col2name2 //biaotou //biaoti Integer imexport_rowcode String imexport_rowname Integer imexport_rowtype Integer imexport_rowcmpltype String imexport_Rowformula1 String imexport_Rowformula2 //biaoti IF f_filetoblob(Pathname,tb,arg_msg) = 1 THEN ss_text = String(tb,EncodingANSI! ) DO While(Pos(ss_text,Char(13) +Char(10)) > 0) s_line = Left(ss_text,Pos(ss_text,Char(13) +Char(10))) ss_text = Right(ss_text,Len(ss_text) - Pos(ss_text,Char(13) +Char(10)) - 1) s_line = Trim(s_line) IF Left(s_line,6) = "biaoti" THEN l_i = Pos(s_line,'|') ss = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowcode l_i = Pos(s_line,'|') imexport_rowcode = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowname l_i = Pos(s_line,'|') imexport_rowname = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowtype l_i = Pos(s_line,'|') imexport_rowtype = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rowcmpltype l_i = Pos(s_line,'|') imexport_rowcmpltype = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_Rowformula1 l_i = Pos(s_line,'|') imexport_Rowformula1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_Rowformula2 l_i = Pos(s_line,'|') imexport_Rowformula2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) INSERT INTO u_rp_rowdef (rpid, rowcode, rowname, rowtype, rowcmpltype, Rowformula1, Rowformula2 ) VALUES ( :l_rp_rpid, :imexport_rowcode, :imexport_rowname, :imexport_rowtype, :imexport_rowcmpltype, :imexport_Rowformula1, :imexport_Rowformula2 ) Using sqlca; IF sqlca.SQLCode <> 0 THEN arg_msg = "" arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF //MessageBox(string(imexport_rowcode),String(imexport_rowname)) ELSE l_i = Pos(s_line,'|') ss = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpid l_i = Pos(s_line,'|') imexport_rpid = Long( Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpcode l_i = Pos(s_line,'|') imexport_rpcode = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rpname l_i = Pos(s_line,'|') imexport_rpname = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_rptype l_i = Pos(s_line,'|') imexport_rptype = Long(Left(s_line,l_i - 1)) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name0 l_i = Pos(s_line,'|') imexport_col1name0 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name1 l_i = Pos(s_line,'|') imexport_col1name1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col1name2 l_i = Pos(s_line,'|') imexport_col1name2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name0 l_i = Pos(s_line,'|') imexport_col2name0 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name1 l_i = Pos(s_line,'|') imexport_col2name1 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) //imexport_col2name2 l_i = Pos(s_line,'|') imexport_col2name2 = Left(s_line,l_i - 1) s_line = Right(s_line,Len(s_line) - l_i) SELECT count(*) Into :ll_rowcount From u_rp Where rpid = :imexport_rpid; IF ll_rowcount > 0 THEN SELECT Max(rpid) Into :ll_rowcount From u_rp ; l_rp_rpid = ll_rowcount + 1 ELSE l_rp_rpid = imexport_rpid END IF INSERT INTO u_rp (rpid, rpcode, rpname, rptype, col1name0, col1name1, col1name2, col2name0, col2name1, col2name2 ) VALUES ( :l_rp_rpid, :imexport_rpcode, :imexport_rpname, :imexport_rptype, :imexport_col1name0 , :imexport_col1name1 , :imexport_col1name2, :imexport_col2name0, :imexport_col2name1, :imexport_col2name2 ) Using sqlca; IF sqlca.SQLCode <> 0 THEN arg_msg = "" arg_msg = "因网络或其它原因导致插入明细操作失败"+"~n"+sqlca.SQLErrText ROLLBACK Using sqlca; GOTO ext END IF END IF LOOP END IF cb_1.TriggerEvent(Clicked!) MessageBox("成功","导入成功") RETURN ext: MessageBox("error",arg_msg) RETURN end event type cb_export from uo_imflatbutton within w_rp integer x = 978 integer width = 192 integer height = 164 integer taborder = 140 boolean bringtotop = true string text = "导出" string normalpicname = "imexport.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Integer i String Pathname,Filename,arg_msg i = GetFileSaveName("导出",Pathname,Filename,"rp","报表数据文件rp,*.rp") IF i = 0 THEN MessageBox("error","请选择报表的保存路径和文件名") GOTO ext END IF //MessageBox(Filename,String(i)) String ss_text = "" Blob ss i = f_get_rpid() IF i = 0 THEN MessageBox("error","请选择要导出的报表") GOTO ext END IF Long export_rpid String export_rpcode String export_rpname Integer export_rptype String export_col1name0 String export_col1name1 String export_col1name2 String export_col2name0 String export_col2name1 String export_col2name2 SELECT rpid, rpcode, rpname, rptype, col1name0, col1name1, col1name2, col2name0, col2name1, col2name2 Into :export_rpid, :export_rpcode, :export_rpname, :export_rptype, :export_col1name0, :export_col1name1, :export_col1name2, :export_col2name0, :export_col2name1, :export_col2name2 From u_rp Where u_rp.rpid = : rp_rpid; IF sqlca.SQLCode <> 0 THEN arg_msg = "" arg_msg = "因网络或其它原因导致查询明细操作失败"+"~n"+sqlca.SQLErrText MessageBox("error",arg_msg) ROLLBACK Using sqlca; GOTO ext END IF ss_text = "biaotou" + "|" + String(export_rpid) + "|" + export_rpcode + "|" + export_rpname + "|" + String(export_rptype) + "|" + export_col1name0 + "|" + export_col1name1 + "|" + export_col1name2 + "|" + export_col2name0 + "|" + export_col2name1 + "|" + export_col2name2 + "|" + Char(13) + Char(10) Integer export_rowcode String export_rowname Integer export_rowtype Integer export_rowcmpltype String export_Rowformula1 String export_Rowformula2 Long ll_i,ll_rowcount SELECT Max(rowcode) Into :ll_rowcount From u_rp_rowdef Where rpid = :rp_rpid; FOR ll_i = 1 To ll_rowcount export_rowcode = 0 export_rowname = "" export_rowtype = 0 export_rowcmpltype = 0 export_Rowformula1 = "" export_Rowformula2 = "" SELECT rowcode, rowname, rowtype, rowcmpltype, Rowformula1, Rowformula2 Into :export_rowcode, :export_rowname, :export_rowtype, :export_rowcmpltype, :export_Rowformula1, :export_Rowformula2 From u_rp_rowdef Where u_rp_rowdef .rpid = : rp_rpid And rowcmpltype = 0 And rowcode = :ll_i; IF sqlca.SQLCode <> 0 THEN arg_msg = "" arg_msg = "因网络或其它原因导致查询明细操作失败"+"~n"+sqlca.SQLErrText MessageBox("error",arg_msg) ROLLBACK Using sqlca; GOTO ext END IF IF export_rowcode <> 0 THEN export_Rowformula1=of_globalreplace1(export_Rowformula1,Char(13) + Char(10)," ") export_Rowformula2=of_globalreplace1(export_Rowformula2,Char(13) + Char(10)," ") ss_text = ss_text + "biaoti" + "|" + String(export_rowcode) + "|" + export_rowname + "|" + String(export_rowtype) + "|" + String(export_rowcmpltype) + "|" + export_Rowformula1 + "|" + export_Rowformula2 + "|" +Char(13) + Char(10) END IF NEXT FOR ll_i = 1 To ll_rowcount export_rowcode = 0 export_rowname = "" export_rowtype = 0 export_rowcmpltype = 0 export_Rowformula1 = "" export_Rowformula2 = "" SELECT rowcode, rowname, rowtype, rowcmpltype, Rowformula1, Rowformula2 Into :export_rowcode, :export_rowname, :export_rowtype, :export_rowcmpltype, :export_Rowformula1, :export_Rowformula2 From u_rp_rowdef Where u_rp_rowdef .rpid = : rp_rpid And rowcmpltype = 1 And rowcode = :ll_i; IF sqlca.SQLCode <> 0 And sqlca.SQLCode <> 100 THEN arg_msg = "" arg_msg = "因网络或其它原因导致查询明细操作失败"+"~n"+sqlca.SQLErrText MessageBox("error",arg_msg) ROLLBACK Using sqlca; GOTO ext END IF IF export_rowcode <> 0 THEN export_Rowformula1=of_globalreplace1(export_Rowformula1,Char(13) + Char(10)," ") export_Rowformula2=of_globalreplace1(export_Rowformula2,Char(13) + Char(10)," ") ss_text = ss_text + "biaoti" + "|" + String(export_rowcode) + "|" + export_rowname + "|" + String(export_rowtype) + "|" + String(export_rowcmpltype) + "|" + export_Rowformula1 + "|" + export_Rowformula2 + "|" +Char(13) + Char(10) END IF NEXT ss = Blob(ss_text ,EncodingANSI!) f_writefile(ss,Pathname) MessageBox("成功","导出成功") ext: RETURN end event type mle_2 from multilineedit within w_rp integer x = 1751 integer y = 1608 integer width = 1376 integer height = 204 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean enabled = false borderstyle borderstyle = stylelowered! end type type gb_1 from groupbox within w_rp integer x = 1417 integer y = 928 integer width = 1746 integer height = 916 integer taborder = 30 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "计算方法" end type type ln_3 from line within w_rp long linecolor = 268435456 integer linethickness = 18 integer beginx = 1413 integer beginy = 4 integer endx = 1413 integer endy = 160 end type