3. yazıcı çıktısından sonra şifre...
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
3. yazıcı çıktısından sonra şifre...
Merhaba Arkadaşlar
Bir kuruma, Database ile çalışan üye kayıtlarını tutan ve raporlarını veren bir program yazdım.Program takır takır çalışıyor fakat bir yerde bir türlü önümdeki taşı atlayamadım.
Şimdi bu üyelere kurum bir belge veriyor.Bu belgeyi yazıcıdan her çıkardığında veritabanına verilen belgeyi kaydediyor.Buraya kadar sorun yok.
Bu belgeden aynı üyeye 3 defa verildiği zaman 4. ve yukarısı için belgeyi program vermeyecek. 4. belgenin verilmesi için yönetici devreye girecek ve kendi şifresiyle onay verirse program 4. belgeyi yazıcıdan verecek.
Bu mantık içerisinde programı hangi kodlarla tasarlayacağımı keşfedemedim.
Yardımlarınızı bekliyorum
Hepinize Saygılar
Bir kuruma, Database ile çalışan üye kayıtlarını tutan ve raporlarını veren bir program yazdım.Program takır takır çalışıyor fakat bir yerde bir türlü önümdeki taşı atlayamadım.
Şimdi bu üyelere kurum bir belge veriyor.Bu belgeyi yazıcıdan her çıkardığında veritabanına verilen belgeyi kaydediyor.Buraya kadar sorun yok.
Bu belgeden aynı üyeye 3 defa verildiği zaman 4. ve yukarısı için belgeyi program vermeyecek. 4. belgenin verilmesi için yönetici devreye girecek ve kendi şifresiyle onay verirse program 4. belgeyi yazıcıdan verecek.
Bu mantık içerisinde programı hangi kodlarla tasarlayacağımı keşfedemedim.
Yardımlarınızı bekliyorum
Hepinize Saygılar
En son ademiz tarafından 08 May 2004 12:19 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Bastırılan değerleri Alan'a kaydet ve kullanıcı adına göre sınırlama yap mesala X kullanıcısı ise AlanDeğeri > 3 ten fazlaysa yazdırmasın Y kullanıcısı ise direk yazdırsın.
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
bence belgeyi yazdırdığın x kullanıcısına bir alan ekle (kaç) ve işlem gerçekleşmeden önce bu kişinin kaç alanını sorgula boş olan değerlere 0 ata if table1kaç.value<3 then
kac:=kac+1;
gibi küçük ise bir arttır sonra bu alanı kaydet eğer şart sağlanmıyor ise ekrana mesaj gönder ve ister parola sor ister başka bir şey onay gelirse yazdırsın ve istersen bunu kaydet. Başarılar
kac:=kac+1;
gibi küçük ise bir arttır sonra bu alanı kaydet eğer şart sağlanmıyor ise ekrana mesaj gönder ve ister parola sor ister başka bir şey onay gelirse yazdırsın ve istersen bunu kaydet. Başarılar
Bence, once programda kullanici levellari olustur. Bu levellar icin yetkiler belirle. Falanca raporu bas, filanca islemi yap gibi programina ozgu isler bunlar. Sonra her kullaniciya level tanimla. Bu zorunlu olmasin, her kullanici default bir levela sahip olsun. Sonra databasede tutacagin raporun kullanici tarafindan basilma sayisini kullanicinin bulundugu leveldaki rapor basma sayisi ile karsilastirarak kontrol edebilirsin. Tavsiyem hic bir zaman kodun icerisinde 3 ten kucuk 5 ten buyuk gibi kontroller yapma. Bu degerler bir tanimlamadan gelmeli yada bir islem bu sonucu bu degerler olusmali, daha sonra o kodu acip baktiginda bu 3 nereden geliyordu
durumu vakit kaybina yol acabilir. 3 Degeri degistigi zaman programi degistirip yeniden derlemen gerekir, tanimlama seklinde yaparsan buna gerek kalmaz.

Arkadaş Asker galiba




Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Bu belgeyi yazıcıdan her çıkardığında veritabanına verilen belgeyi kaydediyor
bunun yanına belgeyi kaçıncı defa verdiğinide kaydet. yazdırma işleminden önce kontrol et. 3 den büyükse şifre iste. yazdıktan sonra da alanın değerini arttır.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
işlemi eğer qreport kullanıyorsan OnPrint Olayına yazarak Yaparsan Daha Sağlam olur diye düşünüyorum.
Tabi kaçıncı defa yazıldıgını data da tutman gerekıiyor..
Tabi kaçıncı defa yazıldıgını data da tutman gerekıiyor..
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Arkadaşlar Aşağıdaki kodla Problemimi çözdüm
procedure TGenelForm.btnYazdirClick(Sender: TObject);
var
yazdir : String;
begin
//RvProject1.Execute;
if Yazdir >= 4 then
begin
if Application.MessageBox('Bu belgeyi yazdırabilmeniz için Yönetici onayı almanız gerekiyor!..','Yönetici Onayı',
mb_Ok + mb_IconWarning + mb_DefButton1)= IDOK then
begin
TabControl_YonOny.BringToFront;
Login.SetFocus;
end
end
else
begin
if Yazdir <= 3 then
RvProject1.ExecuteReport('RpBelge');
end;
ToolBar2.Enabled := true;
begin
BelgeTable.Open;
BelgeTable.Edit;
BelgeTable.Insert;
BelgeTable.FieldByName('UyeNo').AsString := KisiselTable.Fields[0].AsString;
BelgeTable.FieldByName('Tarih').AsDateTime := Date;
BelgeTable.FieldByName('Yazdir').AsString := '1';
BelgeTable.Post;
end;
end;
procedure TGenelForm.btnYazdirClick(Sender: TObject);
var
yazdir : String;
begin
//RvProject1.Execute;
if Yazdir >= 4 then
begin
if Application.MessageBox('Bu belgeyi yazdırabilmeniz için Yönetici onayı almanız gerekiyor!..','Yönetici Onayı',
mb_Ok + mb_IconWarning + mb_DefButton1)= IDOK then
begin
TabControl_YonOny.BringToFront;
Login.SetFocus;
end
end
else
begin
if Yazdir <= 3 then
RvProject1.ExecuteReport('RpBelge');
end;
ToolBar2.Enabled := true;
begin
BelgeTable.Open;
BelgeTable.Edit;
BelgeTable.Insert;
BelgeTable.FieldByName('UyeNo').AsString := KisiselTable.Fields[0].AsString;
BelgeTable.FieldByName('Tarih').AsDateTime := Date;
BelgeTable.FieldByName('Yazdir').AsString := '1';
BelgeTable.Post;
end;
end;