Ver Mensaje Individual
  #81  
Antiguo 07-03-2015
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
Comentamos algunas cosas más de los módulos con los que hemos trabajado hoy, en primer lugar en el DM hemos añadido elñ procedimiento


Código Delphi [-]
//------------------------------------------------------------------------------
//***************************************************[ MiControlDeErrores ]*****
//   Ds   Es el datasource a conectar
//   Unidad    LA unidad desde el que la llamamos
//   Apartado  El apartado
//   E    La  exception producida
//------------------------------------------------------------------------------
begin
   MessageBeep(1000);
   ShowMessage('Se ha producido un error y el proceso no se ha podido terminar   Unidad:[ '+Unidad+']   Modulo:[ '+Apartado+' ]' + Chr(13) + Chr(13)

             + 'Clase de error: ' + E.ClassName + Chr(13) + Chr(13)
             + 'Mensaje del error:' + E.Message+Chr(13) + Chr(13)
             + '    '+Chr(13) + Chr(13)
             + 'El proceso ha quedado interrumpido');
  if Ds.DataSet.State in [dsEdit,dsInsert] then DS.DataSet.Cancel;
  DM.IBT.RollbackRetaining;    //Donde IBT es el nombre de su Ibtrasaction, con ruta
end;

Que ya vimos y también vimos como se usaba en Unidades en procedimientos como el de bajas siendo la linea de llamada del código

Código Delphi [-]
DM.MiControlDeErrores(Dsprincipal,'UUnidades','Baja',E);

Lo bueno es que el mismo código, incluso podría substituir parte del código de todos los botones confirmar o en mucho de ellos


En clientes hay una parte que ha cambiado en el formulario y no se mostro, esta es en el panel botonera 2, os pongo una imagen



Como veis ahora podemos buscar por tres campos con el locate, no es el mejor método y de hecho suelo usar pantallas de búsqueda, pero para el tutorial creo que es suficiente, veamos dos trozos de código relacionados con este cambio

Código Delphi [-]
//------------------------------------------------------------------------------
//***********************************************[ ejecutamos la búsqueda ]*****
//------------------------------------------------------------------------------
begin
   case RadioGroup1.ItemIndex of
     0SPrincipal.DataSet.Locate('NOMBRE',Edit1.Text,[loCaseInsensitive,loPartialKey]);
     1SPrincipal.DataSet.Locate('DIRECCION',Edit1.Text,[loCaseInsensitive,loPartialKey]);
     2SPrincipal.DataSet.Locate('DOCUMENTO',Edit1.Text,[loCaseInsensitive,loPartialKey]);
   end;
end;

El primero es cuando le damos a buscar, por lo que miramos que elemento del RadioGroup esta seleccionado para saber por que buscamos

Código Delphi [-]
procedure TFClientes.RadioGroup1Click(Sender: TObject);
begin
    case RadioGroup1.ItemIndex of
       0:Label9.Caption:='Nombre';
       1:Label9.Caption:='Dirección';
       2:Label9.Caption:='Nº de documento';
    end;
end;



El segundo es para que cuando pulsamos en el Radiogroup nos identifique antes del edit por que campo buscamos



Creo que esto es todo por esta semana, si veis algo me dicen, seguro que hay fallos ya que estoy haciendo el tutorial según lo voy explicando. Buen fin de semana a todos
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita