以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  在下面代码中如何使库存的累计也为36,而不是累计为222呢?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=10502)

--  作者:fyj0326
--  发布时间:2011/6/9 10:11:00
--  在下面代码中如何使库存的累计也为36,而不是累计为222呢?
在下面代码中如何使库存的累计也为36,而不是累计为222呢?  发帖心情 Post By:2011-6-9 10:04:00 [只看该作者]

 

 

在下面代码中如何使库存的累计也为36,而不是软件生成的库存累计为222呢?

 

Dim t As Table = Tables("例子二")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "日期"
g.TotalOn = "入库,出库,库存"
g.Caption = "{0}月 小计"
g.DateGroup = DateGroupEnum.Month
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "日期"
g.TotalOn = "入库,出库,库存"
g.Caption = "{0}月 累计"
g.DateGroup = DateGroupEnum.Month
t.SubtotalGroups.Add(g)

With CurrentTable
   .Rows(.Rows.count,True)("库存") = .Rows(.Rows.count,True)("入库")-.Rows(.Rows.count,True)("出库")
End With



--  作者:fyj0326
--  发布时间:2011/6/9 10:12:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:20110609-截图 3.png
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2011/6/9 10:15:00
--  

Dim t As Table = Tables("例子二")
Dim g As Subtotalgroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = False
t.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "日期"
g.TotalOn = "入库,出库,库存"
g.Caption = "{0}月 小计"
g.DateGroup = DateGroupEnum.Month
t.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "日期"
g.TotalOn = "入库,出库,库存"
g.Caption = "{0}月 累计"
g.DateGroup = DateGroupEnum.Month
t.SubtotalGroups.Add(g)
t.Subtotal

For i As Integer = 0 To CurrentTable.Rows.Count(True) - 1
    Dim r As Row = CurrentTable.Rows(i,True)
    If r.IsGroup
        r("库存") = r("入库")- r("出库")
    End If
Next


--  作者:fyj0326
--  发布时间:2011/6/9 10:22:00
--  
ok了,谢谢
--  作者:AMWGWG
--  发布时间:2011/6/9 12:23:00
--  

我们可以在DataColChanging事件中设置代码,使得不管通过任何方式修改列的内容,都不能输入重复值,例如希望订单号列不能输入重复值:

If e.DataCol.Name = "第一列" Then
    Dim dr As DataRow
    dr = e.DataTable.Find("第一列 = \'" & e.NewValue & "\'")
    If dr IsNot Nothing Then
        MessageBox.Show("此第一列已经存在!")
        e.Cancel = True
    End If
End If

怎么我用了还是能输入重复值吗?那里有错


--  作者:狐狸爸爸
--  发布时间:2011/6/9 12:28:00
--  

做个例子传上来看看。


--  作者:blackzhu
--  发布时间:2011/6/9 13:24:00
--  
If e.DataCol.Name = "第一列"Then
    Dim drs As List(Of DataRow) = DataTables("表名").Select("[第一列] = \'" & e.DataRow("第一列") & "\'")
    If drs.Count - 1 > 0 Then
        MessageBox.Show("该单位数据已经存在不能添加!")
        e.datarow("第一列")=nothing
    End If
End If