Olá!
Fiz um programa SAS para testar um pouco do que foi apresentado no Webinar de programação avançada, mas não estou conseguindo chegar ao resultado que espero!
Criei algumas macro variáveis e estou tentando usar uma referência indireta para pegar o valor da alíquota de impostos por estado. Como resultado da declaração “%PUT A alíquota de &IMPOSTO em &UF é de &IMPOSTO_&UF;” eu esperava visualizar na Log a mensagem “A alíquota de ICMS em SP é de 0.020”, mas isso não está acontecendo.
O que será que estou fazendo de errado?
%LET ICMS_SP = 0.020; %LET ICMS_RJ = 0.025; %LET ISS_SP = 0.030; %LET ISS_RJ = 0.028; %LET UF = SP; %LET IMPOSTO = ICMS; %PUT A alíquota de &IMPOSTO em &UF é de &IMPOSTO_&UF;
&
ICMS_SP
;
%LET ICMS_SP = 0.020;
%LET ICMS_RJ = 0.025;
%LET ISS_SP = 0.030;
%LET ISS_RJ = 0.028;
%LET UF = SP;
%LET IMPOSTO = ICMS;
%PUT A alíquota de &IMPOSTO em &UF é de &ICMS_SP;
A alíquota de Importo em SP é 0,020
A resposta é:
%LET ICMS_SP = 0.020;
%LET ICMS_RJ = 0.025;
%LET ISS_SP = 0.030;
%LET ISS_RJ = 0.028;
%LET UF = SP;
%LET IMPOSTO = ICMS;
%PUT A alíquota de &IMPOSTO. em &UF. é de &&&IMPOSTO._&UF.;
Olá!
Na linha do %PUT faltou um "." entre as macro variáveis para indicar o fim da macro variável IMPOSTO, bem como "&&" antes da macro variável para fazer referência à macro variável &IMPOSTO_SP, como no exemplo:
&&&IMPOSTO._&UF
&IMPOSTO_&UF; Não pode ser utilizado o _ para unir as variáveis! Faltou unir "."
Obrigada! Ficou faltando o &&. Corrigido.
A declaração da macro seria &IMPOSTO_.&UF
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!