Tipo de datos devueltos

Hola como estas espero que me puedas apoyar, tengo el fragmento de este código:
SCAN
  IF l > 58
   l=l+1
   @ l,01 say replicate('-',233)
   l=l+1
   @ l,68 say "VAN ......."+SPACE(4);
   + TRANSFORM(sum_cpaf4,'###,###,###.##')
      ENDIF    
stro 0 to sum_cpaf4
x1=0
x1=TRANSFORM(sumadepre(1,wmef+1),"###,###,###.##")
IF tmpCpaf.v12_dep > 0
       @ l,pcol()  SAY x1
ELSE
       @ l,pcol()  SAY TRANSFORM(0,"###,###,###.##")
ENDIF   
sum_cpaf4=sum_cpaf4 + x1  && Aqui me sale error operator / operand type mismatch y  
                                                    He colocado val(x1) y la suma no me coincide en el VAN
                                                    Suma otra cosa al final de la hoja, en todo caso como
                                                    Para que me devuelva un tipo numérico en la función
                                                    sumadepre.
ENDSCAN
FUNCTION sumadepre(mes1,mes2)
   valordep=0
   FOR i = mes1 TO mes2 
        nombrecampo = "D"+transform(i,"@L 99") + "_dep"
        cadena = "valordep = valordep + " + nombrecampo
        &cadena
   ENDFOR
   RETURN (valordep)

1 Respuesta

Respuesta
1
Para evitar errores no transformes ni edites valores antes de imprimir simplemente efectúa la operación y el resultado lo formateas
x1=sumadepre(1, wmef+1)
IF tmpCpaf.v12_dep > 0 
       @ l,pcol()  SAY TRANSFORM(x1,"###,###,###.##")
ELSE 
       @ l,pcol()  SAY TRANSFORM(0,"###,###,###.##") 
ENDIF
FELIZ NAVIDAD

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas