Поиск:

Ответ в темуСоздание новой темы Создание опроса
> FR3.xx & TStringGrid, Не знаю как подружить их... 
:(
    Опции темы
rlocal
  Дата 2.2.2009, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Приветствую всех участников форума!

Пишу в связке Delphi + FastReport 3.xx
У меня такая проблема: Данные из Excel файла загружаются в TSringGrid. Нужно сформировать отчет в FR3.xx таким образом, чтобы получилось письмо вида:

--------------------------------
Уважаемый(ая) ххх ууу!

{Далее идет текст}
--------------------------------

Естественно, вместо ххх и ууу нужно подставить данные из соответствующих столбцов StringGrid-а. Как это сделать? И возможно ли что-то такое подобное?

Заранее благодарю всех откликнувшихся.
PM MAIL   Вверх
Данкинг
Дата 2.2.2009, 19:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Намекаю: через временную таблицу, к примеру,  MDB. В неё загоняешь свои данные и дальше выводишь их из неё. Как - смотри мануалы к  FR. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
rlocal
  Дата 2.2.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Данкинг, если можно, то приведите пример кода, как можно создать эту временную таблицу? Я с FR вообще раньше не работал, да и с данными тоже... :( Подскажите пожалуйста...

И еще вопрос: Как мне сделать в FR  так, чтобы автоматом создавалась другая страница "по шаблону" и туда подставлялись значения из StringGrida? А то с одной страницей то все нормально, но мне нужно сразу 500 странить сформировать и выдать на печать :(

Это сообщение отредактировал(а) rlocal - 2.2.2009, 20:03
PM MAIL   Вверх
Данкинг
Дата 2.2.2009, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(rlocal @  2.2.2009,  20:00 Найти цитируемый пост)
как можно создать эту временную таблицу? 

А это к FR непосредственного отношения не имеет. smile Поищи по форуму о работе с Access. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
rlocal
  Дата 2.2.2009, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я сразу извинюсь.... я тут новичек... попробовал поискать про эти временные таблицы - запутался только...  smile 
Если можно - покажите живой пример, время поджимает, как всегда, а завтра сдавать уже нужно  smile 

Заранее благодарю...
PM MAIL   Вверх
Akella
Дата 2.2.2009, 20:35 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Тебе нужна не временная таблица, а "таблица в памяти". Т.е. MemoryTable. Это такая компонента. В стандартных компонентах ты её не найдёшь. Но есть TClientDataSet. Её можно использовать. Кинь на форму, добавь туда соответствующие поля. Хотя с этой компонентой я намучался в своё время. Лучше поискать стороннюю компоненту. TMemTableEh есть в составе библиотеки EhLib, версия 3.6 библиотеки EhLib бесплатная для жителей стран бывшего СНГ. Есть MemoryTable в пакете Jeddi, тоже бесплатно. Есть TdxMemTable в составе компонент DevExpress, но эти компоненты весьма дорогие для нас.


И так... в цикле по твоему стринг гриду заполняешь заранее настроенный TMemTable. А TMemTable у тебя уже должен быть подключен к TfrxDataset. А TfrxDataset уже виден в фастрепорте. smile  smile 

Это сообщение отредактировал(а) Akella - 2.2.2009, 20:36
PM MAIL   Вверх
Данкинг
Дата 2.2.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(rlocal @  2.2.2009,  20:20 Найти цитируемый пост)
а завтра сдавать уже нужно 

Хочешь за один вечер освоить FR и работу с BD? Ну давай, дерзай. smile А если нужно что-то написать за тебя - так это в "центр помощи".
 Да, а ещё такую персонализацию можно из "Ворда" сделать, как-то там подцепить таблицу БД через "слияние". Я лично не пробовал, но наши ребята так делают.
 Да, а ещё есть "Crystal Reports" !

Это сообщение отредактировал(а) Данкинг - 2.2.2009, 23:27


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 3.2.2009, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Не... ну а чё... ночь ещё впереди, как всегда...
PM MAIL   Вверх
Данкинг
Дата 3.2.2009, 00:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(Akella @  3.2.2009,  00:33 Найти цитируемый пост)
Не... ну а чё... ночь ещё впереди, как всегда... 

В общем-то, освоить основы неизвестной СУБД за ночь, конечно, реально... Но не в этом случае, думаю. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 3.2.2009, 09:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Ага, если б ему нужно было..... уже б давно освоил.
PM MAIL   Вверх
Frees
Дата 3.2.2009, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Цитата(rlocal @  2.2.2009,  21:35 Найти цитируемый пост)
У меня такая проблема: Данные из Excel файла загружаются в TSringGrid. Нужно сформировать отчет в FR3.xx таким образом, чтобы получилось письмо вида


Можно из TSringGrid нужные данные загонять в Variables фаст репорта созданные зарание

Код

Variables['ххх'] := SringGrid[1,2];


в отчете должна быть переменная ххх


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Данкинг
Дата 3.2.2009, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Frees, ну да, действительно, так даже проще. Я сразу пошёл вумным путём просто. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 3.2.2009, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



И сколько это переменных должно быть? А можно поподробнее с примером? До мну не доходит. smile 
PM MAIL   Вверх
Frees
Дата 3.2.2009, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



Цитата(Akella @  3.2.2009,  13:09 Найти цитируемый пост)
И сколько это переменных должно быть?

а вот это зависит от того что за задача

Добавлено через 5 минут и 17 секунд
rlocal, также решение твоей задачи можно найти в примере PrintArray fast reporta


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Akella
Дата 3.2.2009, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Ты не понял, переменных нужно по количеству колонок или по количеству ячеек?

Добавлено через 46 секунд
Цитата(Frees @  3.2.2009,  11:16 Найти цитируемый пост)
решение твоей задачи можно найти в примере PrintArray fast reporta 

угу, будет интересно, спасибо
PM MAIL   Вверх
rlocal
Дата 3.2.2009, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Мда... действительно за одну ночь не успел :(. Но отсрочил еще на два дня (вместе с этим днем).
Никак не пойму следующее:
Вот я в дезайнере создал шаблон письма, поместил туда два текстовых поля, в одном основной текст, в другом текст такого вида: 
"Уважаемый(ая) [name] [fullname] !". И самое смешное, что это работает с одним листом и кодом
Код

  frxReport1.Variables['name'] := QuotedStr(StringGrid1.Cells[2,3]);
  frxReport1.Variables['fullname'] := QuotedStr(StringGrid1.Cells[3,3]);


Потом я решил, что если поместить еще на лист MasterDat-у, растянул его на весь лист и поместил туда тот же текст, то по моей логике листы должны размножиться и получиться отчет в том виде, как мне нужно. НО! Как только я так сделал у меня вообще теперь просто пустой лист без какого либо текста... :( Что я делаю не так? Как нужно правильно?
PM MAIL   Вверх
Akella
Дата 3.2.2009, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Может ты с бэндами напутал? Или вообще без них работаешь.
PM MAIL   Вверх
rlocal
Дата 3.2.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А как это можно проверить, правильно я делаю или нет? Сейчас смотрю пример с PrintArray, но что-то не до конца понятно как это применить именно к моему примеру?.... :(
PM MAIL   Вверх
Данкинг
Дата 3.2.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(rlocal @  3.2.2009,  13:01 Найти цитируемый пост)
А как это можно проверить, правильно я делаю или нет? 

Посмотреть примеры из мануала к FR. В твоём случае, с только переменными, можно даже ограничиться одним бэндом "HEADER", растянув его на всю страницу.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
rlocal
Дата 3.2.2009, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 smile  УРААааааааа!!!!  smile Все работает!!!  Данкинг спасибо за подсказку про хидер, так бы и мучался до сих пор с мастердатой... Теперь осталось только все "причесать"! Попутно вопрос: При повторном открытии но уже другого *.xls файла программа долго думает и в результате в отчете из 6000 страниц заполненными остаются только 371, а остальные пустые (без подставленных имен и отчеств). В чем может быть причина? Хэлп ми плиз!
PM MAIL   Вверх
Данкинг
Дата 3.2.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



Цитата(rlocal @  3.2.2009,  14:31 Найти цитируемый пост)
В чем может быть причина?

Разбирайся с XLS, так трудно сказать.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 3.2.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(rlocal @  3.2.2009,  14:31 Найти цитируемый пост)
Попутно вопрос: 

нельзя
Модератор: один вопрос = одна тема
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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