الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Items

Featured Replies

بتاريخ:

أولاً ، أنا آسف جداً لأنني أسأل بكثرة هذه الأيام ، لكنني صراحتاً أنا نفسي أتعلم الديفيلوبار بجد ، فأعزروني ،

أما بالنسبة لمشكلتي ، فعادتاً عند جلب أو إرسال قيمة معينة من أي Item يتم كما يلي :

Message(:LST_SEX);
:TXT_NAME := 'Mostapha Abd El-Salam';
Message(:TXT_NAME);



لكنني أرغب في البحث عن العنصر أولاً ثم إدراج قيمة Value أو أخذ قيمة منه ، فقمت بكتابة الكود التالي ولكنه للأسف لا يعمل :

DECLARE
  ITM	  ITEM;
BEGIN
  ITM := FIND_IMTE('TXT_NAME');
  IF(NOT ID_NULL(ITM))THEN
   :ITM := 'Mostapha Abd El-Salam';
  END IF;
END;



الكود السابق لا يعمل ، ولكن كيف يتم صناعة مثل هذا الكود !!!

حيث أنني أرغب في التحكم الكامل بعناصر الإدخال والإخراج ( Items ) من علي شريط القوائم Menus .

أتمني الإستجابة السريعة


جزاكم الله كل الخيرات

شكراً

تم تعديل بواسطة MMA

بتاريخ:

بسم الله الرحمن الرحيم


أعتقد إن فى غلطه فى الكود وهى إن ال itm ده من نوع item علشان يجيب الid بتاع الitem ولا يصح وضع قيمه فيه .

DECLARE
  ITM     ITEM;
BEGIN ITM := FIND_ITEM('TXT_NAME');
  IF(NOT ID_NULL(ITM))THEN
      :txt_name:= 'Mostapha Abd El-Salam';
  END IF;
END;

بتاريخ:
  • كاتب الموضوع

لا يا أخي ، أنا لم أقصد ذلك ،

سأبسط الموضوع أكثر من ذلك ،

فرضاً أنني قمت بإنشاء خمسة نماذج ( الإدارات - الموظفين - الأجازات - حضور/إنصراف - الضرائب ) !!!

في كل نموذج من هذه النماذج يحتوي علي Text Item تحت إسم ( TXT_Find ) !!!

لكل نموذج أقم بإضافة تسعة زراير ( Push Button ) ، الأربعة الأولي مسئولين عن عمليات ( حفظ/جديد/إغلاق/حذف ) ، أما الأربعة الثانية التنقل بين السجلات ( أول/سابق/تالي/أخير ) ، أما الزر الأخير فهو زر البحث ، بحيث عند النقر علية يعرض شاشة بحث !!!

المهم ، قمت بإنشاء Menu رئيسية ، هذه القائمة تحتوي علي 9 عناصر ( حفظ / جديد / إغلاق / حذف / أول / سابق / تالي / أخير / بحث ) وذلك بدلاً من تكرارة كل مرة بأزرار الأوامر !!!

المهم ، مشكلتي هي كيفية جلب أو إرسال قيمة لمربع نص TXT_FIND الموجودة بكل نموذج من داخل القائمة ، من الطبيعي إجراء عملية البحث للتأكد من وجود هذا العنصر ، وفي حالة وجودة يتم إرسال قيمة له ، ولكن للأسف لا أعلم كيف يتم ذلك ، ولكنني أعلم كيف يتم تعديل خصائص هذه الآداة ، أنظر :

Declare
  Itm	Item;
Begin
  Itm := Find_Item('txt_Find');
  If(Not ID_Null(Itm))Then
   Set_Item_Property('txt_Find',Enabled,Property_True);
  End If;
End;



ولكنني أرغب في التعديل علي قيمة الـ Text كما ذكرت بمثالك الخاص ، ولكن هذا ينفذ في النموذج ولكن لماذا لا ينفذ من الـ Menu ... حيث أن الـ Menu لا يحتوي علي الـ TXT_FIND ، فإذا كتبت له الكود التالي :


:TXT_Find := 15;



يعطي لي رسالة تقول أن هذه الآداة غير موجودة بالمرة


فكيف أرسل أو أستقبل قيمة Value بمربع النص TXT_FIND الموجودة بداخل الـ Forms من القائمة Menu الرئيسية لكل النماذج ؟؟؟؟؟

أتمني أن أكون أوضحت سؤالي هذه المرة جيداً


شكرا وجزاك الله كل خير

تم تعديل بواسطة MMA

بتاريخ:

بسم الله الرحمن الرحيم

بالنسبه لجلب قيمه من variable ممكن تستخدم built in function إسمها name_in

declare
val varchar2(100);
begin val:=name_in('txt_find');
message(val);
message(val);
end;



أما بالنسبه لإرسال قيمه لـvariable ممكن تتعامل مع global variable
:global.val:='Ahmed';

وتعمل مثلاً trigger على مستوى الـitem
when-new-item-instance
:txt_find:=:global.val;

ممكن يكون ده حل من ضمن الحلول بس ياريت لو حد عنده حل أفضل ما يبخلش علينا بيه
وياريت لو حد يعرف built in function زى الـname_in بس تكون لإرسال قيمه لـvariable ياريت يقولنا عليها .

بتاريخ:
  • كاتب الموضوع

شكراً أخي الكريم علي تفاعلك معي ،

لكن بصراحة أنا كان نفسي بطريقة مباشرة لأنني أرغب في إجراء التحكم الكامل بالنموذج من خلال القائمة Menu !!!!

طب أخي أنا آسف جداً ، ممكن توضحلي شيء آخر بديل لعلي وعسي أن يكون هناك حل لهذه المشكلة !!!

أنا لدي إجراء Procedure أو Function مصمم داخل أكثر من نموذج تحت إسم واحد يدعي Find_Form كعلي سبيل المثال !!!

كيف يمكنني إستدعاء Function أو Procedure موجود بالنموذج Form من القائمة Menu بحيث في حالة وجودة يتم إستدعائة ، وفي حالة عدم وجودة يتم إهمال الكود ؟؟؟؟


شكراً أخي وآسف جداً علي الإزعاج

بتاريخ:

ما هى نفس المشكله تقريباً
إن الـfunction أو الـprocedure لازم تكون على مستوى الـmenu مش على مستوى الـform علشان يحس بيها .

فياريت لو حد عنده أى حل للموضوع ده يقولنا عليه ...........

بتاريخ:
  • كاتب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاتة

الأخ Ahmed Farghaly ، والأخوات أعضاء المنتدي الكرام ،



في الحقيقة سؤالي هذا لم أقصد منه أن أدع أسئلة إستعراضية ، بل حقيقتاً أنا جديد في الـ Form Bilder ولكنني كنت أعتمد إعتماد كلي علي الـ VB6.0 من قبل ، فكنت أكره فكرة أن يتم إنشاء لكل نافذة تعريفية مجموعة من أزرار التعريفات ، لأن في هذه الحالة سيؤدي الي حدوث تكرار بالأدوات وكذلك بعض الأكواد التي لا بد من كتابتها داخل الأزرار Buttons مما يؤدي الي حدوث تضخم لأكواد النوافذ . ولكنني كنت دائماً أنشأ جميع النوافذ دون أي أزرار أوامر ، ولكنني أنشأ نافذة MDI تحتوي علي كافة الأوامر مثل ( حفظ / جديد / إغلاق / حذف / تنقل بين السجلات / بحث / ...... الي آخرة ) .

ولكن من الطبيعي أن هناك إختلاف بين نموذج والآخر ، علي سبيل المثال قبل النقر علي زر ( حفظ ) يجب التأكد من البيانات المدخلة ، مثل ( حتمية إدخال الرقم الكودي والإسم وعدم تكرارة - لا بد إدخال التاريخ بصورة معينة والتحقق من عملية إدخالة - يجب إدخال قيمة مالية بحقل مالي معين بحيث مثلاً لا يزيد عن 9000 جنية ولا يقل عن 500 جنية - يجب إدخال قيمة FK معين - ..... الي آخرة ) . لذلك كنت انشأ بكل نموذج تعريفي خمسة أغراض Functions وهي :

1- عمليات صيانة قاعدة البيانات ( حفظ / جديد / إغلاق / حذف ) :
ValidateUpKeep --> التحقق من المدخلات والتأكد من أن كل شيء سليم
UpKeep --> تنفيذ عملية الصيانة

2- التنقل بين السجلات.
ValidateMove --> قبل الإنتقال الي سجل معين .
MoveRecord --> بعد عملية الإنتقال.

3- غرض لإجراء عملية البحث .

رجاء النظر بالملف المرفق ، حيث يحتوي علي مجموعة من الصور الخاصة بنظام ( المكتبة ) والمصممة بواسطة ( VB6.0 ) ...


أما بالنسبة للـ Form Bilder فأنا أرغب في أي حل يعاونني علي ذلك ، فمشكلة التحكم الكامل بعناصر النموذج إستخدمت لها كل الحلول ولكنني لا أعلم لماذا لا يعمل ، مثل :
1- إستدعاء أغراض أو أحداث موجودة داخل إحدي النماذج من خلال الـ Menu ، فحاولت أن أستخدم أمر Execute_Trigger ولكنة لم يعمل نهائياً !!!!

2- قمت بإنشاء ToolBar للنموذج الحالي في Block مستقل بحيث أن أنشأ مشروعاتي كلياً علي FMX واحد كما يحدث في لغات البرمجة الأخري EXE واحد . ولكن واجهتني مشاكل عديدة ، علي سبيل المثال القائمة Menu !!!!!

3- حاولت أن أشاً متغير عام لإقتباس بلوك البيانات كلياً ولم أفلح في ذلك !!!!

ولكن كحل مبدئي أنا الآن توصلت إلية هو إنشاء متغير من نوع Global كما تفضل الأخ Ahmed Farghaly بعرض مثال له ولكنني إستخدمت بإضافة Timer لكل نموذج بحيث إذا كان المتغير يحتوي علي 1 يعرض نافذة البحث ومن ثم بعد إغلاق نافذة البحث أغير قيمة المتغير الي 0 حتي لا ينفذ مرة ثانية إلا بعد النقر علي أمر بحث مرة أخري ، ولكني هل هذا منطق ؟؟؟؟؟


أتمني من إيجاد حل أفضل من هذه الطرق ، وأتمني من الله أن يوفق كل ساعي للخير وللعلم الي ما يحبة ويرضاة

شكراً للجميع وأنا منتظر حلول أفضل ،


والسلام ختام


لا إله إلا الله ، محمد رسول الله

ProjectPictures.zip

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.