![]() |
| 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. |
stok takip ürün düzenleme ve ürün silme hatası |
Yanıt Yaz
|
| Yazar | |
Ömer Faruk
Yeni Üye
Kayıt Tarihi: 07 Mart 2026 Durum: Aktif Değil Puanlar: 6 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Ömer Faruk
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Konu: stok takip ürün düzenleme ve ürün silme hatasıGönderim Zamanı: 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... |
|
![]() |
|
Melih
Deneyimli Üye
Kayıt Tarihi: 09 Şubat 2026 Durum: Aktif Değil Puanlar: 89 |
Mesaj Seçenekleri
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 10 Saat 2 Dakika Önce Saat 13:40 |
|
Merhaba düzeltilmiş kod aşağıdadır. JSON'da ID tanımlarken "RECORD_GUID" kullanman gerekir, kendi isimlendirmeni yaparsan liste seçimleri doğru çalışmaz. (https://www.docs.clomosy.com/index.php?title=TclListView --- bu sayfadaki "Listview Fields" kısmından inceleyebilirsin)
Designer panelde de bir şeyleri alt alta listelemek istiyorsan alClient yerine alTop kullanmalısın. alClient kalan alanı tamamen kaplamak için bileşeni esnetmeye çalışır. 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 = '{"RECORD_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('RECORD_GUID').AsString <> seciliGuid) { if (YeniJsonKatar <> '') { YeniJsonKatar = YeniJsonKatar + ','; } YeniJsonKatar = YeniJsonKatar + '{"RECORD_GUID":"' + GeciciDataset.FieldByName('RECORD_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; } GeciciDataset = Clomosy.ClDataSetFromJSON('[' + tumUrunlerJson + ']'); YeniJsonKatar = ''; GeciciDataset.First; while (not GeciciDataset.Eof) { if (GeciciDataset.FieldByName('RECORD_GUID').AsString == seciliGuid) { edtUrunAdi.Text = GeciciDataset.FieldByName('MAIN_TEXT').AsString; edtAdet.Text = GeciciDataset.FieldByName('PRODUCT_QTY').AsString; edtFiyat.Text = GeciciDataset.FieldByName('PRODUCT_PRICE').AsString; } else { if (YeniJsonKatar <> '') { YeniJsonKatar = YeniJsonKatar + ','; } YeniJsonKatar = YeniJsonKatar + '{"RECORD_GUID":"' + GeciciDataset.FieldByName('RECORD_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'); MAIN_TEXT.clProSettings.TextSettings.Font.Style = [fsBold]; MAIN_TEXT.SetclProSettings(MAIN_TEXT.clProSettings); tasarimPanel.AddPanelObject(MAIN_TEXT, clCaption); SUB_TEXT = anaForm.AddNewProLabel(tasarimPanel, 'SUB_TEXT', ''); SUB_TEXT.Align = alTop; SUB_TEXT.Height = 30; SUB_TEXT.Margins.Left = 15; SUB_TEXT.Margins.Top = 2; SUB_TEXT.clProSettings.FontSize = 13; SUB_TEXT.clProSettings.FontColor = clAlphaColor.clHexToColor('#555555'); SUB_TEXT.SetclProSettings(SUB_TEXT.clProSettings); tasarimPanel.AddPanelObject(SUB_TEXT, clText); anaForm.AddNewEvent(stokListesi, tbeOnItemClick, 'ListeTiklandi'); anaForm.Run; } https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" 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">
|
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |