месечни архиви: Декември 2007

Синът ми опростен Gamespot

Така, тази сутрин, Моят син е решена да видите възраст-тринадесет ограничен Halo 3 видео в Gamespot. Аз съм извън лопата за сняг, така че аз не съм там, за да помогне или възпрепятстват. Необходимостта е майка на изобретението и всичко … Той има Еврика! момент. Той осъзнава, че въпреки че Gamespot иска от него да въведете си истински дата на раждане, Той всъщност може да влезе всеки дата на раждане, той иска. Веднъж той разбрал, че, Той направи себе си достатъчно възрастен, за да видите видео.

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

Неделя забавни: “Това е печат боклук”

В първата ми работа от колежа в 1991, Бях щастлив да работи за производствена компания с 13 места, без да се включва своите корпоративни щаб в Ню Джърси. Аз се присъединиха, точно когато компанията е пускане в действие на нова ERP система. Бяхме малки ИТ отдел на около десет души напълно, двама от които не пътуват. Част от проекта включва замяна на IBM система 36 кутии с хардуер HP и HPUX. Всеки използва зелена тръби за достъп до системата.

Проектът роли заедно и съм изпратила до Балтимор с нов колега, Джеф. Нашата работа е да мощност до полето на Unix, Уверете се, че е действал o/s, инсталиране на ERP системата, Конфигуриране на ERP, обучават хора на ERP и правим обичай работата за хора на място. (Това е мечта работа, особено идващи направо от колеж). Преди да можем наистина да сляза на земята, Имахме нужда да разопаковам всички зелени тръби, Сложете ги на бюра и ги тел. И най-добрата част е, че ние трябваше да постави конектори RJ11 върху себе си.

По някаква причина, че аз никога не разбират и всъщност никога не мислех да питам за по това време, са имали някои от договарящите компания дойде и пуснете кабел по време на инсталацията, но не сме ги слагам на съединители. Така, там е "кръпка кутия" с десетки на снет от кореспонденцията кабели в "компютърна зала" и тези snaked около сградата на различни места в сградата.

Ние работи пътя си през него по време на един уикенд, тестване на всяка тел, поставянето на съединител (като се уверите, че е направо срещу. преминава), осигуряване на малко настройките на зелени тръби и принтери са верни, етикетиране проводници, като се уверите, че "Гети" е действал правилно за всяко пристанище и вероятно хиляди други неща, че аз съм потиснат от тогава. Всичко се събраха доста добре.

Но, Имаше един важен кабел, който не можех да разбера. Растението в Балтимор имаше връзка със складови място в Ню Джърси. Някои поръчки в Балтимор изпратени от това местоположение. Имаше две жици, които ние трябваше да се свърже с полето на HPUX: Зелена тръба и принтер. Зелена тръба е лесно, но принтера се превърна в кошмар за три седмици.

Ако не го знаят, или са го потиснат, справяне със зелени тръби и принтери по този начин, има различни опции, които се справят с чрез задаване на различни пина. 8-малко, 7-малко, паритет (дори/четни/няма), вероятно други. Ако една от тези настройки разбирайте погрешно, тръба или принтер все още показва неща, но той ще бъде пълен бърборене, или ще бъде безсмислици с много разпознаваем неща между. Разбира се, тези игли са трудно да се види и трябва да се определят с помощта на малък плосък край винт шофьор. И те никога не са стандарт.

Ние се създаде първата от много бързо разговори с човек, Ню Джърси (хейтър побелели компютърни, който вероятно проклятия ни на този ден). Имаме зелена тръба работи доста бързо, но не можахме да работи. Тя съхранява "печат боклук". Ние ще създаде нов RJ11 конектор, Превключване между кръстосани и направо. Ние ще изтриете пристанището и ре-създаден в Unix. Минахме през трудна задача на него да ни обясни рейката на принтера като, никога не съм много сигурен, ако той го прави правилно.

Това е време да тръгне, всичко в Балтимор бръмчи, но ние не може да получи проклет принтера в Ню Джърси да работи! Ние сме изчерпали всички възможности освен за шофиране обратно до Ню Джърси да работят върху принтера в лице. За да се избегне всичко, което шофиране, Ние най-накрая да го помоли да ни изпратят по факса какво той е получаване, когато е "боклук", надявайки се, че може би ще има някои улики в този боклук, който ще ни каже какво ще правите погрешно.

Когато имаме Факс, Ние веднага се знаеше какво не е наред. Вижте, нашия метод за проверка дали ние е конфигуриран правилно, даден принтер е да издаде "lp" заповядвам подобен този:

LP/etc/passwd

По принцип, Ние отпечатани файл на unix парола. Тя е винаги присъстват и на кутията, винаги само една страница. Вие стандартен Unix парола файл изглежда нещо подобно:

Смит:*:100:100:8A-74(офис):/Начало/Смит:/ЮЕсАр/bin/sh гости:*:200:0::/Начало/гост:/ЮЕсАр/bin/sh  

Ние е бил печат файл на паролата отново и отново в продължение на няколко седмици и беше печат правилно. Въпреки това, за крайния потребител, Това е "печат боклук".

</край>

Още друг мрежа идентификационни данни Multi-Challenge проблем и решение

Моят клиент наскоро инсталирали магически устройство от Хвойна Това очевидно заменя си старата Cisco мрежови балансатор на натоварването (НЛБ). В същото време, Ние инсталиран корекция за справяне с поток проблем.

Един ден или два по-късно, ние забелязахме един проблем, когато сме влезли доставчика на споделени услуги (SSP). Ние може да получи до него, но ние ще бъде оспорено за ИД на потребител и парола много пъти на всяка страница. Това не се случи с главния портал ап, нито централното администриране. Естествено, Ние не знаем кое от двете (Хвойна или корекция) ще бъде въпросът, Въпреки, че аз силно съмнение спешната корекция, Figuring, ние не са го инсталирали съвсем прав.

Оказа се, че хвойна имаше някакъв вид настройки за компресиране. Един от ограбен фигури над в мрежа група обърна това прихващане. Които решават Нашият проблем.

Това не е първият път, когато компресията е била основната причина за SharePoint проблем за мен. IIS компресия неблагоприятно трета страна инструмент от добри хора в Dot Net фабрика за IE 6 браузъри (IE 7 браузъри, работи без затруднения).

Така, Добави "компресия" към списъка на опасностите.

</край>

Кредит на: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Мислене за промяна блог платформа

Започнах blogging кариерата ми"" използване на Microsoft платформа и че е бил добър към мен. Това е лесно да публикувате, има добри възможности и джаджи за управление на вашите "пространство", достоен уеб съхранение и т.н..

Въпреки това, Аз наистина просто падна в MS разтвор с почти никакви планиране. Че сам призовава за мен да се оцени къде съм и къде отивам, по отношение на блог платформа. Има и две важни ограничения, които ме притеснява точно сега vis-à-vis Windows Live Spaces.

Първо, Не може да получи много добра статистика. Има статистика, но детайл е често отрязана и не представени по начин, който позволява за всеки вид на анализ. Там няма сортиране или износ способност. Получавам много блог идеи на базата на вида на информацията, хората намират (или особено не успеят да намерят) когато те търсене в моя блог. Това е много трудно да използват живот пространства за това.

Секунда, там не изглежда да бъде всеки механизъм да се "реализират" windows живо пространство блог. Всъщност, за да се отървете от MS реклами (от която да извлече никаква полза), Трябва да платите всъщност Microsoft. (Най-малко, Това е как го разбирам; Съм бил в състояние да получите окончателни отговори на това и въпроси като това).

Сега, аз имам установената схема и набор от blogging навици, Искам да оцени други опции. Съм правил някои изследвания и има много възможности за избор, но аз съм любопитен за това какво други хора, особено другите в SharePoint Общността (като блогъри и читатели), искал да използва.

Ако този въпрос ви интересува и имате мнение или са готови да споделят своя опит, Моля, оставете коментар или пишете ми директно.

Благодаря!

<край />

Technorati тагове:

SharePoint Designer имейл изпраща ???? в имейл

Форум на потребителите понякога питат: Защо does слагам SharePoint Designer ???? в моя имейл вместо стойност на поле?

Една причина, това се случва, е, защото тази променлива, за която говорите е null.

Това може да се случи, защото се опитвате да позоваване на поле от "текущия елемент" Но потребител никога не въвели стойност в това поле от формуляр.

<край />

Technorati тагове:

Сравни / Тест за празни дати в SharePoint Designer поток

Сценарий: В SharePoint Designer поток, Вие трябва да определите дали поле за дата е празно.

Проблем: ЕДП не предоставя директен метод за сравняване на дати за нищо друго освен дата. Не можете да създадете условие подобен този: "Ако [DateField] е равно на празни".

Разтвор: Преобразуване на дата в низ. Използвайте сравнение на низове, за да определи дали датата е празно.

Снимки на екрана:

Следните снимки на екрана показва как да направите това. В този сценарий, поле на елемент, "Екологични разрешителни:Първо разрешително за дата за напомняне", е подадена и работния поток пожари в отговор.

Изображение

Изображение

Бележки:

Когато се опитах това, Аз бях приятно изненадан да научи, че тя работи. Бях притеснен, че SharePoint Designer може да забраните присвоената низ (Променлива:StringReminderDateDate) но тя го позволи.

Също така бях отнася това което му позволява, стойността може да бъде null и двете взриви WF по време на изпълнение или може би повишаване на глобалната температура 1/2 степен, но тези опасения са основателни.

</край>

Technorati тагове:

Барът е все още доста висока, за да разшири Мос

Днес, Аз бях работи с клиента и описва как да промените уеб компонента на заявка за съдържание и показват допълнителни бита на информация от тип съдържание.

"Първо., Можете да конфигурирате CQWP да се свържете към източници на данни, след това го експортирате към вашата работна станция, Модифициране <CommonViewFields>, качване, премахване на оригинала и сега е "грунд’ за да покажете тези други колони. Следващ, Отворете SharePoint designer, отидете на сайта колекция корен и намерете ItemStyle.xsl. Копирате един от шаблони като полезна отправна точка. Се върна и промяна на CQWP да се използва на този нов шаблон. Най-накрая, промяна на шаблона за рендиране на вашите нови полета! (Не забравяйте да проверите обратно в така че други потребители могат да виждат резултатите)."

Това е доста ясно за мен (и повечето от нас типове за разработчици на SharePoint) Какво се случва и как тя е доста приятен, Наистина, че на данни извличане аспекти на CQWP са толкова добре отделно от аспектите за представяне на данни. Но, Това не е толкова лесно да се обясни, Това е?

<край />

Показване на съдържание Web част резултатите от заявката в мрежа / Таблица

Преглед и цел

На кутията, МОС’ Заявка за съдържание уеб част (CQWP) показва резултатите от нея в списък формат, подобни на резултатите от търсенето. Също така е възможно да покажете резултатите в мрежа формат (т.е.. HTML таблица формат). Формати на мрежата са по-добре в някои обстоятелства. Ще опиша как да се постигне този ефект в тази статия.

Бизнес сценарий

Работил съм с клиент на предприятие широк Мос внедряването. Ние сме проектирали им класификация, така че проектите са първа класа граждани в йерархията и имат свои собствени връх на ниво сайт. Ръководители на проекти поддържа Сингълтън списък с обобщена информация за проекта, например заглавие, бюджет, Очаквана дата на завършване, оставащият бюджет и други сумарен тип полета. От "Сингълтън" Искам да кажа на потребителски SharePoint списък гарантирано да съдържа само един елемент. Опростенчески, Тя изглежда така:

Изображение

Техническия подход е почти същия, както е описано Тук (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP използва XSL трансформация, за да излъчват HTML за браузър, за да направи.

Аз винаги си представим резултата преди да се гмурне в XSL защото XSL е кошмар. Ето моите желания резултат:

Изображение

HTML като това генерира този резултат:

<HTML>
 <тяло>
 <център>
 <таблица граница= 1>

<!-- Етикети-->
 <TR BGColor= синьо>
 <TD><шрифт цвят= бяло><б>Име на проекта</б></шрифт></TD>
 <TD Подравняване= надясно><шрифт цвят= бяло><б>Попълнете датата</б></шрифт></TD>
 <TD Подравняване= надясно><шрифт цвят= бяло><б>Бюджет</б></шрифт></TD>
 <TD Подравняване= надясно><шрифт цвят= бяло><б>Действителни разходи</б></шрифт></TD>
 <TD><шрифт цвят= бяло><б>Цялостното състояние</б></шрифт></TD>
 </TR>

<TR>
 <TD>Ре-тел компютърна зала.</TD>
 <TD Подравняване= надясно>02/01/08</TD>
 <TD Подравняване= надясно>22,500.00</TD>
 <TD Подравняване= надясно>19,000.00</TD>
 <TD>В ход</TD>
 </TR>

<TR>
 <TD>Разпоредба сървъри за надграждане на SQL</TD>
 <TD Подравняване= надясно>04/01/08</TD>
 <TD Подравняване= надясно>7,500.00</TD>
 <TD Подравняване= надясно>0.00</TD>
 <TD>Планирани</TD>
 </TR>

</таблица>
 </център>
 </тяло>
</HTML>

Подход

Изпълнете следните стъпки за създаване на мрежа:

  1. Идентифициране на компонентите на мрежата (редове/колони).
  2. Определяне и създаване на необходимите сайт колони.
  3. Създаване на подсайтове за проектите и лъжливо списъци.
  4. Добави CQWP към web страница и да го конфигурирате за търсене за вашите списъци.
  5. Модифициране на CQWP XML, за да събират допълнителни колони.
  6. Промяна на XSL за генериране на таблица.

Аз отивам да се концентрира върху номер шест. Числата едно чрез четири са прав-напред и нещо, което вече е направено от всеки потребител, CQWP. Номер пет е била добре документирани от други включително този изчерпателен екрана изстрел натоварено статия от MSDN Тук (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) и блога на Хедър Соломон Тук (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Гайки и болтове

Започват и изпълнение на стъпките от едно до пет според документацията на MSDN и Хедър Соломон статия.

В този момент, Вие сте добавили вашия CQWP на страницата и имате си <CommonViewFields> конфигуриран при необходимост.

След обичайните стъпки, Получавам тези междинни резултати:

1. Създаване на тип съдържание, шаблонирана потребителски списък за този тип съдържание и два сайтове. Тук е типа на съдържанието:

Изображение

Ето структурата на сайта:

Изображение

2. Добавете CQWP след създаването си проект подсайтове и лъжливо проект обобщени списъци:

Изображение

3. Добавяне на цялата допълнителна информация, искам чрез <CommonViewFields>:

        <имоти Име="CommonViewFields" тип="низ">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</имоти>

Имайте предвид, че трябва да запазите всички полета за свойства на един ред, или няма да работи (CQWP ще ми каже, че заявката не върна елементи).

4. В този момент, Ние сме готови да преминете отвъд статията на MSDN and флип на Хедър Соломон статия. Следвайте си стъпки, започва близо до стъпка #5 за да създадете персонализиран / unghosted версия на ItemStyle.xsl. Аз следват Хедър съвети, нагоре през стъпка 11 и да получите тези междинни резултати:

4.1: Името ми XSL шаблон както следва:

<XSL:име на шаблон = "мрежа" съвпадение = "ред[@Style = "Мрежа"]" режим = "itemstyle">

Аз също така леко я предложи промяна <XSL:за всеки …> чрез добавяне на <BR /> етикет да предостави чист списък:

    <XSL:за всеки Изберете="@*">
      P:<XSL:стойността на Изберете="Име()" /><br/>
    </XSL:за всеки>

4.2: Модифициране на уеб част, отидете на външния вид и изберете моя "мрежа" стил:

Изображение

Прилагане на промените и тук е резултат:

Изображение

Можем да видим от по-горе, че полетата искаме (Име на проекта, разходи, статус, н) са достъпни за нас да използва, когато ние излъчваме HTML. Не само, че, но ние виждаме имената, с които ние трябва да препращат тези колони в XSL. За пример, Ние позоваване статус на проекта като "Project_x005F_x0020_Name".

В този момент, тръгва се от блога на Хедър и от раменете на тези гиганти, Аз добавя моя собствена малко.

ContentQueryMain.xsl

ЗАБЕЛЕЖКА: Когато правите промени в ContentQueryMain.xsl, както и ItemStyle.xsl, Вие трябва да проверите тези файлове обратно в преди да видите ефекта от промените.

За целите на правене на мрежа, Мос използва две различни XSL файлове, за да доведе до резултати, виждаме от CQWP. За генериране на предишния малко на продукцията, Ние промяна ItemStyle.xsl. Мос действително използва друг XSL файл, ContentQueryMain.xsl да във връзка с ItemStyle.xsl да генерирате си HTML. Както предполага неговото име, ContentQueryMain.xsl е главният"" XSL, който контролира общия поток на превод. Тя повтаря през всички елементи, намерени и ги преминава един по един да шаблони в ItemStyle.xsl. Ние ще променят ItemStyle.xsl за генериране на открито <таблица> етикет преди излъчване на първия ред от данни и затваряне <таблица> етикет след излъчване на последния ред. За да постигнем това, ContentQueryMain.xsl е променен, за да премине два параметъра на нашата "мрежа" шаблон в ItemStyle.xsl, "последния ред" и "текущ ред". ItemStyle.xsl използва тези условно излъчват необходимите Тагове.

С помощта на Хедър Соломон техника, Ние поставяме ContentQueryMain.xsl. Той се намира на същото място като ItemStyle.xsl. Този екран изстрел трябва да помогне:

Изображение

Ние трябва да направите следните промени:

  • Модифициране на шаблон на xsl, "CallItemTemplate" Това всъщност се позовава ни мрежа шаблон в ItemStyle.xsl. Ние ще преминават два параметъра на шаблона на мрежата, така че той ще има данни, необходими за условно генериране на отваряне и затваряне <таблица> Тагове.
  • Промените още малко на ContentQueryMain.xsl, която призовава "CallItemTemplate" да го предаде "LastRow" параметър, така че LastRow може да бъдат прехвърлени към нашите мрежата шаблон.

Намерете шаблона на име "OuterTemplate.CallItemTemplate" идентифицирани от низ:

  <XSL:шаблон Име="OuterTemplate.CallItemTemplate">

Замени целия шаблон както следва:

  <XSL:шаблон Име="OuterTemplate.CallItemTemplate">
    <XSL:param Име="CurPosition" />

    <!--
      Добави "LastRow" параметър.
      Ние само го използвам, когато елемент стил проход в е "Мрежа".
    -->
    <XSL:param Име="LastRow" />

    <XSL:Изберете>
      <XSL:Когато тест="@Style = "NewsRollUpItem"">
        <XSL:приложи-шаблони Изберете="." режим="itemstyle">
          <XSL:с Албена Име="EditMode" Изберете="$cbq_iseditmode" />
        </XSL:приложи-шаблони>
      </XSL:Когато>
      <XSL:Когато тест="@Style = "NewsBigItem"">
        <XSL:приложи-шаблони Изберете="." режим="itemstyle">
          <XSL:с Албена Име="CurPos" Изберете="$CurPosition" />
        </XSL:приложи-шаблони>
      </XSL:Когато>
      <XSL:Когато тест="@Style = "NewsCategoryItem"">
        <XSL:приложи-шаблони Изберете="." режим="itemstyle">
          <XSL:с Албена Име="CurPos" Изберете="$CurPosition" />
        </XSL:приложи-шаблони>
      </XSL:Когато>

      <!--
              Проход текущата позиция и lastrow в мрежата itemstyle.xsl шаблон.
              ItemStyle.xsl ще я използва, да излъчват отваряне и затваряне <таблица> Тагове.
      -->
      <XSL:Когато тест="@Style = "Мрежа"">
        <XSL:приложи-шаблони Изберете="." режим="itemstyle">
          <XSL:с Албена Име="CurPos" Изберете="$CurPosition" />
          <XSL:с Албена Име="Последно" Изберете="$LastRow" />
        </XSL:приложи-шаблони>
      </XSL:Когато>

      <XSL:в противен случай>
        <XSL:приложи-шаблони Изберете="." режим="itemstyle">
        </XSL:приложи-шаблони>
      </XSL:в противен случай>
    </XSL:Изберете>
  </XSL:шаблон>

Коментарите описват целта на промените.

Разбира се, "OuterTemplate.CallItemTemplate" е самата нарича от друг шаблон. Намерете този шаблон чрез търсене на този текстов низ:

<XSL:шаблон Име="OuterTemplate.Body">

Превъртете през инструкциите в OuterTemplate.Body и вмъкнете параметъра LastRow както следва (показани като коментар в курсив):

<XSL:повикване-шаблон Име="OuterTemplate.CallItemTemplate">
  <XSL:с Албена Име="CurPosition" Изберете="$CurPosition" />
  <!-- Вмъкнете параметъра LastRow. -->
  <XSL:с Албена Име="LastRow" Изберете="$LastRow"/>
</XSL:повикване-шаблон>

След всичко това, най-накрая имаме неща настроен правилно, така че да могат да излъчват нашите ItemStyle.xsl <таблица> Етикети на точното място.

ItemStyle.Xsl

ЗАБЕЛЕЖКА: Отново, Проверете в ItemStyle.xsl след като всички промени, така че да виждате ефекта от тези промени.

Тук имаме две задачи:

  • Замени цялата мрежа шаблон. Можете да копирате/паста от долу.
  • Добави някои mumbo джъмбо извън дефиницията на шаблон, който позволява "formatcurrency" шаблон за работа. (Можете да кажете, че имам слаба дръжка на XSL).

Първо, близо до горната част на ItemStyle.xsl, Добави този ред:

  <!-- Някои mumbo джъмбо, който ни позволява да покажете САЩ. валута. -->
  <XSL:десетичен формат Име="персонал" цифра="D" />

  <XSL:шаблон Име="По подразбиране" мач="*" режим="itemstyle">

Имайте предвид, че аз го добавя непосредствено преди <XSL:име на шаблон = "по подразбиране" …> дефиниция.

Следващ, върнете се към нашия мрежа шаблон. Замените шаблона на цялата мрежа с кода по-долу. Тя е добре коментира, но не се колебайте да пишете ми или оставите коментар в моя блог, ако имате въпроси.

  <XSL:шаблон Име="Мрежа" мач="Ред[@Style = "Мрежа"]" режим="itemstyle">

    <!--
      ContentMain.xsl минава CurPos и последно.
      Използваме условно излъчват отваряне и затваряне <таблица> Тагове.
    -->
    <XSL:param Име="CurPos" />
    <XSL:param Име="Последно" />

    <!-- Следващите променливи са непроменени от стандартните ItemStyle.xsl -->
    <XSL:променлива Име="SafeImageUrl">
      <XSL:повикване-шаблон Име="OuterTemplate.GetSafeStaticUrl">
        <XSL:с Албена Име="UrlColumnName" Изберете=""ImageUrl""/>
      </XSL:повикване-шаблон>
    </XSL:променлива>
    <XSL:променлива Име="SafeLinkUrl">
      <XSL:повикване-шаблон Име="OuterTemplate.GetSafeLink">
        <XSL:с Албена Име="UrlColumnName" Изберете=""LinkUrl""/>
      </XSL:повикване-шаблон>
    </XSL:променлива>
    <XSL:променлива Име="DisplayTitle">
      <XSL:повикване-шаблон Име="OuterTemplate.GetTitle">
        <XSL:с Албена Име="Заглавие" Изберете="@Title"/>
        <XSL:с Албена Име="UrlColumnName" Изберете=""LinkUrl""/>
      </XSL:повикване-шаблон>
    </XSL:променлива>
    <XSL:променлива Име="LinkTarget">
      <XSL:Ако тест="@OpenInNewWindow = "True"" >_blank</XSL:Ако>
    </XSL:променлива>

    <!--
      Тук ние определяме променлива, "tableStart".  Това съдържа HTML, които използваме за определяне на откриването на таблицата, както и етикетите на колоните.  Обърнете внимание, че ако CurPos = 1, Тя включва HTML в CDATA етикет.
      В противен случай, Той ще бъде празен.

      Стойността на tableStart е отделяния, всеки път, когато ItemStyle се нарича чрез ContentQueryMain.xsl.
    -->
    <XSL:променлива Име="tableStart">
      <XSL:Ако тест="$CurPos = 1">
        <![НЕЗАТВОРЕН[
        <граница на таблица = 1>
          <TR bgcolor = "синя">
            <TD><цвят на шрифта = "бяло"><б>Име на проекта</б></шрифт></TD>
            <Подравняване на TD = "право"><цвят на шрифта = "бяло"><б>Попълнете датата</б></шрифт></TD>
            <Подравняване на TD = "право"><цвят на шрифта = "бяло"><б>Бюджет</б></шрифт></TD>
            <Подравняване на TD = "право"><цвят на шрифта = "бяло"><б>Действителни разходи</б></шрифт></TD>
            <TD><цвят на шрифта = "бяло"><б>Цялостното състояние</б></шрифт></TD>
          </TR>
        ]]>
      </XSL:Ако>
    </XSL:променлива>

    <!--
      Друга променлива, tableEnd просто определя крайната маса етикет.

      Както и при tableStart, Тя винаги е отделяния.  Ето защо неговата стойност се присвоява условно въз основа на това дали сме били преминали последния ред от ContentQueryMain.xsl.
    -->
    <XSL:променлива Име="tableEnd">
      <XSL:Ако тест="$CurPos = $Last">
        <![НЕЗАТВОРЕН[ </таблица> ]]>
      </XSL:Ако>
    </XSL:променлива>

    <!--
      Винаги излъчват съдържанието на tableStart.  Ако това не е първия ред премина към нас от ContentQueryMain.xsl, след това ние знаем стойността му ще бъде празна.

      Забраняване на изход да избяга, защото когато tableStart тя не празно, Тя включва действителните HTML, които искаме да бъдат предоставени от браузъра.  Ако ние не казвайте на XSL анализатора да забраните продукция бягство, Той ще генерира неща като"&lt;таблица&gt;" Вместо това на"<таблица>".
    -->
    <XSL:стойността на Изберете="$tableStart" забрани продукция бягство="Да"/>


    <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:стойността на Изберете="@Project_x005F_x0020_Name"/>
      </TD>

      <TD Подравняване="десен">
        <XSL:стойността на Изберете="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD Подравняване="десен">
        <XSL:повикване-шаблон Име="FormatCurrency">
          <XSL:с Албена Име="стойност" 
Изберете="@Project_x005F_x0020_Budget"></XSL:с Албена> </XSL:повикване-шаблон> </TD> <TD Подравняване="десен"> <XSL:повикване-шаблон Име="FormatCurrency"> <XSL:с Албена Име="стойност" Изберете="@Project_x005F_x0020_Expenses">
</XSL:с Албена> </XSL:повикване-шаблон> </TD> <TD> <XSL:стойността на Изберете="@Project_x005F_x0020_Status"/> </TD> <!-- Всички от следните е коментира да изясни нещата. Въпреки това, носят го обратно и вещество то в <TD> за да видите нейния ефект. --> <!-- <DIV id = "linkitem" клас = "позиции"> <XSL:Ако тест = "-дължина на низа($SafeImageUrl) != 0"> <DIV клас = "изображение-зона-ляво"> <a href = "{$SafeLinkUrl}" TARGET = "{$LinkTarget}"> <IMG клас = "изображение-фиксирана ширина" SRC = "{$SafeImageUrl}"
ALT = "{@ImageUrlAltText}"/> </а> </DIV> </XSL:Ако> <DIV клас = "връзката-елемент"> <XSL:повикване-шаблон
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href = "{$SafeLinkUrl}"
TARGET = "{$LinkTarget}" заглавие = "{@LinkToolTip}"> <XSL:стойността на изберете = "$DisplayTitle" /> </а> <DIV клас = "Описание"> <XSL:стойност на select="@Description" /> </DIV> </DIV> </DIV>
--> </TR> <!-- Излъчват затваряне маса етикет. Ако не сме на последния ред, Това ще бъде празно. --> <XSL:стойността на Изберете="$tableEnd" забрани продукция бягство="Да"/> </XSL:шаблон> <XSL:шаблон Име="FormatCurrency"> <XSL:param Име="стойност" Изберете="0" /> <XSL:стойността на Изберете='Форматиране на число($стойност, "$DDD,DDD,DDD. DD", "персонал")' /> </XSL:шаблон>

Стандартни WSS/Мос данни влизане екрани не поддържат каскадни падащите (или други търговията-от комуникация)

АКТУАЛИЗИРАНЕ (04/2008): Този голям блог пост показва един добър javascript базиран подход към този проблем: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

АКТУАЛИЗАЦИЯ II: (04/2008): Този блог влизане изглежда обещаващо, както и: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Няколко пъти на седмица, Ако не ежедневно, форум на потребителите описва изискването, че обикновено може да бъде осъществена чрез каскадни падащите. За пример, Аз имам две контроли на падащ списък:

  • Списък на САЩ. членки
  • Списък на САЩ. Градове.

Като отговорен UI доставчици, Ние искаме това да работи като този:

  • Павел избира САЩ. държава от падащото меню.
  • Това води до градовете падащото меню да се филтрира само тези градове, които принадлежат на избрания държавата.
  • Павел избира един град от този филтриран списък.

Не е вън на на кутия поддръжка за тази функция. Всъщност, няма OOB поддръжка за всякакъв вид пряка intra-формуляр за комуникация. Това включва програмно скриване/включване/изключване полета в отговор на промени в полето някъде другаде във формуляра.

Истинската цел на тази статия за да описват възможните решения и те са опциите, както аз ги знам:

  1. Разработване на потребителски колоната тип. Като по поръчка-колона-разработчик, Вие имате пълен контрол над света"" от тази колона за избор. Можете да реализирате каскадни падащото по този начин.
  2. Помислете за използване на работен поток. В някои случаи, искате да присвои автоматично стойност поле въз основа на друго поле стойност. В този случай, обикновено ще се опита да използва изчисляема колона, но някои пъти, Тя просто няма да се свърши работата. SharePoint Designer поток е относително администриране приятелски алтернатива на отпадане надолу в код и visual studio. Ако отидете този маршрут, бъдат запознати с въпросите, разглеждани от тази статия (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Манипулатори на събития: Като работен поток, Това е решение, след най факт. Вашия манипулатор на събитие е асемблиран (C#, VB.NET) към SharePoint, които минава контрол. Обектът развиете има достъп до данните от списъка (и на целия обект модел) и може да направи всички необходими изчисления.
  4. Използвайте SharePoint Designer, за да създадете потребителски формуляри. Аз нямам пряк опит с този подход, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. Roll своя собствена ASP.NET данни влизане функция (като отделна уеб страница или уеб част) и употреба този вместо това.

Ако някой знае други и/или по-добри опции, Моля публикувате коментар и аз ще се актуализира на тялото на този пост.

<край />

Technorati тагове:

Да/не (квадратче) Филтриране по съдържание уеб компонент на заявка

За да филтрирате за заявка за да/не квадратчето право "PG крайъгълен камък", Конфигуриране на CQWP като това:

Изображение

Това е още едно от тези очевидни веднъж вие знаете то но hard-to-find-an-answer-to въпроси: Как да филтрирате в "да" / няма отметка в квадратчето използване на уеб компонента на заявка за съдържание.

Първата Резултат от търсене Намирам, че използването на термина "филтър съдържание да/не уеб компонент на заявка" е плосък се греши, така си мислех аз ще сложи това там и да видим, ако той може да замести неправилен резултат в типичен търсене резултати.

Това е доста лесно: Вярно стойности = 1" и фалшиви стойности не равни "1" (доста ретро, Всъщност).

В горния пример, Съм създал сайт колона от тип да/не" (квадратче за отметка)" наименуван "PG крайъгълен камък". Аз го добавя към библиотека с документи, Качил няколко документи, Задаване на стойността на една двойка и го изпитват.

<край />