| Comme vous l’avez peut-être vu sur notre page facebook (https://www.facebook.com/MakeASign), notre projet a été sélectionné pour la finale internationale. Cela signifie que nous irons le présenter à Sydney en Australie du 6 au 10 juillet.
Nous aimerions également remercier encore une fois tous ceux qui nous ont aidés dans cette aventure, nos professeurs, Neomytic, le CMAP, M. Sandront et son fils.

|
|
Déjà 10 semaines que
nous nous sommes lancé dans l’aventure « Imagine Cup 2012 », organisé par
Microsoft, dans laquelle nous avions le désire de développer un ou plusieurs
programmes permettant de faciliter l’apprentissage du signage au travers
d’outils de reconnaissance gestuelles.
Nous avons finalement réussi à réaliser 2 programmes WPF : «
Sign Managment Software » et « Learning Software » fonctionnant tout deux sur un
environnement Windows, ainsi qu’une application phone développée pour
fonctionner sur un Windows Phone 7.
Maintenant place aux finales : le mercredi 2 mai nous
participerons à Bruxelles à la finale locale organisée par Microsoft représenté
par Lieve Goedhuys où nous défendrons via une présentation de 20 minutes notre
projet en effectuant une démonstration, en diffusant quelques vidéos mais
également en défendant bien sûr l’aspect business de notre projet.
De plus, nous devons également rendre à Microsoft avant le 2
mai une vidéo d’une durée de +/- 15 minutes. Celle-ci doit être « promotionnelle
» et explicative de notre projet et contiendra aussi bien des prises de vue
d’utilisation réelle de nos programmes mais également des explications sommaires
du développement de nos applications.
Enfin, si vous désirez nous suivre d’avantage et connaître la
progression de notre projet. Nous avons décidez de créer une adresse mail de
contact mais également de nous lancer dans les chaînes vidéo et réseaux sociaux.
Ainsi un compte Youtube, Twitter et Facebook ont étés créés dont voici les liens
:
|
| Introduction:
L’utilisation du cloud et de mettre en ligne notre base de
données ainsi que nos web services nous a paru indispensable, tel une évidence.
Grâce à l’utilisation d’Azure notre application pourras donc être accessible
n’importe où dans le monde du moment où il y a une connexion wifi ou 3G et
toutes nos données seront donc facilement accessibles tout en restant bien
entendu correctement protégées.
Création serveur:
Par le biais de notre école, nous nous sommes procurerez des
“pass student” afin de pouvoir créer notre propre serveur Azure et utiliser
toutes les fonctionnalités proposées.
-
Pour créer ce serveur, lorsque vous êtes connecté grâce à
votre compte Live ID et sur la page d’accueil “WindowsAzurePlatform” via http://windows.azure.com, cliquer sur
“database”, sélectionner l’abonnement et cliquer sur “Create” dans le ruban.
-
Ensuite, choisissez la bonne région (dans notre cas “North
Europe”).
-
Après cette étape, définissez un nom de compte et un mot de
passe qui seront votre compte admin du serveur SQL Azure (sysadmin) que vous
êtes en train de créer.
-
Il faut également ajouter des règles de pare-feu à votre
serveur. Attention car par défaut, même Windows Azure lui-même ne peut pas
accéder à votre serveur SQL Azure en train de voir le jour. Cela devient
facilement possible en ajoutant la simple règle avec l’adresse IP 0.0.0.0.
-
Enfin, vous disposez d’un serveur SQL Azure, physiquement
hébergé dans la région que l’on a choisie de type :
nomserveur.database.windows.net
Création/Migration de la base:
Avant toute chose, nous pourrons accéder à notre base SQL Azure de la même
façon qu’une base SQL Server via “Microsoft SQL Server Management Studio”. Ayant
déjà une base SQL pour notre programme, nous nous sommes donc intéresser au
faite de migrer celle-ci sur notre serveur Azure. Pour se faire, un outil est
mis à notre disposition : “SQL Azure Migration Wizard” qui permettre donc de
migrer aussi bien les données que les tables sur notre serveur. Cet outil permet
d’analyser et ensuite, si tout est correctement configurer, de migrer tout sur
le cloud.
- Nous avons donc utilisé cette façon de procéder, tout d’abord il faut mettre
le nom du serveur SQL en local ainsi que le nom de la base de données.
- Un nouvel écran apparait nous demandant si on veut migrer tous les objets ou
seulement certains, en fonction de votre travail, il faudra choisir la bonne
méthode.
- Par la suite, un script et un fichier .psp pour remonter les données sur
Azure sont créés.
- Après cela, il faut spécifier les informations de connexion de notre serveur
Azure, précédemment créer (voir le point ci-dessus).
- Ci-cela n’est déjà fait sur votre platform Azure, il faut créer votre base
de données qui sera hébergée sur votre serveur en précisant sa capacité.
- Enfin, dans le dernier menu, le moment d’uploader les scripts et les données
sur votre base de données apparait.
|
L’on peut facilement vérifier que l’upload à bien fonctionner en
nous connectant sur serveur Azure via “Microsoft SQL Server Management Studio”
et en interrogeant notre base de données ainsi que ces tables fraichement mise
sur le cloud. |
Création/Migration des web services:
Pour cette partie, voir le post ci-dessous…
|
| Nous avons actuellement 3 web
services:
- Le premier dédié aux utilisateurs qui leur permet de s'identifier
- Le second dédié aux signes, qui permet donc de récupérer la liste de signes
ainsi que la liste des langues actuellement disponible
- Le dernier est particulier car il s'agit d'un web service REST (Voir ici) qui
permet de récupérer des vidéos via un simple browser
Bien évidemment, transférer la base de données sans les web services ne
servirait à rien. Afin d'effectuer la migration de ces derniers, nous avons créé
un nouveau "Windows Azure Project" que nous avons ajouté à notre solution.
Un projet Azure nous permet d'ajouter des "rôles". Chaque rôle que nous avons
ajouté est en fait un projet contenant la BLL visée par la migration.
Une fois le projet de déploiement fini, il suffit de faire un clic droit sur
Publier. Ici, le wizard nous demande nos informations de connexion. Afin de
faciliter la publication, un lien nous permet de directement télécharger un
fichier "*.publishSettings" à partir d'un browser, où il suffit de rentrer nos
identifiants. On peut alors importer ces informations de connexion.
Une fois connecté, on peut alors rentrer le label utilisé pour identifier
notre service, l'environnement utilisé (Production ou Intermédiaire), la
configuration de build (Généralement Release ou Debug) et le type de service
(Cloud ou local)
Lors de la publication, un fichier *.cspkg et *.cscfg sont générés. Ils
seront uploadés vers Azure lors de la publication. On pourra aussi générer la
solution, et faire l’upload manuellement via la page de gestion d’Azure
(“Managment Portal”)
Il nous a fallu un peu plus d'1h40 après avoir cliqué sur "Publish" afin que
notre service soit prêt à l'utilisation. Ce temps représente le temps d'upload
des fichiers, le démarrage des 3 machines virtuelles qui vont faire tourner
notre solution, le déploiement,etc. Toutes ces étapes sont visibles dans le
Managment Portal.
Les upload qui suivent sont plus rapide car il n'est plus nécessaire de
préparer les machines virtuelles, il suffit de faire l'upload et de déployer les
web services.
|
| Première reconnaissance de signes via notre programme. Il s'agit d'un projet destiné à l'Image Cup 2012 et qui à pour but d'analyser et de comprendre la langue des signes via une Kinect ou un Webcam (http://www.mytic.be/IC2012/default.aspx) Musique: Circus Marcus - Les Accouplements Répétitifs |
| Concept: Nos applications WPF avancent à grand pas et pour améliorer l’aspect visuel de celles-ci, nous avons décidé d’implémenter quelques storyboards qui permettront d’effectuer diverses animations durant par exemple un chargement, un jeu, ... pour ne pas que nos applications paraissent “gelées”. MSDN défini le stroyboard comme étant une chronologie de conteneurs qui fournit des informations de ciblage sur l'objet et la propriété pour ses animations enfants. Réalisation: Pour la réalisation de nos différents storyboards nous avons utilisé l’outil “Microsoft Expression Blend 4”. Premièrement, nous déclarons et positionons correctement notre contrôle WPF (label, rectangle, image, etc.) dans notre page xaml via “Microsoft Visual Studio”. | <Label Style="{StaticResource ResourceKey=labelContent}" Grid.Row="3" Grid.ColumnSpan="4" HorizontalAlignment="Center" VerticalAlignment="Center" Name="labelStart" FontSize="100" /> | Ensuite après compilation, “Microsoft Expression Blend 4” se met à jour automatiquement et l’on peut créer facilement notre storyboard en jouant par exemple sur l’opacité, la position, le content, ... de notre contrôle dans le temps. Nous définissons donc les propriétés des objets désirés à un instant voulu et de ce fait, une animation se créera au cours du temps comme pour la réalisation d’un dessin animé. Il est donc possible de jouer sur de nombreuses propriétés de notre contrôle pour que ce dernier s’anime au cours du temps. Mise en place: Après avoir joué sur nos contrôle et enregistrement de notre stroyboard, notre code dans “Microsoft Visual Studio” se met à son tour à jour et nous pouvons remarquer l’ajout de notre stroyboard venant d’être créé en haut de notre page xaml dans le <Page.Resources> … </Page.Resources>. Par défaut, notre storyboard se lancera au démarrage de notre page car un évènement est automatiquement mis en place par “Microsoft Expression Blend 4” via : | <Page.Triggers> <EventTrigger RoutedEvent="FrameworkElement.Loaded"> <BeginStoryboard Storyboard="{StaticResource StoryboardStartSign}"/> </EventTrigger> </Page.Triggers> | Cependant, si nous désirons créer un stroyboard qui sera utilisé sur plusieurs de nos pages (dans notre cas un stroyboard de chargement), il suffira de déclarer celui-ci dans un dictionnaire de ressources (StoryboardDictionary.xaml) et ensuite dans notre App.xaml. Nous pourrons par conséquent réutiliser ceux-ci où bon nous semble. | <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary> <ResourceDictionary Source="StoryboardDictionary.xaml" ></ResourceDictionary> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> | Utilisation: Toutefois, pour pourvoir démarrer notre storyboard à un moment désiré, nous allons devoir procéder par étape. Imaginons que notre storyboard démarre après le clic sur un bouton : Dispatcher.BeginInvoke(new Action<Image>(UpdateStoryboardLS), Rotation); | Dans ce cas, nous passons au BeginInvoke la fonction à lancer (UpdateStoryboardLS) et sur quel élément le réaliser (Rotation). On démarrera juste notre storyboard via : App.sbdLoadingStart.Begin(this); | | App.tLoadingRotation = new Thread(new ThreadStart(AnimateLoadingRotation)); App.tLoadingRotation.Start(); | Ce thread animera notre storyboard tant que il est en en vie (IsAlive): | void AnimateLoadingRotation() { Thread.Sleep(500); while (App.tLoadingRotation.IsAlive) { Dispatcher.BeginInvoke(new Action<Image>((Image i)=> {App.sbdLoadingRotation.Begin(this);}), Rotation); Thread.Sleep(1000); } } | |
| Comme expliqué ici, lorsqu’une vidéo est présente en base de données, il est très facile de la récupérer dans un programme WPF, et de l’afficher dans un mediaElement, le plus facile étant d’enregistrer la vidéo sur disque pour ensuite utiliser l’uri du fichier en tant que source du mediaElement. Cette facilité disparait malheureusement avec Windows Phone 7. Les possesseurs de Windows Phone le savent, le système de fichier est assez contraignant. Lorsque vous programmez une application, les accès aux fichiers de l’utilisateur se font via des “choosers”, qui sont en quelque sorte des boites de dialogues que vous pouvez afficher pour que l’utilisateur choisissez une photo/vidéo/musique/… Vous pouvez aussi utiliser l’isolated storage, il s’agit d’un espace mémoire uniquement accessible par votre application où vous pouvez stocker ce que bon vous semble. Afin de faciliter la lecture de vidéo nous sommes partit sur l’objectif d’éviter les accès disques, et faire en sorte que la solution soit aussi utilisable avec le composant mediaElement que l’on trouve en WPF. Il a suffi de se rappeler nos cours de systèmes distribués afin de penser au web service REST. Un web service REST va nous permettre d’exposer les méthodes de notre web service via de simples opérations CRUD. Pour résumer, une tel configuration nous permettra d’accéder à notre vidéo via une url, du style: http://julien-pc:64672/ServiceVideo.svc/getVideo/1 où le ‘1’ représente l’identifiant de notre vidéo. Comment cela fonctionne-t-il? Par défaut, les web services WCF fonctionnent sur SOAP, et ne sont pas accessible via une opération CRUD. Il faut donc configurer un certain nombre de choses afin de permettre l’accès à nos vidéos: -
Le contrat WPF doit être modifié afin de préciser le chemin à utiliser pour accéder à une méthode | [OperationContract] [WebGet(UriTemplate = "getVideo/Id}")] Stream GetVideo(String Id); | -
La méthode doit bien entendu être déclarée dans le code du service. Elle renverra un Stream. L’avantage d’utiliser un Stream à la place d’un tableau de byte est que le mediaElement va gérer le buffering, et permettre de démarrer la vidéo même si l’entièreté de la vidéo n’est pas encore chargée sur le client. La méthode va simplement charger un tableau de byte à partir de la base de données pour le copier dans un Stream. -
Modifier le fichier de configuration afin d’utiliser un webHttpBinding. La modification du binding est nécessaire notamment pour prévenir le serveur gérant le web service qu’il ne doit pas exposer le service via SOAP, mais bien HTTP Le web service est maintenant accessible avec un simple navigateur. Lorsque l’on essaye d’accéder à l’url précédente, le navigateur proposera d’enregistrer la vidéo sur disque, qui pourra être lue comme n’importe quelle autre vidéo. L’url peut alors être utilisée en temps de source du mediaElement, autant sur Windows Phone qu’en WPF |
| Voici donc une vidéo de démonstration d’une première ébauche du programme, utilisant le traitement d’image OpenCV et les possibilités de la Kinect PC. Ce n’est bien entendu qu’un premier test affichant le squelette de la main. |
| Cet article fait suite à mon précédent, expliquant comment créer un fichier vidéo à partir d’une suite d’image. À la fin de cet article, nous étions capable de créer un fichier AVI, utilisant le codec Intel Indeo 4.5, et de l’enregistrer en base de données. Tout fonctionnait sans problème, mis à part la lecture sur Windows Phone 7, car le nombre de codec supporté est limité.
Afin de remédier à cela, nous avons mis en place un mécanisme de conversion lors de l’ajout afin d’utiliser un container MP4, utilisant le codec h.264. Ce format à de nombreux avantages, notamment un faible encombrement, mais aussi la possibilité d’être lu sur de nombreux systèmes, Windows Phone 7 en faisant partie.
Pour effectuer la conversion, nous utilisons le programme FFmpeg. C’est un utilitaire en ligne de commande, qui nous permet notamment de convertir des fichiers vidéo. Bien que l’on puisse l’utiliser comme DLL, il est bien plus simple de le démarrer en ligne de commande. L’utilisation de la ligne de commande en C# peut se faire facilement via ces quelques lignes de code:
Process Convert = new Process(); Convert.StartInfo = new ProcessStartInfo("FFmpeg.exe", "-i Source.avi -f mp4 Destination.mp4"); Convert.Start(); |
Une fois le fichier enregistré sur disque, l’enregistrement en base de données se fait de la même manière que le fichier .AVI que l’on utilisait précédemment. |
Afficher dans le navigateur Web /IC2012/_layouts/VisioWebAccess/VisioWebAccess.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 0x0 0x1 FileType vdw 255 Gérer les abonnements /_layouts/images/ReportServer/Manage_Subscription.gif /IC2012/_layouts/ReportServer/ManageSubscriptions.aspx?list={ListId}&ID={ItemId} 0x80 0x0 FileType rdl 350 Gérer les sources de données /IC2012/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rdl 351 Gérer les datasets partagés /IC2012/_layouts/ReportServer/DatasetList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rdl 352 Gérer les paramètres /IC2012/_layouts/ReportServer/ParameterList.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 353 Gérer les options de traitement /IC2012/_layouts/ReportServer/ReportExecution.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 354 Gérer les plans d'actualisation du cache /IC2012/_layouts/ReportServer/CacheRefreshPlanList.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 355 Afficher l'historique du rapport /IC2012/_layouts/ReportServer/ReportHistory.aspx?list={ListId}&ID={ItemId} 0x0 0x40 FileType rdl 356 Afficher les éléments dépendants /IC2012/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsds 350 Modifier la définition de la source de données /IC2012/_layouts/ReportServer/SharedDataSource.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsds 351 Afficher les éléments dépendants /IC2012/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 350 Gérer les rapports consultables à l'aide de clics /IC2012/_layouts/ReportServer/ModelClickThrough.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 352 Gérer la sécurité des éléments de modèles /IC2012/_layouts/ReportServer/ModelItemSecurity.aspx?list={ListId}&ID={ItemId} 0x0 0x2000000 FileType smdl 353 Régénérer le modèle /IC2012/_layouts/ReportServer/GenerateModel.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 354 Gérer les sources de données /IC2012/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType smdl 351 Charger dans le Générateur de rapports /IC2012/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderModelContext&list={ListId}&ID={ItemId} 0x0 0x2 FileType smdl 250 Modifier dans le Générateur de rapports /_layouts/images/ReportServer/EditReport.gif /IC2012/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderReportContext&list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 250 Modifier dans le Générateur de rapports /IC2012/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderDatasetContext&list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 250 Gérer les options de mise en cache /IC2012/_layouts/ReportServer/DatasetCachingOptions.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 350 Gérer les plans d'actualisation du cache /IC2012/_layouts/ReportServer/CacheRefreshPlanList.aspx?list={ListId}&ID={ItemId}&IsDataset=true 0x0 0x4 FileType rsd 351 Gérer les sources de données /IC2012/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rsd 352 Afficher les éléments dépendants /IC2012/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 353 Détails de la conformité javascript:commonShowModalDialog('{SiteUrl}/_layouts/itemexpiration.aspx?ID={ItemId}&List={ListId}', 'center:1;dialogHeight:500px;dialogWidth:500px;resizable:yes;status:no;location:no;menubar:no;help:no', function GotoPageAfterClose(pageid){if(pageid == 'hold') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/hold.aspx?ID={ItemId}&List={ListId}'); return false;} if(pageid == 'audit') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/Reporting.aspx?Category=Auditing&backtype=item&ID={ItemId}&List={ListId}'); return false;} if(pageid == 'config') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/expirationconfig.aspx?ID={ItemId}&List={ListId}'); return false;}}, null); return false; 0x0 0x1 ContentType 0x01 898 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 FileType xsn 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.2 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.3 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.4 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsx 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsm 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsb 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType ods 255 Historique des versions de l’ensemble de documents javascript:SP.UI.ModalDialog.ShowPopupDialog('{SiteUrl}/_layouts/DocSetVersions.aspx?List={ListId}&ID={ItemId}') 0x0 0x0 ContentType 0x0120D520 330 Envoyer à un autre emplacement javascript:GoToPage('{SiteUrl}/_layouts/docsetsend.aspx?List={ListId}&ID={ItemId}') 0x0 0x0 ContentType 0x0120D520 350 |
|
|
|
|
|
|
Bienvenue dans les blogs SharePoint. Utilisez cet espace pour fournir un message bref concernant ce blog ou ses auteurs. Pour modifier ce contenu, cliquez sur « Modifier la page » dans le menu « Actions du site ».
|
|
|
Afficher dans le navigateur Web /IC2012/_layouts/VisioWebAccess/VisioWebAccess.aspx?listguid={ListId}&itemid={ItemId}&DefaultItemOpen=1 0x0 0x1 FileType vdw 255 Gérer les abonnements /_layouts/images/ReportServer/Manage_Subscription.gif /IC2012/_layouts/ReportServer/ManageSubscriptions.aspx?list={ListId}&ID={ItemId} 0x80 0x0 FileType rdl 350 Gérer les sources de données /IC2012/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rdl 351 Gérer les datasets partagés /IC2012/_layouts/ReportServer/DatasetList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rdl 352 Gérer les paramètres /IC2012/_layouts/ReportServer/ParameterList.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 353 Gérer les options de traitement /IC2012/_layouts/ReportServer/ReportExecution.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 354 Gérer les plans d'actualisation du cache /IC2012/_layouts/ReportServer/CacheRefreshPlanList.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 355 Afficher l'historique du rapport /IC2012/_layouts/ReportServer/ReportHistory.aspx?list={ListId}&ID={ItemId} 0x0 0x40 FileType rdl 356 Afficher les éléments dépendants /IC2012/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsds 350 Modifier la définition de la source de données /IC2012/_layouts/ReportServer/SharedDataSource.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsds 351 Afficher les éléments dépendants /IC2012/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 350 Gérer les rapports consultables à l'aide de clics /IC2012/_layouts/ReportServer/ModelClickThrough.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 352 Gérer la sécurité des éléments de modèles /IC2012/_layouts/ReportServer/ModelItemSecurity.aspx?list={ListId}&ID={ItemId} 0x0 0x2000000 FileType smdl 353 Régénérer le modèle /IC2012/_layouts/ReportServer/GenerateModel.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType smdl 354 Gérer les sources de données /IC2012/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType smdl 351 Charger dans le Générateur de rapports /IC2012/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderModelContext&list={ListId}&ID={ItemId} 0x0 0x2 FileType smdl 250 Modifier dans le Générateur de rapports /_layouts/images/ReportServer/EditReport.gif /IC2012/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderReportContext&list={ListId}&ID={ItemId} 0x0 0x4 FileType rdl 250 Modifier dans le Générateur de rapports /IC2012/_layouts/ReportServer/RSAction.aspx?RSAction=ReportBuilderDatasetContext&list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 250 Gérer les options de mise en cache /IC2012/_layouts/ReportServer/DatasetCachingOptions.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 350 Gérer les plans d'actualisation du cache /IC2012/_layouts/ReportServer/CacheRefreshPlanList.aspx?list={ListId}&ID={ItemId}&IsDataset=true 0x0 0x4 FileType rsd 351 Gérer les sources de données /IC2012/_layouts/ReportServer/DataSourceList.aspx?list={ListId}&ID={ItemId} 0x0 0x20 FileType rsd 352 Afficher les éléments dépendants /IC2012/_layouts/ReportServer/DependentItems.aspx?list={ListId}&ID={ItemId} 0x0 0x4 FileType rsd 353 Détails de la conformité javascript:commonShowModalDialog('{SiteUrl}/_layouts/itemexpiration.aspx?ID={ItemId}&List={ListId}', 'center:1;dialogHeight:500px;dialogWidth:500px;resizable:yes;status:no;location:no;menubar:no;help:no', function GotoPageAfterClose(pageid){if(pageid == 'hold') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/hold.aspx?ID={ItemId}&List={ListId}'); return false;} if(pageid == 'audit') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/Reporting.aspx?Category=Auditing&backtype=item&ID={ItemId}&List={ListId}'); return false;} if(pageid == 'config') {STSNavigate(unescape(decodeURI('{SiteUrl}'))+'/_layouts/expirationconfig.aspx?ID={ItemId}&List={ListId}'); return false;}}, null); return false; 0x0 0x1 ContentType 0x01 898 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XsnLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 FileType xsn 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.2 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.3 255 Modifier dans le navigateur /_layouts/images/icxddoc.gif /IC2012/_layouts/formserver.aspx?XmlLocation={ItemUrl}&OpenIn=Browser&Source={Source} 0x0 0x1 ProgId InfoPath.Document.4 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsx 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsm 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType xlsb 255 Afficher dans le navigateur /IC2012/_layouts/xlviewer.aspx?id={ItemUrl}&DefaultItemOpen=1 0x0 0x1 FileType ods 255 Historique des versions de l’ensemble de documents javascript:SP.UI.ModalDialog.ShowPopupDialog('{SiteUrl}/_layouts/DocSetVersions.aspx?List={ListId}&ID={ItemId}') 0x0 0x0 ContentType 0x0120D520 330 Envoyer à un autre emplacement javascript:GoToPage('{SiteUrl}/_layouts/docsetsend.aspx?List={ListId}&ID={ItemId}') 0x0 0x0 ContentType 0x0120D520 350 |
|
|