الانتقال إلى المحتوى
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.

مساعدة في عمل function

Featured Replies

بتاريخ:

السلام عليكم اخوتي

في البداية عملت مشروع كامل وكنت أقوم بتثبيت مسار كل فورم في جدول خاص للفورمز وكنت أبدأها مسار الفورم بـ
c:\file_name\forms\form_name

الآن انا ساقوم بنقل جميع الفورمز على جهاز المستخدم وستكون على سيرفر ومن المفترض ان تتغير جميع المسارات الى الآتي

server_computer_name\forms\\

كيف يمكنني عمل ذلك بحيث ان function تقوم بحذف اول ثلاث أحرف فقط من المسار الحالي وتقوم بتغييرها الى ما سأقوم بكتابته من خلال شاشة أقوم فقط باعطاءه ما سأبدله مكان الثلاث الأحرف الأولى

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

هل من مجيب ياسادة

ام لهذه الدرجة توقفت الحلول...؟

بتاريخ:

السلام عليكم و رحمة الله و بركاتة
سيدى الفاضل ممكن توضح اكتر
طبلك مش مفهوم :)

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

شكرا للاهتمام

أولا النظام ببرنامجي كله مسجل في الـ database كاملا حتى مسار form و report حيث يحتوي جدول النظام على اعمده منها عمود المسار "path" هذا العمود كنت اقوم بتسجيل مسار form التي امتدادها fmx بالطريقة التالية

c:\file_name\forms\form_name

الآن أنا أريد فقط حاجة تعمل لي تغيير أول حرفين من path

يعني لنفترض اني اريد تغيير المسار السابق من c:\file_name\forms\form_name الى المسار الحالي

d:\file_name\forms\form_name

أريد مساعدة في عمل function اعطيها لنفترض \:) بحيث تقوم هي بالمرور على كامل السجلات في عمود المسار وتقوم بقطع أول ثلاث أحرف التي هي \:c وتبدل مكانها \B) من تغيير لباقي المسار فقط أعطيها المكان الجديد وهي تقوم فقط بقطع أول ثلاث أحرف وتبدلها بما أكتبه لها

اسم الجدول system_access اسم العمود path

أظنها مفهومه كذا

بتاريخ:

السلام عليكم
الأخ الكريم AMATEUR
بصرف النظر عن غرض تخزين مسار الفورم ف ي الداتا بيز
فلا تحتاج لفانكشن يتمم كتابتها لتغغير ما تريده يمكن عمل ذلك بجملة ابديت بسيطة عن طريق استخدام فانكشن REPLACE كالاتي

UPDATE system_access
  SET PATH = REPLACE (PATH, 'C:\', 'D:\')


بالتوفيق

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

بصراحة ياعيني عليك

هذا أهو كل المطلوب وانا اقول function ومسوي زحمة والشارع فاضي وقاعد اشرح مرتين

بصراحة الواد يبيله يحفر تحفير في function المعموله اساسا مع الاوراكل علشان يرتاح ويختصر اشياء كثيرة

وشكرا لك بالاول وبالاخير

بتاريخ:

fuction f_change_path(p_path varchar2) return varchar2
is
begin
UPDATE system_access
SET FMX_PATH = P_PATH||SUBSTR(ENAME,3);
COMMIT;
END;

عندى تعقيب بس بخصوص اسلوب حضرتك فى الرد على الحل اللى السابق
لو لقيت انه حل مش مناسب او حتى خطا يا ريت ميكنش ردك بالعنف او الخشونة دى
بلاش تقلل من قيمة حل اى فرد مهما كان الحل
يا اخى فوق كل علم عليم

بتاريخ:

السلام عليكم
اخ tarek_fathi ارجو منك توضيح اي حل سابق تقصد و اي تعقيب خشن تقصده من الاخ صاحب السؤال
لاني اعتقد انه يوجد لديك لبس في الموضوع :)
و سوء فهم لرد الاخ amateur صاحب السؤال
B)
لذلك ارجو التوضيح
بالتوفيق

بتاريخ:

أنا لم أفهم سؤالك جيدا ولكن أنشاء الله تنحل مشكلتك بالتابع التالي
وسوف أشرح لك عمله
لوأردت مثلا أستدعاءform2 من form1 مايلزمك الأ ان تكتب تحت الزر
new_form(get_path||form2.fmx)
وبالمختصر المفيد التابع يقوم بجلب المسار الحالي للفورم وين ماكان الفورم وفي أي جهاز


FUNCTION my_path RETURN varchar2 IS
path VARCHAR2(255) := Get_Application_Property(CURRENT_FORM);
slash PLS_INTEGER;
BEGIN
---------------------------------
slash := instr(path,'\',-1);
path := substr(path,1,slash);
---------------------------------
return(path);
END;

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

انا خلاص لقيت الحل ولمت نفسي وقتها مالمت احد وش سالفتك يا tarek_fathi لايكون انا اصبتك بالكلام وانا ما ادري علما اني ماني شايف لك اي رد نهائيا قبل رد الاخ hanon_OCP فما هو قصدك ياعزيزي اذا كنت تقصدني في كلامك

عندى تعقيب بس بخصوص اسلوب حضرتك فى الرد على الحل اللى السابق
لو لقيت انه حل مش مناسب او حتى خطا يا ريت ميكنش ردك بالعنف او الخشونة دى
بلاش تقلل من قيمة حل اى فرد مهما كان الحل
يا اخى فوق كل علم عليم


والموضوع كله ماكان المقصد منه فتح فورم او غيره كل الموضوع كان استبدال اول ثلاث احرف من سجل بس انا ذكرت الحالة اللي استدعت ذلك فقط

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

بتاريخ:

كنت اقصد طريقة رد الاخ Amateur
على الاخ hanon_ocp

بتاريخ:

ممكن تريح نفسك خالص من هذا التعب وتاتى على الريجيسترى فى الجهاز وتبحث عن forms_path ثم تاتى بعدة وتضع ;
ومسار الفورمز ثم تندة على الفورمة باسمها فقط دون كتابة المسار وكذلك الolp,pll

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

شكرا لك

بتاريخ:

الأخ tarek_fathi
كما توقعت هناك سوء فهم منك لرد الاخ amateur علي ردي الذي رددته عليه :(
فهو لم يتحدث باي خشونة او عنف و الرد ليس خطأ او غير مناسب :(
هو فقط كان يتحدث كطريقة استغراب ان الحل اسهل مما كان يتوقع و كان يعتقد انه صعب و يحتاج فانكشن يعملها هو و شغل كتير
اي طريقة تعجب فقط لا غير
عموما حصل خير :(
بالتوفيق

بتاريخ:

انا اسف جدا على خطأى هذا انا فعلا فهمت خطا
ارجو ان محدش يزعل منى
اكرر اسفى

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

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

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

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

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

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.