Category Archives: শৈবাল

শৈবাল উন্নত অনুসন্ধান স্বনির্ধারণ — কেস না উন্নত অনুসন্ধান XSLT মধ্যে বিষয়

আমি খুব ঘন ঘন পরিবর্তন না উন্নত অনুসন্ধান XSLT না, তাই মনে হয় মত আমি প্রত্যেক সময় অধিরোহী ছোট অতি করছি.

আমার নতুন পাঠ হল এই: কেস গুরুত্বপূর্ণ যখন একটি কলাম এর মধ্যে. আমার উন্নত অনুসন্ধান, আমি এই হিসাবে কলাম সংজ্ঞায়িত:

<মূল xmlns:xsi="HTTP://www.w3.org/2001/XMLSchema-instance">
<
কলাম>
<
স্তম্ভ নাম="GafTrainingInvoiceNumber" />
<
স্তম্ভ নাম="GafTrainingInvoiceLocation" />
<
স্তম্ভ নাম="WorkId"/>
<
স্তম্ভ নাম="স্থান পাত্তয়া"/>
<
স্তম্ভ নাম="শিরোনাম"/>
<
স্তম্ভ নাম="লেখক"/>
<
স্তম্ভ নাম="আকার"/>
<
স্তম্ভ নাম="পথ"/>
<
স্তম্ভ নাম="বর্ণনা"/>
<
স্তম্ভ নাম="লেখা"/>
<
স্তম্ভ নাম="SITENAME"/>
<
স্তম্ভ নাম="CollapsingStatus"/>
<
স্তম্ভ নাম="HitHighlightedSummary"/>
<
স্তম্ভ নাম="HitHighlightedProperties"/>
<
স্তম্ভ নাম="Contentclass"/>
<
স্তম্ভ নাম="IsDocument"/>
<
স্তম্ভ নাম="PictureThumbnailURL"/>
</
কলাম>
</
মূল>

XLST যে চালান সংখ্যা এবং চালান অবস্থান প্রদর্শন করা হয়েছে:

<পি>
Training Invoice Number: <xsl:মান-এর নির্বাচন করা="GafTrainingInvoiceNumber"/>
<
বিআর></বিআর>
Training Invoice Location: <xsl:মান-এর নির্বাচন করা="GafTrainingInvoiceLocation"/>
</
পি>

কিন্তু, নির্বাচন থেকে সব ছোট হাতের অক্ষর সম্পত্তি রেফারেন্স আছে, যেমন:

<পি>
Training Invoice Number: <xsl:মান-এর নির্বাচন করা="gaftraininginvoicenumber"/>
<
বিআর></বিআর>
Training Invoice Location: <xsl:মান-এর নির্বাচন করা="gaftraininginvoicelocation"/>
</
পি>


Until I corrected that, search results showed the labels (I.E. "Training Invoice Number") but no data.

শৈবাল / InfoPath ফরম সার্ভার (InfoPath 2007) ড্রপ ডাউন তালিকা কর্মক্ষমতা

অতিরিক্ত বিভাগ: InfoPath

সংক্ষিপ্ত: একটি InfoPath 2007 একটি MOSS সার্ভার স্থাপন ফরম একটি কাস্টম MOSS তালিকার সাথে সংযুক্ত বিক্রেতারা একটি ড্রপ ডাউন তালিকা প্রস্তুত করা হয়. বিক্রেতা নির্বাচনের উপর, নিয়ম যেমন বিক্রয় প্রতিনিধির নামের টেক্সট ক্ষেত্রের একটি থাবা আপনি যদি ক্ষেত্রের মান ধার্য, ঠিকানা, শহর, রাষ্ট্র, জিপ ও ফোন. পারফরমেন্স ভয়ঙ্কর. আমরা পারফরম্যান্স খারাপ যে পায় বিজ্ঞপ্তি (একটি অ রৈখিক ফ্যাশন) প্রতিটি অতিরিক্ত ক্ষেত্রের জন্য আমরা এই ভাবে আপডেট. অর্থাত, আমরা শুধু বিক্রয় প্রতিনিধির নাম আপডেট যদি, এটা লাগে [X] সময় পরিমাণ. আমরা বিক্রয় প্রতিনিধির আপডেট যদি, address1, address2, শহর, রাষ্ট্র, জিপ, এটা লাগে 10 বার আর.

সমাধান: একটি ওয়েব পরিষেবা লিখুন (নমুনা কোড পাওয়া যাবে এখানে) বিক্রেতা নামে পাস এবং এটা ফেরত বিক্রেতা বিবরণ ফেরৎ পাঠানো হয় যে. তারপর, ক্ষেত্র এই ভাবে ধার্য. এই অত্যন্ত ধীর বলে মনে হয়, যদিও, আমরা নিয়োগ যখন কর্মক্ষমতা কোন discernable পার্থক্য আছে ছিল 1 যদি ক্ষেত্রের কিছু r বনাম 8 ক্ষেত্র. একটি যোগ বোনাস হিসাবে, users get a cool "contacting the server" Cylon তারা পরিষেবা ফলাফল ডাকা এবং গ্রাস ফর্ম জন্য অপেক্ষা করার সময় প্রভাব.

শৈবাল: ব্যতিক্রম ঘটেছে. (HRESULT থেকে ব্যতিক্রম: 0x80020009 (DISP_E_EXCEPTION))

আপডেট: আমরা এই সমস্যার মূল কারণ নির্ধারিত না এবং এটি আবার থাকবে না.

আমরা একটি উন্নয়ন সাইট যে হঠাৎ বাস্তবায়নের সময় বিজ্ঞপ্তি, দুই ব্যবহারকারীদের একটি সাইট সংগ্রহে অ্যাক্সেস করতে না পারেন. যারা অ্যাকাউন্ট মূল সাইট থেকে নিজেকে এ প্রমাণীকৃত করতে পারেন, কিন্তু একটি নির্দিষ্ট সাইট সংগ্রহে অ্যাক্সেস করার চেষ্টা করার সময়, তারা শুধু একটি ফাঁকা পর্দা পেতে. প্রদর্শিত কোনো ধরনের ত্রুটি, শুধু একটি সাদা খালি পাতা.

আমাদের একটি সাইট সংগ্রহে প্রশাসক হিসাবে লগ ইন করুন এবং একটি সাইট অ্যাডমিন হিসাবে যারা ব্যবহারকারীদের কেউ যোগ করার চেষ্টা করুন এবং এই সময়, upon pressing "OK", আমরা এই বার্তা পেতে:

ব্যতিক্রম ঘটেছে. (HRESULT থেকে ব্যতিক্রম: 0x80020009 (DISP_E_EXCEPTION))

আমরা এই এবং দুর্ভাগ্যবশত গবেষণা কিছু সময় অতিবাহিত, দরকারী কিছু সঙ্গে আসা পর্যন্ত করা হয়নি. ডায়গনিস্টিক লগ ইন কয়েকটি বার্তা ছিল, কিন্তু এটা ঠিক এই সমস্যার সাথে তাদের সম্পর্কিত কঠিন ছিল.

শেষ পর্যন্ত, আমরা সাইটে সংগ্রহে মোছার চেষ্টা এবং এটি পুনরায় তৈরি করা এবং যে এটি মীমাংসিত.

আমি ভবিষ্যতে এই হত কি জিনিসটা যদি, আমি এই পোস্টে আপডেট করব.

শৈবাল: কাস্টম তালিকা মাধ্যমে Iterating এবং InfoPath আপনি ফিল্টার তথ্য ফিরে

ব্যবসা দৃশ্যকল্প:

ব্যবহারকারীদের দ্রুত সঠিক ক্রয় requisitions প্রবেশ করতে সক্ষম হবেন যে একটি পদ্ধতি প্রদান.

ব্যবসায় সমস্যা:

ক্লায়েন্ট কয়েক শত বিক্রেতাদের সাথে ব্যবসা আছে.

Vendors are "type" নির্দিষ্ট. এটি একটি বিক্রেতার কম্পিউটার সরঞ্জাম বিক্রি করে যে অর্থ (e.g. ডেল) বা অফিসে সরবরাহ (e.g. Staples).

কিভাবে আমরা ক্রয় requisitions তৈরি যারা অন্তিম ব্যবহারকারীদের একটি বৈধ বিক্রেতা নির্বাচন সক্রিয় করবো?

ব্যবসা সমাধান:

Differentiate vendors in the system via "type".

Enable users to select the "type" পণ্য এবং তারপর উপযুক্ত বিক্রেতাদের একটি ফিল্টার সেট প্রদান করে.

প্রযুক্তি সমাধান:

একটি InfoPath ফর্ম ব্যবহারকারীদের অনলাইন ক্রয় requisitions প্রবেশ করতে সক্ষম হবেন যে ডিজাইন করা হয়েছে.

দুই InfoPath নির্বাচন তালিকা নিয়ন্ত্রণ বিক্রেতা নির্বাচন. প্রথম, the user selects a "purchase type". This limits a second selection list to contain only vendors that sell for that purchase type. This is a classic cascading drop-down.

বিক্রেতারা যেমন নামের বিক্রেতার বৈশিষ্ট্যের জন্য কাস্টম কলাম সঙ্গে MOSS কাস্টম তালিকা সংরক্ষণ করা হয়, address and especially "type".

কাস্টম বিক্রেতার তালিকা মাধ্যমে iterates যে গ্রাস একটি InfoPath ক্লায়েন্টের জন্য একটি ওয়েব পরিষেবা বাস্তবায়ন, returning only vendors matching a supplied "type".

InfoPath ফর্ম এর মাধ্যমে ওয়েব সার্ভিস ডাকা.

শিখেছি পাঠ:

  • প্রথম, এই রুট যেতে প্রয়োজনীয় বলে মনে হয়. আমি InfoPath মধ্যে সম্পূর্ণরূপে ফিল্টারিং করতে এবং এখানে যে কোনো ওয়েব পরিষেবা বৈশিষ্ট্য তৈরি করতে আপনি পছন্দ করে. কিন্তু, ফর্ম সার্ভার প্রয়োজনীয় ফিল্টারিং ক্ষমতা উপলব্ধ করা হয় না. We can put a rule onto a the "type" পুনরায় খোলার বিক্রেতা কোয়্যারীর বাছাই আকারে নির্বাচন তালিকা, কিন্তু আমরা তা সঠিকভাবে কাজ পেতে পারে না. সেইজন্য, এটি ওয়েব সেবা বাস্তবায়ন করার প্রয়োজন ছিল.
  • This is a classic "cascading selection list" InfoPath ফর্ম সার্ভার বিশ্বের সমস্যা এবং সেখানে এই সমাধান কিভাবে ব্যাখ্যা যে অনেক ভাল উদাহরণ আছে.
  • ভালো রেফারেন্সড যখন বিক্রেতার তালিকায় একটি কলামের জন্য একটি ফাঁকা মান একটি খালি স্ট্রিং রিটার্ন করে না: initItem["Vendor Name"]. পরিবর্তে, এটি একটি নাল ফেরৎ.

অন্য কিছু নোট:

  • আমি একটি অ্যারের ফিরে[] বিক্রেতারা আমি একটি ArrayList ফিরে কিছু অসুবিধা ছিল, কারণ. InfoPath এটা সম্পর্কে অভিযোগ ছিল এবং আমি এটা উপর যুদ্ধ সময় বা বাঁক আছে কি না. এই, স্বভাবত, বিক্রেতারা মোট সংখ্যার উপর একটি কৃত্রিম সীমা রাখে. এটি একটি ছাঁটা বাস্তবায়ন সম্পর্কে বাধ্য() method on the array because I hate the idea of returning back 100’s of null vendors. InfoPath গ্রাহ্য না করে, কিন্তু এটা আমার nagged. (আবার, এই ArrayLists ওভার InfoPath যুদ্ধ চেয়ে সহজ ছিল).
  • আমি একটি GetSpecificVendorByName বাস্তবায়িত() ফাংশন হিসাবে ভাল, শিক্ষামূলক হতে পারে.

কোড:

ব্যবহার সিস্টেম;
ব্যবহার System.Web;
ব্যবহার System.Web.Services;
ব্যবহার System.Web.Services.Protocols;
ব্যবহার Microsoft.SharePoint;
ব্যবহার System.Configuration;

/// <সারাংশ>
///
Vendor Service: Provides vendor related services which today are consumed by an infopath client form.
///
/// History:
/// ——–
/// 07/24/07: Initial coding, Paul J. Gavin of Conchango.
///
/// </সারাংশ>
[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
জনসাধারণের বর্গ VendorService : System.Web.Services.WebService
{

/// <সারাংশ>
/// Represents a vendor from a custom sharepoint list maintained by MSUSA.
/// </সারাংশ>
জনসাধারণের বর্গ Vendor
{
জনসাধারণের Vendor() { }

জনসাধারণের Vendor(বিদ্বেষ initItem)
{
যদি (! (initItem["Vendor Name"] == শূন্য)) VendorName = initItem["Vendor Name"].ToString();
যদি (! (initItem["Address 1"] == শূন্য)) VendorAddress1 = initItem["Address 1"].ToString();
যদি (! (initItem["Address 2"] == শূন্য)) VendorAddress2 = initItem["Address 2"].ToString();
যদি (! (initItem["City"] == শূন্য)) VendorCity = initItem["City"].ToString();
যদি (! (initItem["VendorPhone"] == শূন্য)) VendorPhone = initItem["VendorPhone"].ToString();
যদি (! (initItem["PurchaseType"] == শূন্য)) VendorType = initItem["PurchaseType"].ToString();
যদি (! (initItem["State"] == শূন্য)) VendorState = initItem["State"].ToString();
যদি (! (initItem["Zip"] == শূন্য)) VendorZip = initItem["Zip"].ToString();
যদি (!(initItem["Fax"] == শূন্য)) VendorFax = initItem["Fax"].ToString();
যদি (!(initItem["SalesRepName"] == শূন্য)) VendorSalesRepName = initItem["SalesRepName"].ToString();

VendorItemId = initItem.ID; // Unique ID maintained via MOSS.
}

জনসাধারণের int-এ VendorItemId;
জনসাধারণের স্ট্রিং VendorName;
জনসাধারণের স্ট্রিং VendorAddress1;
জনসাধারণের স্ট্রিং VendorAddress2;
জনসাধারণের স্ট্রিং VendorCity;
জনসাধারণের স্ট্রিং VendorState;
জনসাধারণের স্ট্রিং VendorZip;
জনসাধারণের স্ট্রিং VendorPhone;
জনসাধারণের স্ট্রিং VendorType;
জনসাধারণের স্ট্রিং VendorSalesRepName;
জনসাধারণের স্ট্রিং VendorFax;
}

জনসাধারণের VendorService () {

//Uncomment the following line if using designed components
//InitializeComponent();
}

ব্যক্তিগত Vendor[] GenerateTestVendors()
{
Vendor[] resultList;
resultList = নতুন Vendor[100];

Vendor v;
v = নতুন Vendor();
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";

resultList[0] = v;

v = নতুন Vendor();

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";

resultList[1] = v;

v = নতুন Vendor();
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";

resultList[2] = v;

প্রত্যাবর্তন resultList;

}

[WebMethod]
জনসাধারণের Vendor GetSpecificVendorById(int-এ vendorId)
{
স্ট্রিং SpVendorSiteName; // Name of the actual MOSS site that hosts the vendor custom list.
স্ট্রিং SpVendorListName; // Name of the actual MOSS list containing vendors.

SpVendorSiteName = ConfigurationSettings.AppSettings["VendorListHostingSite"].ToString();
SpVendorListName = ConfigurationSettings.AppSettings["VendorList"].ToString();

ব্যবহার (SPSite site = নতুন SPSite(SpVendorSiteName))
{

ব্যবহার (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists[SpVendorListName];

বিদ্বেষ specificItem = currentList.Items[vendorId];

প্রত্যাবর্তন নতুন Vendor(specificItem);

} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/mizuho")

}

[WebMethod]
// Assumes that the vendor name is unique, from a business perspective
জনসাধারণের Vendor GetSpecificVendorByVendorName(স্ট্রিং vendorName)
{
স্ট্রিং SpVendorSiteName; // Name of the actual MOSS site that hosts the vendor custom list.
স্ট্রিং SpVendorListName; // Name of the actual MOSS list containing vendors.

SpVendorSiteName = ConfigurationSettings.AppSettings["VendorListHostingSite"].ToString();
SpVendorListName = ConfigurationSettings.AppSettings["VendorList"].ToString();

ব্যবহার (SPSite site = নতুন SPSite(SpVendorSiteName))
{
ব্যবহার (SPWeb web = site.OpenWeb())
{

SPList currentList = web.Lists[SpVendorListName];

foreach (বিদ্বেষ vendorItem মধ্যে currentList.Items)
{
যদি (vendorItem["Vendor Name"] == শূন্য) অগ্রসর;

যদি (vendorItem["Vendor Name"].ToString().সমান(vendorName))
প্রত্যাবর্তন নতুন Vendor(vendorItem);
}

Vendor v = নতুন Vendor();
v.VendorPhone = "not found: " + vendorName;

প্রত্যাবর্তন v;

প্রত্যাবর্তন শূন্য;

} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/mizuho")

} // পদ্ধতি

[WebMethod]
জনসাধারণের Vendor[] GetVendorsOfType (স্ট্রিং filterType)
{

স্ট্রিং SpVendorSiteName; // Name of the actual MOSS site that hosts t
he vendor custom list.
স্ট্রিং SpVendorListName; // Name of the actual MOSS list containing vendors.

SpVendorSiteName = ConfigurationSettings.AppSettings["VendorListHostingSite"].ToString();
SpVendorListName = ConfigurationSettings.AppSettings["VendorList"].ToString();

Vendor[] resultList;
int-এ vendorIndex = 0;
resultList = নতুন Vendor[1000];

// Initialize the list with a default friendly message.
Vendor v = নতুন Vendor();
v.VendorName = "Select a vendor type to populate this list.";
resultList[0] = v;

// Convert the filter to lower case for easier string comparison later.
filterType = filterType.ToLower();

// If the filter type passed is "test", generate some simple data.
#অঞ্চল Filter type = "test"
যদি (filterType.Equals("test"))
প্রত্যাবর্তন GenerateTestVendors();
#endregion

যদি (সত্য)
{
ব্যবহার (SPSite site = নতুন SPSite(SpVendorSiteName))
{
ব্যবহার (SPWeb web = site.OpenWeb())
{

v = শূন্য;

SPList currentList = web.Lists[SpVendorListName];

// Iterate through all the items in the vendor list.
foreach (বিদ্বেষ vendorItem মধ্যে currentList.Items)
{

স্ট্রিং lowerVendorType;

lowerVendorType = vendorItem["PurchaseType"].ToString().ToLower();
lowerVendorType = lowerVendorType.Substring(3);

যদি (lowerVendorType.Equals(filterType))
{
resultList[vendorIndex ] = নতুন Vendor(vendorItem);
}
} // iterating thru all the vendors in the list


প্রত্যাবর্তন TrimVendorArray(vendorIndex, resultList);
// return resultList;

} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/mizuho")

} // if true

প্রত্যাবর্তন শূন্য;
}

ব্যক্তিগত Vendor[] TrimVendorArray(int-এ newsize, Vendor[] originalVendorArray)
{
Vendor[] trimmedArray;

যদি (newsize == 0) newsize = 1;
trimmedArray = নতুন Vendor[newsize];

int-এ currentCounter = 0;

জন্য (currentCounter = 0; currentCounter < newsize; currentCounter )
{
trimmedArray[currentCounter] = originalVendorArray[currentCounter];
}

প্রত্যাবর্তন trimmedArray;

}
}