StdFormat - Formatando dados em um Grid
Existem recursos no VB que não estão bem documentados. Ficam como escondidos até que alguém os descubra. Nesta dica vou mostrar como usar um recurso oferecido no VB para formatação de dados em tempo de execução em um DataGrid. Estou falando do objeto StdFormat que usaremos para aplicar a formatação nas colunas do grid.
-Inicie um novo projeto no VB e no formulário padrão insira um componente DatGrid - DataGrid1 - e dois botões de comando: command1 e command2 ,conforme o layout abaixo:
- Agora , o mais importante , faça as seguintes referências no seu projeto :
- Microsoft ActiveX
Data Objects 2.x - Microsoft data Formatting Object Library 6.0 (MSSTDFMT.DLL) |
- No evento click do botão de comando - command1 - insira o código que irá fazer a conexão com o banco de dados Northwind.mdb que esta na pasta - c:\teste - e exibir os dados da tabela - Pedidos.
Private Sub Command1_Click() Dim SQL As String Dim CN As ADODB.Connection Dim RS As ADODB.Recordset Set CN = New ADODB.Connection With CN .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=c:\teste\Northwind.mdb" .Open End With Set RS = New ADODB.Recordset Set RS.ActiveConnection = CN RS.CursorLocation = adUseClient SQL = "Select NúmerodoPedido , CódigodoCliente , DatadoPedido , Frete from Pedidos" RS.Open SQL Set DataGrid1.DataSource = RS End Sub |
quando você executar o projeto e clicar no botão - Exibir dados no Grid - irá obter a seguinte tela:
perceba que os dados não estão formatados. Vamos agora formatar as colunas: NúmerodoPedido , DatadoPedido e Frete.
No evento click do botão de comando - command2 - insira o código que irá usar o objeto StdFormat e realizar a formatação em tempo de execução conforme a sua escolha.
Private Sub Command2_Click() Set codfmt = New StdFormat.StdDataFormat Set datfmt = New StdFormat.StdDataFormat Set valfmt = New StdFormat.StdDataFormat codfmt.Format = "@.@@@-@" datfmt.Format = "mm-dd-yyyy" valfmt.Format = "R$##,##0.00" DataGrid1.Columns(1).Alignment = dbgCenter DataGrid1.Columns(2).Alignment = dbgRight DataGrid1.Columns(3).Alignment = dbgRight Set DataGrid1.Columns("Númerodopedido").DataFormat = codfmt Set DataGrid1.Columns("DatadoPedido").DataFormat = datfmt Set DataGrid1.Columns("Frete").DataFormat = valfmt End Sub |
Quando você clicar no botão - Formatar dados - irá obter o seguinte resultado:
Agora sim !!! Usando uma formatação definida pelo usuário em tempo de execução obtemos os dados formatados. A formatação definida usada foi:
codfmt.Format =
"@.@@@-@"
datfmt.Format = "mm-dd-yyyy"
valfmt.Format = "R$##,##0.00"
Embora 'escondida' o objeto StdFormat é uma poderosa ferramenta que você pode agregar ao seu arsenal.
Até a próxima....