Bueno este es hecho con conexion ado y motor Access (de 1 Hp).
Este es el codigo, ya se que es pequeño pero por algo hay que empezar:
Código Delphi
[-]
unit UFClientes;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UDM1, ExtCtrls, StdCtrls, Mask, DBCtrls, ComCtrls, DB, ADODB,
Buttons;
type
TFClientes = class(TForm)
TClientes: TADOTable;
TClientesCodCliente: TIntegerField;
TClientesNombreCliente: TWideStringField;
TClientesDireccion1: TWideStringField;
TClientesDireccion2: TWideStringField;
TClientesPais: TWideStringField;
TClientesProvincia: TWideStringField;
TClientesCanton: TWideStringField;
TClientesApartado: TWideStringField;
TClientesContacto: TWideStringField;
TClientesTelefono: TWideStringField;
TClientesExtencion: TWideStringField;
TClientesFax: TWideStringField;
TClientesEmail: TWideStringField;
TClientesNoEnvEmail: TBooleanField;
TClientesTerminos: TWideStringField;
TClientesVendedor: TWideStringField;
TClientesSuspendido: TBooleanField;
TClientesExcento: TBooleanField;
TClientesFechaIngreso: TDateTimeField;
TClientesLimiteCredito: TFloatField;
TClientesNotas: TMemoField;
DSClientes: TDataSource;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
Label1: TLabel;
Panel1: TPanel;
DBEdit2: TDBEdit;
Label2: TLabel;
Label3: TLabel;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
TClientesDistrito: TWideStringField;
Label7: TLabel;
DBEdit7: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Panel2: TPanel;
Label4: TLabel;
DBEdit9: TDBEdit;
Label9: TLabel;
DBEdit10: TDBEdit;
Label10: TLabel;
DBEdit11: TDBEdit;
Label11: TLabel;
DBEdit12: TDBEdit;
Label12: TLabel;
DBEdit13: TDBEdit;
Panel3: TPanel;
Label13: TLabel;
DBEdit14: TDBEdit;
Label14: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
TUsuarios: TADOTable;
DSUsuarios: TDataSource;
Label16: TLabel;
Panel4: TPanel;
DBCheckBox1: TDBCheckBox;
DBCheckBox2: TDBCheckBox;
DBCheckBox3: TDBCheckBox;
Panel5: TPanel;
DBMemo1: TDBMemo;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
QTemp: TADOQuery;
DBText1: TDBText;
Label15: TLabel;
BitBtn3: TBitBtn;
TClientesCatPrecio: TWordField;
Label17: TLabel;
DBComboBox1: TDBComboBox;
TClientesDiasCredito: TSmallintField;
Label18: TLabel;
Panel6: TPanel;
Label20: TLabel;
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
DBEdit15: TDBEdit;
Label21: TLabel;
Label19: TLabel;
DBEdit1: TDBEdit;
BitBtn4: TBitBtn;
Edit3: TEdit;
Label22: TLabel;
DBEdit16: TDBEdit;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure TClientesAfterInsert(DataSet: TDataSet);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure DBEdit2Change(Sender: TObject);
procedure DBEdit16Click(Sender: TObject);
private
public
end;
var
FClientes: TFClientes;
implementation
uses UFBuscaCliente;
{$R *.dfm}
procedure TFClientes.BitBtn1Click(Sender: TObject);
begin
If (TClientes.State = dsEdit) or (TClientes.State = dsInsert) then
DBEdit16.Text := DateToStr(now);
TClientes.Post;
Close;
end;
procedure TFClientes.BitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure TFClientes.TClientesAfterInsert(DataSet: TDataSet);
begin
QTemp.SQL.Text := 'Select Max(CodCliente) From Clientes';
QTemp.Active := true;
DBText1.Field.AsInteger := QTemp.Fields[0].AsInteger+1;
QTemp.Active :=False;
DBCheckBox1.Field.AsBoolean := False;
DBCheckBox2.Field.AsBoolean := False;
DBCheckBox3.Field.AsBoolean := False;
DBEdit15.Field.AsString := '0';
end;
procedure TFClientes.FormCreate(Sender: TObject);
begin
TClientes.Active := True;
TUsuarios.Active := True;
Panel6.Visible := False;
end;
procedure TFClientes.FormDestroy(Sender: TObject);
begin
TClientes.Active := False;
TUsuarios.Active := False;
end;
procedure TFClientes.BitBtn3Click(Sender: TObject);
begin
FBuscaCliente:=TFBuscaCliente.Create(self);
try
FBuscaCliente.ShowModal;
finally
If FBuscaCliente.Cod_Cliente <> '' then
TClientes.Locate('codcliente',QuotedStr(FBuscaCliente.Cod_Cliente),[]);
FBuscaCliente.Free;
end;
end;
procedure TFClientes.Edit2Exit(Sender: TObject);
begin
If Edit2.Text > '200000.00' then
begin
MessageBox(Handle,
PChar('Para Poner ese limite de Credito' + #13#10 +
'Necesita Autorizacion'),
PChar('Limite de Credito'),
MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
Edit2.Text:= '0';
DBEdit15.Text := Edit2.Text;
end;
end;
procedure TFClientes.Button1Click(Sender: TObject);
begin
if Edit1.Text = 'carorl' then
begin
DBEdit15.ReadOnly := False;
DBEdit1.ReadOnly := False;
DBCheckBox1.Enabled := True;
end
else
Panel6.Visible := False;
Edit1.Text := '';
end;
procedure TFClientes.BitBtn4Click(Sender: TObject);
begin
Panel6.Visible := True;
end;
procedure TFClientes.Edit3Exit(Sender: TObject);
begin
MessageBox(Handle,
PChar('Para modificar los DIAS de Credito' + #13#10 +
' Necesita Autorizacion' + #13#10 +
' Deje Este Espacio en Blanco ' + #13#10 +
'Para Compras o Clientes de CONTADO'),
PChar('DIAS de Credito'),
MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
Edit3.Text := '0';
end;
procedure TFClientes.DBNavigator1Click(Sender: TObject;
Button: TNavigateBtn);
begin
Edit2.Text:= DBEdit15.Text;
Edit3.Text:= DBEdit1.Text;
end;
procedure TFClientes.DBEdit2Change(Sender: TObject);
begin
Edit2.Text:= DBEdit15.Text;
Edit3.Text:= DBEdit1.Text;
end;
procedure TFClientes.DBEdit16Click(Sender: TObject);
begin
MessageBox(Handle,
PChar('NO Necesita colocar la Fecha ' + #13#10 +
' Se colocara automaticamente'),
PChar('MENSAJE'),
MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
end;
end.
Por supuesto vas a tener que cambiar los nombres de las tablas etc. pero es una manera de ver un programa que hace lo que quieres.
Espero te sirva, es el principio, ya se .
Saludos