الحلول غير البرمجيه: عرض الايام منذ اخر تغيير ل# عنصر قائمه SharePoint

هام: تمت ترجمة هذه المقالة ترجمة آلية، راجع إقرار إخلاء المسؤولية. يرجى الاطلاع على النسخة الإنجليزية من هذه المقالة. هنا للرجوع إليها.

20 / 9 / 2011 3:01 مساء

عن طريق جويسي شعبان، لانتيك

ملاحظة: هذه المقاله جزءا من مجموعه من المنشورات من اربع سنوات ل# المدونه الحصول علي النقطه ل# المستخدمين النهائيين SharePoint.

نظره عامه: مخصص التاخر التقارير ب# واسطه ايه تعليمات برمجيه

من المرات المطلوب القطع الوظيفيه ل# موقع SharePoint تقرير فتره تاخر ل# المهام او عناصر القائمه. ب# عباره اخري، ما هو عدد الايام / الاشهر يحتوي علي انه تم منذ اخر تعديل علي عنصر القائمه هذا؟

علي السطح يبدو ذلك طلب بسيط جدا. ، ف# لدينا التواريخ ل# العناصر التي يتم انشاؤها و# تعديلها، لدينا القدره علي تخزين عندما يتم تنفيذها من خلال مستقبلات الاحداث علي بعض التغييرات علي عناصر تواريخ مخصصه. نحن لديك الاعمده المحسوبه حيث يمكننا تضمين الصيغ يشبه Excel ل# العمل مع المعلومات الخاصه بنا. هذا يبدو ك# اقتراح اعاده توجيه العروض مباشره. نحن انتقاء حقل تاريخ و# انشاء عمود محسوب، و# ثم قم ب# صيغه شيء ما بين الاسطر [داتيفيلد]-[اليوم]. اه، غير ذلك السريع علي الرغم من ذلك! ك# اي شخص لديه حاول هذه المهمه "بسيط" يعرف، تحاول استخدام الشكل [اليوم] في مشاكل اسباب عمود محسوب. محاوله ادراج [اليوم] في موقعك المحسوبه مربع الصيغه ل# العمود ستعطيك رساله خطا شيء كما يلي:

رسالة خطأ

لم يعد هذا؟ حسنا، انه يجب القيام بها ب# استخدام حساب الطريقه حساب الاعمده.

دعنا نلق صيغه بسيطه ك# مثال:

= IF ( [Column1] < = [Column2], "موافق" او "غير موافق")

كل هذا تفيد ب# ان يتم التي اذا كانت Column1 اقل من او يساوي Column2، ثم اعرض موافق، و# الا العرض "غير موافق". هذه صيغه اساسيه الي حد ما نموذجيه العمود محسوب و# يكون افتراض اساسيه حول عنصر القائمه الذي يحتوي علي هذه الاعمده: قيم العمود 1 و# العمود 2 لن يكون ب# مقدورك تغيير دون حدث تحديث علي عنصر القائمه.

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

الان لم يتم في الاجتماع حيث يمكنهم قرر ان هذا هو الطريقه التي حساب اعمده يقوم وظيفه، و# مع ذلك، اذا كان ل# جعل guess دقيقه افتراض انها تعمل هذه الطريقه ل# الحصول علي اداء. تخيل اذا كان لديك قائمه ب# العناصر الالاف متعدده، كل منها احتوي عمود محسوب الحاجه تحديث "بث". يعني ذلك الذي بعض اليه، ربما مهمه مؤقت، يتعين عليك التكرار خلال كل العناصر التي تحتوي عليها تلك العمود المحسوب افيري غالبا ما و# تحديث قيمته. هذا يمكن ان تكون جدا تاكسينج فيما يتعلق ب# الاداء اذ مع عمليات النشر اكبر هذه المهمه قد استمرار قيد التشغيل و# تغيير الاشياء. هذا هو guess فقط، و# لكن يجعل ستلاحظ المناسب اذا كنت تعتقد حوله.

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

قد رايت الاخرين استخدام JavaScript الذكي ل# كتابه القيم الي الصفحه. ذلك مناسبا ايضا، و# لكنني العروض كميه كاتيجوريكالي من برنامج نصي عميل عند يمكن تجنب.

تطبيق:

ل# ذا ما يجب ف# عله؟ الاعمده المحسوبه وجودك خارج السؤال ل# ذا تسمي دالات "متغيره" مثل اليوم. من الممكن ان اننا قد تطوير بعض التعليمات البرمجيه المخصصه يعتني ب# هذا ل# الينا ك# "عمود المحسوبه"، مهمه المؤقت، او جدوله عمليه ل# تاتي علي طول و# تحديث كل عنصر واحد يحتاج الي هذه العمليه الحسابيه التي اجريت. التي احضار الينا الرجوع الي مشكله الاداء المذكوره في الفقره الاخيره علي الرغم من ذلك، و ب# الاضافه الي ذلك من حل بريتلي التي ستكون خاصه جدا ل / القائمه / عمود الموقع المطلوب. في اعلي هذه المشاكل اثنين، قد يتعين عليك الانتقال العثور نيردي guy، مثل نفسي، يعرف كيفيه التعليمات البرمجيه و# اغراء له ب# تطوير هذا الحل لك ايضا. و# لكن هناك طريقه اسهل!

اذا كنت ستتمتع ب# الحقوق ل# انشاء حقول و# تحرير الصفحات في موقعك، و# كان قليل من المعارف حول XSLT و# انشاء طرق العرض، يمكنك وضع معا قالب XSL التي يمكن تضمينها في طريقه عرض قائمه و# امانه ب# حساب قيمه بك كل مره يتم طلب الصفحه. ازاله الخاصه بنا اهميه عبر الاداء هذا السيناريو، و# لا يتطلب التعليمات البرمجيه المخصصه ل# يتم تطويرها و# نشرها عبر علي حل ل# المشكله.

المثاليه. وب# التالي كيف يمكننا القيام ب# ذلك؟

  1. انشاء او حدد الحقل الذي سيعمل ك# مصدر الخاصه بنا. يجب ان يكون نوع تاريخ.

  2. انشاء حقل الخاصه بنا سيعمل ك# عنصر نائب ل# قيمه يتم حسابها.

  3. اضافه كل من هذه الحقول الي نوع محتوي و# اضافه نوع المحتوي الي قائمه.

  4. انشاء طريقه عرض ل# هذه القائمه التي تحتوي علي اعمده المصدر و# العنصر النائب.

  5. تحميل قالب XSL الي "مكتبه الانماط".

  6. تعيين الخاصيه "ارتباط XSL" ل# "جزء ويب ل# عرض القائمه" من خلال واجهه المستخدم.

  7. العمل ب# نجاح!

دعنا نقوم ب# استكشاف قضيه استخدام مثال و# قم ب# تنفيذ التطبيق. تريد الخاصه بنا العميل طريقه عرض ل# قائمه الرئيسيه التي تريد اعلامهم المده انه تم يقضيها عنصر قائمه معين في حالتها. تحتوي هذه القائمه موقع مخصص محتوي نوع مشتق من نوع العنصر و# اضافته الي القائمه. توجد ب# الفعل استقبال حدث في مكان التي تسجل كل وقت هذا الحقل حاله علي عنصر القائمه تم تغيير و# حفظ هذا التاريخ الي عمود يسمي "تغيير حاله التاريخ". كافه التوصيلات السلكيه هذه غير مطلوبه، و# يمكنك القيام بها ب# واسطه اي حقل التاريخ (انه فقط يحصل ذلك الخاصه بنا التنفيذ لكن الاداء مجاني ل# تجربه). ستحتاج الحد الادني هو الخاص بك حقل التاريخ المصدر و# حقل العنصر النائب ل# الاحتفاظ ب# الحساب (مزيد من المعلومات حول هذا في الفقره التاليه) اضافه الي القائمه، علي الرغم من ان اقتراح استخدام اعمده الموقع و# انواع محتويات الموقع في حاله الذي ترغب في اعاده استخدام هذا الحل في اماكن اخري علي موقعك.

لدينا الخاصه بنا تاريخ مصدر يمكننا استخدام في العمليه الحسابيه الخاصه بنا مقابل تاريخ اليوم. الان و# بعد يمكننا انشاء عمود موقع مخصص ل# استخدامه ك# حاويه ل# القيمه المحسوبه الخاصه بنا. في هذه الحاله اذا اخترت استخدام عمود محسوب حيث انه لن تتمكن من تغيير علي الجديده او تحرير نماذج العنصر، و# لكن يمكن تحديدها ل# العرض في طرق العرض ب# ما ان اننا لا تريد المستخدمين ادخال قيم اجباريه في ل# هذا العمود. قد يكون ارباكا ك ل# ل# ماذا لا يتم عرضه في طرق العرض، الخ.

الان و# قد لدينا عمود الموقع الخاصه بنا، يمكننا يمكنك اضافته الي الخاصه بنا انواع المحتوي الذي سيتم استخدامه في القائمه الخاصه بنا. بعد ذلك، هناك حاجه الي انشاء الخاصه بنا العرض التي سيتم لاحقا تخصيصها ب# استخدام XSLT الخاصه بنا. تاكد من انشاء طريقه عرض قياسيه الذي يحتوي علي عمود التاريخ المصدر و# الخاص بك العمود المحسوب الجديد الذي سيعمل ك# عنصر نائب ل# القيمه المحسوبه.

الان لدينا كل شيء في مكان نحن سيتطلب ل# دعم تقرير التقادم المخصصه الخاصه بنا. جميع يبقي ب# انشاء قالب XSL الخاصه بنا، تحميله الي "مكتبه الانماط" ل# الموقع، و# انشاء ارتباط ب# طريقه عرض القائمه الخاصه بنا. سيصبح القالب XSL سنستخدم تحتوي علي بعض علامات تم انشاؤه ب# واسطه SharePoint العادي ل# انشاء طريقه عرض ب# الاضافه الي خاصه بنا علامات المخصصه التي تستخدم ل# تجاوز اجزاء معينه من ذلك و# حساب الخاصه بنا القيمه المطلوبه ل# بنا.

تقدم ائتمان حيث يحين موعد الائتمان، قوالب XSL ل# تنفيذ عمليات حسابيه الفعلي استخدام هذا الحل تم جراسيوسلي توفيرها ب# واسطه "سويرتش" في المنتديات MSDN:
http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/thread/aeda905b-9bc6-40c4-bd22-21306c5cb0d2/

قم ب# تنزيل ورقه نمط XSL (aging.zip) ب# وضعها معا الموجوده هنا:
https://OneDrive.live.com/?cid=c262e8e2d59a86d9&permissionsChanged=1&id=C262E8E2D59A86D9! 104

فتح هذا في محرر نص المفضله ستري الكثير من علامات SharePoint XSL العادي ل# تقديم طرق العرض، اذا كنت تقوم ب# التمرير ل# الاسفل وصولا الي خط 357 ستشاهد بدايه القوالب المخصصه التي اضافتها الي العلامات، المرحله الاولي الجاري القالب "DateDiff" يليه "حساب اليوليوسي ل# العام-يوم" و "FieldRef_printTableCell_EcbAllowed.Days_x0020_At_x0020_Status". هذه هي القوالب عبر الثلاثه التي سيتم اجراء و# عرض الخاصه بنا العمليات الحسابيه في طرق العرض الخاصه بنا. اذا كنت تنتقل الي استخدام اسماء الحقول المختلفه مما هو معين مسبقا في هذه المقاله، ف# ستحتاج الي الانتقال من خلال هذه القوالب، و# استبدل ايه مراجع علي الاسماء الاخري. تذكر، ل# ذلك الذي تريد استخدام اسم الحقل ليس اسم العرض داخلي.

عندما تقتنع ان القالب جاهز ل# الانتقال، انتقل الي "مكتبه الانماط" و# تحميل ضمن المجلد "اوراق انماط XSL" ثم نسخ الارتباط الي الملف. سيؤدي هذا السماح ب# اجراء تغييرات عليه ب# سهوله فيما بعد، او اضافته الي اجزاء مختلفه من الموقع كما اننا الرجاء.

بعد ذلك، انتقل الي القائمه و# حدد طريقه العرض التي تم انشاؤها مسبقا في هذه المقاله. من "اجراءات الموقع" القائمه انقر فوق "تحرير الصفحه".

الأمر "تحرير صفحة" في قائمة "إجراءات الموقع"

البحث عن "جزء ويب" الخاص بك ل# عرض القائمه علي الصفحه و# فتح القائمه "جزء ويب" ب# النقر فوق السهم الصغير المتجه ل# الاسفل متقابله الموجود في الركن الايمن العلوي. من هذه القائمه حدد "تحرير جزء ويب".

الأمر "تحرير جزء ويب" في القائمة "جزء ويب"

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

القائمة "جزء ويب"

انقر فوق علامه المقاطع + ل "متنوعات" و# حدد موقع الخاصيه "ارتباط XSL".

الخاصية "ارتباط XSL" في القائمة "جزء ويب"

الصق الارتباط الي ملف XSL في "مكتبه الانماط" التي قمت ب# نسخها اسفل اي اصدار سابق (يمكن ارتباط المطلقه او النسبيه).

لقد تم لصق ارتباط ملف XSL

انقر فوق "موافق" ل# حفظ التغييرات، ثم انقر فوق الزر "ايقاف التحرير" علي شريط "صفحه" اعلي الصفحه.

الزر "إيقاف التحرير" ضمن علامة التبويب "صفحة"

اذا تم تكوين كل شيء ب# شكل صحيح سوف تري الان الارقام في العمود "ايام في الحاله" الخاص بك.

عمود Days At Status يعرض رقماً

و# اخيرا، اليك ما تبدو مثل مع بعض اختبار البيانات التواريخ متنوعه:

يعرض "تقرير التقادم" بيانات اختبار

ملخص:

هناك: اكمال طريقه منسق شكل جيد و# فعاليه و# افضل اداء ل# انشاء تقرير فتره تاخر في SharePoint.، مع تطبيق غير البرمجيه بسيطه. يحتوي هذا تماما بعض تطبيقات توفرها خلاف ذلك استخدم احرف نقوم ب# استكشاف هنا. سيناريو شائعه اخر ل# هذا النوع من تقرير يتم ارفاقها الي قائمه مهام حتي انه يمكنك مشاهده كيف تم منذ ان تم انشاء مهمه ب# مجرد القاء نظره.

يستمتع!

-شعبان

جويسي شعبان، لانتيك

التعليقات

خطوات مفقوده
8 / 10 / 2012 3:51 ص
موافق اتبعت الخطوات، و# لكن يجب ان يكون هناك شيء المفقوده-كيف سيتم XSL معرفه التاريخ المراد استخدامه او التي الحقول ل# اضافه الايام منذ الي؟ اكره عندما يتم فائته الخطوات.

تعليمات برمجيه، المتفق عليه!
8 / 30 / 2012 الساعه 12:12 م
اوافق-لا تظن ان ذلك ب# الفعل تحسب ب "ايه تعليمات برمجيه".
إينتيريستينجلي، من خلال بعض سكريووب من SharePoint، لديك عمود محسوب عمل ب# استخدام Today … لست متاكدا من كيفيه او ل# ماذا ل# انه لا يمكن الحصول عليه ل# القيام ب# ذلك مره اخري، و# لكن تم لا تزال هناك و# العمل.

حساب الصيغه "عدد الايام في الحاله" عمود؟
5 / 2 / 2012 7:39 ص
شعبان-ما هو الصيغه التي تستخدمها ل# عمود الموقع المحسوبه "Days At Status" (العنصر النائب ل# الاعمده)؟ تم انه "= اليوم"؟

SharePoint 2007
12 / 2 / 2011 11:29 ص
حاليا غير حاولت تطبيق هذا الحل علي SharePoint 2007، لكن ابحث اليه. ل# سوء الحظ، لا توجد ايه خاصيه XslLink رؤيتها علي جزء ويب من خلال واجهه المستخدم.

نشر رائعه
30 / 11 / 2011 9:53 ص
Hello،
نشر رائعه.
انني استخدم SharePoint 2007.
ليس لدي قسم خيارات متنوعه كما هو موضح اعلاه.
المتوفر لديك الخطوات ل# تكوين SP2007؟
شكرا لك.

رد: الحلول غير البرمجيه: عرض الايام منذ اخر عنصر قائمه SharePoint ب# تغيير
10 / 11 / 2011 8:24 AM
"ك# ريس عاليه".
بحث رائعه!
i سنقوم ب# القاء نظره علي ما يمكنك ترحيل املين لاحقا اليوم و# رؤيه اذا i يمكنك جعل هذا الحل قليلا اكثر فعاليه.
التي اتابعها سعيد اعجابك المنشور، و# التي اتابعها سعيد جدا تمكنت من العثور علي حل ل# تنسيق التاريخ الاوروبيه. :)
-شعبان

حل ل# "تنسيقات التاريخ الاوروبيه"
10 / 11 / 2011 6:45 ص
عاليه شعبان مره اخري،
معلومات، يتم العثور علي حل ل# المشكله ذكرنا سابقا في هذه الصفحه؛
http://sharepointbydummies.wordpress.com/2011/07/13/possible-work-around-to-date-format-issue-sharepoint-2010/

تنسيقات التاريخ الاوروبيه
10 / 7 / 2011 3:59 ص
"شعبان مرحبا"،
هذا شكرا حل جيد فعلا، و# الفرز ل# شيء قمت المنقضي الايام الاخيرين هل تبحث عن! و# مع ذلك اواجه قليل من مشكله في ذلك و# تم املا قد مساعدتي.
قمت تغيير التعليمات البرمجيه قليلا ل# كالكولتاتي عدد الايام الي ان شيء ما يحدث، بدلا من بعدها، ب# تبديل المتغيرات في السطر الاخير من الداله "DateDiff"؛

< xsl:value-حدد = "$JulianToday-$جوليانستارتداتي" >< / xsl:value-من >

و# مع ذلك انا فقط من الوصول الي كاكلولاتي الفرق نصف المره ب# شكل صحيح. ذلك علي سبيل المثال ب# هذا التاريخ (التنسيق dd / MM / yyyy)؛

30 / 12 / 2011

يحسب ب# شكل صحيح، و# لكن ب# هذا التاريخ (التنسيق نفسه)

12 / 10 / 2011

انه يحسب ك if اذا 10 ديسمبر 2011 بدلا من 12 اكتوبر 2011.
جربت ب# بساطه التبديل مواضع القيم الشهر و# اليوم في المتغير "جوليانستارتداتي"، كما يلي؛

< xsl: اسم مع المعلمه = select="substring(ddwrt:FormatDateTime(string($StartDate)" الشهر "، 1033، ' yyyyMMdd '), 7, 2)" / >
< xsl: اسم مع المعلمه = "اليوم" select="substring(ddwrt:FormatDateTime(string($StartDate)، 1033، ' yyyyMMdd '), 5, 2)" / >

و# تصحيح هذه المشكله ب# التاريخ الثاني، لكن تم ثم غير الصحيح ل# التاريخ الاول!
ايضا جربت تغيير مكالمات FormatDateTime ل# استخدام كبير من الاوروبيه LCIDs و# تغييرات مختلفه علي المعلمه الاخيره من FormatDateTime (علي سبيل المثال دمميييي، ممديييي) مع عمليات التسويه المناسبه ل# المعلمات الموضعيه السلسله الفرعيه دون النجاح.
هل تخفف الي حد بعيد يقدر اي نصيحه التي تقدمها.
شكرا،
ك# ريس

غير البرمجيه
21 / 9 / 2011 4:27 ص
لا تنظر الي ان XSL مؤهلا ك# حل "تعليمات برمجيه"، ك# فهم اللغه XSL غير ل# كل شخص-الا انه لا تتضمن البرمجه. ب# الاضافه الي التي: حل جيده، شكرا لك!

ملاحظة: إقرار إخلاء المسؤولية للترجمة الآلية: تمت ترجمة هذه المقالة بواسطة نظام كمبيوتر دون تدخل العامل البشري. توفر Microsoft هذه الترجمات الآلية لمساعدة المستخدمين الذين لا يتحدثون الإنجليزية على استخدام منتجات Microsoft، وخدماتها، وتقنياتها والاستمتاع بها. قد تحتوي هذه المقالة على أخطاء في المفردات، أو بناء الجملة، أو القواعد نظرًا لترجمتها آليًا.

مشاركة Facebook Facebook Twitter Twitter البريد الإلكتروني البريد الإلكتروني

هل كانت المعلومات مفيدة؟

رائع! هل لديك أي ملاحظات أخرى؟

كيف يمكننا تحسين ذلك؟

نشكرك على ملاحظاتك!

×