
1、我们通过SQL事件探查器(这可真是个好东东啊!),不难跟踪到以下内容 EXEC CheckInventory2、我们进入SQL企业管理器,也不难得到CheckInventory的详细代码[K/310.1]CREATE Procedure CheckInventoryas Declare @CurYear Int, --当前年份 @CurPeriod int, --起始的会计期间 @StartPeriod SmallInt, --启用期间 @NowPeriod Smallint, --当前期间 @StartTime DateTime, --期间开始日期 @EndTime DateTime, --期间结束日期 @DiffCount Decimal(28,0) --计算是否有差异数量 --2.取出当前年份 SELECT @CurPeriod=FValue FROM t_Systemprofile WHERE FKey='CurrentPeriod' And FCategory='IC' SELECT @CurYear=FValue FROM t_Systemprofile WHERE FKey='CurrentYear' And FCategory='IC' --3.取出当前期间的起始日期 EXEC GetPeriodStartEnd @CurPeriod,@StartTime output,@EndTime output SELECT FItemID,FStockID,FBatchNo,FStockPlaceID,case when FKFDate is null then '' else convert(varchar(10),FKFDate,120) End as FKFDate,ISNULL(FKFPeriod,'') as FKFPeriod, Sum(FBegQty) As FQty ,0 As FQtyLock Into #RealTimeQty FROM ICInvBal WHERE FPeriod=@CurPeriod And FYear=@CurYear Group By FItemID,FStockID,FBatchNo,FStockPlaceID,FKFDate,FKFPeriod Having sum(FBegQty)<>0 --SELECT FItemID,FStockID,FBatchNo,FQty FROM #RealTimeQty Insert Into #RealTimeQty SELECT t1.FItemID,t2.FDCStockID As FStockID,IsNull(t1.FBatchNO,''),ISNULL(t1.FDCSPID,'') as FStockPlaceID, case when FKFDate is null then '' else convert(varchar(10),FKFDate,120) end ,ISNULL(t1.FKFPeriod,''), Sum(t1.FQty) As FQty,0 As FQtyLock FROM ICStockBillEntry t1,ICStockBill t2 WHERE t1.FInterID=t2.FInterID And (t2.FCheckerID>0 or t2.FCheckerID <0 or FUpStockWhenSave=1) And t2.FCancelLation=0 And t2.FTranType In (1,2,5,10,40,41) And FDate>=@StartTime Group By t1.FItemID,t2.FDCStockID,t1.FBatchNo,t1.FDCSPID,t1.FKFDate,t1.FKFPeriod ......[以下代码省略]3、我们也不难看出其中几个参数的意思 @CurYear Int, --当前年份 @CurPeriod int, --起始的会计期间 [原代码注释可能有歧义,应为当前期间,当然,也可以解释为校对即时库存的起始期间] @StartPeriod SmallInt, --启用期间 [该参数基本没有用] @NowPeriod Smallint, --当前期间 [源代码注释错了,该参数基本没有用] @StartTime DateTime, --期间开始日期 @EndTime DateTime, --期间结束日期[该参数基本没有用] @DiffCount Decimal(28,0) --计算是否有差异数量 除了几个没有使用的参数外,其他几个重要的参数就是时间节点了。 从SQL代码可以看出,“校对”即时库存的功能应该就是从当前期间的第一天开始的。4、我们是否可以经过改进,来控制校对即时库存的起始点呢?应该是可以的。CREATE Procedure CheckInventoryEX @CurYear Int=0, --起始年份 @CurPeriod int=0, --起始会计期间asDeclare @StartPeriod SmallInt, --启用期间 @NowPeriod Smallint, --当前期间 @StartTime DateTime, --期间开始日期 @EndTime DateTime, --期间结束日期 @DiffCount Decimal(28,0) --计算是否有差异数量 --2.取出当前年份 if @CurPeriod<=0 or @CurPeriod>12 begin SELECT @CurPeriod=FValue FROM t_Systemprofile WHERE FKey='CurrentPeriod' And FCategory='IC' end if @CurYear<=0 begin SELECT @CurYear=FValue FROM t_Systemprofile WHERE FKey='CurrentYear' And FCategory='IC' end --3.取出当前期间的起始日期 EXEC GetPeriodStartEnd @CurPeriod,@StartTime output,@EndTime output SELECT FItemID,FStockID,FBatchNo,FStockPlaceID,case when FKFDate is null then '' else convert(varchar(10),FKFDate,120) End as FKFDate,ISNULL(FKFPeriod,'') as FKFPeriod, Sum(FBegQty) As FQty ,0 As FQtyLock Into #RealTimeQty FROM ICInvBal WHERE FPeriod=@CurPeriod And FYear=@CurYear Group By FItemID,FStockID,FBatchNo,FStockPlaceID,FKFDate,FKFPeriod Having sum(FBegQty)<>0 --SELECT FItemID,FStockID,FBatchNo,FQty FROM #RealTimeQty Insert Into #RealTimeQty SELECT t1.FItemID,t2.FDCStockID As FStockID,IsNull(t1.FBatchNO,''),ISNULL(t1.FDCSPID,'') as FStockPlaceID, case when FKFDate is null then '' else convert(varchar(10),FKFDate,120) end ,ISNULL(t1.FKFPeriod,''), Sum(t1.FQty) As FQty,0 As FQtyLock FROM ICStockBillEntry t1,ICStockBill t2 WHERE t1.FInterID=t2.FInterID And (t2.FCheckerID>0 or t2.FCheckerID <0 or FUpStockWhenSave=1) And t2.FCancelLation=0 And t2.FTranType In (1,2,5,10,40,41) And FDate>=@StartTime Group By t1.FItemID,t2.FDCStockID,t1.FBatchNo,t1.FDCSPID,t1.FKFDate,t1.FKFPeriod
学生登陆密码。
1、生成目标代码,即计算机可以识别的代码。
2、对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。
3、因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。
4、需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要目标代码做出相应的修改,必须重新编译。
可以到页面去下载或者直接复制下列地址链接,导入迅雷即可下载或者留下邮箱发送给你!
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 oWXvkDN 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 rycscE4, 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 \BJnJk!% 1.程序分析:采取逆向思维的方法,从后往前推断。 @Ki`g(],P 2.程序源代码: h!d#=.R main() i&_sbQ^ { 6GJ?rE E/ int day,x1,x2; -$e\m] }Z day=9; hfEGkaV._3 x2=1; o^7NZ]m while(day>0) |W#^L`!G {x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/ 7Kh+m@q. x2=x1; + FLzK( day--; N18Zsdrp } OsC1('4@ printf("the total is %d\n",x1); ={zYcVI } N|7._AR2 ----------------------------------------------------------------------------- ?+5K2Zk 【程序22】 y#x]?%m 题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定 [=LQ,e$r7 比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出 \J1Jn~ 三队赛手的名单。 0Q>Yoa 11 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, *7-uQKp 则表明此数不是素数,反之是素数。 p&ZD1qa 2.程序源代码: a
不免费是否接受
//=================================[说明]=======================================*///学生成绩管理//文件名:main.cpp//------!!!!!!---------BOF-[程序代码开始]-------------------#include