Sub Report

O recurso do sub report serve para incluirmos partes de um relatório em outro. Isto é, um determinado relatório da aplicação poderá chamar a outro relatório (o sub report) e a saída deste último será incluída no primeiro no exato ponto de chamada.

Um exemplo de uso seria centralizar em um único objeto report o cabeçalho comum que desejamos para todos os relatórios da aplicação. Por exemplo poderíamos colocar neste sub report o logo da empresa, data e hora de execução do relatório e outras informações que sejam comum a todos os relatórios do sistema.

Para se chamar um outro relatório o que se necessita é apenas um call "especial" onde devemos passar algumas variáveis de controle do GeneXus para que o controle de linha, pagina, salto de página possam ocorrer da forma esperada. 

O sub report deve ser criado como uma Procedure padrão no GeneXus. Não é necessário definir ela como main nem mesmo configurar o seu output (que será enviado por parâmetro). Assim, a assinatura do parm deve ser no mínimo esta :

parm(inout:&Line, inout:&Page, inout:&Output);

E a procedure que chama este sub report deve realizar a chamada com um call padrão :

objetoSubReport.Call(&Line, &Page, &Output)

O anexo abaixo contém um exemplo simples de implementação para um relatório PDF Web. Para testar basta executar o objeto Main STCSubReportsGXRpt.