Как напечатать файл RPT, используя соединение ODBC из консольного приложения C #? - PullRequest
0 голосов
/ 03 июня 2011

Я попробовал это с и без кода аутентификации базы данных ниже.

При аутентификации не удается войти в систему ... мы обычно используем ODBC, но я не вижу, как связать его с подключением ODBC.

Без аутентификации он выводит мне пустой отчет (реальный отчет, как будто не было возвращено ни одной записи).

Кроме того, как мне сказать, печатать весь отчет, если я не знаю, сколько оно страниц, поскольку для него требуется параметр от и до страницы в функции печати. ​​

Отчеты были созданы в Crystal Reports XI v11.5

Заранее спасибо за любую помощь.

Вот что у меня есть:

printReport()
{
        ReportDocument cryRpt = new ReportDocument();
        cryRpt.RefreshReport += reportLoaded;
        cryRpt.Load(myReport);

        TableLogOnInfo crTableLogonInfo = new TableLogOnInfo();
        ConnectionInfo crConnectionInfo = new ConnectionInfo();
        Tables crTables;

        crConnectionInfo.ServerName = "myServer";
        crConnectionInfo.DatabaseName = "myDatabase";
        crConnectionInfo.UserID = "myUser";
        crConnectionInfo.Password = "myPass";

        crTables = cryRpt.Database.Tables;

        foreach (Table table in crTables)
        {
            crTableLogonInfo = table.LogOnInfo;
            crTableLogonInfo.ConnectionInfo = crConnectionInfo;
            table.ApplyLogOnInfo(crTableLogonInfo);
        }

        cryRpt.SetParameterValue("@report_type", type);

        cryRpt.Refresh();
}

reportLoaded(object sender, EventArgs e)
{
    PrintDialog print = new PrintDialog();
    DialogResult dr = print.ShowDialog();

    if (dr == DialogResult.OK)
    {
        ReportDocument cryRpt = (ReportDocument)sender;
        cryRpt.PrintOptions.PrinterName = print.PrinterSettings.PrinterName;
        cryRpt.PrintToPrinter(print.PrinterSettings.Copies, print.PrinterSettings.Collate, print.PrinterSettings.FromPage, print.PrinterSettings.ToPage);
    }
}

1 Ответ

1 голос
/ 04 июня 2011

Для подключения к ODBC вы должны иметь возможность использовать свойство ServerName вашего объекта ConnectionInfo, чтобы указать строку подключения / dsn.См. Ответы на следующие вопросы для нескольких примеров.

Как изменить подключение к базе данных Crystal Report ODBC во время выполнения?

Для второй части вашего вопроса:Вы должны иметь возможность использовать 0 для обоих параметров номера страницы метода PrintToPrinter для печати всех страниц.

Надеюсь, это поможет.

...