Grid redefinição automática do tamanho das colunas

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

microvolution
Usuário Nível 5
Usuário Nível 5
Mensagens: 1231
Registrado em: 02 Set 2011 22:17
Contato:

Grid redefinição automática do tamanho das colunas

Mensagem por microvolution »

Pessoal, boa noite!
Resolvi abrir este tópico pois não encontrei algo semelhante.
Alguém sabe como fazer com que as colunas de um GRID tenham seus tamanhos ajustados automaticamente em relação ao tamanho dos campos e/ou título (cabeçalhos) das colunas?
Este é parte do nosso código atual:

Código: Selecionar todos

FUNCTION grid_data_widths()
LOCAL awidths := {}

   awidths := { 130, 280, 30, 30, 30, 30,  100, 100, 150, 150, 100, 150, 100, 100, 100  }

RETURN awidths
Valeu!
PS: Outra coisa, se não for congestionar o fórum... (caso contrário, Toledo/moderador(es), por favor, leve para o devido lugar, ou exclua, ou tome as providências que convier necessárias!)
1 - Tô percebendo que o GRID tá muito lento, alguém sabe como resolver?
2 - Como ocultar ou não usar alguns campos do arquivo que são desnecessários?
3 - Como não permitir a alteração dos campos? pois se é pra consulta apenas como antigo BROWSE (clipper) que é apenas consultivo.
4 - Como substituir o set filter (se é que ele está incluso no meu GRID por uma coisa mais rápida)?
5 - Ao usar a barra de rolagem (horizontal), as informações somem;
6 - Como transferir o que foi consultado para o formulário anterior?
7 - Como usar a funçao de criação do GRID para ser usado por outras pesquisas/arquivos, como a gente fazia com o BROWSE?
Mais uma vez obrigado pelo fórum existir, pois mais 80% do que tenho aprendido ou CTRL+C/V foi retirado daqui!!!
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Grid redefinição automática do tamanho das colunas

Mensagem por Toledo »

microvolution escreveu:Alguém sabe como fazer com que as colunas de um GRID tenham seus tamanhos ajustados automaticamente em relação ao tamanho dos campos e/ou título (cabeçalhos) das colunas?
Amigo, praticamente é uma questão de matemática, mas o primeiro a fazer é como saber o tamanho do campo e do título?

Bom, do título é fácil, é só usar a função LEN() em cada elemento da matriz que tem os títulos da GRID. O problema será o tamanho do campo.
Ou você usa o DbStruct() que mostra o tamanho do campo, ou cria um uma matriz com o tamanho dos campos, por exemplo:

Código: Selecionar todos

aTamCmps:={6,40,40,15,7,etc}
Agora qual dos dois (campo ou título) é o maior... função MAX() ajuda, por exemplo:

Código: Selecionar todos

nTamanho:=MAX(aTamCmps[1],LEN(aheaders[1]))*9
O *9 no código acima é para ajustar o tamanho em pixel. Este valor (9) pode ser alterado ao seu gosto, caso o ajuste tenha sido demais ou pouco.

Bom, isto é só uma ideia do que você pode fazer.

Sua outras dúvidas, o melhor a fazer é consultar o manual da HMG... para GRID veja C:\hmg.3.4.2\DOC\data\Grid.htm
microvolution escreveu:2 - Como ocultar ou não usar alguns campos do arquivo que são desnecessários?
Amigo, você determina em COLUMNFIELDS os campos que serão apresentados na GRID. Você pode colocar (ou não) os campos que quer.
microvolution escreveu:3 - Como não permitir a alteração dos campos?
No manual acima da GRID tem uma propriedade chamada ALLOWEDIT, veja C:\hmg.3.4.2\DOC\data\allowedit.htm

As demais dúvidas vai depender do código que você montou para fazer a GRID, então fica difícil dar um exemplo.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Grid redefinição automática do tamanho das colunas

Mensagem por Claudio Soto »

En HMG existe:

<ParentWindowName>.<GridControlName>.ColumnWIDTH( nColIndex ) := [ nColumnWidth ] | [ GRID_WIDTH_AUTOSIZE ] |
[ GRID_WIDTH_AUTOSIZEHEADER ]
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Grid redefinição automática do tamanho das colunas

Mensagem por Toledo »

Por isto que é importante ler o manual (DOC) da HMG. Lá no manual da GRID tem estas informações que o Dr Claudio Soto passou na mensagem dele.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
susviela@bol.com.br
Usuário Nível 3
Usuário Nível 3
Mensagens: 236
Registrado em: 30 Jun 2017 11:17
Localização: São José / SC
Contato:

Grid redefinição automática do tamanho das colunas

Mensagem por susviela@bol.com.br »

Pode ser útil se alguém vier pesquisar.

Código: Selecionar todos


        //  ajuste automático das colunas da Grid

	For i := 1 to ( Main.grid_1.ColumnCOUNT )

		Main.grid_1.ColumnWIDTH( i ) := GRID_WIDTH_AUTOSIZE

	NEXT i
	
Deixa o desenho da grid um pouco lenta.
.
.
"E quando você perder o controle, colherá o que plantou."
=========================================
Carlos Alberto Nunes #Susviela
Site: https://www.PowerInformatica.com.br
=========================================
Blog xBase: https://programandoxbase.wordpress.com/
Blog TI: https://susviela.wordpress.com

( #ProgramandoxBase #AllxBase )
Responder