none
como ficou o app.path no vb.net RRS feed

  • Pergunta

  • Seguinte, no meu projeto tenho uma pasta chamada ralatórios onde ficam meus rpt's. Como faço pra passar o caminho dos rpt em run time usando o pth da aplicação? Eu vi alguma coisa como

     

    Dim rptPath As String

    rptPath = Application.StartupPath("~\relatorios\inconsistencia.rpt")

     

    Mas ta dando erro aqui....

    Alguem tem uma idéia mais prática?

    vlw

     

    quinta-feira, 1 de abril de 2010 14:46

Respostas

  • Danimar,

    O StartupPath irá retornar o path do seu executavel, se vc está debugando ele vai retornar o local onde esta seu exe enquanto debuga tambem, é que justamente esse camnho que vc mostrou. Logo, quando vc distribuir o programa, ele irá retornar o caminho correto de onde ele foi instalado.

     

     


    Visite a Zona .NET: http://zonadotnet.wordpress.com | http://lblima.blogspot.com
       
    domingo, 4 de abril de 2010 19:53
    Moderador
  • Danimar,

    O StartupPath irá retornar o path do seu executavel, se vc está debugando ele vai retornar o local onde esta seu exe enquanto debuga tambem, é que justamente esse camnho que vc mostrou. Logo, quando vc distribuir o programa, ele irá retornar o caminho correto de onde ele foi instalado.

     

     


    Visite a Zona .NET: http://zonadotnet.wordpress.com  | http://lblima.blogspot.com
         

    Sim, foi o que eu me referi, só tinha falado pra ele que não era o caminho do projeto que o StartupPath retornava e sim o caminho de onde estava o executavel, por isso retornava bin\Debug.

     

    Agora respondendo a pergunta do Alexandre, se o seu relatório esta dentro do projeto, vc pode fazer o deploy dele junto com o exe dai é só usar StartupPath + o nome do relatorio.


    Se sua pergunta foi respondida por favor marque a resposta como certa.
    domingo, 4 de abril de 2010 23:52

Todas as Respostas

  • Qual erro? Se a pasta relatorios ficar no mesmo nível do seu exe, é só fazer Application.StartupPath("\relatorios\inconsistencia.rpt")

     


    Visite a Zona .NET: http://zonadotnet.wordpress.com | http://lblima.blogspot.com
       
    quinta-feira, 1 de abril de 2010 15:36
    Moderador
  • Muito simples Alexandre.

    Dim rptPath As String = "relatorios\inconsistencia.rpt"

    Caso o código acima não funcione experimente:

    Dim rptPath As String = "\relatorios\inconsistencia.rpt"

     

    quinta-feira, 1 de abril de 2010 15:37
  • fica assim cara

    Dim rptPath as string = application.startupPath & "\relatorios\inconsistencia.rpt"

    quinta-feira, 1 de abril de 2010 16:17
  • Dim caminho as string = IO.Path.Combine(System.Windows.Forms.Application.StartupPath, "localdeSeuRelatorio")

    Se sua pergunta foi respondida por favor marque a resposta como certa.
    quinta-feira, 1 de abril de 2010 17:26
  • ManomYst, dessa forma nao dá certo. dá "erro ao carregar o relatório" e a string fica assim:
    rptPath = "C:\Users\avasconcelos\Documents\Visual Studio 2005\Projects\Leitura\Leitura\bin\Debug\relatorios\inconsistencia.rpt"

     

    Quando na verdade ele teria que ficar assim:

    rptPath = "C:\Users\avasconcelos\Documents\Visual Studio 2005\Projects\Leitura\Leitura\relatorios\inconsistencia.rpt"

     

    Se eu fizer como o Leonardo falou, (Application.StartupPath("\relatorios\inconsistencia.rpt")) dá esse erro:


    A conversão da seqüência de caracteres '\relatorios\inconsistencia.rpt' no tipo 'Integer' não é válida.

     

    Alguem tem mais alguma idéia?

    Não dá pra colocar fixo pq vai estar em diferebtes pra cada usuario.

    Eu poderia fazer a seguinte 'gambiarra':

     rptPath = Replace(rptPath, "bin\Debug", "relatorios\Inconsistencia.rpt")

     

    aí acho que funcionaria mas nao sei se é uma solução elegante. E outra, qd a aplicação estiver instalada na maquina do cliente ainda vai existir esse "bin\Debug"??

     

    O que vcs acham?

     

    quinta-feira, 1 de abril de 2010 17:35
  • Alexandre,

    o Application.StartupPath retorna uma string representando onde está o executavel do seu projeto, não o projeto, por isso está vindo o \bin\Debug junto.


    Se sua pergunta foi respondida por favor marque a resposta como certa.
    quinta-feira, 1 de abril de 2010 19:32
  • Ganimar, entendi o que vc disse. Agora, e pra eu fazer o que eu quero? Nao tem jeito? Como vai ser qd eui instalar no cliente?
    sexta-feira, 2 de abril de 2010 03:57
  • te entendi alexandre , eu tbm tinha a mesma duvida que vc , mas pq vc nao usa a lógica?

    quando o programa estiver intalado,e o arquivo que vc quer em : Leitura\Leitura\relatorios\inconsistencia.rpt

    Cria no desktop uma pasta com qualquer nome joga pra dentro delas outras como a leitura e relatorios tbm e joga o executavel tbm e faz os test do programa apartir dessa pasta no desktop , e quando mudar algo denovo , copia denovo pra pasta do desktop faço isso com minhas dlls 
    sexta-feira, 2 de abril de 2010 07:35
  • Danimar,

    O StartupPath irá retornar o path do seu executavel, se vc está debugando ele vai retornar o local onde esta seu exe enquanto debuga tambem, é que justamente esse camnho que vc mostrou. Logo, quando vc distribuir o programa, ele irá retornar o caminho correto de onde ele foi instalado.

     

     


    Visite a Zona .NET: http://zonadotnet.wordpress.com | http://lblima.blogspot.com
       
    domingo, 4 de abril de 2010 19:53
    Moderador
  • Danimar,

    O StartupPath irá retornar o path do seu executavel, se vc está debugando ele vai retornar o local onde esta seu exe enquanto debuga tambem, é que justamente esse camnho que vc mostrou. Logo, quando vc distribuir o programa, ele irá retornar o caminho correto de onde ele foi instalado.

     

     


    Visite a Zona .NET: http://zonadotnet.wordpress.com  | http://lblima.blogspot.com
         

    Sim, foi o que eu me referi, só tinha falado pra ele que não era o caminho do projeto que o StartupPath retornava e sim o caminho de onde estava o executavel, por isso retornava bin\Debug.

     

    Agora respondendo a pergunta do Alexandre, se o seu relatório esta dentro do projeto, vc pode fazer o deploy dele junto com o exe dai é só usar StartupPath + o nome do relatorio.


    Se sua pergunta foi respondida por favor marque a resposta como certa.
    domingo, 4 de abril de 2010 23:52