Envoyer un mail avec une pièce jointe en VBS

Voici comme envoyer un mail avec un script Visual Basic (VBS) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
dim objOutlk   
dim objMail
dim strMsg

const olMailItem = 0

set objOutlk = createobject("Outlook.Application")
set objMail = objOutlk.createitem(olMailItem)
objMail.To = "toto@titi.fr"
objMail.cc = "titoititi.fr"

objMail.subject = "Titre du mail"
   
    strMsg = "Bonjour," & VbCrLf
    strMsg = strMsg & VbCrLf & "En pièce jointe vous trouverez 1 fichier : " & VbCrLf
    strMsg = strMsg & "- Le fichier en piece jointe contient toto."
    strMsg = strMsg & VbCrLf & "Bien cordialement."

    objMail.attachments.add("C:\piece_jointe.txt")
    objMail.body = strMsg
    objMail.send

set objMail = nothing
set objOutlk = nothing

Utiliser scrollTop() avec jQuery

Pour cette exemple pensez à implémenter la bibliothèque jQuery Documentation jQuery.

1
2
3
4
<div>
Il fait beau, le soleil brille, je mange du pain, le ciel est bleu, ma voiture est rouge, mon portable est noir.
</div>
<button>Retourne la position verticale en 'pixel' de la scrollbar.</button>
1
2
3
4
5
6
7
$(document).ready(function ()
{
    $("button").click(function ()
    {
        alert("La position verticale de la scrollbar est de : " + $("div").scrollTop() + " px");
    });
});
1
2
3
4
5
6
7
div
{
    border:1px solid black;
    width:100px;
    height:100px;
    overflow:auto;
}

III. Définir le processus unifié

Le processus unifié répond aux exigences fondamentales suivantes :
– être guidée par les besoins des utilisateurs
– être centrée sur l’architecture logicielle
– être itérative et incrémentale

Il ne s’agit pas d’un cycle en cascade séquentiel. Le cycle de développement se compose de nombreuses itérations.

Les phases :

Les phases d’un processus de développement sont des états de celui­-ci à un instant t. Le cycle de développement du Processus Unifié organise les tâches et les itérations en quatre phases :
-­ Inception : spécification des besoins et aussi une sorte d’étude faisabilité où on effectue les recherches nécessaires pour décider si on poursuit ou non le projet.
­ – Élaboration : on développe de façon incrémentale l’architecture du noyau, les risques et la plupart des besoins sont identifiés.
-­ Construction : on construit des sous­-ensembles exécutables et stables du produit final­ .
– Transition : le produit final est livré en version bêta à la disposition des utilisateurs.

Les activités :

Les activités représentent les actions à effectuer au cours d’une phase : une phase passe par l’ensemble des activités. Le temps passé par activité est fonction des phases.

Les activités de développement sont définies par des disciplines ou workflows fondamentales suivantes : Modélisation métiers, Exigences, Conception, Implémentation, Tests, Déploiement, Gestion de la configuration, Gestion de projet, Environnement.

La répartition de l’effort change avec le temps. Les première itérations ont tendance à mettre l’accent sur certaines activités (analyse et conception), les autres itérations moins. Les efforts seront ensuite portés sur l’implémentation, les tests et le déploiement.

Modélisation de métier Concepts importants Modèle, diagramme …
Exigences Compréhension et expression des besoins et des exigences du client. Modèle d’analyse, diagramme des cas d’utilisation, spécifications supplémentaires, glossaire, scénarios, prototypage de l’IHM, plan de tests de validation
Conception Décrit les différentes vues (fonctionnelles, dynamique et statique) d’une architecture. diagramme de classes de conception, diagramme d’interaction (séquence), diagramme d’activités et/ou d’états, diagramme de déploiement, plan de tests d’intégration
Implémentation C’est le résultat de la conception pour implémenter le système sous formes de composants. On planifie les intégrations des composants pour chaque itération, On produit les classes et les sous­systèmes sous formes de codes sources. code source, scripts, binaires, exécutables et autres éléments du même type (tables du base de données). Respect des standards de codage, diagramme de composant, diagramme de déploiement, plan de tests unitaires
Test Les tests permettent de vérifier des résultats de l’implémentation en testant la construction. Pour mener à bien ces tests, il faut les planifier pour chaque itération, les implémenter en créant des cas de tests, effectuer ces tests et prendre en compte le résultat de chacun. rapport des tests unitaires, d’intégration et de validation
Déploiement Couvre la configuration du système à livrer. manuels d’installation et d’utilisation
Gestion de la configuration Contrôle les modifications du système. système de gestion de version (subversion)
Gestion de projet Décrit différentes stratégies de travail avec un processus itératif. diagramme de gantt, répartition des tâches
Environnement Couvre l’infrastructure nécessaire demandée pour développer. ressources opératives, logicielles, matérielles et de documentation

Définir un processus itératif et adaptatif

Historique :

Historiquement, il y a deux approches pour la réalisation d’un processus de développement :­
– cycle de vie séquentiel en cascade (le cycle en V) où le logiciel est pleinement spécifié par l’analyse, puis pleinement conçu et enfin pleinement implémenté.
­ – prototypage rapide : une portion du logiciel est initialement développé et évalué. Le logiciel évolue ensuite grâce
à des améliorations (répétitions des étapes d’analyse, conception et implémentation).

Développement Itératif et Incrémental :

Le développement itératif s’organise en une série de développement très courts de durée fixe nommée itérations. Le résultat de chaque itération est un système partiel exécutable, testé et intégré (mais incomplet). Chaque itération
comprend ses propres activités : analyse des besoins, conception, implémentation et tests. Le résultat d’une itération n’est pas un prototype expérimental ou « jetable ». Comme le système croît avec le temps de façon incrémentale, cette méthode de développement est nommée développement itératif et incrémental.

Définir l’analyse et la conception orientées objet

Définition :

Analyse : Construire le bon système.
Conception : bien construire le système souhaité.

L’analyse :

L’analyse met l’accent sur une investigation du problème et des besoins plutôt que sur la recherche d’une solution.

On distinguera :
­ l’analyse des besoins : l’investigation des besoins
­ l’analyse orientée objet : l’investigation des objets du domaine

L’analyse orientée objet est davantage tournée vers la recherche et la description des objets (ou concepts) du domaine du problème.

La conception :

La conception sous­entend l’élaboration d’une solution répondant aux besoins plutôt que la mise en oeuvre de cette solution.

L’implémentation :

Les classes d’objets et leurs relations de la phase de conception sont traduites en une implémentation dans un langage de programmation. On peut aussi parler de fabrication ou de construction concrète du système. Les décisions difficiles devront avoir été prises pendant la phase de conception.

L’approche :

Le terme « orienté objet » signifie que l’on organise le logiciel comme une collection d’objets dissociés.
Ces objets comprennent à la fois : une structure de données (attributs) et un comportement (opérations). Les quatre aspects à retenir qui caractérisent une approche orientée objet sont :
­ – L’identité : les objets
­ – La classification : les objets qui ont les mêmes structure de données (attributs) et le même comportement (opérations) sont regroupées en une classe. Une classe est une abstraction qui décrit des propriétés pertinentes dans le contexte d’une application et ignore les autres.
­ – Le polymorphisme : la même opération peut se comporter différemment suivant les classes.
­ – L’héritage : le partage des attributs et des opérations entre classes. La possibilité de factoriser des propriétés communes à plusieurs classes est l’un des principaux avantages d’un système orienté objet.

Développement :

Quelques règles essentielles :
­ – Se concentrer sur les aspects essentiels sur ce qu’est un objet et sur ce qu’il fait avant de décider comment il doit être implémenté.
­ – Spécifier ce qu’est un objet plutôt que sur la façon dont il est utilisé.
­ – L’utilisation d’un objet est souvent modifiée pendant le développement.
­ – Les autres concepts (fonctions, relations, évènements) seront organisés autour des objets.

Définir une planification des tâches

Le diagramme de GANTT est un outil permettant de modéliser la planification de tâches nécessaires à la réalisation d’un projet. Il permet de visualiser dans le temps les diverses tâches liées composant un projet et donc de suivre l’avancement de celui-ci.

Principe :
Dans un diagramme de Gantt, on représente :
­- en abscisse les unités de temps (exprimées en mois, en semaine ou en jours)
­- en ordonnée les différentes tâches

Ce diagramme permet :­
– de déterminer les dates de réalisation d’un projet,­
– d’identifier les marges existantes sur certaines tâches,
­- de visualiser d’un seul coup d’Å“il le retard ou l’avancement des travaux

Il existe de nombreux outils spécialisés comme Microsoft Project. Il existe par ailleurs des équivalents libres de ce type de logiciel. On préconisera l’utilisation de planner sous Linux.

Avec le logiciel GANTT vous pouvez déterminer :
– Délais :
Déterminer les dates au plus tôt, où peut commencer une opération, et au plus tard, date la plus défavorable mais qui ne mettra pas le projet en péril. Les dates au plus tard sont les dates à surveiller dans un projet.

– Jalons :
De plus, il est possible de faire apparaître sur le planning des événements importants autre que les tâches elles
­mêmes, constituant des points d’accroche pour le projet : il s’agit des jalons (milestones). Les jalons permettent de scinder le projet en phases clairement identifiées, évitant ainsi d’avoir une fin de projet à trop longue échéance. Un jalon peut être la production d’un document, la tenue d’une réunion ou bien encore une version livrable du projet. Les jalons sont des tâches de durée nulle, représentées sur le diagramme par un symbole particulier, la plupart du temps un triangle à l’envers ou un losange.
Exemple : S’il y a 3 revues il y a 3 jalons (Revue 1, revue 2 et la revue finale).

– Enchaînement des tâches :
Dans un projet, les tâches doivent généralement être accomplies dans un ordre précis. Pour garantir que le projet se déroule dans un ordre précis, les logiciels de Gantt vous permettent d’enchaîner les tâches de façon à ce qu’elles dépendent les unes des autres.

Définir une planification itérative

Une planification itérative est pilotée par le client et les risques.

Cela signifie que les objectifs des premières itérations sont choisis afin de d’identifier les risques les plus importants et de construire les fonctionnalités visibles qui comptent le plus pour le client.

Donc nous pouvons faire un tableau comme ci-dessous :

Avec :
– Le nom du cas d’utilisation.
– La priorité fonctionnelle (déterminé par le client).
Exemple: Le client veut un logiciel de gestion des stocks avec option pour visualiser le produit.
On peut donc en conclure que ce sa priorité est la gestion des stocks et non la visualisation des stocks.
– Les risques techniques (déterminé par le chef du projet via une échelle, haut moyen bas ou sur dix …).
– Le numéro de l’itération (à faire pour la première version du logicielle ou la seconde …).

Exemple :

Cas d’utilisation Priorité Risque Itération #
Rechercher des ouvrages Haute Haut 1
Gérer son panier Haute Moyen 2
Consulter l’aide en ligne Faible Faible 3

Rédiger les tests de validation

Objectifs :
Vérifier que le produit réalisé est le bon.

Ces tests, quels qu’ils soient, sont planifiés à l’avance, dans l’étape correspondante à leur niveau de détails. Cela signifie qu’il faut, dans chaque étape du processus, spécifier quels tests seront effectués, à quel moment, par qui, dans quelles conditions, avec quels moyens et surtout de quelle manière. Le cahier des charges définit les besoins et exigences du client pour la réalisation du projet. En fin de cycle, il faudra donc vérifier que le produit réalisé
correspond à ce cahier des charges.Conçus dès les spécifications, les tests de validation permettent de vérifier l’adéquation du produit aux exigences fonctionnelles du client. Ils vérifient que le produit réalisé est le bon.

Donc même si les tests se déroulent parmi les activités finales du projet, ils se préparent dès le début.

Exemple :

Début de projet :

Désignation Démarche à suivre Résultat attendu oui/non Remarques
Déplacement d’un objet - Sélectionner dans la barre d’outil l’icône correspondante à un objet.
- Cliquer sur le champ de travail pour créer l’objet.
- Déplacer l’objet sur le champ de travail.
- Cliquer sur Annuler.
L’objet revient à sa position initiale.

Fin de développement :

Désignation Démarche à suivre Résultat attendu oui/non Remarques
Déplacement d’un objet - Sélectionner dans la barre d’outil l’icône correspondante à un objet.
- Cliquer sur le champ de travail pour créer l’objet.
- Déplacer l’objet sur le champ de travail.
- Cliquer sur Annuler.
L’objet revient à sa position initiale. non L’objet disparaît du champ de travail

Démarche de modélisation

Premièrement : Ne pas vouloir faire tous les diagrammes qu’il existe.

Quatre grandes parties :

1) Partie modélisation des exigences :
- Exprimer le besoin (fichier texte),
– Diagramme de Cas d’utilisation,
– Maquette (brouillon, papier, …)

2) Analyse :
- Diagramme d’Activité,
– Diagramme de Classe d’analyse (complet avec le peu d’élément que vous avez),
– Diagramme de séquence (partiel, les différentes boucles et interactions entre classes …).

3) Conception :
- Diagramme de Classe de conception (complet et le plus finalisé possible),
– Diagramme de séquence de conception complet (Noms des fonctions, valeurs des variables …).

4) Implémentation :
- Codage.

Tableau à taille fixe

1
2
3
4
5
6
7
8
9
10
11
<table border="1">
  <tr>
    <td>taille de </td>
    <td class="pers">taille de texte</td>
  </tr>
  <tr>
    <td>taille de texte longue et interminable,taille de texte longue et interminable, taille de texte longue et interminable,  taille de texte longue et interminable, taille de texte longue et interminable
</td>
    <td class="pers">taille de texte</td>
  </tr>
&lt;/table
1
2
3
4
5
6
7
8
table {
  width:900px;
}
.pers{
   background:silver;
   max-width:50px;
   min-width:50px;
}