MS HIERARQUICAL FLEX GRID E MS FLEXGIRD

SINCLAIR 10/02/2015 17:01:22
#444436
Prezados,

Faz um tempo que não mexo com VB6, mas ainda tenho alguns projetos nesta linguagem.

Pelo que lembro, o MS Hierarquical FlexGrid é uma evolução do MS FlexGrid e permite, entre outras coisas, uma quantidade maior de células.

Mesmo não colocando uma grande quantidade de linhas em um grid (o usuário nem vai olhar todas as linhas, então a filtragem é o melhor caminho), em função de uma quantidade avantajada de colunas, as linhas que consigo carregar são no máximo entre 150 e 160, contudo as filtragens podem chegar a 500 linhas.

Para evitar erro, coloquei LIMIT 140 no SQL que faz a busca de dados, mas induz o operador a erro, visto que nem todas as linhas são exibidas para consulta.

Uso o Hierarquical FlexGird para não ter este problema, mas mesmo assim a limitação está muito insistente.

Nome do arquivo é MSHFLXGD.OCX, de 430 KB (440.352 bytes), Versão do Arquivo 6.0.88.4, Versão do produto 6.00.8804 de 09/03/2004.

Cheguei a pensar que estava usando o FlexGrid e não o Hierarquical, mas tomei todas as precauções para confirmar que é realmente o arquivo citado acima que estou usando.

Hierarquical também possui muitas limitações?

Grato a todos.
OMAR2011 10/02/2015 19:35:33
#444438
Somente 150 ou 160 linhas????????????
Estranho, já vi alguns comentários sobre o MsFlexgrid com sua limitações.Mas 150 ou 160.
Testei neste nomento com 23072 registros com 5 colunas.
Não consigo entender.
Explique melhor.
SINCLAIR 10/02/2015 22:07:17
#444444
Olá Omar2011

Grato pela resposta.

é isto mesmo: conforme a quantidade de colunas (geralmente entre 25 e 30 colunas) a quantidade de linhas fica em torno de 150 a 160.

é que não tenho muito mais para explicar. é realmente isto e, por este exato motivo, que criei o post para ver a opinião dos colegas.

160 linhas x 25 colunas e nada mais me é permitido pelo MSHFlexGrid.

Grato pela resposta.
MARCELO.TREZE 10/02/2015 23:30:35
#444445
Bom apesar de o manual do msflexgrid informar que o limite esta atrelado a memória, que não é uma informação exata, pois existe sim uma limitação de 350.000 células, ou seja se vc preencher o msflexgrid com apenas duas colunas terá 175.000 linhas, quatro colunas 87.500, e assim vai.

bom existe algumas soluções para este caso, e uma delas que considero muito importante é a paginação, pois não acho viavel você exibir milhares de dados de uma vez.

outra forma que permite que muito mais linhas sejam carregadas, seria preencher o flexgrid usando o metodo CLIP, com o metodo GETSTRING do recordset, você entenderá este método no site do mestre dos mestres MACORATTI, segue o link http://www.macoratti.net/vb6_msfg.htm

e é isso, boa sorte

SINCLAIR 11/02/2015 00:12:10
#444448
Olá, Marcelo...

Já uso o método CLIP para carregar o flexgrid. E a diferença na carga dos dados é imensa.

O que me havia colocado a coçar a cabeça (e não são pulgas, garanto) é o fato de não ter chegado nem perto das 350.000 células, que eu havia encontrato em um Knowbase da Microsoft.

Com 30 colunas deveria ter sido aceito ao menos 11.666 linhas, mas chegou a apenas 160. Testado em 4 computadores distintos, com Windows XP 32 bits e Windows 7 64 bits.

Mas acho que, tanto quanto vários outros controles, o MSHFlexGrid deve ter lá seus bugzinhos ou ao menos documentação inconsistente.

Bem, trata-se de mais um mistério. Deixemos quieto por enquanto.

Vou encerrar o tópico, mas não sem antes se agradecer aos colegas que responderam: Omar2011 e Marcelo-Treze.

Tudo de bom.
Tópico encerrado , respostas não são mais permitidas