Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-04-2016
mramos65 mramos65 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Mèxico
Posts: 26
Poder: 0
mramos65 Va por buen camino
Saber nombre de DBGrid seleccionado (Activo)

Hola a todos:

Trabajo con Delphi7 y Tablas DBF, tengo en una form 5 Dbgrids,
Tengo un procedimiento para exportar a excell y quiero que al seleccionar o asignarle el foco a uno de los DBGrids, en un popmenu (que tiene cada DBGrid), pueda elegir la opcion exportar a excell y lo haga con el mismo procedimiento sin tener que repetirlo para cada DBGrid.

Por su gran apoyo de siempre.

GRACIAS
Responder Con Cita
  #2  
Antiguo 03-04-2016
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
No tengo Delphi a la mano para probar, pero mira si te funciona con Form1.ActiveControl, o sea, si usas en tu procedimiento
Código Delphi [-]
If Form1.ActiveControl is TDBGrid then
   //Haces lo que quieras con 
   TDBGrid(Form1.ActiveControl)

Ya tienes el Grid activo, suponiendo que Form1 fuera tu TForm.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 04-04-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La otra opción es pasar directamente el DBGrid como parámetro o en el caso de un evento, utilizar el parámetro Sender.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 05-04-2016
mramos65 mramos65 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Mèxico
Posts: 26
Poder: 0
mramos65 Va por buen camino
Thumbs up Nombre de DBGrid (Activo) para exportar datos a Excell

Realice una funcion con los parametros TDbgrid y Tquery
Declarando en
Type
procedure ExpExcell(grid: tdbgrid; base: tquery);
Luego en
Implementation

Código Delphi [-]
procedure TForm1.ExpExcell(grid: tdbgrid; base: tquery); //Donde  Grid sera el nombre del Dbgrid seleccionado y base El query origen de los datos
 var
  excel:Variant;
  fila, columna:Integer;
begin
  with base, base.SQL do
    begin
      Close;
      Open;
      if IsEmpty then
        begin
          MessageDlg('No existen datos que reportar!', mtWarning,[mbOk], 0);
          Exit;
        end;
      TRY
        excel := CreateOleObject('Excel.Application');
      EXCEPT
        ShowMessage('Excel no se pudo iniciar.');
        exit;
      END;
      excel.Visible := true;
      First;
      fila          := 1;
      excel.Workbooks.Add;
      //Poner los títulos
      for columna := 0 to Grid.Columns.Count-1 do
        excel.Cells[fila,columna + 1].Value := Grid.Columns[columna].Title.Caption;
      fila:=2;
      //Desengachar controles para agilizar
      DisableControls;
      TRY
        while not(eof) do
          begin
            for columna := 0 to Grid.Columns.Count-1 do
              excel.Cells[fila,columna + 1].Value := FieldByName(Grid.Columns[columna].FieldName).asString;
            Next;
            inc(fila);
          end;
        //Ajustar columnas
        for columna:=1 to Grid.Columns.Count-1 do
        begin
        Excel.Columns[Columna].EntireColumn.AutoFit;
        end;

      EXCEPT
        ShowMessage('Atención, se produjo un error en la transmisión.');
      END;
      EnableControls;
    end;
end;
Debo mencionar que este procedimiento es autoria de otro usuario, solo modifique los parametros para realizar un procedimiento adaptable a mi necesidad.
y por ultimo llamando el procedimiento asi:
Código Delphi [-]
procedure Tform1.ExportaraExcell1Click(Sender: TObject);
begin
ExpExcell(DbGrid,TQuery);
end;
Esperando sea de utilidad para otros usuarios, GRACIAS
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Saber si un proceso esta activo Anel Hernandez Varios 3 17-01-2012 19:17:16
Como saber si mi servidor de MySQL esta activo o corriendo. rgstuamigo MySQL 5 19-11-2008 22:54:01
Puedo saber el escritorio activo?? aeff API de Windows 0 19-03-2007 19:40:27
Saber usuario activo lucasarts_18 MS SQL Server 2 29-09-2005 16:19:29
Pregunta básica. Como saber si un valor está activo o no. gluglu Varios 3 16-09-2004 18:34:53


La franja horaria es GMT +2. Ahora son las 22:12:04.


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