Dúvidas de Delphi

Delphi

17/04/2003

1- Como impedir a entrada de dados em uma determinada célula de um DBGrid?
2- Como capturar o dado que está sendo digitado em uma determinada célula do DBGrid, antes de sua confirmaçãO com enter?
3- Como impedir a abertura de uma nova linha no DBGrid, caso um determinado campo da linha anterior não tenha sido preenchido?
4- Como numerar corretamente cada linha do DBGrid, ou seja, ter um campo que, a cada nova linha aberta, automáticamente o campo seja preenchido com um número sequencial.
5- Prq os dados digitados nas células de um DBGrid, não são atualizados no momento em que são confirmados, e sim após sair e voltar para o registro. Ex.: Tenho um DBGrid onde serão adicionados os itens a serem vendidos. A cada novo registro que adiciono, um label deverá ser atualizado com o somatório do valor total de todos os itens já lançados no DBGrid(valor total de cada item = quantidade * valor unitário). O somatório é feito com a instrução SQL SUM. O que ocorre é que quando faço alterações nas quantidades dos itens, o valor no label não é atualizado, pois o valor foi alterado apenas no DBGrid e não no AdoDataSet, não sendo visto pelo SUM. Como resolver este problema?. É possível fazer este somatório pegando-se os valores diretamente do DBGrid? Como?. Estou utilizando AdoDataSet no Delphi6 com banco Access 2000.
6- Como utilizar o rollback com AdoDataSet?


Cfreitas

Cfreitas

Curtidas 0

Respostas

Hhhhhh

Hhhhhh

17/04/2003

5 - porque a alteração só é gravada no banco de dados depois de vc der o comando POST (sair e voltar da linha faz isso automaticamente), somente depois que a alteração é feita o select SUM vai fazer efeito.

sugestão: trabalhe com campo calculado, veja a diferença entre o valor antigo do seu campo e o valor novo e faça essa alteração no valor retornado pelo select SUM.
ex.: se o valor do seu campo era 100, o novo é 150 mas vc ainda não gravou as informações com o Post, então seu campo calculado receberá o valor do select SUM, 1000 por exemplo, mais (novo valor - valor antigo). Ou seja, valor do seu campo calculado: os 1050 esperados.


GOSTEI 0
POSTAR