Månedlige Arkiver: Desember 2007

Min sønn hacket Gamespot

Så, Denne morgenen, min sønn er fast bestemt på å se en alder-tretten begrenset Halo 3 video Gamespot. Jeg er utenfor snømåking, så jeg ikke er der for å hjelpe eller hindre. Nødvendighet er mor til oppfinnelsen og alt … Han har en eureka! øyeblikk. Han innser at selv om Gamespot ønsker ham å gå inn hans ekte fødselsdato, han kan faktisk gå inn noen fødselsdato han ønsker. Når han innså at, han gjorde seg gammel nok til å se video.

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

Søndag Funny: “Det er utskrift søppel”

På min første jobb ute av college i 1991, Jeg var heldig å jobbe for et produksjonsselskap med 13 steder, ikke inkludert dens corporate HQ i New Jersey. Jeg kom akkurat da selskapet ble rullet ut et nytt ERP-system. Vi var en liten IT-avdelingen i omtrent ti mennesker helt, to av dem ikke reise. Del av prosjektet involvert erstatter IBM 36 bokser med HP-maskinvare og HPUX. Alle brukte grønne rør tilgang til systemet.

Prosjektet ruller sammen og jeg er sendt ned til Baltimore med en ny medarbeider, Jeff. Vår jobb var å makt opp boksen Unix, Kontroller o/s var kjører, installere ERP-systemet, konfigurere ERP, trene folk på ERP og gjøre tilpasset arbeid for folk på stedet. (Dette var en drøm jobb, spesielt kommer rett ut av college). Før vi kunne virkelig ta av bakken, Vi måtte pakke alle grønne rør, sett dem på skrivebord og wire dem. Og beste var at vi måtte sette RJ11-kontakter på oss.

For noen grunn jeg aldri forstått og faktisk aldri tenkt å spørre om samtidig, Vi hadde noen entreprenørselskap kom og Kjør kabelen gjennom anlegget, men vi har ikke dem satt på kontakter. Så, Det var en "lapp box" med dusinvis av umerkede kabler i datarommet"" og disse snaked rundt bygningen på forskjellige steder i bygningen.

Vi jobbet vei gjennom det i løpet av en helg, testing hver ledning, å sette på en kobling (Kontroller at den var rett vs. krysset), sikre bit innstillingene på grønne rør og skrivere var riktig, merking ledninger, Pass på at "getty" kjører riktig for hver port og sannsynligvis tusen andre ting at jeg har undertrykt siden. Det hele kom sammen ganske pent.

men, Det var en viktig kabel som vi ikke kunne finne ut. Anlegget i Baltimore hadde et forhold med en lager beliggenhet i New Jersey. Noen bestillinger i Baltimore sendt ut av plasseringen. Det var to ledninger som vi måtte gå til HPUX for: en grønn rør og en skriver. Grønne røret var lett, men skriveren ble til et tre ukers mareritt.

Hvis du ikke vet det, eller har undertrykkes det., håndtere grønne rør og skrivere slik, Det finnes ulike alternativer som du håndtere ved å angi forskjellige pins. 8-bit, 7-bit, paritet (selv/odde/ingen), sannsynligvis andre. Hvis du får en av disse innstillingene galt, den rør eller skriveren viser fortsatt ting, men det vil være totalt vrøvl, eller vil det være vrøvl med mange gjenkjennelige ting i mellom. selvfølgelig, disse pinnene er vanskelig å se og må angis ved hjelp av en liten flat kant skrutrekker. Og de er aldri standard.

Vi satt opp først av mange raske samtaler med NJ fyren (prikkete datamaskinen hater som sannsynligvis forbannelser oss i dag). Vi grønne røret arbeider ganske raskt, men vi kunne ikke få skriveren til å arbeide. Det holdt "utskrift søppel". Vi vil skape en ny RJ11-kontakt, bytte mellom krysset og rett. Vi sletter porten og opprettes på nytt i Unix. Vi gikk gjennom vanskelige oppgaven med å ha ham forklare oss pin konfigurasjonen på skriveren, aldri virkelig sikker på om han gjorde det riktig.

Det er på tide å gå live, alt i Baltimore nynner, men vi kan ikke få forbannet skriveren i NJ arbeide! Vi har brukt alle muligheter unntatt kjører tilbake til NJ å arbeide på skriveren i person. Unngå alle som kjører, vi til slutt be ham om å fakse oss hva han får når det er "søppel", håper at kanskje det vil være noen hint i det søppel som vil fortelle oss hva vi gjør feil.

Når vi fikk faksen, Vi visste umiddelbart hva som var galt. Se, vår metode for å teste om vi hadde konfigurert en skriver var å utstede en "lp" kommando som dette:

LP/etc/passwd

I utgangspunktet, Vi skrives ut filen unix passord. Det er alltid til stede og esken, bare én side. Du standard Unix passord fil ser omtrent slik ut:

Smith:*:100:100:8A-74(Office):/hjem/smith:/usr/bin/sh gjest:*:200:0::/hjem/guest:/usr/bin/sh  

Vi hadde vært skrive ut passordfilen igjen og igjen i flere uker og det ble skrevet ut riktig. Men, for sluttbrukeren, Det var "utskrift søppel".

</slutten>

Ennå en annen Network legitimasjon Multi-Challenge problem og løsning

Min klient nylig installert en magisk enhet fra Einer som angivelig erstattet sin gamle Cisco nettverk belastningsfordeling (NLB). På omtrent samme tid, vi installert en hurtigreparasjon for problemet en arbeidsflyt.

En dag eller to senere, Vi la merke til et problem da vi åpnet leverandøren av delte tjenester (SSP). Vi kunne få til det., men vi ville bli utfordret om bruker-ID og passord mange ganger på hver side. Dette skjedde med viktigste portalen app, eller Sentraladministrasjon. Naturlig, Vi visste hvilken av to (Einebær eller hurtigreparasjon) ville være problemet, Selv om jeg sterkt mistenkt hurtigreparasjonen, å finne vi ikke hadde installert den helt.

Det viste seg at Juniper hadde en slags komprimeringsinnstilling. En av de robed tall over i nettverket viste gruppen at innstillingen av. Det løste problemet vårt.

Dette er ikke første gang at komprimering har vært årsaken til et SharePoint-problem for meg. IIS komprimering påvirket negativt en 3rd parti verktøyet fra den gode folket på The Dot Net Factory for IE 6 nettlesere (IE 7 nettlesere fungerte uten problemer).

Så, legge til "komprimering" i listen farer.

</slutten>

Kreditt til: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Technorati Merkelapper: ,

Vurderer du å endre Blogging plattform

Jeg startet min blogging karriere"" med Microsofts plattform og det har vært bra for meg. Det er enkelt å legge inn, Det er gode alternativer og widgeter for å administrere din "space", anstendig web-lagring og så videre.

Men, Jeg falt egentlig bare i MS løsningen med nesten ingen planlegging. De alene kaller for meg å vurdere hvor jeg er og hvor jeg skal, i blogging plattform. Det er også to viktige begrensninger som plager meg rett nå vis-à-vis Windows Live Spaces.

Første, Jeg kan ikke bli veldig god statistikk. Det er statistikk, men detaljene er ofte forkortet og ikke presentert på en måte som tillater enhver analyse. Det ingen sortering eller eksportere evnen. Jeg får mange blogg ideer basert på hvilken type informasjon opplever (eller spesielt ikke klarer å finne) Når de søker bloggen min. Det er veldig vanskelig å bruke liv mellomrom for.

Andre, Det synes ikke å være noen mekanisme for å "tjene penger" en ledig Mufin. faktisk, for å bli kvitt MS annonser (hvorfra jeg utlede ingen fordel), Jeg trenger å faktisk betaler Microsoft. (Minst, Det er hvordan jeg forstår det; Jeg har vært i stand til få fasitsvar på dette og spørsmål som det).

Nå som jeg har en etablert mønster og sett med blogging vaner, Jeg ønsker å vurdere andre alternativer. Jeg har gjort noen undersøkelser, og det er mange valg, men jeg er nysgjerrig på hva andre mennesker, spesielt andre i SharePoint samfunnet (som bloggere eller lesere), bruke.

Hvis dette emnet interesserer deg, og du har en mening eller er villige til å dele dine erfaringer, Vennligst legg igjen en kommentar eller send meg direkte.

takk!

<slutten />

Technorati Merkelapper:

SharePoint Designer Email sender ???? i en e-post

Forum brukere spørre til: Hvorfor legger SharePoint Designer ???? i min e-post i stedet for en feltverdi?

En grunn dette skjer er fordi variabelen som du refererer er null.

Dette kan skje fordi du prøver å referere til et felt fra "gjeldende element" men du inn aldri en verdi i dette skjemafeltet.

<slutten />

Technorati Merkelapper:

Sammenligne / Teste tomt datoer i SharePoint Designer arbeidsflyt

Scenario: I en arbeidsflyt for SharePoint Designer, du må avgjøre om dato-feltet er tomt.

Problemet: SPD tilbyr ikke en direkte metode for å sammenligne datoene til noe annet enn en dato. Du kan ikke opprette en tilstand som dette: "Hvis [DateField] er lik tomt".

Løsning: Konvertere datoen til en streng. Bruke strengsammenligning for å avgjøre om datoen er tomt.

Skjermbilder:

Følgende skjermbilder viser hvordan du gjør dette. I dette scenariet, et felt i et element, "Miljømessige tillatelser:Først tillate påminnelsesdato", sendes og arbeidsflyten branner svar.

bilde

bilde

Notater:

Når jeg forsøkt denne, Jeg ble positivt overrasket over å høre at det fungerer. Jeg var bekymret for at SharePoint Designer kan forby streng tildelingen (Variabel:StringReminderDateDate) men det tillater det.

Jeg var også bekymret det slik at det, verdien kan være null og enten sprenge WF under kjøring eller kanskje øke den globale temperaturen 1/2 en grad, men disse bekymringene var ubegrunnet.

</slutten>

Technorati Merkelapper:

Baren er fortsatt ganske høy å utvide MOSS

I dag, Jeg var arbeider med en klient og hvordan å endre webdelen for innholdsspørring og vise flere biter av informasjon fra en innholdstype.

"Første, du konfigurerer CQWP koble til sine datakilder, deretter kan du eksportere den til pulten, endre <CommonViewFields>, laste opp, fjerne originalen og nå er det "primet’ vise de andre kolonnene. Neste, åpne SharePoint designer, Naviger til området samling roten og Finn ItemStyle.xsl. Kopiere en av malene som nyttig utgangspunkt. Gå tilbake og endre CQWP å gjøre bruk av denne ny mal. Endelig, endre malen for å gjengi din nye felt! (Ikke glem å sjekke det tilbake i slik at andre brukere kan se resultatene)."

Det er alle ganske klart for meg (og de fleste av oss SharePoint utvikler datatyper) hva som skjer og hvordan det er ganske fin, virkelig, at data henting aspekter av CQWP er så vel-separat fra data presentasjon aspekter. men, Det er ikke så lett å forklare, er det?

<slutten />

Technorati Merkelapper: ,

Vise innhold webdel spørringsresultatene i et rutenett / Tabell

Oversikt og mål

Esken, MOSS’ Webdelen for innholdsspørring (CQWP) viser resultatene i listeformat, lik søkeresultater. Det er også mulig å vise resultatene i et rutenettformat (dvs.. HTML tabellformat). Rutenettet er bedre i enkelte tilfeller. Jeg beskrive hvordan å oppnå den effekten i denne artikkelen.

Virksomhet Scenario

Jeg har jobbet med en klient på en bedriftsomfattende MOSS distribusjon. Vi har utformet sine taksonomi slik at prosjekter er førsteklasses borgere i hierarkiet og har sin egen området på toppnivå. Prosjektledere vedlikeholde en singleton liste over sammendragsinformasjon for prosjektet, som tittelen, budsjett, forventet fullføringsdato, Gjenstående budsjett og andre oppsummeringstype felt. Av "singleton" Jeg mener en egendefinert SharePoint-liste som er garantert å inneholde bare ett element. Simplistically, Det ser ut som dette:

bilde

Tekniske tilnærmingen er mye det samme som beskrevet her (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP bruker en XSL-transformasjon for å avgi HTML for leseren for å gjengi.

Envision jeg alltid resultatet før dykking i XSL fordi XSL er et mareritt. Her er min ønsket resultat:

bilde

HTML som dette genererer resultatet:

<HTML>
 <kroppen>
 <Center>
 <tabell kantlinje= 1>

<!-- Etiketter->
 <tr BgColor= blå>
 <TD><skrift farge= hvit><b>Prosjektnavnet</b></skrift></TD>
 <TD justere= høyre><skrift farge= hvit><b>Fullført dato</b></skrift></TD>
 <TD justere= høyre><skrift farge= hvit><b>Budsjett</b></skrift></TD>
 <TD justere= høyre><skrift farge= hvit><b>Faktiske kostnader</b></skrift></TD>
 <TD><skrift farge= hvit><b>Samlet Status</b></skrift></TD>
 </tr>

<tr>
 <TD>Re-wire datarom.</TD>
 <TD justere= høyre>02/01/08</TD>
 <TD justere= høyre>22,500.00</TD>
 <TD justere= høyre>19,000.00</TD>
 <TD>Pågår</TD>
 </tr>

<tr>
 <TD>Bestemmelsen servere for SQL Upgrade</TD>
 <TD justere= høyre>04/01/08</TD>
 <TD justere= høyre>7,500.00</TD>
 <TD justere= høyre>0.00</TD>
 <TD>Planlagt</TD>
 </tr>

</tabell>
 </Center>
 </kroppen>
</HTML>

Tilnærming

Følg denne fremgangsmåten for å opprette rutenettet:

  1. Komponentene i rutenettet (rader/kolonner).
  2. Definerer og nødvendig områdekolonner.
  3. Opprette sub-områder for prosjekter og singleton lister.
  4. Legge til CQWP til en webside og konfigurere den til å søke for listene.
  5. Endre det CQWP XML til å samle tilleggskolonnene.
  6. Endre XSL for å generere en tabell.

Jeg skal konsentrere nummer seks. Tallene en gjennom fire er rett fram og noe som CQWP brukere har allerede gjort. Nummer fem er veldokumentert av andre inkludert denne uttømmende skjermbilde laden artikkelen fra MSDN her (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) og Heather Solomons blogg her (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Muttere og bolter

Begynner og implementere trinn en til fem i MSDN-dokumentasjonen og Heather Solomons artikkel.

På dette punktet, du har lagt til din CQWP til siden og du har din <CommonViewFields> konfigurert som nødvendig.

Vanlige fremgangsmåten, Jeg får disse mellomliggende resultater:

1. Opprette en innholdstype, en malbasert liste for innholdstypen og to områder. Her er innholdstypen:

bilde

Her er områdestrukturen:

bilde

2. Legge til CQWP når du har opprettet min prosjektet sekundære områder og singleton prosjektet Sammendrag lister:

bilde

3. Legge til den ekstra informasjonen jeg ønsker via den <CommonViewFields>:

        <egenskapen navn="CommonViewFields" type="streng">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</egenskapen>

Merk at jeg måtte holde alle egenskapsfelt på én linje, eller det ville ikke fungere (CQWP ville fortelle meg at spørringen returnerte ingen elementer).

4. På dette punktet, Vi er klare til å MSDN-artikkelen og snu på Heather Solomons artikkel. Følg hennes fremgangsmåte begynner nær trinn #5 opprette en tilpasset / unghosted versjon av ItemStyle.xsl. Jeg følger Heather råd, opp gjennom trinn 11 og få disse midlertidige resultater:

4.1: Navnet mitt XSL-mal som følger:

<XSL:malnavnet = "rutenett" matche = "rad[@Style = 'Rutenett']" Mode = "itemstyle">

Jeg endre også litt henne foreslo <XSL:for each …> ved å legge til en <br /> kode for å gi en renere liste:

    <XSL:for each Velg="@*">
      P:<XSL:verdien av Velg="navn()" /><br/>
    </XSL:for each>

4.2: Jeg endre webdelen, gå til utseende og velg min "rutenett" stil:

bilde

Før endringen og her er resultatet:

bilde

Vi kan se fra ovenfor at feltene vi ønsker (Prosjektnavnet, bekostning, status, osv.) er tilgjengelig for oss å bruke når vi sender ut HTML. Ikke bare det, men vi se navnene som vi må referere til disse kolonnene i XSL. For eksempel, Vi referanse prosjektstatus som "Project_x005F_x0020_Name".

På dette punktet, Vi går fra Heathers blogg og skuldrene til disse gigantene, Jeg legger min egen litt.

ContentQueryMain.xsl

NOTE: Når endringer både ContentQueryMain.xsl samt ItemStyle.xsl, du må sjekke filene tilbake i før du ser effekten av endringene.

Rutenett-making forbindelse, MOSS bruker to forskjellige XSL-filer for å produsere resultatene vi ser fra en CQWP. Generere den forrige bit av utdata, vi endret ItemStyle.xsl. MOSS faktisk bruker en XSL-fil, ContentQueryMain.xsl til i forbindelse med ItemStyle.xsl til å generere dens HTML. Som navnet tilsier, ContentQueryMain.xsl er den "viktigste" XSL som styrer den samlede flyten i oversettelse. Det går gjennom alle funnet elementene og sender dem én etter én til malene i ItemStyle.xsl. Vi vil endre ItemStyle.xsl for å generere åpne <tabell> før emitting den første raden med data og lukking <tabell> koden etter emitting siste. Å oppnå dette, ContentQueryMain.xsl er endret for å sende to parametere til våre "rutenett" malen i ItemStyle.xsl, "siste rad" og "gjeldende rad". ItemStyle.xsl bruker dette til betinget avgir de nødvendige kodene.

Bruke Heather Solomons teknikken, Vi finner ContentQueryMain.xsl. Det ligger på samme sted som ItemStyle.xsl. Dette skjermbildet skal hjelpe:

bilde

Vi må gjøre følgende endringer:

  • Endre en xsl-mal, "CallItemTemplate" som påkaller faktisk våre rutenettet malen i ItemStyle.xsl. Vi passerer to parametere for rutenettet malen slik at den har dataene må betinget generering åpning og lukking <tabell> Tags.
  • Endre en annen bit av ContentQueryMain.xsl som kaller "CallItemTemplate" skjedde det en "LastRow" parameteren slik at LastRow kan bli gitt videre til vår rutenettet mal.

Finn malen kalt "OuterTemplate.CallItemTemplate" identifisert av strengen:

  <XSL:mal navn="OuterTemplate.CallItemTemplate">

Erstatte hele malen som følger:

  <XSL:mal navn="OuterTemplate.CallItemTemplate">
    <XSL:param navn="CurPosition" />

    <!--
      Legge til LastRow"" parameteren.
      Vi bare bruker den når elementet stil trinnet er "Rutenett".
    -->
    <XSL:param navn="LastRow" />

    <XSL:Velg>
      <XSL:når test="@Style = 'NewsRollUpItem'">
        <XSL:bruke-maler Velg="." modus="itemstyle">
          <XSL:med param navn="EditMode" Velg="$cbq_iseditmode" />
        </XSL:bruke-maler>
      </XSL:når>
      <XSL:når test="@Style = 'NewsBigItem'">
        <XSL:bruke-maler Velg="." modus="itemstyle">
          <XSL:med param navn="CurPos" Velg="$CurPosition" />
        </XSL:bruke-maler>
      </XSL:når>
      <XSL:når test="@Style = 'NewsCategoryItem'">
        <XSL:bruke-maler Velg="." modus="itemstyle">
          <XSL:med param navn="CurPos" Velg="$CurPosition" />
        </XSL:bruke-maler>
      </XSL:når>

      <!--
              Pass nåværende posisjon og lastrow i malen rutenett itemstyle.xsl.
              ItemStyle.xsl vil bruke det til å avgi åpne og lukke <tabell> Tags.
      -->
      <XSL:når test="@Style = 'Rutenett'">
        <XSL:bruke-maler Velg="." modus="itemstyle">
          <XSL:med param navn="CurPos" Velg="$CurPosition" />
          <XSL:med param navn="Siste" Velg="$LastRow" />
        </XSL:bruke-maler>
      </XSL:når>

      <XSL:ellers>
        <XSL:bruke-maler Velg="." modus="itemstyle">
        </XSL:bruke-maler>
      </XSL:ellers>
    </XSL:Velg>
  </XSL:mal>

Kommentarer beskriver hensikten med endringene.

selvfølgelig, "-OuterTemplate.CallItemTemplate" kalles seg fra en annen mal. Finn malen ved å søke etter denne tekststrengen:

<XSL:mal navn="OuterTemplate.Body">

Bla gjennom instruksjonene i OuterTemplate.Body og setter parameteren LastRow som følger (vises som en kommentar i kursiv):

<XSL:samtale-mal navn="OuterTemplate.CallItemTemplate">
  <XSL:med param navn="CurPosition" Velg="$CurPosition" />
  <!-- Sette parameteren LastRow. -->
  <XSL:med param navn="LastRow" Velg="$LastRow"/>
</XSL:samtale-mal>

Etter alt dette, Vi endelig har ting satt opp riktig slik at våre ItemStyle.xsl kan avgi <tabell> koder på rett sted.

ItemStyle.Xsl

NOTE: Igjen, innsjekking ItemStyle.xsl etter gjør endringer slik at du ser effekten av endringene.

Vi har to aktiviteter:

  • Erstatte malen for hele rutenettet. Du kan kopiere/lime nedenfor.
  • Legge noe mumbo jumbo utenfor maldefinisjonen som gjør "formatcurrency" mal å arbeide. (Du kan fortelle at jeg har en spinkel håndtak på XSL).

Første, øverst på ItemStyle.xsl, Legg til denne linjen:

  <!-- Noe mumbo jumbo som lar oss vise USA. valuta. -->
  <XSL:desimal-format navn="ansatte" siffer="D" />

  <XSL:mal navn="Standard" kamp="*" modus="itemstyle">

Merk at jeg la det direkte før den <XSL:malnavnet = "retten" …> definisjon.

Neste, gå tilbake til vår rutenettet mal. Erstatte malen for hele rutenettet med koden nedenfor. Det er godt kommentert, men ikke nøl med å email meg eller forlate kommentarer på bloggen min hvis du har spørsmål.

  <XSL:mal navn="Rutenett" kamp="Rad[@Style = 'Rutenett']" modus="itemstyle">

    <!--
      ContentMain.xsl går CurPos og siste.
      Vi bruker disse til betinget avgir åpne og lukke <tabell> Tags.
    -->
    <XSL:param navn="CurPos" />
    <XSL:param navn="Siste" />

    <!-- Følgende variabler er uendret fra den standard ItemStyle.xsl -->
    <XSL:variabel navn="SafeImageUrl">
      <XSL:samtale-mal navn="OuterTemplate.GetSafeStaticUrl">
        <XSL:med param navn="UrlColumnName" Velg="'ImageUrl'"/>
      </XSL:samtale-mal>
    </XSL:variabel>
    <XSL:variabel navn="SafeLinkUrl">
      <XSL:samtale-mal navn="OuterTemplate.GetSafeLink">
        <XSL:med param navn="UrlColumnName" Velg="'LinkUrl'"/>
      </XSL:samtale-mal>
    </XSL:variabel>
    <XSL:variabel navn="DisplayTitle">
      <XSL:samtale-mal navn="OuterTemplate.GetTitle">
        <XSL:med param navn="Tittel" Velg="@Title"/>
        <XSL:med param navn="UrlColumnName" Velg="'LinkUrl'"/>
      </XSL:samtale-mal>
    </XSL:variabel>
    <XSL:variabel navn="LinkTarget">
      <XSL:Hvis test="@OpenInNewWindow = "True"" >_blank</XSL:Hvis>
    </XSL:variabel>

    <!--
      Her definere vi en variabel, "tableStart".  Denne inneholder HTML som vi bruker til å definere åpningen av tabellen samt kolonneetikettene.  Merk at hvis CurPos = 1, Det inkluderer HTML i en CDATA-kode.
      Ellers, det vil være tomt.

      Verdien for tableStart er emited hver gang ItemStyle kalles via ContentQueryMain.xsl.
    -->
    <XSL:variabel navn="tableStart">
      <XSL:Hvis test="$CurPos = 1">
        <![CDATA[
        <tabellkantlinjen = 1>
          <St bgcolor = "blue">
            <TD><skriftfarge = "hvit"><b>Prosjektnavnet</b></skrift></TD>
            <TD Juster = "høyre"><skriftfarge = "hvit"><b>Fullført dato</b></skrift></TD>
            <TD Juster = "høyre"><skriftfarge = "hvit"><b>Budsjett</b></skrift></TD>
            <TD Juster = "høyre"><skriftfarge = "hvit"><b>Faktiske kostnader</b></skrift></TD>
            <TD><skriftfarge = "hvit"><b>Samlet Status</b></skrift></TD>
          </tr>
        ]]>
      </XSL:Hvis>
    </XSL:variabel>

    <!--
      En annen variabel, tableEnd bare definerer avslutningskoden tabellen kode.

      Som med tableStart, Det er alltid emited.  Derfor verdien tilordnes betinget basert på om har vi passert siste av ContentQueryMain.xsl.
    -->
    <XSL:variabel navn="tableEnd">
      <XSL:Hvis test="$CurPos = $Last">
        <![CDATA[ </tabell> ]]>
      </XSL:Hvis>
    </XSL:variabel>

    <!--
      Alltid avgi innholdet i tableStart.  Hvis dette ikke er den første raden passerte oss ContentQueryMain.xsl, så vet vi verdien være tom.

      Deaktiverer utgang rømmer fordi når tableStart det ikke tomme, den inneholder selve HTML som vi skal gjengis i leseren.  Hvis vi ikke forteller utgang XSL parseren deaktiverer rømme, det vil generere ting som"&lt;tabell&gt;" i stedet for"<tabell>".
    -->
    <XSL:verdien av Velg="$tableStart" Deaktiver-utdata-unnslippe="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:verdien av Velg="@Project_x005F_x0020_Name"/>
      </TD>

      <TD justere="høyre">
        <XSL:verdien av Velg="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD justere="høyre">
        <XSL:samtale-mal navn="FormatCurrency">
          <XSL:med param navn="verdi" 
Velg="@Project_x005F_x0020_Budget"></XSL:med param> </XSL:samtale-mal> </TD> <TD justere="høyre"> <XSL:samtale-mal navn="FormatCurrency"> <XSL:med param navn="verdi" Velg="@Project_x005F_x0020_Expenses">
</XSL:med param> </XSL:samtale-mal> </TD> <TD> <XSL:verdien av Velg="@Project_x005F_x0020_Status"/> </TD> <!-- Følgende er kommentert ut for å avklare ting. Men, bringe det tilbake og greier det i en <TD> å se sin effekt. --> <!-- <div id = "linkitem" class = "element"> <XSL:Hvis test = "strenglengde($SafeImageUrl) != 0"> <div class = "bilde-området-left"> <et href = "{$SafeLinkUrl}" Target = "{$LinkTarget}"> <img class = "bilde-fast bredde" src = "{$SafeImageUrl}"
alt = "{@ImageUrlAltText}"/> </en> </div> </XSL:Hvis> <div class = "link-element"> <XSL:samtale-mal
Name="OuterTemplate.CallPresenceStatusIconTemplate"/> <et href = "{$SafeLinkUrl}"
Target = "{$LinkTarget}" Tittel = "{@LinkToolTip}"> <XSL:verdien av Velg = "$DisXSLyTitle" /> </en> <div class = "beskrivelse"> <XSL:verdien av select="@Description" /> </div> </div> </div>
--> </tr> <!-- Avgi avslutningskoden tabellen kode. Hvis vi ikke er i den siste raden, Dette vil være tom. --> <XSL:verdien av Velg="$tableEnd" Deaktiver-utdata-unnslippe="ja"/> </XSL:mal> <XSL:mal navn="FormatCurrency"> <XSL:param navn="verdi" Velg="0" /> <XSL:verdien av Velg='formater tall($verdi, "$DDD,DDD,DDD.DD", "personale")' /> </XSL:mal>

Standard WSS RUNDPINNE dataregistreringsskjermbilder støtter ikke gjennomgripende rullegardinlister (eller andre intra-fra kommunikasjon)

OPPDATERINGEN (04/2008): Dette flott bloggpost viser en god javascript basert tilnærming til problemet: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

UPDATE II: (04/2008): Dette blogginnlegget ser lovende også: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Flere ganger i uken, om ikke daglig, forumbrukerne beskrive et krav som normalt ville bli møtt via gjennomgripende rullegardinlister. For eksempel, Jeg har to rullegardinlisten kontroller:

  • Liste over USA. stater
  • Liste over USA. Byer.

Som ansvarlig UI leverandører, Vi vil at det skal fungere som dette:

  • Paul velger en USA. staten fra rullegardinlisten.
  • Dette fører til byene rullegardinlisten til å filtrere listen inneholder bare byer som tilhører den valgte tilstanden.
  • Paul velger en by fra denne filtrert liste.

Det er ingen out-of-the-box støtte for denne funksjonen. faktisk, Det er ingen OOB støtte for noen form for direkte intra-form kommunikasjon. Dette inkluderer programmatisk skjule/aktivering/deaktivering felt svar på feltet endres andre steder i skjemaet.

Den virkelige målet av denne artikkelen for å beskrive mulige løsninger og disse er alternativene som jeg kjenner dem:

  1. Utvikle en egendefinert kolonnetype. Som en tilpasset-kolonnen-utvikler, du har full kontroll over "verden" den egendefinerte kolonnen. Du kan implementere en CSS rullegardinmenyen sånn.
  2. Vurder å bruke arbeidsflyten. I noen tilfeller, du vil automatisk tilordne en verdi til-feltet basert på en annen feltverdi. I dette tilfellet, du vil normalt forsøke å bruke en beregnet kolonne, men noen ganger, det får bare ikke jobben gjort. SharePoint Designer arbeidsflyt er et relativt administrere-vennlig alternativ til synker ned i kode og visual studio. Hvis du går denne ruten, Vær oppmerksom på problemet Denne artikkelen (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Hendelsesbehandling: Som arbeidsflyten, Dette er en etter-det-faktum løsning. Hendelsesbehandlingen er en .NET-samling (C#, VB.NET) til hvilke SharePoint sender kontroll. Objektet du har tilgang til dataene i listen (og hele objektmodellen) og kan gjøre alle nødvendige beregning.
  4. Bruke SharePoint Designer til å opprette egendefinerte oppføring skjemaer. Jeg har ikke direkte erfaring med denne tilnærmingen, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. Roll din egen ASP.NET data oppføring funksjon (som en frittstående web-side eller en webdel) og bruke det i stedet.

Vet noen andre og/eller bedre alternativer, Vennligst legg inn en kommentar og jeg vil oppdatere kroppen til dette innlegget.

<slutten />

Technorati Merkelapper:

Ja/nei (avmerkingsboksen) filtrering i webdelen for innholdsspørring

Til å filtrere en spørring for Ja/nei merket med tittelen «PG milepæl», konfigurere CQWP slik:

bilde

Dette er en av de åpenbare-når-du-vet-det, men hard-to-find-an-answer-to spørsmålene: Hvordan å filtrere etter Ja/ingen merket bruke webdelen for innholdsspørring.

Først søkeresultat Jeg finner bruker søkeordet "Ja/nei innholdsspørring filterwebdelen" er flatt ut feil, så jeg tenkte skulle jeg sette dette opp der og se om det kan erstatte feil resultatet i typisk søkeresultater.

Det er ganske lett: Sanne verdier = "1" og USANN-verdier lik ikke "1" (vakre retro, faktisk).

I eksemplet ovenfor, Jeg opprettet områdekolonne av typen Ja/nei" (avmerkingsboksen)" navngitt «PG milepæl». Jeg la det til et doc-bibliotek, lastet opp noen dokumenter, Angi verdien for et par og testet den.

<slutten />