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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - snakeZ

Pages: [1]
1
Подскажите, есть ли трюк, позволяющий красиво вывести древовидную таблицу?

Под древовидностью подразумевается, что самая левая колонка должна иметь вид примерно как дерево папок в Windows Explorer, а остальные колонки - обычные. Конечно, "раскрытие" ветвей дерева не предполагается, показываться будет, как будто все уже раскрыто.

Пока что я взял таблицу, отключил в левой колонке "trimspaces" и делаю отступы для дочерних элементов. Но хотелось бы добавить картинки "открытых папок" и правильно их выровнять с последующим текстом.

В идеале левая колонка должна иметь вид:
[ отступы в зависимости от степени вложенности ][ открытая папка ][ текст ][ оставшееся пустое место в колонке ]
Элемент [открытая папка] может отсутствовать или как-то "схлопываться" до 0..1 пикселей, если в нем нет дочерних элементов.

Я не ожидаю от LimeReport поддержки древовидной структуры данных (хотя чем черт не шутит, может, оно уже есть?) Дерево я умею конвертировать в таблицу, рассчитывать нужное число отступов и т.п. Но вот как мне сделать такое выравнивание, чтобы
1) группа из трех элементов (отступы, картинка, текст) выравнивалась полевому краю как единое целое,
2) чтобы в ней средний элемент мог отсутствовать в зависимости от data source?

2
Еще раз спасибо, всё получилось, как хотелось.

3
Все замечательно, собралось.

По ходу обнаружилось, что если собрать Qt в одном месте, а потом перенести в другое, то LimeReport не компилируется, поскольку достает старый путь к Qt откуда-то из Qt-файлов. Это не очень радует, т.к. мы практикуем однократную (10-часовую!) сборку Qt на одном компе и потом копирование по всему офису, а конкретные программисты кладут это Qt по разным папкам у себя. Может, есть какая-то настройка?

Но если все собирать у себя, то собралось.

Дальше вопросы вылезли.

1. Как избавиться от QtZint? Нам штрих-коды не нужны, не хотелось бы, чтобы в инсталлированной программе был мертвый груз.

2. Как сделать отчет на QAbstractDataModel (кстати, что такое QAbstractDataModel? Это видимо QAbstractItemModel с опечаткой?) В ваших примерах в LRDemo_r1.exe и в .pdf есть фрагмент:

Code: [Select]
    QStringList simpleData;
    simpleData << "value1" << "value2" << "value3";
    QStringListModel* stringListModel = new QStringListModel();
    stringListModel->setStringList(simpleData);

    report->dataManager()->addModel("string_list",stringListModel,true);

- ну, собственно, а как эту модель теперь активировать? С помощью LRDemo_r1.exe какие кнопки ни нажимай, "value1", "value2" не увидишь.

Мне нужно что-то типа:

simple_list.lrxml

- но чтобы бралось не из SQL-БД, а из моих данных в памяти. Подозреваю, что надо заменить $D{customers.CompanyName} в simple_list.lrxml на что-то типа $D{string_list.CompanyName}? Но в QStringListModel нет колонок. Видимо, нужен QAbstractTableModel. Я создал такую:

Code: [Select]
class AbstractTableModel: public QAbstractTableModel
{
public:
AbstractTableModel()
{
}

int columnCount(const QModelIndex &parent) const { return 3; }
int rowCount(const QModelIndex &parent) const { return 4; }

virtual QVariant data(const QModelIndex &index, int role) const
{
return QVariant();
}
};

......
   QAbstractTableModel *qatm= new AbstractTableModel;
   report->dataManager()->addModel("table_list", qatm,true);

потом заменил в simple_list.lrxml customers на table_list, и попытался все впихнуть в свою программу. Получаю сообщения: "Field table_list.CompanyName not found". Понятно, что у меня функция data() пустая, но она даже не вызывается.

4
У меня Microsoft Visual Studio 2015 и сборка Qt 4.8.7 под MSVS.

Подскажите, как собрать Limereport в такой конфигурации?

Из Git я выкачал сорцы, где есть Makefile и .pro файл, на это, видимо, надо как-то натравить qmake, но qmake мне пользоваться не приходилось (Qt мы собираем MSVS). Попытка просто "в лоб" qmake блабла.pro пишет Debug, еще что-то, создает папки, но не либу. Подозреваю, что нужно установить какие-то параметры или переменные окружения, но какие - угадать не могу.

Не будете ли вы так добры проинструктировать или (если такие инструкции уже есть) дать ссылку?

Pages: [1]