Bom dia,
Tem alguma possibilidade de fazer o tamanho da coluna do E3browser ficar automática dependendo do resultado vindo do banco de dados?
Bom dia,
Tem alguma possibilidade de fazer o tamanho da coluna do E3browser ficar automática dependendo do resultado vindo do banco de dados?
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
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
Ficou perfeito, Felipe!