Fatura Formuna listview den seçerek veri almak.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 10:04

Fatura Formuna listview den seçerek veri almak.

Mesaj gönderen sadikkavakli »

Değerli Üstadım,

Veritabanımda cariler ve fatura isimli 2 adet tablom bulunmaktadır. Form1 fatura kayıt etme formmum olacak Form 2 de DBListview de arama yaparak, listcombobox işaretleyerek fatura alanına toplu seçim yapıp aktarabileceğim.
Detaylı olmasın ama değerleri dblistview den çift tıklayarak form1.gelmesi yeterli olacaktır. Kurgulayamadım.
Buton yerine + ( F10) Tuşunu tanımlayabilir miyiz?
Saygılarımla.
Dosya ekleri
Rica edilen.rar
(57.35 KiB) 74 kere indirildi
FATURA.rar
(19.83 KiB) 78 kere indirildi
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Fatura Formuna listview den seçerek veri almak.

Mesaj gönderen xozcanx »

Merhaba;
F10 için Öncelikle Formun KeyPreview özelliğini True yaptıktan sonra

Kod: Tümünü seç

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
     if key=VK_F10 then
     Begin
     //   .......  Filtreleme için Kodlar burada olacak
        Form2.Show; 
     End;
end;
Seçim işlemini DBGrid Üzerinden de yapabilirsin tercihe bağlı olarak. DBGridde RowSelect özelliği True yapar Seçmiş olduğun kayıtları direkt olarak bir döngü ile yazdırabilirsin.
Biraz deneme ve araştırma yapın Forumda bununla ilgili örnek gerçekten çok fazla var. F10 tuşu için birşeyler yapmaya çalıştığınız gibi bununla ilgili de birşeyler yapın hata aldığınız notaları belirtin, bu şekilde yaparsanız günü kurtarmak yerine bilginin kalıcı olmasını sağlayabilirsiniz. :wink:

Ayrıca Herforma ayrı ayrı ADOConnection koymana gerek yok tek noktadan ulaşabilirsin. form1 de olan ADOConnection için form2 de iken

Kod: Tümünü seç

form1.ADOConnection1.connected:=True
gibi; yada

Kod: Tümünü seç

form1.ADOTable1Malzeme_Aciklamasi.Text
gibi,

Başarılar.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 10:04

Re: Fatura Formuna listview den seçerek veri almak.

Mesaj gönderen sadikkavakli »

Değerli Üstadım ,

F10 tanımlanması tamam. Fakat Form2.DBGRİD içindeki verileri nasıl form1 deki editlere aktaracam ufak bir kod parçası bana yeter.

Saygılarımla.
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: Fatura Formuna listview den seçerek veri almak.

Mesaj gönderen greenegitim »

Global değişken olarak tanımlatıp kullanabilirsin.
Mücadele güzelleştirir!
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Fatura Formuna listview den seçerek veri almak.

Mesaj gönderen xozcanx »

Merhaba;
ilk mesajda Gride aktarmak istediğinizi söylemiştiniz son mesajda editlere tam olarak hangisine veri aktarmak istiyorsunuz ?
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
sadikkavakli
Üye
Mesajlar: 33
Kayıt: 23 Nis 2014 10:04

Re: Fatura Formuna listview den seçerek veri almak.

Mesaj gönderen sadikkavakli »

Değerli Üstadlarım,

Kod: Tümünü seç

var
x: Integer;
TempBookmark: TBookMark;
begin
DBGrid1.Datasource.Dataset.DisableControls;
with DBgrid1.SelectedRows do
if Count > 0 then
begin
TempBookmark := DBGrid1.Datasource.Dataset.GetBookmark;
for x := 0 to Count - 1 do
begin
if IndexOf(Items[x]) > -1 then
begin
DBGrid1.Datasource.Dataset.Bookmark := Items[x];
//ShowMessage(DBGrid1.Datasource.Dataset.Fields[1].AsString);
form1.Edit1.text:=DBGrid1.Datasource.Dataset.Fields[1].Text;
form1.Edit2.text:=DBGrid1.Datasource.Dataset.Fields[2].Text;
form1.Edit3.text:=DBGrid1.Datasource.Dataset.Fields[0].Text;

form2.Close;
end;
end;
DBGrid1.Datasource.Dataset.GotoBookmark(TempBookmark);
DBGrid1.Datasource.Dataset.FreeBookmark(TempBookmark);
end;
DBGrid1.Datasource.Dataset.EnableControls;
end;


kodlar bunlar seçim yapıyorum ve aktarıyorum.

form1.de de fatura satırları var dbgrid olarak tanımlı malzeme kodlarını seçebilmem için cari hesabın fatura satırlarına CARDREF alanına logıcalref ataması yapması gerekmektedir.
bu konuda yardımcı olabilirseniz memnun olurum

saygılarımla
Cevapla