تم النشر منذ 23 Jun 2014 السلام عليكمالمشكلة اننى لدى نظام تكويد للأصناف عبارة عن ثلاث ارقام يفصل بينهم علامة /الرقم الاول يمثل كود المجموعةالرقم الثانى كود المجموعة الفرعيةالرقم الثالث رقم الصنف مثلا1/10/20معناها مجموعة 1 من مجموعة فرعية 10 بها صنف رقمة 20المطلوب عند عمل استعلام للأصناف ترتيب الاصناف حسب كود المجموعة ثم كود المجموعة الفرعية ثم رقم الصنفالمشكلة أن كود الصنف فى الجدول حقل واحد غير مقسم فكيف يمكن تقسيم كود الصنف اثناء الاستعلام و ترتيبة ؟؟؟ 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 25 Jun 2014 مرحباً بك أحمد إحترامي لأبي عدنانفي نصحه (بناء قاعدة البيانات وفق المبادئ والأسس الصحيحة لأي قاعدة بيانات مثل)Access-FoxPro-Clipper-DBase-Microsoft SQL-Oracle-Sybaseكما هو مبين في المشاركة المميزة: http://arabteam2000-forum.com/index.php/topic/35237-الأسس-العلمية-لقواعد-البيانات وأود أن أهمس في أذن أبو عدنانإن كان الزميل أحمد قد قطع شوطاً كبيراً في جهده وعمله وبرنامجهفليس جميلاً أبداً ثنيه عما بدأ أو إحباط عزيمته بالنكوص القهقريفيبدد زمناً ثميناً أنفقه من وقته. كما أقر بأن هذا السؤال هو من صنف (السهل الممتنع) يُخال لك أنه سهل للوهلة الأولىحتى إذا أوحلت قدماك في لـُجهِ علمت أنه غزير ويحيط بك من كل جانبجميع الإحتمالات واردة ومتقاربة والتفاوت بينها قيد شعره يوشك أن يقع بك في الزلل والخطاء ما لم تنتبه الطرح الأول في المشاركة كان سهل التعاطي (فقط فصل الأرقام عن علامة السلاش وفرز المكونات الثلاث)وبعد طرح القيود والشروط في المشاركة الأخيرة أصبح الحل تضرب له أكباد الإبلأولاً: فصل علامة السلاش عن الأرقام بأستخدام (حيلة) استبدال الأرقام (0123456789) إلى "" Null فنحصل على قيمة Null أو / أو //ثانياً: عدد علامات السلاش .. هل هي (/)واحدة أم (//)اثنتان أو ()لاشيىء ومن ثم بناء الجملة الإستعلامية عليها.ولكل حالة يكرر ما تم عمله في المشاركة الأولى من تعشيش لفصل القيم العددية ثم فرزها تصاعديا (مجموعة)، (مجموعة جزئية)، (عنصر)أنظر إلى الاستعلام المستخرج فقد تم حل المسألة دون الحاجة لإقتراح الزميل السابق بإعادة العمل من جديد فقط أستخدم الإستعلام betweentodate_Sort بدل الإستعلام السابق betweentodateعلماً بأن الأول معطوفاً على الثاني أقصد الإستعلام تحياتي:أبو محمد PMS_ex1.rar 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 23 Jun 2014 (معدل) وعليكم السلام ورحمة الله وبركاته عن طريق الاستعلام يوجد عدة طرق أسهلها استخدام المجزئات (Left, Mid, Right) وطريقتها جدا سهلة ولكنها تعتمد على شكل البيانات ونوعيتها. فإذا لم تتوصل لطريقة مناسبة بها ، فمن الأفضل أن ترفع مثالاً عن قاعدة البيانات التي لديك وبها بعض البيانات وتكون مختلفة كعينة حتى أتمكن أنا أو أحد الأعضاء من مساعدتك ، والله الموفق. :flowers: :flowers: :flowers: تم تعديل 23 Jun 2014 بواسطه AbuAdnan 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 23 Jun 2014 عزيزي/ احمدالسلام عليكم ورحمة الله وبركاتهيمكن حل المسائلة بفصل المكونات الثلاث التي يفصل بينها علامة / slashفي استعلام كالتالي:أفترض أن الطول الأقصى لكل مكون = 3خانات (000/000/000)المجموعة a1 (GroupSort) = 0/ or 00/ or 000/المجموعة الجزئية a2 (SubsetSort) = 0/ or 00/ or 000/رقم الصنف a3 (ItemSort) = 0/ or 00/ or 000/الحالة الأولى (المجموعة-GroupSort) يمكن أن يكون ترتيب First slash هو (الثاني إذا كان /0) أو (الثالث إذا كان /00) أو (الرابع إذا كان /000) فنأخذ قيمة اليسار فقط الحالة الثانية (المجموعة الجزئية-SubsetSort): تقع بين First slash وبين Second slash يمكن أن يكون ترتيب First slash هو (الثاني إذا كان /0) وَ Second slash هو (الرابع إذا كان /0/0) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الثاني إذا كان /0) وَ Second slash هو (الخامس إذا كان /00/0) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الثاني إذا كان /0) وَ Second slash هو (السادس إذا كان /000/0) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الثالث إذا كان /00) وَ Second slash هو (الخامس إذا كان /0/00) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الثالث إذا كان /00) وَ Second slash هو (السادس إذا كان /00/00) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الثالث إذا كان /00) وَ Second slash هو (السابع إذا كان /000/00) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الرابع إذا كان /000) وَ Second slash هو (السادس إذا كان /0/000) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الرابع إذا كان /000) وَ Second slash هو (السابع إذا كان /00/000) فنأخذ قيمة الوسط فقط يمكن أن يكون ترتيب First slash هو (الرابع إذا كان /000) وَ Second slash هو (الثامن إذا كان /000/000) فنأخذ قيمة الوسط فقط الحالة الثالثة (رقم الصنف-ItemSort): تقع يمين Second slash لتحقيق ذلك وعدم التداخل مع الحالة الثانية لزم استخراج First slash & Second slash والبحث يمينهما فنعمل على Loop التالي يمكن أن يكون ترتيب First slash هو (الثاني إذا كان /0) وَ Second slash هو (الرابع إذا كان /0/0) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الثاني إذا كان /0) وَ Second slash هو (الخامس إذا كان /00/0) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الثاني إذا كان /0) وَ Second slash هو (السادس إذا كان /000/0) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الثالث إذا كان /00) وَ Second slash هو (الخامس إذا كان /0/00) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الثالث إذا كان /00) وَ Second slash هو (السادس إذا كان /00/00) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الثالث إذا كان /00) وَ Second slash هو (السابع إذا كان /000/00) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الرابع إذا كان /000) وَ Second slash هو (السادس إذا كان /0/000) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الرابع إذا كان /000) وَ Second slash هو (السابع إذا كان /00/000) فنأخذ قيمة اليمين فقط يمكن أن يكون ترتيب First slash هو (الرابع إذا كان /000) وَ Second slash هو (الثامن إذا كان /000/000) فنأخذ قيمة اليمين فقط فيكون الحل كما في صورة الاستعلام أدناه: بيانات الجدول قبل الفرز بيانات الاستعلام بعد الفرز وفقك الله أبومحمد PMS_Item Code division.rar 1 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 24 Jun 2014 اشكركم كثيرا على التفاعل و الرد و لكنى قمت بتجربة المثال و ادخلت كود صنف مكون من خانتين فقط مثلا3/4اى مجموعة 4 و منها مجموعة فرعية 3 فلم يفهم الاستعلام سوى رقم المجموعة و تجاهل رقم المجموعة الفرعية بمعنى أخر الكود السابق يفترض انة يجب ان تكون عدد / هو 2 و ليس 1 فاذا لاى سبب كان كود الصنف مكون من عدد واحد سلاش مثل 4/10 فلا يعمل المشكلة الثانية كانت فى ان الكود السابق طويل جدا و احيانا لا يمكن كتابتة داخل نافذة تصميم الاستعلام عندما يكون اسم الحقل لكود الصنف ناتج من الربط بين جدولين مثلاTable1.itemcodeفبعد تعديل الكود تظهر رسالة ان نص الاستعلام طويل جدا و لا يمكن استخدامة داخل الاستعلاملكن كل ما سبق لا يمنع ان الكود السابق الفكرة فية جيدة جدا 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 24 Jun 2014 مرحباً بك أحمد يلزمك رفع مثالفيه جميع احتمالات إدخال البياناتليتم النظر لأفضل حل يناسبك مشكلتك أنك لم ترفع مثالفتم افتراض مثال بناء على شرحك السابقلا تبخل على نفسك بالمنفعةأبحث عن جميع الاحتمالات الممكنة لمشكلتكفقط أرفعها وأبشر بالخير تحياتيأبو محمد 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 25 Jun 2014 اسف لعدم رفع مثال ارفقت مثال المطلوب فية تعديل استعلام رصيد المخزن ليقوم بترتيب الاصناف حسب علامة / اذا كان موجودة و الاستعلام اسمة betweentodateو اشكرك على الاهتمام ex1.rar 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 25 Jun 2014 أخي أحمد ، أولاً اود تنبيهك أن البيانات ليست منظمة أساسا لتفرز بالطريقة التي تريدها وتحتاج إلى تنظيم أكثر من ذلك ، فمثلا : لديك بعض الأدوات مصنفة كمجموعة رئيسية فقط ، وبعضها كمجموعة رئيسية وجزئية وبعضها تصل إلى التصنيف.لذلك يجب عليك تعديل تلك البيانات وتوحيدها بطريقة تمكنك من عمل الفرز المطلوب وذلك بأن تكون جميع المواد مصنفة بالثلاث تصنيفات كاملة وبطريقة تكون تماما كما افترض اخونا pms وذلك لأن الطريقة التي افترضها هي الطريقة المنطقية لذلك. أخي أحمد ، بما أنك أنت الذي لديك البيانات فيجب عليك أنت أن تضع الخطة الملائمة لتصحيح وضع البيانات لتلائم احتياجاتك ، فأنت الشخص الذي يقرر بناءً على المخرجات التي تريد أن تحصل عليها ، فهو الوضع الصحيح لهذا الحقل بالذات لأنه يفترض به أن يكون كل أداة لها تصنيف مستقل خاص بها. سأقترح عليك هذا الاقتراح قد يفيدك في ذلك: ابدأ أولاً تخطيط الفرز بالورقة والقلم للتخطيط :calc: بأقصى عدد للمجموعات مثلا إذا كانت مجموعاتك في الفرز 10 مجموعات أو أكثر فتكون خانة المجموعة من خانتين 00 حتى تستوعب الرقم وبذلك تفتح لك آفاقا حتى 99 مجموعة للتصنيف ، وعليك أيضاً أن تفكر في المستقبل القريب والبعيد إذا اردت أن تكون الفائدة مستمرة ولا تواجه مستقبلا نفس هذه المشكلة الحالية.كرر الخطوة السابقة مع المجموعة الجزئية ، ولاحظ كل خانة جديدة توسع لك آفاق التوزيع ، فلو كانت هذه من ثلاث خانات 000 وطبعا باحتساب الصفر كأول عدد لوجود أدوات مصنفة تحت المجموعات فقط وحتى أقصى رقم 999 ستجد أن لديك 1000 رقم للتصنيف.وكرر نفس الخطوة مع رقم الصنف ، وبنفس الفكرة لتجد لديك قد وحدت التصنيفات كلها على القالب 00/00/000 أو 00/000/000 فيكون مثلا اللأداة التي له الرقم 6 يصبح 06/000/000 والأداة التي لها رقم 2/3/4 تصبح 02/003/004 والأداة التي لها رقم 4/3 تصبح 04/003/000.وبهذه الطريقة ستكون قد وحدت البيانات الخاصة بالفرز وتستطيع تطبيق الفرز بالطريقة التي تناسبك ، وفي حالة لديك كمية كبيرة من البيانات تستطيع عمل فورم مؤقت للاستخدام مرة واحدة ليقوم بعمل التعديلات اللازمة. :thinking: :thinking: :thinking: 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 27 Jun 2014 أشكرك كثيرا فقد انجزت المطلوب تماما و اشكرك ايضا على صبرك فى متابعة الموضوع عاجز عن شكرك 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
تم النشر منذ
السلام عليكم
المشكلة اننى لدى نظام تكويد للأصناف عبارة عن ثلاث ارقام يفصل بينهم علامة /
الرقم الاول يمثل كود المجموعة
الرقم الثانى كود المجموعة الفرعية
الرقم الثالث رقم الصنف
مثلا
1/10/20
معناها مجموعة 1 من مجموعة فرعية 10 بها صنف رقمة 20
المطلوب عند عمل استعلام للأصناف ترتيب الاصناف حسب كود المجموعة ثم كود المجموعة الفرعية ثم رقم الصنف
المشكلة أن كود الصنف فى الجدول حقل واحد غير مقسم فكيف يمكن تقسيم كود الصنف اثناء الاستعلام و ترتيبة ؟؟؟
شارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه