فئة المحفوظات: التنمية SharePoint

حذار كسر التغييرات إلى ItemStyle.xsl

كنت أعمل مع ItemStyle.xsl لتخصيص مظهر "جزء ويب الخاص باستعلام المحتوى" وحق حول وقت الغداء, لقد كسر تغيير xsl. لم أكن أدرك أنه, ولكن هذا كان بعيدة الأثر خلال مجموعة الموقع. ذهبت لتناول طعام الغداء، ولدى عودتي, لاحظت هذه الرسالة تظهر في حفنة من الأماكن:

غير قادر على عرض "جزء ويب" هذا. إلى استكشاف المشكلة وإصلاحها, فتح صفحة ويب في محرر HTML متوافق مع Windows SharePoint Services مثل Microsoft Office SharePoint Designer. إذا استمرت المشكلة, اتصل بمسؤول ملقم ويب الخاص بك.

وأنا ألقي باللوم العميل (لم يدركوا بعد أن كان خطأي في هذه المرحلة) ولكن في نهاية المطاف لاحظت أن التحسس الذكي في visual studio تم تحذير لي أنه تالف XSL. صحح ذلك وكل شيء بدأ العمل.

كن حذراً مرتق عند العمل مع ItemStyle.xsl (وفي أي من ملفات XSL العالمية) — كسر منها يؤثر على العديد من التحف الفنية في مجموعة الموقع.

<نهاية/>

عرض نتائج جزء ويب استعلام المحتوى في الشبكة / الجدول

نظرة عامة والهدف

من خارج منطقة الجزاء, موس’ جزء ويب الخاص باستعلام المحتوى (كقوب) تعرض نتائجها في شكل قائمة, مماثلة نتائج البحث. من الممكن أيضا لعرض النتائج في تنسيق الشبكة (الأول-هاء. تنسيق جدول HTML). تنسيقات الشبكة الأفضل في بعض الحالات. أنا تصف كيفية تحقيق هذا التأثير في هذه المقالة..

سيناريو العمل

لقد عملت مع عميل على تمهيدية موس على مستوى المؤسسة. لقد قمنا بتصميم على تصنيف المشاريع مواطنين من الدرجة الأولى في التسلسل الهرمي ويكون موقع المستوى الأعلى الخاصة بهم. مديرو المشروع الاحتفاظ بقائمة معلومات ملخص المشروع المفرد, مثل العنوان, الميزانية, تاريخ الانتهاء المتوقع, أما بقية الميزانية وغيرها من المجالات نوع التلخيص. قبل "المفرد" يعني قائمة SharePoint مخصصة يضمن أن تحتوي على عنصر واحد فقط. ننجرف, يبدو مثل هذا:

الصورة

النهج التقني هو الشيء نفسه كما هو موضح هنا (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). يستخدم كقوب تحويل XSL تنبعث منها HTML للمتصفح لتقديم.

أتصور النتيجة دائماً قبل الغوص في XSL XSL لأن كابوس. هنا هو بلدي النتيجة المرجوة:

الصورة

إتش تي أم ال مثل هذا يولد تلك النتيجة:

<html>
 <الهيئة>
 <مركز>
 <الجدول الحدود= 1>

<!-- تسميات->
 <tr لون الخلفية= أزرق>
 <td><الخط لون= الأبيض><ب>اسم المشروع</ب></الخط></td>
 <td قم بمحاذاة= الحق><الخط لون= الأبيض><ب>التاريخ بالكامل</ب></الخط></td>
 <td قم بمحاذاة= الحق><الخط لون= الأبيض><ب>الميزانية</ب></الخط></td>
 <td قم بمحاذاة= الحق><الخط لون= الأبيض><ب>المصروفات الفعلية</ب></الخط></td>
 <td><الخط لون= الأبيض><ب>الحالة العامة</ب></الخط></td>
 </tr>

<tr>
 <td>غرفة الكمبيوتر إعادة الأسلاك.</td>
 <td قم بمحاذاة= الحق>02/01/08</td>
 <td قم بمحاذاة= الحق>22,500.00</td>
 <td قم بمحاذاة= الحق>19,000.00</td>
 <td>في التقدم</td>
 </tr>

<tr>
 <td>توفير خدمة لترقية SQL</td>
 <td قم بمحاذاة= الحق>04/01/08</td>
 <td قم بمحاذاة= الحق>7,500.00</td>
 <td قم بمحاذاة= الحق>0.00</td>
 <td>المخطط</td>
 </tr>

</الجدول>
 </مركز>
 </الهيئة>
</html>

النهج

اتبع هذه الخطوات إنشاء الشبكة:

  1. التعرف على مكونات الشبكة (صفوف/أعمدة).
  2. تعريف وإنشاء أعمدة موقع ضروري.
  3. إنشاء مواقع فرعية للمشاريع وقوائم المفرد.
  4. إضافة كقوب إلى صفحة ويب وتكوينه للبحث عن القوائم الخاصة بك.
  5. تعديل XML كقوب جمع ما يصل أعمدة إضافية.
  6. تعديل XSL لإنشاء جدول.

أنا ذاهب إلى التركيز على عدد ستة. أرقام واحد من خلال أربعة هي شيء أن تفعل أي مستخدم كقوب ومستقيم إلى الأمام. وقد عدد خمسة موثقة توثيقاً جيدا قبل الآخرين بما في ذلك هذا المقال آدن لقطة شاشة حصرية من MSDN هنا (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) ومدونة هيذر سليمان هنا (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

الصواميل والمسامير

بدء وتنفيذ الخطوات من واحد إلى خمسة حسب وثائق MSDN والمادة هيذر سليمان.

عند هذه النقطة, التي قمت بإضافتها إلى الصفحة الخاصة بك كقوب ولديك الخاص بك <كوممونفيوفيلدس> تكوين حسب الضرورة.

اتباع الخطوات المعتادة, احصل على هذه النتائج المتوسطة:

1. إنشاء نوع محتوى, قائمة مخصصة تيمبلاتيزيد لنوع المحتوى، واثنين من المواقع. هنا هو نوع المحتوى:

الصورة

هنا هو موقع الهيكل:

الصورة

2. إضافة كقوب بعد إنشاء بلدي المشروع مواقع فرعية والمفرد قوائم ملخص المشروع:

الصورة

3. إضافة جميع المعلومات الإضافية التي أريد عبر <كوممونفيوفيلدس>:

        <الملكية الاسم="كوممونفيوفيلدس" نوع="السلسلة">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</الملكية>

علما بأن اضطررت إلى إبقاء كافة حقول الخصائص في سطر واحد، أو أنها لا تعمل (كقوب أن تقول لي أن قام الاستعلام بإرجاع أية عناصر).

4. عند هذه النقطة, نحن مستعدون لتجاوز مقالة MSDN والوجه للمادة هيذر سليمان. اتبع الخطوات لها ابتداء من قرب خطوة #5 لإنشاء مخصصة / الإصدار unghosted من ItemStyle.xsl. أنا اتبع النصيحة هيذر, حتى من خلال الخطوة 11 والحصول على هذه النتائج في المرحلة المتوسطة:

4.1: اسم قالب XSL بلدي كما يلي:

<xsl:اسم القالب = "الشبكة" تطابق = "صف[@Style = 'الشبكة']" وضع = "إيتيمستيلي">

أنا أيضا قليلاً تعديل لها واقترح <xsl:لكل …> عن طريق إضافة <br/> علامة لتوفير قائمة بنظافة:

    <xsl:لكل حدد="@*">
      ف:<xsl:القيمة حدد="الاسم()" /><br/>
    </xsl:لكل>

4.2: تعديل جزء ويب, الذهاب إلى المظهر وحدد بلدي الشبكة "" نمط:

الصورة

تطبيق التغيير، وهنا هو نتيجة:

الصورة

يمكننا أن نرى من ما ورد أعلاه أن الحقول نريد (اسم المشروع, المصروفات, مركز, إلخ) متاحة لنا لاستخدامها عندما كنا تنبعث منها HTML. ليس هذا فقط, ولكن نحن نرى أسماء الذي نحن يجب أن مرجع هذه الأعمدة في XSL. وعلى سبيل المثال, ونحن مرجع "مركز المشروع" ك "Project_x005F_x0020_Name".

عند هذه النقطة, نغادر من بلوق هيذر وعلى أكتاف هذه العمالقة, أود أن أضيف بلدي قليلاً.

ContentQueryMain.xsl

ملاحظة: عند إجراء تغييرات على كل من ContentQueryMain.xsl، فضلا عن ItemStyle.xsl, كنت بحاجة للتحقق من هذه الملفات مرة أخرى قبل أن يمكنك مشاهدة تأثير التغييرات الخاصة بك.

لأغراض صنع الشبكة, موس يستخدم اثنين من ملفات XSL مختلفة لإنتاج النتائج التي نراها من كقوب. لتوليد بت السابقة للإخراج, قمنا بتعديل ItemStyle.xsl. موس فعلا يستخدم ملف XSL آخر, ContentQueryMain.xsl إلى بالاقتران مع ItemStyle.xsl لإنشاء HTML لها. كما يدل على ذلك اسمه, ContentQueryMain.xsl هو الرئيسي "" XSL التي تتحكم في تدفق الشاملة للترجمة. التكرار عبر كافة العناصر التي تم العثور عليها ويمر عليهم واحداً تلو الآخر لقوالب في ItemStyle.xsl. سوف نقوم بتعديل ItemStyle.xsl لتوليد المفتوحة <الجدول> العلامة قبل انبعاث الصف الأول من البيانات وإغلاق <الجدول> العلامة بعد انبعاث الصف الأخير. لإنجاز هذا, يتم تعديل ContentQueryMain.xsl لتمرير معلمتين من معلمات إلى شبكة "لدينا" قالب في ItemStyle.xsl, "الصف الأخير" و "الصف الحالي". ويستخدم ItemStyle.xsl هذه للشرطي تنبعث منها العلامات اللازمة.

باستخدام تقنية هيذر سليمان, ونحن موقع ContentQueryMain.xsl. وهو يقع في نفس المكان ItemStyle.xsl. وينبغي أن تساعد هذه لقطة الشاشة:

الصورة

ونحن بحاجة إلى القيام بالتغييرات التالية:

  • تعديل قالب xsl, "كاليتيمتيمبلاتي" أن يستدعي في الواقع لدينا قالب الشبكة في ItemStyle.xsl. أننا سوف تمر معلمتين من معلمات إلى قالب الشبكة حتى أنه سيتعين عليها البيانات فإنه يحتاج إلى توليد شروط فتح وإغلاق <الجدول> العلامات.
  • تعديل نوعا آخر من ContentQueryMain.xsl التي تدعو كاليتيمتيمبلاتي "" لتمرير فإنه لاستروو "" المعلمة حيث أن لاستروو قد أن ينتقل إلى قالب الشبكة لدينا.

حدد موقع القالب المسمى "OuterTemplate.CallItemTemplate" حدد السلسلة:

  <xsl:قالب الاسم="OuterTemplate.CallItemTemplate">

استبدال القالب كله كما يلي:

  <xsl:قالب الاسم="OuterTemplate.CallItemTemplate">
    <xsl:بارام الاسم="كوربوسيشن" />

    <!--
      إضافة لاستروو "" المعلمة.
      نحن نستخدم فقط عندما يتم تمرير نمط عنصر في "الشبكة".
    -->
    <xsl:بارام الاسم="لاستروو" />

    <xsl:اختر>
      <xsl:عندما اختبار="@Style = 'نيوسرولوبيتيم'">
        <xsl:تطبيق قوالب حدد="." وضع="إيتيمستيلي">
          <xsl:مع بارام الاسم="اديتمودي" حدد="$cbq_iseditmode" />
        </xsl:تطبيق قوالب>
      </xsl:عندما>
      <xsl:عندما اختبار="@Style = 'نيوسبيجيتيم'">
        <xsl:تطبيق قوالب حدد="." وضع="إيتيمستيلي">
          <xsl:مع بارام الاسم="كوربوس" حدد="$كوربوسيشن" />
        </xsl:تطبيق قوالب>
      </xsl:عندما>
      <xsl:عندما اختبار="@Style = 'نيوسكاتيجورييتيم'">
        <xsl:تطبيق قوالب حدد="." وضع="إيتيمستيلي">
          <xsl:مع بارام الاسم="كوربوس" حدد="$كوربوسيشن" />
        </xsl:تطبيق قوالب>
      </xsl:عندما>

      <!--
              تمرير الموقف الحالي ولاستروو إلى قالب itemstyle.xsl الشبكة.
              ItemStyle.xsl سوف تستخدم ذلك تنبعث منها الفتح وإغلاق <الجدول> العلامات.
      -->
      <xsl:عندما اختبار="@Style = 'الشبكة'">
        <xsl:تطبيق قوالب حدد="." وضع="إيتيمستيلي">
          <xsl:مع بارام الاسم="كوربوس" حدد="$كوربوسيشن" />
          <xsl:مع بارام الاسم="آخر صورة" حدد="$لاستروو" />
        </xsl:تطبيق قوالب>
      </xsl:عندما>

      <xsl:خلاف ذلك>
        <xsl:تطبيق قوالب حدد="." وضع="إيتيمستيلي">
        </xsl:تطبيق قوالب>
      </xsl:خلاف ذلك>
    </xsl:اختر>
  </xsl:قالب>

التعليقات تصف غرض التغييرات.

طبعًا, "OuterTemplate.CallItemTemplate" يسمى نفسه من قالب آخر. تحديد موقع هذا القالب عن طريق البحث عن هذه السلسلة النصية:

<xsl:قالب الاسم="OuterTemplate.Body">

قم بالتمرير من خلال الإرشادات الموجودة في OuterTemplate.Body وإدراج المعلمة لاستروو على النحو التالي (تعليق بخط مائل كما هو موضح):

<xsl:قالب المكالمة الاسم="OuterTemplate.CallItemTemplate">
  <xsl:مع بارام الاسم="كوربوسيشن" حدد="$كوربوسيشن" />
  <!-- إدراج المعلمة لاستروو. -->
  <xsl:مع بارام الاسم="لاستروو" حدد="$لاستروو"/>
</xsl:قالب المكالمة>

وبعد كل هذا, وأخيراً لدينا الأشياء إعداد بشكل صحيح حيث أن لدينا ItemStyle.xsl يمكن أن تنبعث منها <الجدول> العلامات في المكان المناسب.

ItemStyle.Xsl

ملاحظة: مرة أخرى, تحقق في ItemStyle.xsl بعد إجراء أي تغييرات، حيث يمكنك أن ترى تأثير تلك التغيرات.

لدينا مهمتين هنا:

  • استبدال قالب شبكة كاملة. يمكنك نسخ/لصق من الأسفل.
  • إضافة بعض الجامبو خارج تعريف القالب التي تمكن "فورماتكورينسي" قالب للعمل. (يمكن أن نقول أن لدى التعامل مع ضعيف في XSL).

الأولى, بالقرب من الأعلى من ItemStyle.xsl, أضف هذا السطر:

  <!-- بعض الجامبو التي تمكننا من عرض الولايات المتحدة. تحويل العملات. -->
  <xsl:تنسيق عشري الاسم="الموظفين" أرقام="د" />

  <xsl:قالب الاسم="الافتراضي" مباراة="*" وضع="إيتيمستيلي">

علما أن أضفت مباشرة قبل <xsl:اسم القالب = "الافتراضي" …> تعريف.

القادم, أن نعود إلى أعمالنا قالب الشبكة. استبدال قالب شبكة كاملة مع التعليمات البرمجية أدناه. أنه دقيق وعلق, ولكن لا تتردد في البريد الإلكتروني لي أو ترك التعليقات على بلوق إذا كان لديك أسئلة.

  <xsl:قالب الاسم="الشبكة" مباراة="الصف[@Style = 'الشبكة']" وضع="إيتيمستيلي">

    <!--
      ContentMain.xsl يمر كوربوس وآخر.
      ونحن نستخدم هذه للشرطي تنبعث منها الفتح وإغلاق <الجدول> العلامات.
    -->
    <xsl:بارام الاسم="كوربوس" />
    <xsl:بارام الاسم="آخر صورة" />

    <!-- المتغيرات التالية معدلة من ItemStyle.xsl القياسية -->
    <xsl:متغير الاسم="سافيماجيورل">
      <xsl:قالب المكالمة الاسم="OuterTemplate.GetSafeStaticUrl">
        <xsl:مع بارام الاسم="أورلكولومنامي" حدد="'ImageUrl'"/>
      </xsl:قالب المكالمة>
    </xsl:متغير>
    <xsl:متغير الاسم="سافيلينكورل">
      <xsl:قالب المكالمة الاسم="OuterTemplate.GetSafeLink">
        <xsl:مع بارام الاسم="أورلكولومنامي" حدد="'LinkUrl'"/>
      </xsl:قالب المكالمة>
    </xsl:متغير>
    <xsl:متغير الاسم="ديسبلايتيتلي">
      <xsl:قالب المكالمة الاسم="OuterTemplate.GetTitle">
        <xsl:مع بارام الاسم="العنوان" حدد="@Title"/>
        <xsl:مع بارام الاسم="أورلكولومنامي" حدد="'LinkUrl'"/>
      </xsl:قالب المكالمة>
    </xsl:متغير>
    <xsl:متغير الاسم="لينكتارجيت">
      <xsl:إذا كان اختبار="@OpenInNewWindow = 'true'" >_blank</xsl:إذا كان>
    </xsl:متغير>

    <!--
      هنا يمكننا تعريف متغير, "تابليستارت".  وهذا يتضمن HTML التي نستخدمها لتعريف فتح الجدول، فضلا عن تسميات الأعمدة.  لاحظ أنه إذا كان كوربوس = 1, وهو يتضمن HTML في علامة CDATA.
      خلاف ذلك, أنها سوف تكون فارغة.

      قيمة تابليستارت اميتيد في كل مرة يتم استدعاء إيتيمستيلي عبر ContentQueryMain.xsl.
    -->
    <xsl:متغير الاسم="تابليستارت">
      <xsl:إذا كان اختبار="$كوربوس = 1">
        <![CDATA[
        <حدود الجدول = 1>
          <tr bgcolor = "الأزرق">
            <td><لون الخط = "الأبيض"><ب>اسم المشروع</ب></الخط></td>
            <td محاذاة = "الحق"><لون الخط = "الأبيض"><ب>التاريخ بالكامل</ب></الخط></td>
            <td محاذاة = "الحق"><لون الخط = "الأبيض"><ب>الميزانية</ب></الخط></td>
            <td محاذاة = "الحق"><لون الخط = "الأبيض"><ب>المصروفات الفعلية</ب></الخط></td>
            <td><لون الخط = "الأبيض"><ب>الحالة العامة</ب></الخط></td>
          </tr>
        ]]>
      </xsl:إذا كان>
    </xsl:متغير>

    <!--
      متغير آخر, تابليند يعرف ببساطة الإغلاق الجدول العلامة.

      كما هو الحال مع تابليستارت, أنها دائماً اميتيد.  وهذا السبب يتم تعيين القيمة الخاصة به الشرطي استناداً إلى ما إذا كان لقد تم مرت علينا الصف الأخير من ContentQueryMain.xsl.
    -->
    <xsl:متغير الاسم="تابليند">
      <xsl:إذا كان اختبار="$كوربوس = $Last">
        <![CDATA[ </الجدول> ]]>
      </xsl:إذا كان>
    </xsl:متغير>

    <!--
      دائماً تنبعث منها محتويات تابليستارت.  إذا لم يكن الصف الأول أقره لنا ContentQueryMain.xsl, ثم أننا نعرف قيمته ستكون فارغة.

      تعطيل الإخراج الهروب لأنه عندما تابليستارت ليس فارغاً, أنها تتضمن HTML الفعلي الذي نريد أن يتم تقديمها بواسطة المستعرض.  إذا أننا لا نقول محلل XSL لتعطيل الإخراج الهروب, سوف تولد الأشياء مثل "&الملازم;الجدول&gt;" بدلاً من "<الجدول>".
    -->
    <xsl:القيمة حدد="$تابليستارت" تعطيل-إخراج-الهروب="نعم"/>


    <tr>
      <!--
      ف:ف Project_x005F_x0020_Name:ف Project_x005F_x0020_End_x005F_x0020_Date:ف Project_x005F_x0020_Budget:ف Project_x005F_x0020_Expenses:Project_x005F_x0020_Status
      -->
      <td>
        <xsl:القيمة حدد="@Project_x005F_x0020_Name"/>
      </td>

      <td قم بمحاذاة="حق">
        <xsl:القيمة حدد="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </td>

      <td قم بمحاذاة="حق">
        <xsl:قالب المكالمة الاسم="فورماتكورينسي">
          <xsl:مع بارام الاسم="القيمة" 
حدد="@Project_x005F_x0020_Budget"></xsl:مع بارام> </xsl:قالب المكالمة> </td> <td قم بمحاذاة="حق"> <xsl:قالب المكالمة الاسم="فورماتكورينسي"> <xsl:مع بارام الاسم="القيمة" حدد="@Project_x005F_x0020_Expenses">
</xsl:مع بارام> </xsl:قالب المكالمة> </td> <td> <xsl:القيمة حدد="@Project_x005F_x0020_Status"/> </td> <!-- كل ما يلي علق بها توضيح الأمور. ومع ذلك, إعادته والأشياء إلى <td> لمعرفة تأثيرها. --> <!-- <div معرف = "لينكيتيم" الطبقة = "البند"> <xsl:إذا كان اختبار = "طول السلسلة($سافيماجيورل) != 0 "> <div class = "صورة المنطقة اليسرى"> <href = "{$سافيلينكورل}" الهدف = "{$لينكتارجيت}"> <فئة img = "الصورة-عرض ثابت" src = "{$سافيماجيورل}"
alt = "{@ImageUrlAltText}"/> </أ> </div> </xsl:إذا كان> <div class = "عنصر الارتباط"> <xsl:قالب المكالمة
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <href = "{$سافيلينكورل}"
الهدف = "{$لينكتارجيت}" عنوان = "{@LinkToolTip}"> <xsl:حدد قيمة من = "$DisxslyTitle"/> </أ> <div class = "الوصف"> <xsl:القيمة من select="@Description" /> </div> </div> </div>
--> </tr> <!-- تنبعث منها الإغلاق الجدول العلامة. إذا نحن لسنا في الصف الأخير, هذا وسوف تكون فارغة. --> <xsl:القيمة حدد="$تابليند" تعطيل-إخراج-الهروب="نعم"/> </xsl:قالب> <xsl:قالب الاسم="فورماتكورينسي"> <xsl:بارام الاسم="القيمة" حدد="0" /> <xsl:القيمة حدد='تنسيق الرقم($القيمة, "$DDD,DDD,DDD.DD ", "الموظفين")' /> </xsl:قالب>

لا تدعم شاشات إدخال البيانات WSS/موس القياسية المنسدلة المتتالية (أو أخرى داخل-من الاتصال)

التحديث (04/2008): ويبين هذا الدخول بلوق كبيرة نهج القائمة على جافا سكريبت جيدة لهذه المشكلة: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

التحديث الثاني: (04/2008): هذا بلوق دخول تبدو واعدة، وكذلك: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

عدة مرات في الأسبوع, إذا لم اليومية, منتدى المستخدمين وصف شرط أن ستلبي عادة عن طريق المنسدلة المتتالية. وعلى سبيل المثال, لدى اثنين من عناصر تحكم القائمة المنسدلة:

  • قائمة بالولايات المتحدة. الدول
  • قائمة بالولايات المتحدة. المدن.

كمقدمي خدمات واجهة المستخدم المسؤول, نحن نريد أن تعمل مثل هذا:

  • بول يختار الولايات المتحدة. الدولة من القائمة المنسدلة.
  • وهذا يتسبب في المدن القائمة المنسدلة للتصفية فقط تلك المدن التي تنتمي إلى الدولة المختارة.
  • بول يختار مدينة من هذه القائمة التي تمت تصفيتها.

لا يوجد أي دعم خارج منطقة الجزاء لهذه الميزة. في الحقيقة, لا يوجد أي دعم خارج النطاق لأي نوع من الاتصالات المباشرة داخل النموذج. وهذا يشمل برمجياً إخفاء/تمكين/تعطيل الحقول في استجابة للتغيرات الميدانية في أي مكان آخر في النموذج.

أن الهدف الحقيقي من هذه المقالة لوصف الحلول الممكنة، وهذه هي الخيارات يعرف لهم:

  1. وضع نوع عمود المخصص. كمطور مخصص العمود, لديك السيطرة الكاملة على العالم "" هذا العمود مخصص. يمكنك تنفيذ القائمة المنسدلة متتالية بهذه الطريقة.
  2. النظر في استخدام سير العمل. وفي بعض الحالات, تريد تلقائياً بتعيين قيمة لحقل استناداً إلى قيمة حقل آخر. وفي هذه الحالة, أن عادة محاولة استخدام عمود محسوب, ولكن بعض الأوقات, أنها لن تحصل فقط على إنجاز هذه المهمة. SharePoint مصمم سير العمل بديل نسبيا إدارة ملائمة لإسقاط إلى أسفل في التعليمات البرمجية و visual studio. إذا كنت تذهب في هذا الطريق, يكون على بينه من المسألة التي تناولتها هذه المقالة. (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. معالجات الأحداث: مثل سير العمل, هذا حل بعد حقيقة. معالج الأحداث الخاص بك تجميع. net (C#, VB.NET) إلى SharePoint الذي يمرر التحكم. يحتوي الكائن على تطويرك للوصول إلى بيانات القائمة (ونموذج الكائن بأكمله) ويمكن القيام بأي حساب المطلوبة.
  4. استخدام مصمم SharePoint لإنشاء نماذج إدخال مخصصة. أنا لم يكن لديك تجربة مباشرة مع هذا النهج, لكني أسمع أنهم يفعلون أشياء جيدة مع NewForm.aspx هذه الأيام 🙂
  5. لفة الخاص بك وظيفة إدخال بيانات ASP.NET (كصفحة ويب مستقل أو كجزء ويب) واستخدم هذا بدلاً من ذلك.

إذا كان أي شخص يعرف الخيارات الأخرى و/أو أفضل, الرجاء نشر تعليق وسوف أقوم بتحديث النص الأساسي لهذا المنصب.

<نهاية/>

[تشنورتي] بطاقات:

إنشاء شريط الرسوم البيانية في SharePoint

نظرة عامة:

(التحديث 12/04/07: إضافة مورد آخر للاهتمام في نهاية ربط آخر بلوق أن يعالج هذا عبر جزء ويب مثيرة جداً للاهتمام)

هذا بلوق دخول يصف كيفية إنشاء رسم بياني شريطي في SharePoint. هذا وتعمل في بيئات WSS وموس كما أنه يعتمد فقط على جزء ويب لعرض البيانات.

النهج العام كما يلي:

  1. قم بإنشاء قائمة أو مكتبة المستندات التي تحتوي على البيانات التي تريدها لإنشاء رسم بياني.
  2. مكان مكتبة المستندات المرتبطة بها / مخصصة قائمة على صفحة، وتحويله إلى جزء ويب "طريقة عرض بيانات" (دفوب).
  3. تعديل XSL دفوب إنشاء HTML الذي يظهر كرسم بياني.

سيناريو العمل / برنامج الإعداد:

لقد خلق قائمة مخصصة مع العمود العنوان القياسية وعمود إضافي واحد, "حالة". هذه النماذج (جداً ننجرف) إذن "للمصروفات" السيناريو حيث العنوان يمثل المشروع والوضع قيمة من قائمة:

  • واقترح
  • في عملية
  • وتوقف

والهدف هو إنتاج رسم شريط أفقي تفاعلية التي تظهر رموز الحالة هذه.

أنا قد نشر القائمة ويبدو مثل هذا:

الصورة

إنشاء جزء ويب لعرض البيانات:

إنشاء دفوب واسطة إضافة قائمة مخصصة إلى صفحة (صفحة الموقع في حالتي) واتبع الإرشادات هنا (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).

بالإضافة إلى إنشاء ببساطة دفوب, نحن أيضا بحاجة إلى تعيين الخاصية الترحيل لإظهار كافة الصفوف المتوفرة. بالنسبة لي, وهذا يبدو شيئا من هذا القبيل:

الصورة

عند هذه النقطة, دائماً إغلاق المستعرض والحزب الديمقراطي الاشتراكي. ثم إعادة فتح الصفحة باستخدام المستعرض. تجنب هذا التلويث قصد إعداد تخطيط جزء ويب على صفحة.

تعديل XSLT:

حان الآن الوقت لتعديل XSLT.

أنا دائماً استخدام visual studio لهذا. (انظر هنا لملاحظة هامة حول التحسس الذكي الذي سوف تساعدك كثيرا).

إنشاء مشروع فارغ إضافة أربعة ملفات جديدة (الاستعاضة عن عبارة "الأصلي" و "جديد" حسب الاقتضاء):

  • Original.xslt
  • New.xslt
  • Params.xml الأصلي
  • Params.xml الجديدة

في حالتي, يبدو مثل هذا:

الصورة

تعديل جزء ويب ثم نسخ params و XSL للنص الأصلي "" الإصدار في Visual Studio.

والهدف هنا هو التسبب في XSL تحويل النتائج التي كنا نعود من الاستعلام دفوب إلى HTML الذي يعرض كرسم بياني.

وتحقيقا لهذه الغاية, فهو يساعد على النظر أولاً في ما ينبغي أن تبدو مثل HTML قبل أن يمكننا الحصول على الخلط من جانب الجنون الذي يعرف باسم "XSL". (أن تكون واضحة, ما يلي مجرد مثال; اكتب أو نسخ/لصق في visual studio لا. وتقدم الأول ضربة كامل نقطة انطلاق لذلك في وقت لاحق الكتابة). يتم تقديم نموذج الرسم البياني التالي حسب HTML التالية مباشرة:

عينة رسم شريطي

HTML المطابق:

<html>
<الهيئة>
<مركز>
<جدول العرض = 80%>
<tr><td><مركز>رسم بياني شريطي أفقي</td></tr>
<tr>
<محاذاة td = "توسيط">
<حدود الجدول = "1" العرض = 80%>
<tr>
<عرض td = 10%>مفتوحة</td>
<td><الجدول cellpadding ="0" cellspacing ="0" الحدود = 0 العرض = 50%><tr bgcolor = أحمر><td>&nbsp;</td></tr></الجدول></td>
</tr>
<tr>
<عرض td = 10%>إغلاق</td>
<td><الجدول cellpadding ="0" cellspacing ="0" الحدود = 0 العرض = 25%><tr bgcolor = أحمر><td>&nbsp;</td></tr></الجدول></td>
</tr>
<tr>
<عرض td = 10%>وتوقف</td>
<td><الجدول cellpadding ="0" cellspacing ="0" الحدود = 0 العرض = 25%><tr bgcolor = أحمر><td>&nbsp;</td></tr></الجدول></td>
</tr>
</الجدول>
</td>
</tr>
</الجدول>
</الهيئة>
</html>

لقد استخدمت نهجاً القتلى بسيطة لإنشاء أشرطة بلدي بتعيين لون الخلفية لصف "الأحمر".

هذا هنا الوجبات الجاهزة: وفي نهاية المطاف, كل ما نقوم به هو إنشاء HTML مع الصفوف والأعمدة.

قالب XSLT:

لقد قمت بنسخ XSLT الذي يقوم بإنشاء رسم بياني شريطي أفقي. جيد إلى حد ما علقت لذلك أنا لن تضيف الكثير هنا باستثناء هذه الملاحظات:

  • لقد بدأت مع XSL الذي أعطاني مصمم SharePoint عندما أنشئت أول مرة في دفوب الافتراضي.
  • قد تمكنت من خفض هذا من الحزب الاشتراكي الديمقراطي 657 خطوط إلى 166 خطوط.
  • لم أكن نحو الفوضى مع معلمات ملف XML (وهو مستقل من XSL وعليك أن تعرف ماذا يعني عندما تذهب إلى تعديل دفوب نفسها; هناك اثنين من الملفات التي يمكنك تعديلها). ومع ذلك, من أجل تبسيط تقنية المعلومات, أقوم بإزالة كل منهم ما يقرب من XSL. وهذا يعني أنه إذا كنت تريد أن تجعل استخدام هذه المعلمات, تحتاج فقط إلى إضافة تعريفات المتغير بها مرة أخرى إلى XSL. التي تكون سهلة حيث سيكون لديك تعريفات المتغير الأصلي XSL في مشروع visual studio الخاص بك.
  • يجب عليك أن تكون قادراً على نسخ ولصق هذا مباشرة في المشروع الخاص بك في visual studio. ثم, إزالة بلدي المكالمات وإدراج المكالمات الخاصة بك إلى "شووبار".
  • الحفر أسفل يعمل عن طريق إنشاء <href> أحب هذا: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. هذا الأسلوب قد تكون ذات قيمة في سياقات أخرى. في البداية, وأعتقد أنني بحاجة إلى أن تلتزم بشكل أكثر تعقيداً: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, ولكن في بلدي البيئة التي ليس من الضروري. URL في القائمة يتم تمريرها إلينا من SharePoint حتى هذا من السهل جداً أن التعميم.

هنا:

<xsl:أوراق الأنماط الإصدار="1.0" استبعاد-النتيجة-البادئات="rs z o s دورت dt مسكسسل" 
xmlns:مسكسسل="urn:مخططات--مايكروسوفت-كوم:xslt" xmlns:xsl="http://www.w3.org/تحويل/1999/XSL"
xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"
xmlns:آسيا والمحيط الهادئ="http://schemas.microsoft.com/ASPNET/20" xmlns:دورت="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
xmlns:o="urn:مخططات--مايكروسوفت-كوم:مكتب" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11d 1-A29F-00AA00C14882" xmlns:rs="urn:مخططات--مايكروسوفت-كوم:مجموعة الصفوف" xmlns:z="#رووسيتشيما"
xmlns:ddwrt2="urn:frontpage:الداخلية"
> <xsl:الإخراج الأسلوب="html" المسافة البادئة="لا" /> <xsl:تنسيق عشري نان="" /> <xsl:بارام الاسم="ليستورلدير"></xsl:بارام> <!-- أنا بحاجة إلى هذا الدعم حفر أسفل. --> <xsl:قالب مباراة="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:__designer=http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:آسيا والمحيط الهادئ="http://schemas.microsoft.com/ASPNET/20"
> <xsl:متغير الاسم="dvt_StyleName">الجدول</xsl:متغير> <xsl:متغير الاسم="الصفوف" حدد="/دسكويريريسبونسي/الصفوف/الصف" /> <xsl:متغير الاسم="dvt_RowCount" حدد="العد($الصفوف)" /> <xsl:متغير الاسم="IsEmpty" حدد="$dvt_RowCount = 0" /> <xsl:متغير الاسم="dvt_IsEmpty" حدد="$dvt_RowCount = 0" /> <xsl:اختر> <xsl:عندما اختبار="$dvt_IsEmpty"> لا توجد أي بيانات إلى الرسم البياني!<br/> </xsl:عندما> <xsl:خلاف ذلك> <!-- الأشياء المثيرة للاهتمام التي تبدأ هنا. ونحن بحاجة إلى تحديد زوج من متغيرات لكل صف في الرسم البياني: العدد الإجمالي للعناصر وفي المائة من إجمالي. --> <xsl:متغير الاسم="توتالبروبوسيد" حدد="العد(/دسكويريريسبونسي/الصفوف/الصف[تطبيع والفضاء(@Status) = 'اقترح'])" /> <xsl:متغير الاسم="بيرسينتبروبوسيد" حدد="$شعبة توتالبروبوسيد $dvt_RowCount" /> <xsl:متغير الاسم="توتالينبروسيس" حدد="العد(/دسكويريريسبونسي/الصفوف/الصف[تطبيع والفضاء(@Status) = 'في عملية'])" /> <xsl:متغير الاسم="بيرسينتينبروسيس" حدد="$شعبة توتالينبروسيس $dvt_RowCount" /> <xsl:متغير الاسم="توتالستاليد" حدد="العد(/دسكويريريسبونسي/الصفوف/الصف[تطبيع والفضاء(@Status) = 'توقفت'])" /> <xsl:متغير الاسم="بيرسينتستاليد" حدد="$شعبة توتالستاليد $dvt_RowCount" /> <!-- علينا أن نحدد جدول HTML لدينا هنا. وأنا أشعر بالاقتراض من بعض الأنماط القياسية SharePoint الموجودة هنا لجعلها متسقة. وأعتقد أنها سوف شرف التغييرات إلى ملف css العالمية، فضلا عن تجاوز الموضوع. --> <الجدول العرض="100%" سيلسباسينج="0" سيلبادينج="2" نمط="الحق في الحدود: 1 #C0C0C0 الصلبة; الحدود السفلي: 1 #C0C0C0 الصلبة; الحدود على غرار اليسار: الصلبة; عرض الحدود اليسرى: 1; نمط الحد الأعلى: الصلبة; عرض الحد الأعلى: 1;"> <tr> <td قم بمحاذاة="مركز"> <الجدول الحدود="1" العرض="100%"> <!-- لكل حالة نريد أن الرسم البياني, ونحن ندعو شووبار "" قالب. نحن نقله: 1. تسمية للصف. وهذا هو تحويلها إلى ارتباط تشعبي. 2. النسبة المئوية (متغير من أعلى). 3. اسم الحقل الفعلي للتعليمات البرمجية من القائمة الأساسية. وهذا لا يحتاج لمطابقة عرض التسمية. 4. مطابقة لقيمة الحقل #3. 5. مجموع البنود من هذا رمز الحالة (لا المجموع الكلي لكافة رموز الحالة). أنها تنبعث <tr></tr> والخط الأفقي شريطي. أننا ندعو هذا القالب لكل رمز الحالة التي نريد أن عرض. --> <xsl:قالب المكالمة الاسم="شووبار"> <xsl:مع بارام الاسم="بارديسبلايلابيل" حدد="'اقترح'"/> <xsl:مع بارام الاسم="باربيرسينت" حدد="$بيرسينتبروبوسيد"/> <xsl:مع بارام الاسم="قويريفيلتيرفيلدنامي" حدد="'مركز'"/> <xsl:مع بارام الاسم="قويريفيلتيرفيلدفالوي" حدد="'اقترح'"/> <xsl:مع بارام الاسم="توتاليتيمس" حدد="$توتالبروبوسيد"></xsl:مع بارام> </xsl:قالب المكالمة> <xsl:قالب المكالمة الاسم="شووبار"> <xsl:مع بارام الاسم="بارديسبلايلابيل" حدد="'توقفت'"/> <xsl:مع بارام الاسم="باربيرسينت" حدد="$بيرسينتستاليد"/> <xsl:مع بارام الاسم="قويريفيلتيرفيلدنامي" حدد="'مركز'"/> <xsl:مع بارام الاسم="قويريفيلتيرفيلدفالوي" حدد="'توقفت'"/> <xsl:مع بارام الاسم="توتاليتيمس" حدد="$توتالستاليد"></xsl:مع بارام> </xsl:قالب المكالمة> <xsl:قالب المكالمة الاسم="شووبار"> <xsl:مع بارام الاسم="بارديسبلايلابيل" حدد="'في عملية'"/> <xsl:مع بارام الاسم="باربيرسينت" حدد="$بيرسينتينبروسيس"/> <xsl:مع بارام الاسم="قويريفيلتيرفيلدنامي" حدد="'مركز'"/> <xsl:مع بارام الاسم="قويريفيلتيرفيلدفالوي" حدد="'في عملية'"/> <xsl:مع بارام الاسم="توتاليتيمس" حدد="$توتالينبروسيس"></xsl:مع بارام> </xsl:قالب المكالمة> </الجدول> </td> </tr> </الجدول> </xsl:خلاف ذلك> </xsl:اختر> </xsl:قالب> <!-- هذا القالب لا العمل لعرض البنود الفردية في الرسم البياني الشريطي. ربما عليك أن تفعل أكثر من اللف الخاص بك هنا. --> <xsl:قالب الاسم="شووبار"> <xsl:بارام الاسم="بارديسبلايلابيل" /> <!-- التسمية لإظهار --> <xsl:بارام الاسم="باربيرسينت"/> <!-- بالمئة من إجمالي. --> <xsl:بارام الاسم="قويريفيلتيرفيلدنامي"/> <!-- تستخدم للانتقال إلى الاستعلام & عامل التصفية --> <xsl:بارام الاسم="قويريفيلتيرفيلدفالوي"/> <!-- تستخدم للانتقال إلى الاستعلام & عامل التصفية --> <xsl:بارام الاسم="توتاليتيمس" /> <!-- العدد الإجمالي لهذه بارلابيل --> <tr> <!-- الشريط التسمية نفسها. --> <td فئة="مرض التصلب العصبي المتعدد--فورمبودي" العرض="30%"> <!-- يبني هذه المجموعة التالية من عبارات استعلام من سلسلة أحرف الذي يسمح لنا لأسفل إلى طريقة عرض تمت تصفيتها من البيانات الأساسية. ونحن جعل استخدام عدد قليل من الأشياء هنا: 1. ونحن يمكن أن تمر FilterField1 و FilterValue1 إلى قائمة لتصفية على عمود. 2. SharePoint يتم تمرير معلمة رئيسية بالنسبة لنا, ليستورلدير يشير إلى القائمة الأساسية التي دفوب هذا هو "تشغيل". ليست متعة XSL? --> <xsl:النص تعطيل-إخراج-الهروب="نعم"> <![CDATA[<a href ="]]></xsl:النص> <xsl:القيمة حدد="$ليستورلدير"/> <xsl:النص تعطيل-إخراج-الهروب="نعم"><![CDATA[?FilterField1 =]]></xsl:النص> <xsl:القيمة حدد="$قويريفيلتيرفيلدنامي"/> <xsl:النص تعطيل-إخراج-الهروب="نعم"><![CDATA[&FilterValue1 =]]></xsl:النص> <xsl:القيمة حدد="$قويريفيلتيرفيلدفالوي"/> <xsl:النص تعطيل-إخراج-الهروب="نعم"><![CDATA[">]]></xsl:النص> <xsl:القيمة حدد="$بارديسبلايلابيل"/> <xsl:النص تعطيل-إخراج-الهروب="نعم"><![CDATA[</أ>]]></xsl:النص> <!-- بت التالية تظهر بعض الأرقام في تنسيق: "(المجموع / % ومن المجموع)" --> (<xsl:القيمة حدد="$توتاليتيمس"/> / <!-- وهذا يخلق علامة النسبة مئوية لطيفة بالنسبة لنا. بفضل, مايكروسوفت! --> <xsl:قالب المكالمة الاسم="بيرسينتفورمات"> <xsl:مع بارام الاسم="في المائة" حدد="$باربيرسينت"/> </xsl:قالب المكالمة>) </td> <!-- وأخيراً, تنبعث <td> العلامة للشريط نفسه.--> <td> <الجدول سيلبادينج="0" سيلسباسينج="0" الحدود="0" العرض="{الجولة($باربيرسينت * 100)+1}%"> <tr لون الخلفية="الأحمر"> <xsl:النص تعطيل-إخراج-الهروب="نعم"><![CDATA[&nbsp;]]></xsl:النص> </tr> </الجدول> </td> </tr> </xsl:قالب> <!-- هذا مأخوذ مباشرة من بعض XSL التي وجدت في قالب مرض التصلب العصبي المتعدد. --> <xsl:قالب الاسم="بيرسينتفورمات"> <xsl:بارام الاسم="في المائة"/> <xsl:اختر> <xsl:عندما اختبار="تنسيق الرقم($في المائة, '#,##0%;-#,##0%')= 'نان'">0%</xsl:عندما> <xsl:خلاف ذلك> <xsl:القيمة حدد="تنسيق الرقم($في المائة, '#,##0%;-#,##0%')" /> </xsl:خلاف ذلك> </xsl:اختر> </xsl:قالب> </xsl:أوراق الأنماط>

النتائج:

XSL من أعلاه ينشئ هذا الرسم البياني:

الصورة

انتقل لأسفل للبيانات الأساسية عن طريق النقر على رمز الحالة:

الصورة

أفكار ختامية:

يمكن أن يكون هذا المعمم?

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

الرسوم البيانية العمودية:

هذا رسم بياني شريطي أفقي. فمن الممكن بالتأكيد لإنشاء رسم بياني عمودي. نحن بحاجة فقط لتغيير HTML. وأود أن ابدأ بنفس الطريقة: إنشاء تمثيل HTML لرسم شريط عمودي وثم معرفة كيفية الحصول على ذلك عن طريق XSL. إذا كان أي شخص مهتم في هذا, أنا يمكن أن يكون إقناع جربة والعمل بها على مكامن الخلل. إذا كان شخص ما قد فعلت ذلك, يرجى إعلامي وسأرتبط بكل سرور بمدونتك 🙂

وأعتقد أن التحدي مع رسم بياني عمودي أن التسميات للرسم البياني أكثر صعوبة لإدارة, ولكن بالتأكيد ليس مستحيلاً.

حقل اسم مسكتك:

هناك أشياء اثنين على الأقل نبحث مع أسماء الحقول الخاصة بك.

الأولى, اسم حقل بمسافة يجب أن يكون قد فر في XSL. ربما تكون هذه مشكلة هنا:

        <xsl:متغير الاسم="توتالبروبوسيد" 
حدد="العد(/دسكويريريسبونسي/الصفوف/الصف[تطبيع والفضاء(@Status) = 'اقترح'])" />

إذا كان وضعك "" هو فعلا تسمية العمود "رمز الحالة" ثم كنت بحاجة إلى مرجع له ك "Status_x0020_Code":

   <xsl:متغير الاسم="توتالبروبوسيد" 
حدد="العد(/دسكويريريسبونسي/الصفوف/الصف[تطبيع والفضاء(@Status_x0020_Code) = 'اقترح'])" />

الثانية, وأنا غامض بعض الشيء في هذا, ولكن تحتاج أيضا إلى أن تكون على أهبة الاستعداد لتغير اسم حقل. إذا قمت بتسمية حقل "رمز الحالة" وثم في وقت لاحق على, إعادة تسميتها إلى "مركز AFE", اسم الداخلية "" لا تغيير. سيكون الاسم الداخلي لا يزال "رمز الحالة" ويجب أن يكون المشار إليه بوصفه "Status_x0020_Code". "الموارد الأخرى" روابط قد تساعد على تشخيص وتصحيح هذا النوع من المشكلة.

حول هذا اللون:

وقد اخترت "الأحمر" لأنه من دواعي السرور بالنسبة لي في هذه اللحظة. أنه لا صفقة كبيرة لإظهار ألوان مختلفة بغية توفير أكثر من مجرد وصف بصرية لعدد, ولكن أيضا توفير KPI مفيدة. وعلى سبيل المثال, إذا كانت النسبة المئوية من "المتوقفة" في AFE > 10% ثم تبين أنها حمراء, وإلا تظهر باللون الأسود. استخدام <xsl:اختر> لإنجاز هذا.

موارد أخرى:

تحويل سعيد!

<نهاية/>

الاشتراك في بلادي بلوق!

بيانات أم الحالية عن طريق قائمة مخصصة (أو, بعد آخر أوم ديسبلايور البيانات [مثل ياك, ولكن مختلفة])

اليوم, قضيت حفنة من الساعات التي تعقب السبب الجذري وراء الرسالة "اسم العمود الذي قمت بإدخاله هو مسبقاً قيد الاستخدام أو محفوظة. اختر اسماً آخر."

ويمكن إنشاء العمود في السؤال, حذف وإعادة إنشائها في بيئة أخرى, ولذلك كنت أعرف أنه لم يكن اسم محجوز. ومع ذلك, ببساطة لم أستطع العثور على العمود في أي مكان عبر واجهة المستخدم SharePoint القياسية في أي موقع في مجموعة الموقع.

أنا أرسلت إلى منتديات MSDN هنا وتقهر أندرو وودوارد وأشار لي باتجاه الكائن نموذج البيانات الأساسية.

أنا انفجرت على [كدبلاكس] للعثور على بعض الأدوات التي سوف يساعدني على الأقران في البيانات الأساسية أوم ومساعدتي في تحديد موقع المشكلة.

حاولت عدة أدوات وكانت باردة جداً ومثيرة للاهتمام ولكن في نهاية المطاف, واجهة المستخدم ليست جيدة بما يكفي لهدفي. وأنا انتقد ليس لهم بأي وسيلة, ولكن وضوح الأداة--صناع لم يكن لديهم مشكلتي في الاعتبار عندما أنشأوا بها واجهة المستخدم :). معظم الناس يتصورون أن تستثمر قدرا كبيرا من الوقت والجهد في إنشاء محطة العمل / تطبيقات العميل التي توفر طرق عرض شجرة, زر الماوس الأيمن فوق قوائم السياق وما إلى ذلك. هذه لطيفة وجميع, ولكن الكثير من العمل خلق تجربة مستخدم أعلى من الخط الذي أيضا مرنة جداً.

أنا حقاً بحاجة إجابة لهذه المشكلة. أنه حدث بالنسبة لي إذا كان يمكن الحصول على كافة الأعمدة موقع في مجموعة الموقع إلى قائمة مخصصة, أنا يمكن أن تصفية, فرز وإنشاء طرق العرض التي سوف يساعدني على إيجاد هذا العمود يفترض أنها موجودة (الذي فعلته, راجع للشغل). ذهبت إلى الأمام، وأن وساعة أو ساعتين في وقت لاحق, قد تحميل جميع أعمدة موقع بلدي إلى قائمة مخصصة مع التجميع, الفرز وما إلى ذلك. العثور على جوابي بعد خمس دقائق.

إذا وعندما أخذ بنجاح عبر العالم, وأعتقد أنا سوف المرسوم أن جميع مقدمي أدوات SharePoint يجب أن تنظر بجدية في تطفو على السطح على كائن نموذج البيانات في قائمة مخصصة. بهذه الطريقة, لدى السلطة للبحث في أي حال من الأحوال أريد (مقيدة, طبعًا, من ميزات sharepoint القياسية).