| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > FR3.xx & TStringGrid |
| Автор: rlocal 2.2.2009, 19:35 |
| Приветствую всех участников форума! Пишу в связке Delphi + FastReport 3.xx У меня такая проблема: Данные из Excel файла загружаются в TSringGrid. Нужно сформировать отчет в FR3.xx таким образом, чтобы получилось письмо вида: -------------------------------- Уважаемый(ая) ххх ууу! {Далее идет текст} -------------------------------- Естественно, вместо ххх и ууу нужно подставить данные из соответствующих столбцов StringGrid-а. Как это сделать? И возможно ли что-то такое подобное? Заранее благодарю всех откликнувшихся. |
| Автор: Данкинг 2.2.2009, 19:37 |
| Намекаю: через временную таблицу, к примеру, MDB. В неё загоняешь свои данные и дальше выводишь их из неё. Как - смотри мануалы к FR. |
| Автор: rlocal 2.2.2009, 20:00 |
| Данкинг, если можно, то приведите пример кода, как можно создать эту временную таблицу? Я с FR вообще раньше не работал, да и с данными тоже... :( Подскажите пожалуйста... И еще вопрос: Как мне сделать в FR так, чтобы автоматом создавалась другая страница "по шаблону" и туда подставлялись значения из StringGrida? А то с одной страницей то все нормально, но мне нужно сразу 500 странить сформировать и выдать на печать :( |
| Автор: Данкинг 2.2.2009, 20:01 |
А это к FR непосредственного отношения не имеет. |
| Автор: rlocal 2.2.2009, 20:20 |
| Я сразу извинюсь.... я тут новичек... попробовал поискать про эти временные таблицы - запутался только... Если можно - покажите живой пример, время поджимает, как всегда, а завтра сдавать уже нужно Заранее благодарю... |
| Автор: Akella 2.2.2009, 20:35 |
| Тебе нужна не временная таблица, а "таблица в памяти". Т.е. MemoryTable. Это такая компонента. В стандартных компонентах ты её не найдёшь. Но есть TClientDataSet. Её можно использовать. Кинь на форму, добавь туда соответствующие поля. Хотя с этой компонентой я намучался в своё время. Лучше поискать стороннюю компоненту. TMemTableEh есть в составе библиотеки EhLib, версия 3.6 библиотеки EhLib бесплатная для жителей стран бывшего СНГ. Есть MemoryTable в пакете Jeddi, тоже бесплатно. Есть TdxMemTable в составе компонент DevExpress, но эти компоненты весьма дорогие для нас. И так... в цикле по твоему стринг гриду заполняешь заранее настроенный TMemTable. А TMemTable у тебя уже должен быть подключен к TfrxDataset. А TfrxDataset уже виден в фастрепорте. |
| Автор: Данкинг 2.2.2009, 23:26 |
Хочешь за один вечер освоить FR и работу с BD? Ну давай, дерзай. Да, а ещё такую персонализацию можно из "Ворда" сделать, как-то там подцепить таблицу БД через "слияние". Я лично не пробовал, но наши ребята так делают. Да, а ещё есть "Crystal Reports" ! |
| Автор: Akella 3.2.2009, 00:33 |
| Не... ну а чё... ночь ещё впереди, как всегда... |
| Автор: Данкинг 3.2.2009, 00:49 |
В общем-то, освоить основы неизвестной СУБД за ночь, конечно, реально... Но не в этом случае, думаю. |
| Автор: Akella 3.2.2009, 09:10 |
| Ага, если б ему нужно было..... уже б давно освоил. |
| Автор: Данкинг 3.2.2009, 11:07 |
| Frees, ну да, действительно, так даже проще. Я сразу пошёл вумным путём просто. |
| Автор: Akella 3.2.2009, 11:09 |
| И сколько это переменных должно быть? А можно поподробнее с примером? До мну не доходит. |
| Автор: Frees 3.2.2009, 11:16 |
а вот это зависит от того что за задача Добавлено через 5 минут и 17 секунд rlocal, также решение твоей задачи можно найти в примере PrintArray fast reporta |
| Автор: Akella 3.2.2009, 11:26 |
| Ты не понял, переменных нужно по количеству колонок или по количеству ячеек? Добавлено через 46 секунд угу, будет интересно, спасибо |
| Автор: rlocal 3.2.2009, 11:43 | ||
| Мда... действительно за одну ночь не успел :(. Но отсрочил еще на два дня (вместе с этим днем). Никак не пойму следующее: Вот я в дезайнере создал шаблон письма, поместил туда два текстовых поля, в одном основной текст, в другом текст такого вида: "Уважаемый(ая) [name] [fullname] !". И самое смешное, что это работает с одним листом и кодом
Потом я решил, что если поместить еще на лист MasterDat-у, растянул его на весь лист и поместил туда тот же текст, то по моей логике листы должны размножиться и получиться отчет в том виде, как мне нужно. НО! Как только я так сделал у меня вообще теперь просто пустой лист без какого либо текста... :( Что я делаю не так? Как нужно правильно? |
| Автор: Akella 3.2.2009, 12:15 |
| Может ты с бэндами напутал? Или вообще без них работаешь. |
| Автор: rlocal 3.2.2009, 13:01 |
| А как это можно проверить, правильно я делаю или нет? Сейчас смотрю пример с PrintArray, но что-то не до конца понятно как это применить именно к моему примеру?.... :( |
| Автор: Данкинг 3.2.2009, 13:24 |
Посмотреть примеры из мануала к FR. В твоём случае, с только переменными, можно даже ограничиться одним бэндом "HEADER", растянув его на всю страницу. |
| Автор: rlocal 3.2.2009, 14:31 |
| |
| Автор: Данкинг 3.2.2009, 15:24 |
Разбирайся с XLS, так трудно сказать. |
| Автор: Akella 3.2.2009, 17:06 |
нельзя Модератор: один вопрос = одна тема |