Ver Mensaje Individual
  #68  
Antiguo 02-09-2013
DOS DOS is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 173
Reputación: 13
DOS Va por buen camino
bueno sigo intentando, lo detallo en el codigo los cambios, pero surge el problema de master record mising...
primera modificacion en la carga del producto en la clave principal, la toma de la factura.
Código Delphi [-]
// Doble click para la carga de productos y servicios
procedure TForm14.DBGrid2DblClick(Sender: TObject);
begin
Table2.Filtered := False;
Table2.Close;
Table7.Close;
Table2.Open;
Table7.Open;
Table7.Last;
Table7.Edit;
if combobox1.Text = 'Productos' then
  begin
   datasource5.DataSet:= Table4;  // tabla de productos
   Table2.Insert; // inserta un campo
   Table2Cod_prodser.Value:= Table4Cod_prod.Value; // el campo cod_prod de la tabla nueva es igual al de la tabla5
   Table2Codigo.Value:= Table4Codigo.Value;
   Table2Descripcion.Value:= Table4Descripcion.Value;
   Table2Importunidad.Value:= Table4ImpVent.Value;
   Table2Cantidad.Value:= StrToFloat(Edit1.Text);  //cantidad cargada por el usuario
   Table2TotalImp.Value:=Table2Cantidad.Value * Table2Importunidad.Value;   // multiplica la cantidad por el valor unitario
   Table2ID_Factura.Value:=Table1Cod_detalleFactura.value + 1; // Nº del detalle factura + 1 correspondiente a la tabla factura
   Table2.Post; // guarda el dato en la tabla nueva.
   end;
  if combobox1.Text = 'Servicios' then
  begin
  datasource9.DataSet:= Table8;  // tabla servicios
   Table2.Insert; // inserta un campo
   Table2Cod_prodser.Value:= Table5Cod_servcio.Value; // el campo cod_servicio de la tabla nueva es igual al de la tabla3
   Table2Codigo.Value:= Table5Codigo.Value;
   Table2Descripcion.Value:= Table5Servicio.Value;
   Table2Cantidad.Value:= StrToFloat(Edit1.Text);  // cantidad cargada por el usuario
   Table2Importunidad.Value:= Table5ImpServ.Value;
   Table2TotalImp.Value:=Table2Cantidad.Value * Table2Importunidad.Value;
   Table2ID_Factura.Value:=Table1Cod_detalleFactura.value + 1; // Nº del detalle factura + 1 correspondiente a la tabla factura
   Table2.Post; // guarda el dato en la tabla nueva.
   end;
  calcula;
end;
Boton de nueva factura
Código Delphi [-]
procedure TForm14.BitBtn1Click(Sender: TObject);  // nueva factura,
begin
Table1.Open;
Table1.Last;
Table2.Open;
Table2.Last;
Table7.Open;
Table7.Last;
Table1.insert;
Table1.Edit;
if Table2.IsEmpty then   //verifica la carga del nº de factura
Application.MessageBox('Seleccione el cliente'+ #13'Cargue los Items a Facturar'+ #13 +'Luego pulse Nueva Factura','¡ATENCION!',Mb_OK + Mb_IconWarning)
else
begin
Table2.Refresh;
with Form14.Query1 do
  begin
   Close;
   SQL.Clear;
   SQL.Add('INSERT INTO detfacturafinal');
   SQL.Add('SELECT * FROM detfactura');
   ExecSQL;
  end;
    BitBtn1.Enabled := false;
    SpeedButton4.Enabled:=true;
    PageControl1.ActivePage := TabSheet2;
end;
end;
botón de guardar
Código Delphi [-]
procedure TForm14.SpeedButton4Click(Sender: TObject);
begin
Table1.Last;
k:=Table1.FieldByName('Cod_factura').AsInteger;//para incrementar el numero de la factura
k:=k+1;
Table7.Edit;
Table7.Post;//guardo la tabla detallefacturafinal
  Table1.Edit;
  Table1.FieldByName('Cod_factura').AsInteger:=k;
  Table1Cod_productserv.Value:=Table7Cod_prodser.Value;
  Table1Cod_detalleFactura.Value:=Table7ID_factura.Value;//asigno el numero de detallefacturafinal a factura
  Table1Cod_cliente.Value:=Table8Cod_prop.Value;
  Table1Fecha.Value:=Now();
  Table1Descuento.Value:=StrToFloat(Edit3.Text);
  Table1Incremento.Value:=StrToFloat(Edit4.Text);
  Table1Total.Value:=StrToFloat(Edit5.Text);
  Table1.Post; //guardo factura 
BitBtn1.Enabled := true;
SpeedButton4.Enabled:=false;
Table7.Refresh;
Table1.Refresh;
end;
continuo intentando, ya saldra, si alguien ve que estoy haciendo mal, me avisa por favor gracias.
Responder Con Cita