PASSAR SENHA DO ACCESS PARA SUBREPORT DO CRYSTAL
Fala galera,
estou desenvolvendo uma aplicação de pequenÃssimo porte (por isso q estou usando o access!)
Quando criei o banco coloquei senha por [Ô]segurança[Ô] (se é q isso possa se chamar de seguro! rsrsrsrs)
Então desenvolvi um relatório com subrelatorio(subreport).
Lá na codificação, eu chamo o relatório da seguinte forma:
reparem que na primeira linha eu passo a senha do banco pro crystal não dar erro ao chamar. Antes de eu colocar o subreport funcionava direitinho, agora dá um Exception. Não vou coloca-lo aqui pq eu tenho certeza de q o subreport necessita da senha do banco também, só não sei como fazer isso. se é através da codificação ou se eu posso criar um parametro no proprio crystal...
se alguém poder dar uma força estarei agradecido! estou utilizando o Visual Studio 2012 mais o crystal 8.5, e ele não está [Ô]acoplado[Ô] no visual studio, apenas importei a OCX dele.
estou desenvolvendo uma aplicação de pequenÃssimo porte (por isso q estou usando o access!)
Quando criei o banco coloquei senha por [Ô]segurança[Ô] (se é q isso possa se chamar de seguro! rsrsrsrs)
Então desenvolvi um relatório com subrelatorio(subreport).
Lá na codificação, eu chamo o relatório da seguinte forma:
cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];//senha fictÃcia rsrsrs
cr_venda.SelectionFormula = [Ô]{Saida.codigo_saida} = [Ô]+codigo_venda;
cr_venda.Action = 1;
reparem que na primeira linha eu passo a senha do banco pro crystal não dar erro ao chamar. Antes de eu colocar o subreport funcionava direitinho, agora dá um Exception. Não vou coloca-lo aqui pq eu tenho certeza de q o subreport necessita da senha do banco também, só não sei como fazer isso. se é através da codificação ou se eu posso criar um parametro no proprio crystal...
se alguém poder dar uma força estarei agradecido! estou utilizando o Visual Studio 2012 mais o crystal 8.5, e ele não está [Ô]acoplado[Ô] no visual studio, apenas importei a OCX dele.
então, desde q entrei no VS eu passei a gerar os relatório/sub através de DS e DT dentro do projeto, independe a origem dos dados preencho a DT q sera o datasource do report....
Citação::
então, desde q entrei no VS eu passei a gerar os relatório/sub através de DS e DT dentro do projeto, independe a origem dos dados preencho a DT q sera o datasource do report....
Pois é cara!
Eu nunca fiz um DS com crystal. é até interessante da forma como você falou, mas no caso dessa aplicação rodar apenas na máquina q será instalada seria meio trabalhoso fazer isso. (Eu quero evitar a fadiga! rsrsrsr).
Vou dar uma pesquisada em sites extrangeiros e ver se consigo achar a solução q possa ser mais simples do q pensei (em uma linha por exemplo!)
Consegui resolver o problema pessoal! mais uma vez graças aos sites extrangeiros!
Vou compartilhar esse conhecimento com vcs!
Antes estava assim:
agora ficou assim:
Ou seja, na linha cr_venda.SubreportToChange = [Ô]itens_saida[Ô]; estou selecionando o subrelatório [Ô]itens_saida[Ô], depois eu seto o caminho do banco e a senha. Por fim a linha cr_venda.SubreportToChange = [Ô][Ô]; Faz com que o relatorio principal seja selecionado denovo para poder ser chamado em Action = 1
Té mais!
Vou compartilhar esse conhecimento com vcs!
Antes estava assim:
cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];//senha fictÃcia rsrsrs
cr_venda.SelectionFormula = [Ô]{Saida.codigo_saida} = [Ô]+codigo_venda;
cr_venda.Action = 1;
agora ficou assim:
cr_venda.ReportFileName = Application.StartupPath + @[Ô]\Relatorios\saidas.rpt[Ô];
cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];
cr_venda.set_DataFiles(0, Application.StartupPath + @[Ô]\Banco\ControleEstoque.mdb[Ô]);
//subreport------------------------------------------------------------------------
cr_venda.SubreportToChange = [Ô]itens_saida[Ô];
cr_venda.set_DataFiles(0, Application.StartupPath + @[Ô]\Banco\ControleEstoque.mdb[Ô]);
cr_venda.Connect = [Ô]MS Access;pwd=12345[Ô];
cr_venda.SubreportToChange = [Ô][Ô];
//fim subreport-------------------------------------------------------------------
cr_venda.SelectionFormula = [Ô]{relSaidas.codigo_saida} = [Ô] + codigo_venda;
cr_venda.Action = 1;
Ou seja, na linha cr_venda.SubreportToChange = [Ô]itens_saida[Ô]; estou selecionando o subrelatório [Ô]itens_saida[Ô], depois eu seto o caminho do banco e a senha. Por fim a linha cr_venda.SubreportToChange = [Ô][Ô]; Faz com que o relatorio principal seja selecionado denovo para poder ser chamado em Action = 1
Té mais!
Pessoal, vou encerrar esse tópico, apesar de ter conseguido resolver meu problema, vou atribuir a melhor resposta para nosso colega NIKOSOFT pois foi o único que respondeu. Não que ele não tenha ajudado, na verdade me deu uma idéia do que fazer com projetos que envolvem MySql e outros bancos fodas!
Té Mais!
Té Mais!
Tópico encerrado , respostas não são mais permitidas