Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Facturacion con varias tablas (https://www.clubdelphi.com/foros/showthread.php?t=81330)

DOS 07-11-2012 01:48:54

muchas gracias.
La verdad que soy un cero a la izquierda :o
supongo que ahora lo que faltaria seria poner un boton para seleccionar la fila donde este el elemento deseado o codificarlo en el evento oncellclick del dbgrid y pasarlo a un nuevo DBGrid que almacene la informacion de esa factura, no?

Caral 07-11-2012 02:01:18

Hola
Yo lo que haria seria:
1-Hacer una tabla temporal para ir colocando los items que voy a poner en la factura, asi, si quiero puedo eliminar alguno que no quiera.
2-usar el celldobleclick para cargar los datos.
Saludos

DOS 08-11-2012 17:19:17

Gracias Caral, Hoy voy a ver si puedo implementarlo, para una tabla temporal debo agregar un Ttable mas?
y en el celldobleclick deberia codificar en SQL, para asignar a esa tabla?
Saludos.

Casimiro Noteví 08-11-2012 17:27:20

Te encuentro muy perdido, amigo DOS, te aconsejo este libro, es gratis y además es de lo mejor que existe sobre bases de datos en delphi.

Caral 09-11-2012 00:25:42

Hola
Se puede hacer con un ttable mas.
El concepto de una facturacion va de la mano con el tipo de articulo, servicio, etc, el precio y la cantidad.
tienes que manejar mejor esos puntos.
coincido con Casimiro, lee el libro que te recominda, te quitara muchas dudas, de todos modos sabes que en lo que podamos aqui tambien te seguiremos ayudando.
saludos

DOS 09-11-2012 01:36:09

Leere ese gran libro, pero por el momento ya que debo presentar este trabajo el martes, creo que voy a unificar las tablas de servicios y productos, seguramente perdere algun punto en la calificacion, pero bueno, es lo que puedo hacer, para que el sistema funcione, muchas gracias.

Caral 09-11-2012 01:38:22

Hola
No veo el problema de hacer una tabla temporal ?
Saludos

DOS 09-11-2012 01:56:04

El problema no es la tabla el problema soy yo :(, se que es muy sencillo y ustedes lo sacan a todo esto de taquito, de tantas veces que lo hicieron, pero yo me tengo que devanar el cerebro y googlear por todos lados para tratar de ver que le pongo a un boton para que me vaya colocando los materiales que selecciono de las tablas anteriores en una nueva para poder guardarla e imprimirla.

Caral 09-11-2012 02:04:51

Hola
No es dificil, si lo puedo hacer yo cualquiera lo hace.
1-Crea una tabla, ponle los campos:
Cod_Producto
Codigo
Descripcion
Unidad
ImporteUnid
Cantidad
TotalImporte

2- Por un dbgrid en la parte del Tabshet2 del form14
Una vez hecho esto se usara el evento Oncelldobleclick del dbgrid1
Ahi se indicara que se guarde los datos en esa tabla y se pedira la cantidad la cual se multiplicara por el importe y se guardara el todal se se ira sumando para el total general
Saludos

DOS 09-11-2012 02:21:25

Cita:

Empezado por Caral (Mensaje 449012)
Hola
No es dificil, si lo puedo hacer yo cualquiera lo hace.
1-Crea una tabla, ponle los campos:
Cod_Producto
Codigo
Descripcion
Unidad
ImporteUnid
Cantidad
TotalImporte

2- Por un dbgrid en la parte del Tabshet2 del form14
Una vez hecho esto se usara el evento Oncelldobleclick del dbgrid1
Ahi se indicara que se guarde los datos en esa tabla y se pedira la cantidad la cual se multiplicara por el importe y se guardara el todal se se ira sumando para el total general
Saludos

La tabla la creo en Paradox? y faltaria los servicios ya que el usuario puede cargar ambos, el Oncelldobleclick lo tengo que codificar, no?

Caral 09-11-2012 02:30:14

Hola
Si, la haces en paradox
Si, le puedes poner el cod_servicio, pero si cada cosa tiene un codigo, no creo que se necesite tener los dos.
Si, el evento hay que codificarlo para que haga lo que necesitas.
Saludos

DOS 09-11-2012 02:48:02

OK, hasta ahora voy bien :D ya lo he hecho

Caral 09-11-2012 02:54:14

Hola
Tienes que pones un ttable adicional que este enlazado a la tabla temporal que creaste.
saludos

DOS 09-11-2012 02:55:54

ok, ya esta listo

Caral 09-11-2012 03:14:16

Hola
dale doble click al nuevo ttable que hiciste y ponle los campos ahi, tal y como lo tienes con los otros dos el ttable3 y el 5.
una vez hecho esto en el evento del dbbrid pones un codigo como este:
Es un ejemplo que guardara el primer dato, esto lo tendras que hacer con los demas.
Código Delphi [-]
procedure TForm14.DBGrid1DblClick(Sender: TObject);
begin
    if combobox1.Text = 'Productos' then
  begin
   datasource3.DataSet:= Table5;  // usa tu tabla de productos
   Tu_Nueva_Table.Insert; // inserta un campo en tu tabla nueva
   Tu_Nueva_TableCod_prod.Value:= Table5Cod_prod.Value; // el campo cod-prod de tu tabla nueva es igual al de la tabla5
   // aqui siguen los demas campos antes de guardarlos
   Tu_Nueva_Table.Post; // guarda el dato en la tabla nueva.

   end;
  if combobox1.Text = 'Servicios' then
  begin
  // aqui lo mismo pero para servicios.

  end;

end;
Saludos

DOS 10-11-2012 01:42:57

Hola tengo unos pequeños problemas, uno cuando ejecuto el programa y voy a facturación, por defecto el DBComboL.. aparece como servicios, cuando selecciono Productos me tira un error.
otro, cuando estando en servicio, hago doble click para cargar un item, me tira otro error.
Adjunto imagen de los errores


El segundo DBGrid por el momento esta en la primer hoja, junto al otro solo para ver como funciona.
La codificacion completa
Código Delphi [-]
procedure TForm14.DBGrid1DblClick(Sender: TObject);
begin
if combobox1.Text = 'Productos' then
  begin
   datasource3.DataSet:= Table5;  // tabla de productos
   Table7.Insert; // inserta un campo
   Table7Cod_prod.Value:= Table5Cod_prod.Value; // el campo cod_prod de la tabla nueva es igual al de la tabla5
   Table7Codigo.Value:= Table5Codigo.Value;
   Table7Descripcion.Value:= Table5Descripcion.Value;
   Table7Unidad.Value:= Table5Unidad.Value;
   Table7ImporteUnid.Value:= Table5ImporVen.Value;
   Table7Cantidad.Value:= Table5Cantidad.Value;
  // Table7TotalImporte.Value:= Table5TotalImporteValue;
   Table7.Post; // guarda el dato en la tabla nueva.

   end;
  if combobox1.Text = 'Servicios' then
  begin
  datasource3.DataSet:= Table3;  // tabla servicios
   Table7.Insert; // inserta un campo
   Table7Cod_prod.Value:= Table3Cod_servicio.Value; // el campo cod_servicio de la tabla nueva es igual al de la tabla3
   Table7Codigo.Value:= Table3Codigo.Value;
   Table7Descripcion.Value:= Table3Servicio.Value;
   // Table7Unidad.Value:= Table5Unidad.Value;      no tiene
   Table7ImporteUnid.Value:= Table3ImporteSer.Value;
  // Table7Cantidad.Value:= Table5Cantidad.Value;             suele ser uno
  // Table7TotalImporte.Value:= Table5TotalImporteValue;  este va a ser un importe calculado?
   Table7.Post; // guarda el dato en la tabla nueva.
   end;
end;
Gracias

Caral 10-11-2012 01:45:09

Hola
Paseame el programa completo otra vez y lo reviso.
Saludos
PD: Recuerda que los honorarios van subiendo :)

DOS 10-11-2012 02:04:24

Me parece que voy a tener que embargar varias cosas, esto ya es un abuso de mi parte.
https://www.dropbox.com/s/0a3qcadb6l...cional2012.rar

Caral 10-11-2012 02:30:41

Hola
Dame un minuto me lo complicaste con el campo tipo money, voy a buscar en google
Saludos

DOS 10-11-2012 02:55:39

no hay problemas, aca es medio tarde, cualquier cosa lo vemos mañana, un abrazo.


La franja horaria es GMT +2. Ahora son las 02:33:58.

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