quarta-feira, 24 de novembro de 2010

Dica para refresh da nova versão do TSBrowse

Atenção para quem usava fazer o Refhesh do TSBrowse do modo abaixo:

oBr:SetFocus()
oBr:Reset()
oBr:Refresh(.T.)
oBr:ResetBarPos(.T.)
oBr:BuguP()

Substituam por:

oBr:SetFocus()
oBr:Refresh(.T.)
oBr:ResetVScroll(.T.)

Caso contrário não serão mostradas atualizações em pesquisas.

sexta-feira, 19 de novembro de 2010

Novos Métodos do TSBrowse

Segue abaixo a relação atualizada dos novos métodos da classe TSBrowse 9.0

METHOD AddColumn( oColumn ) Adiciona uma coluna para o Browse, préviamente definido com o método construtor de colunas TSColumn:New(), ou com o comando DEFINE COLUMN oColumn ..

METHOD SetColumn( oColumn, nCol )

METHOD AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, lNoLines, nHAlign, nVAlign )

METHOD BeginPaint() INLINE If( ::lRepaint, Super:BeginPaint(), 0 ) Uso interno, Chamado a partir do método Display().

METHOD BugUp() INLINE ::UpStable() Chama o método UpStable().

METHOD BiClr( uClrOdd, uClrPair )

METHOD Bof() INLINE If( ::bBoF != Nil, Eval( ::bBof ), .F. ) //V90

METHOD ChangeFont( hFont, nColumn, nLevel )

METHOD DbSkipper( nToSkip ) Usado internamente; controla o ponteiro do registro do database.

METHOD Default() Uso interno; ações de inicialização do Browser.

METHOD Del( nItem )

METHOD DeleteRow( lAll )

METHOD DelColumn( nPos )

METHOD Destroy() Uso interno; Destrói o controle Browse.

METHOD Display() Uso interno- Exibe o Browse na primeira vez.

METHOD DrawFooters() INLINE ::DrawHeaders( .T. ) Desenha o Footers.

// MESSAGE DrawIcon METHOD _DrawIcon( nIcon, lFocused )

METHOD DrawIcons()

METHOD DrawLine( xRow ) Pinta a linha ativa ou nRow.

METHOD DrawPressed( nCell, lPressed )

METHOD DrawSelect() Pinta o cursor na linha ativa.

METHOD DrawSuper() Desenha os Super-Headers.

METHOD DrawHeaders( lFooters ) Desenha Headers, Footers, e Super-Headers.

METHOD Edit( uVar, nCell, nKey, nKeyFlags, cPicture, bValid, nClrFore, nClrBack )

METHOD EditExit( nCol, nKey, uVar, bValid, lLostFocus )

METHOD EndPaint() INLINE If( ::lRePaint, Super:EndPaint(), ( ::lRePaint := .T., 0 ) ) Uso interno, Chamado a partir do método Display().

METHOD Eof() INLINE If( ::bEoF != Nil, Eval( ::bEof ), .F. ) //V90

METHOD Excel2( cFile, lActivate, hProgress, cTitle, lSave )

METHOD ExcelOle( cXlsFile, lActivate, hProgress, cTitle, hFont, lSave, bExtern, aColSel, bPrintRow )

METHOD Exchange( nCol1, nCol2 ) INLINE ::SwitchCols( nCol1, nCol2), ::SetFocus() Troca a posição das colunas nCol1 e nCol2.

METHOD ExpLocate( cExp )

METHOD ExpSeek( cExp, lSoft )

METHOD FreezeCol( lNext )

METHOD GetAllColsWidth() //V90

METHOD GetColSizes() INLINE If( ValType( ::aColSizes ) == "A", ::aColSizes, Eval( ::aColSizes ) ) Retorna uma matriz contendo as larguras das colunas em pixels.

METHOD GetColumn( nCol ) Retorna uma referencia ao objeto TSColumn correspondente a nCol.

METHOD GetDlgCode( nLastKey )

METHOD GetRealPos( nRelPos )

METHOD GetTxtRow( nRowPix ) INLINE RowFromPix( ::hWnd, nRowPix, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 ))

METHOD GoBottom() Posiciona o cursor na última linha do Browse, movendo o ponteiro de registros para o último registro do database, ou para o último elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ). É executado quando as teclas Ctrl+End ou Ctrl+PgDn são pressionadas, ou quando arrastando para o fim da barra de rolagem vertical.

METHOD GoDown() Posiciona o cursor uma linha abaixo movendo o ponteiro para o próximo registro no database, ou para o próximo elemento em outros objetos. É executado quando a tecla Down (seta para baixo) é pressionada.

METHOD GoEnd() Posiciona o cursor na última coluna visível na tela.

METHOD GoHome() Posiciona o cursor na primeira coluna visível na tela.

METHOD GoLeft() Move o cursor uma coluna para a esquerda.

METHOD GoNext() Move o cursor para a próxima coluna editável para a direita, ou para a próxima coluna editável da próxima linha.

METHOD GoPos( nNewRow, nNewCol ) Move o cursor para a linha definida em nNewRow e coluna definida em nNewCol.

METHOD GoRight() Move o cursor uma coluna para a direita.

METHOD GotFocus( hCtlLost ) Uso interno, executa ações ao receber o foco no Browse, entre as quais se destaca a avaliação do blóco de código definido em bGotFocus.

METHOD GoTop() Posiciona o cursor na primeira linha do Browse, movendo o ponteiro de registro para primeiro registro no database, ou para o primeiro elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ).

METHOD GoUp() Posiciona o cursor uma linha acima, movendo o ponteiro para o registro anterior do database, ou para elemento anterior de outros objetos.

METHOD HandleEvent( nMsg, nWParam, nLParam )

METHOD HiliteCell( nCol, nColPix ) Posiciona o cursor na coluna definida em nCol. Se usado quando da ativação do Browse, será exibido com o cursor nesta coluna.

METHOD HScroll( nWParam, nLParam )

METHOD HThumbDrag( nNewCol )

// METHOD Init( hDlg ) INLINE ::Initiate( hDlg )

// METHOD Initiate( hDlg ) INLINE Super:Initiate( hDlg ), ::Default()

METHOD InsColumn( nPos, oColumn ) Insere uma coluna (object TSColumn oColumn ) na posição definida em nPos.

METHOD Insert( cItem, nAt )

METHOD AddItem( cItem )

METHOD IsColVisible( nCol )

METHOD IsColVis2( nCol )

METHOD IsEditable( nCol ) INLINE ::lCellBrw .and. ::aColumns[ nCol ]:lEdit .and. ( ::aColumns[ nCol ]:bWhen == Nil .or.Eval(::aColumns[ nCol ]:bWhen, Self ) )

METHOD KeyChar( nKey, nFlags ) Uso interno. Executa ações dependendo da tecla pressionada nKey. Avalia o código de bloco bKeyChar.

METHOD KeyDown( nKey, nFlags ) Uso interno. - Similar a KeyChar(). Avalia o código de bloco bKeyDown.

METHOD KeyUp( nKey, nFlags )

METHOD LButtonDown( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o clique no botão esquerdo do mouse. Avalia o código de bloco bLClick.

METHOD LButtonUp( nRowPix, nColPix, nFlags )

METHOD lCloseArea() INLINE If( ::lIsDbf .and. ! Empty( ::cAlias ), ( ( ::cAlias )->( DbCloseArea() ), ::cAlias := "", .T. ), .F. )

METHOD LDblClick( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o duplo clique no botão esquerdo do mouse. Avalia o código de bloco bLDblClick.

METHOD lEditCol( uVar, nCol, cPicture, bValid, nClrFore, nClrBack ) Executa a edição de dados das células. Você pode usar esse método de seu programa em funções de edição personalizadas. Este método retornará um valor de .T. (True - Verdadeiro) se a edição finalizar normalmente, e .F. (False - Falso) se o usuário cancelar a edição.

METHOD lIgnoreKey( nKey, nFlags )

METHOD LoadFields( lEditable )

METHOD LoadRecordSet() //V90

METHOD LoadRelated( cAlias, lEditable, aNames, aHeaders )

METHOD Look3D( lOnOff, nColumn, nLevel, lPhantom )

METHOD LostFocus( hCtlFocus ) Uso interno. É ativado quando o Browse perde o foco. Avalia o código de bloco bLostFocus.

METHOD lRSeek( uData, nFld, lSoft ) //V90

METHOD MButtonDown( nRow, nCol, nKeyFlags ) Uso interno.- É ativado quando o botão central do mouse é pressionado (em mouses de 3 botões). Avalia o código de bloco bMButtonDown, recebendo os mesmos parametros.

METHOD MouseMove( nRowPix, nColPix, nKeyFlags )

METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos )

METHOD MoveColumn( nColPos, nNewPos ) Muda a posição da coluna dentro do Browse, se a variável ::lMoveCols for .T.

METHOD nAtCol( nColPixel, lActual )

METHOD nAtIcon( nRow, nCol )

METHOD nColCount() INLINE Len( ::aColumns )

METHOD nField( cName ) //V90

METHOD nLogicPos() Retorna a posição lógica para o índice ativo.

METHOD nRowCount() INLINE CountRows( ::hWnd, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 )) Uso interno.- Conta as linhas exibíveis do Browse.

METHOD PageUp( nLines ) Move o cursor e o ponteiro de registros uma página acima. É executado quando é pressionada a tecla PgUp.

METHOD PageDown( nLines ) Move o cursor e o ponteiro de registros uma página abaixo. É executado quando é pressionada a tecla PgDn.

METHOD Paint() Uso interno.- Pinta o Browse. Chamado a partir do método Display().

METHOD PanHome() Move o cursor para a primeita coluna da linha corrente.É nativado quando pressionadas as teclas Shift+LeftArrow.

METHOD PanEnd() Move o cursor para a última coluna da linha corrente. É ativado quando pressionadas as teclas Shift+RightArrow.

METHOD PanLeft() Move o cursor para a primeira coluna visível da linha corrente. É ativado quando a tecla Home é pressionada.

METHOD PanRight() Move o cursor para a última coluna visível da linha corrente. É ativado quando a tecla End é pressionada.

METHOD PostEdit( uTemp, nCol, bValid )

METHOD RButtonDown( nRowPix, nColPix, nFlags ) Uso interno.- Executa açoes relacionadas com o clique no botão direito do mouse. Avali o código de bloco bRClicked. Se o clique é feito na area do cabeçalho (Header), o TSBrowse exibirá um menu PopUp com opções de coluna e movimento de cursor.

METHOD Refresh( lPaint, lRecount ) //V90

METHOD RelPos( nLogicPos )

METHOD Report( cTitle, aCols, lPreview, lMultiple, lLandscape, lFromPos )

METHOD Reset( ) //V90 Move o cursor e o ponteiro de registro para o topo do Browse e executa o método Refresh(.T.)

METHOD ResetSeek()Restaura o valor da variável cSeek para nulo (Null), assim uma nova pesquisa incremental pode ser executada.

METHOD ResetVScroll( lInit ) //V90

METHOD ReSize( nSizeType, nWidth, nHeight )

METHOD TSBrwScroll( nDir ) INLINE TSBrwScroll( ::hWnd, nDir, ::hFont,::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ValType( ::lDrawFooters ) == "L" .and.::lDrawFooters ,::nHeightFoot, 0 ), ::nHeightSuper, ::nHeightSpecHd )

METHOD Seek( nKey ) Este método faz todo o trabalho da pesquisa incremental.

METHOD Set3DText(lOnOff, lRaised, nColumn, nLevel, nClrLight, nClrShadow )

METHOD SetAlign( nColumn, nLevel, nAlign )

METHOD SetAppendMode( lMode ) Ativa a inserção automática após o ultimo registro (Append).

METHOD SetArray( aArray, lGenCols, aHead ) //V90

METHOD SetBtnGet( nColumn, cResName, bAction, nBmpWidth )

METHOD SetColMsg( cMsg, cEditMsg, nCol )

METHOD SetColor( xColor1, xColor2, nColumn )

METHOD SetColSize( nCol, nWidth )

METHOD SetColumns( aData, aHeaders, aColSizes )

METHOD SetDeleteMode( lOnOff, lConfirm, bDelete, bPostDel )

METHOD SetHeaders( nHeight, aCols, aTitles, aAlign , al3DLook, aFonts, aActions )

METHOD SetData( nColumn, bData, aList )

#ifdef _TSBFILTER7_

METHOD SetFilter( cField, uVal1, uVal2 ) //deleted in V90

#endif

METHOD SetFont( hFont )

METHOD SetIndexCols( nCol1, nCol2, nCol3, nCol4, nCol5 )

METHOD SetItems( aItems ) INLINE ::SetArray( aItems, .T. )

METHOD SetDBF( )

METHOD SetOrder( nColumn, cPrefix, lDescend )

METHOD SetRecordSet( oRSet, lEditable ) //V90

METHOD SetSelectMode( lOnOff, bSelected, uBmpSel, nColSel, nAlign )

METHOD SetSpinner( nColumn, lOnOff, bUp, bDown, bMin, bMax )

METHOD ShowSizes()

METHOD Skip( n )

METHOD SortArray( nCol, lDescend )

METHOD SwitchCols( nCol1, nCol2 )

METHOD SyncChild( aoChildBrw, abAction )

METHOD UpAStable()

METHOD UpRStable( nRecNo ) //V90

METHOD UpStable()

METHOD Proper( cString ) Converte o texto cText em iniciais maiúsculas.

METHOD VertLine( nColPixPos, nColInit, nGapp )

METHOD VScroll( nWParam, nLParam )

METHOD Enabled(lEnab) // JP 1.55

METHOD HideColumns( nColumn , lHide) //JP 1.58

METHOD AutoSpec(nCol)

METHOD RefreshARow(xRow) //JP 1.88