Galera .. duvida cruel .. ja fiz de tudo e não consigo ...
Tenho uma tela de clientes com varios (PAGE) e no page1 eu coloco meu browse .. coloquei uns radiobuttons para selecionar a ordem e ativar o GET de pesquisa (oEdit1_pesquisar) .. até aí tudo bem funciona ..
fiz ele focar no browse da forma q eu quero ..perfeito!! porem quando eu clico no GET de pesquisa direto ele não ativa o get de forma alguma ... alguem pode me dar uma luz ai por favor ?? segue o codigo ....
Código: Selecionar todos
******************************************************************************
** TBROWSER CLIENTES **
**********************
#include "hwgui.ch"
#include "windows.ch"
STATIC oBrw , ThisForm
PROCEDURE DB_CADCLI(oMainWnd) // Função principal de cadastro de clientes
PRIVATE oDlgClientes, oTab, oPanel1
PRIVATE oOwnerbutton1, oRadiobutton1, oOwnerbutton2, oRadiobutton2 , oOwnerbutton3, oOwnerbutton4
PRIVATE vEdit1_pesquisar := "", vRadiogroup1 := 1
PRIVATE oEdit1_pesquisar, oRadiogroup1, oGroup1
// Cria o diálogo e centraliza ele na janela principal
INIT DIALOG oDlgClientes ;
CLIPPER NOEXIT TITLE "Registro de Clientes" ;
AT 0, 0 ;
SIZE 1200, 650 ;
FONT oFontDlg ;
STYLE WS_POPUP + WS_CAPTION + DS_SYSMODAL + DS_CENTER + WS_SYSMENU + WS_SIZEBOX; // ON INIT {|| oTab:oBrw:SetFocus()}
ThisForm := oDlgClientes
@ 5,5 TAB oTab ITEMS {} SIZE 1188, 615 ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;// ON INIT {|oCtrl| oCtrl:bChange:={|o,nPage| ABA_TAB(oDlgClientes,nPage) } }
ON GETFOCUS { || oBrw:SetFocus()};
BEGIN PAGE "Consulta" OF oTab
hwg_SetColorInFocus( .T., COLOR_BLACK,COLOR_YELLOW )
@ 01,25 PANEL oPanel1 SIZE 1182,60 ; // HSTYLE HStyle():New( {16770002,16772062}, 1,, 0.4, 16759929 );
@ 2,6 OWNERBUTTON oOwnerbutton1 OF oPanel1 SIZE 62,50 ;//ON CLICK {|| ThisForm:CLOSE() } ;
TEXT 'Incluir' COORDINATES 0, 28, 0, 0 ;
FONT HFont():Add( 'MS Sans Serif',0,-11,400,,,) ;
BITMAP HBitmap():AddResource('bmp_new') COORDINATES 0, 5, 0, 0 TRANSPARENT COLOR 12632256 ;
TOOLTIP "Incluir Cliente"
@ 67,6 OWNERBUTTON oOwnerbutton2 OF oPanel1 SIZE 62,50 ;//ON CLICK {|| ThisForm:CLOSE() } ;
TEXT 'Alterar' COORDINATES 0, 28, 0, 0 ;
FONT HFont():Add( 'MS Sans Serif',0,-11,400,,,) ;
BITMAP "bmp_edit" FROM RESOURCE COORDINATES 0, 5, 0, 0 TRANSPARENT COLOR 12632256;
TOOLTIP "Alterar datos del Cliente"
@ 132,6 OWNERBUTTON oOwnerbutton3 OF oPanel1 SIZE 62,50 ;//ON CLICK {|| ThisForm:CLOSE() } ;
TEXT 'Eliminar' COORDINATES 0, 28, 0, 0 ;
FONT HFont():Add( 'MS Sans Serif',0,-11,400,,,) ;
BITMAP "smcancel" FROM RESOURCE COORDINATES 0, 5, 0, 0 TRANSPARENT COLOR 12632256;
TOOLTIP "Borrar Registro"
@ 1120,6 OWNERBUTTON oOwnerbutton4 OF oPanel1 SIZE 62,50 ON CLICK {|| hwg_EndDialog(oDlgClientes:handle()) } ;
TEXT 'Salir' COORDINATES 0, 28, 0, 0 ;
FONT HFont():Add( 'MS Sans Serif',0,-11,400,,,) ;
BITMAP "smexit" FROM RESOURCE COORDINATES 0, 5, 0, 0 TRANSPARENT COLOR 12632256;
TOOLTIP "Salir del los registros"
@ 338,1 GET RADIOGROUP oRadiogroup1 VAR vRadiogroup1 ;
CAPTION "Orden" OF oPanel1 SIZE 250,56;
@ 342,14 RADIOBUTTON oRadiobutton1 CAPTION "&Nombre" OF oPanel1 SIZE 90,22;
ON CLICK {|| ORDSETFOCUS("CLICX_02"),oBrw:SetFocus(),oBrw:Refresh(),oEdit1_pesquisar:SetFocus() } ;
@ 342,33 RADIOBUTTON oRadiobutton2 CAPTION "Nombre &Fantasia" OF oPanel1 SIZE 90,22;
ON CLICK {|| ORDSETFOCUS("CLICX_06"),oBrw:SetFocus(),oBrw:Refresh(),oEdit1_pesquisar:SetFocus() };
@ 450,33 RADIOBUTTON oRadiobutton3 CAPTION "&RUC" OF oPanel1 SIZE 90,21 ;
ON CLICK {|| ORDSETFOCUS("CLICX_09"),oBrw:SetFocus(),oBrw:Refresh(),oEdit1_pesquisar:SetFocus() } ;
@ 450,14 RADIOBUTTON oRadiobutton4 CAPTION "&Código" OF oPanel1 SIZE 90,22 ;
ON CLICK {|| ORDSETFOCUS("CLICX_03"),oBrw:SetFocus(),oBrw:Refresh(),oEdit1_pesquisar:SetFocus() };
END RADIOGROUP SELECTED vRadiogroup1
@ 649,1 GROUPBOX oGroup1 CAPTION "&Búsqueda" OF oPanel1 SIZE 389,55 STYLE BS_LEFT
@ 655,47 GET oEdit1_pesquisar VAR vEdit1_pesquisar PICTURE "@!" SIZE 371,22 MAXLENGTH 30 ;
VALID {|| If( hwg_GetKeyState( VK_RETURN ) < 0, ;
( PesquisaClientesBrowse( oEdit1_pesquisar:GetText(), oBrw ), oBrw:Refresh(), .t. ), .t. ) } ;
ON CHANGE {|| PesquisaClientesBrowse( oEdit1_pesquisar:GetText(), oBrw ), .t. }
BrowserCliente()
END PAGE OF oTab
BEGIN PAGE "Datos Cadastrales" OF oTab
END PAGE OF oTab
BEGIN PAGE "Movimientos" OF oTab
END PAGE OF oTab
BEGIN PAGE "Pedidos" OF oTab
END PAGE OF oTab
BEGIN PAGE "Facturas" OF oTab
END PAGE OF oTab
BEGIN PAGE "Productos" OF oTab
END PAGE OF oTab
ACTIVATE DIALOG oDlgClientes
RETURN Nil
Código: Selecionar todos
*------------------------------------------------------*
FUNCTION BrowserCliente()
*------------------------------------------------------*
LOCAL aCamp, aCab, aPict, nLast, nRec := 1 , n1
LOCAL cFieldName, nWidth, nDec, cType, oColuna
LOCAL aContas := {}
KSETCAPS(.T.)
if PAR->CC_PAIS = "B" // Brasil
aCamp := {;
"CC_CODCLI",;
"CC_NOME",;
"CC_TELCOM",;
{||IIF(CC_FJ <> SPACE(01), IIF( CC_FJ = 'J','JURIDICA','FISICA '),' ')},;
"CC_FANTAS",;
{||IIF(CC_CPF # SPACE(11), TRANSFORM(CC_CPF,"@R 999.999.999-99 "),TRANSFORM(CC_CGC,"@R 99.999.999/9999-99"))},;
"CC_END",;
"CC_CID",;
"CC_CEP",;
"CD_DTCAD",;
"CC_HORCAD",;
"CC_USUCAD"}
aTam := {;
"06",;
"41",;
"14",;
"11",;
"41",;
"41",;
"13",;
"31",;
"11",;
"11",;
"11",;
"11"}
aCab := {;
"Cód.",;
"Razão Social / Nome do Cliente",;
"Telefone",;
"Física/Jurídica",;
"Fantasia",;
"CPF/CNPJ",;
"Endereço",;
"Cidade",;
"CEP",;
"Registro",;
"Horário",;
"Operador"}
aPict := {;
"99999",;
"@!",;
"@R",;
"@!",;
"@!",;
"@!",;
"@!",;
"@!",;
"@R",;
"@D",;
"99:99:99",;
"@!"}
else // Paraguai
aCamp := {;
"CC_CODCLI",;
"CC_NOME",;
"CC_TELCOM",;
"CC_RUC",;
{||IIF(CC_FJ <> SPACE(01), IIF( CC_FJ = 'J','JURIDICA','FISICA '),' ')},;
"CC_FANTAS",;
"CC_END",;
"CC_CID",;
"CD_DTCAD",;
"CC_HORCAD",;
"CC_USUCAD"}
aTam := {;
"06",;
"41",;
"14",;
"15",;
"09",;
"41",;
"36",;
"21",;
"11",;
"11",;
"11"}
aCab := {;
"Cód.",;
"Nombre del Cliente",;
"Teléfono",;
"R.U.C.",;
"Tipo",;
"Fantasia",;
"Dirección",;
"Ciudad",;
"Registro",;
"Hora",;
"Usuario"}
aPict := {;
"99999",;
"@!",;
"@R",;
"@!",;
"@!",;
"@!",;
"@!",;
"@!",;
"@D",;
"99:99:99",;
"@!"}
endif
@ 2, 85 BROWSE oBrw DATABASE OF oTab SIZE 1182, 540 STYLE WS_BORDER + WS_VSCROLL + WS_HSCROLL ;
ON SIZE ANCHOR_TOPABS + ANCHOR_LEFTABS + ANCHOR_RIGHTABS + ANCHOR_BOTTOMABS ;
ON RIGHTCLICK{|| ClickDireito(oDlgClientes,oBrw), oDlgClientes:oPopup:Show( oDlgClientes ) };
FONT HFont():Add( 'Courier New', 0, -13, 400,,, ); // ON CLICK{|| oEdit1_pesquisar:show(), oEdit1_pesquisar:SetFocus() };// ON INIT {|| oEdit1_pesquisar:show(), oEdit1_pesquisar:SetFocus() };
ON UPDATE {|| oBrw:REFRESH() }
hwg_SetDlgKey( ThisForm, 0, VK_F12, {|| oEdit1_pesquisar:SetFocus() } )
oBrw:alias := 'CLI'
oBrw:bKeyDown := { |o, key| IF(key == 27, (hwg_EndDialog(oDlgClientes:handle), .F.), .T.) }
//oBrw:oStyleHead := HStyle():New( { 0xffffff, 0xbbbbbb }, 1,, 0.4, X_BLUE )
oBrw:nColumns := LEN(aCamp)
oBrw:freeze := 2
oBrw:lDispHead := .T.
oBrw:lSep3d := .T.
oBrw:lAdjRight := .F.
oBrw:bPosChanged := {||n1 := oBrw:nCurrent}
// Increase the vertical padding in a browse cells
// oBrw:aPadding[2] := oBrw:aPadding[4] := 4
SELECT (oBrw:alias)
ORDSETFOCUS("CLICX_02")
nLast := LASTREC()
dbGoTop()
aContas := CarregarContasClientes() // carrega clientes com contas atrasadas na array
FOR i := 1 TO LEN(aCamp)
// Pegando as informações do campo baseado na posição
cFieldName := FIELDNAME(i) // Nome do campo
nWidth := FIELDLEN(i) // Largura do campo
nDec := FIELDDEC(i) // Casas decimais do campo (se houver)
cType := IF(FIELDTYPE(i) == "N", 'N', 'C') // Tipo do campo (Numérico ou Caractere)
IF VALTYPE(aCamp[i]) == "B"
oBrw:AddColumn( HColumn():New( aCab[i], (aCamp[i]), cType, val(aTam[i]), nDec, .F., 0, 0,, 0, aPict[i] ) )
ELSE
oBrw:AddColumn( HColumn():New( aCab[i], FieldBlock(aCamp[i]), cType, val(aTam[i]), nDec, .F., 0, 0,, 0, aPict[i] ) )
ENDIF
NEXT
BEGIN SEQUENCE
bColorBlock :={|| IIF(ClienteAtrasado(CLI->cc_codcli, aContas),{255, 16777215 ,16777215,255 },{0,16777215,, }) }
RECOVER
bColorBlock :={|| {0,16777215,16777215,0 } }
END SEQUENCE
FOR EACH oColuna IN oBrw:aColumns
oColuna:bColorBlock := bColorBlock
NEXT
// @ 18,535 SAY "Registros : " + ALLTRIM(STR(nLast)) OF oTab SIZE 170,22 TRANSPARENT
/*
@ 260,410 BUTTON oBtn1 CAPTION "&OK " SIZE 80,26 ;
ON CLICK {|| hwg_EndDialog()}
@ 0, 520 PANEL oTbar1 SIZE 600, 26
@ 17,510 SAY oLbl1 CAPTION "Registros :" OF oTbar1 SIZE 70,22
@ 85,500 OWNERBUTTON o_Obtn1 OF oTbar1 SIZE 20,20 ;
BITMAP "imagem\smfirst.bmp";// TRANSPARENT COORDINATES 0,2,0,0 ;
ON CLICK {|| BrowseMove(oBrw, "Home", oEdGoto, "Dbs" ) };
TOOLTIP "Primeiro Registro"
@ 105,500 OWNERBUTTON o_Obtn2 OF oTbar1 SIZE 20,20 ;
BITMAP "imagem\smprev.bmp";// TRANSPARENT COORDINATES 0,2,0,0 ;
ON CLICK {|| BrowseMove(oBrw, "Up", oEdGoto, "Dbs" ) } ;
TOOLTIP "Anterior"
@ 130,500 GET oEdGoto VAR nRec OF oTbar1 SIZE 80,22 ;
MAXLENGTH 09 PICTURE "999999999" ;
STYLE WS_BORDER + ES_LEFT ;
VALID {||GoToRec(oBrw, @nRec, nLast, "Dbs")}
@ 270,502 SAY oLbl2 CAPTION " of " + ALLTRIM(STR(nLast)) OF oTbar1 SIZE 70,22
@ 215,500 OWNERBUTTON o_Obtn3 OF oTbar1 SIZE 20,20 ;
BITMAP "imagem\smnext.bmp";// COORDINATES 0,2,0,0 ;
ON CLICK {|| BrowseMove(oBrw, "Down", oEdGoto, "Dbs" ) } ;
TOOLTIP "Proximo"
@ 235,500 OWNERBUTTON o_Obtn4 OF oTbar1 SIZE 20,20 ;
BITMAP "imagem\smlast.bmp";// COORDINATES 0,2,0,0 ;
ON CLICK {|| BrowseMove(oBrw, "End", oEdGoto, "Dbs" ) } ;
TOOLTIP "Ultimo Registro"
*/
// Exemplo: configurar uma coluna para exibir um total no rodapé
//oBrw:nFootRows := 2 // linha de rodapé
//ON POSCHANGE {|| oBrw:aColumns[2]:footing := LTrim(Str( RecNo(),8))+ "/" +LTrim(Str( Lastrec(),8)) } ;
oBrw:aColumns[1]:footing := []
//oBrw:aColumns[2]:footing := LTrim(Str( RecNo(),8))+ "/" +LTrim(Str( Lastrec(),8))
//oBrw:aColumns[4]:footing := "Total: " + ALLTRIM(STR(nLast)) //OF oTab SIZE 170,22 TRANSPARENT
//oBrw:aColumns[1]:oFont := HFont():Add( '',0,-15,700,,,)
oBrw:Anchor := 15
oBrw:Refresh()
RETURN Nil
//----------------------------------------------------------------------------------------------------
CRIEI ESSA FUNÇÃO DENTRO DO BROWSE (F12) quando pressiono funciona perfeitamente tbm ...
porem se eu usar o mouse pra clicar no GET DE PESQUISA .... sem chances não habilita nem com reza ...
se alguem aí expert no asunto poder me dar uma força .. ficarei muito grato!