lưu trữ hàng tháng: Tháng mười hai 2007

Con trai tôi Hack Gamespot

Vì vậy, sáng nay, con trai tôi được xác định để xem một mười ba tuổi giới hạn Halo 3 video tại GameSpot. Tôi đang ở ngoài shoveling tuyết, do đó, tôi không có để giúp đỡ hoặc cản trở. Điều cần thiết là mẹ của sáng chế và tất cả những gì … Ông có một eureka! thời điểm. Ông nhận ra rằng mặc dù Gamespot muốn anh ta để vào của mình thực tế ngày tháng năm sinh, ông thực sự có thể nhập bất kỳ ngày tháng năm sinh ông muốn. Một khi ông nhận ra rằng, ông đã tự mình đủ tuổi để xem video.

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

Chủ Nhật Funny: “Nó là in rác”

Tại công việc đầu tiên của tôi ra khỏi trường cao đẳng 1991, Tôi đã may mắn để làm việc cho một công ty sản xuất với 13 địa điểm, không bao gồm công ty HQ ở New Jersey. Tôi gia nhập chỉ khi công ty đã lăn ra một hệ thống ERP mới. Chúng tôi đã là một bộ phận CNTT nhỏ của khoảng mười người hoàn toàn, hai trong số đó đã không đi du lịch. Một phần của dự án liên quan đến thay thế hệ thống IBM 36 hộp với phần cứng HP và HPUX. Tất cả mọi người sử dụng ống màu xanh lá cây để truy cập vào hệ thống.

Dự án cuộn dọc theo và tôi đang được gửi xuống tới Baltimore với một đồng nghiệp mới, Jeff. Công việc của chúng tôi là để quyền lực lên hộp Unix, đảm bảo rằng o/s đã chạy, cài đặt hệ thống ERP, Đặt cấu hình ERP, đào tạo người dân trên ERP và làm công việc tuỳ chỉnh cho folks chỗ. (Đây là một công việc mơ ước, đặc biệt là đến thẳng ra khỏi trường đại học). Trước khi chúng tôi có thể thực sự nhận được khỏi mặt đất, chúng tôi cần phải giải nén tất cả các ống màu xanh lá cây, Đặt chúng trên bàn làm việc và dây họ. Và phần tốt nhất là rằng chúng tôi phải giết các kết nối RJ11 chúng ta.

Đối với một số lý do mà tôi không bao giờ hiểu và thực sự không bao giờ nghĩ rằng để hỏi về lúc đó, chúng tôi đã có một số công ty ký kết hợp đồng đến cùng và chạy cáp trong toàn bộ nhà máy, nhưng chúng tôi đã không có họ đặt trên các kết nối. Vì vậy, đã có một "bản vá lỗi hộp" với hàng chục của các loại cáp unlabeled trong "phòng máy tính" và đây giành xung quanh tòa nhà đến nhiều nơi khác nhau trong việc xây dựng.

Chúng tôi làm việc theo cách của chúng tôi thông qua nó trong quá trình cả một ngày cuối tuần, kiểm tra mỗi dây, Đặt trên một kết nối (đảm bảo rằng nó đã là thẳng vs. vượt qua), đảm bảo cài đặt chút màu xanh lá cây ống và máy in đã đúng, ghi nhãn dây, đảm bảo rằng "getty" đã chạy một cách chính xác cho mỗi cổng và có lẽ một ngàn những thứ khác tôi đã đàn áp từ đó. Tất cả đến với nhau khá độc đáo.

Nhưng, đã có một cáp quan trọng mà chúng tôi không thể tìm ra. Nhà máy ở Baltimore có một mối quan hệ với một điểm kho bãi ở New Jersey. Một số đơn đặt hàng được đặt ở Baltimore vận chuyển ra khỏi vị trí đó. Đã có hai dây mà chúng tôi đã có để kết nối với hộp HPUX: một ống màu xanh lá cây và một máy in. Ống màu xanh lá cây được dễ dàng, nhưng máy in biến thành một cơn ác mộng ba tuần.

Nếu bạn không biết nó, hoặc đã đàn áp, đối phó với ống màu xanh lá cây và máy in bằng cách này, có những lựa chọn khác nhau mà bạn đối phó với bằng cách thiết lập nhiều pins. 8-chút, 7-chút, tương đương (ngay cả/lẻ/không), có lẽ những người khác. Nếu bạn nhận được một trong những cài đặt sai, ống hoặc máy in vẫn cho thấy công cụ, nhưng nó sẽ là tất cả các tiếng vô nghia, hoặc nó sẽ là tiếng vô nghia với rất nhiều dễ nhận biết thứ ở giữa. Tất nhiên, Các chân là khó có thể nhìn thấy và đã được thiết lập bằng cách sử dụng một trình điều khiển nhỏ phẳng-cạnh trục vít. Và họ không bao giờ được tiêu chuẩn.

Chúng tôi thiết lập lần đầu tiên của cuộc gọi nhanh chóng nhiều gã NJ (một máy tính có tóc hoa râm ghét những người có thể lời nguyền chúng tôi đến nay). Chúng tôi có các ống màu xanh lá cây làm việc khá nhanh chóng, nhưng chúng tôi không thể nhận được máy in để làm việc. Nó giữ "in rác". Chúng tôi sẽ tạo ra một kết nối RJ11 mới, chuyển đổi giữa crossed và thẳng. Chúng tôi sẽ xoá cổng và tái tạo trong Unix. Chúng tôi đã đi qua nhiệm vụ gian khổ của việc có ông giải thích cho chúng tôi cấu hình mã pin trên máy in, không bao giờ thực sự chắc chắn, nếu ông đã làm nó một cách chính xác.

Nó là khoảng thời gian để đi sống, Tất cả mọi thứ ở Baltimore ồn ào, nhưng chúng tôi không thể nhận được máy in bị nguyền rủa ở NJ để làm việc! Chúng tôi đã cạn kiệt khả năng tất cả ngoại trừ lái xe trở lại lên đến NJ để làm việc trên máy in ở người. Để tránh tất cả những lái xe, chúng tôi cuối cùng đã yêu cầu ông phải fax cho chúng tôi những gì ông nhận được khi nó là "rác", Hy vọng rằng có lẽ sẽ có một số đầu mối trong đó rác sẽ cho chúng tôi biết những gì chúng tôi đang làm sai.

Khi chúng tôi nhận fax, chúng tôi ngay lập tức biết những gì là sai. Xem, phương pháp của chúng tôi thử nghiệm cho dù chúng tôi đã cấu hình một máy in đúng là phát hành một lp"" lệnh như thế này:

LP/etc/passwd

Về cơ bản, chúng tôi in ra tệp mật khẩu unix. Nó luôn luôn là hiện tại và ra khỏi hộp, luôn luôn chỉ là một trang. Bạn tiêu chuẩn Unix mật khẩu tập tin trông một cái gì đó như thế này:

Smith:*:100:100:8A-74(văn phòng):/Trang chủ/smith:/usr/bin/sh đánh:*:200:0::/Trang chủ/đánh:/usr/bin/sh  

Chúng tôi đã in ra tệp mật khẩu hơn và hơn nữa trong vài tuần và nó in một cách chính xác. Tuy nhiên, cho người dùng cuối, nó đã là "in rác".

</kết thúc>

Tuy nhiên, một mạng lưới thông tin đăng nhập Multi-Challenge vấn đề và giải pháp

Khách hàng của tôi mới cài đặt một thiết bị kỳ diệu từ Juniper mà dường như thay thế của Cisco cũ cân bằng tải mạng (NLB). Tại về cùng một lúc, chúng tôi cài đặt một hotfix để giải quyết một vấn đề công việc.

Một hoặc hai ngày sau đó, chúng tôi nhận thấy một vấn đề khi chúng tôi truy cập các nhà cung cấp dịch vụ chia sẻ (SSP). Chúng tôi có thể nhận được để nó, nhưng chúng tôi sẽ được thử thách cho một ID người dùng và mật khẩu nhiều lần trên mỗi trang. Điều này đã không xảy ra với các ứng dụng cổng thông tin chính, cũng không quản trị Trung ương. Tự nhiên, chúng tôi không biết mà hai (Juniper hoặc hotfix) sẽ là vấn đề, mặc dù tôi nghi ngờ mạnh mẽ các hotfix, Tìm chúng tôi không có cài đặt nó khá đúng.

Nó bật ra rằng Juniper đã có một số loại thiết lập nén. Một trong các robed con số hơn trong mạng nhóm biến đó thiết lập ra. Mà giải quyết vấn đề của chúng tôi.

Đây không phải là lần đầu tiên nén đã là nguyên nhân gốc rễ của một vấn đề SharePoint cho tôi. IIS nén bất lợi ảnh hưởng một công cụ bên thứ 3 từ những người tốt tại The Dot Net Factory cho IE 6 trình duyệt (IE 7 trình duyệt làm việc mà không có khó khăn).

Vì vậy, Thêm "nén" vaøo danh saùch mối nguy hiểm.

</kết thúc>

Tín dụng cho: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

Technorati Tags: ,

Suy nghĩ về việc thay đổi nền tảng blog

Tôi bắt đầu sự nghiệp viết blog của tôi"" bằng cách sử dụng của Microsoft và nó đã được tốt với tôi. Nó là dễ dàng để đăng bài, có những lựa chọn tốt và các vật dụng để quản lý không gian"của bạn", lưu trữ web phong nha và vv..

Tuy nhiên, Tôi thực sự chỉ rơi vào các giải pháp MS với hầu như không có kế hoạch. Rằng cuộc gọi một mình đối với tôi để đánh giá mà tôi và nơi tôi sẽ, trong điều khoản của một nền tảng blog. Có ở này cũng có hai hạn chế quan trọng làm phiền tôi ngay bây giờ vis-à-vis Windows Live Spaces.

Đầu tiên, Tôi không thể có được số liệu thống kê rất tốt. Không có số liệu thống kê, nhưng các chi tiết thường cắt ngắn và không trình bày một cách cho phép cho bất kỳ loại phân tích. Có không có khả năng phân loại hoặc xuất khẩu. Tôi nhận được nhiều ý tưởng blog dựa trên các loại thông tin mà mọi người tìm thấy (hoặc đặc biệt là không tìm thấy) khi họ tìm kiếm blog của tôi. Nó là rất khó để sử dụng cuộc sống cho rằng.

Thứ hai, có vẻ không là bất kỳ cơ chế để "kiếm tiền từ" một cửa sổ sống space blog. Thực tế, để thoát khỏi của MS quảng cáo (từ đó tôi lấy được không có lợi ích), Tôi cần phải thực sự trả tiền Microsoft. (Tối thiểu, đó là làm thế nào tôi hiểu nó; Tôi đã không thể để có được câu trả lời dứt khoát cho điều này và các câu hỏi như nó).

Bây giờ mà tôi đã có một thiết lập mô hình và tập hợp các thói quen viết blog, Tôi muốn để đánh giá các lựa chọn khác. Tôi đã làm một số nghiên cứu và có rất nhiều sự lựa chọn, nhưng tôi tò mò như những gì người khác, đặc biệt là những người khác trong cộng đồng SharePoint (như blogger hoặc độc giả), muốn sử dụng.

Nếu bạn quan tâm chủ đề này và bạn có một ý kiến hay là muốn chia sẻ kinh nghiệm của bạn, Xin vui lòng để lại comment hoặc gửi email cho tôi trực tiếp.

Cảm ơn!

<kết thúc />

Technorati Tags:

SharePoint Designer Email gửi ???? trong một Email

Diễn đàn người sử dụng đôi khi hỏi: Tại sao SharePoint Designer đặt ???? vào email của tôi thay vì một giá trị trường?

Một lý do điều này xảy ra là vì biến mà bạn đề cập là null.

Điều này có thể xảy ra bởi vì bạn đang cố gắng để tham khảo một lĩnh vực từ "khoản mục hiện tại" nhưng người dùng không bao giờ đã nhập một giá trị vào lĩnh vực hình thức đó.

<kết thúc />

Technorati Tags:

So sánh / Thử nghiệm cho trống ngày trong quy trình làm việc SharePoint Designer

Kịch bản: Trong một quy trình làm việc SharePoint Designer, bạn cần phải xác định một trường ngày là trống.

Vấn đề: SPD không cung cấp một phương pháp trực tiếp để so sánh ngày để bất cứ điều gì khác hơn so với một ngày. Bạn không thể tạo ra một điều kiện như thế này: "Nếu [DateField] bằng trống".

Giải pháp: Chuyển đổi ngày đến một chuỗi. Sử dụng so sánh chuỗi để xác định ngày là trống.

Ảnh chụp màn hình:

Hiển thị ảnh chụp màn hình sau đây làm thế nào để làm điều này. Trong trường hợp này, một lĩnh vực trên một mục, "Giấy phép môi trường:Đầu tiên cho phép lời nhắc nhở ngày", đã nộp và quy trình làm việc cháy trong phản ứng.

hình ảnh

hình ảnh

Ghi chú:

Khi tôi cố gắng này, Tôi đã ngạc nhiên để tìm hiểu nó hoạt động. Tôi đã lo lắng rằng SharePoint Designer có thể không cho phép chuyển nhượng Chuỗi (Biến:StringReminderDateDate) nhưng nó đã làm cho nó.

Tôi cũng đã quan tâm rằng cho phép nó, giá trị có thể là null và hoặc là thổi lên WF tại thời gian chạy hoặc có thể tăng nhiệt độ toàn cầu 1/2 một mức độ, nhưng những người quan tâm là không có cơ sở.

</kết thúc>

Technorati Tags:

Bar là vẫn còn khá cao để mở rộng MOSS

Ngày hôm nay, Tôi đã làm việc với một khách hàng và mô tả làm thế nào để sửa đổi một phần nội dung truy vấn web và hiển thị thêm bit của thông tin từ một loại nội dung.

"Đầu tiên., bạn đặt cấu hình CQWP để kết nối với các nguồn dữ liệu, sau đó bạn xuất khẩu nó để máy trạm của bạn, Sửa đổi <CommonViewFields>, tải lên, loại bỏ bản gốc và bây giờ nó là ' sơn lót’ để hiển thị những cột khác. Tiếp theo, mở ra SharePoint designer, di chuyển vào thư mục gốc bộ sưu tập trang web và xác định vị trí ItemStyle.xsl. Sao chép một trong các mẫu là một điểm khởi đầu hữu ích. Quay trở lại và sửa đổi CQWP để làm cho việc sử dụng này mẫu mới. Cuối cùng, Sửa đổi mẫu để render các lĩnh vực mới của bạn! (Đừng quên kiểm tra nó trở lại trong người dùng vì vậy những gì khác có thể xem kết quả)."

Nó là tất cả khá rõ ràng với tôi (và hầu hết chúng ta các loại phát triển SharePoint) những gì đang xảy ra và làm thế nào nó là khá tốt đẹp, Thực sự, Các khía cạnh thu hồi dữ liệu của CQWP là rất tốt riêng biệt từ các khía cạnh trình bày dữ liệu. Nhưng, nó không phải là dễ dàng như vậy để giải thích, là nó?

<kết thúc />

Hiển thị nội dung truy vấn Web một phần kết quả theo lưới / Bảng

Tổng quan và mục tiêu

Ra khỏi hộp, RÊU’ Nội dung truy vấn Web Part (CQWP) Hiển thị kết quả của nó trong một định dạng danh sách, tương tự như kết quả tìm kiếm. Nó cũng có thể hiển thị các kết quả trong một định dạng lưới (tức là. Định dạng bảng HTML). Định dạng lưới tốt hơn trong một số trường hợp. Tôi mô tả làm thế nào để đạt được có hiệu lực trong bài viết này.

Kinh doanh kịch bản

Tôi đã làm việc với một khách hàng ngày một buổi giới thiệu MOSS toàn doanh nghiệp. Chúng tôi đã thiết kế phân loại của họ như vậy mà dự án là các công dân hạng nhất trong hệ thống và có trang web riêng của họ cấp cao nhất. Quản lý dự án duy trì một danh sách singleton của thông tin tóm tắt dự án, chẳng hạn như tiêu đề, ngân sách, Ngày hoàn thành dự kiến, còn lại ngân sách và các lĩnh vực khác của loại tóm tắt. Bởi "singleton" Tôi có nghĩa là một danh sách SharePoint tùy chỉnh bảo đảm để chứa chỉ có một mục. Simplistically, nó trông như thế này:

hình ảnh

Các phương pháp kỹ thuật là giống như được mô tả Ở đây (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP sử dụng một biến đổi XSL để phát ra HTML cho trình duyệt để hiển thị.

Tôi luôn luôn hình dung kết quả trước khi lặn vào XSL vì XSL là một cơn ác mộng. Đây là kết quả mong muốn của tôi:

hình ảnh

HTML như thế này tạo ra kết quả đó:

<HTML>
 <cơ thể>
 <Trung tâm>
 <Bàn biên giới= 1>

<!-- Nhãn-->
 <tr BGColor= màu xanh>
 <TD><phông chữ màu sắc= trắng><b>Tên dự án</b></phông chữ></TD>
 <TD sắp xếp= right><phông chữ màu sắc= trắng><b>Ngày tháng đầy đủ</b></phông chữ></TD>
 <TD sắp xếp= right><phông chữ màu sắc= trắng><b>Ngân sách</b></phông chữ></TD>
 <TD sắp xếp= right><phông chữ màu sắc= trắng><b>Chi phí thực tế</b></phông chữ></TD>
 <TD><phông chữ màu sắc= trắng><b>Tổng thể trạng thái</b></phông chữ></TD>
 </tr>

<tr>
 <TD>Phòng máy tính Re-wire.</TD>
 <TD sắp xếp= right>02/01/08</TD>
 <TD sắp xếp= right>22,500.00</TD>
 <TD sắp xếp= right>19,000.00</TD>
 <TD>Trong tiến trình</TD>
 </tr>

<tr>
 <TD>Cung cấp máy chủ cho SQL nâng cấp</TD>
 <TD sắp xếp= right>04/01/08</TD>
 <TD sắp xếp= right>7,500.00</TD>
 <TD sắp xếp= right>0.00</TD>
 <TD>Kế hoạch</TD>
 </tr>

</Bàn>
 </Trung tâm>
 </cơ thể>
</HTML>

Phương pháp tiếp cận

Thực hiện theo các bước sau để tạo ra mạng lưới:

  1. Xác định các thành phần của lưới điện (hàng/cột).
  2. Xác định và tạo ra các trang web cần thiết cột.
  3. Tạo ra các trang web phụ cho các dự án và danh sách singleton.
  4. Thêm CQWP vào một trang web và cấu hình nó để tìm kiếm các danh sách của bạn.
  5. Sửa đổi của CQWP XML để thu thập các cột bổ sung.
  6. Sửa đổi XSL để tạo ra một bảng.

Tôi sẽ tập trung vào thứ sáu. Con số một thông qua bốn là thẳng về phía trước và một cái gì đó bất kỳ người sử dụng CQWP đã thực hiện. Thứ năm đã được các tài liệu bởi người khác trong đó này bài viết laden ảnh chụp màn hình đầy đủ từ MSDN Ở đây (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) và Heather Solomon blog Ở đây (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Nuts và bu lông

Bắt đầu và thực hiện bước 1 đến 5 theo các tài liệu MSDN và bài viết của Heather Solomon.

Tại thời điểm này, bạn đã thêm CQWP của bạn vào trang web và bạn có của bạn <CommonViewFields> cấu hình cần thiết.

Theo các bước thông thường, Tôi nhận được các kết quả trung gian:

1. Tạo ra một loại nội dung, một danh sách tùy chỉnh templatized cho rằng loại nội dung và hai trang web. Dưới đây là các loại nội dung:

hình ảnh

Dưới đây là cấu trúc trang web:

hình ảnh

2. Thêm CQWP sau khi tạo dự án SubSite và singleton của tôi danh sách tóm tắt dự án:

hình ảnh

3. Thêm tất cả các thông tin bổ sung mà tôi muốn thông qua các <CommonViewFields>:

        <bất động sản Tên="CommonViewFields" loại="chuỗi">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</bất động sản>

Lưu ý rằng tôi đã có để giữ cho tất cả các lĩnh vực bất động sản trên một dòng, hoặc nó sẽ không làm việc (CQWP sẽ cho tôi biết các truy vấn trở lại không có khoản mục).

4. Tại thời điểm này, chúng tôi đã sẵn sàng để di chuyển vượt ra ngoài các bài viết MSDN và flip trên bài viết của Heather Solomon. Làm theo các bước của mình bắt đầu gần bước #5 để tạo ra một tùy chỉnh / Phiên bản unghosted của ItemStyle.xsl. Tôi làm theo lời khuyên của Heather, lên qua bước 11 và nhận được các kết quả trung gian:

4.1: Tên của tôi mẫu XSL như sau:

<XSL:tiêu bản tên = "lưới điện" phù hợp với = "hàng[@Style = 'Lưới']" chế độ = "itemstyle">

Tôi cũng hơi sửa đổi của mình đề nghị <XSL:cho mỗi …> bằng cách thêm một <BR /> các từ khóa để cung cấp một danh sách sạch hơn:

    <XSL:cho mỗi chọn="@*">
      P:<XSL:giá trị của chọn="Tên()" /><BR/>
    </XSL:cho mỗi>

4.2: Sửa đổi phần web, đi đến sự xuất hiện và lựa chọn của tôi "lưới điện" phong cách:

hình ảnh

Áp dụng thay đổi và đây là kết quả:

hình ảnh

Chúng tôi có thể nhìn thấy từ trên các lĩnh vực chúng tôi muốn (Tên dự án, chi phí, tình trạng, vv) có sẵn cho chúng tôi sử dụng khi chúng tôi phát ra HTML. Không chỉ vậy, nhưng chúng tôi thấy tên mà chúng tôi phải tham khảo những cột trong XSL. Ví dụ:, chúng tôi tham khảo tình trạng dự án như "Project_x005F_x0020_Name".

Tại thời điểm này, chúng tôi khởi hành từ blog của Heather và từ vai những người khổng lồ, Tôi thêm riêng của tôi ít.

ContentQueryMain.xsl

LƯU Ý: Khi thực hiện thay đổi cho cả hai ContentQueryMain.xsl cũng như ItemStyle.xsl, bạn cần phải kiểm tra các tập tin đó trở lại trước khi bạn nhìn thấy hiệu quả của các thay đổi.

Cho các mục đích thực hiện lưới điện, MOSS sử dụng hai tập tin XSL khác nhau để tạo ra kết quả chúng ta thấy từ một CQWP. Để tạo ra các bit trước của đầu ra, chúng tôi sửa đổi ItemStyle.xsl. MOSS thực sự sử dụng một XSL tập tin, ContentQueryMain.xsl để kết hợp với ItemStyle.xsl để tạo ra HTML của nó. Như tên gọi của nó, ContentQueryMain.xsl là "chính" XSL điều khiển lưu lượng tổng thể của bản dịch. Nó iterates thông qua tất cả các mục tìm thấy và vượt qua họ từng người một để mẫu trong ItemStyle.xsl. Chúng tôi sẽ sửa đổi ItemStyle.xsl để tạo ra mở <Bàn> thẻ trước khi phát ra các dòng đầu tiên của dữ liệu và đóng cửa <Bàn> các từ khóa sau đợt phát ra hàng cuối cùng. Để thực hiện việc này, ContentQueryMain.xsl được sửa đổi để vượt qua hai tham số cho chúng tôi "lưới điện" mẫu trong ItemStyle.xsl, "hàng cuối cùng" và "hàng hiện tại". ItemStyle.xsl sử dụng này để có điều kiện phát ra các thẻ cần thiết.

Sử dụng kỹ thuật của Heather Solomon, chúng tôi xác định vị trí ContentQueryMain.xsl. Sân bay này nằm trong cùng một vị trí như ItemStyle.xsl. Ảnh chụp màn hình này sẽ giúp:

hình ảnh

Chúng tôi cần phải thực hiện những thay đổi sau:

  • Sửa đổi một mẫu xsl, "CallItemTemplate" mà thực sự invokes mẫu lưới điện của chúng tôi tại ItemStyle.xsl. Chúng tôi sẽ gửi hai tham số cho các mẫu lưới điện như vậy mà nó sẽ có dữ liệu cần thiết để tạo ra có điều kiện mở và đóng cửa <Bàn> Download.
  • Sửa đổi một chút ContentQueryMain.xsl rằng các cuộc gọi "CallItemTemplate" để vượt qua nó "LastRow" tham số để LastRow rằng có thể được thông qua ngày cho chúng tôi mẫu lưới điện.

Xác định vị trí các mẫu đặt tên là "OuterTemplate.CallItemTemplate" xác định bằng chuỗi:

  <XSL:tiêu bản Tên="OuterTemplate.CallItemTemplate">

Thay thế mẫu toàn bộ như sau:

  <XSL:tiêu bản Tên="OuterTemplate.CallItemTemplate">
    <XSL:param Tên="CurPosition" />

    <!--
      Thêm "LastRow" tham số.
      Chúng tôi chỉ sử dụng nó khi vượt qua phong cách mục trong "Mạng lưới".
    -->
    <XSL:param Tên="LastRow" />

    <XSL:chọn>
      <XSL:Khi kiểm tra="@Style = 'NewsRollUpItem'">
        <XSL:áp dụng mẫu chọn="." chế độ="itemstyle">
          <XSL:với param Tên="EditMode" chọn="$cbq_iseditmode" />
        </XSL:áp dụng mẫu>
      </XSL:Khi>
      <XSL:Khi kiểm tra="@Style = 'NewsBigItem'">
        <XSL:áp dụng mẫu chọn="." chế độ="itemstyle">
          <XSL:với param Tên="CurPos" chọn="$CurPosition" />
        </XSL:áp dụng mẫu>
      </XSL:Khi>
      <XSL:Khi kiểm tra="@Style = 'NewsCategoryItem'">
        <XSL:áp dụng mẫu chọn="." chế độ="itemstyle">
          <XSL:với param Tên="CurPos" chọn="$CurPosition" />
        </XSL:áp dụng mẫu>
      </XSL:Khi>

      <!--
              Vượt qua vị trí hiện tại và lastrow với các mạng lưới itemstyle.xsl mẫu.
              ItemStyle.xsl sẽ sử dụng để phát ra mở và đóng cửa <Bàn> Download.
      -->
      <XSL:Khi kiểm tra="@Style = 'Lưới'">
        <XSL:áp dụng mẫu chọn="." chế độ="itemstyle">
          <XSL:với param Tên="CurPos" chọn="$CurPosition" />
          <XSL:với param Tên="Cuối cùng" chọn="$LastRow" />
        </XSL:áp dụng mẫu>
      </XSL:Khi>

      <XSL:Nếu không>
        <XSL:áp dụng mẫu chọn="." chế độ="itemstyle">
        </XSL:áp dụng mẫu>
      </XSL:Nếu không>
    </XSL:chọn>
  </XSL:tiêu bản>

Các ý kiến mô tả mục đích của những thay đổi.

Tất nhiên, "OuterTemplate.CallItemTemplate" chính nó được gọi là từ một mẫu. Xác định vị trí mẫu đó bằng cách tìm kiếm chuỗi văn bản này:

<XSL:tiêu bản Tên="OuterTemplate.Body">

Di chuyển qua các hướng dẫn trong OuterTemplate.Body và chèn các tham số LastRow như sau (Hiển thị như là một bình luận trong nghiêng):

<XSL:cuộc gọi, mẫu Tên="OuterTemplate.CallItemTemplate">
  <XSL:với param Tên="CurPosition" chọn="$CurPosition" />
  <!-- Chèn các tham số LastRow. -->
  <XSL:với param Tên="LastRow" chọn="$LastRow"/>
</XSL:cuộc gọi, mẫu>

Sau khi tất cả điều này, chúng tôi cuối cùng có những thứ được thiết lập đúng cách để ItemStyle.xsl chúng tôi có thể phát ra <Bàn> khoá đúng nơi.

ItemStyle.Xsl

LƯU Ý: Một lần nữa, kiểm tra trong ItemStyle.xsl sau khi thực hiện bất kỳ thay đổi để cho bạn thấy tác động của những thay đổi.

Chúng tôi có hai nhiệm vụ ở đây:

  • Thay thế toàn bộ lưới điện mẫu. Bạn có thể sao chép/dán từ dưới đây.
  • Thêm một số mumbo jumbo bên ngoài định nghĩa mẫu cho phép "formatcurrency" mẫu để làm việc. (Bạn có thể nói rằng tôi có một xử lý mỏng manh trên XSL).

Đầu tiên, gần đầu ItemStyle.xsl, Thêm dòng này:

  <!-- Một số mumbo jumbo cho phép chúng tôi để hiển thị Hoa Kỳ. thu. -->
  <XSL:định dạng số thập phân Tên="nhân viên phục vụ" chữ số="D" />

  <XSL:tiêu bản Tên="Mặc định" phù hợp với="*" chế độ="itemstyle">

Lưu ý rằng tôi đã thêm nó trực tiếp trước các <XSL:tiêu bản tên = "mặc định" …> định nghĩa.

Tiếp theo, trở lại của chúng tôi mẫu lưới điện. Thay thế mẫu lưới toàn bộ với mã dưới đây. Nó là hoàn toàn nhận xét, nhưng đừng ngần ngại gửi email cho tôi hoặc để lại ý kiến trên blog của tôi nếu bạn có thắc mắc.

  <XSL:tiêu bản Tên="Mạng lưới" phù hợp với="Hàng[@Style = 'Lưới']" chế độ="itemstyle">

    <!--
      ContentMain.xsl qua CurPos và cuối cùng.
      Chúng tôi sử dụng các điều kiện phát ra mở và đóng cửa <Bàn> Download.
    -->
    <XSL:param Tên="CurPos" />
    <XSL:param Tên="Cuối cùng" />

    <!-- Các yếu tố sau đây được chưa sửa đổi từ ItemStyle.xsl tiêu chuẩn -->
    <XSL:biến Tên="SafeImageUrl">
      <XSL:cuộc gọi, mẫu Tên="OuterTemplate.GetSafeStaticUrl">
        <XSL:với param Tên="UrlColumnName" chọn="'ImageUrl'"/>
      </XSL:cuộc gọi, mẫu>
    </XSL:biến>
    <XSL:biến Tên="SafeLinkUrl">
      <XSL:cuộc gọi, mẫu Tên="OuterTemplate.GetSafeLink">
        <XSL:với param Tên="UrlColumnName" chọn="'LinkUrl'"/>
      </XSL:cuộc gọi, mẫu>
    </XSL:biến>
    <XSL:biến Tên="DisplayTitle">
      <XSL:cuộc gọi, mẫu Tên="OuterTemplate.GetTitle">
        <XSL:với param Tên="Tiêu đề" chọn="@Title"/>
        <XSL:với param Tên="UrlColumnName" chọn="'LinkUrl'"/>
      </XSL:cuộc gọi, mẫu>
    </XSL:biến>
    <XSL:biến Tên="LinkTarget">
      <XSL:Nếu kiểm tra="@OpenInNewWindow = 'True'" >_blank</XSL:Nếu>
    </XSL:biến>

    <!--
      Ở đây chúng ta định nghĩa một biến, "tableStart".  Điều này chứa mã HTML mà chúng tôi sử dụng để xác định việc mở bảng cũng như các nhãn cột.  Lưu ý rằng nếu CurPos = 1, nó bao gồm HTML trong một thẻ CDATA.
      Nếu không, nó sẽ được sản phẩm nào.

      Giá trị của tableStart là emited mỗi khi ItemStyle được gọi là thông qua ContentQueryMain.xsl.
    -->
    <XSL:biến Tên="tableStart">
      <XSL:Nếu kiểm tra="$CurPos = 1">
        <![CDATA[
        <biên giới bảng = 1>
          <tr bgcolor = "màu xanh">
            <TD><màu sắc font = "trắng"><b>Tên dự án</b></phông chữ></TD>
            <TD align = "quyền"><màu sắc font = "trắng"><b>Ngày tháng đầy đủ</b></phông chữ></TD>
            <TD align = "quyền"><màu sắc font = "trắng"><b>Ngân sách</b></phông chữ></TD>
            <TD align = "quyền"><màu sắc font = "trắng"><b>Chi phí thực tế</b></phông chữ></TD>
            <TD><màu sắc font = "trắng"><b>Tổng thể trạng thái</b></phông chữ></TD>
          </tr>
        ]]>
      </XSL:Nếu>
    </XSL:biến>

    <!--
      Một biến, tableEnd đơn giản chỉ cần xác định đóng bàn từ khóa.

      Như với tableStart, nó luôn luôn là emited.  Đây là lý do tại sao giá trị của nó được phân công có điều kiện dựa trên cho dù chúng tôi đã được thông qua dòng cuối bởi ContentQueryMain.xsl.
    -->
    <XSL:biến Tên="tableEnd">
      <XSL:Nếu kiểm tra="$CurPos = $Last">
        <![CDATA[ </Bàn> ]]>
      </XSL:Nếu>
    </XSL:biến>

    <!--
      Luôn luôn phát ra các nội dung của tableStart.  Nếu đây không phải là dòng đầu tiên được thông qua cho chúng tôi bởi ContentQueryMain.xsl, sau đó chúng tôi biết giá trị của nó sẽ được để trống.

      Vô hiệu hóa đầu ra thoát bởi vì khi tableStart nó không trống, nó bao gồm HTML thực tế mà chúng tôi muốn được thực hiện bởi trình duyệt.  Nếu chúng tôi không nói cho XSL phân tích cú pháp để vô hiệu hóa đầu ra thoát, nó sẽ tạo ra các công cụ như"&LT;Bàn&gt;" thay vì của"<Bàn>".
    -->
    <XSL:giá trị của chọn="$tableStart" vô hiệu hoá-đầu ra-thoát=""/>


    <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:giá trị của chọn="@Project_x005F_x0020_Name"/>
      </TD>

      <TD sắp xếp="quyền">
        <XSL:giá trị của chọn="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD sắp xếp="quyền">
        <XSL:cuộc gọi, mẫu Tên="formatcurrency">
          <XSL:với param Tên="giá trị" 
chọn="@Project_x005F_x0020_Budget"></XSL:với param> </XSL:cuộc gọi, mẫu> </TD> <TD sắp xếp="quyền"> <XSL:cuộc gọi, mẫu Tên="formatcurrency"> <XSL:với param Tên="giá trị" chọn="@Project_x005F_x0020_Expenses">
</XSL:với param> </XSL:cuộc gọi, mẫu> </TD> <TD> <XSL:giá trị của chọn="@Project_x005F_x0020_Status"/> </TD> <!-- Tất cả những điều sau đây nhận xét ra để làm rõ sự vật. Tuy nhiên, mang nó trở lại và công cụ nó thành một <TD> để xem hiệu quả của nó. --> <!-- <DIV id = "linkitem" lớp = "mã"> <XSL:Nếu thử nghiệm = "chuỗi dài($SafeImageUrl) != 0"> <div class = "thời gian còn lại khu vực hình ảnh"> <một href = "{$SafeLinkUrl}" mục tiêu = "{$LinkTarget}"> <img lớp = "hình ảnh cố định-chiều rộng" src = "{$SafeImageUrl}"
Alt = "{@ImageUrlAltText}"/> </một> </div> </XSL:Nếu> <div class = "liên kết-mục"> <XSL:cuộc gọi, mẫu
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <một href = "{$SafeLinkUrl}"
mục tiêu = "{$LinkTarget}" tiêu đề = "{@LinkToolTip}"> <XSL:giá trị của chọn = "$DisplayTitle" /> </một> <div class = "mô tả"> <XSL:giá trị của select="@Description" /> </div> </div> </div>
--> </tr> <!-- Phát ra đóng bàn từ khóa. Nếu chúng tôi không phải là trên dòng cuối cùng, Điều này sẽ được để trống. --> <XSL:giá trị của chọn="$tableEnd" vô hiệu hoá-đầu ra-thoát=""/> </XSL:tiêu bản> <XSL:tiêu bản Tên="formatcurrency"> <XSL:param Tên="giá trị" chọn="0" /> <XSL:giá trị của chọn='định dạng số($giá trị, "$DDD,DDD,DDD.DD", "nhân viên")' /> </XSL:tiêu bản>

Màn hình nhập dữ liệu WSS/MOSS tiêu chuẩn không hỗ trợ tầng thả-thăng trầm (hoặc khác bên trong-từ giao tiếp)

CẬP NHẬT (04/2008): Tuyệt vời blog entry này cho thấy một tốt javascript dựa trên phương pháp tiếp cận cho vấn đề này: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

CẬP NHẬT II: (04/2008): Blog entry này trông đầy hứa hẹn là tốt: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Nhiều lần một tuần, Nếu không phải hàng ngày, diễn đàn người dùng mô tả một yêu cầu bình thường sẽ được đáp ứng thông qua tầng thả-thăng trầm. Ví dụ:, Tôi có hai thả xuống điều khiển:

  • Danh sách Hoa Kỳ. kỳ
  • Danh sách Hoa Kỳ. Các thành phố.

Như là chịu trách nhiệm giao diện người dùng nhà cung cấp, chúng tôi muốn nó hoạt động như thế này:

  • Paul chọn một Hoa Kỳ. nhà nước từ phần thả xuống.
  • Điều này gây ra các thành phố thả xuống để lọc chỉ có những thành phố thuộc bang đã chọn.
  • Paul chọn một thành phố từ danh sách lọc này.

Có là không hỗ trợ tính năng này out-of-the-box. Thực tế, có là không có hỗ trợ OOB cho bất kỳ loại trực tiếp nội-hình thức giao tiếp. Điều này bao gồm lập trình ẩn/cho phép/vô hiệu hóa lĩnh vực để đáp ứng với lĩnh vực thay đổi ở những nơi khác trên các hình thức.

Mục tiêu thực sự của bài viết này để mô tả các giải pháp và các tùy chọn là như tôi biết:

  1. Phát triển một loại tùy chỉnh cột. Như là một tùy chỉnh cột phát triển, bạn có toàn quyền kiểm soát trên thế giới"" của cột tùy chỉnh. Bạn có thể thực hiện một tầng thả xuống như vậy.
  2. Xem xét sử dụng quy trình làm việc. Trong một số trường hợp, bạn muốn tự động gán một giá trị cho lĩnh vực dựa trên giá trị của lĩnh vực khác. Trong trường hợp này, bạn thường sẽ cố gắng sử dụng một cột tính, nhưng một số lần, nó chỉ sẽ không nhận được công việc làm. Quy trình làm việc SharePoint Designer là một lựa chọn tương đối quản trị thân thiện để rơi xuống vào mã và visual studio. Nếu bạn đi con đường này, được nhận thức của vấn đề địa chỉ của bài viết này (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Xử lý sự kiện: Như quy trình làm việc, đây là một giải pháp sau khi thực tế. Xử lý sự kiện của bạn là một hội đồng .NET (C#, VB.NET) để mà SharePoint đi kiểm soát. Đối tượng bạn phát triển có quyền truy cập vào dữ liệu của danh sách (và các mô hình toàn bộ đối tượng) và có thể làm bất kỳ tính toán cần thiết.
  4. Sử dụng SharePoint Designer để tạo các hình thức tùy chỉnh mục nhập. Tôi không có kinh nghiệm trực tiếp với cách tiếp cận này, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. Cuộn mình ASP.NET dữ liệu nhập hàm (như là một trang web độc lập hoặc là một phần web) và sử dụng mà thay vào đó.

Nếu có ai biết lựa chọn khác và/hoặc tốt hơn, Xin vui lòng gửi bình luận và tôi sẽ cập nhật cơ thể của bài đăng này.

<kết thúc />

Technorati Tags:

Yes/No (hộp kiểm) lọc nội dung truy vấn Web phần

Để lọc cho một truy vấn cho có/không có hộp kiểm có tựa đề "PG Milestone", cấu hình CQWP như thế này:

hình ảnh

Đây là một một trong những câu hỏi rõ ràng-một lần-bạn-biết-nó nhưng hard-to-find-an-answer-to: Làm thế nào để lọc trên có/không có hộp kiểm sử dụng phần nội dung truy vấn web.

Người đầu tiên kết quả tìm kiếm Tôi tìm thấy bằng cách sử dụng cụm từ tìm kiếm "bộ lọc nội dung có/không truy vấn web phần." là bằng phẳng ra sai, Vì vậy tôi nghĩ rằng tôi sẽ đặt này lên đó và xem nếu nó có thể thay thế kết quả không chính xác trong kết quả tìm kiếm tiêu biểu.

Nó là khá dễ dàng: Đúng giá trị = "1" và sai giá trị bằng nhau "1" (đẹp retro, thực sự).

Trong ví dụ trên, Tôi tạo ra trang web cột loại Yes/No" (hộp kiểm)" được đặt tên "PG Milestone". Tôi thêm nó vào một thư viện tài liệu, tải lên một vài tài liệu, Đặt giá trị cho một cặp vợ chồng và thử nghiệm nó.

<kết thúc />