× Linguagem de Programação ADVPL

Perguntas Quebrar IF em linhas

Mais
10 anos 5 meses atrás #22937 por Tashima
Quebrar IF em linhas foi criado por Tashima
Olá pessoal, alguém poderia me orientar como "quebrar" esse IF em várias linhas e não em uma só?
Segue:

IF(EMPTY(IF(EMPTY(SE2->E2_CO),FORMULA("P41"),SE2->E2_CO)),0,IF(INCLUI.AND.!SE2->E2_TIPO$"NDF/PA" .AND.SE2->E2_RATEIO="N",FORMULA('P11'),0))

Onde:

Fórmula P41 = POSICIONE("CT1",1,XFILIAL("CT1")+SE2->E2_CCTB,"CT1_UPCO")
Fórmula P11 = SE2->E2_VALOR+SE2->E2_IRRF+SE2->E2_ISS+SE2->E2_INSS+SE2->E2_COFINS+SE2->E2_PIS+SE2->E2_CSLL

Razão esta que necessito compreender primeiro esse IF e acredito que quebrando-o fique mais claro.

Obrigado!

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #22943 por dexter
Respondido por dexter no tópico Quebrar IF em linhas
É uma das coisas antigas de programação, isso tem o nome de
código obstrutivo eu grilo com esse advpl.

Veja como pode ficar bem mais fácil o entendimento do código
apenas usando uma identação, ta faltando no fórum também um ( SyntaxHighlighter ) :whistle: <<----

:side: :side: :side: :side: :side: :side: :side: :side: :side: :side: :side:




Ou então vejamos acho que esta certo desse jeito aqui.

:sick: :woohoo: :pinch: :ohmy: :( :huh: :silly:
Local PrimeiroIF 
Local SegundoIF
Local Resultado 


IF( EMPTY( SE2->E2_CO ) )
   PrimeiroIF := FP41
ELSE
   PrimeiroIF := SE2->E2_CO
ENDIF

 
 IF( INCLUI .AND. !SE2->E2_TIPO $"NDF/PA" .AND. SE2->E2_RATEIO = "N" )
    SegundoIF := P11
 ELSE
    SegundoIF := 0
 ENDIF
 
// talvez não seja necessário
 IF( PrimeiroIF  ) 
     Resultado := 0
Else
     Resultado := SegundoIF
 ENDIF


Testa ai pra ver se funciona! :woohoo: :woohoo:

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 5 meses atrás #22969 por Tashima
Respondido por Tashima no tópico Quebrar IF em linhas
Muito bom meu amigo, obrigado!!

Abraço.

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.125 segundos
Joomla templates by a4joomla