Ver Mensaje Individual
  #3  
Antiguo 10-04-2016
genyus00 genyus00 is offline
Miembro
 
Registrado: jun 2010
Posts: 29
Reputación: 0
genyus00 Va por buen camino
Hola. Este es el codigo de mi combo buscar donde elijo el criterio de filtro.
he colocando en negrilla los llamados a las funciones principales, hasta llegar
a la función que limpia la stringgrid.

Código Delphi [-]
procedure TFrmPrincipal.cmbBuscarChange(Sender: TObject);
begin
 edtBuscar.Text:='';
 FiltrarUsuarios;
 end;

Código Delphi [-]
procedure TFrmPrincipal.FiltrarUsuarios();
var
   LstUsuarios:TStringList;
   PDepartamento, PCiudad, PSexo, PTipoDoc,POpcupacion: String;
begin
 PDepartamento:='';
 PCiudad:='';
 PSexo:='';
 PTipoDoc:='';
 POpcupacion:='';

 if cmbCiudades.ItemIndex<>-1 then//pot ciudad
    PCiudad := inttostr(TCiudad(cmbCiudades.Items.Objects[cmbCiudades.ItemIndex]).CiudadId);

 if cmbDepartamentos.ItemIndex<>-1 then//por departamento
    PDepartamento := inttostr(TDepartamento(cmbDepartamentos.Items.Objects[cmbDepartamentos.ItemIndex]).DepartamentoId);

 if cmbTipodeDocumento.ItemIndex<>-1 then//por tipodoc
    PTipoDoc := TTipoidentificacion(cmbTipodeDocumento.Items.Objects[cmbTipodeDocumento.ItemIndex]).TipoIdentificacionId;

 if cmbSexo.ItemIndex<>-1 then//por sexo
    PSexo := TSexo(cmbSexo.Items.Objects[cmbSexo.ItemIndex]).SexoId;

 if cmbOcupaciones.ItemIndex<>-1 then//por ocupacion
    POpcupacion := TOcupacion(cmbOcupaciones.Items.Objects[cmbOcupaciones.ItemIndex]).OcupacionId;

 if(PCiudad<>'')or(PDepartamento<>'')or(PTipoDoc<>'')or(PSexo<>'')or(POpcupacion<>'') then
    LstUsuarios := gloLisUsuario.Filtrar(PDepartamento, PCiudad, PSexo, PTipoDoc,POpcupacion)
  else
     LstUsuarios := gloLisUsuario.RetornaListaUsuarios;

 PresentaUsuarios(GrdUsuarios, LstUsuarios,uppercase(edtBuscar.Text), cmbBuscar.ItemIndex);
 end;

Código Delphi [-]
procedure PresentaUsuarios(var PGrdGrilla___ : TStringGrid; Usuarios:TStringList;strCadena1:string;Por:Integer);
var
   strCadena2: string;
   Usuario: TUsuario;
   Vr,Cont:Integer;
begin
 ConfigurarGrillaUsuarios(PGrdGrilla___);

 strCadena2:='';
 Cont:= 0;
 Vr:=0;

 while cont < Usuarios.Count do
       begin
        Usuario := TUsuario(Usuarios.Objects[Cont]);
        case por of
         1:strCadena2:=Uppercase(Usuario.strNombre);
         2:strCadena2:=Uppercase(Usuario.PrimerNombre+' '+Usuario.SegundoNombre+' '+Usuario.PrimerApellido+' '+Usuario.SegundoApellido);
         else
            strCadena2:='';
         end;

        if((Pos(strCadena1,strCadena2)<>0)and(trim(StrCadena1)<>''))or(strCadena2='') then
           begin
            AddUsuario(PGrdGrilla___,Vr,Usuario);
            Inc(Vr);
            PGrdGrilla___.RowCount := Vr+1;
            end;

        Cont := Cont+1;
        end;

 end;

Código Delphi [-]
procedure ConfigurarGrillaUsuarios(var PGrdGrilla___ : TStringGrid);
begin
 LimpiarGrilla(PGrdGrilla___);
 PGrdGrilla___.ColWidths[0]  := 50;  PGrdGrilla___.Cells[0, 0]  := 'Id.';
 PGrdGrilla___.ColWidths[1]  := 50; PGrdGrilla___.Cells[1, 0]  := 'Tipo ID';//'Tipo Cliente';
 PGrdGrilla___.ColWidths[2]  := 115; PGrdGrilla___.Cells[2, 0]  := 'Número ID';//'Nombre Programa';
 PGrdGrilla___.ColWidths[3]  := 170; PGrdGrilla___.Cells[3, 0]  := 'Apellidos';//'Razón Social';
 PGrdGrilla___.ColWidths[4]  := 170; PGrdGrilla___.Cells[4, 0]  := 'Nombres';//'Representante Legal';
 PGrdGrilla___.ColWidths[5]  := 170; PGrdGrilla___.Cells[5, 0]  := 'Teléfono(s)';//'Dirección';
 PGrdGrilla___.ColWidths[6]  := 220; PGrdGrilla___.Cells[6, 0]  := 'E-Mail';//'Teléfono(s)';
 PGrdGrilla___.ColWidths[7]  := 50; PGrdGrilla___.Cells[7, 0]  := 'Sexo';//'Correo Electrónico';
 PGrdGrilla___.ColCount := 10;
 PGrdGrilla___.RowCount := 2;
 end;

Código Delphi [-]
procedure LimpiarGrilla(var PGrdGrilla___ : TStringGrid);
var  i, j : Integer;
begin
  with PGrdGrilla___ do
        for i:=0 to PGrdGrilla___.RowCount - 1 do
            for j:=0 to PGrdGrilla___.ColCount - 1 do
                PGrdGrilla___.Cells[j, i] := '';

 PGrdGrilla___.FixedCols := 0;
 end;
Responder Con Cita