Saudações, necessito de um exemplo de uso da classe FwBrowse com query.
Encontrei apenas esta documentação no tdn: https://tdn.totvs.com/display/public/PROT/FwBrowse
Saudações, necessito de um exemplo de uso da classe FwBrowse com query.
Encontrei apenas esta documentação no tdn: https://tdn.totvs.com/display/public/PROT/FwBrowse
Bom dia Marco,
Fiz o exemplo conforme o link e funcionou... segue abaixo:
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWBROWSE.CH"
// u_FwBrwQry()
User Function FwBrwQry()
Local oDlg As Object
Local aColumns As Array
Local nContFlds As Numeric
cAliasTemp := MpSysOpenQuery( "SELECT * FROM " + RetSqlName("SC5") + " WHERE D_E_L_E_T_ = ''" )
DEFINE MSDIALOG oDlg TITLE "Browse com Query" FROM 0,0 TO 600, 800 PIXEL
oBrowse := FWBrowse():New()
oBrowse:SetDataTable( .T. )
oBrowse:SetAlias( cAliasTemp )
oBrowse:SetOwner( oDlg )
oBrowse:SetDescription( "Browse com Query" )
//-------------------------------------------------------------------
// Adiciona as colunas do Browse
//-------------------------------------------------------------------
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
Bom dia Jorge, obrigado pelo exemplo!
Montei minha tela de maneira bem semelhante, e os registros foram exibidos corretamente, de acordo com a query montada. Porém, ao tentar Visualizar/Alterar algum registro, obtive a mensagem Help: ARQVAZIO (...)
Alguém tem ideia como posso resolver? Obrigado!
— Pedro Ferreira 22 de Nov de 2022Olá Pedro, Estou com o mesmo problema que você, e até agora não encontrei solução. Você conseguiu resolver?
— Adir 30 de May de 2023Pedro, acabei de achar a solução Você tem que colocar operação 3 (insert) nas opções. Assim ele não vai validar se tem ou não registros. O problema é que com query o FWBrowse e o FWMBrowse não consegue verificar se tem registros e dá erro de ARQVAZIO. Veja esta pergunta "MVC - MENSAGEM ARQVAZIO" (https://devforum.totvs.com.br/2437-mvc---mensagem-arqvazio) que foi postada aqui no fórum. Ali o Daniel Mendes dá a dica.
— Adir 30 de May de 2023