kategori Achiv: BAB PANYÒL

Bab PANYÒL avanse recherche personnalisation — Ka anyen nan men modèn recherche XSLT

Mwen pa motifye avanse recherche XSLT trè souvan, Se konsa, li sanble tankou mwen menm Eskalad ti mòn chak fwa.

M' leson destriktè pi nouvo an, se pou sa: Ka questions lè qui yon kolòn. M' ap toujou chache avanse nan, Mwen gen kolòn jan l defini tankou sa a:

<rasin xmlns:xsi="http://www.w3.org/ lane 2001/XMLSchema-bagay">
<
Kolòn>
<
Kolòn fe-apel="GafTrainingInvoiceNumber" />
<
Kolòn fe-apel="GafTrainingInvoiceLocation" />
<
Kolòn fe-apel="WorkId"/>
<
Kolòn fe-apel="Grad"/>
<
Kolòn fe-apel="Tit"/>
<
Kolòn fe-apel="Otè"/>
<
Kolòn fe-apel="Taille"/>
<
Kolòn fe-apel="Ti chemen"/>
<
Kolòn fe-apel="Dekri teren"/>
<
Kolòn fe-apel="Ekri"/>
<
Kolòn fe-apel="SiteName"/>
<
Kolòn fe-apel="CollapsingStatus"/>
<
Kolòn fe-apel="HitHighlightedSummary"/>
<
Kolòn fe-apel="HitHighlightedProperties"/>
<
Kolòn fe-apel="ContentClass"/>
<
Kolòn fe-apel="IsDocument"/>
<
Kolòn fe-apel="PictureThumbnailURL"/>
</
Kolòn>
</
rasin>

XLST sa affiche la facture nombre Et facture kote te konn:

<p i>
Antrènman Facture nimewo: <xsl:valè-de fè chwa="GafTrainingInvoiceNumber"/>
<
br></br>
Antrènman Facture kote yo ye: <xsl:valè-de fè chwa="GafTrainingInvoiceLocation"/>
</
p i>

Sepandan, sélectionnez la gen pou référence jaden an nan tout ka lower, menm jan nan:

<p i>
Antrènman Facture nimewo: <xsl:valè-de fè chwa="gaftraininginvoicenumber"/>
<
br></br>
Antrènman Facture kote yo ye: <xsl:valè-de fè chwa="gaftraininginvoicelocation"/>
</
p i>


Jiskaske mwen corriger sa, rezilta rechèch ki te montre étiquettes yo (c'est-à-dire. "Antrènman Facture nimewo") Men se pa done.

BAB PANYÒL / InfoPath fòmilè sèvè (InfoPath 2007) ane ke yo bliye-desann lis pèfòmans

Kategori supplémentaires: InfoPath

Rezime: Yon InfoPath 2007 fòm pou yon sèvè bab PANYÒL bay yon lis ane ke yo bliye-desann de fournisseurs mare a yon lis personnalisé bab PANYÒL. Sou sélection yon machann, règles Deziyen yon valè jaden pou yon ti ponyen tèks jaden tankou kliyan ki pou vann repwezantan non, adrès, vil, eta, postal ak nimewo telefòn. Pèfòmans tèrib. Nou santi ke pèfòmans vin pi mal (a la mad yon ki pa lineyè) pou chak lòt jaden nou à wout sa a. C'est-à-dire, Si nou tout à la vente repwezantan non, li pran [x] kantite tan. Si nou à repwezantan kliyan ki pou vann, 1, 2, vil, eta, postal, li pran 10 fwa plus.

Solisyon: Ekri yon sèvis entènèt (echantiyon kòd ka jwenn Isit) sa te pase nan non yon machann Et renvoie tounen detay machann. apre, Deziyen yon jaden wout sa a. Malgre ke sa a twò semble lent, te gen okenn discernable diferans nan pèfòmans lè nou plase 1 jaden à 8 jaden. Kòm yon bonus te ajoute, utilisateurs jwenn yon frèt "kontakte sèvè a" Cylon effet pandan ke yap tann pou fòm pou envoke Et utiliser sèvis la ke rezilta yo.

BAB PANYÒL: Eksepsyon ki te fèt. (Eksepsyon de HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

AJOU: Nou pa janm detèmine rasin kòz pwoblèm sa a e li pa janm sifas ankò.

Nou remake pandan aplikasyon de yon direksyon devlopman sa rete konsa, utilisateurs de pa gen anyen pou accès yon sit ranmase kèt. Comptes sa kapab s' al sou prensipal, Men, lè ap eseye pou jwenn yon koleksyon an patikilye sit, yo jwenn jis yon écran vid. Pa erreurs affiche, jis yon blan blanch paj.

Nou lògin kòm yon sit koleksyon admin Et eseye ajoute yonn nan moun sa tankou yon sit admin Et fwa sa a, sou presan "Bon", nou resevwa mesaj sa a:

Eksepsyon ki te fèt. (Eksepsyon de HRESULT: 0x 80020009 (DISP_E_EXCEPTION))

Nou te pase kèk tan sou sa Et malerezman, pa t vini ak yon bagay itil. Te gen kèk mesaj nan ak demi lit dyagnostik, Men, li te di pou exactement en yo ak bagay sa a.

Nan fen, nou efase koleksyon direksyon an ak recréée li ak sa rezoud li.

Si mwen evalye sa a sa nan tan kap vini, M ap à pòs sa a.

BAB PANYÒL: Effectuées par lis personnalisés Et retounen filtrage done pou InfoPath

Biznis Scénario:

Bay yon metòd sa aux utilisateurs pou antre précis acha bons rapidement.

Pwoblèm biznis:

Kliyan la fè biznis ak plizyè santèn fournisseurs.

Fournisseurs sont "jan de" espesifik. Sa vle di yon machann vann ekipman konpitè (par. Dell) ou biwo ekipman (par. Staples).

Ki jan nou pèmèt fin utilisateurs ki kreye acha bons chwazi yon machann valab?

Solisyon biznis:

Différence fournisseurs nan sistèm via "jan de".

Pèmèt moun pou yo chwazi "jan de" de pwodwi Et donk bay yon ansanm filtrage de fournisseurs apwopriye.

Solisyon teknik:

Yon fòm InfoPath ki te fèt aux utilisateurs pou antre sou liy achte demandes.

De InfoPath te chwazi lis kontwole chwazi machann. Premye, moun kap itilize li an, sélectionne yon "acha tip". Sa limites yon dezyèm lis chwazi pou genyen sèlman fournisseurs ki vann pou sa jan akizisyon de. Sa se yon klasik en ane ke yo bliye-desann.

Fournisseurs yo sere nan yon bab PANYÒL lis personnalisé ak personnalisé colonnes pou machann attributs tankou non, adrès Et sitou "jan de".

Implement, yon sèvis entènèt pou yon kliyan InfoPath an pou pran sa une à personnalisé machann lis, retounen sèlman fournisseurs asòti yon fournis "jan de".

Envoke sèvis entènèt la via fòm InfoPath.

Leson Appris:

  • Premye, li sanble nesesè pou ale wout sa a. Mwen ta pwefere fè filtrage tout nan InfoPath, pa kreye yon sit sèvis fonctionnalités isit la. Sepandan, sèvè fòmilè yo pa bay kapasite filtraj mande l la. Nou kapab mete yon regleman sou yon "jan de" lis chwazi nan fòm pou asye de re-louvri la requête machann, Men, nou pa ka pran l' pou travay correctement. Se pou sa, li te fèt pou aplike pou sèvis entènèt la.
  • Sa se yon klasik "en chwazi lis" pwoblèm nan InfoPath a formulaires sèvè monde Et genyen anpil bon ekzanp yo la pou kapab eksplike kijan pou rezoud sa.
  • Yon valè vid pou yon kolòn machann lis nan pa retounen yon vid chaîne lè référencé kon sa: initItem["Machann non"]. Alaplas de, li retounen yon Nil.

Kèk lòt nòt:

  • M retounen nan yon tableau[] de fournisseurs paske mwen te gen kèk difikilte pou retounen yon ArrayList. InfoPath te se sou zafè sa Et mwen pa t gen tan ou an pant pou batay sou li. Sa a, Men wi, mete yon fo fwontyè sou an total kantite ke ti machann kap. Li tou forcé m' bezwen aplike jiskisi yon bòdu() metòd sou etalaj a paske mwen rayi lide pou retounen nan do 100 a nan fournisseurs Nil. InfoPath pa swen, Men, li te nagged ban mwen. (Ankò, sa a te vin pi fasil pase goumen InfoPath sou ArrayLists).
  • Mwen te aplike yon GetSpecificVendorByName() fonksyon osi byen, ki ka intéressant.

Kòd la:

itilize Sistèm;
itilize System.Web;
itilize System.Web.Services;
itilize System.Web.Services.Protocols;
itilize Microsoft.SharePoint;
itilize System.Configuration;

/// <rezime>
///
Sèvis machann: Bay machann ki gen rapò ak sèvis ki jòdi a consommée pa yon fòm kliyan an infopath.
///
/// Istwa:
/// ——–
/// 07/24/07: Inisyal codage, Paul J. Gavin de Conchango.
///
/// </rezime>
[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
piblik klas VendorService : System.Web.Services.WebService
{

/// <rezime>
/// Repwezante yon machann nan yon lis sharepoint repòtaj ki toujou kenbe pa MSUSA.
/// </rezime>
piblik klas Machann
{
piblik Machann() { }

piblik Machann(SPItem initItem)
{
Si (! (initItem["Machann non"] == null)) VendorName = initItem["Machann non"].ToString();
Si (! (initItem["Adrese 1"] == null)) VendorAddress1 = initItem["Adrese 1"].ToString();
Si (! (initItem["Adrese 2"] == null)) VendorAddress2 = initItem["Adrese 2"].ToString();
Si (! (initItem["Vil"] == null)) VendorCity = initItem["Vil"].ToString();
Si (! (initItem["VendorPhone"] == null)) VendorPhone = initItem["VendorPhone"].ToString();
Si (! (initItem["PurchaseType"] == null)) VendorType = initItem["PurchaseType"].ToString();
Si (! (initItem["Eta"] == null)) VendorState = initItem["Eta"].ToString();
Si (! (initItem["Postal"] == null)) VendorZip = initItem["Postal"].ToString();
Si (!(initItem["Fakse"] == null)) VendorFax = initItem["Fakse"].ToString();
Si (!(initItem["SalesRepName"] == null)) VendorSalesRepName = initItem["SalesRepName"].ToString();

VendorItemId = initItem.ID; // Inik Didantite toujou kenbe via bab PANYÒL.
}

piblik int VendorItemId;
piblik filè VendorName;
piblik filè VendorAddress1;
piblik filè VendorAddress2;
piblik filè VendorCity;
piblik filè VendorState;
piblik filè VendorZip;
piblik filè VendorPhone;
piblik filè VendorType;
piblik filè VendorSalesRepName;
piblik filè VendorFax;
}

piblik VendorService () {

//Supprimez apwe liy si w ap itilize fèt konpozan
//InitializeComponent();
}

pwive Machann[] GenerateTestVendors()
{
Machann[] resultList;
resultList = nouvo Machann[100];

Machann v;
v = nouvo Machann();
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 = nouvo Machann();

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 = nouvo Machann();
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;

retounen resultList;

}

[WebMethod]
piblik Machann GetSpecificVendorById(int vendorId)
{
filè SpVendorSiteName; // Non aktyèl bab PANYÒL sit la ki hôtes machann lis koutim.
filè SpVendorListName; // Non aktyèl bab PANYÒL lis ki gen fournisseurs.

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

itilize (SPSite kote ki gen = nouvo SPSite(SpVendorSiteName))
{

itilize (SPWeb Web = direksyon. OpenWeb())
{

Splist.update() currentList = web. Lis[SpVendorListName];

SPItem specificItem = currentList.Items[vendorId];

retounen nouvo Machann(specificItem);

} // w ap itilize entènèt spweb = site.openweb()
} // w ap itilize kote ki gen spsite = spsite nouvo("http://localhost/mizuho")

}

[WebMethod]
// Que la rele machann inik, nan yon pèspektiv nan afè biznis
piblik Machann GetSpecificVendorByVendorName(filè être)
{
filè SpVendorSiteName; // Non aktyèl bab PANYÒL sit la ki hôtes machann lis koutim.
filè SpVendorListName; // Non aktyèl bab PANYÒL lis ki gen fournisseurs.

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

itilize (SPSite kote ki gen = nouvo SPSite(SpVendorSiteName))
{
itilize (SPWeb Web = direksyon. OpenWeb())
{

Splist.update() currentList = web. Lis[SpVendorListName];

foreach (SPItem vendorItem nan currentList.Items)
{
Si (vendorItem["Machann non"] == null) «««;

Si (vendorItem["Machann non"].ToString().Fèt pou l egal(être))
retounen nouvo Machann(vendorItem);
}

Machann v = nouvo Machann();
v.VendorPhone = "pa te jwenn: " + être;

retounen v;

retounen null;

} // w ap itilize entènèt spweb = site.openweb()
} // w ap itilize kote ki gen spsite = spsite nouvo("http://localhost/mizuho")

} // metòd

[WebMethod]
piblik Machann[] GetVendorsOfType (filè filterType)
{

filè SpVendorSiteName; // Non aktyèl bab PANYÒL sit la ki hôtes t
lis repòtaj li machann.
filè SpVendorListName; // Non aktyèl bab PANYÒL lis ki gen fournisseurs.

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

Machann[] resultList;
int vendorIndex = 0;
resultList = nouvo Machann[1000];

// Initialiser ansanm ak yon mesaj amikal defo.
Machann v = nouvo Machann();
v.VendorName = "Chwazi yon machann tip pou peple lis sa a.";
resultList[0] = v;

// Konvèti filtè an pou yo ka pi ba pou vin pi fasil kòd konpare pi ta.
filterType = filterType.ToLower();

// Si jan filtre de te pase se "tès", pwodui kèk done senp.
#rejyon Filtre tip = "tès"
Si (filterType. À(tès""))
retounen GenerateTestVendors();
#endregion

Si (vre)
{
itilize (SPSite kote ki gen = nouvo SPSite(SpVendorSiteName))
{
itilize (SPWeb Web = direksyon. OpenWeb())
{

v = null;

Splist.update() currentList = web. Lis[SpVendorListName];

// Une nan tout atik nan lis machann.
foreach (SPItem vendorItem nan currentList.Items)
{

filè lowerVendorType;

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

Si (lowerVendorType. À(filterType))
{
resultList[vendorIndex ] = nouvo Machann(vendorItem);
}
} // effectuées thru tout fournisseurs nan lis la


retounen TrimVendorArray(vendorIndex, resultList);
// retounen resultList;

} // w ap itilize entènèt spweb = site.openweb()
} // w ap itilize kote ki gen spsite = spsite nouvo("http://localhost/mizuho")

} // si tout bon

retounen null;
}

pwive Machann[] TrimVendorArray(int newsize, Machann[] originalVendorArray)
{
Machann[] trimmedArray;

Si (newsize == 0) newsize = 1;
trimmedArray = nouvo Machann[newsize];

int currentCounter = 0;

Depi (currentCounter = 0; currentCounter < newsize; currentCounter )
{
trimmedArray[currentCounter] = originalVendorArray[currentCounter];
}

retounen trimmedArray;

}
}