For Each dr As DataRow In DataTables("表A").DataRows 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 Next
|