Щомісячні архіви: Грудень 2007

Мій син зламаний Gamespot

Так, Сьогодні вранці, мій син рішучості до віці тринадцяти обмежений гало 3 відео в GameSpot. Я за межами лопатою сніг, так, я не допомагають або заважають. Необхідність є матір'ю винаходу і все, що … у нього є eureka! момент. Він розуміє, що, незважаючи на те, що Gamespot хоче, щоб ввести його реальні Дата народження, Він може реально ввести будь-які Дата народження, він хоче. Після того, як він зрозумів, що, Він зробив себе достатньо старий, щоб подивитися відео.

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

Неділя Funny: “Це друк сміття”

На свою першу роботу з коледжу в 1991, Мені пощастило працювати для виробництва компанії з 13 розташування, не включаючи корпоративної штаб-Квартири в Нью-Джерсі. Я приєднався, саме тоді, коли компанія була розгортанні нових ERP-системи. Ми були малого ІТ-відділ приблизно десять чоловік взагалі, двоє з яких не їздив. Рамках проекту бере участь, замінивши системою IBM 36 коробки з HP устаткування та HPUX. Кожен буде використовуватися зелений труб для доступу до системи.

Проект рулонах вздовж і я посилаюсь Балтімор з новим товаришем по службі, Джефф. Наша робота була до влади до полі Unix, Переконайтеся, що o/s біг, встановлення системи ERP, налаштувати на ERP, навчати людей на на ERP і робити роботу звичай для людей, на місці. (Це була мрія робота, особливо найближчі відразу після коледжу). Перш, ніж ми могли б реально одержати від землі, нам необхідно розпакувати всі зелені труби, покласти їх на столах і дроту їх. І найкраща частина тому, що ми покласти RJ11 роз'єми на себе.

З різних причин, що я ніколи не розумів і фактично ніколи не думав, щоб запитати про в той час, ми мали деякі договірної компанія прийти і запустити кабель по всьому заводу, але ми не мати їх покласти на роз'єми. Так, там був "патч box" з десятками без підпису кабелів в "комп'ютерний зал" і ці snaked навколо будівлі в різні місця в будинку.

Ми працювали наш шлях через нього протягом вихідних, випробування кожного з проводів, поклавши на сполучну лінію (переконавшись, що вона була прямо проти. перетнули), забезпечення розрядні параметри на зелений труб та принтери були правильними, маркування проводів, переконавшись, що "Гетті" Біг правильно для кожного порту і ймовірно тисячі інших речей, що я вже придушене тих пір. Все це зібралися разом зовсім красиво.

Але, там був один важливий кабель, який ми не міг з'ясувати. Завод в Балтіморі були відносини з складування розташування в Нью-Джерсі. Деякі замовленням, розміщеним в Балтіморі вивезені з цього розташування. Існували два дроти, який ми не могли підключитися до HPUX box: Зелена трубки і принтер. Зелена трубки було легко, але принтера, перетворився на кошмар три тижні.

Якщо ви не знаєте, що це, або придушили його, мова йде про зелений труб і принтерів таким чином, Існують різні варіанти, які ви маєте справу з, встановивши різні значки. 8-біт, 7-біт, ПАРИТЕТ (навіть непарних/скинути /), мабуть інших. Якщо ви помилитися один із цих параметрів, трубки або принтер все ще показує речі, але це буде загальна тарабарщина, або це буде тарабарщина з великою кількістю впізнаваний речі між ними. Звичайно, Ці штирьков важко побачити і повинен бути встановлений за допомогою невеликих плоским краю викрутка. І вони ніколи не стандартний.

Ми створили перший з багатьох швидкий дзвінки з Нью-Джерсі хлопець (hater комп'ютерів з величезним досвідом, які ймовірно curses нас до цього дня). Ми отримали зелена трубки працює досить швидко, але ми не могли отримати принтер для роботи. Він тримав "друку сміття". Ми б створити новий RJ11 роз'єм, перемикання між перехрещених і прямі. Ми б видалити порт і заново створений у Unix. Ми пройшли через важким завданням з ним пояснюють нам pin конфігурації на принтері, ніколи не зовсім впевнений, якщо він робить це правильно.

Пора йти жити, все, що в Балтіморі наспівуючи, але ми не можемо отримати прокляті принтер в Нью-Джерсі працювати! Ми вичерпали всі можливості, за винятком водіння назад до Нью-Джерсі, щоб працювати на принтері в обличчя. Щоб уникнути все, що водіння, Ми нарешті запитати його нам факсом, що він отримує коли він «смітника», сподіваючись, що може бути буде ключ в цьому сміття, яке говорить нам, що ми робимо не так.

Коли ми отримали факс, ми відразу знав, що трапилося. Див., наш метод перевірки чи ми мали налаштований правильно принтер був видавати ЛП"" команда наступним чином:

LP/д/passwd

В основному, Ми роздрукувати файл паролів unix. Це завжди присутній і з коробки, завжди тільки одна сторінка. Ви стандартної Unix файл паролів виглядатиме так:

Сміт:*:100:100:8A-74(офіс):/Головна/Сміт:/usr/bin/ш Відгуки:*:200:0::/Головна/Відгуки:/usr/bin/ш  

Ми мали був передрукуванні файл паролів знову і знову протягом декількох тижнів, і вона була належним чином друкує. Однак, для кінцевих користувачів, Це був "друку сміття".

</кінець>

Ще інший мережа облікові дані Multi-Challenge проблеми і рішення

Мій клієнт нещодавно встановили магія пристрій від Ялівець мабуть замінити свій старий балансувальник навантаження мережі Cisco (NLB). У той же час, ми встановили на виправлення для усунення певної проблеми робочого циклу.

Через день або два по тому, Ми помітили проблему, коли ми зверталися постачальника спільних послуг (SSP). Ми могли б отримати до нього, але ми б бути оскаржені Ідентифікатор користувача і пароль, багато разів на кожній сторінці. Цього не сталося з головного порталу app, ні центру адміністрування. Природно, Ми не знали, який з двох (Ялівець або виправлення) був би питання, Хоча я сильно підозрював виправлення, вважаючи, що ми не встановив його влучно.

Виявилося, що ялівцю був свого роду параметр стиснення. Один з на царствені мантії цифри над в мережі групи перетворили цю настройку. Що вирішити наші проблеми.

Це не перший раз, яке стиснення було причину проблеми SharePoint для мене. IIS стиснення погіршувався 3rd party інструмент з добрі люди, The Dot Net заводу для IE 6 браузери (IE 7 браузери, які працювали без праці).

Так, Додати "стиснення" до списку небезпеки.

</кінець>

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

Думаючи про зміну блог-платформи

Я почав з мого "блоги кар'єри" за допомогою Microsoft платформи і це був добрий до мене. Це легко повідомлення, є хороші варіанти і віджети для управління вашого "простір", гідний веб-сховище і так далі.

Однак, Я насправді просто впав на MS рішення з майже немає планування. Що тільки дзвінки для мене, щоб оцінити, де я і де я буду, з точки зору блог-платформи. Існують також два важливі обмеження, які турбують мене правильно тепер vis-à-vis Windows Live Spaces.

Перший, Я не можу отримати дуже хорошу статистику. Є статистику, але докладно часто скорочено і не представлені таким чином, що дозволяє для будь-якого аналізу. Там немає сортуванні та експортні можливості. Я отримую багато ідей блог на основі такого роду інформацію, люди знаходять (або особливо не в змозі знайти) коли вони Пошук моєму блозі. Це дуже важко використовувати пробіли життя для цього.

Другий, там не здається механізм "монетизувати" windows live простір блог. Насправді, для того, щоб позбутися від MS оголошень (з якої я отримати жодної вигоди), Мені потрібно, щоб дійсно платять Microsoft. (По крайней мере, Це, як я розумію; Я був не в змозі отримати остаточних відповідей на це і питання, як це).

Тепер, коли я отримав встановленого зразку та набір блогів звички, Я хочу, щоб оцінити інші параметри. Я зробив деякі дослідження і багато варіантів, але мені цікаво, про те, що інші люди, особливо інших в SharePoint спільноти (як блогери або читачів), як використовувати.

Якщо цю тему, що вас цікавить, і у вас є думка або готові поділитися своїм досвідом, будь ласка, залиште коментар або напишіть мені безпосередньо.

Дякую!

<кінець />

Бірки Technorati:

SharePoint Designer електронної пошти надсилає ???? електронною поштою

Форум користувачі іноді запитують: Навіщо ставити SharePoint Designer ???? мою адресу електронної пошти замість того, щоб значення поля?

Одна причина це відбувається, тому що змінної, на які ви посилаєтесь дорівнює null.

Це може статися, тому що ви намагаєтеся посилатися на поля з "поточний елемент" але користувач ніколи не набув значення цього поля форми.

<кінець />

Порівняти / Тест для пустих дат робочого циклу SharePoint Designer, у

Сценарій: У SharePoint Designer робочий процес, Вам необхідно визначити, якщо пусте поле дати.

Проблема: СДПН не надає прямий метод для порівняння дат до побачення, ніж. Не вдалося створити умови, як це: "Якщо [DateField] дорівнює "порожній".

Рішення: Перетворення дати в рядок. Використовувати порівняння рядків, щоб визначити, якщо дата пусте.

Знімки екрану:

Наступні скріншоти показати, як це зробити. У цьому випадку, поля на елементі, «Екологічні дозволів:По-перше, дозвіл на Дата Нагадування", надсилання та робочого процесу пожеж у відповідь.

зображення

зображення

Нотатки:

Коли я спробував це, Я був приємно здивований, дізнавшись, що він працює. Я не був упевнений, що SharePoint Designer може заборонити рядок призначення (Змінна:StringReminderDateDate) але вона дозволити йому.

Я був також стурбовані, що дозволяє, значення може бути null і або підірвати WF під час виконання, або може бути підвищення глобальної температури 1/2 ступінь, але ці побоювання безпідставні.

</кінець>

Бар є як і раніше досить високий, щоб розширити МОСС

Сьогодні, Я був роботи з клієнтом і описує як змінити запит вмісту веб-частини та відображати додаткову бітів інформації з типом вмісту.

"Перший, Настроювання CQWP для підключення до її джерел даних, Ви експортувати його з вашої робочої станції, змінити <CommonViewFields>, Завантажити, видалити оригінал і тепер ' загрунтувати’ Щоб відобразити ці інші стовпці. Наступний, Відкрийте програму SharePoint designer, Перейдіть до колекції кореневий сайт і знайти ItemStyle.xsl. Один із шаблонів скопіюйте як корисною відправною точкою. Повернутися назад і змінити CQWP, щоб зробити використання цього нового шаблону. Нарешті, змінення шаблону, який завантажено нові поля! (Не забудьте перевірити його назад в тому, що інші користувачі можуть побачити результати)."

Це все цілком зрозуміло (і більшість з нас SharePoint розробник типів) те, що відбувається і як це дуже приємно, Справді, що аспекти витягнення даних на CQWP, так добре окремо від даних презентації аспекти. Але, Це не так легко пояснити, Хіба це?

<кінець />

Відображення вмісту результати запиту веб частина у вигляді сітки / Таблиці

Огляд і мета

З коробки, ЛИШАЙНИК’ Веб-частина запиту вмісту (CQWP) відображає результати в формат списку, аналогічні результати пошуку. Також можливе для відображення результатів у формі таблиці (тобто. Формат HTML-таблиці). Сітка форматами є краще в деяких обставин. Я описую, як добитися цього ефекту в цій статті.

Бізнес-сценарій

Я працював з клієнтом на в масштабах підприємства свиті МОСС. Ми розробили іх таксономії, така, що проектів першого класу громадян в ієрархії і мають свій власний сайт верхнього рівня. Менеджери проектів вести список singleton відомості про проект, Наприклад, заголовок, бюджет, очікується завершення дата, Решта бюджету та інші поля тип зведення. Від "Сінглтон" Я маю на увазі за настроюваним списком SharePoint гарантовано містять лише один елемент. Спрощено, це виглядає так:

зображення

Технічний підхід, так само, як описано Тут (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). На CQWP використовує XSL-перетворення випромінювати HTML для веб-переглядача для візуалізації.

Я завжди уявити собі результат перш ніж поринути у XSL, оскільки XSL кошмар. Ось мій бажаного результату:

зображення

HTML наступним чином генерує цього результату:

<HTML>
 <тіло>
 <Центр>
 <Таблиця кордону= 1>

<!-- Етикетки->
 <TR BGCOLOR= синій>
 <TD><шрифт колір= білий><b>Назва проекту</b></шрифт></TD>
 <TD Вирівняти= вправо><шрифт колір= білий><b>Повна дата</b></шрифт></TD>
 <TD Вирівняти= вправо><шрифт колір= білий><b>Бюджет</b></шрифт></TD>
 <TD Вирівняти= вправо><шрифт колір= білий><b>Фактичні витрати</b></шрифт></TD>
 <TD><шрифт колір= білий><b>Загальний стан</b></шрифт></TD>
 </TR>

<TR>
 <TD>Re-wire комп'ютерний зал.</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. Створення сайтів sub для проектів і singleton списки.
  4. Додати до CQWP на веб-сторінку і налаштувати його для пошуку ваших списків.
  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. Створити тип вмісту, templatized особливий список для цього типу вмісту та двох сайтів. Ось типу вмісту:

зображення

Ось структура сайту:

зображення

2. Додати до CQWP після створення мого проекту підсайтів і singleton списки резюме проекту:

зображення

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 і фліп Хізер Соломон статтю. Виконайте її дії, починаючи поблизу крок #5 Створення настроюваного / unghosted версія ItemStyle.xsl. Я слідувати порадам Хізер, вгору через крок 11 і отримати ці проміжні результати:

4.1: Назва мого XSL-шаблону наступним чином:

<перетворення XSL:ім'я шаблону = "сітки" матч = "рядок[@Style = "Сітка"]" режим = "itemstyle">

Я також трохи змінити її запропонував <перетворення XSL:для кожного …> шляхом додавання до <br /> тег, щоб забезпечити cleaner лістингу:

    <перетворення XSL:для кожного Виберіть="@*">
      P:<перетворення XSL:значення з Виберіть="Ім’я()" /><br/>
    </перетворення XSL:для кожного>

4.2: Я змінити веб-частини, сторінку вигляд і виберіть пункт мої "сітки" стиль:

зображення

Застосувати зміни, і ось результат:

зображення

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

На даний момент, Ми відійти від блог Heather's і від плечей ці гіганти, Я додаю мої власні трохи.

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:парам Ім’я="CurPosition" />

    <!--
      Додати "LastRow" параметр.
      Ми тільки використовувати його, коли елемент стилю перевалу в "Сітка".
    -->
    <перетворення XSL:парам Ім’я="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.

Ми маємо два завдання тут:

  • Замінити весь шаблон сітки. Ви можете копіювати/вставити знизу.
  • Додати деякі фетиш за межами визначенням шаблону, який дозволяє "formatcurrency" шаблон для роботи. (Ви можете сказати, що в мене є хитким ручкою на XSL).

Перший, у верхній частині ItemStyle.xsl, додати наступний рядок:

  <!-- Деякі фетиш, що дає нам можливість відображення США. валюти. -->
  <перетворення XSL:десятковий формат Ім’я="Персонал" цифра="D" />

  <перетворення XSL:Шаблон Ім’я="За промовчанням" матч="*" режим="itemstyle">

Зверніть увагу, що я додав його безпосередньо перед тим, як на <перетворення XSL:ім'я шаблону = "типовий" …> визначення.

Наступний, повернутися до шаблон нашого сітки. Замінити весь шаблон сітки наведений нижче код. Це ретельно прокоментував, але, не соромтеся, напишіть мені або залишити коментар на моєму блозі, якщо у вас є питання.

  <перетворення XSL:Шаблон Ім’я="Сітка" матч="Рядок[@Style = "Сітка"]" режим="itemstyle">

    <!--
      ContentMain.xsl проходить CurPos і останній.
      Ми використовуємо ці умовно випромінювати відкритою і закриття <Таблиця> Мітки.
    -->
    <перетворення XSL:парам Ім’я="CurPos" />
    <перетворення XSL:парам Ім’я="Останнє" />

    <!-- Нижче подано змінні, незміненій від стандартних 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 є emited кожного разу, коли ItemStyle називається через ContentQueryMain.xsl.
    -->
    <перетворення XSL:Змінна Ім’я="tableStart">
      <перетворення XSL:Якщо тест="$CurPos = 1">
        <![CDATA[
        <межу таблиці = 1>
          <TR-bgcolor = "blue">
            <TD><колір шрифту = "Біле"><b>Назва проекту</b></шрифт></TD>
            <TD приєднуються = "право"><колір шрифту = "Біле"><b>Повна дата</b></шрифт></TD>
            <TD приєднуються = "право"><колір шрифту = "Біле"><b>Бюджет</b></шрифт></TD>
            <TD приєднуються = "право"><колір шрифту = "Біле"><b>Фактичні витрати</b></шрифт></TD>
            <TD><колір шрифту = "Біле"><b>Загальний стан</b></шрифт></TD>
          </TR>
        ]]>
      </перетворення XSL:Якщо>
    </перетворення XSL:Змінна>

    <!--
      Ще одна змінна, tableEnd просто визначає закриття таблиці тег.

      Як і у tableStart, Це завжди emited.  Саме тому його значення призначено умовно основі чи ми вже були передані останній рядок за ContentQueryMain.xsl.
    -->
    <перетворення XSL:Змінна Ім’я="tableEnd">
      <перетворення XSL:Якщо тест="$CurPos = $Last">
        <![CDATA[ </Таблиця> ]]>
      </перетворення 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 клас = "зображення області ліворуч"> <href = "{$SafeLinkUrl}" цільових = "{$LinkTarget}"> <IMG клас = "зображення фіксованої ширини" SRC = "{$SafeImageUrl}"
Alt = "{@ImageUrlAltText}"/> </на> </DIV> </перетворення XSL:Якщо> <DIV клас = "посилання елемент"> <перетворення XSL:дзвінок шаблон
Name="OuterTemplate.CallPresenceStatusIconTemplate"/> <href = "{$SafeLinkUrl}"
цільових = "{$LinkTarget}" Назва = "{@LinkToolTip}"> <перетворення XSL:значення з виберіть = "$DisplayTitle" /> </на> <DIV клас = "Опис"> <перетворення XSL:значення з select="@Description" /> </DIV> </DIV> </DIV>
--> </TR> <!-- Випромінюють закриття таблиці тег. Якщо ми не на останньому рядку, Це буде порожнім. --> <перетворення XSL:значення з Виберіть="$tableEnd" вимкнути виводу втечі="Так"/> </перетворення XSL:Шаблон> <перетворення XSL:Шаблон Ім’я="formatcurrency"> <перетворення XSL:парам Ім’я="значення" Виберіть="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 постачальники, Ми хочемо, щоб діяти як це:

  • Пол вибирає в США. держава зі спадного списку.
  • Це викликає міст розкривається для фільтрації міст, які належать до вибраного стану.
  • Пол вибирає місто цей відфільтрованому списку.

Не існує поза коробки підтримки для цієї функції. Насправді, не існує Адміністрування підтримки для будь-якого прямого внутрішньо форми зв'язку. Це включає в себе програмним шляхом приховування/Увімкнення або вимикання поля у відповідь на зміни поле в іншому місці форми.

Реальна мета цієї статті до для опису можливих рішень і ці є варіанти, як я їх знаю:

  1. Розвивати Тип настроюваного стовпця. Custom колонки-розробника, у вас є повний контроль над світом"" Цей звичай стовпця. Ви можете здійснити cascading розкривається таким чином.
  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. Рол свій ASP.NET даних запис функція (як автономні веб-сторінки або веб-частини) і використання, що замість цього.

Якщо хто-небудь знає інший та/або краще параметри, будь ласка, пост коментар, і я буду оновлювати тіла цієї посади.

<кінець />

Бірки Technorati:

Так/ні (прапорець) фільтрування у веб-частина запиту вмісту

Щоб відфільтрувати запит так/ні прапорець під назвою "PG віхою", Настроювання CQWP наступним чином:

зображення

Це ще один з тих питань, очевидна раз ви знаєте це, але hard-to-find-an-answer-to: Як фільтрувати на так/ні прапорець за допомогою веб-частини запиту вмісту.

Перший Результат пошуку Я вважаю, що за допомогою пошукового терміна "Фільтр запит так/ні вмісту веб-частини" плоский неправильно, так що я думав, що це там викладати і побачити, якщо вона може замінити неправильний результат в результатах пошуку типовий.

Це досить легко: Істинне значення = "1" і помилкові значення дорівнює "1" (досить ретро, насправді).

У наведеному вище прикладі, Я створив сайт стовпцем типу так/ні" (прапорець)" іменований "PG віхою". Я додав його в бібліотеці doc, Завантажено за декілька документів, встановіть значення на пару і перевірив його.

<кінець />