Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-02-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 688
Poder: 21
olbeup Va camino a la fama
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.
Responder Con Cita
  #2  
Antiguo 26-09-2015
elanmas elanmas is offline
Registrado
NULL
 
Registrado: sep 2015
Posts: 7
Poder: 0
elanmas Va por buen camino
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>
<!--
Responder Con Cita
  #3  
Antiguo 26-09-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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:

Responder Con Cita
  #4  
Antiguo 26-09-2015
elanmas elanmas is offline
Registrado
NULL
 
Registrado: sep 2015
Posts: 7
Poder: 0
elanmas Va por buen camino
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-->
Responder Con Cita
  #5  
Antiguo 26-09-2015
elanmas elanmas is offline
Registrado
NULL
 
Registrado: sep 2015
Posts: 7
Poder: 0
elanmas Va por buen camino
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-->
Responder Con Cita
  #6  
Antiguo 28-09-2015
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 688
Poder: 21
olbeup Va camino a la fama
Cita:
Empezado por elanmas Ver Mensaje
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.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #7  
Antiguo 29-09-2015
elanmas elanmas is offline
Registrado
NULL
 
Registrado: sep 2015
Posts: 7
Poder: 0
elanmas Va por buen camino
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?
Responder Con Cita
  #8  
Antiguo 29-09-2015
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 688
Poder: 21
olbeup Va camino a la fama
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.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #9  
Antiguo 29-09-2015
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
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:

Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
ncf Numero de comprobante fiscal jandj Varios 2 19-12-2012 21:48:04
Cómo incrementar fecha meses/dias con SQL/Firebird 2.1 Tcmn Firebird e Interbase 2 11-10-2010 20:00:46
conocer el numero de licencias en SQL Server sinalocarlos MS SQL Server 2 12-01-2007 18:12:52
Impresora Fiscal y Delphi 5 como? guiweb Varios 0 20-07-2006 18:41:37
Inserción de comprobante Ulises Providers 0 25-07-2003 04:15:13


La franja horaria es GMT +2. Ahora son las 05:06:07.


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