Monthly Archives: Դեկտեմբեր 2007

Իմ որդին Hacked Gamespot

Այնքան, այս առավոտ, իմ որդին մտադիր է տեսնում տարիքային տասներեք սահմանափակ Halo 3 video - ին Gamespot. I’m outside shoveling snow, so I’m not there to help or hinder. Necessity is the mother of invention and all that … he has a eureka! moment. He realizes that even though Gamespot wants him to enter his իրական ծննդյան ամսաթիվը, նա կարող է իրականում մտնել որեւէ birth date he wants. Once he realized that, նա ինքն է բավական է տեսնել տեսանյութը.

I’m not quite sure how I feel about this 🙂

Կիրակի Զվարճալի: “Այն Տպագրություն աղբի”

Իմ առաջին աշխատանքային օրը դուրս Քոլեջում 1991, Ես բախտավոր եմ աշխատել որպես արտադրական ընկերության հետ 13 տեղերը, not including its corporate HQ in New Jersey. I joined just when the company was rolling out a new ERP system. We were a small IT department of about ten people altogether, two of whom Did Not Travel. Part of the project involved replacing IBM System 36 boxes with HP hardware and HPUX. Everyone used green tubes to access the system.

Նախագիծը գլանափաթեթներ հետ, եւ ես ուղարկում ներքեւ Baltimore մի նոր համատեղ աշխատող, Jeff. Our job was to power up the Unix box, համոզվեք, որ O / S էր վազում, տեղադրել ERP համակարգը, կարգավորել ERP, train people on the ERP and do custom work for folks on the spot. (Սա երազ աշխատանք, հատկապես գալիս ուղիղ դուրս վարժարանի). Before we could really get off the ground, մենք պետք է արձակել բոլոր կանաչ խողովակներ, put them on desks and wire them. And the best part was that we had to put the RJ11 connectors on ourselves.

Ինչ - ինչ պատճառներով, որոնք ես երբեք չեմ հասկացել, եւ, ըստ էության, երբեք չեմ մտածել, որ հարցնում ժամանակ, մենք էինք մի պայմանավորվող ընկերությունը գալիս միասին, եւ վազում մալուխի ամբողջ գործարանի, but we didn’t have them put on the connectors. Այնքան, there was a "patch box" with dozens of of unlabeled cables in the "computer room" եւ սրանք snaked շենքի շուրջը տարբեր վայրերում շենքում.

Մենք աշխատում ենք մեր ճանապարհը դրա ընթացքում մի շաբաթվա, փորձարկման յուրաքանչյուր հեռագիր, դնելով մի միակցիչ (դարձնելով համոզված էր ուղիղ vs. հատել), ապահովելով bit կարգավորումները կանաչ Խողովակներ եւ տպիչներ էին ճիշտ, labeling wires, making sure that "getty" was running correctly for each port and probably a thousand other things that I’ve suppressed since then. It all came together quite nicely.

Սակայն, there was one important cable that we couldn’t figure out. The plant in Baltimore had a relationship with a warehousing location in New Jersey. Some orders placed in Baltimore shipped out of that location. There were two wires that we had to connect to the HPUX box: a green tube and a printer. The green tube was easy, բայց printer վերածվեց երեք շաբաթ nightmare.

Եթե ​​դուք չեք ճանաչում այն, կամ ճնշել այն, զբաղվող կանաչ Խողովակներ եւ տպիչներ այս ձեւով, there are various options that you deal with by setting various pins. 8-բիտ, 7-բիտ, հավասարություն (Նույնիսկ / տարօրինակ / մեկը), probably others. If you get one of those settings wrong, խողովակի կամ printer դեռ ցույց իրեր, բայց դա կլինի ընդամենը անկապ խոսք, or it will be gibberish with a lot of recognizable stuff in between. Իհարկե, these pins are hard to see and have to be set by using a small flat-edge screw driver. And they are never standard.

Մենք ստեղծել առաջին բազմաթիվ արագ զանգերի հետ NJ guy (ա ալեխառն համակարգչային Hater ով հավանաբար curses մեզ այս օրը). We got the green tube working pretty quickly, but we couldn’t get the printer to work. It kept "printing garbage". We would create a new RJ11 connector, switching between crossed and straight. We would delete the port and re-created in Unix. We went through the arduous task of having him explain to us the pin configuration on the printer, երբեք իսկապես վստահ է, եթե նա դա անում է ճիշտ.

Այն մասին ժամանակն է գնալ կենդանի, Ամեն ինչ Baltimore է հոլ, սակայն մենք չենք կարող ստանալ անիծված տպիչ մինչեւ NJ աշխատելու! We’ve exhausted all possibilities except for driving back up to NJ to work on the printer in person. To avoid all that driving, we finally ask him to fax us what he’s getting when it’s "garbage", հուսալով, որ գուցե կլինեն որոշ թել այդ աղբի, որը կասի, թե ինչ ենք անում, սխալ է.

Երբ մենք ստացել Ֆաքս, we immediately knew what was wrong. Տեսնել, our method of testing whether we had configured a printer correctly was to issue an "lp" հրամանի նման:

LP / եւ այլն / passwd

Հիմնականում, we printed out the unix password file. It’s always present and out of the box, always just one page. You standard Unix password file looks something like this:

դարբին:*:100:100:8A-74(գրասենյակ):/Գլխավոր էջ / smith:/Փակցնելուց / bin / sh
:*:200:0::/Գլխավոր էջ / հյուր:/usr/bin/sh  

We had been printing out the password file over and over again for several weeks and it was printing correctly. Սակայն, մինչեւ վերջ մասին, it was "printing garbage".

</վերջ>

Եւս Network հավատարմագրերի Multi-Challenge Issue եւ լուծում

Իմ պաշտպանյալը վերջերս տեղադրել կախարդական սարքը Գիհ որ ակնհայտորեն փոխել են իրենց հին Cisco ցանցի ծանրաբեռնվածության balancer (NLB). At about the same time, Մենք տեղադրել hotfix են եղել մի խնդրի ընթացակարգի.

Մի երկու օր անց, Մենք նկատել ենք խնդիրը, երբ որ մենք հասանելի ընդհանուր մատակարարին (SSP). We could get to it, but we would be challenged for a user ID and password many times on each page. This didn’t happen with the main portal app, nor central administration. Naturally, Մենք չգիտեինք, որ երկու (Juniper կամ hotfix) կլինի հարցը, թեեւ ես խիստ կասկածում է hotfix, figuring մենք չենք տեղադրել այն այնքան էլ ճիշտ.

It turned out that Juniper had some kind of compression setting. Մեկը թալանել ցուցանիշները over in the network group turned that setting off. That solved our problem.

This is not the first time that compression has been the root cause of a SharePoint problem for me. IIS compression adversely affected a 3rd party tool from the good people at The Dot Net Factory for IE 6 Բրաուզերներ (IE 7 Բրաուզերներ աշխատել առանց դժվարության).

Այնքան, add "compression" այն վտանգները ցուցակում.

</վերջ>

Վարկ: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Արորդիների Tags: ,

Մտածում փոփոխում բլոգերներ պլատֆորմի

I started off my "blogging career" using Microsoft’s platform and it’s been good to me. It’s easy to post, there are good options and widgets for managing your "space", պարկեշտ վեբ պահպանման եւ այլն.

Սակայն, I really just fell into the MS solution with almost no planning. That alone calls for me to evaluate where I am and where I’m going, in terms of a blogging platform. There are also two important limitations that bother me right now vis-à-vis Windows Live Spaces.

Առաջին, I can’t get very good statistics. There are stats but the detail is often truncated and not presented in a way that allows for any kind of analysis. There no sorting or export capability. I get many blog ideas based on the kind of information people find (or especially fail to find) when they search my blog. It’s very hard to use lives spaces for that.

Երկրորդ, there does not seem to be any mechanism to "monetize" a windows live space blog. Ի դեպ, in order to get rid of MS ads (from which I derive no benefit), I need to actually pay Microsoft. (At least, that’s how I understand it; I have been unable to get definitive answers to this and questions like it).

Now that I’ve got an established pattern and set of blogging habits, I want to evaluate other options. I’ve done some research and there are a lot of choices, but I’m curious as to what other people, particularly others in the SharePoint community (as bloggers or readers), like to use.

If this subject interests you and you have an opinion or are willing to share your experience, please leave a comment or email me directly.

Շնորհակալություն!

<Խաղի տեւողությունը րոպեներով />

Արորդիների Tags:

Sharepoint Designer Email ուղարկում ???? - ին նամակ

Ֆորում օգտվողները երբեմն հարցնում: Ինչու Sharepoint Designer դնում ???? իմ էլփոստով փոխարեն մի դաշտի արժեքը?

Պատճառներից մեկը, որ դա տեղի է ունենում այն ​​պատճառով, որ փոփոխական է, որին վերաբերում են առ.

Սա կարող է պատահել այն պատճառով, որ փորձում եք տեղեկանքը մի դաշտ է ներկա Նյութի" but the user never entered a value into that form field.

<Խաղի տեւողությունը րոպեներով />

Համեմատել / Փորձություն դատարկ Ամսաթվեր է Sharepoint դիզայներ աշխատանքի արդյունքում

Սցենար: Մի Sharepoint դիզայներ աշխատանքի արդյունքում, you need to determine if a date field is blank.

Խնդիր: SPD does not provide a direct method for comparing dates to anything other than a date. You cannot create a condition like this: «Եթե [DateField] հավասար է դատարկ »:.

Լուծում: Convert the date to a string. Use string comparison to determine if the date is blank.

Screen Shots:

The following screen shots show how to do this. Այս սցենարի, a field on an item, "Environmental Permits:First Permit Reminder Date", is submitted and the workflow fires in response.

պատկեր

պատկեր

Notes:

When I tried this, I was pleasantly surprised to learn that it works. I was worried that SharePoint Designer might disallow the string assignment (Փոփոխական մեծություն:StringReminderDateDate) but it did allow it.

I was also concerned that allowing it, the value might be null and either blow up the WF at runtime or maybe raise the global temperature 1/2 a degree, but those concerns were unfounded.

</վերջ>

Bar դեռեւս բավական բարձր է երկարաձգել MOSS

Այսօր, I was working with a client and describing how to modify the content query web part and display additional bits of information from a content type.

"First, դուք կարգավորել CQWP կապել իր տվյալների աղբյուրները, ապա արտահանել այն ձեր կայան, փոփոխել <CommonViewFields>, վերբեռնել, remove the original and now it’s ‘primed’ to display those other columns. Հաջորդ, բացել SharePoint դիզայներ, navigate to the site collection root and locate ItemStyle.xsl. Copy one of the templates as a useful starting point. Go back and modify the CQWP to make use of this new template. Վերջապես, փոփոխությունները ձեւանմուշ մատուցել Ձեր նոր ոլորտներ! (Մի մոռացեք ստուգել այն ետ մեջ այնպես, որ այլ օգտվողները կարող են տեսնել արդյունքները)."

Այն ամենը շատ պարզ է ինձ համար (եւ մեզանից Sharepoint Developer տեսակները) թե ինչ է կատարվում, եւ ինչպես է դա շատ լավ, իրոք, that the data retrieval aspects of the CQWP are so well-separate from the data presentation aspects. Սակայն, դա այնքան հեշտ է բացատրել, այն?

<Խաղի տեւողությունը րոպեներով />

Արորդիների Tags: ,

Ցուցադրել բովանդակության հարցումի Վեբ դավաճանության արդյունքները է Ցանց / Սեղան

Overview եւ օբյեկտիվ

Դուրս վանդակում, MOSS’ Content Հարցման Web Part (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>

<!-- Պիտակներ ->
 <TR bgcolor= Կապույտ>
 <TD><տառ գույն= Սպիտակ><բ>Ծրագրի անվանումը</բ></տառ></TD>
 <TD շարել= Իրավունք><տառ գույն= Սպիտակ><բ>Լրացրեք ամսաթիվ</բ></տառ></TD>
 <TD շարել= Իրավունք><տառ գույն= Սպիտակ><բ>Բյուջե</բ></տառ></TD>
 <TD շարել= Իրավունք><տառ գույն= Սպիտակ><բ>Փաստացի Ծախսերի</բ></տառ></TD>
 <TD><տառ գույն= Սպիտակ><բ>Ընդհանուր Status</բ></տառ></TD>
 </TR>

<TR>
 <TD>Re-մետաղալար համակարգչային սենյակ.</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. Ստեղծել ենթածրագրեր կայքերը համար նախագծերի եւ SINGLETON ցուցակները.
  4. Ավելացնել CQWP դեպի ինտերնետային էջի եւ կարգավորել այն որոնել ձեր ցուցակներում.
  5. Փոփոխությունները CQWP ի մասին XML Նամակ հավաքել մինչեւ լրացուցիչ սյունյակները.
  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 եւ SINGLETON ծրագրերի ամփոփ ցուցակները:

պատկեր

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 ձեւանմուշ հետեւյալ:

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

Ես նաեւ մի փոքր փոփոխությունները նրան առաջարկել <xsl:համար յուրաքանչյուր …> ավելացնելով ա <BR /> պիտակների ապահովել մաքուր ցուցակման:

    <xsl:համար յուրաքանչյուր ընտրել="@ *">
      P:<xsl:արժեք է ընտրել="անուն()" /><BR/>
    </xsl:համար յուրաքանչյուր>

4.2: Ես փոփոխությունները վեբ մասը, go to appearance and select my "Grid" ոճ:

պատկեր

Դիմել փոփոխությունը, եւ այստեղ է արդյունք:

պատկեր

Մենք կարող ենք տեսնել, որ վերը նշված, որ մենք ուզում ենք fields (Ծրագրի անվանումը, ծախսեր, կարգավիճակ, եւ այլն:) 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 բլոգում եւ ուսերին այդ հսկաների ուսերին, Ես իմ սեփական փոքր.

ContentQueryMain.xsl

Նկատի ունեցեք,: Երբ փոփոխություններ կատարելու եւ ContentQueryMain.xsl նաեւ ItemStyle.xsl, դուք պետք է ստուգել այդ ֆայլերը ետ փակցնելու տեսնում ազդեցությունը ձեր փոփոխությունների.

For ցանցը կայացման նպատակով, 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 <սեղան> Պիտակ առաջ emitting առաջին շարքում տվյալների եւ փակման <սեղան> tag after emitting the last row. To accomplish this, ContentQueryMain.xsl is modified to pass two parameters to our "grid" ձեւանմուշ է 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 ձեւանմուշ, "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:Կաղապար անուն="OuterTemplate.CallItemTemplate">

Փոխարինեք ամբողջ ձեւանմուշ շարադրել հետեւյալ:

  <xsl:Կաղապար անուն="OuterTemplate.CallItemTemplate">
    <xsl:Param անուն="CurPosition" />

    <!--
      Add the "LastRow" պարամետր.
      We only use it when the item style pass in is "Grid".
    -->
    <xsl:Param անուն="LastRow" />

    <xsl:ընտրել>
      <xsl:երբ փորձարկում="@ Style = 'NewsRollUpItem.">
        <xsl:դիմում - կաղապարներ ընտրել="." ռեժիմ="itemstyle">
          <xsl:հետ-Param անուն="EditMode" ընտրել="$cbq_iseditmode" />
        </xsl:դիմում - կաղապարներ>
      </xsl:երբ>
      <xsl:երբ փորձարկում="@ Style = 'NewsBigItem.">
        <xsl:դիմում - կաղապարներ ընտրել="." ռեժիմ="itemstyle">
          <xsl:հետ-Param անուն="CurPos" ընտրել="$CurPosition" />
        </xsl:դիմում - կաղապարներ>
      </xsl:երբ>
      <xsl:երբ փորձարկում="@ Style = 'NewsCategoryItem.">
        <xsl:դիմում - կաղապարներ ընտրել="." ռեժիմ="itemstyle">
          <xsl:հետ-Param անուն="CurPos" ընտրել="$CurPosition" />
        </xsl:դիմում - կաղապարներ>
      </xsl:երբ>

      <!--
              Pass ներկայիս դիրքորոշումը եւ lastrow են Ցանց itemstyle.xsl Կաղապար.
              ItemStyle.xsl կօգտագործեն որ արտադրել բաց եւ փակման <սեղան> Tags.
      -->
      <xsl:երբ փորձարկում="@ Style = 'Ցանց'">
        <xsl:դիմում - կաղապարներ ընտրել="." ռեժիմ="itemstyle">
          <xsl:հետ-Param անուն="CurPos" ընտրել="$CurPosition" />
          <xsl:հետ-Param անուն="Անցյալ" ընտրել="$LastRow" />
        </xsl:դիմում - կաղապարներ>
      </xsl:երբ>

      <xsl:այլապես>
        <xsl:դիմում - կաղապարներ ընտրել="." ռեժիմ="itemstyle">
        </xsl:դիմում - կաղապարներ>
      </xsl:այլապես>
    </xsl:ընտրել>
  </xsl:Կաղապար>

Հոկ նկարագրել նպատակը փոփոխությունների.

Իհարկե, the "OuterTemplate.CallItemTemplate" is itself called from another template. Locate that template by searching for this text string:

<xsl:Կաղապար անուն="OuterTemplate.Body">

Ոլորել հրահանգներին OuterTemplate.Body եւ տեղադրեք LastRow պարամետր հետեւյալն (նշված է որպես մեկնաբանությունը շեղագրումն):

<xsl:Call-ձեւանմուշ անուն="OuterTemplate.CallItemTemplate">
  <xsl:հետ-Param անուն="CurPosition" ընտրել="$CurPosition" />
  <!-- Տեղադրեք LastRow պարամետր. -->
  <xsl:հետ-Param անուն="LastRow" ընտրել="$LastRow"/>
</xsl:Call-ձեւանմուշ>

Ի վերջո, այս, Մենք վերջապես պետք է ամեն ինչ ստեղծվել է, ճիշտ այնպես, որ մեր ItemStyle.xsl կարող է արտադրել <սեղան> tags է ճիշտ տեղում.

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. (Դուք կարող եք ասել, որ ես ունեմ նոսր բռնակի վրա, XSL).

Առաջին, մոտ վերեւում ItemStyle.xsl, ավելացրեք այս տողը:

  <!-- Ոմանք mumbo Jumbo որը հնարավորություն է տալիս մեզ դրսեւորել U.S. արժույթը. -->
  <xsl:Decimal-format անուն="անձնակազմ" նիշ="D" />

  <xsl:Կաղապար անուն="Անհոգություն" համընկնում="*" ռեժիմ="itemstyle">

Նշենք, որ այս այն ուղղակիորեն առաջ <xsl:template name="Default" …> սահմանում.

Հաջորդ, go back to our Grid template. Replace the entire Grid template with the code below. It is thoroughly commented, բայց չեն հապաղեք էլ ինձ կամ թողնել մեկնաբանություններ իմ բլոգում, եթե ունեք հարցեր.

  <xsl:Կաղապար անուն="Ցանց" համընկնում="Շարք[@ Style = 'Ցանց']" ռեժիմ="itemstyle">

    <!--
      ContentMain.xsl անցնում CurPos եւ Վերջինը.
      Մենք օգտագործում ենք դրանք պայմանականորեն արտադրել է բաց եւ փակման <սեղան> Tags.
    -->
    <xsl:Param անուն="CurPos" />
    <xsl:Param անուն="Անցյալ" />

    <!-- Հետեւյալ փոփոխականներ են հարմարեցված են ստանդարտ ItemStyle.xsl -->
    <xsl:փոփոխական մեծություն անուն="SafeImageUrl">
      <xsl:Call-ձեւանմուշ անուն="OuterTemplate.GetSafeStaticUrl">
        <xsl:հետ-Param անուն="UrlColumnName" ընտրել="'ImageUrl'"/>
      </xsl:Call-ձեւանմուշ>
    </xsl:փոփոխական մեծություն>
    <xsl:փոփոխական մեծություն անուն="SafeLinkUrl">
      <xsl:Call-ձեւանմուշ անուն="OuterTemplate.GetSafeLink">
        <xsl:հետ-Param անուն="UrlColumnName" ընտրել="'LinkUrl'"/>
      </xsl:Call-ձեւանմուշ>
    </xsl:փոփոխական մեծություն>
    <xsl:փոփոխական մեծություն անուն="DisplayTitle">
      <xsl:Call-ձեւանմուշ անուն="OuterTemplate.GetTitle">
        <xsl:հետ-Param անուն="Վերնագիր" ընտրել="@ Վերնագիրը"/>
        <xsl:հետ-Param անուն="UrlColumnName" ընտրել="'LinkUrl'"/>
      </xsl:Call-ձեւանմուշ>
    </xsl:փոփոխական մեծություն>
    <xsl:փոփոխական մեծություն անուն="LinkTarget">
      <xsl:եթե փորձարկում="@ OpenInNewWindow = 'True." >_blank</xsl:եթե>
    </xsl:փոփոխական մեծություն>

    <!--
      Այստեղ մենք սահմանել է փոփոխական, "tableStart".  Սա պարունակում է HTML
      .  Նշենք, որ եթե CurPos = 1, այն ներառում է HTML մի CDATA tag.
      Այլապես, դա կլինի դատարկ.

      Արժեքը tableStart է emited ամեն անգամ ItemStyle կոչվում միջոցով
      .
    -->
    <xsl:փոփոխական մեծություն անուն="tableStart">
      <xsl:եթե փորձարկում="$CurPos = 1">
        <![CDATA[
        <Աղյուսակ սահմանը = 1>
          <tr bgcolor="blue">
            <TD><font color="white"><բ>Ծրագրի անվանումը</բ></տառ></TD>
            <td align="right"><font color="white"><բ>Լրացրեք ամսաթիվ</բ></տառ></TD>
            <td align="right"><font color="white"><բ>Բյուջե</բ></տառ></TD>
            <td align="right"><font color="white"><բ>Փաստացի Ծախսերի</բ></տառ></TD>
            <TD><font color="white"><բ>Ընդհանուր Status</բ></տառ></TD>
          </TR>
        ]]>
      </xsl:եթե>
    </xsl:փոփոխական մեծություն>

    <!--
      Another փոփոխական, tableEnd պարզապես սահմանում փակման սեղան հատկորոշիչը.

      Ինչպես tableStart, այն միշտ emited.  Սա է պատճառը, որ դրա արժեքը
      .
    -->
    <xsl:փոփոխական մեծություն անուն="tableEnd">
      <xsl:եթե փորձարկում="$CurPos = $ Վերջին">
        <![CDATA[ </սեղան> ]]>
      </xsl:եթե>
    </xsl:փոփոխական մեծություն>

    <!--
      Միշտ արտադրել բովանդակությունը tableStart.  Եթե ​​սա առաջին
      , ապա մենք գիտենք դրա արժեքը
      .

      Կասեցնել արտադրանքի փախչում, որովհետեւ երբ tableStart դա դատարկ, այն
      .  Եթե
      , it will generate
      stuff like "&LT;սեղան&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:Call-ձեւանմուշ անուն="formatcurrency">
          <xsl:հետ-Param անուն="արժեք" 
ընտրել="@ Project_x005F_x0020_Budget"></xsl:հետ-Param> </xsl:Call-ձեւանմուշ> </TD> <TD շարել="իրավունք"> <xsl:Call-ձեւանմուշ անուն="formatcurrency"> <xsl:հետ-Param անուն="արժեք" ընտրել="@ Project_x005F_x0020_Expenses">
</xsl:հետ-Param> </xsl:Call-ձեւանմուշ> </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}"/> </ա> </div> </xsl:եթե> <div class="link-item"> <xsl:Call-ձեւանմուշ
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href="{$SafeLinkUrl}"
target="{$LinkTarget}" title="{@ LinkToolTip}"> <xsl:value-of select="$DisplayTitle"/> </ա> <div class="description"> <xsl:value-of select="@Description" /> </div> </div> </div>
--> </TR> <!-- Արտադրել փակման սեղան հատկորոշիչը. Եթե ​​մենք չենք վերջին շարքում, դա կլինի դատարկ. --> <xsl:արժեք է ընտրել="$tableEnd" անջատել, արտադրանքի, փախչող="այո"/> </xsl:Կաղապար> <xsl:Կաղապար անուն="formatcurrency"> <xsl:Param անուն="արժեք" ընտրել="0" /> <xsl:արժեք է ընտրել='ֆորմատ, թիվ($արժեք, "$DDD,DDD,DDD.DD", "staff")' /> </xsl:Կաղապար>

Ստանդարտ WSS / MOSS Data Entry Screens չեն աջակցում Cascading Drop-Downs (կամ այլ ներ - ից կապի)

ԹԱՐՄԱՑՆԵԼ (04/2008): Սա մեծ բլոգը գրառումը ցույց է տալիս, որ լավ է Javascript-ին հիմնված մոտեցում այս խնդրին: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

UPDATE II: (04/2008): Այս բլոգը գրառումը նայում խոստանալով նաեւ: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Մի քանի անգամ շաբաթ, Եթե ​​ոչ ամեն օր, forum users describe a requirement that would normally be met via cascading drop-downs. Օրինակ,, Ես երկու բացվող ստուգումները:

  • Ցանկ U.S. երկրների
  • Ցանկ U.S. քաղաքները.

Որպես պատասխանատու UI պրովայդերների, մենք ցանկանում ենք, որ գործում նման:

  • Paul ընտրում է U.S. state from the drop-down.
  • This causes the cities drop-down to filter only those cities that belong to the selected state.
  • Paul ընտրում քաղաքը այս ֆիլտրով ցուցակից.

There is no out-of-the-box support for this feature. Ի դեպ, there is no OOB support for any kind of direct intra-form communication. This includes programmatically hiding/enabling/disabling fields in response to field changes elsewhere on the form.

Իրական նպատակը Սույն հոդվածով նկարագրել հնարավոր լուծումներ եւ սրանք ընտրանքներ ես գիտեմ նրանց,:

  1. Develop a custom column type. As a custom-column-developer, you have full control over the "world" of that custom column. You can implement a cascading drop-down that way.
  2. Consider using workflow. In some cases, you want to automatically assign a value to field based on another field’s value. Այս դեպքում, դուք, որ սովորաբար փորձում է օգտագործել հաշվարկված սյունը, սակայն որոշ ժամանակ, it just won’t get the job done. SharePoint Designer workflow is a relatively administer-friendly alternative to dropping down into code and visual studio. If you go this route, տեղյակ լինել հարցի դիմել այս հոդվածը (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Event handlers: Like աշխատանքի արդյունքում, this is an after-the-fact solution. Your event handler is a .NET assembly (C #, VB.NET) to which SharePoint passes control. The object you develop has access to the data of the list (եւ ամբողջ օբյեկտի մոդելը) եւ կարող է անել ցանկացած անհրաժեշտ հաշվարկ.
  4. Use SharePoint Designer to create custom entry forms. I don’t have direct experience with this approach, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. Roll Ձեր ASP.NET Տվյալների մուտքագրման ֆունկցիան (որպես առանձին ոլորտ կայքում կամ որպես վեբ մաս) եւ օգտագործել այն փոխարեն.

Եթե ​​որեւէ մեկը գիտի, եւ / կամ ավելի լավ տարբերակներ, խնդրեմ Ամսաթիվ մեկնաբանություն եւ ես թարմացնել մարմինը այս գրառմանը.

<Խաղի տեւողությունը րոպեներով />

Արորդիների Tags:

Yes/No (նշեք վանդակը) զտիչ եւ բովանդակության Հարցման վեբ շուրջ

To filter for a query for the Yes/No check box entitled "PG Milestone", կազմաձեւել CQWP նման:

պատկեր

Սա եւս մեկ այն ակնհայտ-երբեմնի ձեզ իմանալ այն, սակայն դժվար-to-find-ը պատասխանի - ից հարցերին: Ինչպես ֆիլտրում է այո / ոչ վանդակը, օգտագործելով բովանդակության հարցման վեբ մասը.

Առաջին որոնման արդյունքը I find using the search term "filter yes/no content query web part" որ հարթ է, սխալ է, այնպես որ, ես մտածեցի, ես կցանկանայի դրել այս այնտեղ եւ տեսնել, եթե դա կարող է փոխարինել սխալ արդյունք է բնորոշ որոնման արդյունքները.

Դա բավականին հեշտ է: True values = "1" and false values do not equal "1" (բավականին Retro, իրականում).

Վերը նշված օրինակում, I created site column of type "Yes/No (վանդակը)" named "PG Milestone". I added it to a doc library, Վերբեռնման մի քանի փաստաթղթեր:, սահմանել արժեքը մի քանի եւ փորձարկված է.

<Խաղի տեւողությունը րոպեներով />

Արորդիների Tags: , ,