Como alinhar numeros a direita?
Moderador: Moderadores
Como alinhar numeros a direita?
Boa noite,
Numa certa rotina gostaria de mostrar alguns numeros, porém, tenho que alinhá-los a direita.
Alguém poderia me dizer como fazer isso? Já fiz algumas pesqueisas, mas não achei a solução.
Gilvandi
Numa certa rotina gostaria de mostrar alguns numeros, porém, tenho que alinhá-los a direita.
Alguém poderia me dizer como fazer isso? Já fiz algumas pesqueisas, mas não achei a solução.
Gilvandi
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Como alinhar numeros a direita?
Olá!
Os campos numéricos são naturalmente alinhados à direita.
A tua dúvida não ficou clara. Estes "números" estão contidos em campos numéricos ou do tipo carácter? Qual seria a situação? Get, TBrowse, Say?
Por favor, forneça mais detalhes para que a análise e solução do problema seja facilitada.
Os campos numéricos são naturalmente alinhados à direita.
A tua dúvida não ficou clara. Estes "números" estão contidos em campos numéricos ou do tipo carácter? Qual seria a situação? Get, TBrowse, Say?
Por favor, forneça mais detalhes para que a análise e solução do problema seja facilitada.
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Como alinhar numeros a direita?
Alexandre,
Bom dia...
A rotina que mostra os valores na tela é essa aí. Acontece que dependendo do valor êles não ficam corretamente alinhados na margem direita.
Gilvandi
Bom dia...
A rotina que mostra os valores na tela é essa aí. Acontece que dependendo do valor êles não ficam corretamente alinhados na margem direita.
Gilvandi
Código: Selecionar todos
*-------------------------------------------------
Function MostraDados()
*---------------------------------------------------------------------
@479,113 SAY StrZero(gQtd,5) COLOR BLUE SIZE 65, 30 FONT oFont003 OF TelaVenda1
@473,158 SAY TRANSFORM(gRefKg,"999.999") COLOR BLUE SIZE 65, 30 FONT oFont003 OF TelaVenda1
@460,203 SAY TRANSFORM(gRefVr,"999,999.99") COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1
@460,248 SAY TRANSFORM(gBebVr,"999,999.99") COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1
@460,293 SAY TRANSFORM(gSobVr,"999,999.99") COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1
Return Nil
Editado pela última vez por Pablo César em 16 Mai 2012 08:36, em um total de 3 vezes.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Como alinhar numeros a direita?
Gilvandi, para exibir na tela é fácil. Mas para que isso dê certo você vai precisar setar a fonte para o tipo mono-espaçada como Courier New. Pois outra fonte como Arial, que tem medidas diferenciadas como o 1 ( um ) e o 0 ( zero ) que não ocupam o mesmo tamanho.
Só resta te perguntar se você quer manter a exibição do modo americano ou quer exibir no modo brasileiro onde o milhar é separado com ponto e o decimal com vírgula ?
Código: Selecionar todos
*-------------------------------------------------
Function MostraDados()
*---------------------------------------------------------------------
@479,113 SAY StrZero(gQtd,5) COLOR BLUE SIZE 65, 30 FONT oFont003 OF TelaVenda1
@473,158 SAY PadL(Alltrim(TRANSFORM(gRefKg,"999.999")),10) COLOR BLUE SIZE 65, 30 FONT oFont003 OF TelaVenda1
@460,203 SAY PadL(Alltrim(TRANSFORM(gRefVr,"999,999.99")),10) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1
@460,248 SAY PadL(Alltrim(TRANSFORM(gBebVr,"999,999.99")),10) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1
@460,293 SAY PadL(Alltrim(TRANSFORM(gSobVr,"999,999.99")),10) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1
Return NilUm clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Como alinhar numeros a direita?
Pablo,
Bom dia...
Agradeço sua atenção... poderia postar então como ficaria essa rotina, inclusive no padrão brasileiro?
Gilvandi
Bom dia...
Agradeço sua atenção... poderia postar então como ficaria essa rotina, inclusive no padrão brasileiro?
Gilvandi
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Como alinhar numeros a direita?
Olá Vandi,
OS SAY são alinhados a ESQUERADA por padrão e os GET NUMÉRICO a DIREITA.
Para alinhar seu exemplo a DIREITA pode usar assim:
Cuide apenas para que o tamanho dos SIZE seja o mesmo para ficar tudo bem alinhado corretamente, e cuide também para que comece na mesma coluna. Veja que mudei isso no seu exemplo.
Se quiser pode pegar mais tipos de STYLE que você pode usar em: \hwgui\include\windows.ch
Abaixo os STYLE que podem ser usados nos SAY
OS SAY são alinhados a ESQUERADA por padrão e os GET NUMÉRICO a DIREITA.
Para alinhar seu exemplo a DIREITA pode usar assim:
Código: Selecionar todos
*-------------------------------------------------
Function MostraDados()
*---------------------------------------------------------------------
@460,113 SAY StrZero(gQtd,5) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1;
STYLE SS_RIGHT
@460,158 SAY PadL(Alltrim(TRANSFORM(gRefKg,"999.999")),10) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1;
STYLE SS_RIGHT
@460,203 SAY PadL(Alltrim(TRANSFORM(gRefVr,"999,999.99")),10) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1;
STYLE SS_RIGHT
@460,248 SAY PadL(Alltrim(TRANSFORM(gBebVr,"999,999.99")),10) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1;
STYLE SS_RIGHT
@460,293 SAY PadL(Alltrim(TRANSFORM(gSobVr,"999,999.99")),10) COLOR BLUE SIZE 80, 30 FONT oFont003 OF TelaVenda1;
STYLE SS_RIGHT
Return Nil
Se quiser pode pegar mais tipos de STYLE que você pode usar em: \hwgui\include\windows.ch
Abaixo os STYLE que podem ser usados nos SAY
Código: Selecionar todos
/*
* Static Control Constants
*/
#define SS_LEFT 0 // 0x00000000L
#define SS_CENTER 1 // 0x00000001L
#define SS_RIGHT 2 // 0x00000002L
#define SS_ICON 3 // 0x00000003L
#define SS_BLACKRECT 4 // 0x00000004L
#define SS_GRAYRECT 5 // 0x00000005L
#define SS_WHITERECT 6 // 0x00000006L
#define SS_BLACKFRAME 7 // 0x00000007L
#define SS_GRAYFRAME 8 // 0x00000008L
#define SS_WHITEFRAME 9 // 0x00000009L
#define SS_USERITEM 10 // 0x0000000AL
#define SS_SIMPLE 11 // 0x0000000BL
#define SS_LEFTNOWORDWRAP 12 // 0x0000000CL
#define SS_OWNERDRAW 13 // 0x0000000DL
#define SS_BITMAP 14 // 0x0000000EL
#define SS_ENHMETAFILE 15 // 0x0000000FL
#define SS_ETCHEDHORZ 16 // 0x00000010L
#define SS_ETCHEDVERT 17 // 0x00000011L
#define SS_ETCHEDFRAME 18 // 0x00000012L
#define SS_TYPEMASK 31 // 0x0000001FL
#define SS_NOTIFY 256 // 0x00000100L
#define SS_CENTERIMAGE 512 // 0x00000200L
#define SS_RIGHTJUST 1024 // 0x00000400L
#define SS_REALSIZEIMAGE 2048 // 0x00000800L
#define SS_SUNKEN 4096 // 0x00001000L
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Como alinhar numeros a direita?
Sygecom,
Obrigado pela dica... deu ok!!! Alterei minha rotina e ficou perfeita.
Gilvandi
Obrigado pela dica... deu ok!!! Alterei minha rotina e ficou perfeita.
Gilvandi
- Linguagemclipper
- Usuário Nível 3

- Mensagens: 240
- Registrado em: 16 Abr 2016 17:33
- Localização: Maceió/AL
- Contato:
Como alinhar numeros a direita?
Estou precisando fazer isso em modo console. O exemplo dado foi em modo gráfico com a HWGUI.
No caso aí fica no padrão Britânico e Brasileiro, mas é muito chato entrar com números da esquerda para a direita.
Quando fosse número teria que começar da direita para a esquerda.
Nos exemplos de máscaras existentes que testei nenhuma deu certo. Vou ter que desenvolver um "reader" próprio?... Alguém teria isso aí pronto para eu não ter que reinventar a roda? Agradeço.
Código: Selecionar todos
nVALOR := 0
@ 00,00 SAY "VALOR R$" GET nVALOR PICTURE "@E 999,999,999.99"
READ
Quando fosse número teria que começar da direita para a esquerda.
Nos exemplos de máscaras existentes que testei nenhuma deu certo. Vou ter que desenvolver um "reader" próprio?... Alguém teria isso aí pronto para eu não ter que reinventar a roda? Agradeço.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Como alinhar numeros a direita?
Olá!
Veja o tópico Alinhar GET numérico à DIREITA. É um tópico longo e confuso mas, talvez sirva de inspiração...
Veja o tópico Alinhar GET numérico à DIREITA. É um tópico longo e confuso mas, talvez sirva de inspiração...
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
