Ver Mensaje Individual
  #7  
Antiguo 22-03-2007
Avatar de BlackDaemon
BlackDaemon BlackDaemon is offline
Miembro
 
Registrado: dic 2006
Ubicación: Bolivia - Santa Cruz
Posts: 206
Reputación: 20
BlackDaemon Va por buen camino
Bueno pues el motivo de este post es el siguiente.. dejando aparte el anterior problema .. que ya estoy por sulicionarlo pero al solucionar ese surgieron muchos problemas mas.. bueno para mi
el primero es este.

http://img301.imageshack.us/img301/8...oductosfu0.jpg

como podrán ver antes usaba esos DBEdits que estaban enlasados a cada campo de mi TABLA PRODUCTOS pero ahora agregué esos Edits normales para hacer la inserción de los precios en la tabla nueva TARIFAS.. que lo hago sin problemas.. pero antes cuando hacian clic en el botón NET o PRIOR, LAST, etc.. este recorria la TTable y se visualizaban en los DBEdits para así poder EDITAR o ELIMINAR.. pero ahora como los EDITS normales no están enlasados a ninguna TABLA no es posible hacer eso.. y quedan con el TEXTO que se le escribe la primera vés que uno hace un registro..
además que cuando elimino con TTable.delete; no me borrará de la tabla TARIFAS los precios correspondientes a esa descripción..ya que no estarán en la mis TABLA.. bueno es un problema grave para mi por que no se como resolverlo.. y si no lo resulevo eso no puedo pasar el otro punto de mi problema que es el primer post de este tema.

Aquí les pongo el código con el que registraba un nuevo producto.

Código Delphi [-]
procedure TFrmAgregarProductos.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  FrmAgregarProductos := nil;
  Action := caFree;
  FrmAgregarProductos.Free;
end;

procedure TFrmAgregarProductos.SBNuevoClick(Sender: TObject);
begin
  modoEditar(True);
  DM.ZTAlmacen.Append;
  DBECodigoProducto.SetFocus;
  DateTimePicker1.DateTime := Now;
  DateTimePicker1.BringToFront;
end;

procedure TFrmAgregarProductos.SBEditarClick(Sender: TObject);
begin
  DM.ZTAlmacen.Edit;
  modoEditar(True);
  DBECodigoProducto.SetFocus;
end;

procedure TFrmAgregarProductos.SBGuardarClick(Sender: TObject);
begin
  with DM.ZQTarifas do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO `tarifas` ( `CodigoBarra` , `CodProducto` , `TipoTarifa` , `Precio` )');
    SQL.Add('VALUES (:CB, :CP, :TT1, :P1), ');
    SQL.Add('(:CB, :CP, :TT2, :P2), ');
    SQL.Add('(:CB, :CP, :TT3, :P3), ');
    SQL.Add('(:CB, :CP, :TT4, :P4), ');
    SQL.Add('(:CB, :CP, :TT5, :P5), ');
    SQL.Add('(:CB, :CP, :TT6, :P6)');

    // Si, asignamos los parámetros xDD
    ParamByName('CB').AsString := ECodigoBarra.Text;
    ParamByName('CP').AsString := ECodProducto.Text;
    ParamByName('TT1').AsString := 'Precio1';
    ParamByName('TT2').AsString := 'Precio2';
    ParamByName('TT3').AsString := 'Precio3';
    ParamByName('TT4').AsString := 'Precio4';
    ParamByName('TT5').AsString := 'Precio5';
    ParamByName('TT6').AsString := 'Precio6';

    ParamByName('P1').AsString := EPrecio1.Text;
    ParamByName('P2').AsString := EPrecio2.Text;
    ParamByName('P3').AsString := EPrecio3.Text;
    ParamByName('P4').AsString := EPrecio4.Text;
    ParamByName('P5').AsString := EPrecio5.Text;
    ParamByName('P6').AsString := EPrecio6.Text;
    // Ejecutamos e insertamos todos los valores asignados
    ExecSQL;

  end;
  DM.ZTAlmacen.FieldByName('FechaActualizacion').AsDateTime := DateTimePicker1.Date;
  DM.ZTAlmacen.Post;
  ModoEditar(False);
end;

procedure TFrmAgregarProductos.SBEliminarClick(Sender: TObject);
var
  resp : Integer;
begin
  if Editando then begin
    DM.ZTAlmacen.Cancel;
    modoEditar(False);
  end
  else begin
    resp := Application.MessageBox(Pchar('¿Desea eliminar el código '+DBECodigoProducto.Text+'?'),'Eliminar un registro',MB_YESNO+MB_ICONERROR);
    if resp = ID_YES then begin
      DM.ZTAlmacen.Delete;
      modoEditar(False);
    end;
  end;
end;

procedure TFrmAgregarProductos.FormShow(Sender: TObject);
begin
  try
    DM.ZTUnidad.Active := True;
    DM.ZTUnidadPrecio.Active := True;
    DM.ZTAlmacen.Active := True;
    DM.ZTProveedores.Active := True;
    DM.ZTCategorias.Active := True;
    DM.ZTSubCategorias.Active := True;
  except
    Application.MessageBox(Pchar('Error de conexión a la base de datos:'+#13+#13+'Verifique si la ruta es correcta'),'Error de conexión',MB_ICONWARNING);
    Application.Terminate;
  end;
  ModoEditar(False);
end;

procedure TFrmAgregarProductos.SBPrimeroClick(Sender: TObject);
begin
  DM.ZTAlmacen.First;
end;

procedure TFrmAgregarProductos.SBAnteriorClick(Sender: TObject);
begin
  DM.ZTAlmacen.Prior;
end;

procedure TFrmAgregarProductos.SBSiguienteClick(Sender: TObject);
begin
  DM.ZTAlmacen.Next;
end;

procedure TFrmAgregarProductos.SBUltimoClick(Sender: TObject);
begin
  DM.ZTAlmacen.Last;
end;

procedure TFrmAgregarProductos.DBEPrecio1KeyPress(Sender: TObject;
  var Key: Char);
var precio : Integer;
begin
  if Key = #13 then begin
    Key := #0; //quitamos el sonido
    precio := (StrToInt(DBEPrecio1.Text) * 16 Div 100 + StrToInt(DBEPrecio1.Text));
    DBEPrecio2.Text := IntToStr(precio);
    precio := (StrToInt(DBEPrecio1.Text) * 25 Div 100 + StrToInt(DBEPrecio1.Text));
    DBEPrecio3.Text := IntToStr(precio);
    precio := (StrToInt(DBEPrecio1.Text) * 35 Div 100 + StrToInt(DBEPrecio1.Text));
    DBEPrecio4.Text := IntToStr(precio);
    precio := (StrToInt(DBEPrecio1.Text) * 40 Div 100 + StrToInt(DBEPrecio1.Text));
    DBEPrecio5.Text := IntToStr(precio);
    precio := (StrToInt(DBEPrecio1.Text) * 8 Div 100 + StrToInt(DBEPrecio1.Text));
    DBEPrecio6.Text := IntToStr(precio);

  end;
end;

end.


Disculpen por poner un código tan largo.. pero espero así ser lo mas claro posible

cual sería la solución para este caso ?? ( pueden ver la imagen para tener una idea mas clara )

Bueno.. creo que son esas todas mis dudas tontas que tengo y no puedo resolverlas solo

Bueno pues según yo tendré que hacerlo TODO con SQL no ??? ya no usaré una TTabla para eso verdad ?

Saludos y gracias por leeme.

Última edición por BlackDaemon fecha: 22-03-2007 a las 03:58:53.
Responder Con Cita