Tutorial (Como hacer un programa de Facturacion)
#41
Posted 20 April 2011 - 07:54 AM
Claro que sî, marcado en favoritos!
#42
Posted 27 June 2011 - 09:28 AM
#43
Posted 27 August 2011 - 02:44 PM
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
#44
Posted 27 August 2011 - 05:41 PM
En el formulario de facturación.
En el boton Guardar hay que hacer un update, revisa este y veras la diferencia.
procedure TFFactura.Button1Click(Sender: TObject); Var a,b,c,d,e,f,g,h : real; begin a:= StrTofloat(ECantidad.Text); b:= StrTofloat(EMonto.Text); d:= StrTofloat(EDesc.Text); f:= StrTofloat(EImp.Text); c:= a * b; e:= c * d / 100; g:= (c - e) * f / 100; h:= c - e + g; ESTotal.Text:= floatToStr(c); EDescuento.Text:=floatToStr(e); EImpuesto.Text:=floatToStr(g); ETotal.Text:= floatToStr(Round(h)); 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)+', '+ QuotedStr(EVendedor.Text)+', '+QuotedStr(EDesc.Text)+', '+QuotedStr(EImp.Text)+', '+QuotedStr(ESTotal.Text)+', '+QuotedStr(EDescuento.Text)+ ', '+QuotedStr(EImpuesto.Text)+ ', '+QuotedStr(ETotal.Text)+')'; AdoQuery1.Parameters.ParamByName('fecha').Value:= DateToStr(DateTimePicker1.Date); AdoQuery1.ExecSQL; // actualiza el inventario de articulos AdoQuery1.SQL.Text:= 'Update Articulos set disponible = disponible - '+FloatToStr(a); AdoQuery1.ExecSQL; end;
Si tienes alguna duda dilo.
Saludos
#45
Posted 28 August 2011 - 08:34 AM
el parametro disponible no tiene un valor predeterminado, y se posiciona en el
segundo ADOQuery1.ExecSQL
un saludo y muchas gracias por la ayuda
#46
Posted 28 August 2011 - 09:59 AM
Es un error de visión (ya no veo nada ).
Cuando hice la tabla en campo disponible lo puse como disponoble, Cambia el codigo por este:
Var a,b,c,d,e,f,g,h : real; begin a:= StrTofloat(ECantidad.Text); b:= StrTofloat(EMonto.Text); d:= StrTofloat(EDesc.Text); f:= StrTofloat(EImp.Text); c:= a * b; e:= c * d / 100; g:= (c - e) * f / 100; h:= c - e + g; ESTotal.Text:= floatToStr(c); EDescuento.Text:=floatToStr(e); EImpuesto.Text:=floatToStr(g); ETotal.Text:= floatToStr(Round(h)); 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)+', '+ QuotedStr(EVendedor.Text)+', '+QuotedStr(EDesc.Text)+', '+QuotedStr(EImp.Text)+', '+QuotedStr(ESTotal.Text)+', '+QuotedStr(EDescuento.Text)+ ', '+QuotedStr(EImpuesto.Text)+ ', '+QuotedStr(ETotal.Text)+')'; AdoQuery1.Parameters.ParamByName('fecha').Value:= DateToStr(DateTimePicker1.Date); AdoQuery1.ExecSQL; // actualiza el inventario AdoQuery1.SQL.Text:= 'Update Articulos set disponoble = disponoble - :a Where CodProducto = :b'; AdoQuery1.Parameters[0].Value:= FloatToStr(a); AdoQuery1.Parameters[1].Value:= ECodArticulo.Text; AdoQuery1.ExecSQL;
Saludos
#47
Posted 28 August 2011 - 12:58 PM
un saludo y un fuerte abrazo
#48
Posted 28 August 2011 - 01:11 PM
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
#49
Posted 25 November 2011 - 11:07 AM
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
procedure TFClientes.AadirClientes1Click(Sender: TObject); begin FMantClientes:=TFMantClientes.Create(self); try FMantClientes.ShowModal; finally FMantClientes.Free; end; end;
A la segunda: Articulos
delphi
procedure TFClientes.AadirArticulos1Click(Sender: TObject); begin FArticulos:=TFArticulos.Create(self); try FArticulos.ShowModal; finally FArticulos.Free; end; end;
A la tercera: Facturacion
delphi
FFactura:=TFFactura.Create(self); try FFactura.ShowModal; finally FFactura.Free; end;
Y a Salir:
delphi
procedure TFClientes.Salir1Click(Sender: TObject); begin Close; 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
begin Application.Initialize; Application.CreateForm(TFLogin, FLogin); Application.CreateForm(TFClientes, FClientes); Application.CreateForm(TDataModule1, DataModule1); Application.Run; 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'
#50
Posted 25 November 2011 - 11:23 AM
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
#51
Posted 25 November 2011 - 11:30 AM
#52
Posted 25 November 2011 - 01:26 PM
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.
#53
Posted 25 November 2011 - 02:53 PM
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
#54
Posted 28 November 2011 - 03:16 PM
les agradeceria su ayuda...
#55
Posted 28 November 2011 - 07:06 PM
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
#56
Posted 29 November 2011 - 11:42 AM
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.
#57
Posted 08 February 2012 - 06:13 PM
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?
#58
Posted 08 February 2012 - 06:19 PM
Ni idea amigo, nunca me ha salido ese error.
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.
Saludos
#59
Posted 16 February 2012 - 04:50 PM
#60
Posted 16 February 2012 - 05:54 PM
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.
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