السلام عليكم ورحمة الله وبركاته
هل يمكن كتابة الكود في سطر واحد في VFP
كما في VB حيث في VB يفصل بين كود وكود علامة :
اي مثلا
Select Case
Case Is = 1 : LE=3
وهكذا
مع تحياتي للجميع
السلام عليكم ورحمة الله وبركاته
هل يمكن كتابة الكود في سطر واحد في VFP
كما في VB حيث في VB يفصل بين كود وكود علامة :
اي مثلا
Select Case
Case Is = 1 : LE=3
وهكذا
مع تحياتي للجميع
وعليكم السلام ورحمة الله وبركاته،
نعم يمكنك ذلك اما باستخدام الدالة IIF أو ICase
على النحو التالي :
x=100
IIF
? IIF(x=50, "Result : 50", "Result : 100")
ICASE
? ICASE(x=50, "result 1 : 50", x=75, "result 2 : 75", x=100, "result 3 : 100", "OTHERWISE UNKNOWN")
وربما تفيدك الدالة INLIST
للتحقق من أن القيمة موجودة ضمن عدة قيم محددة
?INLIST(x , 50, 100, 150).............Result = .T.
مع التحية
أستغفر الله العظيم و أتوب إليه
ماشاء الله عليك اخي العزيز
ما كنت اعلم ان VFP يحتوي على مثل هذه الدوال
واشكرك من كل قلبي واطال الله عمرك وزاد من حسناتك
السلام عليكم
اخي العزيز "Shadowz" جربت هذه الكودات ولكن لم يعطي نتيجة حيث لايعطي قيمة لل X3
واذا اردت ان استدعي اجراء كيف
وجزاك الله خيرا
- بالنسبة للجزء الأول X1 هي الحالة أو الشرط وX3 متغير يتم تخزين النتيجة فيه
CLEAR X1=3 X3="" X3 = ICASE(X1= 1 , "ONE", X1=2, "TWO", X1=3, "THREE") ?X3
- اذا كانت الاجراءات مرتبة فعليا حسب الاسم وبتسلسل معين كما في المثال تستطيع استدعائها على النحو التالي، بعد تحديد قيمة X1 طبعا
DO "PROCEDURE"+TRANSFORM(X1)
- بالنسبة للجزء الثاني
cRunMe = ""
cRunMe = ICASE(X1=1, "Procedure1", X1=2, "Procedure2", "Procedure3")
IF NOT EMPTY(cRunMe)
DO &cRunMe
ENDIF
PROCEDURE procedure1
MESSAGEBOX("procedure 1")
PROCEDURE procedure2
MESSAGEBOX("procedure 2")
PROCEDURE procedure3
MESSAGEBOX("procedure 3")بالنسبة لي أفضل استخدام ICASE في الحالات التي تتطلب تحديد قيمة متغير ما أو ما شابه الجزء الأول من سؤالك
أما في حالة استدعاء اجراء أو دالة كالجزء الثاني
أفضل استخدام الطريقة التقليدية على النحو التالي
DO CASE
CASE X1=1
DO procedure1
CASE x1=2
DO procedure2
CASE X1=3
DO procedure3
ENDCASE
PROCEDURE procedure1
MESSAGEBOX("procedure 1")
PROCEDURE procedure2
MESSAGEBOX("procedure 2")
PROCEDURE procedure3
MESSAGEBOX("procedure 3")مع التحية
أستغفر الله العظيم و أتوب إليه
اشكرك اخي العزيز والاستاذ الكبير Shadowz
وارجو من الله يزيدك علما ومعرفة
وان تضل دائما مثالا يقتدى به في طلب العلم ونشره للاخرين
واعتذر على التاخر بسبب بعض الاعمال
ولك مني كل الاحترام والتقدير
اخوك مصطفى
MemoIraq كتب:اشكرك اخي العزيز والاستاذ الكبير Shadowz
وارجو من الله يزيدك علما ومعرفة
وان تضل دائما مثالا يقتدى به في طلب العلم ونشره للاخرين
واعتذر على التاخر بسبب بعض الاعمال
ولك مني كل الاحترام والتقدير
اخوك مصطفى
أهلا بك اخي مصطفى... وصدقني لو قلت لك لا شكر على واجب
نحن اخوة ان شاء الله، لا داعي لاستاذ ولا داعي لكبير
خلي الأمور على البركة :D
مع التحية
أستغفر الله العظيم و أتوب إليه
thaaaaaaaaaaaaaaaaaaaanks