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")); |
|
*********************************/ |
|
} |
|
|