Oi Gabriel não entendi bem por isso estou enviando um exemplo no qual utilizei o setseek passando o array.
//Bibliotecas
#INCLUDE “TOTVS.CH”
#INCLUDE “TOPCONN.CH”
#INCLUDE “FWMVCDEf.CH”
//Variáveis Estáticas
Static cTitulo := “Filiais”
/*
Programa: XFISR050
Titulo : Função MVC de consulta das filais
Tipo : Consulta
Finalid : Função MVC de consulta das filais
Autor : Dilson Castro - MConsult
Data : 16/06/2023
Solicit : Flavia Soares
Tabelas : SYS_COMPANY
— MANUTENÇÕES -------------------------------------------------------------------------
DATA AUTOR SOLICITANTE-CHAMADO DESCRIÇÃO
*/
User Function XSYSCOMP()
Local lRet as logical
Local aArea as array
Local cQuery as character
Local oBrw as object
Local oTable as object
Local aFields as array
Local cFields as character
Local aIndex as array
Local aSeek as array
Local oDlg as object
Local aCoors as array
Local xCampos as array
Local nI
Local i
Local cTable := “SYS_COMPANY”
Local aCampos := TCStruct( cTable )
lRet := .F.
aArea := GetArea()
aFields := {}
aIndex := {“M0_CODIGO”,“M0_CODFIL”}
aSeek := {{“Código”, {{“LookUp”, “C”, 2, 0, “”,}} , 1, .T. }}
xFields := “M0_CODIGO;M0_CODFIL;M0_FILIAL;M0_NOME;M0_NOMECOM;M0_TEL;M0_CGC;M0_INSC;M0_INSCM;M0_ENDENT;M0_COMPENT;M0_BAIRENT;M0_CIDENT;M0_ESTENT;M0_CEPENT;M0_CODMUN;M0_ENDCOB;M0_COMPCOB;M0_BAIRCOB;M0_CIDCOB;M0_ESTCOB;M0_CEPCOB;M0_FPAS;M0_NATJUR;M0_DTBASE;M0_CNAE;M0_NIRE;M0_DTRE”
xCampos := {“Grupo”,“Filial”,“Descrição”,“Nome”,“Nome Comercial”,“Telefone”,“Cnpj”,“Insc.Estadual”,“Insc.Municipal”,“End.Entrega”,;
“Complem.Entrega”,“Bairro Entrega”,“Cidade Entrega”,“Estado Entrega”,“Cep Entrega”,“Código Município”,“End.Cobrança”,;
“Complem.Cobrança”,“Bairro Cobrança”,“Cidade Cobrança”,“Estado Cobrança”,“Cep Cobrança”,“Cod.FPAS”,“Natureza Jurídica”,;
“Data Base”,“Cnae”,“Nire”,“Data Nire”}
For i:=1 to len(aCampos)
If AllTrim(aCampos[i][1]) $ xFields
aAdd(aFields, {aCampos[i][1], aCampos[i][6], aCampos[i][4], aCampos[i][5]})
EndIf
Next i
oTable := FWTemporaryTable():New()
oTable:setFields(aFields)
oTable:addIndex(“1”, {“M0_CODIGO”,“M0_CODFIL”})
oTable:create()
// Busco todos os campos da tabela temporária e preencho numa variável
cFields := “”
For nI := 1 To Len(aFields)
cFields += aFields[nI,1]
If nI < Len(aFields)
cFields += “,”
EndIf
Next nI
cQuery := “INSERT INTO " + oTable:GetRealName()
cQuery += " (” + cFields + ") "
cQuery += " SELECT " + cFields + " "
cQuery += “FROM SYS_COMPANY SYS "
cQuery += “WHERE SYS.D_E_L_E_T_ = ’ ’ "
// Executo o comando SQL
If (TcSqlExec(cQuery) < 0 .and. !Empty(TcSqlError()))
MsgAlert(“Ocorreu um erro ao executar o comando SQL!” + CRLF + CRLF + TcSqlError(), “Erro ao popular tabela”)
lRet := .F.
// Caso deseja gerar exceção…
// UserException(TCSqlError())
Else
aCoors := FWGetDialogSize()
oDlg = MsDialog():New( aCoors[1], aCoors[2], aCoors[3], aCoors[4], “”,.F., nOR(WS_VISIBLE, WS_POPUP),.T., ,.F. )
oBrw := FWMBrowse():New(oDlg)
oBrw:SetDataTable()
oBrw:SetTemporary(.T.)
oBrw:SetAlias(oTable:getAlias())
oBrw:AddButton( “Fechar”, {|| oDlg:end() } , 2 )
oBrw:SetQueryIndex(aIndex)
oBrw:SetSeek(.T.,aSeek)
oBrw:SetDescription(cTitulo)
For i:=1 to len(aFields)
If AllTrim(aFields[i][1]) $ xFields
oColumn := FWBrwColumn():New()
oColumn:SetData(&( " { ||” + aFields[i][1] + " } " ))
oColumn:SetTitle(xCampos[i])
oColumn:SetSize(aFields[i][4])
oBrw:SetColumns({oColumn})
//ADD COLUMN oColumn DATA &( " { ||” + aFields[i][1] + " } " ) Title xCampos[i] SIZE aFields[i][4] PICTURE “@!” Of oBrw
EndIf
Next i
oBrw:Activate(oDlg)
oDlg:Activate()
oBrw:deActivate()
oBrw:destroy()
FreeObj(oBrw)
oBrw := nil
EndIf
oTable:delete()
FreeObj(oTable)
oTable := nil
RestArea(aArea)
Return lRet