Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > вывод содержимого DataSet в отчет


Автор: Doss 11.12.2008, 11:16
 Всем привет, уважаемые помогите!!!
проблема в следующем, есть база Access, из нее данные берутся и выводятся в DataGridView, причем данные не с одной таблице, а с разных, т.е. в коде создаю таблицу общюю и поля, куда и закидываю весь набор, который и выводится в dgv.
Ну вот пользователю нравится что он видет и решает его напечатать, т.е. жмет на btn, и толи с предварительным просмотром или нет но печать должна происходить. 
Так вот содержимое dgv я спокойно могу залить в дата сет и коким то чудесным образом передать в репорт, НО КАК????
Прошу вас, перечитал весь форум, не догнал!!! smile 
 smile  smile 
Пожалуйста, рабочи пример, если можно, или расписать поподробнее, буду благодарен. 
Кстати, отчет то я сделал, но меня путает многократное создание датасета, отчет пустой , т.е. в нем то, что я вижу при дизайне и не более, а примеры которые вместе со студией не много мне дали. 
В отчете ведь определенные поля должны быть и как эти поля будут опознаваться, и если много данных то что на кажное значение по полу, к примеру количество товаров меняется  а отчет не должен ведь зависить от количество товаров ведь. я представляю как бутто бы проитись по этим полям forech и заполнить. короче у меня каша, только мозговая. smile 

Автор: Doss 11.12.2008, 17:58
Кто - нибудь, подайте правильный вектор..... smile  smile 

Автор: okaton 12.12.2008, 22:11
Doss, посмотрите может http://www.gotdotnet.ru/LearnDotNet/NETFramework/85842.aspx#dataset поможет

Автор: Doss 13.12.2008, 18:29
Спасибо okaton, постараюсь разобратся и если получется выложу решение smile 

Автор: okaton 13.12.2008, 20:05
Буду следить за темой smile 

Автор: Doss 17.12.2008, 17:46
В общем все сделал как по тексту написано, который дал okaton, но наткнулся на проблему, не првально указан файл или путь на репорт, подскажите?
Вот класс   формы на которой разместил кристал вьювер, 
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using ProgramForHim.Classes;

namespace ProgramForHim.Forms
{
    public partial class ReportForms : Form
    {
        private ReportDocument customerReport;


        public ReportForms()
        {
            InitializeComponent();
        }


        private void ConfigureCrystalReports()
        {
            customerReport = new ReportDocument();
            string reportPath = Application.StartupPath +  "\\" + "D:\\C#\\ProgramForHim\\ProgramForHim\\CrystalReport1.rpt";
            customerReport.Load(reportPath);
            DataSet dataSet = DataSetConfiguration.CustomerDataSet ;
            dataSet = DataSetConfiguration.CustomerDataSet;
            customerReport.SetDataSource(dataSet);
            crystalReportViewer1.ReportSource = customerReport;
        }

        private void ReportForms_Load(object sender, EventArgs e)
        {
            ConfigureCrystalReports();
        }
    }
}


Вот здесь ошибка
Код

string reportPath = Application.StartupPath +  "\\" + "D:\\C#\\ProgramForHim\\ProgramForHim\\CrystalReport1.rpt";
            customerReport.Load(reportPath);



Насколько я понял, к примеру на основной форме распологаю баттон, по клику на котором открывается та самая форма с отчетом, где данные загружены из типизированного датасета, а далье если хоче распечатать то беру и жму на значке принтера, но если мне нужно дата сет заполнить в ходе выполнения проги, то как мне передать в отчет данные? 
Кстати, в этой ошибке я пробывал и так
Код

string reportPath = Application.StartupPath +  "D:\\C#\\ProgramForHim\\ProgramForHim\\CrystalReport1.rpt";
            customerReport.Load(reportPath);


и так
Код

string reportPath = Application.StartupPath +  "\\" + "CrystalReport1.rpt";
            customerReport.Load(reportPath);


Что то мне не хватает знаний, дайте еще что нибудь!!! smile 

Автор: Doss 18.12.2008, 19:11
В общем я на сколько понял, данные, которые мне необходимо напечатать, должны находится обязательно в базе, откудого после я вытягиваю в типизированный датасет. Если это так, то не очень удобно.....
У меня дата сет напонен данными из разных таблиц базы, и код сам формирует сводные данные и выдает в гридвью, вот это то представление нужно напечать. Как это сделать мне не очень понятно?!!!
Если кто далал что-то подобное, буду благодарен за помощь!!! smile  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)