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

نجوم المشاركات

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      7

    • Posts

      4796


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      3

    • Posts

      10107


  3. محمد طاهر عرفه

    محمد طاهر عرفه

    إدارة الموقع


    • نقاط

      1

    • Posts

      8752


  4. منتصر الانسي

    منتصر الانسي

    المشرفين السابقين


    • نقاط

      1

    • Posts

      1340


Popular Content

Showing content with the highest reputation on 06/01/26 in all areas

  1. المعذرة اخوي منتصر ، احنا نتكلم عن النسخة في هذه المشاركة ، والتي يكون في اطرافها المساحة البيضاء الاضافية : . 2. الكود كان يأخذ اطول بكثير في العمل ، وكنت اسمع صوت CPU الجهاز يصرخ لأن جهازي قديم 🙂 1. في الواقع التقصير مني ما تطرقت للكود بعد ان حصلت على رسالة الخطأ ، فالمعذرة 😞
    2 points
  2. تفضل اخي منتصر .. التعديلات التي تمت :- الدالة DrawAndSaveBarcode أصبحت :- Public Sub DrawAndSaveBarcode(txt As TextBox, img As Image, barcodeType As String, Optional bVertical As Boolean = False) Dim saveDir As String Dim fullPath As String Dim parentReport As Report Dim saveMode As String Dim shouldSave As Boolean On Error Resume Next Set parentReport = img.Parent If parentReport Is Nothing Then Set parentReport = img.Parent.Parent On Error GoTo 0 saveMode = "NoSave" If Not parentReport Is Nothing Then saveMode = Nz(parentReport.OpenArgs, "NoSave") End If shouldSave = False If saveMode = "SaveAll" Or saveMode = "SavePage" Then shouldSave = True End If If shouldSave Then saveDir = CurrentProject.Path & "\QRImg\" If Dir(saveDir, vbDirectory) = "" Then MkDir saveDir fullPath = saveDir & barcodeType & "_" & txt.Value & ".bmp" Else fullPath = "" End If If LCase(barcodeType) = "qr" Then Call drawQuickResponseToImage(txt, img, savePath:=fullPath) ElseIf LCase(barcodeType) = "code128" Then Call drawCode128(txt, img, , bVertical, savePath:=fullPath) End If End Sub الإستدعاءات في الأزرار أصبحت :- Private Sub cmdOpenWNavSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , , "SavePage" End Sub Private Sub cmdOpenWOSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , , "NoSave" End Sub Private Sub cmdOpenWSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , , "SaveAll" End Sub Private Sub cmdSave_Click() DoCmd.OpenReport "rpt_BG_img_Barcode", acViewPreview, , , acHidden, "SaveAll" DoCmd.Close acReport, "rpt_BG_img_Barcode", acSaveNo MsgBox "بنجاح QRImg تم توليد وحفظ جميع الصور في مجلد", vbInformation + vbMsgBoxRight, "" End Sub وفي التقرير أصبحت التمرير كالآتي :- Private Sub Report_Open(Cancel As Integer) On Error Resume Next If Nz(Me.OpenArgs, "") = "SaveAll" Then Me.TxtPages.ControlSource = "=[Pages]" Else Me.TxtPages.ControlSource = "" End If On Error GoTo 0 End Sub Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Call DrawAndSaveBarcode(Me.FieldCode128, Me.ImgQR4, "Code128") Call DrawAndSaveBarcode(Me.FieldCode128, Me.ImgQR5, "Code128", True) Call DrawAndSaveBarcode(Me.FieldQRCode, Me.ImgQR2, "QR") End Sub أتمنى أن يلبي ها التعديل المطلوب . طبعاً بالإستعانة بنموذجك أخي منتصر 😉 . QR_Barcode - 5.accdb
    2 points
  3. هل فى الوقت الحالي هذا غير كافي؟ الغرض من وضح الحد ، هو الحذف الدوري للملفات غير الضرورية للحفاظ على مساحة السيرفر احيانا مثلا يكون هناك موضوع قديم تم رفع عشرون ملف فيه و تم التوصل للحل المناسب بعد عدد من المحاولات ، فيكون الافضل حفاظا على وقت القارئ المستقبلي و ايضا مساحة السيرفر حذف بعض التجارب التي لم تفي بالغرض بعد فترة ، و هو ما يتم عمله عند تنقيح المواضيع القديمة
    1 point
  4. 😮 رأيي الفني 😅!! فكرة أخونا الأستاذ أبو عبدالله جميلة بلا شك وأحييه على الفكرة التي خرج بها . ولكنك ستشعر الفرق عندما تتعامل مع سجلات كثيرة .. فالفكرة الأساسية التي اعتمد عليها وهي rpt.Line الأساسية ستكون بطيئة جداً لو افترضنا التعامل مع تقرير يحتوي 100 سجل على سبيل المثال . ولكن في فكرة التعديل الذي قمنا به وابتعادي عن الفكرة السابقة هي باستخدام GDI APIs التي أتت من المرفق A2KPictureBoxVer35.accdb الذي شاركنه أخي جعفر . يعني افتح التقرير rpt_BG_img_Barcode في مرفق الأستاذ عبدالله ، وانتقل لعرض الصفحة الثانية !!! ستشعر الفرق 100% وختاماً لست في مكان أقييم به عمل أحد من الأساتذة والأعضاء ، فأخوكم ما زال يتعلم ولله الحمد 😇
    1 point
  5. شكرا جزيلا لاحظت ، هذه المرة تم تعبئة كائن الصورة بخطوط اثخن. انا استخدم قراءة الباركود من الشاشة بواسطة الموبايل فقط للتأكد ان القيمة صحيحة ، وللتأكد النهائي ، فاني ارسلها لأحد المؤسسات حتى يطبعوها على الهوية البلاستيك بأبعادها الحقيقية والباركود بالحجم المناسب ، ثم نقارن حجم النتيجة الحالية بحجم النتيجة الاصلية التي لدينا ، والاهم هو نتائج سرعة قراءة الباركود. طبعنا حسب كود مرفقك السابق والنتيجة كانت ممتازة ، وسنطبع اعتقد غدا ان شاء الله نتائج هذه المرفق QR_Barcode-3 ان شاء الله واوافيك بالنتيجة
    1 point
  6. أعتذر منك أخي الكريم. فالشروط تعجيزية . لعل أحد أساتذة المنتدى يفيدك
    1 point
  7. بخصوص هذه النقطة ، لا أعلم إن كانت صحيحة ، لأنني جربت فكرتك ولم تكن ناجحة معي سابقاً للأسف 😅 جميل جداً ما تقدمت به . لم تغب عن بالي الفكرة ، ولكني فعلاً كنت قد انشغلت باستراق فكرة التدوير من المرفق الأصلي الذي شاركه أخي جعفر 😁 . لذا جزاكم الله عنا كل خير فيما يخص هذه الفكرة ، فإن شاء الله سأقوم بالتعديل حال وصولي الى البيت .. ولكن إن كان لك أن تشاركني فأهلاً وسهلاً .
    1 point
  8. السلام عليكم ورحمة الله وبركاته كل عام وحضراتكم بخير حقيقة حثني الشوق الي المرور بالمنتدي بعد غيبة طالت فمررت لاعيد علي الاحبة فجذب انتباهي هذا التحدي الذي اثار فضولي ورغم قطع أخي @Foksh مجال النقاش إلا إني احببت أن ادلي بدلائي القاصرة وفكرة ربما تكون لم تطرق في مجال نقاش الموضوع من الأساتذة الكرام. الفكرة هو تحويل الكتابة من التقرير الي الكتابة علي كائن صورة - هذا الكائن المستعصي علي التعديل إلا ان المرفق الخاص بـ labins لفت الانتباه الي خاصية هامة في كائن الصورة DIB التي يمكن من خلالها حقن كائن الصورة بمجموعة من الداتا علي هيئة بايتس للرسم في اطار الصورة الفكرة كانت تحويل الخطوط المرسومة الي صورة ترسم بالذاكرة دون الحاجة الي حفظ صور خارجية ثم حقن كائن الصورة بالتقرير بالبايتس الموجودة بالذاكرة وكانت النتيجة كما يلي والمرفق بالاسفل لا ادعي انه اجتهاد محض مني ولكن هو ذلك الذكاء الاصطناعي الذي ابتلينا به او ان شئت قل هو الذي ابتلي بنا 😀 والمرفق بالاسفل ابقيت علي المودلز الاصلية والتي تم التعديل عليها اضفت اليها كلمة new قبل اسمها لتسهل عملية المقارنة وافردت مدل مستقل لرسم الصورة بالذاكرة ما استعصي علي هو ضبط ارتفاع code128 وجزاكم الله خيرا QR_barcode.accdb
    1 point
  9. هذا يمكن حله بتعديل خاصية Size Mode للصورة بدل Zoom إجعلها Stretch أما فيما يخص العمل ككل فلا غبار ولكني رأيت أن فرض حفظ الصورة على المستخدمين فكرة لن يحبذها الجميع لذلك فكرت أن أعطي التطبيق مرونة أكثر ليناسب أغلب المستخدمين إن لم يكن جميعهم لذلك وبعد إذن الأخ @Foksh قمت بإضافة نموذج فيه أربعة أزرار لفتح التقرير في أربع حالات 1- فتح التقرير بدون حفظ للصور 2- حفظ الصور بدون فتح التقرير 3- فتح التقرير مع حفظ جميع الصور عند الفتح 4- فتح التقرير مع حفظ الصور بشكل فردي أثناء التنقل من وجهة نظري أن هذه هي جميع الخيارات التي قد يحتاجها أي مستخدم لذا يمكن لأي شخص الإستفادة مما جاء في التعديل لتطبيق الخيار الذي يفضله ولو كان بإمكان الأخ @Foksh إضافة هذه الخيارات كمعلمة لإختيار أحدها وتنفيذ الأمر مباشرة سيكون أفضل تحياتي QR_Barcode - 4.accdb
    1 point
  10. يعني انت تريد تنظيف الأكواد من الاعتماد على Tag كلياً ؟ فقط سنقوم بإزالة الجملة الشرطية التي تختص بالـ Tag ، من المديول ModulQRCode . If level = "" Then i = InStr(LCase(Text.Tag), "qrcode") If (i > 0 And i + 5 < Len(Text.Tag)) Then level = Mid(Text.Tag, i + 6, 1) End If تم نقل الدالة الى المديول وتحويلها الى Public ، وتنظيف أكواد التقرير ، والإعتماد فقط على الاستدعاء :- Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) Call DrawAndSaveBarcode(Me.FieldCode128, Me.ImgQR4, "Code128") Call DrawAndSaveBarcode(Me.FieldCode128, Me.ImgQR5, "Code128", True) Call DrawAndSaveBarcode(Me.FieldQRCode, Me.ImgQR2, "QR") End Sub وكملاحظة ، قمت بإضافة مربع النص PgCount داخل التقرير في Page_Footer ، والهدف منه كان لتجربة بأن يتم تصدير كافة الرموز Qr/Code128 عند فتح التقرير ، أو تستطيع الغاء مربع النص هذا وسيتم تصدير الصور داخل المجلد حسب الصفحة التي يتم فتحها فقط . المرفق بعد التعديل :- QR_Barcode - 3.accdb
    1 point
  11. تفضل أخي @jjafferr .. الآن تم الدمج بحيث لديك جميع الخيارات :- القديمة عن طريق Tag . الجديدة من خلال قيمة مربع النص لكل QR أو Code128 .. حفظ الصور في المجلد QRImg بجانب قاعدة البيانات . ( وهنا سيكون لنا وقفة مرهونة بتجربتك 😉 ) QR_barcode.accdb
    1 point
  12. السلام عليكم ورحمة الله وبركاته.. تقبل الله طاعاتكم ، ومبارك على الجميع عيد الأضحى المبارك.. من باب السؤال والنقاش . هل من الممكن فعلاً أن نجعل التقرير يعرض الباركود ولكن بدل ما نرسم الباركود على أرضية التقرير ، أن يتم الرسم على أرضية عنصر صورة غير منضم 🤔 !! بمعنى آخر ، نستغل فكرة من المرفق الثاني ودمجها في النتيجة المطلوبة وبالتالي لن نحتاج صورة محفوظة أساساً !!! الفكرة تتلخص بالمرفق التالي بعد تشريح الأكواد وإزالة ما ليس له عمل لتطبيق الفكرة ، وإضافة الكلاس clsPictureBox واستغلال فكرة التنفيذ من الزر Start Draw with Mouse في المرفق A2KPictureBoxVer35 الأصلي من المشاركة الأولى ، بحيث جعلت الفكرة تقوم على رسم رمز الـ QR والـ Code128 😅 . وأشعر بأنها فكرة قد لا تكون ذكية .. ولكن كتجربة مختلفة عما تفضل به الأساتذة وجعلها تعمل على النواتين 32 و 64 :- QR_barcode.accdb
    1 point
×
×
  • اضف...

Important Information