|
|
مواضيع المطورين الأخرى مواضيع المطورين التي لا تنتمي الى أي من التصنيفات السابقة مثل لغة الديكستريتي (Dexterity) والأدوات التطويرية الأخرى (eConnect , Integration Maneger ,VS2005 for GP...etc.) |
| أدوات الموضوع | انواع عرض الموضوع |
15-Jan-2012, 01:22 PM | #1 |
مشرف منتدى المطورين | Text File in Dexterity في هذا الموضوع سوف نتطرق الى كيفية التعامل مع Text File ضمن الدكسترتي واخترت هذا الموضوع من ضمن مشروع اعمل عليه حاليا ومن الجيد في البداية ان نتطرق الى الفائدة العملية من التعامل مع Text File ؟ ومثل ما يقال ان الحاجة ام الاختراع ولكن بالنسبة للمطورين ان متطلبات العميل هي التي تدفع الى استخدام طريقة معينه بذاتها . مثلا يمكن استخدام Text File للقيام بعملية Integration بين الجريت بلينز وتطبيقات اخرى حيث يمكن تكوين ملف نصي يحتوي المعلومات المطلوبة من الجريت بلينز ويتم ارسال هذا الملف الى التطبيق الثاني والذي بدوره سوف يعيد المعلومات على شكل ملف نصي وهذه المرة على الجريت بلينز ان يسترجع المعلومات من الملف النصي ثم يقوم بتحديث النوافذ او الجداول تبعا للسيناريو المطلوب من قبل العميل. وقد يقول قائل ان هذه ليست الطريقة المثلى لعمل Integration بين الجريت بلينز والتطبيقات الاخرى حيث من الافضل استخدام XML Files و eConnect بدل من استخدام Text File وهذا صحيح ولكن Requirement قد تدفعك الى خيارات غير متوقعة كما نوهت في البداية. هناك استخدام اخر لدوال الملفات النصية حيث يمكنك استخدامها لبناء Macro من الصفر او لتعديل ماكرو موجود حيث ان ملف الماكرو يمتلك صيغة نصية يمكن التعامل معها على انها نص عادي. __________________ GP Techno-Functional Consultant |
15-Jan-2012, 01:24 PM | #2 |
مشرف منتدى المطورين | Text File Libraries In Dexterity توجد هناك مكتبتين في الدكسترتي للتعامل مع الملفات النصية من النوع tab- or comma-delimited text file : Import function library Text file function library الفرق بين المكتبين يتعلق بالمواصفات التقنية للملف النصي حيث يمكن استخدام المكتبة الاولى عندما يكون السجل او السطر الواحد ضمن الملف النصي اكبر من 2048 رمز وعندما يكون طول الحقل الواحد ضمن هذا السجل اكثر من 255 رمز وهذه المكتبة تستخدم للقراءة فقط من الملفات النصية. وهي تحتوي على اربع ايعازات. اما المكتبة الثانية فتحتوي على سبع ايعازات مختلفة للتعامل مع الملفات النصية التي تكون مواصفاتها مخالفة لما ذكرنا مع المكتبة الاولى وهذه المكتبة تحتوي على ايعازات للقراءة والكتابة بعكس المكتبة الاولى. طبعا يمكن الدمج بين المكتبتين حيث ان المكتبة الاولى تقراء البيانات بشكل اسهل من المكتبة الثانية ويمكن استخدام المكتبة الثانية لكتابة الملفات النصية. __________________ GP Techno-Functional Consultant |
15-Jan-2012, 01:26 PM | #3 |
مشرف منتدى المطورين | Import function library وهي تحتوي على الايعازات التالية : كود: Import_CloseFile () Import_GetNextField () Import_GetNextRecord () Import_OpenFile () كود: Import_OpenFile (product_ID, pathname, delimiter type, num_fields) البارامتر الثاني وهو عبارة نصية تشير الى مسار الملف الكامل مع اسم الملف ويجب ان يكون المسار بصيغة Generic Path وسوف نوضح هذه النقطة لاحقا. البارمتر الثالث وهو عبارة عن قيمة صحيحة يستعاض عنها بثوابت لتحديد نوع delimiter المستخدم من قبل الملف النصي: COMMAFILE: Comma delimiter TABFILE : Tab delimiter البارامتر الرابع والاخير وهو قيمة صحيحة تعيدها تمثل عدد الحقول Fields في السطر الاول من الملف النصي وهنا يتم تحديد عدد الحقول اعتمادا على تكرار الفاصلة التي حددناها في البارمتر السابق اما اذا كانت القيمة صفر فهذا يعني حصول خلل وان الملف لم يفتح بالصورة الصحيحية. ولكي تكون الفكرة واضحة سوف نأخذ المثال التالي عن شكل او تركيب الملف النصي الذي يستخدم لأدخال البيانات الى الجريت بلينز: كود: Po Number, Item Number, Item Description, QTY PO900, ITEM1, Item1 Test, 10 PO900, ITEM2, Item2 Test, 20 PO900, ITEM3, Item3 Test, 12 __________________ GP Techno-Functional Consultant |
15-Jan-2012, 01:27 PM | #4 |
مدير عام منتديات جريت بلينز العربية | ممتاز أخي همام ... متابعون معك __________________ Monzer Osama Saudia Arabia - Jeddah 00966501826235 Microsoft Certified Business Management Solutions Professional Microsoft Certified Trainer |
15-Jan-2012, 01:29 PM | #5 |
مشرف منتدى المطورين | الله يخليك اخي منذر __________________ GP Techno-Functional Consultant |
15-Jan-2012, 01:30 PM | #6 |
مشرف منتدى المطورين | هذا ما سوف يكون عليه الملف النصي المفترض قراءة البيانات منه الى برنامج الجريت بلينز طبعا السطر الاول فقط لتوضيح تركيب البيانات Data Format في التطبيق الفعلي سوف يكون غير موجود. المهم الان اذا فتحنا هذا الملف الافتراضي بشكل صحيح بواسطة الدالة السابقة فمن المفترض ان تكون القيمة المعادة من البارمتر الرابع هي 4 لانه لدينا اربع حقول تميز بينها الفاصلة Comma . اخيرا القيمة المعادة بواسطة هذه الدالة هي unique file ID وهو معرف فريد يشير الى الملف النصي المفتوح وتحتاج اليه باقي الدوال في هذه المكتبة . اذا حصل خلل اثناء فتح الملف سوف تعاد القيمة Zero . ملاحظة اخيرة عند قيامك بفتح ملف نصي بواسطة الدالة Import_OpenFile يجب عليك اغلاق هذا الملف بواسطة الدالة Import_CloseFile سواء تم فتح الملف بشكل صحيح او حصل خلل في عملية فتح الملف لتجنب ظهور Bugs في مشروعك. اخيرا نختم بمثال عن الشفرة البرمجة : كود: local integer l_num_fields,l_file_ID,l_result,l_index,l_delimiter; l_delimiter = COMMAFILE; {Comma delimited.} if getfile ("Choose an import file:", TEXTFILE, l_pathname) then l_file_ID = Import_OpenFile (BCI_PROD_ID, l_pathname, l_delimiter, l_num_fields); {Check for errors opening the file} if (l_file_ID = 0) or (l_num_fields = 0) then {The file couldn’t be opened} warning "There was an error opening the text file"; {Release the file ID} l_result = Import_CloseFile (l_file_ID); abort script; end if; __________________ GP Techno-Functional Consultant |
16-Jan-2012, 02:51 PM | #7 |
مشرف منتدى المطورين | بالنسبة الى الدالة getfile فهي تستخدم لاظهار صندوق حوار تطلب من المستخدم ان يحدد الملف المراد فتحه وتمتلك هذه الدالة ثلاث برامترات الاول هو محتوى الرسالة التي سوف تظهر ضمن صندوق الحوار والثاني هونوع الملف المراد التعامل معه والبارامتر الثالث هو المسار والذي سوف تقوم الدالة بتحديده تبعا لمسار الملف الذي اختاره المستخدم وهذا المسار سوف يكون بصيغة Generic Path والذي تحتاج اليه ضمن الدالة Impor_OpenFile واخيرا تعيد الدالة قيمة منطقية للدلالة على نجاح العملية من عدمها كان المفروض ان اكمل شرح باقي الدوال اليوم ولكن نسيت ان احمل الملف معي انشاء الله غدا سوف اكمل شرح باقي الدوال. __________________ GP Techno-Functional Consultant |
17-Jan-2012, 08:03 AM | #8 | ||
عضو مميز تاريخ التسجيل: Jun 2007 المشاركات: 162
| جهد رائع وطيب اخوي همام الله يديك العافية والصحة بس الله يحفظك إيش الشئ اللي أجبرك في مشروعك استخدام ملفات التيكست بدلا من الإي كوننيكت ؟ وانت ما شاء الله عليك محترف E-Connect? على العموم جهود مباركة والله يقويك | ||
17-Jan-2012, 09:05 PM | #9 | |
مشرف منتدى المطورين | اقتباس:
شكرا اخي على مشاركتك ونتمنى تواصل باقي الاعضاء معنا لكي تكتمل الفائدة من المواضيع المطروحة لان الاسئلة التي قد يطرحها الاعضاء سوف تسلط الضوء على جوانب لم يتم التطرق اليها ضمن الموضوع وبتالي تكون الفائدة اعم واشمل. __________________ GP Techno-Functional Consultant | |
19-Jan-2012, 06:42 PM | #10 |
مشرف منتدى المطورين | الايعاز Import_CloseFile ويستخدم لأغلا ق الملفات النصية التي تم فتحها بواسطة العبارة Import_OpenFile والصيغة العامة لهذه الدالة هي : كود: Import_CloseFile (file_ID) الدالة Import_GetNextField() وتستخدم لاسترجاع قيمة الحقل الحالي ثم الانتقل وبشكل ذاتي الى الحقل التالي والصيغة العامة لهذه الدالة هي : كود: Import_GetNextField (file_ID) اخيرا الدالة Import_GetNextRecord وهي تستخدم للتنقل بين السجلات Records ضمن الملف النصي وكل سجل سوف يكون ممثل بسطر نصي لذا سوف يتم التعرف على نهاية السجل بواسطة حرف الحاملة Carriage الصيغة العامة لهذه الدالة هي : كود: Import_GetNextRecord (file_ID) __________________ GP Techno-Functional Consultant |
يتصفح الموضوع حالياً : 1 (0 عضو و 1 ضيف) | |
أدوات الموضوع | |
انواع عرض الموضوع | |
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
مساعده في Dexterity | y85.fox | مواضيع المطورين الأخرى | 4 | 19-Jan-2015 01:31 PM |
تصغير حجم قاعدة البيانات بحذف الـ Log File | Monzer Osama | منتدى أكواد ومواضيع الـ SQL Server | 20 | 15-Oct-2013 10:28 AM |
Dexterity | هاني | مواضيع المطورين الأخرى | 22 | 18-May-2013 08:54 AM |
Question related to Dexterity | mkhatib | مواضيع المطورين الأخرى | 2 | 05-May-2012 09:29 AM |
Triggers in Dexterity | humam | مواضيع المطورين الأخرى | 6 | 29-Apr-2012 04:18 AM |