BookmarkSubscribeRSS Feed
pkusniaruk
SAS Employee

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;
98 REPLIES 98
brunocury
Calcite | Level 5
&
ICMS_SP
;
Fabio_Monzane
Calcite | Level 5
PUT deve ser assim

%PUT A alíquota de &IMPOSTO em &UF é de &ICMS_SP;
juanluiz
Calcite | Level 5

%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;

MMascarenhas82
Fluorite | Level 6
&IMPOSTO_&UF; Não pode ser utilizado o _ para unir as variáveis!
AltairSouza
Calcite | Level 5

A alíquota de Importo em SP  é 0,020

nevelua
Fluorite | Level 6

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.;

 

rod_ortega85
SAS Employee
%PUT A alíquota de &IMPOSTO em &UF é de &&&IMPOSTO._&UF.;
karina5
Fluorite | Level 6

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

 

Denilson
Fluorite | Level 6

&IMPOSTO_&UF; Não pode ser utilizado o _ para unir as variáveis! Faltou unir "."

crisceia
Calcite | Level 5
%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;
karina5
Fluorite | Level 6

Obrigada! Ficou faltando o &&. Corrigido.

msantana
Fluorite | Level 6
%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;

log:
%PUT A alíquota de &IMPOSTO em &UF é de &ICMS_SP;
Andressa3
Calcite | Level 5

A declaração da macro seria &IMPOSTO_.&UF 

bymark
Calcite | Level 5
Basta alterar a variável no ultimo &
Como o modo abaixo:

%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;