以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 删除表中所有记录不成功? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=20042) |
-- 作者:wzh198059 -- 发布时间:2012/5/28 10:19:00 -- 删除表中所有记录不成功? 请教高手: 我在设计主窗口时把table作为normal形式,并且,主窗口的afterload事件代码为:CurrentTable.Filter = "[_identify] Is null" 在把excel数据导入到此窗口中的table中后,点击“自动计算”按钮先判断导入excel内容是否有错误,当产生错误时想删掉table中的所有数据用了如下代码: If erro > 0 Then \' erro 是提前设置的一个计算错误的变量 messagebox.Show("开票明细资料或其它错误,请检查后重新导入计算!") for each r as row in currenttable.rows r.delete Next CurrentTable.DataTable.Save end if 测试不成功,每次执行完命令后都留有一行记录未能删除,请教错在那里! “自动计算”按钮代码如下: Dim d As Date = Date.Today Dim str_m As String = "开票资料" Dim str_d As String = Format(d,"yyyy年MM月") & str_m Dim hjkpsl As Integer Dim erro As Integer = 0 \'定义一个错误计数变量以便在核对"开票明细资料"时计数 If CurrentTable.Rows.Count > 0 Then \'首先判断开票明细资料的正确性!(方法:判断本次开票数量即"未开票数量" \' +原来开票的数量"累计开票数量"是否=订单数量"需求数量") For Each dr As Row In CurrentTable.Rows Dim ddh As String = dr("订单编号") Dim hh As Integer = dr("行号") Dim tbl As DataTable =DataTables("订单明细表") Dim dr_tbl As DataRow dr_tbl = tbl.Find("订单编号 = \'" & ddh & "\' and 行号 = \'" & hh & "\'") If dr_tbl IsNot Nothing Then Dim ljkpsl As Integer = dr_tbl("累计开票数量") Dim wkpsl As Integer = dr("未开票数量") Dim xqsl As Integer = dr_tbl("需求数量") hjkpsl = ljkpsl +wkpsl If hjkpsl > xqsl Then erro = erro +1 End If End If Next Else messagebox.Show("请先导入需要核对的开票资料明细!") End If If erro > 0 Then messagebox.Show("开票明细资料或其它错误,请检查后重新导入计算!") Dim i As Integer = CurrentTable.Rows.Count ‘ 改为此代码后提示索引超出范围???? For i1 As Integer = 0 To i-1 CurrentTable.Rows(i1).Delete() Next CurrentTable.DataTable.Save ElseIf erro = 0 And CurrentTable.Rows.Count > 0 Dim a As Double = DataTables("开票明细表").Compute("sum(开票金额)","开票明细名称 = \'" & str_d & "\'") Vars("kpzje") = a \'把当月开票总金额的值赋给公共变量 \'以下自动进行核对代码 For Each dr As Row In CurrentTable.Rows Dim ddh As String = dr("订单编号") Dim hh As String = dr("行号") Dim tbl As DataTable =DataTables("订单明细表") Dim dr_tbl As DataRow dr_tbl = tbl.Find("订单编号 = \'" & ddh & "\' and 行号 = \'" & hh & "\'") If dr_tbl IsNot Nothing Then Dim ljkpsl As Integer = dr_tbl("累计开票数量") Dim wkpsl As Integer = dr("未开票数量") dr_tbl("累计开票数量") = dr_tbl("累计开票数量")+dr("未开票数量") End If tbl.Save Next CurrentTable.Filter = "[_identify] Is null" Forms("核对结果窗口").open End If 先谢谢各位高手! |
-- 作者:wzh198059 -- 发布时间:2012/5/28 10:35:00 -- |
-- 作者:wzh198059 -- 发布时间:2012/5/28 10:46:00 -- ![]() ![]() |
-- 作者:狐狸爸爸 -- 发布时间:2012/5/28 11:24:00 -- 理由在这里有详细的介绍:
http://www.foxtable.com/help/topics/0599.htm
|
-- 作者:wzh198059 -- 发布时间:2012/5/28 14:00:00 -- 谢谢狐狸爸爸,先看看! |
-- 作者:wzh198059 -- 发布时间:2012/5/28 14:33:00 -- 问题已解决!谢谢狐爸!另外请教狐狸爸爸,诸如此类,删除时用for each语句是无法实现的? |
-- 作者:狐狸爸爸 -- 发布时间:2012/5/28 17:30:00 -- 显然,这种情况,用For Each 是不行的。 |
-- 作者:wzh198059 -- 发布时间:2012/5/28 20:54:00 -- 谢谢狐爸,师者传道授业解惑也!希望自己有一天也能帮上别的狐友! |