none
Conversão de codigo VB para c# RRS feed

  • Pergunta

  • Bom dia a todos, 

    Eu tenho um código em vb, e precisava de o converter para c#, já converti praticamente tudo, mas ainda continua com alguns erros: 

    Segue o código e os erros.. Se alguém conseguisse resolver agradecia imenso!! 

    if (rdbVisualizar.Checked ) 
                    
                    {
                        MSA.Application.DoCmd.OpenReport(cboRelatorios.Text, AcView.acViewPreview);
                        // maximiza a janela
                        MSA.Application.DoCmd.Maximize();
                        // oculta a barra de menu
                        MSA.Application.CommandBars("Menu Bar").Enabled = false;
                         //oculta a barra de menu Print Preview
                        MSA.Application.CommandBars("Print Preview").Enabled = false;
                         //Oculta o menu popup do relatorio
                        MSA.Application.CommandBars("Print Preview Popup").Enabled = false;
    
                    }
                        else {
                             MSA.Application.DoCmd.OpenReport(cboRelatorios.Text, AcView.acViewNormal);
    
    
                            }
                }

    sábado, 18 de janeiro de 2014 10:34

Respostas

  • Você já comentou e fora esses três comandos ele gera o relatório ?

    Outra solução

    tente assim

    MSA.Application.CommandBars["Menu Bar"].Enabled = false;
     //oculta a barra de menu Print Preview
    MSA.Application.CommandBars["Print Preview"].Enabled = false;
     //Oculta o menu popup do relatorio
    MSA.Application.CommandBars["Print Preview Popup"].Enabled = false;

    ou seja no lugar da ( ) coloque [ ] !!! teste por favor!


    Fulvio Cezar Canducci Dias

    quarta-feira, 22 de janeiro de 2014 15:33

Todas as Respostas

  • Mande o código alterado que você fez na integra!

    Fulvio Cezar Canducci Dias

    terça-feira, 21 de janeiro de 2014 21:36
  • Segue o código e o aspecto de como está, para além do erro que dá no código,  os relatórios deveriam aparecer na combobox e não estão a aparecer: 

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Access = Microsoft.Office.Interop.Access;
    
    namespace Faurecia
    {
        public partial class frmRelat : Form
        {
            public frmRelat()
            {
                InitializeComponent();
            }
    
    
    
            private void frmRelat_Load(object sender, EventArgs e)
            {
                cboRelatorios.SelectedIndex = 0;
            }
    
            private void btnExecutar_Click(object sender, EventArgs e)
            {
                if ((cboRelatorios.SelectedIndex == -1))
                {
                    MessageBox.Show("Selecione um Relatório!!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
    
                }
    
    
                try
                {
                    Microsoft.Office.Interop.Access.Application MSA = new Microsoft.Office.Interop.Access.Application();
                    MSA.Application.Visible = false;
                    MSA.OpenCurrentDatabase("c:\\dados\\meu.mdb", false);
                
    
                    if (rdbVisualizar.Checked ) 
                    
                    {
                       
                        MSA.Application.DoCmd.OpenReport(cboRelatorios.Text, Access.AcView.acViewPreview);
                        // maximiza a janela
                        MSA.Application.DoCmd.Maximize();
                        
                        // oculta a barra de menu
                         MSA.Application.CommandBars("Menu Bar").Enabled = false;
    
    
    
                         //oculta a barra de menu Print Preview
                        MSA.Application.CommandBars("Print Preview").Enabled = false;
                         //Oculta o menu popup do relatorio
                        MSA.Application.CommandBars("Print Preview Popup").Enabled = false;
    
                    }
                        else {
                            MSA.Application.DoCmd.OpenReport(cboRelatorios.Text, Access.AcView.acViewNormal);
    
    
                            }
                }
                
                catch (Exception ex)
                {
                    MessageBox.Show(("Erro : " + ex.Message), "Erro ao acessar o objeto", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
        
        }
            //================Botão Cancelar=====================================================================================================
    
            private void button2_Click(object sender, EventArgs e)
            {
                this.Dispose();
            }
    
         
    }
    }

    quarta-feira, 22 de janeiro de 2014 09:11
  • Sem ser o de não aparecer na combobox, O erro só está a dar nesta parte..

     // oculta a barra de menu
                         MSA.Application.CommandBars("Menu Bar").Enabled = false;
    
    
    
                         //oculta a barra de menu Print Preview
                        MSA.Application.CommandBars("Print Preview").Enabled = false;
                         //Oculta o menu popup do relatorio
                        MSA.Application.CommandBars("Print Preview Popup").Enabled = false;

    quarta-feira, 22 de janeiro de 2014 09:13
  • Você já comentou e fora esses três comandos ele gera o relatório ?

    Outra solução

    tente assim

    MSA.Application.CommandBars["Menu Bar"].Enabled = false;
     //oculta a barra de menu Print Preview
    MSA.Application.CommandBars["Print Preview"].Enabled = false;
     //Oculta o menu popup do relatorio
    MSA.Application.CommandBars["Print Preview Popup"].Enabled = false;

    ou seja no lugar da ( ) coloque [ ] !!! teste por favor!


    Fulvio Cezar Canducci Dias

    quarta-feira, 22 de janeiro de 2014 15:33
  • Já não dá erro!!!

    Mas na combobox não aparece nenhum relatório para seleccionar!! Como faço para aparecer??Depois já dava para testar se funciona!!

    quarta-feira, 22 de janeiro de 2014 16:00
  • Eu não sei o que se ta fazendo !

    Transformei o que você pediu !!!


    Fulvio Cezar Canducci Dias

    quarta-feira, 22 de janeiro de 2014 18:17
  • eu fiz tudo o que dizia o link que você me deu.... e pelo que lá diz deveriam estar na combobox os relatórios, escolhia-se um, e uma opção de imprimir o visualizar.. e em seguida clicava-se no botão de ter acesso ao relatório.. Mas não esta a funiconar.. o meu código e o formulário está todo em cima....
    quarta-feira, 22 de janeiro de 2014 18:41
  • Passe o nome do relatório em uma variavel fixa e ve se funciona! se sim

    se vai ter que entrar naquele combo e carregar-lo na mão eu acho!


    Fulvio Cezar Canducci Dias

    quarta-feira, 22 de janeiro de 2014 18:45
  • Como é que eu faço isso??? onde e como ponho a variável fixa??? Desculpe
    quarta-feira, 22 de janeiro de 2014 19:02
  • Como é que eu faço isso??? onde e como ponho a variável fixa??? Desculpe
    MSA.Application.DoCmd.OpenReport(cboRelatorios.Text, AcView.acViewNormal);


    Fulvio Cezar Canducci Dias

    quarta-feira, 22 de janeiro de 2014 19:07
  • Não percebi!!!! desculpe

    Eu já tenho essa linha de código

    MSA.Application.DoCmd.OpenReport(cboRelatorios.Text, Access.AcView.acViewPreview);

    quarta-feira, 22 de janeiro de 2014 19:23
  • Não percebi!!!! desculpe

    Eu já tenho essa linha de código

    MSA.Application.DoCmd.OpenReport(cboRelatorios.Text, Access.AcView.acViewPreview);

    Se perguntou aonde é para colocar a variavel com o nome fixo 

    é nessa linha

    exemplo:

    var nome = "relatorio1";

    MSA.Application.DoCmd.OpenReport(nome, Access.AcView.acViewPreview);

    para ver se abre o relatório!

    Patricia !!!


    Fulvio Cezar Canducci Dias

    quarta-feira, 22 de janeiro de 2014 19:25
  • Mostra este erro.. 

    Será do caminho da base de dados??  a base de dados esta dos projetos do visual studio, depois no meu projeto...


    quarta-feira, 22 de janeiro de 2014 20:18
  • Mostra este erro.. 

    Será do caminho da base de dados??  a base de dados esta dos projetos do visual studio, depois no meu projeto...


    Não sei!!! sinceridade não sei!

    Acho que deveria repensar em fazer os relatório no proprio VS!

    Essa é minha opinião!!!


    Fulvio Cezar Canducci Dias

    quarta-feira, 22 de janeiro de 2014 23:12
  • Não posso, têm de ser em acess,  é uma exigência que me fizeram..

    Alterei o caminho da fase de dados, ficou assim:

     MSA.OpenCurrentDatabase("faurecia.accdb", false);

    agora o erro que dá é: 

    quinta-feira, 23 de janeiro de 2014 09:47
  • Não posso, têm de ser em acess,  é uma exigência que me fizeram..

    Alterei o caminho da fase de dados, ficou assim:

     MSA.OpenCurrentDatabase("faurecia.accdb", false);

    agora o erro que dá é: 

    Não sei porque estão dando esses erros ... !!!

    String PathSistema = Application.StartupPath;
                Microsoft.Office.Interop.Access.Application MSA = new Microsoft.Office.Interop.Access.Application();
                MSA.Application.Visible = true;                           
                MSA.OpenCurrentDatabase(string.Format("{0}/Banco/{1}", PathSistema, "BancoExemplo.accdb"), false);            
                MSA.Application.DoCmd.OpenReport("RelatorioCliente", Microsoft.Office.Interop.Access.AcView.acViewReport);            
                MSA.Application.DoCmd.Maximize(); 

    eu fiz esse exemplo funcionou ele mostra o relatório !!! mas, sincero, fica feio! e isso eu acho que fica inviável!


    Fulvio Cezar Canducci Dias

    quinta-feira, 23 de janeiro de 2014 13:36
  • Patrícia,

    Use esse conversor, provavelmente irá reduzir bem as chances de ter algum erro na conversão:

    http://www.dotnetspider.com/convert/Vb-To-Csharp.aspx

    • Sugerido como Resposta ThiagoLunardi quinta-feira, 23 de janeiro de 2014 15:43
    quinta-feira, 23 de janeiro de 2014 13:53
  • Obrigada Thiago, mas eu já consegui corrigir os erros todos, neste momento não consigo é ir buscar os relatórios ao acess.. 

    Você sabe como se faz??

    quinta-feira, 23 de janeiro de 2014 14:37
  • Não, não trabalho com Access a muito tempo. :(

    Mas me faz um gentileza, marque essa questão como respondida escolhendo qual foi a melhor resposta.

    Depois faça essa pergunta do acesso do Access por relatórios na categoria devida no fórum.

    Irá te facilitar a encontrar alguém que possa te ajudar! :)

    quinta-feira, 23 de janeiro de 2014 15:43
  • Esse código funciona se precisar!
                String PathSistema = Application.StartupPath;
                Microsoft.Office.Interop.Access.Application MSA = new Microsoft.Office.Interop.Access.Application();
                MSA.Application.Visible = true;                           
                MSA.OpenCurrentDatabase(string.Format("{0}/Banco/{1}", PathSistema, "BancoExemplo.accdb"), false);            
                MSA.Application.DoCmd.OpenReport("RelatorioCliente", Microsoft.Office.Interop.Access.AcView.acViewReport);            
                MSA.Application.DoCmd.Maximize(); 

    Fulvio Cezar Canducci Dias

    quinta-feira, 23 de janeiro de 2014 15:56