Facturación e Inventario
:confused: Hola a todos, soy un novato en Delphi (uso Delphi 7) y me gustaría que alguien me dijera dónde puedo conseguir un manual paso a paso para realizar una factura con sus respectivas tablas(maestro/detalles) y que pueda manejar un inventario de productos o artículos, aquí he podido encontrar varios ejemplos pero estan algo avanzado y yo necesito un material más explicativo.
Espero se haya entendido lo que trato de buscar. Si alguien me puede ayudar se lo agradecería. Gracias de antemano.:( |
|
Factura e Inventario
:o Te agradezco el enlace caral. Hice la respectiva descarga pero esta algo avanzado para un novato como yo. No habrá otro ejemplo menos avanzado?, un poco más explicativo si es posible como dije anteriormente.:(
Gracias anticipadas. |
Hola
Pues tratemos de empezar: Para comenzar se necesitan crear las tablas: Ya con la base de datos hecha, veremos, que pasa. Sigues? Saludos |
Paso 2:
Crear un formulario para el ingreso de los clientes: Para este fin trabajaremos con los componentes ADO. Primero crearemos un form y un DataModule, asi: Seguimos? Saludos |
Factura e Inventario
Gracias Caral por tu tiempo, estoy utilizando Access para las tablas y la versión 7 de Delphi, tengo parte de la base de datos hecha te iré informando sobre los avance, muchas gracias de nuevo por el tiempo invertido.:)
|
Hola
Bueno casualmente, estaba tratando de guiarte en este proceso, las descargas que hay en los otros post, son el proceso paso a paso 1( las Tablas),2 (El primer form y datamodule), no es el programa completo que bajaste, te interesa seguir?., Saludos |
Factura e Inventario
Desde luego que me interasa bastante seguir, muchisimas gracias Caral.:D
|
Hola
Me alegro. Come veras, ya estan las tablas, clientes, articulos, factura, tambien tenemos el form que va a ser el principal y el datamodule. Bueno seguimos con lo demas. Se supone que tenemos que entrar en el programa de alguna manera, verdad? Vamos a colocar un menu, con este ingresaremos a todo, ademas colocaremos un image para que se vea bien, asi: Seguimos. Saludos |
Paso 4.
Ya tenemos la entrada principal. Ahora vamos a crear el primer form (Clientes), lo vamos a hacer de la manera mas facil, usando los comonentes basicos, luego ya podras cambiar lo que quieras (como un maestro). Creamos un nuevo form, le puse el nombre de fclientes al primero, no inporta, a este le pondermos otro FMantClientes. Si te fijas en el AdoTable, dandole doble click, veras todos los campos de la tabla. Si voy despacio me dices. Saludos |
Factura e Inventario
Perfecto, aúnque los resultados de lo que vaya haciendo te lo iré comentando al día siguiente, ya que donde trabajo no utilizan delphi de hecho nisiquiera Windows.
Muchas gracias otra vez por el tiempo invertido.:) |
Paso 5:
Aqui vamos con la parte del form cliente: Analizalo un poco, veras que es muy simple, por lo menos lo basico. Seguimos. Saludos |
Paso 6:
Ahora crearemos el form para los articulos, igual que el de clientes: Seguimos los mismos pasos: Como no va a alcanzar el espacio en los cip, solo pondre los unit, solo tendras que ponerlos en la misma carpeta y añadirlos al proyecto, en project, add to project. Aqui va el nuevo form, articulos, dale click al memo en añadir articulos pones esto: Seguimos. Saludos |
Factura e Inventario
Estoy descargando todo el material, solo que me pondre en marcha en cuanto llegue a casa, ya que aquí en el trabajo no tengo Delphi.
Muchas gracias otra vez por tu ayuda y el tiempo invertido.:) |
Paso 7:
Como veras ya esta hecho el form de facturacion, en este momento solo lo tengo formado, sin codigo, nada mas para que veas la forma basica de hacerlo. Este enlazara a clientes y a articulos, luego calculara la cantidad del articulo X el precio, el descuento el impuesto y dara el total de la factura. En el primer paso, se colocan los articulos con las cantades y su respectivo precio, se van guardando, se calculan y se imprime la factura. Hay que tener en cuenta que se tendra que tener un consecutivo de la factura. Al igual que el anterior copia el codigo en la carpeta y añadelo al proyecto. Coloca esto en el memu principal en Facturacion, Facturar, dandole click. Ya tenemos algo adelantado, verdad.:D , mas facil nada, solo delphi puede hacer algo asi de rapido. Aqui van los tres form que hemos hecho, Clientes, Articulos, Factura, los pongo otra vez por si tienes algun problema. Saludos |
Paso 8:
Bueno como estoy entretenido con esto, va el siguiente avance: Ya tenemos la factura, ya enlazamos a los clientes y a los articulos, ahora necesitamos que al enlazarlos nos traiga la informacion que solicitamos al form de facturar. Para empezar agrega un par de clientes y un par de articulos a las tablas, con esto veras los resultados. Bien: En el form de Clientes (FMantClientes). Vamos a agregar unas lineas de codigo en Public: Aqui estoy diciendo que me mantenga estas variables publicas, ya que las usare en el form de Factura, como ves las declare en un form y las usare en otro. En el mismo from Clientes (FMantClientes). En el boton de cerrar: Aqui estoy diciendo que cuando cierre, quiero estas variables declaradas en relacion a la tabla. Lo mismo vamos a hacer en el form Articulos (FArticulos). En Public: Y en el boton cerrar: Creo que esta muy claro, si no pregunta.:D Hecho esto, aqui esta el form de factura con los cambios necesarios, no hace mucho mas de momento, ya lo hara.:D Saludos |
Excelente!!!, estas cosas son las que motivan a uno ha aportar, almenos con un granito,
aunque no lo he leido (ya q no uso access) me parece interesante, al igual que los otros tutoriales que haz expuesto. Saludos... |
Paso 9:
Me distraje haciendo cositas asi que cambie la tabla Factura un poco, bueno bastante, por eso la subo de nuevo. En el siguiente post pongo el form de factura ya bastante adelantado, solo faltarian los totales e imprimir, creo, ya me diras. Aqui esta la base de datos: Saludos |
Hola
Gracias ariefez Me alegro que te guste, ojala le sirva a muchos. Saludos |
Paso 10:
Aqui esta el form de factura mas adelantado. Como trabaja: Al entrar en el form, este automaticamente genera un numero de factura nuevo. La fecha de la factura se pone al dia. Se busca el cliente con el boton buscar, con solo cerrar el form de clientes el codigo y el nombre de este se colocan en el form de facturar. Lo mismo se hace con el articulo, se busca. Se coloca la cantidad de este articulo, el precio unitario, en la casillas pequeñas de descuento e impuesto se colocan los porcentajes, este los calculara solo en la parte de abajo a la hora de guardar. Una vez hecho esto se puede seguir colocando otros articulos con sus precios, descuentos etc, y guardarlos, esta sera la lista de la factura (varios articulos). Con solo pasar a la parte de Resumen de factura, se podra ver cada uno de los articulos. Para ver una factura ya hecha, simplemente se pone el numero de esta y se pasa al resumen. Bueno, ya seguiremos. Saludos |
Factura e Inventario
Muchas gracias Caral a esto me referia, anoche trabaje con los mantenimientos y el diseño de la factura pués hoy en cuanto llegue a casa continuaré aplicando los pasos 9 y 10, de momento todo marcha bien. La verdad que este proyecto me ha inspirado.:D
Muchas Gracias otra vez por tu tiempo.:p |
Paso 11:
Bueno ya el form de factura tiene cara, ya genera los totales, en base a la suma de los articulos que se le coloquen. Hay que recordar que solo se necesita incluir al cliente y las condiciones una vez, en cuanto a los articulos, pues seran las veces que sea necesario, dependiendo de la venta, por supuesto. Bueno aqui esta el form ya casi listo, lo unico que faltaria seria imprimir la factura, esto lo hariamos con Qreport, que es el que conozco. Espero te este sirviendo y a alguien mas. Saludos |
Paso 12:
Creacion de la factura imprimida en qreport. Bueno con este paso creo que ya esta mas o menos listo, por lo menos ya se puede entender un poco como funciona esto de la facturacion, hay otras, muchas otras maneras de hacer esto, pero he querido hacerlo lo mas sencillo posible para que se pueda empezar con delphi. Espero haber cubierto tu inquietud silver07 y que te sirva a ti y a otros esta pequeña practica. Saludos |
Saludos Caral, estaba viendo tu tutorial de facturacion y tengo una pregunta
¿ En donde debo instalar la carpeta con la bd? ¿ En donde debo tener el proyecto de delphi ? |
Hola
Pues en realidad no me he puesto a pensar en eso, en cualquier lado supongo. Simplemente en el Datamodule en el adoconnection le das la direccion que quieras. Hay otra manera y es un archivo ini, si necesitas te lo explico. Saludos |
Hola
Como hay una pregunta del amigo tenporal con relacion a donde colocar la Base de datos y el Programa, he querido dar la opción de hacerlo con un archivo .ini como lo indique antes, me parece practico, asi que va. Para empezar hay que hacer un archivo ini, Abrimos el block de notas y se coloca esto: Cita:
Como ven aqui le estoy diciendo que la base de datos esta en C:\ y ya sabemos que se llama Facturacion.mdb, si queremos colocar la base de datos en otra carpeta o sub carpeta simplemente le cambiamos la direccion, ejemplo: Cita:
Ahora vamos a hacer que nuestro programa lea este archivo. Hay que tener en cuenta que el archivo BDatos.ini, tendra que estar en la misma carpeta que el programa. Ahora abrimos el programa en Delphi, abrimos el datamodule, en el evento OnCreate del datamodule, ponemos esto: Ahora en el uses del mismo DataModule ponemos esto: Cita:
Espero les sirva, la explicacion. Saludos |
Hola
Siguiendo mi politica de poner los archivos aqui esta el archivo ini, para que lo veáis, por si tenéis dudas. Saludos |
Otra pregunta amigo Caral
¿Como evitas que el usuario teclee 2 articulos diferentes asignandole la misma clave del articulo? Por ejemplo: articulo: 1 Descripcion: Teclado articulo: 1 Descripcion: Raton En el modulo de articulos teclee estos 2 registros con la misma clave y me lo acepto sin problemas, pero no tendria aqui llaves duplicadas ¿como resuelvo esto? Saludos |
Hola
Supongo que te refieres al form de articulos, lo que quieres hacer es que el ID del articulo no se repita o no tenga uno igual en la tabla, si es asi. Ya te respondo, un momento. Saludos |
Hola
Bueno aqui estoy respondiendo a la duda de Tenporal, los cambios los vamos ha hacer en el From de articulos (FArticulos). Primero: El Componente DBNavigator1. A este le quitamos las opciones de Post, Cancel, Refresh., no las necesitamos. Segundo: Colocamos un ADOQuery (AdoQuery1) en el from, lo conectamos igual que el adotable1 que tenemos al datamodule en connection (DataModule1.ADOConnection1). Tercero: Colocamos un Boton (Guardar) en el Form y en el evento OnClick, ponemos esto: Creo que esta facil de entender. Primero se verifica que el dbedit1 este vacio Se coloca una consulta al query1 y se busca que, si el parametro es igual al dbedit1 salga un mensaje de lo contrario se grabe en la tabla y se refresque, siempre que la tabla este en modo insert (dsInsert). Espero sea esto lo que preguntabas y te sirva. Saludos |
Lo que vi en el diseño de la base de datos en access, es que no tienes un campo definido como llave primaria.
¿cual seria la mejor manera de normalizar la base de datos de access, con llave primaria o sin llave primaria?:confused: Ahora otra pregunta, Si en vez de guardar el articulo, el usuario da click en el boton cancelar ¿no queda un registro en blanco en la tabla de articulos?:confused: Saludos a tod@s. |
Hola
1- Access obliga a colocar llaves primarias sobre todo cuando se hacen consultas ligadas, de lo contrario, no lo amerita. 2- Cambiando la colocacion de la sentencia, se puede hacer lo que dices, estudialo un poco, lo entenderas, no deberia crear un registro en blanco. Recuerda que esta ayuda, no es perfecta, como sabes soy novato, como muchos, solo intento ayudar y dar una luz de lo que se puede hacer. Saludos |
Asunto
Hola amigo Caral, me descargue el programa paso a paso que hiciste y para analizarlo, pero cuando lo ejecuto me presenta el error cuando le presiono el botón guardar.
Project Factura.exe raised exception class EOleExcenption with message 'El número de valores de consulta y el ´numero de campos de destino son diferentes'¨. Process stopped. Use Step or Run to continue. |
Hola novato03
Esto pasa cuando intentas guardar datos incompletos. En el caso del programa en el form factura, si los edits y combobox que estan en blanco no contienen informacion, genera el error, la logica dice que es una factura y por lo tanto se tiene que formalizar. Rellena todos los campos vacíos y resulto. Espero que sea este el problema que me mencionas. Saludos |
Asunto
Acabo de completar todos los campos y sale el mismo error.:(
Project Factura.exe raised exception class EOleException with message 'El número de valores de consulta y el número de campos de destino son diferentes'. Process stopped. Use Step or Run to continue. |
Hola
No tiene por que pasar. Has tocado algo? El programa lo tengo y funciona perfectamente, es muy raro. Revisa el codigo del boton guardar, tiene que estar asi: Como veras el insert recorre los campos y el value revisa los datos. Copia y pega este codigo, tiene que funcionar. Saludos |
Asunto
El código esta de la siguiente manera...
y la tabla de factura, contiene los siguientes campos: CodFactura (Número) Fecha CodCliente (Número) Terminos (Texto) OrdenCompra (Texto) CodVendedor (Texto) Excento (si/no) TasaImpuesto (Número) Anulada (si/no) MntEnvio (Fecha) MntSubTotal (Número) MntDescuento (Número) MntImpuesto (Número) MntTotal (Número) MntContado (Número) MntCheque (Número) MntTarjeta (Número) MntOtros (Número) Saldo (Número) Pagado (Número) CodArticulo (Número) |
Hola
El paso 9, explica lo que te esta pasando. La tabla fue modificada en ese paso, quedo asi: Campos: CodFactura (Número) Fecha CodCliente (Número) CodArticulo (Texto) Descripcion (Texto) Cantidad (Numero) Terminos (Texto) OrdenCompra (Texto) CodVendedor (Texto) Excento (Numero) TasaImpuesto (Número) MntSubTotal (Número) MntDescuento (Número) MntImpuesto (Número) MntTotal (Número) Revisalo, si tienes mas dudas, ya las resolveremos. Saludos |
Asunto
Muchas gracias amigo Caral. Ya esta resuelto:)
Pero tengo que digitar el precio y el impuesto. :rolleyes:No habrá alguna forma de hacerlo automático? Gracias por la ayuda Amigo Caral...:) |
Asunto
Disculpa amigo Caral, pero el unit(UFClientes) cuando ejecuto el programa me presenta el siguiente error:
Cannot open file "C:\UFClientes.pas". El sistema no puede hallar el archivo especificado. Para resolver el problema he tenido que colocar ese form en disco "C:\ " libremente solo así funciona. Hay alguna forma resolver este problema?:confused: Gracias anticipadas... |
La franja horaria es GMT +2. Ahora son las 17:19:39. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi