Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Separar cantidad en miles al imprimir (https://www.clubdelphi.com/foros/showthread.php?t=79827)

rufo 13-08-2012 20:39:48

Separar cantidad en miles al imprimir
 
Hola buenas tardes tengo un problemilla, resulta que estoy haciendo una factura en el cual cuando lleno las cantidad no les pongo separador de miles y lo que yo quiero hacer es que cuando mande a imprimir que un componente (no se cual seria el adecuado) me separa las cantidades en miles, espero me ayuden, uso Quickrepor en Delphi 2007.

Gracias de antemano.

Casimiro Notevi 13-08-2012 20:43:36

Creo que el componente que uses normalmente para números te vale, sólo tienes que poner la máscara adecuada con los separadores de millares, la coma decimal, etc. como lo quieras.

rufo 13-08-2012 21:26:20

Puse un QRDBText en mi reporte y en la propiedad que dice Mask le puse esto ###,## y cuando mando imprimir no sale ningun valor, enque estare mal, tambien te anexo como mando imprimir:

Código Delphi [-]
begin
with Reporte do
  begin
   qrdbtext1.Lines.Text:=memo4.Lines.Text;
   quickrep1.Preview;
  end;
end;

De antemano gracias

rufo 13-08-2012 21:33:55

Un memo que me separe cantidad en miles
 
Buenas tardes resulta que tengo un meo que cuando digito la cantidad no me separa los miles automaticamente, y eso es lo que quiero ver si se puede pero sin afectar este codigo o modificar, ya que voy ir ingresando mas cantidades, les anexo el codigo que estoy usando en memo:

Código Delphi [-]
var
 v1,v2: Double;
 c: Integer;
begin
c:= 0;
  Memo2.Lines.Clear;
  while (c < Memo4.Lines.Count) and (c < Memo7.Lines.Count) do
  begin
    if TryStrToFloat(Memo4.Lines[c],v1) and TryStrToFloat(Memo7.Lines[c],v2) then
      Memo2.Lines.Add(Format('%8.2f',[v1*v2]))  
    else
      Memo2.Lines.Add('Error en operandos. (Línea' + IntToStr(c) +')');
    Inc(c);
  end;

De antemano gracias.

Casimiro Notevi 13-08-2012 21:35:07

Cita:

Empezado por rufo (Mensaje 439515)
Puse un QRDBText en mi reporte y en la propiedad que dice Mask le puse esto ###,## y cuando mando imprimir no sale ningun valor, enque estare mal, tambien te anexo como mando imprimir:

Código Delphi [-]begin with Reporte do begin qrdbtext1.Lines.Text:=memo4.Lines.Text; quickrep1.Preview; end; end;


De antemano gracias


¿Pero ese qrdbtext1 es un dbmemo?, eso no sirve.
Tiene que ser un campo "normal" para un dato.
Debes cambiar el planteamiento y extraer las líneas del memo para separarlas cada una en un campo distinto, ahora mismo estás pasándolo al qrdbtext1 una "ristra" de valores separados por #13#10

Casimiro Notevi 13-08-2012 21:40:16

Por favor, no abras otro hilo para tratar el mismo asunto, síguelo aquí.

Voy a combinar ambos hilos.

rufo 14-08-2012 00:45:21

Ok gracias por hacerlo ya queria hacerlo de las formas ya sea por objecto o por conversion al momento de imprimirlo y no encuentro como hacerlo...

Casimiro Notevi 14-08-2012 09:53:16

Pues puedes hacer antes un bucle recorriendo las líneas y transformándolas, algo parecido a esto:

Código Delphi [-]
var
  iX : integer;
  cTmp : string;
begin
  for iX:=0 to memo.lines.count -1 do
  begin
    cTmp := memo.lines[iX];
    cTmp := FormatFloat('#.##0', StrToFloat(cTmp));
    memo.Lines[iX] := cTmp;
  end;
end;
Así tendrás todas las líneas formateadas con la máscara que le pongas.

*** Lo he hecho de memoria, no lo he probado en delphi.

rufo 14-08-2012 22:23:25

Amigo Casimiro Notevi el ejemplo que has puesto lo he probado con delphi pero no me funciona ya que me envia error que no es un valor valo al momento de escribir, espero que se pueda resolver este detalle, quiero ver si se puede al momento de escribir en un Memo se haga las separaciones de los miles, es decir cuando yo escriba 1000 en un memo automaticamente se empieze a separar es decir 1,000.00 de antemano gracias a todos lo que me han respondido.

Sigo en espera de ayuda y yo tambien lo he estado buscando.

Casimiro Notevi 15-08-2012 09:48:51

¡¡¡Cómo que sigues a la espera de ayuda!!! :confused::confused::confused:

Si ha salido un error, pues cópialo exactamente aquí que lo veamos, especifica en qué línea ha ocurrido, pon aquí todo el código que estás usando, da más información, etc.
Es que no somos adivinos, ni tenemos una bola de cristal para ver tu ordenador desde aquí ;)


La franja horaria es GMT +2. Ahora son las 05:08:33.

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