کائی: فنکشنل مثال کے طور پر - اپنی مرضی کے مطابق ڈیٹا کی قسم

بزنس سلسہ مناظر:

مینوفیکچرنگ کمپنی کے لئے کائی کے انٹرپرائز وسیع نفاذ کے ساتھ 30+ سائٹس اور چند درجن کارپوریٹ محکموں.

کاروباری مقصد:

کاروبار کے گروپوں کی ایک بھیڑ کے باوجود (محکموں, مقامات, وغیرہ), بعض اعداد و شمار کے ایک عالمی سطح پر برقرار رکھا جائے. مثال کے طور پر, کمپنی کے تمام جسمانی مقامات میں سے ایک مستند ماسٹر کی فہرست (مثلا. مینوفیکچرنگ کی سہولیات, گودام کے مقامات, سیلز کے دفاتر) میں ایک مرکزی مقام برقرار رکھا ہونا چاہیے.

تکنیکی مسئلہ:

ایک سے زیادہ ویب سائٹ کے مجموعے کا استعمال کرتے ہوئے انٹرپرائز بندی نافذ کیا گیا تھا. ہم ایک مخصوص نسبتاً تھی ۔ فہرست میں جسمانی مقامات کی فہرست میں مستند بنانے کے لیے پسند آیا ہو گا. پھر, جب ہم ایک کالم میں ایک مضمون کی نوعیت میں کیا کرنے کی ضرورت ہے (یا ایک فہرست یا ڈاکٹر کی لائبریری میں شامل ایک کالم) جو کارپوریٹ محل وقوع کا حامل تھا, ہم ایک کالم "پر نظر دوڑائیں کا استعمال کرتے ہوئے پیدا ہو جائے گی" کوائف قسم اور اس مقام پر یہ فہرست ماسٹر.

بدقسمتی سے, نظر دوڑائیں داٹیٹیپاس "مقامی طور پر ماخذ فہرست تک رسائی حاصل کرنا چاہیئے" مطلب یہ ہے کہ ہمارے مستند فہرست سائٹ مجموعے اسپین نہیں کر سکتا.

تکنیکی حل:

اپنی مرضی کے مطابق ڈیٹا کی ایک نئی قسم کی بنیاد پر سپفیلڈ نافذ اور جس کا لاسٹاٹیم ماسٹر نسبتاً تھی ۔ فہرست سے بسنا UI میں ایک ڈروپڈونلاسٹ کے طور پر نمائندگی نافذ کرنا.

ہم نے کہا جاتا ہے ایک نئی ویب سائٹ مجموعہ پیدا "http://localhost/EnterpriseData". وہاں, ہم "کارپوریٹ مقامات" نامی ایک مخصوص فہرست بنائی. یہ فہرست صرف معیاری عنوان"کا استعمال کرتا ہے ۔" قطعہ اصل کارپوریٹ مقامات کی فہرست کا حامل.

ایک اپنی مرضی کے مطابق ڈیٹا کی ایک قسم میں WSS پیدا کرنے کے لئے کئی متفرد اقدامات مندرجہ ذیل ہے ۔. وہ ہیں:

  1. جو سپفیلڈ سے ورثہ میں ملتے ہیں ایک کلاس کی وضاحت (ایک سے دوسرے میدانوں کو اگر ضرورت ہو تو وارث ہونگے).

جس کے لئے کوڈ یہاں ہے ۔:

عوامی کلاس ایززیکورپوراٹیلوکاٹاونفیلڈ : سپفیلڈٹی
{
عوامی ایززیکورپوراٹیلوکاٹاونفیلڈ
(سپفیلدکوللیکشن کھیتوں, سٹرنگ ٹیپاناما, سٹرنگ displayName)
: بنیاد(کھیتوں, ٹیپاناما, displayName) { }

عوامی ایززیکورپوراٹیلوکاٹاونفیلڈ
(سپفیلدکوللیکشن کھیتوں, سٹرنگ displayName)
: بنیاد(کھیتوں, displayName) { }

عوامی کی جگہ لے لے باسیفیلڈکونٹرول فیلڈرانڈرنگکونٹرول
{
حاصل
{
باسیفیلڈکونٹرول کنٹرول = نئے ایززیکورپوراٹیلوکاٹاونفیلڈکونٹرول();
کنٹرول ہے ۔ فیلڈنمی = اس.انٹرنالنمی;
واپس کنٹرول;
} //حاصل
} // فیلڈراندرانگکونٹرول

عوامی کی جگہ لے لے سٹرنگ گیٹوالاداٹیدسٹرانگ(اعتراض قیمت)
{
اگر (اس.درکار || قدر و قیمت ۔ ٹعثٹرانگ().مساوی(سلک.خالی))
{
پھینک نئے سپفیلڈوالاداٹاونیثپشن ("محکمہ تفویض شدہ ہے ۔");
}
واپس بنیاد.گیٹوالاداٹیدسٹرانگ(قیمت);
} // گیٹوالاداٹیدسٹرانگ

} // ایززیکورپوراٹیلوکاشن

  1. بنیادی قطعہ کنٹرول سے ورثہ میں ملتے ہیں ایک دوسرے طبقے کی وضاحت, میں کے طور پر:

عوامی کلاس ایززیکورپوراٹیلوکاٹاونفیلڈکونٹرول : باسیفیلڈکونٹرول
{
محفوظ ڈروپڈونلاسٹ ایززیکورپوراٹیلوکاٹاونسالیکٹاور;

محفوظ کی جگہ لے لے سٹرنگ دیفاولٹمپلاٹینمی
{
حاصل
{
واپس "ایززیکورپوراٹیلوکاٹاونفیلڈکونٹرول";
}
} // دیفاولٹمپلاٹینمی

عوامی کی جگہ لے لے اعتراض قیمت
{
حاصل
{
انسریچالڈکونٹرولس();
واپس اس.XYZZYCorporateLocationSelector.SelectedValue;
} // حاصل
مقرر
{
انسریچالڈکونٹرولس();
اس.XYZZYCorporateLocationSelector.SelectedValue = (سٹرنگ)اس.اٹیمفیلڈوالی;
} // مقرر
} // آبجیکٹ قدر زیر کریں

محفوظ کی جگہ لے لے خالی کریٹیچالڈکونٹرالس()
{

اگر (اس.قطعہ = = صفر || اس.کونٹرولمودی = = سپکونٹرولمودی.دکھائیں)
واپس;

بنیاد.کریٹیچالڈکونٹرالس();

اس.ایززیکورپوراٹیلوکاٹاونسالیکٹاور =
(ڈروپڈونلاسٹ)TemplateContainer.FindControl("ایززیکورپوراٹیلوکاٹاونسالیکٹاور");

اگر (اس.ایززیکورپوراٹیلوکاٹاونسالیکٹاور = = صفر)
پھینک نئے رعایت("نقص: لوڈ نہیں کر سکتا ۔ آسکن مسل!");

اگر (!اس.Page.IsPostBack)
{

کا استعمال کرتے ہوئے (SPSite سائٹ = نئے SPSite("http://مقامی میزبان کا/انٹرپراسادات"))
{
کا استعمال کرتے ہوئے (SPWeb ویب سائٹ = ۔ اوپانواب())
{

SPList کوررانٹلاسٹ = جال ۔ فہرستیں["کارپوریٹ مقامات"];

foreach (سپاٹم ایززیکورپوراٹیلوکاشن میں currentList.Items)
{
اگر (ایززیکورپوراٹیلوکاشن["عنوان"] == صفر) جاری;

سٹرنگ تیٹاٹلی;
تیٹاٹلی = ایززیکورپوراٹیلوکاشن["عنوان"].ToString();

اس.XYZZYCorporateLocationSelector.Items.Add
(نئے لاسٹاٹیم(تیٹاٹلی, تیٹاٹلی));

} // foreach

} // سپویب ویب کا استعمال کرتے ہوئے = site.openweb()
} // سپساٹی ویب سائٹ کو استعمال کرتے ہوئے نئے سپساٹی =("http://مقامی میزبان کا انٹرپرسادات")

} // اگر نہیں تو ایک پوسٹباک

} // کریٹیچالڈکونٹرالس

} // ایززیکورپوراٹیلوکاٹاونفیلڈکونٹرول

مندرجہ بالا کوڈ بنیادی طور پر ڈروپدوونلاسٹ پر واقع WSS مخصوص فہرست سے قدروں کے ساتھ پلانے کے لیے منطقی عمل http://localhost/enterprisedata اور نام "کارپوریٹ اداروں".

میں دونوں کلاسیں ایک واحد .cs فائل میں کی وضاحت, یہ مرتب کیا گیا اور یہ گ میں ڈال دیا (طاقتور کی ضرورت, کورس کے).

  1. کریٹیکل کنٹرول سانچا (.آسکن) کے طور پر دکھایا گیا:

<%@ کنٹرول زبان"C# =" ورثہ میں ملتے ہیں="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,ورژن 12.0.0.0، ثقافت = = غیر جانبدار,PublicKeyToken = 71e9bce111e9429c" کومپالاٹاونمودی"ہمیشہ =" %>
<%
@ رجسٹر ٹاگپریفسا"وسساوک =" نام جگہ="Microsoft.SharePoint.WebControls" اسمبلی="Microsoft.SharePoint, ورژن = 12.0.0.0, ثقافت غیر جانبدار =, PublicKeyToken = 71e9bce111e9429c" %> <%@ رجسٹر ٹاگپریفسا"SharePoint =" نام جگہ="Microsoft.SharePoint.WebControls" اسمبلی="Microsoft.SharePoint, ورژن = 12.0.0.0, ثقافت غیر جانبدار =, PublicKeyToken = 71e9bce111e9429c" %>
<شیئرپوائنٹ:رانڈرانگٹیمپلاٹی ID"ایززیکورپوراٹیلوکاٹاونفیلڈکونٹرول =" رونآٹ"سرور" =>
<سانچہ>
<یسپ:ڈروپڈونلاسٹ ID"ایززیکورپوراٹیلوکاٹاونسالیکٹاور =" رونآٹ"سرور =" />
</سانچہ>
</
شیئرپوائنٹ:رانڈرانگٹیمپلاٹی>

مندرجہ بالا c میں محفوظ ہے:\پروگرام filescommon filesmicrosoft sharedweb سرور extensions12controltemplates.

  1. آخر میں, ہم میں محفوظ کرنے کے لیے ایک XML مسل بنائیں... 12XML ڈائریکٹری. یہ ہماری اپنی مرضی کے مطابق ڈیٹا کی نوعیت واضح کرتا ہے کہ کامل ہے اور میری مثال کے لئے, اس طرح لگتا ہے:

<?XML ورژن="1.0" انکوڈنگ="UTF-8" ?>
<
فیلڈٹیپاس>
<
فیلڈٹیپی>
<
قطعہ نام="ٹیپاناما">کورپوراٹیلوکاٹاو</قطعہ>
<
قطعہ نام="پارانٹیپی">متن</قطعہ>
<
قطعہ نام="ٹیپیڈاسپلاینمی">کارپوریٹ مقامات</قطعہ>
<
قطعہ نام="تیپیشورٹدیسکراپشن">مینوفیکچرنگ یا دیگر سہولیات سمیت تمام کارپوریٹ ایزی محل وقوع.</قطعہ>
<
قطعہ نام="اسرکریتبلی">سچا</قطعہ>
<
قطعہ نام="شووانلاسٹکریٹی">سچا</قطعہ>
<
قطعہ نام="شوواندوکومانٹلابراریکریٹی">سچا</قطعہ>
<
قطعہ نام="شووانسرویکریٹی">سچا</قطعہ>
<
قطعہ نام="شووانکولومنٹیمپلیٹکریٹی">سچا</قطعہ>
<
قطعہ نام="فیلڈٹیپیکلاسس">Conchango.XYZZYCorporateLocationField, ایززیکورپوراٹیلوکاٹاونفیلڈ, 1.0.0.0 = ورژن, ثقافت غیر جانبدار =, پبلاکیطوکان = b0b19e85410990c4</قطعہ>
<
رانڈرپیٹٹرن نام="داسپلایپیٹٹرن">
<
سوئچ>
<
پر>
<
کالم />
</
پر>

<کیس قیمت=""/>

<پہلے سے طے شدہ>
<
HTML>
<![CDATA[
<طرز اسپین "رنگ =:سرخ"><ب>]]>
</
HTML>

<
کالم سبکولمننمبر="0" ہٹملانکودی="سچا"/>

<HTML><![CDATA[</ب></مدت>]]></HTML>

</
پہلے سے طے شدہ>
</
سوئچ>

</
رانڈرپیٹٹرن>
</
فیلڈٹیپی>
</
فیلڈٹیپاس>
یہ XML مسل WSS "لائبریری" کو اپنی مرضی کے مطابق ڈیٹا کی قسم کا اضافہ کرتا ہے" اور یہ خلاف گ مشابہ اسمبلی تھی.

ان تمام بٹ کو جگہ میں حرکت کے بعد, ااسریسیٹ پیش کار اور اس پر اچھی طرح سے کام کرنے والے تمام شروع کرنا چاہئے.

3 پر "خیالاتکائی: فنکشنل مثال کے طور پر - اپنی مرضی کے مطابق ڈیٹا کی قسم

  1. Alejandro
    ہیلو، پال,
    سب سے پہلے, اس مضمون کے لئے شکریہ, کیونکہ یہ بہت دلچسپ ہے ۔. صرف ایک سوال;
    آپ جانتے ہیں کہ اگر یہ صحیح طور پر ایک مخصوص قطعہ قسم کوائف نامہ منظر کی ایک فہرست میں نظروں بنانے کے لئے پعثابلی ہے?
    کیونکہ میں نے اسے تخلیق کی ہر مخصوص قطعہ قسم کوائف نامہ منظر میں بطور فقط-مطالعہ دکھایا گیا ہے (اور MSDN, مثال کے طور پر, میری بہت زیادہ مدد نہیں کرتا :-ایس).
    شکریہ
  2. لنڈسی
    یہ اندازہ لگا لیا! صرف اضافہ کرنے کی ضرورت

    System.Web.UI کا استعمال کرتے ہوئے;
    System.Web.UI.WebControls کا استعمال کرتے ہوئے;

  3. لنڈسی

    میں اپنے حل پر عملدرآمد کرنے کی کوشش کر رہا ہوں. تاہم میں ڈروپڈونلاسٹ کی بجائے, میں صرف ایک ڈروپدوونچواکالا کے لئے کا اختیار ہے. آپ نے ایک ڈروپدوونچواکالا کے لیے اشیاء شامل کرنے کا طریقہ جاننے کے لئے رونما ہو تی ہیں? ہم SharePoint استعمال کر رہے ہیں 2007 SP1 اور وژول اسٹوڈیو 2005 SP1.

رکن کی نمائندہ تصویر

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا. ضرورت ہے شعبوں نشان لگا دیا گیا رہے ہیں *