Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Вопросы новичка  (Read 151210 times)

BigM

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Вопросы новичка
« Reply #435 on: April 14, 2022, 03:18:22 pm »

Открывается окошко где меня просят указать путь к картинке. А у меня картинка сгенерирована и хранится в QImage. я могу ее конечно сохранить как файл, но очень не хотелось бы.

Как раз с Алексом обсуждали. Передай в переменную отчета картинку.
Как то так:

QIMage image=...;
QVariant variant=image;

report->setReportVariable(variable,variant);

Здравствуйте! У меня такая же проблема, делаю по вашему примеру не получается.
Code: [Select]
      QPixmap p = ui->Plot2->toPixmap(480,240);
            QVariant variant=p;
            m_report.dataManager()->setReportVariable("qwer", variant);
В самом шаблоне отчета мне переменную qwer надо привязать к какому объекту? TextItem? Не работает(

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Вопросы новичка
« Reply #436 on: April 15, 2022, 08:18:40 pm »
BigM, Приветствую! Изображения выводятся через ImageItem

leoneii

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Вопросы новичка
« Reply #437 on: April 21, 2022, 01:05:33 pm »
У меня новая напасть- не печатает на реальной виндавс 10. В смысле ничего не происходит при нажатии на кнопку печати)) На вин7 в виртуал-бокс- диалог выбора принтера нормально открывается

leoneii

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: Вопросы новичка
« Reply #438 on: April 29, 2022, 01:06:05 pm »
смотрите еще что - а куда выложить формы упд, счета, договора? Мало ли, всем же нужны, я ослеп одну УПД рисовать))
На гитхаб может?

eustace

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Вопросы новичка
« Reply #439 on: August 09, 2022, 06:37:37 pm »
Здравствуйте, подскажите, пожалуйста, как лучше сделать, чтобы выводить названия столбцов в начале каждой страницы отчета и при этом еще на самой первой странице в самом начале вывести заголовок отчета. Если названия столбцов я закреплю в pageHeader, чтобы они повторялись на каждой странице, то заголовок отчета из reportHeader получается будет ниже названия столбцов? Или можно сделать как-нибудь проверку на номер страницы и не показывать pageHeader с названиями столбцов для первой страницы, а запихнуть названия столбцов дял первой страницы под названием заголовка в reportHeader?
« Last Edit: August 10, 2022, 10:33:39 am by eustace »

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Вопросы новичка
« Reply #440 on: August 10, 2022, 12:45:58 pm »
1. ReportHeader можно расположить ДО PageHeader. Смотри скрин прицепленный
2. Есть переменная $V{Page} - это номер страницы. Также в скрине показал.

eustace

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Вопросы новичка
« Reply #441 on: August 10, 2022, 01:55:06 pm »
Subst, спасибо, работает.

eustace

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Вопросы новичка
« Reply #442 on: October 26, 2022, 06:33:43 pm »
Здравствуйте, не подскажите в чем может быть проблема? Печатается только первая страница отчета. Табличные данные просто идут до конца первой страницы, даже под номером страницы, а вторая страница не появляется. Вот шаблон и скриншот проблемы.

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Вопросы новичка
« Reply #443 on: October 27, 2022, 01:07:39 pm »
Здравствуйте, не подскажите в чем может быть проблема? Печатается только первая страница отчета. Табличные данные просто идут до конца первой страницы, даже под номером страницы, а вторая страница не появляется. Вот шаблон и скриншот проблемы.

Сам датосоурс приложить можно?

eustace

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Вопросы новичка
« Reply #444 on: October 27, 2022, 01:15:57 pm »
Subst, к сожалению нет. Но методом пошагового удаления частей шаблона, я нашел, что ошибка кроется в horizontallayout в main data band. Если я удаляю его, то печать переходит на вторую и последующие страницы, но весь шаблон конечно "едет". Нашел на этом форуме похожую проблему, там она решалась выставлением для horizontallayout поля itemlocation в band, вместо page. Но у меня и так уже стоит band.

Вот так устанавливаю датасорс

Code: [Select]
report = new LimeReport::ReportEngine(this);

QSqlQueryModel* captionModel = new QSqlQueryModel(this);
captionModel->setQuery(QString("SELECT * FROM fn_report_captions() t;"));

QSqlQueryModel* mainModel = new QSqlQueryModel(this);
mainModel->setQuery(QString("SELECT * FROM fn_reports() t;"));

report->dataManager()->addModel("main", mainModel, true);
report->dataManager()->addModel("caption", captionModel, true);

report->loadFromFile(templateFileName);
report->setShowProgressDialog(true);

QPrinter printer(QPrinter::HighResolution);
printer.setOutputFileName(lFileName);

report->printReport(&printer);
« Last Edit: October 27, 2022, 05:28:55 pm by eustace »

eustace

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Вопросы новичка
« Reply #445 on: October 27, 2022, 01:45:00 pm »
Вот так выглядит, если удалить горизонтальный лейаут в главном бенде.

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Вопросы новичка
« Reply #446 on: October 27, 2022, 02:01:55 pm »
Subst, к сожалению нет. Но методом пошагового удаления частей шаблона, я нашел, что ошибка кроется в horizontallayout в main data band. Если я удаляю его, то печать переходит на вторую и последующие страницы, но весь шаблон конечно "едет". Нашел на этом форуме похожую проблему, там она решалась выставлением для horizontallayout поля itemlocation в band, вместо page. Но у меня и так уже стоит band.

Ясно.
Ну без данных мне нечем заполнить отчет.
Что попробовать придумать, соответсвенно, я так же не имею возможности.
Тупо нет возможности тестировать.

eustace

  • Newbie
  • *
  • Posts: 9
    • View Profile
Re: Вопросы новичка
« Reply #447 on: October 27, 2022, 02:57:44 pm »
Subst,
Вот база для SQLite mydb.db.
Будет правда всего 4 столбца (даже 3).


Чтобы подключить, нужно создать два источника данных:
main  SELECT * FROM main;
caption SELECT * FROM caption;

Попробовал на винде (до этого был на линуксе) и с дргуим источником данных (SQLite, до этого был postgres), проблема остается.

И даже еще появилась новая проблема (при малом количестве столбцов заметил): столбцы стали меняться местами (должны идти в порядке (1, 2, 24), а идут (2, 24, 1).

Информация по БД:
Code: [Select]
CREATE TABLE main (fio varchar(20), c1 varchar(8), c2 varchar(8), c24 varchar(8));
INSERT INTO main VALUES('Ivanov','22:33:44','33:55"11','33:55:12');
.
.
.
INSERT INTO main VALUES('Ivanov13','22:33:44','33:55"11','33:55:12');
CREATE TABLE caption (c1 varchar(2), c2 varchar(2), c24 varchar(2), zc1 integer, zc0 integer);
INSERT INTO caption VALUES('1','2','24',2,1);
В таблице main данные для основной части отчета.
В таблице caption данные об именах столбцов и их количестве.
В шаблоне столбцы: фамилия, всего и еще от 0 до 30 столбцов с однообразными данными. Эти 30 столбцов в двух группах (Группа А и группа Б). В группу А могут входить столбцы с 1 по 23. В группу Б с 24 по 30.
В данном случае в таблице main 2 столбца из группы А c1 varchar(8 ), c2 varchar(8 ) и один столбец из группы Б c24 varchar(8 ).
В таблице caption столбец zc1 integer содержит информацию о том, сколько в данном случае столбцов в группе А (в данном случае 2), а столбец zc0 integer ту же информацию, но о группе Б (в данном случае 1). Ориентируясь на значения zc1 и zc0, шаблон скрывает лишние столбцы, изменяет размеры заголовков с названиями групп, и изменяет ширину данных из reportheader. (Вот тут еще появилась ошибка при маленьком количестве столбцов, они меняются местами).
Также в caption хранятся названия столбцов:
c1 varchar(2), c2 varchar(2), c24 varchar(2).

« Last Edit: October 27, 2022, 06:06:18 pm by eustace »

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Вопросы новичка
« Reply #448 on: October 27, 2022, 06:21:52 pm »
а from_date и to_date для полнооты картины?
из программы задаются?

Subst

  • Sr. Member
  • ****
  • Posts: 450
    • View Profile
Re: Вопросы новичка
« Reply #449 on: October 27, 2022, 06:25:56 pm »
мимоходом...
для доступа к полю таблицы можно так делать
$D{table_name.field_name}

так короче и удобней