Ir al contenido



Foto

Tutorial (Como hacer un programa de Facturacion)


  • Por favor identifícate para responder
87 respuestas en este tema

#41 Tormix

Tormix

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 20 abril 2011 - 07:54

Ya... las tonterías de no ver las cosas

Claro que sî, marcado en favoritos!
  • 0

#42 jordangel

jordangel

    Advanced Member

  • Miembros
  • PipPipPip
  • 84 mensajes
  • LocationVenezuela

Escrito 27 junio 2011 - 09:28

buenas.. como estan?? caral.. amigo cuanto tiempo.! no se si te acuerdas de mi.! jejeje..!! estube recordando todo sobre delphi y repasando de nuevo.! he descargado el tutorial pero tengo una pequeña falla.. en form de la factura.. al momento de buscar el articulo automaticamente me da el precio de venta en el monto.txt pero el detalle esta en que me muestra el varo entre comillas simple 'X' y por causa de eso delphi no puede calcularme tdo el monto total por ese error.! pero no consigo en donde esta ese error!... es el unico fallo que me presenta.! porfa.. ayudenme =(
  • 0

#43 corajudo

corajudo

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 27 agosto 2011 - 02:44

Hola ante todo darte las gracias por el tutorial, estoy empezando, y soy un completo novato
te explico mi caso, decite que me funciona perfectamente, pero quisiera avanzar un poco mas
y es que obsevo que no descuenta la cantidad de facturacion del disponible, y me gustaria si podrias hecharme una mano
Un saludo
  • 0

#44 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 27 agosto 2011 - 05:41

Hola
En el formulario de facturación.
En el boton Guardar hay que hacer un update, revisa este y veras la diferencia.


delphi
  1. procedure TFFactura.Button1Click(Sender: TObject);
  2. Var
  3.   a,b,c,d,e,f,g,h : real;
  4. begin
  5. a:= StrTofloat(ECantidad.Text);
  6. b:= StrTofloat(EMonto.Text);
  7. d:= StrTofloat(EDesc.Text);
  8. f:= StrTofloat(EImp.Text);
  9. c:= a * b;
  10. e:= c * d / 100;
  11. g:= (c - e) * f / 100;
  12. h:= c - e + g;
  13. ESTotal.Text:= floatToStr(c);
  14. EDescuento.Text:=floatToStr(e);
  15. EImpuesto.Text:=floatToStr(g);
  16. ETotal.Text:= floatToStr(Round(h));
  17. AdoQuery1.SQL.Text := 'Insert into Factura Values ('+QuotedStr(ECodFactura.Text)+', :fecha, '+QuotedStr(ECodCliente.Text)+ ', '+QuotedStr(ECodArticulo.Text)+ ', '+Label9.Caption+ ', '+QuotedStr(ECantidad.Text)+ ', '+QuotedStr(ComboBox1.Text)+', '+QuotedStr(EOCompra.Text)+', '+
  18.                         QuotedStr(EVendedor.Text)+', '+QuotedStr(EDesc.Text)+', '+QuotedStr(EImp.Text)+', '+QuotedStr(ESTotal.Text)+', '+QuotedStr(EDescuento.Text)+ ', '+QuotedStr(EImpuesto.Text)+ ', '+QuotedStr(ETotal.Text)+')';
  19. AdoQuery1.Parameters.ParamByName('fecha').Value:= DateToStr(DateTimePicker1.Date);
  20. AdoQuery1.ExecSQL;
  21.  
  22. // actualiza el inventario de articulos
  23. AdoQuery1.SQL.Text:= 'Update Articulos set disponible = disponible - '+FloatToStr(a);
  24. AdoQuery1.ExecSQL;
  25.  
  26. end;


Si tienes alguna duda dilo.
Saludos
  • 0

#45 corajudo

corajudo

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 28 agosto 2011 - 08:34

Me da el siguiente error.
el parametro disponible no tiene un valor predeterminado, y se posiciona en el
segundo ADOQuery1.ExecSQL
un saludo y muchas gracias por la ayuda
  • 0

#46 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 28 agosto 2011 - 09:59

Hola
Es un error de visión (ya no veo nada  :D :D ).
Cuando hice la tabla en campo disponible lo puse como disponoble, Cambia el codigo por este:


delphi
  1. Var
  2.   a,b,c,d,e,f,g,h : real;
  3. begin
  4. a:= StrTofloat(ECantidad.Text);
  5. b:= StrTofloat(EMonto.Text);
  6. d:= StrTofloat(EDesc.Text);
  7. f:= StrTofloat(EImp.Text);
  8. c:= a * b;
  9. e:= c * d / 100;
  10. g:= (c - e) * f / 100;
  11. h:= c - e + g;
  12. ESTotal.Text:= floatToStr(c);
  13. EDescuento.Text:=floatToStr(e);
  14. EImpuesto.Text:=floatToStr(g);
  15. ETotal.Text:= floatToStr(Round(h));
  16. AdoQuery1.SQL.Text := 'Insert into Factura Values ('+QuotedStr(ECodFactura.Text)+', :fecha, '+QuotedStr(ECodCliente.Text)+ ', '+QuotedStr(ECodArticulo.Text)+ ', '+Label9.Caption+ ', '+QuotedStr(ECantidad.Text)+ ', '+QuotedStr(ComboBox1.Text)+', '+QuotedStr(EOCompra.Text)+', '+
  17.                         QuotedStr(EVendedor.Text)+', '+QuotedStr(EDesc.Text)+', '+QuotedStr(EImp.Text)+', '+QuotedStr(ESTotal.Text)+', '+QuotedStr(EDescuento.Text)+ ', '+QuotedStr(EImpuesto.Text)+ ', '+QuotedStr(ETotal.Text)+')';
  18. AdoQuery1.Parameters.ParamByName('fecha').Value:= DateToStr(DateTimePicker1.Date);
  19. AdoQuery1.ExecSQL;
  20. // actualiza el inventario
  21. AdoQuery1.SQL.Text:= 'Update Articulos set disponoble = disponoble - :a Where CodProducto = :b';
  22. AdoQuery1.Parameters[0].Value:= FloatToStr(a);
  23. AdoQuery1.Parameters[1].Value:= ECodArticulo.Text;
  24. AdoQuery1.ExecSQL;


Saludos
  • 0

#47 corajudo

corajudo

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 28 agosto 2011 - 12:58

Solucionado, muchisimas gracias
un saludo y un fuerte abrazo
  • 0

#48 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 28 agosto 2011 - 01:11

Hola
Ahora:
Que pasa si te equivocas y quieres eliminar el producto facturado ???(boton eliminar).
El Articulo quedara descontado.
Solucion:
En el boton eliminar.
Se tiene que hacer lo mismo pero en sentido contrario.
Saludos
  • 0

#49 netway

netway

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 25 noviembre 2011 - 11:07

Hola
Bueno, ya tenemos todo lo que necesitamos listo para trabajar, solo algunos ajuste y a andar.
Primero:
Os acordais del primer Form, el que serviría de principal y contiene un MainMenu.
Vamos a enlazarlo con los demos forms.
Demosle dobleclick al mainmenu.
Nos saldran las opciones que teniamos.
Vamos a darle dobleclick a la primera: Clientes y ponemos esto:


delphi
  1. procedure TFClientes.AadirClientes1Click(Sender: TObject);
  2. begin
  3.     FMantClientes:=TFMantClientes.Create(self);
  4.   try
  5.     FMantClientes.ShowModal;
  6.   finally
  7.     FMantClientes.Free;
  8.   end;
  9. end;


A la segunda: Articulos


delphi
  1. procedure TFClientes.AadirArticulos1Click(Sender: TObject);
  2. begin
  3.     FArticulos:=TFArticulos.Create(self);
  4.   try
  5.     FArticulos.ShowModal;
  6.   finally
  7.     FArticulos.Free;
  8.   end;
  9. end;


A la tercera: Facturacion


delphi
  1.   FFactura:=TFFactura.Create(self);
  2.   try
  3.     FFactura.ShowModal;
  4.   finally
  5.     FFactura.Free;
  6.   end;


Y a Salir:


delphi
  1. procedure TFClientes.Salir1Click(Sender: TObject);
  2. begin
  3.   Close;
  4. end;


Ahora que tenemos enlazado todo nos falta que el programa arranque primero en el form Login.
Nos vamos al unit del proyecto y cambiamos el orden de acceso asi:


delphi
  1. begin
  2.   Application.Initialize;
  3.   Application.CreateForm(TFLogin, FLogin);
  4.   Application.CreateForm(TFClientes, FClientes);
  5.   Application.CreateForm(TDataModule1, DataModule1);
  6.   Application.Run;
  7. end.


Ya estamos listos para ejecutar y probar el programa.
Espero os sirva de ejemplo y os guste.
Como siempre el código fuente de este programa lo dejo por si tenéis alguna duda.
Saludos

AQUI ESTA LOS ARCHIVOS COMPLETOS EN LA ZONA DE DESCARGA


Hola, estoy intentando  hacer funcionar el programa del tutorial y de aqui no paso, intento copiar y pegar en el paso de facturación, me da  error en  lo que pongo entre parentesis  a continuación y sale en rojo y el cursor entre FFactura y :=
(      FFactura:=TFFactura.Create(self);)
si me podeis ayudar os lo agradeceria, yo entieno poco por no decir nada de esto pero me gustaria hacerlo funcionar, si se puede claro,. Muchas gracias de antemano y saludos
al iniciar el run:
procedure TFClientes.Facturacion1Click(Sender: TObject);
begin
      FFactura:=TFFactura.Create(self);
      try
      FFactura.ShowModal;
    finally
    FFactura.Free;
    end;


errores que da:

[Error] UFClientes.pas(69): Undeclared identifier: 'FFactura'
[Error] UFClientes.pas(69): Missing operator or semicolon
[Error] UFClientes.pas(71): Missing operator or semicolon
[Error] UFClientes.pas(73): Missing operator or semicolon
[Error] UFClientes.pas(76): Statement expected but end of file found
[Fatal Error] Factura.dpr(9): Could not compile used unit 'UFClientes.pas'

  • 0

#50 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 25 noviembre 2011 - 11:23

Hola
Cada form tiene un Name (nombre), este puede ser el que quieras.
En el caso del  form de factura se le puso como nombre FFactura.
Si no le has puesto ese nombre al form no lo reconocera, el programa dira que no lo encuentra, que no esta declarado.
Saludos
  • 0

#51 javsolis3

javsolis3

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.380 mensajes
  • LocationPanama

Escrito 25 noviembre 2011 - 11:30

Permiteme felicitarte Caral caray tu si que te aplicas con esto vere como empieso este proyecto (y) (y) (y) (y).
  • 0

#52 netway

netway

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 25 noviembre 2011 - 01:26

Hola
Cada form tiene un Name (nombre), este puede ser el que quieras.
En el caso del  form de factura se le puso como nombre FFactura.
Si no le has puesto ese nombre al form no lo reconocera, el programa dira que no lo encuentra, que no esta declarado.
Saludos


hola, gracias por contestar tan rapido, lo he repasado y en name  y caption del form de factura tengo puesto este nombre (FFactura) igual que clietes y articulos y esos si los habre si problemas.
  • 0

#53 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 25 noviembre 2011 - 02:53

Hola
Segun los errores que te da:
[Error] UFClientes.pas(69): Undeclared identifier: 'FFactura'
[Error] UFClientes.pas(69): Missing operator or semicolon
1- no reconoce el form ffactura.
2- Te falta un punto y coma en algun lado.
Por eso me parece que el problema esta por el lado del form ffactura y en name.
Revisa bien todo, tal vez estas cambiando algo sin darte cuenta.
Saludos
  • 0

#54 JUANJMOYAR

JUANJMOYAR

    Member

  • Miembros
  • PipPip
  • 14 mensajes
  • LocationMaturin, Monagas

Escrito 28 noviembre 2011 - 03:16

hola buenas tardes, estoy practicando con el programa de facturacion, pero le estoy tratando de agregar algunas cosas, por ejemplo en vez de un boton para buscar articulos uso un dblookupcombobox y algun que otro radiobutton, lo que necesito saber es como mostrar los datos del dblookupcombobox y grabarlos en mi archivo y como seria la logica para los radiobutton, tengo un para para decidir si el articulo es nacional o importado y otro para para saber si es consumible o instalable, trabajo con delphi 7 y access con ado...
les agradeceria su ayuda...
  • 0

#55 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 28 noviembre 2011 - 07:06

Hola
Seria bueno que explicaras con mas detalle que quieres hacer.
No entiendo muy bien el asunto del dblookupcombobox  y radiobuton.
Si tienes algo de codigo hecho tambien seria bueno que lo mostraras.
Saludos
  • 0

#56 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.259 mensajes
  • LocationArgentina

Escrito 29 noviembre 2011 - 11:42

Hola,
Por favor mantengan el tutorial lo más "limpio" de consultas. Abran un hilo nuevo con las dudas puntuales, y en todo caso hagan referencia a éste tutorial aportando la mayor información concreta posible.

Muchas gracias.
  • 0

#57 mramos65

mramos65

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 08 febrero 2012 - 06:13

:cry:
Hola Caral:
  Te felicito por este post, hay mucho que aprender, lo ejecute y al momento de guardar la factura me envia mensaje de "La operacion debe usar una consulta actualizable" me podrias ayudar con esa duda?
  • 0

#58 Caral

Caral

    Advanced Member

  • Administrador
  • 4.241 mensajes
  • LocationCosta Rica

Escrito 08 febrero 2012 - 06:19

Hola
Ni idea amigo, nunca me ha salido ese error. 8o|
Revisa bien el codigo, si lo copiaste tal y como esta no deberia de generar ningun error.
Si sigues con problemas crea un nuevo tema y le entramos al asunto. (y)
Saludos
  • 0

#59 imanol74

imanol74

    Newbie

  • Miembros
  • Pip
  • 4 mensajes

Escrito 16 febrero 2012 - 04:50

Te agradezco mucho el compartir este código, he programado muchos años, pero nunca en delphi y la verdad no se por que, eso si hay muchas partes que aun no comprendo,pero que con el tiempo .... , pero me gustaría estar en contacto si es posible por aquello de las dudas que nunca faltaran mi correo es xxxxxxxxx, saludos y gracias nuevamente.
:huh: :huh: :huh:
  • 0

#60 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 16 febrero 2012 - 05:54

Te agradezco mucho el compartir este código, he programado muchos años, pero nunca en delphi y la verdad no se por que, eso si hay muchas partes que aun no comprendo,pero que con el tiempo .... , pero me gustaría estar en contacto si es posible por aquello de las dudas que nunca faltaran mi correo es xxxxxxxxx@hotmail.com, saludos y gracias nuevamente.
:huh: :huh: :huh:


Pues amigo esperamos verte muuuuy seguido por aquí aportando con dudas, comentarios, o lo que nos quieras compartir... tengo que quitar tu correo electrónico por cuestiones de seguridad  *-)

Saludox y Bienvenido ! :)


Edito: Y yo lo quito de tu cita :D :D :D
  • 0