- 28 Ago 2019 às 16:02
#47456
Alguma alma caridosa que saiba transpor isso no excel, sem usar vb.
Já tentei usando a função mod, mas não estou conseguindo.
O número é composto de até 20 algarismos, no formato NNNNNNN-DD.AAAA.JTR.OOOO, onde o DV está colocado imediatamente após o Número Seqüencial (NNNNNNN). O DV é calculado tomando-se o número do Processo e saltando o próprio DV (se for conhecido), ou seja, tomando-se NNNNNNNAAAAJTROOOO. Calcula-se então 98 menos o resto de (NNNNNNNAAAAJTROOOO x 100 / 97). Este resultado confirma o número do DV, com dois dígitos. A forma de cálculo é conhecida como "Módulo 97, Base 10, ISO 7064".
Em java:<script type="text/javascript">
function procJud(form)
{
procJudNum=(form.procJudNum.value);
if(procJudNum.length>18){alert("Erro. Não existe nº de processo com mais de 18 dígitos (fora o DV).\nIntroduza 18 dígitos, no máximo.");}
procJudNum="00000000000000000" + procJudNum;
procJudNum=procJudNum.slice(procJudNum.length-18);
procDig1=procJudNum.slice(0,1); b1=eval(procDig1); b1=b1*10000000000;
procDig2=procJudNum.slice(1,2); b2=eval(procDig2); b2=b2*1000000000;
procDig3=procJudNum.slice(2,3); b3=eval(procDig3); b3=b3*100000000;
procDig4=procJudNum.slice(3,4); b4=eval(procDig4); b4=b4*10000000;
procDig5=procJudNum.slice(4,5); b5=eval(procDig5); b5=b5*1000000;
procDig6=procJudNum.slice(5,6); b6=eval(procDig6); b6=b6*100000;
procDig7=procJudNum.slice(6,7); b7=eval(procDig7); b7=b7*10000;
procDig8=procJudNum.slice(7,8); b8=eval(procDig8); b8=b8*1000;
procDig9=procJudNum.slice(8,9); b9=eval(procDig9); b9=b9*100;
procDig10=procJudNum.slice(9,10); b10=eval(procDig10); b10=b10*10;
procDig11=procJudNum.slice(10,11); b11=eval(procDig11);
proc1a11=b1+b2+b3+b4+b5+b6+b7+b8+b9+b10+b11;
resto1=proc1a11%97;
procDig12=procJudNum.slice(11,12); b12=eval(procDig12); b12=b12*1000000;
procDig13=procJudNum.slice(12,13); b13=eval(procDig13); b13=b13*100000;
procDig14=procJudNum.slice(13,14); b14=eval(procDig14); b14=b14*10000;
procDig15=procJudNum.slice(14,15); b15=eval(procDig15); b15=b15*1000;
procDig16=procJudNum.slice(15,16); b16=eval(procDig16); b16=b16*100;
procDig17=procJudNum.slice(16,17); b17=eval(procDig17); b17=b17*10;
procDig18=procJudNum.slice(17); b18=eval(procDig18);
proc12a18=b12+b13+b14+b15+b16+b17+b18;
resto2=(resto1*10000000*100+proc12a18*100)%97;
procJudDV=98-resto2;
if(procJudDV<10){procJudDV="0"+procJudDV;}
procJudCompl=b1/10000+b2/10000+b3/10000+b4/10000+b5/10000+b6/10000+b7/10000+"-"+procJudDV+"."+b8/1000+b9/100+b10/10+b11+"."+b12/1000000+"."+b13/100000+b14/10000+"."+b15/1000+b16/100+b17/10+b18;
procJudCompl="000000" + procJudCompl;
procJudCompl=procJudCompl.slice(procJudCompl.length-25);
Fonte: http://ghiorzi.org/DVnew.htm nesse proprio site ele forneceu um arquivo no excel, mas dá erro
Obrigado a quem conseguir
Já tentei usando a função mod, mas não estou conseguindo.
O número é composto de até 20 algarismos, no formato NNNNNNN-DD.AAAA.JTR.OOOO, onde o DV está colocado imediatamente após o Número Seqüencial (NNNNNNN). O DV é calculado tomando-se o número do Processo e saltando o próprio DV (se for conhecido), ou seja, tomando-se NNNNNNNAAAAJTROOOO. Calcula-se então 98 menos o resto de (NNNNNNNAAAAJTROOOO x 100 / 97). Este resultado confirma o número do DV, com dois dígitos. A forma de cálculo é conhecida como "Módulo 97, Base 10, ISO 7064".
Em java:<script type="text/javascript">
function procJud(form)
{
procJudNum=(form.procJudNum.value);
if(procJudNum.length>18){alert("Erro. Não existe nº de processo com mais de 18 dígitos (fora o DV).\nIntroduza 18 dígitos, no máximo.");}
procJudNum="00000000000000000" + procJudNum;
procJudNum=procJudNum.slice(procJudNum.length-18);
procDig1=procJudNum.slice(0,1); b1=eval(procDig1); b1=b1*10000000000;
procDig2=procJudNum.slice(1,2); b2=eval(procDig2); b2=b2*1000000000;
procDig3=procJudNum.slice(2,3); b3=eval(procDig3); b3=b3*100000000;
procDig4=procJudNum.slice(3,4); b4=eval(procDig4); b4=b4*10000000;
procDig5=procJudNum.slice(4,5); b5=eval(procDig5); b5=b5*1000000;
procDig6=procJudNum.slice(5,6); b6=eval(procDig6); b6=b6*100000;
procDig7=procJudNum.slice(6,7); b7=eval(procDig7); b7=b7*10000;
procDig8=procJudNum.slice(7,8); b8=eval(procDig8); b8=b8*1000;
procDig9=procJudNum.slice(8,9); b9=eval(procDig9); b9=b9*100;
procDig10=procJudNum.slice(9,10); b10=eval(procDig10); b10=b10*10;
procDig11=procJudNum.slice(10,11); b11=eval(procDig11);
proc1a11=b1+b2+b3+b4+b5+b6+b7+b8+b9+b10+b11;
resto1=proc1a11%97;
procDig12=procJudNum.slice(11,12); b12=eval(procDig12); b12=b12*1000000;
procDig13=procJudNum.slice(12,13); b13=eval(procDig13); b13=b13*100000;
procDig14=procJudNum.slice(13,14); b14=eval(procDig14); b14=b14*10000;
procDig15=procJudNum.slice(14,15); b15=eval(procDig15); b15=b15*1000;
procDig16=procJudNum.slice(15,16); b16=eval(procDig16); b16=b16*100;
procDig17=procJudNum.slice(16,17); b17=eval(procDig17); b17=b17*10;
procDig18=procJudNum.slice(17); b18=eval(procDig18);
proc12a18=b12+b13+b14+b15+b16+b17+b18;
resto2=(resto1*10000000*100+proc12a18*100)%97;
procJudDV=98-resto2;
if(procJudDV<10){procJudDV="0"+procJudDV;}
procJudCompl=b1/10000+b2/10000+b3/10000+b4/10000+b5/10000+b6/10000+b7/10000+"-"+procJudDV+"."+b8/1000+b9/100+b10/10+b11+"."+b12/1000000+"."+b13/100000+b14/10000+"."+b15/1000+b16/100+b17/10+b18;
procJudCompl="000000" + procJudCompl;
procJudCompl=procJudCompl.slice(procJudCompl.length-25);
Fonte: http://ghiorzi.org/DVnew.htm nesse proprio site ele forneceu um arquivo no excel, mas dá erro
Obrigado a quem conseguir
Você não está autorizado a ver ou baixar esse anexo.
Editado pela última vez por luiseugenio em 28 Ago 2019 às 16:37, em um total de 1 vez.