Duvida no calculo de Incrição Estadual

7 respostas
M

Pessoal, alguem tem algum codigo que faca o calculo da Inscricao Estadual ?? achie um na net, mas estava em c.# e tentei reaproveitar a logica dele, mas esta dando uns erros, vou postar o codigo paara ver se alguem pode me ajudar.
Valew.

public void CalcularIE(){

int Dig1, Dig2, Soma = 0;

int[] Peso1 = { 1,3,4,5,6,7,8,10};  //Calcular o 1o. dígito

int[] Peso2 = {3,2,10,9,8,7,6,5,4,3,2}; //Calcular o 2o. dígito

String ie, FimIE, valor; //Guarda os valores encontrados por nossa função

valor = txt_ie.getText();

//int Peso1 = Integer.parseInt(String);

//int Peso2 = Integer.parseInt(String);
try{
        //Vamos achar o valor do 1o. digito
        for (int inicio = 0; inicio <= 7; inicio++)
            Soma = Soma + ( Integer.parseInt(ie.substring(inicio,1)) * Peso1[inicio]);
        Dig1 = Soma % 11;  //Resto da divisão da soma do 1o. Dígito
        if (Dig1 >= 10)
            Dig1 = 0;
        
        /*faz a junção dos 8 primeiros numeros com o digito encontrado,
         * apartir desse ponto acharemos o segundo digito
         */
        FimIE = ie.substring(0,8) + Dig1.ToString() +  ie.substring(9,2);
        Soma = 0;
        for (int tmp=0; tmp <= 10; tmp++)
            Soma = Soma + ( Integer.parseInt(ie.substring(tmp,1))  * Peso2[tmp]);
        Dig2 = Soma % 11; //Resto da divisão da soma do 2o. Dígito
        if (Dig2 >= 10)
            Dig2 = 0;
        
        //Faz a junção do 2o. digito
        //FimIE = FimIE + Dig2.
        //FimIE = FimIE + Dig2.ToString();

        if (FimIE == ie)
            return true;
        else
            return false;
    }catch(Exception err){

    }
}

Valew
[]s

7 Respostas

_

Olá!

Voce poderia ser mais especifico, e dizer exatamente onde esta o erro. Ai seria mais facil de tentar resolver

Valeu()

M

Ola ! Fica mais facil mesmo falando onde esta o erro.
Bem, o erro que esta aparecendo agora é o seguinte, criei um metodo e quando eu chamo no no action do botao aparece esse erro

No metodo que eu criei eu inicializei uma variavel dentro dele, assim

public void CalcularIE(String ie){
}

Esse é o erro que esta dando, nao abusando, mas pq quando eu uso o void eu nao posso retormar um true ou false, sempre da erro e ainda diz que nao pode

Valew
[]s

T

Porque void quer dizer vazio. Se o tipo de retorno é vazio, então nada pode ser retornado. Se você quer retornar boolean, o tipo de retorno tem que ser boolean e não void.

public boolean CalcularIE(String ie) {
    return true; // OK
}
M

Entendi, valew pela ajuda !

Mas so mais uma coisa, pq quando eu chamo meu metodo dentro do action do botao irá chama-lo ele da erro.

CalcularIE(String ie);

o metodo criado chama a variavel ie e assim sendo eu não tenho que inicializa-la quando eu chamo o metodo ?

[]s :lol:

T

Não entendi nada. Mas se etiver dando erro, poste o erro para podermos ajudá-lo.

Parâmetros são váriaveis locais inicializadas com os valores usados para chamar o método.

M

Foi mal, escrevi algumas coisas erradas, mas o que eu quero dizer é o seguinte, criei meu metodo e quando eu chamo pelo botao. Vou postar:

private void btCalcularActionPerformed(java.awt.event.ActionEvent evt) {
       CalcularIE(ie);
}

Eis o erro

imagino que tenho que inicializar a variavel, mas não lembro como faco de String para inteiro

Valew pela ajuda.
[]s

T

O que está ocorrendo é que você está tentando utilizar a variável ie sem que um valor lhe tenha sido atribuído. De onde vem esse String que você passa para o método CalcularIE? Se vem de um JTextField você poderia chamar:

CalcularIE(meuTextField.getText());

Uma observação: identificadores com inicial maiúscula são usados apenas para classes. Isso é apenas uma convenção, mas é universalmente aceita e respeitada.

Criado 8 de dezembro de 2004
Ultima resposta 14 de dez. de 2004
Respostas 7
Participantes 3