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);
begin
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);
begin
if (VarSNomMod='PROVEEDORES') and (FProveedor.DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
begin
FProveedor.DBNCodigoFormaPago.Field.Value:=IBQBusqueda.FieldByName('FORMAPAGO').AsString; FProveedor.DBNCodigoFormaPago.SetFocus; end;
if (VarSNomMod='LOTESF') and (FLotes.DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
begin
FLotes.DBNCodFabricable.Field.Value:=IBQBusqueda.FieldByName('CODIGO').AsString; FLotes.DBNCodFabricable.SetFocus; end;
if (VarSNomMod='LOTESE') and (FLotes.DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
begin
FLotes.DBNCodEmpleado.Field.Value:=IBQBusqueda.FieldByName('CODIGO').AsString; FLotes.DBNCodEmpleado.SetFocus; end;
Button3Click(Sender);
QuerryOC(IBQBusqueda);
comboCampos.Items.Clear;
end;
procedure TFbusquedaFP.FormShow(Sender: TObject);
begin
if VarSTabla='FPAGOS' then Caption:='Búsquedas en Fomas de pago'; if VarSTabla='EMPLEADOS' then Caption:='Búsquedas en Empleados'; if VarSTabla='FABRICABLES' then Caption:='Búsquedas en Fabricables'; 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.