• 0
ameedoo3000

التعديل على تصميم التقرير

سؤال

السلام عليكم 

اخواني الكرام

لدى تقرير تم انشاؤه بواسطة المعالج للسهوله والسرعة ، كما تعلمت من حضراتكم .

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

فكيف يتم ذلك من خلال التصميم اولا ان امكن ، وثانيا من خلال الاكواد ان لم يكن وضع التصميم ممكنا !

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

11 إجابة على هذا السؤال .

  • 0

السلام عليكم،

الترتيب الظاهر في التقرير ( أو غيره ) تصاعديا أو تنازليا يكون انعكاس مباشر لحالة الجدول الذي تتعامل معه 

وذلك يتم من خلال الكود قبل استدعاء التقرير 

 

Example
Set order to Name
Report form xxx preview
Or
Set order to Age
Report form xxx preview

مع التحية...

 

ملاحظة : كان قد عرض الأخ أكرم موضوع الترتيب بالضغط على Grid Header

لو تتبعت الأفكار التي قد تستفيد منها عن طريق توظيف الـ Grid في عرض بياناتك والوصول لها ستجد أنه من المفيد جدا

الاعتماد عليه في تصميم برامجك، خاصة لو تمكنت من عمل Class توظفه في كافة الشاشات التي تحتاج لها.

 

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله ينور عليك يا ريس 

هو ده الشغل المضبوط 

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

يعنى مثلا عندى جدول به 3 حقول ( الاسم - Math - Arabic) وعملت تقرير بيهم ، ومن داخل التقرير اضفت حقل جديد يقوم بجمع قيمة حقل Math و حقل Arabic ، وكنت اريد ان ارتب التقرير تصاعديا حسب قيم هذا الحقل الجديد ، كيف يكون ذلك ؟!

ملحوظة : اعرف جيدا الاستعلام وكيف انشاؤه ووضعه فى Cursor ومنه الى التقرير .... ، ولكنى اريد ان يكون التقرير يأخذ بياناته من الجدول مباشرة 

ارجو الافادة 

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

اخي العزيز في المجلد المرفق ثلاث تقارير

التقريرالاولى : هي سيتم سوالك عن نوع الترتيب المراد عرضهُ في الناتج عند استعراض التقرير

التقريرالثاني : عند عرض التقرير يكون بشكل تنازلي للناتج 

التقريرالثالث : عند عرض التقرير يكون بشكل تصاعديا ً للناتج

علما ان حقل الناتج في التقرير فقط وليس في الجدول

وفي الحالة الاولى يكون بشكل متغير VER قياسي للتقرير 

في الحالات الاخرى  لا يكون موقت 

** واذا لم تصل للطريقة عمل التقارير وكانت هي التي تريدها اخبرني وسوف اذكر لك الطريقة او الفكرة 

" وهذة الطريقة لاتوجد حتى في المواقع الاجنبية قبل اليوم او قبل هذة المشاركة "

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

lioniraq.zip

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخى العزيز فراس 

أنت أستاذ ورئيس قسم - بارك الله فيك

بالنسبة لاجابتك على سؤالى فهى صائبة مائة فى المائة وهو المطلوب بالفعل وبالضبط ، وفهمت الفكرة المبنية على فهرسة الجدول الرئيسي واستدعاء هذه الفهرسة اثناء تشغيل التقرير .

لكن هناك سؤال وهو كيف  ظهرت الرسالة ، وكيف يتم تغيير الفهرسة اثناء تشغيل التقرير بدون وجود نموذج يتم استدعاء التقرير منه ؟؟

ارجو التوضيح 

مع خالص تحياتى وتقديري لك ولجميع اعضاء المنتدى الكرام 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخى العزيز فراس 

أنت أستاذ ورئيس قسم - بارك الله فيك

بالنسبة لاجابتك على سؤالى فهى صائبة مائة فى المائة وهو المطلوب بالفعل وبالضبط ، وفهمت الفكرة المبنية على فهرسة الجدول الرئيسي واستدعاء هذه الفهرسة اثناء تشغيل التقرير .

لكن هناك سؤال وهو كيف  ظهرت الرسالة ، وكيف يتم تغيير الفهرسة اثناء تشغيل التقرير بدون وجود نموذج يتم استدعاء التقرير منه ؟؟

ارجو التوضيح 

مع خالص تحياتى وتقديري لك ولجميع اعضاء المنتدى الكرام 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ويعطيكم العافية

عزيز أحمد 

نمشي خطوة خطوة...

الفرضية الاولى : بالشكل الذي تريده وهو استخدام الجدول بشكل مباشر :

سيكون الاسم ضمن جدول العلامات على النحو التالي :

CREATE TABLE Results (SID INT AUTOINC, SName c(100), Math N(6,3), Arabic N(6,3), English N(6,3), Total n(20,3))
INDEX on Total TAG Total 

اضافة اسماء الطلاب والعلامات :

INSERT INTO Results (sName, Math, Arabic, English) VALUES ("Ahmad",  99.95,97.6, 99.7)
INSERT INTO Results (sName, Math, Arabic, English) VALUES ("Khaled", 98.1 ,92.7, 85.3)
INSERT INTO Results (sName, Math, Arabic, English) VALUES ("Nasser", 99.95,99.6, 99.7)

Use In Results

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

IF NOT USED("Results")
	USE Results SHARED IN 0 ORDER TOTAL
ELSE
	SELECT Results
	SET ORDER TO TOTAL   && TOTAL
ENDIF
SELECT Results

جمع النتائج في الحقل Total

Replace Total With Math + Arabic + English All

الان الجدول مستخدم والفهرس تصاعدي على الحقل Total كل ما عليك هو استدعاء التقرير

Report Form XXX Preview 

لو أردت تحويله لتنازلي

SELECT Results
SET ORDER TO TOTAL DESCENDING
Report Form XXX Preview 

لانك بطبيعة الحال لن تستطيع اعادة تغيير ترتيب التقرير بعد الاستعراض  الا بالخروج من التقرير واعادة طلبه.

وعملية وضع الأكواد داخل الـ BeforeOpenTables ما هي الا عملية تعقيد للأمور الا اذا كانت أكواد قياسية تريد فرضها على كافة التقارير، فتخيل لو كان لديك 50 تقرير وأخذت توزع الاكواد هنا وهناك وأردت مراجعتها أو التغيير عليها.....

ومن ناحية أخرى قد يكون لديك سجلات تستدعي وقتاً طويلاً للتحضير أو الفهرسة.... فلماذا تضعها في مكان قد يعطي المستخدم ولو القليل من الاحساس بالبطئ.

 

الطريقة الثانية ( والتي قد تكون أقرب للواقع بنظري على الأقل ) : وهي استخدام الــ Cursor

بما أنك تصمم نظام علامات  أول شيء افترضه بأن لديك ثوابت ولديك متغيرات

الثوابت : أسماء الطلاب

المتغيرات : علامات الطلاب لكل فصل / سنة

لنفترض جدول الطلاب على النحو التالي :

CREATE TABLE Students (SID INT AUTOINC, SName c(100))
INSERT INTO Students (SName) VALUES ("Ahmad")
INSERT INTO Students (SName) VALUES ("Nasser")
INSERT INTO Students (SName) VALUES ("Meedo")
Index on SID Tag Sid 
USE IN Students

وجدول علامات على النحو التالي :

CREATE TABLE Results (SNo INT(4), SchYear i(4), Math N(6,3), Arabic N(6,3), English N(6,3))
INSERT INTO Results VALUES (2,2015,99.95,97.6,99.7)
INSERT INTO Results VALUES (1,2015,98.1,92.7,85.3)
INSERT INTO Results VALUES (3,2015,99.5,99.6,99.7)
INSERT INTO Results VALUES (2,2016,98.95,90.6,97.7)
INSERT INTO Results VALUES (1,2016,97.1,91.7,82.3)
INSERT INTO Results VALUES (3,2016,97.5,95.6,91.7)
INDEX on SNo TAG SNo
USE IN Results

 

الان الجداول جاهزة وكل ما علينا هو فتحها واحضار النتائج لسنة 2016 مثلاً:

وهنا علينا استخدام جملة SQL  لتحضير الـ Cursor

IF NOT USED("Students")
	USE Students SHARED IN 0 ORDER SID
ENDIF

IF NOT USED("Results")
	USE Results SHARED IN 0 ORDER SNO
ENDIF
SELECT Students.*, Results.Math, Results.Arabic, Results.English,;
Results.Math + Results.Arabic + Results.English as Total;
 FROM Students;
Left JOIN Results ON Students.Sid = Results.Sno;
where Results.SchYear=2016 ORDER BY Total; 
into CURSOR crsTest READWRITE

 

النتيجة الان مرتبة تصاعدياً على الحقل Total

لو أردت تغييرها لتصبح تنازلياً تستخدم الأمر Index  لمرة واحدة فقط

Index on Total tag Total

ثم تغير الترتيب بالأمر

SET ORDER TO TOTAL desc

 

ومن ثم اعمل استعراض للتقرير

 

ملاحظة : نسيت وضع الفصل الدراسي في المثال ولكن بامكانك ادراجه واضافته لفلتر الـ Sql

 

النصيحة :

دعك من الجري وراء التقرير وخواصه فلن تجد الكثير من الامكانات فيه..فقط جهز الشكل النهائي له واستدعيه عند الحاجة

حاول الاعتماد على الـ Cursor  لا يوجد مشكلة فيه

 

مع التحية

 

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا استطيع قول شئ الا ..

بسم الله ما شاء الله ، لا قوة الا بالله

انا والله العظيم فخور جدا جدا جدا بك اخى الكريم على هذه الدرجة الرفيعة من العلم ، وامكانيه توصيل المعلومة وتبسيطها وعدم البخل بها على احد 

لقد شربت الشرح شربا بشكل يصعب وصفه 

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

شرح جميل ووافى ومتكامل ومبسط 

الله ينور عليك 

ويبقى سؤال واحد وهذا بعد اذنك طبعا --- اى المواقع الاجنبية شهرة ودعما للفوكس برو تعلمت منها اخى الكريم ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

والله اني سعيد جداً بكلماتك الطيبة وذوقك العالي، وأسعد بأنك وجدت ما يفيدك، وأتمنى لك وللجميع كل الخير والتوفيق، والحمد لله الذي ممكني من هذا وعلى كل حال

بالنسبة للمراجع التي ستجد فيها ما يفيدك ان شاء الله:

الـ Help الموجود في الفوكس برو.... لا تتركه أبداً فستجد فيه دائماً ما يفيد

أكثر المواقع الغنية بالمعلومات ( بالنسبة لي ) هو foxite مليء بشتى أنواع المواضيع وكل ما عليك هو ايجاد الوقت للقراءة

من المواقع الأخرى التي ستجد فيها ما هو مفيد

sweetpotatosoftware

وهنا ستجد مشاريع جديدة خاصة بالفوكس vfpx.codeplex

مع العلم أنه يوجد مواقع كثيرة ولكن هذا أهم ما يخطر ببالي الان 

ويوجد كتب قيمة جداً قد تجدها على الانترنت 

1001 Things You Wanted To Know About Visual FoxPro

MegaFox 1002 Things You Wanted To Know About Visual FoxPro

 

ولا تنسى أنك ستجد هنا أيضاً مواضيع جيدة قد تبدأ منها.. قام بوضعها الاخوة والتعب عليها

مع التحية والشكر مرة أخرى

 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تحياتى الحارة لك اخى الكريم عبد الله 

وشكرا جزيلا على هذا الطريق والدليل للمعرفة ( الدال على الخير كفاعله )

وادامك الله عليك نعمة العطاء والنفع وزيادة العلم لك وللغير ، ونحن لا ستطيع الاستغناء عن عطاءك ، فانت شمس هذا المنتدى ولا حياة بدونها.

الف شكر اخى الكريم  وبارك الله فيك 

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

العفو أخي الكريم، هذا والله من كرم أخلاقك..... والمنتدى منور فيكم أجمعين...

كل التحية

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .