以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数量统计问题代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87893)

--  作者:feixianzhi
--  发布时间:2016/7/22 9:29:00
--  数量统计问题代码
请大红袍老师帮忙。
--  作者:大红袍
--  发布时间:2016/7/22 9:32:00
--  
 上传实例。
--  作者:feixianzhi
--  发布时间:2016/7/22 9:32:00
--  
上传附件,传不上去。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.rar


[此贴子已经被作者于2016/7/22 9:32:48编辑过]

--  作者:大红袍
--  发布时间:2016/7/22 9:41:00
--  
 

        Dim dr As DataRow = e.DataRow

        Dim d As Date = new Date(2016,1,1)     \'定义d为日期函数,并等于2016年1月1日

        Dim d1 As Date =  d.AddMonths(13)     \'定义d1为日期函数,并等于d加上13个月,即,d1为2017年1月1日

 

改成

 

 

        Dim dr As DataRow = e.DataRow

        Dim d As Date = Forms("窗口1").Controls("DateTimePicker1").Value

        Dim d1 As Date = Forms("窗口1").Controls("DateTimePicker2").Value


--  作者:feixianzhi
--  发布时间:2016/7/22 9:50:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:错误提示.png
图片点击可在新窗口打开查看

大红袍老师,我改完后,出现错误提示。怎么办呀。

--  作者:feixianzhi
--  发布时间:2016/7/22 10:35:00
--  
大红袍老师帮忙呀。急用。
--  作者:大红袍
--  发布时间:2016/7/22 12:20:00
--  

Dim dr As Row = Tables("表a").Current

Dim d As Date = e.Form.Controls("DateTimePicker1").Value

Dim d1 As Date = e.Form.Controls("DateTimePicker2").Value

\'按入库/供应商
If dr("返利类型") = "按入库/供应商" Then        \'以供应商编码\\药品名称\\生产企业\\进价,为条件
    dr("返利数量") = DataTables("入库结构报表2016").Compute("sum(数量)",CExp("供应商编码=\'{0}\' and 药品名称=\'{1}\' and 生产企业=\'{2}\' and 单据进价={3} and 单据日期 >= #" & d & "# and 单据日期 < #" & d1 & "#",dr("供应商编码"),dr("商品名称"),dr("生产企业"),dr("进价")))
   
   
    \'按入库/生产企业
ElseIf dr("返利类型") = "按入库/生产企业" Then       \'以生产企业\\进价,为条件
    dr("返利数量") = DataTables("入库结构报表2016").Compute("sum(数量)",CExp("生产企业=\'{0}\' and 单据进价={1} and 单据日期 >= #" & d & "# and 单据日期 < #" & d1 & "#",dr("生产企业"),dr("进价")))
   
    \'按销售/供应商/指定医院
ElseIf dr("返利类型") = "按销售/供应商/指定医院" Then       \'以供应商编码\\药品名称\\生产企业\\指定医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp("供应商编码=\'{0}\' and 商品名称=\'{1}\' and 生产企业=\'{2}\' and 进价=\'{3}\' and 客户编码={4} and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("供应商编码"),dr("商品名称"),dr("生产企业"),dr("进价"),dr("客户编码")))
   
    \'按销售/供应商
ElseIf dr("返利类型") = "按销售/供应商" Then       \'以销售\\供应商\\生产企业\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp("供应商编码=\'{0}\' and 商品名称=\'{1}\' and 生产企业=\'{2}\' and 进价={3} and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("供应商编码"),dr("商品名称"),dr("生产企业"),dr("进价")))
   
    \'按销售/生产企业
ElseIf dr("返利类型") = "按销售/生产企业" Then       \'生产企业\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp("商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价={2} and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价")))
   
    \'按销售/生产企业/指定医院
ElseIf dr("返利类型") = "按销售/生产企业/指定医院" Then       \'以药品名称\\生产企业\\指定医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价=\'{2}\' and 客户编码={3} and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价"),dr("客户编码")))
   
    \'按销售/生产企业/指定医院/不按单价
ElseIf dr("返利类型") = "按销售/生产企业/指定医院" Then       \'以药品名称\\生产企业\\指定医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\'and 客户编码={2} and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("客户编码")))
   
    \'按销售/生产企业/二级医院
ElseIf dr("返利类型") = "按销售/生产企业/二级医院" Then       \'以药品名称\\生产企业\\二级医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价=\'{2}\' and 按医院级别=\'二级\' and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价")))
   
    \'按销售/生产企业/托管医院
ElseIf dr("返利类型") = "按销售/生产企业/托管医院" Then       \'以药品名称\\生产企业\\托管医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价=\'{2}\' and 客户编码 in (\'1290\' ,\'2848\' ,\'2765\' ,\'1238\' ,\'1283\' ,\'1286\' ,\'1285\' ,\'1284\' ,\'1561\',\'1292\' ,\'2898\' ,\'6294\' ,\'2405\',\'4072\' ,\'2659\' ,\'6340\' ,\'0481\' ,\'0626\' ,\'6434\' ,\'6435\' ,\'6422\' ,\'6427\',\'0590\' ,\'6352\') and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价")))
   
    \'按销售/供应商/生产企业/托管医院
ElseIf dr("返利类型") = "按销售/供应商/生产企业/托管医院" Then       \'以药品名称\\生产企业\\托管医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价=\'{2}\'and 供应商编码=\'{3}\'  and 客户编码 in (\'1290\' ,\'2848\' ,\'2765\' ,\'1238\' ,\'1283\' ,\'1286\' ,\'1285\' ,\'1284\' ,\'1561\',\'1292\' ,\'2898\' ,\'6294\' ,\'2405\',\'4072\' ,\'2659\' ,\'6340\' ,\'0481\' ,\'0626\' ,\'6434\' ,\'6435\' ,\'6422\' ,\'6427\',\'0590\' ,\'6352\') and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价"),dr("供应商编码")))
   
    \'按销售/生产企业/非托管医院
ElseIf dr("返利类型") = "按销售/生产企业/非托管医院" Then       \'以药品名称\\生产企业\\托管医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价=\'{2}\' and 客户编码 not in (\'1290\' ,\'2848\' ,\'2765\' ,\'1238\' ,\'1283\' ,\'1286\' ,\'1285\' ,\'1284\' ,\'1561\',\'1292\' ,\'2898\' ,\'6294\' ,\'2405\',\'4072\' ,\'2659\' ,\'6340\' ,\'0481\' ,\'0626\' ,\'6434\' ,\'6435\' ,\'6422\' ,\'6427\',\'0590\' ,\'6352\') and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价")))
   
    \'按销售/供应商/生产企业/非托管医院
ElseIf dr("返利类型") = "按销售/供应商/生产企业/非托管医院" Then       \'以药品名称\\生产企业\\托管医院\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价=\'{2}\'and 供应商编码 =\'{3}\'  and 客户编码 not in (\'1290\' ,\'2848\' ,\'2765\' ,\'1238\' ,\'1283\' ,\'1286\' ,\'1285\' ,\'1284\' ,\'1561\',\'1292\' ,\'2898\' ,\'6294\' ,\'2405\',\'4072\' ,\'2659\' ,\'6340\' ,\'0481\' ,\'0626\' ,\'6434\' ,\'6435\' ,\'6422\' ,\'6427\',\'0590\' ,\'6352\') and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价"),dr("供应商编码")))
   
    \'按销售/生产企业/乡镇卫生院(一级)
ElseIf dr("返利类型") = "按销售/生产企业/乡镇卫生院(一级)" Then       \'以药品名称\\生产企业\\乡镇卫生院(一级)\\进价,为条件
    dr("返利数量") = DataTables("批发及退货报表2016").Compute("sum(数量)",CExp(" 商品名称=\'{0}\' and 生产企业=\'{1}\' and 进价=\'{2}\' and 按医院级别=\'乡镇卫生院(一级)\' and 会计日 >= #" & d & "# and 会计日 < #" & d1 & "#",dr("商品名称"),dr("生产企业"),dr("进价")))
   
End If

 


--  作者:feixianzhi
--  发布时间:2016/7/22 12:25:00
--  
谢谢大红袍老师。
--  作者:feixianzhi
--  发布时间:2016/7/22 12:43:00
--  
大红袍老师,还有个问题。上面的代码,只有选定的行才能计算数量,还有选定的行就不计算。需要怎样改动才能点击按钮实现所有行自动计算。
--  作者:feixianzhi
--  发布时间:2016/7/22 12:48:00
--  
大红袍老师,还有个问题。上面的代码,只有选定的行才能计算数量,没有选定的行就不计算。需要怎样改动才能点击按钮实现所有行自动计算。