mirror of
https://github.com/python-LimeReport/LimeReport.git
synced 2025-10-01 03:39:48 +03:00
Added ability to create CSV data source
This commit is contained in:
@@ -46,7 +46,6 @@
|
||||
#include "lrconnectiondialog.h"
|
||||
#include "lrreportengine_p.h"
|
||||
#include "lrvariabledialog.h"
|
||||
#include "lrdatabrowsertree.h"
|
||||
|
||||
namespace LimeReport{
|
||||
|
||||
@@ -596,8 +595,8 @@ void DataBrowser::changeQuery(SQLEditResult result)
|
||||
{
|
||||
try {
|
||||
m_report->dataManager()->removeDatasource(result.oldDatasourceName);
|
||||
m_report->dataManager()->addQuery(result.datasourceName, result.sql, result.connectionName);
|
||||
}catch(ReportError &exception){
|
||||
addQuery(result);
|
||||
} catch(ReportError &exception){
|
||||
qDebug()<<exception.what();
|
||||
}
|
||||
}
|
||||
@@ -615,8 +614,8 @@ void DataBrowser::changeSubQuery(SQLEditResult result)
|
||||
{
|
||||
try {
|
||||
m_report->dataManager()->removeDatasource(result.oldDatasourceName);
|
||||
m_report->dataManager()->addSubQuery(result.datasourceName, result.sql, result.connectionName, result.masterDatasource);
|
||||
}catch(ReportError &exception){
|
||||
addSubQuery(result);
|
||||
} catch(ReportError &exception){
|
||||
qDebug()<<exception.what();
|
||||
}
|
||||
}
|
||||
@@ -634,7 +633,31 @@ void DataBrowser::changeProxy(SQLEditResult result)
|
||||
{
|
||||
try {
|
||||
m_report->dataManager()->removeDatasource(result.oldDatasourceName);
|
||||
m_report->dataManager()->addProxy(result.datasourceName,result.masterDatasource,result.childDataSource,result.fieldMap);
|
||||
addProxy(result);
|
||||
} catch(ReportError &exception){
|
||||
qDebug()<<exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void DataBrowser::addCSV(SQLEditResult result)
|
||||
{
|
||||
try {
|
||||
m_report->dataManager()->addCSV(
|
||||
result.datasourceName,
|
||||
result.csv,
|
||||
result.separator,
|
||||
result.firstRowIsHeader
|
||||
);
|
||||
} catch(ReportError &exception){
|
||||
qDebug()<<exception.what();
|
||||
}
|
||||
}
|
||||
|
||||
void DataBrowser::changeCSV(SQLEditResult result)
|
||||
{
|
||||
try {
|
||||
m_report->dataManager()->removeDatasource(result.oldDatasourceName);
|
||||
addCSV(result);
|
||||
} catch(ReportError &exception){
|
||||
qDebug()<<exception.what();
|
||||
}
|
||||
@@ -645,6 +668,7 @@ SQLEditResult::ResultMode DataBrowser::currentDatasourceType(const QString& data
|
||||
if (m_report->dataManager()->isQuery(datasourceName)) return SQLEditResult::Query;
|
||||
if (m_report->dataManager()->isSubQuery(datasourceName)) return SQLEditResult::SubQuery;
|
||||
if (m_report->dataManager()->isProxy(datasourceName)) return SQLEditResult::SubProxy;
|
||||
if (m_report->dataManager()->isCSV(datasourceName)) return SQLEditResult::CSVText;
|
||||
return SQLEditResult::Undefined;
|
||||
}
|
||||
|
||||
@@ -662,12 +686,16 @@ void DataBrowser::applyChanges(SQLEditResult result)
|
||||
case SQLEditResult::SubProxy:
|
||||
changeProxy(result);
|
||||
break;
|
||||
case SQLEditResult::CSVText:
|
||||
changeCSV(result);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
} else {
|
||||
removeDatasource(result.datasourceName);
|
||||
addDatasource(result);
|
||||
}
|
||||
activateItem(result.datasourceName, DataBrowserTree::Table);
|
||||
}
|
||||
|
||||
void DataBrowser::addDatasource(SQLEditResult result)
|
||||
@@ -682,21 +710,32 @@ void DataBrowser::addDatasource(SQLEditResult result)
|
||||
case SQLEditResult::SubProxy:
|
||||
addProxy(result);
|
||||
break;
|
||||
case SQLEditResult::CSVText:
|
||||
addCSV(result);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
activateItem(result.datasourceName, DataBrowserTree::Table);
|
||||
}
|
||||
|
||||
void DataBrowser::activateItem(const QString& name, DataBrowserTree::NodeType type){
|
||||
QTreeWidgetItem* item = findByNameAndType(name, type);
|
||||
item->treeWidget()->setCurrentItem(item);
|
||||
}
|
||||
|
||||
void DataBrowser::addConnectionDesc(ConnectionDesc *connection)
|
||||
{
|
||||
m_report->dataManager()->addConnectionDesc(connection);
|
||||
updateDataTree();
|
||||
activateItem(connection->name(), DataBrowserTree::Connection);
|
||||
}
|
||||
|
||||
void DataBrowser::changeConnectionDesc(ConnectionDesc *connection)
|
||||
{
|
||||
if (connection->autoconnect()) m_report->dataManager()->connectConnection(connection->name());
|
||||
updateDataTree();
|
||||
activateItem(connection->name(), DataBrowserTree::Connection);
|
||||
}
|
||||
|
||||
bool DataBrowser::checkConnectionDesc(ConnectionDesc *connection)
|
||||
|
@@ -37,6 +37,7 @@
|
||||
|
||||
#include "lrreportdesignwidget.h"
|
||||
#include "lrsqleditdialog.h"
|
||||
#include "lrdatabrowsertree.h"
|
||||
|
||||
namespace LimeReport{
|
||||
|
||||
@@ -105,7 +106,8 @@ private:
|
||||
void changeSubQuery(SQLEditResult result);
|
||||
void addProxy(SQLEditResult result);
|
||||
void changeProxy(SQLEditResult result);
|
||||
|
||||
void addCSV(SQLEditResult result);
|
||||
void changeCSV(SQLEditResult result);
|
||||
|
||||
SQLEditResult::ResultMode currentDatasourceType(const QString& datasourceName);
|
||||
void applyChanges(SQLEditResult result);
|
||||
@@ -115,6 +117,7 @@ private:
|
||||
void changeConnectionDesc(ConnectionDesc *connection);
|
||||
bool checkConnectionDesc(ConnectionDesc *connection);
|
||||
bool containsDefaultConnection();
|
||||
void activateItem(const QString &name, DataBrowserTree::NodeType type);
|
||||
|
||||
private:
|
||||
Ui::DataBrowser* ui;
|
||||
|
@@ -86,7 +86,7 @@ QSettings *SQLEditDialog::settings(){
|
||||
|
||||
void SQLEditDialog::setSettings(QSettings *value, bool owned){
|
||||
if (m_settings && m_ownedSettings) delete m_settings;
|
||||
m_settings=value;
|
||||
m_settings = value;
|
||||
m_ownedSettings = owned;
|
||||
}
|
||||
|
||||
@@ -94,24 +94,29 @@ void SQLEditDialog::accept()
|
||||
{
|
||||
SQLEditResult result;
|
||||
|
||||
if (!ui->cbSubdetail->isChecked()){
|
||||
if (ui->tabWidget->currentIndex() == 1){
|
||||
result.resultMode = SQLEditResult::CSVText;
|
||||
} else if (!ui->cbSubdetail->isChecked()){
|
||||
result.resultMode=SQLEditResult::Query;
|
||||
} else {
|
||||
if (ui->rbSubQuery->isChecked()) result.resultMode=SQLEditResult::SubQuery;
|
||||
if (ui->rbSubQuery->isChecked()) result.resultMode = SQLEditResult::SubQuery;
|
||||
else result.resultMode=SQLEditResult::SubProxy;
|
||||
}
|
||||
|
||||
result.connectionName = ConnectionDesc::connectionNameForReport(ui->cbbConnection->currentText());
|
||||
result.datasourceName=ui->leDatasourceName->text();
|
||||
result.sql=ui->textEditSQL->toPlainText();
|
||||
result.dialogMode=m_dialogMode;
|
||||
result.oldDatasourceName=m_oldDatasourceName;
|
||||
result.sql = ui->sqlText->toPlainText();
|
||||
result.csv = ui->csvText->toPlainText();
|
||||
result.dialogMode = m_dialogMode;
|
||||
result.oldDatasourceName = m_oldDatasourceName;
|
||||
result.subdetail = ui->cbSubdetail->isChecked();
|
||||
result.masterDatasource=ui->leMaster->text();
|
||||
result.childDataSource=ui->leChild->text();
|
||||
result.separator = ui->leSeparator->text();
|
||||
result.firstRowIsHeader = ui->cbUseFirstRowAsHeader->isChecked();
|
||||
|
||||
if (ui->fieldsMap->rowCount()>0){
|
||||
for(int i=0;i<ui->fieldsMap->rowCount();++i){
|
||||
if (ui->fieldsMap->rowCount() > 0){
|
||||
for(int i=0; i< ui->fieldsMap->rowCount(); ++i){
|
||||
LimeReport::FieldsCorrelation fieldsCorrelation;
|
||||
fieldsCorrelation.master = ui->fieldsMap->item(i,0) ? ui->fieldsMap->item(i,0)->data(Qt::DisplayRole).toString() : "";
|
||||
fieldsCorrelation.detail = ui->fieldsMap->item(i,1) ? ui->fieldsMap->item(i,1)->data(Qt::DisplayRole).toString() : "";
|
||||
@@ -148,7 +153,7 @@ void SQLEditDialog::hideEvent(QHideEvent *)
|
||||
void SQLEditDialog::check()
|
||||
{
|
||||
if (ui->leDatasourceName->text().isEmpty()) throw LimeReport::ReportError(tr("Datasource Name is empty!"));
|
||||
if (ui->textEditSQL->toPlainText().isEmpty() && (!ui->rbProxy) ) throw LimeReport::ReportError(tr("SQL is empty!"));
|
||||
if (ui->sqlText->toPlainText().isEmpty() && (!ui->rbProxy) ) throw LimeReport::ReportError(tr("SQL is empty!"));
|
||||
if (m_dialogMode==AddMode){
|
||||
if (m_datasources->containsDatasource(ui->leDatasourceName->text())){
|
||||
throw LimeReport::ReportError(QString(tr("Datasource with name: \"%1\" already exists!")).arg(ui->leDatasourceName->text()));
|
||||
@@ -180,10 +185,12 @@ void SQLEditDialog::setDataSources(LimeReport::DataSourceManager *dataSources, Q
|
||||
m_datasources=dataSources;
|
||||
if (!datasourceName.isEmpty()){
|
||||
ui->cbSubdetail->setEnabled(true);
|
||||
initQueryMode();
|
||||
m_oldDatasourceName=datasourceName;
|
||||
ui->leDatasourceName->setText(datasourceName);
|
||||
ui->textEditSQL->setText(dataSources->queryText(datasourceName));
|
||||
ui->sqlText->setText(dataSources->queryText(datasourceName));
|
||||
if (dataSources->isQuery(datasourceName)){
|
||||
initQueryMode();
|
||||
}
|
||||
if (dataSources->isSubQuery(datasourceName)){
|
||||
initSubQueryMode();
|
||||
ui->leMaster->setText(dataSources->subQueryByName(datasourceName)->master());
|
||||
@@ -201,6 +208,12 @@ void SQLEditDialog::setDataSources(LimeReport::DataSourceManager *dataSources, Q
|
||||
curIndex++;
|
||||
}
|
||||
}
|
||||
if (dataSources->isCSV(datasourceName)){
|
||||
ui->csvText->setPlainText(dataSources->csvByName(datasourceName)->csvText());
|
||||
ui->leSeparator->setText(dataSources->csvByName(datasourceName)->separator());
|
||||
ui->cbUseFirstRowAsHeader->setChecked(dataSources->csvByName(datasourceName)->firstRowIsHeader());
|
||||
initCSVMode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -254,6 +267,7 @@ void SQLEditDialog::on_pbAddField_clicked()
|
||||
ui->fieldsMap->setRowCount(ui->fieldsMap->rowCount()+1);
|
||||
}
|
||||
|
||||
|
||||
void SQLEditDialog::initQueryMode()
|
||||
{
|
||||
ui->gbSQL->setVisible(true);
|
||||
@@ -264,6 +278,7 @@ void SQLEditDialog::initQueryMode()
|
||||
ui->cbSubdetail->setChecked(false);
|
||||
ui->leMaster->setVisible(false);
|
||||
ui->lbMaster->setVisible(false);
|
||||
ui->tabWidget->removeTab(1);
|
||||
}
|
||||
|
||||
void SQLEditDialog::initSubQueryMode()
|
||||
@@ -278,6 +293,7 @@ void SQLEditDialog::initSubQueryMode()
|
||||
ui->leMaster->setVisible(true);
|
||||
ui->leMaster->setEnabled(true);
|
||||
ui->lbMaster->setVisible(true);
|
||||
ui->tabWidget->removeTab(1);
|
||||
}
|
||||
|
||||
void SQLEditDialog::initProxyMode()
|
||||
@@ -293,6 +309,12 @@ void SQLEditDialog::initProxyMode()
|
||||
ui->leMaster->setEnabled(true);
|
||||
ui->lbMaster->setVisible(true);
|
||||
ui->cbSubdetail->setEnabled(false);
|
||||
ui->tabWidget->removeTab(1);
|
||||
}
|
||||
|
||||
void SQLEditDialog::initCSVMode()
|
||||
{
|
||||
ui->tabWidget->removeTab(0);
|
||||
}
|
||||
|
||||
void SQLEditDialog::slotPreviewData()
|
||||
@@ -303,7 +325,7 @@ void SQLEditDialog::slotPreviewData()
|
||||
}
|
||||
m_previewModel = m_datasources->previewSQL(
|
||||
ConnectionDesc::connectionNameForReport(ui->cbbConnection->currentText()),
|
||||
ui->textEditSQL->toPlainText(),
|
||||
ui->sqlText->toPlainText(),
|
||||
ui->leMaster->text()
|
||||
);
|
||||
if (m_previewModel){
|
||||
|
@@ -77,6 +77,7 @@ private slots:
|
||||
void initQueryMode();
|
||||
void initSubQueryMode();
|
||||
void initProxyMode();
|
||||
void initCSVMode();
|
||||
void slotPreviewData();
|
||||
void slotHidePreview();
|
||||
private:
|
||||
@@ -96,17 +97,20 @@ private:
|
||||
};
|
||||
|
||||
struct SQLEditResult{
|
||||
enum ResultMode{Query, SubQuery, SubProxy, Undefined};
|
||||
enum ResultMode{Query, SubQuery, SubProxy, CSVText, Undefined};
|
||||
QString connectionName;
|
||||
QString datasourceName;
|
||||
QString oldDatasourceName;
|
||||
QString sql;
|
||||
QString csv;
|
||||
bool subdetail;
|
||||
ResultMode resultMode;
|
||||
QString masterDatasource;
|
||||
QString childDataSource;
|
||||
SQLEditDialog::SQLDialogMode dialogMode;
|
||||
QList<LimeReport::FieldsCorrelation> fieldMap;
|
||||
QString separator;
|
||||
bool firstRowIsHeader;
|
||||
};
|
||||
|
||||
} // namespace LimeReport
|
||||
|
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>411</width>
|
||||
<height>617</height>
|
||||
<width>422</width>
|
||||
<height>622</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -21,30 +21,6 @@
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Connection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cbbConnection">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
@@ -207,6 +183,15 @@
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="PlaceholderText">
|
||||
<brush brushstyle="NoBrush">
|
||||
<color alpha="128">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</active>
|
||||
<inactive>
|
||||
<colorrole role="WindowText">
|
||||
@@ -344,6 +329,15 @@
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="PlaceholderText">
|
||||
<brush brushstyle="NoBrush">
|
||||
<color alpha="128">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</inactive>
|
||||
<disabled>
|
||||
<colorrole role="WindowText">
|
||||
@@ -481,6 +475,15 @@
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
<colorrole role="PlaceholderText">
|
||||
<brush brushstyle="NoBrush">
|
||||
<color alpha="128">
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</brush>
|
||||
</colorrole>
|
||||
</disabled>
|
||||
</palette>
|
||||
</property>
|
||||
@@ -498,253 +501,351 @@
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbSubdetail">
|
||||
<property name="text">
|
||||
<string>Subdetail</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hlMasterDatasource">
|
||||
<widget class="QTabWidget" name="tabWidget">
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="sqlTab">
|
||||
<attribute name="title">
|
||||
<string>SQL</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<widget class="QLabel" name="lbMaster">
|
||||
<property name="text">
|
||||
<string>Master datasource</string>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Connection</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cbbConnection">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::NoFocus</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbSubdetail">
|
||||
<property name="text">
|
||||
<string>Subdetail</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hlMasterDatasource">
|
||||
<item>
|
||||
<widget class="QLabel" name="lbMaster">
|
||||
<property name="text">
|
||||
<string>Master datasource</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="leMaster">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbSubQuery">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Subquery mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbProxy">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Filter mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbSQL">
|
||||
<property name="title">
|
||||
<string>SQL</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTextEdit" name="sqlText"/>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pbPreview">
|
||||
<property name="text">
|
||||
<string>Preview</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pbHidePreview">
|
||||
<property name="text">
|
||||
<string>Hide Preview</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="leMaster">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
<widget class="QFrame" name="pnlChildDatasource">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hlChildDatasource">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Child datasource</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="leChild"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbFieldsMap">
|
||||
<property name="title">
|
||||
<string>Fields map</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<property name="leftMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="fieldsMap">
|
||||
<property name="columnCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<column/>
|
||||
<column/>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QToolButton" name="pbAddField">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="lrdatabrowser.qrc">
|
||||
<normaloff>:/databrowser/images/add.png</normaloff>:/databrowser/images/add.png</iconset>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="pbDelField">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="lrdatabrowser.qrc">
|
||||
<normaloff>:/databrowser/images/remove.png</normaloff>:/databrowser/images/remove.png</iconset>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbDataPreview">
|
||||
<property name="title">
|
||||
<string>Data preview</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<property name="spacing">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTableView" name="tvPreview"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbSubQuery">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Subquery mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="rbProxy">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Filter mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbSQL">
|
||||
<property name="title">
|
||||
<string>SQL</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTextEdit" name="textEditSQL"/>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pbPreview">
|
||||
<property name="text">
|
||||
<string>Preview</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pbHidePreview">
|
||||
<property name="text">
|
||||
<string>Hide Preview</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QFrame" name="pnlChildDatasource">
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>QFrame::Raised</enum>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="hlChildDatasource">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Child datasource</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="leChild"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbFieldsMap">
|
||||
<property name="title">
|
||||
<string>Fields map</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<property name="leftMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>4</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTableWidget" name="fieldsMap">
|
||||
<property name="columnCount">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<column/>
|
||||
<column/>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||
<item>
|
||||
<widget class="QToolButton" name="pbAddField">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="lrdatabrowser.qrc">
|
||||
<normaloff>:/databrowser/images/add.png</normaloff>:/databrowser/images/add.png</iconset>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="pbDelField">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="lrdatabrowser.qrc">
|
||||
<normaloff>:/databrowser/images/remove.png</normaloff>:/databrowser/images/remove.png</iconset>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gbDataPreview">
|
||||
<property name="title">
|
||||
<string>Data preview</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<property name="spacing">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>2</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTableView" name="tvPreview"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="csvTab">
|
||||
<attribute name="title">
|
||||
<string>CSV</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_9">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Separator</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="leSeparator">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>30</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>;</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbUseFirstRowAsHeader">
|
||||
<property name="text">
|
||||
<string>Use first row as header</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPlainTextEdit" name="csvText"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
@@ -787,39 +888,14 @@
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>leDatasourceName</tabstop>
|
||||
<tabstop>cbSubdetail</tabstop>
|
||||
<tabstop>leMaster</tabstop>
|
||||
<tabstop>rbSubQuery</tabstop>
|
||||
<tabstop>rbProxy</tabstop>
|
||||
<tabstop>textEditSQL</tabstop>
|
||||
<tabstop>leChild</tabstop>
|
||||
<tabstop>fieldsMap</tabstop>
|
||||
<tabstop>pbAddField</tabstop>
|
||||
<tabstop>pbDelField</tabstop>
|
||||
<tabstop>pushButton_2</tabstop>
|
||||
<tabstop>pushButton</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="lrdatabrowser.qrc"/>
|
||||
<include location="lrdatabrowser.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>leDatasourceName</sender>
|
||||
<signal>textChanged(QString)</signal>
|
||||
<receiver>LimeReport::SQLEditDialog</receiver>
|
||||
<slot>slotDataSourceNameEditing()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>259</x>
|
||||
<y>54</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>289</x>
|
||||
<y>32</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>pushButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
|
Reference in New Issue
Block a user