![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Guardar Formato de Grilla!!
Hola Gente,
Este es mi primer post y necesito un poco de ayuda.. Mi problema es el siguiente, Tengo un Objeto que me encapsula la conexión un con StoredProcedure, un ejemplo seria el siguiente.
Donde TStoredProcedure es la clase que se encarga de crear un objeto TMSStoredProc y donde se configura con el procedimiento pasado por parametro. El problema concreto es darle el formato a la grilla que va a mostrar los datos del StoredProcedure, cuando hago esta asignacion:
el formato de la grilla desaparece... =( La alternativa mas viable que se me ocurre es darle formato en tiempo de ejecucion a la grilla, pero esto es un proceso muy pesado!! otra opcion que tengo pero no se como hacerlo es.. darle formato a la grilla en tiempo de diseño y de alguna forma guardar ese formato y aplicarselo despues de asignar el DataSet del DataSource, pero la verdad es q no se como puedo hacer eso... Saludos y muchas gracias Última edición por ecfisa fecha: 07-07-2011 a las 16:59:08. Razón: ETIQUETAS [DELPHI] [/DELPHI] |
|
#2
|
||||
|
||||
|
Bueno, no se a que te refieres con el formato de la grilla, ni tampoco que tipo de grilla utilizas.
Este es un ejemplo para el Ancho de las Columnas de un DBGrid. Le asigna el mayor ancho entre texto del Titulo y el de la 1ra Fila de Datos. En mi caso, ademas de tengo seteado el ColumnResize = True, con lo cual a 1ra impresion la grilla se ve bien, de ser necesario se pueden ampliar los anchos de columnas. He leido tambien en este foro, un proceso que recorria la cantidad de registros a mostrar y se quedaba con el maximo ancho, el cual aplicaba. Codigo del cual modifique hasta quedarme con este que muestro; por que me parecia muy denso el recorrido, etc.
PD: Max (num1, num2); {Funcion de la Unit Math} |
|
#3
|
|||
|
|||
|
Claro, pero en ese caso le estas dando un formato en tiempo de ejecucion, yo quiero evitar eso.. porque se la cantidad de columnas que me va a retornar el StoredProcedure.
a lo que me referia con darle formato en tiempo de diseño, es a la grilla setearle los titulos, colores, fuentes, etc... antes de compìlar, pero cuando se asigno el dataset en tiempo de ejecucion a la grilla le desaparece el formato... PD: no especifique la grilla porque desde mi app se usan varias como las CRDBGrid y SMDBGrid |
|
#4
|
||||
|
||||
|
Bueno, prueba entonces, tal como dices. En tiempo de Diseño, al saber cuantas y cuales son las columnas de la grilla, las agregas y editas.
Con Click derecho sobre la grilla, abres el "Columns Editor" Agregas todas y cada una de las columnas. setas la propiedades, ancho, titulo, etc. y la mas importante sera FieldName, que debera coincidir con el nombre de la columna del QUERY. Alli te quedara diseñada la grilla en tiempo de Diseño, valga la redundancia. |
|
#5
|
|||
|
|||
|
Eso es lo q hice.. pero cuando en tiempo de ejecucion asigno el resultado del StoredProcedure el formato de la grilla se va... es mas.. cuando le hago un free al objeto el formato vuelve... el problema esta en la asignacion de dataset del datasource.
lo que yo necesito es de alguna forma: 1ro .- guardar el formato que le di a la grilla en tiempo de diseño ( alguna propiedad o algo.. ) 2do .- asignar el dataset (esto hace que la grilla pierda el formato) 3ro .- volver a darle el formato a la grilla que habia guardado anteriormente, pero con los datos ya cargados del paso 2. |
|
#6
|
|||
|
|||
|
bueno gente... lo resolvi de esta forma
var A : Array of TSMDBColumn; cantidad : integer; iterator : integer; color : TColor; begin cantidad := SMDBGrid1.Columns.Count; SetLength(A, cantidad); For iterator := 0 to cantidad -1 Do Begin A[iterator] := TSMDBColumn.Create(nil); A[iterator].Color := SMDBGrid1.Columns[iterator].color; A[iterator].Title := SMDBGrid1.Columns[iterator].Title; End; //----------------------------------------- sp := TStoredProcedure.Create('proc_PRUEBA_NICO'); sp.Charge_Parameter( 'cadena','hola'); sp.Charge_Parameter( 'numero',5); sp.Open; DataSource1.DataSet := sp.storedProcedure; //----------------------------------------- For iterator := 0 to cantidad -1 Do Begin SMDBGrid1.Columns[iterator].TextEllipsis := teMiddle; SMDBGrid1.Columns[iterator].Color := A[iterator].color; SMDBGrid1.Columns[iterator].Title := A[iterator].Title; End; end; |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| como ver un tipo de datos de una grilla en otra grilla en el mismo form? | calistian | Varios | 5 | 01-10-2008 19:29:04 |
| guardar formato | Makiley | Varios | 6 | 04-06-2008 21:04:07 |
| Guardar Imagen en formato png | gulder | Gráficos | 10 | 03-03-2008 11:36:15 |
| Guardar un txt con formato UNIX | dayrontbs | Varios | 14 | 31-08-2006 20:56:33 |
| Guardar Qreports en formato pdf | oliviagadel | Impresión | 1 | 16-12-2003 10:38:42 |
|