Ir para conteúdo
Fórum Script Brasil
  • 0

Trabalhando Com Msflexgrid No Vb


Guest --Rafael --

Pergunta

Guest --Rafael --

Galera,

Estou com uma aplicação aqui que usa alguns MSFlexGrid, mas em alguns casos o conteúdo da coluna fica escondido porque é muito grande. Sei apenas habilitar a tabela para o usuário redimensionar, através da propriedade Allow User Resizing, não achei legal.

Tem como redimensionar cada coluna separadamente durante o desenvolvimento ou via código? Existe algum comando que este redimensionamento seja automático, isto é, a coluna fica exatamente da largura do maior texto? :huh:

grato,

Rafael

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Fala ai

O comando é o seguinte

flexConsulta.ColWidth(15) = 5000

onde

flexconsulta é o nome do seu grid

colwidth é a propriedade

(15) é a colona que voce que alterar

5000 é o tamanho

ai voce pode fazer o seguinte enquanto voce estiver carregando o grid, verificar o tamanho de cada valor que sera jogado no grid e guardar o valor do maior, no final voce redimensionar as colunas utilizando o comando acima

FUI!!!!!!!!! t+

Donati

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Eduardo --
Fala ai

O comando é o seguinte

flexConsulta.ColWidth(15) = 5000

onde

flexconsulta é o nome do seu grid

colwidth é a propriedade

(15) é a colona que voce que alterar

5000 é o tamanho

ai voce pode fazer o seguinte enquanto voce estiver carregando o grid, verificar o tamanho de cada valor que sera jogado no grid e guardar o valor do maior, no final voce redimensionar as colunas utilizando o comando acima

FUI!!!!!!!!! t+

Donati

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Eduardo --
Galera,

Estou com uma aplicação aqui que usa alguns MSFlexGrid, mas em alguns casos o conteúdo da coluna fica escondido porque é muito grande. Sei apenas habilitar a tabela para o usuário redimensionar, através da propriedade Allow User Resizing, não achei legal.

Tem como redimensionar cada coluna separadamente durante o desenvolvimento ou via código? Existe algum comando que este redimensionamento seja automático, isto é, a coluna fica exatamente da largura do maior texto? :huh:

grato,

Rafael

Link para o comentário
Compartilhar em outros sites

  • 0

CRIE UM MODULO E FAÇA EXATAMENTE ASSIM

ADD MODULE

Option Explicit

Public LarguraTexto As Single

Public Function ZebrarGrid(Grid As MSFlexGrid)

'Declaração das Variaves

Dim TotalLinhas As Integer, LinhaAtual As Integer, TotalColunas As Integer, ColunaAtual As Integer

'Descobrindo o Total de Linha e Colunas

TotalLinhas = Grid.Rows - 1

TotalColunas = Grid.Cols - 1

Grid.FillStyle = flexFillRepeat

'Executando o Loop das linhas

For LinhaAtual = 2 To TotalLinhas

'Verficando se a linha e Par ou Impar (Verifica se Existe resto na divisão do numero da linha por 2, se sim Impar, se não Par)

If Val(Right(Format((LinhaAtual / 2), "#####0.00000"), 5)) = 0 Then

Else

'Seleciona a linha

Grid.Row = LinhaAtual

'Seleciona todas as Colunas da Linha

Grid.Col = 0

Grid.ColSel = Grid.Cols - 1

'Aplica a cor Selecionada (no caso Amarelo) na Linha Atual

Grid.CellBackColor = &HC0FFFF

End If

Next

Grid.FillStyle = flexFillSingle

Grid.Col = 0 + Grid.FixedCols

Grid.Row = 0 + Grid.FixedRows

Grid.ColSel = Grid.Cols - 1

End Function

Public Function DeletaGrid(Grid As MSFlexGrid)

Do While Grid.Rows > (Grid.FixedRows + 1)

Grid.Row = Grid.Rows - 1

Grid.RemoveItem Grid.Row

Loop

Grid.Row = 3 '<--- *** PRIMEIRA LINHA DE DADOS DO MSFLEXGRID ***

Grid.Col = 0

Do While Grid.Col <= Grid.Cols - 1

Grid = ""

If Grid.Col = Grid.Cols - 1 Then

Exit Do

End If

Grid.Col = Grid.Col + 1

Loop

End Function

Public Function AjustarColunaGrid(Grid As MSFlexGrid, Frm As Form)

Grid.Col = 0

Do While Grid.Col <= Grid.Cols - 1

Grid.Row = 2 '<--- *** ULTIMA LINHA DE CABEÇALHO DO MSFLEXGRID ***

Do While Grid.Row <= Grid.Rows - 1

LarguraTexto = Frm.TextWidth(Grid.Text)

If Grid.ColWidth(Grid.Col) < LarguraTexto Then

Grid.ColWidth(Grid.Col) = LarguraTexto + 150

End If

If Grid.Row = Grid.Rows - 1 Then

Exit Do

End If

Grid.Row = Grid.Row + 1

Loop

If Grid.Col = Grid.Cols - 1 Then

Exit Do

End If

Grid.Col = Grid.Col + 1

Loop

End Function

--------------------------------------------------------------------------------------------------------------

NO FORMULARIO DE SEU MSFLEXGRID FAÇA ASSIM

Private Function pesquisa_lancamento()

If Me.mskdata_inicio.Visible = True Then

If IsDate(mskdata_inicio) = False Then

MsgBox "Data de Inicio Invalida?", vbInformation, "Aviso"

mskdata_inicio.SetFocus

Exit Function

ElseIf IsDate(mskdata_fim) = False Then

MsgBox "Data do Fim Invalida?", vbInformation, "Aviso"

mskdata_fim.SetFocus

Exit Function

ElseIf DateValue(mskdata_fim) < DateValue(mskdata_inicio) Then

MsgBox "Data do Fim é Menor que a Data de Inicio?", vbOKOnly, "Data"

mskdata_fim.SetFocus

Exit Function

End If

End If

flexnovo.Redraw = False

If frmoficina.ctrltabela = "1" Then

Set tabmemoria = chave.OpenRecordset("select * from oflc08 where oflc08.lc08razao >= '" & txtconsulta & "' and oflc08.lc08razao <= '" & txtconsulta & "ZZZZ" & "' order by oflc08.lc08razao;")

ElseIf frmoficina.ctrltabela = "2" Then

Set tabmemoria = chave.OpenRecordset("select * from ofus07 where ofus07.us07nome >= '" & txtconsulta & "' and ofus07.us07nome <= '" & txtconsulta & "ZZZZ" & "' order by ofus07.us07nome;")

ElseIf frmoficina.ctrltabela = "3" Then

Set tabmemoria = banco.OpenRecordset("select * from empresa where empresa.descricao >= '" & txtconsulta & "' and empresa.descricao <= '" & txtconsulta & "ZZZZ" & "' order by empresa.descricao;")

ElseIf frmoficina.ctrltabela = "4" Then

Set tabmemoria = banco.OpenRecordset("select * from tipo where tipo.descricao >= '" & txtconsulta & "' and tipo.descricao <= '" & txtconsulta & "ZZZZ" & "' order by tipo.descricao;")

ElseIf frmoficina.ctrltabela = "5" Then

Set tabmemoria = banco.OpenRecordset("select * from modelo where modelo.descricao >= '" & txtconsulta & "' and modelo.descricao <= '" & txtconsulta & "ZZZZ" & "' order by modelo.descricao;")

ElseIf frmoficina.ctrltabela = "6" Then

Set tabmemoria = banco.OpenRecordset("select * from setor where setor.descricao >= '" & txtconsulta & "' and setor.descricao <= '" & txtconsulta & "ZZZZ" & "' order by setor.descricao;")

ElseIf frmoficina.ctrltabela = "7" Then

Set tabmemoria = banco.OpenRecordset("select * from estado where estado.descricao >= '" & txtconsulta & "' and estado.descricao <= '" & txtconsulta & "ZZZZ" & "' order by estado.descricao;")

ElseIf frmoficina.ctrltabela = "8" Then

Set tabmemoria = banco.OpenRecordset("select * from equipamento, empresa, tipo, modelo, setor, estado where equipamento.frota >= '" & txtconsulta & "' and equipamento.frota <= '" & txtconsulta & "ZZZZ" & "' and empresa.codigo = equipamento.empresa and tipo.codigo = equipamento.tipo and modelo.codigo = equipamento.modelo and setor.codigo = equipamento.setor and estado.codigo = equipamento.estado order by equipamento.frota;")

ElseIf frmoficina.ctrltabela = "9" Then

Set tabmemoria = banco.OpenRecordset("select * from lancamento where datevalue(lancamento.data_saida) >= #" & Format(mskdata_inicio, "mm/dd/yyyy") & "# and datevalue(lancamento.data_saida) <= #" & Format(mskdata_fim, "mm/dd/yyyy") & "# and lancamento.equipamento >= '" & txtconsulta & "' and lancamento.equipamento <= '" & txtconsulta & "ZZZZ" & "' order by lancamento.equipamento, datevalue(lancamento.data_entrada), datevalue(lancamento.hora_entrada);")

End If

Call DeletaGrid(Me.flexnovo)

If tabmemoria.RecordCount <> 0 Then

tabmemoria.MoveFirst

Do While tabmemoria.EOF = False

If frmoficina.ctrltabela = "1" Then

flexnovo.Col = 0

flexnovo = tabmemoria("lc08razao")

flexnovo.Col = 1

flexnovo = tabmemoria("lc08sistema")

flexnovo.Col = 2

flexnovo = tabmemoria("lc08endereco")

flexnovo.Col = 3

flexnovo = tabmemoria("lc08validade")

flexnovo.Col = 4

flexnovo = tabmemoria("lc08licenca")

ElseIf frmoficina.ctrltabela = "2" Then

flexnovo.Col = 0

flexnovo = tabmemoria("us07nome")

flexnovo.Col = 1

flexnovo = String(Len(tabmemoria("us07senha")), "*")

flexnovo.Col = 2

flexnovo = tabmemoria("us07tipo")

flexnovo.Col = 3

flexnovo = tabmemoria("us07imagem")

ElseIf frmoficina.ctrltabela > "2" And frmoficina.ctrltabela < "8" Then

flexnovo.Col = 0

flexnovo = tabmemoria("codigo")

flexnovo.Col = 1

flexnovo = tabmemoria("descricao")

ElseIf frmoficina.ctrltabela = "8" Then

flexnovo.Col = 0

flexnovo = tabmemoria("frota")

flexnovo.Col = 1

flexnovo = tabmemoria("placa")

flexnovo.Col = 2

flexnovo = Left(tabmemoria("empresa.descricao"), 15)

flexnovo.Col = 3

flexnovo = Left(tabmemoria("tipo.descricao"), 10)

flexnovo.Col = 4

flexnovo = Left(tabmemoria("modelo.descricao"), 15)

flexnovo.Col = 5

flexnovo = Left(tabmemoria("setor.descricao"), 15)

flexnovo.Col = 6

flexnovo = Left(tabmemoria("estado.descricao"), 10)

ElseIf frmoficina.ctrltabela = "9" Then

flexnovo.Col = 0

flexnovo = tabmemoria("data_entrada")

flexnovo.Col = 1

flexnovo = tabmemoria("hora_entrada")

flexnovo.Col = 2

flexnovo = tabmemoria("equipamento")

flexnovo.Col = 3

flexnovo = tabmemoria("complemento")

flexnovo.Col = 4

flexnovo = Left(tabmemoria("motivo_parada"), 30)

flexnovo.Col = 5

flexnovo = tabmemoria("data_saida")

flexnovo.Col = 6

flexnovo = tabmemoria("hora_saida")

flexnovo.Col = 7

flexnovo = tabmemoria("hora_parada")

End If

tabmemoria.MoveNext

If tabmemoria.EOF = False Then

Me.flexnovo.AddItem ""

flexnovo.Row = flexnovo.Rows - 1

End If

Loop

End If

Call ZebrarGrid(Me.flexnovo)

Call AjustarColunaGrid(Me.flexnovo, Me)

flexnovo.Row = 1

flexnovo.Redraw = True

End Function

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...