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

ليستفيد الجميع من الفيزيول فوكس برو

بدأه Yassin_VFP9 في 27 يونيو 2009 · 5 رد · 1,329 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

إخواني محبي الفيزيول فوكس برو وخاصة 9

كما تعرفون فإننا نحتاج لغة الSQL كثيرا عي اعمالنا

لهذا اقترح عليكم حلا أجذه مناسبا جدا

اولا

---

قم بانشاء METHODE واعطه اسما على سبيل المثال الاسم LISTE

ثم ادخل الكود

Select &champs From &source;

WHERE &test Order By &ordre;

into Table temp1.Dbf

ثانيا

*----

عندما تريد استعمالها وفي اي موضع في الفورم

ما عليك فعله هو تحديد CHAMPS-SOURCE-TEST-ORDER قبل استعمال هذا الكود

thisform.liste

*----------

على سبيل المثال

champs="a.typ_op, a.cod_op, a.dat, b.num_invent, c.nom_livre, d.nom_resp, b.etat, b.empr"

source="oper a, invent b, livre c, Resp d"

ordre="b.num_invent"

test="d.cod_resp=a.cod_resp AND c.cod_livre=a.cod_livre AND a.cod_op=b.cod_op"

thisform.liste

<<--DON CORLEONNE-->>

#2

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

سلمت يداك اخي ياسين على هذا المثال الجميل

وسأضبف عليه سمحت لي:

في المثال لا بد من تحديد CHAMPS-SOURCE-TEST-ORDER

لذا بدلا من تعريفها كمتغير عام Public فاننا نستطيع تمريرها للـ Method بواسطة Parameters

Method: LISTE
lParameters lcCHAMPS, lcSOURCE, lcTEST, lcORDER 
....

جرب ذلك قد يعجبك الأمر في كافة الاجراءات التي ستقوم بانشائها لاحقا

مع التحية

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

#3

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

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

اخي الكريم

لا افهم هذه العبارة

lParameters lcCHAMPS, lcSOURCE, lcTEST, lcORDER

بالنسبة لي

لابد من تحديد الحقول CHAMPS

لم يسبق لي ان استعملت LPARAMETRES

<<--DON CORLEONNE-->>

#4

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

Parameters

عبارة عن متغيرات تمرر ما بين الاجراءات أو النماذج

جرب التالي في نموذج ما ( عليك انشاء اجراء واعطيه اسم LISTE واضف Command Button ) وضع التالي كل في مكانه:

* Method: LISTE

Lparameters lcCHAMPS, lcSOURCE, lcFilter, lcORDER

If !Empty(lcFilter)

		  lcFilter=[ WHERE ] + lcFilter

Endif

If !Empty(lcORDER)

		  lcORDER=[ Order By ] + lcORDER

Endif

Select &lcCHAMPS From &lcSOURCE &lcFilter &lcORDER INTO CURSOR Test

Brow

* CommandButton: Click

* 1.  Create new cursor to use it as our data source

Create Cursor crsFirst (iNo i(4), iName c(40), iPrice N(20,3), iQty N(20,3) , iTotal N(20,3))

For i = 1 To 10

		  Insert Into crsFirst (iNo, iName, iPrice, iQty) Values (i, [Item Name]+Alltrim(Str(i)), i*5, i)

Next

Replace iTotal With iPrice*iQty All



* 2. Set lcCHAMPS, lcSOURCE, lcFilter, lcORDER values before calling LISTE method:

lcCHAMPS=[iNo, iName, iPrice, iQty, iTotal]

lcSOURCE=[crsFirst]

lcFilter=[iNo>5]

lcORDER=[iNo]



* 3. Call LISTE method by passing ( lcCHAMPS, lcSOURCE, lcFilter, lcORDER ) values

Thisform.Liste(lcCHAMPS, lcSOURCE, lcFilter, lcORDER)



* 4. Or we can Skip Step# 2 And Step# 3, And directly Go To #4

Thisform.Liste( [iNo, iName, iPrice, iQty, iTotal], [crsFirst], [iNo>5], [iNo])

تم تعديل هذه المشاركة بواسطة Shadowz في 28 يونيو 2009 في 04:31

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

#5

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

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

فكرة ممتازة اخي الكريم

تم تعديل هذه المشاركة بواسطة Yassin_VFP9 في 28 يونيو 2009 في 09:49

<<--DON CORLEONNE-->>

#6

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

اتمنى ان تفيدك اخي العزيز

طبعا نستفيد من نفس الفكرة في تمرير المتغيرات بين النماذج أو البرامج على النحو التالي:

Main Procedure
Do form MyForm with (lcCHAMPS, lcSOURCE, lcFilter, lcORDER)
Do MyProgram with (lcCHAMPS, lcSOURCE, lcFilter, lcORDER)

ويكون موقع ال Paremeters على النحو التالي:

اذا أردت تمريره لبرنامج أو لاجراء أخر : يوضع في بداية البرنامج أو الاجراء

اذا اردت تمريره لنموذج آخر : يوضع : كأول سطر في Procedure INIT

تم تعديل هذه المشاركة بواسطة Shadowz في 28 يونيو 2009 في 15:17

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…