Dynamics AX : Personnaliser un lookup dans une Dialog

Surcharger la méthode lookup d’un champ ou d’un contrôle n’a rien de compliqué lorsque que l’on se situe sur un formulaire classique AX. Cependant, lorsque l’on se trouve sur une dialogue créée par code (par exemple un lancement de batch), une petite astuce est nécessaire. Nous prendrons ci-dessous l’exemple d’une dialogue de sélection d’un compte à partir de la table du plan de comptes (LedgerTable). Nous ne filtrerons que les comptes qui ne sont pas bloqués dans les journaux.

  1. Dans la définition de la classe, on déclare simplement le contrôle sur lequel on fera un lookup :

    class TestDialog extends RunBase
    {
       FormStringControl ledgerAccountCtrl;
    }

  2. Dans la méthode dialog(), le nom du contrôle est important car il sera utilisé pour la définition de la méthode lookup :

    protected Object dialog(DialogRunbase dialog, boolean forceOnClient)
    {
       DialogRunBase ret;
       ;
       ret = super(dialog, forceOnClient);
       ledgerAccountCtrl = ret.formBuildDesign().addControl(FormControlType::String, 'LedgerAccount');
       ledgerAccountCtrl.extendedDataType(extendedTypeNum(LedgerAccount));
       return ret;
    }

  3. Dans la méthode dialogPostRun(), on déclare le controlMethodOverload pour que notre lookup soit appelé :

    public void dialogPostRun(DialogRunbase dialog)
    {
       ;
       super(dialog);
       dialog.dialogForm().formRun().controlMethodOverload(true);
       dialog.dialogForm().formRun().controlMethodOverloadObject(this);
       ledgerAccountCtrl = dialog.dialogForm().formRun().design().controlName('LedgerAccount');
    }

  4. Et enfin on définit la méthode lookup, avec la règle de nommage « nom du contrôle » + _lookup :

    void LedgerAccount_lookup()
    {
       SysTableLookup sysTableLookup;
       Query query = new Query();
       QueryBuildDataSource qbds;
       ;
       sysTableLookup = SysTableLookup::newParameters(tablenum(LedgerTable), ledgerAccountCtrl);
       qbds = query.addDataSource(tablenum(LedgerTable));
       qbds.addRange(fieldnum(LedgerTable, BlockedInJournal)).value(strfmt("%1", NoYes::No));
       // choix des colonnes à afficher dans le lookup
       sysTableLookup.addLookupfield(fieldnum(LedgerTable, AccountNum));
       sysTableLookup.addLookupfield(fieldnum(LedgerTable, AccountName));

       sysTableLookup.parmQuery(query);
       sysTableLookup.performFormLookup();
    }
Publié dans Dynamics AX | Marqué avec , , , | Laisser un commentaire

Dynamics AX : Créer un enregistrement dans PurchTable

L’exemple de code X++ ci-dessous décrit comment créer un enregistrement dans la table des commandes fournisseurs (PurchTable).

NumberSeq numberSeq;
PurchTable purchTable;

ttsbegin;
numberSeq = NumberSeq::newGetNumFromCode( PurchParameters::numRefPurchId().NumberSequence, true);

purchTable.clear();
purchTable.initValue();
purchTable.PurchId = numberSeq.num();
// remplacer dans la ligne suivante par le n° de compte fournisseur voulu
purchTable.OrderAccount = "20000";
purchTable.initFromVendTable();
if (!purchTable.validateWrite()) {
    throw Exception::Error;
}
purchTable.insert();

numberSeq.used();
ttscommit;

Publié dans Dynamics AX | Marqué avec , , | Laisser un commentaire

Disponibilité du Galaxy Nexus

Annoncé mi-octobre par Google et Samsung, le Galaxy Nexus devrait être disponible mi-décembre, en exclusivité chez SFR dans un premier temps (source : SFR). Il dispose des caractéristiques suivantes :

- Android 4.0 (Ice Cream Sandwich)
- Ecran 4,65 pouces (11,8 cm) Super Amoled HD
- Résolution de 1280 x 720 pixels
- Processeur Dual Core 1,2 Ghz ARM
- 1024 MB de RAM
- Mémoire disponible 16 Go
- Appareil photo 5 Mégapixels avec flash
- Caméra full HD 1080p
- Connectivité complète : 3G+, WiFi, Bluetooth, A-GPS
- Puce NFC et baromètre intégré
- Batterie 1750 mAh
- Valeur DAS : 0,303 W/Kg

L’interface a été retravaillée avec l’ajout de nouvelles fonctionnalités intéressantes, présentées dans la vidéo ci-dessous :

J’attends de voir les nouveautés du premier trimestre 2012 et surtout la sortie des forfaits Free Mobile avant de me décider à changer mon HTC Legend, mais je pourrais bien craquer pour ce modèle :)

Publié dans Mobile | Marqué avec , , , , | Laisser un commentaire

Configurer un projet web avec Eclipse WTP et Maven

Maven est un outil logiciel libre pour la gestion et l’automatisation de production des projets logiciels Java (source : Wikipédia). Nous allons ici nous intéresser à son intégration avec Eclipse. La version pour les développeurs Java EE n’inclut pas le support de Maven. Nous allons voir comment l’installer et l’utiliser pour configurer notre premier projet web.

Installation des pré-requis

Télécharger et installer les éléments suivants :
- Le JDK/JRE Java 6 ou 7 : lien
- Eclipse IDE for Java EE Developers : lien
- Tomcat 7.0 : lien

Installation du plugin Maven pour Eclipse WTP

Une fois Eclipse lancé, ouvrir le menu Help > Eclipse Marketplace… et lancer une recherche avec le mot-clé Maven. Les deux composants suivants doivent apparaître dans la liste :

- Maven Integration for Eclipse : inclut le support de Maven pour les projets Eclipse classiques
- Maven Integration for Eclipse WTP : inclut le support de Maven pour les projets web

Installer le composant Maven Integration for Eclipse WTP et redémarrer Eclipse.

Création d’un projet web basique

Dans Eclipse, ouvrir le menu File > New > Project…
- Sélectionner Maven > Maven Project
- Vous pouvez conserver l’option Use default Workspace location, et cliquer sur le bouton Next
- Sélectionner l’archetype maven-archetype-webapp comme ci-dessous :

- Entrez un Group Id (ex: com.mycompany) et un Artifact Id correspondant à votre application (ex: myapp) :

- Cliquez sur le bouton Finish.

Paramétrage du serveur Tomcat

Dans Eclipse, ouvrir le menu Window > Show View > Servers.

- Faire un clic droit dans l’onglet Servers > New > Server
- Sélectionner le type de serveur Apache > Tomcat v7.0 Server
- Poursuivre et sélectionner le répertoire d’installation de Tomcat, puis cliquer sur le bouton Next.
- Sélectionner votre projet web créé précédemment, puis cliquer sur le bouton Add.
- Cliquez sur le bouton Finish, votre projet est maintenant paramétré pour être déployé automatiquement sur le serveur.

Vous pouvez maintenant démarrer le serveur (Clic droit > Start) et afficher votre application à l’adresse http://localhost:8080/myapp/.

Votre premier projet Eclipse WTP avec Maven est maintenant configuré !

Publié dans Java/JEE | Marqué avec , , , | Laisser un commentaire

Bienvenue

Ancien étudiant de l’IUP d’Avignon, je suis titulaire d’un Master en Génie Informatique et Mathématiques, avec une spécialité en Innovation et E-Commerce. J’ai réalisé ce site dans le but de parler d’informatique, mais aussi pour vous présenter mon CV, ainsi que certains projets réalisés au cours de mes études ou à titre personnel.

Vous trouverez dans la rubrique CV :

  • Expérience professionnelle
  • Compétences
  • Formation
  • Loisirs et centres d’intérêt

Dans la rubrique Créations seront présentés :

  • Proxipuces.com
  • Les Copains d’Abord

N’hésitez pas à me contacter pour plus d’informations.

Publié dans Non classé | Un commentaire