Grid con datos segun tipo

30/01/2006 - 17:26 por Jose Luis Lopez | Informe spam
Hola

Tengo una tabla (detalles.dbf) con los siguientes 3 campos :
Tipo N(1), Detalle C(50), valor N(12,2)
El campo tipo, toma valores de 1 a 3.
Necesito crear un grid que tenga 4 columnas :
Detalle, valor_tipo1, valor_tipo2, valor_tipo3
el campo "valor" lo debo mostrar dependiendo del valor del campo "tipo", si
es tipo=1 lo debo mostrar en la columna "valor_tipo1", si es tipo=2 en la
columna "valor_tipo2" y asi sucesivamente.
NO puedo usar un selec porque con un selec me mostraria realmente un cursor
y no los datos "directamente" de la tabla.

Si alguien pudiera ayudarme se lo agradeceria mucho


Jose Luis

Preguntas similare

Leer las respuestas

#1 Mauricio Pulla
30/01/2006 - 18:02 | Informe spam
Hola Jose Luis

Select Rs (cDetalle C(10), ValorTipo1 N(12, 2), ValorTipo2 N(12, 2),
ValorTipo3 N(12, 2))

lcValues= Select Detalle
Scan
lcInsert = "Insert Into Rs (cDetalle, ValorTipo" +
Transform(Detalle.Tipo) + ") Values(Detalle.cDetalle, Detalle.Valor)"
&lcInsert
EndScan

Saludos.
Mauricio Pulla.
Cuenca-Ecuador

"Jose Luis Lopez" escribió en el mensaje
news:
Hola

Tengo una tabla (detalles.dbf) con los siguientes 3 campos :
Tipo N(1), Detalle C(50), valor N(12,2)
El campo tipo, toma valores de 1 a 3.
Necesito crear un grid que tenga 4 columnas :
Detalle, valor_tipo1, valor_tipo2, valor_tipo3
el campo "valor" lo debo mostrar dependiendo del valor del campo "tipo",


si
es tipo=1 lo debo mostrar en la columna "valor_tipo1", si es tipo=2 en la
columna "valor_tipo2" y asi sucesivamente.
NO puedo usar un selec porque con un selec me mostraria realmente un


cursor
y no los datos "directamente" de la tabla.

Si alguien pudiera ayudarme se lo agradeceria mucho


Jose Luis


Respuesta Responder a este mensaje
#2 Jose Luis Lopez
30/01/2006 - 19:04 | Informe spam
Mauricio muchas gracias , pero no puedo utilizar un SELEC , el recordsource
del grid debe ser "detalles.dbf" ( la tabla directamente) , ya que necesito
que el usuario este viendo "en linea" los registros que se modifican o
adicionan a esta tabla.

Lo que no se es como configurar el control source de las 3 columnas que le
agregué al grid.

gracias

Jose

"Mauricio Pulla" escribió en el mensaje
news:
Hola Jose Luis

Select Rs (cDetalle C(10), ValorTipo1 N(12, 2), ValorTipo2 N(12, 2),
ValorTipo3 N(12, 2))

lcValues= Select Detalle
Scan
lcInsert = "Insert Into Rs (cDetalle, ValorTipo" +
Transform(Detalle.Tipo) + ") Values(Detalle.cDetalle, Detalle.Valor)"
&lcInsert
EndScan

Saludos.
Mauricio Pulla.
Cuenca-Ecuador

"Jose Luis Lopez" escribió en el mensaje
news:
> Hola
>
> Tengo una tabla (detalles.dbf) con los siguientes 3 campos :
> Tipo N(1), Detalle C(50), valor N(12,2)
> El campo tipo, toma valores de 1 a 3.
> Necesito crear un grid que tenga 4 columnas :
> Detalle, valor_tipo1, valor_tipo2, valor_tipo3
> el campo "valor" lo debo mostrar dependiendo del valor del campo "tipo",
si
> es tipo=1 lo debo mostrar en la columna "valor_tipo1", si es tipo=2 en


la
> columna "valor_tipo2" y asi sucesivamente.
> NO puedo usar un selec porque con un selec me mostraria realmente un
cursor
> y no los datos "directamente" de la tabla.
>
> Si alguien pudiera ayudarme se lo agradeceria mucho
>
>
> Jose Luis
>
>


Respuesta Responder a este mensaje
#3 Mauricio Pulla
30/01/2006 - 20:48 | Informe spam
que el usuario este viendo "en linea" los registros que se modifican o


adicionan a esta tabla.
Si lo quieres asi, pondria un timer que ejecute el codigo que llene un
cursor y lo enganchE al Grid.

En lo personal no me gusta poner un timer, lo que hago es poner un CmdButton
que traiga los datos, y muestro en label cuantos registros tengo y cuando
los traje es decir: 43 registros (30-01-2006 14:41), Digo que no me gusta
usar un timer, por que por lo general siempre tengo varias utilidades que
realizar con los datos de este grid pero si es solo para exibir creo que
estaria bien.

Lo que no se es como configurar el control source de las 3 columnas que le


agregué al grid.
Pienso que te refieres a ValorTipo1, ValorTipo2,ValorTipo3 pienso que no hay
manera de hacerlodirecto, o almenos yo no lo conosco.


Saludos.
Mauricio Pulla.
Cuenca-Ecuador




"Jose Luis Lopez" escribió en el mensaje
news:
Mauricio muchas gracias , pero no puedo utilizar un SELEC , el


recordsource
del grid debe ser "detalles.dbf" ( la tabla directamente) , ya que


necesito
que el usuario este viendo "en linea" los registros que se modifican o
adicionan a esta tabla.

Lo que no se es como configurar el control source de las 3 columnas que le
agregué al grid.

gracias

Jose

"Mauricio Pulla" escribió en el mensaje
news:
> Hola Jose Luis
>
> Select Rs (cDetalle C(10), ValorTipo1 N(12, 2), ValorTipo2 N(12, 2),
> ValorTipo3 N(12, 2))
>
> lcValues= Select Detalle
> Scan
> lcInsert = "Insert Into Rs (cDetalle, ValorTipo" +
> Transform(Detalle.Tipo) + ") Values(Detalle.cDetalle, Detalle.Valor)"
> &lcInsert
> EndScan
>
> Saludos.
> Mauricio Pulla.
> Cuenca-Ecuador
>
> "Jose Luis Lopez" escribió en el mensaje
> news:
> > Hola
> >
> > Tengo una tabla (detalles.dbf) con los siguientes 3 campos :
> > Tipo N(1), Detalle C(50), valor N(12,2)
> > El campo tipo, toma valores de 1 a 3.
> > Necesito crear un grid que tenga 4 columnas :
> > Detalle, valor_tipo1, valor_tipo2, valor_tipo3
> > el campo "valor" lo debo mostrar dependiendo del valor del campo


"tipo",
> si
> > es tipo=1 lo debo mostrar en la columna "valor_tipo1", si es tipo=2 en
la
> > columna "valor_tipo2" y asi sucesivamente.
> > NO puedo usar un selec porque con un selec me mostraria realmente un
> cursor
> > y no los datos "directamente" de la tabla.
> >
> > Si alguien pudiera ayudarme se lo agradeceria mucho
> >
> >
> > Jose Luis
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Ricardo Campos
03/02/2006 - 19:13 | Informe spam
Hi' Jose Luis: Espero que te sirva esto, avisame como te fue...

En el evento Init del Grid:

This.RecordSource = 'detalles'
This.RecordSourceType = 1
This.column1.ControlSource = detalles.detalles'
This.column2.ControlSource = 'iif(detalles.tipo = 1,valor,0)'
This.column3.ControlSource = 'iif(detalles.tipo = 2,valor,0)'
This.column4.ControlSource = 'iif(detalles.tipo = 3,valor,0)'

El unico problema que he tenido con esto es que cuando quiero modificar el
valor de la columna me dice que es de solo lectura apesar que la columna se
encuentra ReadOnly = .F.

Si alquien me pudiera ayudar lo agradeceria bastante

Saludos
Ricardo Campos
Lima - Peru

"Jose Luis Lopez" escribió en el mensaje
news:
Hola

Tengo una tabla (detalles.dbf) con los siguientes 3 campos :
Tipo N(1), Detalle C(50), valor N(12,2)
El campo tipo, toma valores de 1 a 3.
Necesito crear un grid que tenga 4 columnas :
Detalle, valor_tipo1, valor_tipo2, valor_tipo3
el campo "valor" lo debo mostrar dependiendo del valor del campo "tipo",
si
es tipo=1 lo debo mostrar en la columna "valor_tipo1", si es tipo=2 en la
columna "valor_tipo2" y asi sucesivamente.
NO puedo usar un selec porque con un selec me mostraria realmente un
cursor
y no los datos "directamente" de la tabla.

Si alguien pudiera ayudarme se lo agradeceria mucho


Jose Luis


Respuesta Responder a este mensaje
#5 Jorge Useche
07/02/2006 - 15:11 | Informe spam
Creo que la mejor forma de realizar lo que necesitas es hacerlo como
"Ricardo Campos" sugirió, a través de iif en el init del grid; las
columnas resultantes son de sólo lectura porque son campos calculados en
tiempo de ejecución.


PortalFox :: Nada corre como un zorro
http://www.portalfox.com

PortalFox - NNTP Forum Gateway
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida