Manipulação dos dados digitados

As colunas criadas já possuem um tratamento interno dos dados digitados pelo usuário, no entanto, a depender da necessidade este comportamento pode ser substituído em parte ou totalmente.

  • Quando o tratamento utilizado for o tratamento padrão, os dados digitados pelo usuário poderão ser acessados através da propriedade Valores (deverá ser usado um typecast para TDataSet). Este dataset irá possuir os campos Coluna, NewChave e Valor. Onde o campo Coluna irá conter o nome da coluna no formato: NomeDaView + VSCOLDYN_ + NomeDaColuna (sem espacos, acentos e cedilha). O campo NewChave irá conter a chave do registro, seja a chave natural, seja a chave definida no parâmetro CamposChave.

  • Quando for necessário realizar o tratamento manual dos dados digitados pelo usuário, deverão ser utilizadas as propriedades EventoAlterouValorNoGrid e EventoMostrarValorNoGrid;

Exemplos de utilização:

Uses Classes, Graphics, Controls, Forms, Dialogs, CxGridCol, DB; var col1 : TcxGridColuna; col2 : TcxGridColuna; col3 : TcxGridColuna; col4 : TcxGridColuna; col5 : TcxGridColuna; col6 : TcxGridColuna; col7 : TcxGridColuna; col8 : TcxGridColuna; col9 : TcxGridColuna; Valores : TStringList; procedure MeuMostrarValorNoGrid(AChave : String; var ATexto: String); begin // Utiliza a AChave para localizar um valor e retorna o mesmo para ser // mostrado no grid ATexto := Valores.Values[AChave]; end; procedure MeuAlterouValorNoGrid(AChave, ATexto: String); begin // Utiliza o campo AChave para guardar o valor que o usuário digitou Valores.Values[AChave]:= ATexto; procedure MeuOnExecute(Sender : TObject); begin if TDataSet(col1.Valores).RecordCount > 0 then begin ShowMessage('Existem ' + IntToStr(TDataSet(col1.Valores).RecordCount) + ' a serem salvos!!');; end; inherited(Sender, 'OnExecute'); end; procedure MeuButtonClick(AButtonIndex : String; var Retorno : String); begin if MessageDlg('Deseja Retornar data e hora?', mtWarning, SetOf([mbYes, mbNo]), 0) = mrYes then Retorno := FormatDateTime('hh:nn:ss:zzzz', Now); end; begin ActSalvar.OnExecute := 'MeuOnExecute'; Valores := TStringList.Create; col1 := TcxGridColuna.Create(ViewFormaPagamento, 'String éíóúçâ', 'String' , 5, 'FORMAPGTO'); col1.Largura := 200; col1.EventoAlterouValorNoGrid := 'MeuAlterouValorNoGrid'; col1.EventoMostrarValorNoGrid := 'MeuMostrarValorNoGrid'; col2 := TcxGridColuna.Create(ViewFormaPagamento, 'Número', 'Numero', 0, 'FORMAPGTO'); col2.Decimais := 2; col3 := TcxGridColuna.Create(ViewFormaPagamento, 'Boolean', 'Boolean', 0, 'FORMAPGTO'); col4 := TcxGridColuna.Create(ViewFormaPagamento, 'Inteiro', 'Inteiro', 0, 'FORMAPGTO'); col5 := TcxGridColuna.Create(ViewFormaPagamento, 'EditButton', 'ButtonEdit', 0, 'FORMAPGTO'); col5.EventoClicouBotao := 'MeuButtonClick'; col6 := TcxGridColuna.Create(ViewFormaPagamento, 'Combo', 'Combo', 0, 'FORMAPGTO'); col6.Itens := 'Item 1;Item 2;Item 3'; col6.Largura := 80; col7 := TcxGridColuna.Create(ViewFormaPagamento, 'Data', 'Data', 0, 'FORMAPGTO'); col7.Largura := 100; col8 := TcxGridColuna.Create(ViewFormaPagamento, 'Hora', 'Hora', 0, 'FORMAPGTO'); col8.Largura := 100; col9 := TcxGridColuna.Create(ViewFormaPagamento, 'Data e Hora', 'DataHora', 0, 'FORMAPGTO'); col9.Largura := 150; end; end;