Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
cxGrid1 manuel kayıt ekleme
#1
Merhaba;
cxGrid1 üzerine herhangi bir db bağlı olmayan bağımsız veriler eklemek istiyorum
Araştırdığımda bu kodu buldum

  ARecordIndex := cxGrid2DBTableView1.DataController.AppendRecord;
  cxGrid2DBTableView1.DataController.Values[ARecordIndex, cxGrid2DBTableView1ISLEM.Index] := 'deger1';

Kod yeni satr oluşturuyor ama ,içine istediğim değeri atamıyor

VirtualTable1 yada query kullanmadan direk grid içerisini doldurma şansım varmı ?
Teşekürler


Ek Dosyalar Resimler
   
Cevapla
#2
Yok diye tahmin ediyorum. Fakat bunun yerine MemTable bağlaıp datayı memory e aldıkdan sonra db ye kayıt yaptırabilirsiniz diye tahmin ediyorum..
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#3
(23-07-2022, Saat: 23:51)delphiX14 Adlı Kullanıcıdan Alıntı: Merhaba;
cxGrid1 üzerine herhangi bir db bağlı olmayan bağımsız veriler eklemek istiyorum
Araştırdığımda bu kodu buldum

  ARecordIndex := cxGrid2DBTableView1.DataController.AppendRecord;
  cxGrid2DBTableView1.DataController.Values[ARecordIndex, cxGrid2DBTableView1ISLEM.Index] := 'deger1';

Kod yeni satr oluşturuyor ama ,içine istediğim değeri atamıyor

VirtualTable1 yada query kullanmadan direk grid içerisini doldurma şansım varmı ?
Teşekürler

İyi akşamlar ben aşağıdaki şekilde kullanmıştım.

// satır ekle procedure müsait olan yere ekleyin 
var
 i : integer; // cxgrid deki son kayıt için
begin
   siparisuretim_view.DataController.Appendrecord; // Yeni satır ekle
   siparisuretim_view.datacontroller.values[i,0] := siparisuretim_view.DataController.RowCount; //sira no otomatik verilsin
   siparisuretim_view.datacontroller.values[i,1] := senin cgrid hücrene atayacağın bilgiler olacak buralar
   siparisuretim_view.datacontroller.values[i,2] := 
   siparisuretim_view.datacontroller.values[i,3] := 
   siparisuretim_view.datacontroller.values[i,4] := xx_miktar;
   siparisuretim_view.datacontroller.values[i,5] := 
   siparisuretim_view.datacontroller.values[i,6] := 
   siparisuretim_view.datacontroller.values[i,7] := floattostr(s_sonuc) ;
   siparisuretim_view.datacontroller.values[i,9] := 
end;
[/ars]

Aşağıdaki kodda aynı kayıt daha  önce eklenmiş mi diye kontrol eder

for i := 0 to siparisuretim_view.datacontroller.RowCount - 1 do
 begin
   if (trim(siparisuretim_view.datacontroller.values[i,2]) = trim(eklenecek_bilgi)) then
   begin
     mesaj := trim(eklenecek_bilgi) + ' daha önce eklenmiş!';
     Application.MessageBox(PWideChar(mesaj), 'Uyarı', MB_OK + MB_ICONWARNING);
     exit;
   end;
 end;
 
Kodlar test edilmiş ve çalışan kodlar yazım hatası varsa ihtiyarlığımıza verin.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#4
(24-07-2022, Saat: 18:30)cinarbil Adlı Kullanıcıdan Alıntı:
(23-07-2022, Saat: 23:51)delphiX14 Adlı Kullanıcıdan Alıntı: Merhaba;
cxGrid1 üzerine herhangi bir db bağlı olmayan bağımsız veriler eklemek istiyorum
Araştırdığımda bu kodu buldum

  ARecordIndex := cxGrid2DBTableView1.DataController.AppendRecord;
  cxGrid2DBTableView1.DataController.Values[ARecordIndex, cxGrid2DBTableView1ISLEM.Index] := 'deger1';

Kod yeni satr oluşturuyor ama ,içine istediğim değeri atamıyor

VirtualTable1 yada query kullanmadan direk grid içerisini doldurma şansım varmı ?
Teşekürler

İyi akşamlar ben aşağıdaki şekilde kullanmıştım.

// satır ekle procedure müsait olan yere ekleyin 
var
 i : integer; // cxgrid deki son kayıt için
begin
   siparisuretim_view.DataController.Appendrecord; // Yeni satır ekle
   siparisuretim_view.datacontroller.values[i,0] := siparisuretim_view.DataController.RowCount; //sira no otomatik verilsin
   siparisuretim_view.datacontroller.values[i,1] := senin cgrid hücrene atayacağın bilgiler olacak buralar
   siparisuretim_view.datacontroller.values[i,2] := 
   siparisuretim_view.datacontroller.values[i,3] := 
   siparisuretim_view.datacontroller.values[i,4] := xx_miktar;
   siparisuretim_view.datacontroller.values[i,5] := 
   siparisuretim_view.datacontroller.values[i,6] := 
   siparisuretim_view.datacontroller.values[i,7] := floattostr(s_sonuc) ;
   siparisuretim_view.datacontroller.values[i,9] := 
end;
[/ars]

Aşağıdaki kodda aynı kayıt daha  önce eklenmiş mi diye kontrol eder

for i := 0 to siparisuretim_view.datacontroller.RowCount - 1 do
 begin
   if (trim(siparisuretim_view.datacontroller.values[i,2]) = trim(eklenecek_bilgi)) then
   begin
     mesaj := trim(eklenecek_bilgi) + ' daha önce eklenmiş!';
     Application.MessageBox(PWideChar(mesaj), 'Uyarı', MB_OK + MB_ICONWARNING);
     exit;
   end;
 end;
 
Kodlar test edilmiş ve çalışan kodlar yazım hatası varsa ihtiyarlığımıza verin.

aslında yazdığım kod ile  aynı 
  ARecordIndex := cxGrid2DBTableView1.DataController.AppendRecord;
  cxGrid2DBTableView1.DataController.Values[ARecordIndex, cxGrid2DBTableView1ISLEM.Index] := 'deger1';
ikiside datacontroller values değerine atama yapıyor 
bende yeni satır oluşuyor ama içinde atanan değer olmadı bir türlü bir şeyi gözden kaçırdım ve bulamadım Smile , çözüm olarak ta VirtualTable1 aktarıp gride yansıttım cvb için yinede tşkler 
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Rest Request Parametre Ekleme m_ekici 9 979 09-02-2026, Saat: 00:33
Son Yorum: m_ekici
  Datasnap veritabanı kayıt serdar 2 518 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 5.172 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 3.092 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63
  MSSQL Kayıt yöntemi nevzatc 2 889 16-12-2024, Saat: 17:40
Son Yorum: mustafaozpinar



Konuyu Okuyanlar: 1 Ziyaretçi