Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Как выводить на печать отчет Crystal Reports (http://forum.oszone.net/showthread.php?t=173823)

Большой Кол 22-04-2010 20:35 1398754

Как выводить на печать отчет Crystal Reports
 
Добрый день
Я слепил в проекте отчет Crystal Reports ( Проект - Добавить форму Windows - Reporting - Crystal Reports) , с тем чтобы создать отчет и вставить в него данные из базы , проблем не было, по сути это просто конструктор. И вот сделал я его, появился у меня в проекте файлик CrystalReport1.rpt, а что дальше? Вопрос в том как его вывести на принтер, а еще лучше вначале в Excel . Этого просто ни где не описано, как издеваются. Где можно про это почитать? А вот если бы еще и пример кода увидеть, то вообще было бы круто.
Заранее спасибо.

Delirium 23-04-2010 00:36 1398933

Цитата:

Цитата Большой Кол
Вопрос в том как его вывести на принтер, а еще лучше вначале в Excel »

Добавляете элемент на форму типа ReportViewer, в его параметрах указываете свой отчет. Там же будет кнопка Печать. ПО поводу выгрузки в Excel вообще много пересудов, если необходимо, могу кинуть кусок кода, который результат выполнения запроса кидает в Excel.

Большой Кол 23-04-2010 15:01 1399259

Спасибо, кусок кода бы не повредил.

Delirium 26-04-2010 01:02 1400676

Выгрузка в Excel списка из DataGridView (ну или из любого списка при корректировании кода ) :

Код:

public void ExportToExcel(DataGridView grid)
                {
                        ApplicationClass Excel = new ApplicationClass();
                        XlReferenceStyle RefStyle = Excel.ReferenceStyle;
                        Excel.Visible = true;
                        Workbook wb = null;
                        String TemplatePath = System.Windows.Forms.Application.StartupPath + @"\Экспорт данных.xlt";
                        try
                        {
                                wb = Excel.Workbooks.Add(TemplatePath); // !!!
                        }
                        catch(System.Exception ex)
                        {
                                throw new Exception("Не удалось загрузить шаблон для экспорта " + TemplatePath + "\n" + ex.Message);
                        }
                        Worksheet ws = wb.Worksheets.get_Item(1) as Worksheet;
                        for(int j = 0; j < grid.Columns.Count; ++j)
                        {
                                (ws.Cells[1, j + 1] as Range).Value2 = grid.Columns[j].HeaderText;
                                for(int i = 0; i < grid.Rows.Count; ++i)
                                {
                                        object Val = grid.Rows[i].Cells[j].Value;
                                        if(Val != null)
                                                (ws.Cells[i + 2, j + 1] as Range).Value2 = Val.ToString();
                                }
                        }

                        Excel.ReferenceStyle = RefStyle;
                        ws.Columns.EntireColumn.AutoFit();
                        ReleaseExcel(Excel as Object);
                }

                private void ReleaseExcel(object excel)
                {
                        // Уничтожение объекта Excel.
                        Marshal.ReleaseComObject(excel);
                        // Вызываем сборщик мусора для немедленной очистки памяти
                        GC.GetTotalMemory(true);
                }

А вообще куча кода находится в гугле: http://www.google.ru/#hl=ru&newwindo...ffb44 f5de994


Время: 10:45.

Время: 10:45.
© OSzone.net 2001-