Recebi um problema novo para tratar, que já veio com solução. Me passaram um relatório a ser desenvolvido no Pentaho Report Designer (PRD) que deve ter vários prompts (parâmetros.) Alguns são caixas de texto simples, como nome do projeto, e outros vêm de consultas, como lista de departamentos. Dois ou três deles, porém, são listas que não vêm de nenhuma tabela. O PRD só popula drop-downs, radio buttons e check boxes a partir de um SQL (ou eu acredito que só faz assim – não investiguei muito mais.)

O fato é que eu precisava de uma consulta dummy (boneco) que retornasse algumas linhas, tais como “sim, não, talvez” para alimentar um radio-button. Como eu disse, recebi o relatório, e ele veio com um desses casos resolvidos. Eu examinei a consulta:

SELECT TEXTO,VALOR
FROM
(SELECT ‘Sim’ AS TEXTO,’1′ AS VALOR
UNION
SELECT ‘Não’AS TEXTO,’2’ AS VALOR
UNION
SELECT ‘Talvez’ AS TEXTO,’3′ AS VALOR) AS DUMMY
ORDER BY 2

Oras! Essa eu não sabia! É uma tabela dummy!! A consulta foi escrita para Postgres, mas com certeza existem comandos equivalentes para MS SQL Server, Oracle, MySQL e outros bancos.

Genial, não? :-) E nem fui eu quem fez isso!

Então é assim: sempre que precisar de uma lista que não existe em uma tabela para popular um prompt no PRD, construa a consulta boneco acima e seja feliz.

É isso.

ADENDO: a consulta tinha dois erros, um de nome de campo e outro de aspas simples em volta dos valores. Corrigido. Nada como tomar o próprio remédio…

2 comentários sobre “Tabelas Boneco para Prompts no PRD

  1. Sim, funciona em “todos” os bancos.

    No Oracle você precisa citar a tabela. Dai criaram a DUAL.Então teria que ser um pouco adaptado…

    SELECT TEXTO,VALOR
    FROM
    (SELECT ‘Sim’ AS TEXTO,’1′ AS VALOR FROM DUAL
    UNION
    SELECT ‘Não’AS TEXTO,’2′ AS VALOR FROM DUAL
    UNION
    SELECT ‘Talvez’ AS TEXTO,’3′ AS VALOR FROM DUAL) AS DUMMY
    ORDER BY 2

    Os bancos em que você não precisa citar a tabela, costumo dizer que seguem o padrão Microsoft: “Se você não sabe eu digo pra você”, e ele magicamente se resolve.

    1. Obrigado pela colaboração, Apolo. Agora, padrão Microsoft? “Deixa que eu te digo”?? Que medo!!! :-) (Nada tira da minha cabeça que a SkyNet vai ser um epic fail durante a absorção da Microsoft pela IBM, quando a IBM comprar a MS…)

Deixe um comentário