1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. Informação: A partir das 9:00 (8:00 nos Açores) deste Sábado, 15 de Dezembro, haverá um breve período de inacessibilidade ao fórum e restantes sites da ZWAME (Comparador, Jogos, Portal, etc).
    Se necessário faremos actualizações via Twitter e Facebook.
    Remover anúncio

Relatórios em VB 2010

Discussão em 'Programação' iniciada por jags17, 4 de Maio de 2012. (Respostas: 16; Visualizações: 7968)

  1. jags17

    jags17 Power Member

    Boas Pessoal,

    Estou de momento em estágio numa universidade e o meu chefe pediu-me para desenvolver uma aplicação simples para a reprografia, para registar as operações efetuadas e quem as efetuou...ele queria também que a aplicação gerasse relatórios para que, por exemplo, ele pudesse saber quantas folhas A4 a cores foram imprimidas no dia X (é um exemplo)...o programa, aparte dos relatórios está a funcionar em pleno, o meu problema centra-se em construir os relatórios....ora relatórios é uma coisa que nunca vi nem usei na vida e estou um bocado às cegas e a bater com a cabeça na parede até acertar...já tentei usar Crystal Reports e (não sei porque) pede-me credenciais da base de dados (que é Access e foi criada graficamente sem credenciais nenhumas)...após várias tentativas de usar Crystal Reports passei ao gerador de relatórios nativo do Visual Studio 2010 mas este so aceita que eu escolha somente uma tabela do dataset para visualizar os dados, o que não me interessa porque a base de dados (Access) tem 3 tabelas relacionadas entre si e eu preciso dos dados das 3 para que estes "batam certo" uns com os outros (não se me fiz entender muito bem...)......

    Se alguem tiver experiência ou souber como fazer relatórios em Visual Basic 2010 com base de dados Access por favor diga-me...

    Obrigadão

    Cumprimentos
     
  2. Cerzedelo

    Cerzedelo Power Member

  3. jags17

    jags17 Power Member

    Boas Cerzedelo,

    Obrigado pela ajuda!

    Mas o que o pessoal também pretende é que seja possivel guardar o relatório em PDF...e nos links que tu enviaste essa opção não aparece....ora eu consegui usar o metodo de relatórios nativo do VS 2010 mas este é todo processado graficamente...existe alguma maneira para que se possa criar todo o relatório via código incluindo as sintaxes SQL para fazer a consulta para obter os dados?


    Cumprimentos
     
  4. Armadillo

    Armadillo Folding Member

    se percebi bem o problema, uma das possibilidades que tens, é criar numa tabela temporaria com os dados a imprimir, simplificando o processo de ligaçao com o Crystal Reports, que segundo dizes, so permite ligar a uma tabela.
     
  5. jags17

    jags17 Power Member

    Boas Armadillo,

    Obrigado pela resposta...o problema é que vao ser necessarios vários tipos de consultas, 4 para ser exato que sao:

    1 - Consultar operações efetuadas por utilizador mediante uma data que será o utilizador a inserir atraves de um datetimepicker;
    2 - Consultar operçaões efectuadas por produto """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""";
    3 - Exibir um gráfico de estatística com o somatório de operações efectuadas durante 1 ano (uma barra por mes);
    4 - Exibir um gráfico de estatística com o somatório de operações efectuadas durante 1 mes (uma barra por dia);

    Como os campos de nome de utilizador e datas são introduzidos ou escolhidos manualmente pelo utilizador, a string da consulta vai variar consoante a escolha...por isso é que preciso mesmo de criar todo o relatório via código, inclusive a string SQL que vai ser efetuada para ir buscar os dados....

    Vou agora mostrar 2 partes do meu trabalho com isto...

    A 1ª foi quando tentei usar o Crystal Reports a ir buscar os dados atraves do Dataset introduzido automaticamente quando se liga a BD ao programa....o resultado foi este...não sei o que significa uma vez que a base de dados é em Access e foi criada no Access 2010 graficamente sem credenciais de qualquer especie...no entanto notei que quando se faz a ligação da base de dados ao projecto utilizando o Wizard aparece isto....deixo por defeito como está mas mesmo assim introduzindo estes dados o login falha....


    A 2ª...depois de me fartar de bater com a cabeça na parede por causa do crystal resolvi ir para o gerador de relatórios nativo do VS 2010....e o código que tenho para já é o seguinte:



    Este código arranjei-o num projecto que encontrei na net mas devido a incompatibilidades da versão do vb certas funcoes do programa davam erro por isso resolvi transpor o codigo para o meu projecto e o resultado é nada mais nada menos que um relatório vazio, em branco, nem erros nem nada, simplesmente não há informação no relatório e na base de dados a informação está la....

    Se alguem puder dar uma vista de olhos e me puder dizer aonde estou a falhar por favor respondam...

    Obrigado


    Cumprimentos
     
  6. Cerzedelo

    Cerzedelo Power Member

    Você criou o Reprografia.report1.rdlc? Pois o controlo ReportViewer, apenas permite embutir no VB o relatório. Pode criar o relatório com o Report Designer do VB se estiver a utlizar uma versão profissional ou se usar o sql server with Advanced Services mesmo na versão express.
    Existe um programa de gerar relatórios, livre, substituto do crystal reports, o fiyreporting, que pode experimentar, pena é que foi descontinuado (leia a documentação).
    ver: http://gotreportviewer.com/
     
  7. jags17

    jags17 Power Member

    Boas Cerzedelo,

    Sim, criei o Relatório usando o wizard do crystal no VB e depois chamei esse relatório para dentro de um report viewer, numa form...acho que é assim que se faz, corrige-me se estiver errado...em relação ao link que mandaste...desculpa mas nao estou a ver o fiyreporting...a documentação é do reportviewer...mas obrigado pela dica...vou procurar...se satisfizer as necessidades que preciso (que não sao muito avançadas) passo para esee...
     
  8. Cerzedelo

    Cerzedelo Power Member

    Pelo que sei, (pq não o uso) o crystal tem um visualizador de relatório próprio, que é incluido na barra de ferramentas do VB. Senão o tem é porque provavelmente tem de adicionar a referência ao seu projecto e ao VB.
    O Fyireporting, é um programa externo, que substitui o crystal reports, veja em http://www.fyireporting.com/.
     
  9. jags17

    jags17 Power Member

    Boas Cerzedelo,

    Sim, eu consegui inserir o visualizador de relatórios do crystal no projeto...simplesmente ele não vai la com o código que tenho...eu ja instalei o fyireporting e ele não me adicionou nada nem me deixou adicionar (da-me uma mensagem de erro) nenhuma referência dentro do VB...tens a certeza que o Fyireporting dá para usar a 100% no VB2010? E que posso usar as minhas proprias querys para ir buscar os dados? É que eu nao estou interessado em que o programa gere o relatorio de forma automatica...quero ser eu a dizer.lhe a query a executar....isso é possivel com o Fyireporting?
    Se sim, tens algum exemplo de sintaxe que me possas mostrar??

    Obrigado
    Cumprimentos
     
  10. Cerzedelo

    Cerzedelo Power Member

    Se tem o visualizador do crystal instalado e não lê o relatório, então o problema está no relatório.
    Quanto ao fyireporting, eu experimentei-o no VB 2008 e funcionava bem. O fyireporting, pode ser utilizado sem o vb, é um programa externo, que funciona com um programa normal, o que você tem que fazer é seleccionar a base de dados e depois escolher os dados que quer mostrar, e gravar e atribuir um nome ao ficheiro do relatório. Depois, é que tem que instalar a referência no vb, para o poder visualizar, salvo erro um ficheiro, rdlviewer.dll. Conculte a informação no site, tem lá exemplos e um fórum.
    Quanto à query que pretende, tem que utilizar parâmetros.
     
  11. jags17

    jags17 Power Member

    Boas Cerzedelo,

    O problema é que nos parametros da query estao dados que vai ser o utilizador a preencher, tipo textboxes, a query dá para ser introduzida no VB?
     
  12. Cerzedelo

    Cerzedelo Power Member

    Claro que pode, veja o código:

    Dim strSQL As String = "INSERT INTO tbl_clientes (nome) VALUES (@nome)" 'instrução inserir
    Dim cmd As New OleDbCommand(strSQL, coNn) 'cria o comando e passa os parametros
    cmd.Parameters.Add("@nome", OleDbType.VarChar).Value = TextBox18.Text
    coNn.Open()
    cmd.ExecuteNonQuery()
    coNn.Close()

    Este caso é para inserir dados, mas pode aplicá-lo a uma consulta através da instrução WHERE. (Select nome From clientes where [email protected]).
     
  13. jags17

    jags17 Power Member

    sim eu ja conheço esta sintaxe mas e depois? como mandas os dados para o relatório?
     
  14. Cerzedelo

    Cerzedelo Power Member

    Insisto, veja: http://www.macoratti.net/08/04/vbn8_imp.htm
    Copie o exemplo, substituindo a ligação à base de dados e a query à sua e tem um relatório, depois é uma questão de ajustamento, (linha mais para esquerda, mais para a direita).
    Em resumo:
    no evento begin_print, faz a ligação à base de dados( se ainda não a fez) e executa a query.
    no evento printpage, desenha o relatótio e manda listar os registos (lendo o datareader... no exemplo leitor.Read(), e obtendo os dados e passando para as variáveis ex: codigo = Leitor.GetInt32(0), (1º elemento do datareader e em principio da sua tabela), depois é só listá-lo com a função e.graphics.drawstring (codigo,...)
    no evento end_print, fechar as ligações (ex. reader.close)
    Não se esqueça, leia bem o documento, e copie o que lá está e tem um relatório pronto a imprimir.
     
  15. jags17

    jags17 Power Member

    Ok, obrigado por toda a sua ajuda.

    Já agora...eu tambem vou precisar de relatórios sob o formato de gráfico...utilizando o wizard no VB para o fazer o relatório aparece-me em branco, o que não faz sentido pk segui varios tutoriais, todos da mesma forma (não tem muito que enganar) e mesmo assim o relatório nao se gera, mas tambem nao da erros...tenho a certeza absoluta que existem dados para relacionar mas estes simplesmente nao aparecem...não é preciso (acho eu) código nenhum uma vez que nao sao utilizadas (acho) querys neste tipo de relatório..tens alguma experiencia com isto que me possas ajudar?
     
    Última edição: 10 de Maio de 2012
  16. Cerzedelo

    Cerzedelo Power Member

    Em termos de gerar gráficos em VB, confesso que a minha experiência é pouca. Mas o VB10, tem um controlo Microsoft Chart Control, que serve para produzir gráficos, veja estes tópicos:
    http://www.macoratti.net/10/09/vbn_graf.htm
    http://www.macoratti.net/10/09/vbn_graf2.htm
    http://www.portugal-a-programar.org/forum/index.php?topic=31665.0
    Quanto a imprimir o gráfico, veja o tópico, tem algumas informações importantes:
    http://social.msdn.microsoft.com/Forums/pt-PT/504/thread/7d564d05-0c25-42ed-b9c3-bde94dc320f0
    Espero que ajude.
     
    Última edição: 10 de Maio de 2012
  17. jags17

    jags17 Power Member

    Cerzedelo ajudou e muito! Obrigado!
    Sem querer ser chato nem abusar da sorte, mas há alguma possibilidade de guardar os charts como PDF?

    Cumprimentos
     

Partilhar esta Página