PS:
bash-4.2$ pwd && qmake-qt4 && make
/mnt/shares/home/eugene/RPM/BUILD/qreports/library
cd common/ && make -f Makefile
make[1]: Вход в каталог `/mnt/shares/data/RPM/BUILD/qreports/library/common'
make[1]: *** Нет правила для сборки цели
`../OpenRPT/images/OpenRPTCommon.qrc', требуемой для
`qrc_OpenRPTCommon.cpp'. Останов.
make[1]: Выход из каталога
`/mnt/shares/data/RPM/BUILD/qreports/library/common'
make: *** [sub-common-make_default-ordered] Ошибка 2
PPS: лудше бы ссылку на SVN/GIT/иноэ
bash-4.2$ ./test
./test: error while loading shared libraries: libreport.so.1: cannot
open shared object file: No such file or directory
Видимо - надо всё-таки либы установить.
Однако в *.pro это дело не прописано.
> qreport.zip
> 1928KViewDownload
On Apr 1, 11:01 am, Drake <drake.l...@gmail.com> wrote:
Представим себе, что QtCreator'а нет. И не планируется.
Да - не использую qtcreator.
Попробуй собрать и запустить _без_ него.
> Перечисли свои действия, чтобы я мог внести изменения в .pro файлы, дабы
> они нормально собирались всегда и везде.
cd library
qmake-qt4
make
cd ../test
qmake-qt4
make
./test
Для корректной работы собранные либы надо установить. Т.е. обеспечить
make install в pro-файлах.
Посему - мои предложения:
* форкнуть OpenRPT в свой незалежный SCM (http://code.google.com/p/
openrpt/ свободен);
* допилить *.pro до людского состояния (например добавить INSTALLS +=
например);
* а я за это соберу OpenRPT в пакеты (Fedora, *Suse, Mandriva; опция -
Deb и Ubunto; очень опция - инсталлер для Windows с _динамической_
привязкой к Qt).
По ходу дела еще один вопрос.
Я заинтересован в шустром рендере чего-нибудь в PDF - для генерации
печатных форм в web-проектах.
Эти веб-проекты используют ORM (Django).
Сейчас используется html2pdf (webkit-render) для "мягких" документов -
или trml2pdf - для "жеских" (координаты прибиты гвоздями).
В OpenRPT зато есть дизайнер форм.
Но он прибит гвоздями к SQL.
Так вот идея в том, чтобы изыскать способ генерации PDF по OpenRPT-
шаблонам НЕ используя SQL.
Например - передавая ему структуры STL (словари, списки) и/или любые
другие dict-like и/или iterated объекты (прошу прощения за мой
французский).
Т.е. доступ к данным из рендера вынести в отдельный слой.
PS. "ORM - зло" обсуждать не будем. Как и "Windows - зло", "Постгрес -
зло", "PL/SQL - зло", "C++ - зло", иноэ.
Правильно ли я понял как это будет работать в приложении?
1. Создаем модель с данными:
QStandardItemModel* model = new QStandardItemModel();
2. "Набиваем" ее данными:
model->insertRows(0, 3);
model->setData(model->index(0, 0), "xtuple");
model->setData(model->index(1, 0), "test");
model->setData(model->index(2, 0), "value");
model->setData(model->index(0, 1), "1");
model->setData(model->index(1, 1), "2");
model->setData(model->index(2, 1), "3");
3. Создаем навигатор-обертку для модели данных:
IDataSource* source = TWrapper::wrap(model);
4. Подключаем навигатор-обертку к генератору шаблонов и генерим
заполненный данными "черновой" шаблон:
TTemplateGenerator generator;
generator.setDataSource(source);
QDomDocument doc = generator.process();
5. Запускаем редактор шаблонов OpenRPT и отдаем ему сгенерированный
шаблон на съедение. Редактируем "черновой" шаблон и сохраняем его.
6. Генерируем "чистовой" документ:
TReport report;
report.setReport(doc);
report.setDataSource("test", source);
report.preview();
Вопрос. Как забивать в модель не табличные данные?
On Apr 2, 12:22 pm, Vladimir <MorozovVladi...@mail.ru> wrote:
> Вопрос. Как забивать в модель не табличные данные?
PS. IMHO - шаблонизаторы намного удобнее, чем такая вот стройная
система ...
> Таблица из одной строки и одного столбца - это таблица?
Словарь
> Таблица, у которой ячейки могут быть пустыми - это таблица?
Ессно
> Нужна какая-то особенная структура? Пишем для неё обёртку.
Отюдь.
Словарь = {ключ: значение,}
> Про шаблонизаторы - дай хороших шаблонизаторов, которыми ты пользуешься.
Django, mako, jinja2 - тысячи их.
> Сомневаюсь, сильно сомневаюсь, что он устроен иначе.
Сильно иначе.
Вместо разбора DOM - тупо регексы.
может быть - нимношка state machine - но только нимношка. На уровне
переменных regex.
2 апреля 2012 г. 17:02 пользователь Drake <drake...@gmail.com> написал:
> Про шаблонизаторы - дай хороших шаблонизаторов, которыми ты пользуешься.
Django, mako, jinga- тысячи их
Таблица - с т.з. шаблонизатора - это такой тип данных.
> Уверен, что точно так же - перебирают в цикле датасет, и заменяют что надо
> где надо.
Точно.
Типа:
{% for data in datalist %}
<tr>
<td> <p> {{ data.l }} </p> </td>
<td> <p> {{ data.v }} </p> </td>
</tr>
{% endfor %}
</table>
Note: data - это ключ в словаре. Тыкает на... в данном случае - на SortedOrder.
> А шаблон - ну не пофиг ли, в xml он или нет.
Не пофик.
Есть подозрение, что OpenRPT изготавливает DOM документа.
Что _очень_, дорого.
Но - в принципе - для шаблонизатора - пофик.
Column номенклатура__имя not found in record
при просмотре. Видимо при рендеринге движок ищет значение в текущей
записи по именам полей запроса, которого у нас нет. (см. openprt/
common/xsqlquery.cpp, стр.200). Код, который нужно отладить находится
в OpenRPTreportEngine::open(). Посмотри, что там не так?
> Column номенклатура__имя not found in record
Качаем файл.Распаковываем.Собираем проект libraryСобираем проект testЗапускаем экзешник в тесте.Смотрим.
Поясни, какие у тебя представления о порядке. Что ты собираешься
менять в коде?
Качаем файл.Распаковываем.Собираем проект libraryСобираем проект testЗапускаем экзешник в тесте.Смотрим.
Когда таблица переносится на следующую страницу в отчете, то одна строчка пропадает. Как исправить данную проблему?
вторник, 13 августа 2013 г., 23:08:48 UTC+9 пользователь Vladimir написал:
Прошло довольно много времени, год с лишним, но надеюсь кто-нибудь поможет.Когда таблица переносится на следующую страницу в отчете, то одна строчка пропадает. Как исправить данную проблему?
Добрый день! Поясните, что вы делаете.
addColumn();
ui->columnView->item(0)->setText("table_catalog");
addColumn();
ui->columnView->item(1)->setText("table_name");
model->insertRows(0, 30);
for(int i=0;i<30;i++){
model->setData(model->index(i, 0), QString::number(i));
model->setData(model->index(i, 1), QString::number(i));
}
ui->dataView->setModel(model);
вторник, 13 августа 2013 г., 23:08:48 UTC+9 пользователь Vladimir написал:
Прошло довольно много времени, год с лишним, но надеюсь кто-нибудь поможет.Когда таблица переносится на следующую страницу в отчете, то одна строчка пропадает. Как исправить данную проблему?
Добрый день! Поясните, что вы делаете.
Я изменил следующие строки в данном проекте( создал таблицу 2х30, чтобы она не влезала на одну страницу, и вот что получается при переносе) .