شريط ما "زال مرتفعا جداً" "تمديد موس"

اليوم, كنت تعمل مع عميل وتصف كيفية تعديل جزء ويب الخاص استعلام المحتوى، وعرض بتات إضافية من المعلومات من نوع محتوى.

"أولاً., يمكنك تكوين كقوب للاتصال مصادر البيانات, ثم يمكنك تصدير إلى محطة العمل الخاصة بك, تعديل <كوممونفيوفيلدس>, تحميل, إزالة الأصلي والآن ' جاهزة’ لعرض تلك الأعمدة الأخرى. القادم, فتح "مصمم SharePoint", انتقل إلى جذر مجموعة الموقع وتحديد موقع ItemStyle.xsl. نسخ أحد القوالب كنقطة انطلاق مفيدة. العودة وتعديل كقوب لجعل استخدام هذا القالب الجديد. وأخيراً, تعديل القالب لتقديم حقول جديدة! (لا تنسى للتحقق من ذلك مرة أخرى في ذلك الأخرى المستخدمين يمكن الاطلاع على النتائج)."

من الواضح تماما كل شيء بالنسبة لي (ومعظمنا SharePoint أنواع المطور) ما يدور وكيف أنها لطيفة جداً, حقا, أن جوانب استرجاع البيانات كقوب ذلك جيدا-منفصلة من جوانب عرض البيانات. لكن, ليس من السهل جداً لشرح, هل هو?

<نهاية/>

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

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

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

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

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

<نهاية/>

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

نعم/لا (خانة الاختيار) تصفية في "جزء ويب الخاص باستعلام المحتوى"

لتصفية استعلام نعم/لا يوجد مربع الاختيار بعنوان "المعلم جزء من الغرام", تكوين كقوب مثل هذا:

الصورة

هذا هو آخر واحد من هذه الأسئلة واضحة-مرة واحدة-أنت تعرف-it-ولكن هاردتوفيندانانسويرتو: كيفية تصفية على نعم/لا يوجد مربع الاختيار استخدام جزء ويب الخاص باستعلام المحتوى.

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

فمن السهل جداً: صحيح القيم = "1" وقيم زائفة لا يساوي "1" (ريترو جميلة, فعلا).

في المثال أعلاه, أنا إنشاء عمود موقع من نوع "نعم/لا (خانة الاختيار)" المسماة "PG معلما". إضافتها إلى مكتبة دوك, تحميل وثائق قليلة, قم بتعيين قيمة لمدة عامين واختبار.

<نهاية/>

إنشاء شريط الرسوم البيانية في 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 “من له حق الوصول” التقارير

التحديث 01/28/08: ويعالج هذا المشروع codeplex هذه المسألة: http://www.codeplex.com/AccessChecker. أنا لم تستخدم, ولكن تبدو واعدة إذا كانت هذه هي قضية تحتاج إلى معالجة في البيئة الخاصة بك.

التحديث 11/13/08: كتبت جويل Oleson وظيفة جيدة جداً على أكبر قضية إدارة الأمن هنا: http://www.sharepointjoel.com/Lists/Posts/Post.aspx?قائمة = 0cd1a63d% 2D183c% 2D4fc2% 2 د ٪ 8320 2Dba5369008acb&معرف = 113. أنه يرتبط بعدد من موارد أخرى مفيدة.

منتدى المستخدمين والعملاء غالباً ما اطرح سؤالاً على طول هذه الخطوط: "كيف أنا توليد قائمة من كافة المستخدمين بالوصول إلى موقع" أو "كيف يمكن أنا تلقائياً تنبيه كافة المستخدمين الذين لديهم حق الوصول إلى قائمة حول التغييرات التي تم إجراؤها على قائمة?"

وهناك لا للخروج من مربع الحل لهذا. إذا كنت تفكر في ذلك للحظة واحدة, ليس من الصعب أن نفهم لماذا.

الأمن SharePoint مرن جداً. وهناك على الأقل أربع فئات رئيسية من المستخدمين:

  • المستخدمون المجهولون.
  • مستخدمي SharePoint ومجموعات.
  • مستخدمي Active directory.
  • مصادقة النماذج (FBA) المستخدمين.

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

كيف تتعامل مع هذه المنظمات? أحب أن أسمع منكم في التعليقات أو البريد الإلكتروني.

</نهاية>

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

موس يحكي لي عمود اسمي المحجوزة أو في الاستخدام … ولكن ليس

التحديث 12/04/07: انظر هذا Microsoft KB (http://support.microsoft.com/kb/923589) للحصول على معلومات ذات صلة.

فعلا, اتضح أنه هو, لكن تريكسي وكان موس تجعل من الصعب.

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

  • أنه يحاول إضافة عمود موقع يسمى "الكمية" والردود موس: "اسم العمود الذي قمت بإدخاله مسبقاً قيد الاستخدام أو محجوز. اختر اسماً آخر."
  • قال أنه محاولات لإضافته إلى بيئة أخرى، وأن يعمل. ولذلك, "الكمية" ليس اسم محجوز.
  • أنه يحاول العثور على عمود موقع موجود اسمه "الكمية" في مجموعة الموقع هذه. أنه لا يمكن العثور عليه.

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

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

SharePoint وكان يقول الحقيقة. لا يكاد تجدر الإشارة إلى أن هذه الرسالة ليست مفيدة كما أنها يمكن أن تكون. سيكون من الجميل أن نرى أن شوكة رسالة إلى اثنين من رسائل مختلفة في المستقبل: 1) ويقول أن اسم العمود محجوز أو لا. 2) إذا هو غير محفوظة, إظهار الموقع, أو على الأقل المجموعة, حيث يستخدم اسم العمود بالفعل.

</نهاية>

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

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

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

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

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

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

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

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

مصمم SharePoint سير عمل مخصص — المراقبة حول <نوع مصمم فيلدبيند =”ل StringBuilder” … />

مجرد ملاحظة سريعة أن هناك فرق هام جداً بين هذه التعاريف اثنين:

<حقل فيلدبيند = "InParam1" ديسيجنيرتيبي = "ل StringBuilder" معرف = "2" النص = "معلمة الإدخال #1"/>

مقابل:

<حقل فيلدبيند = "InParam1" معرف = "2" النص = "معلمة الإدخال #1"/>

الأولى يظهر مثل هذا في الحزب الديمقراطي الاشتراكي:

الصورة

في حين مثل هذا يظهر هذا الأخير:

الصورة

لست متأكدًا من مدى فائدة لقطات الشاشة هذه ولكني بذلت جهديًا لتصويرها حتى يتوجب عليك مشاهدتها 🙂

الملاحظة هذا: ل StringBuilder يسمح لك لبناء سلسلة (ومن الواضح أن) عن طريق خلط معا سلسلة حرفية وبيانات سير العمل (عن طريق "إضافة بحث" الزر في الزاوية اليسرى السفلي). عند استخدام الزر "إضافة بحث", يقوم بإدراج رمز في النموذج "[%الرمز المميز %]". عندما يقوم SharePoint باستدعاء الإجراء المخصص الخاص بك, (التعليمات البرمجية C# في حالتي), يمر SharePoint على المنوال نفسه, لا القيمة للرمز المميز. إذا كنت تستخدم نوع الافتراضي المصمم (والنوع الثاني), شير يوسع الرمز المميز وتمرير القيمة الفعلية للرمز المميز للعمل الخاص بك.

ل StringBuilder = سيئة, المصمم نوع الافتراضي = حسن.

طبعًا, هذا هو ما ليس حقاً. لا مجرد محاولة لتمرير معلمة إلى الإجراء المخصص الخاص بك عند المصمم بكتابة = StringBuilder. استخدم النوع الافتراضي المصمم وسلسلة ل StringBuilder إليها مقدما إذا كنت بحاجة إلى بناء سلاسل معقدة في سير العمل الخاص بك (وبالمناسبة الذي هو بالضبط ما لا أحد لخلق موضوع حيوي لعمل البريد الإلكتروني, ولكن هذا موضوع لآخر بلوق الدخول, هار هار).

<نهاية/>

تنشيط سير العمل قبل الأوان — حلاً غير الطبية

التحديث: انظر هذه المناقشة MSDN, الإدخال الأخير خاصة: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. فهو يصف شرط أن يجوز اختصار حلبة هذا كل شيء. باختصار, قد تكون بسيطة مثل إجراء واحد على الأقل من الحقول الإلزامية.

لدى مكتبة المستندات التي تؤيد ثمانية أنواع المحتوى.

لدى سير عمل مصمم SharePoint التي تريد حساب وتعيين تاريخ تذكير "" بمجرد طرح 30 أيام من عمود آخر, "تاريخ الاستحقاق". يجب أن يحدث هذا فقط لأحد أنواع المحتوى, "التأمين". الأعمال التجارية ويهدف إلى إنتاج KPI تدل على فئتين من وثائق التأمين: "على وشك أن تنتهي" و "منتهية الصلاحية." (يمكنك قراءة المزيد حول هذا النوع من KPI وأكثر جوهرية الحفر إلى أسفل هنا).

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

لا تعمل هذه الاستراتيجية عندما أقوم بتحميل مستند.

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

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

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

لقد كتبت عن هذا في منتديات MSDN هنا: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1