Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

s.ono

Passagem de parâmetros entre Projetos diferentes

Recommended Posts

Boa tarde.

Sou beginner em VB.NET, e faz pouco tempo que comecei a estagiar na área de programação.

Me desculpem se a pergunta for tonta.

 

Gostaria de saber se existe uma maneira de passar valores de um Projeto para outro, sendo que um está em VB.NET e o outro, para o qual preciso passar os valores, está em C#.

 

Obrigada pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu outro programa é um .exe ou uma dll?

 

Att

 

 

É um .exe

Estou trabalhando com 3 Projetos que ficam no mesmo Solution.. E um dos Projetos foi feita em C#.

Daí, eu precisava passar valores de um Projeto (que está em VB) para outro (que está em C#).

Tem como? É fácil para alguém praticamente leiga como eu? rs

 

Obrigada pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Pessoal.

Como não consegui nenhuma resposta para minha dúvida, resolvi passar todo o Código do outro Projeto (que está em C#) para o mesmo Projeto (que está em VB).

Mas chegou em uma parte que ele começa a usar BackgroundWorker, e eu não sei como passar isso no VB.

 

Alguém poderia me ajudar?

A parte do código que não estou conseguindo converter é:

>> em C#:

private void button1_Click(object sender, EventArgs e)

{

BackgroundWorker backgroundWorker = new BackgroundWorker();

backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork);

backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted);

backgroundWorker.RunWorkerAsync();

}

 

>> tentando passar para o VB:

Private WithEvents backgroundWorker As System.ComponentModel.BackgroundWorker

Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click

backgroundWorker.DoWork += New DoWorkEventHandler(backgroundWorker_DoWork)

backgroundWorker.RunWorkerCompleted += New RunWorkerCompletedEventHandler(backgroundWorker_RunWorkerCompleted)

backgroundWorker.RunWorkerAsync()

End Sub

 

Mas está dando erro... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... agora entendi você quer passar parametros de uma aplicação em execução pra outra aplicação que esta em execução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... agora entendi você quer passar parametros de uma aplicação em execução pra outra aplicação que esta em execução?

 

 

Isso.

O Projeto em VB é uma ERP, e um dos clientes pediu para que o sistema pudesse imprimir boletos.

Encontramos na internet um código pronto para gerar boletos, só que ele estava em C#.

Adicionamos esse Projeto que está em C# para a mesma Solution que está a ERP.

O boleto precisa ser gerado logo após que é feita a Nota Fiscal de Saída (que está no projeto ERP).

Daí, eu precisava passar esses valores (como por exemplo, o ID da Nota Fiscal que foi gerada no momento) para o projeto que gera o Boleto (que está em C#).

 

Tem como?

Como eu não sabia se tinha, e preciso terminar esse processo o mais rápido possível, acabei começando a converter o C# para VB.

Agora não sei mais o que faço. :(

 

Agradeço pela atenção.

 

 

 

ps: só para relembrar.. sou super beginner em VB.NET...rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se achou um codigo pronto para gerar o boleto, ele deve ser um DLL após compilado, então em seu projeto atual faça o import dessa DLL e gere o boleto no proprio projeto sem ter q passar nada pra o outro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se achou um codigo pronto para gerar o boleto, ele deve ser um DLL após compilado, então em seu projeto atual faça o import dessa DLL e gere o boleto no proprio projeto sem ter q passar nada pra o outro.

 

Ah sim..

Foi o que acabei fazendo. Converti o código C# para VB, importando a .dll.

Mas agora to com uma outra dúvida.. Teria como eu editar essa .dll que veio junto com o projeto que baixamos?

 

Obrigada pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se achou um codigo pronto para gerar o boleto, ele deve ser um DLL após compilado, então em seu projeto atual faça o import dessa DLL e gere o boleto no proprio projeto sem ter q passar nada pra o outro.

 

 

 

Entendi..

Fiz um ADD Existing Refence para adicionar esse projeto novo (que está em C#)

A .dll já está na pasta para eu poder usar as funções dela também..

Mas tem uma coisa que está me deixando confusa: como que eu faria para abrir um form que está nesse novo projeto(C#) de um form que esta em outro(VB.NET) ?

 

Por exemplo, vi num projeto pronto, que tinha como fazer assim:

Dim variavel As New Global.namespace.class
variavel.show

Onde esta variável estava sendo declarada no form de um projeto, para abrir o form de outro projeto.

Então, na minha maior inocência (rs) tentei fazer o mesmo com o form que está escrito em C#, mas não deu certo.

Ele nem me mostra a opção .show para a variavel que declaro

 

Alguma ajuda, please?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Independente da linguagem que a classe foi escrita, ela deve iniciada conforme a linguagem que você esta utilizando.

Eu não sei VB, mas seguinte.

 

Se você declarou Dim variavel As New Global.namespace.class

você deve ter acesso a todas as propriedades e métodos publicos dela: variavel.propriedade1, variavel.Metodo1(), etc..

Agora que tipo de form você quer acesar?

 

Pois utilizo esse projeto (do qual sou colaborador) pra emitir boletos: http://boletonet.codeplex.com/

Ele é bem completo e escrito em C#. Emite uma gama de bancos e aos poucos esta sendo implantado a baixa de arquivos.

 

Eu implementei a baixa do BRB e CEF.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Independente da linguagem que a classe foi escrita, ela deve iniciada conforme a linguagem que você esta utilizando.

Eu não sei VB, mas seguinte.

 

Se você declarou Dim variavel As New Global.namespace.class

você deve ter acesso a todas as propriedades e métodos publicos dela: variavel.propriedade1, variavel.Metodo1(), etc..

Agora que tipo de form você quer acesar?

 

Pois utilizo esse projeto (do qual sou colaborador) pra emitir boletos: http://boletonet.codeplex.com/

Ele é bem completo e escrito em C#. Emite uma gama de bancos e aos poucos esta sendo implantado a baixa de arquivos.

 

Eu implementei a baixa do BRB e CEF.

 

 

Oi Ivan!

Esse é o projeto que estou usando... hehehe.

Adicionei o BoletoNet para que o ERP pudesse imprimir boletos.

Mas acho que consegui dar um jeito aqui para chamar aquela tela Main, mas acho que foi meio gambiarra.. http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Dim NomeForm As String = "Main"
Dim Main_boletonet As Form = Activator.CreateInstance("BoletoNet.Arquivo", "BoletoNet.Arquivo." & NomeForm).Unwrap()
...
Main_boletonet.show()

Como você chama essa tela Main a partir do form que está usando? (que no meu caso, está na linguagem VB)

E como você passa os valores para ela?

 

 

Muito obrigada pela atenção e pela paciencia. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, no projeto "BoletoNet.Arquivo", é apenas um Projeto WinForms demonstrado como você deve utilizar o "BoletoNet.Net" para montar o boleto.

Para utilizar você precisa fazer referencia somente a "BoletoNet.Net" e montar conforme sua necessidade, entendeu?

 

Ou seja você não deve utilizar o BoletoNet.Arquivo dentro da sua aplicação. somente o BoletoNet.Net

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte, no projeto "BoletoNet.Arquivo", é apenas um Projeto WinForms demonstrado como você deve utilizar o "BoletoNet.Net" para montar o boleto.

Para utilizar você precisa fazer referencia somente a "BoletoNet.Net" e montar conforme sua necessidade, entendeu?

 

Ou seja você não deve utilizar o BoletoNet.Arquivo dentro da sua aplicação. somente o BoletoNet.Net

 

 

Hmmm.

Acho que entendi mais ou menos..

Teria como você me dar um exemplo, por favor?

Eu iria em Add Existing Project em cima da minha Solution, e escolheria: \boletonet-65141\Boleto.Net\Boleto.Net\Boleto.Net(Visual C# Project File) ?

E de acordo com o exemplo em BoletoNet.Arquivo, eu mesma montaria o form e colocaria os códigos dentro desse Projeto que acabei de adicionar à minha Solution?

É isso?

Aiaiai... ficando meio confusa.. :(

Desculpa pelo trabalho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Use da seguinte forma para invocar outro programa em runtime.

 

System.Diagnostics.ProcessStartInfo processo = new System.Diagnostics.ProcessStartInfo("notepad.exe", "argumento 1 argumento2");

 

System.Diagnostics.Process.Start(processo);

 

Atenciosamente

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Use da seguinte forma para invocar outro programa em runtime.

 

System.Diagnostics.ProcessStartInfo processo = new System.Diagnostics.ProcessStartInfo("notepad.exe", "argumento 1 argumento2");

 

System.Diagnostics.Process.Start(processo);

 

Atenciosamente

 

 

 

Olá sublyer!

Obrigada pela ajuda e pela atenção.

Sobre o código que você me mandou, oq seriam os "argumentos" ?

 

Atenciosamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu iria em Add Existing Project em cima da minha Solution, e escolheria: \boletonet-65141\Boleto.Net\Boleto.Net\Boleto.Net(Visual C# Project File) ?

Não.

Você deve ir em Add Reference e selecionar apenas a DLL Boleto.Net.DLL.

Feito isso, você deve apenas ver como foi deito no Boleto.Arquivo, para fazer no seu. Ou seja, você usa somente a DLL para gerar o boleto dentro da sua solução conforme sua necessidade e como desejar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu iria em Add Existing Project em cima da minha Solution, e escolheria: \boletonet-65141\Boleto.Net\Boleto.Net\Boleto.Net(Visual C# Project File) ?

Não.

Você deve ir em Add Reference e selecionar apenas a DLL Boleto.Net.DLL.

Feito isso, você deve apenas ver como foi deito no Boleto.Arquivo, para fazer no seu. Ou seja, você usa somente a DLL para gerar o boleto dentro da sua solução conforme sua necessidade e como desejar.

 

Boa tarde Ivan!

Fiz oq você disse, e deu certo. ^^

Mas agora, não estou conseguindo passar valores para esse form do Boleto.

Você sabe como eu poderia fazer isso?

No momento estou usando a Public Property Set e Get.. Mas, quando chamo o form do outro projeto e pego os valores, eles vêm como Null.

 

' Primeiro Form - frmFinPagamentos.vb

Dim frmMain_boleto = New Global.BoletoNet.frmMain
...
frmMain_boleto.CedenteCNPJ = 01234567/0001-91
frmMain_boleto.cedenteRazaoSocial = "Empresa ABC"

 

 

Segundo Form - frmMain.cs

public partial class frmMain : Form
{
 private string _cedenteCNPJ;
 private string _cedenteRazaoSocial;
 ...
 public string CedenteCNPJ
 {
 get { return _cedenteCNPJ; }
 set { _cedenteCNPJ = value; }
 }

 public string cedenteRazaoSocial
 {
 get { return _cedenteRazaoSocial; }
 set { _cedenteRazaoSocial = value; }
 }
 ...
 string cCNPJ = CedenteCNPJ;
 string cRazaoSocial = cedenteRazaoSocial;
 //aqui, ele retorna com valores Null...

 

Muito obrigada pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.