edit veya combobox dolu ise satır satır kayıt

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Misafir

edit veya combobox dolu ise satır satır kayıt

Mesaj gönderen Misafir »

Selamlar formum şöyle bir düzeneği var......

Combobox'ın string listinde palet1, palet2, palet3, palet4, vs 40 kadar var....ve bunların yanında 10 tane alt alta bilgi girişi yapması için aynı düzenekten var düzenek şöyle....

Combobox1 edit1 edit2 edit3 combobox2 edit4 edit5

Combobox3 edit6 edit7 edit8 cobbobox4 edit9 edit10

Combobox5 edit11 edit12 edit13 Combobox6 edit14 edit15

Böyle sırayla 10 adet var....Ve ben Eğer combobox1 veya 2 veya 3 neyse ilk baştaki comboboxlar paletlerin seçildiği comboboxlar....


Kod: Tümünü seç

procedure TSevkiyatgiris.BitBtn2Click(Sender: TObject);
var
a,toplam,b:integer;
begin
b:=0;
toplam:=0;
if (Edit18.Text<>'') then toplam:=toplam+StrToInt(Edit18.Text);
if (Edit24.Text<>'') then toplam:=toplam+StrToInt(Edit24.Text);
if (Edit30.Text<>'') then toplam:=toplam+StrToInt(Edit30.Text);
if (Edit36.Text<>'') then toplam:=toplam+StrToInt(Edit36.Text);
if (Edit42.Text<>'') then toplam:=toplam+StrToInt(Edit42.Text);
if (Edit48.Text<>'') then toplam:=toplam+StrToInt(Edit48.Text);
if (Edit54.Text<>'') then toplam:=toplam+StrToInt(Edit54.Text);
if (Edit60.Text<>'') then toplam:=toplam+StrToInt(Edit60.Text);
if (Edit66.Text<>'') then toplam:=toplam+StrToInt(Edit66.Text);
if (Edit72.Text<>'') then toplam:=toplam+StrToInt(Edit72.Text);

if (toplam=StrToInt(Edit12.Text)) then
begin //kaydet
if (comboBox1.Text<>'') then  // 1 ıcın
     begin
     dm2.sevdetaildataset1.Append;
     dm2.sevdetaildataset1ILK_KAYIT_TARIHI.AsString:=DateToStr(Date);
     dm2.sevdetaildataset1SEVKIYAT_NO.AsString:=DBEdit13.Text;
     dm2.sevdetaildataset1PALET_NO.AsString:=ComboBox1.Text;
     dm2.sevdetaildataset1PALET_TIPI.AsString:=ComboBox21.Text;
     dm2.sevdetaildataset1KOLI_TIPI.AsString:=ComboBox11.Text;
     dm2.sevdetaildataset1KOLI_NO_BASLANGIC.AsString:=Edit14.Text;
     dm2.sevdetaildataset1KOLI_NO_BITIS.AsString:=Edit15.Text;
     dm2.sevdetaildataset1KOLI_ADEDI.AsString:=Edit16.Text;
     dm2.sevdetaildataset1TOPLAMI.AsString:=Edit18.Text;
     dm2.sevdetaildataset1PARCA_AGIRLIK_TOPLAM.Text:=Edit19.Text;
     dm2.sevdetaildataset1URET_SON_FIS_NO.AsString:=dm.TBLSTOKURSURETSON_FISNO.AsString;
     dm2.sevdetaildataset1URET_SONU_KAYIT_MIKTAR.AsString:=Edit12.Text;
     dm2.sevdetaildataset1.Post;
     dm2.IBTransaction6.Commit;
     end;
end
else   //degilse
b:=1;

if (comboBox2.Text<>'') then  // 1 ıcın
     begin
     dm2.sevdetaildataset1.Append;
     dm2.sevdetaildataset1ILK_KAYIT_TARIHI.AsString:=DateToStr(Date);
     dm2.sevdetaildataset1SEVKIYAT_NO.AsString:=DBEdit13.Text;
     dm2.sevdetaildataset1PALET_NO.AsString:=ComboBox1.Text;
     dm2.sevdetaildataset1PALET_TIPI.AsString:=ComboBox21.Text;
     dm2.sevdetaildataset1KOLI_TIPI.AsString:=ComboBox11.Text;
     dm2.sevdetaildataset1KOLI_NO_BASLANGIC.AsString:=Edit14.Text;
     dm2.sevdetaildataset1KOLI_NO_BITIS.AsString:=Edit15.Text;
     dm2.sevdetaildataset1KOLI_ADEDI.AsString:=Edit16.Text;
     dm2.sevdetaildataset1TOPLAMI.AsString:=Edit18.Text;
     dm2.sevdetaildataset1PARCA_AGIRLIK_TOPLAM.Text:=Edit19.Text;
     dm2.sevdetaildataset1URET_SON_FIS_NO.AsString:=dm.TBLSTOKURSURETSON_FISNO.AsString;
     dm2.sevdetaildataset1URET_SONU_KAYIT_MIKTAR.AsString:=Edit12.Text;
     dm2.sevdetaildataset1.Post;
     dm2.IBTransaction6.Commit;
     end;
end
else   //degilse
b:=1;
Bu hataları alıyorum

value assigned to 'b' never used
value assigned to 'b' never used
Variable 'a' is declared but never used in Tsevkiyatgiris.bitbtn2click
expected but else found
expected but ';' found

Benim yapmak istediğim eğer combobox seçili ise o kayda ait satır kaydı yapmak seçili değilse zaten adam işlem yapmamıştır o satırla ilgili diye düşünüyorum birinci kayıtta bir şey yoktu ama ikinci combobox2 deki eklediğimde bu hatayı aldım yardımcı olursanız sevinirim...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
kodlarını inceleyemedim ama verdiği mesajlar şçle;
[qute]
value assigned to 'b' never used[/quote] b değişkenine değer atamışsın ancak atadığın bu değeri kullanmamışsın. bu hata değil uyarı larak veriyor.
Variable 'a' is declared but never used in Tsevkiyatgiris.bitbtn2click
bitbtn2 nin click olayında a değişkeni tanımlamışsın fekat onuda kullanmamışsın.
expected but else found
expected den önceki ifadeyi eklemen lazım ancak onun yerine else yazmışsın. bu hatanın üzerine iki kere tıklayınca hatanın olsuğu satıra gider. o satırı kontrol et.
expected but ';' found
buda aynı şekilde fazladan ; koymuşsun. hatanın olduğu satırı (yada bir üst satırı) kontrol et.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
derya
Kıdemli Üye
Mesajlar: 68
Kayıt: 16 May 2004 02:43
Konum: Almanya/Bonn
İletişim:

Mesaj gönderen derya »

else //degilse
begin //unutmuşsunuz
b:=1;
veya bir end fazla
Customer: "I'm running Windows XP."
Tech Support: "Yes."
Customer: "My computer isn't working now."
Tech Support: "Yes, you said that."
Misafir

selam

Mesaj gönderen Misafir »

arkadaşlar dediklerinizi yaptım ama bulamadım hatayı....
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

arkadaşım begin end bloklarında bir yanlışlık var.
if (toplam=StrToInt(Edit12.Text)) then
begin //kaydet
if (comboBox1.Text<>'') then // 1 ıcın
begin
...............
end;//if (comboBox1.Text<>'') then // 1 ıcın
end //if (toplam=StrToInt(Edit12.Text)) then burda bekin kapatılıyor
else //degilse buraya begin koyman sorunu çözebilir ama aşağıda bi else daha var o else hangi if in elsesi
b:=1;

if (comboBox2.Text<>'') then // 1 ıcın
begin
...................
end;
end //bu end kimin endi.?
else //degilse bu else nerenin elsesi
b:=1;
bu begin end bloklarını ayarla
En son aslangeri tarafından 08 Eyl 2004 11:07 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

kodlarını düzgün yazında hatan şakadanak ortaya çıkacak...

kod yazarken her begin end bloğunun içindekileri (burası tercih meselesi) 3 boşluk veya bir tab mesafesi içeri atmaz isen hatalı bloğuda zor bulursun.
.-.-.-.-.-.-.-. ^_^
Misafir

selamlar

Mesaj gönderen Misafir »

if li deyimlerden 10 tane var

combobox1 için

combobox2 için

ona kadar devam ediyor.......
Hatayı bulamadım beginde ekledim ama olmadı....

Benim bu kodu yazmamın sebebi satır satır editler combobox lar için her satır için database kayıt yaptırmak istemem ordada combobox1 veya 2 veya 3 deki palet seçeneğini seçerse doldurursa yani o kayıtı yaz dedirttirecem olay bu...
En son Misafir tarafından 08 Eyl 2004 11:36 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

arkadaş begin ve end lere numara vererek çözmeye çalışabirlirsin..
bide if lerin hepsini bir arada derleme. sadece 1.combobox için olan ifi çalıştır. ondan sonra ikinci için olanı ekle ..... öyle öyle hepsini kontrol ettir.

Kod: Tümünü seç

 if xxxxxxxxxxxxxx then
 begin //1
  ...........
  end//1
else
begin //2
.....
end //2
gibi
numaralandırarak eksik olan veya fazla olan begin end i bulabilirsin. ama önce sadece birinci if açık olsun diğerlerini açıklama yap. öyle öyle dene
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla