banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Wed 27 January 2010 17:32

topoman
Participant occasionnel
Date d'inscription: 22 Apr 2009
Messages: 19

[ArcGIS Server 9.3] Web application avec une tache d'édition

Bonjour,

Je viens vers vous pour des conseils, mon problème est le suivant :

configuration : ArcGis Server 9.3 et ArcSDE/postgres

Je voudrais modifier la tâche EDITOR d'une Web application en ADF pour que lorsque la géométrie est saisie :

- certains champs doivent comporter une liste fermée évitant ainsi les erreurs de saisies.
- la géometrie doit comporter des documents multimédias : PDF, images etc. (j'ai testé d'utiliser les champs raster et blob mais ils ne sont pas supportés par la tâche EDITOR).

Avez vous des idées ou exemples ?
Une refonte complète de la tâche EDITOR (reprogrammation du code source) est-elle obligatoire?
Quelle est la meilleur façon de gérer les documents multimédias ? upload du fichier sur le serveur puis inscription de son chemin d'accès dans un champ de la géométrie ? ou usage des champs BLOB ou raster ?

Merci par avance pour votre aiguillage.

Dernière modification par topoman (Wed 27 January 2010 17:34)

Hors ligne

 

#2 Thu 28 January 2010 10:46

n314
Participant assidu
Date d'inscription: 6 Sep 2005
Messages: 697

Re: [ArcGIS Server 9.3] Web application avec une tache d'édition

Bonjour,

Pour avoir déjà plus que modifié la tâche d'édition, les fonctionnalités que vous souhaitez ne sont pas disponibles de base. Cela signifie que vous devrez effectivement vous mettre à coder. Sans aller jusqu'à refondre cette tâche (ie la reprogrammer complétement), vous allez devoir l'étendre au niveau du panneau d'édition des attributs notamments (http://webhelp.esri.com/arcgisserver/9. … g_task.htm).

Malheureusement, ce panneaux est un des rares à ne pas être accessible facilement:

The visibility and editability of attributes can be modified via attribute filtering (see discussion below).  The attribute labels and textboxes are generated internally by the EditAttributesPanel and are not available for explicit customization.


http://resources.esri.com/help/9.3/arcg … ortask.htm Néanmoins, un recours existe (unique selon moi sur le web) ici http://forums.esri.com/Thread.asp?c=158 … p;t=245196 via le code fournit par Andrei Gosman.

Pour répondre plus précisement aux questions:
_ S'agissant de la liste déroulante. De base, si le champ appartient à un domaine, une liste déroulante est créée. Ce problème peut donc être considéré comme réglé.
_S'agissant des documents multimédias. Pour avoir commencé à réfléchir à implémenter une fonctionnalité similaire, je serais partisan d'inscrire les documents dans la couche. Cela signifie donc l'emploi des champs blob et raster. Ceci permet un déplacement facile de la couche, un export complet, sans avoir à se soucier de communiquer également les documents associés. Attention néanmoins à ne pas afficher ces champs pour ne pas alourdir le volume de donné déjà échangé entre le client et le serveur... De plus, les documents images devraient être inscrits dans un champ de type raster si possible, afin de bénéficier des fonctionnalités des géodatabase (voir ici pour le principe de base, d'autre exemples facilement trouvables sur le web =http://support.esri.com/index.cfm?fa=k … mp;d=30796). Les autres types de documents iront dans un champ blob. Reste le problème d'implémenter  la fonctionnalité d'upload des documents puis d'inscription dans le bon champ... Vaut il mieux garder le panneaux standard d'édition des attributs et ajouter son propre panneaux chargé de cette fonctionnalité propre (se branchant sur l'entité en cours d'édition par exemple) ou implémenter son propre panneau ? Je pencherais, à la vue des nouveautés annoncées pour la 9.4 (=10!) et du rythme des correctifs esri (sp, patchs) pour la première solution, à mon sens plus facilement maintenable...

Hors ligne

 

#3 Wed 10 February 2010 11:40

topoman
Participant occasionnel
Date d'inscription: 22 Apr 2009
Messages: 19

Re: [ArcGIS Server 9.3] Web application avec une tache d'édition

Merci pour cette réponse,

En ce qui concerne le premier PB (listes déroulantes) : l'appartenance à un domaine marche impeccablement, est il possible de gérer automatiquement avec la tache d'édition d'ESRI les attributs d'une table jointe à la géométrie.

Exemple : un shape + une table liée (cardinalité 1-N) : la table liée comporte un champ VALEUR appartenant à un domaine D1 composé des valeurs (val1,val2,val3,val4), une géométrie peut être affecté d'une ou de plusieurs valeurs.


Et pour le second PB : la solution d'un panneau indépendant est une bonne solution, je suis entrain de tester le développement de cette tâche spécifique. J'ai testé une moulinette (asp) pour uploader un fichier sur le serveur hors web application d'ESRI cela marche très bien. Mais lors que je transpose mon code lors du développement de la tache sur une web application je n'arrive pas à récupérer les infos de mon objet fileupload (hasfile, filename) pour les afficher dans le taskresult je ne comprends pas trop pourquoi.

Dans le heading du taskresult je dois voir normalement le nom du fichier sélectionné mais le string heading reste vide.

Voici le code de ma tâche :

upload.ascx :

Code:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="upload.ascx.cs" Inherits="upload" %>
<asp:Panel ID="MonPano" runat="server" Height="277px" Width="355px">
    <asp:FileUpload ID="MonFichier" runat="server" />
    <br />
    <asp:Button ID="Up_Button" runat="server" onclick="Up_Button_Click" 
        Text="upload" />
    <br />
  
</asp:Panel>

upload.ascx.cs :

Code:

public partial class upload : ESRI.ArcGIS.ADF.Web.UI.WebControls.UserControlTaskPanel
{
  

    protected void Page_Load(object sender, EventArgs e)
    {

        //je donne la réference du boutton upload au scriptmanager
        System.Web.UI.ScriptManager arcriptManager = System.Web.UI.ScriptManager.GetCurrent(this.Page);
        arcriptManager.RegisterAsyncPostBackControl(Up_Button);
     }

    public override object ExecuteTask(object parameters)
    {
 // je récupère le paramètre du nom de fichier pour l'afficher dans le taskresult 
        string heading = parameters as string;
 
        string detail = "test";
       
 // j'affiche les string heading et detail dans le taskresult             
        ESRI.ArcGIS.ADF.Web.UI.WebControls.SimpleTaskResult simpleTaskResult = new ESRI.ArcGIS.ADF.Web.UI.WebControls.SimpleTaskResult(heading, detail);
        return simpleTaskResult;

    }
   
   
    protected void Up_Button_Click(object sender, EventArgs e)
    {
       // je donne le nom du fichier lors de l'execution de la tache
        this.Start(MonFichier.FileName);
       
    }
}

Hors ligne

 

#4 Wed 10 February 2010 12:13

n314
Participant assidu
Date d'inscription: 6 Sep 2005
Messages: 697

Re: [ArcGIS Server 9.3] Web application avec une tache d'édition

1) Il n'est de mémoire pas possible d'éditer une table liée sous ArcGIS Desktop... Et donc, encore moins en server...

Editing and joining tables

When you start an edit session and have joined data, columns from the target table can be edited, but you can't directly edit the data in the appended columns. If you add a field, it is added to the target table or layer and has no effect on the join tables. Appended columns can be referenced when calculating values in the columns of the target table, however.

To edit the joined data, you must first add the joined tables or layers to ArcMap. You can then perform edits on this data separately. These changes will be reflected in the joined columns.


http://webhelp.esri.com/arcgisdesktop/9 … g%20tables
2)
2_1) Concernant le panneau, je pensais plutôt à une instance de classe ESRI.ArcGIS.ADF.ArcGISServer.Editor.EditorPanel afin de s'insérer dans la tâche d'édition.
2_2) Concernant l'upload, les contrôles asp et ajaxcontroltoolkit dédiés à cette fonctionnalités sont plutôt pauvres. j'étais tombé récemment sur celui-ci, qui peut être plus sympa: http://flajaxianfileupload.codeplex.com/
2_3) Concernant le code fourni, il me semble un peu simpliste bien que n'ayant jamais étudié cette classe... Je vous invite à relire http://resources.esri.com/help/9.3/arcg … alkthrough et http://resources.esri.com/help/9.3/arcg … vpaths.htm ainsi que la documentation du contrôle d'upload que vous avez choisi.
Un exemple 'propre' peut être vu ici http://resources.esri.com/help/9.3/ArcG … 3a8f88.htm

Dernière modification par n314 (Wed 10 February 2010 12:15)

Hors ligne

 

Pied de page des forums

Powered by FluxBB