Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   DBGrid con campos variables (https://www.clubdelphi.com/foros/showthread.php?t=27121)

mayte mtz 11-11-2005 23:18:39

DBGrid con campos variables
 
Hola

Ojalá me puedan ayudar con lo siguiente:

Resulta que tengo un TStoredProc que me arroja diferentes tipos de resultados en base a los parametros que le envío.

El resultado del SP lo muestro en Delphi 5 , por medio de un DBGrid.

Mi problema es saber como hacerle para que el DBGrid me muestre los campos correctos para todas las posibles combinaciones de parametros que envíe.

Sólo tengo definido un TwwDBGRid y un sólo TDataSource.

Por ejemplo, un resultado puede ser:

Columna Refaccciones
Columna División 3
Columna División 33
Columna División 52


Otro Resultado puede ser:
Columna Refacciones
Columna División 11
Columna División 15
Columna División 28
Columna División 35
Columna División 42
Columna División 70

y otro resultado puede ser:

Tipo de Gasto
Carro
Importe del gasto


Es decir que en el mismo dbgrid pueda tomar diferentes campos en base al resultado que me envíe el Store Procedure.

Se puede hacer algo así con tan sólo un DBGRid, o tengo que definir un DBGRid por cada set de resultados


Gracias de antemano


Mayte Mtz

Lepe 12-11-2005 12:34:35

Cada vez que cambien las columnas:

DBGrid.columns.RebuildColumns

El único inconveniente, es que traerá el ancho de cada columna en base a lo establecido en el campo, si un campo es varchar(300), esa columna romperá el monitor por el lado derecho ;). Bastará con asignar el DisplayWidth de ese campo.

saludos

mayte mtz 14-11-2005 16:13:29

Gracias por la respuesta, pero tadavía no está muy clara para mí.

Estoy documentandome en el uso del DBGrid.

Me puedes indicar donde consulto el uso de etiquetas


Saludos

jachguate 14-11-2005 17:39:37

Cita:

Empezado por mayte mtz
Me puedes indicar donde consulto el uso de etiquetas

Por aqui.

Hasta luego.

;)

mayte mtz 14-11-2005 18:33:22

[b]ok[b] Muchas gracias

mayte mtz 14-11-2005 18:36:21

up´s era así

jachguate 14-11-2005 18:50:01

eso!! muy bien!.

Código Delphi [-]
  writeln('Ante todo, no olvides usar las etiquetas para publicar código!');

Hasta luego.

;)

Lepe 14-11-2005 18:51:42

Ojalá todos los foristas mostraran el mismo interés. (en el uso de etiquetas)

Saludos y gracias por interesarte, desde luego nos hace la vida más facil a todos ;).

mayte mtz 14-11-2005 19:33:21

Gracias por las porras
 
Código PHP:

cmayte 'Gracias por las porras' 


mayte mtz 15-11-2005 23:12:58

Hola, continuando con mi pregunta acerca de campos variables en DBGrid

Tengo un Store procedure que me arroja el sgte resultado.

Este set de resultados, muestra los consumos de lo carros por tipo de gasto,
el cual se obtiene en base a la cuenta contable.

Código:

Div_Carro Carro Zona_carro D_Zona 001-Refacciones 003-Diesel  005-Autopistas 006-Llantas 007-Sueldos

1        4411  2          Noreste 6123.04          29903.25        0.00                6293.32          0.00
1        4412  2          Noreste 4360.44          28357.42        0.00                1022.61          0.00
1        4413        2          Noreste 4999.46          951.61        0.00                8496.20          0.00
1        4414        2          Noreste 22108.43          27680.89        0.00                0.00        0.00
1        4415        2          Noreste  5208.24          31128.04        0.00                0.00        0.00

La parte del código del SP con el que imprimo lo anterior es:

Código SQL [-]
     Delete From Pivotvar
      Insert Into PivotVar
      (Pivot)
      Select Distinct 'Sum(Case When Tipo_Gasto=''' + Rtrim(Cast(Tipo_Gasto As Varchar(500))) 
      + ''' Then Importe Else 0 End) As ''' + 
      Rtrim(Cast((Tipo_Gasto+'-'+D_Tipo_Gasto) As Varchar(500))) + ''',' As Pivot
      From GtoVarxCarro Where Tipo_Gasto Is Not Null 
      
      -- Imprimir query ya en forma de CrossTab
      Declare @cSql                    varchar(7000)
      Set @cSQL = ''
      Set @cSQL ='SELECT Div_Carro,Carro,Zona_carro,D_Zona, '
      Select @cSQL= @cSQL + RTRIM(convert(varchar(500), Pivot))
      From PIVOTVAR
      Order by Pivot
      Set @cSQL = @cSQL  + 'Sum(IsNull(Total,0))as Gran_Total FROM  GtoVarxCarro  '
      Set @cSQL = @cSQL  + ' Where Carro <> 0  and Zona_carro <> 0 '
      Set @cSQL = @cSQL  + 'Group by Div_Carro,Carro,Zona_carro,D_Zona '
      Set @cSQL = @cSQL  + 'order by Div_Carro,Carro,Zona_carro,D_Zona '
 
EXECUTE (@cSQL)

Si lo ejecuto desde el Query Analizer me arroja el resultado mostrado arriba, todo bien.
Pero al incluirlo en Delphi 5 , haciendo uso de TStoreProc , TDataSorce, TwwDBGrid al momento de correrlo, sólo me muestra las columnas de
  • Zona_Carro
  • D_Zona

Me pueden ayudar a buscar mi error...

Gracias de antemano

Saludos

Mayté Mtz


La franja horaria es GMT +2. Ahora son las 22:56:09.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi