Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   De Delphi a Excel: Parámetro variant en un procedimiento (https://www.clubdelphi.com/foros/showthread.php?t=33294)

kuan-yiu 03-07-2006 13:51:03

De Delphi a Excel: Parámetro variant en un procedimiento
 
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".
Código Delphi [-]
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.
Código Delphi [-]
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:
Código Delphi [-]
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)


La franja horaria es GMT +2. Ahora son las 05:14:24.

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