أقوم بتصميم تقرير عبارة عن فاتورة بيع (رسيت) على الورق المسمى 70 مم الذى مقاسه حوالى 7.7 سم والمشكلة إننى قمت بضبط عرض الورقة 7.7 سم داخل تقرير الكريستال ريبورت لكن المشكلة لا أدرى ماهو طول الورقة التى يجب ضبطه داخل التقرير لأن هذه الورقة كما تعلمون عبارة عن رول من الورق .. فمثلا إذا قمت بضبط الورقة على طول 20 سم وتم الكتابة على 10 سم فقط فى الفاتورة هل ستتوقف الطابعة عن الكتابة بعد الـ 10 سم لتكون طول الورقة المستهلكة داخل الفاتورة 10 سم ام ستكمل الطابعة خروج باقى الـ 20 سم فارغين ... أفيدونى ما هو الحل ؟؟؟؟؟؟؟؟؟؟؟
مقاس ورقة فاتورة البيع
السلام عليكم و رحمة الله و بركاته ..
أرجوا من يتوفر له إجابة لسؤالى أن يجيبنى لحاجتى الشديدة للإجابة
السام عليكم ...
جرب و صمم التقرير بأعلى الصفحة .. و خذه إلى جهاز العميل و جرب ...
لكن حسب معلوماتي أن طابعات الــ POS - Point Of Sales . أو تسمى بــ receipt printer . لها طريقة تعامل خاصة بها ..

يوجد مكتبة خاصة بها (طباعة - فتح الجارور (drawer) .. إظهار رقم على اللوحة الرقمية ربما ) .. POS for Dot NET .رابط..و فيه صف خاص اسمه PosPrinter .. رابط حيث ترسل له الأحرف و الأوامر للطباعة .. و بعض الطابعات لها المكتبة الخاصة بها مثل Epson OPOS for .Net ADK
و كود الطباعة سيكون بالشكل التالي :رابط:
//in Form_Loading event
DeviceInfo oDevicePrinter = myExplorer.GetDevice(DeviceType.PosPrinter, "POSPrinter");
oPrinter = (PosPrinter)myExplorer.CreateInstance(oDevicePrinter);
try
{
if (oPrinter != null)
{
oPrinter.Open();
oPrinter.Claim(1000);
oPrinter.DeviceEnabled = true;
}
}
catch (Exception exPrinter)
{
MessageBox.Show(exPrinter.ToString(), "Warning");
}
// Print Button Click Event handle this code.
try
{
oPrinter.PrintNormal(PrinterStation.Receipt, txtPrint.Text + DateTime.Now.ToString());
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}و هنا مثال آخر ربما يفيدك في التعامل مع هذه الطابعات ..
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
والله نفسي في برنامج مبيعات فيجوال 2008 و كريستال
سوف ادعوا لك كثيرا
مش مهم سي شارب احوله الي فيجوال بيسك
أشكرك كثيرا أخى houssam11350_11350
ولكن لى إستفسار , معنى كلام حضرتك أنه إذا قمت بتصميم الفاتورة (الرسيت) وجعلت عرض الورقة حوالى 7.7 سم و أرسلته لطابعة الفواتير لن يتم الطباعة كأى طابعة أم ماذا تقصد بانها لها معاملة خاصة ؟
تم تعديل هذه المشاركة بواسطة محمد أحمد إبراهيم في 5 نوفمبر 2011 في 20:18
السلام عليكم ...
بصراحة معلوماتي عن الموضوع نظرية ... و لم تتاح لي الفرصة كي أطبقها ...لذلك كانت أول نصيحة لك هي أن تجرب :
اقتباسجرب و صمم التقرير بأعلى الصفحة .. و خذه إلى جهاز العميل و جرب ...
اقتباسلكن لى إستفسار , معنى كلام حضرتك أنه إذا قمت بتصميم الفاتورة (الرسيت) وجعلت عرض الورقة حوالى 7.7 سم و أرسلته لطابعة الفواتير لن يتم الطباعة كأى طابعة أم ماذا تقصد بانها لها معاملة خاصة ؟
الموضوع مطروح أيضا بالمنتديات الأجنبية .. (كما قلت لم أجربه).
و خلاصته أنه يمكنك طباعة التقرير من كريستال ريبورت على هذه الطابعات لكنها تستمر بسحب الورق حسب مقاس التقرير (يطبع كامل الصفحة حتى لو فيها سطر واحد )
بعض الحلول الإلتفافية (work around) .. مثل تغير حجم الصفحة بما يتناسب مع التقرير كما في الرابط..و أنا جربته مرة و لكنه لم يعمل .. حاول به ..
حل آخر مطروح هنا.. هو تحويل التقرير إلى ملف نصي ثم طباعة الملف النصي من سطر الأوامر (لا أعرف كيف يتم ذلك).
أما ما قصدته بمعاملة خاصة فهي استخدام مكتبات خاصة تزودنا بالصفوف المطلوبه للتعامل مع هذه الطابعات مثل الصف PosPrinter .. الذي ذكرته بالمشاركة السابقة ..
و نتمنى من الأعضاء الذين طبقوا الموضوع بشكل عملي أن يزودونا بخبرتهم ..
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
أشكرك كثيرا أخى houssam11350_11350 على إهتمامك ..
و أدعوا كل من له معلومة بشأن هذا الموضوع أن لا يبخل علينا بها نظرا لإحتياجى الشديد لهذه المعلومة .. و كل عام و أنتم بخير
أتمنى أن يقوم الأعضاء من لهم الخبرة فى هذا الموضوع بشرحه لنا بالتفصيل حتى تعم الفائدة علينا جميعا
السلام عليكم اخي محمد
اتبع معي الخطوات التالية
اذهب الى الطابعات والفاكسات
انقر بزر الماوس الايمن واختار الخيار Server Properties
يظهر لك صندوق حواري انقر على Forms ثم اشر على الخيار Create a new Forms
في الخانه From name اختار اسم للورق الذي تستخدمه مثلا new_A7 ثم حدد له مقاسات الورق باستخدام مسطره وهنا يجب ان تحدد القياس اما بالمليميتر او بلانش وبعد ذلك قم
بادخال مقاسات طول الورقه في خانة الطول ومقاسات العرض في خانه العرض
و بعد ان يتم ادخال الطول والعرض اضغط على الزر Save Form ثم موافق وستم اضافة الورقة الى خيارات حجم اوراق الويندوز المتاحة مثل باقي الاورق A4 , A3 الخ
ثم ارجع الى بيئة الكريستال ريبورت واذهب لخيار اعدادت الطابعة
File>Printer Setup>Size
اختار حجم الورق الذي حددناه مسبقا new_A7 واحفظ الخيارات
الرجاء بعد التجربه اعلامي بما يحصل معك او ارسل لنا مثال للبرنامج وسنحاول بمعية الإخوة الكرام حل مشكلتك
بالتوفيق
"نحن لا نستسلم... ننتصر أو نموت.... وهذه ليست النهاية... بل سيكون عليكم أن تحاربوا الجيل القادم والاجيال التي تليه... اما أنا... فإن عمري سيكون أطول من عمر شانقي."
عمر المختار
اللهم انعم على بلادي بالأمن والأمان
السلام عليكم ..
قمنا بمناقشة مشابهة هنا حاولوا الاستفادة منها ..
اعتقد أن طرح الأخ عبد الجليل .. لا غبار عليه و يعمل .. لكن يجب عمل نفس الاعدادات على جهاز العميل ..
لا إله إلا الله ... محمد رسول الله
لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة
المعرًف القديم : houssam11350_11350
من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر
أشكركم كثيرا على المساعدة .. ولكنى بحق أحتاج مساعدتكم لأن برنامجى متوقف على هذه المشكلة ..
المشكلة هى أننى أريد التحكم فى طول ورقة التقرير حسب عدد الأصناف .. مثال : لو قمت بضبط إعدادات الورقة على طول 15 سم مثلا وقمت بالطباعة على 8 سم فقط فسوف تقوم الطباعة بسحب الـ 15 سم كاملا من رول الورق و هذا يسبب شكل غير لائق للفاتورة و كذلك إهدار للورق ..
.... أطلب من الأعضاء الكريم ممن له الخبرة فى هذا الموضوع أن يكتب لنا موضوعا كاملا عن طباعة فاتورة البيع (receipt) باستخدام طابعة الفواتير pos
أخي الفاضل محمد أحمد أبراهيم
لقد بحثت لك عن هذه المشكلة فوجدت مشاركات تتحدث عن نفس الموضوع لكن اقربها وجدتها علي موقع CodeProject
وقد أفادو بأن الطريقةالمثلي لطباعة فاتورة بهذا الشكل يجب عن ان تكون عن طريق DOS لان الكريستال ريبورت لا يستطيع ان يفيدك في هذه الجزئية
حاول قراءة الثلاثة حلول المقدمة علي الموقع ربما تفيدك
http://www.codeproject.com/Questions/196837/c-Crystal-Report-Print
وهذه روابط أخري نتيجة بحثي ربما تجد بداخلها ما تريد
تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 11 ديسمبر 2011 في 14:51


أخي الفاضل محمد أحمد ابراهيم
في رأيي الشخصي ان تقوم بضبط طول التقرير علي مقاس محدد 10 مثلاً و عندما تزيد البيانات عن 10 سم يطبع علي الورقة الثانية واذا كانت أقل فسوف يتبقي ما تبقي من الــ 10 سم في الورقة
ولن يضيع الكثير من الرول فقد راجعت بعض Receipts الخاصة بالمحلات التجارية الكبيرة ووجدت ان الورقة عندما اقوم بشراء سلعة واحدة تطبع الورقة وبها جزء فارغ ليس بكبير واذا زادت عن هذا الحد تقوم بطابعة ورقة أخري وعلي اي حال الموضوع محتاج تجربة ومحتاج ايضا مراجعة اعدادات الطابعة فربما يكون فيها خيارات قد تساعدك علي تنفيذ المطلوب بالشكل الامثل
بالتوفيق


أخى الكريم محمد فؤاد تركي أشكرك كثيرا لإهتمامك .. سوف أقوم بتجربة إقتراحك و أخبر حضرتك بالنتيجة
يا جماعة الموضوع مش بهذا التعقيد أنت أضبط العرض فقط أما الطول فالتقرير ياخذ طول الفاتورة بعدد الأصناف مثلاً في الفاتورة والطابعة تلقائياً تصل إلى
آخر سطر مكتوب وتقطع الورقة مباشرةً إذا كنت مفعل خدمة تقطيع الورق
لا تحتاج إلى كود ولا إلى ضبط الطول وهذا الكلام من تجربة أنا وأنا مبرمج بالفجول بيسك دوت نت وعندي برنامج مبيعات شبه متكامل
ومن يريد الاستفسار عن اي شيء تحت مجال خبرتي
M.ALSHA3RI كتب:يا جماعة الموضوع مش بهذا التعقيد أنت أضبط العرض فقط أما الطول فالتقرير ياخذ طول الفاتورة بعدد الأصناف مثلاً في الفاتورة والطابعة تلقائياً تصل إلى
آخر سطر مكتوب وتقطع الورقة مباشرةً إذا كنت مفعل خدمة تقطيع الورق
لا تحتاج إلى كود ولا إلى ضبط الطول وهذا الكلام من تجربة أنا وأنا مبرمج بالفجول بيسك دوت نت وعندي برنامج مبيعات شبه متكامل
ومن يريد الاستفسار عن اي شيء تحت مجال خبرتي
جزاك الله خيرا اخي
كيف يمكنني الغاء خاصيه تقطيع الورق ؟؟؟
انا ايضا اعاني من هذه المشكلة في الاكسس ارجو من لديه اي فكرة عن الموضوع يفيدنا ولكم الفضل
السلام عليكم جميعا، الحل بسيط جدا وهو تفعيل حيز ذيل التقرير في الكريستال ريبورت فمن المعروف أن الكريستال ريبورت له اقسام وهي (رأس الصفحة، وعنوان الصفحة ، والتفاصيل، وذيل الصفحة) اي قم بتفعيل اخر حيز في التقرير واكتب فيه ملاحظة مثلا (شكرا لزيارتكم متجر كذا الخ) وسيتم قطع الورقة وهذه عن تجربة في نظام يازسيس للمبيعات والحمد لله الان يعمل مع جميع انواع طابعات الرول.
تحياتي للجميع