Não entendi muito bem o que você gostaria de fazer, mas vou arisca em dar um exemplo:
Código: Selecionar todos
#include "inkey.ch"
#include "hwgui.ch"
**********************
FUNCTION VISUALIZA_LOG
**********************
Local oFrm, oRDBcodigo, oRDBnome
Local aARRAY_DATA:={}
PRIVATE r1 := 1
PRIVATE wNOME := SPACE(80)
PRIVATE oGet1, lOpcaoRadio:=2, oRadiobutton1, oRadiobutton2, oGroup1, LSAY1
Private cnomold := ""
SELE HIS_LOG
DBGOTOP()
INIT DIALOG oFrm TITLE "Pesquisa de Acessos Historico" CLIPPER ;
FONT HFont():Add( '',0,-14,400,,,);
AT 0,0;
SIZE GETDESKTOPWIDTH(),GETDESKTOPHEIGHT()-50 ;
ICON HIcon():AddResource(1001) ;
ON INIT {|| (cnomold := oGet1:title) };
ON EXIT {|| DBCLOSEALL(),.T.};
STYLE WS_POPUP+WS_CAPTION+DS_CENTER +WS_SYSMENU+WS_MINIMIZEBOX+WS_MAXIMIZEBOX+WS_VISIBLE
@ 15,GETDESKTOPHEIGHT()-200 SAY LSAY1 CAPTION "Modulo de acesso.:" SIZE 150,22
@ 165,GETDESKTOPHEIGHT()-200 Get oGet1 VAR wNOME SIZE 300,24;
STYLE ES_AUTOHSCROLL PICTURE '@!' MAXLENGTH 80;
ON CHANGE {|| FOCALIZA_BRW() };
TOOLTIP "Clique Aqui Para buscar um Nome"
@ 10,40 BROWSE oBrw DATABASE OF oFrm SIZE GETDESKTOPWIDTH()-30, GETDESKTOPHEIGHT()-250 ;
FONT HFont():Add( '',0,-12,400,,,);
STYLE WS_VSCROLL + WS_HSCROLL
oBrw:alias := "HIS_LOG"
oBrw:bKeyDown := {|o,key| Browse_Inv2(o, key ) }
@ 5,10 say "F1 - Sobre / F2 - Busca / F4 - Muda Ordem / F5 - Gera Excel / F9 - Calculadora" size GETDESKTOPWIDTH()-20,20;
STYLE SS_CENTER COLOR x_BLUE
@ 5,GETDESKTOPHEIGHT()-150 GROUPBOX grpConfiguracao CAPTION "Ordem de Visualização" SIZE 380,50;
COLOR x_BLUE
@ 400,GETDESKTOPHEIGHT()-150 GROUPBOX oGroup1 CAPTION "Tipo de Busca" SIZE 250,50
RADIOGROUP
@ 420 ,GETDESKTOPHEIGHT()-130 RADIOBUTTON oRadiobutton1 CAPTION "&Normal" SIZE 70 ,22 ON CLICK {||lOpcaoRadio:=1}
@ 500,GETDESKTOPHEIGHT()-130 RADIOBUTTON oRadiobutton2 CAPTION "&Inicio, Meio e Fim" SIZE 130,22 ON CLICK {||lOpcaoRadio:=2}
END RADIOGROUP SELECTED 2
GET RADIOGROUP r1
@ 15 ,GETDESKTOPHEIGHT()-130 RADIOBUTTON oRDBcodigo caption "Ordem de Data";
SIZE 140, 22;
TOOLTIP "Escolha essa Opção para Ordenar a Pesquisa por Ordem de Data";
ON CLICK {|| DbsetOrder(1),oBrw:Refresh() };
COLOR x_BLUE
@ 160,GETDESKTOPHEIGHT()-130 RADIOBUTTON oRDBnome caption "Ordem de Usuario";
SIZE 180, 22;
TOOLTIP "Escolha essa Opção para Ordenar a Pesquisa por Ordem de Usuario";
ON CLICK {|| DbsetOrder(2),oBrw:Refresh() };
COLOR x_BLUE
END RADIOGROUP
oBrw:AddColumn( HColumn():New( "Data", FieldBlock("DATA") ,"D", 10,0,,,,,,,,,{|| Atualiza_Filtro(1) }) )
oBrw:AddColumn( HColumn():New( "Hora", FieldBlock("HORA") ,"C", 8,0,,,,,,,,,) )
oBrw:AddColumn( HColumn():New( "Acessos", FieldBlock("MODULO") ,"C", 80,0) )
oBrw:AddColumn( HColumn():New( "Usuario", FieldBlock("USUARIO") ,"C", 25,0) )
oBrw:AddColumn( HColumn():New( "Matriz / Filial",FieldBlock("EMPRESA") ,"C", 10,0) )
oBrw:Freeze:=1 // congela
FOR nI := 1 TO Len(oBrw:aColumns)
oBrw:aColumns[nI]:nJusHead := DT_CENTER //CENTRALIZA NO NOME DO CAMPO
oBrw:aColumns[nI]:nJusLin := DT_LEFT //COLOCA PARA DIREITA A LINHA
NEXT
oBrw:aColumns[2]:length := 10 // TAMANHO
oBrw:aColumns[3]:length := 82 // TAMANHO
oBrw:aColumns[4]:length := 27 // TAMANHO
ACTIVATE DIALOG oFrm Show SW_SHOWMAXIMIZED
RETURN NIL
******************************
STATIC FUNCTION FOCALIZA_BRW()
******************************
Private oDlgHabla:=nil
MsgRun("Aguarde...")
SELE HIS_LOG
DBSETORDER(3)
IF lOpcaoRadio=1
HIS_LOG->( DBSEEK( ALLTRIM( oGet1:title ) ) )
IF EOF()
MsgInfo( "Fim do Arquivo dos Registros", "Aviso" )
DBGOTOP()
ENDIF
ELSE
IF eTipo_banco="DBF" // DBF
HIS_LOG->( ORDWILDSEEK( "*" + ALLTRIM( oGet1:title ) + "*", .T. ) )
IF EOF()
DBGOTOP()
HIS_LOG->( ORDWILDSEEK( "*" + ALLTRIM( oGet1:title ) + "*", .F. ) )
IF EOF()
DBGOTOP()
ENDIF
ENDIF
ELSE // SQL
SR_SETFILTER("modulo LIKE '%"+ALLTRIM(oGet1:title)+"%'")
DBGOTOP()
ENDIF
ENDIF
FIM_RUN()
oBrw:Refresh()
RETURN( .T. )
***********************************
FUNCTION BROWSE_LOG( oBrowse, key )
***********************************
DO CASE
CASE KEY= VK_ESCAPE
EndDialog()
CASE KEY = VK_F1
Sobre()
CASE KEY = VK_F2
BUSCA_NOME(oBrowse)
CASE KEY = VK_F4
Lista_ordem(oBrowse)
CASE KEY = VK_F5
Gera_Excel(oBrowse)
CASE KEY = VK_F9
ShellExecute("calc")
otherwise
ENDCASE
Return .T.