Subversion Repositories OpenInventory

Compare Revisions

Ignore whitespace Rev 230 → Rev 231

/trunk/DBViewer/mainwindow.cpp
1219,13 → 1219,18
int k=0;
QStringList fieldsNamesList;// ñïèñîê èì¸í ïîëåé òàáëèöû
QList<TField> FieldsList; //ñïèñîê ïîëåé êëàññà
 
QMap<QString, TField> fieldsMap;// çäåñü áóäåì â êà÷åñòâå êëþ÷åé õðàíèòü èìåíà ïîëåé, à â êà÷åñòâå çíà÷åíèé - íåïîñðåäñòâåííî ñîîòâåòñòâóþùèå ïîëÿ
QMap <QString, QString> fieldsValues;// çäåñü áóäåì õðàíèòü çíà÷åíèÿ ïîëåé, êëþ÷àìè áóäóò ñëóæèòü èìåíà ïîëåé
FieldsList = getFieldList(classID); // ïîëó÷àåì ñïèñîê ïîëåé
 
 
 
 
 
if(FieldsList.count()>0){
for(int i=0; i < FieldsList.count(); i++){ //ñîñòàâèì ïàðû (èìÿ ïîëÿ-òèï ïîëÿ)
fieldsTypesList.insert(FieldsList.at(i).FieldName, FieldsList.at(i).FieldType);
fieldsMap.insert(FieldsList.at(i).FieldName, FieldsList.at(i));
}
 
// fieldsNamesList = fieldsTypesList.keys(); // ïîëó÷èì ñïèñîê èìåí ïîëåé
1333,11 → 1338,27
QString tmp_string;
sql_str.clear();
 
QTextTable *table = cursor->insertTable(fieldsNamesList.count()-2, 2);// ñîçäàäèì òàáëèöó äëÿ ïîëåé êëàññà, êðîìå ïåðâûõ äâóõ (ID è íàçâàíèå îáúåêòà)
// // // QTextTable *table = cursor->insertTable(fieldsNamesList.count()-2, 2);// ñîçäàäèì òàáëèöó äëÿ ïîëåé êëàññà, êðîìå ïåðâûõ äâóõ (ID è íàçâàíèå îáúåêòà)
 
// cursor->insertText(tr("Ïðîâåðêà òàáëèöû"));
 
 
/************************
QTextTable *table = cursor->insertTable(fieldsNamesList.count(), 2);// ñîçäàäèì òàáëèöó äëÿ ïîëåé êëàññà, êðîìå ïåðâûõ äâóõ (ID è íàçâàíèå îáúåêòà)
 
************************/
 
 
 
 
 
 
 
 
 
 
// cursor->insertText(tr("Ïðîâåðêà òàáëèöû"));
 
 
// *cursor = table->cellAt(0,1).firstCursorPosition();
// cursor->insertText(tr("Ïðîâåðêà òàáëèöû 2"));
// *cursor = table->cellAt(1,1).lastCursorPosition();
1356,7 → 1377,104
// cursor->insertText(tr("1 \t 2"));
// cursor->insertText(tr("3 \t 4"));
 
for(int i=0; i < fieldsNamesList.count(); i++)
{
 
 
if (fieldsNamesList.at(i)== tr("Icon") || fieldsNamesList.at(i)== tr("ID")) { tmp_string = tr("íå âîçìîæíî îòîáðàçèòü");
continue;
}
 
QString fieldType;
fieldType = fieldsTypesList.value(fieldsNamesList.at(i)); //îïðåäåëÿåì òèï ïîëÿ
if(fieldType == tr("pointer")) // åñëè òèï ïîëÿ - óêàçàòåëü
{
QSqlQuery q_tmp;
QString sql_str;
// QString val_str;
QString parent_class_id;// èäåíòèôèêàòîð êëàññà, íà îáúåêòû êîòîðîãî ññûëàåòñÿ ïîëå
QString parent_class_inctance; // õðàíèëèùå îáúåêòîâ ðîäèòåëüñêîãî êëàññà
bool ok;
TField field_tmp;
field_tmp = fieldsMap.value(fieldsNamesList.at(i));
parent_class_id = field_tmp.DefaultValue;
if (parent_class_id.isEmpty()) continue; // íå ñìîãëè îïðåäåëèòü id ðîäèòåëüñêîãî êëàññà
else parent_class_inctance = getClassInctance(parent_class_id);
if (parent_class_inctance.isEmpty()) continue; // íå ñìîãëè îïðåäåëèòü id ðîäèòåëüñêîãî êëàññà
sql_str = tr("select * from `");
sql_str.append(parent_class_inctance);
sql_str.append(tr("` where `ID` = '"));
sql_str.append(q.record().value(i).asString());
sql_str.append(tr("'"));
ok = q_tmp.prepare(sql_str);
ok = q_tmp.exec();
 
if (!ok) {
QString debug_str;
debug_str.append(tr("ôóí showObjects(): Database Error "));
debug_str.append(tr(" õð: "));
debug_str.append(inctance);
debug_str.append(tr(" ô: "));
debug_str.append(filtr);
debug_str.append(q.lastError().text());
QMessageBox::critical( // Äèàëîã ñ ñîîáùåíèåì îá îøèáêå.
this, // Ðîäèòåëüñêèé âèäæåò.
QObject::tr("ôóíêöèÿ showObjects(): Database Error"), // Çàãîëîâîê.
debug_str
// q.lastError().text()
); // Òåêñò ñîîáùåíèÿ.
return;
}
 
tmp_string.clear();
while (q_tmp.next()){
tmp_string = q_tmp.record().value(1).asString();
 
}
 
fieldsValues.insert(fieldsNamesList.at(i), tmp_string);// äîáàâëÿåì çíà÷åíèå â ñïèñîê çíà÷åíèé
 
continue;// ïåðåõîäèì ê ñëåäóþùåé èíòåðàöèè
 
} // äàëüøå åñëè òèï ïîëÿ íå pointer
 
if(fieldType == tr("file")){ // åñëè òèï ïîëÿ - ôàéë, íå áóäåì îòîáðàæàòü
 
tmp_string = tr("íå âîçìîæíî îòîáðàçèòü");
continue;
 
}
 
tmp_string = q.record().value(i).asString(); // ýòî íå èêîíêà, íå ôàéë è íå ïîëå-óêàçàòåëü, ïðîñòî îòîáðàæàåì çíà÷åíèå
fieldsValues.insert(fieldsNamesList.at(i), tmp_string);// äîáàâëÿåì çíà÷åíèå â ñïèñîê çíà÷åíèé
 
 
}
 
 
 
 
 
 
QTextTable *table = cursor->insertTable(fieldsValues.count(), 2);// ñîçäàäèì òàáëèöó äëÿ ïîëåé êëàññà, êðîìå ïåðâûõ äâóõ (ID è íàçâàíèå îáúåêòà)
for(int i=0; i < fieldsValues.count(); i++){ // ïðîïóñòèì ïîëÿ: ID è ïîëå, ñîäåðæàùåå èìÿ îáúåêòà (îíî è òàê óæå îòîáðàæåíî)
QStringList keys_list = fieldsValues.keys();
QStringList values_list = fieldsValues.values();
*cursor = table->cellAt(i,0).firstCursorPosition();// ñòðîêà i-òàÿ, ñòîëáåö ïåðâûé
cursor->insertText(keys_list.at(i));//ñþäà çàíîñèì èìÿ ïîëÿ
*cursor = table->cellAt(i,1).firstCursorPosition();// ñòðîêà i-òàÿ, ñòîëáåö âòîðîé
cursor->insertText(values_list.at(i));//ñþäà çàíîñèì èìÿ ïîëÿ
}
 
cursor->movePosition(QTextCursor::End);//âûõîäèì èç òàáëèöû
cursor->insertText( tr("\n"));
 
 
 
/******************************
 
table = cursor->insertTable(fieldsNamesList.count(), 2);// ñîçäàäèì òàáëèöó äëÿ ïîëåé êëàññà, êðîìå ïåðâûõ äâóõ (ID è íàçâàíèå îáúåêòà)
 
for(int i=2; i < fieldsNamesList.count(); i++){ // ïðîïóñòèì ïîëÿ: ID è ïîëå, ñîäåðæàùåå èìÿ îáúåêòà (îíî è òàê óæå îòîáðàæåíî)
// if (i !=icon_field_index) tmp_string = q.record().value(i).asString(); // åñëè ýòî íå èêîíêà, òî ñ÷èòûâàåì çíà÷åíèå êàê ñòðîêó
if (i !=icon_field_index) tmp_string = q.record().value(i).asString(); // åñëè ýòî íå èêîíêà, òî ñ÷èòûâàåì çíà÷åíèå êàê ñòðîêó
1375,8 → 1493,21
}
 
//// }
 
 
 
 
 
 
 
 
 
 
cursor->movePosition(QTextCursor::End);//âûõîäèì èç òàáëèöû
cursor->insertText( tr("\n"));
 
*********************************/
 
}