Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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/](http://forum.imasters.com.br/public/style_emoticons/)default/blush.gif )
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.