Como monitorar dados de um ClientDataSet

Delphi

06/11/2013

Olá pessoal!

Gostaria de algumas idéias para fazer algumas críticas na minha aplicação.
Estou criando um sistema de emissão de NFe e preciso verificar os campos NCM, CFOP e UND do produto.
Esses campos estão presentes no ClienteDataSet e mostrados no DBGrid.
Quando esses campos apresentam algum problema eu mudo a cor do fundo da célula para um vermelho claro. Até ai tudo ok.

Eu gostaria que quando eu clicasse no botão GerarNFe, se houver alguma célula com fundo vermelho claro, por exemplo, o programa desse uma mensagem informando que há produto(s) com dados incorretos.

Mas isso sem ter que ler registro à registro do ClienDataSet.

Agradeço desde já qualquer ajuda.
Vagner Almeida

Vagner Almeida

Curtidas 0

Respostas

Gustavo Bretas

Gustavo Bretas

06/11/2013

Vagner, tem uma opção. Como vc já tem o evento que pinta a Célula, no momento de "pintar" a célula, grave essa informação em uma lista, quando o usuário clicar no botão antes de corrigir, mostre a mensagem com o conteúdo da lista, sacou?
GOSTEI 0
Vagner Almeida

Vagner Almeida

06/11/2013

Estava pensando em uma variável booleana para informar se existe algum problema em algum produto ou não.

Variavel = True -> Sem problemas
Variavel = False -> Existe produtos com problemas

Apenas uma idéia.
Acha que daria para fazer algo assim ou precisaria de uma lista mesmo?
GOSTEI 0
Gustavo Bretas

Gustavo Bretas

06/11/2013

Variável da também, mas eu acho mais interessante ressaltar pro usuário o que esta com problema, fica a seu critério!
GOSTEI 0
Vagner Almeida

Vagner Almeida

06/11/2013

Essa crítica já estou fazendo.

Deixo toda a linha do registro, no Grid em vermelho, e quando o usuário selecionar o registro em destaque, é apresentado uma mensagem no StatusBar para ele pressionar Ctrl+i para obter informações de quais problemas o registro (produto) possui e como corrigi-las.

Eu gostaria de algo que ficasse informando se há algum problema em algum registro, se houver, não deixar Gerar a NFe e apresentar uma mensagem: "Existe um ou mais registros incorretos", por exemplo.

Acho que encontrei uma solução: Vou criar uma variável do tipo Inteiro e toda vez que houver um registro com problema sera incrementado 1 à essa variável. Enquanto ela não for igual a zero significa que há N registros incorretos.

Fico grato se houver mais idéias.
Obrigado pela atenção.
GOSTEI 0
POSTAR