tenho 3 pessoas acessando o sistema os 3 estão com a tela de pedidos aberta, nesta tela não existe nenhum pedido lançado, o usuário "A" digita um pedido e salva, automaticamente a grid do TSBROWSE do usuário "B" e "C" é alimentada com o novo registro, se excluir o registro a tela dos 3 usuários volta a ficar em branco tudo sem o usuário mexer uma palha, isso acontece com um sistema feito em HARBOUR 3.2.0 DEV (REV. 18738)
agora em Harbour MiniGUI Extended Edition 2.3.3 - 2014.03.20, isso não acontece, para o registro aparecer tenho que fazer uma nova consulta, se tivesse uns 5 registros no TSBROWSE só aparece se: fizer uma consulta ou descendo com a seta para baixo ate chegar no registro novo.
alguém sabe como resolver este problema , abaixo posto parte do prg
DEFINE TBROWSE CRIATABSBROW AT 100,005 OF CRIATABFORM ALIAS TALIAS WIDTH FWIDTH - 15 ;
HEIGHT FHEIGHT - 160 FONT "Arial" SIZE 08 ;
ON CHANGE { SETPROPERTY( "CRIATABFORM" , "LBREGATU" , "VALUE" , STRZERO( KEYNO(),6 ) + "/" + STRZERO( KEYCOUNT(),6 ) ) } ;
ON DBLCLICK EDIT_INSERT( 2, "CRIATABFORM", "CRIATABSBROW", AFUNC ) ;
CELLED ON HEADCLICK { &CABECALHO. }
f := LEN( COLUNA_FIELDS )
SET( _SET_DELETED, IIF( ALLTRIM( NOME_NOVO_LAYOUTS )==' Layout natural (Ctrl+F6)' .AND. lAdmin,.F.,.T. ) )
FOR W := 1 TO f STEP 1
IF ALLTRIM(NOME_NOVO_LAYOUTS) == ' Layout natural (Ctrl+F6)'
ADD COLUMN TO CRIATABSBROW HEADER COLUNA_TITULO[W] SIZE COLUNA_TAMANHO[W] FOOTER "";
3DLOOK TRUE DATA FieldWBlock( COLUNA_FIELDS[W],Select( TALIAS ) );
ALIGN DT_LEFT , nMakeLong( DT_CENTER, 3 )
ELSE
IF COLUNA_TABELA[W] == 'Calculada'
NUM := W
bMacro:=&( "{ || IIF( " + COLUNA_FIELDS[NUM]+ "," +COLUNA_CONDY[NUM]+ "," +COLUNA_CONDZ[NUM]+")}" )
ADD COLUMN TO CRIATABSBROW HEADER COLUNA_TITULO[W] SIZE COLUNA_TAMANHO[W] FOOTER "";
PICTURE COLUNA_PICTURE[W] 3DLOOK TRUE DATA bMacro ;
ALIGN IIF(COLUNA_TIPO[W] == "C",DT_LEFT , IIF( COLUNA_TIPO[W] == "N", DT_RIGHT , DT_CENTER ) ) , ;
nMakeLong( DT_CENTER, 3 )
ELSE
ADD COLUMN TO CRIATABSBROW HEADER COLUNA_TITULO[W] SIZE COLUNA_TAMANHO[W] FOOTER "";
PICTURE IIF( COLUNA_TIPO[W] == "N", COLUNA_PICTURE[W], "@!" ) ;
3DLOOK TRUE DATA FIELDWBLOCK( COLUNA_FIELDS[W], SELECT( COLUNA_TABELA[W] ) ) ;
ALIGN IIF( COLUNA_TIPO[W] == "C", DT_LEFT , IIF( COLUNA_TIPO[W] == "N", DT_RIGHT , DT_CENTER ) ) , ;
NMAKELONG( DT_CENTER, 3 )
ENDIF
ENDIF
END FOR
CRIATABSBROW:SetColor( { 1,3,4,6 } , { COR_PRETA, COR_PRETA, COR_AZULCLARO , COR_LARANJA } )
CRIATABSBROW:nHeightCell = 20 // altura de celula do browse
CRIATABSBROW:nHeightHead = 30 // altura do texto das colunas
CRIATABSBROW:GODOWN()
CRIATABSBROW:GOUP()
RefreshBrowse( CRIATABSBROW )
CRIATABSBROW:UPSTABLE( )
CRIATABSBROW:lNoResetPos := .t.
CRIATABSBROW:SETFOCUS( .T.)
CRIATABSBROW:DRAWSELECT( )
CRIATABSBROW:lHasChanged := .T.
CRIATABSBROW:Paint()
CRIATABSBROW:ResetVScroll(.F.)
END TBROWSE
*----------------------------------------------------------------------------------------------------------------
FUNCTION REFRESHBROWSE( browse )
LOCAL nRecno := RECNO()
LOCAL nSkip := browse:nRowPos
LOCAL nRowCount := browse:nRowCount
LOCAL nRowPos := 1
LOCAL nPrevRec
DBSKIP( -1 )
nPrevRec := IF( BOF(), 0, RECNO() )
DBGOTO( nRecno )
DO WHILE nSkip > 1
DBSKIP( -1 )
IF BOF()
EXIT
ENDIF
nSkip--
nRowPos++
ENDDO
DO WHILE nRowPos < nRowCount
DBSKIP( -1 )
IF BOF()
EXIT
ENDIF
nRowPos++
ENDDO
browse:lHitTop := .f.
browse:lHitBottom := .f.
browse:nRowPos := nRowPos
browse:nLastPos := nRecno
browse:nPrevRec := nPrevRec
browse:refresh(.t., .t.)
browse:resetVScroll()
dbGoto(nRecno)
RETURN browse
abraços
Amparo