Dicas Crystal Report

11
Dicas Crystal Report 1. 1. APRESENTAÇÃO DO CONTEÚDO DO PARÂMETRO MÚLTIPLO. APRESENTAÇÃO DO CONTEÚDO DO PARÂMETRO MÚLTIPLO.........................................................................................2 2. 2. ALERTAS NO RELATÓRIO ALERTAS NO RELATÓRIO..................................................................................................................................................... 3 3. 3. COMO MUDAR DINAMICAMENTE A ORDENAÇÃO DE CAMPOS DE UM RELATÓRIO COMO MUDAR DINAMICAMENTE A ORDENAÇÃO DE CAMPOS DE UM RELATÓRIO......................................................3 4. 4. COMO REALIZAR DUAS FORMATAÇÕES DE CAMPO DIFERENTES PARA O MESMO CAMPO COMO REALIZAR DUAS FORMATAÇÕES DE CAMPO DIFERENTES PARA O MESMO CAMPO..........................................4 5. 5. COMO AS DIFERENTES OPÇÕES 'KEEP TOGETHER' AFETAM O RELATÓRIO COMO AS DIFERENTES OPÇÕES 'KEEP TOGETHER' AFETAM O RELATÓRIO....................................................................6 6. 6. PASSAGEM DE PARÂMETROS ENTRE SUB-RELATÓRIOS PASSAGEM DE PARÂMETROS ENTRE SUB-RELATÓRIOS....................................................................................................7 7. 7. ZERAR VARIÁVEL ZERAR VARIÁVEL.................................................................................................................................................................. 8 23/08/2022 Versão 1 1 de 11

Transcript of Dicas Crystal Report

Page 1: Dicas Crystal Report

Dicas Crystal Report

1.1. APRESENTAÇÃO DO CONTEÚDO DO PARÂMETRO MÚLTIPLO.APRESENTAÇÃO DO CONTEÚDO DO PARÂMETRO MÚLTIPLO............................................................2

2.2. ALERTAS NO RELATÓRIOALERTAS NO RELATÓRIO...................................................................................................................3

3.3. COMO MUDAR DINAMICAMENTE A ORDENAÇÃO DE CAMPOS DE UM RELATÓRIOCOMO MUDAR DINAMICAMENTE A ORDENAÇÃO DE CAMPOS DE UM RELATÓRIO..............................3

4.4. COMO REALIZAR DUAS FORMATAÇÕES DE CAMPO DIFERENTES PARA O MESMO CAMPOCOMO REALIZAR DUAS FORMATAÇÕES DE CAMPO DIFERENTES PARA O MESMO CAMPO................4

5.5. COMO AS DIFERENTES OPÇÕES 'KEEP TOGETHER' AFETAM O RELATÓRIOCOMO AS DIFERENTES OPÇÕES 'KEEP TOGETHER' AFETAM O RELATÓRIO.......................................6

6.6. PASSAGEM DE PARÂMETROS ENTRE SUB-RELATÓRIOSPASSAGEM DE PARÂMETROS ENTRE SUB-RELATÓRIOS...................................................................7

7.7. ZERAR VARIÁVELZERAR VARIÁVEL..............................................................................................................................8

12/04/2023 Versão 1 1 de 8

Page 2: Dicas Crystal Report

Dicas Crystal Report

1.1. Apresentação do conteúdo do parâmetro Múltiplo.Apresentação do conteúdo do parâmetro Múltiplo.

Fazendo um relatório com um parâmetro que aceita múltiplos valores e inserindo este campo parâmetro no relatório, não são mostrados todos os valores digitados, apenas o primeiro.

Quando se cria um relatório no Crystal Reports que utiliza um parâmetro que aceita múltiplos valores, este parâmetro armazena os valores informados no mesmo como um array.Assim, inserindo o parâmetro no relatório veremos apenas o primeiro elemento desta lista. É por isto que não são vistos todos os valores digitados.Para vermos todos os valores digitados devemos obtê-los através de uma fórmula. Num relatório onde há o parâmetro múltiplo chamado @País, para o qual foram digitados os valores USA, Argentina e China, a aplicação da fórmula a seguir nos dá o seguinte resultado: USA-Argentina-Chile. Esta fórmula utiliza uma função que mostra os valores separados por um caractere a escolher, neste caso foi utilizado o hífen.

Join ({?País},"-" )

A variação desta fórmula não utiliza o caractere delimitador, o que iria mostrar apenas os valores separados por espaços, USA Argentina Chile:

Join ({?País})

Uma forma interessante de mostrar estes valores, desde que haja espaço suficiente na seção, é um abaixo do outro. Assim, ao invés de separarmos os valores da lista com um hífen, podemos separá-los com um <Enter> da seguinte forma:

Join ({?País}, chr(13))

Neste caso é interessante verificar se a opção de formatação "Can Grow" do campo está ativada

Outra forma seria a formula abaixo:Formula:

@Parametro1

numbervar X;for x:= 1 to count({?X})dostringvar t:= t & “-“ & {?X}[X];

if length(t)>0 thenright(stringvar t, length(t)-1)

12/04/2023 Versão 1 2 de 8

Page 3: Dicas Crystal Report

Dicas Crystal Report

2.2. Alertas no RelatórioAlertas no Relatório

Os alertas são mensagens exibidas para o usuário do relatório que está realizando uma atualização (Refresh) no mesmo. Estas mensagens são exibidas de acordo com condições pré-estabelecidas, as quais quando satisfeitas, emitem a mensagem definida pelo autor do relatório. Os passos a seguir são estes:1. Acesse o menu Report | Create Alerts...2. Acesse a opção New3. Na caixa "Name"  digite um nome para o alerta. Este nome identificará o alerta no

relatório4. Na caixa "Message" digite a mensagem que será lida pelo usuário do relatório se a

condição do alerta for satisfeita5. No botão "Condition" digite a fórmula que ativará o alerta.

É possível criarmos vários alertas no relatório e utilizarmos apenas alguns. Portanto, para os alertas que se deseja que estejam disponíveis no relatório é necessário ativar o check box "Enabled".Neste exemplo, a fórmula que deverá ser digitada na opção Condition é: {Orders.Required Date} < today

Neste caso quando a data para a qual o pedido está sendo aguardado pelo cliente já tiver passado, ou seja, for menor que a data atual, será mostrada uma mensagem de alerta.O usuário tem a opção de ver estes pedidos pelo botão View Records, o qual os trará em um tab separado no relatório

3.3. Como mudar dinamicamente a ordenação de campos de um relatórioComo mudar dinamicamente a ordenação de campos de um relatório

Para se mudar dinamicamente a ordenação de campos de um relatório, fazendo-os ficar em ordem crescente ou decrescente, devem ser seguidos os passos abaixo:1. Criar um parâmetro através do menu Insert | Parameter Field, dentro do Field Explorer,

chamado Ordenação2. Através do botão Set Default Values, na caixa de texto "Select or enter value to add",

acrescente os seguintes valores: "Crescente" e "Decrescente" (sem as aspas)3. Crie duas fórmulas para tratar ambas as situações "Crescente" e "Decrescente":

a. Fórmula "Crescente" (sem as aspas):i. If {?Ordenação}="Crescente" then {Tabela.CampoDesejado}

b. Fórmula "Decrescente" (sem as aspas):i. If {?Ordenação}="Decrescente" then {Tabela.CampoDesejado}

4. Ordenar o relatório através do menu Report | Record Sort Expert, baseando-se nas fórmulas ora criadas, da seguinte forma:

a. Fórmula {@Crescente} como 'Sort Direction'=Ascendingb. Fórmula {@Decrescente} como 'Sort Direction'=Descending

12/04/2023 Versão 1 3 de 8

Page 4: Dicas Crystal Report

Dicas Crystal Report

Assim, o campo mencionado nas fórmulas  ({Tabela.CampoDesejado}) será ordenado de acordo com a escolha feita pelo usuário quando for mostrado o prompt do respectivo parâmetro.

4.4. Como realizar duas formatações de campo diferentes para o mesmo campoComo realizar duas formatações de campo diferentes para o mesmo campo

Campos do Crystal Reports, exceto campos texto, não permitem que sejam feitas formatações de porções de texto separadas.Assim, ao formatar o campo é necessário selecionar o campo e formatá-lo em sua totalidade.Entretanto, se desejar formatar o campo de formas diferentes deve-se seguir os seguintes passos demonstrados com o uso da tabela Customer e o campo Contact Position, ambos provenientes do banco de dados amostral do Crystal Reports, o Xtreme.mdb.

1. A figura abaixo mostra o campo como está sendo visto atualmente no relatório:

2. Como o campo não pode receber formatação separadamente, iremos separar as informações através de duas fórmulas. A fórmula "A" irá obter a primeira parte do campo e a fórmula "B" irá obter a segunda parte

Fórmula A:

numbervar primeiro_espaço:=InStr ({Customer.Contact Position}," ")-1;{Customer.Contact Position}[1 to primeiro_espaço]

Fórmula B:

numbervar primeiro_caracter:=InStr ({Customer.Contact Position}," ")+1;//obtém primeiro caractere da segunda palavra

numbervar final:= length ({Customer.Contact Position});//checa o tamanho total do campo

12/04/2023 Versão 1 4 de 8

Page 5: Dicas Crystal Report

Dicas Crystal Report

if InStr ({Customer.Contact Position}," ") = 0then ""else {Customer.Contact Position}[primeiro_caracter to final]//verifica se o campo contém só uma palavra

O resultado das fórmulas acima, aplicadas aos campos é:

Agora se formata cada um dos campos como desejado. Por exemplo:

Insere-se um campo texto na seção Details do relatório através do menu Insert | Text Object e arrastam-se para dentro do mesmo os campos provenientes das fórmulas A e B já mencionadas, conforme segue:

O resultado final será:

12/04/2023 Versão 1 5 de 8

Page 6: Dicas Crystal Report

Dicas Crystal Report

5.5. Como as Diferentes Opções 'Keep Together' Afetam o RelatórioComo as Diferentes Opções 'Keep Together' Afetam o Relatório

As opções 'Keep Together' em Crystal Reports são as seguintes:

Keep Together – Manter Junto Keep Group Together – Manter Agrupado Keep Object Together – Manter Objetos Juntos Keep Columns Together – Manter Colunas Juntas

Como elas afetam o relatório?

As opções 'Keep Together' estão disponíveis para formatar objetos e seções do relatório. As opções 'Keep Together' afetam como o relatório mostra um determinado objeto ou seção.

Seções de relatório e objetos de relatório geralmente usados, que incluem as opções 'Keep Together':

A. Report Header / Report Footer, Group Header / Group Footer, DetailsB. Opções de GrupoC. Subreports, Objetos Texto, Objetos OLE, e Outros Campos de Bancos de DadosD. Cross-tabs

Nota:'Keep Together' não está disponível para as seções Page Header e Page Footer. Isto é por projeto. Cada Page Header e Page Footer já estão projetadas para se manter junto seja na parte de cima, seja na parte de baixo, de cada página.

A) REPORT HEADER / REPORT FOOTER, GROUP HEADER / GROUP FOOTER, DETAILS

Quando a opção 'Keep Together' é selecionada, o Crystal Reports mantém o conteúdo da seção na mesma página.

Exemplo de Detalhe de Relatório:

O Group Footer tem 8cm. de altura. A opção 'Keep Together' é selecionada na seção Group Footer. Há apenas 3cm. disponível no fim da página.

Baseado nos dados acima, toda a seção Group Footer irá começar na página seguinte

Nota:Não use a opção com a intenção de manter o grupo inteiro junto em uma mesma página, porque desta maneira descrita acima, a seção Details irá para a página seguinte e não a seção

12/04/2023 Versão 1 6 de 8

Page 7: Dicas Crystal Report

Dicas Crystal Report

Group Header. (Para manter um grupo todo junto, use a opção, como descrito em B) GROUP OPTIONS.

B) GROUP OPTIONS

Para localizar esta opção 'Keep Group Together', siga os seguintes passos:

1. Clique as seguintes opções, dependendo se você quer inserir um novo grupo ou mudar um grupo existente:

a. Insert > Group para inserção de novo grupob. Report > Change Group Expert > Options para mudança em grupo existente

2. Sob o cabeçalho "Group Options", selecione o check box 'Keep Group Together'.3. Clique 'OK'.

Exemplo de Detalhe de Relatório: As seções Group Header, Details e Group Footer são mostradas para cada instância

do grupo. A quantidade de espaço requerida por uma instância do grupo excede o espaço

disponível na página do relatório.

Baseado nestas considerações, toda a instância do grupo irá começar em uma nova página. A instância do grupo compreende o Group Header, Details e Group Footer.

Nota:Se a instância do grupo for tão grande que ocupe várias páginas, a opção 'Keep Group Together' começa em uma nova página e continua através de múltiplas páginas, até que a determinada instância do relatório seja completada.

Se mais de uma instância do grupo couber em uma mesma página, estas instâncias serão mostradas na mesma página.

Não use esta opção se você quiser que cada grupo comece em uma nova página. Para tanto, formate a seção Group Footer com a opção 'New Page After' selecionada.

6.6. Passagem de parâmetros entre sub-relatóriosPassagem de parâmetros entre sub-relatórios

Eventualmente, necessita-se utilizar informações existentes em um sub-relatório, para isso é necessário que o mesmo seja enviado para o relatório principal, já que o mesmo apenas é visualizado, como se fosse uma imagem e não uma informação.Para isso proceda conforme abaixo.

No Relatório Principal:Na seção ‘Page Header’ do relatório principal, insira o sub-relatório, o mesmo poderá estar totalmente fechado para que não apareça no relatório;

12/04/2023 Versão 1 7 de 8

Page 8: Dicas Crystal Report

Dicas Crystal Report

Crie uma fórmula. Ex.:@ReceberShared NumberVar Receber

No Sub-relatório, crie uma fórmula e inclua-a no sub-relatório. Ex.:@ReceberShared NumberVar Receber := {somatório de um campo};

A fórmula no relatório principal apresentará o resultado da formula do sub-relatório.

7.7. Zerar VariávelZerar Variável

Normalmente quando se utiliza Sub-Relatório e se passa valores para se utilizar no relatório principal, normalmente necessita-se “zerar” a variável (“Receber”) na troca do agrupamento do relatório principal.

Para isso:1. Crie uma fórmula (@Zera Variável) com o seguinte conteúdo:

a. Shared NumberVar Receber:=02. Crie um novo rodapé para o grupo (no relatório principal) e inclua a fórmula

(@Zera Variável) nesta seção.

12/04/2023 Versão 1 8 de 8