Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Genel İşlemler
  Aktif Konular Aktif Konular RSS - Grid ekranı ve Filtreleme sorunu
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

Grid ekranı ve Filtreleme sorunu

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Muammer Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 24 Haziran 2025
Konum: Konya/meram
Durum: Aktif Değil
Puanlar: 22
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Muammer Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Grid ekranı ve Filtreleme sorunu
    Gönderim Zamanı: 15 Saat 27 Dakika Önce Saat 10:05
Bu kod Dashboard ekranının kodu.Grid ekranı üzerinde  bulunan sqlden çekilen tabloda alt alta aynı satır var ve bu yüzden de sqldeki tablonun ilk satırı görünmüyor.
Filtreleme butonuna basarken de veriler filtrelenmiyor

var
  MyForm: TclForm;          
  MyGrid: TclStringGrid;    
  Lbl_Baslik: TClProLabel;  
  LblUyari: TClProLabel;    
  DtEdt1: TClProDateEdit;   
  Edt_StokKodu: TclProEdit; 
  Lbl_Tarih: TClProLabel;   
  Lbl_StokKodu: TClProLabel;
  Btn_Filtrele, Btn_TedarikciSiparisTakibi, Btn_QR, Btn_YeniUrunEkle, Btn_SatisFire: TClProButton;
  selectQuery: TClSqlQuery;
  Str_StokKodu: String;
  Str_DateEdit: String;
  Edt_QRText: TclProEdit;
  QRImage: TclProImage;
  qrUrl, fullQRText: String;
  Unit2: TclUnit;
  Unit3: TclUnit;
  Unit4, Unit5, Unit6: TclUnit;
  mainPnl: TclProPanel;
  leftPanel: TclProPanel;
  rightPanel: TclProPanel;
  Edt_FilterText: TclProEdit;  // Filtreleme için yeni metin kutusu
  Dt_FilterDate: TClProDateEdit;  // Filtreleme için tarih seçme alanı
  filterText, filterDate: String;

void GoToUnit2;
{
  MyForm.clShow;
  Unit2.UnitName = 'qrolustur';
  Unit2.CallerForm = MyForm;
  Unit2.Run;
}
void GoToUnit3;
{
  MyForm.clShow;
  Unit3.UnitName = 'UrunEkle';
  Unit3.CallerForm = MyForm;
  Unit3.Run;
}
void GoToUnit4;
{
  MyForm.clShow;
  Unit4.UnitName = 'SatisFire';
  Unit4.CallerForm = MyForm;
  Unit4.Run;
}
// Tedarikçi Sipariş Takibi sayfasına yönlendirecek fonksiyon
void GoToUnit5;
{
  MyForm.clShow;  
  Unit5.UnitName = 'TedarikciSiparisTakibi';  
  Unit5.CallerForm = MyForm;  
  Unit5.Run;  
}


void SetupGridColumns;
{
  MyGrid.Cells[0, 0] = 'Urun Kodu';
  MyGrid.Cells[1, 0] = 'Urun Adı';
  MyGrid.Cells[2, 0] = 'Stok Miktarı';
  MyGrid.Cells[3, 0] = 'Kritik Seviye';
  MyGrid.Cells[4, 0] = 'Depo Yeri ID';
  MyGrid.Cells[5, 0] = 'Birim Fiyat';
  MyGrid.Cells[6, 0] = 'Oluşturma Tarihi';

  MyGrid.Columns[0].Width = 100;
  MyGrid.Columns[1].Width = 150;
  MyGrid.Columns[2].Width = 100;
  MyGrid.Columns[3].Width = 100;
  MyGrid.Columns[4].Width = 100;
  MyGrid.Columns[5].Width = 100;
  MyGrid.Columns[6].Width = 120;
}

void AddDataToGrid;
{
  try
    selectQuery.SQL.Text = 'SELECT UrunKodu, UrunAdi, StokMiktari, KritikSeviye, DepoYeriID, BirimFiyat, OlusturmaTarihi FROM TBLSTOKSB';
    selectQuery.Open;
    
    if (selectQuery.Found)
    {
      MyForm.RemoveGridBinding('myLink');
      MyForm.AddNewGridBinding(MyGrid, selectQuery, 'myLink');
      SetupGridColumns;
    }
    else
    {
      ShowMessage('Kayıt bulunamadı!');
    }
  except
    ShowMessage('Hata oluştu: ' + LastExceptionMessage);
  }
}

void OnFilterClick;
{

  filterText = Edt_FilterText.Text;
  filterDate = DtEdt1.Text;

  try
    selectQuery.SQL.Text = 'SELECT UrunKodu, UrunAdi, StokMiktari, KritikSeviye, DepoYeriID, BirimFiyat, OlusturmaTarihi ' +
                           'FROM TBLSTOKSB WHERE 1=1 ';

    if (filterText <> '') 
    {
      selectQuery.SQL.Text = selectQuery.SQL.Text + ' AND UrunKodu LIKE ''%' + filterText + '%'' ';
    }

    if (filterDate <> '') 
    {
      selectQuery.SQL.Text = selectQuery.SQL.Text + ' AND CAST(OlusturmaTarihi AS DATE) = ''' + filterDate + ''' ';
    }

    selectQuery.Open;

    if selectQuery.Found 
    {
      MyForm.RemoveGridBinding('myLink');
      MyForm.AddNewGridBinding(MyGrid, selectQuery, 'myLink');
      SetupGridColumns;
    }
    else 
    {
      ShowMessage('Filtre sonucu bulunamadı!');
    }
  except
    ShowMessage('Filtreleme hatası: ' + LastExceptionMessage);
  }
}


void GenerateQRClick;
{
  fullQRText = 'StokKodu:' + Edt_StokKodu.Text + '+Tarih:' + DtEdt1.Text + '+Not:' + Edt_QRText.Text;
}

{
  // Ana formu oluşturur ve arka plan rengini ayarlar
  MyForm = TclForm.Create(Self);
  MyForm.SetFormColor('#c4c4c4', '#c4c4c4', clGVertical);
  Unit2=TclUnit.Create;
  Unit3=TclUnit.Create;
  Unit4=TclUnit.Create;
  Unit5=TclUnit.Create;
  Unit6=TclUnit.Create;

  // Dashboard başlığını oluşturur ve stil ayarlarını yapar
  Lbl_Baslik = MyForm.AddNewProLabel(MyForm, 'Lbl_Baslik', 'STOK YÖNETİM DASHBOARD');
  Lbl_Baslik.Align = alTop;
  Lbl_Baslik.Height = 60;
  Lbl_Baslik.Margins.Top = 30;
  Lbl_Baslik.clProSettings.FontSize = 26;
  Lbl_Baslik.clProSettings.FontColor = clAlphaColor.clHexToColor('#fc0000');
  Lbl_Baslik.clProSettings.FontVertAlign = palCenter;
  Lbl_Baslik.clProSettings.FontHorzAlign = palCenter;
  Lbl_Baslik.SetclProSettings(Lbl_Baslik.clProSettings);

  // Left Panel: Sol paneli oluşturuyoruz
  leftPanel = MyForm.AddNewProPanel(MyForm, 'leftPanel');
  leftPanel.Align = alLeft;
  leftPanel.Width = 200;  // Ekranın 4'te 1'ini kaplar
  leftPanel.Margins.Top = 20;
  leftPanel.Margins.Left = 20;
  leftPanel.Margins.Right = 20;

  // Right Panel: Sağ paneli oluşturuyoruz
  rightPanel = MyForm.AddNewProPanel(MyForm, 'rightPanel');
  rightPanel.Align = alClient;  // Sağ panel, kalan tüm alanı alacak
  rightPanel.Margins.Top = 20;
  rightPanel.Margins.Left = 20;
  rightPanel.Margins.Right = 20;

  // Sol paneldeki butonlar (alt alta)
  Btn_QR = MyForm.AddNewProButton(leftPanel, 'Btn_QR', 'QR OLUŞTUR');
  Btn_QR.Align = alTop;
  Btn_QR.Margins.Top = 10;
  Btn_QR.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#fc0000');
  Btn_QR.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_QR.clProSettings.FontSize = 16;
  Btn_QR.SetclProSettings(Btn_QR.clProSettings);
  MyForm.AddNewEvent(Btn_QR, tbeOnClick, 'GenerateQRClick');

  Btn_TedarikciSiparisTakibi = MyForm.AddNewProButton(leftPanel, 'Btn_TedarikciSiparisTakibi', 'Tedarikçi Sipariş Takibi');
  Btn_TedarikciSiparisTakibi.Align = alTop;
  Btn_TedarikciSiparisTakibi.Margins.Top = 10;
  Btn_TedarikciSiparisTakibi.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
  Btn_TedarikciSiparisTakibi.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_TedarikciSiparisTakibi.clProSettings.FontSize = 16;
  Btn_TedarikciSiparisTakibi.SetclProSettings(Btn_TedarikciSiparisTakibi.clProSettings);

  Btn_YeniUrunEkle = MyForm.AddNewProButton(leftPanel, 'Btn_YeniUrunEkle', 'Yeni Ürün Ekle');
  Btn_YeniUrunEkle.Align = alTop;
  Btn_YeniUrunEkle.Margins.Top = 10;
  Btn_YeniUrunEkle.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
  Btn_YeniUrunEkle.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_YeniUrunEkle.clProSettings.FontSize = 16;
  Btn_YeniUrunEkle.SetclProSettings(Btn_YeniUrunEkle.clProSettings);

  Btn_SatisFire = MyForm.AddNewProButton(leftPanel, 'Btn_SatisFire', 'Satış ve Fire İşlemleri');
  Btn_SatisFire.Align = alTop;
  Btn_SatisFire.Margins.Top = 10;
  Btn_SatisFire.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#4CAF50');
  Btn_SatisFire.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_SatisFire.clProSettings.FontSize = 16;
  Btn_SatisFire.SetclProSettings(Btn_SatisFire.clProSettings);


  // Sağ paneldeki filtreleme butonu ve grid
  Edt_FilterText = MyForm.AddNewProEdit(rightPanel, 'Edt_FilterText', '');
  Edt_FilterText.Align = alTop;
  Edt_FilterText.Height = 30;
  Edt_FilterText.Width = 150;
  Edt_FilterText.Margins.Top = 10;
  Edt_FilterText.SetclProSettings(Edt_FilterText.clProSettings);

  Lbl_Tarih = MyForm.AddNewProLabel(rightPanel, 'Lbl_Tarih', 'Tarih Seç');
  Lbl_Tarih.Align = alTop;
  Lbl_Tarih.Height = 30;
  Lbl_Tarih.clProSettings.FontSize = 12;
  Lbl_Tarih.clProSettings.FontColor = clAlphaColor.clHexToColor('#080808');
  Lbl_Tarih.SetclProSettings(Lbl_Tarih.clProSettings);

  DtEdt1 = MyForm.AddNewProDateEdit(rightPanel, 'DtEdt1');
  DtEdt1.Align = alTop;
  DtEdt1.Height = 30;
  DtEdt1.Width = 150;
  DtEdt1.Margins.Top = 10;
  DtEdt1.SetclProSettings(DtEdt1.clProSettings);

  Btn_Filtrele = MyForm.AddNewProButton(rightPanel, 'Btn_Filtrele', 'Filtrele');
  Btn_Filtrele.Align = alTop;
  Btn_Filtrele.Height = 50;
  Btn_Filtrele.Width = 150;
  Btn_Filtrele.Margins.Top = 10;
  Btn_Filtrele.clProSettings.RoundHeight = 10;
  Btn_Filtrele.clProSettings.RoundWidth = 10;
  Btn_Filtrele.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#fc0000');
  Btn_Filtrele.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  Btn_Filtrele.clProSettings.FontSize = 12;
  Btn_Filtrele.clProSettings.BorderWidth = 2;
  Btn_Filtrele.SetclProSettings(Btn_Filtrele.clProSettings);
  MyForm.AddNewEvent(Btn_Filtrele, tbeOnClick, 'OnFilterClick');

  MyGrid = MyForm.AddNewStringGrid(rightPanel, 'MyGrid');
  MyGrid.Align = alClient;
  MyGrid.ReadOnly = True;

  // SQL bağlantısı
  selectQuery = TClSqlQuery.Create(nil);
  Clomosy.DBSQLServerConnect('SQL Server', 'DESKTOP-E2HF8JM\SQLEXPRESS', 'sa', '1', 'StokYonetim', 1433);
  selectQuery.Connection = Clomosy.DBSQLServerConnection;

  // Verileri çek
  AddDataToGrid;
  MyForm.AddNewEvent(Btn_QR, tbeOnClick, 'GoToUnit2');
  MyForm.AddNewEvent(Btn_YeniUrunEkle, tbeOnClick, 'GoToUnit3');
  MyForm.AddNewEvent(Btn_SatisFire, tbeOnClick, 'GoToUnit4');
  MyForm.AddNewEvent(Btn_TedarikciSiparisTakibi, tbeOnClick, 'GoToUnit5');
  
  MyForm.clSetWindowState(fwsMaximized);

  MyForm.Run;
}

Yukarı Dön
yalperen Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 17 Haziran 2025
Konum: Konya
Durum: Aktif Değil
Puanlar: 12
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (1) Teşekkürler(1)   Alıntı yalperen Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Saat 46 Dakika Önce Saat 10:46
Merhaba,
Grid üzerinde iki adet aynı satır olmaması için SetupGridColumns void'ini   
  MyGrid.Columns[0].Header = 'Urun Kodu';
  MyGrid.Columns[1].Header = 'Urun Adı';
  MyGrid.Columns[2].Header = 'Stok Miktarı';
  MyGrid.Columns[3].Header = 'Kritik Seviye';
  MyGrid.Columns[4].Header = 'Depo Yeri ID';
  MyGrid.Columns[5].Header = 'Birim Fiyat';
  MyGrid.Columns[6].Header = 'Oluşturma Tarihi';
bu şekilde düzeltirsen çalışacaktır. Sütundaki başlıkları değiştirmek için MyGrid.Columns.Header kullanılıyor.
İyi Çalışmalar
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,031 Saniyede Yüklendi.