Ես տեղադրել եմ դասակարգվում գովազդ վաճառելու իմ մեքենան Bergen կոմսություն, NJ on Sunday night. I received several inquiries via email shortly thereafter and closed the deal with someone on Tuesday night.
Գրեթե չափազանց լավ, որ ճշմարիտ է …
Ես տեղադրել եմ դասակարգվում գովազդ վաճառելու իմ մեքենան Bergen կոմսություն, NJ on Sunday night. I received several inquiries via email shortly thereafter and closed the deal with someone on Tuesday night.
Գրեթե չափազանց լավ, որ ճշմարիտ է …
Ես չեմ փոփոխել Ընդլայնված որոնում XSLT շատ հաճախ, ուստի կարծես ես բարձրանում փոքր HILLS ամեն անգամ.
Իմ նորագույն դասը սա: Case կարեւոր է, երբ հիշատակում սյունակում. Իմ ընդլայնված որոնում, Ես սյունյակները սահմանել, քանի որ այս:
<արմատ xmlns:xsi="http :/://www.w3.org/2001/XMLSchema-instance">
<Columns>
<Սյունակ Անուն="GafTrainingInvoiceNumber" />
<Սյունակ Անուն="GafTrainingInvoiceLocation" />
<Սյունակ Անուն="WorkId"/>
<Սյունակ Անուն="Դաս"/>
<Սյունակ Անուն="Վերնագիր"/>
<Սյունակ Անուն="Հեղինակ"/>
<Սյունակ Անուն="Չափ"/>
<Սյունակ Անուն="Ճանապարհ"/>
<Սյունակ Անուն="Նկարագրություն"/>
<Սյունակ Անուն="Գրել"/>
<Սյունակ Անուն="SiteName"/>
<Սյունակ Անուն="CollapsingStatus"/>
<Սյունակ Անուն="HitHighlightedSummary"/>
<Սյունակ Անուն="HitHighlightedProperties"/>
<Սյունակ Անուն="Contentclass"/>
<Սյունակ Անուն="IsDocument"/>
<Սյունակ Անուն="PictureThumbnailURL"/>
</Columns>
</արմատ>
The XLST որը ցուցադրում հաշիվը համարը եւ հաշիվ - ապրանքագրերի գտնվելու վայրը եղել:
<Սայլակ>
Training Invoice Number: <xsl:արժեք է ընտրել="GafTrainingInvoiceNumber"/>
<BR></BR>
Training Invoice Location: <xsl:արժեք է ընտրել="GafTrainingInvoiceLocation"/>
</Սայլակ>
Սակայն, Ընտրել է հղում գույքը բոլոր ստորին դեպքը, ինչպես:
<Սայլակ>
Training Invoice Number: <xsl:արժեք է ընտրել="gaftraininginvoicenumber"/>
<BR></BR>
Training Invoice Location: <xsl:արժեք է ընտրել="gaftraininginvoicelocation"/>
</Սայլակ>
Until I corrected that, search results showed the labels (i.e. "Training Invoice Number") but no data.
Բիզնես Սցենար:
Enterprise - լայն կիրառումը MOSS արտադրական ընկերության հետ 30+ կայքեր եւ մի քանի տասնյակ կորպորատիվ վարչություններ.
Բիզնես Նպատակ:
Չնայած բազմաթիվ բիզնես խմբերի (ԲԱԺԻՆՆԵՐ, տեղերը, եւ այլն:), որոշ տվյալները պետք է պահպանվեն մի գլոբալ մակարդակով. Օրինակ,, հեղինակավոր վարպետ ցանկը բոլոր ֆիզիկական տեղաբաշխման ընկերության (e.g. արտադրական միջոցներ, պահեստային տեղերը, վաճառքի գրասենյակները) պետք է պահպանվի նաեւ կենտրոնական վայրում.
Տեխնիկական Problem:
Ձեռնարկությունը taxonomy իրականացվել, օգտագործելով մի քանի կայքի հավաքածուներ. Մենք սիրում է ստեղծել հեղինակավոր ցանկը ֆիզիկական վայրերում մաքսային WSS ցուցակում. Ապա, երբ մենք պետք է ունենանք սյունը մի բովանդակության տեսակի (կամ սյունակ է, որը ցուցակում կամ doc գրադարան) որ պարունակում կորպորատիվ վայրերը, we would create a column using the "lookup" datatype եւ կետն այս վարպետության ցուցակում.
Ցավոք,, lookup datatypes must access a source list "locally" նշանակում է, որ մեր հեղինակավոր ցանկը կարող span Տեղում հավաքածու.
Տեխնիկական Solution:
Իրականացնել նոր գործարկողի տվյալների տեսակն իրականացվում հիման վրա SPField եւ ներկայացված է որպես DropDownList է UI, որի ListItems բնակեցնել այդ վարպետի WSS ցուցակում.
Մենք ստեղծել ենք նոր կայքը հավաքածու կոչված "http://localhost/EnterpriseData". Կան, we created a custom list named "Corporate Locations". This list just uses the standard "Title" դաշտը պարունակում ցուցակը փաստացի կորպորատիվ վայրերում.
One հետեւում է դիսկրետ քայլերի ստեղծել գործարկողի տվյալների մուտքագրել WSS. Նրանք:
Ահա կոդը համար:
հասարակություն դաս XYZZYCorporateLocationField : SPFieldText
{
հասարակություն XYZZYCorporateLocationField
(SPFieldCollection fields, լարային typeName, լարային displayName)
: բազա(fields, typeName, displayName) { }
հասարակություն XYZZYCorporateLocationField
(SPFieldCollection fields, լարային displayName)
: բազա(fields, displayName) { }
հասարակություն ոտնատակ տալ BaseFieldControl FieldRenderingControl
{
ստանալ
{
BaseFieldControl control = նոր XYZZYCorporateLocationFieldControl();
control.FieldName = սա.Ներքին Անունը;
վերադարձ control;
} //ստանալ
} // fieldrenderingcontrol
հասարակություն ոտնատակ տալ լարային GetValidatedString(օբյեկտ արժեք)
{
եթե (սա.Required || value.ToString().Հավասար(Լար.Դատարկ))
{
նետում նոր SPFieldValidationException ("Department is not assigned.");
}
վերադարձ բազա.GetValidatedString(արժեք);
} // getvalidatedstring
} // XYZZYCorporateLocation
հասարակություն դաս XYZZYCorporateLocationFieldControl : BaseFieldControl
{
պաշտպանված DropDownList XYZZYCorporateLocationSelector;
պաշտպանված ոտնատակ տալ լարային DefaultTemplateName
{
ստանալ
{
վերադարձ "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
հասարակություն ոտնատակ տալ օբյեկտ Արժեք
{
ստանալ
{
EnsureChildControls();
վերադարձ սա.XYZZYCorporateLocationSelector.SelectedValue;
} // ստանալ
սահմանել
{
EnsureChildControls();
սա.XYZZYCorporateLocationSelector.SelectedValue = (լարային)սա.ItemFieldValue;
} // սահմանել
} // override object Value
պաշտպանված ոտնատակ տալ անվավեր CreateChildControls()
{
եթե (սա.Field == զրո || սա.ControlMode == SPControlMode.Ցուցադրել)
վերադարձ;
բազա.CreateChildControls();
սա.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");
եթե (սա.XYZZYCorporateLocationSelector == զրո)
նետում նոր Բացառություն("ERROR: Cannot load .ASCX file!");
եթե (!սա.Page.IsPostBack)
{
օգտագործելով (SPSite site = նոր SPSite("Http :/://localhost / enterprisedata"))
{
օգտագործելով (SPWeb web = site.OpenWeb())
{
SPList currentList = web.Lists["Corporate Locations"];
ԲՀԿ (Թքել XYZZYCorporateLocation մեջ currentList.Items)
{
եթե (XYZZYCorporateLocation["Title"] == զրո) շարունակել;
լարային theTitle;
theTitle = XYZZYCorporateLocation["Title"].ToString();
սա.XYZZYCorporateLocationSelector.Items.Add
(նոր ListItem(theTitle, theTitle));
} // ԲՀԿ
} // using spweb web = site.openweb()
} // using spsite site = new spsite("Http :/://localhost/enterprisedata")
} // if not a postback
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
Վերը նշված կոդը հիմնականում իրականացնում է տրամաբանությունը եւ բնակեցնելու DropDownList հետ արժեքներով են WSS մաքսային ցուցակում գտնվում է http://localhost/enterprisedata and named "Corporate Departments".
Ես սահմանված երկու դասընթացներ է մեկ. Cs ֆայլ, կազմվում է այն եւ դրեց այն GAC (ուժեղ պահանջվող, Իհարկե).
<%@ Վերահսկել Լեզու="C#" Ժառանգում="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Version = 12.0.0.0, մշակույթի = չեզոք,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%@ Գրանցում Tagprefix="wssawc" Անվանատարածք="Microsoft.SharePoint.WebControls" Ժողով="Microsoft.SharePoint, Տարբերակ = 12.0.0.0, Մշակույթ = չեզոք, PublicKeyToken = 71e9bce111e9429c" %> <%@ Գրանցում Tagprefix="SharePoint" Անվանատարածք="Microsoft.SharePoint.WebControls" Ժողով="Microsoft.SharePoint, Տարբերակ = 12.0.0.0, Մշակույթ = չեզոք, PublicKeyToken = 71e9bce111e9429c" %>
<Sharepoint:Մատուցումը Կաղապար ID="XYZZYCorporateLocationFieldControl" runat="server">
<Կաղապար>
<իժ:DropDownList ID="XYZZYCorporateLocationSelector" runat="server" />
</Կաղապար>
</Sharepoint:Մատուցումը Կաղապար>
Վերը պահպանվում է գ:\ծրագրային ֆայլերը ընդհանուր ֆայլերը Microsoft համօգտագործել Վեբսերվերի ընդարձակման 12 controltemplates.
<?XML Նամակ տարբերակ="1.0" կոդավորում="UTF-8" ?>
<FieldTypes>
<FieldType>
<Դաշտ Անուն="TypeName">CorporateLocations</Դաշտ>
<Դաշտ Անուն="ParentType">Տեքստ</Դաշտ>
<Դաշտ Անուն="TypeDisplayName">Corporate Locations</Դաշտ>
<Դաշտ Անուն="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Դաշտ>
<Դաշտ Անուն="UserCreatable">TRUE</Դաշտ>
<Դաշտ Անուն="ShowInListCreate">TRUE</Դաշտ>
<Դաշտ Անուն="ShowInDocumentLibraryCreate">TRUE</Դաշտ>
<Դաշտ Անուն="ShowInSurveyCreate">TRUE</Դաշտ>
<Դաշտ Անուն="ShowInColumnTemplateCreate">TRUE</Դաշտ>
<Դաշտ Անուն="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Տարբերակ = 1.0.0.0, Մշակույթ = չեզոք, PublicKeyToken=b0b19e85410990c4</Դաշտ>
<RenderPattern Անուն="DisplayPattern">
<Անջատիչ>
<Expr>
<Սյունակ />
</Expr>
<Դեպք Արժեք=""/>
<Անհոգություն>
<HTML>
<![CDATA[<span style="color:Red"><բ>]]>
</HTML>
<Սյունակ SubcolumnNumber="0" HTMLEncode="TRUE"/>
<HTML><![CDATA[</բ></span>]]></HTML>
</Անհոգություն>
</Անջատիչ>
</RenderPattern>
</FieldType>
</FieldTypes>
This XML file adds the custom data type to the WSS "library" եւ համապատասխանում այն դեմ GAC'd հավաքների.
Հետո գնում այդ բոլոր bits իր տեղը, iisreset է սերվերի եւ այն պետք է բոլորս լավ կաշխատի.
Լրացուցիչ աստիճան: CAML
Այստեղ is a great posting by a fellow named "craig" է տեխնիկան գտնելու համար CAML սահմանումները դաշտային բովանդակության տեսակների վրա off իրական կենդանի հասկացություններն մի կայքում.
Նրա համար ասում է, որ բոլոր. Հակիրճ:
Լրացուցիչ բաժիններ: Visual Studio 2005
Որպեսզի օգտակար intellisense համար Features, տարրեր, եւ այլն եւ Visual Studio 2005:
Intellisense այժմ հնարավորություն այդ XML փաստաթուղթը.
Տեսնել այստեղ Լրացուցիչ տեղեկությունների համար այս թեմային եւ հրահանգներ, թե ինչպես պետք է ավտոմատ կերպով կապել WSS intellisense ցանկացած XML ֆայլը.
Ես վերցրել եւ հանձնել նշված քննությունը այս առավոտ. Ես գտա, որ քննություն է դժվար եւ արդար.
Կա մի պակասություն հարաբերական տեղեկատվության այս քննության ոստայնում. Վստահ չեմ, թե ինչու.
Ես ակնհայտորեն չի դառնում որեւէ մանրամասն քննության եմ մասնակցել, բայց ես կարծում եմ, կարող եք ապահով է ասել հետեւյալը.:
Այն թվարկում, թե ինչ Ձեզ անհրաժեշտ է իմանալ, որպեսզի անցնեն քննությունը, եւ դա, IMO, շատ ճիշտ.
</վերջ>Անդամագրվել իմ բլոգում!
Լրացուցիչ աստիճան: InfoPath
Ամփոփում: An InfoPath 2007 ձեւավորել տեղակայվել է MOSS սերվերի տրամադրում է բացվող ցուցակում վաճառողներին կապված են մաքսային MOSS ցուցակում. Հետո ընտրելով մատակարարին, կանոնները նշանակում դաշտային արժեքները մի բուռ տեքստ բնագավառներում, ինչպիսիք են վաճառքի rep անունը, հասցե, քաղաք, պետական, ZIP եւ հեռախոսը. Performance է սարսափելի. Մենք, որ կատարում է վատ (է ոչ գծային նորաձեւության) յուրաքանչյուր լրացուցիչ դաշտ, մենք է այս ճանապարհը. Այսինքն,, եթե մենք պարզապես թարմացնել վաճառքի սերտում անունը, այն տեւում է [x] գումարը ժամանակ. Եթե մենք նորացնել վաճառքի Գրառումներ, address1, address2, քաղաք, պետական, աշխուժություն, այն տեւում է 10 անգամ ավելի երկար.
Լուծում: Գրել վեբ ծառայություն (Նմուշի համար կարելի է գտնել այստեղ) որը անցել անունով մի վաճառողի եւ վերադարձնում ետ վաճառողի մանրամասները. Ապա, հատկացնել ոլորտներում այս ձեւով. Թեեւ սա եւս կարծես դանդաղ, չկար discernable տարբերություն կատարման, երբ մենք նշանակվում 1 դաշտը versus 8 fields. Որպես ավելացված պարգեւավճար, users get a cool "contacting the server" Cylon ազդեցություն երբ նրանք սպասել ձեւով վկայակոչել եւ սպառում է ծառայողական արդյունքները.
ԹԱՐՄԱՑՆԵԼ: Մենք երբեք չենք որոշել արմատային պատճառը այս խնդրին եւ այն երբեք չի վերգետնյա կրկին.
Մենք նկատում ընթացքում իրականացման զարգացման կայքում, որը հանկարծակի, երկու օգտվողները չեն կարողանում մուտք գործել կայքը հավաքածու. Այդ հաշիվները կարող իսկությունը հիմնական կայքում, բայց երբ փորձում եք մուտք գործել որոշակի կայքը հավաքածու, նրանք պարզապես դատարկ էկրան. Ոչ սխալները դրսեւորվում, մի սպիտակ դատարկ էջ.
Մենք մուտք որպես կայքի հավաքածուի ադմինիստրատորի եւ փորձում է ավելացնել այն օգտվողների, որպես կայքի ադմինիստրատորի կողմից եւ այս անգամ, upon pressing "OK", ենք ստանում այս հաղորդագրության մասին:
Բացառություն է տեղի ունեցել. (Բացառություն HRESULT: 0x80020009 (DISP_E_EXCEPTION))
Մենք անցկացրել որոշ ժամանակ ուսումնասիրում է այս եւ, ցավոք, չի գալիս հետ, որեւէ բան օգտակար. Կային մի քանի հաղորդագրություններ դիագնոստիկ log, բայց դա դժվար թե առնչություն նրանց հետ այդ հարցով.
Վերջում, Մենք վերացման կայքը հավաքածուն եւ կրկին ստեղծվել է այն, որ լուծվում է այն.
Եթե ես պարզել, թե ինչ պատճառով դա ապագայում, Ես նորացնել Այս գրառումը.