بتاريخ: 15 مايو 200916 سنة comment_156891 انا عايز استعمل ال ref cursor فى الريبورت ولكن المشكلة ان الريف كورسير فى ال كويرى ببيتكرت على انة function gلزما ت return data type من النوع ref cursor وبالتالى انا مبقدرش احدد السطور ال انا عايز ارجعها فى ال return او اعمل عليها اى ترانس اكشنيعنى من الأخر انا عايز اعمل كيروسر فى الريبورت هو ال يملى سطور الريبورت بالفاريبل ال انا عايزة اقولة لما يكون السطر كذا حطيلى كذا زولما يكون السطر ال راجع كذا اعمل علية لوب تانى ورجعة كذا مرة ورا بعض ويتنة يكتب فى التقرير هل فعلا ممكن اتحكم فى الريف كيروسر بالشكل دة ولا لاة وجزاكم الله خيراً تقديم بلاغ
بتاريخ: 16 مايو 200916 سنة comment_156972 بص يا أخي أنت ممكن تعمل Function يرتجع جدول تعمل بها ما تشاء ، ولكن هتكون غير جيدة بعض الشيء !!!!1- الكود هيبقي طويل أو مقرف.2- إستخداد الدوارة Loop لو زادت عن حدها في جلب سجلات كثيرة بتعمل ثقل للبيانات ، فبالتالي بتأخر فتح التقريرعلي كل حال أبحث بالمنتدي عن كيفية صناعة Function يرتجع لك جدولربنا يسهل أصنع لك مثال بسيط وهبقي أرسلة لكبالتوفيق تقديم بلاغ
بتاريخ: 16 مايو 200916 سنة كاتب الموضوع comment_156982 هى بالفعل ياخ مصطفى عملتها ولكنى لا استطيع التحكم فى السطور المرتجعة لان بيرجع ال record بتاع ال ref cursor كلة مرة واحدة حسب فهمى فمبقدرش اعمل ارجع السطور ال انا عايزها بالشكل ال انا عايزة تقديم بلاغ
بتاريخ: 16 مايو 200916 سنة comment_157011 هى بالفعل ياخ مصطفى عملتها ولكنى لا استطيع التحكم فى السطور المرتجعة لان بيرجع ال record بتاع ال ref cursor كلة مرة واحدة حسب فهمى فمبقدرش اعمل ارجع السطور ال انا عايزها بالشكل ال انا عايزة وما المشكلة في ذلك ، يمكنك عمل جملة Where علي الحقول المرتجعة كما يلي :SELECT * FROM TABLE(GET_EMP('a')) WHERE EMP_NO = 1; أم أنك ترغب في إيجاد أوامر مثل أوامر التنقل بين السجلات لبروك البيانات ؟؟؟؟مفيش الأمر دة علي الـ CURSOR ، وموجود علي VARRAY ، ولكنه محدود العدد ، ومفيش علي NESTED TABLE علي ما أعتقدطيب سبني شوية أبحث لك يمكن ألاقي حل شكراً تقديم بلاغ
بتاريخ: 16 مايو 200916 سنة كاتب الموضوع comment_157019 شكرا يمصطفى على تعبك معنا يعنى انا عايز من ألأخر املى الريبورت عن طريق ال loop كانى بملى كنترول بوك فى الفورمزبقولة next_record واحط ال values ال انا عازها وهكذا تقديم بلاغ
بتاريخ: 16 مايو 200916 سنة comment_157047 مش عارف أخ حسام ، أعتقد أن الموضوع مش هينفع !!!!طيب أتركني فترة لعل وعسي أجد حلوآسف جداًشكراً تقديم بلاغ
بتاريخ: 18 مايو 200916 سنة comment_157222 بسم الله الرحمن الرحيمالسلام عليكم ورحمة الله وبركاتةالأخ حسام ، في الحقيقة أنا لم أجد مشاركات من قبل تفيد بذلك بالمنتدي ، ولم أجد أي شيء يوحي بذلك عبر موقع Goolge علي الإطلاق !!!ولم أقل لك أن ليس هناك حلول لذلك ، لأنني لم أتعود علي ذلك !!!فبالتحايل يمكن صناعة كل شيء ... وقلة خبرتي مع الديفيلوبار لم أقدر علي قول أن ليس هناك حل لذلك !!!المهم علشان مطولش عليك ، أنا حبيت أتحايل علي الوضع بأكثر من طريقة ، ولكن لم أتمكن من ذلك .. خصوصاً لأنني وجدت مجموعة أوامر في مكتبة SRW من خلالها تقدر تعدل علي حقول التصميم Layut وليس الحقول الفعلية الموجودة في الـ Groups ، والأوامر هي : SRW.SET_FIELD SRW.SET_FIELD_CHAR SRW.SET_FIELD_DATE SRW.SET_FIELD_NUM لكن طبعاً كما ذكرت تعديل علي حقول تصميم التقرير وليس حقول بيانات المجموعات Groups .. فحاولت جاهداً أبحث في هذه المكتبة وفي مكتبات أخري عن أمر Create_Record أو ما يشابهها فلم أجد !!!لكن أنا من رأيي أن مفيش حل بطلبك هذا ، لأنني تعاملت مع Crystal Report حتي الإصدار 10 ولم يكن هناك مثل ما تطلبة .. بالإضافة أن أنواع التقارير المختلفة هدفها الوحيد هو الطباعة علي الورق بغض النظر عن الإمكانيات المتاحة.أما بخصوص الـ RefCursor ، فهذا النوع يحتاج الي عمل Function أو Ref Cursur Query يرتجع لك ما تريدة من داخل التقرير "مرفق لك مثال أنظر فية"أعتزر كل الإعتزار علي عدم إيجاد حل نهائي لمشكلتك .. ولكن ما زلت لا أأمن بهذه الفكرة لأن التقرير في الأساس طباعة علي الورق .. لكن العلم أكبر من أي شخص .. لذلك أقول يجوز هناك حل أو حلول تخيلية Visual .. فأعتزر مرة أخريبالتوفيق Simble.zip تقديم بلاغ
بتاريخ: 18 مايو 200916 سنة comment_157285 اخي ممكن حضرتك تقول وصف الريبورت وعايز تعمل ايه بالظبط والجداول يعني حتى لو مثال لاني مش فهمك اوي وانا الحمد لله بتعمل بشكل جيد مع الريفكرسور في الريبورت ياريت مثال حضرتك عايز تنفذ إيه بالظبط ... يمكن ربنا يوفقنا ونلاقي حل تقديم بلاغ
بتاريخ: 18 مايو 200916 سنة comment_157332 المفروض أن الأخ حسام عايز يعمل Group شبية بـ Control Block ، بحيث أن يتم جلب البيانات من خلال Cursor ويتم إدراجة !!!في Form Builder بيتم إستخدام أمر Create_Record .. هو بقي عايز يعمل كدة ، مثال :نفرض أن لدينا بلوك عناصر مكون من TEXT1, TEXT2, TEXT3 ... وعندنا جدول EMP مكون من EMP_NO, EMP_NAME, EMP_SALARY ... المفروض علشان نعبي هذا البلوك بإستخدام الـ CURSOR يجب علينا الذهاب الي NEW-FORM أو NEW-BLOCK ويتم كتابة الكود التالي : DECLARE CURSOR CUR_EMP IS SELECT EMP_NO, EMP_NAME, EMP_SALARY FROM EMP; ID_SERIAL NUMBER; ID_NAME VARCHAR2(10); ID_SALARY NUMBER(10,3); BEGIN GO_BLOCK('BLODK1'); CLEAR_BLOCK; OPEN CUR_EMP; FETCH CUR_EMP INTO ID_SERIAL, ID_NAME, ID_SALARY; WHILE CUR_EMP%FOUND LOOP CREATE_RECORD; :TEXT1 := ID_SERIAL; :TEXT2 := ID_NAME; :TEXT2 := ID_SALARY; FETCH CUR_EMP INTO ID_SERIAL, ID_NAME, ID_SALARY; END LOOP; CLOSE CUR_EMP; EMD; / وبالطبع هذا الكود بإستخدام الـ FORM BUILDER ، ولكن السؤال هل يمكن عمل ذلك بإستخدام الـ Report Builder ؟؟؟؟شكراً تقديم بلاغ
بتاريخ: 19 مايو 200916 سنة كاتب الموضوع comment_157407 والله ياخ مصطفى انا تعبتك معاى كتير وجزاكم الله خيراً تاظاهر مفيش حاجة بالشكل دة حتى فى منتديات ال otn تنحو ومحدش عرف يعمل حاجة جزاكم الله خراً مرة اخرىواخى abdu1_far اشكرك على محاولة المساعدة تقديم بلاغ
بتاريخ: 19 مايو 200916 سنة comment_157450 بصراحة مفيش أي نوع من أنواع التقارير تعاملت معا تعمل ما ذكرتة ، ولكنني وجدت بعض الشكوك في طلبك هذا عند البحث عن جواب عنه ، لذلك أحببت أسيب الموضوع مفتوحعلي كل حال يمكنك أستخدام الأساليب المتاحة كمبدئياً لحين إيجاد حل مناسب لك أفضل من ذلكوالموضوع مفتوح للجميعبالتوفيق تقديم بلاغ
بتاريخ: 21 مايو 200916 سنة comment_157609 جزاكم الله خيرا ياخ مصطفى على الايضاحالاخ حسام ... الريبورت في الاول او في الاخر ماهو هو إلا اداة عرض ، يعني مرحلة نهائية من البرمجة ...اكرر للعرض فقطوبالتالي ... يتم استدعاءه من الفورم وبالتالي نستطيع اننا نعمل اللي حضرتك عايزه كله من خلال الشاشة قبل العرض أي قبل عرض الريبورتهو اولا جزاكم الله خيراً ... على الفكرة ، بس انا عندي سؤال بسيط ، أيه اللي ممكن تطلبه من الريفكيرسور في الريبورت ما نقدرش نعمله برمجيا من الفورم قبل استدعاء الريبورت ؟انا ممكن اتحكم في النتائج اللي راجعه من الريفكيرسور بما انها راجع بفانكشن ، ممكن ابني فانكشن تانية تحت في الداتا بيز ، تعمل اي ترانس أشكن انا عايزه بناءاص على نتائج الريف كيرسور واربط بينهم بداتا لينك فوق على الريبورت انا رأي والله أعلم ... ان الموضوع ممكن يتحل برمجيا ، قبل مرحلة العرض النهائي في الريبورت سواء بمعالجة الموضوع تحت في دالتابيز او بالفورمممكن حضرتك تدي مثال على اللي حضرتك عايز تعمله في الريبورت ونجرب نحلها مع بعض ... سواء عن طريق الريبورت مباشرة او بحل وسيط من خلال الفورمز والداتا بيزأسف للاطالة ... واعتذر ان اخطأت في معلومة او لم اجيد التوضيح تم تعديل 21 مايو 200916 سنة بواسطة abdu1_far تقديم بلاغ
بتاريخ: 21 مايو 200916 سنة كاتب الموضوع comment_157624 شكرا يعبدو على مشاركاتك انا كنت عايز اعمل لوب يرجعلى سطور معينة وكل سطر يرجعة اعمل علية لو ب تانى بعدد انا عايزةه وهكذا والحمد الله المشكلة اتحلت بس انا بتكلم عن المنطق العام لانها لو ودت هتفدينا فى تقارير معقدة ومسئلة انى اعمل ريف كيرسور ينادى فكشنز وهكذا هيقى التعديل بردك فى حيز ضيق لانك بردك هشتتغل فى حيز السطور ال هيرجعها الريف كيروسر بنفس الشكل الرجعهامسئلة عملها تظبيط المراد فى الشاشات الول فانا شايف ان اعمل تيبل temp احط فية حجتى وبعد ككدة اعرضها فكرة مش ظريفةوجزاك الله خيراً تقديم بلاغ
بتاريخ: 21 مايو 200916 سنة comment_157653 مسئلة عملها تظبيط المراد فى الشاشات الول فانا شايف ان اعمل تيبل temp احط فية حجتى وبعد ككدة اعرضها فكرة مش ظريفة هي فكرة مش وحشة ، بس لها إستخداماتها الخاصة وليس كل شيء !!!بمعني لو عندي جدول Emp وعايز أعرض شوية حقول منها علي أساس شرط معين ، فماذا أدرج السجلات في جدول ومن ثم أستخدم هذا الجدول ؟؟؟ومثال آخر ، لو عندي 3 جداول أرغب في إرجاع 3 حقول منهم ، فهل يعقل أن أصنع Insert لكل جدول في جدول آخر ومن ثم أرتجع من هذا الجدول ، طيب سؤال وما فائدة الـ Union ؟؟؟؟بالمناسبة الـ Union كويس ولكن في السجلات الضخمة بيكون ضعيف نسبياً ... بالضبط مثل علية التنظيف لجدول محدد Delete ، فبدلاً من حذف السجلات عمل له Drop ، هيكون أسرععلي فكرة أنا رديت عليك ، ولكن دون إيجاد سبب لكل هذا ، ما فكرتك أخ حسام ، هل لا ترغب في إفادتنا ؟؟؟شكراً تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.