اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته  عندي برنامج لطباعة الباركود علي المنتجات الاستهلاكية 

واجهتني به مشكله تتلخص في 

بعد البحث عن الصنف يتم طباعته من خلال تقرير طبعا عندي مربع نص  اسمه (t3)لتحديد عدد الملصقات التي يتم طباعته سواء 1او 2 اواي عدد ( و احد الاخوه اعطاني هذا الكود 

Private Sub PRENT_Click()
Dim i As Integer
Do Until i = t3
i = i + 1
DoCmd.OpenReport "medicine", acViewNormal
Loop
End Sub

الكود يعمل تمام  بس المشكله هنا انه لما ادي امر طباعة للطابهة الزبرا مثلا حددة في مربع النص عدد 5 ملصقات من المفترض انه يرسلهم امر واحد 

بل يرسل كل واحد من ال 5  علي حده فالطابعه تطبع واحد وتقف 5ثواني وتطبع الثاني وهكذا  

مرفق نسخة من البرنامج فورم الطباعة هو form8

272.BARCODE.accdb (1).zip

قام بنشر (معدل)

وعليكم السلام :rol:

 

احذف الكود اللي عندك ، وجرب هذا الكود:

DoCmd.OpenReport "medicine", acViewPreview
DoCmd.PrintOut , , , , Me.t3
DoCmd.Close acReport, "medicine"

 

جعفر

تم تعديل بواسطه jjafferr
قام بنشر

واذا ما اردت المستخدم يشوف التقرير ، اخفيه :rol:

DoCmd.OpenReport "medicine", acViewPreview, , , acHidden
DoCmd.PrintOut , , , , Me.t3
DoCmd.Close acReport, "medicine"

 

جعفر

  • Like 1
قام بنشر

الف شكر اخي جعفر الكود الاول يعمل 100% وهذا هو المطلوب بالظبط جزاك الله خير الجزاء وجعله الله في ميزان حسناتك

اما بالنسبه للكود الثاني الي فيه اخفاء التقرير فعند الطباعة يطبع لي النموذج وليسي التقرير

قام بنشر

الحمدلله :rol:

 

في الأمر docmd.printout اعتقد نقدر نخبره بإسم التقرير ، فعليه لن يأخذ من النموذج.

 

جرب وشوف

 

جعفر

قام بنشر

الظاهر ان الامر Docmd.Printout يطبع النموذج/التقرير اللي في الامام ،

ولما كان التقرير مخفي ، فالتقرير هو اللي اصبح ظاهر ، فطبعه :rol:

 

طيب ، هذه حيلة استخدمها بعض الاوقات:

بعض الاوقات لما اريد اعمل شئ وما اريد المستخدم يشوفه ، فاطلب من اكسس ان:

  1. يوقف صورة الشاشة ، 
  2. يعمل المطلوب (بينما المستخدم يشاهد الشاشة التي لم تتجدد ، يقوم البرنامج بعمل المطلوب) ،
  3. يعطينا الشاشة الجديدة 

 

جرب هذه الطريقة:

Application.Echo False
DoCmd.OpenReport "medicine", acViewPreview, , , acHidden
DoCmd.PrintOut , , , Me.t3
DoCmd.Close acReport, "medicine"
Aplication.Echo True

 

جعفر

  • Like 1
قام بنشر (معدل)

السلام عليكم و رحمة الله و بركاته

و تحية خاصة للاستاذ جعفر

الأخ حسين :

اضافة سطر بسيط في الكود السابق ستنحل المشكة ان شاء الله

DoCmd.OpenReport "medicine", acViewPreview, , , acHidden
DoCmd.SelectObject acReport, "medicine"
DoCmd.PrintOut , , , , Me.t3
DoCmd.Close acReport, "medicine"

بالتوفيق

تم تعديل بواسطه ابو عارف
  • Like 2
قام بنشر
36 دقائق مضت, ابو عارف said:

DoCmd.SelectObject acReport, "medicine"

.

رحم الله والديك ، كنت افتش على هذا الامر وما لقيته :rol:

 

 

جعفر

قام بنشر
20 ساعات مضت, محمد سلامة said:

الله عليك يا استاذ جعفر 

كود جميل جدا..

 

أخي العزيز محمد :rol:

 

شكرا لك على تشجيعك المستمر والامتناهي ،

تحية إجلال وإحترام لشخصك الكريم :wub:

 

جعفر

  • Like 1
قام بنشر
53 دقائق مضت, jjafferr said:

 

أخي العزيز محمد :rol:

 

شكرا لك على تشجيعك المستمر والامتناهي ،

تحية إجلال وإحترام لشخصك الكريم :wub:

 

جعفر

بارك الله فيك استاذ جعفر منكم تعلمنا ومازلنا نتعلم انتم استاذتنا ومعلمينا واقل شئ نشكركم فهذا حقكم علينا نحن الطلاب 

غفر الله لك ولوالديك وأسال الله ان يجعل كل ماتقدمونه صدقة جارية وفي ميزان حسناتكم

تحياتي

  • Like 1
قام بنشر

حياك الله أخوي حسين :rol:

 

بس طلب لوسمحت تجرب وتخبرنا النتيجة:

1. مال مشاركتي الاخيرة اللي فيها Application.Echo False ،

2. وكذلك مال اخينا ابوعارف ، لأني اعرف اننا لا يمكن ان نعمل setfocus على حقل مخفي في نموذج ، فما ادري اذا ممكن نستخدم Docmd.SelectObject على تقرير مخفي :rol:

 

 

جعفر

 

 

  • Like 1
قام بنشر

اخي الفاضل جعفر لي ملحوظه بسيطه  هي بعد معالجة ارسال امر  العدد  الكتوب في مربع النص عدد الملصقات في امر واحد  عن طريق هذا الكود

DoCmd.OpenReport "medicine", acViewPreview
DoCmd.PrintOut , , , , Me.t3
DoCmd.Close acReport, "medicine"

الامر نجح وير سل العدد في امر واحد 

بس الطابعة مثلا لوعطيت امر مثلا 5 او 10 او اي عدد اكبر من 3  لاحظت انا الطابعة كل 3 ملصقات تقف اقل من ثانيه 

مع العلم انه في برنامج علي فيجول بيسك  عند اعطاء الامر  مثلا ولو  20 يطلع مره واحد ولا توجد هذه الوقفه البصيطه

وللعلم ايضا اني سألت مصصم برنامج الفيجول قال لي انه بيرسل لامر الي ملف تكست ويدي امر للملف بالطباعه علي حسب ما فهمت . وشكر واسف علي الاطالة

هل من حل  وشكرا 

قام بنشر

وعليكم السلام :rol:

 

نعم ممكن ، وذلك بعمل جدول مؤقت للطباعة ويكون مصدر التقرير medicine :rol:

في النموذج Form8 ، وعند النقر على الزر "طباعة باركود" ، فيجب ان نعمل سجلات بالعدد المطلوب في الجدول المؤقت ،

ثم نعطي زر الطباعة

DoCmd.OpenReport "medicine"

حيث ان الجدول سيحتوي على عدد السجلات المطلوبة مباشرة ،

بينما نحن الان ، نطلب منه ان يطبع ، ثم يطبع ، ثم يطبع ، ثم ...

 

جعفر

قام بنشر

استاذي الفاضل جعفر انا عارف اني اسقلت عليك بكثرة اسألتي ولاكن البحر يحب الزياده ولكي يستفيد الجميع  

فهل ممكن لو تكرمت تطبيق ذلك  في مثال

قام بنشر (معدل)

تفضل :rol:

 

عملنا جدول جديد مؤقت للطباعة tbl_Temp وفيه الحقول المطلوبة لطباعة الباركود:

272.Clipboard01.jpg.7a407337146d3d32393a

.

فاصبح علينا في الكود ان نحذف جميع سجلات هذا الجدول ، ثم نضيف بيانات الباركود الجديد ، على حسب عدد السجلات المطلوبة ،

وبعدها نفتح التقرير ، والذي عملنا مصدره tbl_Temp .

والكود اصبح:

Private Sub PRENT_Click()
If Me.t3 = 0 Then
MsgBox ("لابد ان يكون حقل عدد الملصقات اكبر من صفر")
End If

    'delete the tbl_Temp Records
    mySQL = "Delete * From tbl_Temp"
    CurrentDb.Execute (mySQL)
    
    'add the number of Records
    Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("Select * From tbl_Temp")
    
    For i = 1 To Me.t3
        rst.AddNew
            rst!SMALL_UNIT_PRICE = Me.SMALL_UNIT_PRICE
            rst!uuu = Me.uuu
            rst!uun = Me.uun
            rst!ITEM_CODE = Me.ITEM_CODE
            rst!ITEM_BARCODE = Me.ITEM_BARCODE
            rst!FACTOR = Me.FACTOR
            rst!ITEM_NAME2 = Me.ITEM_NAME2
            rst!SUPP_CODE = Me.SUPP_CODE
        rst.Update
    Next i
    
    rst.Close: Set rst = Nothing

    'now print the Report
    DoCmd.OpenReport "medicine"
    
End Sub

.

السبب ان هذه الطريقة اسرع في الطباعة ، لأننا نرسل جميع السجلات الى التقرير مرة واحدة ، فالى الطابعة ،

بينما في الطريقة السابقة ، كان هناك سجل واحد فقط في التقرير ، وكنا نفتح ونغلق التقرير عدة مرات لطباعة الباركود الواحد.

 

وهنا اود ان ارفع الى اختنا الفاضلة الدكتورة أم عهود كل تحية واجلال واحترام لبُعد نظرها وبراعتها ،

لأني اتذكر في منتدى الفريق العربي للبرمجة ، في موضوع طباعة الباركود ، انها عملت الكود لتحفظ سجلات الباركود في جدول مؤقت ، وانا وبسبب قلة خبرتي قلت انه من الافضل عدم عمل الجدول ، والطلب من التقرير الطباعة مباشرة (مثل ما عملنا سابقا) ، والآن فقط عرفت السبب ، وهو سرعة/بطئ الطباعة :rol:

 

 

جعفر

272.BARCODE.accdb.zip

تم تعديل بواسطه jjafferr
  • Like 2
قام بنشر

 

20 ساعات مضت, husseinarby said:

اخي الفاضل جعفر لي ملحوظه بسيطه  هي بعد معالجة ارسال امر  العدد  الكتوب في مربع النص عدد الملصقات في امر واحد  عن طريق هذا الكود


DoCmd.OpenReport "medicine", acViewPreview
DoCmd.PrintOut , , , , Me.t3
DoCmd.Close acReport, "medicine"

الامر نجح وير سل العدد في امر واحد 

بس الطابعة مثلا لوعطيت امر مثلا 5 او 10 او اي عدد اكبر من 3  لاحظت انا الطابعة كل 3 ملصقات تقف اقل من ثانيه 

مع العلم انه في برنامج علي فيجول بيسك  عند اعطاء الامر  مثلا ولو  20 يطلع مره واحد ولا توجد هذه الوقفه البصيطه

وللعلم ايضا اني سألت مصصم برنامج الفيجول قال لي انه بيرسل لامر الي ملف تكست ويدي امر للملف بالطباعه علي حسب ما فهمت . وشكر واسف علي الاطالة

هل من حل  وشكرا 

اخي الفاضل جعفر المشكله المذكوره في الاعلي مازالت ما اعرف مالسبب 

ارسل اليك المرفق الذي طبقت عليه الكود ربما يكون الخطأ من عندي

BARCODE22.rar

قام بنشر

وعليكم السلام أخي حسين :rol:

 

الكود والطريقة صحيحة ، ولكني عدلت على التقرير قليلا ، فما ادري اذا بيصلح الوضع :rol:

 

ملئت الجدول ببعض البيانات

272.2.Clipboard02.jpg.5e749c71867029b169

.

وشغلت التقرير يدويا

272.2.Clipboard03.jpg.4598e6e79adcb92da7

.

والنتيجة

272.2.Clipboard04.jpg.7027e997f261d6ca35

.

هذا معناه ان التقرير يشتغل بصورة صحيحة ، ويمكن طباعته مباشرة بكل البيانات مرة واحدة!!

 

جرب المرفق واخبرني :rol:

 

 

جعفر

272.2.BARCODE22.accdb.zip

  • Like 1
قام بنشر

انا آسف أخي حسين ، فا لاقتراح الوحيد المتبقى عندي هو ان تعمل تقرير جدولي مرة اخرى ، بحيث تستطيع ان ترى جميع الحقول فيه.

 

 

جعفر

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information