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

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

  1. Shivan Rekany

    Shivan Rekany

    الخبراء


    • نقاط

      4

    • Posts

      3491


  2. محمد علي الطيب

    محمد علي الطيب

    03 عضو مميز


    • نقاط

      3

    • Posts

      158


  3. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      2

    • Posts

      8723


  4. بن علية حاجي

    بن علية حاجي

    الخبراء


    • نقاط

      2

    • Posts

      4343


Popular Content

Showing content with the highest reputation on 11/24/18 in all areas

  1. السلام عليكم شكراً للقائمين على هذا المنتدى العملاق من مشرفين واعضاء لني تعلمت منهم الاكثير واتمنى لهم الموفقية والصحة الدائمة ان شاء الله تعالى. اخوتي انا اعرف ان في هذا المنتدى عمالقة التصميم والبرمجة وانا اعلم ان في هذا المنتدى افضل من هذا البرنامج ولكن لرد الجميل هذا المنتدى ارفع هذه نسخة من برنامج الصادر والوارد مفتوح المصدر برابط خارجي صممتة لصديق لي يعمل في شركة .... تحياتي لكم جميعاً.... https://up.top4top.net/downloadf-1058tvebj1-rar.html
    3 points
  2. السلام عليكم ورحمة الله وبركاته على الرغبة السيد @محمد عبد الشفيع من هنا https://www.officena.net/ib/topic/86775-دمج-برنامج-الحماية-مع-برنامج-الفترة-التجريبية تم فتح هذا الموضوع و ان شاء الله ساشرح خطوة خطوة حسب وقتي حتى اخلص من الموضوع وفي النهاية راح اسمع اراء و مقترحاتكم والان نحن نحتاج جدول واحد لكي نحفظ فيه تسلسل و رقم هارد و المعالج و رقم التفعيل البرامج و مدة التفعيل و تاريخ التفعيل و تاريخ اخر مرة فتح البرامج وسنسمي هكذا بالتسلسل كما مبينة في الصورة ID من نوع ترقیم تلقائی NumForMoaalic من نوع نصي NumForHard من نوع نصي NumTascil من نوع نصي Midda من نوع رقم و مصدره يكون عمودين واحد لكتابة رقم ايا عدد ايام التفعيل والاخر لكتابة مثلا يوم واحد او اسبوع واحد هكذا وهذا هو مصدره "1";"يوم واحد";"7";"اسبوع واحد";"30";"شهر واحد";"90";"ثلاث اشهر";"180";"ستة اشهر";"365";"سنة واحدة";"18250";"مدى الحياة" شوف الصورة لكي نعرف خصائص هذا الحقل جيداً و ايضا عندنا حقل باسم firstdate من نوع وقت والتاريخ واخر حقل هو EndDate من نوع وقت والتاريخ وتم تسمية الجدول باسم TblTascil ولان ليس لدي وقت اليوم ان اكون على جهاز لابتوب غدا او يوم السبت ان شاء الله راح اكمل الشرح ونبدأ بعمل النماذج والسلام عليكم ورحمة الله وبركاته
    1 point
  3. السلام عليكم ورحمة الله وبركاته عملت على برنامج طباعة الهويات / الباجات ، وحبيت ان اشارككم تجربتي المؤسسة تملك جهاز طباعة الهويات / الباجات من نوع Fargo DTC550 ، وتم العمل على اكسس 2010 (ويمكن عمل هذه الخطوات على الاكسس 2003 ايضا). المعلومات المطلوبة للهوية: واجهة الهوية: الصورة ، الاسم ، القسم ، الوظيفة ، تاريخ الاصدار ، تاريخ الانتهاء ، رقم الموظف ، بالإضافة الى شعار المؤسسة وتوقيع المسؤول (الشعار والتوقيع فيهما اجزاء شفافه) ، وتوضع على جزء/طرف الصورة ، خلفية الهوية: باركود (بطريقة عمودية وليس افقية) يحمل رقم الموظف ، وصورة خلفية. على ان تطبع الهوية بالوضع الافقي ، وتُغلف (Lamination) كذلك. خطوات العمل: 1. عمل جدول يحتوي على البيانات اعلاه ، 2. عمل نموذج لإدخال بيانات الموظف ، واختيار صورته ، 3. لعمل التقرير (طباعة الهوية) ، يجب ان نعرف خصائص الطابعة ومقاسات الهوية ، 4. التقرير عبارة عن طبقتين ، حيث البيانات والصورة في الطبقة السفلى ، ويأتي شعار المؤسسة وتوقيع المسؤول في الطبقة الاعلى ، الصعوبات التي واجهتها: أ. إبراز الاجزاء الشفافة من الشعار والتوقيع ، بحيث نستطيع رؤية صورة الموظف خلفها ، ب. عمل الباركود ، والمطلوب ان يكون بطريقة عمودية وليس افقية (تصميم الهوية هكذا) ، ج. عمل مقاسات التقرير ، د. طباعة الهوية على الطابعة ، وجعل الصورة واضحة ، هـ. العمل على التقرير من جهاز لا يحتوي على برنامج الطابعة. طرق التغلب على الصعوبات: أ. شفافية الصور: مع انه المفترض ان يقبل الاكسس 2010 فما فوق ، الصور التي بأجزائها شفافية ، ولكن للأسف هناك خلل في الاكسس ، مما جعل التعامل مع الشفافية يتطلب جهدا اضافيا !! ولعمل الشفافية ، هناك العديد من الطرق ، ولكني وجدت افضل نتيجة عندما استخدمت الطريقة الموضحة هنا ، وللمثال سنستخدم صورة عملتها ، ونقوم بالتالي: نفتح الصورة في برنامج الصور مثل فوتوشوب photoshop ، ثم نختار الخلفية التي نريد ازالتها ، وهنا نريد ازالة الخلفية البيضاء . الخلفية البيضاء تم اختيارها . نعكس الاختيار ، حتى نختار الالوان الاخرى في الصورة (المناطق الغير شفافة) ، ثم نعمل نسخ Ctrl+c . نفتح صورة جديدة ، خلفيتها شفافة ، ونلاحظ ان الفوتوشوب اعطانا الصورة بنفس مقاييس الصورة التي نسخناها في الذاكرة . وهكذا تبدو الصورة بالخلفية الشفافة . لعمل الشفافية ، يجب ان نختار صيغ معينة من الصور والتي بإمكانها الاحتفاظ بالشفافية ، مثل Gif او png . هذه الاعدادات مهمة ، لأنها هي التي تحفظ شفافية الخلفية ، ونلاحظ اننا سنحفظ الصورة بصيغة Gif . ثم نفتح برنامج المايكروسوفت وورد ، ونفتح الصورة فيه ، ثم نضغط على الصورة ، وبزر الفأرة اليمين نعمل نسخ (هذه العملية هي التي ستجعل الاكسس يقبل شفافية الصورة) . نأتي للتقرير في الاكسس ، وبالفأرة اليمين ، نلصق الصورة (قد تحصل على رسائل خطأ ، ولكن واصل العمل) . الصورة في التقرير بعد اللصق ، ونلاحظ ان الصورة غير شفافة ، كما ان اعدادات الصورة لم تجعل خلفية الصورة شفافة (لاحظ السهم) . وعندما غيرنا اعدادات خلفية الصورة الى شفاف ، نرى ان الجزء الشفاف من الصور اصبح ظاهرا ، ونستطيع رؤية الصورة الخلفية من خلال المنطقة الشفافة . هذا معاينة للتقرير ، ونرى فيه الشفافية بوضوح . وهذه الصورة ذو الاجزاء الشفافة على الصورة الخلفية . ب. عمل الباركود: هناك العديد من المبرمجين يستعملون اداة ActiveX للباركود ، هذه الاداة محتاجة الى ملف dll او ocx والذي يجب وضعه في احد مجلدات الوندوز ، ثم تسجيل هذه الاداة في الوندوز. ولكن هناك العديد من المشاكل في هذه الاداة ، او في مكان حفظها (نظام 32بت يختلف عن 64 بت) ، او في تسجيلها او حتى في رقم اصدارها. كما ويجب ان تعمل جميع هذه الخطوات لكل كمبيوتر/مستخدم. لهذا السبب اتجهت للنظر الى طريقة اخرى. الطريقة البديلة والتي استعملتها ، هي التعامل مع الباركود كنوع من انواع خطوط الوندوز (Font) ، ولإستعمالها في الاكسس ، نستعمل حقل نص عادي ونختار له خط الباركود. وهناك الكثير من هذه الخطوط ، بمختلف انواع الباركود ، وانا اخترت استعمال code39 او (code 3 of 9) او (the 3 of 9 code) والذي يقبل الحروف والارقام ، ولم اقم بمقارنة او تجربة خطوط من انواع اخرى من الباركود. مبدئيا بدأت بإستعمال احد الخطوط ، ثم اتضح لي بأن ذلك الخط لا يستطيع ان يكتب الباركود اذا جعلت حقل النص عموديا!! وبعد بحث وتجارب ، استقر رأيي على الخط (code 3 de 9) والذي يمكن تنزيله بالمجان من هنا https://grandzebu.net/informatique/codbar/code39.ttf . وطريقة استعماله ، هي ادخال الرقم الوظيفي (حقل رقم او نص) في النموذج يكون مثلا 123456 ، وعندما نريد ان نرى الباركود ، فنستعمل حقل نص في النموذج او التقرير ، ونختار الخط اعلاه (انظر 4#) ، وحجم الخط 28 او اكبر (حسب تجربتي) ، ثم في اعدادات هذا الحقل ، في مصدر بياناته نكتب (Employee_ID هو حقل الرقم الوظيفي) : ="*" & [Employee_ID] & "*" 7. بإستخدام طريقتي اعلاه ، اتضح ان جهاز الباركود يقرأ 3 ارقام فأكثر (يعني يقرأ الارقام من 100 فما فوق) ، لهذا السبب ، ولتخطي هذه المشكلة ، نستخدم الكود التالي (و الشكر لحسن ناجح الذي اقترح هذه الطريقة 🙂 ) ، والذي يحول الارقام الاقل من 3 ، بإضافة اصفار قبلها (يعني 5 يصبح 005 وهكذا) : 'since the Barcode reader cannot read less than 3 digits, 'so lets add zeros before it, so that it becomes 3 digits long, 'but then, for the reading field, it must be INT If Len(Me.Emp_ID) < 3 Then Me.Barcode = "*" & Format([Employee_ID], "000") & "*" Else Me.Barcode = "*" & [Employee_ID] & "*" End If ** ولكن في وقت قراءة الباركود ، يجب ان تتم القراءة في حقل رقم ، مما سيلغي الاصفار تلقائيا ج. عمل مقاسات التقرير: لمعرفة ارتفاع وعرض التقرير ، وحجم حقول النص والخطوط المستعملة ، كان لازم علينا معرفة هذه التفاصيل من الطابعة ، يمكنك انزال برنامج تعريف الطابعة لتحديد مقاس الهوية من هنا https://www.hidglobal.com/sites/default/files/drivers/DTC550 Drv 3004.exe ) ومن حساب طول وعرض البطاقة 85.4 mm 53.7 x ، اتضح لنا ان اسم هذا الحجم هو CR-80 ، وعند اختيار الحجم الصحيح من الطابعة ، نحصل على المسافات/الهوامش التي تحتاجها الطابعة ، والتي يجب ان نستقطعها من طول وعرض التقرير ، وبهذا نحصل على الاطوال الحقيقة المتوفرة لطباعة الهوية ، هذه مواصفات الطابعة . وهذه اعدادات الطابعة . . وعليه ، استطعنا معرفة الاطوال الحقيقة المتوفرة لنا في التقرير ، بعد استقطاع هوامش الطابعة: . د. طباعة الهوية على الطابعة ، وجعل الصورة واضحة: ****رجاء قراءة الملاحظة في نهاية هذا الموضوع عادة لما نعاين تقرير فيه صورة ، فاننا نرى ان الصورة غير واضحة ، ولكن لما تتم عملية الطباعة على الورق ، نرى ان صورة اصبحت واضحة ، ولكن للأسف الشديد فإن الصورة عند طباعتها من تقرير الاكسس الى طابعة الهويات ، فإن الصورة لا تكون واضحة وتكون نوعا ما ، مثل صورة معاينة التقرير!! ولكن عند طباعة الهوية من برنامج الرسومات مثل فوتوشوب Photoshop ، فإن الصورة تكون واضحة ، فهذا معناه ان الاكسس بحاجة وسيط بين التقرير والطباعة!! وبعد البحث اخبرني احد اصحابي "شكرا اخي محمد نادر" والذي كان قد قام بطباعة الهويات قبلي بعدة اشهر ، ان افضل طريقة للطباعة على هذه الطابعة هي ان تطبع التقرير بصيغة xps ، ثم تفتح الصورة بواسطة xps viewer ، وتطبع الهوية من هناك ، وموقع مايكروسوف يُؤكد تفوق نوعية صور xps هذا https://msdn.microsoft.com/en-us/library/windows/hardware/dn641615(v=vs.85).aspx ، وتصبح الصورة هكذا وعليه ، تم استخدام هذا الامر لطباعة الهويات: Badge_Output = Application.CurrentProject.Path & "\Badges.xps" DoCmd.OutputTo acOutputReport, "rpt_Badges", acFormatXPS, Badge_Output, True, , , acExportQualityPrint هذا الكود يُنشئ ملف صورة بصيغة xps حسب المسار في الكود ، ويقوم بفتح هذه الصورة (هذا معناة True في الامر) بالبرنامج الافتراضي لها ، وهو xps viewer ، ثم تستطيع ان تطبع الصورة على الطابعة وتحصل على الهوية ، طبعا نكون قد عملنا اعدادت الطابعة لكي تطبع من جانبي الهوية ، وتعمل التغليف Lamination (شريط شفاف) من الجانبين ، الطباعة من الجانبين . والتغليف Lamination هـ. العمل على التقرير من جهاز لا يحتوي على برنامج الطابعة: احد المشاكل التي صادفتني هي العمل على التقرير من لابتوب/كمبيوتر غير متصل بالطابعة ، لأنه معروف ان تقرير الاكسس يأخذ هوامشه من اعدادات الطابعة ، فعليه تتغير هوامش التقرير بتغير الطابعة ، مما يؤدي الى الاخلال بهوامش الطابعة المستعمله في التقرير!! هوامش طابعة الهويات صغيرة جدا ، لهذا ، فالطابعات العادية لن تفيد لأن هوامشها على اساس A4 مثلا وكبيرة ، ولا تحتوي على حجم الهوية CR-80 هذا جعلني ابحث عن طابعة إفتراضية (virtual printer) والتي يجب ان تحتوي على حجم CR-80 ، وقد وجدت طابعة تطبع التقارير الى صور jpg او bmp و صور بصيغ اخرى https://code-industry.net/imageprinterpro/ واشتريها ، وقبل تنصيبها اتضح اني استطيع استعمال طابعة (Microsoft XPS Document Writer) والمتوفرة على الكمبيوتر مجانا واعداداتها تحتوي على حجم الورق المطلوب ---------------------------------------------------------------------------------------------- وتوضيح اكثر وهذه ملاحظات اضافية لها علاقة بالموضوع بطريقة غير مباشرة: . وهنا قاعدة بيانات يمكن انزالها ---------------------------------------------------------------------------------------------- اضافة في 28-7-2019: اعدادات الطابعة اعلاه تكون لطياعة هويات افقية ، من الجانبين ، وبالتغليف. ولكن ، بالاضافة الى طباعة الهويات اعلاه ، صارت هناك حاجة الى عمل هويات عمودية ، من جانب واحد وبدون تغليف. وطبعا بإمكاننا ان نتبع الخطوات اعلاه ، وقبل طباعة الهوية ، ندخل في اعدادات الطابعة ونغير في الاعدادات ، ونطبع ، ولكن هذه الطريقة غير عملية لطباعة مئات الهويات!! عليه ، الطريقة اللي اتبعناها لحل هذا الموضوع هو ، اعادة تنصيب الطابعة من جديد (يعني الطابعة تم تنصيبها سابقا ، بالاعدادات اعلاه ،والآن نقوم بتنصيبها مرة اخرى) وبدون استخدام CD التنصيب ، لأن بيانات الطابعة تكون موجودة في الكمبيوتر ، ونعطي الطابعة اسم جديد واعدادات اخرى. وعند طباعة الهوية العمودية ، في التقرير ، نقوم بوضع اسم الطابعة الاخرى ، او مؤقتا نقوم بجعل الطابعة الاخرى "طابعة افتراضية" ، وبعد الانتهاء من طباعة الهويات ، نقوم بتغيير الطابعة الافتراضية مرة اخرى 🙂 ---------------------------------------------------------------------------------------------- اضافة في 26-06-2024: اعدادات التقرير للطباعة على الطابعة اعلاه. ------------------------------------------------------------------------------------------------ اضافة 2024-11-13 : لاستعمال خط الباركود دون تنصيب على الكمبيوتر: . وكذلك اتضح ان الاكسس يمكنه طباعة الصور وبوضوح مباشرة الى الطابعة وبدون وسيط xps ، ولكن يجب تغيير اعدادات البرنامج الى: جعفر المرفق يحتوي على الخط code39.ttf ، و على ملف بصيغة mdb به الصورة اعلاه ، وبه مثال لإستعمال خط الباركود للارقام والحروف img_Frame.zip
    1 point
  4. هذا ملف برنامج مقاولات اكثر من رائع ولى سنوات استخدمه والفضل لمن صممه وقد دعوت له كثيرا ولكن اضطرتنى الظروف لتغيير الجهاز والجهاز الحديث لا يقبل سوى نسخة الويندوز السفن ولم استطع العمل على البرنامج مع الاوفيس 2010 ولا حتى 2007 أرجو من حضراتكم أن تساعدوني في حل هذه المشكلة حيث أنه برنامج رائع وأعمل عليه منذ سنوات ولكم جزيل الشكر وعذرا لقد رفعت البرنامج على موقع خارجى لست على دراية برفع الملف هنا لأن حجمه 2 ميجا https://www.datafilehost.com/d/f120dda1
    1 point
  5. السلام عليكم الدوال الحديدة جميلة جدا لتسهيل العمل
    1 point
  6. شكرا لك استاذ @فارس بني هلال ... تعبناك وايضا تعبت من التفكير ما قلت حضرتك 😣 ان شاء الله سيكون فيها الحل شكرا لك على مشاركتك معنا شكرا لك على مشاركتك معنا ... ونحن نفكر فيه جيدا ... هذا لا ينسى لكن من شان التسهيل ما نشاركهم في الموضوع شكرا لك من جديد اولا شكرا لك على النصيحة ... قصدك لاني لا اشارك المصروفات بكل انواعه في مشاركتي هذا .... انا فكرت فيه جيدا على الرغم اني ليس محاسب كل شيء مهم لكن كل شيء في وقته سيكون المهم التسعير سيكون بيدنا لكن كان اريد اعرف كيف احصل على سعر الشراء لمادة ما لا اقل ولا اكثر لان دخول وخروج المواد سيكون بعدة مرات وسيكون اسعار مختلفة لكن الان عطيتنا فكرة وهو نعرف نسبة المال في المحل مع ملاحظة مصروفات و ادخال الى رأس المال وخروجه ( لان انا ضعيب بالعربي لذلك راح اعطيتكم المثال تجريبي ) واذا انا كان غلطان انصحني بما هو صح نفترض ان في بداية فتح المحل اموالنا فيه 100000 دولار وبعدة مدة 6 اشهر مثلا قمنا بعملية جرد راح نشوف كم هو نسبة المشتريات ( اي ما هو اجمالي المواد في المحل - المواد التالفة ) نفترض هو 50000 كم من المال في القاصة نفترض 15000 دولار وديوننا على المشتريين نفترض 60000 دولار ونسبة الدوين علينا هو 12000 دولار اذن ما هو الربح 50000 + 15000 + 60000 = 125000 125000 - 12000 = 113000 دولار 113000 - 100000 = 13000 دولار هو الربح هل هذه المعادلة صحيحة للربح ام لا ؟ ارجوا من حضراتكم ان تعطونا رأيك على هذا
    1 point
  7. السلام عليكم ورحمة الله هذا حل في الملف المرفق بمعادلات صفيف (طويلة نوعا ما ولكن لم أجد بدا من ذلك).. بن علية حاجي 6 F G H I J K L (2).xlsx
    1 point
  8. هو شغال معايا تمام وبيعمل شيتات جديدة عادى عمتا لو عاوز العمود 2 أعمل insert لعمود جديد يكون هو عمود B ويكون خاص بالهايبر
    1 point
  9. أهلاً وسهلاً بأستاذنا الغالي @ابو ياسين المشولي بشرك الله بخير الدنياء والأخرة .. جزاك الله خيراً شكرا على جهدك الكبير ..
    1 point
  10. استاذي Emad Sabry بارك الله فيك - واسأل الله العلي القدير -ان يجعل هذا العمل الرائع في مزان حسناتك استاذي اشكرك جداً فعلاً -كده مضبوط و هذا ماريد اسأ الله ان يبارك في هذا المنتدي الراقي ويجعله ديماً في تقدم
    1 point
  11. عليك بفتح ملف إكسيل فارغ أولاً ثم من قائمة اختر خيارات ثم اختر مركز التوثيق ثم اختر إعدادات الماكرو ثم اختر تمكين كافة وحدات الماكرو ثم موافق( اتبع الخطوات التي بالصورة ) بعدها قم بفتح ملفك دون أي مشكلة ملحوظة ورقة العمل المسماه بقائمة الدخل بها أخطاء تقريبًا بيانات حذفت منك فقم بتعديلها
    1 point
  12. اتفضل واتمنى يكون حسب طلبك 990.Employee 07 .rar
    1 point
  13. و أنا آسف كثيراً لأنك لم تطل الشرح النافع و الماتع ... و إن كان الموضوع محاسبياً إلا أنه على صلة كبيرة بمجال البرمجة و الاستفاضة محمودة و مطلوبة شكراً لك .
    1 point
  14. السلام عليكم ورحمة الله هذا حل آخر باستعمال الدالة SUMPRODUCT (أو SOMMEPROD) في الملف المرفق.. تم بعض التعديل على الملف (جدول الحروف والقيم المرفقة بها)... بن علية حاجي 6 A B C D E F.xlsx
    1 point
  15. كل التحية للاخوان وبعد اذنهم بمشاركة لست بالخبير هنا ولكن من تجربة مع اخواني المحاسبين - انصحك لكي تحصل على اجابة صحيحة ان يتم طرح السؤال بمنتدى محاسبي - ان الربح الذي في مخيلتك ليس الربح الذي بمخيلت المحاسبين ( هناك معادلات معقدة لحساب الربح والربح انواع واعتقد مشاركة فارس بني هلال اوضحت جزء من المقصود هنا ) - اغلب مشاركة الاخوان تخص التسعير ( تسعير البيع وليس الربح ) - الطريقة لتي ناسبتنا للتسعير مع خبراء محاسبين هي طريقة المتوسط المرجح ( لانه ليس منطقي ان تبيع بضاعة قديمة بسعر اقل من السعر الجديد وكما بطريقة الداخل اولا خارج اولا) - انبه ان في النهاية ان الربح هو الداخل مطروحا منه الخارج ( ولكن التسعير الجيد يعطيك الربح الافضل وليس الربح الحقيقي كما ذكرت) وهنا هو مايهم المؤسسة ولكن قد يكون التدقيق مهم عندما تريد الربح في فترة معينة وهو ليس مهم في الواقع الا بنهاية كل سنة وهي المعتاد محاسبيا وماليا (مشاركة الاخ التميمي قريبة من هذا القصد ) هذا والميدان للاخوة المحاسبين والماليين تحياتي
    1 point
  16. السلام عليكم اقبلوا مني هذه المداخلة المتواضعة كل ماطرحتموه من افكار جيدة ومقبولة وايضاً المعادلة التالية مقبولة قيمة المشتريات = 4500 قيمة المبيعات = 3000 قيمة المخزون = 2750 الربح = ( قيمة المبيعات + قيمة المخزون ) - قيمة المشتريات الربح = (3000 + 2750 ) - 4500 الربح = 1250 لاكن هناك مسألة ليس كل مايشترى يباع في آن واحد قبل التسوق للمتجر مرة اخرى اي بمعنى يوجد بضاعة تباع باستمرار وهناك بضاعة لاتباع باستمرار ( تنام على قلبك) وهناك بضاعة تفسد وتتلف اضف الى ذلك المرتج من المبيعات وايضاً مصروفات المتجر نفسه من دفع اجور ماء وكهرباء واجور العمال وابنائك اللذين يأخذون مصروفهم وما الى ذلك .... في رأي لن تجد رقم مبلغ ربحاً صافياً يعتمد عليه . هذا الموضوع انقله عن تجربة
    1 point
  17. وعليكم السلام ورحمة الله وبركاته الطريقة التي اعمل بها هي طريقة اولاً يصرف أولاً وهي طريقة ناجحة بنسبة 100% وتم اقتباسها من موقع access-programmers واليك المثال المرفق بالموقع FifoStock.zip ولفهم المثال : اولا شراء كمية من صنف معين التاريخ = 01/11/2018 الكمية = 100 * السعر = 10 الاجمالي = 1000 التاريخ = 03/11/2018 الكمية = 100 * السعر = 15 الاجمالي = 1500 التاريخ = 05/11/2018 الكمية = 100 * السعر = 20 الاجمالي = 2000 ثانيا بيع كمية من نفس الصنف التاريخ = 07/11/2018 الكمية = 150 * السعر = 20 الاجمالي = 3000 يتم حساب الربح الحقيقي وقيمة المخزون كالتالي ( 100 * 10 = 1000 ) + ( 50 * 15 = 750 ) الاجمالي = 1750 هذا هو السعر الحقيقي للصنف ثم نأتي لقيمة المخزون ( 50 * 15 = 750 ) + ( 100 * 20 = 2000 ) الاجمالي = 2750 اذن قيمة المشتريات = 4500 قيمة المبيعات = 3000 قيمة المخزون = 2750 الربح = ( قيمة المبيعات + قيمة المخزون ) - قيمة المشتريات الربح = (3000 + 2750 ) - 4500 الربح = 1250 ================================= حتى الآن انا اعمل بشكل جيد وكل شىء تمام في حساب الارباح والحمد لله المشكلة في قيمة المخزون اذا كان هناك مرتجع فهذه المشكلة للاسف لم اوفق فيها حتى الآن . تحياتي
    1 point
  18. السلام عليكم اخي العزيز توجد هنالك طريقتان للتسعير 1- الطريقة المحاسبية ( وهي تقسم الى ثلاث اقسام ) 2- الطريقة اللوجستية ( وهي طريقة معقدة نوعاً ما ) الطريقة الاولى : المحاسبية طريقة الوارد اولاً صادر اولاً (FIFO) : وهي باختصار بسيط جدا ان ما دخل الى المخزن اولاً يصرف اولاً عند الطلب (في حالة توريد الى المخزن متعدد) طريقة الوارد اولاً صادر اخيراً (LIFO) : وهي باختصار شديد ان ما دخل الى المخزن اولاً يصرف اخيراً عند الطلب (في حالة توريد الى المخزن متعدد + اختلاف اسعار التوريد) يعتمد على السعر الاخير طريقة المتوسط الحسابي المرجح : وهي باختصار شديد مجموع الواردات للمخزن مقسوم على مجموع الاسعار خلال فترة زمنية محددة كان تكون شهر واحد الطريقة الوجستية : وهي باختصار شديد ان تضع معيار الى مبلغ الاستثمار كان يكون ان تودع مبلغ الاستثمار في مصرف (بنك) وتحسب الفوائد المترتبة او الارباح الناتجة من الايداع خلال فترة زمنية محددة مثلا سنة ثم تعتبر راس المال مساوي للمبلغ المودع + الفوائد ثم تقارن بين راس المال الجديد مع مقدار ما يتحقق من ارباح من المشروع فاذا كان متساوي فاحسن ايداع المال في المصرف وتحصل على نفس الارباح دون عناء اما اذا كان الفارق كبير فالاستثمار افضل ثم تقول بحساب التفاصيل كل على حده مقسمة اما على ربع سنة او نصف سنة او سنة كاملة او .... حسب مبلغ ومدة الاستثمار مثال للتوضيح : لو استثمرت مبلغ 1000000 دولار لشراء كمية من اجهزة الموبايل فماذا تعمل 1- نضع المعيار ( ايداع في مصرف ) الفوائد المترتبة للسنة الواحدة في المصارف الحكومية 6% اما في المصارف الاهلية يصل الى 13% . لناخذ على سبيل المثال 10% لسهولة الحساب فيكون راس المال المتحقق خلال سنة 100000 خلال سنة 2- يكون راس المال المعياري 1100000 3- حساب التفاصيل ( على سبيل المثال لا الحصر ) لانها كما اشرت طريقة معقدة تتطلب خبرة عالية أ- ما هي المدة الزمنية لتصريف كافة البضاعة ب- ما هي التكاليف المترتبة على خزن البضاعة لهذه المدة ج- ما مقدار الجهد المبذول خلال هذه المدة عند المقارنة بعمل اخر او بدون عمل كما في حالة الايداع د- ماهي التكاليف المترتبة على التقادم والاستهلالك : مثلا الكسر او التلف او الارجاع ه- ماهي التكاليف المترتبة من تغيير الاسعار او سعر الصرف و- ماهي التكاليف المترتبة على التقدم التكنلوجي خلال هذه الفترة : مثلا شركة هاواوي قامت بطرح اكثر من 8 نماذج من الموبيل للفئة المتوسطة ونموذجين للفئة المتقدمة وهذا اثر بشكل كبير في الاسعار بين اول المدة واخر المدة ز- ماهي تكاليف القيمة المضافة ح- ما هي تكاليف المترتبة على وجود المنافسين في السوق ط- ما هي التكاليف لتغير اذواق المستهلكين *** اسف على الاطالة لكن هذا مع الاسف هو المختصر الشديد جداً اقول قولي هذا واستغفر الله لي ولكم . وله المنه والحمد ومنه التوفيق
    1 point
  19. بعد اذن استاذنا عماد وذلك بكتابة السطر الأول داخل الخلية ثم الضغط على Alt+Enter وكتابة السطر الثانى جزاك الله كل خير
    1 point
  20. السلام عليكم ورحمة الله وبركاته يمكن دمج عدة ملفات عن طريق فتح الملف الأول والانتقال إلى آخره، ومن ثم الذهاب إلى قائمة إدراج وبعد ذلك (كائن) وبعدها (نص من ملف)، واختار الملفات المراد دمجها دفعة واحدة. ستجد أن النصوص تم نسخها جميعها للملف الأول. هناك ملاحظة هامة، إن اختلف التنسيق فهذا يعود إلى أنك لم تستخدم نفس القالب لجميع الملفات. دمتم بخير
    1 point
  21. السلام عليكم استادنا @Shivan Rekany بارك الله فيك على هدا المثال المثال يعمل جيدا يوجد مشكل بسيط هناك تاخير في فتح نمودج التسجيل لدي اقتراح لمادا لايقوم صاحب البرنامج بعمل نسختين من نفس البرنامج 1) يكون برنامج تجريبي ( غير كامل ) 2) يكون برنامج كامل يحمل العميل البرنامج التجريبي فادا اعجبه ووجد فيه مبتغاه يطلب النسخة كاملة
    1 point
  22. تم انا جربت وليس هناك مشكلة القي نظرتا الى الصور و لستة اشهر نعم وكان خطأ من عندي في مصدر كومبوبوكس لمدة التفعيل في كلا الملفين انا كتبت 265 بدل ان اكتب 365 وتم تصحيح هذا الخطأ وقريبا ساضع بين ايديكم في نفس المشاركة الاكواد كان هناك موضوع اخر انا عملت عن الحماية واستخدمت DLookUp اکثر من ثلاث مرات لكن هنا انا استخدمت مرة واحدة لا اظن ان يبطئ العمل وعندي هذا المشكلة غير موجودة ! لا اعرف ماذا اقول لك !! انها سهل جدا وحاول ان تضيفه عدد سنوات حسب رغبتك , انا فتحت هذا الموضوع لكي يسهل عليكم لكي تعرف الطريقة اذا تتم التسجيل في اي فترات من الترات الموجودة سيتم اظهار الرسالة اذا قرب من انهاء الفترة التسجيل ب 15 يوم او اقل من ذلك
    1 point
  23. الاكواد المستخدمة :- نحن استخدمنا هذه الوحدة النمطية بها اربع فانكشن Option Compare Database Public Function NumMoaalic() ' لاستخراج سريال المعالج ' Microsoft WMI Scripting v2.1 library ستحتاج مكتبة Dim varObjectToId As String Dim varSerial As String On Error Resume Next varObjectToId = "Win32_Processor,ProcessorId" Set SWbemSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf(Split(varObjectToId, ",")(0)) varSerial = "" For Each SWbemObj In SWbemSet varSerial = SWbemObj.Properties_(Split(varObjectToId, ",")(1)) varSerial = Trim(varSerial) If Len(varSerial) < 1 Then varSerial = "Unknown value" Next NumMoaalic = varSerial End Function Public Function NumHard() ' لاستخراج سريال ھارد ' Microsoft WMI Scripting v2.1 library ستحتاج مكتبة Dim varObjectToId As String Dim varSerial As String On Error Resume Next varObjectToId = "Win32_OperatingSystem,SerialNumber" Set SWbemSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf(Split(varObjectToId, ",")(0)) varSerial = "" For Each SWbemObj In SWbemSet varSerial = SWbemObj.Properties_(Split(varObjectToId, ",")(1)) varSerial = Trim(varSerial) If Len(varSerial) < 1 Then varSerial = "Unknown value" Next NumHard = varSerial End Function Function TxtToNumber(ByVal C As String) As String ' مساعد لتحويل الحروف والرموز الى الارقام ' حسب ما تريدون تقدرون ان تغير الارقام والحروف حسب رغبتكم Select Case C Case "A", "J", "R": TxtToNumber = 9 Case "B", "K", "S": TxtToNumber = 1 Case "C", "L", "T": TxtToNumber = 7 Case "D", "M", "U": TxtToNumber = 3 Case "E", "N", "V": TxtToNumber = 5 Case "F", "O", "W": TxtToNumber = 8 Case "G", "P", "X": TxtToNumber = 2 Case "H", "Y": TxtToNumber = 6 Case "I", "Q", "Z": TxtToNumber = 4 Case "-", "_", "\", " ", "/", ";", ":": TxtToNumber = "" Case Else TxtToNumber = C End Select End Function Function TxtInTextToNumber(SText) ' لتغيير الحروف والرموز الى الارقام Dim Numbers Dim I As Integer ' سيبحث عن الكل الحروف و الرموز وسيغير حسب فانكشن الاعلى For I = 1 To Len(SText) If IsNumeric(Mid(SText, I, 1)) Then Numbers = Numbers & Mid(SText, I, 1) Else Numbers = Numbers & TxtToNumber(Mid(SText, I, 1)) End If Next TxtInTextToNumber = Trim(Numbers) End Function وفي النموذج استخدمنا هذه الاكواد مع شرح Option Compare Database ' تم اعداد من قبل ' Shivan Rekany شفان ريکاني ' وليس لدينا مانع استخدامه في برامجكم فقط نريد منكم الدعاء Dim WqtTascil As Long ' متغير لتعرف عن الوقت التسجيل Private Sub Form_Load() ' كود عند تحميل النموذج 'On Error Resume Next Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim Spl() As String, LookAllMNT As String ' متغيران الثاني لكي نعرف كل معلومات في الجدول اذا تم تسجيل البرامج من قبل والاخر للتجزئة المعلومات Dim LookMyNm, LookMyNh, LookMyNTascil ' مساعد تجزئة المعومات Dim FrqDate As Integer ' متغير نستخدم لفرق بين تاريخ التسجيل و الدخول Dim FDate As Date, EDate As Date ' متغيران واحد للتاريخ التسجيل والثاني لاخر مرة لفتح البرامج ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(NumMoaalic) & TxtInTextToNumber(NumHard)) / (1 & TxtInTextToNumber(NumHard))))) ' جميع المعلومات يساوي جلب بيانات الحقل سريال المعالج و الهارد ورقم التسجيل و مدة التسجيل و تاريخ التسجيل و تاريخ اخر مرة الدخول في جدول تبل التسجيل ' بشرط ان يكون سريال المعالج والهارد في جدول بيكون يساوي مع سريال المعالج والهارد اللي يخررجه الفانكشن LookAllMNT = Nz(DLookup("[NumForMoaalic] & ""|"" & [NumForHard] & ""|"" & [NumTascil] & ""|"" & [midda] & ""|"" &[firstdate] & ""|"" & [EndDate] ", "TblTascil", _ "[NumForHard]='" & NumHard & "'" & "and [NumForMoaalic]='" & NumMoaalic & "'"), "") If LookAllMNT <> "" Then ' اذا يجد المعلوماتولم يكون فارغة Spl = Split(LookAllMNT, "|") ' قم بتجزئة كل المعلوةمات حسب رمز هذا الرمز | ' الان عطينا لكل متغير جزئه حسب ما جلبنا في الجدول LookMyNm = Spl(0): LookMyNh = Spl(1): LookMyNTascil = Spl(2): Me.Midde = Spl(3): FDate = Spl(4): EDate = Spl(5) ' فرق بين تاريخين تاريخ الان مع اضافة مدة التفعيل مع اخر تاريخ الدخول FrqDate = DateDiff("d", Now, DateAdd("d", Me.Midde, FDate)) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(FDate, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(FDate, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(FDate, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(FDate, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(FDate, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(FDate, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(FDate, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If End If ' اذا احد من رقم التسجيل في جدول او سريال الهارد او المعالج بيكون مخالف مع رقم التسجيل او سريال المعالج او الهارد الجهاز If LookMyNTascil <> NumForTascil Or LookMyNm <> NumMoaalic Or LookMyNh <> NumHard Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد ElseIf FDate > Now Or EDate > Now Then ' اذا اول تاريخ بيكون اكبر من الوقت الحاضر او تاريخ اخر مرة للدخول اكبر من الوقت الحاضر MsgBox "تم تلاعب بتاريخ الجهاز ... وهذا غير مقبول , سيتم اغلاق البرامج" DoCmd.Quit ' اغلاق القاعدة ElseIf FrqDate <= 15 And FrqDate > 0 Then ' اذا فرق بين تاريخين يساوي او اقل من 15 يوم و فرق بين تاريخين اكبر من رقم صفر ' بيظهر الرسالة وبيظهر باقي عدد ايام المتبقية لتفعيل البرامج ويسأل هل يريد تسجيله من جديد اذا يختار نعم If MsgBox("باقي عندك " & "( " & FrqDate & " )" & " يوم لانتهاء فترة التسجيل , هل تريد ان تعمل تسجيل من جديد ؟ ", vbMsgBoxRtlReading + vbYesNo + vbQuestion + vbMsgBoxRight, "تسجيل البرامج") = vbYes Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد Else ' والا DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج اخر DoCmd.Close acForm, Me.Name ' اغلاق هذا النموذج End If ElseIf FrqDate <= 0 Then ' اذا صفر بيكون اكبر او يساوي فرق بين تاريخين ' يظهر الرسالة ويخبره بان تم انتهاء مدة التفعيل والسؤال عن تسجيل من جديد واذا اختار نعم If MsgBox("انتهت مدة التفعيل البرامج , هل تريد ان تعمل تسجيل من جديد ؟", vbMsgBoxRtlReading + vbYesNo + vbQuestion + vbMsgBoxRight, "تسجيل البرامج") = vbYes Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد Else ' والا اي اذا اختار لا يريد التسجيل من جديد DoCmd.Quit ' سيغلق القاعدة End If Else ' واذا لم يكون هناك اي شيء من الاول DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج الاخر DoCmd.Close acForm, Me.Name ' واغلاق نموذج الحالي End If DoCmd.SetWarnings False ' اسكات الرسائل التنبيهية ' تحديث اخر تاريخ الدخول في جدول بتاريخ الان DoCmd.RunSQL "UPDATE TblTascil SET TblTascil.EndDate = Now() WHERE (((TblTascil.NumForHard)=NumHard()) AND ((TblTascil.NumForMoaalic)=NumMoaalic()));" DoCmd.SetWarnings True ' تفعيل تنبيهات الافتراضية End Sub Private Sub Tascil_Click() ' كود عند الضغط على زر التسجيل On Error Resume Next ' "1";"7";"30";"90";"180";"365";"18250" Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim Spl() As String, LookAllMNT As String ' متغيران الثاني لكي نعرف كل معلومات في الجدول اذا تم تسجيل البرامج من قبل والاخر للتجزئة المعلومات Dim LookMyNm, LookMyNh, LookMyNTascil ' مساعد تجزئة المعومات Dim FrqDate As Integer ' متغير نستخدم لفرق بين تاريخ التسجيل و الدخول ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.Midde & "") = 0 Then MsgBox "اختر مدة التفعيل": Me.Midde.SetFocus: Exit Sub ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(NumMoaalic) & TxtInTextToNumber(NumHard)) / (1 & TxtInTextToNumber(NumHard))))) ' جميع المعلومات يساوي جلب بيانات الحقل سريال المعالج و الهارد ورقم التسجيل و مدة التسجيل و تاريخ التسجيل و تاريخ اخر مرة الدخول في جدول تبل التسجيل ' بشرط ان يكون سريال المعالج والهارد في جدول بيكون يساوي مع سريال المعالج والهارد اللي يخررجه الفانكشن LookAllMNT = Nz(DLookup("[NumForMoaalic] & ""|"" & [NumForHard] & ""|"" & [NumTascil] ", "TblTascil", _ "[NumForHard]='" & NumHard & "'" & "and [NumForMoaalic]='" & NumMoaalic & "'"), "") Spl = Split(LookAllMNT, "|") ' قم بتجزئة كل المعلوةمات حسب رمز هذا الرمز | ' الان عطينا لكل متغير جزئه حسب ما جلبنا في الجدول LookMyNm = Spl(0): LookMyNh = Spl(1): LookMyNTascil = Spl(2) ' فرق بين تاريخين تاريخ الان مع اضافة مدة التفعيل مع اخر تاريخ الدخول FrqDate = DateDiff("d", Now, DateAdd("d", Me.Midde, FDate)) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(Date, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(Date, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(Date, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(Date, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(Date, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If If Me.NTascil = NumForTascil Then ' اذا كان رقم التسجيل المدخلة بيكون يساوي مع رقم التسجيل الحقيقي للبرامج If LookAllMNT <> "" Then ' اذا هذه ليس اول مرة يسجل على هذه الجهاز DoCmd.SetWarnings False ' اطفاء تنبيهات الافتراضية للنظام ' تحديث المعلومات في الجدول حسب معلومات التفعيل الجديدة DoCmd.RunSQL "UPDATE TblTascil SET TblTascil.NumForMoaalic = [Forms]![FrmTescil]![NM], TblTascil.NumForHard = [Forms]![FrmTescil]![NH]," & _ "TblTascil.NumTascil = [Forms]![FrmTescil]![NTascil], TblTascil.Midda = [Forms]![FrmTescil]![Midde], TblTascil.firstdate = Now(), " & _ " TblTascil.EndDate = Now() WHERE (((TblTascil.NumForMoaalic)=NumMoaalic()) AND ((TblTascil.NumForHard)=NumHard()));" DoCmd.SetWarnings True ' تشغيل تنبيهات الافتراضية للنظام Else ' واذا هذه المرة هي اول مرة للتسجيل ' اضافة معلومات التفعيل الى جدول DoCmd.SetWarnings False ' اطفاء تنبيهات الافتراضية للنظام DoCmd.RunSQL "INSERT INTO TblTascil ( NumForMoaalic, NumForHard, NumTascil, Midda, firstdate, EndDate ) " & _ "SELECT [Forms]![FrmTescil]![NM] AS Expr1, [Forms]![FrmTescil]![NH] AS Expr2, [Forms]![FrmTescil]![NTascil] AS Expr3," & _ "[Forms]![FrmTescil]![Midde] aS Expr4, Now() AS Expr5, Now() AS Expr6;" DoCmd.SetWarnings True ' تشغيل تنبيهات الافتراضية للنظام End If MsgBox "تم تسجيل البرامج لمدة " & Me.Midde.Column(1) ' اظهار رسالة ويظهر للمستخدم ان تم تفعيل لمدة المحددة DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج الاخر DoCmd.Close acForm, Me.Name, acSaveYes ' اغلاق النموذج الحالية وهو نموذج التسجيل ElseIf Len(Me.NTascil & "") = 0 Then ' اذا كان مربع نصي لرقم التسجيل بيكون فارغا MsgBox "اکتب رقم التسجيل ... وحاول مجددأ" ' اظهار رسالة ويخبره بان رقم التسجيل المدخلة خطأ Me.NTascil.SetFocus 'تركيز على مربع نصي لرقم التسجيل في النموذج Else ' والا MsgBox "خطأ في رقم التسجيل ... حاول مجددأ" ' اظهار رسالة ويخبره بان رقم التسجيل المدخلة خطأ Me.NTascil = "" 'قم بافراغ مربع نصي رقم التسجيل في نموذج Me.NTascil.SetFocus 'تركيز على مربع رقم التسجيل في نموذج End If End Sub Private Sub BtnQuit_Click() ' كود عند ضغط على زر اغلاق ' اغلاق القاعدة DoCmd.Quit End Sub وراح نستخدم هذين فانكشنين في وحدة نمطية في قاعدة كراك هو نفس وحدة الفانكشن الاعلى اللس استخدمناه في القاعدة اللي نعطيه للعميل Option Compare Database Function TxtToNumber(ByVal C As String) As String Select Case C Case "A", "J", "R": TxtToNumber = 9 Case "B", "K", "S": TxtToNumber = 1 Case "C", "L", "T": TxtToNumber = 7 Case "D", "M", "U": TxtToNumber = 3 Case "E", "N", "V": TxtToNumber = 5 Case "F", "O", "W": TxtToNumber = 8 Case "G", "P", "X": TxtToNumber = 2 Case "H", "Y": TxtToNumber = 6 Case "I", "Q", "Z": TxtToNumber = 4 Case "-", "_", "\", " ", "/", ";", ":": TxtToNumber = "" Case Else TxtToNumber = C End Select End Function Function TxtInTextToNumber(SText) Dim Numbers Dim I As Integer For I = 1 To Len(SText) If IsNumeric(Mid(SText, I, 1)) Then Numbers = Numbers & Mid(SText, I, 1) Else Numbers = Numbers & TxtToNumber(Mid(SText, I, 1)) End If Next TxtInTextToNumber = Trim(Numbers) End Function مع هذا الكود في النموذج التسجيل في قاعدة كراك Option Compare Database ' تم اعداد من قبل ' Shivan Rekany شفان ريکاني ' وليس لدينا مانع استخدامه في برامجكم فقط نريد منكم الدعاء Private Sub Tascil_Click() ' كود عند الضغط على زر التسجيل On Error Resume Next Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim WqtTascil ' ھو رقم من التاريخ لکي يقسم عليھ رقم قبل التسجيل ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.Midde & "") = 0 Then MsgBox "اختر مدة التفعيل": Me.Midde.SetFocus: Exit Sub ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.NM & "") = 0 Then MsgBox "اكتب رقم المعالج": Me.NM.SetFocus: Exit Sub ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.NH & "") = 0 Then MsgBox "اكتب رقم الهارد": Me.NH.SetFocus: Exit Sub ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(Me.NM) & TxtInTextToNumber(Me.NH)) / (1 & TxtInTextToNumber(Me.NH))))) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(Date, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(Date, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(Date, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(Date, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(Date, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If Me.NTascil = NumForTascil ' مربع رقم التسجيل يساوي رقم التسجيل End Sub Private Sub BtnQuit_Click() ' كود عند ضغط على زر اغلاق ' اغلاق القاعدة DoCmd.Quit End Sub * قاعدة الكراك راح يكون عند المبرمج والاخر سيكون في قاعدة بيانات البرامج اللي يعمله المبرمج ويعطيه للعميل * من الممكن ان يتغير ارقام اي نوع عطاء رقم التفعيل حسب الرغة اتمنى ان يستفيد منه اكبر عدد ممكن من الاعضاء تقبلوا تحياتي ShivanHimaye.rar
    1 point
  24. من الملفات القديمة التي تمت مشاركتي لها والتي تطلب غالباً كيف نحمي الخلايا غير الفارغة بواسطة باسوورد (الباسورد في الملف / الخلية H3/ يمكن حفظة و مسحه عن عيون الفضوليين) مع حرية الغاء الجماية كما تشاء protect non empty data with Pass word.xlsm
    1 point
  25. جرب هذا الكود Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Dim x% If (Target.Column >= 3 Or Target.Column <= 6) _ And Target.Count = 1 Then If IsEmpty(Cells(Target.Row, 1)) Or IsEmpty(Cells(Target.Row, 2)) Then x = Application.CountA(Range(Cells(Target.Row, 3), Cells(Target.Row, 6))) If x = 4 Then Cells(Target.Row, 1) = Date + Time Cells(Target.Row, 2) = Application.UserName End If End If End If Application.EnableEvents = True End Sub
    1 point
  26. السلام عليكم.. سنتحدث في هذا الدرس عن الشريحة الرئيسية في البوربوينت، وهي خاصية مهمة جداً وتوفر الكثير من الوقت والجهد، خاصة عند تصميم عرض يحتوي على الكثير من الشرائح تحتوي على أشكال مكررة أو أزرار انتقال للأمام والخلف أو حتى شعار، فهذه الخاصية تجعلك تقوم بالأمر مرة واحدة فقط. كيف؟!.. تابعوا معي الخطوات التالية لتروا مدى سهولة الأمر.. لنقم بإنشاء عرض يحتوي على 10 شرائح، ثم نذهب إلى قائمة عرض (View) ونختار منها الشريحة الرئيسية (Slide Master). الآن سنشاهد ظهور الشريحة الرئيسية، وهي طبعاً تشبه الشريحة العادية. نستطيع هنا إدراج ما نريد من صور أو أشكال وحتى تغيير خلفية الشريحة، حيث نستطيع إدراجها هنا مثل الشريحة العادية تماماً، ولكن طبعاً هذه الشريحة لا تظهر عند تشغيل العرض التقديمي، فقط يظهر ما بها من أشكال على الشرائح العادية. ملاحظة: نشاهد أن الشريحة هنا تحتوي على 3 مستطيلات في الأسفل، وهذا يرجع لتخطيط الشريحة الذي اخترناه للشريحة العادية، وتختلف الشريحة الرئيسية حسب هذا التخطيط، فإذا اخترنا تخطيط آخر فسيختلف شكل الشريحة الرئيسية هنا، وإذا أردنا حذف هذه المستطيلات نستطيع ذلك بتحديدها ثم ضغط مفتاح (Delete) من لوحة المفاتيح، ولن يؤثر ذلك على الشريحة. الآن نقوم بإدراج ما نريد من عناصر هنا، وبعد الانتهاء نذهب إلى قائمة الشريحة الرئيسية (SLIDE MASTER)، ثم نضغط زر إغلاق الشريحة الرئيسية (CLOSE MASTER VIEW). الآن سنشاهد أن جميع العناصر التي أدرجناها على الشريحة الرئيسية قد تم إدراجها على جميع الشرائح العادية. ولكن هناك سؤال مهم.. إذا أردنا أن تكون مجموعة من الشرائح أو أحدها كأن تكون شريحة المقدمة مثلاً لا تحتوي على هذه العناصر فماذا نفعل؟ الأمر ببساطة.. نقوم بتغيير تخطيط الشريحة لأي تخطيط آخر، وسيتم إلغاء هذه العناصر عن هذه الشريحة. سؤال آخر.. قد يقول أحدنا: هل أنا فعلاً أحتاج لهذه الخاصية؟! أستطيع تصميم شريحة واحدة ووضع جميع العناصر التي أريدها عليها ثم أقوم بتكرارها، وبهذا لا أحتاج لهذه الخاصية العظيمة!! سأقول هذا جيد.. ولكن فكّر بالتالي.. ماذا لو أردت أن تغير شكل أو تحرك صور لمكان آخر أو تغيّر لون شكل... طبعاً ستكون هذه كارثة في حال قمت بتكرار 50 شريحة أو أكثر ثم أردت أن تقوم بهذا بشكل يدوي!! لذلك يجب أن نستخدم دائماً الشريحة الرئيسية عندما نريد تكرار عدة أشكال على الشرائح. نهاية الدرس
    1 point
  27. السلام عليكم اواجه مشكلة صعبة ظللت اسبوعين احاول لمدة 8 ساعات يوميا .........ان احلها ولكنى لم افلح ------------------------------------------------------------------------------------- هذا جزء خاص من برنامجى خاص بالسلف وفكرته تعتمد على ان كل موظف يقوم بعمل سلفه تأخذ رقم advance No مثلا(1) والسلفة التالية اعطيها رقم مثلا (2) ثم فى نموذج فرعى اخر يظهر عدد الشهور التى تم سدادها وهنا اريد عند جمع عدد الشهور المدفوعه لكل سلفة لنفس الموظف ان يتم ترحيلها وكذلك الحال لباقى القيم التالية بمعنى ادق اريد ترحيل قيم الحقول التالية من النموذج الفرعى advance22 subform وهى : Text22 ...................... قيمة الاقساط المدفوعة Text35 ..................... عدد الاقساط Text15...................... المبلغ المتبقى من السلف Text26 .................... قيمة القسط الشهرى يتم ترحيلها الى حقول الجدول advancepay وهى : totalpay ............... *قيمة الاقساط المدفوعة* Noofpay .............. *عدد الاقساط* remainingadvance ..................... *المبلغ المتبقى من السلف* monthlypay ..................... *قيمة القسط الشهرى* ملحوظة هامة جدا جدا جدا ................. للعلم ان قيم النموذج الفرعى advance22 subform الحسابية تتغير بادخال شهر سداد جديد وهنا اريد ان يتم ترحيل البيانات وتحديثها باستمرار عند اضافة شهر سداد جديد حيث تتغير جميع القيم السابقة للحقول فى النموذج الفرعى وبالتالى اريد تحديثها فى حقول الجدول باستمرار """"ارجوا مساعدتى قدر المستطاع لاننى متوقف فى برنامجى على هذا الجزء ......""""" ولسيادتكم جزيل الشكر advance.rar
    1 point
  28. بعد الاطلاع على المثال تبين ان الحقول المراد ترحيلها هي حقول محسوبة غير منضمة . وان النموذج الفرعى advance22 subform مصدر سجلاته هو الجدول advancepay عبر الاستعلام advance22 لذا للترحيل او ما اسميته بالتحديث يمكنك تطبيقه عند حدث اضافة شهر جديد أو حدث تسديد شهر جديد والكود سيكون كالتالي : totalpay=Text22 Noofpay=Text35 remainingadvance=Text15 monthlypay=Text26
    1 point
  29. إنشيء مربع تحرير وسرد وسمه مثلاً cbo1 وأضف إليه تسمية الألوان التي تريدها وأضف مربع النص وليكن مثلاً txt1 ثم في حدث " عند التغيير " لمربع التحرير أكتب الكود التالي : Select Case cbo1.ListIndex Case 0 Me.txt1.BackColor = QBColor(0) Me.txt1.ForeColor = QBColor(15) Case 1 Me.txt1.BackColor = QBColor(1) Me.txt1.ForeColor = QBColor(15) Case 2 Me.txt1.BackColor = QBColor(2) Me.txt1.ForeColor = QBColor(1) Case 3 Me.txt1.BackColor = QBColor(3) Me.txt1.ForeColor = QBColor(15) Case 4 Me.txt1.BackColor = QBColor(4) Me.txt1.ForeColor = QBColor(15) Case 5 Me.txt1.BackColor = QBColor(5) Me.txt1.ForeColor = QBColor(1) Case 6 Me.txt1.BackColor = QBColor(6) Me.txt1.ForeColor = QBColor(15) Case 7 Me.txt1.BackColor = QBColor(7) Me.txt1.ForeColor = QBColor(15) Case 8 Me.txt1.BackColor = QBColor(8) Me.txt1.ForeColor = QBColor(15) Case 9 Me.txt1.BackColor = QBColor(9) Me.txt1.ForeColor = QBColor(1) Case 10 Me.txt1.BackColor = QBColor(10) Me.txt1.ForeColor = QBColor(1) Case 11 Me.txt1.BackColor = QBColor(11) Me.txt1.ForeColor = QBColor(1) Case 12 Me.txt1.BackColor = QBColor(12) Me.txt1.ForeColor = QBColor(1) Case 13 Me.txt1.BackColor = QBColor(13) Me.txt1.ForeColor = QBColor(1) Case 14 Me.txt1.BackColor = QBColor(14) Me.txt1.ForeColor = QBColor(1) Case 15 Me.txt1.BackColor = QBColor(15) Me.txt1.ForeColor = QBColor(1) End Select وسوف أعطيك أرقام الألوان حتى تكتبها في الشفرة 0 _ اسود 1_ ازرق 2_ أخضر 3_فوشيا 4_ أحمر 5_ برتقالي 6_ أصفر 7_ أبيض 8_ رمادي 9_ أزرق فاتح 10_ أخضر فاتح 11_ فوشيا فاتح 12_ أحمر فاتح 13_ برتقالي فاتح 14_ أصفر فاتح 15_ أبيض لامع لاحظ بأن السطر التالي : Me.txt1.BackColor = QBColor(15) خاص برقم لون الخلفية لمربع النص والسطر التالي : Me.txt1.ForeColor = QBColor(1) خاص برقم لون الخط في مربع النص وإذا أردة أن يثبت اللون لمربع النص حتى يغيره المستخدم أجعل مصدر مربع التحرير والسرد جدول خاص بالألوان وضع الكود أيضاً في حدث عند " التحميل " للنموذج "
    1 point
×
×
  • اضف...

Important Information