以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 既要次日从零开始算,又不想发布后更新? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=132178) |
-- 作者:fengwenliuyan -- 发布时间:2019/3/15 16:15:00 -- 既要次日从零开始算,又不想发布后更新? 打印窗口的AfterLoad事件:
Dim d As Date If Tables("出入库明细表.出入库登记表").Rows.Count <> 0 AndAlso Date.TryParse(Tables("出入库明细表.出入库登记表").Current("出库日期"), d) Then Dim bh As String = "YH" & Format(d, "yyyyMMdd") Dim max As String Dim idx As Integer Dim fdr As DataRow = DataTables("出入库打印信息表").Find("日期 = #" & d & "#") If fdr Is Nothing Then fdr = DataTables("出入库打印信息表").AddNew fdr("日期") = d fdr("次数") = 0 End If e.Form.Controls("出库编号").Text = bh & Format(fdr("次数") + 1, "000") End If |
-- 作者:有点甜 -- 发布时间:2019/3/15 16:22:00 -- 你这个代码,只要当天的数据保存而且加载出来,编号都是正确的。
除非你数据没有加载出来。
请具体说明一下你的问题。 |
-- 作者:fengwenliuyan -- 发布时间:2019/3/15 16:29:00 -- 表的DataColChanged事件: Select Case e.DataCol.Name Case "打印" If Forms("出入库打印窗口").Opened Then Dim d As Date If Date.TryParse(e.DataRow("出库日期"), d) Dim bh As String = "YH" & Format(d, "yyyyMMdd") Dim max As String Dim idx As Integer Dim fdr As DataRow = DataTables("出入库打印信息表").Find("日期 = #" & d & "#") If fdr Is Nothing Then fdr = DataTables("出入库打印信息表").AddNew fdr("日期") = d fdr("次数") = 0 End If Forms("出入库打印窗口").Controls("出库编号").Text = bh & Format(fdr("次数") + 1, "000") End If End If End Select 打印窗口的AfterLoad事件: Dim d As Date If Tables("出入库明细表.出入库登记表").Rows.Count <> 0 AndAlso Date.TryParse(Tables("出入库明细表.出入库登记表").Current("出库日期"), d) Then Dim bh As String = "YH" & Format(d, "yyyyMMdd") Dim max As String Dim idx As Integer Dim fdr As DataRow = DataTables("出入库打印信息表").Find("日期 = #" & d & "#") If fdr Is Nothing Then fdr = DataTables("出入库打印信息表").AddNew fdr("日期") = d fdr("次数") = 0 End If e.Form.Controls("出库编号").Text = bh & Format(fdr("次数") + 1, "000") End If 打印按钮的单击事件: Dim fdr As DataRow = DataTables("出入库打印信息表").Find("日期 = #" & e.Form.Controls("出库日期").Text & "#") fdr("次数") += 1 For Each r As Row In Tables("出入库明细表.出入库登记表") r("出库编号") = e.Form.Controls("出库编号").Text r("出库日期") = e.Form.Controls("出库日期").value r("开票人") = e.Form.Controls("开票人").Text Next
|
-- 作者:有点甜 -- 发布时间:2019/3/15 16:56:00 --
请具体说明你的问题是什么。
|
-- 作者:fengwenliuyan -- 发布时间:2019/3/15 17:11:00 -- 回复:(有点甜) 请具体说明你的问题是什么。... 想要达到的效果是:既要次日从零开始算,又不想发布后更新? 现状是:每次项目重新发布后,打开项目,即使当天已经打印了50次,只要发布项目,打印的出库编号,尾号也会从001重新开始算起,不知道代码应该怎么改? 原先的问题代码,已经在发在上面了!
|
-- 作者:有点甜 -- 发布时间:2019/3/15 17:24:00 -- 1、你用的是【内部数据源】,还是外部数据源?请尽量使用外部数据源。
2、你重新发布后,你【出入库打印信息表】本来的数据还在吗?数据不在了,自然会重新计算。 |
-- 作者:fengwenliuyan -- 发布时间:2019/3/15 18:21:00 -- 回复:(有点甜)1、你用的是【内部数据源】,还是外部... 使用的是外部数据源,发布前后是在同一个数据库运行,应该不是这个问题吧! 是不是这个问题,怎么改才好?
|
-- 作者:有点甜 -- 发布时间:2019/3/15 18:39:00 -- 没看懂你表达的意思,做个实例发上来说明具体问题。 |
-- 作者:fengwenliuyan -- 发布时间:2019/3/16 10:04:00 -- 回复:(有点甜)没看懂你表达的意思,做个实例发上来... 因为源文件数据不方便,所有弄了个内部数据源的文件, 测试可以在“统正出库打印窗口”中进行,求帮助,谢谢! [此贴子已经被作者于2019/4/30 9:55:22编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/3/16 10:20:00 -- 我测试没有问题! 按照什么步骤测试会有问题? |