Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #28  
Antiguo 23-07-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
Poder: 23
José Luis Garcí Va camino a la fama
Siguiendo con el tutorial, lo siguiente es

Código Delphi [-]
procedure TFXPAF.SBDireccionesClick(Sender: TObject);
//------------------------------------------------------------------------------
//****************************************************[ Buscar direcciones ]****
//------------------------------------------------------------------------------
begin
  if DBNCodigoCliente.Text<>'' then
  begin
    VarSTabla:='DIRECCIONES';  //Pertenece al formularios  UFbusquedaFP
    VarSNomMod:='XPAFD';  //Desde que modulo lo llamamos
    FbusquedaFP.Show;
  end else ShowMessage('Debe seleccionar primero el código del cliente');
end;

y estos son los cambios más significativos hechos en UFbusquedaFP

Código Delphi [-]

//------------------------------------------------------------------------------
//****************************************************[ Hace la búsqueda ]******
//------------------------------------------------------------------------------
begin  // Usamos por defecto locate pero lo podemos cambiar por un Query y sus cláusulas
    if comboCampos.Text<>'' then
    begin
       if VarSNomMod='XPAFD' then  //Módulo de documentos (direcciones)
       begin
            if CheckBox1.Checked then ActQuery(IBQBusqueda,'Select * From '+VarSTabla+' WHERE (DIRECCIONES.MODULO = '+ QuotedStr('CLIENTES')+
                                                           ') AND (DIRECCIONES.CODIGO = '+ QuotedStr(FXPAF.DBNCodigoCliente.Text)+
                                                           ') AND (UPPER('+comboCampos.text+ ') LIKE UPPER('+QuotedStr('%'+Edbusqueda.Text+'%')+'))')
                                 else ActQuery(IBQBusqueda,'Select * From '+VarSTabla+' WHERE (DIRECCIONES.MODULO = '+ QuotedStr('CLIENTES')+
                                                           ') AND (DIRECCIONES.CODIGO = '+ QuotedStr(FXPAF.DBNCodigoCliente.Text)+
                                                           ') AND (UPPER('+comboCampos.text+') WHERE UPPER('+QuotedStr(Edbusqueda.Text)+'))');
       end else
       begin
          if CheckBox1.Checked then ActQuery(IBQBusqueda,'Select * From '+VarSTabla+' WHERE UPPER('+comboCampos.text+') LIKE UPPER('+QuotedStr('%'+Edbusqueda.Text+'%')+')')
                               else ActQuery(IBQBusqueda,'Select * From '+VarSTabla+' WHERE UPPER('+comboCampos.text+') WHERE UPPER('+QuotedStr(Edbusqueda.Text)+')');
       end;
    end else ShowMessage('Debe seleccionar el campo por el que buscar');
end;


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
  begin
     if (VarSTabla='DIRECCIONES') AND (VarSNomMod='XPAFD') then
     begin
       if VarSTabla='DIRECCIONES' then Caption:='Búsquedas en direcciones';  //Caption del Form
       ActQuery(IBQBusqueda,'Select * From '+VarSTabla+' WHERE (DIRECCIONES.MODULO = '+ QuotedStr('CLIENTES')+
                             ') AND (DIRECCIONES.CODIGO = '+ QuotedStr(FXPAF.DBNCodigoCliente.Text)+ ')');
    end else ActQuery(IBQBusqueda,'Select * From '+VarSTabla);
  end;
  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='DIRECCIONES' then
     begin
       CarGarGrid(0,'ID',50,'ID');
       CarGarGrid(1,'CODIGO',130,'Código');
       CarGarGrid(2,'DIRECCION',520,'Dirección');
       CarGarGrid(3,'CP',65,'Dirección');
       CarGarGrid(4,'POBLACION',520,'Población');
       CarGarGrid(5,'PROVINCIA',520,'Provincía');
       CarGarGrid(6,'PAIS',520,'País');
     end;
  end;
end;


procedure TFbusquedaFP.FormClose(Sender: TObject; var Action: TCloseAction);
//------------------------------------------------------------------------------
//****************************************************************[ Cerrar ]****
//------------------------------------------------------------------------------
begin

   ...

   if (VarSNomMod='XPAFD')  and (FXPAF.DsPrincipal.DataSet.State in [dsEdit,dsInsert]) then
   begin
       DM.IBDDocumentosIDDIRECCIONES.AsInteger:=IBQBusqueda.FieldByName('ID').AsInteger; //Ponemos el código elegido
       FXPAF.Show;
   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='DIRECCIONES') AND (VarSNomMod='XPAFD') then
  begin
    if VarSTabla='DIRECCIONES' then Caption:='Búsquedas en direcciones';  //Caption del Form
    ActQuery(IBQBusqueda,'Select * From '+VarSTabla+' WHERE (DIRECCIONES.MODULO = '+ QuotedStr('CLIENTES')+
                         ') AND (DIRECCIONES.CODIGO = '+ QuotedStr(FXPAF.DBNCodigoCliente.Text)+ ')');
                         ShowMessage(IBQBusqueda.SQL.Text);
  end;
end;

Como podéis ver al tratarse de una tabla auxiliar que va vinculada a los módulos y el código, el tratamiento es un poco diferente.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
llamar un programa desde otro programa en un computador con dos monitores RONPABLO Varios 0 10-10-2011 18:20:51
Cargar tu programa desde otro programa rmendoza83 Varios 7 05-01-2009 19:51:33
Lanzar programa desde mi programa Pablo Carlos API de Windows 32 09-09-2004 13:56:26
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36
ISC ERROR CODE:335544344 I/O error for file "c:\gestion\gestion.gdb" eliasterrero Firebird e Interbase 2 28-06-2004 12:20:25


La franja horaria es GMT +2. Ahora son las 14:37:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi