ჩვენების ინფორმაციის შეკითხვის ვებ ნაწილი შედეგები Grid / მაგიდის

მიმოხილვა და მიზანი

იმ ყუთში, Moss’ ინფორმაციის შეკითხვის ვებ ნაწილი (CQWP) მონიტორები მისი შედეგები სიაში ფორმატში, similar to search results. It is also possible to display the results in a grid format (i.e. HTML მაგიდის ფორმატში). Grid formats are better in some circumstances. I describe how to achieve that effect in this article.

ბიზნეს სცენარი

I have worked with a client on an enterprise-wide MOSS rollout. We have designed their taxonomy such that projects are first class citizens in the hierarchy and have their own top level site. Project managers maintain a singleton list of project summary information, როგორიცაა სათაური, ბიუჯეტი, მოსალოდნელია დასრულების თარიღი, remaining budget and other summary type fields. By "singleton" I mean a custom SharePoint list guaranteed to contain only one item. Simplistically, როგორც ჩანს, ამ:

იმიჯი

ტექნიკური მიდგომა ბევრად იგივე, როგორც ეს აღწერილია აქ (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). The CQWP uses an XSL transform to emit HTML for the browser to render.

I always envision the result before diving into the XSL because XSL is a nightmare. Here’s my desired result:

იმიჯი

HTML მსგავსი ქმნის, რომ შედეგი:

<html>
 <სხეულის>
 <ცენტრი>
 <მაგიდა სასაზღვრო= 1>

<!-- Labels ->
 <tr bgcolor= Blue>
 <td><font ფერი= თეთრი><>პროექტის დასახელება</></font></td>
 <td უერთდებიან= უფლება><font ფერი= თეთრი><>დასრულება თარიღი</></font></td>
 <td უერთდებიან= უფლება><font ფერი= თეთრი><>ბიუჯეტი</></font></td>
 <td უერთდებიან= უფლება><font ფერი= თეთრი><>ფაქტობრივი ხარჯი</></font></td>
 <td><font ფერი= თეთრი><>სრული სტატუსი</></font></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. დამატება CQWP რომ ვებ გვერდზე და კონფიგურირება მოძიება შენი სიები.
  5. შეცვლა CQWP-ს XML შეგროვება up დამატებითი სვეტები.
  6. შეცვლა XSL წარმოქმნის მაგიდა.

I’m going to concentrate on number six. Numbers one through four are straight-forward and something that any CQWP user has already done. Number five has been well-documented by others including this exhaustive screen-shot laden article from MSDN აქ (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) და Heather სოლომონის წაკითხვა აქ (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

კაკალი და ჭანჭიკები

დასაწყისი და გადადგას ნაბიჯები, ერთი მეშვეობით ხუთი მიხედვით MSDN დოკუმენტაცია და Heather სოლომონ სტატია.

ამ ეტაპზე, თქვენ დაემატა თქვენს CQWP გვერდზე და თქვენ თქვენი <CommonViewFields> კონფიგურაცია, როგორც საჭიროა.

შემდეგ ჩვეულ ნაბიჯები, მე ამ შუალედური შედეგები:

1. შექმნა ინფორმაციის ტიპი, a templatized custom list for that content type and two sites. Here is the content type:

იმიჯი

აქ არის საიტი სტრუქტურა:

იმიჯი

2. დამატება CQWP შექმნის შემდეგ ჩემი პროექტი subsites და სინგლეტონი პროექტის შემაჯამებელი სიები:

იმიჯი

3. დამატება დამატებითი ინფორმაცია მინდა მეშვეობით <CommonViewFields>:

        <ქონების სახელი="CommonViewFields" ტიპის="სიმებიანი">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</ქონების>

შენიშვნა, რომ უნდა შევინარჩუნოთ ყველა ქონების სფეროები ერთ ხაზს, ან საერთოდ არ იმუშავებს (CQWP რომ მითხრა, რომ შეკითხვის დაბრუნდა არ არის პროდუქცია).

4. ამ ეტაპზე, we’re ready to move beyond the MSDN article and flip on over to Heather Solomon’s article. Follow her steps starting near step #5 რათა შეიქმნას ადრინდელს / unghosted version of ItemStyle.xsl. I follow Heather’s advice, მდე მეშვეობით ნაბიჯი 11 და მიიღოს ამ შუალედური შედეგები:

4.1: დაარქვით ჩემს XSL template შემდეგი რედაქციით:

<XSL:template name="Grid" match="Row[@Style=’Grid’]" mode="itemstyle">

მე ასევე ოდნავ შეცვალოს მისი ვარაუდით <XSL:for-თითოეული …> დამატებით <br /> tag უზრუნველყოს სუფთა ჩამონათვალი:

    <XSL:for-თითოეული შერჩევა="@ *">
      P:<XSL:ღირებულების შესახებ შერჩევა="სახელი()" /><br/>
    </XSL:for-თითოეული>

4.2: შევცვალო ვებ ნაწილი, go to appearance and select my "Grid" სტილი:

იმიჯი

მიმართვა ცვლილება და აი, შედეგიც:

იმიჯი

ჩვენ ვხედავთ, ზემოთ რომ სფეროებში ჩვენ გვინდა (პროექტის დასახელება, ხარჯზე, სტატუსი, და ა.შ.) are available for us to use when we emit the HTML. Not only that, but we see the names by which we must reference those columns in the XSL. მაგალითად, we reference Project Status as "Project_x005F_x0020_Name".

ამ ეტაპზე, ჩვენ დატოვება Heather ს ბლოგი და shoulders ამ გიგანტი, მე დამატება ჩემი საკუთარი ცოტა.

ContentQueryMain.xsl

შენიშვნა: როდესაც ცვლილებების ორივე ContentQueryMain.xsl აგრეთვე ItemStyle.xsl, თქვენ უნდა შეამოწმოს იმ ფაილებს უკან ადრე ხედავთ ეფექტი თქვენი ცვლილებები.

იყიდება ქსელის მიღების მიზნით, MOSS uses two different XSL files to produce the results we see from a CQWP. To generate the previous bit of output, we modified ItemStyle.xsl. MOSS actually uses another XSL file, ContentQueryMain.xsl to in conjunction with ItemStyle.xsl to generate its HTML. As its name implies, ContentQueryMain.xsl is the "main" XSL that controls the overall flow of translation. It iterates through all the found items and passes them one by one to templates in ItemStyle.xsl. We’ll modify ItemStyle.xsl to generate the open <მაგიდა> tag ადრე ასხივებენ პირველი რიგის მონაცემები და დახურვის <მაგიდა> tag after emitting the last row. To accomplish this, ContentQueryMain.xsl is modified to pass two parameters to our "grid" template in ItemStyle.xsl, "last row" and "current row". ItemStyle.xsl uses these to conditionally emit the necessary tags.

გამოყენება Heather სოლომონ ტექნიკურად, we locate ContentQueryMain.xsl. It is located in the same place as ItemStyle.xsl. This screen shot should help:

იმიჯი

ჩვენ უნდა მოვახერხოთ, შემდეგი სახის ცვლილებები:

  • შეცვლა XSL template, "CallItemTemplate" that actually invokes our Grid template in ItemStyle.xsl. We will pass two parameters to the Grid template so that it will have the data it needs to conditionally generate opening and closing <მაგიდა> tags.
  • Modify another bit of ContentQueryMain.xsl that calls the "CallItemTemplate" to pass it a "LastRow" პარამეტრების ისე, რომ LastRow შეიძლება გადაეცემა ჩვენი ქსელის შაბლონი.

Locate the template named "OuterTemplate.CallItemTemplate" განსაზღვრული სიმებიანი:

  <XSL:template სახელი="OuterTemplate.CallItemTemplate">

ჩანაცვლება მთელი template შემდეგი რედაქციით:

  <XSL:template სახელი="OuterTemplate.CallItemTemplate">
    <XSL:შეჩერება სახელი="CurPosition" />

    <!--
      Add the "LastRow" პარამეტრების.
      We only use it when the item style pass in is "Grid".
    -->
    <XSL:შეჩერება სახელი="LastRow" />

    <XSL:აირჩიოს>
      <XSL:როდესაც ტესტი="@ სტილი = 'NewsRollUpItem "">
        <XSL:ვრცელდება-თარგები შერჩევა="." რეჟიმი="itemstyle">
          <XSL:with-param სახელი="EditMode" შერჩევა="$cbq_iseditmode" />
        </XSL:ვრცელდება-თარგები>
      </XSL:როდესაც>
      <XSL:როდესაც ტესტი="@ სტილი = 'NewsBigItem "">
        <XSL:ვრცელდება-თარგები შერჩევა="." რეჟიმი="itemstyle">
          <XSL:with-param სახელი="CurPos" შერჩევა="$CurPosition" />
        </XSL:ვრცელდება-თარგები>
      </XSL:როდესაც>
      <XSL:როდესაც ტესტი="@ სტილი = 'NewsCategoryItem "">
        <XSL:ვრცელდება-თარგები შერჩევა="." რეჟიმი="itemstyle">
          <XSL:with-param სახელი="CurPos" შერჩევა="$CurPosition" />
        </XSL:ვრცელდება-თარგები>
      </XSL:როდესაც>

      <!--
              უღელტეხილის მიმდინარე პოზიცია და lastrow to Grid itemstyle.xsl template.
              ItemStyle.xsl გამოიყენებს, რომ გადასცემს ღია და დახურვის <მაგიდა> tags.
      -->
      <XSL:როდესაც ტესტი="@ სტილი = 'Grid "">
        <XSL:ვრცელდება-თარგები შერჩევა="." რეჟიმი="itemstyle">
          <XSL:with-param სახელი="CurPos" შერჩევა="$CurPosition" />
          <XSL:with-param სახელი="ბოლო" შერჩევა="$LastRow" />
        </XSL:ვრცელდება-თარგები>
      </XSL:როდესაც>

      <XSL:წინააღმდეგ შემთხვევაში>
        <XSL:ვრცელდება-თარგები შერჩევა="." რეჟიმი="itemstyle">
        </XSL:ვრცელდება-თარგები>
      </XSL:წინააღმდეგ შემთხვევაში>
    </XSL:აირჩიოს>
  </XSL:template>

კომენტარები აღწერს მიზნით ცვლილებები.

რა თქმა უნდა, the "OuterTemplate.CallItemTemplate" is itself called from another template. Locate that template by searching for this text string:

<XSL:template სახელი="OuterTemplate.Body">

გადახვევა მეშვეობით ინსტრუქციები OuterTemplate.Body და ჩადეთ LastRow პარამეტრების შემდეგი რედაქციით (ნაჩვენებია კომენტარის კურსივით):

<XSL:ზარის template სახელი="OuterTemplate.CallItemTemplate">
  <XSL:with-param სახელი="CurPosition" შერჩევა="$CurPosition" />
  <!-- ჩადეთ LastRow პარამეტრების. -->
  <XSL:with-param სახელი="LastRow" შერჩევა="$LastRow"/>
</XSL:ზარის template>

მას შემდეგ, რაც ეს ყველაფერი, ჩვენ საბოლოოდ არ რამ შეიქმნა სათანადოდ ისე, რომ ჩვენი ItemStyle.xsl შეიძლება გადასცემს <მაგიდა> tags at უფლება ადგილი.

ItemStyle.Xsl

შენიშვნა: ისევ, შემოწმება ItemStyle.xsl მიღების შემდეგ რაიმე ცვლილება ისე, რომ ხედავთ ეფექტი ის ცვლილებები.

ჩვენ გვყავს ორი ამოცანა აქ:

  • Replace the entire Grid template. You can copy/paste from below.
  • Add some mumbo jumbo outside the template definition that enables "formatcurrency" template to work. (თქვენ შეგიძლიათ თქვათ, რომ მე tenuous სახელური XSL).

პირველი, უახლოეს დაბრუნება of ItemStyle.xsl, დაამატოთ ეს ხაზი:

  <!-- ზოგიერთი mumbo jumbo, რომელიც საშუალებას გვაძლევს ცარიელია U.S. ვალუტის. -->
  <XSL:ათობითი ფორმატის სახელი="პერსონალის" ციფრი="D" />

  <XSL:template სახელი="სტანდარტული" ემთხვევა="*" რეჟიმი="itemstyle">

შენიშვნა, რომ მე დასძინა, რომ უშუალოდ <XSL:template name="Default" …> definition.

შემდეგი, go back to our Grid template. Replace the entire Grid template with the code below. It is thoroughly commented, but don’t hesitate to email me or leave comments on my blog if you have questions.

  <XSL:template სახელი="Grid" ემთხვევა="Row[@ სტილი = 'Grid "]" რეჟიმი="itemstyle">

    <!--
      ContentMain.xsl passes CurPos and Last.
      We use these to conditionally emit the open and closing <მაგიდა> tags.
    -->
    <XSL:შეჩერება სახელი="CurPos" />
    <XSL:შეჩერება სახელი="ბოლო" />

    <!-- The following variables are unmodified from the standard ItemStyle.xsl -->
    <XSL:ცვლადი სახელი="SafeImageUrl">
      <XSL:ზარის template სახელი="OuterTemplate.GetSafeStaticUrl">
        <XSL:with-param სახელი="UrlColumnName" შერჩევა="'ImageUrl'"/>
      </XSL:ზარის template>
    </XSL:ცვლადი>
    <XSL:ცვლადი სახელი="SafeLinkUrl">
      <XSL:ზარის template სახელი="OuterTemplate.GetSafeLink">
        <XSL:with-param სახელი="UrlColumnName" შერჩევა="'LinkUrl'"/>
      </XSL:ზარის template>
    </XSL:ცვლადი>
    <XSL:ცვლადი სახელი="DisplayTitle">
      <XSL:ზარის template სახელი="OuterTemplate.GetTitle">
        <XSL:with-param სახელი="სათაური" შერჩევა="@Title"/>
        <XSL:with-param სახელი="UrlColumnName" შერჩევა="'LinkUrl'"/>
      </XSL:ზარის template>
    </XSL:ცვლადი>
    <XSL:ცვლადი სახელი="LinkTarget">
      <XSL:თუ ტესტი="@OpenInNewWindow = 'True'" >_blank</XSL:თუ>
    </XSL:ცვლადი>

    <!--
      Here we define a variable, "tableStart".  This contains the HTML
      that we use to define the opening of the table as well as the column
      labels.  Note that if CurPos = 1, it includes the HTML in a CDATA tag.
      Otherwise, it will be empty.

      The value of tableStart is emited every time ItemStyle is called via
      ContentQueryMain.xsl.
    -->
    <XSL:ცვლადი სახელი="tableStart">
      <XSL:თუ ტესტი="$CurPos = 1">
        <![CDATA[
        <table border=1>
          <tr bgcolor="blue">
            <td><font color="white"><ბ>პროექტის დასახელება</ბ></font></td>
            <td align="right"><font color="white"><ბ>დასრულება თარიღი</ბ></font></td>
            <td align="right"><font color="white"><ბ>ბიუჯეტი</ბ></font></td>
            <td align="right"><font color="white"><ბ>ფაქტობრივი ხარჯი</ბ></font></td>
            <td><font color="white"><ბ>სრული სტატუსი</ბ></font></td>
          </tr>
        ]]>
      </XSL:თუ>
    </XSL:ცვლადი>

    <!--
      Another variable, tableEnd simply defines the closing table tag.

      As with tableStart, it's always emited.  This is why its value is
      assigned conditionally based upon whether we've been passed the last
      row by ContentQueryMain.xsl.
    -->
    <XSL:ცვლადი სახელი="tableEnd">
      <XSL:თუ ტესტი="$CurPos = $Last">
        <![CDATA[ </მაგიდა> ]]>
      </XSL:თუ>
    </XSL:ცვლადი>

    <!--
      Always emit the contents of tableStart.  If this is not the first
      row passed to us by ContentQueryMain.xsl, then we know its value
      will be blank.

      Disable output escaping because when tableStart it not blank, ეს
      .  თუ
      , it will generate
      stuff like "&ლ;მაგიდა&gt;" instead of "<მაგიდა>".
    -->
    <XSL:ღირებულების შესახებ შერჩევა="$tableStart" გაუქმდება და გამოშვების-აფარებს="დიახ"/>


    <tr>
      <!--
      P: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:ზარის template სახელი="formatcurrency">
          <XSL:with-param სახელი="ღირებულება" 
შერჩევა="@ Project_x005F_x0020_Budget"></XSL:with-param> </XSL:ზარის template> </td> <td უერთდებიან="უფლება"> <XSL:ზარის template სახელი="formatcurrency"> <XSL:with-param სახელი="ღირებულება" შერჩევა="@ Project_x005F_x0020_Expenses">
</XSL:with-param> </XSL:ზარის template> </td> <td> <XSL:ღირებულების შესახებ შერჩევა="@ Project_x005F_x0020_Status"/> </td> <!-- ყველა ქვემოთ კომენტარში აღნიშნავს, რომ ნათელი რამ. თუმცა, მოუტანს მას უკან და პერსონალი მას <td> სანახავად მისი         . --> <!-- <div id="linkitem" class="item"> <XSL:if test="string-length($SafeImageUrl) != 0"> <div class="image-area-left"> <a href="{$SafeLinkUrl}" target="{$LinkTarget}"> <img class="image-fixed-width" src="{$SafeImageUrl}"
alt="{@ ImageUrlAltText}"/> </a> </div> </XSL:თუ> <div class="link-item"> <XSL:ზარის template
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href="{$SafeLinkUrl}"
target="{$LinkTarget}" title="{@ LinkToolTip}"> <XSL:value-of select="$DisplayTitle"/> </a> <div class="description"> <XSL:value-of select="@Description" /> </div> </div> </div>
--> </tr> <!-- გადასცემს დახურვის მაგიდა tag. თუ ჩვენ არ ვართ ბოლო ზედიზედ, ეს იქნება ცარიელი. --> <XSL:ღირებულების შესახებ შერჩევა="$tableEnd" გაუქმდება და გამოშვების-აფარებს="დიახ"/> </XSL:template> <XSL:template სახელი="formatcurrency"> <XSL:შეჩერება სახელი="ღირებულება" შერჩევა="0" /> <XSL:ღირებულების შესახებ შერჩევა='ფორმატი ნომერი($ღირებულება, "$DDD,DDD,DDD.DD", "staff")' /> </XSL:template>

22 thoughts on "ჩვენების ინფორმაციის შეკითხვის ვებ ნაწილი შედეგები Grid / მაგიდის

  1. ანდრეას

    Aah… ეს იმიტომ, რომ მე დაასახელა ჩემი სია სტილი განსხვავებულად და არ აცნობიერებენ, რომ ContentQueryMain.xsl ამოწმებს ამისთვის "სტილი":

    <XSL:როდესაც ტესტი = "@ სტილი =" NameOfMyStyle ">

    ამასთან გუნდს დაარქვა მუშაობდა. 🙂

  2. ანდრეას

    იგი თითქმის მუშაობდა ჩემთვის: მე ახერხებენ დაბეჭდავს </მაგიდა> დასრულდება tag სწორად, მაგრამ დაწყებული tag აკლია. როგორც ჩანს, ტესტი = "$ CurPos = 1" არ დაბრუნდება ნამდვილი. მაგრამ რატომ?

  3. Anand singh Rawat

    დიდი Post. პოლ მე არ კეთდება ყველა ზემოთ რამ. მე მაქვს შეკითხვა, როგორ შემიძლია მიღწევა თანხა "საერთო საბაზრო ხარჯები" ან თანხა ღირებულება ორ ბურჯს.

  4. ლიზა

    თქვენ გაკეთდეს ნებისმიერი სამუშაო შექმნას საბაჟო ContentQueryMain და ItemStyle XSL ფაილი? ამიტომ მე ვთხოვ არის ის, რომ მე არ მინდა ფიქრი ჩემს საბაჟო სტილის მყოფი ახლით ნებისმიერი წერთ ან განახლება. გაქვთ მაგალითები? მე სცადა მიღების იდენტური ასლი ContentQueryMain.xsl და ატვირთვა, რომ ახალი საბაჟო ასლის სტილი ბიბლიოთეკა. როდესაც აყენებს მინიშნება ამ XSL ფაილის. Webpart ნახვა MainXslLink ქონება, მივიღებ 401 არ. საბაჟო XSL ფაილი გამოქვეყნებული მობილური და ყველას აქვს წაკითხული კავშირი.

  5. Andries მარტინს

    ფანტასტიკური პოსტი მადლობა! უკვე ებრძვის ეს ახლა, ბოლო რამდენიმე დღის განმავლობაში.

  6. გრეგ Sheridan

    Hi, ეს იყო ნამდვილად სასარგებლო განთავსებით. მე ეს ყველაფერი სამუშაო, და აგრეთვე განახორციელა მაიკ ბრაუნის შეცვლის ასე რომ ჯგუფები
    შედეგები შიგნით მაგიდაზე, რასაც მე აირჩიოს, როგორც ჯგუფის მიერ პარამეტრი CQWB თვისებები.
    მე სათაური რგოლი ასევე, ასე რომ მუშაობს კარგად. კიდევ მაქვს ერთი პრობლემა, თუმცა. მე დაჯგუფება შედეგები საიტი სახელი. Inside მაგიდა, ეს ჯგუფები მათ ლამაზად, და ეს გამოიყურება დიდი, მაგრამ მაინც დაბეჭდვისას ყველა ჯგუფი
    სახელები(ჩემს შემთხვევაში საიტი სახელები) ზემოთ მაგიდა. ვინმეს იცის, თუ როგორ დაეღწია ამ?
    მადლობა,
    გრეგ

  7. არ არის სახელი

    ნიცაში მუხლის. მოვახერხე, რათა ჩემს მაგიდასთან სახე რო Sharepoint სიების მიერ ანალიზის კოდის სია. აქ არის ძირითადი HTML ბლოკად საჭირო შეესაბამება ItemStyle:

    <TABLE width = "100%" class = "ms-listviewtable" Border = 0 cellspacing = 0 cellpadding = 1, რეჟ = "არა">

    <!–Header–>
    <TR class = "ms-viewheadertr" VALIGN = TOP>
    <TH nowrap ფარგლებს = "col" class = "ms-vh2"><div style = "width:100%;პოზიცია:ნათესავი;დატოვა:0;დაბრუნება:0;">
    <TABLE style = "width:100%;" CtxNum = "1" height = "100%" cellspacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
    <TR>
    <TD width = "100%" Class = "ms-vb" nowrap>
    Texte du titre ici

    </TD>
    <TD style = "პოზიცია:აბსოლუტური;">
    </TD>
    </TR>
    </შ></div>
    </TH>

    <!–გამეორება ყველა თავით საკნებში–>
    </TR>

    <!– მაგიდის მონაცემები –>
    <TR class = "">
    <!–მონაცემთა სვეტი, გამოყენება პავლეს კოდი პირველი ერთი ჰიპერბმულის –>
    <TD კლასის = "ms-vb2">მონაცემთა აქ</TD>

    <!–ცარიელი სვეტი–>
    <TD კლასის = "ms-vb2">
    <span რეჟ = არა></span><
    /TD>

    <!–თარიღი სვეტი–>
    <TD კლასის = "ms-vb2">
    <NOBR>11/12/2008</NOBR>
    </TD>
    </TR>

    <!–***ალტერნატიული ზედიზედ – გამოყენება ახალი XSL ცვლადი, რომელიც ჩადეთ ალტერნატიული დონის საფუძველზე მიმდინარე ზედიზედ modulo 2–>
    <TR class = "ms-მონაცვლეობით">

    </TR>
    </შ>

  8. მაიკ ბრაუნი
    Zoltan,
    ვმუშაობდი იგივე საკითხი, როგორც თქვენ. მინდოდა მთელი ჩემი ნივთები ნაჩვენები დაჯგუფება ისე, ვიდრე უბრალოდ lits. აქ არის თუ როგორ მე ეს მიღწევა.
    ContentQueryMain.xsl
    <XSL:როდესაც ტესტი = "@ სტილი =" ქსელის ">
    <XSL:ვრცელდება-templates აირჩიეთ = "." mode="itemstyle">
    <XSL:ერთად-param name = "CurPos" აირჩიეთ = "$ CurPosition" />
    <XSL:ერთად-param name = "ბოლო" აირჩიეთ = "$ LastRow" />
    <!–დაამატოთ ეს ახალი სექცია გავლა ამ პარამეტრების მითითებით new ჯგუფმა დაიწყო–>
    <XSL:ერთად-param name = "StartNewGroup" აირჩიეთ = "__ begingroup" />
    </XSL:ვრცელდება-თარგები>
    </XSL:როდესაც>
    ItemStyle.xsl
    დამატება თქვენი პარამეტრების
    <XSL:param name = "StartNewGroup" />
    დამატება ამ ტექსტის როგორც პირველი რიგის მონაცემები
    <XSL:აირჩიოს>
    <XSL:როდესაც ტესტი = "$ StartNewGroup = 'True">
    <tr>
    <td >
    <XSL:ზარის თარგის სახელით = "OuterTemplate.GetGroupName">
    <XSL:ერთად-param name = "GroupName" აირჩიეთ = "@ *[სახელი()= $ Group]"/>
    <XSL:ერთად-param name = "GroupType" აირჩიეთ = "$ GroupType" />
    </XSL:ზარის template>
    </td>
    </tr>
    </XSL:როდესაც>
    <XSL:წინააღმდეგ შემთხვევაში>
    </XSL:წინააღმდეგ შემთხვევაში>
    </XSL:აირჩიოს>
    ეს უნდა იზრუნოს თქვენი დაჯგუფება საკითხი თქვენი ქსელის. თითოეული ჯგუფი დაიწყოს ახალი row მითითებით ჯგუფის სახელი. ჩემი გამოსავალი მე რეალურად დაემატა ცარიელი <td /> ამ მონაცემებს აბზაცის იგი ისევე ისე დაჯგუფება გამოირჩეოდა ბევრად უკეთესი.
    Site1
    datacolumn1 datacolumn2 datacolumn3 ა.შ.

    datacolumn1 datacolumn2 datacolumn3 ა.შ.
    Site2
    datacolumn1 datacolumn2 datacolumn3 ა.შ.
    Site3

    datacolumn1 datacolumn2 datacolumn3 ა.შ.

    datacolumn1 datacolumn2 datacolumn3 ა.შ.
    და ა.შ..
  9. Zoltan
    გაუმარჯოს პოლ,
    მადლობა გამოხმაურება, მოვახერხე ორგანიზება ჩემს შეკითხვაზე შედეგების ქსელის, რაც ძალიან სასარგებლოა. თუმცა, მე უნდა წავიდეს უფრო და ჯგუფური ჩემს შედეგების საფუძველზე საიტები. ამ დროისათვის, საიტის სახელები ჩამოთვლილი პირველი, შემდეგ კი მხოლოდ ერთი დიდი ქსელის შეგროვება ყველა რიგები სხვადასხვა საიტები. მსგავსი რამ:
    Site1 სახელი
    Site2 სახელი
    მონაცემთა ამ ქსელის ყველა საიტები
    ნებისმიერი იდეები რაც მე უნდა შეცვალოს, რათა ჩემს, შემდეგი მონაცემებით:
    Site1 სახელი
    მონაცემთა ამ ქსელის for Site1
    Site2 სახელი
    მონაცემთა ამ ქსელის for Site2
    მადლობა წინასწარ,
    Zoltan
  10. პიერ Joubert
    Fantastic Post, გადაწყდება ჩემი პრობლემა მქონდა.
    ჩემი ერთადერთი საკითხი ჩვენებისას AssignedTo სფეროში, მე დააკონფიგურიროთ იგი "მომხმარებელი" სფეროში ტიპისა და იმპორტირებული webpart შემდეგ აჩვენებს, შეცდომა წარმოიშვა:
    "შეცდომა იყო მიღება მონაცემთა არიან ამ ვებ ნაწილი."
    მე შევეცადე იყენებს ყველა შესაძლო სფეროში ტიპის, არაფერი სხვა, რომ "მომხმარებელი" ეს არ არის შეცდომა, მაგრამ ეს არ არიან არაფრის სფეროში. ასე რომ, მე თუ ვთქვათ მომხმარებელი სფეროში ტიპის არის სწორი, ასე რომ, მე უნდა დაკარგული გარემოში სადღაც.
    ნებისმიერი იდეები ამ?
    Regards
    პიერ
  11. Charftong
    დიდი Post!!! ძალიან ძალიან სასარგებლო.
    სწრაფი კითხვა, თქვენ გაკეთდეს რაიმე მუშაობა ჩვენებისას AssignedTo ან ModifiedBy სფეროებში Presence? რატომღაც, მაშინ, როდესაც მე ვცდილობ dipslay ენიჭება სფეროში CQWP, ის ყოველთვის აჩვენებს, როგორც მაგალითად "203;#Charf Tong ". მე ვერ იპოვოს გზა გარშემო.
  12. Jennifer დევისი
    პოლ
    დიდი სტატიის, დიდი მადლობა. ვაკეთებ რაღაც ძალიან ჰგავს ერთმანეთს, მაგრამ გვინდა, რომ არიან ბმული პროექტის ობიექტის ვიდრე ნივთის სია. მაგალითად, ჩვენ გვაქვს 25 მაღალი დონის პროექტი საიტებზე და თითოეული შეიცავს სიაში შინაარსი ტიპის. ეს არის პროექტის სახელი, სამმართველოს, აღწერა. მინდა გამოყენებასთან დაკავშირებით შეკითხვის ვებ ნაწილი უნდა გაიყვანოს ამ მონაცემებს და არ გაამართლა გარდა იმისა, რომ იყოს URL იღებს ჩემთვის პუნქტის შესვლის სიაში და მე ნამდვილად სჭირდება იმისათვის, რომ ჩემთვის პროექტის საიტი. შეგიძლიათ მაძლევს ნებისმიერი რჩევა?
    დიდი მადლობა
    Jen
  13. პოლ Galvin
    Kieren,
    მე ყოველთვის გამოიყენოთ ვიზუალური სტუდია შეცვალონ XSL. ის უზრუნველყოფს ფერის კოდირება და მას ასევე აქვს რამდენიმე კარგი intellisense მხარდაჭერა.
    –პოლ
  14. Kieran დაწერა:

    Hi პოლ,

    როდესაც ვმუშაობთ xml / XSL და შინაარსის შეკითხვის ვებ ნაწილი, არ თქვენ ი რაიმე კარგი გზა ფორმატის თქვენი XSLT? ცდილობს შეიტანოს ცვლილებები და შესამოწმებლად დიზაინი დამადასტურებელი უფლება ტკივილი ** უბრალოდ გამოყენებით ტექსტი რედაქტორი…

    ყველა საუკეთესო

  15. მაიკლ Dipay
    ამ საკითხთან დაკავშირებით, მე, რომელსაც ბოლო დროს, სადაც ეს არ დაფიქსირებულა სურათები ქსელის კალენდარი მაგრამ ნაცვლად აჩვენებს ტექსტი (https://myweb.com/Marketing/images/icn-order.gif,). მე ახერხებენ გადაწყვეტის დახმარებით SharePoint დიზაინერი შექმნით პასუხისმგებლობის და შერჩევის საბაჟო სვეტები მინდა ცარიელია. გავარკვიე, რომ გამოსახულებები სვეტი ტიპის ნაჩვენებია როგორც URL(მძიმე) (e.g. https://myweb.com/Marketing/images/icn-order.gif,). არსებული ფორმით არის ტექსტი, ასე რომ უნდა შეიცვალოს, რომ ეს ნახატი წიგნიდან საერთო XSL:ღირებულების ამოცანები -> ფორმატი, როგორც ნახატი. ეს ცვლილება ჩვენება საბაჟო სურათები რომ მინდოდა ნახოთ. მე გადაწერა კოდი რათა ნახოთ იმიჯი ( <img border ="0" src="{substring-ადრე(@ IcnOrder, ', ')}" /> ) და ItemStyle.xsl ფაილი მაქვს, რომ შეიცვალოსPICTURECOLUMNNAME კოდექსში <img border ="0" src="{substring-ადრე(@ IcnOrder, ', ')}" /> . მაშინ შენახვა. ახლა ჩემი მაგიდა ქსელის შედეგების ჩვენება ტექსტი, ისევე, როგორც სურათის ინდივიდუალური ტიპის სვეტების.
  16. ელენე
    Hi პოლ,
    მადლობა დიდი სტატიის!
    თქვენ თქვით პირობითი ფორმატირება – "თქვენ ასევე შეგიძლიათ დააყენა პირობითი ფორმატირება, როგორიცაა ჩვენებისას პროექტები, რომლებიც არ აღემატება მათი ბიუჯეტი წითელი." ხომ არ აქვს კოდი, მაგალითად, რომ?
    მადლობა კიდევ ერთხელ!
    ელენე
  17. მაიკლ Dipay
    Hi პოლ,
    ეს იყო დიდი სტატია და შეძლო გენერირება იგივე შედეგი, როგორც მოსალოდნელი. მე მაქვს მოთხოვნა ნახოთ იმიჯი ქსელის როგორც ერთ ერთი სვეტები. ეს არ აჩვენებს იმიჯის ქსელის არამედ აჩვენებს მისამართი, რათა იმიჯი (,) მძიმე დასასრულს.
    (e.g. https://myweb.com/Marketing/images/icn-order.gif, )
    უნდა გამოვიყენოთ გამოსახულება ან სურათს CommonViewFields სფერო გაცნობის? (e.g. InternalColumnName, გამოსახულება)
    მადლობა,
    მაიკ
  18. Saji Ijiyemi

    შენი პოსტი არის ზუსტად ის, რაც მე ეძებდა. თუმცა, მე ვერ მიიღოს ეს მუშაობა.

    მე მაქვს დოკუმენტები, რომლებიც ინახება სხვადასხვა doc. ბიბლიოთეკებში, მაგრამ კლასიფიცირებული გამოყენებით საბაჟო კლასის სვეტი (არჩევანი: 1 ან 2. მინდა CQWP ნახოთ ეს დოკუმენტები საფუძველზე მათი კლასის.
    მე შეძლო დაამატოთ CQWP, ექსპორტი, ეს SPD, კონფიგურაციის itemStyle.xls რათა ნახოთ საბაჟო სფეროებშიც სია კალენდარი. თუმცა, მე ვერ წარმატებით განხორციელება, რაც თქვენ აღწერეთ აქ.

    ეს არის სვეტები მინდა ნახოთ ჩემი CQWP:

    ფაილის ტიპი (რათა ნახოთ icon)
    ფაილი სტატუსი
    თარიღი ბოლოს განახლდა
    შეცვლილია ვინ
    გადამოწმებული დან
    შემოწმება კომენტარები

    მე გაკეთებული აქვს შედეგი სია ფორმატი. როგორ შევცვალო ის, რომ talble ფორმატი.

    მადლობა.

    Saji

დატოვე პასუხი უნდა მაიკლ Dipay პასუხის გაუქმება

თქვენი ელ-ფოსტა არ გამოქვეყნდება. აუცილებელი ველები მონიშნულია *