|
Página 1 de 1
|
Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Va...
Autor |
Mensaje |
LuisDaniel
Usuario
Registrado: Abril 2012
Mensajes: 9
Edad: 62
|
Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable
Necesito que se muestren los campos seleccionados según las variables de los IF
Pero siempre se muestran todos los campos.
Unicamente me ha funcionado si hago:
dvClientes.Columns=["RazonSocial", "Nombre"]
El tema es que los campos son variables dependiendo del usuario, intenté con los siguiente métodos pero sin resultados:
En los ejemplo mostrados, si se modifican los títulos, pero luego aparecen todas las columnas de la tabla de datos
With dvClientes
If $razSocial_m Then
.Columns[i] = "RazonSocial"
.View.Columns[i].Width = 100
.View.Columns[i].Title = "Razón Social"
.View.Columns[i].Alignment = Align.Center
i += 1
Endif
If $nombre_m Then
.Columns[i] = "Nombre"
.View.Columns[i].Width = 100
.View.Columns[i].Title = "Nombre Comercial"
.View.Columns[i].Alignment = Align.Center
i += 1
Endif
end select
También he probado con:
With dvClientes
If $razSocial_m Then
.Columns.Add("RazonSocial")
.View.Columns[i].Width = 100
.View.Columns[i].Title = "Razón Social"
.View.Columns[i].Alignment = Align.Center
i += 1
Endif
If $nombre_m Then
.Columns.Add("Nombre" )
.View.Columns[i].Width = 100
.View.Columns[i].Title = "Nombre Comercial"
.View.Columns[i].Alignment = Align.Center
i += 1
Endif
end select
Sin obtener resultados:
También he probado cargando los campos en un array e intentado asignar el array de la siguiente forma: dataview.columns=array, pero al ejecutar devuelve el error que el objeto es nulo.
Desde ya gracias por la ayuda que puedan dar.
última edición por LuisDaniel el Miercoles, 26 Diciembre 2012, 17:15; editado 1 vez
|
#1 Miercoles, 26 Diciembre 2012, 16:33 |
|
|
LuisDaniel
Usuario
Registrado: Abril 2012
Mensajes: 9
Edad: 62
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable
Necesito que se muestren los campos seleccionados según las variables de los IF
También he probado hacer:
a="RazonSocial"
b="Nombre"
c =""
dataview.columns= [a, b, c]
Pero al tener alguna variable en "" entonces rechaza el array porque no existe una columna NULA.
Desde ya gracias por la ayuda que puedan dar.
|
#2 Miercoles, 26 Diciembre 2012, 18:07 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable
Se me ocurre que podias definir el ancho de la columna como 0, para no mostrar la columna que no te interese que vea el usuario...
Por ejemplo
'la columna 3, quiero que no se muestre...
if i=2 then dvClientes.View.Columns[i].Width =0 ' es 2 porque las columnas empiezan por 0,1,2,
Otra forma, que puedes probar.... defines varios arrays dependiento de lo que quieras mostrar...
public sub muestra(valor as integer)
dim muestraPersona as new string[]
dim muestraRazonSocial as new string[]
dim muestraPersonasRazon as new string[]
muestrapersona[0]="Nombre"
muestraRazonSocial[0]="RazonSocial"
muestraPersonasRazon[0]="RazonSocial"
muestraPersonasRazon[1]= "Nombre"
'con el valor 1, mostraria 1 columna, "NOmbre"
if valor =1 then dataview.columns=muestrapersona
'con el valor 2, mostraria 1 columna "RazonSocial"
if valor =2 then dataview.columns=muestraRazonSocial
'con el valor 3, mostraria 2 columnas, RazonSocial y Nombre
if valor =3 then dataview.columns=muestraPersonasRazon
A ver si te sirve... saludos
última edición por jsbsan el Miercoles, 26 Diciembre 2012, 22:43; editado 7 veces
|
#3 Miercoles, 26 Diciembre 2012, 21:20 |
|
|
LuisDaniel
Usuario
Registrado: Abril 2012
Mensajes: 9
Edad: 62
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable
jsbsan:
Muchas gracias por tu pronta respuesta:
Voy a implementar la primer opción "columna de ancho nulo" a ver que pasa.
Respecto a la segunda opción que me das, la he probado y al ejecutar obtengo un mensaje que me dice OBJETO NULO, al momento de asignar la string al columns del dataview.
¿Sabes por que puede ocurrir esto?.
Nuevamente muchas gracias.
Luis.
|
#4 Miercoles, 26 Diciembre 2012, 22:40 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable
Luis:
Citar: Respecto a la segunda opción que me das, la he probado y al ejecutar obtengo un mensaje que me dice OBJETO NULO, al momento de asignar la string al columns del dataview.
¿Sabes por que puede ocurrir esto?.
Si... en vez de poner [0], [1], usa el metodo add():
muestrapersona.add("Nombre")
muestraRazonSocial.add("RazonSocial")
muestraPersonasRazon.add("RazonSocial")
muestraPersonasRazon.add("Nombre")
Asi deberia funcionar... la razon es porque cuando defino el array de cadenas, no le he puesto ningun limite:
Si le hubiera puesto un limite si funcionaria del modo primero que te dije:
|
#5 Miercoles, 26 Diciembre 2012, 22:49 |
|
|
LuisDaniel
Usuario
Registrado: Abril 2012
Mensajes: 9
Edad: 62
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable SOLUCIONADO
Luis:
Citar: Respecto a la segunda opción que me das, la he probado y al ejecutar obtengo un mensaje que me dice OBJETO NULO, al momento de asignar la string al columns del dataview.
¿Sabes por que puede ocurrir esto?.
Si... en vez de poner [0], [1], usa el metodo add():
muestrapersona.add("Nombre")
muestraRazonSocial.add("RazonSocial")
muestraPersonasRazon.add("RazonSocial")
muestraPersonasRazon.add("Nombre")
Asi deberia funcionar... la razon es porque cuando defino el array de cadenas, no le he puesto ningun limite:
Si le hubiera puesto un limite si funcionaria del modo primero que te dije:
jsbsan:
He probado definiendo el array de las dos formas (con y sin límite) y he probado asignando los elementos al array directamente y con el método "Add", pero en todos los casos al asignar el array al columns, en tiempo de ejecución recibo el mensaje de OBJETO NULO, he verificado el contenido del array imprimiendo en la consola alguno de sus miembros y los mismos existen.
Pero usar el método de ancho "0" y de esta forma ocultar las columnas que no deben aparecer ha funcionado!!!!!!!.
Por lo tanto el tema esta resuleto, auqnue me sigue quedando la duda de por que no puedo asignar el array???
|
#6 Jueves, 27 Diciembre 2012, 00:10 |
|
|
LuisDaniel
Usuario
Registrado: Abril 2012
Mensajes: 9
Edad: 62
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable
Por lo tanto el tema esta resuelto, aunque me sigue quedando la duda de por que no puedo asignar el array???
Espera que estoy probando esto justamente y por aqui está el problema en la asignación de los campos al array.
Resultado de las pruebas:
El array lo dimensiono:
dim alistar as new string[20]
si uso el método Add del array, el mismo es inefectivo y los valores no se cargan al array.
Si uso alistar[0]="RazonSocial" entonces el dato se carga y cuando hago un print de alistar[0] el dato aparece en la consola, pero cuando uso el array en el dataview (dataview.columns=alistar), me aparece OBJETO NULO.
Pero si defino al array como:
dim alistar as new string[]
asigno los valores con el método Add
alistar.Add("RazonSocial")
y luego lo asigno como
dataview.columns=alistar
SI FUNCIONA!!!!!!!!!!!!
Gracias de nuevo por los comentarios que han permitido resolver totalmente el problema!!!!!
|
#7 Jueves, 27 Diciembre 2012, 00:47 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable
Ok, estupendo....
Citar: si uso el método Add del array, el mismo es inefectivo y los valores no se cargan al array.
Te cuendo la diferencia entre
y
De la primera forma, le estas definiendo un array de cadenas del tipo string, sin especificar su longitud... por lo tanto lo suyo es usar el metodo .add, que le va añadiendo valores
De la segunda forma, le dices que tienes un array de 10 elementos,y los diez estan vacios (contienen cadenas vacias "")l, estonces si usas el método .add, lo que hace es añadir un valor mas, tendrias 11 elementos, pero los anteriores siguen estandodos vacios, para entrar datos del elemento 1 al 9, tendrias que usar:
lista[0]="lo que sea"
lista[1]="dato..."
El tema esta, en que dataview.columns, no admite valores vacios (""), tienen que contener algo....
El codigo que te funciona:
dim alistar as new string[]
'asigno los valores con el método Add
alistar.Add("RazonSocial")
'y luego lo asigno como
dataview.columns=alistar
Pero si lo haces de esta manera:
Tambien te va a funcionar.... ya que el array de cadenas alistar, tiene 2 elementos, y los dos tienes valores
Saludos
|
#8 Jueves, 27 Diciembre 2012, 10:50 |
|
|
LuisDaniel
Usuario
Registrado: Abril 2012
Mensajes: 9
Edad: 62
|
Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable SOLUCIONADO
Jsbsan:
Ya entendí porque no me funcionaba, yo definía el array como:
dim alistar as new string[20]
Luego inicializaba solo los dos primeros y me quedan 18 elementos nulos en el array que se pasan al columns del dataview
Como el dataview colummns no admite elementos nulos, entonces aparece el error OBJETO NULO.
Gracias por ayudarme, a comprender mejor este excelente software.!!!!!!
Luis.
|
#9 Jueves, 27 Diciembre 2012, 13:47 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|