MULTIPLA SELECAO NO MSFLEXGRID
Pessoal,
Preciso de uma ajuda ! Eu estou com esse problema já faz um tempo e não consigo resolver...
Exemplo:
Eu tenho um MSFlexGrid com 10 rows. O que eu quero que ele faça:
- Quero selecionar apenas um registro, sendo ele qualquer row do MSFlexGrid;
- Quero selecionar quantos registros eu quiser do grid (múltipla seleção) e pegar a informação da primeira coluna e armazenar num array...
Alguém pode me ajudar ? Gostaria que me mandassem uma função pronta ...
Esta parte já esta atrasada no meu projeto.
P.S. Selecionar um, selecionar vários eu consegui, mas esta dando alguns erros que eu não consigo resolver. Como, se na grid tem 6 registros e eu seleciono os 3 últimos, ele esta pegando todos os registros. Ele pega os anteriores ...
Preciso de uma ajuda ! Eu estou com esse problema já faz um tempo e não consigo resolver...
Exemplo:
Eu tenho um MSFlexGrid com 10 rows. O que eu quero que ele faça:
- Quero selecionar apenas um registro, sendo ele qualquer row do MSFlexGrid;
- Quero selecionar quantos registros eu quiser do grid (múltipla seleção) e pegar a informação da primeira coluna e armazenar num array...
Alguém pode me ajudar ? Gostaria que me mandassem uma função pronta ...
Esta parte já esta atrasada no meu projeto.
P.S. Selecionar um, selecionar vários eu consegui, mas esta dando alguns erros que eu não consigo resolver. Como, se na grid tem 6 registros e eu seleciono os 3 últimos, ele esta pegando todos os registros. Ele pega os anteriores ...
Oi Frank
No meu projeto eu utilizo o msflexgrid e seleciono as linhas para copiar e colar, excluir linhas selecionadas, inserir nova linha.
MSFLEXGRID.ROW determina de onde começa a seleção
MSFLEXGRID.ROWSEL determina até onde esta indo a seleção
Espero te ajudar,
With msfGrid
Select Case UCase(FUNC)
Case "NEW"
If .RowSel = .Rows - 1 Then
.Rows = .Rows + 1
.Row = .RowSel + 1
.Col = 1
N = 0
U_Def = UBound(mValorDefault, 1)
L_Def = LBound(mValorDefault, 1)
T_Def = U_Def - L_Def
For N = 1 To T_Def
If Len(mValorDefault(N)) 0 Then
.TextMatrix(.Row, N) = mValorDefault(N)
End If
If mColType(N) = CTCheck Then
InsereCheck .Row, .Cols - 1
End If
Next
End If
Case "COPY"
TOT_VETOR = 0
i = .Row
j = .RowSel ' inicio da seleção
If i j Then 'Copiar da menor para a maior
k = i
i = j
j = k
End If
k = j - i
k = k + 1
ReDim VETOR(1 To k, .Cols - 1)
k = 0
For xlin = i To j
k = k + 1
For xcol = 1 To .Cols - 1
VETOR(k, xcol) = .TextMatrix(xlin, xcol)
Next
Next
TOT_VETOR = UBound(VETOR, 1)
Case "PAST"
xcol = .ColSel
msfGrid_LeaveCell
For N = 1 To TOT_VETOR
.AddItem "", .Row
For CCOL = 1 To .Cols - 1
.TextMatrix(.Row, CCOL) = VETOR(N, CCOL)
If mColType(CCOL) = CTCheck Then
InsereCheck .Row, .Cols - 1
If VETOR(N, CCOL) = "" Then
SetCheck False
Else
SetCheck True
End If
End If
Next
.Row = .Row + 1
Next
.Col = xcol
ass. Marcio
No meu projeto eu utilizo o msflexgrid e seleciono as linhas para copiar e colar, excluir linhas selecionadas, inserir nova linha.
MSFLEXGRID.ROW determina de onde começa a seleção
MSFLEXGRID.ROWSEL determina até onde esta indo a seleção
Espero te ajudar,
With msfGrid
Select Case UCase(FUNC)
Case "NEW"
If .RowSel = .Rows - 1 Then
.Rows = .Rows + 1
.Row = .RowSel + 1
.Col = 1
N = 0
U_Def = UBound(mValorDefault, 1)
L_Def = LBound(mValorDefault, 1)
T_Def = U_Def - L_Def
For N = 1 To T_Def
If Len(mValorDefault(N)) 0 Then
.TextMatrix(.Row, N) = mValorDefault(N)
End If
If mColType(N) = CTCheck Then
InsereCheck .Row, .Cols - 1
End If
Next
End If
Case "COPY"
TOT_VETOR = 0
i = .Row
j = .RowSel ' inicio da seleção
If i j Then 'Copiar da menor para a maior
k = i
i = j
j = k
End If
k = j - i
k = k + 1
ReDim VETOR(1 To k, .Cols - 1)
k = 0
For xlin = i To j
k = k + 1
For xcol = 1 To .Cols - 1
VETOR(k, xcol) = .TextMatrix(xlin, xcol)
Next
Next
TOT_VETOR = UBound(VETOR, 1)
Case "PAST"
xcol = .ColSel
msfGrid_LeaveCell
For N = 1 To TOT_VETOR
.AddItem "", .Row
For CCOL = 1 To .Cols - 1
.TextMatrix(.Row, CCOL) = VETOR(N, CCOL)
If mColType(CCOL) = CTCheck Then
InsereCheck .Row, .Cols - 1
If VETOR(N, CCOL) = "" Then
SetCheck False
Else
SetCheck True
End If
End If
Next
.Row = .Row + 1
Next
.Col = xcol
ass. Marcio
Tópico encerrado , respostas não são mais permitidas