Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Va...
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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 
LuisDaniel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable 
 
LuisDaniel escribió: [Ver mensaje]
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.

 



 
LuisDaniel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 26 Diciembre 2012, 22:43; editado 7 veces 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
LuisDaniel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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:
dim muestraPersona as new string[]

Si le hubiera puesto un limite si funcionaria del modo primero que te dije:
dim muestraPersona as new string[10]

 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable SOLUCIONADO 
 
jsbsan escribió: [Ver mensaje]
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:
dim muestraPersona as new string[]

Si le hubiera puesto un limite si funcionaria del modo primero que te dije:
dim muestraPersona as new string[10]


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???
 



 
LuisDaniel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Como Cargar Dataview.columns Para Elegir Las Columnas A Mostrar En Forma Variable 
 
LuisDaniel escribió: [Ver mensaje]

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!!!!!
 



 
LuisDaniel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
Dim lista as new string[] ' 1º forma


y

Dim lista as new string[10] ' 2º forma.



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:

dim alistar as new string[2]
alistar[0]="RazonSocial"
alistar[1]="Nombre"
dataview.columns=alistar


Tambien te va a funcionar.... ya que el array de cadenas alistar, tiene 2 elementos, y los dos tienes valores


Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
LuisDaniel - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron