Хранилища Subversion OpenInventory

Редакция

Редакция 56 | Редакция 60 | К новейшей редакции | Авторство | Сравнить с предыдущей | Последнее изменение | Открыть журнал | Скачать | RSS

#include "classeditor.h"
#include "ui_classeditor.h"


ClassEditor::ClassEditor(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::ClassEditor)
{
    ui->setupUi(this);
//    settdialog = new SettingsDialog(this);
    settdialog.show();
    sql.setDatabaseName(tr("an_db"));

    field = new TableField(tr("Ñîòðóäíèêè"), this);
    field->setNotNull(true);
    field->setDefaultValue(tr("ñîòðóäíèê"));

    table = new SqlTable (tr("NewTable"), this);
    table->setName(tr("NewTable"));
    table->fields().at(0)->setNotNull(true);
    if (!(table->setPrimaryKey(tr("ID")))) {
         ui->label_3->setText(table->lastError());
    }
    else  ui->label_3->setText(table->primaryKey());
    table->append(field);

    field = new TableField(tr("Êîìïüþòåðû"), this);
    field->setNotNull(true);
    field->setDefaultValue(tr("êîìïüþòåð"));
    table->append(field);

    field = new TableField(tr("Ìîíèòîðû"), this);
    field->setNotNull(true);
    field->setDefaultValue(tr("ìîíèòîð"));
    table->append(field);

    field = new TableField(tr("Êîëè÷åñòâî (øòóê)"), this);
    field->setNotNull(true);
    field->setType(tr("INTEGER"));
    field->setDefaultValue(tr("1"));
    table->append(field);

    field = new TableField(tr("Äåíü ðîæäåíèÿ"), this);
    field->setNotNull(false);
    field->setType(tr("DATE"));
    field->setDefaultValue(tr("NULL"));
    table->append(field);

    ui->label_2->setText(table->name());
    ui->label->setText(table->fields().at(0)->sqlString());
    ui->label_4->setText(table->sqlString());
   ////// ui->lineEdit->insert(table->sqlString());


    /**********************************************

    QTextDocument *document;
    // = ui->textEdit->document();
    QTextCursor *cursor;

    document = ui->textEdit->document();
    cursor = new QTextCursor(document);
    cursor->movePosition(QTextCursor::Start);
QTextCharFormat format(cursor->charFormat());
//format.setFontFamily("Courier");
format.setFontFamily("Arial");
//format.setFontItalic(false);

format.setFontWeight(QFont::Normal);
QTextCharFormat boldFormat = format;
boldFormat.setFontWeight(QFont::Bold);

QTextCharFormat italicFormat = format;
//format.setFontFamily("Courier");
//     format.setFontFamily("Arial");
italicFormat.setFontItalic(true);

cursor->insertText(table->sqlString(), format);

****************************************************/


QString errorString;

sql.setDatabaseName(tr("an_db"));
sql.setHostName(tr("localhost"));
sql.setUserName(tr("an"));
sql.setPassword(tr("393939"));

bool ok;
ok = sql.connect();
if (!ok) {
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
                                                                            sql.lasError());         // Òåêñò ñîîáùåíèÿ.

                     }
else {

    QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                    this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                    QObject::tr("Database Connect"),   // Çàãîëîâîê.
                                                    QObject::tr("Ñîåäèíåíèå ñ áàçîé äàííûõ óñïåøíî óñòàíîâëåíî."));         // Òåêñò ñîîáùåíèÿ.





}


ok = sql.createTable(table);
if (!ok) {
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
                                                                            sql.lasError());         // Òåêñò ñîîáùåíèÿ.
         }
else {

    QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                    this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                    QObject::tr("Database Connect"),   // Çàãîëîâîê.
                                                    QObject::tr("Òàáëèöà â áàçå äàííûõ óñïåøíî ñîçäàíà."));         // Òåêñò ñîîáùåíèÿ.
     }





ok = sql.createListOfClassesTable();

if (!ok) {
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
                                                                            sql.lasError());         // Òåêñò ñîîáùåíèÿ.

                     }
else {

    QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                    this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                    QObject::tr("Database Create"),   // Çàãîëîâîê.
                                                    QObject::tr("Áàçà äàííûõ óñïåøíî ñîçäàíà."));         // Òåêñò ñîîáùåíèÿ.
    }




ok = sql.createDescriptionOfClassesTable();

if (!ok) {
                            QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                                            this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                                            QObject::tr("Database Error"),   // Çàãîëîâîê.
                                                                            sql.lasError());         // Òåêñò ñîîáùåíèÿ.

                     }
else {

    QMessageBox::information( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
                                                    this,                      // Ðîäèòåëüñêèé âèäæåò.
                                                    QObject::tr("Database Create"),   // Çàãîëîâîê.
                                                    QObject::tr("Áàçà äàííûõ óñïåøíî ñîçäàíà."));         // Òåêñò ñîîáùåíèÿ.
    }







/////////////////model = new QSqlTableModel(this);
mymodel = new MyModel(this);
modelForDescription = new QSqlTableModel(this);

/////////////////model->setTable(tr("ListOfClasses"));
mymodel->setTable(tr("ListOfClasses"));
modelForDescription->setTable(tr("DescriptionOfClasses"));
modelForDescription->setEditStrategy(QSqlTableModel::OnFieldChange);

/////model->setEditStrategy(QSqlTableModel::OnManualSubmit);

/*
model->setEditStrategy(QSqlTableModel::OnFieldChange);
mymodel->setEditStrategy(QSqlTableModel::OnFieldChange);
*/



//////////////////model->setSort(0, Qt::AscendingOrder);
mymodel->setSort(0, Qt::AscendingOrder);
modelForDescription->setSort(0, Qt::AscendingOrder);


//       model->setFilter(tr("Èäåíòèôèêàòîð_ñèñòåìíîãî_áëîêà = '7' and Èíâåíòàðíûé_íîìåð = 'i09090909'"));
////////////////////model->select();
mymodel->select();
modelForDescription->setFilter(tr("ClassIdentifer = 1"));
modelForDescription->select();


/////////////////////////model->setHeaderData(1, Qt::Horizontal, tr("Èìÿ êëàññà"));
mymodel->setHeaderData(1, Qt::Horizontal, tr("Èìÿ êëàññà"));



////////////////////////model->setHeaderData(2, Qt::Horizontal, tr("Ïñåâäîíèì êëàññà"));
mymodel->setHeaderData(2, Qt::Horizontal, tr("Ïñåâäîíèì êëàññà"));

//ui->tableView->setModel(model);
ui->tableView->setModel(mymodel);
//tableForDescription = new QTableView();
ui->tableView_2->setModel(modelForDescription);
ui->tableView_2->setAlternatingRowColors(true);
ui->tableView_2->resizeColumnsToContents();
//tableForDescription->show();


ui->tableView->setAlternatingRowColors(true);
ui->tableView->resizeColumnsToContents();
//ui->tableView->hideColumn(0);
ui->tableView->hideColumn(3);


//connect(ui->tableView, SIGNAL(clicked(const QModelIndex)), this, SLOT(on_tableView_clicked(const QModelIndex)));
}











ClassEditor::~ClassEditor()
{
    delete ui;
 //    delete field;
   // delete settdialog;
}

void ClassEditor::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}



void  ClassEditor::addNewClass(){

    int row = model->rowCount();

    model->insertRows(row, 1);
    model->setData(model->index(row, 1), tr("New class")); // ïðèñâàèâàåì íîâîå çíà÷åíèå ïîëþ "èìÿ êëàññà"


    // model->setData(model->index(row, 1), tr("Âàñÿ Ïóïê  èí"));
    // model->setData(model->index(row, 2) , tr("Ìóõîñðà  íñê, Çàæîïèíñêèå âûñåëêè ä 1"));


    model->submitAll();

    row = model->rowCount();
    QString tmp_str;
    int i_tmp;
    i_tmp = model->data(model->index(row-1, 0)).toInt();
    tmp_str = model->data(model->index(row-1, 0)).toString(); // ãåíåðèì èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ êëàññà

    tmp_str.append(tr("_Inctance"));
    model->setData(model->index(row-1, 3), tmp_str );  // è çàíîñèì çíà÷åíèå â òàáëèöó

    model->submitAll();
    mymodel->select();


}


void  ClassEditor::addNewClass_new(){

    int row = mymodel->rowCount();

    mymodel->insertRows(row, 1);
    mymodel->setData(mymodel->index(row, 1), QVariant(tr("New classs")), Qt::EditRole); // ïðèñâàèâàåì íîâîå çíà÷åíèå ïîëþ "èìÿ êëàññà"

    mymodel->submitAll();

    row = mymodel->rowCount();
    QString tmp_str1;
    int i_tmp1;
    i_tmp1 = mymodel->data(mymodel->index(row-1, 0)).toInt();
    tmp_str1 = mymodel->data(mymodel->index(row-1, 0)).toString(); // ãåíåðèì èìÿ òàáëèöû-õðàíèëèùà îáúåêòîâ êëàññà

    tmp_str1.append(tr("_Inctance"));
    mymodel->setData(mymodel->index(row-1, 3), QVariant(tmp_str1), Qt::EditRole);  // è çàíîñèì çíà÷åíèå â òàáëèöó

    // model->setData(model->index(row, 1), tr("Âàñÿ Ïóïê  èí"));
    // model->setData(model->index(row, 2) , tr("Ìóõîñðà  íñê, Çàæîïèíñêèå âûñåëêè ä 1"));


    //mymodel->submitAll();

    //row = mymodel->rowCount();


  //mymodel->select();


}


void ClassEditor::on_pushButton_clicked(){
//int i;
//i++;
/////ClassEditor::addNewClass();
ClassEditor::addNewClass_new();
 mymodel->select();
//ui->tableView->setModel(mymodel);

}

void ClassEditor::on_tableView_clicked(const QModelIndex & index ){
    int i, row, column;
    i++;
    row = index.row();
    column = index.column();
   QModelIndex index_tmp;
    QString tmp_str, filter_str;
   index_tmp = ui->tableView->model()->index(row, 0);
   tmp_str = ui->tableView->model()->data(index_tmp).toString();
   ui->label->setText(tmp_str);
   filter_str = tr("ClassIdentifer = ");
   filter_str.append(tmp_str);
   modelForDescription->setFilter(filter_str);
   i++;
}



void ClassEditor::on_pushButton_2_clicked(){
    int i;
    i++;

}

void ClassEditor::on_pushButton_3_clicked(){         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Íîâîå ïîëå"
    int i;
    i++;
}
void ClassEditor::on_pushButton_4_clicked(){         // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü ïîëå"
    int i;
    i++;
}