Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
İşlem sonunda editi temizleme
#1
Merhaba; listviewde ürün daha önce ekliyse adeti ve toplam fiyatı değişecek.
Buraya kadar sorun yok fakak ürün olsada olmasada işlem sonunda editin temizlenmesini istiyorum ama bir türlü edit temizlenmiyor, nedenini anlayamadım   Huh 
Sorun nereden kaynaklanıyor olabilir?


procedure TForm2.EditUrunKeyPress(Sender: TObject; var Key: Char);
var
  Itm: TListItem;
  I: Integer;
  Urunbuldum: Boolean;
begin
  if SplitViewSatis.Opened then
  begin
    try
      Urunbuldum := False;
      With QueryUrun, LVSatis do
      begin
        Connection := FDConnecMain;
        Close;
        SQL.Clear;
        SQL.Add('Select * From URUNLER');
        SQL.Add('Where BARKOD LIKE ' + QuotedStr('%' + EditUrun.Text + '%'));
        Prepared := True;
        Open;
        if Not IsEmpty then
        begin
          for I := Items.Count - 1 downto 0 do
          begin
            if Pos(EditUrun.Text, Items[I].SubItems[0]) > 0 then
            begin
              EditUrun.Clear;
              Form2.EditUrun.Text := '';
              Form2.Caption := 'var mış bu ürün';
              Urunbuldum := True;
              Break;
            end;
          end;
          if Not Urunbuldum then // Ürün yoksa ekle
          begin
            Itm := LVSatis.Items.Add;
            Itm.Caption := FieldByName('ID').AsString;
            Itm.SubItems.Add(FieldByName('BARKOD').AsString);
            Itm.SubItems.Add(FieldByName('URUN').AsString);
            Itm.SubItems.Add(FieldByName('SATIS').AsString);
            Itm.SubItems.Add('1');
            Itm.SubItems.Add(FieldByName('SATIS').AsString);
            EditUrun.Clear;
            Form2.EditUrun.Text := '';
            Form2.Caption := 'Yokmuş bu ürün';
          end;
        end;
      end;
    except
    end;
  end;
EditUrun.Clear;
 Form2.EditUrun.Text := '';
  Form1.FDQueryUrun.Close;
end;
Cevapla
#2
Merhaba,
except-end yerine finally-end kullanın. Edit clear işleminizi de Finally kısmına yazın.
Örn;
 if SplitViewSatis.Opened then
  begin
    try
     //...
     //...
    finally
      EditUrun.Clear;
      Form2.EditUrun.Text := '';
      Form1.FDQueryUrun.Close;    
    end;
//...
//...

Böylece işlem sonucu ne olursa olsa, son işlem olarak finally kod bölümü tamamlanacaktır.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
(09-06-2017, Saat: 15:46)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
except-end yerine finally-end kullanın. Edit clear işleminizi de Finally kısmına yazın.
Örn;
 if SplitViewSatis.Opened then
  begin
    try
     //...
     //...
    finally
      EditUrun.Clear;
      Form2.EditUrun.Text := '';
      Form1.FDQueryUrun.Close;    
    end;
//...
//...

Böylece işlem sonucu ne olursa olsa, son işlem olarak finally kod bölümü tamamlanacaktır.



Değişen birşey olmadı Huh
Cevapla
#4
(09-06-2017, Saat: 16:51)hido Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(09-06-2017, Saat: 15:46)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
except-end yerine finally-end kullanın. Edit clear işleminizi de Finally kısmına yazın.
Örn;
 if SplitViewSatis.Opened then
  begin
    try
     //...
     //...
    finally
      EditUrun.Clear;
      Form2.EditUrun.Text := '';
      Form1.FDQueryUrun.Close;    
    end;
//...
//...

Böylece işlem sonucu ne olursa olsa, son işlem olarak finally kod bölümü tamamlanacaktır.



Değişen birşey olmadı Huh

Kodun son halini (finally bölümü eklenmiş hali) paylaşabilir misiniz?
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
Birde neden KeyPress, herhangibir tuşa her bastığınızda bu işlemi yapar ?
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#6
(09-06-2017, Saat: 16:58)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(09-06-2017, Saat: 16:51)hido Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlDeğişen birşey olmadı Huh

Kodun son halini (finally bölümü eklenmiş hali) paylaşabilir misiniz?



Son hali bu hocam fakat değişen bir şey yok, edit işlem sonunda temizlenmiyor.


procedure TForm2.EditSatisKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  UrunSat(EditSatis.Text);
end;


function TForm2.UrunSat(SatilanUrunBarkodu: String): String;
var
  I: Integer;
  Itm: TListItem;
  Urunbuldum: Boolean;
begin
  try
    Urunbuldum := False;
  With QueryUrun, LVSatis do
    begin
      Connection := FDConnecMain;
      Close;
      SQL.Clear;
      SQL.Add('Select * From URUNLER Where BARKOD=:BR');
      ParamByName('BR').AsString := SatilanUrunBarkodu;
      Prepared := True;
      Open;
      if Not IsEmpty then
      begin
        for I := Items.Count - 1 downto 0 do
        begin
          if Pos(SatilanUrunBarkodu, Items[I].SubItems[0]) > 0 then
          begin
            Items[I].SubItems[3] :=
              IntToStr(StrToInt(Items[I].SubItems[3]) + 1);
            Urunbuldum := True;
            Break;
          end;
        end;
        if Not Urunbuldum then // Ürün yoksa ekle
        begin
          Itm := LVSatis.Items.Add;
          Itm.Caption := '';
          Itm.SubItems.Add(FieldByName('BARKOD').AsString);
          Itm.SubItems.Add(FieldByName('URUN').AsString);
          Itm.SubItems.Add(FieldByName('SATIS').AsString);
          Itm.SubItems.Add('1');
          Itm.SubItems.Add(FieldByName('SATIS').AsString);
        end;
      end;
    end;
  finally
    EditUrun.Clear;
    Form2.EditUrun.Text := '';
    SatisiHesapla(Self);
    QueryUrun.Close;
  end;
end;
Cevapla
#7
SatisiHesapla içinde EditUrun'e birşeyler yazılıyor olmasın?
There's no place like 127.0.0.1
WWW
Cevapla
#8
Pointbreak koyup kodu f8 ile takip edip nerede kod bloğunun dışına çıkıp geri dönmediğine bakman gerekiyor. Bu şekilde çok sağlıklı ilerlemiyor malesef. Çünkü kodda pek hata görünmüyor. Belki bir yerde hataya düşüyor fakat ekrana patlamıyor olabilir.
WWW
Cevapla
#9
Bir çok değişiklik yaptım sonunda bitti; Emeği geçen herkese teşekkür ederim;

function TForm2.SatisIslemleri(IdNumber: Integer; UBarkod, Urun, Satis: String;
 Adet: Integer; USatis: String): Integer;
var
 I: Integer;
 Itm: TListItem;
 Urunbuldum: Boolean;
begin
 try
   Urunbuldum := False;
   With LVSatis do
   begin
     for I := Items.Count - 1 downto 0 do
     begin
       if Pos(UBarkod, Items[I].SubItems[0]) > 0 then
       begin
         Items[I].SubItems[3] := IntToStr(StrToInt(Items[I].SubItems[3]) + 1);
         SatisAlert('Fiyat ve adet değişikliği yapıldı       ', 2);
         Urunbuldum := True;
         Break;
       end;
     end;
     if Not Urunbuldum then // Ürün yoksa ekle
     begin
       Itm := LVSatis.Items.Add;
       Itm.Caption := IntToStr(IdNumber);
       Itm.SubItems.Add(UBarkod);
       Itm.SubItems.Add(Urun);
       Itm.SubItems.Add(Satis);
       Itm.SubItems.Add(IntToStr(Adet));
       Itm.SubItems.Add(USatis);
       SatisAlert('Yeni ürün girişi yapıldı       ', 2);
     end;
   end;
 finally
   SatisBarkod.Clear;
   SatisiHesapla(Self);
 end;
end;



procedure TForm2.SatisBarkodChange(Sender: TObject);
var
 ID, AD: Integer;
 BR, UR, ST, US: String;
begin
 try
    With QueryUrun, LVSatis do
   begin
     Connection := FDConnecMain;
     Close;
     SQL.Clear;
     SQL.Add('Select * From URUNLER Where BARKOD=:BR');
     ParamByName('BR').AsString := SatisBarkod.Text;
     Prepared := True;
     Open;
     if Not IsEmpty then
     begin
       ID := FieldByName('ID').AsInteger;
       BR := FieldByName('BARKOD').AsString;
       UR := FieldByName('URUN').AsString;
       ST := FieldByName('SATIS').AsString;
       AD := StrToInt('1');
       US := FieldByName('SATIS').AsString;
       SatisIslemleri(ID, BR, UR, ST, AD, US);
     end;
   end;
 finally
FDQueryUrun.Close;
 end;
end;
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Excelden den import sırasında mükerrer kaydı konrol edip farklı işlem yapma musdi42 1 207 14-11-2017, Saat: 12:21
Son Yorum: uparlayan
  Yazıcı kuyruğu temizleme (Yardım) kasparov58 1 165 08-11-2017, Saat: 11:34
Son Yorum: SimaWB
  Bir edit dışında tüm editleri temizleme Dostk 7 617 24-05-2017, Saat: 14:53
Son Yorum: edo
  Aktif form dan diğer formlara işlem gönderme esistem 8 805 10-04-2017, Saat: 13:18
Son Yorum: witalihakko



Konuyu Okuyanlar: 1 Ziyaretçi