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:
Mostrar la cita
si
Mostrar la cita
cursor
Mostrar la cita
#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:
Mostrar la cita
la
Mostrar la cita
#3 Mauricio Pulla
30/01/2006 - 20:48 | Informe spam
Mostrar la cita
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.

Mostrar la cita
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:
Mostrar la cita
recordsource
Mostrar la cita
necesito
Mostrar la cita
"tipo",
Mostrar la cita
#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:
Mostrar la cita
#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
Ads by Google
Search Busqueda sugerida