[RESOLVIDO]Relatórios com IReport

Afinal estive a tentar fazer. Vamos lá ver Haroldo, tentei orientação com o seu exemplo (vi todo o código fonte do html da sua tabela). E o resultado que aparece no pdf na tabela de baixo é o que eu queria. A sua mostra 2 registos diferentes porque é isso que tem a tabela. É isso que pretendo.
Mas é assim, agradeço muito a ajuda, mas ainda sei muito pouco dessas coisas de criar variáveis. Sei ir ao onRecord e escrever sc_select e depois pôr os campos, até aí tudo bem, mas e depois? Não sei como fazer!!!
Criei um método e comecei (numa tentativa de criar a variável) por escrever $agregado, depois colei o html da minha tabela, gravei. Fui ao Html da Consulta principal e onde tinha escrito {agregado} (que é a subconsulta) escrevi {agregado}=$agregado. Nada, deu erro. Só podia rsrsr.
Sinceramente não sei o que estou a fazer mal. Tenho o html criado, fiz o sc_select no onRecord mas o resto tentei e não consegui.
;-(

Uma imagem de como aparece o meu relatório e na parte de baixo a subconsulta que não devia aparecer dessa forma.


subconsulta.png

Vanda se a subconsulta é uma grid de registros relacionados porque vocês esta fazendo a subconsulta com formato livre também? Faça como uma grid normal.

Cada subconsulta é como se fosse um campo. Você pode incluí-la no formato livre.
Manda uma imagem do que vc tá tentando fazer pra gente entender melhor.
[]s

Vanda,

Olhou o exemplo que te passei?

AO montar o campo, você tem que montar o cabeçalho e rodapé da tabela html fora do loop de leitura dos registros.

Allan, já mandei imagem do que estou a tentar fazer aqui e mostra o resultado do como não quero que apareça.

Saulo, funcionou. Fiz subconsulta como disse e deu certo. É claro que tive que formatar o css da consulta porque estava completamente diferente do layout html que fiz da consulta. Mas tudo bem.
Agora tenho um problema. A subconsulta devia estar associada a um determinado registo que aparece no relatório base, mas não está.
Explico melhor: se na consulta principal me mostra o registo 1 na subconsulta dele só devia aparecer tudo o que está relacionado com esse registo (a relação das tabelas está feita), mas aparece também do registo 2.
O que posso fazer neste caso? Pensei num select mas não sei como o fazer de forma correta (são ainda as minhas dificuldades nesta área). Se me quiserem ajudar agradeço.

Ok Haroldo vou ver melhor.

Tentei isto na grid da subconsulta no Evento onApplicationIni:

sc_select {id_agregado},{nome},{parentesco},{idade},{actprofissional},{telefone},{id_idoso}
from agregado
where id_idoso =(select id_idoso
from agregado
where id_idoso =“1”);

Dá erro:Parse error: syntax error, unexpected ‘$this’ (T_VARIABLE)
Já entendi que está a pedir uma variável. Quem me pode ajudar? Obrigada

Seu select está errado, de uma olhadinha no webhelp.

Vanda,
O SQL da subconsulta seria como abaixo e na ligação entre a consulta e a subconsulta vc passa o campo {id_idoso} como parâmetro para [pIdIdoso].
[]s

SELECT id_agregado,nome,parentesco,idade,actprofissional,telefone,id_idoso
FROM agregado
WHERE id_idoso = ‘[pIdIdoso]’

É isso aí como disse o Allan, na subconsulta você tem que definir uma variável de entrada, Ex: [idoso], ao fazer a ligação da subconsulta o próprio scriptcase vai pedir pra você informar quem vai preencher o valor dessa variável.

Isso aqui não vai funcionar como você pretende, o uso da macro esta incorreto, além de outras coisas que explico mais abaixo:

sc_select {id_agregado},{nome},{parentesco},{idade},{actprofissional},{telefone},{id_idoso}
   from agregado
   where id_idoso =(select id_idoso
                from agregado
                where id_idoso ="1");

O que você esta tentando fazer não tem como, você deve informar o select na opção select da aplicação de consulta, além de não dar certo o veento onde você esta tentando usar o sc_select só esta disponível a partir do evento OnScriptInit.
Pra alterar o select você tem algumas opções, por exemplo você pode alterar o WHERE dianmicamente, pode alterar quais campos a consulta vai trazer dinamicamente, pode alterar a ordenação, mas não pode alterar a estrutura básica do select da consulta, no manual tem melhores referências sobre isso na parte das Macros.

Haroldo, já li e reli o webhelp. Já sei que a sua filosofia de ajuda é mandar ler o manual rsrsr. E eu faço isso, tento entender. Mas sabe eu de programação é a primeira vez, com o SC, que estou a começar a aprender. Sei desenvolver html, sei trabalhar com access. Mas nunca trabalhei nem com php, nem com java. A minha dificuldade, neste caso das variáveis é onde vou para criar a variável. Vou no criar um método, vou na Configuração? Com o DW nós temos a parte de design e de código e eu sei que para escrever o código tenho que ir a essa área. Não sei se dá para entender a minha dúvida.
De qualquer forma obrigada pela sua ajuda.

Allan, muito obrigada. Funcionou certinho. E você explicou muito bem, deu para entender onde tinha que fazer o quê. A única coisa que tive de fazer a mais foi na subconsulta na Configuração do SQL em variáveis para campos dizer que a variável era [pIdIdoso] e escolher o campo id_idoso. Depois bastou na Consulta dar a instrução do parâmetro. Agora já aparece cada detalhe associado ao registo certo.
Agradeço também ao Saulo pela ajuda.
Mais um problema resolvido. Obrigada

Importante é que resolveu e que percebeu também que seu select estava errado, pois nas colunas do select você estava usando entre {}, como demonstra a citação aqui.
Nem sempre solicito que o membro vá ao webhelp, somente quando percebo que este não entendeu como a macro funciona ou a desconhece.