PDA

Ver la Versión Completa : Cambiar tipo de un dato en Rave 5 en tiempo de ejecución


Berto2003
04-03-2004, 10:32:52
Hola de nuevo amig@s!!

Me ha surgido otro asunto. Necesito cambiar en tiempo de ejecución y desde Delphi, el tipo de datos de un DataBand de un projecto .rav en RaveReport5 creado mediante un DirectDataView. El tipo que quiero cambiar es DataView1codigo: BCDField component y quiero cambiarlo por un StringField component. ¿Es posible hacerlo desde Delphi en tiempo de ejecución? En el programa Delphi tengo un TrvProject, TrvSystem y un TrvDataSetConnection conectado con un TClientDataSet que es la tabla que le paso al Rave mediante dicho DataSetConnection.

Gracias de antemano,
Saludos,
Alberto. :)

jachguate
04-03-2004, 18:06:04
Queres cambiarlo en el dataset? No es posible hacerlo con el mismo field, pues las clases son especializadas: TBCDField, TStringField, TBooleanField, etc.

Lo que si podes hacer es crear un Field nuevo y deshacerte del anterior, aunque a la conversión de BCD a String no le hallo mucho sentido, creo que podes hacer (es cosa de probar, pues no me es usual destruir fields en tiempo de ejecución, y quizas quede un puntero en el dataset que produzca algun error...):


Var
sf : TStringField;

Begin
//te deshaces del Field Anterior:
MiDataSet.FieldByName['CAMPO'].Free;
sf := TStringField.Create(Parametros);
sf.FieldName := 'CAMPO';
sf.TextWidth := 50;
// los nombres de las propiedades los digo de memoria y puede que no sean asi...
// pero en la ayuda encontras todo lo relacionado con TField y TStringField.
..


Vale la pena probarlo...

Hasta luego. ;)

Berto2003
05-03-2004, 16:41:21
Hola jachguate,

Sí, eso quiero, cambiarlo a través del objeto del Rave DataSetConnection, pero el problema es que creo en tiempo de diseño dentro del informe Rave el DataView y ahí los campos que genero son fijos, vamos, no sé si me explico bien. Por ej., codigo -> TBCDField, nombre -> TStringField (esto dentro del DataView del .rav) Y quiero cambiar "codigo" a tipo TStringField pero desde Delphi y una vez creado el informe.

Gracias de nuevo,
Hasta luego.