Estou utilizando essa função para inserir uma linha na tabela SNG. Porém ela é criada em branco mesmo o array tendo os valores necessarios para inserção. Alguem já teve esse problema?
static function ClonaSNG(cDest, oSay)
local nY := 0
local aCampos := {}
DbSelectArea("SNG")
DbSetOrder(1)
// Adiciona no array
aAdd(aCampos, {"NG_FILIAL" , SubStr(cDest,1,3)})
for nY := 1 to SNG->(fCount())
if X3Uso(GetSX3Cache(SNG->(FieldName(nY)), "X3_USADO"))
if Alltrim(SNG->(FieldName(nY))) <> "NG_FILIAL"
aAdd(aCampos, {SNG->(FieldName(nY)), SNG->&(FieldName(nY))})
endif
endif
next nY
// Aplica o array
if len(aCampos) > 0
Begin Transaction
RecLock("SNG", .T.)
for nY := 1 to Len(aCampos)
SNG->(aCampos[nY][1]) := (aCampos[nY][2])
ProcessMessages()
next nY
SNG->(MsUnlock())
oSay:SetText("Clonando "+SNG->NG_GRUPO+" para a empresa: " + cDest)
End Transaction
endif
return nil
Se o problema for loop dentro do reclock, alguem saberia uma maneira melhor de ser feito?
— Thiago Barros 02 de Aug de 2024