VALIDAR DADOS E DUVIDAS EM SGRID

USUARIO.EXCLUIDOS 24/08/2006 08:15:29
#166960
Seguintes dúvidas no SGrid do VBACcelerator:

  • Como habilitar edição de determinada linha;
  • Como retornar cada valor de cada coluna (prioridade baixa, nao tao dificil);
  • Fazer validação de dados;
  • Fazer ele virar uma grade mesmo, que nem o FlexGrid ou o DBGrid.

    Agradeço.
  • USUARIO.EXCLUIDOS 24/08/2006 09:04:06
    #166973
    bom dia gewton !!

    cara no flexgrid eu tenho um exemplo de como habilitar edição no grid
    estou mandando se te servir blza !!!

    vc vai criar um textbox e vai enganar o software ou seja vc vai inserir valor no textbox e nao no grid , veja :


    txt.move grid.left + grid.cellleft, grid.top + grid.celltop, grid.cellwidth + screen.twipsperpixelx * 2, grid.cellheight


    vc vai ter q fazer algumas consistencias como limpar o txt e assumir o valor do txt na celula ativa !!!!!!!!!!


    aabraço !

    USUARIO.EXCLUIDOS 24/08/2006 09:07:31
    #166975
    hehe

    legal, já fiz isso uma vez.

    valew,

    bom, acho que o sgrid nao tem essas propriedades de cell.eft, celltop, etc... mas valew mesmo. continuo as duvidas com o sgrid
    USUARIO.EXCLUIDOS 24/08/2006 09:18:02
    #166979
    A sugestão do Renato é boa e utilizo também em alguns casos.
    Você pode também digitar no proÂÂÂ'prio msgrid .
    Aqui

    Mas de uma maneira ou outra, o ideal é validar antes de entrar na grade.

    USUARIO.EXCLUIDOS 24/08/2006 12:51:26
    #167041
    Bom, na verdade não é sobre MSGrid que estou falando NIL, mas obrigado assim mesmo.
    Estou falando do SGrid do vbaccelerator.

    Iae pessoal, alguém me ajuda?

    valew
    RICATOM 24/08/2006 13:06:13
    #167043
    Colega

    O exemplo acima é de autoria do MATIOLI, ele me mandou pois estava com dificuldades com os exemplos que vem junto com o SGrid.


    USUARIO.EXCLUIDOS 24/08/2006 13:19:49
    #167047
    Eu também tenho dificuldades com eles. é vb avançado mermo. Vou olhar esse exemplo, obrigado pela ajuda. Posto os resultados já.
    USUARIO.EXCLUIDOS 24/08/2006 13:26:49
    #167050
    Bom, deixa ver se eu entendi. ele passa o valor do txt para a célula. através da função Grid_Edit.
    E esse evento vbalGrid1_RequestEdit é disparado quando?
    outra coisa: pra que serve a propriedade Redraw?

    As outras dúvidas já foram supridas pelo exemplo do vbaccelerator.

    espero que responda essas últimas e obrigado pela ajuda.
    USUARIO.EXCLUIDOS 24/08/2006 14:29:52
    #167067
    Resposta escolhida
    Citação:

    # Como habilitar edição de determinada linha;



    Bem, o exemplo passado pelo RICARDO faz isso, a função Grid_Edit foi criada por mim, embasada nos exemplos da vbAccelerator, foi feita para facilitar na hora de fazer a edição, breve postarei no VBM.

    Respondendo a pergunta acima, o RequestEdit é disparado qdo vc habilita (= True) a propriedade Editable do Grid, caso a propriedade SingleClickEdit estiver = True, então basta um clique na célula para editar, caso contrário, dois cliques serão necessários...

    Citação:

    # Como retornar cada valor de cada coluna (prioridade baixa, nao tao dificil);



    Não entendi bem sua dúvida...:-/
    Mas se vc quer pegar o valor de determinada célula, basta vc pegar a propriedade CellText e passar a linha e coluna:
    MsgBox vBalGrid1.CellText([linha_requerida], [coluna_requerida])


    Caso queira pegar a linha e coluna selecionada:
    MsgBox vBalGrid1.CellText(vbalGrid1.SelectedRow, vbalGrid1.SelectedCol)



    Citação:

    # Fazer validação de dados;



    No evento KeyPress do TextBox, após o If KeyAscii = 13 Then..., vc pode verificar os dados digitados, se forem válidos vc executa as linhas sequenciais, caso contrário dá uma msg de erro...

    OBS: Caso queira q o Grid tb valide a edição ao sair do TextBox, é só vc por o código abaixo no LostFocus do TextBox:
    vbalGrid1.CancelEdit
    vbalGrid1.CellText(vbalGrid1.SelectedRow, vbalGrid1.SelectedCol) = txtEdita



    Citação:

    # Fazer ele virar uma grade mesmo, que nem o FlexGrid ou o DBGrid.



    Simples, coloque a propriedade GridLines = True...
    Verifique tb as propriedades GridFillLineColor, GridLineColor e GridLineMode...
    Na minha opinião, eu gosto dele sem as linhas e zebrado, dá uma aparência mais moderna, mas tem usuários q não gostam...

    Citação:

    outra coisa: pra que serve a propriedade Redraw?


    Basicamente para aumentar a performace do Grid, tipo, qdo Redraw está = False, então td q é feito no Grid NÃO é mostrado em tela, somente será mostrado qdo coloca-se o Redraw = True, sendo assim, SEMPRE q for popular o Grid com VàRIOS dados, coloque tipo assim:
    Grid.Redraw = False
    'códigos para popular
    Grid.Redraw = True


    Para fazer um teste (nem precisa contar tempo, a diferença é perceptivel), popule-o com vários dados, sem por Redraw = False e compare com qdo coloca-se...



    Bem, acho q me empolguei e fale demais, mas ta aí os esclarecimentos, em caso de dúvida é só me dar um toque ^^ ...flw
    USUARIO.EXCLUIDOS 24/08/2006 15:10:18
    #167077
    Muito bem matioli
    Naquele exemplo do sgrid tem as outras coisas bem explicadas também.
    Ah! E eu prefiro assim: Colunas verticais e zebrado tbm.

    Vou usar para banco de dados, vou fazer os testes quando tiver dominado ele (no campo que eu quero, é claro) vou inserir no projeto.

    E vai ter uma parte que vou precisar de um combobox em cada célula de determinada coluna. Mas nos exemplos do VBAccelerator tem também.

    Qualquer dúvdia posto. Obrigado.
    Tópico encerrado , respostas não são mais permitidas