Ver Mensaje Individual
  #95  
Antiguo 23-06-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 22
José Luis Garcí Va camino a la fama
El Módulo de Lotes



Es importante darse cuenta que el nuevo número de lote siempre lo cogemos de configuración evitando de esta manera que se puedan duplicar los número de lotes

Tenemos que poner un apartado en el programa para cerrar el año, ya que este nos permite poner el contador de lotes y de otros si es necesario a 0

El código en https://gist.github.com/anonymous/5844768

Veamos un detalle de como va cambiando el módulo UbusquedaFP

Código Delphi [-]
procedure TFbusquedaFP.FormActivate(Sender: TObject);
//------------------------------------------------------------------------------
//********************[ Cargamos los Campos de la tabla  en el ComboBox  ]******
//------------------------------------------------------------------------------
begin
  //Comprobamos si el combo esta vacio cargamos los datos
  if Edbusqueda.Text='' then ActQuery(IBQBusqueda,'Select * From '+VarSTabla);
  if IBQBusqueda.IsEmpty then
  begin
     ShowMessage('No hay datos para buscar o mostrar');
     SB_SalirClick(Sender);
  end else
  begin
     if comboCampos.Items.Count=0 then DataSource1.DataSet.GetFieldNames(comboCampos.items);
     if VarSTabla='FPAGOS' then
     begin
       CarGarGrid(0,'ID',50,'ID');
       CarGarGrid(1,'CODIGO',130,'Código');
       CarGarGrid(2,'FORMAPAGO',260,'Forma de pago');
       CarGarGrid(3,'DIASPRESENTACION',130,'Días de presentación');
       CarGarGrid(4,'DIASCOBRO',130,'Días de cobro');
       CarGarGrid(5,'NUMERODEPAGOS',130,'Número de pagos');
     end;
     if VarSTabla='FABRICABLES' then
     begin
       CarGarGrid(0,'ID',50,'ID');
       CarGarGrid(1,'CODIGO',130,'Código');
       CarGarGrid(2,'PRODUCTO',520,'Producto');
     end;
     if VarSTabla='EMPLEADOS' then
     begin
       CarGarGrid(0,'ID',50,'ID');
       CarGarGrid(1,'CODIGO',130,'Código');
       CarGarGrid(2,'NOMBRE',520,'Nombre');
       CarGarGrid(3,'PUESTO',130,'Puesto de trabajo');
       CarGarGrid(4,'AGENTE ',130,'Es Agente o comercial');
     end;
  end;
end;

procedure TFbusquedaFP.FormClose(Sender: TObject; var Action: TCloseAction);
//------------------------------------------------------------------------------
//****************************************************************[ Cerrar ]****
//------------------------------------------------------------------------------
begin
   if (VarSNomMod='PROVEEDORES')  and (FProveedor.DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
   begin
       FProveedor.DBNCodigoFormaPago.Field.Value:=IBQBusqueda.FieldByName('FORMAPAGO').AsString; //Ponemos la forma de pago elegida
       FProveedor.DBNCodigoFormaPago.SetFocus;                        //Damos el foco nuevamente al campo
   end;
   if (VarSNomMod='LOTESF')  and (FLotes.DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
   begin
       FLotes.DBNCodFabricable.Field.Value:=IBQBusqueda.FieldByName('CODIGO').AsString; //Ponemos el código elegido
       FLotes.DBNCodFabricable.SetFocus;                        //Damos el foco nuevamente al campo
   end;
   if (VarSNomMod='LOTESE')  and (FLotes.DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
   begin
       FLotes.DBNCodEmpleado.Field.Value:=IBQBusqueda.FieldByName('CODIGO').AsString; //Ponemos el código elegido
       FLotes.DBNCodEmpleado.SetFocus;                        //Damos el foco nuevamente al campo
   end;
   Button3Click(Sender);
   QuerryOC(IBQBusqueda);
   comboCampos.Items.Clear;
end;

procedure TFbusquedaFP.FormShow(Sender: TObject);
//------------------------------------------------------------------------------
//****************************************************************[ OnShow ]****
// Adaptamos el título del form a la tabla que usamos
//------------------------------------------------------------------------------
begin
  if VarSTabla='FPAGOS' then Caption:='Búsquedas en Fomas de pago';  //Caption del Form
  if VarSTabla='EMPLEADOS' then Caption:='Búsquedas en Empleados';  //Caption del Form
  if VarSTabla='FABRICABLES' then Caption:='Búsquedas en Fabricables';  //Caption del Form
end;

como podemos ver usamos el mismo módulo, para diferentes llamadas, e incluso cunado las llamadas son desde el mismo módulo, pero para diferente Tablas ('LOTESF' y 'LOTESE')

El próximo módulo es el de entradas, que tiene muchas similitudes con este pero también con el de Stock, realmente es el paso intermedio entre ambos.

Que paséis un buen Domingo.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 23-06-2013 a las 14:44:22.
Responder Con Cita