Mudança de linha no dbgrid
Boa tarde antes de mais nada gostaria de citar que este tópico pode ser uma continuação do tópico : https://www.devmedia.com.br/forum/delphi/402828-Problema-com-calculo-de-colunas-no-dbgrid.html ;, onde por empolgação coloquei como concluído, mas ainda tenho alguns problemas.
Como citado no topico acima estou inserindo dados atraves de um dbgrid, ele so mostra a soma depois que dou ENTER no campo TOTAL_VALE e ja vai pra proxima linha do dbgrid, se eu tentar salvar assim ele da erro pois estou tentando salvar um registro sem dados, e se eu salvar sem dar ENTER no campo TOTAL_VALE salva legal, mas não atualiza o campo aggregate.
Estou usando isso no onkeydown do dbgrid :
case Key of vk_return: // Enter pelo Tab begin with DBGrid2 do begin if SelectedIndex = Columns.Count - 1 then // Se o item atual do DbGrid não for o último campo begin if cdsMovVale.eof then// cdsMovVale.Insert cdsMovVale.Append else begin cdsMovVale.next; end;
// se for o ultimo registro insere um novo, // caso contrario ele passa para o proximo registro SelectedIndex := 0; // Posiciona na primeira celula end else SelectedIndex := SelectedIndex + 1; // Se nao estive na ultima celula passa a proxima end;
end;
Agradeço desde já
Alexandre
Como citado no topico acima estou inserindo dados atraves de um dbgrid, ele so mostra a soma depois que dou ENTER no campo TOTAL_VALE e ja vai pra proxima linha do dbgrid, se eu tentar salvar assim ele da erro pois estou tentando salvar um registro sem dados, e se eu salvar sem dar ENTER no campo TOTAL_VALE salva legal, mas não atualiza o campo aggregate.
Estou usando isso no onkeydown do dbgrid :
case Key of vk_return: // Enter pelo Tab begin with DBGrid2 do begin if SelectedIndex = Columns.Count - 1 then // Se o item atual do DbGrid não for o último campo begin if cdsMovVale.eof then// cdsMovVale.Insert cdsMovVale.Append else begin cdsMovVale.next; end;
// se for o ultimo registro insere um novo, // caso contrario ele passa para o proximo registro SelectedIndex := 0; // Posiciona na primeira celula end else SelectedIndex := SelectedIndex + 1; // Se nao estive na ultima celula passa a proxima end;
end;
Agradeço desde já
Alexandre
Alexandre Torres
Curtidas 0
Respostas
Nigro
10/06/2011
Bom dia.
Nesse caso seria mesmo uma questão de conceitos, para mim, inputar dados pelo DBGrid seria inviável, mas se você preferir assi, aconselho fazer todas as validações nos eventos do seu dataset.
GOSTEI 0
Alexandre Torres
10/06/2011
Bom dia Nigro,
sobre as validações realmente estou fazendo as mudanças para as validações no dataset, mas ainda assim fico com o problema citado no post, que é quando estou inserindo o inten ou itens ele sempre pula pra proxima linha do dbgrid, impossibilitando assim salvar o registro pois ele cria um novo registro em branco e da erro na minha validação, e se eu não der enter no meu último campo que é o valor total ele não soma mu campo agreggate.
Tem alguma idéia pra isso?
Agradeço desde já,
Alexandre
sobre as validações realmente estou fazendo as mudanças para as validações no dataset, mas ainda assim fico com o problema citado no post, que é quando estou inserindo o inten ou itens ele sempre pula pra proxima linha do dbgrid, impossibilitando assim salvar o registro pois ele cria um novo registro em branco e da erro na minha validação, e se eu não der enter no meu último campo que é o valor total ele não soma mu campo agreggate.
Tem alguma idéia pra isso?
Agradeço desde já,
Alexandre
GOSTEI 0
José
10/06/2011
Este tópico esta sendo fechado por inatividade. Se necessário, sinalizar para que seja reaberto ou abrir um novo.
GOSTEI 0