Bom dia,
Preciso realizar a alteração do FormGridModel da CNB, antes de apresentar a tela ao usuário. Estou utilizando o ponto FORMPRE da rotina MVC. Porem, quando vou setar os valores, percebi que ao utilizar algo que não esteja dentro do contexto, meu for entra em loop, não chegando ao next e assim, gerando um loop infinito.
Alguém poderia me ajudar?
USER FUNCTION CNTA300()
Local aParam := PARAMIXB
Local xRet := .T.
Local oObj := Nil
Local cIdPonto := ''
Local cIdModel := ''
Local nOper := 0
Local cCampo := ''
Local cTipo := ''
Local oPEMcnb := nil
Local k := 0
Local nContador := 0
Local xTexto := ""
Local cTabPlan := ""
Local xProdPlan := ""
Local lAtualizou := .F.
Local nTotItPlan := 0
Local nQtdItPlan := 0
Local nPrcTbPlan := 0
Local aAreaAnt := {}
Local cTpRevisao := ""
If aParam <> NIL
//Pega informações dos parâmetros
oObj := aParam[1]
cIdPonto := aParam[2]
cIdModel := aParam[3]
If cIdPonto == "FORMPRE" // PONTO DE EXECUCAO
if IsInCallStack("CN300REV")
cTpRevisao := CN300RetSt('TIPREV',,,,,.F.)
if aParam[3] == "CNBDETAIL"
if oObj:Length() > 0
nContador := oObj:Length()
cTabPlan := oObj:Getvalue('CNB_TABPRC')
if MsgYesNo('Deseja ajustar os valores de acordo com a tabela ' + cTabPlan + "-" + Posicione("DA0",1,xFilial("DA0")+cTabPlan,"DA0_DESCRI"),'Pergunta')
FOR K := 1 TO nContador
oObj:GoLine(K)
if !oObj:isEmpty()
xProdPlan := oObj:Getvalue('CNB_PRODUT')
nQtdItPlan := oObj:Getvalue('CNB_QUANT')
nPrcTbPlan := Posicione("DA1",1,xFilial("DA1")+cTabPlan+xProdPlan,"DA1_PRCVEN")
nTotItPlan := Round((nQtdItPlan * nPrcTbPlan),2)
oObj:SetValue('CNB_VLUNIT',nPrcTbPlan)
oObj:SetValue('CNB_TOTAL',nTotItPlan)
Endif
NEXT K
Endif
Endif
Endif
Endif
Endif
ENDIF
RETURN xRet