بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9969 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
jjafferr last won the day on يونيو 10
jjafferr had the most liked content!
السمعه بالموقع
9403 Excellentعن العضو jjafferr
البيانات الشخصية
-
Gender (Ar)
ذكر
-
Job Title
مهندس مدني مستقيل
-
البلد
سلطنة عُمان
اخر الزوار
-
هي كذلك الهوامش ابقيها ثابتة .. اجعلها صفرا من خصائص التقرير نفسه ، ولكني اذكر واجعتني مشكلة فاضطررت الى كتابتها في الكود كذلك ، وفي تقرير آخر ، مع ان اسم الخط تم اختياره من خصائص واعدادات التقرير ، إلا انه في الطباعة كان يظهر الخط الافتراضي ، فكتبت اسمه في الكود ، وتم حل المشكلة 🙂
-
وعليكم السلام اهم شيء في موضوع هذه الطابعات هو ان يكون عندك برنامج تنصيب الطابعة من الشركة ، ولا تعتمد على تعريف الوندوز ، لأنه بعد التنصيب ، يجب عليك عمل بعض التعديلات على اعدادات الطابعة. 1. من صفحة الطابعات ، اختار خصائص الطابعة: . 2. وهنا سأعرض التخصيصات لطابعات مختلفة ، رجاء ملاحظة اسماء الطابعات: . هنا يجب ملاحظة ان بعض الطابعات تقطع الورقة حسب الاعدادات: بعد المستند او بعد كل ورقة . . وبما ان الطابعات الحرارية لا تحتاج الى مسافات/هامش لسحب الورقة ، فالافضل عمل هذا برمجيا : Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) On Error GoTo err_Detail_Format 'set the default printer margins With Application.Printers(0) .TopMargin = 0 .BottomMargin = 0 .LeftMargin = 0 .RightMargin = 0 End With . في التقرير ، وفي وضع التصميم ، اختار الطابعة (سواء بعرض 80مم او 58 مم) ، عليه تستطيع تصميم التقرير/الحقول بالطريقة العادية ، مع مراعاة عرض التقرير (ولا يهم الطول) ، وبالتجربة تستطيع تضبيط التقرير. التقارير بالبوصة (لاحظ العرض) ولا تنسى ان الطابعة تطبع باللون الاسود فقط (او اطياف اللون الرمادي) ، فتأكد من اختيار لون النص وحجمه ، وان الشعار يكون ابيض واسود (واما اذا كان ملون ، فسيتم طباعته باطياف اللون الرمادي).
-
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
هناك ملاحظتين : 1. الاكسس لا يستطيع تكوين حقل نص او اي حقل آخر اثناء العرض ، فتكوين الحقول تتم فقط في وضع التصميم ، لذا ومن التجربة ، ترى اني وضعت في النموذج 38 حقل نص جاهزين للعمل. 2. وفي التقرير ، الاكسس لا يستطيع ان يجعل التقرير عمودي او افقي برمجيا (ونصيحة ، لا تهدر وقتك بمحاولاتك) ، لذا اعمل تقريرين ، افقي وعمودي ، واجعل في النموذج زرين: واحد لطباعة التقرير افقيا ، والاخر لطباعة التقرير عموديا. -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير ، مناقشة
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
شكرا جزيلا اخوي ابوخليل 🙂 نعم ، نستعمل نفس الكود عند فتح التقرير ، فيتم توزيع حقول النص كما هي في النموذج ، وبنفس مقاساتها ، وهذه هي الفكرة من البرنامج -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير ، مناقشة
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
حياك الله اخوي موسى 🙂 هذا برنامج للتصوير ، فالاولوية لحجم الصورة الملتقطة من الكاميرا. نعم بدأت العمل بعمل كائن خاص للصورة يملئ النموذج ، ولكن بدأ المربع يعمل وميض ، واوقات اخرى لا تستطيع رؤية الصورة من خلاله (مثل المثال اللي عرضته لما غيرت اتجاه النموذج من اليمين الى اليسار). -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير ، مناقشة
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
على راسي اخوي ابوخليل 🙂 بس بما انها دروس ، فسأقوم بعرضها في الموضع الاخر ، ثم اقوم بمناقشتها هنا ان شاء الله ، الدرس اليوم كان تحريك الكائنات ، وعرضت الافكار والاكواد واجزاء البرامج الخاصة بها. -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
2. تحريك الكائنات في النموذج هناك عدة طرق لتحريك الكائن ، ولكنها جميعا تعتمد على الحدث/الاحداث التالية: للكائن: . او حدث القسم اللي فيه الكائن ، والكائن هنا في قسم التفصيل Detail . ولكن من الخطأ استعمال الحدث للنموذج ، فالكائن موجود في قسم : . اول عمل قمت به (اعتقد في سنة 2005) كان على مثل هذا النموذج ، وفيه ملصق (مع اضافة المربع الان) . لاحظ انك تستطيع تحريك الملصق بمسكه من اي مكان في الكائن ، ولكن المربع الاجوف تستطيع تحريكه عند مسك حوافه/اطرافه فقط . ولما غيرنا خلفية المربع من شفاف (اجوف) الى خلفية عادية ، استطعنا تحريك المربع بمسكه من اي مكان . الكود الذي يمكننا من التحريك الملصق هو التالي ، واحد اهم الاسطر في الكود هو اول سطر (Dim lblDrag_X As Long, lblDrag_y As Long) ، بحيث هذه القيم تكون مخزنه لكل مرة يتحرك فيها الملصق Option Compare Database Option Explicit Dim lblDrag_X As Long, lblDrag_y As Long ' Private Sub lblDrag_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) On Error GoTo err_lblDrag_MouseMove Static InitX As Single Static InitY As Single If Button = acLeftButton Then If InitY <> 0 And InitX <> 0 Then lblDrag.Top = (Y - InitY) + lblDrag.Top lblDrag.Left = (X - InitX) + lblDrag.Left Else InitX = X InitY = Y End If Else InitX = 0 InitY = 0 End If lblDrag_X = lblDrag.Top lblDrag_y = lblDrag.Left lblMouseMove_Resume: Exit Sub err_lblDrag_MouseMove: If Err.Number = 2100 Then Resume lblMouseMove_Resume Else MsgBox Err.Number End If End Sub . 2.Basic_Move.mdb . ولما زاد عدد حقول النص (كانت تجينا مناقصات ولازم نعبئ المناقصات على اوراق الشركة ، يعني سعر كل مادة يجب تضبيطها حسب مكانها في ورقة المناقصة ، مع كتابة ملاحظاتنا حسب نوع المنتج) . وكان لابد من توسيع الحقل ، فاستعملت مفتاح الشفت (او Ctrl) مع الاسهم (يمين - يسار - اعلى - اسفل) . اصبح الكود اعلاه هو الاساس في تحريك حقول النص بجعله في دالة (في وحدة نمطية في مشروعي الاخير) ، ودالة اخرى لتوسيع الحقول ، اما مناداة هذه الدوال فكانت من حدث كل كائن على حدة: Private Sub Form_Current() ' Load the position and the size of the 38 TextBoxes Me.Drag01.Top = [Drag01_PositionY] Me.Drag01.Left = [Drag01_PositionX] Me.Drag01.Width = [Drag01_Width] Me.Drag01.Height = [Drag01_Height] Me.Drag02.Top = [Drag02_PositionY] ..... end sub Private Sub Drag01_KeyDown(KeyCode As Integer, Shift As Integer) Call KeyMe(KeyCode, Shift, ActiveControl, iWidth, iHeight) [Drag01_Width] = iWidth [Drag01_Height] = iHeight End Sub Private Sub Drag01_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single) Call DragMe(Button, Shift, x, Y, ActiveControl, PosX, PosY) [Drag01_PositionY] = PosY [Drag01_PositionX] = PosX End Sub ثم الدوال Public Sub DragMe(Button As Integer, Shift As Integer, x As Single, Y As Single, Drag As Control, PosX, PosY) ' Drag position Static InitX As Single Static InitY As Single If Button = acLeftButton Then If InitY <> 0 And InitX <> 0 Then Drag.Top = (Y - InitY) + Drag.Top Drag.Left = (x - InitX) + Drag.Left Else InitX = x InitY = Y End If Else InitX = 0 InitY = 0 End If PosX = Drag.Left PosY = Drag.Top End Sub Public Sub KeyMe(KeyCode As Integer, Shift As Integer, Drag As Control, iWidth, iHeight) 'Typical key down event handler : ' Right Arrow = Increase the Width ' Left Arrow = Reduce the Width ' Down Arrow = Increase the Height ' Up Arrow = Decrease the Height Select Case KeyCode Case 37 'Left arrow Drag.Width = Drag.Width - 72 Case 39 'Right arrow Drag.Width = Drag.Width + 72 Case 38 'Up arrow Drag.Height = Drag.Height - (1440 * 0.1667) Case 40 'Down arrow Drag.Height = Drag.Height + (1440 * 0.1667) End Select iWidth = Drag.Width iHeight = Drag.Height End Sub . 3.Group.mdb . ومع تعديل بسيط حتى يقبل التنسيق في حقول النص للاكسس 2007 فما فوق Drag_Drop_Locations.accdb . والان بعد ان عرفنا كيف نحرك المربع ، سنتحدث عن : طريقة تحريك اطرافه افقيا وعموديا ، تغيير مؤشر الفأرة حسب مكان المؤشر. هنا سأشير الى الفكرة ، واترككم مع البرنامج: من طول او عرض اي ضلع ، 0-25% و 75-100% يكون المؤشر لتحريك المريع. يعني اذا طول الضلع 10 ، اذن من 0-2.5 و من 7.5-10 يكون المؤشر لتحريك المربع. اما من 26-74% يكون لتحريك الضلع نفسه (من حوالي 3-7) ، وعليه يتغير المؤشر. اساس الكود هنا هو نفس الموجود في اول المشاركة هذه ، ومنه تم التوسع حسب الحاجة. . 4.Size_Move.accdb . وبعد تجارب كثيرة ومختلفة ، اتضح ان استعمال الاحداث اعلاه لكائن المربع لا تفي بالغرض لمشروعي ، والسبب هو ان الحدث يبدأ بالعمل عندما يكون المؤشر على احد اضلع المربع ، بينما لا يمكن الاستفادة من منتصف المربع ، فعليه ، تم تحويل الكود الى حدث قسم التفصيل Details ، ومنها بدأ العمل بالتبلور بصورة مرضية 🙂 الذكاء الاصطناعي كان وبالا/مشكلة عليّ في هذا المشروع ، وذلك لشح البيانات عن مثل هذا العمل في الانترنت ، فكنت اضطر الى عمل الكود الاساسي لضلع واحد ، ومن ثم الطلب منه بعمل باقي الاضلاع ، او تقييده في عمل الكود بين اسطر معينة من الكود. جعفر -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
اللي استغربت منه هو ، لما عملت تحويل لوضع النموذج ، بدلا من يسار الى يمين ، عملته من اليمين الى اليسار ، واذا بالمربع الاحمر ما صارت يعمل كما يجب !! -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير ، مناقشة
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
1. سابقا كنا اذا اردنا استعمال الويب كام WebCam فكنا نستعمل مثل هذه الطريقة: . والان مع الوندوز 10 ، اصبحنا لا نحتاج الى برامج خارجية ، فالوندوز 10 يحتوي على برنامج التصوير والذي يحتوي على عرض مباشر للموظف ، ويمكن التحكم به برمجيا. -
دروس تعليمية من برنامج استوديوهات مسقط ، للتصوير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
1. حجم الصور صحيح ان الاكسس يتعامل مع حجم الصورة ، ولكن حجم الصور له تأثير على عمل البرنامج ، ليس فقط في بطئ البرنامج ، وانما في فعاليته (نعم اعرف هذا الكلام غريب ، ولكن الفيديو رقم 3 في الاسفل يثبت هذه النقطة). دائما اعمل تصغير لحجم الصورة ليتناسب مع حجم الشاشة ، سواء للنموذج او التقرير ، والافضل ان تكون الصورة اكبر من بحوالي 20%-30% من حجم الكائن في النموذج/التقرير حتى يعطي صورة ادق. اذا لاحظنا الصورة التالية : التصوير من الكاميرا = 5616x3744 بكسل حجم شاشتي = 1680x1050 بكسل ، اي حوالي 33% من الحجم الاصلي ووضعت شعار المنتدى في الشاشة ، وكائن الصورة حجمه 350x200 بكسل. ومع الاسف الشديد ، فقد رأيت برامج بحيث استخدم المبرمج صورة بحجم 4333x4333 هنا !! في الصور الكبيرة ، المشكلة تكمن ، بما انها في الاكسس وقت التشغيل ، فهي محسوبة من ذاكرة الاكسس ، فقد تحصل على رساله بتجاوز اكسس من حجم الذاكرة الخاصة به. وللعلم ، فالاكسس مو من البرامج التي تتعامل مع الصور بشكل سلسل ، وليس الاسوء. صحيح ان حجم الصورة ادناه BG_Sizes2.JPG=11.7MB ، ولكن عند فتح الصور المضغوطة بجميع انواعها (مثلا jpg او png) ، فحجمها يكون كما لو كانت بصيغة BMP ، والصورة ادناه تكون بحجم 60MB . ولكن للعلم ، فعند فتح اي صورة ، فالكمبيوتر يفك ضغط الصور ويتعامل معها على انها BMP !! . 1. اداء الكمبيوتر بدون صورة في الخلفية: . 2. اداء الكمبيوتر باستخدام صورة صغيرة في الخلفية: . 3. اداء الكمبيوتر باستخدام صورة كبيرة في الخلفية: . لاحظ فرق الاداء. جعفر -
عيدكم مبارك وايامكم سعيدة ان شاء الله
-
السلام عليكم عيدكم مبارك وايامكم سعيدة ان شاء الله. كان الطلب: نريد التصوير ، وتقطيع الصورة من خلال نموذج اكسس ، والجواب كان "استوديوهات مسقط" ، بكل ما للاستوديو من ادوات 🙂 عمل البرنامج ، وبدون الدخول في التفاصيل ، والدروس ستكون في التفاصيل : تختار من البداية اذا كنت تريد استعمال كاميرا كانون Canon EOS (كاميرا واحدة او كاميرتين) ، او تستخدم ويب كام WebCam (استعملنا 4k ولكننا لم نكن راضين عن جودة الصور لإستخدامها في الهوية ، نعم ممكن استعمالها للهويات المؤقتة). عند ادخال رقم الموظف ، يأتي البرنامج بالصورة القديمة للموظف (قد يعطيك الموظف رقمه الوظيفي بالخطأ ، فمن مقارنة صورته القديم بشكله الان تستطيع ان تعرف اذا كان هو نفس الموظف) ، اذا كان هذا اول استخدام للتصوير (الانارة ، وضبط عدسة الكاميرا لوضوح الصورة ، او تقريب الصورة) ، فنقوم بعمله وملاحظة صورة الموظف من نافذة التصوير في الاكسس. نقوم بالنقر على الزر "التقط صورة من كانون" او "التقط صورة من ويب كام". في النموذج نرى الصورة التي تم التقاطها الان. نستخدم المربع الاحمر في ضبط مقاسات الصورة ، أ. يدويا عن طريق تحريك المربع او توسيعه من الاطراف او الزوايا ليلائم الحجم الذي نريد قص الصورة ، اما اذا اردنا من اكسس ان يقوم بتضيط مقاسات المربع تلقائيا (وهو الافضل والاسرع) ، فلمرة واحدة ، يجب علينا النقر على زر "نموذج الادوات" ، ثم ننقر على زر "اختيار لون الخلفية" ، مما سيعطينا ايقونة اختيار اللون ، فننقر بها على لون الخلفية (اعلى الرأس). ثم نمسك مفتاح Ctrl على الكيبورد وننقر على اي مكان في الوجه. و 95% من الوقت ، لا نحتاج الى عمل تعديل يدوي على المربع. عندما يكون المربع في المكان الصحيح ، انقر على زر "قص الصورة" ، فيقوم الاكسس باستبدال الصورة الجديدة مكان القديمة. بهذه الطريقة ، يتم تصوير وقص صورة الموظف في اقل من دقيقة واحدة ، وببساطة. ستكون هناك سلسلة من الدروس التعليمية في كيفية التعامل مع الصور في الاكسس ، هنا في هذا الموضوع ، وحتى يكون الموضوع متسلسل في افكاره ، سيكون هذا الموضوع مغلق للتعليقات. اما التعليقات والاسئلة فستكون في الموضوع التالي ان شاء الله جعفر . والتصوير كان بهذه الكاميرات .
-
فتح نفس النموذج لعدد غير محدود
-
في برنامج الصور ، وبسبب شح المعلومات ، كنت اشوف نجوم السماء في كل وقت !! كل شوي ويتوقف البرنامج ، او النتائج ما تكون صحيحة ، او ... فكان اعتمادي الكبير على نافذة immediate window لقراءة القيم ، فكان مهم ان تبقى القيم عند توقف البرنامج. نعم هي الطريقة المتعارف عليها (وعادة هي سجل واحد بعدة حقول) ، والتي ذكرها اخوي موسى كذلك بالتفصيل وبالدوال ، وانا استعمل هذه الطريقة في برامجي كذلك ، ولكني استدعي بيانات جميع الحقول مرة واحدة (دائما احاول ان اقلل من زيارات الجدول قدر الامكان ، وجعل الجدول جاهز للمستخدمين) ، فانادي القيم هكذا: dim tbl_values as string, x() as string tbl_values = dLookup("Aspect_Ratio_Width & '|' & Aspect_Ratio_Height & '|' & Lock_Aspect_Ratio & '|' & Save_On_Exit_Sides & '|' & IrfanView_Path & '|' & Employees_Pic_Folder & '|' & Others_Pic_Folder & '|' & Big_Pic_Folder & '|' & tmp_Pic_Folder & '|' & Pictures_BackUp_Folder & '|' & Left_Position & '|' & Top_Position & '|' & Save_On_Exit_Position & '|' & Percent_Smaller_Picture & '|' & EOS_or_Webcam & '|' & How_Many_EOS", "tbl_Settings") x = Split(tbl_values, "|") 'x(0)*15 Aspect_Ratio_Width 'x(1)*15 Aspect_Ratio_Height 'x(2) Lock_Aspect_Ratio 'x(3) Save_On_Exit_Sides 'x(4) IrfanView_Path 'x(5) Employees_Pic_Folder 'x(6) Others_Pic_Folder 'x(7) Big_Pic_Folder 'x(8) tmp_Pic_Folder 'x(9) Pictures_BackUp_Folder 'x(10) Left_Position 'x(11) Top_Position 'x(12) Save_On_Exit_Position 'x(13) Percent_Smaller_Picture 'x(14) EOS_or_Webcam 'x(15) How_Many_EOS 'Debug.Print x(11) . ولكن ومع استعمال الجدول ذو السجلات الكثيرة ، فعندنا 3 طرق: 1. استعمال الدوال العادية ، وتكون هناك دالة خاصة لكل سجل (لأننا لا نعرف رقم السجل وانما قيمة في حقل) ، 2. استعمال Recordset ، 3. والطريقة الاخيرة هي TempVars. نعم لكل طريقة ميزة وعيوب ، وبعد ان القيت اقلامي ، اخترت الطريقة الثالثة 🙂