以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]for each (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85182) |
||||
-- 作者:zcgmxf -- 发布时间:2016/5/19 14:22:00 -- [求助]for each 老师 ,下一段代码,如果文本框中有了新的发票号码、作废发票号码不为空时,那么着色的代码会执行两次或以上,如何只执行一次?搞糊涂了,请指点,谢谢。 Dim r As Row = Tables("收费登记表").Current If r("打印次数") < 1 Then r.Save() MessageBox.Show("请选择""打印发票!""","提示") Return Else Dim str As String = Tables("收费登记表").current("作废发票号码") Dim fphm As WinForm.TextBox = e.Form.Controls("TextBox3") For Each s As String In str.Split(";") If s Like "*" & fphm.Value & "*" Then MessageBox.Show("该发票已经作废!","提示") Return Else Dim cst As WinForm.Label = e.Form.Controls("Label46") r("计财收费") = User.Name r("收费时间") = Date.Now cst.Text = User.Name & Date.Now r("已付款") = True Dim doc As PrintDoc = e.Form.GernatePrintDoc() doc.Print() r("打印次数") = r("打印次数") + 1 r.Save() e.Form.Close() End If Next End If |
||||
-- 作者:大红袍 -- 发布时间:2016/5/19 15:05:00 -- msgbox(s)
做例子发上来看看。 |
||||
-- 作者:zcgmxf -- 发布时间:2016/5/20 7:13:00 --
|
||||
-- 作者:zcgmxf -- 发布时间:2016/5/20 7:21:00 -- 如果去掉下面的代码好像不会执行多次。是不是遍历时,如果有作废发票号码,它又不等于文本框中的值,按照代码就执行两次。
Dim Result As DialogResult MessageBoxIcon.Question) |
||||
-- 作者:Hyphen -- 发布时间:2016/5/20 9:03:00 -- 这跟数据的业务逻辑有关,请提供可以测试的数据。 当作废发票有多个又不包含指定发票的时候,就会这样
|
||||
-- 作者:大红袍 -- 发布时间:2016/5/20 9:19:00 -- 例子如何测试才会出现你的问题?不知道怎么触发啊。 |
||||
-- 作者:zcgmxf -- 发布时间:2016/5/20 15:59:00 -- 如果不是空的,双击行打开打印界面,在发票号码框中输入号码十位数,点击打印发票。完成后双击打开界面,确认作废。再在发票号码框中输入新号码十位数,点击重新打印就会出现。 |
||||
-- 作者:大红袍 -- 发布时间:2016/5/20 16:16:00 -- Dim r As Row = Tables("收费登记表").Current |
||||
-- 作者:zcgmxf -- 发布时间:2016/5/20 23:22:00 -- 谢谢!系统中多处用到 contains ,怎么就没想到呢?哈哈哈哈哈。。。。不熟练。 |