otomatik noya konumlanma

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

otomatik noya konumlanma

Mesaj gönderen Misafir »

S.A.
Otomatik kutu adedi girildiği zaman kolinin başlangıç ve bitiş nolarını editlere atıyorum ve kayıt yapıyorum fakat programı kapattık tekrar açtığım zaman aynı sevkiyat la ilgili ise en son kaydettiğim başlangıç no hangisi ise o editboxa yazılıp 1 arttırılması lazım....Ben yapmaya çalıştım olmadı...

Kod: Tümünü seç

var
a:integer;
u:integer;
begin
a:=0;
dm2.sevdetaildataset1.First;
   while not dm2.sevdetaildataset1.Eof do
   begin
   if (dm2.sevdetaildataset1SEVKIYAT_NO.Text=DBEdit13.Text) then [Eğer Sevkiyat nosu database de varsa bu no ile kayıt girilmiş ve koli başlangıç nosu eklenmiştir...Bu arada koli başlangıç nosu için ilk kayıt için yaptığım şey çalışıyor yani default  değeri 1 hep 1 geliyor....zaten istediğim programda ilk kayıt yapıldıktan sonra 2. kayıtta son girilen kutu baş nosunun en son kaydın 1 fazla olması. 
     begin
     a:=1
     end;
   dm2.sevdetaildataset1.Next;
   end;
   if (a=0) then   //
   begin
   TabSheet2.TabVisible:=false;
   end;
   if (a=1) then    //kayıt var
   begin
   dm2.sevdetaildataset1.Last;
   Sevkiyatgiris.Edit14.Text:=dm2.sevdetaildataset1KOLI_NO_BAS.Text;
   u:=dm2.sevdetaildataset1KOLI_NO_BAS.AsInteger;
   Sevkiyatgiris.Edit14.Text:=u+1;
   ShowMessage('Koli No Başlangıç Konumlandı')
   end;
Valla çok da bilmediğim için yardımcı olursanız sevinirim Yapamadım...
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Mesaj gönderen yusuf simsek »

S.A.

Kolay gelsin.
En büyük alanı bulmak için

Kod: Tümünü seç

select max(alan_adi) from tablo
(haliyle bir fazlası içinde dönen sonuca +1 )
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Misafir

daha sonra

Mesaj gönderen Misafir »

Peki bunu ibquery ile yaptım...Kusura bakmayın kolay bir soru olacak ama...query eklediğim bu max olayında o fieldla ilgili en büyük değeri buldum peki bunun bir fazlasını sql ile edit nesnesine nasıl aktaracam...

Teşekkürler
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1526
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

Edit1.text := Query1Alanadi.Value + 1;
Resim

..::|YeşilMavi|::..
Misafir

selam

Mesaj gönderen Misafir »

Missing operator or semicolon
incompatible types: 'String' and 'integer'
hata bu

Kod: Tümünü seç

procedure TSevkiyatgiris.BitBtn1Exit(Sender: TObject);
var
a:integer;
u:integer;
begin
a:=0;
dm2.sevdetaildataset1.First;
   while not dm2.sevdetaildataset1.Eof do
   begin
   if (dm2.sevdetaildataset1SEVKIYAT_NO.Text=DBEdit13.Text) then
     begin
     a:=1
     end;
   dm2.sevdetaildataset1.Next;
   end;
   if (a=0) then   //kayıt yok
   begin
   TabSheet2.TabVisible:=false;
   end;
   if (a=1) then    //kayıt var
   begin
   dm2.IBQuery2.Active := False;
   dm2.IBQuery2.SQL.Clear;
   dm2.IBQuery2.SQL.Add('select max(KOLI_NO_BAS) from SEVKIYATDETAIL')
   Edit14.text:=dm2.IBQuery2KOLI_NO_BAS.value+1;
   
   ShowMessage('Koli No Başlangıç Konumlandı')
   end;
end;
Burada Edit14.text:=dm2.IBQuery2KOLI_NO_BAS.value+1;
Burada dediğiniz gibi max kayıda konumlanıp en son max kayıdın bir fazlasını edit14 yazmak istiyorum...string and integer diyor değer integer, field da integer....

Nasıl halledebilirim dönüşüm yapmaya çalıştım onuda yapamaadım.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
edit4 ün text inin tipi sitring toplama işleminin sonucu integer olduğu için hata veriyor.
Şöyle yaparsan sanırım düzelir.

Kod: Tümünü seç

Edit14.text:=inttostr(dm2.IBQuery2KOLI_NO_BAS.asinteger+1);
Eeğer dm2.IBQuery2KOLI_NO_BAS.asinteger null dönerse hata verebilir ona göre. onu engellemek için try except arasında alabilirsin (tabi eğer böyle bir ihtimal varsa).
Kolay Gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Misafir

selam

Mesaj gönderen Misafir »

Peki hocam benim yapmak istediğimi umarım anlamışsınızdır bir kayıt yapıyor bu yeni kayıt olsun kayıt giriyor giriyor programı kapatıyor tekrar aynı açtığı kayıda detail kayıt gireceği zaman bu koliler arasında otomatik no ayarlıyorum...ama en son hangi no da kaldıysa o noya konumlanıp editin değerini 1 arttırması ve kayıda devam etmesi diğer editleri zaten o edit14 başlangıç değerine göre değer alıyor...Tabi birde önceden kayıt var mı sevkiyat nosu ile ilgili eğer yoksa bu kayda konumlanma olayı çalışmaması lazım....Peki ben bunu oncreate de yaptım...Başka bir event kullanılabilirmiydi daha mantıklı....

Teşekkürler
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
eğer girdiğin rakamı vt de tutuyorsan zaten rakam elindedir ordan okuyup bir arttırıp kullanırsın.
yok vt ye yazmıyorsan formun onclose eventinde registere yazarsın. onshow dada registerden okursun.
Eğer formu free etmiyorsan oncreate sadece bir kere çalışır. formu kapatıp tekrar açtığın zaman (programı değil) oncreate çalışmaz. Ona göre hangisi senin işini göörüyorsa onu kullanmalısın.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Misafir

selam

Mesaj gönderen Misafir »

veritabanında tutuyorum tabi iki tane edit düşün koli no baslangıç ve koli no bitiş değerleri var sen malın kaç adet olduğunu giriyorsun prgrama kaç kutu kullandığını giriyorsun o koli no bas ve bitiş nolarını stok kodlarına göre vs. ayarlıyor ilk kayıtta...ama benim problemim daha sonra eski kaydı güncelleyeceği zaman o ilk hesaplamaya başladığı editin en son koli no başlangıç nosu neyse bir fazlasının o edite yazılması...Bu arada aşağıdaki kodda sevkyiat açılmışmı o no ile o da var..Yani kayıt edilen database de sevkiyat no varsa demekki önceden mal girilmiş ve bu başlangıç bitiş nolarından oluşmuş ha o zaman git son noya bak su edite bir artır yaz..olayı....ama hala hata alıyorum anlamadım...

Bu arada yine aynı hata missing operator or semicolon....

Kod: Tümünü seç

procedure TSevkiyatgiris.FormCreate(Sender: TObject);
var
z:integer;
begin
z:=0;
dm2.sevdetaildataset1.First;
   while not dm2.sevdetaildataset1.Eof do
   begin
   if (dm2.sevdetaildataset1SEVKIYAT_NO.Text=DBEdit13.Text) then
     begin
     z:=1
     end;
   dm2.sevdetaildataset1.Next;
   end;
   if (z=0) then   //kayıt yok
   begin
   TabSheet2.TabVisible:=false;
   end;
   if (z=1) then    //kayıt var
   begin
   with dm2.IBQuery2 do
   dm2.IBQuery2.Active := False;
   dm2.IBQuery2.SQL.Add('select max (KOLI_BAS_NO) from SEVKIYATDETAIL')
   edit14.Text:=inttostr(dm2.IBQuery2KOLI_NO_BAS.AsInteger+1);
   end;
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
Verdiği hata mesajının üzerine iki kere tıkla
bir üst satırın sonuna ";" koy
:boks:
hehe adminim yeni smiley eklemiş.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Misafir

yaw

Mesaj gönderen Misafir »

vallahi oha ya :kup:

Çok sağol bu yeni smilelar çok meşhur olacak heralhelde :))
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

:lol: :lol: :lol: :lol: :lol: :lol:
hay Allah razı olsun.
beni güldürdün Allahda seni güldürsün.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla