Hola
Con este tutorial lo que se pretende es enseñar lo elementos básicos para hacer un programa de facturación sencillo.
Para este vamos a usar una base de datos ACCESS y componentes de sencillo uso de Delphi.
Empecemos con la base de datos:
Todo programa de facturación contiene elementos en común, como son:
Artículos, clientes, usuarios, facturas.
Asi empezaremos haciendo estas tablas directamente en access.

Articulos:















Clientes:


























Usuarios:











Factura:















Una vez que terminemos con las tablas guardaremos nuestra base de datos en el directorio que deseemos, recordemos que lo necesitaremos para hacer la conexión con delphi.
Ya teniendo la tablas listas empezaremos con delphi, enlazando cada una y generando el código para que funcione nuestro programa.

Seguimos con:
Conexión a la base de datos:
Para esto vamos a usar los componentes ADO, vamos a usar un datamodule y haremos un archivo INI que nos servirá para indicar donde esta nuestra base de datos.
Empecemos con delphi:
Generamos un nuevo proyecto, nos aparecerá un nuevo form (este sera el principal).
Vamos a File, New,data module y le damos click.

Esto nos generara un form DataModule para nuestro proyecto.
Vamos a la paleta ADO,  seleccionamos un ADOConnection y lo colocamos en el datamodule, quedaria asi:









Le damos doble click a nuestro ADOConnection y nos saldrá esta pantalla:

Ahora presionamos el botón Build y nos saldra esta otra pantalla:


Una vez con esta pantalla seleccionamos la opción marcada Jet 4 y le damos next, nos saltara la otra pestaña:


Seleccionamos la primera opción y Presionamos el botón con tres puntos, con este buscaremos donde guardamos nuestra base de datos.
Una vez ubicada, la seccionamos y presionamos el boton Test connection, si es correcta nos saldra un mensaje indicandolo.

Con esto ya tenemos la primera parte lista, ya hicimos la conexion con nuestra base de datos.

Seguimos con la conexión:
Como en este caso usaremos un archivo INI para la conexion necesitamos añadir al uses del datamodule el uses IniFiles.
para esto seleccionemos el unit del datamodule y le añadimos dicho uses, quedaria asi:

Código DELPHI
1.   uses
2.   SysUtils, Classes, DB, IniFiles, ADODB, Forms, Dialogs;

Nos posicionamos en el datamodule en la parte blanca y le damos doble click, esto nos generara el evento DataModuleCreate.
Ahora pondremos este cogido que es el que nos servirá para que el archivo INI nos encuentre la base de datos:
Código DELPHI
1. procedure TDataModule1.DataModuleCreate(Sender: TObject);
2. Var BaseDeDatos, ConStr : String;
3.     IniFile: TIniFile;
4. begin
5.    // Obtiene la ruta y el nombre de la base de datos
6.    IniFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'BDatos.ini');
7.    BasedeDatos := IniFile.ReadString('BD','Path','');
8.    If BasedeDatos = '' then ShowMessage('Error al cargar Base de Datos');
9.    ConStr := 'Provider=Microsoft.Jet.OLEDB.4.0;'+
10.                 'Data Source='+BaseDeDatos+';'+
11.                 'Persist Security Info=False;'+
12.                 'Jet OLEDB:Database Password=admin';
13.       ADOConnection1.ConnectionString := ConStr;
14.       ADOConnection1.Open;
15.     
16.    end;
17.     




Como veis el evento buscara en el archivo INI que en este caso se llama BDatos.ini y enlazara la base de datos con la dirección de este archivo.
Para hacerlo un poco mas sencillo os dejo el archivo ini, solamente se tendria que cambiar la diereccion que se encuentra en PATH y listo.

Ya tenemos nuestra base de datos enlazada al ADOConnection y cuando arranque este se conectara al archivo INI que buscara la dirección de la base de datos.
Bueno sigamos con el primer form que se creo al iniciar delphi (form1).
Aquí vamos a hacer una pantalla inicial, sencilla, que nos ligue con las demás opciones que tendrá nuestro programa.
Coloquemos le a este form un MainMenu, que esta el la primera paleta (standard).
Le damos doble click y nos saldra una pequeña pantalla.
Ahi es donde vamos a colocar el menu de nuestro programa en este caso seran estas:


















Luego nos servirá para enlazar cada uno de los forms que vallamos creando.
Bien una vez que tenemos listo este primer form lo guardamos, es buena idea ponerle un nombre adecuado a cada form en este caso en la propiedad Name le pondremos:
 FClientes, puede ser cualquier otro, el que os guste.

Seguimos......

Ya tenemos nuestro primer form, el principal, pronto regresaremos para hacer que sea este el que nos guié.
Vamos a hacer nuestro segundo form, seguimos el mismo procedimiento:
File, New, Form.
Esto nos creara nuestro segundo form.
Vamos a hacer nuestro primer enlace, este va a ser con la tabla Clientes.
Aqui podremos añadir, modificar, etc, cada cliente de nuestro programa.
Primero vamos a añadir a este nuevo form un ADOTable.
En su propiedad Connection le escribimos:
 DataModule1.ADOConnection1 
Esto guiara al adotable hacia el datamodule y a su vez hacia el adoconnection.
Ahora en la propiedad TableName buscaremos la tabla
 Clientes.
Demosle doble click al adotable y nos mostrara una pequeña pantalla.
Con el raton derecho sobre esta pantallita, nos saldra la opcion ADD fields, le damos click y nos saldra una nueva pantalla que contendra todos los campos de la tabla Clientes, presionamos
 OK y quedaran grabados en esta pantallita.
Vamos a seleccionar uno a uno de estos campos y arrastrarlos al nuevo form.
Colocadlos de manera que quede presentable, que sirva para trabajar sobre ellos, conservando cierto orden.
Veréis que se ha colocado automáticamente un
 DataSource, este sera el enlace de cada uno de los campos.
Ahora necesitaremos un componente que nos sirva para poder enlazar y trabajar sobre la tabla clientes.
De la paleta dataControls seleccionamos un
 DBNavigator y lo arrastramos a nuestro form.
En la propiedad Datasource del dbnavigator buscaremos el datasource que se creo automáticamente, así de simple quedara enlazado.
Vamos a activar nuestra tabla con el programa.
Nos posicionamos en el form y le damos doble click, esto nos creara el evento FormCreate y colocamos esto:

Código DELPHI
1.  ADOTable1.Active:=  True;
Bueno, como en todo form, siempre tenemos que cerrerlo, asi que coloquemos un boton en el from, en su propiedad Caption ponemos Salir, le damos doble click y ponemos esto:

Código DELPHI

1.  Close;
Ahora como siempre le pondremos un nombre que nos interese a este nuevo form, en su propiedad Name pondremos: FMantClientes y lo guardamos.
Si, ese es todo el codigo que necesitamos de momento, asi de facil, bueno, quedaria asi:



Ya tenemos nuestro segundo form, vamos bien.

Seguimos......
Vamos a hacer nuestro tercer form para el manejo de los Artículos.
Como siempre:
File, New, Form
Empecemos cambiándole el nombre, a este lo llamaremos:
 FArticulos, lo podemos guardar o esperar y luego guardarlo.
Igual que con el form anterior Clientes, le pondremos un
 AdoTable, un dbnavigator, un botón y seguimos los mismos pasos que en el form clientes.
Este quedaría así:

























Seguimos...
Vamos a hacer un nuevo Form,
 Facturación.
Como siempre:
File, New, Form.
Le vamos a cambiar el nombre por
 FFactura y lo guardamos.
A este nuevo from le vamos a colocar los siguientes componentes:
1-PageControl
En este vamos a hacer dos TabSheet.
Al primero lo llamaremos factura y al segundo Resumen de Factura
En El primero (factura) colocaremos estos componentes:
13- Edits.
1-Combobox.
1-DatetimePicker
4- botones
3-ADOQuery
2-Datasource

Quedaria asi:


En el segundo (resumen de Factura) colocaremos estos:
1-DBGrid
4-Edits
2-Botones
1.DBNavigator (a este le quitaremos todas las opciones excepto Delete.)

Quedaria asi:




Seguiremos con el codigo de este form........

Primero vamos a conectar nuestros componentes ADO.
Vamos a ir a la propiedad Connection de cada uno de los ADOQuery y ponemos esto: DataModule1.ADOConnection1
Ahora conectamos el primer Datasource al Adoquery1 y el segundo al AdoQuery2.
Bien, vamos con código:
En el evento Oncreate del form ponemos esto:




Código DELPHI
1.    procedure TFFactura.FormCreate(Sender: TObject);
2. begin
3.    DateTimePicker1.Date:= Now;
4.    ADOQuery1.SQL.Text:='SELECT DISTINCTROW Max([Factura].[CodFactura])AS [CodFacturaa]FROM Factura';
5.    ADOQuery1.Open;
6.    ECodFactura.Text:= IntToStr(ADOQuery1.Fields[0].AsInteger+1);
7. end;
Vamos a poner el primer codigo del boton buscar (el que esta en la imagen a la par de clientes).
Este seria:
Código DELPHI
1. procedure TFFactura.Button3Click(Sender: TObject);
2. begin
3.     FMantClientes:=TFMantClientes.Create(self);
4.    try
5.     FMantClientes.ShowModal;
6.    finally
7.    If FMantClientes.Cod_Cliente <> '' then
8.    ECodCliente.Text := FMantClientes.Cod_Cliente;
9.    Label2.Caption:= QuotedStr(FMantClientes. NombreCliente);
10.       FMantClientes.Free;
11.       end;
12.     
13.    end;

Ahora el segundo boton Buscar, esta vez Articulos:
Código DELPHI
1. procedure TFFactura.Button4Click(Sender: TObject);
2. begin
3.      FArticulos:=TFArticulos.Create(self);
4.    try
5.     FArticulos.ShowModal;
6.    finally
7.    If FArticulos.Cod_Parte <> '' then
8.    ECodArticulo.Text := FArticulos.Cod_Parte;
9.    Label9.Caption:= QuotedStr(FArticulos.Descripcion);
10.          FArticulos.Free;
11.        end;
12.    end;

                                                                 Ver mas...

{ 2 comentarios... read them below or Comment }

  1. Hola, buenas! . . . Dónde esta el archivo ini? por favor. , ¿dónde le tengo que dar el path de mi documento access? gracias!

    ResponderEliminar

Biembinidos a Programacion Star

Reloj


Free Blue Multi Glitter Pointer Cursors at www.totallyfreecursors.com

contador de visitas

Con la tecnología de Blogger.

Contribuyentes

Archivo del blog

- Copyright © Programación Star -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -