Criando relatórios com Crystal Reports e ASP.NET – Parte 2


Nesse post vou continuar com a criação do relatório que comecei em Criando relatórios com Crystal Reports e ASP.NET – Parte 1,se você ainda não viu,de uma olhada.

O próximo passo é adicionar o nome do cliente (CustomerName),e os campos de endereço,”bill to” (Cobrança para) e “ship to” (Entrega para).Nós iremos usar os “Formula Fields” do Crystal Reports para fazer isso.Formula Fields são poderosos,eles permitem você usar lógica de programação para criar campos.Você pode usar If/Then,loops,do loops,while loops,criar variaveis locais e globais,manipular arrays e muitas outras coisas.Os Formula Fields permitem você fazer quase tudo num relatório.Vamos começar adicionando o “Text Object” ,como label para o Nome do cliente,e o formula field para mostrar o campo “Customer Name”:

1. Insira um “Text Object” abaixo do logo e mude o texto para:”Nome do cliente:”.Redimensione o obejto de texto para ficar somente do tamanho do texto.
2. Clique com o direito no “Formula Fields” no field explorer e selecione “New…”,no pop-up.
3. Sete “CustomerFullName” para o nome da formula e clique em “Use editor”.
4. Nem todos os “Customers” (Clientes) tem um Title,middle name e suffix.Nós iremos criar uma variavel local na formula e uma lógica pra concatenar os campos de nome se eles existirem.Coloque o seguinte código na fórmula:

local stringVar customerName := “”;

if isnull({Contact.Title}) = false then
customerName := customerName + {Contact.Title} + ” “;
customerName := customerName + {Contact.FirstName} + ” ” + {Contact.LastName};

if isnull({Contact.Suffix}) = false then
customerName := customerName + ” ” + {Contact.Suffix};

customerName;

  1. Clique no botão Save and Close no canto superior esquerdo do editor.
  2. Expanda o “Formula Field” no field explorer,e arraste o campo “CustomerFullName”,próximo ao label do nome do cliente.Você pode deixar o campo maior clicando no campo e arrastando suas extremidades.
  3. Clique no botão “Main Report Preview” e você deve ver o nome do cliente aparecer.Use os botões de rolagem de páginas pra ver que alguns nomes tem “Title” e “middle name”.

O próximo passo é criar o formula field “bill to address”.Ele tem um problema parecido com o do nome,porque nem todos os clientes tem  o campo AddressLine 2 preenchido.Nós só podemos incluir esse campo se ele não for nulo.Nós poderiamos somente arrastar todos os campos para o relatorio em linhas separadas,mas se algum registro no campo AddressLine 2 estivesse nulo nós teríamos um “buraco” no relatório.O Formula Field,nos ajuda a resolver este problema:

  1. Insira um “Text Object” embaixo do Formula Field “CustomerFullName”,e coloque “Cobrança para:”.Formate o “Text object” deixando seu texto em negrito.
  2. Clique com o direito no “Formula Fields” no field explorer e selecione “New…”,no pop-up.
  3. Sete “BillToAddress” para o nome da formula e clique em “Use editor”.
  4. Insira o seguinte código:

local StringVar billTo := {addressbillto.AddressLine1} + chr(13);

if isnull({addressbillto.AddressLine2}) = false then
billTo := billTo + {addressbillto.AddressLine2} + chr(13);

billTo := billTo + {addressbillto.City} + “, ” +
{stateprovincebillto.StateProvinceCode} + ” ” + {addressbillto.PostalCode}

Esse código cria uma variavel local e a inicializa com o campo AddressLine1 e adiciona uma quebra de linha.O chr(13) cria uma quebra de linha na formula.Depois checamos se o AddressLine2 é nulo e concatenamos na variavel se este tiver valor.Depois concatenamos os campos,City,State/Province, e PostalCode.

  1. Clique no botão Save and close.
  2. Arraste o “Formula Field” “BillToAddress” abaixo do “Text object” “Cobrança para:”.Aumente a largura do campo.
  3. Como você não sabe qual a altura necessária porque vai depender se o cliente tem endereço no campo AddressLine2,você pode deixar a altura do campo como está.Porém,você poder fazer com que o campo ajuste sua altura automaticamente clicando com o botão direito no campo e selecionando “Format Object”.
  4. Marque a checkbox “Can grow”.Isso permite que o campo cresça verticalmente.
  5. Nós também queremos contornar o campo com uma borda.Clique na aba border,na caixa de diálogo “Format Editor”.
  6. Selecione “Single” para os combos “left”,”Right” e “Top” e “Bottom”.Clique em OK.
  7. Clique em Main Report Preview.

  1. Agora você pode criar o campo “Ship to” da mesma maneira.Primeiro insira um “Text Object” e digite “Entrega para:”.Deixe o texto em negrito.Coloque-o no meio do relatório.
  2. Clique com o botão direito em “Formula Field” no field explorer e selecione “New…”
  3. Coloque o nome “ShipToAddress” e clique em Use editor.
  4. Coloque o seguinte código:

local StringVar shipTo := {addressshipto.AddressLine1} + chr(13);

if isnull({addressshipto.AddressLine2}) = false then
shipTo := shipTo + {addressshipto.AddressLine2} + chr(13);

shipTo := shipTo + {addressshipto.City} + “, ” +
{stateprovinceshipto.StateProvinceCode} + ” ” + {addressshipto.PostalCode}

  1. Clique no botão Save and close.
  2. Arraste o “Formula Field” “ShipToAddress” abaixo do “Text object” “Entrega para:”.Aumente a largura do campo.
  3. Clique com o botão direito no “Formula Field” e selecione “Format Object”.
  4. Marque a checkbox “Can grow”.Isso permite que o campo cresça verticalmente.Coloque as bordas da mesma forma que fez anteriormente.

Aqui terminamos o cabeçalho de nosso relatório.Em breve publicarei a Parte 3,com a continuação da criação deste relatório.

Até la!

Anúncios

Um comentário sobre “Criando relatórios com Crystal Reports e ASP.NET – Parte 2

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s