Alguém já utilizou essas duas estruturas em conjunto? Ainda é necessário fazendo replace por CriaTrab?
Alguém já utilizou essas duas estruturas em conjunto? Ainda é necessário fazendo replace por CriaTrab?
Arthur, bom dia.
Com o FwTemporaryTable você já pode criar o índice da sua tabela temporária. Também é possível dar replace nesta tabela temporária. No FwTemporaryTable basta usar a o método AddIndex: oTempTable:AddIndex("01", {"DESCR"} ).
Na documentação tem um exemplo ao final. Vou copiara aqui.
https://tdn.totvs.com/display/framework/FWTemporaryTable
#include 'protheus.ch'
User Function ExFWTemporaryTable()
Local aFields := {}
Local oTempTable
Local nI
Local cAlias := "MEUALIAS"
Local cQuery
//-------------------
//Criação do objeto
//-------------------
oTempTable := FWTemporaryTable():New( cAlias )
//--------------------------
//Monta os campos da tabela
//--------------------------
aadd(aFields,{"DESCR","C",30,0})
aadd(aFields,{"CONTR","N",3,1})
aadd(aFields,{"ALIAS","C",3,0})
oTemptable:SetFields( aFields )
oTempTable:AddIndex("01", {"DESCR"} )
oTempTable:AddIndex("02", {"CONTR", "ALIAS"} )
//------------------
//Criação da tabela
//------------------
oTempTable:Create()
//------------------------------------
//Executa query para leitura da tabela
//------------------------------------
cQuery := "select * from "+ oTempTable:GetRealName()
MPSysOpenQuery( cQuery, 'QRYTMP' )
DbSelectArea('QRYTMP')
while !eof()
for nI := 1 to fcount()
varinfo(fieldname(nI),fieldget(ni))
next
dbskip()
Enddo
//---------------------------------
//Exclui a tabela
//---------------------------------
oTempTable:Delete()
return
Legal, a ideia é nem usar IndRegua nessa caso.
— Arthur Felipe Ruppenthal 24 de Sep de 2019