PROBLEMA MSFLEXGRID
Olá malta,
Pela primeira vez pretendo usar flexgrd no lugar da dtgrid para aplicar algumas funções que vi aqui no site (colorir linha etc). A fxgrid tem como datasource um remote dt source vinculada a tabela cliente. Preciso eliminar alguns campos na hora da apresentação dos dados. Com a dtgrid eu definia os campos no projecto, pelo que vejo com msflexgrid esta faz-se em tempo de execução (julgo eu!).
Alguem pode ensinar-me a manipular a FlexGrid? Preciso que ela apresente somente os dados pretendidos da tabela e não todos. Quero alterar a caption no headline pois ela apresenta o nome do campo na BD.
Pela primeira vez pretendo usar flexgrd no lugar da dtgrid para aplicar algumas funções que vi aqui no site (colorir linha etc). A fxgrid tem como datasource um remote dt source vinculada a tabela cliente. Preciso eliminar alguns campos na hora da apresentação dos dados. Com a dtgrid eu definia os campos no projecto, pelo que vejo com msflexgrid esta faz-se em tempo de execução (julgo eu!).
Alguem pode ensinar-me a manipular a FlexGrid? Preciso que ela apresente somente os dados pretendidos da tabela e não todos. Quero alterar a caption no headline pois ela apresenta o nome do campo na BD.
vc está usando o componente Data? Se sim, é só colocar a sua consulta com o critério restritivo tipo select campo1,campo2 from tabela where campoX = Y
para mudar a headline, faça isso:
select campo1 as NovoNome1,campo2 as NovoNome2 from tabela where campoX = Y
para mudar a headline, faça isso:
select campo1 as NovoNome1,campo2 as NovoNome2 from tabela where campoX = Y
se a sua conexão for ODBC:
Dim TB As ADODB.Recordset
Set TB = New ADODB.Recordset
With MSFlexGrid
.Visible = False
.Clear
TB.Source = [Ô]Select ID as [IDReg], I_xProd as [Descrição], I_uCom as [Und. Comercial],[Ô]
TB.Source = TB.Source + [Ô] I_vUnCom as [Valor Unt.], N02_orig as [Origem da Mercadoria],[Ô]
TB.Source = TB.Source + [Ô] ICMS, IPI[Ô]
TB.Source = TB.Source + [Ô] from FISCAL_PRODUTOS where I_xprod like [ô]%[Ô] & xtex & [Ô]%[ô][Ô]
TB.Source = TB.Source + [Ô] order by id[Ô]
TB.Open , cn, adOpenDynamic, adLockOptimistic
Do Until Not TB.EOF
GoTo fim:
TB.NextRecordset
Loop
MSRDC.DataSourceName = [Ô]LISTA[Ô] [ô]a ODBC
MSRDC.SQL = TB.Source
MSRDC.Refresh
[ô] tamanho de cada coluna
.ColWidth(0) = 300 [ô] esta coluna é a fixa
.ColWidth(1) = 600 [ô] ID
.ColWidth(2) = 2000 [ô] Descrição
.ColWidth(3) = 800 [ô] Und. Comercial
.ColWidth(4) = 1400 [ô] Valor Unt.
.ColWidth(5) = 2000 [ô] Origem da Mercadoria
.ColWidth(6) = 1400 [ô] ICMS
.ColWidth(7) = 1400 [ô] IPI
.Visible = True
end with
ATENÇÃO AMIGO!!!
oBSERVE O NOME DOS COMPONETES
Deu pra Entender amigo?
Dim TB As ADODB.Recordset
Set TB = New ADODB.Recordset
With MSFlexGrid
.Visible = False
.Clear
TB.Source = [Ô]Select ID as [IDReg], I_xProd as [Descrição], I_uCom as [Und. Comercial],[Ô]
TB.Source = TB.Source + [Ô] I_vUnCom as [Valor Unt.], N02_orig as [Origem da Mercadoria],[Ô]
TB.Source = TB.Source + [Ô] ICMS, IPI[Ô]
TB.Source = TB.Source + [Ô] from FISCAL_PRODUTOS where I_xprod like [ô]%[Ô] & xtex & [Ô]%[ô][Ô]
TB.Source = TB.Source + [Ô] order by id[Ô]
TB.Open , cn, adOpenDynamic, adLockOptimistic
Do Until Not TB.EOF
GoTo fim:
TB.NextRecordset
Loop
MSRDC.DataSourceName = [Ô]LISTA[Ô] [ô]a ODBC
MSRDC.SQL = TB.Source
MSRDC.Refresh
[ô] tamanho de cada coluna
.ColWidth(0) = 300 [ô] esta coluna é a fixa
.ColWidth(1) = 600 [ô] ID
.ColWidth(2) = 2000 [ô] Descrição
.ColWidth(3) = 800 [ô] Und. Comercial
.ColWidth(4) = 1400 [ô] Valor Unt.
.ColWidth(5) = 2000 [ô] Origem da Mercadoria
.ColWidth(6) = 1400 [ô] ICMS
.ColWidth(7) = 1400 [ô] IPI
.Visible = True
end with
ATENÇÃO AMIGO!!!
oBSERVE O NOME DOS COMPONETES
Deu pra Entender amigo?
Não conheço esse tipo de conexão para MSFlexGrid, eu uso ela e populo da seguinte forma:
rsTable.open [Ô]SELECT Campo1, Campo2, Campo3 FROM Tabela[Ô],ADOconn
if rsTable.eof then Exit Sub
msFlexGrid.FormatString [Ô]|<Campo1 |<Campo2 |<Campo3[Ô] [ô] Esta é a primeira linha da grid... como se fosse o tÃtulo
x=1
Do Until rsTable.EOF
msFlexGrid.textMatrix(1,x)=rsTable([Ô]Campo1[Ô])
msFlexGrid.textMatrix(2,x)=rsTable([Ô]Campo2[Ô])
msFlexGrid.textMatrix(3,x)=rsTable([Ô]Campo3[Ô])
rsTable.movenext
x = x + 1
Loop
rsTable.close
sendo que: textMatrix([Ô]Numero da Coluna[Ô], [Ô]Numero da Linha[Ô])
rsTable.open [Ô]SELECT Campo1, Campo2, Campo3 FROM Tabela[Ô],ADOconn
if rsTable.eof then Exit Sub
msFlexGrid.FormatString [Ô]|<Campo1 |<Campo2 |<Campo3[Ô] [ô] Esta é a primeira linha da grid... como se fosse o tÃtulo
x=1
Do Until rsTable.EOF
msFlexGrid.textMatrix(1,x)=rsTable([Ô]Campo1[Ô])
msFlexGrid.textMatrix(2,x)=rsTable([Ô]Campo2[Ô])
msFlexGrid.textMatrix(3,x)=rsTable([Ô]Campo3[Ô])
rsTable.movenext
x = x + 1
Loop
rsTable.close
sendo que: textMatrix([Ô]Numero da Coluna[Ô], [Ô]Numero da Linha[Ô])
Tópico encerrado , respostas não são mais permitidas