Páginas filhas
  • FwBrowse

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Fornece um objeto do tipo grid que permite a exibição de dados do tipo array, texto, tabela e query.

 



                 TGrid

 




 

Construtor da classe

.


FWBrowse(): New ( [ oOwner] ) --> oSelf


 


NomeTipoDescriçãoObrigatórioReferência
oOwnerObjetoObjeto proprietário
 

 

 



oSelf
    ()
  • Objeto FWBrowse

oBrowse := FWBrowse():New()                                                                                                                                                                                                    
 

 





 

Ativação da classe.


FWBrowse(): Activate ( [ lFWBrowse] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lFWBrowseLógicoIndica se a chamada foi acionada pela classe FWBROWSE
  

 





oBrowse:Activate()                                                                                                                                                                                                                      

 



Permite adicionar a informacao de um browse relacionado.


FWBrowse(): AddBrwRelation ( < oBrwRel> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
oBrwRelObjetoBrowse que se deseja informar como relacionadoX
 

 

 





Adiciona uma coluna no Browse em tempo de execução.


FWBrowse(): AddColumn ( < aColumn> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
aColumnArray of RecordIndica o array com informações para criação da coluna.X
 

aColumn Estrutura da Coluna

[n][01] Título da coluna
[n][02] Code-Block de carga dos dados
[n][03] Tipo de dados
[n][04] Máscara
[n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita)
[n][06] Tamanho
[n][07] Decimal
[n][08] Indica se permite a edição
[n][09] Code-Block de validação da coluna após a edição
[n][10] Indica se exibe imagem
[n][11] Code-Block de execução do duplo clique
[n][12] Variável a ser utilizada na edição (ReadVar)
[n][13] Code-Block de execução do clique no header
[n][14] Indica se a coluna está deletada
[n][15] Indica se a coluna será exibida nos detalhes do Browse (Somente valido para Browse de Tabela ou Query)
[n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)
[n][17] Id da coluna

[n][18] Indica se a coluna é virtual

 



 

Permite adicionar uma configuração customizada na opção de configuração do Browse.


FWBrowse(): AddCustomConfig ( < cTitle>, < bView>, [ bSave] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cTitleCaracterTítulo a ser exibido na configuração.X
 

bViewBloco de códigoCode-Block de carga da janela de configuraçãoX
 

bSaveBloco de códigoCode-Block de gravação das configurações efetuadas pelo usuário.
   



oBrowse:AddCustomConfig("Filial",{|o| MBrFilialCfg(o,Self) }, { || MBrSaveFilCfg(Self) } )                                                                                                           

 



Permite adicionar um filtro na lista de opções de filtros do Browse. 


FWBrowse(): AddFilter ( < cFilter>, < cExpAdvPL>, [ lNoCheck], [ lSelected], [ cAlias], [ lFilterAsk], [ aFilParser], [ cID] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cFilterCaracterTítulo que será exibido no filtroX
 

cExpAdvPLCaracterExpressão do filtro em formato AdvPL.X
 

lNoCheckLógicoIndica que o filtro não poderá ser marcado/desmarcado.
  


lSelectedLógicoIndica que o filtro deverá ser apresentado como marcado/desmarcado.
 
 


cAliasCaracterIndica que o filtro é de relacionamento entre as tabelas e a expressão AdvPL deve ser informado obrigatoriamente com expressões SQL.
  


lFilterAskLógico
Indica se o filtro pergunta as informações na execução.  
Não suportado

aFilParserArray of Record
Array contendo informações parseadas do filtro.  
Não suportado

cIDCaracterNome do identificador do filtro
  

 




oBrowse:AddFilter(cTitle,xCondition)

 

 

Permite adicionar um linha no Browse.

Sintaxe

FWBrowse(): AddLine ( ) -->


Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )


AddLegend


Permite adicionar legendas no Browse

 

 

Permite adicionar uma coluna com a opção de marca e desmarca

.



Sintaxe

FWBrowse():

AddMarkColumns

AddLegend ( <

bMark>, [ bLDblClick], [ bHeaderClick]

xCondition>, < cColor>, <cTitle>, <cID>, <lFilter>) -->



Parâmetros
 


NomeTipoDescriçãoObrigatórioReferência
bMark
xCondition
Bloco de código
ExpressãoExpressão AdvPL ou Code-Block com a regra
e deverá retornar a imagem referente a marcado/desmarcado.
da legendaX
cColorCaracterCor que identifica a regraX
 

cTitle
bLDblClickBloco de códigoCode-Block com a execução do duplo clique na coluna.  bHeaderClickBloco de códigoCode-Block com a execução do clique no header da coluna.  

 

 

 
CaracterTítulo da legenda, utilizado na janela de visualização das legendas

cIDCaracterId

lFilterLógicoIndica se deve ser exibido filtro da legenda



Exemplos

oBrowse:AddLegend(xCondition,cColor,cTitle)





Permite adicionar um linha no Browse.


FWBrowse(): AddLine ( ) -->



Permite adicionar uma coluna

de status

com a opção de marca e desmarca.


FWBrowse():

AddStatusColumns

AddMarkColumns ( <

bStatus>

bMark>, [ bLDblClick], [ bHeaderClick] ) -->



NomeTipoDescriçãoObrigatórioReferência
bMarkBloco de códigoCode-Block com a regra e deverá retornar a imagem referente a marcado/desmarcado.X
bLDblClickBloco de códigoCode-Block com a execução do duplo clique na coluna.

bHeaderClickBloco de códigoCode-Block com a execução do clique no header da coluna.




Permite adicionar uma coluna de status.


FWBrowse(): AddStatusColumns ( < bStatus>, [ bLDblClick] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bStatusBloco de códigoCode-Block com a regra e deverá retornar a imagem referente ao status.X
 

bLDblClickBloco de códigoCode-Block com a execução do duplo clique na coluna.
  

 

 






 

Retorna o Alias utilizado no Browse.


FWBrowse(): Alias ( ) --> cAlias

cAlias
    (caracter)
  • Alias utilizado no Browse.
 



 

Executa o Code-Block definido no método SetAllOK(bAllOK).


FWBrowse(): AllOk ( ) --> lReturn

lReturn
    (logico)
  • Retorno da execução do Code-Block.

 



 

Retorna a posição atual do registro.


FWBrowse(): At ( ) --> nAt

nAt
    ()
  • Posição atual do registro.

 



Retorna o componente Browse (TGRID).


FWBrowse(): Browse ( ) --> oBrowse

oBrowse
    ()
  • Objeto Browse (TGRID).

 



 

Retorna o nome da classe (FWBROWSE).


FWBrowse(): ClassName ( ) --> cClassName

cClassName
    (caracter)
  • Nome da classe.

 



Executa a limpeza dos filtros estendidos realizados no Browse.



FWBrowse(): CleanExFilter ( ) -->

 



Realizada a limpeza dos filtros utilizados no Browse.


FWBrowse(): CleanFilter ( ) -->

 



Elimina as configurações realizadas no Browse do perfil do usuário.


FWBrowse(): CleanProfile ( ) -->

 



Retorna a coluna posicionada no Browse


FWBrowse(): ColPos ( [ lDeleted] ) --> nColPos


 


NomeTipoDescriçãoObrigatórioReferência
lDeletedLógicoIndica que deve considerar as colunas deletadas.
   



nColPos
    ()
  • Coluna posicionada.
 



 

Retorna o objeto de dados no Browse.


FWBrowse(): Data ( ) --> oData

oData
    ()
  • Retorna o objeto de dados do Browse

 



Retorna se o dados apresentados no Browse é de Array.


FWBrowse(): DataArray ( ) --> lDataArray

lDataArray
    (logico)
  • Indica que o Browse utiliza informações de um array.



 

Retorna se o dados apresentados no Browse é de Query.


FWBrowse(): DataQuery ( ) --> lDataQuery

lDataQuery
    (logico)
  • Indica que o Browse utiliza informações de uma Query.



Retorna se o dados apresentados no Browse é de Tabela.


FWBrowse(): DataTable ( ) --> lDataTable

lDataTable
    (logico)
  • Indica que o Browse utiliza informações de uma Tabela.



Retorna se o dados apresentados no Browse é de Texto.


FWBrowse(): DataText ( ) --> lDataText

lDataText
    (logico)
  • Indica que o Browse utiliza informações de um arquivo Texto.
 



Indica se utiliza filtro para tabelas CODEBASE.


FWBrowse(): DBFFilter ( ) --> lDBFFilter

lDBFFilter
    (logico)
  • Indica se utiliza filtro para tabelas CODEBASE.
 



 

Método de destruição da classe.


FWBrowse(): DeActivate ( [ lFreeChildren] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lFreeChildrenLógicoIndica se é necessário limpar a classe proprietária. (oOwner)




Compatibilização com a MBrowse antiga.


FWBrowse(): Default ( ) -->

 



 

Indica que uma determinada coluna está deletada.


FWBrowse(): DelColumn ( < nColumn> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nColumnNuméricoIndica a coluna que será marcada como deletada.X
 

 

 




 

Permite realizar a exclusão de filtros.


FWBrowse(): DeleteFilter ( [ cID] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cIDCaracterIdentificador do Filtro




 

Executa o Code-Block, definido no método SetDelete(lDelete,bDelete), para deleção de uma linha no Browse.


FWBrowse(): DelLine ( ) -->

 



 

Executa o Code-Block, definido no método SetDelOk(bDelOK), para validar a deleção de uma linha no Browse.


FWBrowse(): DelOk ( ) --> lReturn

lReturn
 



Desabilita a utilização do Browse.


FWBrowse(): Disable ( ) -->

 



 

Desabilita a utilização das configurações do Browse.


FWBrowse(): DisableConfig ( ) -->



 

Desabilita a utilização do filtro no Browse.                                                                                                                  


FWBrowse(): DisableFilter ( ) -->



Desabilita a utilização do localizador de registro no Browse.


FWBrowse(): DisableLocate ( ) -->

Desabilita a impressão das informações disponíveis no Browse.                                                                                        


FWBrowse():

DisableReport

DisableLocate ( ) -->

 



Desabilita a gravação das configurações realizadas no Browse.                                                                                         


FWBrowse(): DisableSaveConfig ( ) -->

 



Desabilita a utilização da pesquisa no Browse.                                                                                                             


FWBrowse(): DisableSeek ( ) -->



 

Habilita a utilização do Browse.


FWBrowse(): Enable ( ) -->                                                                                                                                                                                                             

 



 

Aplica os filtros realizados no Browse.


FWBrowse(): ExecuteFilter ( [ lBrwUpdate] ) -->                                                                                                                                                                                


 


NomeTipoDescriçãoObrigatórioReferência
lBrwUpdateLógicoAtualiza o Browse e posiciona no primeiro registro.
  

 

 




Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )




 

Indica se o Browse está filtrado.                                                                                                                             


FWBrowse(): Filtrate ( ) --> lFiltrate

lFiltrate
    (logico)
  • Indica se o Browse está filtrado.

 

 




Retorna o objeto FWFilter.


FWBrowse(): FWFilter ( ) --> oFWFilter                                                                                                                                                                                            

oFWFilter
    ()
  • Retorna o objeto FWFilter.




 

Retorna a cor de fundo do Browse.


FWBrowse(): GetBackColor ( ) --> nBackColor                                                                                                                                                                                   

nBackColor
    ()
  • Retorna a cor de fundo do Browse



 


 

Retorna a cor alternada do Browse.


FWBrowse(): GetClrAlterRow ( ) --> nClrAlterRow                                                                                                                                                                              

nClrAlterRow
    ()
  • Retorna a cor alternada do Browse

 

 




Retorno um objeto tipo FWBrwColumn da coluna passada.                                                                                              


FWBrowse(): GetColumn ([nCol])

oCol
  • Retorna o objeto da coluna posicionada.




 

Retorna a descrição do Browse.


FWBrowse(): GetDescription ( ) --> cDescription                                                                                                                                                                               

cDescription
    (caracter)
  • Retorna a descrição do Browse
 



 

Retorna o filtro padrão do Browse


FWBrowse(): GetFilterDefault ( ) --> cFilterDefault                                                                                                                                                                            

cFilterDefault
    (caracter)
  • Retorna o filtro padrão do Browse.

 

 




Retorna a cor da fonte do Browse.


FWBrowse(): GetForeColor ( ) --> cForeColor                                                                                                                                                                                   

cForeColor
    (caracter)
  • Retorna a cor da fonte do Browse.




 

Retorna o objeto FWMARKBROWSE utilizado na passagem de parâmetros na execução das rotinas na FWFORMBROWSE;                     


FWBrowse(): GetObjMark ( ) --> oObjMark

oObjMark
    ()
  • Indica o objeto FWMARKBROWSE

 

 




Retorna o identificador do Browse utiliza na gravação das configurações no profile do usuário. Deve ser utilizado quando existir mais de um Browse na rotina.


FWBrowse(): GetProfileID ( ) --> cProfileID

cProfileID
    (caracter)
  • Identificador do Browse

 

 





 

Retorna a Query que esta sendo utilizada no Browse.                                                                                                     


FWBrowse(): GetQuery ( ) --> cQuery

cQuery
    (caracter)
  • Indica a Query para a criação do Browse.
 

 





 

Posiciona no último registro do Browse.                                                                                                                    


FWBrowse(): GoBottom ( [ lCallRefresh] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lCallRefreshLógicoIndica que foi chamado através do método Refresh().
  

 

 

 







 

Posiciona na coluna desejada.                                                                                                                               


FWBrowse(): GoColumn ( [ nColumn] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nColumnNuméricoIndica a coluna que deseja posicionar.
   

 

 








 

Salta uma ou mais linhas para baixo do item posicionado.                                                                                                

FWBrowse(): GoDown ( [ nOffSet], [ lReport] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nOffSetNuméricoIndica a quantidade de linhas a serem saltadas.
  


lReportLógicoIndica se é impressão dos itens do Browse.
  

 

 

 








Salta uma página para baixo do item posicionado.                                                                                                         


FWBrowse(): GoPgDown ( ) -->

Salta uma página para cima do item posicionado.


FWBrowse(): GoPgUp ( ) -->

 

 





 

Posiciona em um determinado registro do Browse.                                                                                                        


FWBrowse(): GoTo ( < nGoto>, [ lRefresh] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nGotoNuméricoIndica o item que deverá ser posicionado.X
 

lRefreshLógicoIndica se deverá forçar a atualização do Browse.
  

 

 

 








Posiciona no primeiro

 

Posiciona no primeiro

registro do Browse.                                                                                                                 


FWBrowse(): GoTop ( [ lForce] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lForceLógicoIndica que deverá forçar o posicionamento.
  

 

 

 








Salta uma ou mais linhas para cima do item posicionado.                                                                                                


FWBrowse(): GoUp ( [ nOffSet] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nOffSetNuméricoIndica a quantidade de linhas a serem saltadas.
  

 

 

 








Permite tornar o Browse invisível                                                                                                                           


FWBrowse(): Hide ( ) -->

 

 





 

Executa o Code-Block, definido no método SetLineOk(bLineOk), para validação da linha posicionada.                                              


FWBrowse(): LineOk ( ) --> lRet

lRet
    (logico)
  • Indica se a linha é válida.

 



 

Executa a atualização das informações de uma determinada linha do Browse.                                                                         


FWBrowse(): LineRefresh ( [ nAt] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nAtNuméricoIndica a linha que será atualizada.
  

 

 

 




Observação:

O parâmetro nAt que refere-se a linha, começa em zero, ele índice é enviado para o método TGrid:SetRowData do binário.





Retorna a quantidade de registros

 

Retorna a quantidade de registros

disponíveis para o browse.                                                                                           


FWBrowse(): LogicLen ( ) --> nLogicLen

nLogicLen
    ()
  • Indica a quantidade de registros disponíveis.Quando o Browse for de tabela ou Query será retornado o último registro para a orderm selecionada.

 

 





Retorna se a selecão de um filtro é obrigatório para a apresentação do browse.                                                                       


FWBrowse(): ObligateFilter ( ) --> lObligateFilter

lObligateFilter
    (logico)
  • Indica se a selecão de um filtro é obrigatório para a apresentação do browse

 

 


Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )



Indica se a opção de configuração do Browse está habilitada.                                                                                           


FWBrowse(): OptionConfig ( ) --> lOptionConfig

lOptionConfig
    (logico)
  • Indica se a opção de configuração está habilitada.

 

 





Indica se a opção de impressão das informações do Browse está habilitada.                                                                           


FWBrowse(): OptionReport ( ) --> lOptionReport

lOptionReport
    (logico)
  • Indica se a opção de impressão está habilitada.

 

 





Executa a atualização das informações no Browse.                                                                                                        


FWBrowse(): Refresh ( [ lGoTop] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lGoTopLógicoIndica que deverá ser posicionado no primeiro registro do Browse.
  

 

 

 








 

Executa a impressão das informações do Browse.                                                                                                        


FWBrowse(): Report ( ) -->

 



Compatibilidade com o Browse antigo.                                                                                                                     


FWBrowse(): Reset ( ) -->

 

 





 

Compatibilidade com o Browse antigo.                                                                                                                     


FWBrowse(): ResetLen ( ) -->

 



 

Indica a Code-Block executado para adicionar linha no browse.                                                                                          


FWBrowse(): SetAddLine ( < bAdd> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bAddBloco de códigoIndica a Code-Block executado para adicionar linha no browse.X
  

 

 







Indica o Code-Block que será executado após a inclusão de uma linha.                                                                                 


FWBrowse(): SetAfterAddLine ( < bAfterAddLine> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bAfterAddLineBloco de códigoCode-Block a ser executado após a inclusão de uma linha.X
 

 

 

 







Indica o alias da tabela que será utilizada no Browse.                                                                                                     


FWBrowse(): SetAlias ( < cAlias> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cAliasCaracterIndica o alias da tabelaX
 

 

 



           SetAllOk

Indica o Code-Block executado para validar todos itens do Browse.                                                                                     


FWBrowse(): SetAllOk ( < bAllOk> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bAllOkBloco de códigoCode-Block para validar todos itens do Browse.X
 

 

 

 







Indica o array utilizado para apresentação dos dados no Browse.                                                                                       


FWBrowse(): SetArray ( < aArray> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
aArrayArray of RecordArray utilizado para apresentação dos dados no Browse.X
 

 

 

 







Indica a cor de fundo do Browse.                                                                                                                           


FWBrowse(): SetBackColor ( < nBackColor> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nBackColorNuméricoCor de fundo do Browse.X
 

 

 

 







Indica a cor de fundo para a linha atual.                        

SetBlkBackColor

 

Indica a cor de fundo para a linha atual.

                                                                                           

                       


FWBrowse(): SetBlkBackColor ( < bBackColor> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bBackColorBloco de códigoCodigo de bloco que retorna a cor de fonte para a linha atual.X
 

 

 




 

Indica a cor de fonte para a linha atual.                                                                                                                     


FWBrowse(): SetBlkColor ( < bBlkColor> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bBlkColorBloco de códigoCodigo de bloco que retorna a cor de fonte para a linha atual.X
 

 

 

 







Indica a Code-Block executado após a mudança de uma linha.                                                                                           


FWBrowse(): SetChange ( < bChange> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bChangeBloco de códigoCode-Block executado após a mudança de uma linha.X
 

 

 

 







Indica a cor alternada do Browse.                                                                                                                            


FWBrowse(): SetClrAlterRow ( < nClrAlterRow> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nClrAlterRowNuméricoIndica a cor de alternada do Browse.X
 

 

 

 







 

Indica que o Browse exibe dados através de um array.                                                                                                   


FWBrowse(): SetDataArray ( ) -->

 

 


Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )



Indica que o Browse exibe

 

Indica que o Browse exibe

dados através de uma Query, porém, a Query cria um arquivo temporário atualizando de acordo com a demanda.  


FWBrowse(): SetDataQuery ( ) -->

 

 





 

Indica que o Browse exibe dados através de uma tabela.                                                                                                 


FWBrowse(): SetDataTable ( ) -->

 

 





Indica que o Browse exibe dados através de um arquivo texto.                                                                                           


FWBrowse(): SetDataText ( ) -->

 

 





Indica que o usuário pode excluir linhas no Browse.                                                                                                      


FWBrowse(): SetDelete ( [ lDelete], [ bDelete] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lDeleteLógicoIndica se o usuário pode excluir linhas no Browse.
 
 


bDeleteBloco de códigoCode-Block executado na exclusão da linha.
  

 

 

 








 

Indica o Code-Block executado para validar a exclusão da linha.                                                                                        


FWBrowse(): SetDelOk ( < bDelOK> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bDelOKBloco de códigoCode-Block executado para validar a exclusão da linha.X
 

 

 

 







 

Indica a descrição do Browse.                                                                                                                               


FWBrowse(): SetDescription ( < cDescription> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cDescriptionCaracterIndica a descrição do BrowseX
 

 

 

 







Indica o Code-Block executado no duplo clique do item no Browse.                                                                                     


FWBrowse(): SetDoubleClick ( < bLDblClick> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bLDblClickBloco de códigoCode-Block executado no duplo clique do item no Browse.X
 

 

 

 








Indica os campos que serão apresentados na edição de filtros.                                                                                        

SetEditCell

 

Indica que será permitido a edição da célula no Browse.

Esse método só é válido para browse de tabela ou de array. Para browse de array é necessário na criação da FWBrwColumn definir as colunas como editáveis através do método SetEdit e definir o readvar da coluna (pelo método SetReadVar)


FWBrowse():

SetEditCell ( [ lEditCell], [ bValidEdit]

SetFieldFilter ( < aFields> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lEditCell
aFields
LógicoIndica se permite a edição de células.  bValidEditBloco de códigoCode-Block executado para validar a edição da célula.  

 

 

Array of RecordArray contendo os campos apresentados na edição de filtros.

O formato para do parâmetroaFields deve ser:

[n][01] Campo
[n][02] Título
[n][03] Tipo de dado
[n][04] Tamanho
[n][05] Decimal
[n][06] Picture

Exemplo:
{ {"CAMPO1", "Campo 1", "C", 10, 0, "@!"},  {"CAMPO2", "Campo 2", "D", 8, 0, ""} }

X



Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )



 

 

Indica os campos que serão apresentados na edição de filtros.                                                                                          

Sintaxe

FWBrowse(): SetFieldFilter ( < aFields> ) -->

 

NomeTipoDescriçãoObrigatórioReferência
aFieldsArray of RecordArray contendo os campos apresentados na edição de filtros.X 

 

 

 

 

Indica o arquivo texto que será utilizado no Browse.                                                                                                      


FWBrowse(): SetFile ( < cFile>, [ cCharSeparator] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cFileCaracterArquivo texto. Ex.: "\Browse\Teste.txt"X
 

cCharSeparatorCaracterIndica o caracter separador dos dados. Ex.: ";" para "dados1;dados2;dados3"
  

 

 






Indica

 

Indica

o limite superior e inferior de um campo respeitando a classificação das informações atual.                                                 


FWBrowse(): SetFilter ( < cCpoFil>, < cTopFun>, [ cBotFun] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cCpoFilCaracterIndica o campo a ser considerado o limite superior e inferior.X
 

cTopFunCaracterIndica o limite superior.X
 

cBotFunArray of RecordIndica o limite inferior.
  

 

 

 





Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )



Indica o filtro padrão do Browse.                                                                                                                            


FWBrowse(): SetFilterDefault ( < cFilterDefault> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cFilterDefaultCaracterIndica o filtro AdvPL para o Browse.X
 

 

 

 




Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )



Força o foco no objeto Browse.                    

SetFilterRelation

 

Indica o relacionamento de filtros para o Browse.

                                                                                                         


FWBrowse():

SetFilterRelation

SetFocus (

< aFilterRelation>, < bChgFields>

) -->



Indica a fonte do Browse.            

 

NomeTipoDescriçãoObrigatórioReferência
aFilterRelationArray of RecordArray contendo os itens do relacionamento.X 
bChgFieldsBloco de códigoIndica o Code-Block executado para trocar os campos para o filtro.X 

 

 

 

                 

SetFocus

 

Força o foco no objeto Browse.

                                                                                                 

                           

  


FWBrowse():

SetFocus

SetFontBrowse ( [ oFont] ) -->

 

 



NomeTipoDescriçãoObrigatórioReferência
oFontObjetoIndica o objeto TFont utilizado no Browse.






Indica a cor da fonte no

Indica a fonte do

Browse.                                                                                                                            

        


FWBrowse():

SetFontBrowse ( [ oFont]

SetForeColor ( < nForeColor> ) -->


 


Nome
Nome
TipoDescriçãoObrigatórioReferência
oFont
nForeColor
Objeto
NuméricoCor da fonte
Indica o objeto TFont utilizado
no Browse.
 
X
 






Indica que o Browse utiliza agrupamento de informações

 

 

 

 

Indica a cor da fonte no Browse

.                                                                                            

                               

  


FWBrowse():

SetForeColor

SetGroup ( <

nForeColor>

bGroup>, [ lOpen] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nForeColor
bGroup
Numérico
Bloco de códigoCode-Block com a regra do agrupamento retornando um valor lógico (.T. = Quebra, .F. = Filho )
Cor da fonte no Browse
.X
 

lOpenLógico

 

 

 

 
Indica que o
Browse utiliza agrupamento de informações
agrupamento será apresentado com os sub-itens visíveis na abertura do Browse.






Indica a imagem que será apresentada ao lado do título da coluna.                                                                                  

         

  


FWBrowse():

SetGroup

SetHeaderImage ( <

bGroup>, [ lOpen]

nColumn>, < cResource> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bGroup
nColumn
Bloco de códigoCode-Block com a regra do agrupamento retornando um valor lógico (.T. = Quebra, .F. = Filho ).X 
NuméricoIndica coluna que será apresentada a imagem.X
cResourceCaracterIndica a imagem que será apresentada ao lado da coluna.X







Indica que o usuário poderá inserir novas linhas no Browse.                        

lOpenLógicoIndica que o agrupamento será apresentado com os sub-itens visíveis na abertura do Browse.  

 

 

 

                 

SetHeaderImage

 

Indica a imagem que será apresentada ao lado do título da coluna.    

                                               

                                


FWBrowse():

SetHeaderImage ( < nColumn>, < cResource>

SetInsert ( [ lInsert] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nColumn
lInsert
Numérico
LógicoIndica
coluna que será apresentada a imagem
que poderá inserir novas linhas.
X cResourceCaracterIndica a imagem que será apresentada ao lado da coluna.X 

 

 

 








Indica os itens que serão disponibilizados para a configuração do duplo clique pelo usuário.

 

Indica o ID para Browses que trabalham com Left Join.                    

                                                       

                     


FWBrowse():

SetIdAlias

SetItemDoubleClick ( <

cIdAlias>

aItemDoubleClick> ) -->


 


Nome
Nome
TipoDescriçãoObrigatórioReferência
cIdAlias
aItemDoubleClick
Caracter
Array of RecordArray contendo as informações que serão apresentadas para configuração do duplo clique
Indica o ID para Browses que trabalham com Left Join
.X
 

 

 

 





Indica os itens que serão disponibilizados para a configuração do clique no header pelo usuário

 

Indica que o usuário poderá inserir novas linhas no Browse

.                                                

                                           

  


FWBrowse():

SetInsert ( [ lInsert]

SetItemHeaderClick ( < aItemHeaderClick> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lInsertLógicoIndica que poderá inserir novas linhas.  

 

 

 

 

aItemHeaderClickArray of RecordIndica os itens que serão disponibilizados para a configuração do
duplo
clique no header pelo usuário.X






Indica a linha do arquivo texto que deverá ser considerado para ínicio da leitura no Browse.                                                      

 

  


FWBrowse():

SetItemDoubleClick

SetLineBegin ( <

aItemDoubleClick>

nLineBegin> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
aItemDoubleClick
nLineBegin
Array of RecordArray contendo as informações que serão apresentadas para configuração do duplo clique
NuméricoIndica a linha inicial do arquivo texto.X
 

 

 







Indica a altura da linha no Browse.                                                                        

SetItemHeaderClick

 

Indica os itens que serão disponibilizados para a configuração do clique no header pelo usuário.

                                               

  


FWBrowse():

SetItemHeaderClick ( < aItemHeaderClick>

SetLineHeight ( [ nHeight] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
aItemHeaderClick
nHeight
Array of Record
NuméricoIndica
os itens que serão disponibilizados para a configuração do clique no header pelo usuário.X 

 

 

 

a altura da linha






Indica o Code-Block executado na troca de linha do Browse.                                    

SetLineBegin

 

Indica a linha do arquivo texto que deverá ser considerado para ínicio da leitura no Browse.

                                                     

  


FWBrowse():

SetLineBegin

SetLineOk ( <

nLineBegin>

bLineOk> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nLineBegin
bLineOk
Numérico
Bloco de códigoCode-Block executado na troca de linha
Indica a linha inicial do arquivo texto
.X
 

 

 

 







Habilita a utilização do localizador de registros no Browse.

 

Indica a altura da linha no Browse.                            

                                                                                             


FWBrowse():

SetLineHeight

SetLocate ( [

nHeight

bAction] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nHeight
bAction
NuméricoIndica a altura da linha  

 

 

 

Bloco de códigoCode-Block executado para localização das informações, caso não seja informado será utilizado o padrão.






Indica que a legenda será representada por números.                          

SetLineOk

 

Indica o Code-Block executado na troca de linha do Browse.

                                                                     

                     

  


FWBrowse():

SetLineOk ( < bLineOk>

SetNumberLegend ( [ lNumber] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bLineOkBloco de códigoCode-Block executado na troca de linha.X 

 

 

 

lNumberLógicoIndica que a legenda será representada por números.






Indica o objeto FWMARKBROWSE utilizado na passagem de parâmetros na execução das rotinas na FWFORMBROWSE.        

 

               

SetLocate

 

Habilita a utilização do localizador de registros no Browse.                    

FWBrowse(): SetObjMark ( < oObjMark> ) -->



NomeTipoDescriçãoObrigatórioReferência
oObjMarkObjetoIndica o objeto FWMARKBROWSEX






Indica se a selecão de um filtro é obrigatório para a apresentação do browse.                                                                          


FWBrowse():

SetLocate

SetObligateFilter ( [

bAction

lObligateFilter], [ lCanCancel] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bAction
lObligateFilter
Bloco de códigoCode-Block executado para localização das informações, caso não seja informado será utilizado o padrão.  
LógicoIndica que o filtro será solicitado na entrada do Browse

lCanCancelLógicoIndica que permite o cancelamento na tela de filtros.



Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )



Indica o container para criação do Browse.      

 

 

 

 

Indica que a legenda será representada por números.

                                                                                                 

  

       


FWBrowse():

SetNumberLegend

SetOwner ( [

lNumber

oOwner] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lNumber
oOwner
Lógico
ObjetoIndica
que a legenda será representada por números.  

 

 

 

 

Indica o objeto FWMARKBROWSE utilizado na passagem de parâmetros na execução das rotinas na FWFORMBROWSE.                        
o container para criação do Browse.





SetEditCell


Indica que será permitido a edição de células no Browse



Sintaxe

FWBrowse():

...

SetEditCell ( <

...

lEditCell>,<bValidEdit> ) -->



Parâmetros

 


NomeTipoDescriçãoObrigatórioReferência

...

lEditCell

...

LógicoIndica

...

se permite a edição de célulasX

...


bValidEdit

 

Bloco de códigoCode-Block executado para validar a edição da célula

...

 

...

       X




Indica o bloco de pré-validação para a edição de celula, o bloco devera retorna .T. para abrir a edição e .F. para nao abrir.

           SetObligateFilter

 

Indica se a selecão de um filtro é obrigatório para a apresentação do browse.                                                                          


FWBrowse():

SetObligateFilter ( [ lObligateFilter], [ lCanCancel]

SetPreEditCell ( < bBlock> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lObligateFilter
bBlock
LógicoIndica que o filtro será solicitado na entrada do Browse  lCanCancelLógicoIndica que permite o cancelamento na tela de filtros.  

 

 

 

Bloco de códigoCode-Block com a funcao de validação. O bloco recebe como parametro o objeto do Browse, a coluna ,e o caracter precionado.X






Define o identificador do Browse utiliza na gravação das configurações no profile do usuário.

 

Indica o container para criação do Browse.                                                                                                                


FWBrowse():

SetOwner ( [ oOwner]

SetProfileID ( < cProfileID> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
oOwner
cProfileID
ObjetoIndica o container
CaracterIdentificador do BrowseX
Informações
titleImportante
  • Sua implementação recomendada como boa pratica;
  • Obrigatória a implementação quando existir mais de um Browse na rotina;
  • Obrigatória a implementação em Browses que façam uso da função GetNextAlias();
  • O tamanho máximo do ID deve ser de 4 (quatro) caracteres.




Indica a Query que será utilizada para criação do Browse.

  

 

 

 

                                                                                               

SetPreEditCell

Indica o bloco de pré-validação para a edição de celula, o bloco devera retorna .T. para abrir a edição e .F. para nao abrir.

Sintaxe

FWBrowse(): SetPreEditCell ( < bBlock> ) -->

 

 


FWBrowse(): SetQuery ( < cQuery> ) -->



NomeTipoDescriçãoObrigatórioReferência
bBlock
cQuery
Bloco de códigoCode-Block com a funcao de validação. O bloco recebe como parametro o objeto do Browse, a coluna ,e o caracter precionado.X 

 

 

 

CaracterIndica a Query para a criação do Browse.X


Observação: A partir da versão Lib 20161010, não deve ser informado o campo R_E_C_N_O_ na query, pois tratasse de um campo exclusivo na criação de arquivos temporários no banco de dados.





 

Define o identificador do Browse utiliza na gravação das configurações no profile do usuário. Deve ser utilizado quando existir mais de um Browse na rotina.

Indica os índices utilizados pela Query na criação do Browse.                          

SetProfileID

                                                                


FWBrowse():

SetProfileID

SetQueryIndex ( <

cProfileID>

aIndex> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cProfileID
aIndex
Caracter
Array of RecordIndica os índices utilizados pela Query na criação
Identificador
do Browse.X
 

 

 

 







Habilita a utilização da pesquisa de registros no

 

Indica a Query que será utilizada para criação do

Browse.                                                                                              

 

  


FWBrowse():

SetQuery ( < cQuery>

SetSeek ( [ bAction], [ aOrder] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
cQuery
bAction
CaracterIndica a Query para a criação do Browse.X 

 

Observação: A partir da versão Lib 20161010, não deve ser informado o campo R_E_C_N_O_ na query, pois tratasse de um campo exclusivo na criação de arquivos temporários no banco de dados.

 

 
 
Bloco de códigoCode-Block executado para a pesquisa de registros, caso não seja informado será utilizado o padrão.

aOrderArray of RecordArray contendo as informações para criação dos detalhes da pesquisa.

Estrutura do array:
               
 SetQueryIndex

 

Indica os índices utilizados pela Query na criação do Browse.
[n,1] Título da pesquisa
                [n,2,n,1] LookUp
                [n,2,n,2] Tipo de dados
               
   
[n,2,n,3] Tamanho
                [n,2,n,4] Decimal
                [n,2,n,5] Título do campo
     
  Sintaxe

FWBrowse(): SetQueryIndex ( < aIndex> ) -->

 
NomeTipoDescriçãoObrigatórioReferênciaaIndexArray of RecordIndica os índices utilizados pela Query na criação do Browse.X
 
 
 
 
  [n,2,n,6] Máscara

               
 SetSeek

 

Habilita a utilização da pesquisa de registros no Browse.
[n,2,n,7] Nome Físico do campo - Opcional - é ajustado no programa
                [n,3] Ordem da pesquisa
               
                                                                  Sintaxe

FWBrowse(): SetSeek ( [ bAction], [ aOrder] ) -->

 

NomeTipoDescriçãoObrigatórioReferência
bActionBloco de códigoCode-Block executado para a pesquisa de registros, caso não seja informado será utilizado o padrão.  
aOrderArray of RecordArray contendo as informações para criação dos detalhes da pesquisa.  

 

 

 

[n,4] Exibe na pesquisa






Indica o Code-Block executado na mudança da ordem de pesquisa.                                                                                    


FWBrowse(): SetSeekChange ( [ bSeekChange] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bSeekChangeBloco de códigoCode-Block executado na mudança da ordem de pesquisa.
  

 

 

 








 

Indica se apresenta somente o limite de informacoes do Browse do tipo Query quando a Query ultrapassar o limite definido.


FWBrowse(): SetShowLimit ( [ lShowLimit] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
lShowLimitLógicoIndica se apresenta somente o limite de informacoes do Browse do tipo Query quando a Query ultrapassar o limite definido.
  

 

 

 








Indica o Code-Block executado ao pressionar as teclas CTRL+Del.                                                                                      


FWBrowse(): SetSuperDel ( < bSuperDel> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bSuperDelBloco de códigoCode-Block executado no CTRL+Del.X
 

 

 

 






Indica o tipo de navegação do Browse                                                                                                                      


FWBrowse(): SetTypeMove ( < nTypeMove> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nTypeMoveNuméricoIndica o tipo de navegação no Browse 0=Linha ou 1=ColunaX
  

 

 







Habilita a utilização do filtro case no Browse.                                                                                                              


FWBrowse(): SetUseCaseFilter ( [ nAlign] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nAlignNuméricoIndica o alinhamento do filtro no Browse.
  

 

 

 








 

Habilita a utilização do filtro no Browse.                                                                                                                    


FWBrowse(): SetUseFilter ( [ nAlign], [ bOnStart] ) -->


 


NomeTipoDescriçãoObrigatórioReferência
nAlignNuméricoIndica o alinhamento do filtro no Browse.
 
 


bOnStartBloco de códigoCode-Block executado na criação do componente de filtro.
  

 

 




Observação

Este método espera que os campos para filtro tenham sido definidos previamente pelo método SetFieldFilter. 
Caso o array de campos para o filtro não tenha sido preenchido e o browse seja baseado em tabela (alias ou temporária), a lista de campos será preenchida lendo as informações através de dbStruct da tabela, exibindo algo parecido com"A1_FILIAL, A1_COD, A1_LOJA"ao invés dos títulos dos campos"Filial, Código, Loja"no momento de criação dos filtros.


Observação

Não recomendamos o uso dos filtros da classe FwBrowse com Browses do tipo Array ( DataArray() == .T. )




 

Define um bloco de códigos para validar se o filtro deve ser executado.                                                                                


FWBrowse(): SetVldExecFilter ( < bVldExecFilter> ) -->


 


NomeTipoDescriçãoObrigatórioReferência
bVldExecFilterBloco de códigoCode-Block para validar se o filtro deve ser executado.X
 

 

 

 

 






  SetUniqueKey(aSetKey)

Define os campos chave de um browse de query ou array para conseguir reposicionar posteriormente em atualizações que forcem a reconstrução do browse. Não será realizado controle de inserção em duplicidade de registros no browse.

Permite tornar o Browse visível.                          

                                                                               

                  



Sintaxe

FWBrowse():

Show

SetUniqueKey(aSetKey) -->



Parâmetros


Nome
 
Tipo
code
Descrição
title
Obrigatório
Exemplo com Define
Referência
linenumbers
aSetKeyArrayLista com os campos definidos como chave.
Quando browse de query espera { “CAMPO1”, “CAMPO2” }, nomes dos campos. Quando browse de array { 1, 2, 3 }, número das colunas do array.
X



Retorno

Lógico, indica se a definição dos campos aconteceu ou não.



  GetUniqueKey()

Retorna a lista com os campos ou colunas definidos como chave para o browse.                                                                                



Sintaxe

FWBrowse(): GetUniqueKey() -->



Retorno

Array, lista com os campos definidos como chave do browse.



  GetUniqueDataKey()


Captura o conteúdo dos campos e colunas informados como chave do browse.                                                                               



Sintaxe

FWBrowse(): SetUniqueKey(aSetKey) -->



Retorno

Array, com lista com os pares de campos e valores identificados. Quando browse por query: { { “CAMPO”, VALOR }, { “CAMPO”, VALOR } }. Quando browse por array: { { NUM_COLUNA, VALOR }, { NUM_COLUNA, VALOR } }.



  GoToDataKey(aDataKey)


Posiciona o browse no registro conforme a chave recebida por parâmetro.                                                                              



Sintaxe

FWBrowse(): SetUniqueKey(aDataKey) -->



Parâmetros


NomeTipoDescriçãoObrigatórioReferência
aDataKeyArrayLista com os pares de campos e valores identificados. Quando browse por query: { { “CAMPO”, VALOR }, { “CAMPO”, VALOR } }. Quando browse por array: { { NUM_COLUNA, VALOR }, { NUM_COLUNA, VALOR } }.X



Retorno

Lógico, indica se foi possível realizar o posicionamento no registro do browse conforme o parâmetro informado.




Permite tornar o Browse visível.                                                                                                                             


FWBrowse(): Show ( ) -->




UpdateBrowse


Realiza a reconstrução do browse para atualizações em tempo de execução. Este método fará com que exista problemas de desempenho nos programas pois o browse é completamente reconstruído.                                                                                                                             



Sintaxe

FWBrowse(): UpdateBrowse(lResetSeek) → NIL


Parâmetros

NomeTipoDescrição
lResetSeekLógicoIndica se deve refazer a construção das ordens de pesquisa no browse.


Retorno

NIL





Aviso

A função POSICIONE, quando utilizada em campos virtuais, não deve utilizar a tabela principal do browse. Caso utilize o POSICIONE ou outra maneira (como User Function) utilizando a tabela principal, atente-se a respeito do desposicionamento da tabela ou demora na execução.




Exemplos


Bloco de código
languagejava
themeRDark
titleExemplo com Define
linenumberstrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWBROWSE.CH"
User Function BrwTable()

Local oBrowse
Local oColumn
Local oDlg

//-------------------------------------------------------------------// Abertura da tabela//-------------------------------------------------------------------
DbSelectArea("SX2")
DbSetOrder(1)

//-------------------------------------------------------------------// Define a janela do Browse//-------------------------------------------------------
DEFINE DIALOG oDlg FROM 0,0 TO 600,800 PIXEL 

//------------------------------------------------------------------- // Define o Browse //----------------------------------------------------------------
DEFINE FWBROWSE oBrowse DATA TABLE ALIAS "SX2" OF oDlg 

//-------------------------------------------------------- // Cria uma coluna de marca/desmarca//----------------------------------------------
ADD MARKCOLUMN oColumn DATA { || If(.T./* Função com a regra*/,'LBOK','LBNO') };
DOUBLECLICK { |oBrowse| /* Função que atualiza a regra*/ };
HEADERCLICK { |oBrowse| /* Função executada no clique do header */ } OF oBrowse 

//-------------------------------------------------------- // Cria uma coluna de status //--------------------------------------------------------
ADD STATUSCOLUMN oColumn DATA { || If(.T./* Função com a regra*/,'BR_VERDE','BR_VERMELHO') };
DOUBLECLICK { |oBrowse| /* Função executada no duplo clique na coluna*/ } OF oBrowse 

//-------------------------------------------------------- // Adiciona legenda no Browse //--------------------------------------------------------
ADD LEGEND DATA 'X2_CHAVE $ "AA1|AA2"' COLOR "GREEN" TITLE "Chave teste 1" OF oBrowse 
ADD LEGEND DATA '!(X2_CHAVE $ "AA1|AA2")' COLOR "RED" TITLE "Chave teste 2" OF oBrowse 

//------------------------------------------------------------------- // Adiciona as colunas do Browse //------------------------------------------
ADD COLUMN oColumn DATA { || X2_CHAVE } TITLE "Chave" SIZE 3 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_ARQUIVO } TITLE "Arquivo" SIZE 10 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_NOME } TITLE DecodeUTF8("Descrição") SIZE 40 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_MODO } TITLE "Modo" SIZE 1 OF oBrowse 

//------------------------------------------------------------------- // Ativação do Browse//---------------------------------------------------------------- 
ACTIVATE FWBROWSE oBrowse

//-------------------------------------------------------------------// Ativação do janela//-------------------------------------------------------------------
ACTIVATE DIALOG oDlg CENTERED

Return
Bloco de código
languagejava
themeRDark
titleExemplo sem Define
linenumberstrue
User Function BrwTable()
 
Local oBrowse
Local oColumn
Local oDlg
 
// Abertura da tabela
DbSelectArea("SX2")
DbSetOrder(1)

//Define a janela do Browse
oDlg = TDialog():New(0, 0, 600, 800,,,,,,,,,,.T.)

// Define o Browse
oBrowse := FWBrowse():New(oDlg)
oBrowse:SetDataTable(.T.)
oBrowse:SetAlias("SX2")

// Cria uma coluna de marca/desmarca
oColumn := oBrowse:AddMarkColumns({||If(.T./*Função de Marca/desmaca*/,'LBOK','LBNO')},{|oBrowse|/*Função de DOUBLECLICK*/},{|oBrowse|/* Função de HEADERCLICK*/})

// Cria uma coluna de status
oColumn := oBrowse:AddStatusColumns({||If(.T./*Função de avaliação de status*/,'BR_VERDE','BR_VERMELHO')},{|oBrowse|/*Função de DOUBLECLICK*/})

// Adiciona legenda no Browse
oBrowse:AddLegend('X2_CHAVE $ "AA1|AA2"',"GREEN","Chave teste 1")
oBrowse:AddLegend('!(X2_CHAVE $ "AA1|AA2")',"RED","Chave teste 2")

// Adiciona as colunas do Browse
oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_CHAVE})
oColumn:SetTitle("Chave")
oColumn:SetSize(3)
oBrowse:SetColumns({oColumn})

oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_ARQUIVO})
oColumn:SetTitle("Arquivo")
oColumn:SetSize(10)
oBrowse:SetColumns({oColumn})

oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_NOME})
oColumn:SetTitle(DecodeUTF8("Descrição"))
oColumn:SetSize(40)
oBrowse:SetColumns({oColumn})

oColumn := FWBrwColumn():New()
oColumn:SetData({||X2_MODO})
oColumn:SetTitle("Modo")
oColumn:SetSize(1)
oBrowse:SetColumns({oColumn})

// Ativação do Browse
oBrowse:Activate()

// Ativação da janela
oDlg:Activate(,,,.T.)

Return
Bloco de código
languagejava
themeRDark
titleExemplo com Array
linenumberstrue
Function u_BrwArray

    Local oDlg        := Nil
    Local oFwBrowse   := Nil
    Local aColumns    := {}
    Local aItems      :={}
    Local nX


    oDlg = TDialog():New(0, 0, 600, 800, "Browse com Array",,,,,,,,,.T.)

    oFwBrowse := FWBrowse():New(oDlg)
    oFwBrowse:SetDataArrayoBrowse()  //Define utilização de array

    aItems := LoadItems()      //Carregar os itens que irão compor o conteudo do grid
    oFwBrowse:SetArray(aItems) //Indica o array utilizado para apresentação dos dados no Browse.

    aColumns := RetColumns( aItems )

    //Cria as colunas do array
    For nX := 1 To Len(aColumns )
        oFwBrowse:AddColumn( aColumns[nX] )
    Next

    oFwBrowse:SetOwner(oDlg)
    oFwBrowse:SetDescription( "Browse com Array" )
    oFwBrowse:Activate()

    oDlg:Activate()

Return

Static Function RetColumns(aItems)
   	Local aColumns := {}

    aAdd(aColumns, {;
                        "Coluna 1",;                     // [n][01] Título da coluna
                        {|oBrw| aItems[oBrw:At(), 1] },; // [n][02] Code-Block de carga dos dados
                        "N",;                            // [n][03] Tipo de dados
                        "@E 9999",;                      // [n][04] Máscara
                        2,;                              // [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita)
                        10,;                             // [n][06] Tamanho
                        0,;                              // [n][07] Decimal
                        .T.,;                            // [n][08] Indica se permite a edição
                        {|| },;                          // [n][09] Code-Block de validação da coluna após a edição
                        .F.,;                            // [n][10] Indica se exibe imagem
                        Nil,;                            // [n][11] Code-Block de execução do duplo clique
                        "__ReadVar",;                    // [n][12] Variável a ser utilizada na edição (ReadVar)
                        {|| AlwaysTrue()},;              // [n][13] Code-Block de execução do clique no header
                        .F.,;                            // [n][14] Indica se a coluna está deletada
                        .F.,;                            // [n][15] Indica se a coluna será exibida nos detalhes do Browse
                        {},;                             // [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)
                        "ID1"})                          // [n][17] Id da coluna

	aAdd(aColumns, {;
                        "Coluna 2",;                    // [n][01] Título da coluna
                        {|oBrw| aItems[oBrw:At(), 2] },; // [n][02] Code-Block de carga dos dados
                        "C",;                            // [n][03] Tipo de dados
                        "@!",;                           // [n][04] Máscara
                        0,;                              // [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita)
                        10,;                             // [n][06] Tamanho
                        0,;                              // [n][07] Decimal
                        .F.,;                            // [n][08] Indica se permite a edição
                        {|| },;                          // [n][09] Code-Block de validação da coluna após a edição
                        .F.,;                            // [n][10] Indica se exibe imagem
                        Nil,;                            // [n][11] Code-Block de execução do duplo clique
                        __ReadVar,;                      // [n][12] Variável a ser utilizada na edição (ReadVar)
                        {|| AlwaysTrue()},;              // [n][13] Code-Block de execução do clique no header
                        .F.,;                            // [n][14] Indica se a coluna está deletada
                        .F.,;                            // [n][15] Indica se a coluna será exibida nos detalhes do Browse
                        {},;                             // [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)
                        "ID2"})                          // [n][17] Id da coluna

	aAdd(aColumns, {;
                        "Coluna 3",;                      // [n][01] Título da coluna
                        {|oBrw| aItems[oBrw:At(), 3 ] },; // [n][02] Code-Block de carga dos dados
                        "C",;                             // [n][03] Tipo de dados
                        "@!",;                            // [n][04] Máscara
                        0,;                               // [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita)
                        10,;                              // [n][06] Tamanho
                        0,;                               // [n][07] Decimal
                        .F.,;                             // [n][08] Indica se permite a edição
                        {|| },;                           // [n][09] Code-Block de validação da coluna após a edição
                        .F.,;                             // [n][10] Indica se exibe imagem
                        Nil,;                             // [n][11] Code-Block de execução do duplo clique
                        "__ReadVar",;                     // [n][12] Variável a ser utilizada na edição (ReadVar)
                        {|| AlwaysTrue()},;               // [n][13] Code-Block de execução do clique no header
                        .F.,;                             // [n][14] Indica se a coluna está deletada
                        .F.,;                             // [n][15] Indica se a coluna será exibida nos detalhes do Browse
                        {},;                              // [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)
                        "ID3"})                           // [n][17] Id da coluna

Return aColumns

Static Function LoadItems()
   Local aLinha     := {}
   Local nX

    For nX := 1 To 20
        aAdd(aLinha,{ nX, StrZero(nX, 5), " Linha : "+ cValToChar(nX)})
    Next
Return aLinha
Bloco de código
languagejava
themeRDark
titleExemplo com Query
linenumberstrue
Function u_FwBrwQry()
    Local oDlg       As Object
    Local aColumns   As Array
    Local nContFlds  As Numeric
    Local cAliasTemp As Character
    Local oBrowse    As Object
    Local aFields    As Array

    cAliasTemp  := MpSysOpenQuery( "SELECT C5_FILIAL, C5_NUM, C5_TIPO, C5_CLIENTE, C5_PEDEXP FROM " + RetSqlName("SC5") + " WHERE D_E_L_E_T_ = ' '" )

    DEFINE MSDIALOG oDlg TITLE "Browse com Query" 
true
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWBROWSE.CH"
User Function BrwTable()

Local oBrowse
Local oColumn
Local oDlg

//-------------------------------------------------------------------// Abertura da tabela//-------------------------------------------------------------------
DbSelectArea("SX2")
DbSetOrder(1)

//-------------------------------------------------------------------// Define a janela do Browse//-------------------------------------------------------
DEFINE DIALOG oDlg FROM 0,0 TO 600, 800 PIXEL

    oBrowse := FWBrowse():New()

//------------------------------------------------------------------- // Define o Browse //----------------------------------------------------------------
DEFINE FWBROWSE oBrowse DATA TABLE ALIAS "SX2" OF oDlg 

//---------------------------------    oBrowse:SetDataTable( .T. )
    oBrowse:SetAlias( cAliasTemp )
    oBrowse:SetOwner( oDlg )
    oBrowse:SetDescription( "Browse com Query" )

    //----------------------- // Cria uma coluna de marca/desmarca//----------------------------------------------
ADD MARKCOLUMN oColumn DATA { || If(.T./* Função com a regra*/,'LBOK','LBNO') };
DOUBLECLICK { |oBrowse| /* Função que atualiza a regra*/ };
HEADERCLICK { |oBrowse| /* Função executada no clique do header */ } OF oBrowse 

//---------------------- Adiciona as colunas do Browse
    //---------------------------------- // Cria uma coluna de status //--------------------------------------------------------
ADD STATUSCOLUMN oColumn DATA { || If(.T./* Função com a regra*/,'BR_VERDE','BR_VERMELHO') };
DOUBLECLICK { |oBrowse| /* Função executada no duplo clique na coluna*/ } OF oBrowse 

//-------------------------------------------------------- // Adiciona legenda no Browse //--------------------------------------------------------
ADD LEGEND DATA 'X2_CHAVE $ "AA1|AA2"' COLOR "GREEN" TITLE "Chave teste 1" OF oBrowse 
ADD LEGEND DATA '!(X2_CHAVE $ "AA1|AA2")' COLOR "RED" TITLE "Chave teste 2" OF oBrowse 

//------------------------------------------------------------------- // Adiciona as colunas do Browse //------------------------------------------
ADD COLUMN oColumn DATA { || X2_CHAVE } TITLE "Chave" SIZE 3 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_ARQUIVO } TITLE "Arquivo" SIZE 10 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_NOME } TITLE DecodeUTF8("Descrição") SIZE 40 OF oBrowse 
ADD COLUMN oColumn DATA { || X2_MODO } TITLE "Modo" SIZE 1 OF oBrowse 

//------------------------------------------------------------------- // Ativação do Browse//---------------------------------------------------------------- 
ACTIVATE FWBROWSE oBrowse


    aColumns    := {}
    aFields     := {}

    aAdd( aFields, "C5_FILIAL" )
    aAdd( aFields, "C5_NUM" )
    aAdd( aFields, "C5_TIPO" )
    aAdd( aFields, "C5_CLIENTE" )
    aAdd( aFields, "C5_PEDEXP"  )


    For nContFlds := 1 To Len( aFields )

        AAdd( aColumns, FWBrwColumn():New() )

        aColumns[Len(aColumns)]:SetData( &("{ || " + aFields[nContFlds] + " }") )
        aColumns[Len(aColumns)]:SetTitle( aFields[nContFlds] )
        aColumns[Len(aColumns)]:SetSize( 15 )
        aColumns[Len(aColumns)]:SetID( aFields[nContFlds] )
    Next nContFlds

    oBrowse:SetColumns(aColumns)
    oBrowse:Activate()

    ACTIVATE MSDIALOG oDlg
Return
Bloco de código
languagejava
themeRDark
titleBrowse de query
linenumberstrue
Function u_FwBrwQry()
    Local oDlg      As Object
    Local aColumns  As Array
    Local nContFlds As Numeric
    Local aFields   As Array
    Local oBrowse   As Object
    Local cAliasQry As Character
	Local aFilter   As Array	

    DEFINE MSDIALOG oDlg TITLE "Browse de Query" FROM 0,0 TO 600, 800 PIXEL

    cAliasQry := GetNextAlias()

    oBrowse := FWBrowse():New()
    oBrowse:SetDataQuery()
    oBrowse:SetAlias(cAliasQry)
    oBrowse:SetQuery("SELECT C5_FILIAL, C5_NUM, C5_TIPO, C5_CLIENTE, C5_PEDEXP FROM " + RetSqlName("SC5") + " WHERE D_E_L_E_T_ = ' '")
    oBrowse:SetOwner(oDlg)
    oBrowse:SetDescription("Browse de Query")

    //-------------------------------------------------------------------
    // Adiciona as 
Ativação
colunas do 
janela
Browse
    //---------------------------------------------------------------
---- ACTIVATE DIALOG oDlg CENTERED Return Bloco de código
titleExemplo sem Define
linenumberstrue
User Function BrwTable()   Local oBrowse Local oColumn Local oDlg   // Abertura da tabela DbSelectArea("SX2") DbSetOrder(1) //Define a janela do Browse oDlg = TDialog():New(0, 0, 600, 800,,,,,,,,,,.T.) // Define o Browse oBrowse := FWBrowse():New(oDlg) oBrowse:SetDataTable(.T.) oBrowse:SetAlias("SX2") // Cria uma coluna de marca/desmarca oColumn := oBrowse:AddMarkColumns({||If(.T./*Função de Marca/desmaca*/,'LBOK','LBNO')},{|oBrowse|/*Função de DOUBLECLICK*/},{|oBrowse|/* Função de HEADERCLICK*/}) // Cria uma coluna de status oColumn := oBrowse:AddStatusColumns({||If(.T./*Função de avaliação de status*/,'BR_VERDE','BR_VERMELHO')},{|oBrowse|/*Função de DOUBLECLICK*/}) // Adiciona legenda no Browse oBrowse:AddLegend('X2_CHAVE $ "AA1|AA2"',"GREEN","Chave teste 1") oBrowse:AddLegend('!(X2_CHAVE $ "AA1|AA2")',"RED","Chave teste 2") // Adiciona as colunas do Browse oColumn := FWBrwColumn():New() oColumn:SetData({||X2_CHAVE}) oColumn:SetTitle("Chave") oColumn:SetSize(3) oBrowse:SetColumns({oColumn}) oColumn := FWBrwColumn():New() oColumn:SetData({||X2_ARQUIVO}) oColumn:SetTitle("Arquivo") oColumn:SetSize(10) oBrowse:SetColumns({oColumn}) oColumn :=
----
    aColumns    := {}
    aFields     := {}
	aFilter		:= {}

    aAdd( aFields, "C5_FILIAL" )
    aAdd( aFields, "C5_NUM" )
    aAdd( aFields, "C5_TIPO" )
    aAdd( aFields, "C5_CLIENTE" )
    aAdd( aFields, "C5_PEDEXP"  )
	
	aAdd(aFilter, { "C5_NUM", "Numero", "C", 006, 0, "@X"}) //"Numero do Pedido"

    For nContFlds := 1 To Len( aFields )

        AAdd( aColumns, FWBrwColumn():New()
oColumn
 )

        aColumns[Len(aColumns)]:SetData( &("{ ||
X2_NOME}) oColumn:SetTitle(DecodeUTF8("Descrição")) oColumn:SetSize(40) oBrowse:SetColumns({oColumn}) oColumn := FWBrwColumn():New() oColumn:SetData({||X2_MODO}) oColumn:SetTitle("Modo") oColumn:SetSize(1) oBrowse:SetColumns({oColumn}) // Ativação do Browse
 " + aFields[nContFlds] + " }") )
        aColumns[Len(aColumns)]:SetTitle( aFields[nContFlds] )
        aColumns[Len(aColumns)]:SetSize( 15 )
        aColumns[Len(aColumns)]:SetID( aFields[nContFlds] )
    Next nContFlds
	
 	oBrowse:SetFieldFilter(aFilter)
    oBrowse:SetColumns(aColumns)
    oBrowse:Activate()

// Ativação da janela oDlg:Activate(,,,.T.)
    ACTIVATE MSDIALOG oDlg
Return



           Abrangência



              Todas as versões

Define os campos chave de um browse de query ou array para conseguir reposicionar posteriormente em atualizações que forcem a reconstrução do browse. Não será realizado controle de inserção em duplicidade de registros no browse.

AddLegend