|
var DBFile : String; dbQuery : TClSQLiteQuery; totalIncome : Double; totalExpense : Double; balanceCard : TclProPanel; incomeCard : TclProPanel; expenseCard : TclProPanel;
lblBalance : TclProLabel; lblIncome : TclProLabel; lblExpense : TclProLabel; balanceLbl : TclProLabel; incomeLbl : TclProLabel; expenseLbl : TclProLabel; loginPanel : TclProPanel; dashboardPanel : TclProPanel;
lblLogin : TclProLabel;
edtUser : TclProEdit; edtPassword : TclProEdit;
btnLogin : TclProButton; loadQuery : TCLJSONQuery; clomosyQ1: TCLJSONQuery; listData: TclStringList; SecilenTur: String; Form1: TclForm; lblBaslik: TclLabel; lblType: TclLabel; btnIncome: TclProButton; btnExpense: TclProButton; lblAmount: TclLabel; edtAmount: TclProEdit; lblDescription: TclLabel; edtDescription: TclProEdit; lblDate: TclLabel; dateEdit: TclProDateEdit; btnSave: TclProButton; lblLast: TclLabel; listView: TclProListView; void UpdateDashboard; var Qry : TClSQLiteQuery; typeStr : String; amountStr : String; { try totalIncome = 0; totalExpense = 0;
Qry = Clomosy.DBSQLiteQueryWith('SELECT Transaction_Type, Amount FROM TBLTRANSACTIONS'); Qry.OpenOrExecute; Qry.First;
while(not Qry.EOF) { typeStr = Qry.FieldByName('Transaction_Type').AsString; amountStr = Qry.FieldByName('Amount').AsString;
if(typeStr == 'Gelir') { totalIncome = totalIncome + StrToFloat(amountStr); }
if(typeStr == 'Gider') { totalExpense = totalExpense + StrToFloat(amountStr); }
Qry.Next; }
lblIncome.Text = '🟢 Gelir: ' + FloatToStr(totalIncome) + ' TL'; lblExpense.Text = '🔴 Gider: ' + FloatToStr(totalExpense) + ' TL'; lblBalance.Text = '💰 Bakiye: ' + FloatToStr(totalIncome-totalExpense) + ' TL';
except ShowMessage('Dashboard Hatası: '+LastExceptionMessage); } } void btnIncomeClick; { SecilenTur = 'Gelir'; ShowMessage('İşlem Türü: Gelir'); }
void btnExpenseClick; { SecilenTur = 'Gider'; ShowMessage('İşlem Türü: Gider'); }
void CreateDatabase; { try DBFile = Clomosy.AppFilesPath + 'FINTRACK2.db3';
Clomosy.DBSQLiteConnect(DBFile,'');
Clomosy.DBSQLiteQuery.Sql.Text = 'CREATE TABLE IF NOT EXISTS TBLTRANSACTIONS( TransactionID INTEGER PRIMARY KEY, Transaction_Type TEXT, Amount REAL, Description TEXT, Transaction_Date TEXT )';
Clomosy.DBSQLiteQuery.OpenOrExecute;
except ShowMessage('DB Hatası: '+LastExceptionMessage); } }
void btnLoginClick; { loginPanel.Visible = False; dashboardPanel.Visible = True; } void LoadTransactions; var loadQuery : TCLJSONQuery; { try
loadQuery = Clomosy.DBCloudSQLSelectWith( 'SELECT Transaction_Type, Amount, Description FROM ftTransactions' );
if(loadQuery.Found) { listView.clLoadProListViewDataFromDataset(loadQuery); }
except
ShowMessage( 'Listeleme hata: '+LastExceptionMessage );
} } void btnSaveClick; { if(SecilenTur == '') { ShowMessage('Önce Gelir veya Gider seçiniz.'); Exit; }
if(edtAmount.Text == '') { ShowMessage('Lütfen tutar giriniz.'); Exit; }
try dbQuery = Clomosy.DBSQLiteQueryWith( 'INSERT INTO TBLTRANSACTIONS '+ '(Transaction_Type,Transaction_Date,Description,Amount) VALUES ('+ QuotedStr(SecilenTur)+','+ QuotedStr(dateEdit.DateStr)+','+ QuotedStr(edtDescription.Text)+','+ edtAmount.Text+');' );
dbQuery.OpenOrExecute;
ShowMessage('Kayıt başarıyla eklendi.');
edtAmount.Text = ''; edtDescription.Text = ''; SecilenTur = '';
except ShowMessage('Kayıt Hatası: '+LastExceptionMessage); }
} { Form1 = TclForm.Create(Self); loginPanel = Form1.AddNewProPanel(Form1,'loginPanel'); loginPanel.Align = alClient; dashboardPanel = Form1.AddNewProPanel(Form1,'dashboardPanel'); dashboardPanel.Align = alClient; balanceCard = Form1.AddNewProPanel(dashboardPanel,'balanceCard'); balanceCard.Align = alTop; balanceCard.Height = 80; balanceCard.Margins.Top = 10; balanceCard.Margins.Left = 10; balanceCard.Margins.Right = 10;
lblBalance = Form1.AddNewProLabel(balanceCard,'lblBalance','💰 Bakiye: 0 TL'); lblBalance.Align = alCenter; lblBalance.clProSettings.FontSize = 22; lblBalance.SetclProSettings(lblBalance.clProSettings);
incomeCard = Form1.AddNewProPanel(dashboardPanel,'incomeCard'); incomeCard.Align = alTop; incomeCard.Height = 60; incomeCard.Margins.Left = 10; incomeCard.Margins.Right = 10;
lblIncome = Form1.AddNewProLabel(incomeCard,'lblIncome','🟢 Gelir: 0 TL'); lblIncome.Align = alCenter; lblIncome.clProSettings.FontSize = 18; lblIncome.SetclProSettings(lblIncome.clProSettings);
expenseCard = Form1.AddNewProPanel(dashboardPanel,'expenseCard'); expenseCard.Align = alTop; expenseCard.Height = 60; expenseCard.Margins.Left = 10; expenseCard.Margins.Right = 10;
lblExpense = Form1.AddNewProLabel(expenseCard,'lblExpense','🔴 Gider: 0 TL'); lblExpense.Align = alCenter; lblExpense.clProSettings.FontSize = 18; lblExpense.SetclProSettings(lblExpense.clProSettings);
lblLogin = Form1.AddNewProLabel(loginPanel,'lblLogin','💰 FINTRACK'); lblLogin.Align = alTop; lblLogin.Height = 90; lblLogin.Margins.Top = 45; lblLogin.clProSettings.FontSize = 30; lblLogin.clProSettings.FontHorzAlign = palCenter; lblLogin.clProSettings.TextSettings.Font.Style = [fsBold]; lblLogin.SetclProSettings(lblLogin.clProSettings);
edtUser = Form1.AddNewProEdit(loginPanel,'edtUser','Kullanıcı Adı'); edtUser.Align = alTop; edtUser.Height = 55; edtUser.Margins.Left = 35; edtUser.Margins.Right = 35; edtUser.Margins.Top = 35;
edtPassword = Form1.AddNewProEdit(loginPanel,'edtPassword','Şifre'); edtPassword.Align = alTop; edtPassword.Height = 55; edtPassword.Margins.Left = 35; edtPassword.Margins.Right = 35; edtPassword.Margins.Top = 15; edtPassword.Password = True;
btnLogin = Form1.AddNewProButton(loginPanel,'btnLogin','GİRİŞ YAP'); btnLogin.Align = alTop; btnLogin.Height = 55; btnLogin.Margins.Left = 35; btnLogin.Margins.Right = 35; btnLogin.Margins.Top = 25; btnLogin.clProSettings.FontSize = 17; btnLogin.clProSettings.TextSettings.Font.Style = [fsBold]; btnLogin.SetclProSettings(btnLogin.clProSettings);
Form1.AddNewEvent(btnLogin,tbeOnClick,'btnLoginClick');
lblBaslik = Form1.AddNewLabel(dashboardPanel, 'lblBaslik', 'Gelir - Gider Takip'); lblBaslik.Align = alTop; lblBaslik.Height = 50; lblBaslik.StyledSettings = ssFamily; lblBaslik.TextSettings.Font.Size = 22;
lblType = Form1.AddNewLabel(dashboardPanel, 'lblType', 'Islem Turu'); lblType.Align = alTop; lblType.Height = 30;
btnIncome = Form1.AddNewProButton(dashboardPanel,'btnIncome','Gelir'); btnIncome.Align = alTop; btnIncome.Height = 45; Form1.AddNewEvent(btnIncome, tbeOnClick, 'btnIncomeClick');
btnExpense = Form1.AddNewProButton(dashboardPanel, 'btnExpense', 'Gider'); btnExpense.Align = alTop; btnExpense.Height = 45; Form1.AddNewEvent(btnExpense, tbeOnClick, 'btnExpenseClick');
lblAmount = Form1.AddNewLabel(dashboardPanel, 'lblAmount', 'Tutar'); lblAmount.Align = alTop; lblAmount.Height = 25;
edtAmount = Form1.AddNewProEdit(dashboardPanel,'edtAmount','Tutar Giriniz'); edtAmount.Align = alTop; edtAmount.Height = 45; edtAmount.clTypeOfField = taFloat;
lblDescription = Form1.AddNewLabel(dashboardPanel, 'lblDescription', 'Aciklama'); lblDescription.Align = alTop; lblDescription.Height = 25;
edtDescription = Form1.AddNewProEdit(dashboardPanel,'edtDescription','Açıklama Giriniz'); edtDescription.Align = alTop; edtDescription.Height = 45;
lblDate = Form1.AddNewLabel(dashboardPanel, 'lblDate', 'Tarih'); lblDate.Align = alTop; lblDate.Height = 25;
dateEdit = Form1.AddNewProDateEdit(dashboardPanel,'dateEdit'); dateEdit.Align = alTop; dateEdit.Height = 45;
btnSave = Form1.AddNewProButton(dashboardPanel,'btnSave','Kaydet'); btnSave.Align = alTop; btnSave.Height = 50; Form1.AddNewEvent(btnSave, tbeOnClick, 'btnSaveClick');
lblLast = Form1.AddNewLabel(dashboardPanel, 'lblLast', 'Son Islemler'); lblLast.Align = alTop; lblLast.Height = 30; listView = Form1.AddNewProListView(dashboardPanel,'listView'); listView.Align = alClient;
listView.clProSettings.ViewType = lvList; listView.SetclProSettings(listView.clProSettings); loginPanel.Visible = True; dashboardPanel.Visible = False; CreateDatabase;
Form1.Run; } Kayıt Hatası: [FireDAC][Phys][SQLite] ERROR: database is locked
https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v4513226cdae34746b4dedf0b4dfa099e1781791509496" integrity="sha512-ZE9pZaUXND66v380QUtch/5sE9tPFh2zg45pR2PB0CVkCtOREv2AJKkSidISWkysEuQ0EH8faUU5du78bx87UQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
|