Clipper On Line • Ver Tópico - Função extenso passo a passo

Função extenso passo a passo

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Função extenso passo a passo

Mensagempor JoséQuintas » 18 Abr 2021 12:46

O "E" quando for centena redonda

         IF Len( cTxt ) != 0
            cTxt += " "
            IF nCentena == Int( nCentena / 100 ) * 100
               cTxt += "E "
            ENDIF
         ENDIF


Trocar HUM MIL, POR MIL, .... ainda precisa confirmar

         //IF nGrupo != 4 .OR. nCentena != 1 // grupo milhar valor 1 diferente
            cTxt += ze_ExtensoCentena( nCentena )
         //ENDIF


O mesmo referente a HUM
Uma alternativa seria:

cTxt := StrTran( cTxt, "HUM", "UM" )


Pensei parecido para trocar UM MIL, mas não dá, porque VINTE E UM MIL seria trocado também.
Será desbloquear o bloco indicado anteriormente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Função extenso passo a passo

Mensagempor JoséQuintas » 18 Abr 2021 12:51

Pendências:

Confirmar se os bancos, no preenchimento por computador, exigem:

- HUM no lugar de UM
- UM MIL no lugar de MIL
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Função extenso passo a passo

Mensagempor JoséQuintas » 18 Abr 2021 13:47

Na internet só encontrei sobre o HUM mesmo, pra evitar fraudes, porque escrito a mão, como foi postado num link anterior, dá pra facilmente transformar UM em CEM, o HUM é justamente pra evitar isso.

O mil, sem HUM MIL, é mais pra evitar que alguém coloque algum texto antes de mil.

Existe a alternativa de escrever entre parênteses, ou com sinal de igual.
=MIL
(MIL)

Não encontrei nada oficial dos bancos sobre "o que é oficial", nem no caso de escrita a mão, nem no caso de escrita por computador.

Talvez confirmar com clientes sobre isso.

Na rotina de extenso dá pra deixar " UM ", e por strtran() trocar " UM " pra " HUM ", ou vice-versa.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Função extenso passo a passo

Mensagempor JoséQuintas » 18 Abr 2021 13:48

Ficamos no aguardo de informações oficiais.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Função extenso passo a passo

Mensagempor JoséQuintas » 18 Abr 2021 19:45

extenso.png


Rotina em MySQL, conforme aquele site.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Função extenso passo a passo

Mensagempor JoséQuintas » 20 Abr 2021 16:50

Tem gente que ainda se perde com isso.
Como funciona o conjunto?

222

Passa pra rotina de centena 222.
A rotina de centena tem "DUZENTOS E" e chama a de dezena passando 22

A rotina de dezena recebe 22.
A rotina de dezena tem "VINTE E" e chama a de unidade passando 2

A rotina de unidade recebe 2.
A rotina de unidade devolve "DOIS" pra dezena

A dezena junta "VINTE E DOIS" e devolve pra centena

A centena junta "DUZENTOS E VINTE E DOIS" e devolve pra quem chamou

E é assim que tudo vai se formando, cada função recebe um valor e devolve um texto.
Não precisamos chamar cada uma, basta chamar uma principal que ela faz uso das outras, se precisar.

Com certeza, nessas horas é importantíssimo declarar variáveis como LOCAL no Harbour, pra não ter mistura de variáveis.
No MySQL isso já é feito por padrão.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 17 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro