PDA

Ver la Versión Completa : From de faturacion en delphi


Yensis22
31-08-2008, 18:29:53
Hola muchacho gracia de antemano pos su atencion a mi poregunata.

Estoy creando un from con tres tablas en access que es de facturacion pero me esta dando algunos problema por eso le pido si no es mucha molestia en el foro hay alguna codigo que pueda toma como emplos para realizar los calculos

[QUOTE]
Tfactura Tfacturadetalle Tfactcob
Numero_factura Fatura Detalle Numero Factura
Direccion Numero Factura Fecha
Tipo Cliente Cliente Cliente
Fecha Factura Equipos RNC
Equipos Monto Equipos
NCF Importe condicion
Monto ITBIS Monto
Total Descuento Fecha_vence
ITBIS Pagado Total
Descuento Total Forma Pago
Forma Pago
Comentario

[QUOTE]

type
TForm1 = class(TForm)
Label1: TLabel;
GroupBox1: TGroupBox;
Panel2: TPanel;
Label2: TLabel;
Label15: TLabel;
DBGrid1: TDBGrid;
DBMemo1: TDBMemo;
DSFuncionBoton: TDataSource;
Bevel2: TBevel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
DataSource1: TDataSource;
GroupBox2: TGroupBox;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
Label11: TLabel;
MaskEdit1: TMaskEdit;
Label3: TLabel;
Label12: TLabel;
DBEdit5: TDBEdit;
DBEdit2: TDBEdit;
Label13: TLabel;
DBEdit9: TDBEdit;
Label14: TLabel;
DBComboBox2: TDBComboBox;
Label16: TLabel;
DBComboBox3: TDBComboBox;
Label17: TLabel;
DBEdit3: TDBEdit;
Label18: TLabel;
Label20: TLabel;
FTotales: TPanel;
Label6: TLabel;
Label9: TLabel;
Label4: TLabel;
LM: TLabel;
Label26: TLabel;
DataSource2: TDataSource;
DataSource3: TDataSource;
DBText1: TDBText;
DBText2: TDBText;
DBText3: TDBText;
DBText4: TDBText;
DBText5: TDBText;
DBText6: TDBText;
DBEdit1: TDBEdit;
DBEdit4: TDBEdit;
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure SpeedButton11Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure DataSource2DataChange(Sender: TObject; Field: TField);
// procedure DSFuncionBotonDataChange(Sender: TObject; Field: TField);
procedure BitBtn1Click(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
ConexionDB.Query1.Cancel();
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
Var x:Double;
begin
ConexionDB.Query1.Last();
If ( ConexionDB.Query1.IsEmpty) And ( ConexionDB.Query1.IsEmpty) Then
Begin
X:=1;
End
Else
Begin
X:= ConexionDB.Query1['idcliente']+1;
end;
ConexionDB.Query1.Append;
ConexionDB.Query1['idcliente']:=X;
DBEdit5.SetFocus();
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
ConexionDB.Query1.Post();
end;
procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
ConexionDB.Query1.Next();
end;
procedure TForm1.SpeedButton7Click(Sender: TObject);
begin
close;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
conexiondb.Query1.Edit();
end;
procedure TForm1.SpeedButton12Click(Sender: TObject);
begin
conexiondb.Query1.First();
end;
procedure TForm1.SpeedButton10Click(Sender: TObject);
begin
conexiondb.Query1.Prior();
end;
procedure TForm1.SpeedButton11Click(Sender: TObject);
begin
conexiondb.Query1.Last;
end;
procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
if MessageDlg('¿Esta Seguro que Desea Borrar Este registro?',
mtConfirmation, [mbYes, mbNo], 0) = mrYes then
ConexionDB.Query1.Delete();

end;


procedure TForm1.DataSource2DataChange(Sender: TObject; Field: TField);
begin
If ConexionDB.Query1.State In[DsInsert,DsEdit] Then
Begin
SpeedButton2.Enabled := True;
SpeedButton1.Enabled := False;
SpeedButton6.Enabled := True;
SpeedButton3.Enabled := False;
SpeedButton5.Enabled := True;
SpeedButton7.Enabled := False;
SpeedButton8.Enabled := False;
End
Else
Begin
SpeedButton2.Enabled := False;
SpeedButton1.Enabled := True;
SpeedButton6.Enabled := False;
SpeedButton3.Enabled := True;
SpeedButton5.Enabled := False;
SpeedButton7.Enabled := True;
SpeedButton8.Enabled := True;
End
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
importe: double;
monto: double;
ITBIS: double;
Total: double;
Apagar: double;
//retencion: double;
descuento: double;
ivaf: double;
acuenta: double;
begin
if (conexiondb.Query1.state=dsinsert) or (conexiondb.Query1.state=dsedit) then
conexiondb.Query1.Post;
monto := 0;
conexiondb.Query1.First;
while not conexiondb.Query1.Eof do
begin
if not varisnull(conexiondb.Query1.FieldByName('importe').value) then
importe := conexiondb.Query1.FieldByName('importe').value
else
importe:=0;
monto := importe + monto;
conexiondb.Query1.next;
end;
if not varisnull(conexiondb.Query1.fieldbyname('descuento').value) then
descuento := conexiondb.Query1.fieldbyname('descuento').value
else
descuento := 0;
monto := monto -(descuento/ 100)* monto;
if not varisnull(conexiondb.Query1.fieldbyname('ITBIS').value) then
if (conexiondb.Query1.fieldbyname('Cambio').value <> 0) and
(not (varisnull(conexiondb.Query1.fieldbyname('Cambio').value))) then
else
ITBIS := ITBIS;
total := monto + ITBIS;
if not varisnull(conexiondb.Query1.fieldbyname('ACuenta').value) then
ACuenta := conexiondb.Query1.fieldbyname('ACuenta').value
else
acuenta := 0;
//if not varisnull(conexiondb.Query1.fieldbyname('Retencion').value) then
// retencion := conexiondb.Query1.fieldbyname('Retencion').value
//else
//retencion := 0;
//apagar := total - acuenta - retencion;
conexiondb.Query1.Edit;
conexiondb.Query1.FieldByName('Tmonto').value :=
formatfloat('###,###,###,##0.00;(###,###,###,##0.00);0', monto);
conexiondb.Query1.FieldByName('TotalITBIS').value :=
formatfloat('###,###,###,##0.00;(###,###,###,##0.00);0', ITBIS);
conexiondb.Query1.FieldByName('TotalRecibo').value :=
formatfloat('###,###,###,##0.00;(###,###,###,##0.00);0', total);
conexiondb.Query1.FieldByName('APagar').value :=
formatfloat('###,###,###,##0.00;(###,###,###,##0.00);0', apagar);
conexiondb.Query1.FieldByName('Euros').value :=
formatfloat('###,###,###,##0.00;(###,###,###,##0.00);0', apagar);
conexiondb.Query1.Post;
end;


procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
ConexionDB.Query2.Active:=false;
ConexionDB.Query2.Filter:=('factura_numero=')+ ConexionDB.Query1['factura_numero'];
ConexionDB.Query2.Filtered:=true;
ConexionDB.Query2.Active:=true;
end;
end.

aqui esta el fron completo en prueba link

http://www.4shared.com/file/60995750/f26caab9/puebas.html

http://www.4shared.com/file/61199992/babb9ff2/facturacion.html


Gracias y espero que me puedan ayudar

Yensis22
31-08-2008, 18:32:39
que ariba no se entienden



Tfactura Tfacturadetalle Tfactcob
Numero_factura Fatura Detalle Numero Factura
Direccion Numero Factura Fecha
Tipo Cliente Cliente Cliente
Fecha Factura Equipos RNC
Equipos Monto Equipos
NCF Importe condicion
Monto ITBIS Monto
Total Descuento Fecha_vence
ITBIS Pagado Total
Descuento Total Forma Pago
Forma Pago
Comentario

Yensis22
31-08-2008, 18:40:56
esta son las tres tablas


Tfactura
Numero_factura
Direccion
Tipo Cliente
Fecha Factura
Equipos
NCF
Monto
Total
ITBIS l
Descuento
Forma Pago
Comentario


Tfacturadetalle
Fatura Detalle
Numero Factura
Cliente
Equipos
Monto
Importe
ITBIS
Descuento
Pagado
Total

Tfactcob
Numero Factura
Fecha
Cliente
RNC
Equipos
condicion
Monto
Fecha_vence
Total
Forma Pago

Caral
31-08-2008, 19:22:17
Hola
Aqui tienes un ejemplo o tutorial que te servira.
Esta completo asi que lo puedes usar tal y como esta.
Es grande por que esta completo con reportes y todo.
Saludos

Caral
31-08-2008, 19:25:18
Hola
Mejor corres, por que si alguien mas me pide algo tendré que quitar el archivo, no tengo mas espacio para poner otro.
Saludos

Yensis22
31-08-2008, 22:42:15
gracial por el tutoria

pero cundo estoy ejecutando el from me dise que la ruta no esta correta pero lo copie la carpeta en c:\ y en el datamule al adoconetion le cree la ruta de nuevo pero no me permite ejecutar me sigue tirando el mismo mensaje de que la ruta no es correta el moto de base de dato es Microsoft.Jet.OLEDB.4.0

Caral
31-08-2008, 22:47:36
Hola
Este programa busca la base de datos por medio de un archivo ini. (BDatos.ini).
Por mas que cambies el programa si el archivo ini no contiene la ruta no funcionara.
Por cierto; encontré que algunos query hay que actualizarlos (no me di cuenta antes).
Saludos

Yensis22
31-08-2008, 23:29:34
SIGUE TIRANDO ERROR



ya le cambie la ruta al archivo BDatos.ini pero me tira un mensaje de que el motor de Microsoft.Jet.OLEDB.4.0 que no puede abrir el archivo c:\Tutorial factura por que esta abierto en modo exclusivo por otro usuario y no se ejecuta el progra y cerre el archivo y reinicie la aplicacion pero sigue igual

Y ALO QUERY TENGO QUE RALIZARLES LAS RUTAS, pero nomedejan activr la conecion me mandan error emplo el de Fmantclente error (adotable1: type mismactch for field "SUSPENDIDO", expercting: WideString actual: Boolean), en el Ffactura un solo adoqury es que tiene sentenciasa los otros estan en blanco.

Caral
31-08-2008, 23:41:27
Hola
He arreglado algunos problemas que tenia en los query.
Para que te corra (mientras aprendes a usar un archivo ini) pon la carpeta en el directorio c:
Osea quedara asi: C:\Tutorial Facturacion
El archivo ini lo tengo configurado para que funcione ahi.
Ya todo funcina no tendras ningun problema.
Saludos

Yensis22
01-09-2008, 00:13:21
Muchas gracias por las modificaciones con este voy a empesar a reglar la mia que es de facturacion de repaciones de PC