اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

أبو إبراهيم الغامدي

أوفيسنا
  • Posts

    707
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    13

كل منشورات العضو أبو إبراهيم الغامدي

  1. أهلا بكم.. من أكثر الأشياء التي تجعل مطوري أكسس يصرفون النظر عن استخدام إداة متصفح الويب؛ تحسسه الشديد للشفرة في الصفحات المحلية.. ولحل هذه الإشكالية هناك طريقتان فيما أعلم.. -- الأولى: حفظ الصفحة في مجلد السيرفر المحلي: IIS أوغيره من السيرفرات المحلية مثل: wamp.. -- الثانية: نقوم بإنشاء صفحة فارغة بالطريقة التالية.. Private Sub Form_Open(Cancel As Integer) WB.Navigate "about:blank" End Sub !! من المعلوم أن أداة متصفح الويب تعمل على منصة iefram.dll وهذه المنصة تدعم إلى الإصدر السابع فقط من متصفح Internet Explorer. هذه المنصة لا تدعم HTML5 و CSS3، لكن ميكروسوف قدمت حلا لهذه الإشكالية باضافة المعرف التالي إلى مكون (وسم) <head>.. <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> </head> # الخطوة التالية هي حشر (حقن Injection) وسوم HTML و وسوم CSS وشفرة JS إلى صفحة HTML الفارغة باستخدام دالة البيانات DLookup -- الوظيفة التالية تبسط استخدام دالة Dlookup Public Function WebCode(ID As Long) As String WebCode = DLookup("[Code Content]", "WebCode", "id=" & ID) End Function -- السجل الأول في جدول WebXCode يحتوي على وسوم HTML المطلوية.. <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> </head> <body> <div id="invoice-content" class="invoice-content"> <div class="qr-result"> <div id="qr-stamp" class="qr-stamp"></div> <div id="info" class="info"></div> <div id="menu" class="context-menu"></div> </div> </div> <style id="mycss"></style> <script id="qr-code"></script> <script id="myscript"></script> </body> وتطلب بهذه الطريقة: WebCode(1) وتوضع في حدث عند الفتح بهذه الطريقة Private Sub Form_Open(Cancel As Integer) WB.Navigate "about:" & WebCode(1) End Sub -- أما وسوم CSS وشفرة JS فيتم حقنها بعد إكتمال فتح الصفحة بهذه الطريقة Sub HTML() If WB.ReadyState = READYSTATE_UNINITIALIZED Then Exit Sub End If '-- html template Call InvoiceInfo '-- html library WD.getElementById("mycss").innerHTML = WebCode(2) WD.getElementById("qr-code").innerHTML = WebCode(3) _ & ";var Xqrcode =new QRCode('qr-stamp'," _ & "{text:'QR Code',colorDark:'DarkBlue',colorLight:'WhiteSmoke',width:120,height:120});" End Sub !! بهذه الطريقة نتجاوز تحذيرات المتصفح من وجود الشفرة البرمجة، كما أننا قمنا بتأهيل المتصفح للعمل بمواصفات متصفح Edge.. # فيما يتعلق بجزئيات الشفرة سوف أتحدث عنها لاحقا.. !! أجريت بعض التعدلات على المرفق لتحسين أداءه
  2. أهلا بكم.. :: نأتي الآن إلى التعريف بالشفرة المشغلة لمتصفح الويب وطريقة عملها.. !! في أكسس الإصدر العاشر وما بعده أصبح إداة متصفح الويب أحد أدوات أكسس الأساسية مع بقاء الأداة ضمن أدوات Microsoft ActiveX، وهذه الأخيرة هي المستخدمة في المشروع، كما أن الأداة المضمنة مع أكسس تختلف برمجتها قليلا عن أداة ActiveX. أرجو التنبه لهذا.. # مكتبات DLL: حتما إذا كنا نتعامل مع أدوات ActiveX سوف يكون هناك مكتبات DLL، ولذا عند إدراج الأداة في النموذج يقوم أكسس بالتأشير على المكتبات اللازمة للعمل، كما أن هناك مكتبات اختيارية تساعد في تحسين العمل، لكن ليست ضرورية. سوف أعرف بتلك المكتبات عند الحديث عن الشفرة التي تستختتذكردمها.. الجدير بالذكر؛ أن تكون على علم أن أكسس يفقد الإتصال بهذه المكتبات عند قص ولص الأداة، أو عند نقل النموذج المتضمن لهذه الأداة.. كن على ذكر من ذلك!! # مكتبات DLL: في الصورة التالية المكتبات التي المشار إليها سابقا؛ ذات اللون الأزرق ضرورية يتم التأشير عليها تلقائيا عن أضافة أداة متصفح الويب والتي أسفل منها اختيارية، بمعنى أننا نؤشر عليها باختيارنا من أجل تحسين أسلوب برمجة الشفرة، لكن إذا استخدمتها ضمن الشفرة فإنه يصبح من الضروري إعادة التأشير عليها.. # يتضمن النموذج ثلاث خصائص غرضية للتحكم في طبقات أداة المتصفح.. -- الخصيصة الأولى للتحكم في الطبقة الأولى من الأداة، والتي هي بمثابة متصفح الويب.. Public Property Get WB() As WebBrowser Set WB = Me.WebBrowser0.Object End Property -- الخصيصة الثانية للتحكم في الطبقة الثانية من الأداة، والتي هي بمثابة صفحة الويب.. Public Property Get WD() As HTMLDocument Set HD = Me.WebBrowser0.Document Set WD = HD End Property -- الخصيصة الثالثة للتحكم في الطبقة البينية بين متصفح الويب وصفحة الويب، وهي بمثابة النافذة الأم لصفحة الويب.. Public Property Get PW() As HTMLWindow2 Set PW = Me.WebBrowser0.Document.parentWindow End Property !! لاحظ أن الإعلان (التصريح) عن هذه الخصائص أخذ الإعلان العام Public وذلك من أجل إظهارها عند استخدامها من خارج النموذج..
  3. أهلا بك أستاذ أبو خليل.. أشكرك على إطرائك، كما أشكرك أيضا على تطمينك لي بسلامة العمل.
  4. أهلا بكم.. أعلم أن هذا الأسلوب جديد بعض الشيء لكن أعتقد أنه بالإمكان التأقلم معه! خاصة وأن الشفرة ليست بالمعقدة.. شفرة الجافا سكربت ليست بالصعبة بل في ظني أسهل بكثير من الفيجوال بيسك لأنها تتعامل مع المتغيرات كأغراض (Objects)، والغرض يقوم بخدمة ذاته دون الحاجة إلى وظائف خارجية.. كان القصد من هذه المقدمة الإطرائية هو إزالة الرهبة من استخدام أسلوب الدمج بين أكسس والويب.. لنعد إلى المشروع ونتعرف على مكوناته وطريقة عمله.. :: يحتوي الجدول (WebCode) على ثلاث سجلات؛ يحتوي كل منها على نص برمجي يقوم بتهيئة العمل على متصفح الويب.. -- السجل الأول يحتوي على نص HTML. يقوم هذا النص بتهيئة الصفحة للعمل.. ما يهمنا في هذا النص هو تبويب <head> الذي يحتوي التعليمات التي تجعل متصفح الويب يعمل كمتصفح Edge. -- السجل الثاني يحتوي على نص CSS يقوم هذا النص بتزيين الصفحة وترتيب مكوناتها.. سوف أشرح في وقت لاحق الفرق بين Id, Class، وعن كيفية الوصول إلى عناصر الصفحة من أجل تزيينها. -- السجل الثالث يحتوي على شفرة JavaScript المعني بتكوين رمز QR.. ما يهمنا من هذه الشفرة هو طريقة استخدامها فقط!.. :: تحتوي قاعدة البيانات على وحدين نمطيتين.. -- الأولى للتحويل من وإلى النظام العشري TLVModule -- الثانية للتحويل من وإلى نظام 64بت UTF8EncodeDecode كلتا الوحدتين مستعارة من الويب وليس لي فيها عمل..َ :: مصدر مكتبة الجافا سكربت: QRCode Library (JavaScript) :: مصدر الوحدات النمطية: TLV.QRCode.MSAccess.VBA
  5. لتتمكن من نقل هذه الأشياء إلى مشروعك بشكل سليم أنت بحاجة إلى فهم آلية عملها.. سوف أقوم بشرح ذلك قريبا..
  6. اعرض الملف الفاتورة السعودية المبسطة أهلا بكم.. محاولة متواضعة لتنفيذ الفاتورة السعودية المبسطة باستخدام الجافا سكريب ومتصفح الويب.. أرجو أن تنال استحسانكم.. صاحب الملف أبو إبراهيم الغامدي تمت الاضافه 03 ينا, 2022 الاقسام قسم الأكسيس  
  7. Version 1.0.0

    338 تنزيل

    أهلا بكم.. محاولة متواضعة لتنفيذ الفاتورة السعودية المبسطة باستخدام الجافا سكريب ومتصفح الويب.. أرجو أن تنال استحسانكم..
  8. أهلا بكم جميعا.. هذا مثال مصغر عن إمكانية الويب مع الأكسس وفلسفة التجاوب.. AccessWithWeb.accdb
  9. وأنا أضم صوتي إلى أصواتكم بالشكر والامتنان @د.كاف يار لمجهوده المميز، ومبادرته السريعة في الرد على تساؤلات الزملاء، مع دعم ذلك بالتوجيه والتثقيف والتعليم، المصحوب بالرفق واللين... شكرا لك @د.كاف يار
  10. أهلا بك.. عدل الشفرة التي أشرت إليها لتصبح كالتالي Private Sub crn_DblClick(Cancel As Integer) Dim File_Path As String, File_Name As String, Name_Path As String File_Path = Application.CurrentProject.Path & "\CONTACT\" File_Name = Dir(File_Path & Me.crn & "*.pdf") If File_Name = "" Then MsgBox "لا توجد مستندات محفوظة" Exit Sub End If While File_Name <> "" Name_Path = File_Path & File_Name Application.FollowHyperlink Name_Path File_Name = Dir() Wend End Sub النجمة في سطر المتغير File_Name تعود بأسماء جميع الملفات التي في بدايتها ذات الرقم. راجع ملف التعليمات لمزيد من التوضح حول التابع Dir
  11. أول خطوة قمت بها هي ضبط حدود الصفحة: وضعتها على 10 ملم (1سم) الخطوة الثانية هي تحديد عدد الأعمدة مع ضبط المسافة بين الأعمدة وبين الصفف على الصفر الخطوة الثالثة هي ضبط عرض التفصيل ارتفاعة على حجم الملصقة (25.4mm*48.5mm) وبالسنتميتر (2.54cm*4.85cm) في هذه الخطوة يأتي التباين في المقاس بين الورقة وبين التقرير؛ مقدار التباين يكون بالملي أو جزء منه.. ولكي نستطيع ضبط المقاس بشكل دقيق دون الحاجة إلى الطباعة من أجل التحقق نحن بحاجة إلى إطار يمثل مقاس الملصقة ومن ثم نضع حقول البيانات كما نريدها في الواقع الخطوة الأخير نقوم بعرض التقرير في وضعية (رؤية قبل الطباعة) للتأكد من أن البيانات سوف تطبع في مكانها الصحيح إذا تمت الإمور بالشكل الصحيح نقوم بتغيير لون الحدود إلى (شفاف)
  12. أهلا بك .. يمكن تطبيق الفكرة عن طريق عنصر WebBrowser زودني بقالب التقرير مع بعض البيانات إذا أردتَ
  13. أهلا بك أبو العقاب راجع المرفق التالي.. أرجو أن يكون مناسبا لمتطلباتك الحدود وضعت من أجل التصميم.. يمكنك إزالتها بتعديل خصائص لون الحدود إلى (شفاف) استخدمت الخطوط عوضا عن عنصر ActiveX طباعة ملصقات نهائي.zip
  14. أهلا بك محسن أجريت تعديلا على الملف الذي أشرت إليه Root-1001.zip
  15. أهلا بكم.. حسب معرفتي أن أجهزة المسح لها إعدادت انتقال مثل(ENTER, TAB, SPACEBAR) وغيرها من طرق الإدخال يتم برمجة الجهاز عن طريق مصورات (باركود) متوفرة في دليل الاستخدام إذا لم يكن دليل الاستخدام متوفر لديك أو كانت هذه الرموز غير متوفرة ضمن الدليل فيمكنك زيارة موقع الشركة للاطلاع على التعليمات المساندة..
  16. وعليكم السلام محمد.. الملفات الثنائية لها معرفات نصية في أول سطر من الملف! يمكن الاستفادة من هذه الميزة للتعرف على الملف الأصلي حتى لو غُيرت اللاحقة! افتح الملف بواسطة محرر النصوص التقليدي للحصول على معرف الملف ثم استخدم هذا المعرف في فحص القيمة.. في أكسس الشفرة التالية تفي بالغرض إن شاء الله Sub TestData() On Error Resume Next Dim fn, ft fn = CurrentProject.Path & "\testdata\testdata.msi" Open fn For Input Access Read As #1 Line Input #1, ft Close #1 If ft Like "*Standard ACE DB*" Then Name fn As Replace(fn, ".msi", ".accdb") End If End Sub
  17. أهلا بك.. يوجد في أكسس دالة مالية لهذا الغرض هي: DDB() Function اقرأ عنها!
  18. أهلا بك.. من متابعتي لهذه المشاركة اتضح لي أن البيانات في أكسل ليست مجرد جداول بيانات! بل قوالب للبيانات! وبناءً عليه لا يمكن استيراد البيانات المقولبة بالطرق التقليدية. إليك بعض التلميحات المساعدة في تحسين أستيراد البيانات.. .. اعتماد تسمية موحدة لملفات أكسل للفصول التي لها نفس المواد حتى يمكنك وضع عنواين موحدة عند الاستيراد .. أكسس لا يعترف بالأعمدة المدمجة ولهذا يجب أن تحتاط لهذه الإشكالية
  19. يمكن استخدام الإجراء التالي للانتقال إلى صفحة جديدة في الوورد X.Selection.InsertNewPage
  20. الشفرة تعتمد على ثلاثة وسوم من وسوم HTML فقط والباقي هي بنية المسند.. الأول وسم العنوان <H1....H6> مثله مثل عناوين وورد الثاني وسم الفقرة النصية <P> مثله مثل فقرات وورد الثالث وسم الترقيم التلقائي: الترقيم النقطي <UL>، والترقيم العددي <OL> مثله مثل ترقيم وورد يمكنك إنشاء مربع النص من داخل أكسس والكتابة داخله! ولست بحاجة إلى تنسيق ذلك مسبقا في وورد!! يمكن عمل ذلك بكل سهولة وأكثر!!! كما يمكن إعادة تحرير المستند المصدر عن طريق محرر نصوص تقليدي (TEX Editor)!! هذى صورة المستند في محرر النصوص التقليدي.. <html dir=rtl> <body style='font-family: "ATraditional Arabic", calibri; font-size:16pt;font-weight:bold'> <h2 style='page-break-before:always'>بسم الله الرحمن الرحيم</h2> <p><span>الموضوع: </span>تكليف الموظف (م8)/ فهد سعد محاسب رئيس اللجنة العليا </p> <h3 style='font-size:16pt'>بناءً على:</h3> <ul > <li style='color:blue'>بموجب صلاحية المدير </li> <li style='color:blue'>وبناء على المصلحة رقم .... </li> <li style='color:blue'>وبناء على ما تقتضيه مصلحة العمل. </li> </ul> <h3 style='font-size:16pt'>تقرر ما يلي:</h3> <ol > <li style='color:maroon'>استمرار تكليف علي </li> <li style='color:maroon'>يعمل بهذا القرار اعتبارًا من تاريخ 24/04/1442هـ ولمدة عام </li> <li style='color:maroon'>يبلغ هذا القرار لمن يلزم لاعتماده وتنفيذه .</li> </ol> <h2 style='page-break-before:always'>بسم الله الرحمن الرحيم</h2> <p><span>الموضوع: </span>تكليف الموظف م(11)/ عيسى العيسى موظف الإدارة العليا </p> <h3 style='font-size:16pt'>بناءً على:</h3> <ul > <li style='color:blue'>بموجب صلاحية المدير </li> <li style='color:blue'>وبناء على المصلحة رقم .... </li> <li style='color:blue'>وبناء على ما تقتضيه مصلحة العمل. </li> </ul> <h3 style='font-size:16pt'>تقرر ما يلي:</h3> <ol > <li style='color:maroon'>استمرار تكليف علي </li> <li style='color:maroon'>يعمل بهذا القرار اعتبارًا من تاريخ 24/04/1442هـ ولمدة عام </li> <li style='color:maroon'>يبلغ هذا القرار لمن يلزم لاعتماده وتنفيذه .</li> </ol> <h2 style='page-break-before:always'>بسم الله الرحمن الرحيم</h2> <p><span>الموضوع: </span>تكليف الموظف نور الأنور مشرف الأرشيف </p> <h3 style='font-size:16pt'>بناءً على:</h3> <ul > <li style='color:blue'>بموجب صلاحية المدير </li> <li style='color:blue'>وبناء على المصلحة رقم .... </li> <li style='color:blue'>وبناء على ما تقتضيه مصلحة العمل. </li> </ul> <h3 style='font-size:16pt'>تقرر ما يلي:</h3> <ol > <li style='color:maroon'>استمرار تكليف علي </li> <li style='color:maroon'>يعمل بهذا القرار اعتبارًا من تاريخ 24/04/1442هـ ولمدة عام </li> <li style='color:maroon'>يبلغ هذا القرار لمن يلزم لاعتماده وتنفيذه .</li> </ol> </body> </html> الجدير بالذكر أن التنسيقة المعنية بالانتقال إلى الصفحة التالية موجودة ضمن الوسم التالي <h2 style='page-break-before:always'>بسم الله الرحمن الرحيم</h2> آمل أن لا تفكر في استخدام الوورد مجدداً..
  21. شكرا لك أ.محمد.. ولا حرمنا من مداخلات القيمة.. الحمدلله.. إذا كان لديك قالب معين فيمكن أن نعيد تصميمه من داخل أكسس.. إن أردت..
  22. هذا ملف وورد جرب فتحه ببرنامج وورد الذي لديك الأولى.doc
  23. أهلا بك.. المتوقع منك: أنك فتحت قاعدة البيانات المثال وضغطت على (تصدير الفرارات) وذهبت إلى مجلد قاعدة المثال وتفتح الملف المصدر بورد! إذا لم يفتح فهناك رسالة بالتأكيد! أنا أحتاج إلى هذه الرسالة لأعالج الخطأ.. إذا فتح ملف المثال بشكل سليم؛ ولكن لم تستطع التطبيق على قاعدة البيانات الأصلية، فهذا أمر يمكن مناقشته فيما بعد..
  24. أهلا بك.. لم تذكر السبب! لحل الإشكال قم بتغيير لاحقة الملف إلى (mht) ليصبح اسم الملف مثلا (Group.mht)، ثم استخدم فتح بواسطة، ثم اختر برنامج (Word).. ::: قد يكون هذا الأسلوب غريبا بعض الشيء لكنه معتمد من قبل Microsoft! ::: الهدف من تنسيق المستند بهذه الصورة هو إبعادك عن تنسيقات Word الطويلة! <أرجو من الزملاء التعليق عند تجربة المثال> إليك التعديل.. البرنامج.zip
×
×
  • اضف...

Important Information