Sayfayı Yazdır | Pencereyi Kapat

stok takip ürün düzenleme ve ürün silme hatası

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=1548
Tarih: 30 Mayıs 2026 Saat 16:14
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: stok takip ürün düzenleme ve ürün silme hatası
Mesajı Yazan: Ömer Faruk
Konu: stok takip ürün düzenleme ve ürün silme hatası
Mesaj Tarihi: 30 Mayıs 2026 Saat 13:10
Merhabalar Benim bir Stok takip uygulaması projem var. Koddaki hata projeye girince ürün ekledikten sonra düzenlemek için veya silmek için ürünü seçmeme rağmen ürün seçiniz diyor ve eklenen ürün listede yazı kaymış şekilde gözüküyor.
kod:
Var
  anaForm : TclForm;
  edtUrunAdi, edtAdet, edtFiyat : TclEdit;
  lblUrunAdi, lblAdet, lblFiyat : TclLabel;
  btnEkle, btnGuncelle, btnSil : TclButton;
  stokListesi : TclProListView;
  tasarimPanel : TclProListViewDesignerPanel;
  
  MAIN_TEXT, SUB_TEXT : TclProLabel; 
  
  tumUrunlerJson : String; 
  butonPaneli, pnlUrunAdi, pnlAdet, pnlFiyat : TclPanel;
  seciliGuid : String;
  urunSayaci : Integer;

void VerileriYenile;
{
  stokListesi.clearList;
  
  if (tumUrunlerJson <> '')
  {
    stokListesi.clLoadProListViewDataFromDataset(Clomosy.ClDataSetFromJSON('[' + tumUrunlerJson + ']'));
  }
}

void UrunEkle;
Var
  yeniUrunJson : String;
{
  if ((edtUrunAdi.Text == '') || (edtAdet.Text == '') || (edtFiyat.Text == ''))
  {
    ShowMessage('Lütfen tüm alanları doldurun!');
    exit;
  }
  
  urunSayaci = urunSayaci + 1;
  
  yeniUrunJson = '{"clRecord_GUID":"ID_' + IntToStr(urunSayaci) + 
                 '", "MAIN_TEXT":"' + edtUrunAdi.Text + 
                 '", "SUB_TEXT":"Adet: ' + edtAdet.Text + ' - Fiyat: ' + edtFiyat.Text + ' TL' +
                 '", "PRODUCT_QTY":"' + edtAdet.Text + 
                 '", "PRODUCT_PRICE":"' + edtFiyat.Text + '"}';
  
  if (tumUrunlerJson <> '') { tumUrunlerJson = tumUrunlerJson + ','; }
  tumUrunlerJson = tumUrunlerJson + yeniUrunJson;

  VerileriYenile;
  
  edtUrunAdi.Text = ''; edtAdet.Text = ''; edtFiyat.Text = '';
  seciliGuid = '';
}

void ListeTiklandi;
{
  seciliGuid = stokListesi.clSelectedItemData(clRecord_GUID);
}

void UrunSil;
Var
  GeciciDataset : TclMemTable;
  YeniJsonKatar : String;
{
  if (seciliGuid == '')
  {
    ShowMessage('Silmek için listeden bir ürün seçin!');
    exit;
  }
  
  GeciciDataset = Clomosy.ClDataSetFromJSON('[' + tumUrunlerJson + ']');
  YeniJsonKatar = '';
  GeciciDataset.First;
  while (not GeciciDataset.Eof)
  {
    if (GeciciDataset.FieldByName('clRecord_GUID').AsString <> seciliGuid)
    {
      if (YeniJsonKatar <> '') { YeniJsonKatar = YeniJsonKatar + ','; }
      
      YeniJsonKatar = YeniJsonKatar + '{"clRecord_GUID":"' + GeciciDataset.FieldByName('clRecord_GUID').AsString + 
                      '", "MAIN_TEXT":"' + GeciciDataset.FieldByName('MAIN_TEXT').AsString + 
                      '", "SUB_TEXT":"' + GeciciDataset.FieldByName('SUB_TEXT').AsString + 
                      '", "PRODUCT_QTY":"' + GeciciDataset.FieldByName('PRODUCT_QTY').AsString + 
                      '", "PRODUCT_PRICE":"' + GeciciDataset.FieldByName('PRODUCT_PRICE').AsString + '"}';
    }
    GeciciDataset.Next;
  }
  
  tumUrunlerJson = YeniJsonKatar;
  VerileriYenile;
  
  ShowMessage('Seçili ürün başarıyla listeden silindi.');
  seciliGuid = ''; 
}

void UrunDuzenle;
Var
  GeciciDataset : TclMemTable;
  YeniJsonKatar : String;
{
  if (seciliGuid == '')
  {
    ShowMessage('Düzenlemek için listeden bir ürün seçin!');
    exit;
  }
  
  edtUrunAdi.Text = stokListesi.clSelectedItemData('MAIN_TEXT');
  edtAdet.Text = stokListesi.clSelectedItemData('PRODUCT_QTY');
  edtFiyat.Text = stokListesi.clSelectedItemData('PRODUCT_PRICE');
  
  GeciciDataset = Clomosy.ClDataSetFromJSON('[' + tumUrunlerJson + ']');
  YeniJsonKatar = '';
  GeciciDataset.First;
  while (not GeciciDataset.Eof)
  {
    if (GeciciDataset.FieldByName('clRecord_GUID').AsString <> seciliGuid)
    {
      if (YeniJsonKatar <> '') { YeniJsonKatar = YeniJsonKatar + ','; }
      
      YeniJsonKatar = YeniJsonKatar + '{"clRecord_GUID":"' + GeciciDataset.FieldByName('clRecord_GUID').AsString + 
                      '", "MAIN_TEXT":"' + GeciciDataset.FieldByName('MAIN_TEXT').AsString + 
                      '", "SUB_TEXT":"' + GeciciDataset.FieldByName('SUB_TEXT').AsString + 
                      '", "PRODUCT_QTY":"' + GeciciDataset.FieldByName('PRODUCT_QTY').AsString + 
                      '", "PRODUCT_PRICE":"' + GeciciDataset.FieldByName('PRODUCT_PRICE').AsString + '"}';
    }
    GeciciDataset.Next;
  }
  
  tumUrunlerJson = YeniJsonKatar;
  VerileriYenile;
  
  ShowMessage('Ürün bilgileri yukarı taşındı. Düzenleyip tekrar Ekle butonuna basabilirsiniz.');
  seciliGuid = '';
}

{
  anaForm = TclForm.Create(Self);
  tumUrunlerJson = '';
  seciliGuid = ''; 
  urunSayaci = 0;
  butonPaneli = anaForm.AddNewPanel(anaForm, 'butonPaneli');
  butonPaneli.Align = alTop;
  butonPaneli.Height = 45;
  butonPaneli.Margins.Top = 5;

  btnEkle = anaForm.AddNewButton(butonPaneli, 'btnEkle', 'Ekle');
  btnEkle.Align = alLeft; btnEkle.Width = 100;
  anaForm.AddNewEvent(btnEkle, TbeOnClick, 'UrunEkle');

  btnGuncelle = anaForm.AddNewButton(butonPaneli, 'btnGuncelle', 'Düzenle');
  btnGuncelle.Align = alLeft; btnGuncelle.Width = 100;
  anaForm.AddNewEvent(btnGuncelle, TbeOnClick, 'UrunDuzenle');

  btnSil = anaForm.AddNewButton(butonPaneli, 'btnSil', 'Sil');
  btnSil.Align = alLeft; btnSil.Width = 100;
  anaForm.AddNewEvent(btnSil, TbeOnClick, 'UrunSil');

  pnlUrunAdi = anaForm.AddNewPanel(anaForm, 'pnlUrunAdi');
  pnlUrunAdi.Align = alTop; pnlUrunAdi.Height = 40; pnlUrunAdi.Margins.Top = 5;
  
  lblUrunAdi = anaForm.AddNewLabel(pnlUrunAdi, 'lblUrunAdi', 'Ürün Adı:');
  lblUrunAdi.Align = alLeft; lblUrunAdi.Width = 80;
  edtUrunAdi = anaForm.AddNewEdit(pnlUrunAdi, 'edtUrunAdi', 'Ürün adı...');
  edtUrunAdi.Align = alClient;

  pnlAdet = anaForm.AddNewPanel(anaForm, 'pnlAdet');
  pnlAdet.Align = alTop; pnlAdet.Height = 40; pnlAdet.Margins.Top = 5;
  
  lblAdet = anaForm.AddNewLabel(pnlAdet, 'lblAdet', 'Adet:');
  lblAdet.Align = alLeft; lblAdet.Width = 80;
  edtAdet = anaForm.AddNewEdit(pnlAdet, 'edtAdet', 'Adet...');
  edtAdet.Align = alClient;

  pnlFiyat = anaForm.AddNewPanel(anaForm, 'pnlFiyat');
  pnlFiyat.Align = alTop; pnlFiyat.Height = 40; pnlFiyat.Margins.Top = 5;
  
  lblFiyat = anaForm.AddNewLabel(pnlFiyat, 'lblFiyat', 'Fiyat:');
  lblFiyat.Align = alLeft; lblFiyat.Width = 80;
  edtFiyat = anaForm.AddNewEdit(pnlFiyat, 'edtFiyat', 'Fiyat...');
  edtFiyat.Align = alClient;

  stokListesi = anaForm.AddNewProListView(anaForm, 'stokListesi');
  stokListesi.Align = alClient;
  stokListesi.Margins.Top = 10;
  stokListesi.clProSettings.ViewType = lvList;
  stokListesi.clProSettings.ItemHeight = 75; 
  stokListesi.SetclProSettings(stokListesi.clProSettings);

  tasarimPanel = anaForm.AddNewProListViewDesignerPanel(stokListesi, 'tasarimPanel');
  tasarimPanel.Height = 75;
  stokListesi.SetDesignerPanel(tasarimPanel);

  MAIN_TEXT = anaForm.AddNewProLabel(tasarimPanel, 'MAIN_TEXT', '');
  MAIN_TEXT.Align = alTop;
  MAIN_TEXT.Height = 30;
  MAIN_TEXT.Margins.Left = 15;
  MAIN_TEXT.Margins.Top = 5;
  MAIN_TEXT.clProSettings.FontSize = 16;
  MAIN_TEXT.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  tasarimPanel.AddPanelObject(MAIN_TEXT, clCaption);

  SUB_TEXT = anaForm.AddNewProLabel(tasarimPanel, 'SUB_TEXT', '');
  SUB_TEXT.Align = alClient;
  SUB_TEXT.Margins.Left = 15;
  SUB_TEXT.Margins.Top = 2;
  SUB_TEXT.clProSettings.FontSize = 13;
  SUB_TEXT.clProSettings.FontColor = clAlphaColor.clHexToColor('#555555');
  tasarimPanel.AddPanelObject(SUB_TEXT, clText);
  
  anaForm.AddNewEvent(stokListesi, TbeOnItemClick, 'ListeTiklandi');

  anaForm.Run;
}

Yardım ederseniz sevinirim.
Şimdiden teşekkürler...



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