REST web service - InfoPath Dev
in

InfoPath Dev

REST web service

Last post 04-26-2012 09:56 AM by Jimmy. 11 replies.
Page 1 of 1 (12 items)
Sort Posts: Previous Next
  • 04-24-2012 06:54 AM

    REST web service

    bonjour tout le monde,

    je suis nouveau sur Infopath,

    j'avais developé une application avec InfoPath 2010 pour gérer des fichiers sous la forme d'une liste, après j'ai utilisé les entrées de cette liste pour effectuer une recherche bien définie basée sur ces entrées dans le formulaire Infopath. En outre j'ai utilisé l'interface de REST web service qui permet de définir des filtres de requêtes au niveau du serveur.

    mon seul souci c'est que en utilisant startswith ça marche très bien mais quand j'utilise contains ça ne marche pas alors que moi j'aurai besoin de travailler avec contains, voici mon exemple:

    if (sfield1.Value.ToString() != "")

    {

    strFilter +=
    " and startswith(RaisonSocialDuClient, '" + sfield1 + "')";

    }

     mais si j'utilise :

    if (sfield1.Value.ToString() != "")

    {

    strFilter +=
    " and contains(RaisonSocialDuClient, '" + sfield1 + "')";

    }

    ca ne marche pas et moi je veux un résultat quand sfield1 contient une partie de RaisonSocialDuClient et non pas commence avec.

    si vous avez une idée sur cela marci de m'aider.

    merci d'avance.

    MADOURI 

  • 04-24-2012 07:56 AM In reply to

    J'utilise Google Translate - pardonne aucune erreur.
    Je crois que vous devez utiliser la fonction substringof.

    Êtes-vous en utilisant SharePoint OData?

    La syntaxe est la suivante:
    bool substringof(string po, string p1)

    Voici un lien vers OData filtrage: http://www.odata.org/documentation/uri-conventions#FilterSystemQueryOption

    Ainsi, votre code serait:

    if (sfield1.Value.ToString() != "")
    {
    strFilter += " and substringof('" + sfield1 + "', RaisonSocialDuClient) eq true";
    }

    Hilary Stoupa

  • 04-25-2012 01:30 AM In reply to

    bonjour,

    merci pour votre réponse.

     je viens de faire un test avec substringof mais ça n'a pas marché.

    c'est trop bizard que:

    http://vmbksshp01:8080/_vti_bin/listdata.svc/BOSEBOA?$filter=startswith( RaisonSocialDuClient, 'test')   donne un résultat mais

    http://vmbksshp01:8080/_vti_bin/listdata.svc/BOSEBOA?$filter=substringof( RaisonSocialDuClient, 'test')   ne donne pas un résultat.

     merci à vous.

  • 04-25-2012 04:10 AM In reply to

    Quelles sont les valeurs que vous avez essayé d'utiliser?  contains() ne peut pas trouver que les valeurs que contiennent sfield1 comme une parole entière.  Par exemple, si RaisonSocialDuClient est 'Aller au magasin' et sfield1 est 'mag', contains() ne va trouver pa cette valeur.

    En cet cas, je pense que LIKE vous servirait bien:

    strFilter += " and RaisonSocialDuClient LIKE '%" + sfield1.Replace("'", "''").Replace("%", "[%]") + "%'";

    Comment vous paraît ça?

    Jimmy Rishe / Software Developer / Microsoft MVP
    Qdabra Software
  • 04-25-2012 06:30 AM In reply to

    j'avais essayé avec toutes les valeurs presque et malheureusement il y a que startswith et eq qui marche.

    quand je met

    strFilter += " and RaisonSocialDuClient eq '" + sfield1 + "'";

    ou

    strFilter += " and startswith(RaisonSocialDuClient , '" + sfield1 + "')"; ça marche trés bien mais avec les autres ça ne marche pas et je ne sais pourquoi.

    Merci Jimmy pour votre proposition mais C# ne reconnais pas sfield1.Replace.

  • 04-25-2012 06:50 AM In reply to

    Ne prêtez attention pas à ma réponse antérieur.  Pensais que vous utilisez SQL ici.

     Il me semble que votre usage de substringof() pourrait être à l'envers.  Avez-vous essayé ça, comme Hilary nous a montré?:

         strFilter += " and substringof('" + sfield1 + "', RaisonSocialDuClient)";

    Jimmy Rishe / Software Developer / Microsoft MVP
    Qdabra Software
  • 04-25-2012 07:14 AM In reply to

    Ouiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

    Enfin ça marche avec

     strFilter += " and substringof('" + sfield1 + "', RaisonSocialDuClient)";

    merci beucoup Jimmy et Hilary

  • 04-26-2012 01:52 AM In reply to

    re bonjour,

    s'il vous plait, pour faire la même chose mais pour une date qu'est ce que je doit utiliser au lieu de substringof

    merci à vous

  • 04-26-2012 08:02 AM In reply to

    En utilisant Google Translate nouveau ....
    Je ne suis pas tout à fait comprendre la question? Votre champ que vous filtrez sur une date? Vous avez besoin de trouver une date qui contient une certaine valeur?
    Peut-être que vous pouvez fournir un bit de données expliquant ce que vous devez faire, comme, vous avez besoin pour obtenir toutes les données lorsque le mois est le même ....

    Il existe des filtres de date dans OData URI, comme:

    http://services.odata.org/Northwind/Northwind.svc/Employees? $ filter = mois (date de naissance) eq 12

    Hilary Stoupa

  • 04-26-2012 08:53 AM In reply to

    je veux appliquer le filtre pour un champ de format date, par exemple je veux chercher tout les enregistrements de ma liste pour une date précise (date de création).

    pour mieux m'expliqué je veux faire la même chose que le champ RaisonSocialDuClient qui est de type STRING avec un autre champ date.

  • 04-26-2012 09:28 AM In reply to

    Ne serait-ce juste être un filtre d'équivalence? Vous pourriez avoir à formater votre champ de date d'une manière spécifique en fonction de la source de données - mais vous devriez être en mesure d'interroger votre liste et de voir comment les données sont renvoyées, puis formatez votre date de votre XML pour correspondre.

     

    Hilary Stoupa

  • 04-26-2012 09:56 AM In reply to

    Je pense que vous pourriez aussi utiliser les fonctionnes year(), month(), et day():

    "year(Created) = " + date.Substring(0, 4) + " and month(Created) = " + date.Substring(5, 2) + " and day(Created) = " + date.Substring(8, 2)

    Jimmy Rishe / Software Developer / Microsoft MVP
    Qdabra Software
Page 1 of 1 (12 items)
Copyright © 2003-2019 Qdabra Software. All rights reserved.
View our Terms of Use.