0

这是干洗POS系统的应用程序。Booking 表单中有包含项目按钮的组框和一个树形视图,所有订单都放入其中,并且采用这种格式。

2x Trouser (node)                  20 (Price)

     Blue   (Sub node)
     Cotton (Subnode)

1x Shirt      (node)               30 (Price)

     Black  (Sub node)
     Linen  (Sub node)

2x Shorts     (node)               30 (Price)

     Black  (Sub node)
     Linen  (Sub node)
     Press only(Sub node)         -15 (half of 30)

上述项目是分组在组框中的按钮。有衣服,颜色,材料和其他的分组框,它们是基于清洁量的百分比,例如仅压榨,重新清洁等。

当我单击特定组(例如衣服或服装)中的按钮时,该项目被扔到树视图中,其组消失并显示下一个组(颜色),这一直持续到我到达最后一个阶段,即 Extra然后我单击下一个项目按钮开始输入另一件衣服。这是我可以做到的,但这是我的问题。

  1. 我不知道如何在树视图中的节点项目旁边添加数量数字(如您所见,裤子的第一个节点旁边有一个数字,2,该数字是为了站在节点项目旁边(衣服) 在树视图的左侧,但不作为节点或子节点项

  2. 我不知道如何在树视图中的节点项目对面添加价格数字(如您所见,价格既不是节点也不是子节点项目,它们应该分别位于树视图的最右侧

  3. 我不知道如何将这些项目(节点和子节点)中的每一个绑定到数据库表中的列。

4

1 回答 1

0

如果我正确解释了您的操作,您将无法将任何内容绑定到 Treeview 控件。您需要创建循环遍历数据并相应地将节点添加到树视图的过程。我在下面添加了一些粗略的代码,可能会对您有所帮助。

在过去,我已经通过两次传递来完成此操作。第一遍提取并创建仅包含顶级节点的数据表或读取器,在您的情况下为裤子、衬衫和短裤。遍历该组数据并将节点添加到 TreeView。

Private Sub RefreshTopNodes()
        Dim dt As DataTable = TopNodes()
        For I As Integer = 0 To dt.Rows.Count - 1
            AddRootNode(dt.Rows(I).Item(0).ToString, dt.Rows(I).Item(1).ToString, dt.Rows(I).Item(2).ToString)
        Next
End Sub

Private Sub AddRootNode(NodeID As String, NodeDesc As String, Price As Integer)
        If NodeID = "ROOT" Then Exit Sub
        Dim tn As TreeNode = TreeQs.Nodes.Add(NodeID, NodeDesc & " (" & Price.ToString & ")", 0)
        tn.Tag = NodeID
End Sub

第二遍将提取并创建子节点的数据表或读取器。循环通过该集合将子节点添加到适当的父节点。

Private Sub RefreshSubNodes()
        Dim dt As DataTable = SubNodes()
        For I As Integer = 0 To dt.Rows.Count - 1
            AddSubNode(dt.Rows(I).Item(0).ToString, dt.Rows(I).Item(1).ToString, dt.Rows(I).Item(2).ToString, dt.Rows(I).Item(3).ToString)
        Next
    Catch ex As Exception
        ErrorHandler("frmADCMainPA.RefreshSubNodes", ex.ToString)
    End Try
End Sub

Private Sub AddSubNode(ParentNodeID As String, SubNodeID As String, SubNodeDesc As String, Price As Integer)
        Dim tn As TreeNode = TreeQs.Nodes(ParentNodeID).Nodes.Add(ParentNodeID & "-" & SubNodeID, SubNodeDesc & " (" & Price.ToString & ")")
        tn.Tag = ParentNodeID & ";" & SubNodeID
End Sub

我认为对于数量,您可以通过两种方式做到这一点。1. 在遍历子节点时计数,然后返回父节点并编辑节点的文本以显示数量。2.将子节点计数附加到父节点查询中,并在添加节点时添加到数量中。

根据您提供的信息,这些是我的建议。

于 2013-05-15T20:47:50.720 回答