preenchimentro de cheque
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Ter, 24 Jun 2008 11:29 am
- Localização: Rio de janeiro
quetro preencher por extenso um cheque no valor de 3.844,84
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Fabiana, boa tarde.
Na verdade, teria que ser desenvolvida uma função que retorna esses valores dinamicamente.
Talvez alguém aqui no fórum tenha, pra lhe ajudar.
Caso contrário, tento procurar ou desenvolver algo e posto aqui pra vocês.
Na verdade, teria que ser desenvolvida uma função que retorna esses valores dinamicamente.
Talvez alguém aqui no fórum tenha, pra lhe ajudar.
Caso contrário, tento procurar ou desenvolver algo e posto aqui pra vocês.
-
- Rank: Analista Júnior
- Mensagens: 88
- Registrado em: Sex, 18 Ago 2006 11:13 am
- Localização: São Paulo - SP
Bertosro
MSN / TALK - roberto.fernandes@gmail.com
MSN / TALK - roberto.fernandes@gmail.com
1 - Pegue o Cheque;
2 - Abra o talão;
3 - Selecione a Folha que deseja Usar;
4 - Preencha o Cheque por extenso como deseja;
Espero ter ajudado.
2 - Abra o talão;
3 - Selecione a Folha que deseja Usar;
4 - Preencha o Cheque por extenso como deseja;
Espero ter ajudado.
- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP
São Paulo/SP
Puts!
achei essa aqui no banco da empresa, roda ela no seu banco e veja se serve:
no teu caso, pra funcionar eu tive que passar o valor dessa forma: 3844.84 (sem a vírgula)

achei essa aqui no banco da empresa, roda ela no seu banco e veja se serve:
CREATE OR REPLACE FUNCTION extenso( pn_numero NUMBER ,
pc_moeda VARCHAR2 ,
pc_moedas VARCHAR2 ,
pc_centavo VARCHAR2 ,
pc_centavos VARCHAR2 ) RETURN VARCHAR2 IS
/* Exemplo de chamada:
x := extenso(111.25, 'Real', 'Reais', 'Centavo', 'Centavos');
*/
vn_numero NUMBER;
você_moeda VARCHAR2( 0300 );
você_moedas VARCHAR2( 0300 );
você_centavo VARCHAR2( 0300 );
você_centavos VARCHAR2( 0300 );
você_ret VARCHAR2( 10000 );
você_numero VARCHAR2( 0300 );
você_status1 VARCHAR2( 001 );
você_status2 VARCHAR2( 001 );
vn_i NUMBER;
você_extenso VARCHAR2( 0300 );
você_aux VARCHAR2( 0300 );
vn_dezena NUMBER;
vn_unidade NUMBER;
vn_unidade1 NUMBER;
você_mil VARCHAR2( 010 ) := 'Mil ' ;
você_milhao VARCHAR2( 010 ) := 'Milh?o ' ;
você_milhoes VARCHAR2( 010 ) := 'Milh?es ';
você_bilhao VARCHAR2( 010 ) := 'Bilh?o ' ;
você_bilhoes VARCHAR2( 010 ) := 'Bilh?es ';
TYPE Taap IS TABLE OF VARCHAR2(0200) INDEX BY BINARY_INTEGER;
aap Taap;
TYPE Tatexto IS TABLE OF VARCHAR2(5000) INDEX BY BINARY_INTEGER;
atexto Tatexto;
TYPE Tvc_n IS TABLE OF VARCHAR2(05000) INDEX BY BINARY_INTEGER;
você_n Tvc_n;
BEGIN
aap(1) := NULL;
aap(2) := NULL;
aap(3) := NULL;
aap(4) := NULL;
aap(5) := NULL;
atexto(1) := NULL;
atexto(2) := NULL;
atexto(3) := NULL;
atexto(4) := NULL;
atexto(5) := NULL;
você_n(01) := 'Um ';
você_n(02) := 'Dois ';
você_n(03) := 'Tres ';
você_n(04) := 'Quatro ';
você_n(05) := 'Cinco ';
você_n(06) := 'Seis ';
você_n(07) := 'Sete ';
você_n(08) := 'Oito ';
você_n(09) := 'Nove ';
você_n(00) := ' ';
você_n(10) := 'Dez ';
você_n(11) := 'Onze ';
você_n(12) := 'Doze ';
você_n(13) := 'Treze ';
você_n(14) := 'Quatorze ';
você_n(15) := 'Quinze ';
você_n(16) := 'Dezesseis ';
você_n(17) := 'Dezessete ';
você_n(18) := 'Dezoito ';
você_n(19) := 'Dezenove ';
você_n(20) := 'Vinte ';
você_n(30) := 'Trinta ';
você_n(40) := 'Quarenta ';
você_n(50) := 'Cinquenta ';
você_n(60) := 'Sessenta ';
você_n(70) := 'Setenta ';
você_n(80) := 'Oitenta ';
você_n(90) := 'Noventa ';
você_n(000) := ' ';
você_n(100) := 'Cento ';
você_n(200) := 'Duzentos ';
você_n(300) := 'Trezentos ';
você_n(400) := 'Quatrocentos ';
você_n(500) := 'Quinhentos ';
você_n(600) := 'Seiscentos ';
você_n(700) := 'Setecentos ';
você_n(800) := 'Oitocentos ';
você_n(900) := 'Novecentos ';
vn_numero := pn_numero ;
você_moeda := pc_moeda ;
você_moedas := pc_moedas ;
você_centavo := pc_centavo ;
você_centavos := pc_centavos;
IF você_moeda IS NULL THEN
você_moeda := 'real ';
ELSIF pc_moeda = '#' THEN
você_moeda := NULL;
ELSE
IF SUBSTR( você_moeda,NVL( LENGTH( você_moeda ),0 ),1 ) <> ' ' THEN
você_moeda := você_moeda||' ';
END IF;
END IF;
IF você_moedas IS NULL THEN
você_moedas := 'reais ';
ELSIF pc_moedas = '#' THEN
você_moedas := NULL;
ELSE
IF SUBSTR( você_moedas,NVL( LENGTH( você_moedas ),0 ),1 ) <> ' ' THEN
você_moedas := você_moedas||' ';
END IF;
END IF;
IF você_centavo IS NULL THEN
você_centavo := 'centavo ';
ELSIF pc_centavo = '#' THEN
você_centavo := NULL;
ELSE
IF SUBSTR( você_centavo,NVL( LENGTH( você_centavo ),0 ),1 ) <> ' ' THEN
você_centavo := você_centavo||' ';
END IF;
END IF;
IF você_centavos IS NULL THEN
você_centavos := 'centavos ';
ELSIF pc_centavos = '#' THEN
você_centavos := NULL;
ELSE
IF SUBSTR( você_centavos,NVL( LENGTH( você_centavos ),0 ),1 ) <> ' ' THEN
você_centavos := você_centavos||' ';
END IF;
END IF;
IF vn_numero IS NULL OR vn_numero = 0 THEN
você_ret := 'Zero '||você_moeda;
RETURN LTRIM( RTRIM( você_ret ) );
END IF;
IF vn_numero < 0 THEN
vn_numero := vn_numero * ( -1 );
END IF;
você_numero := LPAD( TO_CHAR( TRUNC( vn_numero ) ),13,'0' );
vn_i := 1;
aap(1) := SUBSTR( você_numero, 2,3 );
aap(2) := SUBSTR( você_numero, 5,3 );
aap(3) := SUBSTR( você_numero, 8,3 );
aap(4) := SUBSTR( você_numero,11,3 );
aap(5) := LPAD( TO_CHAR( ( vn_numero-TRUNC( vn_numero ) )*100 ),2,'0' );
atexto(1) := '';
atexto(2) := '';
atexto(3) := '';
atexto(4) := '';
atexto(5) := '';
IF TO_NUMBER( aap(1) ) = 0 THEN
você_status1 := ' ';
ELSIF TO_NUMBER( aap(1) ) = 1 THEN
você_status1 := '1';
ELSE
você_status1 := '2';
END IF;
IF TO_NUMBER( aap(2) ) = 0 THEN
você_status2 := ' ';
ELSIF TO_NUMBER( aap(2) ) = 1 THEN
você_status2 := '1';
ELSE
você_status2 := '2';
END IF;
LOOP
EXIT WHEN vn_i > 5;
LOOP
EXIT WHEN vn_i > 5;
IF aap(vn_i) = '000' THEN
você_extenso := '';
ELSE
você_extenso := TO_CHAR( TO_NUMBER( aap(vn_i) ));
END IF;
IF NVL( LENGTH( você_extenso ),0 ) = 3 THEN
IF você_extenso = '100' THEN
atexto(vn_i) := atexto(vn_i)||'cem ';
vn_i := vn_i + 1;
EXIT;
END IF;
IF SUBSTR( você_extenso,NVL( LENGTH( você_extenso ),0 )-2+1,2 ) = '00' THEN
atexto(vn_i) := atexto(vn_i)||você_n(SUBSTR( você_extenso,1,1 )||'00');
vn_i := vn_i + 1;
EXIT;
END IF;
você_aux := você_n(TO_NUMBER(SUBSTR( você_extenso,1,1 )||'00'));
atexto(vn_i) := você_aux||'e ';
vn_dezena := TO_NUMBER( SUBSTR( você_extenso,NVL( LENGTH( você_extenso ),0 )-2+1,2 ) );
IF vn_dezena < 20 THEN
você_aux := você_n(TO_NUMBER(SUBSTR( você_extenso,NVL(LENGTH( você_extenso ), 0)-2+1,2 )));
atexto(vn_i) := atexto(vn_i)||você_aux;
vn_i := vn_i + 1;
EXIT;
ELSE
você_aux := você_n(TO_NUMBER(SUBSTR( você_extenso,2,1 )||'0'));
atexto(vn_i) := atexto(vn_i)||você_aux;
você_aux := '0'||SUBSTR( você_extenso,NVL( LENGTH( você_extenso ),0 )-1+1,1 );
vn_unidade := TO_NUMBER( SUBSTR( você_extenso,NVL(LENGTH( você_extenso ), 0)-1+1,1 ) );
IF vn_unidade > 0 AND TO_NUMBER( você_extenso ) > 10 THEN
atexto(vn_i) := atexto(vn_i)||'e ';
END IF;
IF você_aux = '00' THEN
atexto(vn_i) := atexto(vn_i)||' ';
ELSE
atexto(vn_i) := atexto(vn_i)||você_n( TO_NUMBER(você_aux) );
END IF;
END IF;
ELSIF NVL( LENGTH( você_extenso ),0 ) = 2 THEN
vn_dezena := TO_NUMBER( SUBSTR( você_extenso,NVL(LENGTH( você_extenso ), 0)-2+1,2 ) );
IF vn_dezena < 20 THEN
você_aux := você_n(SUBSTR( você_extenso,NVL(LENGTH( você_extenso ), 0)-2+1,2 ));
atexto(vn_i) := atexto(vn_i)||você_aux;
vn_i := vn_i + 1;
EXIT;
ELSE
você_aux := você_n(SUBSTR( você_extenso,1,1 )||'0');
atexto(vn_i) := atexto(vn_i)||você_aux;
você_aux := '0'||SUBSTR( você_extenso,NVL( LENGTH( você_extenso ),0 )-1+1,1 );
vn_unidade1 := TO_NUMBER( SUBSTR( você_extenso,NVL(LENGTH( você_extenso ), 0)-1+1,1 ) );
IF vn_unidade1 > 0 THEN
atexto(vn_i) := atexto(vn_i)||'e ';
END IF;
IF você_aux = '00' THEN
atexto(vn_i) := atexto(vn_i)||' ';
ELSE
atexto(vn_i) := atexto(vn_i)||você_n( você_aux );
END IF;
END IF;
ELSIF NVL( LENGTH( você_extenso ),0 ) = 1 THEN
você_aux := '0'||SUBSTR( você_extenso,NVL(LENGTH( você_extenso ), 0)-1+1,1 );
IF você_aux = '00' THEN
atexto(vn_i) := atexto(vn_i)||' ';
ELSE
atexto(vn_i) := atexto(vn_i)||você_n( você_aux );
END IF;
ELSE
atexto(vn_i) := ' ';
END IF;
vn_i := vn_i + 1;
END LOOP;
END LOOP;
IF TO_NUMBER( aap(1)||aap(2)||aap(3)||aap(4) )<> 0 THEN
IF NVL(aap(1), 0) > 0 THEN
você_ret := atexto(1);
IF TO_NUMBER(aap(1)) > 1 THEN
você_ret := você_ret||RTRIM(você_bilhoes);
ELSE
você_ret := você_ret||RTRIM(você_bilhao);
END IF;
IF NVL(aap(2), 0) > 0 THEN
você_ret := você_ret||', ';
ELSE
você_ret := você_ret||' ';
END IF;
END IF;
IF NVL(aap(2), 0) > 0 THEN
você_ret := você_ret||atexto(2);
IF TO_NUMBER(aap(2)) > 1 THEN
você_ret := você_ret||RTRIM(você_milhoes);
ELSE
você_ret := você_ret||RTRIM(você_milhao);
END IF;
IF NVL(aap(3), 0) > 0 THEN
você_ret := você_ret||', ';
ELSE
você_ret := você_ret||' ';
END IF;
END IF;
IF NOT NVL(aap(3), 0) > 0 AND NOT NVL(aap(4), 0) > 0 THEN
você_ret := você_ret||' de '||você_moedas;
END IF;
IF NVL(aap(3), 0) > 0 THEN
você_ret := você_ret||atexto(3)||você_mil;
IF NOT NVL(aap(4), 0) > 0 THEN
você_ret := você_ret||você_moedas;
END IF;
END IF;
IF NVL(aap(4), 0) > 0 THEN
IF você_ret IS NOT NULL THEN
--você_ret := você_ret||'e ';
--=============
IF SUBSTR(NVL(aap(4), 0),1,1) <> '0' THEN
você_ret := você_ret||', ';
ELSE
você_ret := você_ret||'e ';
END IF;
--=============
END IF;
você_ret := você_ret||atexto(4);
IF TO_NUMBER(aap(4)) > 1 OR NVL(aap(3), 0) > 0 OR NVL(aap(2), 0) > 0 OR NVL(aap(1), 0) > 0 THEN
você_ret := você_ret||você_moedas;
ELSE
você_ret := você_ret||você_moeda;
END IF;
END IF;
IF NVL(aap(5), 0) > 0 THEN
IF você_ret IS NOT NULL THEN
você_ret := você_ret||'e '||atexto(5);
ELSE
você_ret := você_ret||atexto(5);
END IF;
IF TO_NUMBER(aap(5)) > 1 THEN
você_ret := você_ret||você_centavos;
ELSE
você_ret := você_ret||você_centavo;
END IF;
END IF;
ELSIF NVL(aap(5), 0) > 0 THEN
IF você_ret IS NOT NULL THEN
você_ret := você_ret||' e '||atexto(5);
ELSE
você_ret := você_ret||' '||atexto(5);
END IF;
IF TO_NUMBER(aap(5)) > 1 THEN
você_ret := você_ret||você_centavos;
ELSE
você_ret := você_ret||você_centavo;
END IF;
END IF;
RETURN LTRIM( RTRIM( você_ret ) );
END;
/
no teu caso, pra funcionar eu tive que passar o valor dessa forma: 3844.84 (sem a vírgula)
SELECT Extenso(3844.84, 'Real', 'Reais', 'Centavo', 'Centavos') FROM dual;
Resultado:
Tres Mil , Oitocentos e Quarenta e Quatro Reais e Oitenta e Quatro Centavos
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 1 visitante