Sayfayı Yazdır | Pencereyi Kapat

tclprodate ile filtreleme

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1076
Tarih: 12 Temmuz 2025 Saat 19:39
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: tclprodate ile filtreleme
Mesajı Yazan: kenan
Konu: tclprodate ile filtreleme
Mesaj Tarihi: 10 Temmuz 2025 Saat 15:54
void MyMQTTPublishReceived;
{
  if(MyMQTT.ReceivedAlright)
  {
  Plasiyer = Clomosy.CLParseJSON(MyMQTT.ReceivedMessage,'plasiyer');
  Urun = Clomosy.CLParseJSON(MyMQTT.ReceivedMessage,'urun_adi');
  Tutar = Clomosy.CLParseJSON(MyMQTT.ReceivedMessage,'Satış');
  Tur = Clomosy.CLParseJSON(MyMQTT.ReceivedMessage,'satis_turu');
  AAciklama = Clomosy.CLParseJSON(MyMQTT.ReceivedMessage,'Aciklama');
  currentDate = date.DateStr;
  GridSales.BeginUpdate;
  
  for(j=0 to 5)
  {
    Case j of
    {
      0:GridSales.Cells[j,i] = Plasiyer;
      1:GridSales.Cells[j,i] = urun;
      2:GridSales.Cells[j,i] = Tutar;
      3:GridSales.Cells[j,i] = Tur;
      4:GridSales.Cells[j,i] = currentDate;
      5:GridSales.Cells[j,i] = AAciklama;
     
    }
  }
  i=i+1;
  GridSales.EndUpdate;
  
  
  }

  
  
}
{
  yoneticiForm = TclForm.Create(self);
  yoneticiForm.SetFormColor('#ebebeb', '#cfcfcf', clGVertical);
  yoneticiForm.LytTopBar.Visible = True;
  date = yoneticiForm.AddNewProDateEdit(yoneticiForm,'date');
  GridSales = yoneticiForm.AddNewProGrid(yoneticiForm, 'GridSales');
  GridSales.Align = alClient;
  GridSales.ColumnCount = 5;
  GridSales.RowCount = 10;
  GridSales.Cells[0,0] = 'Plasiyer_adı';
  GridSales.Cells[1,0] = 'urun_adi';
  GridSales.Cells[2,0] = 'acıklama';
  GridSales.Cells[3,0] = 'satis_turu'; 
  GridSales.Cells[4,0] = 'Date';
  GridSales.Cells[5,0] = 'acıklama';
  GridSales.Options.Selection.Mode = smSingleCell;
  i=1;
  
  MyMQTT =yoneticiForm.addnewMQTTConnection(yoneticiForm,'MyMQTT');
  MyMQTT.Channel = 'Chat';
  MyMQTT.Connect;
  
 
  
  
  
  yoneticiForm.AddNewEvent(MyMQTT,tbeOnMQTTPublishReceived,'MyMQTTPublishReceived');
  
  yoneticiForm.Run;
}

merhaba  2 tane tarih seçerek, bu 2 tarih arasında kalan tarihleri gride'de nasıl  filtreleyebilirim
mesela 10.03.2025 ile 13.03.2025 arasında olan tarihleri gridde göstermesi için ne yapmalıyım?



Cevaplar:
Mesajı Yazan: cerenn
Mesaj Tarihi: 10 Temmuz 2025 Saat 16:24
Merhaba Kenan TCLProDateEdit kullanabilirsin https://www.docs.clomosy.com/index.php?title=TClProDateEdit" rel="nofollow - https://www.docs.clomosy.com/index.php?title=TClProDateEdit senin için daha kolay olur.Kullanıcıdan 2 kez tarih alır bu tarihleri SQLite için kodda yazdığın select sorgusuna gönderirsin,gridde gösterirsin.SQLite date olarak YYYY-MM-DD formatında veri beklediği için dönüşümlerde buna dikkat etmeni öneririm.Eğer date tarihin sabitse de direkt kodda Select sorgusunda belirtirsin gridde ona göre gösterilir.İyi çalışmalar.


Mesajı Yazan: Mahmutdmr
Mesaj Tarihi: 10 Temmuz 2025 Saat 17:17
Merhaba ,

TclProDate bileşeniyle tarih filtreleme işlemini projemde denemiştim fakat tarih formatı uyuşmazlığı nedeniyle sağlıklı bir şekilde çalıştıramadım.

Bu yüzden alternatif bir çözüm olarak TclProEdit bileşenleri ile iki adet tarih alanı (Başlangıç ve Bitiş) oluşturdum.

Ardından, veritabanındaki verileri gride aktaran prosedürün içerisine şu şekilde tarihleri aldım:

  BaslangicTarihi = DateEditBaslangic.Text
  BitisTarihi     = DateEditBitis.Text

Daha sonra SQL sorgusuna bu tarih filtrelerini dahil ettim:

if (BaslangicTarihi <> '')
    SQLText = SQLText + ' AND date(c.checkin_time) >= "' + BaslangicTarihi + '" '
  if (BitisTarihi <> '')
    SQLText = SQLText + ' AND date(c.checkin_time) <= "' + BitisTarihi + '" '

  SQLText = SQLText + 'ORDER BY c.checkin_time DESC';

ile de ilgili sütuna erişim sağlayıp filtrelemeyi aktif edebilirsin. Bu alternatif çözümde özellikle kayıt ettiğin ve edite yazılan tarih formatı uyuşması gerekiyor. 

Aynı zamanda başlagıç ve bitiş tclproeditleri için ortak bir prosedür oluştur ve prosedürün içerine veri tabanında ki verileri gride yansıttığın prosedür ismini yaz ki  ilgili kısmı tetiklensin ve gridi yenilesin.
Umarım yardımcı olabilmişimdir, iyi çalışmalar dilerim.




Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net