Conditional to print in PL/SQL

Asked

Viewed 263 times

2

I have a report developed in Sybase Infomaker (similar to Crystal Reports) that displays two pages, but I need to print the second page only if there is a calculation.

On the second page is displayed several calculations, but if the report (confirmation of projects) does not have the calculation, print only the first page.

However I do not know how to implement this in PL/SQL.

Below is the SQL code of the report.



  select orcamentos.idempresa,   
         orcamentos.idorcamento,   
         orcamentos_cons.idconsumidor,
         orcamentos_cons.nome,
         orcamentos_cons.endereco,
         orcamentos_cons.bairro,   
         orcamentos_cons.cep,   
         orcamentos_cons.idcidade,   
            orcamentos_cons.idassociado,
            orcamentos_cons.idsequencia,
         (select nome  ||'/'||uf 
            from cidades
           where cidades.idcidade = orcamentos_cons.idcidade) as nome_cidade_cons,
         orcamentos.local_atendimento                                       as local_aten,
         (select nome 
            from tipo_projeto
           where idempresa = orcamentos.idempresa
             and idtipoprojeto = orcamentos.idtipoprojeto)          as tipo_obra,
         orcamentos.valor_total                                             as vlr_total, 
         orcamentos.valor_total - (select sum(valor_part)
                                  from orcamentos_cobranca oc
                                 where oc.idempresa = :al_empresa
                                   and oc.idorcamento = :al_orcamento) as vlr_part_empresa_2, 
         (select sum(valor_part)
                from orcamentos_cobranca oc
              where oc.idempresa = :al_empresa
                 and oc.idorcamento = :al_orcamento)                              as part_consum_2, 
            case when orcamentos.valor_calc_erd + orcamentos.valor_calc_erc  0  and orcamentos.cobrar_orcamento = 'S' then
                (orcamentos.valor_total - (orcamentos.valor_calc_erd + orcamentos.valor_calc_erc))  else 0 end as part_consum, 
         empresas.apelido, 
         empresas.nome,
         empresas.ddd_fone,
         empresas.fone,
         empresas.endereco,
         empresas.numero_end,
         empresas.cep,
         empresas.bairro,
         empresas.inscricao,
         empresas.insc_estad,
         empresas.email,
         (select nome ||'/'||uf 
            from cidades
           where idcidade = empresas.idcidade)  as cidade,
            to_char(substr(orcamentos.idprocesso, 1, length(orcamentos.idprocesso)-2)) || '/' || to_char(substr(orcamentos.idprocesso, length(orcamentos.idprocesso)-1, length(orcamentos.idprocesso))) as processo, 
            orcamentos.endereco                             as endereco_obra,
            orcamentos.bairro                               as bairro_obra,
            orcamentos.idcidade                             as idcidade_obra,
            (select nome ||'/'||uf 
            from cidades
           where idcidade = orcamentos.idcidade) as cidade_obra, 
            param_orc.engenheiro                         as engenheiro, 
         (select cidades.nome ||'/'||cidades.uf 
            from cidades
           where cidades.idcidade = empresas.idcidade) as nome_cidade_cob,  
         sysdate as datahora,
            param_orc.dias_contratacao,
            param_orc.dias_inicio_obras,
            param_orc.dias_final_obras,
            orcamentos.idtipofinalidade, 
         (select descricao 
            from tipo_finalidade 
           where orcamentos.idempresa = tipo_finalidade.idempresa
             and orcamentos.idtipofinalidade = tipo_finalidade.idtipofinalidade) as descricao_finalidade,
            orcamentos.observacao,
            orcamentos.solicitante,
            orcamentos.idtipofornec,
            (select descricao
                from tipo_fornecimento
              where tipo_fornecimento.idempresa = orcamentos.idempresa
                 and tipo_fornecimento.idtipofornec = orcamentos.idtipofornec
                 and tipo_fornecimento.idtensao = orcamentos.idtensao) as nome_fornecimento,
         orcamentos.idtensao,
            (select descricao
                from tensao_fornecimento
              where tensao_fornecimento.idempresa = orcamentos.idempresa
                 and tensao_fornecimento.idtensao = orcamentos.idtensao) as nome_tensao,
            orcamentos.carga_instalada            
    from orcamentos, 
            empresas, 
            param_orc, 
         orcamentos_cons 
   where orcamentos.idempresa   = orcamentos_cons.idempresa 
      and orcamentos.idorcamento = orcamentos_cons.idorcamento 
      and empresas.idempresa     = orcamentos.idempresa 
      and param_orc.idempresa    = orcamentos.idempresa 
     and orcamentos.idempresa   = :al_empresa 
     and orcamentos.idorcamento = :al_orcamento 



  • Is it Oracle or SQL Server? is it PL/SQL or T-SQL? Crystal Reports is used for something in it?

  • @bigown , Is Oracle and PL/SQL actually I use Infomaker is a tool similar to Crystal Reports , Informaker creates reports to be imported into an ERP developed in Powerbuilder

  • In Crystal there is a SUPPRESS condition that can be linked to fields, groups etc, there is something like this in Infomaker ? Delete if a field is null or zero.

  • So, I don’t know this feature in the infomaker, I will search if it has something similar to the conditional SUPPRESS.

  • @Motta, In Infomaker you have the Visible feature, you can work with it not to display the second page of the report ?

  • 1

    I do not know, I do not know this software, but it seems to me to be a way. What says the documentation ?

  • This must be the way, search the documentation.

  • @Motta , I studied his documentation and saw that it is possible to program the Visible property, type : If(calculation = 5 ,1,0) Obs:1=true and 0=False) Vlw

  • Post as response. []`s

  • @Motta , excuse the question , but as I publish as an answer

  • Only publish in "Your Reply", I’ve published.

Show 6 more comments

1 answer

1

In Infomaker it is possible to program the property Visible , type : If(calculation = 5 ,1,0) Obs:1=true and 0=False) 

Browser other questions tagged

You are not signed in. Login or sign up in order to post.