Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   From de faturacion en delphi (https://www.clubdelphi.com/foros/showthread.php?t=59552)

Yensis22 31-08-2008 18:29:53

From de faturacion en delphi
 
Hola muchacho gracia de antemano pos su atencion a mi poregunata.

Cita:

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]

Código Delphi [-]
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...b9/puebas.html

http://www.4shared.com/file/61199992...cturacion.html


Gracias y espero que me puedan ayudar


Yensis22 31-08-2008 18:32:39

esta son las tablas
 
que ariba no se entienden


Cita:

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

estan son tablas
 
esta son las tres tablas

Cita:

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

tutorial
 
gracial por el tutoria

Cita:

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

archivo.ini
 
SIGUE TIRANDO ERROR


Cita:

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

gracia por las modificaciones
 
Muchas gracias por las modificaciones con este voy a empesar a reglar la mia que es de facturacion de repaciones de PC


La franja horaria es GMT +2. Ahora son las 10:06:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi