السلام عليكم
كيف استطيع طباعة هوية على وجهين باستخدام كويك ريبورت ... يعني كيف اصنع صفحتين مختلفتين على نفس التقرير .... ( تقرير يتألف من صفحتين وقت التصميم وفي المعاينة تظهر صفحتين وليس صفحة واحدة )
و عليكم السلام و رحمة الله
يجب النظر في خصوصيات المطبعة إن كانت تقبل الطباعة على وجهين
إذا تو فر الامر حاول بهذه الدالة
كود :
Function AccepteRectoVerso : boolean;
//يحدد ما إذا كانت الطابعة تدعم وضع الازدواج
var Device,Driver,Port : array[0..255]of char;
hDevMode : THandle;
begin
Printer.GetPrinter(Device,Driver,Port,hDevMode);
Result:=WinSpool.DeviceCapabilities(Device,Port,DC_DUPLEX,nil,nil)<>0;
end;
Procedure ModeRectoVerso;
var Device, Driver, Port : array[0..255] of Char;
DevMode : THandle;
pDevMode : PDeviceMode;
begin
Printer.GetPrinter(Device, Driver, Port, DevMode);
if DevMode<>0 then
begin
pDevMode:=GlobalLock(DevMode);
if pDevMode<>nil then
try
with pDevMode^ do
begin
dmDuplex:=DMDUP_VERTICAL;
dmFields:=dmFields or DM_DUPLEX;
end;
Finally
GlobalUnLock(DevMode);
end;
end;
end;
للاستعمال
كود :
begin
if AccepteRectoVerso then ModeRectoVerso;
Printer.BeginDoc;
ImprimerPageRecto;
Printer.NewPage;
ImprimerPageVerso;
Printer.EndDoc;
end;
بصراحة مافهمت !!
يعني عندي تقريرين منفصلين (أو) كيف اصنع تقرير يتألف من صفحتين؟
توضيح أكثر
اقصد انو مجرد مااعطي معاينة للتقرير يطلعلي صفحتين بالمعاينة وكل صفحة تحتوي معلومات مختلفة عن الصفحة الاخرى .... يعني ببساطة انا بدي اطبع ID Card الها وجه وخلف بضغطة زر واحدة
نعم أخي لقد فهمت سؤالك من الأول، و لطباعة على واجهتين يجب أن تكون المطبعة قادرة على عمل ذلك،و ليس برمجيا
راجع الكتيب الخاص بالمطبعة، و الدالة التي سبق أن ذكرتها تقوم بالتأكد إن كانت المطبعة قادرة على الطباعة على وجهين أي( Dublex (Recto-Verso
الطابعة من نوع smart dual وتدعم الطباعة على وجهين .... من البرنامج الموفق معها تطبع نظامي .... لكن من برنامجي ماالحل ؟
علما انه لدي تقريرين منفصلين الاول للوجه والثاني للخلف ومصنوعة بـ quickreport
حاولت مع qrcomposite مامشي الحال
المثال يلي اشرت اليه اخي جيد ... لكن مشكلتي في الفقرة
ImprimerPageRecto;
ImprimerPageVerso;
كيف ارسل الوجه الاول للطابعة ثم كيف ارسل الوجه الثاني