Fórum Delphi pegar dois itens do grid e colocar no campo #611949

15/07/2020

0

1 - Tenho um menu no SAK da empresa que tem consultas criadas no SQL e telas de cadastro do DELPHI onde os usuários tem acesso a elas. Em uma dessas consultas eu tenho um parâmetro que serve como um filtro para os usuários pesquisarem. Por exemplo item UZ100-VM e podem filtrar mais que um. Ex: UZ100-VM; UZ234-ROSA.

2 - No Delphi tenho um 'FOR' onde posso selecionar mais que um item no grid da tela e com o popup abro essa consulta acima com os itens selecionados.

Aí que está o problema.Quando eu faço a seleção no grid do SAK ele abre a consulta, porém abre duas consultas separadas e preciso que os itens abram juntos em uma tela só. Por exemplo UZ100-VM; UZ234-ROSA e não um item em cada consulta. Desde já Obrigado!
Bruno

Bruno

Responder

Posts

17/07/2020

Roberto Castelani

Então amigo, não consegui intender o certo o que você precisa mais ela já é mestre detalhe? se não for procure o assunto sobre (Tabela Mestre-Detalhe) .
se ja for mestre-detalhe e você quiser somente vizualizar se fazer nenhuma alteração você pode fazer um Sql tipo (Left join) exemplo;




Q_saidacabproduto.Open;
Q_IMPRIMIR.Close;
Q_IMPRIMIR.Open();
Q_IMPRIMIR.SQL.Clear;
Q_IMPRIMIR.SQL.add('''' select '''');
Q_IMPRIMIR.SQL.add('''' s.id_saida_cab,s.id_paciente,s.data_saida,s.data_proenvio,s.nome_user, '''');
Q_IMPRIMIR.SQL.add('''' p.nome_paci,p.endereco_paci,p.estado_paci,p.municipio_paci,p.bairro_paci,p.tel_paci, '''');
Q_IMPRIMIR.SQL.add('''' p.cep_paci,p.conve_paci,e.nome_pro,e.tipo_pro,c.nome_convenio,si.data_saida_item, '''');
Q_IMPRIMIR.SQL.add('''' si.id_produtos_saidaitem,si.data_validade_saida,si.qtd_saida_item,si.F_uso_saida_item '''');
Q_IMPRIMIR.SQL.add('''' from saida_cab S left join paciente p on p.id_paciente = s.id_paciente '''');
Q_IMPRIMIR.SQL.add('''' left join convenio c on c.id_convenio = p.conve_paci '''');
Q_IMPRIMIR.SQL.add('''' left join saida_item SI on SI.id_saida_cab = S.id_saida_cab '''');
Q_IMPRIMIR.SQL.add('''' left join produtos E on E.id_pro = SI.id_produtos_saidaitem '''');
Q_IMPRIMIR.SQL.add('''' WHERE S.ID_SAIDA_CAB = '''''''''''' + editcodigo.text + '''''''''''' '''');


Q_IMPRIMIR.Open();
Q_IMPRIMIR.FetchAll;
DMIMPRESSO.frxformsaida.PrepareReport;
DMIMPRESSO.frxformsaida.ShowPreparedReport;

====================================================================================================
Se tu não souber como se faz procure por (Left Join) eu fiz esse pelo tfdquery componente fireDac !
Ele eu posso imprimir tbm sem problema!
Responder

Gostei + 0

17/07/2020

Bruno

Então amigo, não consegui intender o certo o que você precisa mais ela já é mestre detalhe? se não for procure o assunto sobre (Tabela Mestre-Detalhe) .
se ja for mestre-detalhe e você quiser somente vizualizar se fazer nenhuma alteração você pode fazer um Sql tipo (Left join) exemplo;




Q_saidacabproduto.Open;
Q_IMPRIMIR.Close;
Q_IMPRIMIR.Open();
Q_IMPRIMIR.SQL.Clear;
Q_IMPRIMIR.SQL.add('''' select '''');
Q_IMPRIMIR.SQL.add('''' s.id_saida_cab,s.id_paciente,s.data_saida,s.data_proenvio,s.nome_user, '''');
Q_IMPRIMIR.SQL.add('''' p.nome_paci,p.endereco_paci,p.estado_paci,p.municipio_paci,p.bairro_paci,p.tel_paci, '''');
Q_IMPRIMIR.SQL.add('''' p.cep_paci,p.conve_paci,e.nome_pro,e.tipo_pro,c.nome_convenio,si.data_saida_item, '''');
Q_IMPRIMIR.SQL.add('''' si.id_produtos_saidaitem,si.data_validade_saida,si.qtd_saida_item,si.F_uso_saida_item '''');
Q_IMPRIMIR.SQL.add('''' from saida_cab S left join paciente p on p.id_paciente = s.id_paciente '''');
Q_IMPRIMIR.SQL.add('''' left join convenio c on c.id_convenio = p.conve_paci '''');
Q_IMPRIMIR.SQL.add('''' left join saida_item SI on SI.id_saida_cab = S.id_saida_cab '''');
Q_IMPRIMIR.SQL.add('''' left join produtos E on E.id_pro = SI.id_produtos_saidaitem '''');
Q_IMPRIMIR.SQL.add('''' WHERE S.ID_SAIDA_CAB = '''''''''''' + editcodigo.text + '''''''''''' '''');


Q_IMPRIMIR.Open();
Q_IMPRIMIR.FetchAll;
DMIMPRESSO.frxformsaida.PrepareReport;
DMIMPRESSO.frxformsaida.ShowPreparedReport;

====================================================================================================
Se tu não souber como se faz procure por (Left Join) eu fiz esse pelo tfdquery componente fireDac !
Ele eu posso imprimir tbm sem problema!


Obrigado por responder, mas consegui resolver já!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar