QUEM UTILIZA O LYNXGRID...

PERCIFILHO 16/03/2011 16:15:24
#368155
Olá, pessoal, estou começando a utilizar o LynxGrid, por sinal é uma grid muito bom. Mas estou tentando realizar uma operação com ele e não estou conseguindo. O Grid é CheckBoxes=True. O usuário selecionará vários registros e os registros selecionados serão gravados no BD com o status [Ô]OK[Ô].
Tentei assim:

For lRow = 0 To GridTitulos.ItemCount - 1
sqltitulos = [Ô]Select * From Titulos Where codigo Like [ô][Ô] & GridTitulos.CellText(GridTitulos.Row, 0) & [Ô][Ô][Ô]
Set rstitulos= db.OpenRecordset(sqltitulos)
If Gridtitulos.ItemChecked(lRow) = True Then
rstitulos.Edit
rstitulos([Ô]status[Ô]) = [Ô]OK[Ô]
ElseIf GridTitulos.ItemChecked(lRow) = False Then
rstitulos.Edit
rstitulos([Ô]STATUS[Ô]) = [Ô][Ô]
End If
rstitulos.Update
rstitulos.MoveNext
Next

Mas sem sucesso. Alguém pode me ajudar?

Até mais.

KERPLUNK 16/03/2011 16:26:04
#368159
Não é mais fácil fazer isso já no carregamento de dados para o Grid? Poderia criar uma subquery na tua query principal indicando 0/1 para ausência/presença de títulos... assim, já ao preencher, vc coloca se está ok o status. Assim, não precisa percorrer o grid duas vezes. Aliás, boa escolha, lynxgrid é realmente muito bom
PERCIFILHO 16/03/2011 16:32:04
#368162
Obrigado, Kerplunk. Eu coloquei só um exemplo. No meu caso é diferente. Vou explicar corretamente.
No Grid estão os nomes dos dependentes de um funcionário (esposa+ 4 filhos).
Preciso selecionar, por exemplo, a esposa e um dos filhos somente. E os registros que forem selecionados serão gravados o status na tabela. é isso que eu preciso, na verdade. O exemplo que eu coloquei foi apenas para tentar facilitar o entendimento.
Já tentei de várias formas, porém não consegui ainda (estou aqui, tentando).
Até mais.
KERPLUNK 16/03/2011 16:50:38
#368172
Esses dados a mais, podem ser tb subqueries...
PERCIFILHO 16/03/2011 17:00:20
#368177
Eu faço assim:
Pesquiso na tabela de dependentes os nomes que são dependentes do funcionário.

sqldependentes = [Ô]Select * From Dependentes Where codigofuncionario Like [ô][Ô] & TxtCodigoFuncionario.Text & [Ô][ô][Ô]

encontrando, preencho a Grid com os nomes encontrados.

Quando o usuário selecionar os registros, clica no botão OK.

Daí, faço um for....next na Grid e verifico quais os nomes que estão selecionados, gravando o status na tabela.

For lrow = 0 To GridDependentes.ItemCount -1
If GridDependentes.ItemChecked(lrow) = True Then ---> essa linha é que não está certa.
rsdependentes.edit
rsdependentes([Ô]status[Ô])=[Ô]OK
rsdependentes.update
Else
rsdependentes.edit
rsdependentes([Ô]status[Ô])=[Ô][Ô]
rsdependentes.update
Endif
Next

Espero ter explicado melhor.

Até mais.
KERPLUNK 16/03/2011 17:08:06
#368181
Certo, entendi. O melhor a fazer é verificar se [Ô]GridDependentes.ItemChecked(lrow)[Ô] retorna mesmo um boolean, verifique o valor de retorno disso...
PERCIFILHO 17/03/2011 09:27:30
#368232
Cara, pelejei muito, mas consegui (eu sabia que conseguiria, pois sou assim mesmo, não desisto nunca).

O erro estava não na Grid, nem no laço For...Next, mas sim na consulta sql.

sqldependentes = [Ô]Select * From Dependentes Where codigodependente Like [ô][Ô] & GridDependentes.CellText(GridDependentes.Row, 0) & [Ô][ô]

O correto é: sqldependentes = [Ô]Select * From Dependentes Where codigodependente Like [ô][Ô] & GridDependentes.CellText(lRow, 0) & [Ô][ô]

Até mais.
Tópico encerrado , respostas não são mais permitidas