以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于计划管理 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=154603) |
||||
-- 作者:outcat -- 发布时间:2020/9/20 5:05:00 -- 关于计划管理 老师,我下面是一段关于生成当天营业数据的代码,但怕有时候商家忘记交班,想在每天下班前自动生成营业数据,比如 18点01执行这个操作,计划管理里,该怎样处理这段代码嘛 Dim d As WinForm.Label =Forms("交班").Controls("今日日期") d.text = Date.Today Dim jby As WinForm.Label =Forms("交班").Controls("交班员") jby.text = _UserName Dim lsxssl As WinForm.Label =Forms("交班").Controls("商家订货数量") Dim lsxsje As WinForm.Label =Forms("交班").Controls("商家订货金额") Dim lsxsds As WinForm.Label =Forms("交班").Controls("商家订货单数") lsxssl.text = DataTables("供应商订货总表").Compute("sum(订货数量)","日期 = \'#" & d.text & "#\'") lsxsje.text = DataTables("供应商订货总表").Compute("sum(订货金额)","日期 = \'#" & d.text & "#\'") lsxsds.text = DataTables("供应商订货总表").Compute("count(订货单号)","日期 = \'#" & d.text & "#\'") Dim cldhsl As WinForm.Label =Forms("交班").Controls("供应商回货数量") Dim cldhje As WinForm.Label =Forms("交班").Controls("供应商回货金额") Dim cldhds As WinForm.Label =Forms("交班").Controls("供应商回货单数") cldhsl.text =DataTables("供应商回货总表").Compute("sum(回货数量)","日期 = \'#" & d.text & "#\'") cldhje.text= DataTables("供应商回货总表").Compute("sum(回货金额)","日期 = \'#" & d.text & "#\'") cldhds.text = DataTables("供应商回货总表").Compute("count(回货单号)","日期 = \'#" & d.text & "#\'") Dim khdhsl As WinForm.Label =Forms("交班").Controls("客户订货数量") Dim khdhje As WinForm.Label =Forms("交班").Controls("客户订货金额") Dim khdhdj As WinForm.Label =Forms("交班").Controls("客户预付订金") Dim khdhds As WinForm.Label =Forms("交班").Controls("客户订货单数") khdhsl.text = DataTables("客户订货总表").Compute("sum(总数量)","日期 = \'#" & d.text & "#\'") khdhdj.text = DataTables("客户订货总表").Compute("sum(预付订金)","日期 = \'#" & d.text & "#\'") khdhje.text = DataTables("客户订货总表").Compute("sum(应付金额)","日期 = \'#" & d.text & "#\'") khdhds.text = DataTables("客户订货总表").Compute("count(订货单号)","日期 = \'#" & d.text & "#\'") Dim sjshsl As WinForm.Label =Forms("交班").Controls("商家送货数量") Dim sjshds As WinForm.Label =Forms("交班").Controls("商家送货单数") sjshsl.text =DataTables("商场送货总表").Compute("sum(送货数量)","日期 = \'#" & d.text & "#\'") sjshds.text = DataTables("商场送货总表").Compute("count(送货单号)","日期 = \'#" & d.text & "#\'") Dim rr As DataRow rr = DataTables("营业综合报表").sqlFind("日期 = \'" & d.text & "\'") If rr IsNot Nothing Then DataTables("营业综合报表").SQLDeleteFor("日期 = \'" & d.text & "\'") Dim r As Row = Tables("营业综合报表").AddNew r("商家订货数量") = lsxssl.text r("商家订货金额") = lsxsje.text r("商家订货单数") = lsxsds.text r("供应商回货数量") = cldhsl.text r("供应商回货金额") = cldhje.text r("供应商回货单数") = cldhds.text r("客户订货数量") = khdhsl.text r("客户订货金额") = khdhje.text r("客户订货单数") = khdhds.text r("客户预付订金") = khdhdj.text r("商家送货数量") = sjshsl.text r("商家送货单数") = sjshds.text r("交班员") = jby.text r("日期") = d.text DataTables("营业综合报表").save End If
|
||||
-- 作者:有点蓝 -- 发布时间:2020/9/20 20:27:00 -- 去掉控件,全部改为变量即可,如: Dim d As date = Date.Today …… Dim lsxssl As integer = DataTables("供应商订货总表").Compute("sum(订货数量)","日期 = \'#" & d.text & "#\'") …… r("商家订货数量") = lsxssl
|
||||
-- 作者:outcat -- 发布时间:2020/9/21 16:26:00 -- 老师,你这让把控件去掉的方式,我修改了代码,可是这样生成不了数据,我还是用原来的代码,现在出现的问题是在窗体上都能看到生成的数据,可是却保存不到数据表里,后台数据库也没有,昨天我还能保存到数据库里的,也不知道怎么回事。
|
||||
-- 作者:有点蓝 -- 发布时间:2020/9/21 16:34:00 -- Dim rr As DataRow rr = DataTables("营业综合报表").sqlFind("日期 = \'" & d.text & "\'") If rr IsNot Nothing Then msgbox("能不能弹出来?") DataTables("营业综合报表").SQLDeleteFor("日期 = \'" & d.text & "\'") Dim r As Row = Tables("营业综合报表").AddNew r("商家订货数量") = lsxssl.text …… DataTables("营业综合报表").save msgbox(DataTables("营业综合报表").HasChanges) ‘能不能弹出来? End If |
||||
-- 作者:outcat -- 发布时间:2020/9/21 17:03:00 -- 老师,不弹出对对话框,真不知道怎么回事了,昨天也不知道怎么保存的一条记录,现在也删除了。增加不了了 |
||||
-- 作者:有点蓝 -- 发布时间:2020/9/21 17:06:00 -- 不弹出对话框,说明sqlFind查询没有结果,没有符合条件的数据。 确定存在这个条件的数据?msgbox("日期 = \'" & d.text & "\'")
|
||||
-- 作者:outcat -- 发布时间:2020/9/21 22:07:00 -- Dim rr As DataRow rr = DataTables("营业综合报表").SQLFind("日期 = \'" & d.text & "\'") MessageBox.show(rr("日期")) \'\' If rr IsNot Nothing Then msgbox("能不能弹出来?") DataTables("营业综合报表").SQLDeleteFor("日期 = \'" & d.text & "\'") Dim r As Row = Tables("营业综合报表").AddNew r("商家订货数量") = lsxssl.text 老师,现在的问题应该就在红色部分这块了,现在数据里没有一条记录时, 在 MessageBox.show(rr("日期"))就报错了,当把这个判断条件去掉了,直接增加记录就可以,然后 再判断,当某个表发生了改变,再次点交班,就可以把当天旧的交班记录删除,生成新的交班记录了。 我想这样,当数据库里一条记录都没有是,就不判断了,直接向表中添加记录,等有了记录时再判断,这个逻辑对吗,我按照这个思路写了代码,现在头大了,怎么也不对,请教老师。
|
||||
-- 作者:有点蓝 -- 发布时间:2020/9/21 22:28:00 -- Dim rr As DataRow rr = DataTables("营业综合报表").sqlFind("日期 = \'" & d.text & "\'") If rr IsNot Nothing Then DataTables("营业综合报表").SQLDeleteFor("日期 = \'" & d.text & "\'") End If Dim r As Row = Tables("营业综合报表").AddNew r("商家订货数量") = lsxssl.text r("商家订货金额") = lsxsje.text r("商家订货单数") = lsxsds.text r("供应商回货数量") = cldhsl.text r("供应商回货金额") = cldhje.text r("供应商回货单数") = cldhds.text r("客户订货数量") = khdhsl.text r("客户订货金额") = khdhje.text r("客户订货单数") = khdhds.text r("客户预付订金") = khdhdj.text r("商家送货数量") = sjshsl.text r("商家送货单数") = sjshds.text r("交班员") = jby.text r("日期") = d.text DataTables("营业综合报表").save |
||||
-- 作者:outcat -- 发布时间:2020/9/21 23:42:00 -- 此主题相关图片如下:123.jpg 老师, 我现在 这个本日收入 = 客户订金+订货付款 +订货货款 srje.text = (khdhdj.text) + (khdhfk.text) + (khdhjk.text) 我现在这样写是错了,只是把这三个数字排在一起了,无法相加,老师这个该怎么处理呢
|
||||
-- 作者:有点蓝 -- 发布时间:2020/9/22 8:36:00 -- srje.text = val(khdhdj.text) + |