Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение Crystal Report с помощью цикла 
:(
    Опции темы
EAV
Дата 18.4.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 23.10.2007

Репутация: нет
Всего: нет



thomas, 
моя мысль была в следующем:
Сам отчет можно создать только в design mode. При создании отчета если он будет основываться на каких-то данных из БД, то в design mode необходимо создать подключение к уже существующей БД и указать какие поля нужно использовать в отчете.
Про runtime упоминалось в том смысле что во время выполнения программы данные для существующего отчета можно получить как угодно (причем не обязательно из той же таблицы, к который мы конектились во время создания отчета), главное чтобы совпадали названия полей, которые были забиты у вас в дизайнере, с полями, которые вы получили во время выполнения программы.
PM MAIL   Вверх
akizelokro
Дата 18.4.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Что-то я ничего не нонял...
Заходите в схему проекта (файл xml, где сохраняется схема DataSource), жмете правой кнопкой мыши "Add"->"Query"(или "DataAdapter"), пишите в тексте запроса

Код

select *
from Addresses
where code=@param


указуете, откуда берется этот @param (привязка к полю или оставите на потом). А потом цепляете его как источник данных для... (в Report Viewer прошло. Думаю, что в CR пройдёт). Это самый путевый вариант.
Можно и с помощью DataReader закидать данные в типизированный DataSet и тр и пр и др. Это тоже не проблема.
Проблема в том, как я понял, что при формировании отчета, когда вы готовите первую страницу, вам уже тогда должно быть известно количество тех же самых страниц отчета, сколько их в нем будет. Скорее всего, здесь ограничение логики приложения. Иными словами, на лету при обработке n-ной страницы отчета вам могут и не дать подтасовать значение какого-то поля или добавить строку. До начала отработки отчета,- пожалуйста!

Надеюсь, что в тему написал хоть что-то из этого.

Это сообщение отредактировал(а) akizelokro - 18.4.2008, 14:28


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
archengel
Дата 18.4.2008, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 19.8.2006

Репутация: нет
Всего: нет



Кароче я делаю вот так:
1. В дизайнере CR DataBase Expert->CreateNewConnetion->OLEDB->MyDataBase->Add Command
2. В окно засовываю тело хранимой процедуры с уже подставленным параметром, ну скажем:
Код

SELECT f_name,s_name,l_name 
FROM Names
WHERE id_name=1

//Имеется ввиду что такая таблица с таими полями существует, иначе он выдаст ошибку
3.В дизайнере раскидываю поля нужным мне образом, с группировками и т.д.
4.Могу просматривать результаты отчета при разработке (принимая условие выборки из базы id_name=1)
5.Когда уже код исполняется:
Код

//Путь к отчету
String reportPath = System.Windows.Forms.Application.StartupPath + "\\" + "report.rpt";
//Новый объект отчета
ReportDocument rd  = new ReportDocument();
rd.Load(reportPath);
//Возвращаем DataTable значений на основе параметра
DataTable dt=LoadNames(int.Parse(textBox1.text));
//Подставляем таблицу как источник данных для отчета
rd.SetDataSource(dt);
crystalReportViewer.ReportSource = rd;
crystalReportViewer.Refresh();


Ну вот как то так smile 
PM MAIL ICQ   Вверх
thomas
Дата 18.4.2008, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



Цитата(EAV @  18.4.2008,  11:33 Найти цитируемый пост)
Про runtime упоминалось в том смысле что во время выполнения программы данные для существующего отчета можно получить как угодно (причем не обязательно из той же таблицы, к который мы конектились во время создания отчета), 


EAV,  smile 




--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
thomas
Дата 18.4.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



Цитата(archengel @  18.4.2008,  12:55 Найти цитируемый пост)
Ну вот как то так

попробовал, не прокатывает.
archengel,  smile  рабочий.

Добавлено через 4 минуты и 21 секунду
akizelokro, 
Цитата

Надеюсь, что в тему написал хоть что-то из этого.

Разговор идет о том, что возможно ли вывести в рапорт CR-а данные не из типизированного дата сет и не из базы данных на прямую, т.е. вывести в рапорт данные из динамически созданного дата сет. И как это делаеться? (если такое возможно)


Это сообщение отредактировал(а) thomas - 18.4.2008, 16:01


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
archengel
Дата 18.4.2008, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 19.8.2006

Репутация: нет
Всего: нет



Так а что неработает? В SetDataSource() неработает подстановка????
PM MAIL ICQ   Вверх
thomas
Дата 18.4.2008, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



archengel, 
угу.
этот метод System.Collections.IEnumerable enumerable не принимает.
у меня нет датасетов вообще.
вместо них использую классы, которые помещаю в List<T>. (в принципе это заменяет таблицу в датасет)





--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
akizelokro
Дата 21.4.2008, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Крокодил
**


Профиль
Группа: Участник
Сообщений: 761
Регистрация: 30.7.2007

Репутация: нет
Всего: 5



Цитата

Разговор идет о том, что возможно ли вывести в рапорт CR-а данные не из типизированного дата сет и не из базы данных на прямую, т.е. вывести в рапорт данные из динамически созданного дата сет. И как это делаеться? (если такое возможно)


Иными словами, ты хочешь в обработке InitReport создать прописать ручками новый DataSet (или DataAdapter), заполнить его данными и передать его посредствои SetDataSource или создать DataReader и сделать с ним то же самое, а затем добавить в отчет полей и заполнять их (тоже ручками - кодом) данными из созданного только что тобой источника данных?


--------------------
a = a + b; b = a - b; a = a - b;
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.