A Microsoft tem um site (http://www.microsoft.com/project/en/us/ribbon_guide.aspx) onde mostra como usávamos o menu antigo e obtemos onde a funcionalidade está no 2010.
24 janeiro 2011
// //
0
comentários
//
O Report Viewer é uma ferramenta da própria Microsoft, integrada ao Visual Studio .Net que permite a geração de relatórios. O Microsoft Visual Studio 2010 inclui a funcionalidade de design de relatórios e controles ReportViewer para que você possa adicionar relatórios completos para aplicações personalizadas. Os relatórios podem conter dados tabulares, agregados e multi dimensionais. Os controles ReportViewer são fornecidos de modo que você pode processar e exibir o relatório em sua aplicação. Será utilizado o ReportViewer controle Windows Forms que é usado para hospedar relatórios em projetos de aplicativosWindows.
Desenvolvimento:
Neste artigo iremos utiliza um chart(componente gráfico presente no VS2010) e um simples textBox para demonstrar como passar uma imagem (bmp,png etc) para um relatorio reportviwer juntamente com uma string como parametro.
O grafico foi utilizado para idealizar que seu visual muda de acordo com o funcionamento do software produzido mas qualquer imagem pode ser passada, como por exemplo o conteúdo de um pictureBox ou ate mesmo a imagem da tela do próprio formulário. O textBox foi utilizado para receber qualquer informação fornecida no mesmo e passar como parametro para o reportviwer, o reportviwer aceita como parametro um text,boolean,Date/Time,Integer e float.
Para começar iremos criar uma classe que conterá a imagem que irá aparecer no relatório, neste caso utilizarei a classe clsDados que terá a Imagem. Percebe-se na figura abaixo que Imagem é um vetor de bytes.
Agora vamos criar o relatório. Adicione um report no seu projeto, siga os seguintes passos :
Escolha o nome do relatório como rptDados.
Após confirmação você ira visualizar a seguinde tela conforme a imagem abaixo:
Muito bem agora vamos criar nosso dateset dsDados.
Na aba Report Data (Ctrl+Alt+D) escolha New>Dataset... conforme a imagem abaixo:
A seguinte tela ira aparecer:
Escolha Object e clique em next.
Escolha a classe clsDados que ira conter a informação que precisamos. OBS caso o projeto não apareça na lista feche o Configuration Wizard de um rebuild no projeto e refaça ate este ponto. Após escolher a classe clique em Finish.
Veremos no campo Fields: que a variável que utilizaremos já foi encontrada. Renomeie o dataset para dsDados e clique em OK.
Agora ja temos o campo que conterá nossa imagem, vamos criar um parâmetro para receber o conteúdo de um textBox da tela de formulário, para isso clique com o botão direito sobre a pasta Parameters no guia Report Data e depois clique em Add Parameter... conforme a imagem abaixo:
A seguinte tela ira aparecer:
Em Name informe o nome do parâmetro, neste caso Observacao e em Data Type deixe o combobox marcado como Text. Clique em OK e o parâmetro terá sido criado.
Bom, agora vamos criar dois formulários. Um chamado Form1 e outro Form2. Naturalmente quando criamos um projeto o mesmo ja cria um formulário chamado Form1 dai basta adicionar um segundo chamado Form2.
Apos adicionar os formulários vamos trabalhar em cima do primeiro formulário o Form1. Vamos adicionar um textBox e em sua propriedade tex deixe um comentário como "Escreva algo aqui". Coloque também um botão para podermos gerar nosso relatório e mude seu text para Gerar relatório. Deixe um espaço na parte superior do Form1 para criarmos um gráfico para o exemplo. O resultado será igual a imagem abaixo:
Bem agora vamos criar um gráfico para nosso exemplo. O espaço deixado é para o gráfico que ira ser criado. No load do nosso formulário Form1 vamos colocar o código conforme a imagem abaixo:
Este gráfico é o mesmo utilizado como exemplo para o artigo Novo componente Chart Control do VS2010.
Muito bem, apos rodar o programa iremos ter um resultado semelhante a imagem abaixo:
Muito bem nosso formulário para testarmos esta pronto, agora temos que trabalhar no botão para gerar o relatório, ele irá pegar a imagem do gráfico criado e transforma-lo em bytes e armazena-lo na nossa classe de dados e após isso abrir nosso segundo formulário, o Form2 que será o formulário que ira mostrar nosso relatório. De dois cliques no botão para ir-mos ao evento onclick do mesmo. Coloque o código conforme a imagem abaixo:
Percebe-se que na chamada do nosso Form2 que é o formulário que irá mostrar nosso relatório estamos passando 2 parâmetros, a classe dados e o text do nosso textBox. Bem vamos agora trabalhar com nosso segundo formulário, o Form2. Como este formulário ira mostrar nosso relatório vamos colocar um componente reportviewer bastando clicar no componente na barra de toolbox e arrasta-lo para nosso formulário.
Após arrastar o componente para o formulário sua tela deve parecer com a imagem abaixo:
No componente criado, no canto superior direito clique na seta para ver as tarefas. Escolha Dock in Parent Container. Isto fará com que o componente expando para tora área do formulário.
Pronto já temos o formulário que ira mostrar nosso relatório. Agora vamos trabalhar em seu construtor para que o mesmo receba os parâmetros que foram passados no Form1.
Diferente do artigo Trabalhando com Reportviewer + VS2010 estamos criando o bind, setando seu valor, informando o localreport, criando o parametro e fornecendo o bind correspondente ao dataset correto no relatório manualmente, ou seja, via código. Fizemos isto para demonstrar uma alternativa de como realizar este procedimento via código. Explicando o código fizemos a criação de um bind chamado bsDados que irá conter os bytes da nossa imagem, setamos o sourse do bind com nossa classe de dados que foi passada pelo Form1, definimos o local da nossa rdl, criamos um parâmetro para passar a string de Observacao e finalmente fornecer o bind bsDados ao dataset dsDados do nosso relatorio rptDados.
Muito bem, nossos formulários estão prontos, vamos agora mostrar nossa imagem e nosso parâmetro no relatorio rdl. Para isso vamos apenas arrastar um componente Image presente no toolbox do relatorio rdl.
A seguinte tela irá aparecer:
No campo "Select the image source:" escolha Database, em "Use this field:" escolha nosso campo Imagem do nosso dataset dsDados e em "Use this MIME type:" escolha image/bmp e clique em ok. Pronto a imagem ja esta alocada.
Agora é so ajustar seu tamanho. Pode-se fazer isso usando o próprio mouse.
Estamos quase terminando, vamos agora mostrar o parâmetro Observacao que criamos. Para isto basta mover o parametro da guia ReportData para o relatorio.
Pronto, agora basta rodar o software digitar qualquer coisa no textBox e clicar para gerar o relatório.
Finalização:
Neste artigo demonstrei como passar uma imagem de um formulário para um relatório reportviewer e como passar um parâmetro para o mesmo. Muitos já passaram ou irão passar por esta situação. Alguns irão perguntar porque passar uma imagem se a mesma pode ser inserida diretamente pelo relatório mas a questão e se a imagem mudar dinamicamente? utilizei o gráfico exclusivamente por isso, já imaginou um gráfico de curvas e pontos onde a partir de valores informados no formulário o mesmo muda? Neste caso e viável passar a imagem do mesmo para o relatório.
Bem ,espero que isto ajude alguém. Mais uma vez demonstrei o quão prático esta trabalhar com VS2010 + reportviewer.
04 janeiro 2011
// //
5
comentários
//
Um gráfico é composto de vários elementos, os quais são acessíveis através do controle Chart API. O controle Chart API é orientada a objetos, extensível e muito flexível. Ele também suporta um número ilimitado de elementos de gráfico-chave, tais como séries de dados, pontos de dados em uma série, áreas de gráfico, e assim por diante.
A figura a seguir ilustra os principais elementos que constituem um gráfico:
Descrição dos Elementos do Gráfico
A lista a seguir descreve os componentes principais do gráfico:
Axis Label
Um rótulo de um eixo.
Axis Title
O título de um eixo.
Chart Picture
A imagem do gráfico, é a superfície inteira da imagem que é processada pelo controle do gráfico. Corresponde à raiz do objeto gráfico.
A imagem do gráfico, é a superfície inteira da imagem que é processada pelo controle do gráfico. Corresponde à raiz do objeto gráfico.
Chart Area
A Chart Picture é composto por uma ou mais Chart Areas, que são áreas retangulares que são usados para chamar a series, labels, axes, grid lines, tick marks, e assim por diante. Múltiplas séries podem ser plotadas em uma Chart Area, dependendo dos tipos de gráfico envolvidos.
Chart Series
A série é um grupo de pontos de dados relacionados. Cada série é associada a um tipo de gráfico.
Legend
A legenda para a imagem do gráfico. Não pode haver um número ilimitado de legendas em um gráfico.
Grid Lines
Há grandes e pequenas linhas de grade horizontais e verticais, que geralmente ocorrem em conjunto com as marcas de escala.
Tick Marks
Há grandes e pequenas marcas de escala horizontal e vertical, que geralmente ocorrem em conjunto com as linhas da grade.
Plot Area
A área de plotagem é a área interna retangular dentro da área do gráfico que é usado para traçar linhas de série e grade. Rótulos, marcas de escala, o título do eixo, e assim por diante, são todos elaborados fora da área de plotagem e dentro da área do gráfico. A área de plotagem pode ser definido através da propriedade ChartArea.InnerPlotPosition.
Title
Um título do gráfico principal. Não pode haver um número ilimitado de títulos colocados em uma imagem do gráfico. Observe que o texto feito sob encomenda pode ser exibido usando GDI + e os eventos relacionados com pintura.
Value Label
Uma etiqueta especial que ocorre para um ponto de dados, ligeiramente deslocada a partir de onde o ponto é plotado. Ele pode ser o valor do ponto de dados ou texto personalizado.
Adicionando o controle de gráfico para seu formulário
Depois de criar um Windows Aplication, adicione um gráfico para o formulário, arrastando um controle de gráfico a partir da janela Toolbox para a superfície de design. A figura abaixo mostra o controle de gráfico na janela de ferramentas.
Definindo Propriedades do Gráfico
O controle de gráfico tem todos os seus dados e propriedades de aparência disponíveis na janela Propriedades do Visual Studio. Clique no gráfico de controle na superfície de design para ver as propriedades do gráfico e personalizá-los. Se uma das propriedades é uma coleção, você vai ver um botão à direita da sua célula de valor. Você pode clicar no botão para editar os itens na coleção na janela Editor de coleção. A figura abaixo mostra a janela do Editor de coleção para a propriedade coleção Chart.
Elementos
de texto
Um gráfico é composto de inúmeros elementos de texto diferentes:
Títulos - usa a propriedade TitleCollection. Os títulos podem ser colocados em qualquer lugar na tabela e ser utilizado como texto ou elementos de rotulagem.
Eixo Títulos - colocados ao longo de um eixo na área do gráfico para a Legenda de Títulos.
Axis Labels - exibe os valores da escala do eixo.
Valor Labels - exibe informações sobre os dados.
Legenda Texto - explica a informação da série na legenda.
Anotação de texto - notas explicativas que pode ser conectado a diversos elementos do gráfico.
Criando
um gráfico dinamicamente
Ex:
Este componente realmente me fez abandonar qualquer outro tipo de componente que utilizava para gerar gráficos. De todos que já trabalhei é o mais simples, com o melhor design e qualidade e enorme quantidade de recursos.
20 dezembro 2010
// //
0
comentários
//
Sobre este Blog
Aqui comento sobre minhas experiências na área de TI. Metodologia Ágil, programação, Banco de Dados e o que mais passar pela frente...
Quem sou eu

- Renato de Almeida Soares
- Belo Horizonte, MG, Brazil
- Desenvolvedor de aplicativos,banco de dados e líder de projetos em uma ampla variedade de aplicações. Possui 5 anos de experiência na área de desenvolvimento de projetos de software, atuando como desenvolvedor, analista e líder de equipe. Atualmente, é líder da área de TI ,gerenciando os projetos dessa companhia. Sobre a sua formação acadêmica, é especialista em Engenharia de Software pela Universidade Federal de Minas Gerais (UFMG), graduado em Analise de Sistemas pela Universidade Leste Minas Gerais (UNILESTEMG) e técnico em informática pela CTCF. Tem interesse nas áreas de Qualidade de Software (Modelos e Processos), Gestão de Projetos,Desenvolvimento de aplicações.