e-Renata 0 Denunciar post Postado Novembro 22, 2006 PessoALL, :wacko: Como consigo um formato Master detail legal, eficiente, eficaz, para um Laudo Oficial ordenado por Processo, no SQL abaixo? select case when ((lau.laudo is null) and (lau.ano <> to_char(sysdate,'yyyy'))) then (seq_laudo.nextval||' / '||to_char(sysdate,'yyyy')) else (lau.laudo||' / '||lau.ano) end Número_do_laudo, substr(pr.processo,5,4)||'/'||substr(pr.processo,1,4) as processo, dform.ndform as forma_do_material, crop.crop as nome_vulgar, gn.genus||' - '||tax.taxon as genero_especie, procedencia.org||' / '||proced.country as procedencia, destino.org||' / '||dest.country as destino, decode (pr.impti, 'IM', 'Importação', 'EX', 'Exportação', 'TI', 'Trânsito Interno') as tipo_processo, decode(labo.lab, 'ACAR', 'Acarologia', 'BACT', 'Bacteriologia', 'ENTO', 'Entomologia', 'MICO', 'Micologia', 'NEMA', 'Nematologia', 'PINF', 'Plantas Infestantes', 'VIRO', 'Virologia') as laboratorio, case when (labo.lab = 'ENTO' and pana.isento = 'X') then 'Ausência de insetos' when (labo.lab = 'ACAR' and pana.isento = 'X') then 'Ausência de ácaros' when (labo.lab = 'BACT' and pana.isento = 'X') then 'Ausência de bactérias' when (labo.lab = 'MICO' and pana.isento = 'X') then 'Ausência de fungos' when (labo.lab = 'NEMA' and pana.isento = 'X') then 'Ausência de nematóides' when (labo.lab = 'PINF' and pana.isento = 'X') then 'Ausência de plantas infestantes' when (labo.lab = 'VIRO' and pana.isento = 'X') then 'Ausência de vírus' else ptax.taxon end pragas_detectadas, decode(prade.posicao, 'LA1', 'Lista A1', 'LA2', 'Lista A2', 'ExC', 'Exótica nesta cultura', 'ExCR', 'Raça não relatada no Brasil', 'EXO', 'Exótica', 'PNQR', 'Praga não quarentenária', 'BR', 'Ocorre no Brasil') as posicao, pmeta.metana as Met_deteccao, pmeti.metina as Met_identificacao, a.subsna||','||b.subsna as quim_substancia, tratq.dos as quim_dosagem, tratq.tempo as quim_tempo, tratq.via as quim_via, tratq.forma as quim_forma, decode (tratq.sit, 'R', 'Realizado', 'P', 'Presc.Cen.', null, '-', 'D', 'Presc.Dest.') as quim_situacao, tratf.ptemper as fis_pretemper, tratf.ptempo as fis_pretempo_un, tratf.temper as fis_trattemper, tratf.tempo as fis_trattempo_un, tratf.via as fis_via, decode (tratf.sit, 'R', 'Realizado', 'P', 'Presc.Cen.', null, '-', 'D', 'Presc.Dest.') as fis_situacao, tratct.partepl as ct_parte_da_planta, tratct.meio as ct_meio, tratct.tempincub as ct_tempo_incubacao, tratct.tempo as ct_tempo_un, decode (tratct.sit, 'R', 'Realizado', 'P', 'Presc.Cen.', null, '-', 'D', 'Presc.Dest.') as ct_situacao, case when (lau.processo = tratm.processo) then 'Misto' when (lau.processo = tratm.processo and tratm.tratf = 'X') then 'Físico' when (lau.processo = tratm.processo and tratm.tratq = 'X') then 'Químico' when (lau.processo = tratm.processo and tratm.tratct = 'X') then 'Cultura de Tecido' when (lau.processo = tratm.processo and tratm.trato = 'X') then 'Outro' end mis_tipotratamento, decode (tratm.sit, 'R', 'Realizado', 'P', 'Presc.Cen.', null, '-', 'D', 'Presc.Dest.') as mis_situacao, case when (lau.processo = tratm.processo and tratm.trato = 'X') then tratm.tratodesc end mis_descricao, case when (labo.obs is not null and labo.lab = 'ACAR') then labo.obs when (labo.obs is not null and labo.lab = 'BACT') then labo.obs when (labo.obs is not null and labo.lab = 'ENTO') then labo.obs when (labo.obs is not null and labo.lab = 'MICO') then labo.obs when (labo.obs is not null and labo.lab = 'NEMA') then labo.obs when (labo.obs is not null and labo.lab = 'PINF') then labo.obs when (labo.obs is not null and labo.lab = 'VIRO') then labo.obs end observacoes, case when (labo.lab = 'SEPA' and labo.amos = 'A') then 'Análise feita por amostragem, havendo, portanto, possibilidade de escape. Recomenda-se observar as plantas durante o seu desenvolvimento e comunicar a este Laboratório o surgimento de quaisquer anormalidades.' end recomendacoes, uloc.resp as lider_quarentena, uloc.matric as matricula_lider from pr, prod, tax, crop, gn, coop procedencia, coop destino, geo proced, geo dest, dform, lau, labo, pana, prade, ptax, pmeta, pmeti, tratq, tratf, tratct, tratm, psubs a, psubs b, uloc where :Processo = substr(pr.processo,5,4)||'/'||substr(pr.processo,1,4) and :Lider_LabQuarentena = uloc.resp and :Matricula_Lider = uloc.matric and pr.processo = prod.processo and prod.taxno = tax.taxno and pr.gno = gn.gno and pr.cropno = crop.cropno and pr.cnop = procedencia.cno and procedencia.geono = proced.geono and pr.cnod = destino.cno and destino.geono = dest.geono and pr.dform = dform.dform and (((pr.processo = lau.processo and pr.processo = labo.processo and labo.labo = pana.labo and pana.nana = prade.nana(+) and prade.ptaxno = ptax.ptaxno(+)) and pana.pmetano = pmeta.pmetano and pana.pmetino = pmeti.pmetino) and (lau.processo = tratq.processo(+) and tratq.fpsubsno = a.psubsno(+) and tratq.psubsno = b.psubsno(+)) and (lau.processo = tratf.processo(+)) and (lau.processo = tratct.processo(+)) and (lau.processo = tratm.processo(+))); A quem puder me ajudar o quanto antes, meu INFINITO muito obrigada. (É que o 'monstrengo' tem prazo e já venceu http://forum.imasters.com.br/public/style_emoticons/default/blush.gif ) Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 22, 2006 Não entendi bem o problema , mas creio que seja parecido com algo que já fiz , uma ficha de internação, varios dados etc. Fiz em Delphi usando um objeto chamado TRichEdit , que permite gerar um Texto parecido com o Wordpad (muda fonte (cor,tamanho etc)). Não sei o que você está usando mas eu usei varios sql´s e fui montando a ficha. Compartilhar este post Link para o post Compartilhar em outros sites