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

كتابه تقرير من حقل (تاريخ) يحدد الفتره من والى حسب رمز معين

بدأه نورالايام في 26 يناير 2016 · 14 رد · 1,889 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

mto=thisform.text3.Value
mfrom=thisform.text2.Value


IF mto < mfrom
MESSAGEBOX("áÊÇÑíÎ Çáì ÇßÈÑ ãä ÇáÊÇÑíÎ ãä")
thisform.text3.SetFocus
thisform.Refresh
ELSE
SET EXCLUSIVE ON
SELECT 0
USE outdle
ZAP
SET EXCLUSIVE OFF
SELECT dec
SET ORDER TO 2   && C_DEP+NODOC+DTDOC
GO top
SET FILTER TO (dec->dtdoc >= mform  .and.  dec->dtdoc <= mto)
GO top
DO WHILE !EOF()
mnodoc = dec.nodoc
mdtdoc =dec.dtdoc
mndep= dec.n_dep
mnot= dec.not

DO case

CASE mdle =d1
mpp =pr1
SELECT outdle
APPEND BLANK
 replace outdle.nodoc WITH mnodec
 replace outdle.dtdoc WITH mdtdoc
 replace outdle.totdo WITH mpp
 replace outdle.n_dep WITH mndep
 replace outdle.dlel WITH mdle
 replace outdle.namd1 WITH mdlem
 replace fdatev WITH mform
 replace tdatev WITH mto
 
 
  eNDCASE
 SELECT dec
 SKIP
 ENDDO
 SELECT dec
 SET FILTER TO
*******************
  ENDIF
  SELECT outdle
  GO top
  REPORT FORM repodle PREVIEW
  SELECT outdle
  USE
  SET EXCLUSIVE OFF

#2

اهلًا وسهلا 

لضمان اجابة واضحة وسريعة 

الرجاء إرفاق الجدول والايعازات للتحليل والاجابة

وتحياتي للجميع

#3

جربي تغيير الاسلوب في كتابة الكود.. والاعتماد على جمل Sql بدلا من الـ Do فالنتيجة غالباً أسرع

بالاضافة للاستفاد من الجداول المؤقتة بدلا من تخزين النتائج لجدول واعادة حذفها في كل مرة

قد يفيدك المثال التالي

CREATE CURSOR Test (cno i(4) AUTOINC , dDate d(8))
FOR i = 1 TO 500
	INSERT INTO Test (dDate) VALUES (DATE()+i)
ENDFOR

m.StartDate=DATE()
m.EndDate=DATE()+300
m.DocNumber=250
IF m.StartDate > m.EndDate
	MESSAGEBOX("...")
	RETURN .F.
ENDIF
SELECT * FROM Test WHERE cNo=m.DocNumber AND BETWEEN(dDate, m.StartDate, m.EndDate) AND NOT DELETED() INTO CURSOR crsReport
*REPORT FORM .... PREVIEW
brow
1▲ 1

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

#5

لا داعي للشكر على واجب اخي فراس... العفو

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

#6

شكرا جزيلا على الرد الكود يعمل الان والتقرير تمام وخطا الي كان عندي انه بدايه البرنامج كنت كاتبه SET EXCLUSIVE  on  , ممنونه منكم ولدي اسئله كثيره.................. مع فائق شكري

▲ 1
#9

تحيه طيبه استاذ الحقيقه جربت الكود الي طرحه الاخ ولم ينفذ اعترض ماعرف ليش  علما اني استخدم الاصدار السابع  ولكن نفذت الكود الي كنت كاتبه مسبقا مثل ماكتلك رفعت من برنامج start  خاصيه SET EXCLUSIVE  on

#10

ما هي المشكلة التي تظهر لك ؟

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

#11

الأخت العزيزة نور

اضغطي ملف البرنامج وارفعي للاطلاع عليه وتعديل الأشكال البرمجي بصورة أسرع 

تحياتي للجميع

#12

السلام عليكم اسفه لتاخري بالاجابه.................

doc.rar

#13

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

اخي عبدالله جلاد

ممكن توضحلنا بمثال بسيط كيفية  ربط الـ(CURSOR) بالتقرير وهل يمكن وضعه في Data Environment الخاص بالتقرير

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#14

وعليكم السلام أهلا أخي أكرم....

الجدول المؤقت لا يظهر في Data  Environment الخاص بالتقرير....

الا في حالة استخدام الـ CursorAdapter وأكيد أننا لا نريدها هنا.

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

اعتمد عليه لغاية الانتهاء من التصميم، ثم اقوم بحذفه...

وكمثال قم بانشاء الجدول المؤقت التالي - ولنفترض انه مكون من 40 حقل وليس فقط من حقلين

ونفترض ايضا ان اسم الجدول المؤقت عند تنفيذ التقرير في البرنامج سيكون crsTest

CREATE CURSOR crsTest (EmpNo I AUTOINC , EmpName c(100))

لغايات التصميم نحوّل الجدول المؤقت لجدول دائم بنفس الاسم على النحو التالي :

SELECT * FROM crsTest INTO TABLE crsTest

 

هكذا اصبح لديك جدول يمكن استخدامه بشكل مباشر في التقرير

بعد الانتهاء من التصميم قم بازالة الجدول من  Data  Environment التقرير

وحذفه من مسار البرنامج ، تمهيدا لاستخدام الجداول المؤقتة أثناء التنفيذ

أتمنى ان تكون وصلت الفكرة ....ودمتم...

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

#15

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

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

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

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

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

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

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