მე განთავსებული განცხადებები გაყიდვის ჩემი მანქანა ბერგენის ქვეყანა, NJ on Sunday night. I received several inquiries via email shortly thereafter and closed the deal with someone on Tuesday night.
თითქმის ძალიან კარგი უნდა იყოს ნამდვილი …
მე განთავსებული განცხადებები გაყიდვის ჩემი მანქანა ბერგენის ქვეყანა, NJ on Sunday night. I received several inquiries via email shortly thereafter and closed the deal with someone on Tuesday night.
თითქმის ძალიან კარგი უნდა იყოს ნამდვილი …
მე არ შეცვალოს გაფართოებული ძიება XSLT ძალიან ხშირად, ასე რომ, როგორც ჩანს, როგორიც მე ვარ ასვლა მცირე მთებში ყოველ ჯერზე.
ჩემი უახლესი გაკვეთილი არის ამ: საქმე მნიშვნელოვანია, როდესაც მითითება სვეტი. ჩემი გაფართოებული ძიება, მე სვეტების განისაზღვრება, როგორც ეს:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Columns>
<სვეტი სახელი="GafTrainingInvoiceNumber" />
<სვეტი სახელი="GafTrainingInvoiceLocation" />
<სვეტი სახელი="WorkId"/>
<სვეტი სახელი="რანგის"/>
<სვეტი სახელი="სათაური"/>
<სვეტი სახელი="ავტორი"/>
<სვეტი სახელი="ზომა"/>
<სვეტი სახელი="გზა"/>
<სვეტი სახელი="აღწერა"/>
<სვეტი სახელი="დაწერეთ"/>
<სვეტი სახელი="SiteName"/>
<სვეტი სახელი="CollapsingStatus"/>
<სვეტი სახელი="HitHighlightedSummary"/>
<სვეტი სახელი="HitHighlightedProperties"/>
<სვეტი სახელი="Contentclass"/>
<სვეტი სახელი="IsDocument"/>
<სვეტი სახელი="PictureThumbnailURL"/>
</Columns>
</root>
XLST რომ აჩვენებს ფაქტურის ნომერი და ფაქტურის საიდან იყო:
<P>
Training Invoice Number: <XSL:ღირებულების შესახებ შერჩევა="GafTrainingInvoiceNumber"/>
<br></br>
Training Invoice Location: <XSL:ღირებულების შესახებ შერჩევა="GafTrainingInvoiceLocation"/>
</P>
თუმცა, აირჩიეთ გააჩნია მითითებას ქონება ყველა ქვედა შემთხვევაში, , როგორც in:
<P>
Training Invoice Number: <XSL:ღირებულების შესახებ შერჩევა="gaftraininginvoicenumber"/>
<br></br>
Training Invoice Location: <XSL:ღირებულების შესახებ შერჩევა="gaftraininginvoicelocation"/>
</P>
Until I corrected that, search results showed the labels (i.e. "Training Invoice Number") but no data.
ბიზნეს სცენარი:
საწარმო მასშტაბით განხორციელებას MOSS წარმოების კომპანიას 30+ ადგილები და რამდენიმე ათეული კორპორატიული დეპარტამენტები.
ბიზნეს მიზანი:
მიუხედავად უამრავი ბიზნეს ჯგუფები (დეპარტამენტები, ადგილას, და ა.შ.), გარკვეული მონაცემები უნდა ინახებოდას გლობალურ დონეზე. მაგალითად, ავტორიტეტული სამაგისტრო სიაში ყველა ფიზიკური ადგილმდებარეობა კომპანია (e.g. საწარმოო ობიექტების, საწყობი ადგილას, გაყიდვების ოფისები) უნდა დარჩეს ცენტრალურ ადგილას.
ტექნიკური პრობლემა:
საწარმოს ტაქსონომიის განხორციელდა გამოყენებით მრავლობითი საიტი კოლექციების. ჩვენ არ მომეწონა, რომ შეიქმნას ავტორიტეტული ჩამონათვალი ფიზიკური ადგილებში საბაჟო WSS სია. მაშინ, როცა ჩვენ გვჭირდებოდა სვეტი ინფორმაციის ტიპი (ან სვეტი დაემატა სიას ან doc ბიბლიოთეკა) რომელიც შეიცავდა კორპორატიული ადგილას, we would create a column using the "lookup" თემები და წერტილი ამ სამაგისტრო სია.
სამწუხაროდ, lookup datatypes must access a source list "locally" რაც იმას ნიშნავს, რომ ჩვენი ავტორიტეტული სიაში ვერ საქმე საიტი კოლექციების.
ტექნიკური გადაწყვეტა:
განახორციელოს ახალი საბაჟო მონაცემთა ტიპის განხორციელებული საფუძველზე SPField და წარმოდგენილია როგორც DropDownList in UI რომლის ListItems populate ეხლა სამაგისტრო WSS სია.
ჩვენ შევქმენით ახალი საიტი კოლექციის მოუწოდა "http://localhost/EnterpriseData". არსებობს, we created a custom list named "Corporate Locations". This list just uses the standard "Title" სფეროში შეიცავს სიაში ფაქტობრივი კორპორატიული ადგილას.
ერთი შემდეგნაირად რამდენიმე დისკრეტული ნაბიჯები, რათა შეიქმნას საბაჟო მონაცემთა ტიპის WSS. ისინი:
აქ არის კოდი, რომელიც:
საჯარო კლასი XYZZYCorporateLocationField : SPFieldText
{
საჯარო XYZZYCorporateLocationField
(SPFieldCollection სფეროები, სიმებიანი typeName, სიმებიანი displayName)
: ბაზა(სფეროები, typeName, displayName) { }
საჯარო XYZZYCorporateLocationField
(SPFieldCollection სფეროები, სიმებიანი displayName)
: ბაზა(სფეროები, displayName) { }
საჯარო override BaseFieldControl FieldRenderingControl
{
მიიღეთ
{
BaseFieldControl control = ახალი XYZZYCorporateLocationFieldControl();
control.FieldName = ამ.შინაგან სახელი;
დაბრუნდნენ control;
} //მიიღეთ
} // fieldrenderingcontrol
საჯარო override სიმებიანი GetValidatedString(ობიექტი ღირებულება)
{
თუ (ამ.Required || value.ToString().შეადგენს(სიმებიანი.ცარიელი))
{
სახიფათოა ახალი SPFieldValidationException ("Department is not assigned.");
}
დაბრუნდნენ ბაზა.GetValidatedString(ღირებულება);
} // getvalidatedstring
} // XYZZYCorporateLocation
საჯარო კლასი XYZZYCorporateLocationFieldControl : BaseFieldControl
{
დაცული DropDownList XYZZYCorporateLocationSelector;
დაცული override სიმებიანი DefaultTemplateName
{
მიიღეთ
{
დაბრუნდნენ "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
საჯარო override ობიექტი ფასი
{
მიიღეთ
{
EnsureChildControls();
დაბრუნდნენ ამ.XYZZYCorporateLocationSelector.SelectedValue;
} // მიიღეთ
მითითებული
{
EnsureChildControls();
ამ.XYZZYCorporateLocationSelector.SelectedValue = (სიმებიანი)ამ.ItemFieldValue;
} // მითითებული
} // override object Value
დაცული override ცნოს 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"];
foreach (Spit XYZZYCorporateLocation in currentList.Items)
{
თუ (XYZZYCorporateLocation["Title"] == ნულოვანი) გაგრძელდება;
სიმებიანი theTitle;
theTitle = XYZZYCorporateLocation["Title"].ToString();
ამ.XYZZYCorporateLocationSelector.Items.Add
(ახალი ListItem(theTitle, theTitle));
} // foreach
} // 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,მობილური = 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
Here is a great posting by a fellow named "craig" on a technique for finding CAML definitions for field content types based off real live definitions from a site.
His posting says it all. In brief:
Additional categories: ვიზუალური სტუდია 2005
To enable useful intellisense for Features, elements, etc in visual studio 2005:
Intellisense is now enabled for that XML document.
აგრეთვე აქ დამატებითი ინფორმაცია ამ საკითხზე და ინსტრუქციები, თუ როგორ უნდა ავტომატურად ასოცირდება WSS Intellisense ნებისმიერ ფაილში.
მე და მიიღო ზემოაღნიშნული გამოცდა დღეს დილით. აღმოვაჩინე გამოცდა გაუჭირდება და სამართლიანი.
არსებობს ნათესავი dearth შესახებ ინფორმაციის ეს გამოცდა ინტერნეტში. მე არ ვარ დარწმუნებული, თუ რატომ.
მე აშკარად ვერ მიიღებენ ნებისმიერ დეტალურად გამოცდა მე, მაგრამ ვფიქრობ, შეგიძლიათ უსაფრთხოდ ითქვას შემდეგი:
ეს სიები, რა საჭიროა იცოდეთ გამოცდაზე და ეს, IMO, ძალიან ზუსტი.
</ბოლო>გამოწერა ჩემი დღიური!
დამატებითი გარეშე: InfoPath
რეზიუმე: InfoPath 2007 შექმნან შეიყვანეს MOSS სერვერზე უზრუნველყოფს ჩამოშლადი სია, მოვაჭრეებს უკავშირდება საბაჟო MOSS სია. საფუძველზე შერჩევის მოვაჭრე, წესები დაავალოს სფეროში ღირებულებების მუჭა ტექსტი სფეროებში გაყიდვების rep სახელი, მისამართი, ქალაქის, სახელმწიფო, zip და ტელეფონის. სპექტაკლი საშინელებაა. ჩვენ შეამჩნია, რომ შესრულების იღებს უარესი (in a non-linear fashion) თითოეული დამატებითი სფეროში ჩვენ განახლება ამ გზით. ანუ, თუ ჩვენ მხოლოდ განაახლებს გაყიდვების rep სახელი, სჭირდება [x] დროის. თუ ჩვენ განახლება გაყიდვების rep, address1, address2, ქალაქის, სახელმწიფო, zip, სჭირდება 10 ჯერ აღარ.
Solution: დაწერეთ ვებ სერვისი (ნიმუში კოდი შეიძლება ი აქ) რომ ჩაიარა სახელი გამყიდველი და ის დააბრუნებს უკან გამყიდველი ვრცლად. მაშინ, დაავალოს სფეროებში ამ გზით. მიუხედავად იმისა, რომ ეს ძალიან, როგორც ჩანს, ნელი, იყო შესამჩნევ განსხვავებას შესრულება, როდესაც ჩვენ დაავალა 1 საველე წინააღმდეგ 8 სფეროები. როგორც დამატებითი ბონუსი, users get a cool "contacting the server" Cylon ეფექტი, როდესაც ისინი დაელოდებიან ფორმა ახსენებდნენ და მოიხმარენ მომსახურება შედეგები.
განახლების: ჩვენ არასდროს განისაზღვრება ძირეული მიზეზი ამ პრობლემის კი არასდროს ზედაპირზე ერთხელ.
ჩვენ შეამჩნია განხორციელებისას განვითარების საიტი, რომელიც მოულოდნელად, ორი წევრებს ვერ შედიხართ საიტზე კოლექციაში. იმ ანგარიშების ნახვა შეიძლება შესასვლელად საიტის მთავარი, მაგრამ, როდესაც ცდილობს წვდომის კონკრეტული საიტი კოლექციაში, ისინი უბრალოდ ცარიელი ეკრანის. არ შეცდომები ნაჩვენები, მხოლოდ თეთრი ცარიელი გვერდი.
ჩვენ დარეგისტრირდეთ, როგორც საიტი კოლექციის admin და ცდილობენ დავამატებთ ერთ იმ წევრებს, როგორც მაწანწალა და ამ დროს, upon pressing "OK", მივიღებთ ამ გაგზავნა:
გამონაკლისი მოხდა. (გამონაკლისი საწყისი HRESULT: 0x80020009 (DISP_E_EXCEPTION))
გავატარეთ გარკვეული დროის იკვლევს ამ და სამწუხაროდ, არ ამუშავება არაფერი სასარგებლო. იყო გარკვეული შეტყობინებები სადიაგნოსტიკო ჟურნალი, მაგრამ რთული იყო ზუსტად შეესაბამება მათ ამ საკითხის.
და ბოლოს, ჩვენ წაშლის საიტი შეგროვება და ხელახლა შექმნილი და რომ მოგვარდეს ეს.
თუ მე გაერკვნენ, თუ რა გამოიწვია ამ მომავალში, მე განაახლებს ჩანაწერი.