2013-05-15 3 views
0

Это приложение для системы POS для химчистки. В форме бронирования находятся групповые группы, содержащие кнопки элементов и древовидный вид, где все заказы отбрасываются и он принимает этот формат.Управление привязкой Treeview в vb.net

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) 

Указанные выше элементы представляют собой кнопки, сгруппированные в группы. Существует групповой ящик для одежды, цветов, материалов и дополнительных, которые указаны в процентах, исходя из количества чистки, например, только для прессования, повторной очистки и т. Д.

Когда я нажимаю кнопку в определенной группе (скажем, одежду или одежду), элемент бросается в древовидную структуру, и его группа исчезает, и отображается следующая группа (цвет), и это продолжается до тех пор, пока я не доберусь до последнего этапа, который является Экстра, а затем я нажимаю на кнопку следующего элемента, чтобы начать вводить другую одежду. Это я могу сделать, но вот моя проблема.

  1. Я не знаю, как добавить цифры количественных рядом элементов узла в TreeView (как вы можете видеть, первый узел, который имеет брючный фигуру рядом с ней, 2, эта цифра предназначена для стоять рядом с элементами узла (одежда) в левой части древовидного изображения, но не как элемент узла или подзаголовка

  2. Я не знаю, как добавить цифры цены напротив элементов узла в дереве (As вы можете видеть, что цены не являются узлами или предметами субнома, которые они должны стоять отдельно в крайнем правом углу дерева.

  3. Я не знаю, как связать каждый из этих элементов (узлов и подносов) с столбцами в таблице базы данных.

ответ

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 

Второй проход будет тянуть и создавать datatable или считыватель суб узлов. Петля через этот набор добавляет вспомогательные узлы к соответствующему родительскому узлу.

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. Прикрепите подсчет субномии к запросу родительского узла и добавьте количество в момент добавления узла.

Из информации, которую вы дали им, являются моими предложениями.