以文本方式查看主题

-  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
--  
老师,你这让把控件去掉的方式,我修改了代码,可是这样生成不了数据,我还是用原来的代码,现在出现的问题是在窗体上都能看到生成的数据,可是却保存不到数据表里,后台数据库也没有,昨天我还能保存到数据库里的,也不知道怎么回事。

图片点击可在新窗口打开查看此主题相关图片如下:1111.jpg
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.txt




--  作者:有点蓝
--  发布时间: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) +