Валюта в базе хранится в копейках, т.е. int
Сделал модель, для отображения нужной колонки в денежном формате:
class SqlTableModel : public QSqlTableModel
{
public:
SqlTableModel(QObject *parent = 0){
}
private:
QVariant data(const QModelIndex &item, int role) const{
QVariant value = QSqlTableModel::data(item, role);
if (!value.isValid())
return QVariant();
if (role == Qt::DisplayRole){
//Кусок, который нужно заменить
//-----------------------------
if (item.column() == 4) //Вместо 4 - любой другой
return money(value.toInt());
//-----------------------------
}
return value;
}
QString money(int sum = 0){
int a = 0, b = 0;
QString value, dec;
a = sum / 100;
b = sum % 100;
if (b == 0){
dec = ".00";
} else if (b > 0 && b < 10){
dec = ".0" + QVariant(b).toString();
} else if (b >= 10 && b < 100) {
dec = "." + QVariant(b).toString();
}
value = QVariant(a).toString() + dec;
return value;
}
};
#endif // SQLMODEL_H
Вопрос:
Как выбирать несколько столбцов и разные функции, кроме расширенного условия в
Это нужно только для отображения. Думал про setData. Думал, но не смог реализовать