#11: Função para escrever um valor por extenso
-----------------------------------+----------------------------------------
Reporter: noelson | Owner: filhocf
Type: melhoria | Status: assigned
Priority: normal | Milestone:
Component: BrooCalc | Version: 2.0.3
Severity: normal | Resolution:
Keywords: Função Extenso Calc |
-----------------------------------+----------------------------------------
Comment (by gbpacheco):
Oi Noelson!
Você tem razão. Infelizmente, a execução do =nextenso(x) dentro da
biblioteca BrO foi um equívoco meu. O erro permanece depois, da forma
como você testou. Isso retrocede um pouco o nosso trabalho, mas acho que
podemos aproveitar um pouco dessa experiência.
Estou em Brasília durante toda essa semana e conversei com o Salomon na
segunda-feira sobre esse assunto. Discutimos bastante a implementação da
função =nextenso(x) no Calc e concluímos que seria bastante complicado
implementarmos e mantermos esse recurso na forma de uma função. Alguns
motivos:
- caso o desenvolvimento fosse feito através do código, precisaríamos
do domínio do conhecimento para fazê-lo, o que, hoje, é mínimo; além
disso, estaríamos fazendo um fork do projeto original;
- a implementação da função =nextenso(x) causaria erro no documento
ao ser aberto nas versões do OpenOffice.org 2.x, na versão 2.0.1 do
BrOffice.org, na versão do OpenOffice.org 1.x (salvamento em formato SXC)
e no Excel (salvamento em formato XLS), já que essas versões não tem a
função implementada. Isso seria um problema sério para usuários com
uso frequente da função que trocassem documentos com outros usuários;
- ao implementarmos a função na biblioteca Standard, estaríamos
colocando uma funcionalidade do BrOffice.org que pode ser alterada pelo
usuário, fazendo com que qualquer modificação equivocada por parte do
mesmo na biblioteca Standard fizesse com que a função deixasse de
funcionar ou funcionasse de forma errada.
Por causa de tudo isso, concluímos que a implementação do valor por
extenso não é adequada através de uma fórmula do tipo =nextenso(x) no
Calc.
A partir disso e do que você comentou, o que sugiro que façamos a
definição da implementação da função no Writer e no Calc através do
menu Inserir e de uma combinação de teclas, gerando como resultado um
string. Seria para o Calc da mesma forma como estamos fazendo no Writer,
ou seja, o resultado seria uma string com o valor por extenso dentro de
uma célula.
Com isso, não criamos um fork, já que alteramos somente os recursos da
interface (menus e teclas de atalho). Também não prejudicamos o
salvamento e a troca de documentos entre formatos e versões, já que
estamos escrevendo uma string dentro da célula, e não acionando uma
função. Para implementarmos, usaríamos uma biblioteca dentro de Macros
do BrOffice.org, para que seja minimizado o problema de acesso do usuário
ao código fonte da implementação, como é a biblioteca BrO que propus
anteriomente.
Indo de acordo com o que você observou, por um critério de usabilidade,
deveremos ter tanto a macro no menu Inserir quanto como uma tecla de
atalho. Ou seja, como são diversas funções do BrOffice.org: existe uma
tecla de atalho ou ícone de barra, com a funçào praticamente definida
com um padrão de uso, e o uso opcional através do menu que,
invariavelmente, apresenta opções que flexibilizam o resultado.
Nesse momento, devido a proximidade do lançamento da versão 2.0.3,
proponho que façamos a implementação da função somente através das
teclas de atalho e do diálogo, sem ícones. Ícones e outras
implementações podemos fazer nas próximas versões.
Em relação a questão do tratamento de erro, das mudanças da função
e da correção ortográfica, concordo com todas as observações. Em
relação a questão da correção ortográfica, poderíamos,
imediatamente, ter mais uma opção no diálogo da função, algo como
"Primeiras letras em maiúsculas".
O que tu achas deste encaminhamento?
--
Ticket URL: <https://wiki.openoffice.org.br/ticket/11>
BrOffice.org <http://www.broffice.org/>
BrOffice.org - Projeto Brasil | Sistema de controle de bilhetes
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]