Ir al contenido


Foto

INSERTA DATOS DE UNA TABLA A OTRA TABLA


  • Por favor identifícate para responder
1 respuesta en este tema

#1 marcolodelo

marcolodelo

    Member

  • Miembros
  • PipPip
  • 18 mensajes

Escrito 24 junio 2013 - 03:29

HOLA TENGO TRES TABLAS
fac_t
  num_f (numero de la factura)
  cod_t  (cod del trabajo)
  val_t  (valor del trabajo)
  can_t  (cantidad del trabajo)
  cod_emp (el empleado que lo ejecuto)
  fec (fecha)

fac_i
  num_f (numero de la factura)
  cod_t  (cod del trabajo)
  cod_i  (codigo del insumo)
  can_i  (cantidad del insumo)
  cod_emp (el empleado que lo ejecuto)
  fec (fecha)

t_i
cod_t (cod del trabajo)
cod_i (cod del insumo)
can_ti (cantidad)


Lo que quero hacer es que cuando grabo la factura el fac_t  que me guarda el trabajo hecho pero que luego el me grabe tambien en la fac_i que es si es el trabajo refuerzo por ejemplo que me guarde los insumos que utilizo en ese tipo de trabajo es decir lo que tiene relacionado la tabla t_i que es donde esta relacionados el trabajo con los insumos

Es deceir
en la tabla t_i
cod_t    cod_i    can_ti
001      001        1
001      002        2

en la tabla fac_t
  num_f    cod_t    val_t      can_t  cod_emp      fec 
  f001      001    500000      1      sam          01/06/2013

y la tabla fac_i

  num_f  cod_t  cod_i  can_i  cod_emp  fec
  f001      001    001    1      sam          01/06/2013



delphi
  1. if ((Length(F_factura.SGtra_fac.Cells[1,i]) > 0) or (Length(F_factura.SGins_fac.Cells[1,i]) > 0)) then
  2.   begin
  3.       hoy:= now();
  4.       with Mtab.ZQ2 do
  5.       begin
  6.           Close;
  7.           SQL.Clear;
  8.           SQL.Add('SELECT * FROM FACT_T WHERE NUM_F= '+QuotedStr(cod_fac)+'ORDER BY COD_T');
  9.           Open;
  10.           First;
  11.           for i := 1 to SGtra_fac.RowCount - 1 do //------------------------------------------------------------
  12.           begin
  13.               if (Length(SGtra_fac.Cells[1, i])  > 0) and (Length(SGtra_fac.Cells[3, i]) > 0) then
  14.               begin
  15.               existeCod := FALSE;
  16.                   if not(existeCod) then
  17.                   begin
  18.                       Mtab.ZQ4.Close;
  19.                       Mtab.ZQ4.SQL.Clear;
  20.                       Mtab.ZQ4.SQL.Add('INSERT INTO FACT_T VALUES('
  21.                                         +QuotedStr (cod_fac)+','
  22.                                         +QuotedStr (SGtra_fac.Cells[1, i])+','
  23.                                         +FloatToStr(F_ppal.cantStrToFloat((SGtra_fac.Cells[3, i])))+','
  24.                                         +QuotedStr (DBEemp.Text)+','
  25.                                         +QuotedStr(F_ppal.fechaPG(DateToStr(hoy)))+')');
  26.                       try
  27.                           ShowMessage(Mtab.ZQ4.SQL[0]);
  28.                           Mtab.ZQ4.ExecSQL;
  29.                       except on E: Exception do
  30.                       end;
  31.                   end; // END IF
  32.               end;  // end length
  33.           end; // end for
  34.       end; // with
  35.   end;  // end if



Agradezco su ayuda

  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 24 junio 2013 - 04:51

Saludos.

¿Has pensado en que las tablas de facturas aplican una relación Maestro/Detalle?

Por cierto, no especificaste cual base de datos estas usando.
  • 0




IP.Board spam blocked by CleanTalk.