بتاريخ: 12 مايو 200917 سنة comment_156600 يا جماعة بعد إذن حضراتكم عايز حل للمشكلة الموضحة في المرفق !!!!فكرت في إستخدام المصفوفة ولكنني وجدتة حل غير عملي بالمرة ، فأتمني إيجاد حل عملي وسريع أفضل من المصفوفة !!!بالإضافة الي تحجيم المستخدم بشوية رسائل Messages ، وبردو غير جيدة بالمرة !!!يا ريت تنظرو الي المرفق وهتفهمو قصدي ، حيث يحتوي علي صورة وملف Form كمثالشكراً مقدماً Simble.zip تقديم بلاغ
بتاريخ: 12 مايو 200917 سنة comment_156624 السلام عليكماخي ارجوا الا تنسي ان الحقول هي فى الاصل متغيرات VARIABLE ؛ بمعني انك تريد عند الضغط على النكست لا تظهر لك رسالة تطالبك بالحفظ طيب تخيل معي الامر ؛ انت فى البلوك الديتيلز هو فى الاصل ايتم واحد ولكن متعدد الصفوف وكتبت فيه احمد مثلا ثم عملت نكست وهذا يعنى انك انتقلت الى ادارة جديدة وبالتالى فسيمسح لك الايتم لتدخل فيه بيانات جديدة وهنا هي مطلبك انه يمسح لكن مع الاحتفاظ بالقيمة وهذا غير منطقى فلو انت بتتعامل مع جدول اخر لكنت وضعت القيمة القديمة فى جلوبال ولكن انت تتعامل على نفس الحقل وهذا غير منطقي انه يمسح مع الاحتفاظ بالقيميتين ؛ ولكن ارى ان هناك حل وحيد وهو انك مع كل تغير فى الايتم او الكتابة فيه يقوم بعمل حفظ مؤقت وعند الخروج دون الحفظ النهائي يقوم بعمل رول باك ولكن الامر هيحتاج شوية اكواد كتير بس هو قابل انه يتعمل ولو كان معايا وقت كاف لكنت عملتهولك ان شاء الله ؛ بس بصراحة انا مش شايف ان ليها لازمة كل اللفة دي وشكراميجا تم تعديل 12 مايو 200917 سنة بواسطة khaledmega تقديم بلاغ
بتاريخ: 12 مايو 200917 سنة كاتب الموضوع comment_156627 الأخ خالد الشاذلي ، تحية طيبة وبعد قبل أي شيء أشكرك كل الشكر علي حسن تعاونك معي ، ولكن أعزرني هل تعتقد أنني لم أفكر في هذا الموضوع من قبل ؟؟؟؟ أنا فكرت في الموضوع أكثر من مرة وفعلياً كنت بحاول أقنع نفسي بنفس هذا الكلام ، ولكن بعد إذنك دعني أطرح عليك مثال لعل وعسي أن تقتنع بكلامي !!! أولاً صحيح أن المتغير لو تم إضافة قيمة فوقه فبالطبع يمسح القيمة القديمة ويحتفظ بالقيمة الجديدة ، لذلك دائماً نقول أن الحاسب الآلي مثل الإنسان الأكتع الذي لا يملك سوي زراع واحد لكن بالتحايل نسبياً يتحقق كل شيء !!! الأخ خالد الغالي ، أنا كنت ناوي أعمل Array بس وجدت أن الأمر هيكون صعب ومعقد لذلك طلبت المساعدة ، طيب أسمح لي أن أعرض عليك مثال كلنا تعاملنا معه من قبل كمبتدئين وكذلك كمتقدمين ، ألا وهو الملف ffigen.fmx الموجود مع حزمة Oracle Setup ، أنظر علي الفكرة ستجد أنه يتحايل علي الأمر بأسلوب غير واضح بالمرة ، فحاولت كثيراً أن أجد بداية أول الخط ولم أجد ؟؟؟؟ ولكن علي ما أعتقد أن هذا البرنامج يتعامل مع مكتبات خارجية ، لأنه بجواره مكتبة تدعي d2kwut60.dll ، ومن الواضح أنها تمت برمجتها بواسطة الفيجوال 6.0 ، ولكن للأسف أنا لم أقدر فتحها بالفيجوال لسبب لا أعلمه ، أظاهر أن الملف مضغوط أو مشفر باحدي برامج التشفير !!! المهم ، هذا الموضوع كان معي في غاية البساطة حينما كنت أتعامل مع VB6.0 ، حيث كنت أصنع مصفوفة بواسطة مكتبة الـ ADO ، ولكن التعامل مع هذه المكتبة صعب نسبياً من داخل الديفيلوبار ومش معقولة أستخدم المكتبة كي أربط مع الأوراكل وأنا لدي برنامج متكامل أسمة Oracle Developer مصمم خصيصاً لذلك !!! أما بخصوص الحفظ المؤقت بجدول منفصل فهذا أيضاً غير عملي ، ولا أري أن البرنامج ffigen.fmx يعمل ذلك ، لذلك طرحت السؤال فأتمني أن أحد ينظر معي في الملف ffigen.fmx ومحاولة تفسيره ، هذا الملف يعمل بصورة جيدة ، وللأسف حاولت أسير وراء كافة الإستدعائات ولم أوصل لأي نتيجة شكراً مرة أخري ومنتظر معاونتك ومعاونة الجميع شكراً تقديم بلاغ
بتاريخ: 12 مايو 200917 سنة comment_156642 أخي MMA بصراحة أنا مشفاهم انت مهتم ايه بحاجة زي كده ؟الموضوع مشمحتاج كل اللفة دي كما قال الاخ خالد تم تعديل 12 مايو 200917 سنة بواسطة asd13 تقديم بلاغ
بتاريخ: 12 مايو 200917 سنة كاتب الموضوع comment_156648 الأخ الكريم ، هناك بعض الأمور بتتطلب لذلك !!!!يعني علي سبيل المثال ، لو عندنا 5 بلوكات مرتبطين بالبلوك الرئيسي بطريقة Tree ، يعني مثلاً كارت الصنف بيحتوي علي :جدول الصنف --> وسيط الصنف/المخزن --> وحدات الصنف ( حبة-شريط-علبة-كرتونة- ... الي آخرة) --> قائمة الأسعار لكل وحدة (سعر خاص - سعر جملة - سعر مستهلك )لاحظ كدة أن بكدة عندنا 4 جداول ، كل جدول مرتبط بالثاني ، وكل بلوك مرتبط بالثانيهل يعقل أن أجعل المستخدم يحفظ كل سطر يسجلة بالشاشة ، بالطبع لا !!!!طيب ممكن تنظرو الي الصورة المرفقة ، هتتضح لكم الأمور أكثرشكراً علي إهتمامكم Pic.zip تقديم بلاغ
بتاريخ: 12 مايو 200917 سنة comment_156653 أخي الكريم :مصطفىأولا أحييك على فكرتك ديلكن هل ترى أنها مهمة لهذه الدرجة أولا ماهي المشكلة لو أدخل العميل في جدول الماستر مثلا بيان والديتيل العديد من البيانات وبعد كل هذه الادخالات يضغط زر الحفظ ليست بالصعبة كما تتصور على المستخدم هون على نفسك أنت شكلك اشتغلت فيجوال كثير وانصدمت إلى حدما بإمكانيات الديفيلوبير التي لاتتساوي مع vb كبيئة نوافذ وأرى أن هذه النقطة "التي تراها مشكلة " أراها تحافظ على أداء النظام فرضا مثلا لو أدخل العميل مأدخل وفجأة حدثت مشكلة ما وليكن انقطاع التيار الكهربائي وأيضا ماذا لو هناك العديد من المستخدمين قام بعمل ماتريد ومثلا الجميع قام بالحفظ في وقت واحد فرضا يعني ماذا سيحدث للسيرفر أكيد هيحدث ضغط شديد عليه وخصوصا لو كان هناك العديد من التريجر المرتبطة بهذه الجداول هذه هي وجهة نظري ولكن فكرتك كفكرة كويسة والسلام عليكم ورحمة الله وبركاته تقديم بلاغ
بتاريخ: 13 مايو 200917 سنة كاتب الموضوع comment_156672 والله يا أخ مصطفي إظاهر أن الإنتقال من البرمجة الي ديفيلوبار أوراكل ستظل معي عقدة مدة طويلة !!!لكن موضوع إنزحام السيرفر مش هيحصل ، عارف لية ، لأنني كل ما أرغب فية هو تمكين المستخدم من التعامل مع سجل واحد وتوابعة فقط لا غير ، زي كدة كارت الصنف ، بتعامل مع سجل واحد في جدول الأصناف ، وفي نفس الوقت بتعامل مع سجلات أخري فرعية ، يعني هيكون عدد السجلات بسيطة مش كثيرة كما تتخيل ، لأنني لم أتعامل مع إمكانيات التنقل مع بلوك البيانات الـ Master زي Next_Record, First_Record, Last_Record, Previes_Recotd, Move_Record ... ولكنني أستخدم إمكانيات الـ SQL في خاصية Default_Where لبلوك البيانات ، لأنه هيكون أسرع وأنظف ، بالزات أن هناك شركات تتضمن العديد من الأصناف زي مثلاً المحلات التجارية الكبيرة "رجب العطار - مصر والسودان - قها" ، فإستخدام إمكانيات بلوكات البيانات هيكون غير جيد ، لكن الـ SQL هيكون أفضل وأقول وأسرع ، وللإيضاح أكثر أنظر الطريقة التالية : BLOCK ITEMS(ITEMS_ID, ITEMS_CODE, ITEMS_NAME) --Move First. ID_SQL := 'SELECT NVL(MIN(ITEMS_ID),0) FROM ITEMS'; -- Move Last. ID_SQL := 'SELECT NVL(MAX(ITEMS_ID),0) FROM ITEMS'; -- Move Next. ID_SQL := 'SELECT NVL(MIN(ITEMS_ID),0) FROM ITEMS WHERE ITEMS_ID > ' || ID_SERIAL; -- Move Prev. ID_SQL := 'SELECT NVL(MAX(ITEMS_ID),0) FROM ITEMS WHERE ITEMS_ID < ' || ID_SERIAL; لذلك أأكد لك أن موضوع الضغط هيكون بسيط جداً ، يعني مفيش ضغط أساساً سوي علي سجل واحد في الـ Header ومجموعة سجلات في الـ Detail .علي كل حال منتظر أي فكرة من حضراتكم ، ولو وجدت فكرة لدي جيدة سأرفقها لكم ، وإن شاء الله سأرفق قريباً شاشة تحمل كارت الصنف ، بس كان نفسي أخليها شاشة متكاملة خالية من اي عيوب !!!ربنا يستر وملجأش في النهاية الي ملفات الـ Temp علشان تبقي كملت أولا ماهي المشكلة لو أدخل العميل في جدول الماستر مثلا بيان والديتيل العديد من البيانات وبعد كل هذه الادخالات يضغط زر الحفظ ليست بالصعبة كما تتصور على المستخدم مش صعبة ، لكنة أسلوب غير جيد بالمرة !!!أنت عارف كدة عامل زي واحد فاتح Microsoft Word وإيدة شغالة علي Ctrl+S أو حفظ كل ثانية !!!! تقديم بلاغ
بتاريخ: 13 مايو 200917 سنة comment_156719 اخي الكريم MMAاتمنى ان يعمل الفورم الان معكتم عمل التالي:بما انه ماستر ديتيل فورم فبالتالي قمت بتعديل البروسيجدرز الخاصة بالعلاقة بينهماclear_block ------- > clear_block(no_commit)execute_query ------- > execute_query(no_commit) DEC_EMP_ON_DEP.rar تقديم بلاغ
بتاريخ: 13 مايو 200917 سنة كاتب الموضوع comment_156733 أولاً الملف المرفق تم تحويلة الي 10g وأنا أتعامل مع 6I ، فلم يفتح معي !!!!علي كل حال أنا فهمت ما تقصدة ، بتستخدم Clear_Block أو Commit_Query ، وهذا أعلمة ، ولكن المطلوب الحفظ في النهاية وليس الحفظ الدوري !!!!علي كل حال أشكر كل من ساهم بالمشاركة ، وأنا أكتفيت بلفت نظر المستخدم بعرض Message مناسب لإجراء عملية الحفظ كما فعلت من قبلوإن شاء الله في القريب العاجل سأدرج مثال لكارت الصنفالسلام عليكم ورحمة الله وبركاتة تقديم بلاغ
بتاريخ: 13 مايو 200917 سنة comment_156760 الأخ / مصطفى وبعد ان توصلت لحل المشكلة ارجوا عرض الجداول الموجودة بهذه الشاشة فقط والربط بين هذه الجداول هل العلاقه بين هذه الجداول one to one شكرا لك ... ومرحبا بك بالعودة بعد طول اشتياق لمشاركاتك المتميزة دائما تقديم بلاغ
بتاريخ: 13 مايو 200917 سنة comment_156765 السلام عليكم ورحمه الله وبركاته انا شايف فكره ممكن تكون كويسه ان حضرتك تجعل كل البلوكات database :no ويتم الحفظ بقراه البيانات ووحفظها بجمل insert وكذللك الحف والتعديل يكون بجمليdelete,update على الجداول من خلال الشاشه ااى اقصد فى حاله مثلا الحفظ يضع فى key_commit الاتى loop يقراء من كل السطر على البلوكات ويتم وضعها او تعديلها ان كانت موجوده من قبل بجمل INSERT ,update تقديم بلاغ
بتاريخ: 14 مايو 200917 سنة كاتب الموضوع comment_156787 وبعد ان توصلت لحل المشكلة ارجوا عرض الجداول الموجودة بهذه الشاشة فقط والربط بين هذه الجداول أنا لم أتوصل لحل المشكلة ، ولكنني أرتجعت للرسالة بس بدلاً من عرض رسالة أوراكل عرضت رسالة خاصة بيا أناوبخصوص عرض الجداول ، فأنا عرضت كل البيانات سواء الجداول أو الشاشات بالكود سورس علي الرابط (( التالي ))كل أللي أتمناة من حضرتك رأيك في هذا المثال بصدق ، كما فعلت معي في شئون العاملين من قبلشكرا لك ... ومرحبا بك بالعودة بعد طول اشتياق لمشاركاتك المتميزة دائما والله يا أخ أمجد هي بتيجي كدة ظروف ... في الفترة الماضية كنت بصمم نظام جديد له علاقة بالمستشفيات ، ولكن للأسف كنت بصممة بالفيجوال 6.0 مع أكسيس وسيكوال 2000 ، وكنت مجبر علي ذلك لأن البرنامج سيكون في متناوي أيدي الأفراد كذلك ، زي كدة العيادات والمتخصصينفآسف جداً لو تأخرت بعد ذلكالسلام عليكم ورحمه الله وبركاته انا شايف فكره ممكن تكون كويسه ان حضرتك تجعل كل البلوكات database :no ويتم الحفظ بقراه البيانات ووحفظها بجمل insert وكذللك الحف والتعديل يكون بجمليdelete,update على الجداول من خلال الشاشه ااى اقصد فى حاله مثلا الحفظ يضع فى key_commit الاتى loop يقراء من كل السطر على البلوكات ويتم وضعها او تعديلها ان كانت موجوده من قبل بجمل INSERT ,update كل هذا تعامل مع متغيرات ، والمتغير بيتغير في حالة تغيير قيمتة !!!للأسف مفيش حل غير التحايل والمصفوفات أو جداول الـ Temp ، ودة بيحتاج وقت وأنا للأسف مش فاضي في الوقت الحالي !!!شكراً للجميع تقديم بلاغ
بتاريخ: 14 مايو 200917 سنة comment_156803 اخي MMAفقط على نفس الفورم الخاص بكقم بالبحث عن اي شيء في الكود بما يخص:Find and Replace:clear_block ------- > clear_block(no_commit)execute_query ------- > execute_query(no_commit)clear_block(ask_commit) ------- > clear_block(no_commit) تقديم بلاغ
بتاريخ: 14 مايو 200917 سنة comment_156806 أخي الكريم roseأخي مصطفى لايريد أن يضغط على زر الحفظ إلا بعد أن يدخل كل بياناته والمشكلة التي تزعجه عند انتقال الى السجل التالي في الماستر فيريد عدم ظهور تلك الرسالة ويتم الحفظ جميعا مرة واحدة وكل ذلك عند ادخال البيانات وليس الاستعلام أو التنفيذ تقديم بلاغ
بتاريخ: 14 مايو 200917 سنة comment_156810 اخي مصطفىشكرا للتوضيح واعلم ماهو المطلوب وهذه الرسالة تظهر عند وجود master-detailوهذا هو الحل لهذه الرسالةالتغيير يتم على procedures الخاصة بال relations بين master -detailعند تجربتها سيتضح بان الرسالة سيتوقف ظهورها تقديم بلاغ
بتاريخ: 14 مايو 200917 سنة comment_156812 أخي الكريم rose_4_prettyلقد قمت بتجربة فكرتكالنتيجة إذا قمت بإدخال بيانات الماستر ثم الديتيل وبعد كده أنتقلت التالي لادخال ماستر جديد وديتيل خاصة به ثم التالي وهكذا للاسف يقوم بحفظ التالي يحفظ كل عنوانين الماستر ولايحفظ الديتيل سوى أخر ديتيل تم إدخالهمثال فورم الاقسام والموظفينأدخلت قسم مثلا رقم 60 وله موظفين تابعين له أرقامهم مثلا (61-62-63-64)التالي لادخل قسم جديد رقم 61 موظفينه هم (65-66-67)ثم التالي قسم جديد مثلا 62 موظفينه (68-69-70) النتيجة كالتالي قم بحفظ أقسام 60-61 دون موظفين حفظ قسم رقم 62 وموظفينه بشكل صحيح لذا لابد من وجود ال validation كما تم إنشاؤها في ذلك ال procedure الخاص ب master--detail تقديم بلاغ
بتاريخ: 14 مايو 200917 سنة comment_156848 لا ادري ان كنت قد استوعبت ما ذكرته مشكورا اخي الفاضلولكن MMA يستخدم الماستر من قاعدة البيانات والديتيل ايضاوبالتالي عند اضافة ماستر جديد سيقبل اي ادخال في الديتيلاما الرسالة فتظهر لأنه يقوم بتغيير الماستر قبل عمل تخزين لجميع محتويات الادخال وبالتالي الطرية التي ذكرتها لكم مسبقا تقوم بانهاء ظهور الرسالة فقط وبالتالي يمكنه التنقل بين الريكوردز بدون اي اعتراض حتى في حال عدم التخزين لأن البيانات التي يتم ادخالها تبقى مخزنة مؤقتا حتى يتم التخزين الفعليوالتغيير الذي قمت به هو الذي يلغي وجود هذه الرسالة تقديم بلاغ
بتاريخ: 20 يناير 201610 سنة comment_270508 في ال trigger clear all master detailقبلclear_block اكتبpost تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.