ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

dois banco de dados

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Qua Set 27, 2017 12:45 pm    Assunto: dois banco de dados Responder com Citação

boa tarde a todos

estou com um problema que e o seguinte, tenho um relatorio de vendas que atraves do quick report tras agrupado por codigo do produto a quantidade vendida ate ai tudo funciona perfeitamente porem um cliente pediu que eu preciso informar o estoque atual de cada produto lista neste relatorio para que possa ser feito uma comparacao do produtos vendidos com a quantidade atual do produto.

minha rotina para o relatorio e assim
DS_VDPROD.CLOSE;
sql_VDPROD.CLOSE;
sql_VDPROD.CommandText := 'select cod_barras, descricao, SUM(qtde) AS qtde, val_unit, custo from vendas where data BETWEEN :data1 AND :data2 Group by cod_barras,descricao,val_unit,custo order by qtde desc';
SQL_VDPROD.ParamByName('data1').AsDate := DateTimePicker1.Date;
SQL_VDPROD.ParamByName('data2').AsDate := DateTimePicker2.Date;
Ds_VDPROD.OPEN;

dm_bd.Ds_EMPRESA.Close;
dm_bd.SQL_EMPRESA.Close;
dm_bd.SQL_EMPRESA.CommandText:='SELECT * FROM EMPRESA';
dm_bd.Ds_EMPRESA.OPEN;

Frm_RelVDProd2 := TFrm_RelVDProd2.create(Application);
Frm_RelVDProd2.RelVDProd2.Preview;
DS_VDPROD.Close;

porem como possa fazer para carregar a cada item ou produto a sua quantidade atual atraves da tabela de produto sendo que este relatorio e feito atraves da tabela vendas

alguem pode me ajudar

obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Set 27, 2017 2:17 pm    Assunto: Responder com Citação

Boa tarde,

Qual banco de dados (e versão) você está utilizando?
Qual campo pode ser utilizando para fazer a ligação entre a tabela de vendas e a tabela de produtos?


_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos!v_augusta-residencial-apartamento
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Qua Set 27, 2017 4:18 pm    Assunto: Responder com Citação

imex escreveu:
Boa tarde,

Qual banco de dados (e versão) você está utilizando?
Qual campo pode ser utilizando para fazer a ligação entre a tabela de vendas e a tabela de produtos?


_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-alugar-guarulhos!v_augusta-residencial-apartamento


boa tarde imex

utilizo firebird versao 2.1
nome do campos cod_barras
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Set 27, 2017 5:35 pm    Assunto: Responder com Citação

Experimente utilizar um Join na query mais ou menos dessa forma:

Código:
sql_VDPROD.CommandText := 'select v.cod_barras, v.descricao, SUM(v.qtde) AS qtde, v.val_unit, v.custo, p.estoque ' +
                          'from vendas as v ' +
                          'inner join produtos as p on p.cod_barra = v.cod_barra ' +
                          'where v.data BETWEEN :data1 AND :data2 ' +
                          'Group by v.cod_barras, v.descricao, v.val_unit, v.custo, p.estoque ' +
                          'order by qtde desc';


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Qua Set 27, 2017 6:31 pm    Assunto: Responder com Citação

imex escreveu:
Experimente utilizar um Join na query mais ou menos dessa forma:

Código:
sql_VDPROD.CommandText := 'select v.cod_barras, v.descricao, SUM(v.qtde) AS qtde, v.val_unit, v.custo, p.estoque ' +
                          'from vendas as v ' +
                          'inner join produtos as p on p.cod_barra = v.cod_barra ' +
                          'where v.data BETWEEN :data1 AND :data2 ' +
                          'Group by v.cod_barras, v.descricao, v.val_unit, v.custo, p.estoque ' +
                          'order by qtde desc';


Espero que ajude


imex consegui compilar o sistema, porem como faco para colocar no relatorio quick-report a informacao p.estoque. isso e uma variavel, pois no no quick eu uso ds_vdprod para carregar os campos como eu varia neste casso sendo que no client-database nao tenho o campo p.estoque
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Set 28, 2017 9:24 am    Assunto: Responder com Citação

Esse p.estoque seria o nome do campo onde é gravado o estoque na tabela de produtos. Se for o caso altere o nome do campo para ficar de acordo com a sua tabela. E verifique também se o nome da tabela de produtos está correto.
Caso ainda não tenha feito, acho melhor você testar primeiro a query utilizando a sua ferramenta de administração do banco de dados (ex: IBExpert ou outra semelhante), e se funcionar conforme o esperado você parte para a implementação na sua aplicação.
Para adicionar o campo no Fields Editor do DataSet você vai precisar colocar a query no DataSet através da janela Object Inspector. Depois você pode deixar novamente em branco já que a query está sendo configurada via código.

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Qui Set 28, 2017 11:41 am    Assunto: Responder com Citação

[quote="imex"]Esse p.estoque seria o nome do campo onde é gravado o estoque na tabela de produtos. Se for o caso altere o nome do campo para ficar de acordo com a sua tabela. E verifique também se o nome da tabela de produtos está correto.
Caso ainda não tenha feito, acho melhor você testar primeiro a query utilizando a sua ferramenta de administração do banco de dados (ex: IBExpert ou outra semelhante), e se funcionar conforme o esperado você parte para a implementação na sua aplicação.
Para adicionar o campo no Fields Editor do DataSet você vai precisar colocar a query no DataSet através da janela Object Inspector. Depois você pode deixar novamente em branco já que a query está sendo configurada via código.

Espero que ajude[/quot

bom dia imex

consegui fazer a instrucao no ibexper deu certo, mas na aplicacao mesmo criando em tempo de execucao o campo do estoque no relatorio do quick report nao esta aparecendo o estoque atual

onde sera que o burro aqui esta errando
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Set 29, 2017 9:14 am    Assunto: Responder com Citação

Bom dia,

Você acrescentou o campo do estoque no Fields Editor?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Sex Set 29, 2017 9:56 am    Assunto: dois banco de dados Responder com Citação

imex escreveu:
Bom dia,

Você acrescentou o campo do estoque no Fields Editor?


bom dia imex

eu fiz o sequinte:

no clientDatabase adicionei um campo chamado p.qtde_atual para associar com a tabela de produto meu campo de estoque é qtde_atual. e no form do relatorio de adicionei um QRDBText13 com o campo do clientDatabse = ds_vdprodp.qtde_atual

onde esta meu erro
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Set 29, 2017 10:21 am    Assunto: Responder com Citação

Como você adicionou o campo no ClientDataSet?
Está sendo impresso algum valor?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Sex Set 29, 2017 11:45 am    Assunto: Responder com Citação

imex escreveu:
Como você adicionou o campo no ClientDataSet?
Está sendo impresso algum valor?


eu tenho dentro do meu form um
tsqldataset - onde seleciono os campos da tabela de vendas ( cod_barras, qtde, custo, val_unit e descricao

e tem um tclientdataset = carrego os mesmo campos acima e ai adicionei um campo chamado p.qtde_atual igual eu havia entendido da instrucoes que voce passou

e dentro do form do relatorio eu utilizo os campos da tabela mais o campo p.qtde_atual para carrega o estoque atual

e foi dentro do tclientdataset que crei o campos p.qtde_atual

esta errado?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Set 29, 2017 12:09 pm    Assunto: Responder com Citação

Você abriu a janela Fields Editor do ClientDataSet e depois entrou na opção "Add Fields..." para adicionar o campo? Ou utilizou a opção "New Field..."?
Se adicionou com a "Add Fields..." o campo deveria apresentar o mesmo valor que a query retorna no IBExpert.
Está sendo impresso algum valor?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Sex Set 29, 2017 12:21 pm    Assunto: Responder com Citação

imex escreveu:
Você abriu a janela Fields Editor do ClientDataSet e depois entrou na opção "Add Fields..." para adicionar o campo? Ou utilizou a opção "New Field..."?
Se adicionou com a "Add Fields..." o campo deveria apresentar o mesmo valor que a query retorna no IBExpert.
Está sendo impresso algum valor?


sim eu fui pela opcao ''New Field' do tipo float e calculat e nao sai nada impresso
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Set 29, 2017 2:24 pm    Assunto: Responder com Citação

Experimente fazer da seguinte forma:

- preencha a query que você testou no IBExpert na propriedade CommandText do TSQLDataSet
- abra a janela Fields Editor do ClientDataSet, apague o field criado através do "New Field..." e entre na opção "Add Field..." onde deverá aparecer automaticamente o campo qtde_atual para adiciona-lo
- verifique se a query que é configurada via código está igual a que você testou no IBExpert

Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
sevensystemjundiai
Novato
Novato


Registrado: Quarta-Feira, 19 de Abril de 2017
Mensagens: 24
Localização: jundiai-sp

MensagemEnviada: Sex Set 29, 2017 6:09 pm    Assunto: dois banco de dados - RESOLVIDO Responder com Citação

imex escreveu:
Experimente fazer da seguinte forma:

- preencha a query que você testou no IBExpert na propriedade CommandText do TSQLDataSet
- abra a janela Fields Editor do ClientDataSet, apague o field criado através do "New Field..." e entre na opção "Add Field..." onde deverá aparecer automaticamente o campo qtde_atual para adiciona-lo
- verifique se a query que é configurada via código está igual a que você testou no IBExpert

Espero que ajude


obrigado imex deu certo, valeu !!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Visitar a homepage do Usuário
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB