כוידעשלעך אַרטשיוועס: דעצעמבער 2007

מייַן זון כאַקט גאַמעספּאָט

אַזוי, דעם מאָרגן, מיין זון איז באשלאסן צו זען אַן עלטער-דרייַצן ריסטריקטיד האַלאָ 3 ווידעא בייַ גאַמעספּאָט. I’m outside shoveling snow, so I’m not there to help or hinder. Necessity is the mother of invention and all that … he has a eureka! moment. He realizes that even though Gamespot wants him to enter his פאַקטיש געבורט טאָג, ער קענען פאקטיש אַרייַן קיין birth date he wants. Once he realized that, ער געמאכט זיך אַלט גענוג צו זען דעם ווידעא.

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

זונטיק מאָדנע: “עס ס פּרינטינג גאַרבידזש”

אין מיין ערשטער אַרבעט אויס פון קאָלעגע אין 1991, איך איז געווען מאַזלדיק צו צו אַרבעטן פֿאַר אַ מאַנופאַקטורינג פירמע מיט 13 לאָוקיישאַנז, not including its corporate HQ in New Jersey. I joined just when the company was rolling out a new ERP system. We were a small IT department of about ten people altogether, two of whom Did Not Travel. Part of the project involved replacing IBM System 36 boxes with HP hardware and HPUX. Everyone used green tubes to access the system.

די פּרויעקט ראָללס צוזאמען און איך בין געשיקט אַראָפּ צו באַלטימאָרע מיט אַ נייַ קאָ-אַרבעטער, דזשעף. Our job was to power up the Unix box, מאַכן זיכער די אָ / א איז פליסנדיק, ינסטאַלירן די ערפּ סיסטעם, קאַנפיגיער די ערפּ, train people on the ERP and do custom work for folks on the spot. (דאס איז געווען אַ חלום אַרבעט, ספּעציעל קומען גלייַך אויס פון קאָלעגע). Before we could really get off the ground, מיר דארף צו אַנפּאַק אַלע די גרין טובז, put them on desks and wire them. And the best part was that we had to put the RJ11 connectors on ourselves.

פֿאַר עטלעכע סיבה וואָס איך קיינמאָל פארשטאנען און פאקטיש קיינמאָל געדאַנק צו פרעגן וועגן אין די צייַט, מיר האט געהאט עטלעכע קאָנטראַקטינג פירמע קומען צוזאמען און לויפן קאַבלע איבער די פאַבריק, but we didn’t have them put on the connectors. אַזוי, there was a "patch box" with dozens of of unlabeled cables in the "computer room" און די סנאַקעד אַרום דעם בנין צו פארשידענע ערטער אין די בנין.

מיר געארבעט אונדזער וועג דורך אים איבער דעם גאַנג פון אַ אָפּרוטעג, טעסטינג יעדער דראָט, פּאַטינג אויף אַ קאַנעקטער (מאכן זיכער עס איז געווען גלייַך ווס. קראָסט), ינשורינג די ביסל סעטטינגס אויף די גרין טובז און פּרינטערס זענען ריכטיק, labeling wires, making sure that "getty" was running correctly for each port and probably a thousand other things that I’ve suppressed since then. It all came together quite nicely.

אָבער, there was one important cable that we couldn’t figure out. The plant in Baltimore had a relationship with a warehousing location in New Jersey. Some orders placed in Baltimore shipped out of that location. There were two wires that we had to connect to the HPUX box: a green tube and a printer. The green tube was easy, אָבער די דרוקער פארקערט אין אַ דרייַ-וואָך נייטמער.

אויב איר טאָן ניט וויסן עס, אָדער האָבן סאַפּרעסט עס, דילינג מיט גרין טובז און פּרינטערס דעם וועג, there are various options that you deal with by setting various pins. 8-ביסל, 7-ביסל, פּאַריטעט (אַפֿילו / מאָדנע / קיינער), probably others. If you get one of those settings wrong, דער רער אָדער דרוקער נאָך ווייזט שטאָפּן, אָבער עס וועט זייַן גאַנץ גיבעריש, or it will be gibberish with a lot of recognizable stuff in between. אַוואַדע, these pins are hard to see and have to be set by using a small flat-edge screw driver. And they are never standard.

מיר שטעלן זיך דער ערשטער פון פילע שנעל רופט מיט די נדזש באָכער (אַ גריזאַלד קאָמפּיוטער האַטער וואס מיסטאָמע קללות אונדז צו דעם טאָג). We got the green tube working pretty quickly, but we couldn’t get the printer to work. It kept "printing garbage". We would create a new RJ11 connector, switching between crossed and straight. We would delete the port and re-created in Unix. We went through the arduous task of having him explain to us the pin configuration on the printer, קיינמאָל טאַקע זיכער אויב ער איז געווען טאן עס ריכטיק.

עס ס וועגן צייַט צו גיין לעבן, אַלץ אין באַלטימאָרע איז כאַמינג, אָבער מיר קענען נישט באַקומען די געשאלטן דרוקער אַרויף אין נדזש צו אַרבעטן! We’ve exhausted all possibilities except for driving back up to NJ to work on the printer in person. To avoid all that driving, we finally ask him to fax us what he’s getting when it’s "garbage", כאָופּינג אַז אפֿשר דאָרט וועט זייַן עטלעכע קלו אין אַז מיסט וואָס וועט זאָגן אונדז וואָס מיר ניטאָ טאן אומרעכט.

ווען מיר גאַט דער פאַקס, we immediately knew what was wrong. זען, our method of testing whether we had configured a printer correctly was to issue an "lp" באַפֿעלן ווי דעם:

לפּ / עטק / פּאַססווד

בייסיקלי, we printed out the unix password file. It’s always present and out of the box, always just one page. You standard Unix password file looks something like this:

סמיט:*:100:100:8א 74(אָפיס):/היים / סמיט:/וסר / בין / ש
:*:200:0::/היים / גאַסט:/usr/bin/sh  

We had been printing out the password file over and over again for several weeks and it was printing correctly. אָבער, צו די סוף באַניצער, it was "printing garbage".

</עק>

נאָך אן אנדער נעטוואָרק קרעדענטיאַלס מולטי-אַרויסרופן ישו און סאַלושאַן

My client recently installed a magic device from Juniper that apparently replaced their old Cisco network load balancer (נלב). At about the same time, we installed a hotfix to address a workflow problem.

א טאָג אָדער צוויי שפּעטער, מיר באמערקט אַ פּראָבלעם ווען מיר געליינט די שערד דינסט שפּייַזער (סספּ). We could get to it, but we would be challenged for a user ID and password many times on each page. This didn’t happen with the main portal app, nor central administration. Naturally, we didn’t know which of the two (Juniper or hotfix) would be the issue, though I strongly suspected the hotfix, figuring we had not installed it quite right.

It turned out that Juniper had some kind of compression setting. איינער פון די robed figures over in the network group turned that setting off. That solved our problem.

This is not the first time that compression has been the root cause of a SharePoint problem for me. IIS compression adversely affected a 3rd party tool from the good people at The Dot Net Factory for IE 6 browsers (IE 7 browsers worked without difficulty).

אַזוי, add "compression" to the hazards list.

</עק>

Credit to: http://www.elfwood.com/art/s/h/sherry/death_colour.jpg.html

טראכטן וועגן טשאַנגינג בלאָגגינג פּלאַטפאָרמע

I started off my "blogging career" using Microsoft’s platform and it’s been good to me. It’s easy to post, there are good options and widgets for managing your "space", לייַטיש וועב סטאָרידזש און אַזוי אַרויס.

אָבער, I really just fell into the MS solution with almost no planning. That alone calls for me to evaluate where I am and where I’m going, in terms of a blogging platform. There are also two important limitations that bother me right now vis-à-vis Windows Live Spaces.

ערשטער, I can’t get very good statistics. There are stats but the detail is often truncated and not presented in a way that allows for any kind of analysis. There no sorting or export capability. I get many blog ideas based on the kind of information people find (אָדער ספּעציעל פאַרלאָזן צו געפינען) when they search my blog. It’s very hard to use lives spaces for that.

צווייט, there does not seem to be any mechanism to "monetize" a windows live space blog. אין פאַקט, אין סדר צו באַקומען באַפרייַען פון מס אַדס (פון וואָס איך אַרויספירן קיין נוץ), I need to actually pay Microsoft. (אין מינדסטער, אַז ס ווי איך פֿאַרשטיין עס; איך האב שוין געקענט צו באַקומען דעפיניטיווע ענטפֿערס צו דעם און פראגעס ווי עס).

איצט אַז איך ווע גאַט אַ געגרינדעט מוסטער און שטעלן פון בלאָגגינג געוווינהייטן, I want to evaluate other options. I’ve done some research and there are a lot of choices, אָבער איך בין טשיקאַווע ווי צו וואָס אנדערע מענטשן, דער הויפּט אנדערע אין די שאַרעפּאָינט קהל (ווי בלאָגגערס אָדער לייענער), like to use.

אויב דאָס אונטער אינטערעסן איר און איר האָבן אַ מיינונג אָדער זענען גרייט צו טיילן דיין דערפאַרונג, ביטע לאָזן אַ באַמערקונג אָדער Email מיר גלייַך.

דאַנק!

<סוף />

טעטשנאָראַטי טאַגס:

שאַרעפּאָינט דיזיינער בליצפּאָסט סענדס ???? אין אַ בליצפּאָסט

פורום ניצערס טייל מאָל פרעגן: פארוואס טוט שאַרעפּאָינט דיזיינער שטעלן ???? אין מיין Email אַנשטאָט פון אַ פעלד ווערט?

איין סיבה דעם כאַפּאַנז איז ווייַל די בייַטעוודיק צו וואָס איר אָפּשיקן איז נאַל.

This can happen because you are trying to reference a field from the "current item" אָבער דער באַניצער קיינמאָל אריין אַ ווערט אין אַז פאָרעם פעלד.

<סוף />

טעטשנאָראַטי טאַגס:

פאַרגלייַכן / טעסט פֿאַר בלאַנק דאַטעס אין שאַרעפּאָינט דיזיינער וואָרקפלאָוו

סצענאַר: אין אַ שאַרעפּאָינט דיזיינער וואָרקפלאָוו, you need to determine if a date field is blank.

פּראָבלעם: SPD does not provide a direct method for comparing dates to anything other than a date. You cannot create a condition like this: "If [טאָג פיעלד] equals blank".

באַשייד: Convert the date to a string. Use string comparison to determine if the date is blank.

פאַרשטעלן שאַץ:

The following screen shots show how to do this. אין דעם סצענאַר, אַ פעלד אויף אַ נומער, "Environmental Permits:First Permit Reminder Date", איז דערלאנגט און די וואָרקפלאָוו פירעס אין ענטפער.

בילד

בילד

הערות:

ווען איך געפרוווט דעם, I was pleasantly surprised to learn that it works. I was worried that SharePoint Designer might disallow the string assignment (בייַטעוודיק:סטרינגרעמינדערדאַטעדאַטע) אָבער עס האט לאָזן עס.

איך איז אויך זארגן אַז אַלאַוינג עס, די ווערט זאל זייַן נאַל און יעדער קלאַפּ אַרויף די ווף בייַ רונטימע אָדער אפֿשר כאַפּן די גלאבאלע טעמפּעראַטור 1/2 אַ גראַד, אָבער יענע קאַנסערנז זענען אַנפאַונדיד.

</עק>

טעטשנאָראַטי טאַגס:

באַר איז נאָך שיין הויך צו פאַרברייטערן מאָך

הייַנט, I was working with a client and describing how to modify the content query web part and display additional bits of information from a content type.

"First, איר קאַנפיגיער די קקוופּ צו פאַרבינדן צו זייַן דאַטן קוואלן, דעמאָלט איר אַרויספירן אים צו דיין ווערקסטיישאַן, מאָדיפיצירן <קאָממאָנוויעוופיעלדס>, צופֿעליקער, remove the original and now it’s ‘primed’ to display those other columns. ווייַטער, open up SharePoint designer, navigate to the site collection root and locate ItemStyle.xsl. Copy one of the templates as a useful starting point. Go back and modify the CQWP to make use of this new template. לעסאָף, modify the template to render your new fields! (Don’t forget to check it back in so that other users can see the results)."

It’s all quite clear to me (and most of us SharePoint developer types) what’s going on and how it’s quite nice, טאַקע, that the data retrieval aspects of the CQWP are so well-separate from the data presentation aspects. אָבער, it’s not so easy to explain, is it?

<סוף />

טעטשנאָראַטי טאַגס: ,

ווייַז אינהאַלט קווערי וועב חלק רעזולטאַטן אין אַ גריד / טיש

איבערבליק און אָביעקטיוו

אויס פון די קעסטל, מאָך’ אינהאַלט קווערי וועב חלק (קקוופּ) דיספּלייז זייַן רעזולטאַטן אין אַ רשימה פֿאָרמאַט, similar to search results. It is also possible to display the results in a grid format (י.ע. HTML טיש פֿאָרמאַט). Grid formats are better in some circumstances. I describe how to achieve that effect in this article.

ביזנעס סינעריאָו

I have worked with a client on an enterprise-wide MOSS rollout. We have designed their taxonomy such that projects are first class citizens in the hierarchy and have their own top level site. Project managers maintain a singleton list of project summary information, אַזאַ ווי טיטל, בודזשעט, געריכט קאַמפּלישאַן דאַטע, remaining budget and other summary type fields. By "singleton" I mean a custom SharePoint list guaranteed to contain only one item. Simplistically, עס קוקט ווי דעם:

בילד

די טעכניש צוגאַנג איז פיל די זעלבע ווי דיסקרייבד דאָ (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). The CQWP uses an XSL transform to emit HTML for the browser to render.

I always envision the result before diving into the XSL because XSL is a nightmare. Here’s my desired result:

בילד

HTML ווי דעם דזשענערייץ אַז רעזולטאַט:

<HTML>
 <גוף>
 <צענטער>
 <טיש גרענעץ= 1>

<!-- לאַבעלס ->
 <טר בגקאָלאָר= בלוי>
 <טד><קאַסע קאָליר= ווייַס><ב>פּראָיעקט נאָמען</ב></קאַסע></טד>
 <טד ייַנרייען= רעכט><קאַסע קאָליר= ווייַס><ב>גאַנץ טאָג</ב></קאַסע></טד>
 <טד ייַנרייען= רעכט><קאַסע קאָליר= ווייַס><ב>בודזשעט</ב></קאַסע></טד>
 <טד ייַנרייען= רעכט><קאַסע קאָליר= ווייַס><ב>פאַקטיש עקספּענסע</ב></קאַסע></טד>
 <טד><קאַסע קאָליר= ווייַס><ב>קוילעלדיק סטאַטוס</ב></קאַסע></טד>
 </טר>

<טר>
 <טד>בעניין-דראָט קאָמפּיוטער צימער.</טד>
 <טד ייַנרייען= רעכט>02/01/08</טד>
 <טד ייַנרייען= רעכט>22,500.00</טד>
 <טד ייַנרייען= רעכט>19,000.00</טד>
 <טד>אין פּראָגרעס</טד>
 </טר>

<טר>
 <טד>טנייַ סערווערס פֿאַר סקל ופּגראַדע</טד>
 <טד ייַנרייען= רעכט>04/01/08</טד>
 <טד ייַנרייען= רעכט>7,500.00</טד>
 <טד ייַנרייען= רעכט>0.00</טד>
 <טד>פּלאַננעד</טד>
 </טר>

</טיש>
 </צענטער>
 </גוף>
</HTML>

צוגאַנג

גיי די טריט צו מאַכן די גריד:

  1. ידענטיפיצירן די קאַמפּאָונאַנץ פון די גריד (ראָוז / שפאלטן).
  2. דעפינירן און שאַפֿן נייטיק פּלאַץ שפאלטן.
  3. שאַפֿן סאַב זייטלעך פֿאַר די פראיעקטן און סינגגאַלטאַן רשימות.
  4. לייג די קקוופּ צו אַ וועב בלאַט און קאַנפיגיער עס צו זוכן פֿאַר דיין רשימות.
  5. מאָדיפיצירן די קקוופּ ס קסמל צו קלייַבן זיך די נאָך שפאלטן.
  6. מאָדיפיצירן די קססל צו דזשענערייט אַ טיש.

I’m going to concentrate on number six. Numbers one through four are straight-forward and something that any CQWP user has already done. Number five has been well-documented by others including this exhaustive screen-shot laden article from MSDN דאָ (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) און כעדער שלמה ס בלאָג דאָ (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

ניסלעך און באָלץ

נעמען און ינסטרומענט טריט איינער דורך פינף ווי פּער די מסדן דאַקיומענטיישאַן און כעדער שלמה ס אַרטיקל.

אין דעם פונט, איר ווע צוגעלייגט דיין קקוופּ צו די בלאַט און איר האָבן דיין <קאָממאָנוויעוופיעלדס> קאַנפיגיערד ווי נייטיק.

ווייַטערדיק די געוויינטלעך טריט, איך באַקומען די ינטערמידייט רעזולטאַטן:

1. שאַפֿן אַ צופרידן טיפּ, a templatized custom list for that content type and two sites. Here is the content type:

בילד

דאָ איז די פּלאַץ סטרוקטור:

בילד

2. לייג די קקוופּ נאָך שאפן מיין פּרויעקט סובסיטעס און סינגגאַלטאַן פּרויעקט קיצער רשימות:

בילד

3. לייג אַלע די נאָך אינפֿאָרמאַציע איך וועלן דורך דעם <קאָממאָנוויעוופיעלדס>:

        <פאַרמאָג נאָמען="קאָממאָנוויעוופיעלדס" טיפּ="שטריקל">פּראָדזשעקט_קס0020_נאַמע;פּראָדזשעקט_קס0020_עקספּענסעס;פּראָדזשעקט_קס0020_סטאַטוס;פּראָדזשעקט_קס0020_סטאַרט_קס0020_דאַטע;פּראָדזשעקט_קס0020_ענד_קס0020_דאַטע;פּראָדזשעקט_קס0020_בודגעט</פאַרמאָג>

באַמערקונג אַז איך געהאט צו האַלטן אַלע די פאַרמאָג פעלדער אויף איין שורה אָדער עס וואָלט נישט אַרבעטן (קקוופּ וואָלט זאָגן מיר אַז די אָנפֿרעג אומגעקערט קיין זאכן).

4. אין דעם פונט, we’re ready to move beyond the MSDN article and flip on over to Heather Solomon’s article. Follow her steps starting near step #5 צו שאַפֿן אַ קאַסטאַמייזד / unghosted version of ItemStyle.xsl. I follow Heather’s advice, אַרויף דורך שריט 11 און באַקומען די ינטערמידייט רעזולטאַטן:

4.1: נאָמען מיין קססל מוסטער ווי גייט:

<קססל:template name="Grid" match="Row[@Style=’Grid’]" mode="itemstyle">

איך אויך אַ ביסל מאָדיפיצירן איר סאַגדזשעסטיד <קססל:פֿאַר, יעדער …> דורך אַדינג אַ <בר /> פאַרבינדן צו צושטעלן אַ קלינער ליסטינג:

    <קססל:פֿאַר, יעדער קלייַבן="@ *">
      פּ:<קססל:ווערט-פון קלייַבן="נאָמען()" /><בר/>
    </קססל:פֿאַר, יעדער>

4.2: איך מאָדיפיצירן די וועב טייל, go to appearance and select my "Grid" סטיל:

בילד

צולייגן די ענדערונג און דאָ איז דער רעזולטאַט:

בילד

מיר קענען זען פון די אויבן אַז די פעלדער מיר ווילן (פּראָיעקט נאָמען, קאָסט, מאַצעוו, אאז"ו ו) are available for us to use when we emit the HTML. Not only that, but we see the names by which we must reference those columns in the XSL. לעמאָשל, we reference Project Status as "Project_x005F_x0020_Name".

אין דעם פונט, מיר אַרויסגיין פון כעדער ס בלאָג און פון די פּלייצעס פון די דזשייאַנץ, איך לייג מיין אייגן ביסל ביסל.

קאָנטענטקווערימאַינ.קססל

נאָטיץ: ווען געמאכט ענדערונגען צו ביידע קאָנטענטקווערימאַינ.קססל ווי געזונט ווי יטעמסטילע.קססל, איר דאַרפֿן צו קאָנטראָלירן די טעקעס צוריק אין איידער איר זען די ווירקונג פון דיין ענדערונגען.

פֿאַר גריד-מאכן צוועקן, MOSS uses two different XSL files to produce the results we see from a CQWP. To generate the previous bit of output, we modified ItemStyle.xsl. MOSS actually uses another XSL file, ContentQueryMain.xsl to in conjunction with ItemStyle.xsl to generate its HTML. As its name implies, ContentQueryMain.xsl is the "main" XSL that controls the overall flow of translation. It iterates through all the found items and passes them one by one to templates in ItemStyle.xsl. We’ll modify ItemStyle.xsl to generate the open <טיש> פאַרבינדן איידער ימיטינג דער ערשטער רודערן פון דאַטן און די קלאָוזינג <טיש> tag after emitting the last row. To accomplish this, ContentQueryMain.xsl is modified to pass two parameters to our "grid" מוסטער אין יטעמסטילע.קססל, "last row" and "current row". ItemStyle.xsl uses these to conditionally emit the necessary tags.

ניצן כעדער שלמה ס טעכניק, we locate ContentQueryMain.xsl. It is located in the same place as ItemStyle.xsl. This screen shot should help:

בילד

מיר דאַרפֿן צו מאַכן די ווייַטערדיק ענדערונגען:

  • מאָדיפיצירן אַ קססל מוסטער, "CallItemTemplate" that actually invokes our Grid template in ItemStyle.xsl. We will pass two parameters to the Grid template so that it will have the data it needs to conditionally generate opening and closing <טיש> טאַגס.
  • Modify another bit of ContentQueryMain.xsl that calls the "CallItemTemplate" to pass it a "LastRow" פּאַראַמעטער אַזוי אַז לאַסטראָוו זאל זייַן דורכגעגאנגען אויף צו אונדזער גריד מוסטער.

Locate the template named "OuterTemplate.CallItemTemplate" יידענאַפייד דורך די שטריקל:

  <קססל:מוסטער נאָמען="אָוטערטעמפּלאַטע.קאַלליטעמטעמפּלאַטע">

פאַרבייַטן די גאנצע מוסטער ווי גייט:

  <קססל:מוסטער נאָמען="אָוטערטעמפּלאַטע.קאַלליטעמטעמפּלאַטע">
    <קססל:פּאַראַם נאָמען="קורפּאָסיטיאָן" />

    <!--
      Add the "LastRow" פּאַראַמעטער.
      We only use it when the item style pass in is "Grid".
    -->
    <קססל:פּאַראַם נאָמען="לאַסטראָוו" />

    <קססל:קלייַבן>
      <קססל:ווען פּרובירן="@ סטייל = 'נעווסראָללופּיטעם'">
        <קססל:צולייגן-טעמפּלאַטעס קלייַבן="." מאָדע="יטעמסטילע">
          <קססל:מיט-פּאַראַם נאָמען="עדיטמאָדע" קלייַבן="$קבק_יסעדיטמאָדע" />
        </קססל:צולייגן-טעמפּלאַטעס>
      </קססל:ווען>
      <קססל:ווען פּרובירן="@ סטייל = 'נעווסביגיטעם'">
        <קססל:צולייגן-טעמפּלאַטעס קלייַבן="." מאָדע="יטעמסטילע">
          <קססל:מיט-פּאַראַם נאָמען="קורפּאָס" קלייַבן="$קורפּאָסיטיאָן" />
        </קססל:צולייגן-טעמפּלאַטעס>
      </קססל:ווען>
      <קססל:ווען פּרובירן="@ סטייל = 'נעווסקאַטעגאָרייטעם'">
        <קססל:צולייגן-טעמפּלאַטעס קלייַבן="." מאָדע="יטעמסטילע">
          <קססל:מיט-פּאַראַם נאָמען="קורפּאָס" קלייַבן="$קורפּאָסיטיאָן" />
        </קססל:צולייגן-טעמפּלאַטעס>
      </קססל:ווען>

      <!--
              פאָרן איצטיקן שטעלע און לאַסטראָוו צו די גריד יטעמסטילע.קססל מוסטער.
              יטעמסטילע.קססל וועט נוצן אַז צו אַרויסלאָזן די עפענען און קלאָוזינג <טיש> טאַגס.
      -->
      <קססל:ווען פּרובירן="@ סטייל = 'גריד'">
        <קססל:צולייגן-טעמפּלאַטעס קלייַבן="." מאָדע="יטעמסטילע">
          <קססל:מיט-פּאַראַם נאָמען="קורפּאָס" קלייַבן="$קורפּאָסיטיאָן" />
          <קססל:מיט-פּאַראַם נאָמען="לעצט" קלייַבן="$לאַסטראָוו" />
        </קססל:צולייגן-טעמפּלאַטעס>
      </קססל:ווען>

      <קססל:אַנדערש>
        <קססל:צולייגן-טעמפּלאַטעס קלייַבן="." מאָדע="יטעמסטילע">
        </קססל:צולייגן-טעמפּלאַטעס>
      </קססל:אַנדערש>
    </קססל:קלייַבן>
  </קססל:מוסטער>

די באַמערקונגען באַשרייַבן די ציל פון די ענדערונגען.

אַוואַדע, the "OuterTemplate.CallItemTemplate" is itself called from another template. Locate that template by searching for this text string:

<קססל:מוסטער נאָמען="אָוטערטעמפּלאַטע.באָדי">

מעגילע דורך די ינסטראַקשאַנז אין אָוטערטעמפּלאַטע.באָדי און אַרייַנלייגן די לאַסטראָוו פּאַראַמעטער ווי גייט (געוויזן ווי אַ באַמערקונג אין ייטאַליקס):

<קססל:רופן-מוסטער נאָמען="אָוטערטעמפּלאַטע.קאַלליטעמטעמפּלאַטע">
  <קססל:מיט-פּאַראַם נאָמען="קורפּאָסיטיאָן" קלייַבן="$קורפּאָסיטיאָן" />
  <!-- אַרייַנלייגן די לאַסטראָוו פּאַראַמעטער. -->
  <קססל:מיט-פּאַראַם נאָמען="לאַסטראָוו" קלייַבן="$לאַסטראָוו"/>
</קססל:רופן-מוסטער>

נאָך אַלע פון ​​דעם, מיר לעסאָף האָבן דאס שטעלן אַרויף רעכט אַזוי אַז אונדזער יטעמסטילע.קססל קענען אַרויסלאָזן <טיש> Tags בייַ די רעכט אָרט.

יטעמסטילע.קססל

נאָטיץ: ווידער, טשעק אין יטעמסטילע.קססל נאָך מאכן קיין ענדערונגען אַזוי אַז איר זען די ווירקונג פון די ענדערונגען.

מיר האָבן צוויי טאַסקס דאָ:

  • Replace the entire Grid template. You can copy/paste from below.
  • Add some mumbo jumbo outside the template definition that enables "formatcurrency" template to work. (איר קענען זאָגן אַז איך האָבן אַ טעניאַוואַס שעפּן אויף קססל).

ערשטער, לעבן די שפּיץ פון יטעמסטילע.קססל, לייגן דעם שורה:

  <!-- עטלעכע מאַמבאָו דזשאַמבאָו אַז ינייבאַלז אונדז צו אַרויסווייַזן יוז. קראַנטקייַט. -->
  <קססל:דעצימאַל-פֿאָרמאַט נאָמען="שטעקן" ציפֿער="ד" />

  <קססל:מוסטער נאָמען="ניט ויסצאָלן" גלייַכן="*" מאָדע="יטעמסטילע">

באַמערקונג אַז איך צוגעגעבן עס גלייַך איידער דעם <קססל:template name="Default" …> דעפיניציע.

ווייַטער, go back to our Grid template. Replace the entire Grid template with the code below. It is thoroughly commented, אָבער טאָן נישט קווענקלען צו Email מיר אָדער לאָזן באַמערקונגען אויף מיין בלאָג אויב איר האָט שאלות.

  <קססל:מוסטער נאָמען="גריד" גלייַכן="רודערן[@ סטייל = 'גריד']" מאָדע="יטעמסטילע">

    <!--
      קאָנטענטמאַינ.קססל פּאַסיז קורפּאָס און לעצטע.
      מיר נוצן די צו קאַנדישנאַלי אַרויסלאָזן די עפענען און קלאָוזינג <טיש> טאַגס.
    -->
    <קססל:פּאַראַם נאָמען="קורפּאָס" />
    <קססל:פּאַראַם נאָמען="לעצט" />

    <!-- די פאלגענדע וועריאַבאַלז זענען ונמאָדיפיעד פון דער נאָרמאַל יטעמסטילע.קססל -->
    <קססל:בייַטעוודיק נאָמען="סאַפעימאַגעורל">
      <קססל:רופן-מוסטער נאָמען="אָוטערטעמפּלאַטע.געצאַפעסטאַטיקורל">
        <קססל:מיט-פּאַראַם נאָמען="ורלקאָלומננאַמע" קלייַבן="'ימאַגעורל'"/>
      </קססל:רופן-מוסטער>
    </קססל:בייַטעוודיק>
    <קססל:בייַטעוודיק נאָמען="סאַפעלינקורל">
      <קססל:רופן-מוסטער נאָמען="אָוטערטעמפּלאַטע.געצאַפעלינק">
        <קססל:מיט-פּאַראַם נאָמען="ורלקאָלומננאַמע" קלייַבן="'לינקורל'"/>
      </קססל:רופן-מוסטער>
    </קססל:בייַטעוודיק>
    <קססל:בייַטעוודיק נאָמען="דיספּלייַטיטלע">
      <קססל:רופן-מוסטער נאָמען="אָוטערטעמפּלאַטע.געטטיטלע">
        <קססל:מיט-פּאַראַם נאָמען="טיטל" קלייַבן="@ ענין"/>
        <קססל:מיט-פּאַראַם נאָמען="ורלקאָלומננאַמע" קלייַבן="'לינקורל'"/>
      </קססל:רופן-מוסטער>
    </קססל:בייַטעוודיק>
    <קססל:בייַטעוודיק נאָמען="לינקטאַרגעט">
      <קססל:צי פּרובירן="@ אָפּעניננעווווינדאָוו = 'אמת'" >_בלאַנק</קססל:צי>
    </קססל:בייַטעוודיק>

    <!--
      דאָ מיר דעפינירן אַ בייַטעוודיק, "tableStart".  דעם כּולל די HTML
      .  באַמערקונג אַז אויב קורפּאָס = 1, עס כולל די HTML אין אַ קדאַטאַ פאַרבינדן.
      אַנדערש, עס וועט זייַן ליידיק.

      די ווערט פון טאַבלעסטאַרט איז עמיטעד יעדער צייַט יטעמסטילע איז גערופן דורך
      .
    -->
    <קססל:בייַטעוודיק נאָמען="טאַבלעסטאַרט">
      <קססל:צי פּרובירן="$קורפּאָס = 1">
        <![קדאַטאַ[
        <טיש גרענעץ = 1>
          <tr bgcolor="blue">
            <טד><font color="white"><ב>פּראָיעקט נאָמען</ב></קאַסע></טד>
            <td align="right"><font color="white"><ב>גאַנץ טאָג</ב></קאַסע></טד>
            <td align="right"><font color="white"><ב>בודזשעט</ב></קאַסע></טד>
            <td align="right"><font color="white"><ב>פאַקטיש עקספּענסע</ב></קאַסע></טד>
            <טד><font color="white"><ב>קוילעלדיק סטאַטוס</ב></קאַסע></טד>
          </טר>
        ]]>
      </קססל:צי>
    </קססל:בייַטעוודיק>

    <!--
      אן אנדער בייַטעוודיק, טאַבלעענד פשוט דיפיינז די קלאָוזינג טיש פאַרבינדן.

      ווי מיט טאַבלעסטאַרט, עס ס שטענדיק עמיטעד.  דאס איז וואָס זייַן ווערט איז
      .
    -->
    <קססל:בייַטעוודיק נאָמען="טאַבלעענד">
      <קססל:צי פּרובירן="$קורפּאָס = $ לעצטע">
        <![קדאַטאַ[ </טיש> ]]>
      </קססל:צי>
    </קססל:בייַטעוודיק>

    <!--
      שטענדיק אַרויסלאָזן די אינהאַלט פון טאַבלעסטאַרט.  אויב דאָס איז ניט דער ערשטער
      , דעמאָלט מיר וויסן זייַן ווערט
      .

      דיסייבאַל רעזולטאַט יסקייפּינג ווייַל ווען טאַבלעסטאַרט עס ניט ליידיק, עס
      .  צי
      , it will generate
      stuff like "&לט;טיש&גט;" instead of "<טיש>".
    -->
    <קססל:ווערט-פון קלייַבן="$טאַבלעסטאַרט" דיסייבאַל-רעזולטאַט-יסקייפּינג="יאָ"/>


    <טר>
      <!--
      פּ:פּראָדזשעקט_קס005פ_קס0020_נאַמע
      :פּראָדזשעקט_קס005פ_קס0020_ענד_קס005פ_קס0020_דאַטע
      :פּראָדזשעקט_קס005פ_קס0020_בודגעט
      :פּראָדזשעקט_קס005פ_קס0020_עקספּענסעס
      :פּראָדזשעקט_קס005פ_קס0020_סטאַטוס
      -->
      <טד>
        <קססל:ווערט-פון קלייַבן="@ פּראָדזשעקט_קס005פ_קס0020_נאַמע"/>
      </טד>

      <טד ייַנרייען="רעכט">
        <קססל:ווערט-פון קלייַבן="@ פּראָדזשעקט_קס005פ_קס0020_ענד_קס005פ_קס0020_דאַטע"/>
      </טד>

      <טד ייַנרייען="רעכט">
        <קססל:רופן-מוסטער נאָמען="פאָרמאַטקוררענסי">
          <קססל:מיט-פּאַראַם נאָמען="ווערט" 
קלייַבן="@ פּראָדזשעקט_קס005פ_קס0020_בודגעט"></קססל:מיט-פּאַראַם> </קססל:רופן-מוסטער> </טד> <טד ייַנרייען="רעכט"> <קססל:רופן-מוסטער נאָמען="פאָרמאַטקוררענסי"> <קססל:מיט-פּאַראַם נאָמען="ווערט" קלייַבן="@ פּראָדזשעקט_קס005פ_קס0020_עקספּענסעס">
</קססל:מיט-פּאַראַם> </קססל:רופן-מוסטער> </טד> <טד> <קססל:ווערט-פון קלייַבן="@ פּראָדזשעקט_קס005פ_קס0020_סטאַטוס"/> </טד> <!-- אַלע פון ​​די פאלגענדע איז קאַמענטאַד אויס צו דערקלערן דאס. אָבער, ברענגען עס צוריק און שטאָפּן עס אין אַ <טד> צו זען זייַן         . --> <!-- <div id="linkitem" class="item"> <קססל:if test="string-length($סאַפעימאַגעורל) != 0"> <div class="image-area-left"> <a href="{$סאַפעלינקורל}" target="{$לינקטאַרגעט}"> <img class="image-fixed-width" src="{$סאַפעימאַגעורל}"
alt="{@ ימאַגעורלאַלטטעקסט}"/> </אַ> </דיוו> </קססל:צי> <div class="link-item"> <קססל:רופן-מוסטער
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href="{$סאַפעלינקורל}"
target="{$לינקטאַרגעט}" title="{@ לינקטאָאָלטיפּ}"> <קססל:value-of select="$DisplayTitle"/> </אַ> <div class="description"> <קססל:value-of select="@Description" /> </דיוו> </דיוו> </דיוו>
--> </טר> <!-- אַרויסלאָזן די קלאָוזינג טיש פאַרבינדן. אויב מיר זענען נישט אויף די לעצטע רודערן, דאָס וועט זייַן פּוסט. --> <קססל:ווערט-פון קלייַבן="$טאַבלעענד" דיסייבאַל-רעזולטאַט-יסקייפּינג="יאָ"/> </קססל:מוסטער> <קססל:מוסטער נאָמען="פאָרמאַטקוררענסי"> <קססל:פּאַראַם נאָמען="ווערט" קלייַבן="0" /> <קססל:ווערט-פון קלייַבן='פֿאָרמאַט-נומער($ווערט, "$DDD,דדד,DDD.DD", "staff")' /> </קססל:מוסטער>

נאָרמאַל ווסס / מאָך דאַטאַ ענטרי סקרעענס טאָן ניט שטיצן קאַסקאַדינג דראָפּ-דאַונז (אָדער אנדערע ינטראַ-פון קאָמוניקאַציע)

דערהייַנטיקן (04/2008): דאס גרויס בלאָג פּאָזיציע ווייזט אַ גוט דזשאַוואַסקריפּט באזירט צוגאַנג צו דעם פּראָבלעם: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

דערהייַנטיקן וו: (04/2008): דעם בלאָג פּאָזיציע קוקט פּראַמאַסינג ווי געזונט: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

עטלעכע מאל אַ וואָך, אויב נישט טעגלעך, forum users describe a requirement that would normally be met via cascading drop-downs. לעמאָשל, איך האב צוויי פאַלן-אַראָפּ קאָנטראָלס:

  • רשימה פון יוז. שטאַטן
  • רשימה פון יוז. cities.

As responsible UI providers, we want it to operate like this:

  • Paul selects a U.S. state from the drop-down.
  • This causes the cities drop-down to filter only those cities that belong to the selected state.
  • Paul selects a city from this filtered list.

There is no out-of-the-box support for this feature. אין פאַקט, there is no OOB support for any kind of direct intra-form communication. This includes programmatically hiding/enabling/disabling fields in response to field changes elsewhere on the form.

The real objective of this article to to describe possible solutions and these are the options as I know them:

  1. Develop a custom column type. As a custom-column-developer, you have full control over the "world" of that custom column. You can implement a cascading drop-down that way.
  2. Consider using workflow. In some cases, you want to automatically assign a value to field based on another field’s value. אין דעם פאַל, you would normally try to use a calculated column, but some times, it just won’t get the job done. SharePoint Designer workflow is a relatively administer-friendly alternative to dropping down into code and visual studio. If you go this route, be aware of the issue addressed by דעם אַרטיקל (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Event handlers: Like workflow, this is an after-the-fact solution. Your event handler is a .NET assembly (C #, VB.NET) to which SharePoint passes control. The object you develop has access to the data of the list (and the whole object model) and can do any needed calculation.
  4. Use SharePoint Designer to create custom entry forms. I don’t have direct experience with this approach, אָבער איך הערן זיי טאָן גוט טינגז מיט NewForm.aspx די טעג 🙂
  5. Roll your own ASP.NET data entry function (as a stand-alone web page or as a web part) and use that instead.

If anyone knows other and/or better options, please post a comment and I’ll update the body of this post.

<סוף />

טעטשנאָראַטי טאַגס:

Yes/No (טשעק קאַסטן) פֿילטרירונג אין אינהאַלט קווערי וועב חלק

To filter for a query for the Yes/No check box entitled "PG Milestone", קאַנפיגיער קקוופּ ווי דעם:

בילד

דאס איז אן אנדער איינער פון יענע קלאָר ווי דער טאָג-אַמאָל-איר-וויסן-עס אָבער שווער-צו-געפינען-אַן-ענטפֿערן-צו שאלות: ווי צו פילטער אויף אַ יא / ניין טשעק קעסטל ניצן די צופרידן אָנפֿרעג וועב טייל.

דער ערשטער זוכן רעזולטאַט I find using the search term "filter yes/no content query web part" איז פלאַך אויס פאַלש, אַזוי איך געדאַנק איך 'ד שטעלן דעם זיך דאָרט און זען אויב עס קענען פאַרבייַטן די פאַלש רעזולטאַט אין טיפּיש זוכן רעזולטאַטן.

עס ס גאַנץ גרינג: True values = "1" and false values do not equal "1" (שיין רעטראָ, פאקטיש).

אין די אויבן בייַשפּיל, I created site column of type "Yes/No (טשעקקבאָקס)" named "PG Milestone". I added it to a doc library, ופּלאָאַדעד אַ ביסל דאָקומענטן, שטעלן די ווערט פֿאַר אַ פּאָר און טעסטעד עס.

<סוף />