以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]可能是对副表理解不对,编写的核销代码不正常  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=61131)

--  作者:瞩望星空
--  发布时间:2014/12/7 17:46:00
--  [求助]可能是对副表理解不对,编写的核销代码不正常

在窗口中,想通过有窗口副表进行点选后,进行核销操作,即把相关记录置“已对账”为真,置“对账日期”为当天日期。

但是,对窗口表进行选择后,明明是选择了,几条,但是核销操作只能完成一部分,即总是少几条。

 

是不是这样操作不能放在副事表,要直接放在主表啊?

 

核销代码:

Tables(e.form.name & "_出库主表").StopRedraw
Tables(e.Form.Name &  "_出库主表").Filter = "对账单 = True And 已对账 = False "
MessageBox.Show("窗口出库主表已选择记录数:" & Tables(e.Form.Name &  "_出库主表").Rows.Count)
If Tables(e.Form.Name &  "_出库主表").Rows.Count>0
    If MessageBox.Show("是否核销所选出库单?" & vbcrlf & "核销后的单据将不出现在出库单列表中","请确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then
        Dim count As  Integer = 0
        For Each r As Row In Tables(e.Form.Name &  "_出库主表").Rows
            r("已对账") =  r("对账单")
            r("对账日期") = Date.Today
            MessageBox.Show("第 " & count+1 & " 次处理出库主表")   \'总是比选择的记录数少
            \'这里已删除其他处理代码
            count= count+1   \'提示处理几行
        Next
    End If
Else
    MessageBox.Show("没有选择需要核销的出库单","提示")
End If
Tables(e.form.name & "_出库主表").ResumeRedraw

 

 


--  作者:有点甜
--  发布时间:2014/12/7 17:49:00
--  
 For Each r As DataRow In Tables(e.Form.Name &  "_出库主表").DataTable.Select("对账单 = True And 已对账 = False")
    r("已对账") =  r("对账单")
    r("对账日期") = Date.Today
    MessageBox.Show("第 " & count+1 & " 次处理出库主表")   \'总是比选择的记录数少
   
    count= count+1   \'提示处理几行
Next

--  作者:瞩望星空
--  发布时间:2014/12/7 18:02:00
--  

谢谢甜总,现在正确了。图片点击可在新窗口打开查看

看样子,自己没有理解副表的含义。例子中的问题,想了一个下午都没搞清楚。