MSFLEXGRID E SCROLLBAR
Gente, já tentei de todo jeito resolver isso.
Tenho um flexgrid onde não consigo que apareça o scrollbar nele, os registros ultrapassam a tela e não consigo selecioná-los, alguém pode me ajudar ?
O Trecho do código é o seguinte:
-- Inicio ---
Private Sub CarregaGrid(param As String)
Dim coluna As Integer
Dim linha As Integer
Dim largura_coluna() As Single
Dim largura_campo As Single
gridProduto.Rows = 2
gridProduto.Cols = 6
[ô] define linhas fixas igual a um e não usa colunas fixas
gridProduto.FixedRows = 1
gridProduto.FixedCols = 0
Connect
Select Case param
Case [Ô]Codigo[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto WHERE produtos.codinterno LIKE [ô]%[Ô] & txtCodigo & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Case [Ô]Nome[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto WHERE produtos.nome LIKE [ô]%[Ô] & txtNome & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Case [Ô]Todos[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto[Ô], CON, adOpenStatic, adLockOptimistic
End Select
[ô] define o numero de linhas e colunas e cria uma matrix com o total de registros a exibir
gridProduto.Rows = 1
gridProduto.Cols = RS.Fields.Count
ReDim largura_coluna(0 To RS.Fields.Count - 1)
[ô] exibe os cabeçalhos das colunas
For coluna = 0 To RS.Fields.Count - 1
gridProduto.TextMatrix(0, coluna) = RS.Fields(coluna).Name
largura_coluna(coluna) = TextWidth(RS.Fields(coluna).Name)
Next coluna
[ô] exibe o valor de cada linha
linha = 1
Do While Not RS.EOF
gridProduto.Rows = gridProduto.Rows + 1
For coluna = 0 To RS.Fields.Count - 1
If IsNull(RS.Fields(coluna).Value) Then
gridProduto.TextMatrix(linha, coluna) = [Ô][Ô]
Else
gridProduto.TextMatrix(linha, coluna) = RS.Fields(coluna).Value
End If
[ô] verifica o tamanho dos campos
If IsNull(RS.Fields(coluna).Value) Then
largura_campo = 0
Else
largura_campo = TextWidth(RS.Fields(coluna).Value)
End If
If largura_coluna(coluna) < largura_campo Then largura_coluna(coluna) = largura_campo
Next coluna
RS.MoveNext
linha = linha + 1
Loop
regContador = CStr(RS.RecordCount)
If gridProduto.Rows > 2 Then
Me.Caption = [Ô]Buscar Produto - [Ô] & regContador & [Ô] produtos encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Produto - [Ô] & regContador & [Ô] produto encontrado[Ô]
End If
Disconnect
[ô] define a largura das colunas no grid
For coluna = 0 To gridProduto.Cols - 1
gridProduto.ColWidth(coluna) = largura_coluna(coluna) + 240
Next coluna
gridProduto.ScrollBars = flexScrollBarBoth
gridProduto.TopRow = gridProduto.Rows - 1
gridProduto.Rows = 14
gridProduto.FixedRows = 1
gridProduto.WordWrap = True
End Sub
--- Fim ---
Grato.
Jose Carlos Ribeiro
Tenho um flexgrid onde não consigo que apareça o scrollbar nele, os registros ultrapassam a tela e não consigo selecioná-los, alguém pode me ajudar ?
O Trecho do código é o seguinte:
-- Inicio ---
Private Sub CarregaGrid(param As String)
Dim coluna As Integer
Dim linha As Integer
Dim largura_coluna() As Single
Dim largura_campo As Single
gridProduto.Rows = 2
gridProduto.Cols = 6
[ô] define linhas fixas igual a um e não usa colunas fixas
gridProduto.FixedRows = 1
gridProduto.FixedCols = 0
Connect
Select Case param
Case [Ô]Codigo[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto WHERE produtos.codinterno LIKE [ô]%[Ô] & txtCodigo & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Case [Ô]Nome[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto WHERE produtos.nome LIKE [ô]%[Ô] & txtNome & [Ô]%[ô][Ô], CON, adOpenStatic, adLockOptimistic
Case [Ô]Todos[Ô]
RS.Open [Ô]SELECT produtos.idproduto AS ID, produtos.codinterno AS Codigo, produtos.nome AS Produto, produtos.codbarras AS Cod_Barras, unidades.descreduzida AS UN, tipoprodutos.descricao AS Tipo, fabricantes.nome AS Fabricante FROM ((produtos INNER JOIN fabricantes ON produtos.idfabricante = fabricantes.idfabricante) INNER JOIN unidades ON produtos.idunidade = unidades.idunidade) INNER JOIN tipoprodutos ON produtos.idtipoproduto = tipoprodutos.idtipoproduto[Ô], CON, adOpenStatic, adLockOptimistic
End Select
[ô] define o numero de linhas e colunas e cria uma matrix com o total de registros a exibir
gridProduto.Rows = 1
gridProduto.Cols = RS.Fields.Count
ReDim largura_coluna(0 To RS.Fields.Count - 1)
[ô] exibe os cabeçalhos das colunas
For coluna = 0 To RS.Fields.Count - 1
gridProduto.TextMatrix(0, coluna) = RS.Fields(coluna).Name
largura_coluna(coluna) = TextWidth(RS.Fields(coluna).Name)
Next coluna
[ô] exibe o valor de cada linha
linha = 1
Do While Not RS.EOF
gridProduto.Rows = gridProduto.Rows + 1
For coluna = 0 To RS.Fields.Count - 1
If IsNull(RS.Fields(coluna).Value) Then
gridProduto.TextMatrix(linha, coluna) = [Ô][Ô]
Else
gridProduto.TextMatrix(linha, coluna) = RS.Fields(coluna).Value
End If
[ô] verifica o tamanho dos campos
If IsNull(RS.Fields(coluna).Value) Then
largura_campo = 0
Else
largura_campo = TextWidth(RS.Fields(coluna).Value)
End If
If largura_coluna(coluna) < largura_campo Then largura_coluna(coluna) = largura_campo
Next coluna
RS.MoveNext
linha = linha + 1
Loop
regContador = CStr(RS.RecordCount)
If gridProduto.Rows > 2 Then
Me.Caption = [Ô]Buscar Produto - [Ô] & regContador & [Ô] produtos encontrados[Ô]
Else
Me.Caption = [Ô]Buscar Produto - [Ô] & regContador & [Ô] produto encontrado[Ô]
End If
Disconnect
[ô] define a largura das colunas no grid
For coluna = 0 To gridProduto.Cols - 1
gridProduto.ColWidth(coluna) = largura_coluna(coluna) + 240
Next coluna
gridProduto.ScrollBars = flexScrollBarBoth
gridProduto.TopRow = gridProduto.Rows - 1
gridProduto.Rows = 14
gridProduto.FixedRows = 1
gridProduto.WordWrap = True
End Sub
--- Fim ---
Grato.
Jose Carlos Ribeiro
antes do end sub retira a linha [Ô] gridProduto.Rows = 14[Ô]
Citação::
antes do end sub retira a linha [Ô] gridProduto.Rows = 14[Ô]
Nada feito, não apareceu o scrollbar
Você pode mostrar a tela da sua aplicação ANTES e depois de povoar o GRID?
é possÃvel que a ÃREA do grid seja maior que a tela.
é possÃvel que a ÃREA do grid seja maior que a tela.
Citação::
Você pode mostrar a tela da sua aplicação ANTES e depois de povoar o GRID?
é possÃvel que a ÃREA do grid seja maior que a tela.
Obrigado eu resolvi de outra forma.
meu camarada informa como vc resolveu seu problema para que possamos todos saber.
Citação::
meu camarada informa como vc resolveu seu problema para que possamos todos saber.
Eu tinha uma rotina que centralizava o formulário na tela, e ela estava dando problema, removi e o problema foi sanado.
Grato.
Tópico encerrado , respostas não são mais permitidas