Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-11-2005
mayte mtz mayte mtz is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
mayte mtz Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 12-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 14-11-2005
mayte mtz mayte mtz is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
mayte mtz Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 14-11-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por mayte mtz
Me puedes indicar donde consulto el uso de etiquetas
Por aqui.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 14-11-2005
mayte mtz mayte mtz is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
mayte mtz Va por buen camino
[b]ok[b] Muchas gracias
Responder Con Cita
  #6  
Antiguo 14-11-2005
mayte mtz mayte mtz is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
mayte mtz Va por buen camino
up´s era así
Responder Con Cita
  #7  
Antiguo 14-11-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
eso!! muy bien!.

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

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 14-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
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 .
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 14-11-2005
mayte mtz mayte mtz is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
mayte mtz Va por buen camino
Gracias por las porras

Código PHP:
cmayte 'Gracias por las porras' 
Responder Con Cita
  #10  
Antiguo 15-11-2005
mayte mtz mayte mtz is offline
Miembro
 
Registrado: sep 2005
Posts: 31
Poder: 0
mayte mtz Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:41:13.


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
Copyright 1996-2007 Club Delphi