#flutter #sqflite
Вопрос:
Я начал изучать flutter и в настоящее время работаю над проектом простой работы с CRUD с помощью SQFLITE. где у меня есть таблица транзакций,в которой есть 6 столбцов (идентификатор,тип транзакции,дата,Категория,Сумма, примечания).итак, я хочу получить сумму столбца общей суммы с помощью StreamBuilder. Я пытался, но это не сработает для меня, кто-нибудь, пожалуйста, помогите мне здесь, я так рад…..
ВОТ МОЯ МОДЕЛЬ—
class TransactionModel {
int id;
String type;
String date;
String categoryid;
String amount;
String notes;
TransactionModel(
{this.id,
this.type,
this.date,
this.categoryid,
this.amount,
this.notes});
factory TransactionModel.fromDatabaseJson(Map<String, dynamic> data) =>
TransactionModel(
id: data['id'],
type: data['type'],
date: data['date'],
categoryid: data['categoryid'],
amount: data['amount'],
notes: data['notes']);
Map<String, dynamic> toDatabaseJson() => {
'id': this.id,
'type': this.type,
'date': this.date,
'categoryid': this.categoryid,
'amount': this.amount,
'notes': this.notes
};
}
ВОТ МОЯ БУДУЩАЯ ФУНКЦИЯ ДЛЯ ВЫЧИСЛЕНИЯ СУММЫ В СТОЛБЦЕ ОБЩАЯ СУММА —-
Future getsumofIncome(String type) async {
final db = await dbProvider.database;
var incomeresult = await db.rawQuery(
"SELECT SUM(amount) FROM $transactionTABLE WHERE type = ?", ["$type"]);
int incomevalue = incomeresult[0]['SUM(amount)'];
print('Result of Income Sum Amount $incomevalue');
// print(incomeresult.toList());
return incomevalue;
}
ВОТ МОЯ ЧАСТЬ ПОЛЬЗОВАТЕЛЬСКОГО ИНТЕРФЕЙСА ДЛЯ ОТОБРАЖЕНИЯ ВЫБОРКИ ДАННЫХ ИЗ ФАЙЛА БАЗЫ ДАННЫХ. Я использую для этого StreamBuilder, но он не работает в соответствии со мной…..
Позвольте мне упомянуть здесь, что я также использую шаблон блока здесь для своего проекта, я просто поставил свою логическую функцию выше, вы проверяете, как я вычисляю значение…
stream: transactionBloc.getsumofIncome('Income'),
builder: (BuildContext context,
AsyncSnapshot<TransactionModel> incomesnapshot) {
if (incomesnapshot.hasData) {
return Container(
padding: EdgeInsets.all(10.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
'Income',
style: TextStyle(fontSize: 20.0),
),
Text(
incomesnapshot != null
? '₹ ${incomesnapshot.toString()}'
: '0',
style:
TextStyle(fontSize: 20.0, color: Colors.green),
),
],
),
);
} else {
CircularProgressIndicator();
}
}),