-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
مرحبا أمير، إن هكذا أمور يصعب تحقيقها في اكسل و تحتاج لقواعد بيانات علائقية تسمح بهكذا هيكلة للبيانات (المنتج له جدول خاص مع حقول لكل صفة/خاصية له مثل تاريخ التصنيع و عدد الوحدات لكل عينة و هكذا).. وبما أن التطبيق لمخزن يفضل استعمال قاعدة بيانات مثل access ، أو برمجة العملية بكاملها بطريقة مختلفة مثل قواعد بيانات MySQL. اقتراح حل في Excel: تقوم بتخصيص حقلين لكل منتج، بحيث يعبر الأول عن تاريخ إنتاج مجموعة جزئية من محتوى المخزن و الحقل الثاني عدد هذه العناصر في المجموعة .. كل سجل (سطر في الملف) سيحوي على تاريخ و عدد القطع من المنتج. للبحث تقوم بعمل اختبار وتضع الشرط المناسب مثلا تريد أصغر تاريخ من الحقل الأول مع عدد منتجات أكبر من 0 (أو X حسب الطلب) من الحقل الثاني فهذا يدل على وجود منتجات بالتاريخ المحدد. (ربما تضطر لعمل حلقات و تكرار عملية البحث ليقوم الاستعلام اللاحق بجلب البيانات الباقية من السطر التالي - صاحب تاريخ أكبر من الحالي) وبعد ذلك يمكنك إرجاع رقم السطر و تنفيذ عملية السحب (الشراء) إنقاص العداد (الحقل الثاني) بالقيمة المطوبة. وربما تضطر لتجزئة الاستعلام أو عمل استعلام معقد أكبر ليقوم بالضبط بما تريده. بالتوفيق
-
مرحبا عبد الله, تريد من الشخص (المستخدم) بعد الدخول للموقع أن تعرض له الاستثمارت الخاصة به (التي ملأها زبائنه) حسنا عليك تسجيل المستخدمين و إعطاء لكل منهم ID رقم معرف خاص (إن كان مستخد أو زبون) و من ثم نجلب البيانات بما يتوافق مع معلومات المستخدم و لا نعرض كل شيئ (عندما نريد جلب الإستمارات نختار الإستمارات التي مالكها هو نفسه الشخص الذي قد سجل الدخول (نفس المستخدم الحالي) بمطابة العرف ID الخاص به) بالنسبة لجدول الاستمارة يكون يحوي الحقول التالية : رقم الاستمارة رقم المستخدم رقم الزبون -اختياري في حال لاتريد تسجيل الزبائن- التاريخ وباقي التفاصيل عندما يسجل المستخدم X نبحث عن الاستمارة التي لها رقم مستخدم X ونعرضهم له. بالتوفيق
-
مرحبا هبة، أرجو إرفاق آخر تعديل مع جميع الإصلاحات في ملف مضغوط جديد شكرا لك
-
مرحبا مروان، سيأخذ الموقع عمولة لكل عملية بيع ناجحة على الشكل التالي: اقتطاع قيمة ثابتة تساوي 0.35$ اقتطاع نسبة مئوية قدرها 3.5$ من المبلغ المتبقي كل 1$ سيقتطع منه : نطرخ 0.35$ x = 1 x = x - 0.35 x = 0.65 نحسب النسبة و نعيد طرحها من المبلغ المتبقي لتصبح y = x * 3.5 / 100 y = 0.65 *3.5 / 100 = 0.02275 x = x - y = 0.65 - 0.02275 = 0.62725 أرباحك من 1$ لمعاملة ناجحة يكون 0.62725 X هو المبلغ الذي نطبق عليه العلاقة الرياضية و y هو قيمة الخصم بنفس الطريقة .. أرباحك لمعاملة بقيمة 10$ يكون 9.31225. تعديل: على الأغلب يوفر كل مزود خدمة دفع الكتروني توثيق بكيفية حساب نسبته وربما يأخذ النسبة من المبلغ الكلي ثم يضيف القيمة الثابتة، المثال السابق يوضح العمليات الحسابية بشكل عام. بالتوفيق
- 2 اجابة
-
- 3
-
مرحبا، اذهب لعمود جديد و احسب قيمته كالتالي: العمود الأسبق مطروحا منه 100 و مضروباً بالقيمة 2. B1 = (A1 - 100) * 2 بالتوفيق
- 45 تعليقات
-
- if
- الدالة الشرطية
-
(و 3 أكثر)
موسوم في:
-
مرحبا, يجب أن يحوي الجدول على حقول إضافية لتبين فيما إذا تم الدفع في ذلك الشهر أو لم يتم الدفع؟. سنقوم بتقسيم المشكلة الى اجزاء. ترقيم الحقول : عمود الاسم A وعمود قيمة الاجار B وعمود تاريخ بداية العقد C وعمود تاريخ نهاية العقد D و عدد أشهر الأجار E قيمة الأجار المستحق F 1- حساب فترة الأجار: هو ناتج طرح الحقلين عمود تاريخ نهاية العقد وعمود تاريخ بداية العقد و سوف نستتدم الدالة DATEDIFF لحساب عدد الشهور بين التاريخين اي مدة العقد نكتب = DATEDIF(C1,D1,"M") حيث يمثل C1 تاريخ بداية العقد و D1 يمثل تاريخ نهاية العقد و "M" نطلب من الدالة حساب عدد الأشهر (Months) نضع هذه الدالة في اول خلية للعمود E ثم نسحب من طرف المربع الخاص بالخلية الأولى للأسفل ليقوم برنامج اكسل بتطبيق هذه الدالة على جميع خلايا العمود. 2- لحساب قيمة الأجار المستحق بالعمود F وهو يمثل ناتج ضرب قيمة الأجار الشهرية بعدد أشهر العقد, أي ناتج جداء الحقلين B*E نقوم بوضع B1*E1 في أول خلية للعمود F ثم نسحب من طرف المربع الخاص بالخلية الأولى للأسفل ليقوم برنامج اكسل بتطبيق هذه الدالة على جميع خلايا العمود. النتيجة : خلايا العمود F ستحوي على القيمة الإجمالية لقيمة أجار العقد. في حال وجود أي ملاحظة الرجاء التعليق مرة أخرى و كتابة التفاصيل الإضافية. شرح آلية عمل الدالة DATEDIF من موقع مايكروسوفت في حال وجود عمود يحوي مبلغ السلفة المدفوعة من قيمة الأجار لنفرض اسمه G يمكننا عمل تغيير بسيط في الدالة و تبديل تاريخ نهاية العقد لتاريخ اليوم (تاريخ بداية الشهر الجديد) بوضع =TODAY() مكان الخلية D1 في الدالة DATEDIF ثم => نقارن القيمة المدفوعة مع الحقل F (سيحوي عندها القيمة المستحقة من بداية تاريخ العقد حتى تاريخ اليوم أي بداية الشهر الجديد) ننتقل لعمود جديد ليكن H و نضع فيه = MAX(F1-G1, 0) حيث ستكون F تدل على المبلغ المستحق دفعه من بداية العقد حتى اليوم F = DATEDIF(=TODAY(),D1,"M") في الخلية H1 ثم نسحب من طرف المربع الخاص بالخلية الأولى للأسفل ليقوم برنامج اكسل بتطبيق هذه الدالة على جميع خلايا العمود حينها سيكون مقابل كل اسم من الجدول القيمة المستحدقة للدفع في الخلية H.
- 45 تعليقات
-
- if
- الدالة الشرطية
-
(و 3 أكثر)
موسوم في:
-
مرحبا، المتغيرات, المتغير، تستخدم لغات البرمجة اسم مستعار لمكان في الذاكرة ليسهل الوصول له و تخزين القيم و قراءتها. من الاسم نستنتج أنه خلال عمل البرنامج يقبل المتغير أن تتغير قيمته. مثلا: var a; a = 5; a = 10; a = a * 2 + 1; // a => 21 a = 1; a = 1 - a; // a => 0 المثال يتضمن تعريف متغير، ثم إسناد له عدة قيم، كل مرة شيئ مختلف. ونلاحظ بأن البرنامج يعمل بطريقة تسلسلة من الأعلى للأسفل و يقوم بتنفيذ العمليات الواحدة تلو الأخرى.. - في جزء التعبيرات الحسابية، يقوم الحاسوب بحساب الجزء الأيمن أولاً ثم يقوم بإسناد القيمة للجزء الأيسر (على طرفي إشارة المساواة =). - في جافا سكربت يمكن تعريف متحول بدون الكلمة المفتاحية var لكن استخدامها أوضح بالنسبة للبشر في فهم الكود (أي أن البرنامج السابق يعمل بدون أول سطر). الآن سنتكلم عن الدوال - function: هي جزء من الشيفرة البرمجية نريد تنفيذها عدة مرات في البرنامج، وهذا في طبيعة الحال سيجبرنا بنسخ الشيفرة البرمجية عدة مرات وهذا أسلوب غير عملي .. فقام مطورو لغات البرمجة بإيجاد طريقة لعزل و استخلاص الأجزاء المتكررة من البرنامج ووضعها في فيما يسمى دالة - والدلة هي مكون برمجي مثل المتغير - له اسم مميز ويمكننا تشبيهه بالعامل الذي نطلب منه تنفيذ مهمة محددة في كل مرة. يمكننا إعطاء هذا العامل تعليمات مختلفة في كل مرة يقوم بتنفيذ هذا العمل و سيعود لنا بالنتائج إن سارت الأمور على مايرام (لم يحدث خطأ في تنفيذ البرنامج) يتم تمرير التعليمات للدوال عن طريق مايسمى البارامترات - parameter أو الوسطاء. وهي عبارة عن متغيرات مؤقتة تقوم الدالة بتعريفها و استخدامهم حتى تنتهي من عملها ثم تتخلص منهم من الذاكرة. - هي نفس طريقة تعامل البرنامج الرئيسي مع باقِ المتحولات - حيث يتم تفريغ الذاكرة بعد انتهاء البرنامج بعد كل تنفيذ. مثال بسيط لتابع يقوم بالجميع - حيث يكفي ذكر اسمه مع الوسطاء ضمن البرنامج الرئيسي ليتم عملية حساب المجموع. // تابع يعيد ناتج مجموع متغيرين function add(p1, p2) { return p1 + p2; } var x = add(1,1); // x => 2 x = add(2,2); // x => 4 x = add(2,3); // x => 5 x = add(4,7); // x => 11 لاحظ أننا قمنا بتعريف الfunction لمرة واحدة ثم قمنا باستدعائه عدة مرات .. بدون تكرار جزء عملية الجمع. - لاحظ لا نقوم بتكرار عملية تعريف المتغير X و أنه في كل مرة يحمل قيمة مختلفة. - p1 تعبر عن الوسيط الأول الممرر للدالة و p2 الوسيط الثاني. مثال لعملية الطرح: // تابع يعيد ناتج طرح متغيرين function minus(p1, p2) { return p1 - p2; } var x = minus(1,1); // x => 0 x = minus(2,1); // x => 1 x = minus(2,3); // x => -1 x = minus(4,7); // x => -3 يمكننا عمل برامج تحوي function يقوم بعمليات طويلة و ضخمة بنفيس الفكرة و سترى أمثلة خلال دراستك. في حال وجود أي أسئلة تفضل بطرحها، كل التوفيق لك مراجع وشروحات : رابط1 المتغيرات - أكاديمية حسوب - رابط2 الدوال - أكاديمية حسوب - رابط3 - المتغيرات - موسوعة حسوب - رابط4 - الدوال - موسوعة حسوب - رابط5 - جافاسكربت - موسوعة حسوب
- 2 اجابة
-
- 3
-
مرحبا يحيى، هل يمكنك مشاركة الشيفرة البرمجية كامة، يمكنك وضع الكود مع تنسيقه في التعليق (كما يظهر في الجزء العلوي على اليمين). او إرفقاق الملفات. في حال توزع البرنامج على عدة ملفات، أرجو إرفاق المجلد main مضغوطا ليتسنى مساعدتك بشكل أفضل. تعديل: على فرض أنك قمت بتعريف الصف بالطريقة التالية: ListAdapter{ void addItem(Post p); } كما قمت ب : listadapter.addItem(String, String) وأنت ذكرت أنه من النوع Post فالحل يكون: listadapter.addItem(new Post(string, "")); أي تمرير غرض من النوع Post: new Post(string, "") بالتوفيق
-
مرحبا أحمد، في حال لا تريد رفع التطبيق إلى play store يمكنك تنفيذ الأمر التالي: # react-native run-android --variant=release وستجد التطبيق في المسار التالي: /android/app/build/outputs/apk/release ---- في حال النر على play store يجب توقيع التطبيق مقالة تتكلم بالإضافة لذلك بناء تطبيق IOS من هنا يوجد مقالتين مفيدتين من هنا و هنا بالتوفيق
-
مرحبا عبد الواحد، هذه فقط عبارة عن صورة مفرغة تم تنسيق إطار مشغل الفيديو ليكون بهذا الشكل. تحتاج فقط HTML - CSS يمكنك استخدام الشيفرة التالية: حيث نضع الصورة كخلفية لعنصر div وهو يعرض الفيديو في جزء منه (نبتعد عن الحواف) <div id="tv_container"> <video width="320" height="240"> <source src="video/video.mp4" type="video/mp4" /> </video> </div> <style> #tv_container { background: url('images/tv.png') no-repeat top left transparent; width: 400px; /* Adjust TV image width */ height: 300px; /* Adjust TV image height */ position: relative; } #tv_container video { position: absolute; top: 30px; /* Adjust top position */ left: 40px; /* Adjust left position */ } </style> أو: في حال تريد وضع الصورة فوق الفيديو (يجب أن تكون الصورة شفافة transparent و من نوع png) <div id="tv_container"> <video width="320" height="240"> <source src="video/video.mp4" type="video/mp4" /> </video> </div> <style> #tv_container { width: 400px; /* Adjust TV image width */ height: 300px; /* Adjust TV image height */ position: relative; } #tv_container:after { content: ''; display: block; background: url('images/tv.png') no-repeat top left transparent; width: 100%; height: 100%; left: 0px; top: 0px; position: absolute; z-index: 10; } #tv_container video { position: absolute; top: 30px; /* Adjust top position */ left: 40px; /* Adjust left position */ z-index: 5; } </style> بالتوفيق
- 1 جواب
-
- 3
-
مرحبا حنان، يمكنك إعتبار الغرض (window : (Object هو الغرض الرئيسي الذي يعبر عن كل ما هو موجود ضمن نافذة العرض الخاصة بالمتصفح و ما يحويه من بيانات. للتوضيح يحوي الغرض window على الغرض document الذي يمثل بيانات الصفحة و الذي يمكننا الوصول له بشكل مباشر أو عن طريق الغرض الأب له window window.document.getElementById("header"); أو document.getElementById("header"); و مثلا خاصية معرفة أبعاد صفحة العرض : window.innerHeight window.innerWidth وأيضا دوال التحكم بالنافذة من فتح- إغلاق - نقل - إعادة تعيين الحجم .. : window.open() window.close() window.moveTo() window.resizeTo() ما يهمنا هنا هو إمكانية التخزين في الذاكرة المحلية لبعض القيم التي نريد مشاركتها بين الشيفرات البرمجية ويتم ذلك عن طريق Window localStorage Property ومثال بسيط لذلك: تعريف مفتاح lastname مع إعطائه قيمة Smith وتخزينها محليا إلى حين الحاجة لاسترجاعها.. // Store localStorage.setItem("lastname", "Smith"); // Retrieve document.getElementById("result").innerHTML = localStorage.getItem("lastname"); و كما تعلمين في جافا سكربت يمكن إضافة خاصيات بشكل ديناميكي للأغراض من خلال كتابة اسم الغرض ثم نقطة ثم اسم الخاصية (الواصفة) و إعطائها قيمة .. و مثال لذلك من خلال الغرض localStorage : حيث قمنا بتعريف clickcount كخاصية من النوع integer لتخزين عدد نقرات مستحدم ما (لا يهم كيف تم برمجة مستقبل الحدث في مثالنا) - من تخزين و جلب القيم لعرض النتيجة في HTML .. if (localStorage.clickcount) { localStorage.clickcount = Number(localStorage.clickcount) + 1; } else { localStorage.clickcount = 1; } document.getElementById("result").innerHTML = "You have clicked the button " + localStorage.clickcount + " time(s)."; ويمكنك تطبيق نفس المنطق كما فعل المدرب أحمد، حيث استعان بالغرض window لتخزين قيمة data محليا. w3schools : توثيق 1 - توثيق 2 بالتوفيق
-
مرحبا، إن تقنية AJAX توفر طريقة لجلب بيانات من المخدم بدون الحاجة لتحديث كامل الصفحة وهو أمر مرغوب به وحل سريع لتحديث أجزاء معينة من الصفحة. نستطيع جلب بيانات من API بأي طريقة أردنا، فبعد طلب الرابط URL يرسل المخدم البيانات المطلوبة. تسهل مكتبة jQuery التعامل مع Ajax ويمكنك الإطلاع عليها من jquery_ajax بالتوفيق
-
مرحبا، لايمكن الحكم على أي شخص فقط عن طريق شهاداته حتى لو كانت جامعية، في مجال البرمجة تبقى الخبرة و المهارات هي العامل الأساسي في التوظيف. بالنسبة لشهادة الأكاديمية، لن تحصل عليها إلا باجتياز الامتحان وهذا يعطيها أفضلية عن دورات أخرى. طبيعة الامتحان بعد اتمامك للدورة، سيكون عليك التواصل معنا من خلال مركز مساعدة حسوب لتحديد موعد امتحان وسيكون على الشكل التالي: اجراء محادثة صوتيّة لمدة 30 دقيقة يطرح المدرّب عليك أسئلة متعلّقة بالدورة والأمور التي نفّذتها خلالها. يحدد لك المدرّب مشروعًا مرتبطًا بما قمت به أثناء الدورة لتنفيذه خلال فترة محددة تتراوح بين أسبوع الى أسبوعين. اجراء محادثة صوتيّة أخرى لمدّة 30 دقيقة يناقش بها مشروعك وما نفذته وتطرح أسئلة خلالها. ان سارت على جميع الخطوات السابقة بشكل صحيح، تحصل على الشهادة أو يرشدك المدرّب لأماكن القصور ويطلب منك تداركها ثم التواصل معنا من جديد. بعد الانتهاء من الدورة، يمكنك البدء بتقديم عروض العمل على منصات العمل الحر مثل مستقل للفترة الأولى لتكتسب بعض الخبرة، ثم بعد فترة تقوم بالتقديم على الشركات في حال أحببت ذلك مع تقديم جميع الأعمال التي قمت بها خلال الدورة و المشاريع الخاصة. بعد اجتيازك الامتحان ستتم المتابعة معك خطوة بخطوة وتوضيح جميع الطرق التي ستسلكها للحصول على عمل. حيث أحد البنود التي توفرها لك الأكاديمية عند شرائك دورة هو: إرشاد وتوجيه أثناء فترة بحثك عن عمل: هذا هو الهدف الأساسي لجميع دورات أكاديميّة حسوب. بعد إتمامك للدورة سيتم الإطّلاع على سيرتك الذاتية من قبل المختصّين لدينا وتقديم ارشادات مخصّصة لك لتحسينها وكذلك على ملفّك الشخصي في مواقع العمل الحر. بالتوفيق
- 1 جواب
-
- 11
-
مرحبا حنان، نريد تنفيذ function عند تغيير القيمة المختارة عن طريق الاستماع لحدث on change للعنصر select. قمت بتعريف العنصر select مسبقا و إعطائه id مناسب. ثم تعريف تابع للاستجابة لحدث التغيير الذي يقرأ البيانات من option التي تحوي دليل العنصر المختار index من خلال قراءة الخاصية value من عنصر select. <body> <div id="content"> <div id="mySelect" class="select"> <select id="options" onchange="myFunction()"> </select> </div> <h1></h1> <img src="" alt=" " width=" 20%"> </div> <script src="scr.js"></script> <script> function myFunction() { let i = document.getElementById("options").value; document.querySelector('#content h1').innerHTML = data[i].name; document.querySelector('#content img').src = data[i].img; } </script> </body> كما قمت بتعديل الجزء الآخر للشكل التالي: var data; async function get() { const res = await fetch("https://www.breakingbadapi.com/api/characters/"); data = await res.json(); console.log(data); let i = 0; document.querySelector('#content h1').innerHTML = data[0].name; document.querySelector('#content img').src = data[0].img; data.map(function (act) { let newChild = document.createElement("option"); if (i == 0) { newChild.selected = 'selected'; } newChild.value = i++; newChild.text = act.name; document.querySelector('#options').appendChild(newChild); }); } get(); قمت بتعريف data بشكل عام لتكون مرئية في جزء script الآخر لسهولة العمل وفهم الفكرة. و تعريف عداد i يقوم بتخزين نفسه في value للعنصر option لنعرف رقم العنصر الذي اخترناه. لإضافة العناصر الجديدة للصفحة أي إلى DOM ننشئ العنصر المطلوب و من ثم نضيعه للعنصر الأب المناسب كما في الشيفرة. باستخدام create Element & append child الملف بعد التعديل في المرفقات. بالتوفيق Api_wael.zip
-
يعطيك العافة أحمد، المهارات جيدة جدا و متوافقة بشكل مقبول جداً بالنسبة لي الفورمة غير مفعمة بالحياة، نمط الألوان و الجزء الرمادي.. و أضف صورة شخصية. أنصحك بتجريب Euro Pass CV Editor من هنا لأنه يقوم بعمل تنسيق احترافي و تظهر بشكل أفضل بالتوفيق
- 2 اجابة
-
- 2
-
مرحبا حفصة، fetch هي تابع function يقوم بالاتصال برابط ويب URL : Uniform Resource Locator أي (محدد موقع المعلومات) وينتظر جواب المخدم الذي يرسل البيانات أو رسالة خطأ، وتمرر النتيجة للتابع التالي then. then الأولى: هي تابع أيضا ينتظر إنتهاء عمل fetch ليقوم بالتنفيذ وتعني كترجمة (عندها) أي مثل الخطوة التالية، وتقوم باستقبال البيانات عن طريق الوسيط response الذي يمثل جواب المخدم للطلبية وتعيد النتيجة على الشكل {return response.text()} مستخلصةً البيانات من الرد response باستخدام ال function التي هي text أي تعيد البيانات بشكل نصي، وبدورها تمررها للدالة التالية. then الثانية: بعد انتهاء then الأولى تتقبل البيانات بنفس الطريقة في متحول اسمه data و تعيد غرض فارغ {}. هذه سلسلة functions تستعمل لمعالجة البيانات تعتمد علة ما يدعى JavaScript Promises أي كل جزء من سلسسة المعالجة يعدنا بإعادة بيانات وتمرمريها للدالة التالية (معظم هذه الإجرائيات تأخذ وقتها بسبب العمل عن طريق الانترنت فلذلك تدعى وعد وهي غير متزامنة أي لا ننتظر جواباً بنفس اللحظة عند الاستدعاء. "I Promise a Result!" // الشيفرة البرمجية التي تعدي البيانات مثلا المخدم "Producing code" is code that can take some time // الشيفرة البرمجية التي تستقبل البيانات مثلا المتصفح "Consuming code" is code that must wait for the result الوعد في جافاسكربت هو غرض يربط بين الطلبية و جوابهافي حال اتصالات غير متزامنة A Promise is a JavaScript object that links producing code and consuming code - أظن أنها شيفرة برمجية غير هادفة ومثال بدون تطبيق لكن هذا الشكل العام له. يمكنك الإطلاع أكثر من توثيق موسوعة حسوب JavaScript - Promise شرح من أكاديمية حسوب من هنا - توثيق w3schools - مصادر أجنبية رابط1 - رابط2 - رابط3 بالتوفيق
- 4 اجابة
-
- 2
-
مرحبا، ربما لايوجد مشكلة بالأصل، يمكن أنه قمت بتسجيل الدخول بمستخدم آخر يتبع لقاعدة بيانات أخرى، أرجو التأكد من أن الحساب الحالي هو المصرح له بالتعديل والوصول لهذه القاعدة. يمكنك أيضا تسجيل الخروج وإعادة المحاولة لنفس الحساب. أو الدخول بحساب الأدمن و إعطاء الصلاحيات للمستخدم لديك بتنفيذ التعليمة التالية مع تغيير الوسطاء: GRANT ALL PRIVILEGES ON the_database.* TO 'the_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; وربما المشكلة من التعليمة التي قمت بتنفيذها بوجود محرف خاطئ مثل استعمال نقطة . بدول شرطة سفلية _ SELECT ..... FROM LOCATION.PT instead of SELECT ..... FROM LOCATION_PT يمكنك مراجعة طرق إعطاء الصلاحيات من التوثيق الرسمي من mysql grant بالتوفيق
- 4 اجابة
-
- 1
-
بالنسبة لتحديد صفحة البدء، يمكن من محرر القوالب التوجه للمسار التالي: موقعي -> تخصيص -> الصفحة الرئيسية ومن ثم يتم الاختيار للصفحة المراد عرضها، لا داعِ لحذف اي شيئ كي لاتحدث أخطاء. ثانيا، الموقع ربما يحوي على عدة صفحات، الرئيسية، المنتجات، الحساب الشخصي،، وتكون هذه الصفحات مترابطة فيما بينها عن طريق تحديد بعضهم البعض بالروابط و اسماء الصفحات. في حال وجود عدة تصميمات، فكل مجموعة تكون مرتبطة مع بعضها ويتم اختيار مجموعة واحدة منهم.
-
مرحبا حنان، حسب توصيف الموقع الخاص بالمتحر في صفحة القالب، موضح في الشرح انه متوافق مع اداة بناء المواقع Bold builder for themes. فيمكن استخدامها لتعديل القالب كما تريدين، حيث هي سهلة الاستخدام (سحب وإفلات Drag & Drop) في بناء المكونات. بالتوفيق
-
مرحبا أحمد، يمكنك سؤال مركز الدعم و إخبارهم بأنك تريد تبديل الدورة في حال أحببت ذلك، أو إعطائك خصم. يمكنك التواصل مع مركز الدعم و فتح تذكرة بالمشكلة مركز دعم حسوب بالتوفيق
- 5 اجابة
-
- 1
-
مرحبا أحمد، الخطأ بسيط تأكد من أنك قمت بكتابة قوسين مجعدين {{ }} source={{uri:imageURI}} في حالتك استخدمت واحداً فقط. للتأكد أن رابط الصورة يصل بشكل صحيح يمكنك عرضه كنص في أي مكونة Component فقد يكون الخطأ بطريقة ترميز رابط الصورة أو أنه لايتم تحميله من الأصل. عدم تحديد أبعاد للصورة يكون في العادة هو السبب الأساسي للمشكلة. يمكنك استخدام log لمراقبة الخطأ وتوضيحه لنا من فضلك. بعض المبرمجين يستخدم التنسيق التالي لعرض الصورة: style={ resizeMode: 'contain', width: '100%', height: '100%' } وفي الصورة الثانية image مكتوبة بشكل خاطئ كما قال سامح بالتوفيق
-
مرحبا، تم شرح بعض الخطوات على الموقع الرسمي لـ Flutter بشأن حجم التطبيق الخاص بكل من android & IOS يمكنك الإطلاع عليه من توثيق Flutter: app-size#ios (وهو الأفضل) ومن توثيق أبل الذي يشمل جميع تطبيقات IOS من هنا [developer.apple reducing app_size] الخطوات من موقع أبل: تقوم بعمل نسخة أرشيف للتطبيق Product > Archive قم بتصدير تطبيقك المؤرشف على هيئة Ad Hoc أو Development أو Enterprise. في ورقة إعداد خيارات توزيع التطوير ، اختر "جميع متغيرات الأجهزة المتوافقة" “All compatible device variants” لتخفيف التطبيق ، وقم بتمكين إعادة الإنشاء من Bitcode. تصدير التطبيق يمكنك تجريب الطريقتين يقدم إطار عمل Flutter أدوات تحليل و قياس حجم التطبيق وهذا يساعد المطور علي معرفة المشاكل المحتملة في تطبيقه يمكنك العرض التحيلي بتطبيق التعليمة التالية عند بناء التطبيق الخاص بأي نظام تسغيل: // الخاص بنظام IOS flutter build ios --analyze-size // غير أنظمة flutter build apk --analyze-size flutter build appbundle --analyze-size flutter build linux --analyze-size flutter build macos --analyze-size flutter build windows --analyze-size بالتوفيق
-
مرحبا، يبدو أن المشكلة تتعلق بالخصوصية وإخبار المستخدمين أنك تقوم بتحميل جهات الاتصال.. ربما إظهار رسالة بطلب إذن الوصول من قبل النظام لا تعمل بسبب استخدامك api 16 منخفض. حاول ذكر جميع المعلومات التي تستخدمها ضمن User Data policy الخاص بتطبيقك. يفضل في حالتك التواصل مع مطور أندرويد خبير وقد رفع عدة تطبيقات من قبل ويمكنك توظيف مستقل للقيام بهذه المهمة. يجب حل المشكلة بالطريقة الأمثل لأن وجود عدة شكاوي تتعلق بالخصوصية ربما تمنع نشر تطبيقك مستقبلاً بشكل نهائي. ويجب عمل توقيع الكترونبي للتطبيق قبل نشره بالتوفيق
-
مرحبا، الخطوات الأساسية: بناء مشروع جديد خاص بالتطبيق على منصة firebase تضمين ملف الإعدادات في التطبيق تقوم بإنشاء مشروع جديد على منصة firebase من خلال حسابك على Goolge (مجانية) من خلال الرباط: console.firebase ثم تقوم بكتابة بعض المعلومات مثل اسم التطبيق و المعرف الخاص به ويكون بهذا الشكل تقريبا.. (يجب أن يكون اسم مميز - واكتب أي اسم افتراضي حاليا طالما أنت تتعلم) com.yourCompany.AppName وبعد الإنتهاء من خطوات إعداد المشروع، تقوم الخدمة بتجهيز ملف الإعدادات لتضمينه في التطبيق ويكون اسمه google-services.json ويكون محتواه غرض JSON يمثل كل مايلزم التطبيق للاتصال بالخدمة. جميع الخطوات موجودة على الموقع. بعد بناء التطبيق يمكنك مباشرة تجريب خاصية الإشعارت للتأكد من ربط التطبيق بالخدمة الخطوات متوفرة لمنصة أندرويد من الرابط التالي: android-setup معظم خدمات غوغل موثقة مع فيديوهات توثيق تجدها من هنا : firebase product بالتوفيق
- 1 جواب
-
- 1