Ver Mensaje Individual
  #1  
Antiguo 03-07-2006
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Reputación: 22
kuan-yiu Va camino a la fama
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?

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);
//...
Responder Con Cita