Tamanho da coluna do E3browser automatico

Bom dia,

Tem alguma possibilidade de fazer o tamanho da coluna do E3browser ficar automática dependendo do resultado vindo do banco de dados?

1 Like

Felipe,

É possível, fazendo um script no evento OnFormatCell do E3Browser, desde que você utilize uma fonte mono-espaçada, ou seja, uma fonte que tenha a mesma largura em pixels para todos os caracteres. Por exemplo, alterando a fonte do Grid para Courier New (sem alterar o tamanho), é possível determinar o tamanho exato em pixels de cada caractere (8). Assim, você poderia fazer o seguinte script no evento OnFormatCell do E3Browser:

Sub E3Browser1_OnFormatCell(Column, FieldName, OriginalValue, FormattedValue)
	nchar = Len(GetColumnValue(1))  'número de caracteres
	widthchar = nchar*8 + 18  'largura da string em pixels mais espaçamento entre as margens
	if widthchar > Fields.Item("Campo1").Width then
		Fields.Item("Campo1").Width = widthchar
	end if
End Sub
3 Likes

Obrigado pela resposta @pgustavo,

Com a sua resposta e o que eu já tinha conseguido fazer, fiz esse código que me atende melhor e vale para qualquer campo do E3Browser

Sub E3Browser1_OnFormatCell(Column, FieldName, OriginalValue, FormattedValue)
	
	if Len(FormattedValue)*7+18 > Fields.Item(FieldName).Width then
		 Fields.Item(FieldName).Width = Len(FormattedValue)*7+18
	end if
	
End Sub
3 Likes

Ficou perfeito, Felipe!

1 Like