Jump to content
Fivewin Brasil

Erro de seleção na xBrowse (RESOLVIDO)


alex2002

Recommended Posts

Olá galera.

Estou tendo um problema com a xBrowse. Ela a princípio mostra a tela legal, porém ao clicar uma vez, em algumas linhas, ele posiciona o focus em registro diferente (coisa mais doida).

O código está assim:

///

DEFINE DIALOG oDlg RESOURCE 'SELECIONAAGENCIA' TITLE 'Usuário: '+oVs:UsCodOper+' '+oVs:UsNomeOper
oDlg:lHelpIcon := .f.
redefine xBrowse oLbx fields TmpAg->ag_codigo, TmpAg->ag_sigla, TmpAg->ag_cidade, TmpAg->ag_uf ;
ALIAS 'TmpAg' ID 601 OF oDlg FIELDSIZES 80, 120, 170, 80 ;
HEADERS 'Agência','Sigla','Cidade','UF' COLORS CLR_BLUE,CLR_WHITE UPDATE
oLbx:blDblClick := {|| (lSair := .t., nOption := 1, oDlg:end() ) }
oLbx:bKeyDown := {|nK| if( nK != VK_RETURN, , (lSair := .t., nOption := 1, oDlg:end() ))}
redefine buttonBMP oBtn01 bitmap "ok16" ID 101 of odlg TEXTRIGHT action( lSair := .t., nOption := 1, oDlg:end() ) TOOLTIP 'Inicia o Trabalho com a Agencia Selecionada'
redefine buttonBMP oBtn10 bitmap "sai16" ID 109 of odlg TEXTRIGHT action( lSair := .t., nOption := 2, oDlg:end() ) TOOLTIP 'Volta ao menu principal' CANCEL
ACTIVATE DIALOG oDlg CENTERED valid lSair
////
Coloquei uma tela anexo para vcs verem o que acontece.
O estranho é que com o Duplo Clique funciona legal.
Eu nem tinha percebido isso, mas o cliente me mostrou e eu fiquei assustado.
Alguém tem a solução?
Um abraço,

post-143-0-75172500-1418832725_thumb.jpg

Link to comment
Share on other sites

Veja este exemplo de TESTXBR3.PRG



static function RddBrwSelColsWin

local oWnd, oBrw, oCol, cAlias := cGetNewAlias( "CUST" )
local oBrush, n

cFunc := ProcName( 0 )

USE CUSTOMER NEW ALIAS (cAlias) SHARED VIA "DBFCDX"
SET ORDER TO TAG STATE
GO TOP

DEFINE BRUSH oBrush RESOURCE "STONE"
DEFINE WINDOW ownd MDICHILD OF WndMain() TITLE "RDD - Selected Cols"

@ 0,0 XBROWSE oBrw ;
COLUMNS "State", "City", "First", "Married", "HireDate", "Age", "Salary", "Last", "date()" ;
JUSTIFY .f., AL_CENTER, .t. ;
OF ownd ;
ALIAS cAlias AUTOSORT FASTEDIT FOOTERS LINES CELL

WITH OBJECT oBrw:Salary
:nFooterType := AGGR_AVERAGE
:bLClickFooter := { |r,c,f,o| FooterAggrClick( r, c, f, o ) }
END

AEval( oBrw:aCols, { |o| o:cToolTip := { 'Column :' + CRLF + o:cHeader, 'ToolTip' } } )

WITH OBJECT oBrw
:nEditTypes := EDIT_GET
:Married:SetCheck( , .t. )
:HireDate:cEditPicture := 'dd mmm yyyy'
:bClrRowFocus := { || { CLR_BLACK, RGB(185,220,255) } }
:nMarqueeStyle := MARQSTYLE_HIGHLROWMS
:bPopUp := { |o| ColMenu( o ) }
:lFormulaEdit := .t.
:MakeTotals()
:CreateFromCode()
END

oWnd:oClient := oBrw

BtnBar( oBrw)
SET MESSAGE OF oWnd TO "RDD Selected Cols" 2007

oWnd:bPostEnd := { || ( cAlias )->( DBCLOSEAREA() ) }

ACTIVATE WINDOW oWnd ON INIT oBrw:SetFocus()

return nil


abs


Link to comment
Share on other sites

Fala Kapi.

Então, olha só nos exemplos que vc enviou não fala sobre este problema.

A questão é que o Browse apresenta legal. O problema é na seleção, se clico em uma linha ele foca em outra. Com o duplo clique funciona. Se o cara não selecionar por um clique fica tudo numa boa. Mas dai está errado.

Até vi a questão do SetRDD porque uso a SQLLIB mas não funcionou.

Eu estou achando isso a coisa mais maluca do mundo.

Link to comment
Share on other sites

  • 2 months later...

Depois de muito lutar com xBrowse desta forma não tive mais problema nenhum em trocar de versões.

Tente desta maneira quem para vc tb resolva.

 
@ 00,00 XBROWSE oLbx SIZE 000,000 PIXEL OF oDlg ALIAS "TmpAg" AUTOSORT LINES
ADD COLUMN TO XBROWSE oLbx DATA ag_codigo HEADER 'Agência' SIZE 80
ADD COLUMN TO XBROWSE oLbx DATA ag_sigla HEADER 'Sigla' SIZE 120
ADD COLUMN TO XBROWSE oLbx DATA ag_cidade HEADER 'Cidade' SIZE 170
ADD COLUMN TO XBROWSE oLbx DATA ag_uf HEADER 'UF' SIZE 80
 
         oLbx:nMarqueeStyle := MARQSTYLE_HIGHLROW
oLbx:lAllowColSwapping := .F. // Não Move a Coluna
oLbx:lAllowRowSizing   := .F. // Não Altera o Tamanho da Linha
oLbx:lAllowColHiding   := .F. // Não Mostra o Menu
 
oLbx:blDblClick    := {|| (lSair := .t., nOption := 1, oDlg:end() ) }
         oLbx:bKeyDown      := {|nK| if( nK != VK_RETURN, , (lSair := .t., nOption := 1, oDlg:end() ))}
 
oLbx:CreateFromCode()
 
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...