CodeAnalisys Dicionario

Boa tarde!

Alguém sabe qual a correta maneira de validar o trecho abaixo no CodeAnalisys ?

If AsCan(aDataCab, {|x| x == cCpo}) == 0 .and. Empty(SX3->X3_RELACAO)

Não achei nenhuma forma de recuperar na FWSX3Util o X3_RELACAO.

Seria com a OpenSx? , Se sim, alguém tem uma documentação da mesma? Não encontrei no TDN.

Agradeço desde já.

Seria utilizando a OpenSXs mesmo.

Segue o link:

OpenSXS

Exemplo:

OpenSxs(,,,,cEmpAnt,"S_X3","SX3",,.F.)

DbSelectArea("S_X3")

DbSetOrder(1)

Mas após utilizar ela, eu consigo fazer o laço e o dbseek sem problemas?

Sim, apontando pro alias que você criou.

Obrigado deu certo!

Utilizando o OpenSXS ele já carrega os índices também.

Exemplo:


OpenSxs(,,,, cEmpAnt, cSX3Tmp, "SX3", , .F.)

If Select(cSX3Tmp) > 0 
    (cSX3Tmp)->( dbSetOrder( 2 ) )
    For nI := 1 To Len( aStruTit )
        If (cSX3Tmp)->( dbSeek( aStruTit[nI][1] ) ) ;
                .AND. ( (cSX3Tmp)->X3_CAMPO $ 'E2_FILIAL |E2_SALDO  ' ;
                .OR. ( (cSX3Tmp)->X3_BROWSE == 'S' .AND.  X3USO( (cSX3Tmp)->X3_USADO) .AND. (cSX3Tmp)->X3_CONTEXT != 'V' ) ) ;
                .AND. cNivel >= (cSX3Tmp)->X3_NIVEL
            aAdd( aCampCnt, aStruTit[nI][1] )
        EndIf
    Next
EndIf

Obrigado deu certo!

1 curtida

terá que enganar o codeanalisys criando executando uma MARCRO no campo (SX3TRB->&('X3_ARQUIVO')) , existe função que substitui todo o trecho abaixo, mas não testei ainda FILLGETDADOS : https://tdn.totvs.com/display/public/PROT/FillGetDados

OpenSxs(,,,,,"SX3TRB","SX3",,.F.) cTabela := "SZB" nUsado:=0 aHeader:={} aGetSD := {}

If Select("SX3TRB") > 0 dbSelectArea('SX3TRB') SX3TRB->( dbSetOrder( 1 ) ) //ORDENA POR ALIAS SX3TRB->( dbGoTop( ) ) If SX3TRB->( msSeek( cTabela ) ) While SX3TRB->(!Eof()) .AND. SX3TRB->&('X3_ARQUIVO')==cTabela