Sei sulla pagina 1di 3

Programao de Computadores I

Programao de Computadores I

4.3 SADA FORMATADA


Em uma aplicao, necessitamos aplicar mscaras para a exibio dos dados. Isso
fica claro quando um clculo resulta em um valor alto, pois no existem
separadores de milhar ou decimal. O VB possui algumas funes especficas para
a formatao de dados de sada:

Em formato o nmero 0 ser mostrado ou trocado pelo caractere em sua


posio, j o sustenido (#) no ser mostrado. Podemos usar smbolos na mscara,
como no exemplo: $, % e E (que representa exponenciao). Note que a separao
de milhares e decimais na mscara deve ser feita no padro americano, ou seja,
, para separao de milhares e . para decimais, mas o resultado vai seguir as
configuraes feitas na opo Internacional do Painel de Controle do Windows.
A funo Format tambm pode ser usada para formatao de data e hora:

4.3.1 Funo Format


A funo Format usada na aplicao de mscaras em dados numricos ou datas.
Sua sintaxe a seguinte:

Expresso

Estilo

Resultado

12/10/2010

dd

12

12/10/2010

ddd

ter

Format (expresso, estilo)

12/10/2010

dddd

tera-feira

Onde Expresso o dado a ser formatado e Estilo a mscara que ser


aplicada a ele, e o resultado ser uma string correspondente expresso
formatada com a mscara. Veja alguns exemplos:

12/10/2010

12 de outubro

12/10/2010

MM

10

12/10/2010

MMM

out

12/10/2010

MMMM

outubro

12/10/2009

outubro de 2009

12/10/2009

yy

09

12/10/2009

yyyy

2009

10:19:45

hh

10

10:19:45

mm

19

10:19:45

SS

45

Expresso

Estilo

Resultado

5,20

Currency

R$ 5,20

1500

Fixed

1500,00

1500

Standard

1.500,00

0,5

Percent

50%

5000

Scientific

5,00E+03

Podemos especificar no parmetro Estilo formatos personalizados. Veja os


exemplos:
Expresso

Estilo

Resultado

5,25

15

000

015

10,5

#,##0

11

1111,5

#,##0.00

1111,54

4.3.2 Funo FormatDateTime


A funo FormatDateTime possui formataes especficas para data e hora:
FormatDateTime (expresso, estilo)
Expresso

Estilo

1.112

12/07/2010 11:23:15

DateFormat.LongDate

#,##0.0

1.111,5

12/07/2010 11:23:15

DateFormat.LongTime

Resultado
segunda-feira, 12 de
julho de 2010
11:23:15

U$#,##0;(U$#,##0)

U$5

12/07/2010 11:23:15

DateFormat.ShortDate

12/7/2010

0,5

0%

50%

12/07/2010 11:23:15

DateFormat.ShortTime

11:23

5000

0E00

5E03

30

31

Programao de Computadores I

Programao de Computadores I
Exemplo 1:

4.3.3 Funo FormatCurrency


A funo FormatCurrency formata com o estilo de moeda padro.
FormatCurrency (expresso, casas decimais)
Onde Expresso o dado a ser formatado e Casas decimais o nmero de
casas decimais a exibir.

4.3.4 Funo FormatNumber


A funo FormatNumber defini apenas a formatao numrica e suas casas
decimais.
FormatNumber (expresso, casas decimais)

4.3.5 Funo FormatPercent


A funo FormatPercent multiplica o nmero digitado por 100 e acrescenta o
sinal de porcentagem (%).

4.3.6 Funo UCase e LCase

Nesse projeto, digitaremos a data, o nome do produto, o valor em dlar, a


quantidade e a 1 parcela. Aps clicar em OK, aparecer a data por extenso, o
preo total e a data do 1 pagamento acrescida da quantidade de dias digitados na
caixa 1 parcela.

Essas funes so usadas na converso de textos em letras maisculas (UCase)


ou minsculas (LCase).

1 Efetue um duplo-clique na caixa de texto Produto. Altere o evento para


Lost_Focus. Digite o seguinte cdigo:

4.3.7 Funo StrConv

Private Sub Txt_Produto_LostFocus

FormatPercent (expresso, casas decimais)

A funo StrConv tambm usada na formatao de strings, mas mais flexvel


que UCase e LCase, pois possui um parmetro que indica como deve ser feita a
converso de maisculas para minsculas e vice-versa. Esse parmetro pode ser:




VbStrConv.Uppercase: converte a string em caracteres maisculos. O


mesmo que UCase;
VbStrConv.Lowercase: converte a string em caracteres minsculos. O
mesmo que LCase;
VbStrConv.ProperCase: converte em letra maiscula a primeira letra
de cada palavra na sequencia de caracteres, e as demais em minsculas.

Txt_Produto.Text = StrConv(Txt_Produto.Text, VbStrConv.ProperCase)

End Sub
Este cdigo converter em letra maiscula a primeira letra de cada palavra aps
o controle perder o foco.
2 Efetue um duplo-clique no boto Ok. Digite o seguinte cdigo:
Private Sub Btn_Ok_Click
Lbl_Data.Text = FormatDateTime(CDate(Txt_Data.Text),
DateFormat.LongDate)

32

33

Programao de Computadores I

Programao de Computadores I
Lbl_Total.Text = CSng(Txt_Dolar.Text) * CSng(Txt_Qtde.Text)
Lbl_Total.Text = Format(CSng(Lbl_Total.Text),"U$ #,##0.00")
Lbl_Pagamento.Text = DateAdd(DateInterval.Day,
CInt(Txt_Parcela.Text), CDate(Txt_Data.Text))

'Formata a data de aniversrio (Lbl_Aniver)


Lbl_Aniver.Text = Format(CDate(Lbl_Aniver.Text),
"dd/MM/yyyy")
'Exibe o dia da semana referente ao aniversrio
Lbl_Dia.Text = Format(CDate(Lbl_Aniver.Text), "dddd")

End Sub
End Sub
O comando DateAdd adiciona um valor
(DateInterval.Day) da data indicada (Txt_Data).

(Txt_Parcela)

aos

dias

4.4 EXERCCIO DE APLICAO


Exemplo 2:
Neste exemplo, utilizaremos um controle para entrada de datas chamado
DateTimePicker. Este controle possui duas propriedades principais:



1. Considerando a tela abaixo desenvolva a codificao dos botes Ok e


Sair. O boto Ok ir exibir o dia da semana em que o usurio nasceu e
sua idade em anos.

Value: indica o valor (data) escolhido pelo usurio.


Format: determina a formatao da data que ser visualizada.

Private Sub Btn_Processar_Click


'Exibe a data escolhida (Dtp_Data.value) em seu formato longo
Lbl_DtAtual.Text = FormatDateTime(Dtp_Data.Value,
DateFormat.LongDate)
'Adiciona (DateAdd) ao ano (DateInterval.Year o valor contido
'em Txt_Anos data selecionada (Dtp_Data.value)
Lbl_Aniver.Text = DateAdd(DateInterval.Year,
CInt(Txt_Anos.Text), Dtp.Data.Value)

34

35

Potrebbero piacerti anche