MSFLEXGRID
alguem pode me uma ajuda grande com esse componente;
eu uso o data DataGrid e gostaria de usuar esse MsflexGrid so que ele e um pouco diferente. como por exemplo no data datagrid para inserir meus dados eu apenas faço minha sql e depois minha recordeset sendo assim faço da seguinte maneira
set meu datagrid.datasouce= meu recordeset
e tudo da certo
ja no msflexgrid tenho que inserir os dados usadndo o loop
gostaria de saber se tem como trabalhar sem usar o loop e se alguem tem algum manual sobre ele usando conexao ADO
eu uso o data DataGrid e gostaria de usuar esse MsflexGrid so que ele e um pouco diferente. como por exemplo no data datagrid para inserir meus dados eu apenas faço minha sql e depois minha recordeset sendo assim faço da seguinte maneira
set meu datagrid.datasouce= meu recordeset
e tudo da certo
ja no msflexgrid tenho que inserir os dados usadndo o loop
gostaria de saber se tem como trabalhar sem usar o loop e se alguem tem algum manual sobre ele usando conexao ADO
Utilize a linha abaixo apos abrir um recordset utilizando a variavel RS e um MSFlexgrid com o nome de FlexConsulta:
FlexConsulta.Clip = Rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
Com esta linha vc adiciona todos os campos retornados pelo RecordSet, sem utilizar LOOP.
FlexConsulta.Clip = Rs.GetString(adClipString, -1, Chr(9), Chr(13), vbNullString)
Com esta linha vc adiciona todos os campos retornados pelo RecordSet, sem utilizar LOOP.
FLTHEODORO mais gostaria de saber o significado realmente desse lina
por exemplo:
FlexConsulta 'e uma variavel que vc criou
clip 'o que signigica
etc...
por exemplo:
FlexConsulta 'e uma variavel que vc criou
clip 'o que signigica
etc...
FlexConsulta é o nome do componente MSFlexGrid q esta no Form.
O comando Clip serve para adicionar os dados no MSFlexGrid, ou seja ele entende q cada registro é numa linha e q cada campo da tabela é numa coluna. Entaum, a sua consulta SQL, deverá retornar apenas os campos q vc deseja exibir na tela. Durante muito tempo eu procurei por uma maneira de preencher o MSFlexGrid de forma rapida. No entanto encontrei esta. Existem outras formas de preencher e de formatar o MSFlexGrid. Isso vai depender da maquina do BD e d qtos registros a sua consulta retorna.
O comando Clip serve para adicionar os dados no MSFlexGrid, ou seja ele entende q cada registro é numa linha e q cada campo da tabela é numa coluna. Entaum, a sua consulta SQL, deverá retornar apenas os campos q vc deseja exibir na tela. Durante muito tempo eu procurei por uma maneira de preencher o MSFlexGrid de forma rapida. No entanto encontrei esta. Existem outras formas de preencher e de formatar o MSFlexGrid. Isso vai depender da maquina do BD e d qtos registros a sua consulta retorna.
Nildglan sem dúvidas essa forma que o colega citou é a mais rápida para carregar um grid, porém ela é limitada a nÃÂÂvel de formatação e personalização do grid, o que é o ponto forte desse componente.
Eu uso um loop normarl (do While) para isso, de forma que preencho um grid com 5 mil registros em torno de uns 2 segundos, o que acho mais que suficiente.
Eu uso os seguintes recursos:
- progressbar para acompanhar o preenchimento (na maioria das vezes nem aparece, por ser tão rápido)
- formatação de cada coluna em função de seus dados (cor do texto, alinhamento, máscara, quebra de linhas para textos longos, e inserção de caracteres especiais ou imagens quando necessário. Isso seria impossÃÂÂvel com um preenchimento automático como esse citado acima ou um DataSource de outros componentes.
Além disso, um loop te permite fazer uma pergunta ao usuário de deseja continuar o preenchimento, caso hajam mais que X registros localizados, permitindo a interrupção do carregamento.
Agora não estou lembrado, mas existem um limite de registros para o Flexgrid que se ultrapassado causa erro no controle, porém já li em algum lugar que se pode contornar esse problema, mas não lembro como.
Aqui no siste tem um monte de exemplos sobre seu uso, inclusive já mandei vários. Dê uma pesquisada que encontrará muito coisa boa.
Eu uso um loop normarl (do While) para isso, de forma que preencho um grid com 5 mil registros em torno de uns 2 segundos, o que acho mais que suficiente.
Eu uso os seguintes recursos:
- progressbar para acompanhar o preenchimento (na maioria das vezes nem aparece, por ser tão rápido)
- formatação de cada coluna em função de seus dados (cor do texto, alinhamento, máscara, quebra de linhas para textos longos, e inserção de caracteres especiais ou imagens quando necessário. Isso seria impossÃÂÂvel com um preenchimento automático como esse citado acima ou um DataSource de outros componentes.
Além disso, um loop te permite fazer uma pergunta ao usuário de deseja continuar o preenchimento, caso hajam mais que X registros localizados, permitindo a interrupção do carregamento.
Agora não estou lembrado, mas existem um limite de registros para o Flexgrid que se ultrapassado causa erro no controle, porém já li em algum lugar que se pode contornar esse problema, mas não lembro como.
Aqui no siste tem um monte de exemplos sobre seu uso, inclusive já mandei vários. Dê uma pesquisada que encontrará muito coisa boa.
Sim o erro citado pela qtde de preenchimento é proporcional ao numero de registro com o numero de colunas, o ideal é utilizar o MSHFlexgrid, esse é limitado pelo potencial da máquina e nao do componente. Se nao me falha a memoria o limite do MSFlexgrid é de 65554 linhas isso cai se aumenta a coluna.
Galera o unico problema que encontrei e o seguinte:
Quando eu carrego meu form da tudo certo, o problema e quando peço para inserir um regitro a mais. como por exemplo
no meu form tem varios controles dentre ele os principais sao:
uma caixa de texto onde vou inserir a nova cidade
e um botao gravar onde vou clicar e os dados da caixa de texto vai ser adicionado ao msflexgrid ou seja a minha tabela do banco de dados
no datagrid tudo isso dar certo
o que eu quero e quando eu clicar nesse botao de gravar limpasse o msflexgrid e removesse os itens e carregasse novamente o msflexgrid. sendo assim quando carregasse ele ja atualizada com o novo registro.
ate que para inserir e limpar e facil e eu ja fiz o problema e que os itens nao sao removidos, ficando assim o msflexgrid fica com a atulizacao da tabela mais as linha limpas
Quando eu carrego meu form da tudo certo, o problema e quando peço para inserir um regitro a mais. como por exemplo
no meu form tem varios controles dentre ele os principais sao:
uma caixa de texto onde vou inserir a nova cidade
e um botao gravar onde vou clicar e os dados da caixa de texto vai ser adicionado ao msflexgrid ou seja a minha tabela do banco de dados
no datagrid tudo isso dar certo
o que eu quero e quando eu clicar nesse botao de gravar limpasse o msflexgrid e removesse os itens e carregasse novamente o msflexgrid. sendo assim quando carregasse ele ja atualizada com o novo registro.
ate que para inserir e limpar e facil e eu ja fiz o problema e que os itens nao sao removidos, ficando assim o msflexgrid fica com a atulizacao da tabela mais as linha limpas
nildglan, use o mshflexgrid que vc nao precisa fazer isso, ai vc pode fazer igual vc fazia com o dbgrid
set seugrid.datasource = rs
set seugrid.datasource = rs
Tenta isso: [txt-color=#ff0000]FGrid.Rows = Rs.RecordCount[/txt-color], onde Rs é a variável RecordSet de conexão Ado. Se tiver usando Data ou outro objeto, faz o mesmo com a propriedade RecordCount.Dessa forma, a quantidade de linhas na grid será a quantidade de registros na tabela. Para você conseguir formatar os dados das colunas, é preciso usar um loop. Faça isso em uma subrotina pois sempre será necessário atualizar a grid após uma operação com os dados do banco. Então, a cada operação chama esta sub para atualizar a grid. A MsHFlexgrid tem as mesmas funcionalidades da MsFlexGrid com a diferença de ser um controle ADO. Com a Msflexgrid(que é um controle DAO, você pode vincular com o controle Data Control sem usar código, mas aàvocê estaria preso ao DAO). Resumo: Para usar MsflexGrid sem loop, use DAO, Para usar MsHflexgid, faça com ADO.Neste artigo você vê o que estou dizendo
Controles Vinculados
Anexo um exemplo de como usar a grid.
Controles Vinculados
Anexo um exemplo de como usar a grid.
entao ROBIU seria melhor eu usar o MsHFlexgrid que ja e um componente ADO
NildGlan, vc recebeu os exemplos ?
Tópico encerrado , respostas não são mais permitidas