Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-06-2015
alejozd alejozd is offline
Miembro
 
Registrado: jul 2010
Posts: 16
Poder: 0
alejozd Va por buen camino
Generar XML y validar si el dato es numerico

Hola, trabajo con Delphi 2010, estoy generando los datos de una factura en XML, algunos de los nodos son texto y otros son numeros.
Cuando hago el SQL para traer la informacion de la factura, en algunos casos tiene descuento y en otros no.
Cuando no tiene descuento yo deberia poner como texto del atributo lo siguiente
Código Delphi [-]
e01Node.Attributes['DescuentoTotal']  := '0.00'
pero si retorna valor entonces lleva el resultado del SQL
Código Delphi [-]
e01Node.Attributes['DescuentoTotal']  := FormatCurr('############.##' ,QryFAMAVR_DESCUENTO.AsCurrency);
e01Node es el nodo, lo que no quiero es hacer la validacion si el retorno de datos es 0 para ponerle manualmente el '0.00'.
Lei sobre el componente IXMLnode y al parecer uno puede validar directamente si el campo va a quedar vacio osea '' que el coloque algo por defecto.

Antes estaba solo la linea:
Código Delphi [-]
e01Node.Attributes['DescuentoTotal']  := FormatCurr('############.##' ,QryFAMAVR_DESCUENTO.AsCurrency);
y cuando trae valor esta bien, pero si el valor retornado es cero al generar el XML me deja vacio el nodo


Gracias por su tiempo.

Última edición por ecfisa fecha: 19-06-2015 a las 23:22:20. Razón: Etiquetas [delphi]
Responder Con Cita
  #2  
Antiguo 19-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola alejozd.

Intenta con este formato:
Código Delphi [-]
  e01Node.Attributes['DescuentoTotal']  := FormatCurr('###########0.##', QryFAMAVR_DESCUENTO.AsCurrency);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 20-06-2015
alejozd alejozd is offline
Miembro
 
Registrado: jul 2010
Posts: 16
Poder: 0
alejozd Va por buen camino
Gracias por la pronta respuesta ecfisa,
colocando el 0 en el formatCurr me retorna solo el 0 , y necesito el 0.00 , la cuestión es cuando si retorna un valor y dejo el siguiente código:

e01Node.Attributes['DescuentoTotal'] := FormatCurr('###########0.00' ,QryFAMAVR_DESCUENTO.AsCurrency);

no me tomaría los decimales sino que colocaría el valor.00 es decir, retorna 578.12 y con este formatCurr me quedaría 578.00

¿Alguna otra idea?

Gracias!!!
Responder Con Cita
  #4  
Antiguo 20-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola alejozd.

Con la máscara: '###########0.##',
Código:
     0 devuelve: 0
578.12 devuelve: 578.12
Con la máscara: '###########0.00',
Código:
     0 devuelve:   0.00
578.12 devuelve: 578.12
Pero de ningún modo, alguna de las máscaras anteriores devolverá 578 si el valor pasado es 578.12

Aqui tenes explicado el efecto del uso de los diferentes caracteres de control: FormatCurr

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 20-06-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
alejozd,

Cita:
Empezado por alejozd
...'###########0.##' en el FormatCurr me retorna solo el 0 y necesito el 0.00...'###########0.00' no me tomaría los decimales...


Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   N1, N2, N3 : Currency;
   S  : String;
   MsgUsr : String;

begin

   N1 := 578.12;
   N2 := 578.00;
   N3 := 0;

   S := FormatCurr('###########0.00', N1);
   MsgUsr := Format('N1 = %s',[S]);
   MessageDlg(MsgUsr,mtInformation,[mbOK],0);

   S := FormatCurr('###########0.00', N2);
   MsgUsr := Format('N2 = %s',[S]);
   MessageDlg(MsgUsr,mtInformation,[mbOK],0);

   S := FormatCurr('###########0.00', N3);
   MsgUsr := Format('N3 = %s',[S]);
   MessageDlg(MsgUsr,mtInformation,[mbOK],0);

end;

end.
El código anterior en Delphi 2010 sobre Windows 7 Professional x32, Muestra un ejemplo de la función FormatCurr en el cual se mantiene el formato definido en la función, como se muestra en la siguiente imagen:



Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda para validar un Dato de Tipo Boleano en funcion microbiano Varios 3 05-05-2012 08:16:39
Validar Dato DBGRID en tiempo de ejecución!! juliannemiro Varios 10 15-02-2012 14:49:49
Elaborar Clase Para Validar Un Dato De Un Edit sdiaz1983 Varios 7 17-03-2008 15:16:36
Imprimir dato en columnas diferentes según valor del dato saldanaluis Impresión 2 06-09-2007 00:17:32
Como Validar un campo numerico? Ricsato Varios 10 19-11-2003 17:31:05


La franja horaria es GMT +2. Ahora son las 00:23:17.


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