Amigos, tengo un problema que no se como resolver:
Quiero hacer un LISTBOX con jerarquas con dos tablas relacionadas, por ejemplo (Clientes y Facturas) El elemento padre del Listbox sera el Nombre de Cliente y los Elementos Hijos las facturas de el cliente PADRE. Me podrn ayudar con un cdigo de ejemplo ?
De antemano, gracias!
establecer la propiedad AllowExpandableRows a true, para iniciar valores en en listbox puede ser:
[code]Var rows As RowSet
Try
rows= mDb.SelectSQL(“SELECT * FROM city;”)
Catch exc As DatabaseException
MessageBox exc.Message
End Try
If rows Is Nil Then Return
For Each row As DatabaseRow In rows
ListBox1.AddExpandableRow row.Column(“city”).StringValue
Listbox1.RowTagAt(Listbox1.LastRowIndex) = row.Column(“city_id”).StringValue
Next
rows.Close[/code]
el RowTagAt es un valor oculto en cada fila, es la relacin entre las dos tablas
en el evento ExpandRow colocar:
[code]Sub ExpandRow(row As Integer) Handles ExpandRow
Var cityId As String= Me.RowTagAt(row)
Var rows As RowSet
Try
rows = mDb.SelectSQL(“SELECT * FROM address WHERE city_id=?”, cityId)
Catch exc As DatabaseException
MessageBox "Error: " + exc.Message
End Try
If rows Is Nil Then Return
For Each rowData As DatabaseRow In rows
ListBox1.AddRow rowData.Column(“address”).StringValue
Next
rows.Close
End Sub
[/code]
y en el evento DoubleClick del listbox:
Me.RowExpandedAt(Me.SelectedRowIndex) = Not Me.RowExpandedAt(Me.SelectedRowIndex)
puede usar mas columnas.
Bernardo Monsalve.
Gracias estimado ! Ya implemente el cdigo, me estoy re-acostumbrando a XOJO nuevamente. Agradezco tu tiempo y tu apoyo.
Atentamente
Juan Martnez Man