| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Qua Set 27, 2017 12:45 pm Assunto: dois banco de dados |
|
|
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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
|
| Voltar ao Topo |
|
 |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Qua Set 27, 2017 4:18 pm Assunto: |
|
|
boa tarde imex
utilizo firebird versao 2.1
nome do campos cod_barras |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qua Set 27, 2017 5:35 pm Assunto: |
|
|
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 |
|
 |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Qua Set 27, 2017 6:31 pm Assunto: |
|
|
| 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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Set 28, 2017 9:24 am Assunto: |
|
|
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 |
|
 |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Qui Set 28, 2017 11:41 am Assunto: |
|
|
[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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Set 29, 2017 9:14 am Assunto: |
|
|
Bom dia,
Você acrescentou o campo do estoque no Fields Editor? |
|
| Voltar ao Topo |
|
 |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Sex Set 29, 2017 9:56 am Assunto: dois banco de dados |
|
|
| 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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Set 29, 2017 10:21 am Assunto: |
|
|
Como você adicionou o campo no ClientDataSet?
Está sendo impresso algum valor? |
|
| Voltar ao Topo |
|
 |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Sex Set 29, 2017 11:45 am Assunto: |
|
|
| 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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Set 29, 2017 12:09 pm Assunto: |
|
|
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 |
|
 |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Sex Set 29, 2017 12:21 pm Assunto: |
|
|
| 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 |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Set 29, 2017 2:24 pm Assunto: |
|
|
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 |
|
 |
sevensystemjundiai Novato

Registrado: Quarta-Feira, 19 de Abril de 2017 Mensagens: 24 Localização: jundiai-sp
|
Enviada: Sex Set 29, 2017 6:09 pm Assunto: dois banco de dados - RESOLVIDO |
|
|
| 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 |
|
 |
|