CRISTAL REPORTS + C#

PAULOOLIVEIRA 26/12/2016 17:23:18
#470066
Caros amigos, boa tarde...

Estou com a seguinte dificuldade, e não achei a resposta.. .veja se podem me ajudar...

Tenho um formulario (frmMostraRelatorio) com um CristalReportsView...
No formulario do relatorio, passo por parametro o numero do relatorio.... desta forma

//
switch (clsGlobal.NumeroRelatorios)
{

case [Ô]01[Ô]:
ViewRelatorios.ReportSource = @clsGlobal.LocalRelatorios + @[Ô]\Planilha.rpt[Ô];
break;
case [Ô]02[Ô]:
ViewRelatorios.ReportSource = @clsGlobal.LocalRelatorios + @[Ô]\Analises.rpt[Ô];
break;
default:
break;
}

Acontece , que quando vou rodar o mesmo, ele da o erro [Ô]FALHA AO CARREGAR O RELATORIO[Ô], dai clico em OK!, e ele abre o relatorio...

Alguem tem ideia ?

grato
KERPLUNK 26/12/2016 17:53:06
#470072
Classes globais em sistemas OOP: sempre uma péssima idéia. Porque não criar uma propriedade ou construtor no seu form? é a maneira correta...
PAULOOLIVEIRA 26/12/2016 17:56:31
#470073
Falta prática né... rs... sou [Ô]novato[Ô] em c#

pode me fornecer um exemplo Kerplunk...

Grato
KERPLUNK 26/12/2016 18:03:03
#470074
Você vai ter no código do seu form:


public class FrmMostraRelatorio : Form
{
public FrmMostraRelatorio()
{
InitializeComponent();
}

}

Esse método é um construtor, basta você criar outro:


public class FrmMostraRelatorio : Form
{
public string _relatorio;
public FrmMostraRelatorio()
{
InitializeComponent();
}
public FrmMostraRelatorio(string Relatorio)
{
_relatorio = Relatorio;
InitializeComponent();
}

}


Então, você vai poder instanciar o seu form assim:

FrmMostraRelatorio relatorio = new FrmMostraRelatorio([Ô]relatorio de vendas[Ô]);
relatorio.Show();


Agora o principal problema: Você ainda não entende como funciona OOP e aprender isso deveria ser ANTES de você tentar construir qualquer aplicação. Você não entendeu minha sugestão por causa disso.
PAULOOLIVEIRA 26/12/2016 18:10:04
#470075
Grato!! vou tentar por aqui!!
PAULOOLIVEIRA 26/12/2016 18:40:36
#470077
Kerplunk... desculpe a ignorância... mas sem serei [Ô]eterno aprendiz[Ô]

passo por parametro no nome do relatorio na string... certo?

eu preciso passar um selection formula para esse rpt...

qual o procedimento...

KERPLUNK 26/12/2016 21:15:59
#470086
Você pode expor o objeto de visualização do relatório publicamente se quiser e acessar ele de qualquer lugar. No método InitializeComponent, vai ter em algum lugar a declaração do componente. Ela por padrão é [Ô]private[Ô], mas você pode colocar ela como public. Com isso você vai poder simplesmente instanciar o form e acessar o componente.
Tópico encerrado , respostas não são mais permitidas