الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عدم ظهور رسائل الخطأ

بدأه ameedoo3000 في 21 ديسمبر 2016 · 5 رد · 804 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اليوم الاربعاء الموافق 21 من ديسمبر لعام 2016 ............ كل عام وانتم بخير 

سؤالى هو : هل هناك طريقة لتخطى أى رسائل الخطأ التى تظهراثناء تشغيل البرنامج ، بمعنى انه ( مثلا ) عند عدم وجود جدول البيانات فى مكانة لا تظهر رسالة الخطأ أثناء فتح النموذج ... 

فهل هذا ممكن ؟!

ارجو الافادة وارجو ايضا عدم التاخير فى الرد 
مع جزيل الشكر والتقدير لجميع اعضاء ومشرفين المنتدى

#2

وعليكم السلام اليوم 22 ديسمبر وانت بألف خير ان شاء الله

يمكنك الغاء الرسائل عن طريق الأمر 

ON ERROR *

ولكن قبل أن تفعل.... هل تظن بأن هذه أفضل طريقة ...اذا أردت الأفضل ؟؟ 

لماذا أساسا يستمر البرنامج بالعمل في حال عدم القدرة على ايجاد الجداول ؟؟ وما الغاية منه، وما كم المشاكل اللاحقة لذلك ؟؟ 

الا في حالة رغبتك بالوصول للشاشة الرئيسية لتحديد بعض الخيارات مثلا... ومنع باقي الشاشات...

برأيي المتواضع عليك استخدام أوامر أخرى

مثل 

IF FILE('TableName.dbf')

IF NOT USED('TableName.dbf')

وقد تطور الى الموضوع الى انشاء Procedure خاص بالتحقق من وجود الملف أولاً وهل هو مستخدم ام لا ثانيا ، ثم تقوم باستخدامه والعودة بالنتيجة 

قد يكون الـ Procedure على النحو التالي ( ونسميه مثلا  YourPrgFile.prg ) 

FUNCTION UseTable( tcTableName )
	IF VARTYPE(tcTableName)<>"C" OR EMPTY(ALLTRIM(tcTableName))
		RETURN .F.
	ENDIF
	LOCAL lcTable, llok
	lcTable=ALLTRIM(tcTableName)
	m.llok = .F.
	IF FILE(lcTable + '.dbf')
		IF NOT USED(lcTable)
			TRY
				USE (lcTable) SHARED IN 0
			CATCH TO oErr
			ENDTRY
		ENDIF
		IF USED(lcTable)
			m.llok=.T.
		ENDIF
	ENDIF
	RETURN m.llok
ENDFUNC

في الملف الرئيسي للبرنامج ضع الكود

Set procedure to YourPrgFile.prg

واستدعي الأمر على النحو التالي من أي مكان :

IF UseTable('xxx')
	MESSAGEBOX("Used and ready...")
ELSE
	MESSAGEBOX("No Tab...")
ENDIF

معلش الاطالة للفائدة .....مع التحية

أستغفر الله العظيم و أتوب إليه

#3

جزاك الله كل خير اخى الكريم عبد الله 

لكن انت واسد العراق على أعلى مستوى برمجي وانا مازلت مبتدأ  ، وهذه الاكواد كثيرة وطويلة ، والامر لا يستدعى كل هذا !

الموضوع وما فيه هو الغاء رسالة الخطأ التى تظهر عند تشغيل البرنامج فى حالة عدم ايجاد الجداول، والهدف من ذلك هو عدم دراية المستخدم بان هناك مشكلة ولا اسبابها وبالتالى لا يكون هناك اى مساعي من المستخدم لإيجاد الحل .. وهذا من وجهة نظري نوع من انواع الحماية وان كانت بسيطة .

وانا بطبيعتى اميل الى الاختصار واليسر ، فعندما قلت ان هناك امر on Error *  والذى يلغى رسالة الخطأ ، سعدت به كثيرا ولكننى لا اعرف اين اضع هذا الامر وفى اى حدث ؟ 

ومرفق صورة من رسالة الخطأ والتى توضح ان سبب الخطأ هو عدم وجود الجدول والذى اسمه ظهر بهذه الرسالة 

ارجو ان تكون فكرتى وضحت 

مع جزيل الشكر والتقدير

وانا سعيد جدا بسرعة الرد .. جزاك الله كل خير

 

Error.jpg

#4

اهلا أخي أحمد وبارك الله فيك

الحمد لله على هذا.... ولا تقلق فأنا لليوم أتعلم وان كنت قد سبقتك بمراحل

وانت ما شاء الله واضح أنك شادد حيلك كويس وبتوصل للي بدك اياه ان شاء الله.

ان كان ولا بد فضع الأمر في البرنامج الرئيسي الذي تبدأ من خلاله البرنامج... 

وطبعا سبب هذا الخطأ هو تثبيت المسار الخاص بالجدول من خلال استخدامه داخل الـ data environment

سواء في النماذج أو التقارير

مع التحية

تم تعديل هذه المشاركة بواسطة a.jallad في 22 ديسمبر 2016 في 20:10

أستغفر الله العظيم و أتوب إليه

#5

الله ينور عليك يا اخى عبد الله . هذا هو المطلوب

انا وان كنت حاولت الاجتهاد فهذا بفضلكم جميعا عليا و مساندتكم لي ، فجزاكم الله كل خير عنى وعن كل متعلم ، وجعله الله فى ميزان حسناتكم ..

احمد

#6

كل عام وأنتم بألف خير اخوتي الكرام

كم انا سعيد بالمشاركات والمعلومات المتبادله 

وتحياتي لكم من كل قلبي 

مواضيع مشابهة