Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Veri Tabanına Kayıt Yaparken Yazdırma
#1
Arkadaşlar hayırlı akşamlar projemde sona yaklaştım çok şükür Delphican üyeleri sayesinde. Bir yerde takıldım şimdi Kayıt yaparken belirli şablondaki fişi nokta vuruşlu yazıcıdan çıktısını almam gerekiyor.

Örneğin araç daraya giriş yaptı 1. kaydı alındı, araç dolup geldi 2. tartıma girdi gerekli bilgiler girildi ve kaydet butonuna basılınca  aracın giriş çıkış tarihi ve saati, plaka numarası dara ağırlığı 2. ağırlık ve net ağırlık bilgisini barındıran bir fiş yazdırmasını istiyorum bunu nasıl yapabilirim. Yardımlarınız için şimdiden teşekkür ediyorum.

Raporlama aracı olarak quickreport kullanıyorum ve fiş şablonum hazır.
Cevapla
#2
Nokta vuruşlu yazıcı ile çalışan çok sayıda müşterim olduğundan, Bu benim uzmanlık alanım Smile
Artık LPT (Paralel) port yok. Bu yüzden yazıcının USB ile bağlamanız lazım. Bunu yapabilmeniz için öncelikle nokta vuruşlu yazıcının driverının Windows'ta yüklü olması lazım. Daha sonra bu yazıcıyı paylaşıma açmanız gerekiyor. Bundan sonrası kolay.
Kullanacağınız komut (MS-DOS üzerinden) "Net Use" komutu. Bunun için bir .bat dosyası yapmanız gerekiyor. Bu dosyanın içine şunu yazmanız gerekiyor;

Başlat>Çalıştır’a cmd yazıp tamama tıklayın.
C:\>net use lpt1 \\bilgisayar_adi\yazici_paylasim_adi

Networkteki bilgisayar adını ve yazıcı paylaşım adını doğru yazdıysanız,
Komut başarıyla tamamlandı diyecektir.

Komutun düzgün olarak çalıştığını görmek için
C:\>net use

LPT1 için oluşturulmuş olan kaydı silmek için
C:\>net use lpt1 /delete

Delphi tarafında nasıl yazdıracağınızı tarif etmeyi unuttum.

Bir tane TextFile açmanız gerekiyor.

Var F: TextFile;

Begin
assignFile(F, 'Lpt1'); ReWrite(f);
writeln(F, 'Bu yazı nokta vuruşludan basılır.');
CloseFile(F);
End;
Cevapla
#3
Sayın Enigma Hocam kusura bakmayın adınızı bilmediğim için böyle hitap etmek zorunda kaldım. Cevabınız için teşekkür ediyorum ama fiş içeriği nasıl yazdıracağım ya da fiş şablonunu nasıl hazırlayacağım bunu bilmiyorum yazıcıcı olayında sıkıntı yok fişte olması gereken bilgiler
Aracın Giriş çıkış tarihi ve saati Plaka no Alıcı firma Malın cinsi Satıcı firma varsa açıklama ve 1.Ağırlık 2. Ağırlık,Net ağırlık bilgisi bunların kaydı yapılıyor ama yapılırkende fiş yazdırması gerekiyor. Bilgiler mevcut ama yazıcı çıktısı almam gerekiyor. Bunu beceremedim.
Cevapla
#4
Yazıcıyı "LPT1" adındaki bir text dosyası gibi açtıktan sonra writeln(F, 'ne istiyorsan yaz');
burada satır atlamak için, Writeln(F); yazman yeterli. Boşluk bırakmak için Writeln(F, '':20); // 20 karakter boşluk bırak demek
sonra wirteln(F, ...) diye kullanacaksınız. Çok basit aslında.

Fiş üzerinde neyin nereye yazdırılacağını bu şekilde ayarlamanız gerekiyor.
Cevapla
#5
Merhaba.

Size pratik bir yöntem önereceğim.

(*) Boş bir delphi projesi açın ve bir forma bir adet TMemo koyun.
(*) Bu Memo'nun Font name : "Courier New" olsun. Bu font tipi aynı nokta vuruşlu bir yazıcı gibi eşit width ölçüsünde karakterler sunar. mesela A ile I aynı en ölçüsünde olacaktır.
(*) Bu Memoya satır satır, fişe yazılacak içeriği metin satırı olarak girin ve hizalamayı kontrol edin.
(*) Her satırın uzunluğu, sürekli formunuz fiş olduğuna göre olsa olsa A4 enindedir, draft mode standart 10cpi büyüklüğünde yazılacağını düşünerek satırdaki toplam boşluklar dahil 80 karakterden uzun karakter olmasın. Gerekirse ikinci satıra hizalansın.
(*) Şablonunuzu bu şekilde oluşturduktan sonra nasıl Memo1.Lines.Add('lşlkşlkşlkşl') deyip ekliyorsanız, kendi projenizde WriteLn(F, 'hhhlkl') şeklinde yazıcıya gönderebilirsiniz.


EK :
bir de satırları nasıl formatlıyorsunuz onu yazayım tam olsun.


var
  Satir : String;
begin

  Satir := Format('Tarih : %-10s %-15s Plaka : %-15s Fisno : %.10d', [ DateToStr(now), TimeToStr(now), '06 BV 7200', 10 ]);
  Memo1.Lines.Add( Satir );
  Memo1.Lines.Add( Format( '(Satır Uz. %d)', [ Length(Satir) ] ) );

  Satir := Format('Dara  : %4.2f kg. %14s Net Ağırlık : %4.2f kg.', [ 2000.00, '', 4000.00  ]);
  Memo1.Lines.Add( Satir );
  Memo1.Lines.Add( Format( '(Satır Uz. %d)', [ Length(Satir) ] ) );

end;



pf24tt4oh7jm4kppsorh.gif
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#6
Merhabalar
Hocam sorunuzu net anlamadim ben. Dotmateix yazicidan nasil yazilacagini mi soruyorsunuz? Yoksa son kayit eklendiginde otomatiik yazdirmasini mi istiyirsunuz bir trigger gibi bi nesne yada programcikla?
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#7
(18-01-2021, Saat: 19:10)bünyamin68 Adlı Kullanıcıdan Alıntı: Arkadaşlar hayırlı akşamlar projemde sona yaklaştım çok şükür Delphican üyeleri sayesinde. Bir yerde takıldım şimdi Kayıt yaparken belirli şablondaki fişi nokta vuruşlu yazıcıdan çıktısını almam gerekiyor.

Örneğin araç daraya giriş yaptı 1. kaydı alındı, araç dolup geldi 2. tartıma girdi gerekli bilgiler girildi ve kaydet butonuna basılınca  aracın giriş çıkış tarihi ve saati, plaka numarası dara ağırlığı 2. ağırlık ve net ağırlık bilgisini barındıran bir fiş yazdırmasını istiyorum bunu nasıl yapabilirim. Yardımlarınız için şimdiden teşekkür ediyorum.

Raporlama aracı olarak quickreport kullanıyorum ve fiş şablonum hazır.

Selamlar,
FastReport kullanırsanız, Matrix yazıcılar için düzenleme yapabiliyorsunuz. Ya da ücretsiz olarak ZReports bileşen setini kullanabilirsiniz.
Cevapla
#8
(19-01-2021, Saat: 03:05)mcuyan Adlı Kullanıcıdan Alıntı: Merhabalar
Hocam sorunuzu net anlamadim ben. Dotmateix yazicidan nasil yazilacagini mi soruyorsunuz? Yoksa son kayit eklendiginde otomatiik yazdirmasini mi istiyirsunuz bir trigger gibi bi nesne yada programcikla?

Evet dediğiniz gibi son kayıt eklendiğinde yazdırılmasını istiyorum ama belirli bir fiş şablonuyla.galiba ben çok basit sorulacak soruyu karmaşık hale getirmişim o yüzden cevap veren diğer arkadaşların affına sığınıyorum.
Cevapla
#9
Mantık olarak öyle yapın: Yeni kayıt okeylendiğinde en son işlemde: o kaydın fiş nosunu tutulduğu bir tabloya yazınb.. yazacağınız ufak bir programcık (Servis) ise o tabloyu kontrol etsin. yeni kayıt geldiğinde yazdırsın. Yazdırma başarılı ise yazdırıldı diye tablodaki ilgili kaydı update etsin. Sonırım tam istediğiniz mantık bu
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#10
(19-01-2021, Saat: 13:07)mcuyan Adlı Kullanıcıdan Alıntı: Mantık olarak öyle yapın: Yeni kayıt okeylendiğinde en son işlemde: o kaydın fiş nosunu tutulduğu bir tabloya yazınb.. yazacağınız ufak bir programcık (Servis) ise o tabloyu kontrol etsin. yeni kayıt geldiğinde yazdırsın. Yazdırma başarılı ise yazdırıldı diye tablodaki ilgili kaydı update etsin. Sonırım tam istediğiniz mantık bu

Çok teferruatlı olmasına gerek yok yazdırıldı bilgisininde tutulmasınada gerek yok bu küçük basit bir kantar programı yukarda yazmış olduğum bilgileri fişe basması yeterli benim için aslında Muharrem Arman hocam anlaşılır bir cevap vermiş ama deneme fırsatım olmadı akşam denerim inşallah.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Crystal Reports - Yazdırma iletişim kutusunda yazıcı seçimi devre dışı delphiX14 2 277 26-01-2026, Saat: 18:52
Son Yorum: frmman
  Datasnap veritabanı kayıt serdar 2 363 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 4.299 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 2.462 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63
  Barkod etiketi yazdırma sorunu Zebra tlp2844 HalilK. 1 703 21-01-2025, Saat: 14:48
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi