diff --git a/limereport/items/lrtextitem.cpp b/limereport/items/lrtextitem.cpp index cddcfee..e36d251 100644 --- a/limereport/items/lrtextitem.cpp +++ b/limereport/items/lrtextitem.cpp @@ -42,6 +42,7 @@ #include "lrsimpletagparser.h" #include "lrtextitemeditor.h" #include "lrreportengine_p.h" +#include namespace{ @@ -80,6 +81,51 @@ int TextItem::fakeMarginSize() const{ return marginSize()+5; } +void TextItem::preparePopUpMenu(QMenu &menu) +{ + QAction* editAction = menu.addAction(QIcon(":/report/images/edit_pecil2.png"),tr("Edit")); + menu.insertAction(menu.actions().at(0),editAction); + menu.insertSeparator(menu.actions().at(1)); + + menu.addSeparator(); + + QAction* action = menu.addAction(tr("Auto height")); + action->setCheckable(true); + action->setChecked(autoHeight()); + + action = menu.addAction(tr("Allow HTML")); + action->setCheckable(true); + action->setChecked(allowHTML()); + + action = menu.addAction(tr("Allow HTML in fields")); + action->setCheckable(true); + action->setChecked(allowHTMLInFields()); + + action = menu.addAction(tr("Stretch to max height")); + action->setCheckable(true); + action->setChecked(stretchToMaxHeight()); + +} + +void TextItem::processPopUpAction(QAction *action) +{ + if (action->text().compare(tr("Edit")) == 0){ + this->showEditorDialog(); + } + if (action->text().compare(tr("Auto height")) == 0){ + setProperty("autoHeight",action->isChecked()); + } + if (action->text().compare(tr("Allow HTML")) == 0){ + setProperty("allowHTML",action->isChecked()); + } + if (action->text().compare(tr("Allow HTML in fields")) == 0){ + setProperty("allowHTMLInFields",action->isChecked()); + } + if (action->text().compare(tr("Stretch to max height")) == 0){ + setProperty("stretchToMaxHeight",action->isChecked()); + } +} + void TextItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* style, QWidget* widget) { Q_UNUSED(widget); Q_UNUSED(style); diff --git a/limereport/items/lrtextitem.h b/limereport/items/lrtextitem.h index ac9b5b6..6dc735b 100644 --- a/limereport/items/lrtextitem.h +++ b/limereport/items/lrtextitem.h @@ -172,6 +172,8 @@ protected: int fakeMarginSize() const; QString getTextPart(int height, int skipHeight); void restoreLinksEvent(); + void preparePopUpMenu(QMenu &menu); + void processPopUpAction(QAction *action); private: void initTextSizes() const; void setTextFont(TextPtr text, const QFont &value) const; diff --git a/limereport/lrbanddesignintf.cpp b/limereport/lrbanddesignintf.cpp index c6993ad..9a704f2 100644 --- a/limereport/lrbanddesignintf.cpp +++ b/limereport/lrbanddesignintf.cpp @@ -33,6 +33,7 @@ #include #include #include +#include namespace LimeReport { @@ -431,6 +432,34 @@ void BandDesignIntf::moveItemsDown(qreal startPos, qreal offset){ } } +void BandDesignIntf::preparePopUpMenu(QMenu &menu) +{ + foreach (QAction* action, menu.actions()) { + if (action->text().compare(tr("Bring to top")) == 0 || + action->text().compare(tr("Send to back")) == 0 ) + action->setEnabled(false); + } + + menu.addSeparator(); + QAction* autoHeightAction = menu.addAction(tr("Auto height")); + autoHeightAction->setCheckable(true); + autoHeightAction->setChecked(autoHeight()); + + QAction* autoSplittableAction = menu.addAction(tr("Splittable")); + autoSplittableAction->setCheckable(true); + autoSplittableAction->setChecked(isSplittable()); +} + +void BandDesignIntf::processPopUpAction(QAction *action) +{ + if (action->text().compare(tr("Auto height")) == 0){ + setProperty("autoHeight",action->isChecked()); + } + if (action->text().compare(tr("Splittable")) == 0){ + setProperty("splittable",action->isChecked()); + } +} + BaseDesignIntf* BandDesignIntf::cloneUpperPart(int height, QObject *owner, QGraphicsItem *parent) { int maxBottom = 0; @@ -804,6 +833,14 @@ void BandDesignIntf::setStartNewPage(bool startNewPage) m_startNewPage = startNewPage; } +void BandDesignIntf::setAutoHeight(bool value){ + if (m_autoHeight != value){ + m_autoHeight=value; + if (!isLoading()) + notify("autoHeight",!value,value); + } +} + bool BandDesignIntf::reprintOnEachPage() const { return m_reprintOnEachPage; diff --git a/limereport/lrbanddesignintf.h b/limereport/lrbanddesignintf.h index fea245a..0d92f5e 100644 --- a/limereport/lrbanddesignintf.h +++ b/limereport/lrbanddesignintf.h @@ -207,7 +207,7 @@ public: bool startNewPage() const; void setStartNewPage(bool startNewPage); - void setAutoHeight(bool value){m_autoHeight=value;} + void setAutoHeight(bool value); bool autoHeight(){return m_autoHeight;} bool startFromNewPage() const; @@ -244,6 +244,8 @@ protected: void setColumnsCount(int value); void setColumnsFillDirection(BandColumnsLayoutType value); void moveItemsDown(qreal startPos, qreal offset); + void preparePopUpMenu(QMenu &menu); + void processPopUpAction(QAction *action); private slots: void childBandDeleted(QObject* band); private: diff --git a/limereport/lrbasedesignintf.cpp b/limereport/lrbasedesignintf.cpp index f0f7e2b..2f5f4db 100644 --- a/limereport/lrbasedesignintf.cpp +++ b/limereport/lrbasedesignintf.cpp @@ -35,6 +35,8 @@ #include "qgraphicsitem.h" #include "lrdesignelementsfactory.h" #include "lrhorizontallayout.h" +#include "serializators/lrstorageintf.h" +#include "serializators/lrxmlreader.h" #include @@ -43,6 +45,8 @@ #include #include #include +#include +#include namespace LimeReport { @@ -1147,6 +1151,53 @@ void BaseDesignIntf::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) QGraphicsItem::mouseDoubleClickEvent(event); } +void BaseDesignIntf::contextMenuEvent(QGraphicsSceneContextMenuEvent *event) +{ + PageDesignIntf* page = dynamic_cast(scene()); + if (!page->selectedItems().contains(this)){ + page->clearSelection(); + this->setSelected(true); + } + QMenu menu; + QAction* copyAction = menu.addAction(QIcon(":/report/images/copy.png"), tr("Copy")); + copyAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_C)); + QAction* cutAction = menu.addAction(QIcon(":/report//images/cut"), tr("Cut")); + cutAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_X)); + QAction* pasteAction = menu.addAction(QIcon(":/report/images/paste.png"), tr("Paste")); + pasteAction->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_V)); + pasteAction->setEnabled(false); + QClipboard *clipboard = QApplication::clipboard(); + ItemsReaderIntf::Ptr reader = StringXMLreader::create(clipboard->text()); + if (reader->first() && reader->itemType() == "Object"){ + pasteAction->setEnabled(true); + } + menu.addSeparator(); + QAction* brinToTopAction = menu.addAction(QIcon(":/report//images/bringToTop"), tr("Bring to top")); + QAction* sendToBackAction = menu.addAction(QIcon(":/report//images/sendToBack"), tr("Send to back")); + menu.addSeparator(); + QAction* noBordersAction = menu.addAction(QIcon(":/report//images/noLines"), tr("No borders")); + QAction* allBordersAction = menu.addAction(QIcon(":/report//images/allLines"), tr("All borders")); + preparePopUpMenu(menu); + QAction* a = menu.exec(event->screenPos()); + if (a){ + if (a == cutAction) + page->cut(); + if (a == copyAction) + page->copy(); + if (a == pasteAction) + page->paste(); + if (a == brinToTopAction) + page->bringToFront(); + if (a == sendToBackAction) + page->sendToBack(); + if (a == noBordersAction) + page->setBorders(BaseDesignIntf::NoLine); + if (a == allBordersAction) + page->setBorders(BaseDesignIntf::AllLines); + processPopUpAction(a); + } +} + int BaseDesignIntf::possibleMoveDirectionFlags() const { return m_possibleMoveDirectionFlags; diff --git a/limereport/lrbasedesignintf.h b/limereport/lrbasedesignintf.h index 253da8d..4f615ed 100644 --- a/limereport/lrbasedesignintf.h +++ b/limereport/lrbasedesignintf.h @@ -124,10 +124,13 @@ public: TopBotom=2, All=3 }; - enum BorderSide { TopLine = 1, - BottomLine = 2, - LeftLine = 4, - RightLine = 8 + enum BorderSide { + NoLine = 0, + TopLine = 1, + BottomLine = 2, + LeftLine = 4, + RightLine = 8, + AllLines = 15 }; enum ObjectState {ObjectLoading, ObjectLoaded, ObjectCreated}; enum ItemAlign {LeftItemAlign,RightItemAlign,CenterItemAlign,ParentWidthItemAlign,DesignedItemAlign}; @@ -293,6 +296,7 @@ protected: void mouseMoveEvent(QGraphicsSceneMouseEvent* event); void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event); + void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); virtual void geometryChangedEvent(QRectF newRect, QRectF oldRect); virtual QPen borderPen(BorderSide side) const; @@ -333,6 +337,9 @@ protected: QVariant m_varValue; + virtual void preparePopUpMenu(QMenu& menu){Q_UNUSED(menu)} + virtual void processPopUpAction(QAction* action){Q_UNUSED(action)} + private: void updateSelectionMarker(); int resizeDirectionFlags(QPointF position); diff --git a/limereport/lrpagedesignintf.cpp b/limereport/lrpagedesignintf.cpp index e0a5ec2..2178d43 100644 --- a/limereport/lrpagedesignintf.cpp +++ b/limereport/lrpagedesignintf.cpp @@ -56,6 +56,7 @@ #include #include + namespace LimeReport { @@ -744,6 +745,15 @@ void PageDesignIntf::dropEvent(QGraphicsSceneDragDropEvent* event) QString data = event->mimeData()->text().remove(0,event->mimeData()->text().indexOf(":")+1); if (isVar) data = data.remove(QRegExp(" \\[.*\\]")); ti->setContent(data); + if (!isVar){ + BandDesignIntf* parentBand = dynamic_cast(ti->parentItem()); + if (parentBand && parentBand->datasourceName().isEmpty()){ + QRegExp dataSource("(?:\\$D\\{\\s*(.*)\\..*\\})"); + if (dataSource.indexIn(data) != -1){ + parentBand->setProperty("datasource",dataSource.cap(1)); + } + } + } } } @@ -1231,8 +1241,13 @@ BaseDesignIntf* PageDesignIntf::findDestObject(BaseDesignIntf* item){ void PageDesignIntf::paste() { QClipboard *clipboard = QApplication::clipboard(); - if (!selectedItems().isEmpty()) { - BaseDesignIntf* destItem = findDestObject(dynamic_cast(selectedItems().at(0))); + BaseDesignIntf* destItem = 0; + ItemsReaderIntf::Ptr reader = StringXMLreader::create(clipboard->text()); + if (reader->first() && reader->itemType() == "Object"){ + if (!selectedItems().isEmpty()) + destItem = findDestObject(dynamic_cast(selectedItems().at(0))); + else + destItem = this->pageItem(); if (destItem){ CommandIf::Ptr command = PasteCommand::create(this, clipboard->text(), destItem); saveCommand(command); diff --git a/limereport/lrpageitemdesignintf.cpp b/limereport/lrpageitemdesignintf.cpp index 41d89aa..d943a13 100644 --- a/limereport/lrpageitemdesignintf.cpp +++ b/limereport/lrpageitemdesignintf.cpp @@ -33,6 +33,7 @@ #include #include +#include namespace LimeReport { @@ -519,6 +520,14 @@ void PageItemDesignIntf::initPageSize(const QSizeF& size) setHeight(size.height()); m_sizeChainging=false; } + +void PageItemDesignIntf::preparePopUpMenu(QMenu &menu) +{ + foreach (QAction* action, menu.actions()) { + if (action->text().compare(tr("Paste")) != 0) + action->setVisible(false); + } +} void PageItemDesignIntf::initPageSize(const PageItemDesignIntf::PageSize &size) { m_sizeChainging = true; diff --git a/limereport/lrpageitemdesignintf.h b/limereport/lrpageitemdesignintf.h index 635655f..2c1fb84 100644 --- a/limereport/lrpageitemdesignintf.h +++ b/limereport/lrpageitemdesignintf.h @@ -127,6 +127,7 @@ protected: void initPageSize(const PageSize &size); void initPageSize(const QSizeF &size); QColor selectionMarkerColor(){return Qt::transparent;} + void preparePopUpMenu(QMenu &menu); private: void paintGrid(QPainter *ppainter); void initColumnsPos(QVector&posByColumns, qreal pos, int columnCount); diff --git a/limereport/serializators/lrxmlreader.h b/limereport/serializators/lrxmlreader.h index 0bc17ee..c0f3508 100644 --- a/limereport/serializators/lrxmlreader.h +++ b/limereport/serializators/lrxmlreader.h @@ -63,7 +63,6 @@ protected: void readCollection(QObject *item, QDomElement *node); QVariant getValue(QDomElement *node); - protected: bool extractFirstNode(); QString m_error; @@ -72,10 +71,6 @@ private: QDomElement m_curNode; QDomElement m_firstNode; QString m_passPhrase; - - - - }; class FileXMLReader : public XMLReader{ diff --git a/translations/limereport_ru.ts b/translations/limereport_ru.ts index 29eb2f1..8282137 100644 --- a/translations/limereport_ru.ts +++ b/translations/limereport_ru.ts @@ -1,139 +1,6 @@ - - - AboutDialog - - About - О программе - - - Author - Автор - - - License - Лицензия - - - Close - Закрыть - - - Version 1.1.1 - Версия - - - - ConnectionDialog - - Connection - Соединение - - - Connection Name - Название - - - Driver - Драйвер - - - Server - Сервер - - - User - Пользователь - - - Password - Пароль - - - Database - База данных - - - Auto connect - Автоматическое соединение - - - Check connection - Проверить соединение - - - Cancel - Отмена - - - Error - Ошибка - - - Connection succsesfully established! - Соединение успешно установлено! - - - Connection Name is empty - Наименование соединения не указано - - - Connection with name - Соединение - - - already exists - уже существует - - - - DataBrowser - - Datasources - Источники данных - - - Add database connection - Добавить соединение с базой - - - Add new datasource - Добавить новый источник данных - - - View data - Просмотр данных в источнике - - - Change datasource - Изменить источник данных - - - Delete datasource - Удалить источник данных - - - Show error - Показать ошибки - - - Variables - Переменные - - - Add new variable - Добавить новую переменную - - - Edit variable - Редактировать переменную - - - Delete variable - Удалить переменную - - + LRVariableDialog @@ -157,46 +24,31 @@ Внимание - - LimeReport::AVariablesHolder - - variable with name - переменная - - - already exists !! - уже существует !! - - - does not exists !! - не существует !! - - LimeReport::AboutDialog About - О программе + О программе Author - Автор + Автор License - Лицензия + Лицензия Close - Закрыть + Закрыть Version 1.1.1 - Версия + Версия 1.1.1 Lime Report - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -212,7 +64,7 @@ p, li { white-space: pre-wrap; } <p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600; color:#000000;">This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</span></p> <p align="justify" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:10pt; font-weight:600; color:#000000;"><br /></p> <p align="justify" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; color:#000000;">Copyright 2015 Arin Alexander. All rights reserved.</span></p></body></html> - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> @@ -221,9 +73,9 @@ p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Arin Alexander</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">arin_a@bk.ru</p></body></html> - + - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -338,7 +190,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" font-family:'monospace'; font-style:italic; color:#000000;">signature of Ty Coon</span><span style=" font-family:'monospace'; color:#000000;">, 1 April 1990</span></p> <p style=" margin-top:0px; margin-bottom:15px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" font-family:'monospace'; color:#000000;">Ty Coon, President of Vice</span></p> <p style=" margin-top:19px; margin-bottom:19px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; background-color:#ffffff;"><span style=" font-family:'sans-serif'; color:#000000; background-color:#ffffff;">That's all there is to it!</span></p></body></html> - + @@ -382,76 +234,127 @@ p, li { white-space: pre-wrap; } connected to соединён с + + Bring to top + На передний план + + + Send to back + На задний план + + + Auto height + Автоматическая высота + + + Splittable + Разбивать содержимое на части + + + + LimeReport::BaseDesignIntf + + Copy + Копировать + + + Cut + Вырезать + + + Paste + Вставить + + + Bring to top + На передний план + + + Send to back + На задний план + + + No borders + Удалить границы + + + All borders + Внешние границы + LimeReport::ConnectionDialog Connection - Соединение + Соединение + + + Use default application connection + Использовать соединение по умолчанию Connection Name - Название + Название Driver - Драйвер + Драйвер Server - Сервер + Сервер User - Пользователь + Пользователь Password - Пароль + Пароль Database - База данных + База данных Auto connect - Автоматическое соединение + Автоматическое соединение Check connection - Проверить соединение + Проверить соединение Cancel - Отмена + Отмена Error - Ошибка + Ошибка Connection succsesfully established! - Соединение успешно установлено! + Соединение успешно установлено! Connection Name is empty - Наименование соединения не указано + Наименование соединения не указано Connection with name - Соединение + Соединение already exists - уже существует + уже существует ... - + Ok - + Ок @@ -468,6 +371,17 @@ p, li { white-space: pre-wrap; } Данные + + LimeReport::ScriptBrowser + + Functions + Функции + + + Dialogs + Диалоги + + LimeReport::DataBrowser @@ -476,43 +390,43 @@ p, li { white-space: pre-wrap; } Add database connection - Добавить соединение с базой + Добавить соединение с базой Add new datasource - Добавить новый источник данных + Добавить новый источник данных View data - Просмотр данных в источнике + Просмотр данных в источнике Change datasource - Изменить источник данных + Изменить источник данных Delete datasource - Удалить источник данных + Удалить источник данных Show error - Показать ошибки + Показать ошибки Variables - Переменные + Переменные Add new variable - Добавить новую переменную + Добавить новую переменную Edit variable - Редактировать переменную + Редактировать переменную Delete variable - Удалить переменную + Удалить переменную Attention @@ -523,46 +437,42 @@ p, li { white-space: pre-wrap; } Do you really want delete "%1" connection ? Вы действительно хотите удалить "%1" соединение ? - - User variables - Пользовательские переменные - System variables Системные переменные + + User variables + Пользовательские переменные + Do you really want to delete "%1" datasource ? Do you really want delete "%1" datasource ? Вы действительно хотите удалить источник данных "%1" ? - - Do you really want delete variable "%1" ? - Вы действительно хотите удалить переменную "%1" ? - Error Ошибка ... - + Do you really want to delete variable "%1" ? - + Вы действительно хотите удалить переменную "%1" ? Grab variable - + Захватить переменную Report variables - + Переменные отчета External variables - + Внешние переменные @@ -604,7 +514,7 @@ p, li { white-space: pre-wrap; } Variable "%1" not found! - + Переменная "%1" не найдена! @@ -759,7 +669,7 @@ p, li { white-space: pre-wrap; } All borders - Внешние границы + Все границы @@ -787,17 +697,6 @@ p, li { white-space: pre-wrap; } Объекты - - LimeReport::PageDesignIntf - - Warning - Предупреждение - - - Multi band deletion not allowed - Удаление нескольких бандов запрещено - - LimeReport::PageFooter @@ -816,126 +715,110 @@ p, li { white-space: pre-wrap; } LimeReport::PreviewReportWidget Form - + Форма PDF file name - Имя PDF файла + Имя PDF файла Report file name - Файл отчета + Имя файла отчета LimeReport::PreviewReportWindow View - Просмотр + Просмотр Report - Отчет + Отчет toolBar - Панель инструментов + Панель инструментов Print - Печать + Печать Zoom In - Увеличить + Увеличить Zoom Out - Уменьшить + Уменьшить Prior Page - Предыдущая страница + Предыдущая страница Next Page - Следующая страница + Следующая страница Close Preview - Закрыть + Закрыть Edit Mode - Режим редактирования + Режим редактирования Save to file - Записать в файл + Сохранить в файл Show errors - Показать ошибки + Показать ошибки First Page - Первая страница + Первая страница First page - Первая страница + Первая страница Last Page - Последняя страница + Последняя страница Print To PDF - Печать в PDF + Печать в PDF Page: - Страница: + Страница: of %1 - из %1 - - - Report file name - Файл отчета - - - PDF file name - Имя PDF файла + из %1 Preview - + Предосмотр Ctrl+P - + Fit page width - + По ширине страницы Fit page - + Страница целиком One to one - - - - Font - Шрифт - - - Text align - + Один к одному @@ -955,21 +838,61 @@ p, li { white-space: pre-wrap; } Property value Значение + + fullPage + Страница целиком + + + gridStep + Шаг сетки + + + oldPrintMode + Старый режим печати + + + resourcePath + Путь к ресурсам + + + autoSize + Автоматический размер + + + center + Центрировать + + + field + Поле + + + image + Изображение + + + keepAspectRatio + Сохранять соотношение сторон + + + scale + Масштабировать + leftMargin - Отступ левый + Левый отступ rightMargin - Отступ правый + Правый отступ topMargin - Отступ верхний + Верхний отступ bottomMargin - Отступ нижний + Нижний отступ objectName @@ -979,13 +902,25 @@ p, li { white-space: pre-wrap; } borders Границы + + condition + Условие + + + keepGroupTogether + Сохранять группу вместе + + + groupFieldName + Столбец группы + geometry Геометрия itemAlign - Расположение объекта + Выравнивание объекта pageOrientation @@ -1013,19 +948,19 @@ p, li { white-space: pre-wrap; } datasource - источник данных + Источник данных alignment - расположение + Выравнивание content - содержимое + Содержимое itemLocation - Расположение объекта + Расположение объекта Warning @@ -1033,115 +968,187 @@ p, li { white-space: pre-wrap; } reprintOnEachPage - + Печатать на каждой странице borderLineSize - + Ширина линии границы + + + textIndent + Отступ текста + + + textLayoutDirection + Направление текста + + + lineSpacing + Межстрочный интервал + + + underlines + Подчеркивание + + + underlineLineSize + Толщина подчеркивания + + + format + Формат + + + valueType + Тип значения + + + adaptFontToSize + Шрифт по размеру + + + followTo + Следует за + + + backgroundBrushStyle + Стиль заполнения фона autoHeight - + Автоматическая высота backgroundColor - + Цвет фона - columnCount - + alternateBackgroundColor + Альтернативный цвет фона + + + columnsCount + Количество столбцов columnsFillDirection - + Направление заполнения столбцов keepBottomSpace - + Сохранять отступ снизу keepFooterTogether - + Привязать колонтитул к данным keepSubdetailTogether - + Привязать подчиненные данные printIfEmpty - + Печатать, если пустое sliceLastRow - + Разрезать последнюю запись splittable - + Разбивать содержимое на части angle - + Угол поворота autoWidth - + Автоматическая ширина backgroundMode - + Режим фона backgroundOpacity - + Заполненость фона font - + Шрифт fontColor - + Цвет шрифта foregroundOpacity - + Заполненость переднего плана margin - + Поля stretchToMaxHeight - + Растягивать до максимальной высоты trimValue - + Обрезать пробелы с краев lineWidth - + Ширина линии opacity - + Заполненость penStyle - + Стиль пера shape - + Фигура shapeBrush - + Кисть фигуры shapeBrushColor - + Цвет кисти + + + allowHTML + Разрешить HTML + + + allowHTMLInFields + Разрешить HTML в полях + + + printAlways + Печатать всегда + + + borderColor + Цвет границ + + + startNewPage + Начинать новую страницу + + + startFromNewPage + Начинать с новой страницы + + + resetPageNumber + Обнулять номер страницы @@ -1172,22 +1179,6 @@ p, li { white-space: pre-wrap; } Report file name Файл отчета - - Page - - - - Script - - - - Error - Ошибка - - - Wrong file format - - LimeReport::ReportDesignWindow @@ -1207,6 +1198,14 @@ p, li { white-space: pre-wrap; } Redo Повторить действие + + New Report Page + Новая страница отчета + + + Delete Report Page + Удалить страницу отчета + Copy Копировать @@ -1355,6 +1354,10 @@ p, li { white-space: pre-wrap; } GroupFooter Завершение группы + + Tear-off Band + Отрыв данных + File Файл @@ -1379,9 +1382,13 @@ p, li { white-space: pre-wrap; } Data Browser Инспектор данных + + Script Browser + Инспектор скриптов + Report has been modified ! Do you want save the report ? - Отчет был изменен ! Хотите его записать ? + Отчет был изменен ! Хотите его сохранить ? Report file name @@ -1393,39 +1400,27 @@ p, li { white-space: pre-wrap; } Abort - О генераторе + Прервать page rendered - создается страница + создается страница Warning - Предупреждение + Предупреждение Use magnet - + Использовать магнит Recent Files - + Последние файлы File "%1" not found! - - - - New Report Page - - - - Delete Report Page - - - - Script Browser - + Файл "%1" не найден! @@ -1436,7 +1431,7 @@ p, li { white-space: pre-wrap; } Preview - + Предосмотр @@ -1472,153 +1467,99 @@ p, li { white-space: pre-wrap; } LimeReport::SQLEditDialog Datasource - Источник данных + Источник данных Connection - Соединение + Соединение Datasource Name - Имя источника + Имя источника Subdetail - Подчиненный + Подчиненный Master datasource - Главный источник + Главный источник Subquery mode - Режим подзапроса + Режим подзапроса Filter mode - Режим фильтрации + Режим фильтрации SQL - SQL запрос + SQL запрос Hide Preview - Скрыть + Скрыть Child datasource - Подчиненный источник + Подчиненный источник Fields map - Поля для связи источников + Поля для связи источников Data preview - Данные + Данные Cancel - Отмена + Отмена Error - Ошибка + Ошибка Datasource Name is empty ! - Имя источника данных не заполнено ! + Имя источника данных не заполнено ! SQL is empty ! - SQL запрос пустой ! + SQL запрос пустой ! Datasource with name: "%1" already exists ! - Источник данных с именем: "%1" уже существует ! + Источник данных с именем: "%1" уже существует ! Datasource with name %1 already exist - Источник данных с именем: "%1" уже существует + Источник данных с именем: "%1" уже существует Attention - Внимание + Внимание Connection is not specified - Соединение не указано + Соединение не указано Refresh - Обновить + Обновить Preview - + Предосмотр ... - + Ok - - - - - LimeReport::ScriptBrowser - - Form - - - - Functions - Функции - - - ... - - - - Dialogs - - - - Type - Тип - - - Name - Имя переменной - - - NO CATEGORY - - - - Error - Ошибка - - - Dialog with name: %1 already exists - - - - ui file must cointain QDialog instead QWidget or QMainWindow - - - - wrong file format - - - - - LimeReport::ScriptEngineContext - - Dialog with name: %1 can`t be created - + Ок @@ -1645,34 +1586,34 @@ p, li { white-space: pre-wrap; } Locale - + Локализация CurrencySymbol - + Символ валюты LimeReport::SettingDialog Designer setting - Настройки дизайнера + Настройки дизайнера Default font - Шрифт по умолчанию + Шрифт по умолчанию Grid - Сетка + Сетка Vertical grid step - Вертикальный шаг + Вертикальный шаг сетки Horizontal grid step - Горизонтальный шаг + Горизонтальный шаг сетки @@ -1716,153 +1657,101 @@ p, li { white-space: pre-wrap; } Прижать к нижнему краю + + LimeReport::TextItem + + Edit + Правка + + + Auto height + Автоматическая высота + + + Allow HTML + Разрешить HTML + + + Allow HTML in fields + Разрешить HTML в полях + + + Stretch to max height + Растягивать до максимальной высоты + + + Error + Ошибка + + + TextItem " %1 " already has folower " %2 " + Текстовый элемент "%1" уже следует за "%2" + + + TextItem " %1 " not found ! + Текстовый элемент "%1" не найден! + + LimeReport::TextItemEditor Text Item Editor - Редактор текстового элемента + Редактор текстового элемента Content - Содержимое + Содержимое Functions - Функции + Функции Editor settings - Настройки + Настройки Editor font - Шрифт редактора + Шрифт редактора Cancel - Отмена + Отмена Data - + Данные ... - + Ok - + Ок Ctrl+Return - + Esc - + LimeReport::VariablesHolder variable with name - переменная + переменная already exists !! - уже существует !! + уже существует !! does not exists !! - не существует !! - - - - PreviewReportWindow - - Preview - Предварительный просмотр - - - View - Просмотр - - - Report - Отчет - - - toolBar - Панель инструментов - - - Print - Печать - - - Zoom In - Увеличить - - - Zoom Out - Уменьшить - - - Prior Page - Предыдущая страница - - - Next Page - Следующая страница - - - Close Preview - Закрыть - - - Edit Mode - Режим редактирования - - - Save to file - Записать в файл - - - Show errors - Показать ошибки - - - First Page - Первая страница - - - First page - Первая страница - - - Last Page - Последняя страница - - - Print To PDF - Печать в PDF - - - Page: - Страница: - - - of %1 - из %1 - - - Report file name - Файл отчета - - - PDF file name - Имя PDF файла + не существует !! @@ -1917,7 +1806,7 @@ p, li { white-space: pre-wrap; } alignment - расположение + Выравнивание объекта Barcode Item @@ -1947,10 +1836,6 @@ p, li { white-space: pre-wrap; } Invalid connection! %1 Неверное соединение %1 - - Master datasource "%1" not found! - Главный источник данных "%1" не найден! - Child Подчиненный @@ -2007,237 +1892,61 @@ p, li { white-space: pre-wrap; } File %1 not opened Файл %1 не открыт - - TopLine - Верхняя граница - - - BottomLine - Нижняя граница - - - LeftLine - Левая граница - - - RightLine - Правая граница - content содержимое Master datasource "%1" not found!!! - + Главный источник данных "%1" не найден! Master datasouce "%1" not found! - + Главный источник данных "%1" не найден! bool - + QColor - + QFont - + QImage - + int - + qreal - + QRect - + QRectF - + QString - + Content string is empty - + Строка содержимого пустая Content is empty - - - - Wrong file format - - - - - SQLEditDialog - - Datasource - Источник данных - - - Connection - Соединение - - - Datasource Name - Имя источника - - - Subdetail - Подчиненный - - - Master datasource - Главный источник - - - Subquery mode - Режим подзапроса - - - Filter mode - Режим фильтрации - - - SQL - SQL запрос - - - Preview - Предпросмотр - - - Hide Preview - Скрыть - - - Child datasource - Подчиненный источник - - - Fields map - Поля для связи источников - - - Data preview - Данные - - - Cancel - Отмена - - - Error - Ошибка - - - Datasource Name is empty ! - Имя источника данных не заполнено ! - - - SQL is empty ! - SQL запрос пустой ! - - - Datasource with name: "%1" already exists ! - Источник данных с именем: "%1" уже существует ! - - - Datasource with name %1 already exist - Источник данных с именем: "%1" уже существует - - - Attention - Внимание - - - Connection is not specified - Соединение не указано - - - Refresh - Обновить - - - - SettingDialog - - Designer setting - Настройки дизайнера - - - Default font - Шрифт по умолчанию - - - Grid - Сетка - - - Vertical grid step - Вертикальный шаг - - - Horizontal grid step - Горизонтальный шаг - - - - TextItemEditor - - Text Item Editor - Редактор текстового элемента - - - Content - Содержимое - - - Data - Источники данных - - - Functions - Функции - - - Editor settings - Настройки - - - Editor font - Шрифт редактора - - - Cancel - Отмена - - - - WaitForm - - Wait - Ожидайте - - - Please wait ... - Пожалуста подождите ... + Содержимое пустое