Buwanang Archive: Disyembre 2007

Aking Anak hack Gamespot

Kaya, ito umaga, aking anak na lalaki ay tinutukoy upang makita ang isang edad-labintatlo pinaghihigpitan Halo 3 sa 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 tunay araw ng kapanganakan, Maaari niya talagang ipasok ang anumang birth date he wants. Once he realized that, ginawa niya ang kanyang sarili lumang sapat upang makita ang mga video.

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

Linggo ng nakakatawang: “Ito ay Pag-print ng Basura”

Sa aking unang trabaho out sa kolehiyo sa 1991, Ako ay mapalad na upang gumana para sa isang kumpanya na may manufacturing 13 lokasyon, 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.

Ang proyekto Rolls kasama at ako ay nagpadala down sa Baltimore na may bagong co-manggagawa, Jeff. Our job was to power up the Unix box, tiyakin ang O / S ay tumatakbo, i-install ang sistema ng ERP, i-configure ang ERP, train people on the ERP and do custom work for folks on the spot. (Ito ay isang panaginip na trabaho, lalo na pagdating tuwid out sa kolehiyo). Before we could really get off the ground, kinailangan naming ma-unpack ang lahat ng mga berdeng tubes, put them on desks and wire them. And the best part was that we had to put the RJ11 connectors on ourselves.

Para sa ilang mga dahilan na hindi ko maintindihan at hindi kailanman talagang naisip na tanungin tungkol sa oras, kami ay ilang pagkontrata kumpanya sumama at magpatakbo ng mga cable sa buong planta, but we didn’t have them put on the connectors. Kaya, there was a "patch box" with dozens of of unlabeled cables in the "computer room" at mga snaked sa paligid ng gusali sa iba't ibang mga lugar sa gusali.

Kami nagtrabaho aming paraan sa pamamagitan ng ito sa kurso ng isang weekend, pagsubok ng bawat wire, paglalagay sa isang connector (tinitiyak na iyon ay tuwid vs. tumawid), tinitiyak ang bit setting sa mga berdeng tubes at mga printer ay tama, 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.

Pero, 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, ngunit printer ang naka sa isang tatlong-linggong bangungot.

Kung hindi mo alam ito, o pinigilan ito, pagharap sa mga berdeng tubes at mga printer na ito paraan, there are various options that you deal with by setting various pins. 8-kaunti, 7-kaunti, pagkakapare-pareho (kahit na / kakaiba / none), probably others. If you get one of those settings wrong, ang tube o printer pa rin nagpapakita ng mga bagay-bagay, ngunit ito ay magiging kabuuang mga walang kuwentang, or it will be gibberish with a lot of recognizable stuff in between. Talaga, these pins are hard to see and have to be set by using a small flat-edge screw driver. And they are never standard.

Kami-set up ang una sa maraming mga mabilis na tawag sa NJ tao (ng isang kulay-abo hater computer na kung sino marahil curses sa amin upang sa araw na ito). 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, hindi kailanman talagang sigurado kung siya ay ginagawa mo ito nang tama.

Ito ay tungkol sa oras na maging live, lahat ng bagay sa Baltimore ay humuhuni, ngunit hindi namin makuha ang sinumpa printer up sa NJ upang gumana! 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", umaasa na siguro ay magkakaroon ng ilang mga bakas na sa basura na magsasabi sa amin kung ano ang ginagawa namin mali.

Kapag namin nakuha ang fax, we immediately knew what was wrong. Tingnan, our method of testing whether we had configured a printer correctly was to issue an "lp" command na tulad nito:

LP / etc / passwd

Talaga, 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:

panday:*:100:100:8A-74(opisina):/tahanan / smith:/usr / bin / SH
:*:200:0::/tahanan / guest:/usr/bin/sh  

We had been printing out the password file over and over again for several weeks and it was printing correctly. Gayunman, sa dulo ng gumagamit, it was "printing garbage".

</dulo>

Ngunit ang isa pang Network kredensyal Multi-Hamon Isyu at Solusyon

Ang aking client kamakailan-install ng isang magic aparato mula sa Halaman ng dyuniper na tila pinalitan ng kanilang lumang Cisco network load balancer (NLB). At about the same time, kami ng isang naka-install hotfix upang tugunan ang isang daloy ng trabaho problema.

Ang isang araw o dalawa mamaya, napansin namin ng isang problema kapag kami-access ang naibahaging mga service provider (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, hindi namin alam kung alin sa mga dalawang (Halaman ng dyuniper o hotfix) ay magiging ang isyu, bagaman ako Matindi pinaghihinalaang ang hotfix, pag-uunawa ng hindi pa namin na naka-install ito masyadong tama.

It turned out that Juniper had some kind of compression setting. Ang isa sa mga robed figure 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 browser (IE 7 browser na nagtrabaho nang walang hirap).

Kaya, add "compression" sa panganib listahan.

</dulo>

Credit sa: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Technorati Tags: ,

Pag-iisip Tungkol sa Pagbabago ng Blogging Platform

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", disenteng web storage at iba pa.

Gayunman, 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.

Una, 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 (o lalo na mabigo upang mahanap ang) when they search my blog. It’s very hard to use lives spaces for that.

Pangalawa, there does not seem to be any mechanism to "monetize" a windows live space blog. Sa katunayan, sa pagkakasunud-sunod upang makakuha ng mapupuksa ang MS ad (mula sa kung saan nakukuha ko walang pakinabang), I need to actually pay Microsoft. (Kahit, na kung paano nauunawaan ko ito; Ko pa magawang upang makakuha ng tiyak na kasagutan sa mga ito at mga tanong ito nais).

Ngayong Mayroon akong isang naitatag na pattern at hanay ng mga gawi sa pagba-blog, I want to evaluate other options. I’ve done some research and there are a lot of choices, ngunit ako ay hindi karaniwan bilang sa kung ano ang iba pang mga tao, lalo na mga kasapi sa komunidad SharePoint (bilang mga blogger o mga mambabasa), like to use.

Kung paksang ito interes sa iyo at ikaw ay may isang opinyon o na nais na ibahagi ang iyong karanasan, mangyaring mag-iwan ng komento o mag-email sa akin nang direkta.

Salamat!

<katapusan />

Technorati Tags:

Email SharePoint Designer Ipinapadala ???? sa isang email

Mga gumagamit Forum paminsan-minsan magtanong: Bakit ang SharePoint Designer ilagay ???? sa aking e-mail sa halip ng isang halaga ng patlang?

Isang dahilan nangyari ito ay dahil ang mga variable na kung saan ang mag-refer sa iyo ay null.

This can happen because you are trying to reference a field from the "current item" ngunit ang user ay hindi kailanman ipinasok ng isang halaga sa patlang na iyon anyo.

<katapusan />

Technorati Tags:

Ihambing / Subukan ang para sa Blangkong petsa sa SharePoint Designer workflow

Senaryo: Sa isang SharePoint Designer workflow, you need to determine if a date field is blank.

Problema: SPD does not provide a direct method for comparing dates to anything other than a date. You cannot create a condition like this: "Kung [DateField] katumbas blangko ".

Solusyon: Convert the date to a string. Use string comparison to determine if the date is blank.

Screen shot:

The following screen shots show how to do this. Sa sitwasyong ito, isang patlang sa isang item, "Kapaligiran permit:Petsa ng unang permit Paalala ", ay isinumite at ang daloy ng trabaho na apoy sa tugon.

imahen

imahen

Mga Tala:

Kapag sinubukan ko ito, I was pleasantly surprised to learn that it works. I was worried that SharePoint Designer might disallow the string assignment (Nagbabago:StringReminderDateDate) ngunit ito payagan ang mga ito.

Ako ay din nababahala na nagpapahintulot ito, ang halaga ay maaaring maging null at alinman sa pumutok ang WF sa runtime o siguro taasan ang pandaigdigang temperatura 1/2 isang antas, ngunit ang mga alalahanin ay walang batayan.

</dulo>

Technorati Tags:

Ang bar ay pa rin medyo Mataas Paabutin Moss

Ngayon, 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, i-configure mo ang CQWP upang kumonekta sa kanyang mga pinagkukunan ng data, pagkatapos mong i-export ito sa iyong workstation, baguhin <CommonViewFields>, mag-upload, remove the original and now it’s ‘primed’ to display those other columns. Susunod, buksan up SharePoint designer, 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. Sa wakas, baguhin ang template na ito upang i-render ang iyong bagong mga patlang! (Huwag kalimutan upang suriin ito muli upang ang iba pang mga gumagamit ay maaaring makita ang mga resulta)."

Lahat ng ito ay lubos na malinaw na sa akin (at karamihan sa amin SharePoint developer uri) kung ano ang nagaganap at kung paano ito Medyo magaling, talaga, that the data retrieval aspects of the CQWP are so well-separate from the data presentation aspects. Pero, hindi ito kaya madaling upang ipaliwanag, ay ito?

<katapusan />

Ipakita ang Nilalaman ng Query sa mga Resulta ng Web Bahagi sa isang Grid / Talahanayan

Pangkalahatang-ideya at Layunin

Sa labas ng kahon sa, Lumot’ Bahagi ng nilalaman Query Web (CQWP) nagpapakita ng mga resulta nito sa isang listahan ng format, similar to search results. It is also possible to display the results in a grid format (i.e. HTML talahanayan format). Grid formats are better in some circumstances. I describe how to achieve that effect in this article.

Negosyo Sitwasyon

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, tulad ng pamagat, badyet, inaasahang pagkumpleto petsa, remaining budget and other summary type fields. By "singleton" I mean a custom SharePoint list guaranteed to contain only one item. Simplistically, ito ganito ang hitsura:

imahen

Ang teknikal na diskarte ay magkano ang parehong tulad ng inilarawan dito (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:

imahen

HTML tulad nito bumubuo na resulta:

<html>
 <katawan>
 <sentro>
 <talahanayan hangganan= 1>

<!-- Mga etiketa ->
 <tr bgcolor= Asul>
 <td><ay kulay= Puti><b>Project Pangalan</b></ay></td>
 <td ihanay= Kanan><ay kulay= Puti><b>Kumpletuhin Petsa</b></ay></td>
 <td ihanay= Kanan><ay kulay= Puti><b>Badyet</b></ay></td>
 <td ihanay= Kanan><ay kulay= Puti><b>Aktwal na Gastos</b></ay></td>
 <td><ay kulay= Puti><b>Pangkalahatang Katayuan</b></ay></td>
 </tr>

<tr>
 <td>Re-wire ng computer room.</td>
 <td ihanay= Kanan>02/01/08</td>
 <td ihanay= Kanan>22,500.00</td>
 <td ihanay= Kanan>19,000.00</td>
 <td>Isinasagawa</td>
 </tr>

<tr>
 <td>Pagkakaloob ng mga server para sa SQL upgrade</td>
 <td ihanay= Kanan>04/01/08</td>
 <td ihanay= Kanan>7,500.00</td>
 <td ihanay= Kanan>0.00</td>
 <td>Pinlano</td>
 </tr>

</talahanayan>
 </sentro>
 </katawan>
</html>

Lapit

Sundin ang mga hakbang upang lumikha ng grid:

  1. Kilalanin ang mga bahagi ng grid (hilera / haligi).
  2. Tukuyin at gumawa ng kinakailangang mga haligi ng site.
  3. Lumikha ng mga sub site para sa mga proyekto at walang pareho listahan.
  4. Idagdag ang CQWP sa isang pahina ng web at i-configure ito upang maghanap para sa iyong mga listahan.
  5. Baguhin ang XML sa CQWP upang lumikom ng karagdagang mga haligi.
  6. Baguhin ang XSL upang makabuo ng isang talahanayan.

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 dito (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) at Heather Solomon blog dito (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Mani At Bolts

Simulan at ipatupad ang mga hakbang na isa hanggang limang bilang bawat ang MSDN babasahin at artikulo ng Heather Solomon.

Sa puntong ito, naidagdag mo ang ang iyong CQWP sa pahina at mayroon kang iyong <CommonViewFields> isinaayos kung kinakailangan.

Ng pagsunod sa mga karaniwan na hakbang, Nakukuha ko mga intermediate resulta na ito:

1. Lumikha ng isang uri ng nilalaman, a templatized custom list for that content type and two sites. Here is the content type:

imahen

Narito ang site na istraktura:

imahen

2. Idagdag ang CQWP matapos ang paglikha ng aking mga mga subsite proyekto at walang pareho mga listahan ng buod ng proyekto:

imahen

3. Magdagdag ng lahat ng mga karagdagang impormasyon na gusto ko sa pamamagitan ng <CommonViewFields>:

        <ari-arian pangalan="CommonViewFields" uri="pisi">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</ari-arian>

Tandaan na ako ay upang panatilihin ang lahat ng mga patlang ng ari-arian sa isang linya o hindi ito ay gumagana (CQWP ay sabihin sa akin na query ay hindi nagbalik ng mga item).

4. Sa puntong ito, 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 upang lumikha ng isang pasadyang / unghosted version of ItemStyle.xsl. I follow Heather’s advice, up sa pamamagitan ng hakbang 11 at makakuha ng mga mga intermediate resulta na ito:

4.1: Pangalanan ang aking XSL template tulad ng mga sumusunod:

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

Din ako bahagyang baguhin ang kanyang iminungkahing <xsl:para sa-bawat …> sa pamamagitan ng pagdaragdag ng isang <br /> i-tag upang magbigay ng isang mas malinis na listahan:

    <xsl:para sa-bawat piliin="@ *">
      P:<xsl:halaga-ng piliin="pangalan()" /><br/>
    </xsl:para sa-bawat>

4.2: Ko baguhin ang web bahagi, go to appearance and select my "Grid" estilo:

imahen

Ilapat ang pagbabago at dito ay ang resulta:

imahen

Maaari naming makita mula sa itaas na ang mga patlang na gusto namin (Project pangalan, gastos, katayuan, at iba pa) 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. Halimbawa, we reference Project Status as "Project_x005F_x0020_Name".

Sa puntong ito, umalis kami mula sa blog Heather sa at mula sa mga balikat ng mga higante, Idagdag ko ang aking sariling kaunti.

ContentQueryMain.xsl

Tandaan: Kapag nagsasagawa ng mga pagbabago sa ang parehong ContentQueryMain.xsl pati na rin ItemStyle.xsl, kailangan mong suriin ang mga file pabalik sa bago mo makita ang mga epekto ng iyong mga pagbabago.

Para sa mga layunin sa paggawa ng grid-, 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 <talahanayan> tag bago nagpapalabas ang unang hanay ng data at ang pagsasara <talahanayan> tag after emitting the last row. To accomplish this, ContentQueryMain.xsl is modified to pass two parameters to our "grid" template sa ItemStyle.xsl, "last row" and "current row". ItemStyle.xsl uses these to conditionally emit the necessary tags.

Paggamit ng pamamaraan Heather Solomon, we locate ContentQueryMain.xsl. It is located in the same place as ItemStyle.xsl. This screen shot should help:

imahen

Kailangan naming gawin ang mga sumusunod na pagbabago:

  • Baguhin ang isang 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 <talahanayan> mga tag.
  • Modify another bit of ContentQueryMain.xsl that calls the "CallItemTemplate" to pass it a "LastRow" parameter upang LastRow ay maaaring maipasa sa aming Grid template.

Locate the template named "OuterTemplate.CallItemTemplate" kinilala sa pamamagitan ng string ng:

  <xsl:template pangalan="OuterTemplate.CallItemTemplate">

Palitan ang buong template tulad ng mga sumusunod:

  <xsl:template pangalan="OuterTemplate.CallItemTemplate">
    <xsl:itigil pangalan="CurPosition" />

    <!--
      Add the "LastRow" parametro.
      We only use it when the item style pass in is "Grid".
    -->
    <xsl:itigil pangalan="LastRow" />

    <xsl:piliin>
      <xsl:kapag pagsubok="@ Estilo = sa 'NewsRollUpItem'">
        <xsl:Ilapat ang-template piliin="." paraan="itemstyle">
          <xsl:may-param pangalan="EditMode" piliin="$cbq_iseditmode" />
        </xsl:Ilapat ang-template>
      </xsl:kapag>
      <xsl:kapag pagsubok="@ Estilo = sa 'NewsBigItem'">
        <xsl:Ilapat ang-template piliin="." paraan="itemstyle">
          <xsl:may-param pangalan="CurPos" piliin="$CurPosition" />
        </xsl:Ilapat ang-template>
      </xsl:kapag>
      <xsl:kapag pagsubok="@ Estilo = sa 'NewsCategoryItem'">
        <xsl:Ilapat ang-template piliin="." paraan="itemstyle">
          <xsl:may-param pangalan="CurPos" piliin="$CurPosition" />
        </xsl:Ilapat ang-template>
      </xsl:kapag>

      <!--
              Pass ang kasalukuyang posisyon at lastrow sa ang Grid itemstyle.xsl ng template.
              Gagamitin ng ItemStyle.xsl na upang humalimuyak ang bukas at pagsasara <talahanayan> mga tag.
      -->
      <xsl:kapag pagsubok="@ Estilo = 'Grid' na">
        <xsl:Ilapat ang-template piliin="." paraan="itemstyle">
          <xsl:may-param pangalan="CurPos" piliin="$CurPosition" />
          <xsl:may-param pangalan="Huli" piliin="$LastRow" />
        </xsl:Ilapat ang-template>
      </xsl:kapag>

      <xsl:kung hindi>
        <xsl:Ilapat ang-template piliin="." paraan="itemstyle">
        </xsl:Ilapat ang-template>
      </xsl:kung hindi>
    </xsl:piliin>
  </xsl:template>

Ang mga komento ay ilarawan ang layunin ng mga pagbabago.

Talaga, the "OuterTemplate.CallItemTemplate" is itself called from another template. Locate that template by searching for this text string:

<xsl:template pangalan="OuterTemplate.Body">

Mag-scroll sa pamamagitan ng mga tagubilin sa OuterTemplate.Body at ipasok ang LastRow parameter na tulad ng sumusunod (ipinapakita bilang isang puna sa italics):

<xsl:call-template pangalan="OuterTemplate.CallItemTemplate">
  <xsl:may-param pangalan="CurPosition" piliin="$CurPosition" />
  <!-- Ipasok ang LastRow parameter. -->
  <xsl:may-param pangalan="LastRow" piliin="$LastRow"/>
</xsl:call-template>

Matapos ang lahat ng ito, namin sa wakas ng mga bagay-set up nang maayos sa gayon na ang aming ItemStyle.xsl maaaring magbigay <talahanayan> mga tag sa tamang lugar.

ItemStyle.Xsl

Tandaan: Muli, suriin sa ItemStyle.xsl pagkatapos ng paggawa ng anumang mga pagbabago upang makita mo ang epekto ng mga pagbabago.

Mayroon kaming dalawang mga gawain dito:

  • 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. (Maaari mong sabihin na mayroon akong isang manipis na hawakan sa XSL).

Una, malapit sa tuktok ng ItemStyle.xsl, idagdag ang linyang ito:

  <!-- Ang ilang mga mumbo elepante na nagbibigay-daan sa amin upang ipakita U.S. pera. -->
  <xsl:decimal-format pangalan="mga tauhan" tambilang="D" />

  <xsl:template pangalan="Default" tumugma="*" paraan="itemstyle">

Tandaan na ang idinagdag ko ito nang direkta bago ang <xsl:template name="Default" …> depinisyon.

Susunod, go back to our Grid template. Replace the entire Grid template with the code below. It is thoroughly commented, ngunit huwag mag-atubiling mag-email sa akin o mag-iwan ng mga komento sa aking blog kung mayroon kang mga katanungan.

  <xsl:template pangalan="Parilya" tumugma="Hilera[@ Estilo = 'Grid' na]" paraan="itemstyle">

    <!--
      ContentMain.xsl pumasa CurPos at huling.
      Ginagamit namin ito sa nang may pasubali humalimuyak ang bukas at pagsasara <talahanayan> mga tag.
    -->
    <xsl:itigil pangalan="CurPos" />
    <xsl:itigil pangalan="Huli" />

    <!-- Ang mga sumusunod na mga variable ay na unmodified mula sa standard ItemStyle.xsl -->
    <xsl:nagbabago pangalan="SafeImageUrl">
      <xsl:call-template pangalan="OuterTemplate.GetSafeStaticUrl">
        <xsl:may-param pangalan="UrlColumnName" piliin="'ImageUrl'"/>
      </xsl:call-template>
    </xsl:nagbabago>
    <xsl:nagbabago pangalan="SafeLinkUrl">
      <xsl:call-template pangalan="OuterTemplate.GetSafeLink">
        <xsl:may-param pangalan="UrlColumnName" piliin="'LinkUrl'"/>
      </xsl:call-template>
    </xsl:nagbabago>
    <xsl:nagbabago pangalan="DisplayTitle">
      <xsl:call-template pangalan="OuterTemplate.GetTitle">
        <xsl:may-param pangalan="Pamagat" piliin="@ Pamagat"/>
        <xsl:may-param pangalan="UrlColumnName" piliin="'LinkUrl'"/>
      </xsl:call-template>
    </xsl:nagbabago>
    <xsl:nagbabago pangalan="LinkTarget">
      <xsl:kung pagsubok="@ OpenInNewWindow = 'tunay'" >_blank</xsl:kung>
    </xsl:nagbabago>

    <!--
      Dito namin tukuyin ang isang variable, "tableStart".  Ito ay naglalaman ng HTML
      .  Tandaan na kung CurPos = 1, ito kasama ang HTML sa isang tag CDATA.
      Kung hindi, ito ay walang laman.

      Ang halaga ng tableStart ay emited bawat oras ItemStyle ay tinatawag na sa pamamagitan ng
      .
    -->
    <xsl:nagbabago pangalan="tableStart">
      <xsl:kung pagsubok="$CurPos = 1">
        <![CDATA[
        <talahanayan border = 1>
          <tr bgcolor="blue">
            <td><font color="white"><b>Project Pangalan</b></ay></td>
            <td align="right"><font color="white"><b>Kumpletuhin Petsa</b></ay></td>
            <td align="right"><font color="white"><b>Badyet</b></ay></td>
            <td align="right"><font color="white"><b>Aktwal na Gastos</b></ay></td>
            <td><font color="white"><b>Pangkalahatang Katayuan</b></ay></td>
          </tr>
        ]]>
      </xsl:kung>
    </xsl:nagbabago>

    <!--
      Isa pang variable, tumutukoy tableEnd lamang ang pagsasara ng tag ng talahanayan.

      Tulad ng sa tableStart, ito ay palaging emited.  Ito ay kung bakit ang ang halaga nito ay
      .
    -->
    <xsl:nagbabago pangalan="tableEnd">
      <xsl:kung pagsubok="$CurPos = $ Huling">
        <![CDATA[ </talahanayan> ]]>
      </xsl:kung>
    </xsl:nagbabago>

    <!--
      Laging humalimuyak ang mga nilalaman ng tableStart.  Kung hindi ito ang unang
      , pagkatapos namin alam ang halaga nito
      .

      Huwag paganahin ang output escaping dahil kapag tableStart ito ay hindi blangko, ito
      .  Kung
      , it will generate
      stuff like "&lt;talahanayan&gt;" instead of "<talahanayan>".
    -->
    <xsl:halaga-ng piliin="$tableStart" huwag paganahin-output-escaping="oo"/>


    <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:halaga-ng piliin="@ Project_x005F_x0020_Name"/>
      </td>

      <td ihanay="karapatan">
        <xsl:halaga-ng piliin="@ Project_x005F_x0020_End_x005F_x0020_Date"/>
      </td>

      <td ihanay="karapatan">
        <xsl:call-template pangalan="formatCurrency">
          <xsl:may-param pangalan="halaga" 
piliin="@ Project_x005F_x0020_Budget"></xsl:may-param> </xsl:call-template> </td> <td ihanay="karapatan"> <xsl:call-template pangalan="formatCurrency"> <xsl:may-param pangalan="halaga" piliin="@ Project_x005F_x0020_Expenses">
</xsl:may-param> </xsl:call-template> </td> <td> <xsl:halaga-ng piliin="@ Project_x005F_x0020_Status"/> </td> <!-- Lahat ng mga sumusunod ay nagkomento sa linawin ng mga bagay. Gayunman, dalhin ito pabalik at Bagay-bagay ang mga ito sa isang <td> upang makita ang         . --> <!-- <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}"/> </isang> </div> </xsl:kung> <div class="link-item"> <xsl:call-template
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href="{$SafeLinkUrl}"
target="{$LinkTarget}" title="{@ LinkToolTip}"> <xsl:value-of select="$DisplayTitle"/> </isang> <div class="description"> <xsl:value-of select="@Description" /> </div> </div> </div>
--> </tr> <!-- Humalimuyak ang pagsasara ng tag talahanayan. Kung hindi kami sa huling hilera, ito ay magiging blangko. --> <xsl:halaga-ng piliin="$tableEnd" huwag paganahin-output-escaping="oo"/> </xsl:template> <xsl:template pangalan="formatCurrency"> <xsl:itigil pangalan="halaga" piliin="0" /> <xsl:halaga-ng piliin='format-NUMBER($halaga, "$DDD,DDD,DDD.DD", "staff")' /> </xsl:template>

Standard WSS / Screen ng Moss Data Entry ay hindi sumusuporta sa Cascading Drop-down (o iba pang intra-mula sa komunikasyon)

I-UPDATE (04/2008): Ito mahusay na blog entry ay nagpapakita ng isang mahusay na javascript diskarteng batay sa problemang ito: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

I-update ang II: (04/2008): Ang blog entry Mukhang may pag-asa pati na rin: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Ilang beses sa isang linggo, kung hindi araw-araw, forum users describe a requirement that would normally be met via cascading drop-downs. Halimbawa, Mayroon akong dalawang mga drop-down na kontrol:

  • Listahan ng mga U.S. estado
  • Listahan ng mga U.S. mga lungsod.

Bilang responsableng provider UI, gusto naming ito upang gumana tulad nito:

  • Paul pumipili ng 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 pumipili ng isang lungsod mula sa filter na listahan.

There is no out-of-the-box support for this feature. Sa katunayan, 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.

Ang tunay na layunin ng artikulong ito upang upang ilarawan ang mga posibleng solusyon at ito ang mga pagpipilian sa bilang alam ko ang mga ito:

  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. Sa kasong ito, Gusto mo normal subukan na gumamit ng isang kinakalkula haligi, ngunit ang ilang beses, 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, magkaroon ng kamalayan ng isyu-address sa pamamagitan ng artikulong ito (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Kaganapan handler: Tulad ng daloy ng trabaho, 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 (at ang buong modelo ng object) at maaaring gawin ang anumang kinakailangan pagkalkula.
  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 ang iyong sariling ASP.NET data entry function na (bilang isang stand-alone na web page o bilang isang bahagi ng web) at gamitin iyon sa halip.

Kung sinuman ang nakakaalam ng iba pang at / o mas mahusay na pagpipilian, paki-post ng isang komento at kukunin ko na i-update ang nilalaman ng post na ito.

<katapusan />

Technorati Tags:

Yes/No (check box) pag-filter sa Nilalaman Bahagi ng Query sa Web

To filter for a query for the Yes/No check box entitled "PG Milestone", i-configure ang CQWP ganito:

imahen

Ito ay isa pang isa sa mga halatang-sabay-ka-alam-ito ngunit mahirap-to-mahanap-isang-sagot-sa mga tanong: Paano upang i-filter sa isang Oo / Walang mga check box sa paggamit ng nilalaman ng web query bahagi.

Ang unang resulta ng paghahanap I find using the search term "filter yes/no content query web part" ay flat out mali, kaya naisip ko na gusto kong ilagay ito up doon at tingnan kung maaari itong palitan ang hindi tamang resulta sa karaniwang mga resulta ng paghahanap.

Ito ay medyo madali: True values = "1" and false values do not equal "1" (medyo retro, talaga).

Sa halimbawa sa itaas, I created site column of type "Yes/No (checkbox)" named "PG Milestone". I added it to a doc library, upload ng ilang mga dokumento, itakda ang halaga para sa isang pares at nasubok ito.

<katapusan />