Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Dudas sobre facturas (componentes, etc)

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Dudas sobre facturas (componentes, etc) Responder citando

Hola a todos!. Quería comentaros una duda a ver si podeis resolvérmela. Estoy liado con el tema de los presupuestos, albaranes y facturas (si sé hacer uno, el resto debería de ser igual). Ya tengo creada las tablas, el problema es que no sé cómo represntarlo en el programa. Es decir, por ejemplo, si quiero un nuevo presupuesto, sé que tengo que decir el código (que será automático), el cliente al que se le va a hacer, la fecha en el que se le va a hacer; pero luego no sé como representar los detalles de ese presupuesto; si por ejemplo es un presupuesto de 20 artículos, pues había pensado en algún tipo de rejilla típica para que según vaya eligiendo el recambio, pulse un botón tipo "Añadir" y se añada en esa rejilla cada artículo. ¿Existe algún componente en builder para ello?

Y luego a la hora de imprimirlos, he leido mucho que usan los componentes QuickReports, ¿conviene en mi caso k lo utilice? En principio, la primera idea fue crear un pdf (incluyendo el logo de la empresa y demas relacionado con el documento) pero no estoy muy seguro.

Bueno espero opiniones (alguna fotillo de ejemplo sería de ayuda, mas que nada porque es lo que todavia no tengo muy claro xD)

gracias por adelantado y saludos!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola ercea. Como estas?

Una preguntica: Ya estableces conexion con la base de datos desde Builder verdad?

Bueno si es asi, revisa la paleta Data Controls, la cual tiene algunos componentes como la rejilla (DBGrid) y demas (Imagenes, Texto) para que puedas tomar la informacion que tienes en la base de datos y mostrarla en el formulario.

Esta sería la forma mas basica y rapida de hacerlo.

Me cuentas como vas y si te surge alguna duda.

Saludos!
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola jacko gracias por responder como siempre Wink, el formulario ya va cogiendo forma Very Happy. Lo que más me preocupaba era cómo representar los detalles de cada presupuesto, pero un grid no me valía, ya que la taba detalles tan solo contiene el código de presupuesto (de la tabla maestro), el código del artículo (de la tabla árticulos) y las unidades, y lo que quería mostrar es, además de esto, pues el nombre del artículo que se cogería de la tabla artículos y el subtotal. Entonces un grid cogiendo datos de dos tablas, además de un dato precalculado (subtotal), pues creo que no se puede verdad? xD. Entonces, de momento, he optado por coger un StringGrid para visualizarlo, y mediante, código ir insertandolo en la tabla detalles, pero es bastante incómodo.

Lo que es un lío, y todavía tengo que corregir muchas cosas, es el manejo de tablas maestro-detalles. En la tabla detalles (detalles presupuesto: codigo presupuesto, codigo articulo y unidades), tengo puesto como Datasource la tabla maestra (tabla presupuesto: codigo, codigo cliente, fecha, caducidad, descuento, precio total y si es aceptado o no el presupuesto), y como en un solo formulario están los datos de una y de otra tabla pues pensaba que conforme iba "rellenando" los datos se iban insertando. Pero veo que primero hace faltar crear un registro en la tabla maestra y luego a ese registro se le insertan los detalles... en fin un lío, porque ahora no sabía como rellenar aquellos datos necesarios en la maestra (codigo cliente por ejemplo). Una vez más opté por rellenar aquellos datos necesarios con lo que sea (por ejemplo codigo cliente 0), y leugo cuando se confirme todo pues edito ese registro.

Se aceptan sugerencias Laughing

Eso sí, las transacciones ahora sí que se notan, ya que por ejemplo sime pongo a insertar en la tabla detalles y luego cancelo... como no he hecho un commit no hace falta tocar nada en la tabla... se agradece xDD. Todavía tengo que retocar, para que una vez confirmado decremente las unidades en el campo stock de la tabla Articulos... y a parte comprobar si ya se ha seleccionado y añadido un artículo, para avisarlo (esta parte todavia no se como hacerla)

Aqui tienes una vista previa de cómo está ahora (provisional de momento xD):



Como veis, me encuentro con problemas cada 2x3, pero sea como sea me las intento apañar xD. Pero ya digo, si teneis alguna sugerencia mas optima o mas "elegante" mejor que mejor Very Happy

saludos!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

wenas, yo tb tuve que desarrolar una aplicacion, donde habia presupuestos, ventas y pedidos, y me encontre con el mismo problema que tu, con las regillas, yo al final tambien opte por utilizar un string grid, para los productos que iba seleccionando, a mi no se me ocurrio otra manera de hacerlo. te dejo una imagen por si te ayuda a darte nuevas ideas Wink



un saludo!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias rivo por responder Wink, ya k has usado StringGrid me gustaría que me comentaras un par de cosas.

A la hora de añadir un artículo, ¿lo insertas también en la tabla detalles directamente o mejor una vez confirmado el nuevo presupuesto (en tu caso el botón Insertar) recorres el stringgrid y lo vas almacenando?. Esta duda"me corroe", por que opté por la primera opción, es decir, una vez añado, inserto en la taba detalles (con Post) y además ya resto las unidades el campo stock de la tabla artículos, pero no confirmo (no hago commit) hasta que no pulse "Nuevo" (confirmando el presupuesto) ... pero haciendo ésto me surje un problema, y es que si luego en esa lista de detalles, quiero quitar algún elemento (un artículo) no sé cómo hacer para que: quite ese elemento de la tabla detalles, se restaure las unidades otra vez en la tabla artículos y luego a la hora de confirmar el presupuesto, se conserve en la tabla detalles solo los datos que están en el string grid.

Quizás haya una manera más facil, no sé, ya que es la primera vez que uso StringGrid, por lo menos poco a poco se va avanzando xD

Gracias a todos, saludos!

PD: Se me olvidaba comentarte la otra cosa xD, la otra era que cómo sabes si el articulo elegido ya está en el stringgrid, para no meter dos veces un mismo artículo, en cuyo caso lo que me gustaría hacer sería que si un artíuclo ya está en los detalles pues editar las unidades.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

hola, yo solo rellenaba los datos en la pantalla que te puse antes y una vez que daba al boton nuevo insertaba todos los datos en la base de datos.

Luego si lo que quiers es ver si el articulo ya esta insertado loq ue puedes hacer es utilizar una columna del string grid para poner el id del articulo y cuando el usuario desee insertar uno nuevo buscar por la columna del id para comprobar si el id ya existe, en el caso que exista incrementas el numero de unidades que se quiera, en caso de no estar se inserta un nueva fila.

el string grid es muy sencillo de manejar es como una matriz :

por ejemplo para rellenar las cabeceras yo tenia una funcion que me hacia esto :(LineasGrid->Cells[columna][fila]="cadena"Wink

Código:

LineasGrid->Cells[0][0]="id_Prod";
   LineasGrid->Cells[1][0]="Nombre Producto";
   LineasGrid->Cells[2][0]="Nombre_Prov";
   LineasGrid->Cells[3][0]="Importe";
   LineasGrid->Cells[4][0]="entregado";


luego para rellenar ya los datos del stringgrid pues incrementas una fila
utilizando LineasGrid->RowCount++;

venga un saludo!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola ercea

Actualizandome a la conversacion te digo lo siguiente:

- Primero, tu cargas toda la transaccion en memoria. Tu cargas el listado de articulos, la cantidad disponible de cada uno, los precios, nombres, etc, en variables locales. El usuario 'juega' con eso en pantalla: adiciona articulos, elimina, vuelve y adiciona, carga mas articulos, etc. Cuando por fin le da click en Guardar es cuando tu tomas el listado de los articulos registrados, vas a la base de datos y haces las descargas correspondientes.

- Segundo, por qué no utilizas instrucciones SQL para el manejo de la base de datos? Las funciones de Builder Insert();, Post();, etc. son buenas, pero para sacarle el maximo provecho a una base de datos (insertar en varias tablas, hacer seguimientos por id, reportes, busquedas, etc.) pues para eso está SQL.

Cuentanos como va tu proyecto. Disculpa la demora en contestarte pero como siempre, ando colgado de trabajo.

Gracias, saludos!
_________________
Dios es real... a menos que se declare entero!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola, gracias a los dos por responder. Al final os he hecho caso y no guardo en la tabla hasta que no pulse el botón "Nuevo" (para confirmar el nuevo presupuesto) y así me ahorro quebraderos de cabeza, de momento funciona, lo que pasa que me parece bastante código, pero bueno supongo que es la mejor opción visto lo que me pasaba con la otra xD.

jacko sobre las instrucciones SQL (supongo que te referirás a utilizar IBQuerys no?), yo utilizo los IBDataSets, y como tiene las propiedades InsertSQL,ModifySQL, etc sería más o menos lo mismo que utilizar los query no?.

saludos! y gracias, esto es un verdadero quebradero de cabeza, no sabía que gestionar una factura/presupuesto fuera tan lioso
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.