Veamos el procedimiento del botón nuevo del módulo movimientos, lo he dividido en partes para ir comentandolo
Código Delphi
[-]var VarIRegistro:Integer;
VarBSeguimos:Boolean;
Creamos la variable VarBSeguimos, para saber si debemos continuar por uno u otor lado, ya lo veremos más adelante
Código Delphi
[-]begin
VarBSeguimos:=True;
if DM.IBDClientes.IsEmpty then VarBSeguimos:=false;
if DM.IBDCargos.IsEmpty then VarBSeguimos:=false;
Le decimos a la variable que es true y lo primero que hacemos es saber si estas tablas tiene datos, en caso contrario marcamos la variable para no seguir
Código Delphi
[-] if VarBSeguimos then
begin
ActQuery(IBQClientes,'Select * From CLIENTES');
ActQuery(IBQCargos,'Select * From CARGOS');
DsPrincipal.DataSet.Insert;
VarIRegistro:=DM.IBDConfiguracionNUMERADOR_MOVIMIENTOS.Value;
VarIRegistro:=VarIRegistro+1;
DbeRegistro.Field.Value:=IntToStr(VarIRegistro);
PanelDatos.Enabled:=True;
PanelOculto.Visible:=True;
Botonera1.Enabled:=false;
DbeFecha.Field.Value:=Now;
Si tenemos datos usamos la variable y seguimos, activamos los ibquerry con todos los clientes y seguimos con los datos
Código Delphi
[-] VarIModoApertura=1 then DbeConcepto.Field.Value:='Venta de la unidad [ '+DM.IBDUnidadesTITULO.Value+' ]';
if VarIModoApertura=2 then DbeConcepto.Field.Value:='A cuenta del cliente [ '+DM.IBDClientesCODIGO.Value+' ]';
if VarIModoApertura=3 then
begin
DbeConcepto.Field.Value:='Pagado por el cliente[ '+DM.IBDClientesCODIGO.Value+' ]';
DbeCantidad.Field.Value:=DM.IBDClientesPENDIENTE.Value;
end;
DBLBCliente.SetFocus;
end else ShowMessage('O bien clientes o cargos esta vacía, por lo que no puede continuar, anulando este proceso');
end;
Ahora dependerá de nuestro método de apertura preparamos ciertos datos usando la variable VarIModoApertura y para que este funcione automáticamente usamos el siguiente código
Código Delphi
[-]begin
if not (DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
begin
if (VarIModoApertura=1) or (VarIModoApertura=2) or (VarIModoApertura=3) then SBNuevoClick(sender);
end;
end;
Como vemos dice que si hay elegido un método de apertura diferente a o automáticamente nos genere un nuevo registro, ya que estos métodos vienen de los módulos Unidades en el botón vendida y de Clientes en los botones A Cuenta y Pagar