Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BENE45

DBGrid Virtual

Recommended Posts

Amigos Boa noite,Estou com problema em um sistema de vendas que estou desenvolvendo.A duvida é que eu gostaria de colocar um espécie de DBGrid vrtual no formulario de venda do produto no balcão, ou seja, a pessoa vai passando o produto pelo sistema e automaticamente o sistema vai inserindo os produtos numa DBGrid virtual e depois que for feita a somatoria ai sim os produtos registrados nessa DBgrid virtual, passara para o banco de dados que no caso é o acess, ai essa DBGrid virtual ficaria limpa sem registros para proxima venda.Agradeço desde já...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para fazer com uma DBGrid, se você tiver conhecimentos com o ClientDataSet você pode usar um em memória, sem conexão a banco de dados. Irá Funcionar como qualquer Dataset. Exemplo:-Insira um ClientDataSet e um DataSource no Form/DataModule;-Clique duas vezes para abrir o editor de campos.-Crie os campos tipo: IDProduto(Integer), Nome Produto(String), etc. (Crie todos os campos como Data, não Calculated/Lookup/Agreggate)-Crie um campo Agreggate para fazer a soma e crie a expression para somar. Ex: SUM(Quantidade * Valor).-Feche o editor de campos -> botao direito no ClientDataset -> Generate Dataset.-Nesse ponto seu dataset deve estar ativo e funcionando.-Atribua esse ClientDataSet ao DataSource e o DataSouce na DBGrid.Depois de inserir os dados na grid em runtime:Banco.ClientDataSet1.First;while Banco.ClientDataSet1.Eof = False do begin SeuDataSet.Insert; SeuDataSetIDProduto.Value := Banco.ClientDataSet1IDProduto.Value; (Ou use o FieldbyName("IDProduto"); .... .... //Grave o dataset no banco ClientDataSet1.Next; end;depois é só limpar os registros do ClientDataSet ao fechar ou abrir o form.Acho q dá pra ter uma idéia.A Vantagem de usar esse método é que você pode atribuir tipos de dados aos campos, sem a necessidade de conversão/validação por exemplo em campos numéricos. O que não é possivel usando uma stringgrid.Espero ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.