DBGrid Kopyalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

DBGrid Kopyalama

Mesaj gönderen digital_agels »

Tekrar Merhaba,

DbGridde ürün İsimleri Listeleniyor şimdi aynı ürünün birdaha kaydını yapıcam ben sadece seri numarası değişik olucak bunun için ürün adı barkod numarası seir numarası gelen firma vs.. hepsini tekrar doldurmam lazım onun yerine o ürünü dbgridden kopyalasam sonra sadece seri nuamrasını değiştirip kaydetmek istiyorum nasıl olur böylece baştan yazmak zorunda kalmam sadece kopyalayıp seri numarasını değişirim kayıt ederim bunun naısl yaparım :?:
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Anladığım kadariyle şöyle yapabilirsin;

Query1 ile süzmüşsen gridde ne varsa Query1de de o vardır.[o aralığı seçmiştir]

Kod: Tümünü seç

  i:=1;
  Query1.first;
  while Query1.eof do 
  begin
    Query2.insert;
    Query2SeninSerino.AsInteger:=inc(i);// ben böyle yaptım     değiştirebilirsin 
    Query2SeninAlan.SeninAlanTipin:=Query1.SeninAlan.SeninAlanTipin;
    -------
    -
    -
    ---
    -böyle gider bütün alanları yazasıya kadar...

  end;
+ olarak çok kayıt varsa mantıklı değil SQL ile yaptır
hatalar olabilir böyle bir mantık olması gerekir

iyi günler........
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

anladığım kadarıyla, aynı tabloya aynı ürününde bir tane daha eklemek istiyorsun fakat tek değişik olan seri no.
eğer doğru anladıysam söyle bir yol izleyebilirsin..

bir buttona tıkladığında kullanıcıdan bir seri no alırsın,

Kod: Tümünü seç

insert into Urunler
  select :paramserino, u.urunadi, u.x, u.y from urunler u where
  u.urunserino = 1
:paramserino isimli parametreye kullanıcıdan aldığın seri noyu vermen yeterli..
DeveloperToolKit

..::|YeşilMavi|::..
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

Mesaj gönderen digital_agels »

abi olayı güzel anlamışın fakat ben bu kodu anlamadım kopyaladım yapıştırdım hata verdi delphi içinmi bu :lol: :oops: aynen dediğim seçtiğim ürünün birtane daha kopyasını çıkartmak istiyorum birde arama yapıyorum fakat birtane daha arama türü vardı aradığın ürünleri çıkartıyordu diğer ürünleri kayboluyordu locate değildi ama bu sanırım mesela osman yazıyorum osman yazan başlıklar duruyor onun haricinde hepsi kayboluyor onu nasıl yapıyorduk ayrıca ADOQuery kullanmadan yapmak istiyorum bu olayları mümkünse neden derseniz daha tam olarak çözemedim şunu sql kodları felan istiyor hata veriyor sonra .
biraz daha kasarsak sonuca ulaşcaz sanırım :)
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

hangisini anlamadım benim yazdığımı mı?
DeveloperToolKit

..::|YeşilMavi|::..
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

Mesaj gönderen digital_agels »

lazio yazdı:hangisini anlamadım benim yazdığımı mı?
evet abi sen yazmışında biz okadar profesyonel değiliz daha :) kısaca anlamadım o nedir ? nasıl kullanabilirim onu ..
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Ado kullanıyorsun anladığım kadarıyla,
forma bir tane AdoCommand komponenti koy,

Kod: Tümünü seç

insert into Urunler
  select :paramserino, u.urunadi, u.x, u.y from urunler u where
  u.urunserino = :xurun
CommandText ine yukarıdaki sql cümlesine senin tablona uyarlayarak yaz.
AdoCommand ın parameters özelliğinde "paramserino" ve "xurun" diye iki parametre göreceksin tipini belirle...
paramserino senin vereceğin yeni seri no,
xurun de hangi seri nolu ürünü kopyalayacağındır.

daha sonra dbgrid in doubleclick olayına

Kod: Tümünü seç

ADOCommand1.Parameters.ParamValues['paramserino'].Value := StrToInt(Edit1.Text); // senin vereceğin serino
  ADOCommand1.Parameters.ParamValues['xurun'].Value := DBGrid1.DataSource.DataSet.FieldByName('UrunSeriNo').Value; // querydeki serino
  ADOCommand1.Execute;
DeveloperToolKit

..::|YeşilMavi|::..
digital_agels
Üye
Mesajlar: 114
Kayıt: 20 Ağu 2004 01:08

Mesaj gönderen digital_agels »

teşekkürler işimi gördü fakat birde ben aynı ürünün kopyasını çıkartamazmıyım mesela Db gridde seçtim ürünü Butona basınca aynısından bir kopya daha çıkartmazmı ? :oops:
Kurallara Uyalım Uymayanları Uyduralım .


Resim
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

çıkartır, yukarıdaki kod da aşağı yukarı aynısını yapıyor zaten..

Kod: Tümünü seç

insert into Urunler 
  select * from urunler u 
  where u.urunserino = :xurun
seçili ürünün seri no sunu :xurun parametresine gönderiyorsun ve aynısından bir tane daha ekler.. Ancak burada bir sorun var tabii ki..
senin serino alanın PrimaryKey yada Unique ise eklemez..
sen nasılsa farklı bir seri no vereceksin, bu nedenle önceki kodu kullan..
DeveloperToolKit

..::|YeşilMavi|::..
Cevapla