miesięczne archiwum: Grudnia 2007

Mój syn posiekany Gamespot

Tak, dziś rano, mój syn jest zdeterminowana, aby zobaczyć, że wiek trzynaście ograniczone Halo 3 wideo w Gamespot. Jestem poza shoveling śniegu, więc nie jestem tu, aby pomóc uk³adu. Potrzeba jest matką wynalazku i wszystko, co … on ma eureka! chwili. Uświadamia sobie, że nawet jeśli Gamespot chce go podac prawdziwe Data urodzenia, rzeczywiście może wprowadzić wszelkie Data urodzenia, które chce. Gdy zdał sobie sprawę, że, stał się na tyle stary, aby zobaczyć film.

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

Sunday Funny: “Jest to druk śmieci”

W mojej pierwszej pracy z uczelni w 1991, Miałem szczęście do pracy w firmie produkcyjnej z 13 lokalizacje, nie w tym jego korporacyjnych HQ w New Jersey. I dołączył właśnie wtedy, gdy firma była kołyszący na zewnątrz nowy system ERP. Mieliśmy mały dział IT o dziesięć osób w ogóle, dwa z nich nie zrobił podróżować. Część projektu zaangażowane, zastępując IBM System 36 pola z sprzętu HP i HPUX. Każdy używany zielone rury do dostępu do systemu.

Projekt rolki wzdłuż i jestem zesłał do Baltimore z nowego współpracownika, Jeff. Naszym zadaniem było zasilanie polu Unix, Upewnij się, że został uruchomiony o/s, Instalacja systemu ERP, Konfigurowanie ERP, szkolenie na ERP i zrobić zwyczaj pracy dla ludzi na miejscu. (To wymarzona praca, zwłaszcza pochodzących prosto z uczelni). Zanim można naprawdę nad ziemią, my potrzebny wobec rozpakować wszystkie zielone rury, umieścić je na biurkach i połączmy je. A najlepsze było to, że musieliśmy umieścić złącza RJ11 na siebie.

Z jakiegoś powodu, że nigdy nie zrozumiał, a właściwie nigdy nie myślałem zapytać o godzinie, Mieliśmy kilka firma przyjść i uruchomić kabel całej rośliny, ale nie mamy je umieścić na złącza. Tak, było pole patcha"" z kilkudziesięciu przewodów bez etykiety w sali komputerowej"" i te snaked wokół budynku do różnych miejsc w budynku.

Pracowaliśmy na naszej drodze, to w ciągu weekendu, badania poszczególnych druty, Stawianie na łączniku (upewniając się, że to było proste vs. kciuki), zapewnienie ustawienia bitu na zielone rury i drukarki były prawidłowe, znakowanie przewodów, upewniając się, że "getty" został uruchomiony poprawnie dla każdego portu i pewnie tysiąc innych rzeczy że ja już tłumione od tamtego czasu. To wszystko razem bardzo ładnie.

Ale, było jednego kabla ważne, że nie mogliśmy dowiedzieć się. Zakład w Baltimore miał związek z lokalizacji magazynowania w New Jersey. Niektóre zamówienia złożone w Baltimore wysłane z tej lokalizacji. Były tam dwa przewody, które musieliśmy połączyć pole HPUX: zielone rurki i drukarki. Łatwo było zielone rury, ale drukarka przerodziło się w koszmar trzy tygodnie.

Jeśli nie wiesz, to, lub mieć stłumionego go, do czynienia z drukarki i zielone rury w ten sposób, Istnieją różne opcje, które zajmują się przez ustawienie różnych szpilki. 8-nieco, 7-nieco, Parzystość (nawet/nieparzyste/brak), pewnie inni. Jeśli masz jeden z tych ustawień źle, rurki lub drukarka nadal pokazuje rzeczy, ale to będzie całkowity bełkot, Czy będzie to bełkot z wielu rozpoznawalnych rzeczy pomiędzy. Oczywiście, te szpilki są trudno zobaczyć i trzeba ustawiać za pomocą małych śrubokrętem płaskim krawędzi. I nigdy nie są standardowe.

Założyliśmy pierwszy wiele szybkich połączeń z facetem NJ (wróg blady komputer, który prawdopodobnie przeklina nas do dnia dzisiejszego). Mamy zielone rury pracy dość szybko, ale nie mogliśmy uzyskać drukarki do pracy. Ono trzymany "druku śmieci". Tworzymy nowe złącze RJ11, Przełączanie między kciuki i prosto. Usuń port i ponownie utworzony w systemie Unix. Przeszliśmy żmudne zadanie go wyjaśnić do nas konfiguracji pin na drukarce, nigdy nie pewien, czy robi to poprawnie.

Nadszedł czas, aby przejść na żywo, wszystko w Baltimore nuci, ale nie możemy drukarki przeklętego w NJ do pracy! Mamy już wyczerpane wszystkie możliwości z wyjątkiem jazdy wstecz do NJ do pracy na drukarce w osobie. Aby uniknąć wszystko, co prawo jazdy, Wreszcie pytamy go do nas faksem, co on robi, gdy jest to "śmieci", nadzieję, że może nie będzie pewne pojęcia w tym śmieci, który powie nam, co robimy źle.

Kiedy mamy faksu, od razu wiedzieliśmy, co się stało. Zobacz, Nasza metoda badań, czy będziemy mieli poprawnie skonfigurowany drukarki było wydanie "lp" polecenia podobny do tego:

LP/etc/passwd

Zasadniczo, Możemy wydrukować plik hase│ Uniksa. To jest zawsze obecny i po wyjęciu z pudełka, zawsze tylko jedna Strona. Możesz standardowej Unix hasło plik wygląda tak:

Smitha:*:100:100:8A-74(Biuro):/Strona główna/smith:/usr/bin/sh Gości:*:200:0::/Strona główna/Opinie:/usr/bin/sh  

Mamy miał zostały drukowania pliku haseł w kółko przez kilka tygodni i to był druk poprawnie. Jednakże, dla użytkownika końcowego, to był "druku śmieci".

</koniec>

Jeszcze innej sieci poświadczenia wyzwanie wielu problem i rozwiązanie

Mój klient Niedawno zainstalowany magiczne urządzenie z Jałowiec że podobno wymienić ich stary równoważenia obciążenia sieciowego firmy Cisco (RÓWNOWAŻENIA OBCIĄŻENIA SIECIOWEGO). At tym samym czasie, mamy zainstalowane poprawki do zajęcia się problemem pracy.

Na dzień lub dwa później, Zauważyliśmy, że problem, gdy mamy dostęp do dostawcy usług udostępnionych (PS3). Może uda nam się to, ale my chcieliby być kwestionowane identyfikator użytkownika i hasło wiele razy na każdej stronie. To nie stało z głównej aplikacji portalu, ani Administracja centralna. Naturalnie, nie wiemy, który z tych dwóch (Jałowca lub poprawki) będzie problem, choć mocno podejrzane poprawki, zastanawianie się, my nie zainstalował go całkiem w prawo.

Okazało się że Juniper było pewnego rodzaju ustawienia kompresji. Jeden z postaci odzianych ponad w sieci grupy okazało że ustawienie off. Że rozwiązać nasz problem.

To nie pierwszy raz, że kompresja ma był przyczyną problemu SharePoint dla mnie. Usługi IIS kompresji niekorzystnie Narzędzie 3rd strona od dobrych ludzi na The Dot Net Factory dla IE 6 przeglądarki (IE 7 przeglądarki pracował bez trudności).

Tak, dodać "kompresji" do listy zagrożeń.

</koniec>

Kredyt do: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Myślisz o zmianie blogosferę

Zacząłem mój blogging kariera"" przy użyciu platformy Microsoft's i to był dla mnie dobry. To jest łatwy wobec wysłać pocztą, Istnieją dobre opcje i wzory do zarządzania "miejsca", www godne pamięci i tak dalej.

Jednakże, Tak naprawdę wpadł w roztworze MS z prawie bez planowania. Że sam wzywa do mnie, aby ocenić, gdzie jestem i dokąd idę, pod względem blogosferę. Istnieją również dwa ważne ograniczenia, które przeszkadza mi prawo teraz vis-à-vis Windows Live Spaces.

Pierwszy, Nie można uzyskać bardzo dobre statystyki. Istnieją statystyki, ale szczegółów jest często obcięta i nie przedstawił w sposób, który pozwala na wszelkiego rodzaju analizy. Nie ma możliwości sortowania lub eksportu. Mam wiele pomysłów blog oparty na tego rodzaju informacji, które znaleźć ludzi (lub szczególnie nie uda się znaleźć) Kiedy oni zrewidować mój blog. Jest to bardzo trudne do wykorzystania przestrzeni życia dla tego.

Drugi, nie wydaje się żadnych mechanizmów "zarabiać" windows live przestrzeni blog. W zasadzie, aby pozbyć się reklam MS (z którego mogę czerpać żadnych korzyści), I trzeba faktycznie zapłacić Microsoft. (Co najmniej, to, jak rozumiem, to; Byłem w stanie dostać ostateczne odpowiedzi na to i pytania jak to).

Teraz, że mam ustalony wzorzec i zbiór blogów nawyki, Chcę, aby ocenić inne opcje. Zrobiłem kilka badań i istnieje wiele opcji do wyboru, ale jestem ciekaw co inni, szczególnie innych we Wspólnocie programu SharePoint (jako blogerów i czytelników), Jak używać.

Jeśli ten temat Cię interesuje i masz opinię lub są gotowi podzielić się swoim doświadczeniem, Proszę zostawić komentarz lub napisz do mnie bezpośrednio.

Podziękowania!

<koniec />

Technorati znaczniki:

Wysyła Email programu SharePoint Designer ???? w wiadomości E-mail

Od czasu do czasu zapytać użytkowników forum: Dlaczego SharePoint Designer ma umieścić ???? na mój e-mail zamiast wartości pola?

Powodem, że dzieje się tak dlatego, zmiennej, do której odnoszą się ma wartość null.

To może się zdarzyć, ponieważ użytkownik próbuje odwołać pola z "bieżącego elementu" ale nigdy nie wprowadzone przez użytkownika wartość w tym polu formularza.

<koniec />

Porównaj / Badanie puste dat w przepływie pracy programu SharePoint Designer

Scenariusz: W przepływie pracy programu SharePoint Designer, trzeba ustalić, czy pola Data jest pusty.

Problemu: SPD nie umożliwiają bezpośrednie porównywanie dat do niczego innego niż data. Nie można utworzyć warunek takiego: "If [DateField] równa się puste".

Roztwór: Konwertowanie daty na ciąg. Umożliwia określenie, jeśli data jest puste ciąg porównania.

Zrzutów ekranu:

Na poniższej ilustracji Pokaż jak to zrobić. W tym scenariuszu, pole elementu, "Pozwoleniach środowiskowych:Pierwsza data przypomnienia zezwolenie", został złożony i przepływu pracy pożary w odpowiedzi.

obraz

obraz

Notatki:

Kiedy próbuję to, Byłem mile zaskoczony dowiedzieć się, że to działa. Obawiałem się, że SharePoint Designer może uniemożliwić przypisania ciąg (Zmienna:StringReminderDateDate) ale on pozwalała na jego.

Byłem również zainteresowanych, że pozwalającego, wartość może być null i albo blow up WF w środowisku wykonawczym lub może podnieść temperatury globalnej 1/2 stopień, Jednak te obawy były nieuzasadnione.

</koniec>

Pasek jest nadal dość wysokie, aby rozszerzyć MOSS

Dzisiaj, Był pracy z klientem i opisujące jak zmodyfikować składnik web part kwerendy zawartości i wyświetlić dodatkowe bity informacji z typu zawartości.

"Pierwszy., Możesz skonfigurować CQWP do połączenia do źródła danych, następnie wyeksportować go do stacji roboczej, modyfikowanie <CommonViewFields>, przesłać, Usuń oryginalny i teraz jest "zalewany’ Aby wyświetlić inne kolumny te. Następny, otwarcie programu SharePoint designer, Przejdź do głównej witryny kolekcja i zlokalizować ItemStyle.xsl. Skopiować jeden z szablonów jako punkt wyjścia przydatne. Wrócić i zmienić CQWP aby korzystać z tego nowego szablonu. Wreszcie, zmodyfikować szablon, aby uczynić swoje nowe pola! (Nie zapomnij sprawdzić je w tak, że inni użytkownicy mogą zobaczyć wyniki)."

To jest dla mnie dość jasne (i większość z nas typy autora programu SharePoint) co się dzieje i jak to całkiem ładne, naprawdę, że aspekty pobierania danych CQWP są tak dobrze oddzielne od aspektów prezentacji danych. Ale, to nie jest tak łatwe do wyjaśnienia, jest to?

<koniec />

Technorati znaczniki: ,

Wyświetlanie zawartości kwerendy sieci Web Part wyniki w siatce / Tabela

Przegląd i cel

Po wyjęciu z pudełka, MOSS’ Web Part Kwerenda zawartości (CQWP) jego wyniki są wyświetlane w formie listy, podobne do wyników wyszukiwania. Jest również możliwe, aby wyświetlić wyniki w formacie siatki (tj.. Format tabeli HTML). Siatki formaty są lepsze w pewnych okolicznościach. Opisano, jak osiągnąć taki efekt w tym artykule.

Scenariusza biznesowego

Ja pracowałem z klientem na wypuszczenie MOSS enterprise-wide. Zaprojektowaliśmy ich taksonomia, takie, że projekty są pierwszej klasy obywateli w hierarchii i mają własne witryny najwyższego poziomu. Menedżerowie projektów prowadzi listę pojedynczych informacje podsumowujące projekt, przykład tytułem, budżet, przewidywane zakończenie dnia, pozostałe budżetu i innych pól typu podsumowania. Przez "pojedyncza" Chodzi mi o niestandardowej listy programu SharePoint gwarantowana zawierają tylko jeden element. Upraszczając, wygląda to:

obraz

Podejścia technicznego jest tak samo jak opisane tutaj (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP używa transformatę XSL do emitują HTML do przeglądarki do renderowania.

Zawsze wyobrazić wynik przed nurkowania w XSL, ponieważ XSL jest koszmar. Oto mój rezultat:

obraz

HTML jak to generuje wynik:

<HTML>
 <organ>
 <centrum>
 <Tabela granica= 1>

<!-- Etykiety-->
 <TR kolor tła= niebieski>
 <TD><czcionki Kolor= biały><b>Nazwa projektu</b></czcionki></TD>
 <TD wyrównać= prawo><czcionki Kolor= biały><b>Pełna Data</b></czcionki></TD>
 <TD wyrównać= prawo><czcionki Kolor= biały><b>Budżet</b></czcionki></TD>
 <TD wyrównać= prawo><czcionki Kolor= biały><b>Rzeczywisty koszt</b></czcionki></TD>
 <TD><czcionki Kolor= biały><b>Ogólny stan</b></czcionki></TD>
 </TR>

<TR>
 <TD>Ponownie drutu sali komputerowej.</TD>
 <TD wyrównać= prawo>02/01/08</TD>
 <TD wyrównać= prawo>22,500.00</TD>
 <TD wyrównać= prawo>19,000.00</TD>
 <TD>W toku</TD>
 </TR>

<TR>
 <TD>Przepis serwerów SQL Upgrade</TD>
 <TD wyrównać= prawo>04/01/08</TD>
 <TD wyrównać= prawo>7,500.00</TD>
 <TD wyrównać= prawo>0.00</TD>
 <TD>Planowane</TD>
 </TR>

</Tabela>
 </centrum>
 </organ>
</HTML>

Podejście

Wykonaj następujące kroki, aby utworzyć siatkę:

  1. Identyfikacja składników sieci (wierszy/kolumn).
  2. Definiowanie i tworzenie kolumn niezbędne witryny.
  3. Tworzenie podstrony dla projektów i pojedynczych list.
  4. Dodawanie CQWP do strony sieci web i skonfigurować go do wyszukiwania list.
  5. Zmodyfikować XML CQWP zebrać dodatkowe kolumny.
  6. Modyfikowanie XSL do tworzenia tabela.

Mam zamiar koncentrować się na numer sześć. Numery jeden przez cztery są prosto do przodu i coś, co każdy użytkownik CQWP już zrobione. Numer pięć zostało dobrze udokumentowane przez innych tym ten wyczerpujący artykuł ładunkiem zrzut ekranu z MSDN tutaj (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) i Heather Solomon's blog tutaj (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Nakrętki i śruby

Rozpocząć i wykonania czynności z jednego do pięciu jak w dokumentacji MSDN i Heather Solomona art.

W tym momencie, Twój CQWP dodane do strony i masz swoje <CommonViewFields> skonfigurowane jako niezbędne.

Po zwykłe czynności, Mogę dostać tych wyników pośrednich:

1. Utworzyć typ zawartości, przechowywaną listy niestandardowej zawartości typu i dwóch stron. Tutaj jest typ zawartości:

obraz

Oto struktura witryny:

obraz

2. Dodać CQWP po utworzeniu mój podwitryn projektu i pojedynczych list podsumowanie projektu:

obraz

3. Dodaj wszystkie dodatkowe informacje chcesz, za pośrednictwem <CommonViewFields>:

        <Właściwość Nazwa="CommonViewFields" Typ="ciąg">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</Właściwość>

Uwaga, że aby zachować wszystkie pola właściwość na jednej linii, albo nie będzie działać (CQWP powie mi, że kwerenda zwróciła żadnych elementów).

4. W tym momencie, Jesteśmy gotowi przejść poza w artykule MSDN i klapki na ponad do artykułu Heather Solomona. Jej kroki w pobliżu krok #5 Aby utworzyć niestandardowe / Unghosted wersja ItemStyle.xsl. Heather rad, się przez kroku 11 i dostać tych wyników pośrednich:

4.1: Następująca nazwa mój szablon XSL:

<XSL:Nazwa szablonu = "siatki" mecz = "wiersz[@Style = "Siatka"]" tryb = "itemstyle">

Również nieco zmodyfikować jej zaproponował <XSL:dla każdego …> dodając <BR /> Tag, aby dostarczyć listę czystsze:

    <XSL:dla każdego Wybierz="@*">
      P:<XSL:wartość z Wybierz="Nazwa()" /><BR/>
    </XSL:dla każdego>

4.2: Zmodyfikować składnik web part, Przejdź do wygląd i wybierz moje siatki"" styl:

obraz

Zastosować zmiany i oto wynik:

obraz

Widać z powyższego, że pola chcemy (Nazwa projektu, koszt, stan, itp) są dostępne dla nas do wykorzystania podczas emitujemy HTML. Nie tylko, że, ale możemy zobaczyć nazwy, przez które możemy odwołać tych kolumn w XSL. Na przykład, możemy odwołać stan projektu jako "Project_x005F_x0020_Name".

W tym momencie, Odjazd z Heather blog i ramionach tych gigantów, Dodać własną trochę.

ContentQueryMain.xsl

UWAGA: Podczas dokonywania zmian zarówno ContentQueryMain.xsl, jak również ItemStyle.xsl, trzeba sprawdzić, że te pliki z powrotem przed można zobaczyć efekt wprowadzonych zmian.

Dla celów tworzenia siatki, MOSS używa dwóch różnych plików XSL do wyników, które widzimy z CQWP. Do wygenerowania poprzedniego trochę wyjście, zmodyfikowaliśmy ItemStyle.xsl. MOSS faktycznie korzysta z innego pliku XSL, ContentQueryMain.xsl się w połączeniu z ItemStyle.xsl do generowania jej HTML. Jak sama nazwa wskazuje, ContentQueryMain.xsl jest głównym"" XSL, który kontroluje ogólny przepływ tłumaczenie. Iterację wszystkich znalezionych przedmiotów i przekazuje je jeden po drugim do szablonów w ItemStyle.xsl. Modyfikujemy będziesz ItemStyle.xsl do generowania otwarte <Tabela> znacznik przed wyemitowaniem pierwszy wiersz danych i zamknięcia <Tabela> znacznik po emitujących ostatni wiersz. Aby to osiągnąć, ContentQueryMain.xsl jest zmodyfikowany przejść dwa parametry do naszej sieci"" szablon w ItemStyle.xsl, "Ostatni wiersz" i "bieżący wiersz". ItemStyle.xsl używa tych warunkowo emitować niezbędne znaczniki.

Przy użyciu techniki Heather Solomona, Znajdź ContentQueryMain.xsl. Znajduje się on w tym samym miejscu jako ItemStyle.xsl. Ten zrzut ekranu powinna pomóc:

obraz

Musimy wprowadzić następujące zmiany:

  • Modyfikowanie szablonu xsl, "CallItemTemplate" że rzeczywiście wywołuje nasz szablon siatki w ItemStyle.xsl. Przekażemy dwa parametry do szablonu siatki, tak, że będzie on danych potrzebnych do wygenerowania warunkowo otwieranie i zamykanie <Tabela> znaczniki.
  • Zmodyfikować nieco innego ContentQueryMain.xsl, który wywołuje "CallItemTemplate" Aby przekazać ją "LastRow" parametr tak że LastRow mogą być przekazane do naszego szablonu siatki.

Zlokalizuj szablon o nazwie "OuterTemplate.CallItemTemplate" zidentyfikowane przez ciąg:

  <XSL:szablon Nazwa="OuterTemplate.CallItemTemplate">

Zastąpić cały szablon następujący:

  <XSL:szablon Nazwa="OuterTemplate.CallItemTemplate">
    <XSL:parametr Nazwa="CurPosition" />

    <!--
      Dodać "LastRow" parametr.
      Tylko używamy go, gdy element stylu przejść w "Siatki".
    -->
    <XSL:parametr Nazwa="LastRow" />

    <XSL:Wybierz>
      <XSL:Kiedy badania="@Style = "NewsRollUpItem"">
        <XSL:zastosowanie szablonów Wybierz="." tryb="itemstyle">
          <XSL:z param Nazwa="EditMode" Wybierz="$cbq_iseditmode" />
        </XSL:zastosowanie szablonów>
      </XSL:Kiedy>
      <XSL:Kiedy badania="@Style = "NewsBigItem"">
        <XSL:zastosowanie szablonów Wybierz="." tryb="itemstyle">
          <XSL:z param Nazwa="CurPos" Wybierz="$CurPosition" />
        </XSL:zastosowanie szablonów>
      </XSL:Kiedy>
      <XSL:Kiedy badania="@Style = "NewsCategoryItem"">
        <XSL:zastosowanie szablonów Wybierz="." tryb="itemstyle">
          <XSL:z param Nazwa="CurPos" Wybierz="$CurPosition" />
        </XSL:zastosowanie szablonów>
      </XSL:Kiedy>

      <!--
              Przekazać aktualną pozycję i lastrow siatki itemstyle.xsl szablon.
              ItemStyle.xsl będzie używać, aby emitować Otwórz i zamknij <Tabela> znaczniki.
      -->
      <XSL:Kiedy badania="@Style = "Siatka"">
        <XSL:zastosowanie szablonów Wybierz="." tryb="itemstyle">
          <XSL:z param Nazwa="CurPos" Wybierz="$CurPosition" />
          <XSL:z param Nazwa="Ostatnia" Wybierz="$LastRow" />
        </XSL:zastosowanie szablonów>
      </XSL:Kiedy>

      <XSL:w przeciwnym razie>
        <XSL:zastosowanie szablonów Wybierz="." tryb="itemstyle">
        </XSL:zastosowanie szablonów>
      </XSL:w przeciwnym razie>
    </XSL:Wybierz>
  </XSL:szablon>

Komentarze opisać w celu zmiany.

Oczywiście, "OuterTemplate.CallItemTemplate" nazywa się z innego szablonu. Zlokalizować ten szablon szukając ten ciąg tekstowy:

<XSL:szablon Nazwa="OuterTemplate.Body">

Przejrzyj instrukcje w OuterTemplate.Body i wstawić następujący parametr LastRow (się jako komentarz kursywą):

<XSL:Wywołanie szablon Nazwa="OuterTemplate.CallItemTemplate">
  <XSL:z param Nazwa="CurPosition" Wybierz="$CurPosition" />
  <!-- Wstaw parametr LastRow. -->
  <XSL:z param Nazwa="LastRow" Wybierz="$LastRow"/>
</XSL:Wywołanie szablon>

Po tym wszystkim, Wreszcie mamy ustawione prawidłowo, tak aby nasi ItemStyle.xsl może emitować rzeczy <Tabela> Tagi na właściwym miejscu.

ItemStyle.Xsl

UWAGA: Ponownie, Sprawdź w ItemStyle.xsl po dokonaniu zmian, tak że można zobaczyć efekt tych zmian.

Mamy tutaj dwa zadania:

  • Zastąpić cały szablon siatki. Można można skopiować i wkleić poniżej.
  • Dodać niektóre mumbo jumbo poza definicją szablonu, który umożliwia "formatcurrency" szablon do pracy. (Można powiedzieć, że mam wątpliwy uchwyt na XSL).

Pierwszy, w górnej części ItemStyle.xsl, Dodaj tę linię:

  <!-- Niektóre mumbo jumbo, że pozwala na wyświetlanie Stanów Zjednoczonych. waluty. -->
  <XSL:zapisie dziesiętnym Nazwa="personel" cyfra="D" />

  <XSL:szablon Nazwa="Domyślnie" mecz="*" tryb="itemstyle">

Uwaga, że dodałem go bezpośrednio przed <XSL:Nazwa szablonu = "domyślny" …> Definicja.

Następny, Wróć do naszego szablonu siatki. Zastąpić cały szablon siatki poniższy kod. To jest dokładnie skomentował, ale nie wahaj się napisz do mnie lub zostawić komentarz na moim blogu, jeśli masz pytania.

  <XSL:szablon Nazwa="Siatka" mecz="Wiersz[@Style = "Siatka"]" tryb="itemstyle">

    <!--
      ContentMain.xsl przechodzi CurPos i ostatnio.
      Możemy z nich korzystać do warunkowo emitują Otwórz i zamknij <Tabela> znaczniki.
    -->
    <XSL:parametr Nazwa="CurPos" />
    <XSL:parametr Nazwa="Ostatnia" />

    <!-- Następujące zmienne są niezmodyfikowany od standardowego ItemStyle.xsl -->
    <XSL:Zmienna Nazwa="SafeImageUrl">
      <XSL:Wywołanie szablon Nazwa="OuterTemplate.GetSafeStaticUrl">
        <XSL:z param Nazwa="UrlColumnName" Wybierz="'ImageUrl'"/>
      </XSL:Wywołanie szablon>
    </XSL:Zmienna>
    <XSL:Zmienna Nazwa="SafeLinkUrl">
      <XSL:Wywołanie szablon Nazwa="OuterTemplate.GetSafeLink">
        <XSL:z param Nazwa="UrlColumnName" Wybierz=""LinkUrl""/>
      </XSL:Wywołanie szablon>
    </XSL:Zmienna>
    <XSL:Zmienna Nazwa="DisplayTitle">
      <XSL:Wywołanie szablon Nazwa="OuterTemplate.GetTitle">
        <XSL:z param Nazwa="Tytuł" Wybierz="@Title"/>
        <XSL:z param Nazwa="UrlColumnName" Wybierz=""LinkUrl""/>
      </XSL:Wywołanie szablon>
    </XSL:Zmienna>
    <XSL:Zmienna Nazwa="LinkTarget">
      <XSL:Jeśli badania="@OpenInNewWindow = "True"" >_blank</XSL:Jeśli>
    </XSL:Zmienna>

    <!--
      Tutaj możemy zdefiniować zmienną, "tableStart".  Zawiera kod HTML, którego używamy do określenia otwarcia tabeli, a także etykiety kolumn.  Należy zauważyć, że jeśli CurPos = 1, zawiera kod HTML w znacznik CDATA.
      W przeciwnym razie, to będzie pusty.

      Wartość tableStart jest emited każdym razem, gdy ItemStyle jest wywoływana przez ContentQueryMain.xsl.
    -->
    <XSL:Zmienna Nazwa="tableStart">
      <XSL:Jeśli badania="$CurPos = 1">
        <![CDATA[
        <obramowanie tabeli = 1>
          <TR bgcolor = "blue">
            <TD><kolor czcionki = "biały"><b>Nazwa projektu</b></czcionki></TD>
            <TD align = "right"><kolor czcionki = "biały"><b>Pełna Data</b></czcionki></TD>
            <TD align = "right"><kolor czcionki = "biały"><b>Budżet</b></czcionki></TD>
            <TD align = "right"><kolor czcionki = "biały"><b>Rzeczywisty koszt</b></czcionki></TD>
            <TD><kolor czcionki = "biały"><b>Ogólny stan</b></czcionki></TD>
          </TR>
        ]]>
      </XSL:Jeśli>
    </XSL:Zmienna>

    <!--
      Innej zmiennej, tableEnd po prostu Określa zamknięcie tabela tagu.

      Podobnie jak w przypadku tableStart, to jest zawsze emited.  Dlatego, jego wartość jest przypisany warunkowo na podstawie czy już zostały mijamy ostatni wiersz ContentQueryMain.xsl.
    -->
    <XSL:Zmienna Nazwa="tableEnd">
      <XSL:Jeśli badania="$CurPos = $Last">
        <![CDATA[ </Tabela> ]]>
      </XSL:Jeśli>
    </XSL:Zmienna>

    <!--
      Zawsze emitują zawartość tableStart.  Jeśli to nie jest pierwszy wiersz przekazane nam przez ContentQueryMain.xsl, wtedy wiemy, że jego wartość będzie pusty.

      Wyłącz wyjście ucieczki, bo kiedy tableStart to nie puste, obejmuje ona rzeczywisty kod HTML, który chcemy być renderowane przez przeglądarkę.  Jeśli nie powiemy parser XSL do wyłączenia wyjścia ucieczki, będzie ona wytwarzać rzeczy, jak"&lt;Tabela&gt;" zamiast o"<Tabela>".
    -->
    <XSL:wartość z Wybierz="$tableStart" Wyłącz output escaping="tak"/>


    <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:wartość z Wybierz="@Project_x005F_x0020_Name"/>
      </TD>

      <TD wyrównać="prawo">
        <XSL:wartość z Wybierz="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD wyrównać="prawo">
        <XSL:Wywołanie szablon Nazwa="FormatCurrency">
          <XSL:z param Nazwa="wartość" 
Wybierz="@Project_x005F_x0020_Budget"></XSL:z param> </XSL:Wywołanie szablon> </TD> <TD wyrównać="prawo"> <XSL:Wywołanie szablon Nazwa="FormatCurrency"> <XSL:z param Nazwa="wartość" Wybierz="@Project_x005F_x0020_Expenses">
</XSL:z param> </XSL:Wywołanie szablon> </TD> <TD> <XSL:wartość z Wybierz="@Project_x005F_x0020_Status"/> </TD> <!-- Wszystkie z poniższych jest zakomentowana wyjaśnienie rzeczy. Jednakże, ją z powrotem i rzeczy go do <TD> Aby zobaczyć jego efekt. --> <!-- <DIV id = "linkitem" Class = "pozycja"> <XSL:Jeśli test = "długość ciąg($SafeImageUrl) != 0"> <DIV class = "obrazu obszar-po lewej"> <href = "{$SafeLinkUrl}" docelowy = "{$LinkTarget}"> <Klasa img = "obraz fixed-width" src = "{$SafeImageUrl}"
Alt = "{@ImageUrlAltText}"/> </a> </DIV> </XSL:Jeśli> <DIV class = "link pozycja"> <XSL:Wywołanie szablon
Name="OuterTemplate.CallPresenceStatusIconTemplate"/> <href = "{$SafeLinkUrl}"
docelowy = "{$LinkTarget}" tytuł = "{@LinkToolTip}"> <XSL:wartość z wybierz = "$DisXSLyTitle" /> </a> <DIV class = "opis"> <XSL:wartość z select="@Description" /> </DIV> </DIV> </DIV>
--> </TR> <!-- Emitują zamknięcia tabeli tagu. Jeśli nie jesteśmy na ostatni wiersz, to będzie pusty. --> <XSL:wartość z Wybierz="$tableEnd" Wyłącz output escaping="tak"/> </XSL:szablon> <XSL:szablon Nazwa="FormatCurrency"> <XSL:parametr Nazwa="wartość" Wybierz="0" /> <XSL:wartość z Wybierz='numer formatu($wartość, "$DDD,DDD,DDD.DD", "personel")' /> </XSL:szablon>

Standardowe WSS/mech ekranu wprowadzania danych nie obsługują kaskadowe menu rozwijanych (lub inne wewnątrz-od komunikacji)

AKTUALIZACJA (04/2008): Ten wielki blogu wpis pokazuje dobre javascript na podejście do tego problemu: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

AKTUALIZACJA II: (04/2008): Ten wpis w blogu wygląda obiecująco, jak również: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Kilka razy w tygodniu, Jeśli nie codziennie, Użytkownicy forum opisać wymogiem, który byłby normalnie spełniony poprzez kaskadowe menu rozwijanych. Na przykład, Mam dwa formanty listy rozwijanej:

  • Wykaz USA. Państwa
  • Wykaz USA. miast.

Jako odpowiedzialnych dostawców interfejsu użytkownika, chcemy działać jak to:

  • Paul wybiera USA. stan z listy rozwijanej.
  • Powoduje to, że miasta drop niedziałający aby filtrować tylko te miasta, które należą do stanu.
  • Paul wybiera miasto z tej listy filtrowanej.

Brak obsługi out-of--box dla tej funkcji. W zasadzie, Brak obsługi OOB dla wszelkiego rodzaju komunikacji bezpośredniej intra formularz. Obejmuje to programowo ukrywanie/Włączanie/wyłączanie pola w odpowiedzi na zmiany pola gdzie indziej na formularzu.

Prawdziwy cel tego artykułu do opisania możliwych rozwiązań i te są opcje, jak wiem, że ich:

  1. Opracować niestandardowe kolumna typ. Niestandardowy kolumna-programista, masz pełną kontrolę nad światem"" niestandardowe kolumny. Można zaimplementować kaskadowe menu rozwijane w ten sposób.
  2. Za pomocą przepływu pracy. W niektórych przypadkach, Aby automatycznie przypisać wartość do pola na podstawie wartości innego pola. W tym przypadku, normalnie będzie próbował za pomocą kolumn obliczeniowych, ale kilka razy, to po prostu nie dostać ten praca sporządzony. SharePoint Designer przepływu pracy jest stosunkowo administrować przyjazny alternatywą dla upadając na kod i programu visual studio. Jeśli tę drogę, należy pamiętać o kwestii poruszonej przez w tym artykule (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Programy obsługi zdarzeń: Jak przepływ pracy, jest to rozwiązanie po fakt. Obsługa zdarzeń jest wirtualny plik dziennika .NET (C#, VB.NET) do których SharePoint przechodzi kontrolę. Obiekt, który można rozwijać ma dostęp do danych z listy (i modelu całego obiektu) i można zrobić wszelkie potrzebne obliczenia.
  4. Użyj programu SharePoint Designer do tworzenia formularzy niestandardowych wpis. Nie mam bezpośredniego doświadczenia z tym podejściem, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. Rolka własnych funkcji wejścia danych programu ASP.NET (jako samodzielny strony sieci web lub jako część sieci web) i użyć.

Jeśli ktoś zna inne lub lepsze opcje, Prosimy o komentarz i I update organ ten post.

<koniec />

Technorati znaczniki:

Tak/nie (pole wyboru) Filtrowanie w Web Part Kwerenda zawartości

Do filtrowania dla kwerendy dla tak/nie pole zatytułowany "PG Milestone", skonfigurować CQWP jak to:

obraz

Jest to jedna z tych oczywistych po wiedzieć to ale hard-to-find-an-answer-to pytania: Jak filtrować tak/nie pole wyboru za pomocą składnika web part kwerendy zawartości.

Pierwszy Wynik wyszukiwania Uważam, że za pomocą wyszukiwany termin "filtr kwerendy tak/nie zawartości składnika web part" jest mieszkanie na zewn¹trz przestêpstwo, tak myślałem, że będzie to umieścić tam i zobaczyć, czy może zastąpić niepoprawny wynik w wynikach wyszukiwania typowe.

Jest to dość proste: Prawdziwe wartości = "1" i fałszywych wartości nie są równe "1" (ładne retro, faktycznie).

W powyższym przykładzie, I stworzył umiejscowienie kolumna typu tak/nie" (pole wyboru)" o nazwie "Milestone PG". Dodałem go do biblioteki doc, wysłał kilka dokumentów, Ustaw wartość na parę i testowany ono.

<koniec />