Lunes 18 de Noviembre de 2024, 05:20
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Que Me Aconsejais?
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Que Me Aconsejais? (Leído 2822 veces)
ebolo
Miembro MUY activo
Mensajes: 188
Que Me Aconsejais?
«
en:
Miércoles 28 de Abril de 2004, 14:18 »
0
Hola.
Os pido consejo por que no sé muy bien que objeto usar. Lo que quiero hacer es, una vez he elegido dentro de un combobox ó listbox una línea (están rellenos de artículos), que me salgan todas las entradas de esos artículos con datos de los mismos.
Los datos los tengo en tablas de access y ahí no tengo problemas de obtenerlos.
El problema es que no sé que usar para mostrar los datos, porque lo suyo es que salga cada entrada en una fila y varias columnas etiquetadas, con los campos que quiero que me aparezcan.
Luego tengo que escoger la fila que deseo para realizar otra serie de acciones.
Estoy intentando usar un listview, pero por si hay otro objeto que me pueda valer.
Saludos y gracias.
Tweet
Jose Arriagada
Miembro MUY activo
Mensajes: 373
Re: Que Me Aconsejais?
«
Respuesta #1 en:
Miércoles 28 de Abril de 2004, 17:29 »
0
Voy a tratar de responder tu problema, de lo poco que entendi:
1). Una de las falencias del combobox, es que simplemente te sirve
para datos discretos.
Por ejemplo:
Para el sexo, utilizas el combobox con
cmbSexo.additem "Masculino"
cmbSexo.additem "Femenino"
Y tu sabes que si selecciona "Masc", el indice es 0,
y si selecciona "Fem" el indice es 1.
En este control solo tienes referencia al indice seleccionado, es decir, a
la posicion del registro seleccionado.
En el caso de multiples datos, el combobox no te sirve.
2). En tu caso te sirve el listview o el treeview, ya que ambos tienen
la particularidad de almacenar "clave" y "texto", de manera que cuando
selecciones un nodo, puedes saber la clave y con ella, buscar tus datos
y mostrarlos.
3) Te adjunto un ejemplo.
En un form, inserta un listview y un treeview y coloca el siguiente codigo:
En el form, en la seccion declaraciones coloca
Dim gNodoTrv As Node
Dim gNodoLst As ListItem
Private Sub Form_Load()
'El cargar el listview es de la forma
'SET var=nombrelst.LISTITEM.ADD(posicion,clave,texto)
'La clave debe comenzar con un caracter siempre
Set gNodoLst = ListView1.ListItems.Add(1, "T1", "Uno")
Set gNodoLst = ListView1.ListItems.Add(2, "T2", "Dos")
Set gNodoLst = ListView1.ListItems.Add(3, "T3", "Tres")
'El cargar el treeview es de la forma
'Para el padre
'SET var=nombretrv.NODES.ADD( , ,clave,texto)
'La clave debe comenzar con un caracter siempre
'Para el hijo
'SET var=nombretrv.NODES.ADD( clavepadre,TVWCHILD ,clavehijo,texto)
'La clave debe comenzar con un caracter siempre
'Inserto los nodos padres
Set gNodoTrv = TreeView1.Nodes.Add(, , "T1", "Uno")
'Con esta instruccion, le digo, que el nodo se abra y muestre los hijos
gNodoTrv.Expanded = True
Set gNodoTrv = TreeView1.Nodes.Add(, , "T2", "Dos")
gNodoTrv.Expanded = True
Set gNodoTrv = TreeView1.Nodes.Add(, , "T3", "Tres")
gNodoTrv.Expanded = True
'Ahora se insertan nodos hijos
Set gNodoTrv = TreeView1.Nodes.Add("T1", tvwChild, "T11", "Hijo 11")
Set gNodoTrv = TreeView1.Nodes.Add("T1", tvwChild, "T12", "Hijo 12")
Set gNodoTrv = TreeView1.Nodes.Add("T2", tvwChild, "T21", "Hijo 21")
Set gNodoTrv = TreeView1.Nodes.Add("T3", tvwChild, "T31", "Hijo 31")
Set gNodoTrv = TreeView1.Nodes.Add("T3", tvwChild, "T32", "Hijo 32")
Set gNodoTrv = TreeView1.Nodes.Add("T3", tvwChild, "T33", "Hijo 33")
End Sub
Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)
msg = "Clave=" & Item.Key & vbLf
msg = msg & "Texto=" & Item.Text
MsgBox msg
End Sub
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
msg = "Clave=" & Node.Key & vbLf
msg = msg & "Texto=" & Node.Text
MsgBox msg
End Sub
Espero te sirva de referencias.
ebolo
Miembro MUY activo
Mensajes: 188
Re: Que Me Aconsejais?
«
Respuesta #2 en:
Miércoles 28 de Abril de 2004, 19:19 »
0
PD.: He tenido que editar para cambiar espacios en blanco por puntos, para que se quedará todo como quería.
Hola Jose Arriagada, gracias por la ayuda. Perdona por la explicación, me dí cuenta también que era difícil de entender. Voy a intentar explicarme de otra manera.
Estoy usando un listview, que al final es lo que he elegido usar.
El listview tiene 7 columnas, lo quiero es añadir en cada columna, que ya están etiquetadas, sus datos, xej: esto es lo que quiero conseguir:
Año..Serie.Tipo....Pdto....Lote...UAct....UIni.
2004...A.....1.......99999...10....1000...10000
es decir añadir todos los datos del mismo producto en la misma fila.
Cada fila se irá rellenado de datos según la consulta de SQL. Cada fila es de un lote.
Luego debe elegir el operario que lote va a usar.
El problema sólo lo tengo en rellenar adecuadamente el listview.
---------------------------------------------------------------
Hasta ahora lo que he conseguido es:
- Añadir los datos del mismo pdto en distinta fila, usando el siguiente código:
ListView1.ListItems.Add(, ,Lote!año).SubItems(1) = Lote!Serie
ListView1.ListItems.Add(, ,Lote!año).SubItems(2) = Lote!Tipo
ListView1.ListItems.Add(, ,Lote!año).SubItems(3) = Lote!Pdto
ListView1.ListItems.Add(, ,Lote!año).SubItems(4) = Lote!Lotes
ListView1.ListItems.Add(, ,Lote!año).SubItems(5) = Lote!Uact
ListView1.ListItems.Add(, ,Lote!año).SubItems(6) = Lote!Uini
Año..Serie.Tipo....Pdto....Lote...UAct....UIni.
2004...A
2004...........1
2004..................99999
2004.............................10
2004......................................1000
2004.................................................10000
- ó añadir todos los datos en la 1ª columna
Año..Serie.Tipo....Pdto....Lote...UAct....UIni.
2004
A
1
99999
10
1000
10000
-------------------------------------------------------------
Gracias de nuevo.
ebolo
Miembro MUY activo
Mensajes: 188
Re: Que Me Aconsejais?
«
Respuesta #3 en:
Jueves 29 de Abril de 2004, 08:18 »
0
Hola, ya he conseguido solucionarlo, el problema era que no hacia bien las entradas de los subitems al listview.
Lo que he hecho por si alguno le interesa es:
ListView1.ListItems.Add , ,Lote!año
ListView1.ListItems.(ListView1.ListItems.Count).SubItems(1) = Lote!Serie
ListView1.ListItems.(ListView1.ListItems.Count)SubItems(2) = Lote!Tipo
y así sucesivamente hasta llenar las 7 columnas (6 subitems)
Gracias de nuevo.
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Que Me Aconsejais?
«
Respuesta #4 en:
Jueves 29 de Abril de 2004, 09:44 »
0
Hola ebolo.
Yo para estas cosas suelo utilizar un FlexGrid. Para mi usar un listview como un grid para visualizar datos de una tabla tiene un claro inconveniente: desperdicias la potencia que tiene el control (ten en cuenta que sólo utilizas la vista 'report'), potencia que provoca que sea un control más pesado que un flexgrid. Ahora, para gustos hay colores.
Por otro lado, y completando un poco el tema: los combobox tienen una propiedad llamada
ItemData
que permiten asociar un valor (tipo long) a cada item del combo, lo cual puede dar muchísimo juego...
Suerte.
ebolo
Miembro MUY activo
Mensajes: 188
Re: Que Me Aconsejais?
«
Respuesta #5 en:
Jueves 29 de Abril de 2004, 15:52 »
0
Gracias Brroz.
Lo probaré porque, en principio sólo tengo que mostrar reports, y si con algo menos pesado funciona mejor.
Saludos.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Que Me Aconsejais?