ابن الجزيرة بتاريخ: 22 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 22 نوفمبر 2004 أنا أستخدم حاليا ريبورت بيلدر الإصدارة رقم 6.0.5.35.0 اريد تحويل مخرجات الريبورت إلى excel file المشكلة هي أنه في هذه الإصدارة من الريبورت بيلدر يقوم بتكرار العنواني مع تكرار السطور . لدي طريقة لعمل ذلك لكنها معقد نوعا ما أريد طريقة بسيطة لعمل ذلك أو أي إجراء آخر ممكن عمله لوقف تكرار سطور العناوين اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafa76 بتاريخ: 22 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 22 نوفمبر 2004 لماذا هذا البخل في نشر الفائدة ضع طريقتك حتى تستفيد وحتى تفادوالى الامام جميعاً اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
NewSun بتاريخ: 29 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 29 نوفمبر 2004 الأخ الكريم بن الجزيرة لماذا لاتعرفنا بطريقتك ؟...نريد أن نستفيدوجزاك الله عنا خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
m_fighter بتاريخ: 30 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2004 Here's some code to dump the contents of a block into Excel. You may want to uncomment the commented-out sections if you want the functionality of being able to save the workbook that gets created. (I copied it a while back from this forum, so am not claiming any credit for it, or for the lack of readability!!) PROCEDURE pr_Forms_to_Excel(p_block_name IN VARCHAR2 DEFAULT NAME_IN('system.current_block')) IS -- Declare the OLE objects application OLE2.OBJ_TYPE; workbooks OLE2.OBJ_TYPE; workbook OLE2.OBJ_TYPE; worksheets OLE2.OBJ_TYPE; worksheet OLE2.OBJ_TYPE; cell OLE2.OBJ_TYPE; range OLE2.OBJ_TYPE; range_col OLE2.OBJ_TYPE; -- Declare handles to OLE argument lists args OLE2.LIST_TYPE; -- Declare form and block items form_name VARCHAR2(100); f_block VARCHAR2(100); l_block VARCHAR2(100); f_item VARCHAR2(100); l_item VARCHAR2(100); cur_block VARCHAR2(100) := NAME_IN('system.current_block'); cur_item VARCHAR2(100) := NAME_IN('system.current_item'); cur_record VARCHAR2(100) := NAME_IN('system.cursor_record'); item_name VARCHAR2(100); baslik VARCHAR2(100); row_n NUMBER; col_n NUMBER; filename VARCHAR2(100); BEGIN -- Start Excel application:=OLE2.CREATE_OBJ('Excel.Application'); OLE2.SET_PROPERTY(application, 'Visible', 'True'); -- Return object handle to the Workbooks collection workbooks:=OLE2.GET_OBJ_PROPERTY(application, 'Workbooks'); -- Add a new Workbook object to the Workbooks collection workbook:=OLE2.GET_OBJ_PROPERTY(workbooks,'Add'); -- Return object handle to the Worksheets collection for the Workbook worksheets:=OLE2.GET_OBJ_PROPERTY(workbook, 'Worksheets'); -- Get the first Worksheet in the Worksheets collection -- worksheet:=OLE2.GET_OBJ_PROPERTY(worksheets,'Add'); args:=OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, 1); worksheet:=OLE2.GET_OBJ_PROPERTY(worksheets,'Item',args); OLE2.DESTROY_ARGLIST(args); -- Return object handle to cell A1 on the new Worksheet go_block(p_block_name); baslik := get_block_property(p_block_name,FIRST_ITEM); f_item := p_block_name||'.'||get_block_property(p_block_name,FIRST_ITEM); l_item := p_block_name||'.'||get_block_property(p_block_name,LAST_ITEM); first_record; LOOP item_name := f_item; row_n := NAME_IN('SYSTEM.CURSOR_RECORD'); col_n := 1; LOOP IF get_item_property(item_name,ITEM_TYPE)<>'BUTTON' AND get_item_property(item_name,VISIBLE)='TRUE' THEN -- Set first row with the item names IF row_n=1 THEN baslik:=NVL(get_item_property(item_name,PROMPT_TEXT),baslik); args:=OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, row_n); OLE2.ADD_ARG(args, col_n); cell:=OLE2.GET_OBJ_PROPERTY(worksheet, 'Cells', args); OLE2.DESTROY_ARGLIST(args); OLE2.SET_PROPERTY(cell, 'Value', baslik); OLE2.RELEASE_OBJ(cell); END IF; -- Set other rows with the item values args:=OLE2.CREATE_ARGLIST; OLE2.ADD_ARG(args, row_n+1); OLE2.ADD_ARG(args, col_n); cell:=OLE2.GET_OBJ_PROPERTY(worksheet, 'Cells', args); OLE2.DESTROY_ARGLIST(args); IF get_item_property(item_name,DATATYPE)<>'NUMBER' THEN OLE2.SET_PROPERTY(cell, 'NumberFormat', '@'); END IF; OLE2.SET_PROPERTY(cell, 'Value', name_in(item_name)); OLE2.RELEASE_OBJ(cell); END IF; IF item_name = l_item THEN exit; END IF; baslik := get_item_property(item_name,NEXTITEM); item_name := p_block_name||'.'||get_item_property(item_name,NEXTITEM); col_n := col_n + 1; END LOOP; EXIT WHEN NAME_IN('system.last_record') = 'TRUE'; NEXT_RECORD; END LOOP; -- Autofit columns range := OLE2.GET_OBJ_PROPERTY( worksheet,'UsedRange'); range_col := OLE2.GET_OBJ_PROPERTY( range,'Columns'); OLE2.INVOKE( range_col,'AutoFit' ); OLE2.RELEASE_OBJ( range ); OLE2.RELEASE_OBJ( range_col ); /* -- Get filename and path args := OLE2.CREATE_ARGLIST; OLE2.ADD_ARG( args, p_block_name ); OLE2.ADD_ARG( args,'Excel Workbooks (*.xls, *.xls'); filename := OLE2.INVOKE_CHAR( application,'GetSaveAsFilename',args ); OLE2.DESTROY_ARGLIST( args ); */ /* -- Save as worksheet IF NVL(filename,'0')<>'0' THEN args := OLE2.CREATE_ARGLIST; OLE2.ADD_ARG( args,filename ); OLE2.INVOKE( worksheet,'SaveAs',args ); OLE2.DESTROY_ARGLIST( args ); END IF; */ -- Close workbook --OLE2.INVOKE( workbook ,'Close'); -- Release the OLE objects OLE2.RELEASE_OBJ(worksheet); OLE2.RELEASE_OBJ(worksheets); OLE2.RELEASE_OBJ(workbook); OLE2.RELEASE_OBJ(workbooks); --OLE2.INVOKE(application, 'Quit'); OLE2.RELEASE_OBJ(application); -- Focus to the original location go_block(cur_block); go_record(cur_record); go_item(cur_block||'.'||cur_item); END; منقول من :http://forums.oracle.com/forums/forum.jsp?forum=82 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
m_fighter بتاريخ: 30 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2004 السلام عليكمراجع هذه الوصلات وستجد بها شرح بالصورة.ولا تنسوا الدعواتhttp://www.oracle.com/technology/products/...el/viewlet.htmlhttp://forums.oracle.com/forums/thread.jsp...art=0&trange=15 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
m_fighter بتاريخ: 30 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2004 http://forums.oracle.com/forums/search.jsp...&user=&range=10 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ابن الجزيرة بتاريخ: 30 نوفمبر 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2004 شكرا جزيلا لكم وشكر خاص للأخ M_fighter ليس في الموضوع بخل ولا شيء ولكن كنت مشغول جد ا الطريق تتلخص ياشباب في أنه لمنع التكرار نضع الheadings في reapeating frame مبني على أساس sql statment تقوم بإرجاع سطر واحد فقط ونستخدم فيها الجدول dual يعني إذا كان عندي headings أو عنواين مثل location ,employee name ,employee salary أكتب ال sql statment بهذا الشكل select 'location','employee name','employee salary' from dual وعندما أختار ال source حق ال repeating frame أختار هذي الsql statment حيث سيكون عدد الأسطر المرجعة سطر واحد فقط . بعده ننشي الحقول داخل الrepeating frame ويكون الsource حقها الأعمدة التي أخترناها في الsql statment ولكي يسبق حقل حقل أخر وتكون في نفس العمود في الexcel sheet يجب أن تكون كل الحقول فوق بعض وتبدأ من نفس المكان ونفس حجم الطول والإرتفاع ولكي تضهر في نفس السطر يعني يجب أن يكون كل واحد جنب الثاني ونفس حجم الطول والإرتفاع ولا يكون واحد أعلى من الثاني لن الexcel سيعتبر أنه سطر جديد هذا هو الhelp الموجود في الreport builder Delimited output enables you to specify a delimiter (a character or string of characters) to separate the data in your report output. Using this feature, you can create report output that is easily imported into spreadsheet utilities, such as Microsoft Excel.You can specify the delimiter in either of the following ways:n on the command line via the DELIMITER parameter.n in the Delimited Output dialog box via the Delimiter option. Note that this dialog box is only available in the US English version of Report Builder Release 6.0.When you generate delimited output, you can further distinguish the cells by using a cell wrapper. A cell wrapper can consist of any series of characters, such as a comma or parentheses.For example, if the data in your report output include the same character as the delimiter (e.g. a comma), you can use the parentheses cell wrapper to distinguish each cell:(1,000,000),(3,6000),(543),(2,003,500)…Usage NotesWhen you generate delimited output, the data displays according to the positions of the objects in the Layout Model view. If you place A above or to the left of B (where A and B are any boilerplate or field objects, Report Builder displays each instance of A before each instance of B in every line of output.When you generate delimited output, the data displays according to the positions of the objects in the Layout Model view. n If you place A above or to the left of B (where A and B are any boilerplate or field objects, Report Builder displays each instance of A before each instance of B in every line of output. If you create a frame that contains a boilerplate object (A) and encloses a repeating frame that contains a field object (, each instance of A displays with each instance of B. In the previous layout, if you add another frame that contains a boilerplate object © and encloses another repeating frame that contains a field object (D), A displays for every instance of B, and then C displays for every instance of D. If you create a matrix in your report, be sure to align your objects carefully according to the grid in the Layout Model view. If the objects are not aligned, Report Builder may interpret the extra space as an extra row or column and disrupt your report output. If you create a boilerplate object outside of a matrix, each instance of the boilerplate repeats with every row (not column) of the matrix. Note that boilerplates contained in the matrix will not be repeated will field objects outside of the matrix. اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 30 نوفمبر 2004 تقديم بلاغ مشاركة بتاريخ: 30 نوفمبر 2004 السلام عليكم ورحمة الله شكرا لكم كثيرا لهذه المشاركة الفعالة .شكرا للأخ / m_fighter على عرض الcode مشاركتى بسيطه جدا وهى انشاء ال form فقط للمستخدم scott/tigerونأمل من الأخ / أبن الجزيرة وضع التقرير الخاص به لتعم الفائدة على الجميع وشكرا له مقدما ..مرفق الform PR_FORMS_TO_EXCEL.fmb اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
ابن الجزيرة بتاريخ: 8 ديسمبر 2004 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 8 ديسمبر 2004 يا شباب ماأرغب فيه هو تحويل الريبورت نفسه بنفس التنسيق الموجود فيه إلى أكسل شيت . تعلمون أنه من الممكن أن يكون الout put حق الريبورت على شكل pdf file أو html أو word . الذي أرغب فيه أنا أن يكون مخرجات الريبورت على شكل excel sheet . الطريقة التي أستخدمه أنني أضع الlables في repeating fram يعتمد على query الناتج حقه سطر واحد فقط مثل select * from dual فهذا الquery الأخير يمنع تكرار العناوين الذي يحصل عادة عندما نقوم بجعل مخرجات الريبورت على شكل exel sheet وهذ الطريقة متعبة وتأخذ الكثير من الوقت إذا كان عندك عدد كبير من ال lables لأنك ستظطر لجعل كل label لديك في repeating fram كما أنه أحيانا قد لا تنجح هذه الطريقة اذا كان الريبورت معقد ياليت اللي عنده طريقة أبسط يرشدنا للطريقة شاكرا لكم تفاعلكم ومعلوماتكم القيمة اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 26 مايو 2005 تقديم بلاغ مشاركة بتاريخ: 26 مايو 2005 السلام عليكم ورحمة الله وبركاتههل يوجد طريقة اخرى مباشرة لحل هذا الموضوع مع DEVELOPER 6 i حيث لدى تقرير من مصفوفه Matrix واريد وضعه فى ملف Excelوعدد الاعمدة قد يتجاوز الصفحة الواحدة ( عرضيا ) شكرا مقدما اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الهاشمي بتاريخ: 21 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 21 يوليو 2005 الاخ /امجداشكرك على الملف ولكن هل ممكن وضع اكثر من بلك على نفس الاكسل شيت لاني حاولت التعديل ولكن كل بلك طلع في ملف مستقلتحياتياللهم صل على سيدنا محمد وعلى ال سيدنا محمد اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
أسامة موسى بتاريخ: 21 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 21 يوليو 2005 الاخ الكريم يوجد برنامج يسهل عليك كل المعاناة وما عليك سوى كتابة جملة ال sql في البرنامج ثم يظهر لك البيانات وتقدر تصديرها الى excel اسم البرنامج query reportتستطيع انزاله من الرابط التاليhttp://www.allroundautomations.com/queryreporter.htmlوتستطيع استخدام toad ليقوم بالمهمه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
الهاشمي بتاريخ: 23 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 23 يوليو 2005 اخي العزيز لك الشكر الجزيل ولكن الطريقه المذكوره في حالة كان المستخدم هو المبرمج ولكن ما اريده هو اعطاء المستخدم النهائي هذه التقارير ليحولها للاكسل من خلال الفورم او التقرير ولك جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
IGBSpeed بتاريخ: 23 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 23 يوليو 2005 أخي الكريم توجد طريقة قد قرأتها في أوراكل 10 تلقائياً تعطيك هذه الميزة تلقائياً ،، طبعاً للعميل وليس للمبرمج . وسوف أحاول أن أضع الرابط الخاص بها .http://www.oracle.com/webapps/dialogue/dlg...=3302697&Act=14 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
IGBSpeed بتاريخ: 23 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 23 يوليو 2005 وهذا هو الشرح بالتفصيل الممل مع الصور قم بالنقر على العدسة لتوضيح الصور :طبعاً إشترك أولاً في الموقع (الإشتراك مجاني) ثم تصفحها : http://www.oracle.com/technology/obe/obe10...mldb/htmldb.htm اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amgad بتاريخ: 23 يوليو 2005 تقديم بلاغ مشاركة بتاريخ: 23 يوليو 2005 السلام عليكم ورحمة الله ,,يمكنك استخراج التقرير فى شكل html اولا ثم من المتصفح.... وباستخدام المفتاح الايمن لل mouse فى المتصفح .. يمكن تحويلة فى شكل ملف execl المطلوب عند تصميم التقرير ان يكون هناك محاذاه افقيه للحقول المتشابهة على سطر واحد وايضا مطلوب تنسيق رأسى للاعمدة المتشابهة . اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
المغربي بتاريخ: 14 أغسطس 2005 تقديم بلاغ مشاركة بتاريخ: 14 أغسطس 2005 بسم الله الرحمن الرحيميا اخ ابن الجزيرة ممكن لو تكرمت تضيف مثال لريبورت و نقدر نعمله download علشان الصورة توضح اكثرجزاك الله خيرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
nedalna بتاريخ: 2 مايو 2006 تقديم بلاغ مشاركة بتاريخ: 2 مايو 2006 مشكورررررررررررررررررررررررررررررررر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 3 مايو 2006 تقديم بلاغ مشاركة بتاريخ: 3 مايو 2006 الرد متخر لكن عناد بشاركهناك طريقتينالاولى:ان تجعل بعد كل عمود من الاعمدة الخارجة في التقرير علامة ^ثانيا من PARAMETER تقوم باظهار التالي:DISTYPE وتقوم باختيار FILEDISNAME تحدد مكان الحفظ مثلا c:\emp_jobs_descr.txtDISFORMAT الى WIDE500 في حالة التقارير العريضة والا اجعله كماهوMODE الى CHARACTERوتقوم بتغيير خصائص التقرير بحيث يسمح لقراءته على شكل CHARACTER وتزيد في عرض التقريروتقوم بتشغيل التقرير بالطريقة السابقة ويظهر لك شاشة الطباعة لكنه سيطبعه الى ملف ليس الى طابعة لذلك لا تخفالان اذهب الى الاكسل وقم باختيار فتح ملف واختر النوع ملفات نصية وقم بقتح الملف الذي قمت بحفظه ستظهر لك شاشة خيارات اختر محدد واضغط على التالي من المحددات اختر غير ذلك وقم بوضع علامة ^ ستجد انه وضع بدل علامة ^ اعمدة واضغط على انهاء ستجد تقريرك الذي قمت بعمله بالاوراكل على الاكسلالطريقة الثانية برنامج اسمه PAPERLESS PRINTER يقوم بطباعة اي ملف او اي تقرير على الاكسل وعدة خيارات اخرى وهو يعمل كطابعة اي تنسى جميع الخطوات السابقة وتشغل التقرير عادي جدا اختر ملف ثم طباعة ستجد انه تم اضافة طابعة جديدة باسم البرنامج والباقي بسيط جدا ولو هناك اي استفسارات انا موجود اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
خديجة بتاريخ: 6 مايو 2006 تقديم بلاغ مشاركة بتاريخ: 6 مايو 2006 الرد متخر لكن عناد بشاركهناك طريقتينالاولى:ان تجعل بعد كل عمود من الاعمدة الخارجة في التقرير علامة ^ثانيا من PARAMETER تقوم باظهار التالي:DISTYPE وتقوم باختيار FILEDISNAME تحدد مكان الحفظ مثلا c:\emp_jobs_descr.txtDISFORMAT الى WIDE500 في حالة التقارير العريضة والا اجعله كماهوMODE الى CHARACTERوتقوم بتغيير خصائص التقرير بحيث يسمح لقراءته على شكل CHARACTER وتزيد في عرض التقريروتقوم بتشغيل التقرير بالطريقة السابقة ويظهر لك شاشة الطباعة لكنه سيطبعه الى ملف ليس الى طابعة لذلك لا تخفالان اذهب الى الاكسل وقم باختيار فتح ملف واختر النوع ملفات نصية وقم بقتح الملف الذي قمت بحفظه ستظهر لك شاشة خيارات اختر محدد واضغط على التالي من المحددات اختر غير ذلك وقم بوضع علامة ^ ستجد انه وضع بدل علامة ^ اعمدة واضغط على انهاء ستجد تقريرك الذي قمت بعمله بالاوراكل على الاكسلالطريقة الثانية برنامج اسمه PAPERLESS PRINTER يقوم بطباعة اي ملف او اي تقرير على الاكسل وعدة خيارات اخرى وهو يعمل كطابعة اي تنسى جميع الخطوات السابقة وتشغل التقرير عادي جدا اختر ملف ثم طباعة ستجد انه تم اضافة طابعة جديدة باسم البرنامج والباقي بسيط جدا ولو هناك اي استفسارات انا موجود68132[/snapback] السلام عليكم أخي الكريم,اذا ممكن تنزل نموذج تقرير مضاف الى أعمدته هذه الحركة ^ أكون شاكرة, اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
zizo_299 بتاريخ: 7 مايو 2006 تقديم بلاغ مشاركة بتاريخ: 7 مايو 2006 الملف غير صالح للتحميل اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Amateur بتاريخ: 10 مايو 2006 تقديم بلاغ مشاركة بتاريخ: 10 مايو 2006 معليش على التأخيرلو افترضنا انك راح تستعلمين مثلا عن جدول الموظفين راح يكون طريقة الاستعلام بالشكل هذا select emp_id,'^', emp_name_l from employee بحيث ان العلامة ^ تكون بعد كل عمود من الاعمدة ليتم فصل الاعمدة عن بعضها في التقرير والنتيجة را تكون بالشكل التالي emp_id ^ emp_name_l سكون كل سجل بهذا الشكل وبالنسبة لارفاق تقرير من المصعب لان الجداول مختلفة فكيف سيعمل التقرير وآسف على التاخير اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
حسام فتحي فيصل بتاريخ: 19 ديسمبر 2019 تقديم بلاغ مشاركة بتاريخ: 19 ديسمبر 2019 ملف فيديو شرح https://www.4shared.com/get/I0DxFWwbiq/__________onyx_pro_____-__.html اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
محمد علي تامر بتاريخ: 23 ديسمبر 2019 تقديم بلاغ مشاركة بتاريخ: 23 ديسمبر 2019 حد يفهماني اعمل ايه اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.