PDA

Ver la Versión Completa : De Delphi a Excel: Parámetro variant en un procedimiento


kuan-yiu
03-07-2006, 13:51:03
Tengo un formulario que crea un documento excel a partir de una consulta y funciona perfectamente, pero he tenido que ampliarlo para añadir una serie de columnas que almacenan valores numéricos que indican formas de pago y en lugar de los números debe mostrar el significado de estos (efectivo, tarjeta...)
La cuestión es que ya tengo un procedimiento que hace algo así para los informes: según el valor de una columna rellena con el texto correspondiente otra.

Como es un cambio que tengo que hacer muy a menudo he tratado de "sobrecargar" ese procedimiento para poder usarlo aquí también, y ahí está mi problema: ¿Qué tipo le debo indicar en la variable? ¿Cómo debo hacer la llamada a la función?:confused:

Este es el procedimiento que quiero "sobrecargar".
procedure rellenaFormaDePago(fp: TStringField; var valor: TStringField);
begin
case (fp.AsInteger) of
0: valor.AsString := 'No definido';
1: valor.AsString := 'Efectivo';
//... y el resto es similar.
end;


Actualmente lo hago así, pero me molesta tener que poner el mismo código por cada columna que contiene igual rango de valores.

var
ExcelApp, // Excel application
WorkBook, // Excel workbook
WorkSheet: Variant ; // Excel sheet in workbook
begin
//...
case (qinfFORMA_PAGO.AsInteger) of
0: WorkSheet.cells[intRow,21].value := 'No definido';
1: WorkSheet.cells[intRow,21].value := 'Efectivo';
//... y el resto es similar.



He probado con estas definiciones pero me dice que los tipos son incompatibles:

procedure rellenaFormaDePago(fp: TStringField; var valor: String);
//...
procedure rellenaFormaDePago(fp: TStringField; var valor: Variant);
//...

kuan-yiu
05-07-2006, 09:36:18
¿A nadie se le ocurre nada o es que me he explicado mal? :(

(Conociéndome seguro que es lo segundo)