maandelijkse archieven: December 2007

Mijn zoon gehackt Gamespot

Dus, vanochtend, mijn zoon is vastbesloten om te zien dat een leeftijd-dertien beperkt Halo 3 video op GameSpot. Ik ben buiten shoveling sneeuw, dus ik er niet ben om te helpen of hinderen. Noodzaak is de moeder van de uitvinding en dat alles … Hij heeft een eureka! moment. Hij realiseert zich dat hoewel Gamespot wil hem om zijn echte geboortedatum, Hij kunt eigenlijk invoeren elke geboortedatum die hij wil. Zodra hij realiseerde zich dat, Hij maakte zich oud genoeg om de video te zien.

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

Zondag grappig: “Het is afdrukken vuilnis”

Op mijn eerste baan van de Universiteit in 1991, Ik had het geluk om te werken voor een productiebedrijf met 13 locaties, niet met inbegrip van haar corporate HQ in New Jersey. Ik ging net toen het bedrijf werd de uitrol van een nieuw ERP-systeem. We waren een kleine IT-afdeling van ongeveer tien mensen-totaal, twee van die reisden niet. Onderdeel van het project betrokken vervanging van IBM System 36 vakken met HP hardware en HPUX. Iedereen gebruikt groene buizen voor toegang tot het systeem.

Het project rolt samen en ik ben nedergezonden Baltimore met een nieuwe medewerker, Jeff. Onze taak was aan de macht van de Unix doos, Zorg ervoor dat de o/S werd uitgevoerd, het ERP-systeem installeren, de ERP configureren, trainen van mensen op de ERP en aangepaste werk doen voor mensen ter plaatse. (Dit was een droombaan, met name komen rechtstreeks van de Universiteit). Voordat we echt van de grond konden krijgen, We moesten alle de groene buizen uitpakken, Leg ze op het Bureau en hen draad. En het beste deel was dat wij moesten onszelf de RJ11 connectors zetten.

Voor sommige reden dat ik nooit begrepen en eigenlijk nooit gedacht om te vragen over op het moment, We hadden sommige aanbestedende bedrijf komen langs en kabel in de fabriek uitgevoerd, maar we hadden niet hen op de connectors. Dus, Er was een "patch doos" met tientallen van labelloze kabels in de computer kamer"" en deze kronkelden rondom het gebouw naar de verschillende plaatsen in het gebouw.

We werkte onze manier door middel van het in de loop van een weekend, testen van elke draad, brengen op een verbindingslijn (om ervoor te zorgen het was rechte vs. gekruist), zorgen voor de instellingen van de bits op de groene buizen en printers waren correct, labelen van draden, om ervoor te zorgen dat "getty" correct werd uitgevoerd voor elke poort en waarschijnlijk een duizend andere dingen dat ik sindsdien heb onderdrukt. Het allen kwam samen heel mooi.

Maar, Er was één belangrijke kabel die we niet kon achterhalen. De fabriek in Baltimore had een relatie met een stelsel van douaneentrepots locatie in New Jersey. Sommige bestellingen in Baltimore verzonden uit die locatie. Er waren twee draden die we moesten verbinden met het vak HPUX: een groene buis en een printer. De groene buis was gemakkelijk, maar de printer ingeschakeld in een drie weken durende nachtmerrie.

Als u het niet weet, of hebben onderdrukt het, omgaan met groene buizen en printers op deze manier, Er zijn verschillende opties die u behandelen door het instellen van verschillende pennen. 8-bits, 7-bits, pariteit (zelfs/oneven/geen), waarschijnlijk anderen. Als u een van deze instellingen verkeerd, de buis of printer toont nog steeds spullen, maar zal het totale wartaal, of het zal wartaal met een heleboel herkenbare dingen tussendoor. Natuurlijk, Deze pinnen zijn moeilijk te zien en te worden ingesteld met behulp van een kleine flat-rand schroevendraaier. En zij zijn nooit standaard.

We instellen de eerste van vele snel oproepen met de NJ man (een grijze computer hater die ons tot op de dag waarschijnlijk vloeken). We kregen de groene buis werken vrij snel, maar we niet kon krijgen van de printer om te werken. Het gehouden "afdrukken vuilnis". We zouden een nieuwe RJ11 connector maken, schakelen tussen gekruiste en rechte. We zouden de poort te verwijderen en opnieuw gemaakt in Unix. We gingen door de zware taak van het hebben van hem uitleggen dat de pin-configuratie op de printer, nooit echt zeker als hij deed het correct.

Het is tijd om te gaan wonen, alles in Baltimore is neuriën, maar we de vervloekte printer niet opstaan in NJ te werken! We hebben uitgeput alle mogelijkheden met uitzondering van back-up NJ rijden aan het werk op de printer in persoon. Om te voorkomen dat alles drijvende, We vragen hem te fax ons eindelijk wat hij krijgt wanneer het "vuilnis", hoop dat misschien zullen er enkele aanwijzing in dat afval dat zal ons vertellen wat we doen verkeerd.

Toen we de fax, We wist onmiddellijk wat er mis was. Zie, onze methode van het testen of we had een printer correct geconfigureerd was om een lp"" bevel als dit:

LP/etc/passwd

In principe, we de unix wachtwoordbestand uitgeprint. Het is altijd aanwezig en uit de doos, altijd slechts één pagina. U standaard Unix wachtwoordbestand ziet er iets als dit:

Smith:*:100:100:8A-74(Office):/Home/smith:/usr/bin/shguest:*:200:0::/Home/van de gast:/usr/bin/sh  

We had zijn afdrukken van het wachtwoordbestand over en weer voor enkele weken en het was correct af te drukken. Echter, aan de eindgebruiker, het was "afdrukken vuilnis".

</einde>

Nog een andere netwerk referenties Multi-Challenge probleem en oplossing

Mijn client geïnstalleerd onlangs een magische apparaat van Juniper blijkbaar vervangen die hun oude Cisco network load balancer (NLB). Op ongeveer dezelfde tijd, We installeerden een hotfix een werkstroom probleem aan te pakken.

Een dag of twee later, merkten we een probleem toen we benaderd de shared serviceprovider (SSP). Kunnen we naar het, maar we zouden worden aangevochten voor een gebruikers-ID en wachtwoord vele malen op elke pagina. Dit gebeurde niet met de belangrijkste portal app, noch centraal beheer. Natuurlijk, We weten niet welke van de twee (Juniper of hotfix) de kwestie zou worden, Hoewel ik vermoed sterk de hotfix, uitzoeken wij had niet geïnstalleerd het terecht.

Het bleek dat Juniper had een soort van compressie-instelling. Een van de robed cijfers over in het netwerk draaide groep dat verrekening. Dat onze probleem opgelost.

Dit is niet de eerste keer dat compressie de oorzaak van een SharePoint-probleem voor mij is. Compressie van IIS beïnvloed nadelig een 3rd party tool van de goede mensen bij The Dot Net Factory voor IE 6 browsers (IE 7 browsers werkte zonder problemen).

Dus, "compressie toevoegen" aan de lijst met risico 's.

</einde>

Krediet aan: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Technorati Tags: ,

Denken over het wijzigen van Blogging Platform

Ik begon mijn bloggen carrière"" met behulp van het Microsoft-platform en het is goed voor me geweest. Het is gemakkelijk om post, Er zijn goede opties en widgets voor het beheren van uw "ruimte", fatsoenlijke web opslag, enzovoort.

Echter, Ik viel eigenlijk alleen maar in de MS oplossing met bijna geen planning. Dat alleen oproepen voor mij waar ik ben en waar ik ga te evalueren, in termen van een blogging platform. Er zijn ook twee belangrijke beperkingen die me juiste nu vis-à-vis Windows Live Spaces moeite.

Eerste, Ik kan niet krijgen zeer goede statistieken. Er zijn statistieken maar het detail is vaak afgekapt en niet gepresenteerd op een manier die het mogelijk voor elk soort analyse maakt. Er geen sorteer- of export mogelijkheden. Ik krijg veel blog ideeën op basis van de soort informatie die mensen vinden (of vooral niet vinden) wanneer ze mijn blog zoeken. Het is zeer moeilijk te leven ruimten daarvoor gebruiken.

Tweede, Er lijkt niet te worden een mechanisme "Monetize" een windows live space blog. Eigenlijk, om zich te ontdoen van MS advertenties (waaruit ik geen profijt), Ik moet eigenlijk betalen Microsoft. (Ten minste, dat is hoe ik het begrijp; Ik heb niet in staat om definitieve antwoorden op deze en vragen bevalt).

Nu dat ik heb een gevestigd patroon en set van blogging gewoonten, Ik wil andere opties evalueren. Ik heb wat onderzoek gedaan en er zijn een heleboel keuzes, maar ik ben nieuwsgierig naar wat andere mensen, met name de anderen in de SharePoint-Gemeenschap (Als bloggers of lezers), willen gebruiken.

Als dit onderwerp je interesseert en u hebt een advies of zijn bereid om te delen uw ervaring, Gelieve een reactie achterlaten of mij direct e-mail.

Bedankt!

<einde />

Technorati Tags:

SharePoint Designer E-mail verzendt ???? in een E-mail

Forumgebruikers vragen af en toe: Waarom zet SharePoint Designer ???? in mijn e-mail in plaats van een veldwaarde?

Één reden dat dit gebeurt is omdat de variabele waarnaar u verwijst null is.

Dit kan gebeuren omdat u probeert te verwijzen naar een veld van het huidige item"" maar de gebruiker nooit een waarde ingevoerd in dat veld op het formulier.

<einde />

Technorati Tags:

Vergelijk / Test voor lege datums in SharePoint Designer Workflow

Scenario: In een werkstroom-SharePoint Designer, moet u bepalen als een datumveld leeg is.

Probleem: SPD voorziet niet in een directe methode voor het vergelijken van data naar iets anders dan een datum. U kunt geen maken een aandoening, zoals dit: "If [DateField] is gelijk aan een lege".

Oplossing: De datum converteren naar een tekenreeks. Gebruik string vergelijking om te bepalen als de datum leeg is.

Schermafbeeldingen:

De volgende screenshots tonen hoe te om dit te doen. In dit scenario, een veld in een item, "Milieuvergunningen:Eerste vergunning herinneringsdatum", wordt ingediend en de werkstroom bosbranden in reactie.

afbeelding

afbeelding

Notities:

Toen ik probeerde dit, Ik was aangenaam verrast om te leren dat het werkt. Ik was bang dat SharePoint Designer kan niet toestaan de toewijzingen van tekenreeksen (Variabele:StringReminderDateDate) maar het stond het toe.

Ik was ook bezorgd dat zodat het, de waarde kan worden null en beide opblazen de WF tijdens runtime of misschien verhogen de mondiale temperatuur 1/2 een graad, maar deze zorgen ongegrond waren.

</einde>

Technorati Tags:

Bar is nog steeds vrij hoog te breiden MOSS

Vandaag, Ik was werken met een klant en waarin wordt beschreven hoe het webonderdeel Inhoudsquery wijzigen en weergeven van extra stukjes informatie uit een inhoudstype.

"Eerste., u configureert de CQWP verbinden met de gegevensbronnen, dan u het exporteren naar uw werkstation, wijzigen <CommonViewFields>, Upload, verwijderen van het origineel en nu is het ' primer’ om die andere kolommen weer te geven. Volgende, Open SharePoint designer, Navigeer naar de hoofdmap van de site-verzameling en zoek ItemStyle.xsl. Een van de sjablonen kopiëren als een nuttig uitgangspunt. Ga terug en wijzigen van de CQWP maken gebruik van deze nieuwe sjabloon. Tot slot, Wijzig de sjabloon om uw nieuwe velden! (Vergeet niet om dat het terug in zo dat andere gebruikers de resultaten kunt zien)."

Het is allemaal heel duidelijk voor mij (en de meeste van ons SharePoint ontwikkelaar types) wat er gaande is en hoe het is heel leuk, echt, dat de gegevens ophalen aspecten van de CQWP zo goed-apart van de aspecten van de presentatie gegevens zijn. Maar, het is niet zo makkelijk uit te leggen, is het?

<einde />

Technorati Tags: ,

Content Query Web deel resultaten weergegeven in een raster / Tabel

Overzicht en doelstelling

Out of the box, MOSS’ Webonderdeel Inhoudsquery (CQWP) de resultaten worden in een lijstindeling weergegeven, vergelijkbaar met zoekresultaten. Het is ook mogelijk om de resultaten in een grid-formaat weergeven (dwz. HTML-tabelindeling). Raster formaten zijn beter in bepaalde omstandigheden. Beschrijf ik hoe om te bereiken dat effect in dit artikel.

Bedrijfsscenario

Ik heb gewerkt met een cliënt op de uitrol van een ondernemingsbreed MOSS. Wij hebben hun taxonomie ontworpen zodanig dat projecten eerste klassenburgers in de hiërarchie zijn en hun eigen site van het hoogste niveau hebben. Projectmanagers handhaven een singleton lijst van projectsamenvattingsgegevens, zoals de titel van, begroting, verwachte Voltooiingsdatum, resterende begroting en andere velden resumétype. Door "singleton" Ik bedoel een aangepaste SharePoint-lijst gegarandeerd bevatten slechts één item. Simplistisch, het ziet er als volgt:

afbeelding

De technische aanpak is veel hetzelfde als beschreven Hier (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). De CQWP maakt gebruik van een XSL-transformatie voor het uitzenden van HTML voor de browser weer te geven.

Ik altijd het resultaat voordat duiken in de XSL omdat XSL een nachtmerrie is voor ogen. Hier is mijn gewenste resultaat:

afbeelding

HTML als dit genereert dat resultaat:

<HTML>
 <lichaam>
 <Center>
 <tabel grens= 1>

<!-- Etiketten-->
 <tr bgcolor= blauw>
 <TD><lettertype Kleur= wit><b>Naam van het project</b></lettertype></TD>
 <TD uitlijnen= rechts><lettertype Kleur= wit><b>Datum voltooid</b></lettertype></TD>
 <TD uitlijnen= rechts><lettertype Kleur= wit><b>Begroting</b></lettertype></TD>
 <TD uitlijnen= rechts><lettertype Kleur= wit><b>Werkelijke kosten</b></lettertype></TD>
 <TD><lettertype Kleur= wit><b>Algemene Status</b></lettertype></TD>
 </tr>

<tr>
 <TD>Boren computerlokaal.</TD>
 <TD uitlijnen= rechts>02/01/08</TD>
 <TD uitlijnen= rechts>22,500.00</TD>
 <TD uitlijnen= rechts>19,000.00</TD>
 <TD>In uitvoering</TD>
 </tr>

<tr>
 <TD>Bepaling servers voor SQL Upgrade</TD>
 <TD uitlijnen= rechts>04/01/08</TD>
 <TD uitlijnen= rechts>7,500.00</TD>
 <TD uitlijnen= rechts>0.00</TD>
 <TD>Gepland</TD>
 </tr>

</tabel>
 </Center>
 </lichaam>
</HTML>

Aanpak

Als volgt te werk als u wilt maken het raster:

  1. Identificatie van de bestanddelen van het raster (rijen en kolommen).
  2. Definiëren en maken noodzakelijk sitekolommen.
  3. Maak sub sites voor de projecten en het singleton lijsten.
  4. De CQWP aan een webpagina toevoegen en configureren om te zoeken naar uw lijsten.
  5. De CQWP van XML naar het verzamelen van de aanvullende kolommen wijzigen.
  6. De XSL voor het genereren van een tabel wijzigen.

I 'm gonna concentreren op nummer zes. Getallen tot en met 4 zijn rechttoe-rechtaan en iets dat elke gebruiker CQWP heeft al gedaan. Nummer vijf is goed gedocumenteerd door anderen met inbegrip van dit volledig scherm-schot beladen artikel van MSDN Hier (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) en Heather Solomon's blog Hier (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Moeren en bouten

Beginnen en uit te voeren stappen 1 tot en met 5 vanaf de MSDN-documentatie en Heather Solomon artikel.

Op dit punt, u kunt uw CQWP aan de pagina hebt toegevoegd en u hebt uw <CommonViewFields> zo nodig geconfigureerd.

De gebruikelijke stappen uit te voeren, Ik krijg deze tussentijdse resultaten:

1. Een inhoudstype maken, een templatized aangepaste lijst voor dat inhoudstype en twee sites. Hier wordt het type inhoud:

afbeelding

Hier is de structuur van de site:

afbeelding

2. De CQWP na het maken van mijn project subsites en het singleton project samenvatting lijsten toevoegen:

afbeelding

3. Voeg de aanvullende informatie die ik wil via de <CommonViewFields>:

        <eigenschap naam="CommonViewFields" type="tekenreeks">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</eigenschap>

Merk op dat ik moest houden de eigenschapsvelden op één lijn of het zou niet werken (CQWP zou vertellen me dat de query heeft geen resultaten opgeleverd).

4. Op dit punt, we klaar om te gaan dan het MSDN-artikel en tik op over Heather Solomon's artikel. Haar stappen beginnen in de buurt van stap #5 een aangepaste maken / unghosted versie van ItemStyle.xsl. Ik volg Heather's advies, door stap omhoog 11 en krijg deze tussentijdse resultaten:

4.1: Mijn XSL-sjabloon als volgt de naam:

<XSL:Sjabloonnaam = "Grid" overeenkomen met = "rij[@Style = 'Raster']" modus = "itemstyle">

Ik wijzigen ook iets haar voorgesteld <XSL:for-each …> door het toevoegen van een <BR /> label voor een schonere:

    <XSL:for-each Selecteer="@*">
      P:<XSL:waarde-van Selecteer="naam()" /><BR/>
    </XSL:for-each>

4.2: Ik wijzigen het webonderdeel, Ga naar uiterlijk en selecteer mijn "Grid" stijl:

afbeelding

De wijziging door te voeren en hier is het resultaat:

afbeelding

Uit het bovenstaande kunnen we zien dat de velden die we willen (Naam van het project, kosten, status, etc) beschikbaar zijn voor ons om te gebruiken wanneer we de HTML-code uitstoten. Niet alleen dat, maar we zien de namen waaraan we moeten verwijzen naar die kolommen in de XSL. Bijvoorbeeld, We verwijzen naar de statusdatum van het Project als "Project_x005F_x0020_Name".

Op dit punt, We vertrekken van Heather's blog en van de schouders van deze reuzen, Ik voeg mijn eigen beetje.

ContentQueryMain.xsl

OPMERKING: Wanneer u wijzigingen aanbrengt aan zowel ContentQueryMain.xsl als ItemStyle.xsl, u moet controleren dat deze bestanden terug in voordat u het effect van uw wijzigingen zien.

Voor doeleinden van het raster maken, MOSS maakt gebruik van twee verschillende XSL-bestanden voor de productie van de resultaten die we van een CQWP zien. Voor het genereren van de vorige bit van output, We bewerkt ItemStyle.xsl. MOSS daadwerkelijk gebruik maakt van een andere XSL-bestand, ContentQueryMain.xsl om in combinatie met ItemStyle.xsl voor het genereren van de HTML-code. Zoals de naam al impliceert, ContentQueryMain.xsl is de belangrijkste"" XSL waarmee de totale stroom van vertaling. Het doorlopen van alle gevonden items en geeft ze één voor één aan sjablonen in ItemStyle.xsl. We zullen wijzigen ItemStyle.xsl voor het genereren van de open <tabel> Label vóór dat de eerste rij van de gegevens en de afronding <tabel> Label na de laatste rij uitstoten. Om dit te bereiken, ContentQueryMain.xsl is aangepast om twee parameters doorgeven aan onze "grid" sjabloon in ItemStyle.xsl, "laatste rij" en "huidige rij". ItemStyle.xsl maakt gebruik van deze voorwaardelijk uitstoten de nodige codes.

Met behulp van Heather Solomon techniek, Wij zoeken ContentQueryMain.xsl. Het is gelegen in de dezelfde plaats als ItemStyle.xsl. Dit schermschot moet helpen:

afbeelding

We moeten de volgende wijzigingen aanbrengen:

  • Een XSL-sjabloon wijzigen, "CallItemTemplate" dat roept eigenlijk onze raster sjabloon in ItemStyle.xsl. We zullen twee parameters doorgeven aan de Grid-sjabloon, zodat het de vereiste gegevens hebben zal voor het genereren van voorwaardelijk openen en sluiten <tabel> Tags.
  • Een ander stukje van ContentQueryMain.xsl waarin de "CallItemTemplate wijzigen" geschiedde het een "LastRow" met de parameter dus dat LastRow kan worden doorgegeven aan onze raster sjabloon.

Zoek de sjabloon met de naam "OuterTemplate.CallItemTemplate" geïdentificeerd door de tekenreeks:

  <XSL:sjabloon naam="OuterTemplate.CallItemTemplate">

De hele sjabloon als volgt vervangen:

  <XSL:sjabloon naam="OuterTemplate.CallItemTemplate">
    <XSL:param naam="CurPosition" />

    <!--
      De "LastRow toevoegen" met de parameter.
      We alleen gebruiken wanneer het item stijl pass in zich "Grid".
    -->
    <XSL:param naam="LastRow" />

    <XSL:Kies>
      <XSL:Wanneer test="@Style = 'NewsRollUpItem'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="EditMode" Selecteer="$cbq_iseditmode" />
        </XSL:apply-templates>
      </XSL:Wanneer>
      <XSL:Wanneer test="@Style = 'NewsBigItem'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="CurPos" Selecteer="$CurPosition" />
        </XSL:apply-templates>
      </XSL:Wanneer>
      <XSL:Wanneer test="@Style = 'NewsCategoryItem'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="CurPos" Selecteer="$CurPosition" />
        </XSL:apply-templates>
      </XSL:Wanneer>

      <!--
              Huidige positie en lastrow doorgeven aan de Grid itemstyle.xsl sjabloon.
              ItemStyle.xsl gebruik dat het uitzenden van de open en sluiten <tabel> Tags.
      -->
      <XSL:Wanneer test="@Style = 'Raster'">
        <XSL:apply-templates Selecteer="." modus="itemstyle">
          <XSL:met-param naam="CurPos" Selecteer="$CurPosition" />
          <XSL:met-param naam="Laatste" Selecteer="$LastRow" />
        </XSL:apply-templates>
      </XSL:Wanneer>

      <XSL:anders>
        <XSL:apply-templates Selecteer="." modus="itemstyle">
        </XSL:apply-templates>
      </XSL:anders>
    </XSL:Kies>
  </XSL:sjabloon>

De opmerkingen beschrijving van het doel van de wijzigingen.

Natuurlijk, de OuterTemplate.CallItemTemplate"" zelf wordt aangeroepen vanuit een andere sjabloon. Die sjabloon vinden door te zoeken naar deze tekenreeks:

<XSL:sjabloon naam="OuterTemplate.Body">

Blader door de instructies in OuterTemplate.Body en de parameter LastRow bijvoegen (weergegeven als een commentaar in cursief):

<XSL:oproep-sjabloon naam="OuterTemplate.CallItemTemplate">
  <XSL:met-param naam="CurPosition" Selecteer="$CurPosition" />
  <!-- De LastRow parameter invoegen. -->
  <XSL:met-param naam="LastRow" Selecteer="$LastRow"/>
</XSL:oproep-sjabloon>

Na dit alles, We hebben eindelijk dingen correct ingesteld zodat onze ItemStyle.xsl kunnen uitstoten <tabel> Tags op de juiste plaats.

ItemStyle.Xsl

OPMERKING: Weer, check in ItemStyle.xsl na wijzigingen zodat u het effect van die wijzigingen zien.

We hebben hier twee taken:

  • Vervang de gehele Grid-sjabloon. U kunt kopiëren/plakken uit de onderstaande lijst.
  • Sommige mumbo jumbo buiten de definitie van de sjabloon waarmee "formatcurrency toevoegen" sjabloon om te werken. (U kunt vertellen dat ik heb een ijle greep op XSL).

Eerste, in de buurt van de top van ItemStyle.xsl, Voeg deze regel toe:

  <!-- Sommige mumbo jumbo waarmee we kunnen U.S weergeven. valuta. -->
  <XSL:decimaal-formaat naam="personeel" cijfers="D" />

  <XSL:sjabloon naam="Standaard" wedstrijd="*" modus="itemstyle">

Opmerking dat ik toegevoegd het direct vóór de <XSL:Sjabloonnaam = "standaard" …> definitie.

Volgende, Ga terug naar onze raster sjabloon. De gehele Grid sjabloon vervangen door de onderstaande code. Het is grondig toegelicht, maar aarzel dan niet om me e-mail of reacties op mijn blog als u vragen hebt.

  <XSL:sjabloon naam="Raster" wedstrijd="Rij[@Style = 'Raster']" modus="itemstyle">

    <!--
      ContentMain.xsl gaat CurPos en laatste.
      We deze gebruiken om voorwaardelijk uitstoten het openen en sluiten <tabel> Tags.
    -->
    <XSL:param naam="CurPos" />
    <XSL:param naam="Laatste" />

    <!-- De volgende variabelen zijn tussentijds niet zijn gewijzigd van de standaard ItemStyle.xsl -->
    <XSL:variabele naam="SafeImageUrl">
      <XSL:oproep-sjabloon naam="OuterTemplate.GetSafeStaticUrl">
        <XSL:met-param naam="UrlColumnName" Selecteer="'ImageUrl'"/>
      </XSL:oproep-sjabloon>
    </XSL:variabele>
    <XSL:variabele naam="SafeLinkUrl">
      <XSL:oproep-sjabloon naam="OuterTemplate.GetSafeLink">
        <XSL:met-param naam="UrlColumnName" Selecteer="'LinkUrl'"/>
      </XSL:oproep-sjabloon>
    </XSL:variabele>
    <XSL:variabele naam="DisplayTitle">
      <XSL:oproep-sjabloon naam="OuterTemplate.GetTitle">
        <XSL:met-param naam="Titel" Selecteer="@Title"/>
        <XSL:met-param naam="UrlColumnName" Selecteer="'LinkUrl'"/>
      </XSL:oproep-sjabloon>
    </XSL:variabele>
    <XSL:variabele naam="LinkTarget">
      <XSL:Als test="@OpenInNewWindow = 'True'" >_blank</XSL:Als>
    </XSL:variabele>

    <!--
      Hier definiëren we een variabele, "tableStart".  Dit bevat de HTML-code die we gebruiken om te definiëren van de opening van de tabel, alsmede de kolomlabels.  Merk op dat als CurPos = 1, het bevat de HTML-code in een CDATA-tag.
      Anders, het is leeg.

      De waarde van tableStart is emited telkens wanneer ItemStyle wordt aangeroepen via ContentQueryMain.xsl.
    -->
    <XSL:variabele naam="tableStart">
      <XSL:Als test="$CurPos = 1">
        <![CDATA[
        <tabelrand = 1>
          <TR bgcolor = "blauw">
            <TD><tekstkleur = "wit"><b>Naam van het project</b></lettertype></TD>
            <TD align = "rechts"><tekstkleur = "wit"><b>Datum voltooid</b></lettertype></TD>
            <TD align = "rechts"><tekstkleur = "wit"><b>Begroting</b></lettertype></TD>
            <TD align = "rechts"><tekstkleur = "wit"><b>Werkelijke kosten</b></lettertype></TD>
            <TD><tekstkleur = "wit"><b>Algemene Status</b></lettertype></TD>
          </tr>
        ]]>
      </XSL:Als>
    </XSL:variabele>

    <!--
      Een andere variabele, tableEnd gewoon definieert de afsluitende tag tabel.

      Zoals met tableStart, het is altijd emited.  Dit is de reden waarom de waarde is toegewezen voorwaardelijk op basis van de vraag of we de laatste rij met ContentQueryMain.xsl heb zijn aangenomen.
    -->
    <XSL:variabele naam="tableEnd">
      <XSL:Als test="$CurPos = $Last">
        <![CDATA[ </tabel> ]]>
      </XSL:Als>
    </XSL:variabele>

    <!--
      Altijd het uitzenden van de inhoud van tableStart.  Als dit niet de eerste rij doorgegeven aan ons door ContentQueryMain.xsl, dan weten we de waarde leeg zal worden.

      Uitschakelen uitvoer ontsnappen omdat wanneer tableStart het niet leeg, Het omvat werkelijke HTML die we willen worden weergegeven door de browser.  Als we niet vertellen uitvoer de XSL-parser uitschakelen ontsnappen, zal het genereren van dingen zoals"&lt;tabel&gt;" in plaats van"<tabel>".
    -->
    <XSL:waarde-van Selecteer="$tableStart" uitschakelen-uitvoer-ontsnappen="Ja"/>


    <tr>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <TD>
        <XSL:waarde-van Selecteer="@Project_x005F_x0020_Name"/>
      </TD>

      <TD uitlijnen="recht">
        <XSL:waarde-van Selecteer="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD uitlijnen="recht">
        <XSL:oproep-sjabloon naam="FormatCurrency">
          <XSL:met-param naam="waarde" 
Selecteer="@Project_x005F_x0020_Budget"></XSL:met-param> </XSL:oproep-sjabloon> </TD> <TD uitlijnen="recht"> <XSL:oproep-sjabloon naam="FormatCurrency"> <XSL:met-param naam="waarde" Selecteer="@Project_x005F_x0020_Expenses">
</XSL:met-param> </XSL:oproep-sjabloon> </TD> <TD> <XSL:waarde-van Selecteer="@Project_x005F_x0020_Status"/> </TD> <!-- Alle van de volgende handelingen is uitgecommentarieerd te verduidelijken dingen. Echter, het terug te brengen en dat soort dingen in een <TD> om het effect te zien. --> <!-- <div id = "linkitem" klasse = "post"> <XSL:Als test = "tekenreeks-lengte($SafeImageUrl) != 0 "> <div class = & quoSafeImageUrl-links "> <een href = "{$SafeLinkUrl}" target = "{$LinkTarget}"> <img klasse = "afbeelding-fixed-width" src = "{$SafeImageUrl}"
ALT = "{@ImageUrlAltText}"/> </een> </div> </XSL:Als> <div class = "link-item"> <XSL:oproep-sjabloon
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <een href = "{$SafeLinkUrl}"
target = "{$LinkTarget}" titel = "{@LinkToolTip}"> <XSL:Selecteer waarde-van "$DispXSLTitle" = /> </een> <div class = "omschrijving"> <XSL:waarde-van select="@Description" /> </div> </div> </div>
--> </tr> <!-- Uitstoten de afsluitende tag tabel. Als we niet op de laatste rij, Dit is leeg. --> <XSL:waarde-van Selecteer="$tableEnd" uitschakelen-uitvoer-ontsnappen="Ja"/> </XSL:sjabloon> <XSL:sjabloon naam="FormatCurrency"> <XSL:param naam="waarde" Selecteer="0" /> <XSL:waarde-van Selecteer='getalnotatie($waarde, "$DDD,DDD,DDD.DD", "personeel")' /> </XSL:sjabloon>

Standaard WSS/MOSS gegevens invoerschermen ondersteunen geen trapsgewijze Drop-downs (of andere intra-in de mededeling van)

UPDATE (04/2008): Deze geweldige blog entry toont een goede javascript gebaseerde aanpak van dit probleem: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

UPDATE II: (04/2008): Deze blog entry ziet er veelbelovend zo goed: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Meerdere malen per week, Als niet dagelijks, forumgebruikers beschrijven een eis die gewoonlijk zou worden voldaan via trapsgewijze drop-downs. Bijvoorbeeld, Ik heb twee besturingselementen van vervolgkeuzelijst:

  • Lijst van U.S. Staten
  • Lijst van U.S. steden.

Als verantwoordelijk UI aanbieders, We wilt werken als dit:

  • Paul selecteert een U.S. staat uit de drop-down.
  • Dit zorgt ervoor dat de steden vervolgkeuzelijst om te filteren alleen die steden die deel uitmaken van de geselecteerde status.
  • Paul kiest dit gefilterde lijst een stad.

Er is geen out-of-the-box ondersteuning voor deze functie. Eigenlijk, Er is geen OOB ondersteuning voor elk soort directe intra-vorm mededeling. Dit omvat programmatisch verbergen/activeren/deactiveren velden in reactie op veld veranderingen elders op het formulier.

Het echte doel van dit artikel om te beschrijven mogelijke oplossingen en deze zijn de opties aangezien ik ken ze:

  1. Ontwikkelen van een aangepaste kolomtype. Als een aangepaste-kolom-ontwikkelaar, u hebt volledige controle over de wereld"" van die aangepaste kolom. U kunt implementeren een trapsgewijze keuzelijst die manier.
  2. Overweeg het gebruik van de werkstroom. In sommige gevallen, u wilt een waarde automatisch aan veld op basis van de waarde van een ander veld toewijzen. In dit geval, u zou normaal probeert te gebruiken een berekende kolom, maar sommige tijden, het krijgen gewoon niet de klus te klaren. SharePoint Designer workflow is een relatief beheren-vriendelijk alternatief voor het laten vallen naar beneden in de code en visual studio. Als je deze route te gaan, zich bewust zijn van de kwestie die in dit artikel (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Gebeurtenis-handlers: Als de werkstroom, Dit is een oplossing na-de-feit. De gebeurtenis-handler is een .NET-assembly (C#, VB.NET) naar welke SharePoint wordt de controle overgedragen. Het object dat u ontwikkelen heeft toegang tot de gegevens van de lijst (en het hele objectmodel) en elke benodigde berekening kunt doen.
  4. SharePoint Designer gebruiken om aangepaste vermelding formulieren te maken. Ik heb geen directe ervaring met deze aanpak, maar ik hoor ze doen goede dingen met NewForm.aspx deze dagen 🙂
  5. Uw eigen ASP.NET-gegevensfunctie vermelding roll (Als een zelfstandige webpagina of als een webonderdeel) en dat in plaats daarvan gebruiken.

Als iemand andere en/of betere opties weet, post een reactie en ik zal updaten de tekst van dit bericht.

<einde />

Technorati Tags:

Ja/Nee (selectievakje) filteren in het webonderdeel Inhoudsquery

Om te filteren op een query voor de Ja/geen selectievakje getiteld "PG mijlpaal", configureren CQWP zoals dit:

afbeelding

Dit is een andere een van deze voor de hand liggende-keer-u-weet-it maar hard-to-find-an-answer-to vragen: Hoe om te filteren op een Ja/geen selectievakje met behulp van het webonderdeel Inhoudsquery.

De eerste zoekresultaat Ik vind met behulp van de zoekterm 'filter Ja/Nee Inhoudsquery webonderdeel" flat out verkeerd is, dus ik dacht dat zou ik dit omhoog daar gezet en zien als het de onjuiste resultaten in typische zoekresultaten vervangen kan.

Het is vrij gemakkelijk: Waar waarden = "1" en foutieve waarden niet gelijk "1" (mooie retro, eigenlijk).

In het bovenstaande voorbeeld, Ik heb gemaakt sitekolom soort Ja/Nee" (checkbox)" benoemde "PG mijlpaal". Ik toegevoegd aan een documentbibliotheek, een paar documenten geüpload, Stel de waarde voor een paar en getest.

<einde />