Relatorio Crystal preenche correto em minha máquina, mas em outras preenche pela metade.
Amigos,
Fiz um relatório Crystal via wizard, e no load chamei o seguinte código:
//Seta um objeto capaz de ler o App.Config
AppSettingsReader configurationAppSettings = new AppSettingsReader();
ConnectionInfo connectionInfo = new ConnectionInfo();
//Monta parcialmente a string de conexão lendo a partir do App.Config
connectionInfo.ServerName = configurationAppSettings.GetValue("Data Source", typeof(String)).ToString();
connectionInfo.UserID = configurationAppSettings.GetValue("User ID", typeof(String)).ToString();
connectionInfo.Password = configurationAppSettings.GetValue("Password", typeof(String)).ToString();
connectionInfo.DatabaseName = configurationAppSettings.GetValue("Initial Catalog", typeof(String)).ToString();
ReportDocument Report = new ReportDocument();
//Concatena o caminho inicial com a localização do report
string sDiretorioReport = Application.StartupPath + @"\..\..\..\Materiais\Reports\rptFichaDePoste.rpt";
Report.Load(sDiretorioReport);
SetDBLogonForReport(connectionInfo, Report);
Report.SetParameterValue("Ficha", CodigoFicha);
crystalReportViewer1.ReportSource = Report;
SetDBLogonForReport(connectionInfo, Report);
//crystalReportViewer1.PrintReport();
crystalReportViewer1.Refresh();
}
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument ArquivoReport)
{
Tables tables = ArquivoReport.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
}
Ele lê o caminho do banco do app.config.
Na minha máquina funciona todos os dados.
Em outras maquinas preenche apenas metade, algumas tabelas preenchem, outras tabelas nao.
O que está faltando?
Fiz um relatório Crystal via wizard, e no load chamei o seguinte código:
//Seta um objeto capaz de ler o App.Config
AppSettingsReader configurationAppSettings = new AppSettingsReader();
ConnectionInfo connectionInfo = new ConnectionInfo();
//Monta parcialmente a string de conexão lendo a partir do App.Config
connectionInfo.ServerName = configurationAppSettings.GetValue("Data Source", typeof(String)).ToString();
connectionInfo.UserID = configurationAppSettings.GetValue("User ID", typeof(String)).ToString();
connectionInfo.Password = configurationAppSettings.GetValue("Password", typeof(String)).ToString();
connectionInfo.DatabaseName = configurationAppSettings.GetValue("Initial Catalog", typeof(String)).ToString();
ReportDocument Report = new ReportDocument();
//Concatena o caminho inicial com a localização do report
string sDiretorioReport = Application.StartupPath + @"\..\..\..\Materiais\Reports\rptFichaDePoste.rpt";
Report.Load(sDiretorioReport);
SetDBLogonForReport(connectionInfo, Report);
Report.SetParameterValue("Ficha", CodigoFicha);
crystalReportViewer1.ReportSource = Report;
SetDBLogonForReport(connectionInfo, Report);
//crystalReportViewer1.PrintReport();
crystalReportViewer1.Refresh();
}
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument ArquivoReport)
{
Tables tables = ArquivoReport.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
}
Ele lê o caminho do banco do app.config.
Na minha máquina funciona todos os dados.
Em outras maquinas preenche apenas metade, algumas tabelas preenchem, outras tabelas nao.
O que está faltando?
Daniel Vieira
Curtidas 0
Respostas
Luiz Maia
05/10/2010
Daniel, chega a retornar parte dos dados? As tabelas estão todas no mesmo banco de dados? ou faz join que outros bancos?
GOSTEI 0
Daniel Vieira
05/10/2010
Sim Luiz, retorna algumas tabelas e outras não.
É um banco só.
Inclusive pra ter certeza eu restaurei o banco da minha máquina na outra máquina (a estrutura já era a mesma, mas eu restaurei pra inclusive ver os mesmos dados), e lá continua preenchendo pela metade.
Analisando meu código, teria mais alguma coisa pra fazer?
Eu não passo nenhuma query pro report, eu faço via wizard e chamo aquela rotina de ler tabelas que achei na internet. Seria apenas isso?
É um banco só.
Inclusive pra ter certeza eu restaurei o banco da minha máquina na outra máquina (a estrutura já era a mesma, mas eu restaurei pra inclusive ver os mesmos dados), e lá continua preenchendo pela metade.
Analisando meu código, teria mais alguma coisa pra fazer?
Eu não passo nenhuma query pro report, eu faço via wizard e chamo aquela rotina de ler tabelas que achei na internet. Seria apenas isso?
GOSTEI 0
Luiz Maia
05/10/2010
Favor certificar-se que não há algum tipo de top, tipo "select top 10 * from" em sua query, ou mesmo algum tipo de restrição de registros na paginação, ou algo deste tipo.
GOSTEI 0
Devmedia
05/10/2010
Daniel,
as respostas lhe ajudaram? Podemos encerrar o chamado?
as respostas lhe ajudaram? Podemos encerrar o chamado?
GOSTEI 0
Devmedia
05/10/2010
Daniel,
por favor de retorno estamos encerrando o seu chamado. Caso tenha dúvidas sobre o assunto aqui tratado, por favor, post aqui mesmo e o consultor voltará a lhe ajudar.
por favor de retorno estamos encerrando o seu chamado. Caso tenha dúvidas sobre o assunto aqui tratado, por favor, post aqui mesmo e o consultor voltará a lhe ajudar.
GOSTEI 0