زمرہ آرکائوز: کائی

کائی اعلی درجے کی تلاش حسب ضرورت — کیس اعلی درجے کی تلاش ایکس ایس ایل ٹی میں بات کرتا ہے

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

میری تازہ ترین سبق یہ ہے: ایک کالم حوالہ جب کیس اہمیت. میری اعلی درجے کی تلاش میں, میں اس کے طور پر کالم کی وضاحت کی گئی ہے:

<جڑ xmlns:xsi="HTTP://www.w3.org/2001/XMLSchema-instance">
<
کالم>
<
کالم نام="گافٹرینانگانوواکانمبر" />
<
کالم نام="گافٹرینانگانوواکالوکاٹااون" />
<
کالم نام="WorkId"/>
<
کالم نام="درجہ بندی"/>
<
کالم نام="عنوان"/>
<
کالم نام="مصنف"/>
<
کالم نام="سائز"/>
<
کالم نام="راہ"/>
<
کالم نام="تفصیل"/>
<
کالم نام="لکھو"/>
<
کالم نام="SITENAME"/>
<
کالم نام="CollapsingStatus"/>
<
کالم نام="HitHighlightedSummary"/>
<
کالم نام="HitHighlightedProperties"/>
<
کالم نام="ContentClass"/>
<
کالم نام="IsDocument"/>
<
کالم نام="PictureThumbnailURL"/>
</
کالم>
</
جڑ>

انوائس نمبر اور انوائس محل وقوع ظاہر کرتا ہے کہ XLST رہا تھا:

<P>
تربیت انوائس نمبر: <xsl:قیمت کے منتخب="گافٹرینانگانوواکانمبر"/>
<
BR></BR>
تربیت انوائس محل وقوع: <xsl:قیمت کے منتخب="گافٹرینانگانوواکالوکاٹااون"/>
</
P>

تاہم, منتخب جائداد سب لوئر کیس میں حوالہ دے ہے, میں کے طور پر:

<P>
تربیت انوائس نمبر: <xsl:قیمت کے منتخب="گافٹرینانگانوواکانمبر"/>
<
BR></BR>
تربیت انوائس محل وقوع: <xsl:قیمت کے منتخب="گافٹرینانگانوواکالوکاٹااون"/>
</
P>


یہاں تک کہ میں اس درست کر دیا, تلاش کے نتائج کو لیبل دکھایا (یعنی. "تربیت انوائس کے نمبر") لیکن کوئی کوائف.

کائی / InfoPath فارم سرور (InfoPath 2007) ڈراپ ڈاؤن فہرست کارکردگی

ایڈیشنل قسم: InfoPath

کاروائی کا خلاصہ: ایک برائے InfoPath 2007 ایک کائی سرور پر تعینات کی تشکیل ایک اپنی مرضی کے کائی فہرست میں بندھے ہوئے دکانداروں کے ایک ڈراپ ڈاؤن فہرست فراہم کرتا ہے. ایک وینڈر منتخب صلی اللہ علیہ وسلم, قوانین اس طرح کے سیلز کے نمائندے نام کے طور پر متن قطعے کی ایک مٹھی بھر کے لئے میدان اقدار کو تفویض, ایڈریس, شہر, ریاست, زپ اور فون. کارکردگی خوفناک ہے. ہم کارکردگی سے بھی بدتر ہو جاتا ہے کہ متعلقہ (ایک غیر لکیری فیشن میں) ہر اضافی فیلڈ کے لئے ہم اس طریقہ کو اپ ڈیٹ کریں. یعنی, ہم صرف سیلز کے نمائندے کا نام اپ ڈیٹ کریں تو, یہ لیتا ہے [X] وقت کی رقم. ہم سیلز کے نمائندے کو اپ ڈیٹ کریں تو, address1, address2, شہر, ریاست, زپ, یہ لیتا ہے 10 اوقات طویل.

حل: ایک ویب سروس لکھیں (نمونے کے کوڈ پایا جا سکتا ہے یہاں) ایک وینڈر کے نام پر گزر چکا ہے اور اسے واپس وینڈر تفصیلات لوٹتا ہے کہ. پھر, کھیتوں اس طرح تفویض. یہ بہت سست لگ رہا ہے اگرچہ, ہم نے مقرر کیا ہے جب کی کارکردگی میں کوئی discernable فرق تھا 1 میدان بمقابلہ 8 کھیتوں. ایک اضافی بونس کے طور پر, "سرور سے رابطہ کر کے ٹھنڈا صارفین حاصل کریں" Cylon وہ سروس کے نتائج کو پکارتے اور بسم کرنے کے لئے فارم کا انتظار کرتے ہوئے اثر.

کائی: رعایت واقع ہوئی ہے. (HRESULT سے رعایت: 0x80020009 (DISP_E_EXCEPTION))

اپ ڈیٹ: ہم نے تعین کیا اس مسئلہ کی بنیادی وجہ سے کبھی نہیں اور اسے دوبارہ کبھی نہیں روبرو.

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

ہم نے ایک سائٹ مجموعہ منتظم کے طور پر میں لاگ ان کریں اور ایک ویب سائٹ کے منتظم کے طور پر ان صارفین میں سے ایک کو شامل کرنے کی کوشش کریں اور اس وقت, "ٹھیک ہے" دبانے پر, ہم نے اس پیغام کو حاصل:

رعایت واقع ہوئی ہے. (HRESULT سے رعایت: 0x80020009 (DISP_E_EXCEPTION))

ہم نے کچھ وقت خرچ اور اس بدقسمتی تحقیق, تھا مفید کچھ کے ساتھ نہیں آ. تشخیصی لاگ ان کریں میں کچھ پیغامات تھے, لیکن یہ مشکل تھا بالکل ان سے اس معاملے کے ساتھ correlate.

آخر میں, ہم سائٹ کے مجموعہ کو حذف کرکے اور اسے دوبارہ پیدا کیا اور یہ کہ اس حل.

اگر میں نے پتہ ہے کہ مستقبل میں اس کی وجہ سے, میں نے اس پوسٹ کو اپ ڈیٹ کریں گے.

کائی: اپنی مرضی کے مطابق کی فہرست کے ذریعے Iterating اور InfoPath فلٹر ڈیٹا واپس لوٹنے

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

ایک طریقہ ہے کہ صارفین کو درست خرید ریقاساٹانس تیزی سے داخل کرنے کے قابل بناتا ہے فراہم کرنے.

کاروباری مسائل:

وصول کار کئی سو دکانداروں کے ساتھ کاروبار کرتا ہے.

دکانداروں "کی قسم ہیں ۔" مخصوص. اس کا مطلب ہے کہ ایک خوانچہ فروش خاتون کمپیوٹر ساز و سامان کی فروخت (مثلا. ڈیل) یا دفتر کی فراہمی (مثلا. سٹاپلاس).

ہم آخر صارفین جو ایک جائز وینڈر خرید ریقاساٹانس منتخب کریں بنائیں کیسے ان ایبل کروں?

کاروبار کا حل:

"قسم" کے ذریعے نظام میں دکانداروں کا فرق.

"قسم منتخب کرنے کے لیے صارفین کو فعال کریں" کی مصنوعات اور پھر مناسب دکانداروں کا فلٹر شدہ سیٹ فراہم کرتے ہیں.

تکنیکی حل:

ایک انفوپیٹہ فارم کہ آن لائن داخل کرنے کے لیے اہل بناتی ہے، صارفین ریقاساٹانس خریدنے ڈیزائن کیا گیا ہے.

دو انفوپیٹہ انتخاب فہرستیں وینڈر انتخاب کنٹرول. اول, صارف کو ایک "خرید قسم" منتخب کرتا ہے. یہ صرف دکانداروں کہ اس خریداری کی قسم کے لئے فروخت پر مشتمل کرنے کے لیے ایک دوسرا انتخاب فہرست کی حدود. یہ ایک کلاسک جھرن ڈراپ-ڈاؤن ہے ۔.

دکانداروں کو کائی وینڈر اوصاف کہ نام کے لیے مخصوص کالم کے ساتھ مخصوص فہرست میں ذخیرہ شدہ ہیں, پتہ اور خاص طور پر "قسم".

اپنی مرضی کے مطابق وینڈر فہرست کے ذریعے نافذ کرنا ایک انفوپیٹہ کلائنٹ جو بسم کرنے کے لئے ایک ویب سروس اٹیراٹیس, دکانداروں سے صرف ایک فراہم کردہ "قسم" مشابہ واپس کر رہا ہے ۔.

ویب خدمت انفوپیٹہ فارم کے ذریعے اورکسی.

سیکھے گئے اسباق:

  • اول, یہ اس راستے میں جانے کے لئے ضروری لگتا ہے. میں مکمل طور پر انفوپیٹہ کے اندر اندر فلٹرنگ کرتے ہیں اور کسی بھی ویب سروس کی فعالیت یہاں نہیں بنا ہونے کو ترجیح دی ہو گی. تاہم, فارم پیش کار مطلوبہ فلٹر کاری کی صلاحیت نہیں فراہم کرتا ہے. ہم ایک قاعدہ پر رکھ سکتے ہیں ایک "کی قسم" قسم کے وینڈر طلب دوبارہ کھولنے کی شکل میں انتخاب کی فہرست, لیکن ہم صحیح طور پر کام کرنے کے لئے حاصل نہیں کر سکتا. لہذا, یہ ویب خدمت پر عمل درآمد کے لیے ضروری تھا ۔.
  • یہ ایک کلاسک "جھرن انتخاب فہرست ہے" مسئلہ انفوپیٹہ میں پیش کار دنیا بناتی ہے اور جو اس مسئلے کو حل کرنے کے طریقہ کی وضاحت کئی اچھی مثالیں ہیں وہاں سے باہر.
  • ایک خالی قدر وینڈر فہرست میں کالم کے لیے اس طرح حوالہ دیا گیا ہے جب ایک خالی سلک واپس نہیں کرتی ۔: انیاٹیم[وینڈر نام""]. اس کے بجائے, یہ ایک کالعدم واپس کرتا ہے ۔.

کچھ دیگر نوٹ:

  • میں ایک لڑی واپس[] دکانداروں کے کیونکہ میں ایک آرریلاسٹ واپس لینے میں کچھ مشکل تھا. میں اس وقت یا اس کے اوپر کا مقابلہ کرنے کی رغبت نہیں اور انفوپیٹہ اس کے بارے میں کی جارہی تھی. یہ, کورس کے, ایک مصنوعی حد دکانداروں کی کل تعداد پر رکھتا ہے ۔. یہ بھی مجھے ایک تراشیں نافذ کرنے پر مجبور کیا() طریقہ پر لڑی جس کا مجھے لوٹنے کے خیال سے نفرت ہے کیونکہ واپس 100 کے معدوم دکانداروں کی. انفوپیٹہ کی پرواہ نہیں کرتا, لیکن یہ میری ناگگاد. (پھر, یہ آرریلسٹس پر انفوپیٹہ کی لڑائی سے زیادہ آسان تھا ۔).
  • میں ایک گیٹسپیکافاکواندوربینمی نافذ() فعل بھی, جو سبق آموز ہو سکتا ہے.

کوڈ:

کا استعمال کرتے ہوئے سسٹم;
کا استعمال کرتے ہوئے System.Web;
کا استعمال کرتے ہوئے System.Web.Services;
کا استعمال کرتے ہوئے System.Web.Services.Protocols;
کا استعمال کرتے ہوئے Microsoft.SharePoint;
کا استعمال کرتے ہوئے System.Configuration;

/// <خلاصہ>
///
وینڈر سروس: جو آج کی طرف سے ایک انفوپیٹہ وصول کار فارم فنا ہیں فروشندہ سے متعلق خدمات فراہم کرتا ہے.
///
/// تاریخ:
/// ——–
/// 07/24/07: ابتدائی ترمیز, Paul J. کونچانگو کے سنسنی خیز گیون روز.
///
/// </خلاصہ>
[WebService(نام جگہ = "http://www.conchango.com/")]
[ویبسرواکباندانگ(کونفورمسٹو = وساپروفال.BasicProfile1_1)]
عوامی کلاس واندورسرواسی : System.Web.Services.WebService
{

/// <خلاصہ>
/// مسوس کی طرف سے برقرار رکھا ہوا ہے ایک اپنی مرضی کے مطابق sharepoint فہرست سے ایک وینڈر کی نمائندگی کرتا ہے.
/// </خلاصہ>
عوامی کلاس فروشندہ
{
عوامی فروشندہ() { }

عوامی فروشندہ(سپاٹم انیاٹیم)
{
اگر (! (انیاٹیم[وینڈر نام""] == صفر)) واندورنمی = انیاٹیم[وینڈر نام""].ToString();
اگر (! (انیاٹیم["خطاب 1"] == صفر)) VendorAddress1 = انیاٹیم["خطاب 1"].ToString();
اگر (! (انیاٹیم["2 پتا جات"] == صفر)) VendorAddress2 = انیاٹیم["2 پتا جات"].ToString();
اگر (! (انیاٹیم["شہر"] == صفر)) واندورکاٹی = انیاٹیم["شہر"].ToString();
اگر (! (انیاٹیم["وینڈورفونی"] == صفر)) وینڈورفونی = انیاٹیم["وینڈورفونی"].ToString();
اگر (! (انیاٹیم["پرچاسیٹیپی"] == صفر)) وینڈورٹیپی = انیاٹیم["پرچاسیٹیپی"].ToString();
اگر (! (انیاٹیم["ریاست"] == صفر)) واندورستاٹی = انیاٹیم["ریاست"].ToString();
اگر (! (انیاٹیم["زپ"] == صفر)) واندورزاپ = اناتاٹیم["زپ"].ToString();
اگر (!(انیاٹیم["فیکس"] == صفر)) وینڈورفن = اناتاٹیم["فیکس"].ToString();
اگر (!(انیاٹیم["سالیسریپنمی"] == صفر)) واندورسالیسریپنمی = انیاٹیم["سالیسریپنمی"].ToString();

واندوریٹیماد = initItem.ID; // منفرد شناخت کائی کے ذریعے برقرار رکھا ہوا ہے ۔.
}

عوامی INT واندوریٹیماد;
عوامی سٹرنگ واندورنمی;
عوامی سٹرنگ VendorAddress1;
عوامی سٹرنگ VendorAddress2;
عوامی سٹرنگ واندورکاٹی;
عوامی سٹرنگ واندورستاٹی;
عوامی سٹرنگ واندورزاپ;
عوامی سٹرنگ وینڈورفونی;
عوامی سٹرنگ وینڈورٹیپی;
عوامی سٹرنگ واندورسالیسریپنمی;
عوامی سٹرنگ وینڈورفن;
}

عوامی واندورسرواسی () {

//بلاک بے تبصرہ اجزاء کا استعمال کرتے ہوئے اگر مندرجہ ذیل لائن ڈیزائن
//اناٹاالازیکومپونینٹ();
}

نجی فروشندہ[] گانریٹٹیستواندور()
{
فروشندہ[] ریسلٹلاسٹ;
ریسلٹلاسٹ = نئے فروشندہ[100];

فروشندہ v;
v = نئے فروشندہ();
v.VendorAddress1 = "v1_address1";
v.VendorAddress2 = "v1_address2";
v.VendorCity = "v1_city";
v.VendorName = "v1_vendorname";
v.VendorPhone = "v1_vendorphone";
v.VendorState = "v1_st";
v.VendorType = "v1_type";
v.VendorZip = "v1_zip";

ریسلٹلاسٹ[0] v =;

v = نئے فروشندہ();

v.VendorAddress1 = "v2_address1";
v.VendorAddress2 = "v2_address2";
v.VendorCity = "v2_city";
v.VendorName = "v2_vendorname";
v.VendorPhone = "v2_vendorphone";
v.VendorState = "v2_st";
v.VendorType = "v2_type";
v.VendorZip = "v2_zip";

ریسلٹلاسٹ[1] v =;

v = نئے فروشندہ();
v.VendorAddress1 = "v3_address1";
v.VendorAddress2 = "v3_address2";
v.VendorCity = "v3_city";
v.VendorName = "v3_vendorname";
v.VendorPhone = "v3_vendorphone";
v.VendorState = "v3_st";
v.VendorType = "v3_type";
v.VendorZip = "v3_zip";

ریسلٹلاسٹ[2] v =;

واپس ریسلٹلاسٹ;

}

[ویبمیٹہود]
عوامی فروشندہ گیٹسپیکافاکواندوربید(INT واندورید)
{
سٹرنگ سپواندورساٹینمی; // اصل کائی سائٹ وینڈر مخصوص فہرست کے لیے میزبان کا نام.
سٹرنگ سپواندورلسٹناما; // دکانداروں کی حامل اصل کائی فہرست کا نام.

سپواندورساٹینمی = کونفاگوراٹاونسیٹنگس.اپپسیٹنگس["واندورلاستوسٹنگساٹی"].ToString();
سپواندورلسٹناما = کونفاگوراٹاونسیٹنگس.اپپسیٹنگس["واندورلاسٹ"].ToString();

کا استعمال کرتے ہوئے (SPSite سائٹ = نئے SPSite(سپواندورساٹینمی))
{

کا استعمال کرتے ہوئے (SPWeb ویب سائٹ = ۔ اوپانواب())
{

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

سپاٹم سپکافکاٹیم = currentList.Items[واندورید];

واپس نئے فروشندہ(سپکافکاٹیم);

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

}

[ویبمیٹہود]
// یہ فرض کر لیتی ہے کہ وینڈر نام منفرد ہے, ایک تجارتی نقطہ نظر سے
عوامی فروشندہ گیٹسپیکافاکواندوربیواندورنمی(سٹرنگ واندورنمی)
{
سٹرنگ سپواندورساٹینمی; // اصل کائی سائٹ وینڈر مخصوص فہرست کے لیے میزبان کا نام.
سٹرنگ سپواندورلسٹناما; // دکانداروں کی حامل اصل کائی فہرست کا نام.

سپواندورساٹینمی = کونفاگوراٹاونسیٹنگس.اپپسیٹنگس["واندورلاستوسٹنگساٹی"].ToString();
سپواندورلسٹناما = کونفاگوراٹاونسیٹنگس.اپپسیٹنگس["واندورلاسٹ"].ToString();

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

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

foreach (سپاٹم واندوریٹیم میں currentList.Items)
{
اگر (واندوریٹیم[وینڈر نام""] == صفر) جاری;

اگر (واندوریٹیم[وینڈر نام""].ToString().مساوی(واندورنمی))
واپس نئے فروشندہ(واندوریٹیم);
}

فروشندہ v = نئے فروشندہ();
v.VendorPhone = "نہیں ملا: " + واندورنمی;

واپس v;

واپس صفر;

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

} // طریقہ

[ویبمیٹہود]
عوامی فروشندہ[] گیٹواندورسفٹیپی (سٹرنگ فالٹرٹیپی)
{

سٹرنگ سپواندورساٹینمی; // اصل کائی سائٹ t کے لیے میزبان کا نام
اس نے فروشندہ مخصوص فہرست.
سٹرنگ سپواندورلسٹناما; // دکانداروں کی حامل اصل کائی فہرست کا نام.

سپواندورساٹینمی = کونفاگوراٹاونسیٹنگس.اپپسیٹنگس["واندورلاستوسٹنگساٹی"].ToString();
سپواندورلسٹناما = کونفاگوراٹاونسیٹنگس.اپپسیٹنگس["واندورلاسٹ"].ToString();

فروشندہ[] ریسلٹلاسٹ;
INT واندوراند = 0;
ریسلٹلاسٹ = نئے فروشندہ[1000];

// فہرست کے ساتھ طے شدہ دوستانہ پیغام کی ابتدا.
فروشندہ v = نئے فروشندہ();
v.VendorName = "اس فہرست کو آباد کرنے کے لیے ایک وینڈر قسم منتخب کریں ۔";
ریسلٹلاسٹ[0] v =;

// لوئر کیس کے بعد آسان سلک مقابلے کے لئے فلٹر بدلیں.
فالٹرٹیپی = filterType.ToLower();

// "ٹیسٹ" فلٹر کی قسم منظور ہونے کی صورت ہے, کچھ سادہ ڈیٹا نکالیں.
#خطے قسم فلٹر "ٹیسٹ ="
اگر (filterType.Equals("ٹیسٹ"))
واپس گانریٹٹیستواندور();
#endregion

اگر (سچ)
{
کا استعمال کرتے ہوئے (SPSite سائٹ = نئے SPSite(سپواندورساٹینمی))
{
کا استعمال کرتے ہوئے (SPWeb ویب سائٹ = ۔ اوپانواب())
{

v = صفر;

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

// وینڈر فہرست میں تمام اشیاء کے ذریعے دہرانا.
foreach (سپاٹم واندوریٹیم میں currentList.Items)
{

سٹرنگ لوورواندورٹیپی;

لورواندورٹیپی = واندوریٹیم["پرچاسیٹیپی"].ToString().ToLower();
لورواندورٹیپی = lowerVendorType.Substring(3);

اگر (lowerVendorType.Equals(فالٹرٹیپی))
{
ریسلٹلاسٹ[واندوراند ] = نئے فروشندہ(واندوریٹیم);
}
} // فہرست میں تمام دکانداروں thru اٹراٹانگ


واپس ٹرامواندورآرری(واندوراند, ریسلٹلاسٹ);
// ریسلٹلاسٹ کی واپسی;

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

} // اگر سچ ہے تو

واپس صفر;
}

نجی فروشندہ[] ٹرامواندورآرری(INT نیوسای, فروشندہ[] اراگانالواندورآرری)
{
فروشندہ[] ٹرامادآرری;

اگر (نیوسای = = 0) نیوسای = 1;
ٹرامادآرری = نئے فروشندہ[نیوسای];

INT کوررانساونٹیر = 0;

کے لئے (کوررانساونٹیر = 0; کوررانساونٹیر < نیوسای; کوررانساونٹیر )
{
ٹرامادآرری[کوررانساونٹیر] اراگانالواندورآرری =[کوررانساونٹیر];
}

واپس ٹرامادآرری;

}
}