[OFF] EDICAO NO GRID. PERMITIR OU NAO?

ASHKATCHUP 11/01/2010 21:25:33
#331639
Boa noite, caros companheiros de VB.
Agora pouco, eu estava fazendo um programa para um amigo quando me passou uma questão pela cabeça: vale a pena permitir edição no grid?

Fazer tudo no grid fica mais [Ô]bonito[Ô], porém vale a pena fazer todas as tratativas decorrentes disso? Se você tiver que colocar uma coluna não-editável, não será uma dor de cabeça do cão?


Gostaria de ouvir a opinião de vocês.
MARCELO.TREZE 11/01/2010 22:32:20
#331642
Na realidade Ash penso assim, vc não deve medir pela beleza e sim pela praticidade, ou seja, muitas vezes vc permitir edição no grid pode tornar as coisas mais práticas.

um exemplo foi um cartão de ponto que criei, nele vc digita os horarios em suas colunas especificas, e em duas ultimas colunas já são exiibidos as horas extra a 50% e 60%.

se eu fosse fazer isso para exibir em textbox box separados teria pratcamente a mesma codificaçào e não iria dar o efeito desejado.

ale[ô]m de ocupar um espaço maior em minha tela, neste caso foi pratico fazer um grid editavel.

TECLA 12/01/2010 11:13:45
#331657
Depende.
Normalmente, só utilizo edição direta no GRID quando é IMPRESCINDÍVEL para a aplicação (ou quando o cliente solicita).
NICOLLAS2 12/01/2010 13:43:52
#331681
pois é... isso sempre foi um problema... como trato um erro no grid.. tipo o campo é numerico e o cara vai editar texto no grid?
eu nunca deixo editar diretamente no mesmo, é sempre uma segunda tela.

MARCELO.TREZE 13/01/2010 00:29:37
#331737
Bom quanto ao que o NICOLLAS disse.

Citação:

:
pois é... isso sempre foi um problema... como trato um erro no grid.. tipo o campo é numerico e o cara vai editar texto no grid?
eu nunca deixo editar diretamente no mesmo, é sempre uma segunda tela.



bom eu trato erros sem problemas, ou seja permitoque sejam digitados apenas letras ou apenas numeros no grid.


TECLA 13/01/2010 13:45:31
#331769
Citação:

:
pois é... isso sempre foi um problema... como trato um erro no grid.. tipo o campo é numerico e o cara vai editar texto no grid?
eu nunca deixo editar diretamente no mesmo, é sempre uma segunda tela.



Não tem segredo, a rotina é [Ô]parecida[Ô] com a utilzada em controles do tipo caixa de texto.
ASHKATCHUP 13/01/2010 14:24:27
#331773
O grid que eu uso no trabalho se chama VSFLexGrid. Com ele, vale a pena permitir a edição no próprio grid, pois ele é um ótimo componente.
Porém, se tiver que utilizar o MSFLEXGRID com textbox flutuante, eu prefiro fazer uma tela a parte.
MARCELO.TREZE 15/01/2010 14:32:12
#332034
ash eu não utilizo textbox flutuante, é algo mais simples ainda veja


veja o código

Private Sub grid_KeyDown(KeyCode As Integer, Shift As Integer)
[ô]aqui são apagados todos caracteres da cellula ao clicar em DEL
Select Case KeyCode
Case 46 [ô]<Del>, apaga celula
grid.Tag = grid
grid = [Ô][Ô]
End Select
End Sub


Private Sub grid_KeyPress(KeyAscii As Integer)
[ô]abaixo as teclas pressionadas são capturadas por Keyascii
[ô]e lançadas no flexgrid
Select Case KeyAscii
Case 13 [ô]Tecla ENTER
Advance_Cell [ô]Avancar para nova cellula
Case 8 [ô]Backspace
If Len(grid) Then
grid = Left$(grid, Len(grid) - 1)
End If
Case 27 [ô]ESC
If grid.Tag > [Ô][Ô] Then [ô]Se todos forem NULL
grid = grid.Tag [ô]Retorna ao texto original
End If
Case Else
grid = grid + Chr(KeyAscii)
End Select
End Sub




Private Sub Advance_Cell()                  [ô]Avancar para proxima cellula
With grid
.HighLight = flexHighlightNever
If .Col < .Cols - 3 Then
.Col = .Col + 1
Else
If .Row < .Rows - 1 Then
.Row = .Row + 1 [ô]Desce uma linha
.Col = 1
Else
.Row = 1
.Col = 1
End If
End If
If .CellTop + .CellHeight > .Top + .Height Then
.TopRow = .TopRow + 1
End If
.HighLight = flexHighlightAlways
End With
End Sub


é praticamente isto o evento keypress captura a tecla e joga no grid.

ASHKATCHUP 15/01/2010 15:03:45
#332043
Eu utilizei o textbox flutuante uma vez porque o cliente queria utilizar as setinhas do teclado para navegar dentro da célula. Frescura...
Obrigado pelo exemplo, mas eu já conhecia essa técnica.

Depois que eu descobri o VSFLEXGRID, sempre permiti a edição no grid, pois ele é um componente excelente!

Bom, acho que esse tópico já pode ser fechado.


Obrigado a todos que opinaram.
Tópico encerrado , respostas não são mais permitidas