Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Como Incrementar Secuencialmente un Numero de Comprobante Fiscal en sql server (https://www.clubdelphi.com/foros/showthread.php?t=72409)

hondaalberto 17-02-2011 05:02:58

Como Incrementar Secuencialmente un Numero de Comprobante Fiscal en sql server
 
Buenas Noches Amigos

Necesito que por favor me ayuden a resolver lo siguiente: me han solicitado para un programa de Facturación desarrollado en Delphi 7 el cual utiliza como base de datos Sql Server Que al Crear un Documento Nuevo de Factura de Ventas se le debe asignar un número secuencia de Comprobante fiscal el cual tiene la siguiente estructura:
A010010010100000001(el cual esta compuesto por 19 caracteres de los cuales los ultimos 8 numeros son secuenciales, los demas caracteres anteriores siempre seran los mismos).

Lo que necesito es incrementar en uno(1) esta secuencia cada vez que generen una nueva factura y guardar este nuevo número de comprobante fiscal en la base de datos el cual representara el último Número de Comprobantes fiscal Emitido.

Ej:A010010010100000001
A010010010100000002
A010010010100000003...

Muchas GRacias de antemano por la ayuda que puedan brindarme...

olbeup 17-02-2011 10:16:39

Hola hondaalberto,
Lo que tienes que hacer es crear una base de datos con dos campos:

Cita:

Base de Datos: Facturas
Campos:
IDFACTURA int IDENTITY(1,1)
SERIE varchar(11)
Cuando se incremente un registro el IDFACTURA incrementará en 1.
Para mostrar en pantalla A010010010100000001, lo único que tienes que hacer es con el comando FormatFloat lo juntas todo.
Eje.
Código Delphi [-]
var
  FacturaStr: String;
begin

  FacturaStr := FieldByName('SERIE').AsString + FormatFloat('00000000', FieldByName('IDFACTURA').AsInteger);
end;
Espero que te sirva.
Un Saludo

hondaalberto 17-02-2011 16:32:34

Muchas Gracias por responder olbeup, muy buena respuesta,

Pero Creo que me falto algo por especificar en el primer mensaje y es lo siguiente;

El sistema tiene una tabla en donde se guardan los numeros de serie de los comprobantes Fiscal, los cuales los autoriza una institucion del Gobierno, estos son guardados en la base de datos con la siguiente estructura:

Tabla Numeros de Serie:
Num_Inicial Num_Final Ultimo_Num_Utilizado

A010010010100000001 A010010010100000050 A010010010100000012

Entonces cuando se hace una nueva factura de ventas al numero que hay almacenado en el campo último número utilizado es al que debo hacerle el incremento en uno(1) para asignar ese nuevo numero a la nueva factura emitida y guardar el nuevo nuevo en el campo último utilizado.

Ej: a la Nueva Factura que se emita le corresponderia el número A010010010100000013 que es igual a A010010010100000012+1.

Gracias de Antemano

olbeup 18-02-2011 10:26:30

Lo único que tienes que hacer es crear un nuevo campo que se llama IDFACTURAULTIMA, donde IDFACTURAULTIMA = (IDFACTURA -1), en SQL SERVER hay una variable que se llama @IDENTITY que es el valor de (IDFACTURA) que ha tomado en tu ordenador, independientemente de los demás ordenadores que estén realizando facturas, éste número que te ha dado, lo actualizas en el IDFACTURAULTIMA.
EJ.
Código SQL [-]
INSERT INTO Facturas (SERIE) VALUES ('A0100100101')

UPDATE Facturas
  SET IDFACTURAULTIMA = (@IDENTITY -1)
Lo bueno que tiene SQL SERVER, es que puedes introducir más de una secuencia SQL SERVER.

Espero que te sirva.
Un saludo.

elanmas 26-09-2015 07:55:12

Tengo el mismo problema
 
segun el nuevo regimen de facturacion tiene que ser asi N°:000-002-01-00000001, el corelativo N°:000-002-01-00000001 donde los primeros 8 digitos no son cambiantes N°:000-002-01- los ultimos 8 si 00000001 no es podido lograr rellenar con ceros ahora de imprimir la factura sale de la siguiente manera N°:000-002-01-1 y asi N°:000-002-01-2, N°:000-002-01-3...N°:000-002-01-100 pero no he podido hacer que se rellene los ceros a la izquierda, necesito me pueda ayudar por favor, tengo una plantilla en xml de la siguiente forma.

SUB: PrintTransactionType
=============================
-->
<SUB name="PrintTransactionType">
<TABLE>
<FONT> "Large" </FONT>
<BORDER> tbNone </BORDER>
<COLUMNHEADER>
<ALIGNMENT> "^" </ALIGNMENT>
<WIDTH> PageWidth </WIDTH>
<IF>
<CONDITION> Transaction.Type = transactionPayout </CONDITION>
<THEN>
<TEXT> "GASTO"</TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.Type = transactionDrop </CONDITION>
<THEN>
<TEXT> "RETIRO DE EFECTIVO"</TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.ReceiptReturnMode = TRUE </CONDITION>
<!--REGIMEN DE FACTURACION-->
<THEN>
<TEXT> "DEVOLUCION"</TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> (Transaction.Type = transactionAccountPayment) </CONDITION>
<THEN>
<TEXT> "ABONO A CUENTA" </TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.Total &gt; 0 </CONDITION>
<THEN>
<TEXT> Transaction.ReceiptTransactionName </TEXT>
</THEN>
<ELSE>
<TEXT> "ANULAR/DEVOLUCION" </TEXT>
</ELSE>
</IF>
</ELSE>
</IF>
</ELSE>
</IF>
</ELSE>
</IF>
</ELSE>
</IF>
</COLUMNHEADER>
<!--REGIMEN DE FACTURACION-->
<IF>
<CONDITION> Transaction.Type &lt;&gt; transactionDrop &amp; Transaction.Type &lt;&gt; transactionPayout &amp; Transaction.Type &lt;&gt; transactionNoSale &amp; Transaction.Type &lt;&gt; transactionAccountPayment &amp; Transaction.Type &lt;&gt; transactionQuote &amp; Transaction.Type &lt;&gt; transactionworkorder &amp; Transaction.Type &lt;&gt; transactionlayaway </CONDITION>
<THEN>
<ROW> Session.Variable9 </ROW>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Session.Variable9 </ROW>
</THEN>
<ELSE>
<ROW> Transaction.ReceiptTransactionNumber </ROW>
</ELSE>
</IF>
<!--<ROW> Transaction.ReceiptTransactionNumber </ROW>-->
</ELSE>
</IF>
</TABLE>
<TABLE>
<BORDER> tbNone </BORDER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.60 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.50 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<IF>
<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>

</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>

<!--REGIMEN DE FACTURACION-->
<IF>
<CONDITION> Len(Customer.AccountNumber) </CONDITION>
<THEN>
<ROW> "RTN:" Customer.AccountNumber </ROW>
</THEN>
</IF>
<ROW> "Cliente:" Customer.Name </ROW>
<ROW> "Dirección:" Customer.HomeAddress.Company </ROW>
<ROW> "Fecha: " Transaction.Date "|H:"Transaction.Time </ROW>
<ROW> "Cajero: " Cashier.Number "|Caja #: " Register.Number </ROW>
<SET name="Vendedor" custom="False" description="w" type="vbLong">1</SET>
<FOR each="entry">
<IF>
<CONDITION> Vendedor = 1 &amp; len(Entry.Salesrep.Name) </CONDITION>
<THEN>
<ROW> "Vendedor: "Entry.Salesrep.Name "|" "Artículos: " Transaction.TotalQuantity </ROW>
<SET name="Vendedor" custom="False" description="w" type="vbLong">2</SET>
</THEN>
</IF>
</FOR>

</TABLE>
</SUB>
<!--

Casimiro Notevi 26-09-2015 11:28:48

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:


elanmas 26-09-2015 18:21:26

gracias por responder, no se mucho de programacion, lo que he hecho es tomar camandos de otras plantillas y asi las he modificado a mi conveniencia, necesito me pueda ayudar, creo donde tengo que agregar algun comando es en esta parte de la plantilla si me puede ayudar por favor dandome el ejemplo, se lo agradezco ante mano. ya que a la hora de imprimir la factura sale de esta maneraN°:000-002-01-1 y el que sigue N°:000-002-01-2, N°:000-002-01-3 y lo necesito a si N°:000-002-01-00000001, N°:000-002-01-00000002 ............. N°:000-002-01-00000200......... N°:000-002-01-00001495 lo que necesito que cambie son los ultimos 8 digitos.


<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>

</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>

<!--REGIMEN DE FACTURACION-->

elanmas 26-09-2015 18:25:17

Ayuda ceros a la izquierda
 
gracias por responder, no se mucho de programacion, lo que he hecho es tomar camandos de otras plantillas y asi las he modificado a mi conveniencia, necesito me pueda ayudar, creo donde tengo que agregar algun comando es en esta parte de la plantilla si me puede ayudar por favor dandome el ejemplo, se lo agradezco ante mano. ya que a la hora de imprimir la factura sale de esta maneraN°:000-002-01-1 y el que sigue N°:000-002-01-2, N°:000-002-01-3 y lo necesito a si N°:000-002-01-00000001, N°:000-002-01-00000002 ............. N°:000-002-01-00000200......... N°:000-002-01-00001495 lo que necesito que cambie son los ultimos 8 digitos.


<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>

</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>

<!--REGIMEN DE FACTURACION-->

olbeup 28-09-2015 09:55:47

Cita:

Empezado por elanmas (Mensaje 497196)
gracias por responder, no se mucho de programacion, lo que he hecho es tomar camandos de otras plantillas y asi las he modificado a mi conveniencia, necesito me pueda ayudar, creo donde tengo que agregar algun comando es en esta parte de la plantilla si me puede ayudar por favor dandome el ejemplo, se lo agradezco ante mano. ya que a la hora de imprimir la factura sale de esta maneraN°:000-002-01-1 y el que sigue N°:000-002-01-2, N°:000-002-01-3 y lo necesito a si N°:000-002-01-00000001, N°:000-002-01-00000002 ............. N°:000-002-01-00000200......... N°:000-002-01-00001495 lo que necesito que cambie son los ultimos 8 digitos.


<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>

</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>

<!--REGIMEN DE FACTURACION-->

Hola elanmas,

En el mensaje #2 viene como poner ceros a la izquierda, si lo primeros números son fijos pues es sencillo.

Código Delphi [-]
...
var
  facturaStr: String;
begin
  with ADOQuery1 do
    facturaStr := FieldByName('SERIE').AsString + '000-002-' + FormatFloat('00000000', FieldByName('IDFACTURA').AsInteger);
end;
Un saludo.

elanmas 29-09-2015 08:15:43

ceros a la izquierda
 
gracias por apoyarme

como dije en el foro no se de programacion, los datos que me envio los introduje en el fichero, y me da un mensaje que el archivo no puede ser un fichero de xml. uso el sql server 2005, me hara falta algun dato o puede ayudar a hacer el fichero o como colo segun estos datos

<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>

</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>

<!--REGIMEN DE FACTURACION-->





como coloco lo que me envio en lo anterior
var
facturaStr: String;
begin
with ADOQuery1 do
facturaStr := FieldByName('SERIE').AsString + '000-002-' + FormatFloat('00000000', FieldByName('IDFACTURA').AsInteger);
end;


tengo que cambiar algo donde dice factura?

olbeup 29-09-2015 09:53:08

Hola elanmas,

Como tú bien has dicho en tú primero mensaje, ¿como poner ceros a la izquierda con un máximo de 8 e incrementando en uno?, pues ya te lo he dicho, ahora, ¿como ponerlo en dicho documento?, pasandole el facturaStr, ¿cómo?, desconozco el fichero en cuestión y como se genera para poder incluir en cada recibo el facturaStr.

Un saludo.

elanmas 29-09-2015 18:32:50

ceros a la izquierda
 
buen dia olbeup

el fichero esta en extension xml, y lo edito con el bloc de notas, lo que ud me envio lo agregue a esa parte del fichero que le evio, sustiyendolo en esta parte del fichero <ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW> y al agregar el fichero al programa me da error, con lo que ud me envio no se si hay que agregar algunda sentencia o tengo que cambiarle el nombre alguna de mis tablas.

gracias por su apoyo


esto es parte del fichero donde va el numero de factura

SUB: PrintTransactionType
=============================
-->
<SUB name="PrintTransactionType">
<TABLE>
<FONT> "Large" </FONT>
<BORDER> tbNone </BORDER>
<COLUMNHEADER>
<ALIGNMENT> "^" </ALIGNMENT>
<WIDTH> PageWidth </WIDTH>
<IF>
<CONDITION> Transaction.Type = transactionPayout </CONDITION>
<THEN>
<TEXT> "GASTO"</TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.Type = transactionDrop </CONDITION>
<THEN>
<TEXT> "RETIRO DE EFECTIVO"</TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.ReceiptReturnMode = TRUE </CONDITION>
<!--REGIMEN DE FACTURACION-->
<THEN>
<TEXT> "DEVOLUCION"</TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> (Transaction.Type = transactionAccountPayment) </CONDITION>
<THEN>
<TEXT> "ABONO A CUENTA" </TEXT>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.Total &gt; 0 </CONDITION>
<THEN>
<TEXT> Transaction.ReceiptTransactionName </TEXT>
</THEN>
<ELSE>
<TEXT> "ANULAR/DEVOLUCION" </TEXT>
</ELSE>
</IF>
</ELSE>
</IF>
</ELSE>
</IF>
</ELSE>
</IF>
</ELSE>
</IF>
</COLUMNHEADER>
<!--REGIMEN DE FACTURACION-->
<IF>
<CONDITION> Transaction.Type &lt;&gt; transactionDrop &amp; Transaction.Type &lt;&gt; transactionPayout &amp; Transaction.Type &lt;&gt; transactionNoSale &amp; Transaction.Type &lt;&gt; transactionAccountPayment &amp; Transaction.Type &lt;&gt; transactionQuote &amp; Transaction.Type &lt;&gt; transactionworkorder &amp; Transaction.Type &lt;&gt; transactionlayaway </CONDITION>
<THEN>
<ROW> Session.Variable9 </ROW>
</THEN>
<ELSE>
<IF>
<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Session.Variable9 </ROW>
</THEN>
<ELSE>
<ROW> Transaction.ReceiptTransactionNumber </ROW>
</ELSE>
</IF>
<!--<ROW> Transaction.ReceiptTransactionNumber </ROW>-->
</ELSE>
</IF>
</TABLE>
<TABLE>
<BORDER> tbNone </BORDER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.60 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.50 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<IF>
<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>

</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>

<!--REGIMEN DE FACTURACION-->
<IF>
<CONDITION> Len(Customer.AccountNumber) </CONDITION>
<THEN>
<ROW> "RTN:" Customer.AccountNumber </ROW>
</THEN>
</IF>
<ROW> "Cliente:" Customer.Name </ROW>
<ROW> "Dirección:" Customer.HomeAddress.Company </ROW>
<ROW> "Fecha: " Transaction.Date "|H:"Transaction.Time </ROW>
<ROW> "Cajero: " Cashier.Number "|Caja #: " Register.Number </ROW>
<SET name="Vendedor" custom="False" description="w" type="vbLong">1</SET>
<FOR each="entry">
<IF>
<CONDITION> Vendedor = 1 &amp; len(Entry.Salesrep.Name) </CONDITION>
<THEN>
<ROW> "Vendedor: "Entry.Salesrep.Name "|" "Artículos: " Transaction.TotalQuantity </ROW>
<SET name="Vendedor" custom="False" description="w" type="vbLong">2</SET>
</THEN>
</IF>
</FOR>

</TABLE>
</SUB>
<!--

Casimiro Notevi 29-09-2015 18:37:58

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

Recuerda poner los tags al código fuente, ejemplo:


elanmas 30-09-2015 08:44:20

ceros a la izquierda
 
el fichero esta en xml y lo edito en bloc de notas por favor necesito que me ayude

olbeup 30-09-2015 09:31:22

Cita:

Empezado por elanmas (Mensaje 497370)
el fichero esta en xml y lo edito en bloc de notas por favor necesito que me ayude

Hola elanmas,

¿Cómo has añadido,
Cita:

<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>
Pues en ese tramo tienes que añadir el facturaStr

El XML se genera apartir de TXMLDocument ???, muestra el inicio y final de un recibo, la secuencia completa y se vera donde insertar la variable facturaStr.

Un saludo

ecfisa 30-09-2015 13:46:04

Hola elanmas.
Cita:

Empezado por elanmas (Mensaje 497333)
buen dia olbeup

el fichero esta en extension xml, y lo edito con el bloc de notas, lo que ud me envio lo agregue a esa parte del fichero que le evio, sustiyendolo en esta parte del fichero <ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW> y al agregar el fichero al programa me da error, con lo que ud me envio no se si hay que agregar algunda sentencia o tengo que cambiarle el nombre alguna de mis tablas. ----@----.---
...

La esencia de los foros es retroalimentarse con la publicación de consultas y respuestas.
De ese modo, cualquiera que pudiera pasar por una situación similar a la que planteas, se verá beneficiado al encontrar el tratamiento público que se le dió a tu consulta.

Por ese motivo quité del mensaje #12 , la dirección de correo electrónico que habías publicado.

Saludos :)

elanmas 30-09-2015 17:00:28

Buen Dia Olbeup

ya ingrese el FacturaStr, en
<!--<ROW> Transaction.ReceiptTransactionNumber </ROW>-->
</ELSE>
</IF>
</TABLE>
<TABLE>
<BORDER> tbNone </BORDER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.70 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.50 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<IF>
<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>
</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>
<!--REGIMEN DE FACTURACION-->


y me da dos errores: 1 compiler error token var was no foud
2 compiler error facturastr was no foud

me puede ayudar a ingresar

var
facturaStr: String;
begin
with ADOQuery1 do
facturaStr := FieldByName('SERIE').AsString + '000-002-' + FormatFloat('00000000', FieldByName('IDFACTURA').AsInteger);
end;

en la parte que necesito

<!--<ROW> Transaction.ReceiptTransactionNumber </ROW>-->
</ELSE>
</IF>
</TABLE>
<TABLE>
<BORDER> tbNone </BORDER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.70 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<COLUMNHEADER>
<ALIGNMENT> "&lt;~" </ALIGNMENT>
<WIDTH> PageWidth * 0.50 </WIDTH>
<TEXT> "" </TEXT>
</COLUMNHEADER>
<IF>
<CONDITION> Transaction.ReceiptReferenceNumber </CONDITION>
<THEN>
<ROW> Transaction.ReceiptReferenceNumberCaption </ROW>
</THEN>
</IF>
<ROW>"N°:000-002-01-" Transaction.ReceiptTransactionNumber </ROW>
<!--REGIMEN DE FACTURACION-->

ecfisa 30-09-2015 17:15:49

Hola elanmas.

Por favor, lee con atención y aplica lo que te sugirió Casimiro [ aqui ]

Saludos y gracias por tu colaboración :)

olbeup 01-10-2015 10:48:45

Hola elanmas,

No te estoy diciendo que insertes el código del MSG #9 dentro del fichero XML.

En el MSG #15 te hago una pregunta y aún me la has contestado, ¿cómo creas el fichero XML?, ¿Lo haces por medio de TXMLDocument?, ¿por otro componente?

Sólo te estoy diciendo cómo creas el fichero XML, ¿Lo haces por medio de TXMLDocument?, ¿Con cual libreria creas el fichero XML?

Si lo haces por TXMLDocuemt, cuando llegues a la parte donde poner el número del recibo, ahí se concatena la variable facturaStr

Si no muestras el código de cómo creas el fichero XML, no te podemos ayudar.

Espero que esto te de una idea a donde quiero que llegues a entender.
Código Delphi [-]
...
var
  XMLRecibos: IXMLDocument;
  XMLReciboLinea: IXMLNode
  FacturaStr: String
begin
  XMLRecibos := TXMLDocument.Create(nil);
    XMLRecibos.Active := True;
    XMLRecibos.Version := '1.0';
    XMLRecibos.Encoding := 'UTF-8';
    XMLRecibos.StandAlone := 'yes';
    XMLRecibos.NodeIndentStr := '  ';
    XMLRecibos.Options := XMLRecibos.Options + [doNodeAutoIndent];
  with ADOQuey1 do
  begin
    Open;
    while (not eof) do
    begin   
      FacturaStr := FieldByName('SERIE').AsString + '000-002-' + FormatFloat('00000000', FieldByName('IDFACTURA').AsInteger);
      ...
      ...
      ...
      XMLReciboLinea := XMLRecibos.AddChild('ROW');
        XMLReciboLinea.Text := QuotedStr(FacturaStr) + ' Transaction.ReceiptTransactionNumber';
      ...
      ...
      ...
    end;
    Close;
  end;
  XMLRecibos.SaveToFile('Recibos.XML');
  XMLRecibos.Active := False;
  FreeAndNil(XMLRecibos);
end;
Un saludo.


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

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