Ir para conteúdo
Fórum Script Brasil

Lampiao

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Lampiao postou

  1. Lampiao

    FlexGrid

    Salve, colegas. Estou com problemas para trabalhar com o MSHFlexGrid. Eu estava usando um método de preenchimento para cerca de 1000 registros, que demorava quase 10 segundos para terminar de preencher. Então encontrei o método datasource (set flex.datasource = tbPedidos) que é o mais simples para se popular e o preenchimento passou a demorar somente 3 segundos. O principal problema é que não encontrei forma nenhuma de se formatar uma coluna do tipo "currency" e com isso, acabei voltando à estaca zero. Depois encontrei uma outra forma de se preencher o grid na qual com o método getrows é possível saber o número de linhas, o que diminuiria o processamento (ao invés de ficar verificando a cada registro se ele é o último) e o carregamento passou a ser de 2 segundos, mas estranhamente, ele sempre carrega um registro a menos da tabela (se a mesma possui 100 registros, ele só pega 99 e deixa a 1ª linha em branco), o que também me levou à estaca zero. Estou começando a trabalhar agora com grid. Se puderem, também digam qual grid tem o melhor desempenho (flexgrid, datagrid,dbgrid). Só preciso preencher rapidamente o grid. O resto (alteração, exclusão) tudo é feito em um formulário. O grid é só consulta. Abaixo seguem os códigos. Agradeço desde já a atenção. 1) Método datasource -> Carrega em 3 segundos mas não consigo formatar o campo valor_ped Dim tbPedidos As New ADODB.Recordset Abre_Base' ABRE A BASE DE DADOS tbPedidos.Open "SELECT id_ped,data_ped,valor_ped FROM Pedidos", dBase, adOpenForwardOnly, adLockReadOnly Set flexPedidos.DataSource = tbHoras tbPedidos.Close Fecha_Base 2) Método GetRows -> Carrega em 2 segundos mas carrega sempre um registro a menos (deixando a 1ª linha em branco) e também não consigo formatar a coluna valor_ped Dim tbPedidos As New ADODB.Recordset Dim vAvarData As Variant Dim vIntrows As Integer Dim i As Integer Dim j As Integer Dim vLinha As String Dim vRegistros As Integer Dim vColunas As Integer Dim vConta As Integer Abre_Base' ABRE A BASE DE DADOS tbPedidos.Open "SELECT id_ped,data_ped,valor_ped FROM Pedidos", dBase, adOpenForwardOnly, adLockReadOnly vAvarData = tbHoras.GetRows tbPedidos.Close Set tbHoras = Nothing Fecha_Base Rem VERIFICA SE EXISTEM LANÇAMENTOS If vIntrows > UBound(vAvarData, 1) Then MsgBox "Não há registros para selecionar ...", vbAbortRetryIgnore, "Teste Flex" Exit Sub End If Rem CALCULA O TOTAL DE CAMPOS E REGISTROS SELECIONADOS vColunas = UBound(vAvarData, 1) vRegistros = UBound(vAvarData, 2) For i = 0 To vRegistros For j = 0 To vColunas vLinha = vLinha & vAvarData(j, i) & Chr(9) Next j flexPedidos.AddItem vLinha vLinha = "" Next i Abraço, colegas. Lampião
×
×
  • Criar Novo...