Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problemas con un contador. (https://www.clubdelphi.com/foros/showthread.php?t=8602)

UTECYBER 26-03-2004 18:27:19

Problemas con un contador.
 
Tengo un campo llamado No_Factura, en un Formulario para procesar la transaccion de una factura, en realidad no se como hacer que cada vez que pulse el boton nuevo para elaborar otra factura, el campo No_Factura se incremente en 1 y asi sucesivamente.

Estoy trabajando con la base de datos de escritorio Paradox...

Atte. Utecyber

roman 26-03-2004 23:07:21

¿No te sirve usar un campo autoinc?

// Saludos

UTECYBER 29-03-2004 14:46:48

La verdad roman .

Que es un Campo Autoinc?...

No se que es// :confused: :(

Atte.Utecyber

delphi.com.ar 29-03-2004 15:17:36

Un campo Autoinc, es un tipo de campo que cuando ingresas un nuevo registro, este toma automáticamente un valor autoincremental, digamos tomará el valor + 1 del último registro.

Saludos!

marcoszorrilla 29-03-2004 15:47:09

Tratándose de Paradox, te puedo decir por experiencia, que no utilices campos autoinc, para numerar facturas, seguro que el cliente en un momento dado quiere empezar por 1 el año próximo y el contador irá por donde le corresponda, además puede haber grabaciones fallidas y el contador tendría saltos.

Yo personalmente, con Paradox, utilizo una segunda tabla en donde guardo el número de la última factura, del útlimo albarán, etc...

Incluso pongo la opción que el usuario pueda modificarlo bien para comienzos de año o porque ha decidido eliminar una factura y quiere hacer otra en su lugar, yo utilizo un campo tipo texto.
04-0000001
04-0000002

El campo contador que guardo en la tabla auxiliar es de tipo numeríco, tengo otro campo en la auxiliar que se llama ejercicio, por ejemplo ahora estaría en 04 y con la concatenación del ejercicio + el número guardado +1 compongo el número de la factura.

Espero te sirva la idea.

Un Saludo.

UTECYBER 29-03-2004 19:21:40

Gracias por tu aclaración Marcos, ..

En mi caso utilizo el Campo No_Factura en una tabla llamada Cabezera_Factura. y lo tengo declarado como un campo Numerico.

No obstante marcos, mi aplicación es sencilla, ya que este proyecto tengo que entregarlo a la universidad el cual estudio.Ing.Informatica.

Por eso e optado por utilizar un campo autoinc.

Ahora mi pregunta es

Como utilizo un campo Autoinc?

Atte.Utecyber. :confused:

roman 29-03-2004 19:25:04

Cita:

Empezado por UTECYBER
Como utilizo un campo Autoinc?

Pues no tienes que hacer nada especial. Cada vez que insertes un nuevo registro el campo será asignado de forma automática. Su valor lo lees como el de cualquier otro campo.

// Saludos

UTECYBER 29-03-2004 19:41:17

Te entiendo perfectamente roman.

Pero este campo (Por Ej:Num_Factura) Yo lo tengo en la tabla Cabezera de factura como:Ej:

Nombre size tipo
No_Factura 8 Numerico *

ahora bien, como hago que sea autoinc? es decir que se incremente en uno cada vez que inserte un nuevo registro. :confused:

Atte.Utecyber

roman 29-03-2004 19:58:26

¡Ah! Es que autoinc es un tipo de campo en sí. Debes redefinir la estructura de la tabla y seleccionar el tipo autoinc para el campo Num_Factura.

// Saludos

UTECYBER 29-03-2004 20:30:59

Exacto,

Gracias Roman..

Definí la estructura de la tabla y seleccione el tipo autoinc, me funciono a la perfección.

Atte.Utecyber

Las grandes preguntas hacen la perfeccion.!

simon 01-06-2004 20:31:31

Hola UTECYBE

no se si tiene repuesta de tu pregunda pero lo que quiere es un autoIncremento, el codigo es el siquiente.

procedure TFrm_Giros.Tbl_SolicitudDocumentoNewRecord(DataSet: TDataSet);
begin
if Tbl_SolicitudDocumento.State = dsInsert Then
Begin
Qry_Secuencia.Open;
Numero_Documento := Tbl_SolicitudDocumentoNumero_Documento.Value;
Tbl_SolicitudDocumentoNumero_Documento.Value := Qry_Secuencia.Fields[0].AsInteger + 1;
Qry_Secuencia.Close;

jachguate 02-06-2004 05:49:24

Hola. Solo quiero acotar que el código sugerido por simon funcionará en aplicaciones monousuario, pero que no brinda seguridad en cuanto a la unicidad de las claves en aplicaciones multiusuario.

Por otro lado, creo que la duda de utecyber ya estaba resuelta antes. De cualquier forma hago la aclaración para quien encuentre el hilo por medio de la busqueda.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 19:00:10.

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