Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Generar Numero Automatico en Cotizacion (https://www.clubdelphi.com/foros/showthread.php?t=11867)

jmedina 28-06-2004 19:38:23

Generar Numero Automatico en Cotizacion
 
Que tal:


Espero me puedan ayudar no se como hacerlo, quiero un numero automatico de cotizacion anidado al año en que se este trabajando por ejemplo 001/2004...999/2004 y este se incremente 002/2004 etc , y que este se ponga en un campo especifico de mi base de datos en paradox llamado ( CodCot), y tambien si es que se pueda inicializar el 001 cuando cambie a el año 2005, este dato lo quiero generar cuando de una nueva cotiazacion, creen que se pueda realizar espero de su gran ayuda.

Gracias, Una Persona que empieza a programar:confused:

Saludos

marcoszorrilla 28-06-2004 19:53:36

Bueno es fácil.

Yo lo primero que hago es en una tabla que llamo configuración guardo en un campo el ejercicio, por ejemplo 2.004, con esto ya tenemos una parte hecha, en otro campo guardo el número actual.

Al dar un alta le sumo uno al número actual y lo concateno con el ejercicio que el usuario lo cambiará cada año cuando decida comenzar con el nuevo ejercicio que no tiene porque ser precismante el 1 de enero de cada año, pues ya se sabe que se dejan algunos días para completar el ejercicio anterior.

Un Saludo.

marcoszorrilla 28-06-2004 20:08:20

Te añado un pequeño ejemplo para que acabes de ver la idea:
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 var
 nEjercicio:Integer;
 nNumero:Integer;
 cNumero:String;
 begin
 nEjercicio:=2004;
 nNumero:=30;
 nNumero:=nNumero+1;
 cNumero:=FormatFloat('0000',nNumero)+'/'+IntToStr(nEjercicio);
 ShowMessage(cNumero);
 end;

Un Saludo.

jmedina 28-06-2004 20:24:20

Cita:

Empezado por marcoszorrilla
Te añado un pequeño ejemplo para que acabes de ver la idea:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
nEjercicio:Integer;
nNumero:Integer;
cNumero:String;
begin
nEjercicio:=2004;
nNumero:=30;
nNumero:=nNumero+1;
cNumero:=FormatFloat('0000',nNumero)+'/'+IntToStr(nEjercicio);
ShowMessage(cNumero);
end;

Un Saludo.

Ok si lo entiendo pero como hacerlo de una manera automatica donde el año lo tome de la fecha que se le esta asignando y asi mismo cuando cambie el año se reinicie en 001 , gracias por la ayuda espero me heches la mano, otrra cosa veoel anuncio de lo del delphi PACK, y me interesaria, no sabes como conseguirlo y cuanto cuesta en pesos

saludos

marcoszorrilla 28-06-2004 21:50:32

Aquí tienes una parte.
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 var
 nNumero:Integer;
 cNumero:String;
 nAn,nMes,Ndia:Word;
 begin
 DecodeDate(Date,nAn,nMes,nDia);
 nNumero:=30;
 nNumero:=nNumero+1;
 cNumero:=FormatFloat('0000',nNumero)+'/'+IntToStr(nAn);
 ShowMessage(cNumero);
 end;

Que conste que no voy de acuerdo con este planteamiento, porque es posible que todavía en Enero tengamos que hacer algún apunte del año pasado, pero bueno.

En cuanto al cambio automático de contador, tendríamos que crear en la tabla que controle este suceso, un campo con el ejercicio y otro de tipo boolean con valor True que por ejemplo llamaríamos actualizado, en el año actual tendríamos ejercicio = 2004 y Actualizado = True en el cambio de año pondríamos actualizado = False y el contador = 0, en el cambio de contador a uno pondríamos de nuevo actualizado = True.

Un Saludo.

marcoszorrilla 28-06-2004 22:11:29

El DelphiPack, está agotado, el administrador del Foro está preparando una nueva edición, teniendo en cuenta que tiene mucho trabajo, es posible que para el verano, más bien al final salga una nueva edición, en este caso se anunciará oportunamente, modo de conseguirlo y precio.

Un Saludo.

DarkByte 29-06-2004 11:15:19

:) Por fin ya sabemos que pasa con el Delphi Pack. Si puedo ayudar en algo a Emilio... que lo diga :) .

jmedina 30-06-2004 06:16:29

que tal Nuevamente Marcos, tengo una duda no entiendo muy bien lo que me dices de manejar una minitabla para ejerciios, bueno el crearla es facil pero emprearla ahi si ando medio fritillo, como crees que le pueda hacer, si no es mucha molestia, te lo agradeceria de antemano


Gracias

JMedina

marcoszorrilla 30-06-2004 14:21:17

En un Campo por ejemplo llamado ejercicio de una Tabla auxiliar que por ejemplo yo llamaría configuración y ahí guardaría todo lo genérico a la aplicación, color de los formularios...... y otras cosas.

Al arrancar la aplicación:

Pseudocódigo:
Cita:

Si año de la fecha > ConfiguraEjercicio.Value then
begin
ConfiguraContador.Value:=0;
ConfiguraEjercicio.Value:=Añodelafecha;
end;
Esto solamente ocurriría una vez al año por lo tanto el resto del año saldríamos de esta comprobación sin hacer nada.

Si el año de la fecha es mayor que el ejercicio, se realizan automáticamente dos funciones una poner el contador a 0, por lo tanto el siguiente recibo sería el 0001, ya que hemos dicho que siempre le sumamos uno al contador.

Y por otra parte el ejercio lo ponemos = al año, con lo cual hasta el año próximo no se volvería modificar el ejercicio y el contador seguiría su curso:

0001/04
0002/04
Cambio de año
Ejercicio = 2005
Contador= 0'
Siguiente recibo
Contador+1 = 0001
Ejercicio = 2005
Recibo 0001/05

Etc.


Un Saludo.

jmedina 30-06-2004 17:54:01

ok marcos gracias una ves mas espero poder adaptarlo y ver los resultados vale, yo digo que si funciona pero luego esta bueno adaptarlo a el evento que se necesite

cualquier cosa ya te tendre que molestar, espero no te ostigue


Saludos


La franja horaria es GMT +2. Ahora son las 00:46:21.

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