| 发表于:2007-06-25 11:34:44 楼主 |
create procedure sa_fhjs ( /* 发货统计表数据组织存储过程 */ @chrwhere1 varchar(255) =null , /*通用条件 */ @chrchecked varchar(50) = null , /*发货单是否审核条件 */ @chrstartdate varchar(20) = null , /*开始日期 ,标准的日期值 yyyy-mm-dd*/ @chrenddate varchar(20) = null , /*结束日期,标准的日期数值 */ @chrauth varchar(2500) = null , @chrrecordauth varchar(8000) = null --记录权限条件 ) as set nocount on ----创建临时表用来把sa_cutstock中的数据读到临时表中 create table #tmp1 (cinvcode varchar(20),cinvaddcode varchar(20),cinvname varchar(100),cinvstd varchar(50),cinvm_unit varchar(30), cinva_unit varchar(30),cinvdefine1 varchar(30),cinvdefine2 varchar(30),cinvdefine3 varchar(30),cinvdefine4 varchar(30),cinvdefine5 varchar(30), cinvdefine6 varchar(30),cinvdefine7 varchar(30),cinvdefine8 varchar(30),cinvdefine9 varchar(30),cinvdefine10 varchar(30),cinvdefine11 varchar(30), cinvdefine12 varchar(30),cinvdefine13 varchar(30),cinvdefine14 varchar(30),cinvdefine15 varchar(30),cinvdefine16 varchar(30),igrouptype bit,cinvccode varchar(20),cinvcname varchar(50), iexchrate float,iqtty float,inum money, istopqtty float,istopnum money,finqtty float,finnum money, ftransinqtty float,ftransinnum money, finqttysum money,finnumsum money,foutqtty float, foutnum money,ftransoutqtty float, ftransoutnum money,foutqttysum money, foutnumsum money, fdisableqtty float,fdisablenum money,favailqtty float,favailnum money) insert #tmp1 EXEC sa_cutstock-----把数据读到临时表中 ---创建临时表用来把sa_saleout中的数据读到临时表中 create table #tmp2 ([部门] varchar(50),[客户] varchar(50),[业务员] varchar(50),[业务类型] varchar(50),[销售类型] varchar(50), [存货编码] varchar(20),[日期] datetime,[发退货单号] varchar(20),[币种] varchar(20),[仓库] varchar(50),[存货代码] varchar(20), [期初件数] float,[批号] varchar(50),[期初数量] float,[期初金额] money,[期初金额本币] money,[期初税额] money,[期初税额本币] money, [期初价税合计] money,[期初价税合计本币] money,[期初折扣] money,[期初折扣本币] money,[发货数量] float,[发货件数] float,[发货金额] money, [发货金额本币] money,[发货税额] money,[发货税额本币] money,[发货价税合计] money,[发货价税合计本币] money,[发货折扣] money,[发货折扣本币] money, [开票数量] float,[开票金额] money,[开票金额本币] money,[开票税额] money,[开票税额本币] money,[开票价税合计] money,[开票价税合计本币] money, [开票折扣] money,[开票折扣本币] money,[结存数量] float,[结存金额] money,[结存税额] money,[开票件数] float,[结存价税合计] money, [结存件数] float,[结存折扣] money,[结存金额本币] money,[结存税额本币] money,[结存价税合计本币] money,[结存折扣本币] money, [项目大类] varchar(50),[项目] varchar(50),[cdefine11] varchar(50),[cdefine12] varchar(50),[cdefine13] varchar(50),[cdefine14] varchar(50), [cdefine15] varchar(50),[cdefine16] varchar(50),[cdefine28] varchar(50),[cdefine29] varchar(50),[cdefine30] varchar(50), [cdefine31] varchar(50),[cdefine32] varchar(50), [cdefine33] varchar(50),[cdefine34] varchar(50),[cdefine35] varchar(50), [cdefine36] varchar(50),[ccccode] varchar(50),[cinvccode] varchar(50),[cdccode] varchar(50),[cfree1] varchar(50),[cfree2] varchar(50), [cfree3] varchar(50),[cfree4] varchar(50),[cfree5] varchar(50),[cfree6] varchar(50),[cfree7] varchar(50),[cfree8] varchar(50), [cfree9] varchar(50),[cfree10] varchar(50) ) insert #tmp2 EXEC sa_saleout @chrwhere1,@chrchecked,@chrstartdate,@chrenddate,@chrauth,@chrrecordauth set nocount off select cinvcode as [存货编码],cinvaddcode as [存货代码],cinvname as [存货名称],[部门],[客户],[业务员],[业务类型],[销售类型],[日期],[发退货单号],[币种],[仓库],cinvstd as [规格型号],cinvm_unit as [计量单位],cinva_unit as [辅计量单位],#tmp1.cinvccode as [分类编码],cinvcname as [分类名称],[发货数量],[发货数量]-iqtty as [剩余数量],favailqtty as [可用数量] from #tmp1 left join #tmp2 on #tmp1.cinvcode = #tmp2.[存货编码] return 上面是一个存储过程。这个存储过程在“查询分析器”能够正常使用。 下面是我在vb中使用的语句: dim rs as new adodb.recordset set rs = conn.EXECute(“EXEC sa_fhjs ' ', ' ', '2005-01-01 ', '2005-06-25 ', ' ', ' '”) if not rs.eof then----在这里提示“对象关闭时,不允许操作。” tj = rs.fields(0).value end if rs.close |
|
|
|
|