var
PersonelKayit: Tclform;
PersonelScroll: TCLVertScrollBox;
// Paneller
pnlPersUst, pnlPersOrta, pnlPersAlt, pnlPerAktiflik, pnlPerAdres, pnlPersButton, pnlPersListe: TclProPanel;
// Üst Panel Bileşenleri
lblAd, lblSoyad, lblTCKN, lblDogumTarihi, lblTelefon, lblEposta: TClProLabel;
txtAd, txtSoyad, txtTCKN, txtDogumTarihi, txtTelefon, txtEposta: TclProEdit;
// Orta Panel Bileşenleri
lblAdres: TClProLabel;
txtAdres: TCLMemo;
lblPozisyon, lblMaas, lblAktif: TClProLabel;
cmbPozisyon: TClProComboBox;
txtMaas: TclProEdit;
chkAktif: TClProCheckBox;
// Button Panel
btnTemizle, btnKaydet, btnGuncelle, btnSil: TClProButton;
// Liste Panel
lblPersonelListesi: TClProLabel;
ListViewPersonel: TClProListView;
btnListeyiYenile: TClProButton;
// Veritabanı ve diğer değişkenler
Qry: TClSQLiteQuery;
database, password: String;
seciliPersonelID: Integer;
// Veritabanı bağlantısı ve tablo oluşturma
void VeritabaniBaglantisi;
{
database = Clomosy.AppFilesPath + '"C:\Users\emre\Desktop\CloPersonel\otelyonetimimobil.db3"';
password = '';
try
Clomosy.DBSQLiteConnect(database, password);
Clomosy.DBSQLiteQuery.SQL.Text = 'CREATE TABLE IF NOT EXISTS Personel('+
'PersonelID INTEGER PRIMARY KEY AUTOINCREMENT,'+
'Ad TEXT,'+
'Soyad TEXT,'+
'TCKN TEXT,'+
'DogumTarihi TEXT,'+
'Telefon TEXT,'+
'Eposta TEXT,'+
'Adres TEXT,'+
'PozisyonID INTEGER,'+
'PozisyonAdi TEXT,'+
'Maas REAL,'+
'AktifMi INTEGER);';
Clomosy.DBSQLiteQuery.OpenOrExecute;
except
ShowMessage('Veritabanı hatası: ' + LastExceptionMessage);
}
}
// Formu temizleme
void Temizle;
{
txtAd.Text = '';
txtSoyad.Text = '';
txtTCKN.Text = '';
txtDogumTarihi.Text = 'GG/AA/YYYY';
txtTelefon.Text = '';
txtEposta.Text = '';
txtAdres.Text = '';
cmbPozisyon.ItemIndex = -1;
txtMaas.Text = '';
chkAktif.Checked = False;
seciliPersonelID = 0;
}
// Pozisyon adından ID alma
// Veri kaydetme
void VeriKaydet;
{
/*
if (txtAd.Text = '') or (txtSoyad.Text = '') or (txtTCKN.Text = '') or (cmbPozisyon.ItemIndex = -1) then
begin
ShowMessage('Zorunlu alanları doldurunuz! (Ad, Soyad, TCKN, Pozisyon)');
Exit;
}
*/
try
Clomosy.DBSQLiteQuery.SQL.Text = 'INSERT INTO Personel (Ad, Soyad, TCKN, DogumTarihi, Telefon, Eposta, Adres, PozisyonID, PozisyonAdi, Maas, AktifMi) VALUES ('+
QuotedStr(txtAd.Text) + ',' +
QuotedStr(txtSoyad.Text) + ',' +
QuotedStr(txtTCKN.Text) + ',' +
QuotedStr(txtDogumTarihi.Text) + ',' +
QuotedStr(txtTelefon.Text) + ',' +
QuotedStr(txtEposta.Text) + ',' +
QuotedStr(txtAdres.Text) + ',' +
//IntToStr(PozisyonIDAl(cmbPozisyon.Items[cmbPozisyon.ItemIndex])) + ',' +
QuotedStr(cmbPozisyon.Items[cmbPozisyon.ItemIndex]) + ',' +
txtMaas.Text + ',' +
//IntToStr(Integer(chkAktif.Checked)) + ')';
Clomosy.DBSQLiteQuery.OpenOrExecute;
ShowMessage('Personel başarıyla kaydedildi!');
Temizle;
//ListeyiYenile;
except
ShowMessage('Kayıt hatası: ' + LastExceptionMessage);
}
}
/*
// Veri güncelleme
void VeriGuncelle;
{
if seciliPersonelID = 0 then
begin
ShowMessage('Önce bir personel seçiniz!');
Exit;
end
try
Clomosy.DBSQLiteQuery.SQL.Text = 'UPDATE Personel SET '+
'Ad = ' + QuotedStr(txtAd.Text) + ',' +
'Soyad = ' + QuotedStr(txtSoyad.Text) + ',' +
'TCKN = ' + QuotedStr(txtTCKN.Text) + ',' +
'DogumTarihi = ' + QuotedStr(txtDogumTarihi.Text) + ',' +
'Telefon = ' + QuotedStr(txtTelefon.Text) + ',' +
'Eposta = ' + QuotedStr(txtEposta.Text) + ',' +
'Adres = ' + QuotedStr(txtAdres.Text) + ',' +
//'PozisyonID = ' + IntToStr(PozisyonIDAl(cmbPozisyon.Items[cmbPozisyon.ItemIndex])) + ',' +
'PozisyonAdi = ' + QuotedStr(cmbPozisyon.Items[cmbPozisyon.ItemIndex]) + ',' +
'Maas = ' + txtMaas.Text + ',' +
//'AktifMi = ' + IntToStr(Integer(chkAktif.Checked)) +
' WHERE PersonelID = ' + IntToStr(seciliPersonelID);
Clomosy.DBSQLiteQuery.OpenOrExecute;
ShowMessage('Personel başarıyla güncellendi!');
Temizle;
//ListeyiYenile;
except
ShowMessage('Güncelleme hatası: ' + LastExceptionMessage);
}
}
// Veri silme
void VeriSil;
{
/*
if seciliPersonelID = 0 then
begin
ShowMessage('Önce bir personel seçiniz!');
Exit;
end
if Clomosy.AppQuestion('Bu personeli silmek istediğinize emin misiniz?', 'Uyarı') then
begin
try
Clomosy.DBSQLiteQuery.SQL.Text = 'DELETE FROM Personel WHERE PersonelID = ' + IntToStr(seciliPersonelID);
Clomosy.DBSQLiteQuery.OpenOrExecute;
ShowMessage('Personel başarıyla silindi!');
Temizle;
ListeyiYenile;
except
ShowMessage('Silme hatası: ' + LastExceptionMessage);
}
}
}
/* Listeyi yenileme
void ListeyiYenile;
{
try
Qry = Clomosy.DBSQLiteQueryWith('SELECT PersonelID, Ad || '' '' || Soyad as AdSoyad, TCKN, Telefon, PozisyonAdi FROM Personel ORDER BY Ad, Soyad');
Qry.OpenOrExecute;
ListViewPersonel.clLoadListViewDataFromDataset(Qry);
except
ShowMessage('Listeleme hatası: ' + LastExceptionMessage);
}
}
void ListeElemanSecildi;//(TClComponent Sender)
{
if ListViewPersonel.ItemIndex <> -1 then
begin
seciliPersonelID = Qry.FieldByName('PersonelID').AsInteger;
try
Clomosy.DBSQLiteQuery.SQL.Text = 'SELECT * FROM Personel WHERE PersonelID = ' + IntToStr(seciliPersonelID);
Clomosy.DBSQLiteQuery.OpenOrExecute;
if not Clomosy.DBSQLiteQuery.EOF then
begin
txtAd.Text = Clomosy.DBSQLiteQuery.FieldByName('Ad').AsString;
txtSoyad.Text = Clomosy.DBSQLiteQuery.FieldByName('Soyad').AsString;
txtTCKN.Text = Clomosy.DBSQLiteQuery.FieldByName('TCKN').AsString;
txtDogumTarihi.Text = Clomosy.DBSQLiteQuery.FieldByName('DogumTarihi').AsString;
txtTelefon.Text = Clomosy.DBSQLiteQuery.FieldByName('Telefon').AsString;
txtEposta.Text = Clomosy.DBSQLiteQuery.FieldByName('Eposta').AsString;
txtAdres.Text = Clomosy.DBSQLiteQuery.FieldByName('Adres').AsString;
// Pozisyon seçimi
for i := 0 to cmbPozisyon.Items.Count-1 do
begin
if cmbPozisyon.Items = Clomosy.DBSQLiteQuery.FieldByName('PozisyonAdi').AsString then
begin
cmbPozisyon.ItemIndex = i;
Break;
}
}
txtMaas.Text = FloatToStr(Clomosy.DBSQLiteQuery.FieldByName('Maas').AsFloat);
//chkAktif.Checked = Boolean(Clomosy.DBSQLiteQuery.FieldByName('AktifMi').AsInteger);
}
except
ShowMessage('Veri okuma hatası: ' + LastExceptionMessage);
}
}
}
*/
{
PersonelKayit = Tclform.Create(self);
PersonelKayit.SetFormColor('#83a09f', '', clGNone);
// Veritabanı bağlantısı
VeritabaniBaglantisi;
// Scroll Box
PersonelScroll = PersonelKayit.AddNewVertScrollBox(PersonelKayit, 'PersonelScroll');
PersonelScroll.Align = alClient;
// ÜST PANEL - Temel Bilgiler
pnlPersUst = PersonelKayit.AddNewProPanel(PersonelScroll, 'pnlPersUst');
pnlPersUst.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E3B4E');
pnlPersUst.SetclProSettings(pnlPersUst.clProSettings);
pnlPersUst.Align = alTop;
pnlPersUst.Height = 200;
// Ad
lblAd = PersonelKayit.AddNewProLabel(pnlPersUst, 'lblAd', 'Ad');
lblAd.clProSettings.FontColor = clAlphaColor.clWhite;
lblAd.clProSettings.FontSize = 12;
lblAd.clProSettings.TextSettings.Font.Style = [fsBold];
lblAd.Height = 25;
lblAd.Align = alTop;
txtAd = PersonelKayit.AddNewProEdit(pnlPersUst, 'txtAd', '');
txtAd.Height = 30;
txtAd.Align = alTop;
// Soyad
lblSoyad = PersonelKayit.AddNewProLabel(pnlPersUst, 'lblSoyad', 'Soyad');
lblSoyad.clProSettings.FontColor = clAlphaColor.clWhite;
lblSoyad.clProSettings.FontSize = 12;
lblSoyad.clProSettings.TextSettings.Font.Style = [fsBold];
lblSoyad.Height = 25;
lblSoyad.Align = alTop;
txtSoyad = PersonelKayit.AddNewProEdit(pnlPersUst, 'txtSoyad', '');
txtSoyad.Height = 30;
txtSoyad.Align = alTop;
// TCKN
lblTCKN = PersonelKayit.AddNewProLabel(pnlPersUst, 'lblTCKN', 'TC Kimlik No');
lblTCKN.clProSettings.FontColor = clAlphaColor.clWhite;
lblTCKN.clProSettings.FontSize = 12;
lblTCKN.clProSettings.TextSettings.Font.Style = [fsBold];
lblTCKN.Height = 25;
lblTCKN.Align = alTop;
txtTCKN = PersonelKayit.AddNewProEdit(pnlPersUst, 'txtTCKN', '');
txtTCKN.Height = 30;
txtTCKN.Align = alTop;
// ORTA PANEL - İletişim Bilgileri
pnlPersOrta = PersonelKayit.AddNewProPanel(PersonelScroll, 'pnlPersOrta');
pnlPersOrta.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E3B4E');
pnlPersOrta.SetclProSettings(pnlPersOrta.clProSettings);
pnlPersOrta.Align = alTop;
pnlPersOrta.Height = 180;
// Doğum Tarihi
lblDogumTarihi = PersonelKayit.AddNewProLabel(pnlPersOrta, 'lblDogumTarihi', 'Doğum Tarihi');
lblDogumTarihi.clProSettings.FontColor = clAlphaColor.clWhite;
lblDogumTarihi.clProSettings.FontSize = 12;
lblDogumTarihi.clProSettings.TextSettings.Font.Style = [fsBold];
lblDogumTarihi.Height = 25;
lblDogumTarihi.Align = alTop;
txtDogumTarihi = PersonelKayit.AddNewProEdit(pnlPersOrta, 'txtDogumTarihi', 'GG/AA/YYYY');
txtDogumTarihi.Height = 30;
txtDogumTarihi.Align = alTop;
// Telefon
lblTelefon = PersonelKayit.AddNewProLabel(pnlPersOrta, 'lblTelefon', 'Telefon');
lblTelefon.clProSettings.FontColor = clAlphaColor.clWhite;
lblTelefon.clProSettings.FontSize = 12;
lblTelefon.clProSettings.TextSettings.Font.Style = [fsBold];
lblTelefon.Height = 25;
lblTelefon.Align = alTop;
txtTelefon = PersonelKayit.AddNewProEdit(pnlPersOrta, 'txtTelefon', '');
txtTelefon.Height = 30;
txtTelefon.Align = alTop;
// E-posta
lblEposta = PersonelKayit.AddNewProLabel(pnlPersOrta, 'lblEposta', 'E-posta');
lblEposta.clProSettings.FontColor = clAlphaColor.clWhite;
lblEposta.clProSettings.FontSize = 12;
lblEposta.clProSettings.TextSettings.Font.Style = [fsBold];
lblEposta.Height = 25;
lblEposta.Align = alTop;
txtEposta = PersonelKayit.AddNewProEdit(pnlPersOrta, 'txtEposta', '');
txtEposta.Height = 30;
txtEposta.Align = alTop;
// ALT PANEL - İş Bilgileri
pnlPersAlt = PersonelKayit.AddNewProPanel(PersonelScroll, 'pnlPersAlt');
pnlPersAlt.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E3B4E');
pnlPersAlt.SetclProSettings(pnlPersAlt.clProSettings);
pnlPersAlt.Align = alTop;
pnlPersAlt.Height = 135;
// Pozisyon
lblPozisyon = PersonelKayit.AddNewProLabel(pnlPersAlt, 'lblPozisyon', 'Pozisyon');
lblPozisyon.clProSettings.FontColor = clAlphaColor.clWhite;
lblPozisyon.clProSettings.FontSize = 12;
lblPozisyon.clProSettings.TextSettings.Font.Style = [fsBold];
lblPozisyon.Height = 25;
lblPozisyon.Align = alTop;
cmbPozisyon = PersonelKayit.AddNewProComboBox(pnlPersAlt, 'cmbPozisyon');
cmbPozisyon.Items.Add('Resepsiyonist');
cmbPozisyon.Items.Add('Kat Hizmetlisi');
cmbPozisyon.Items.Add('Aşçı');
cmbPozisyon.Items.Add('Güvenlik Görevlisi');
cmbPozisyon.Items.Add('Temizlik Görevlisi');
cmbPozisyon.Height = 30;
cmbPozisyon.Align = alTop;
// Maaş
lblMaas = PersonelKayit.AddNewProLabel(pnlPersAlt, 'lblMaas', 'Maaş');
lblMaas.clProSettings.FontColor = clAlphaColor.clWhite;
lblMaas.clProSettings.FontSize = 12;
lblMaas.clProSettings.TextSettings.Font.Style = [fsBold];
lblMaas.Height = 25;
lblMaas.Align = alTop;
txtMaas = PersonelKayit.AddNewProEdit(pnlPersAlt, 'txtMaas', '');
txtMaas.Height = 30;
txtMaas.Align = alTop;
// Aktif mi?
pnlPerAktiflik = PersonelKayit.AddNewProPanel(PersonelScroll, 'pnlPerAktiflik');
pnlPerAktiflik.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E3B4E');
pnlPerAktiflik.SetclProSettings(pnlPerAktiflik.clProSettings);
pnlPerAktiflik.Align = alTop;
pnlPerAktiflik.Height = 50;
lblAktif = PersonelKayit.AddNewProLabel(pnlPerAktiflik, 'lblAktif', 'Aktif Çalışan Mı? ');
lblAktif.clProSettings.FontColor = clAlphaColor.clWhite;
lblAktif.clProSettings.FontSize = 12;
lblAktif.clProSettings.TextSettings.Font.Style = [fsBold];
lblAktif.Height = 25;
lblAktif.Align = alTop;
chkAktif = PersonelKayit.AddNewCheckBox(pnlPerAktiflik, 'chkAktif', '');
chkAktif.Align = alTop;
chkAktif.Height = 25;
// Adres
pnlPerAdres = PersonelKayit.AddNewProPanel(PersonelScroll, 'pnlPerAdres');
pnlPerAdres.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E3B4E');
pnlPerAdres.SetclProSettings(pnlPerAdres.clProSettings);
pnlPerAdres.Align = alTop;
pnlPerAdres.Height = 150;
lblAdres = PersonelKayit.AddNewProLabel(pnlPerAdres, 'lblAdres', 'Adres');
lblAdres.clProSettings.FontColor = clAlphaColor.clWhite;
lblAdres.clProSettings.FontSize = 12;
lblAdres.clProSettings.TextSettings.Font.Style = [fsBold];
lblAdres.Height = 25;
lblAdres.Align = alTop;
txtAdres = PersonelKayit.AddNewMemo(pnlPerAdres, 'txtAdres', '');
txtAdres.Height = 125;
txtAdres.Align = alTop;
// Buton Paneli
pnlPersButton = PersonelKayit.AddNewProPanel(PersonelScroll, 'pnlPersButton');
pnlPersButton.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E3B4E');
pnlPersButton.SetclProSettings(pnlPersButton.clProSettings);
pnlPersButton.Align = alTop;
pnlPersButton.Height = 60;
btnTemizle = PersonelKayit.AddNewProButton(pnlPersButton, 'btnTemizle', 'Temizle');
btnTemizle.Align = alLeft;
btnTemizle.Width = pnlPersButton.Width / 4;
PersonelKayit.AddNewEvent(btnTemizle, tbeOnClick, 'Temizle');
btnKaydet = PersonelKayit.AddNewProButton(pnlPersButton, 'btnKaydet', 'Kaydet');
btnKaydet.Align = alLeft;
btnKaydet.Width = pnlPersButton.Width / 4;
PersonelKayit.AddNewEvent(btnKaydet, tbeOnClick, 'VeriKaydet');
btnGuncelle = PersonelKayit.AddNewProButton(pnlPersButton, 'btnGuncelle', 'Güncelle');
btnGuncelle.Align = alLeft;
btnGuncelle.Width = pnlPersButton.Width / 4;
PersonelKayit.AddNewEvent(btnGuncelle, tbeOnClick, 'VeriGuncelle');
btnSil = PersonelKayit.AddNewProButton(pnlPersButton, 'btnSil', 'Sil');
btnSil.Align = alLeft;
btnSil.Width = pnlPersButton.Width / 4;
PersonelKayit.AddNewEvent(btnSil, tbeOnClick, 'VeriSil');
// Liste Paneli
pnlPersListe = PersonelKayit.AddNewProPanel(PersonelScroll, 'pnlPersListe');
pnlPersListe.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2E3B4E');
pnlPersListe.SetclProSettings(pnlPersListe.clProSettings);
pnlPersListe.Align = alClient;
pnlPersListe.Height = 300;
lblPersonelListesi = PersonelKayit.AddNewProLabel(pnlPersListe, 'lblPersonelListesi', 'Personel Listesi');
lblPersonelListesi.clProSettings.FontColor = clAlphaColor.clWhite;
lblPersonelListesi.clProSettings.FontSize = 14;
lblPersonelListesi.clProSettings.TextSettings.Font.Style = [fsBold];
lblPersonelListesi.Align = alTop;
lblPersonelListesi.Height = 30;
btnListeyiYenile = PersonelKayit.AddNewProButton(pnlPersListe, 'btnListeyiYenile', 'Listeyi Yenile');
btnListeyiYenile.Align = alTop;
btnListeyiYenile.Height = 30;
PersonelKayit.AddNewEvent(btnListeyiYenile, tbeOnClick, 'ListeyiYenile');
// Personel Listesi
ListViewPersonel = PersonelKayit.AddNewProListView(pnlPersListe, 'ListViewPersonel');
ListViewPersonel.Align = alClient;
ListViewPersonel.clProSettings.ViewType = lvList;
ListViewPersonel.clProSettings.ColCount = 1;
ListViewPersonel.clProSettings.ItemHeight = 100;
ListViewPersonel.clProSettings.ItemSpace = 10;
ListViewPersonel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF');
ListViewPersonel.clProSettings.BorderWidth = 2;
ListViewPersonel.clProSettings.RoundHeight = 5;
ListViewPersonel.clProSettings.RoundWidth = 5;
ListViewPersonel.SetclProSettings(ListViewPersonel.clProSettings);
PersonelKayit.AddNewEvent(ListViewPersonel, tbeOnItemClick, 'ListeElemanSecildi');
// Başlangıçta listeyi doldur
//ListeyiYenile;
PersonelKayit.Run;
}