|
Les documents liés au contact
Dernière étape de la construction de cette
gestion de contact, la possibilité de lier des documents, notes
ou lettres, voir des photos, en utilisant la table Data et le formulaire
DataEntry de cette table. Nous allons brancher l'interface de la table
Contact sur la définition d'interface utilisateur xShell.
Ouvrez l'éditeur
d'interface utilisateur
Si ce n'est pas la première dans la liste, sélectionné
la définition "xShell". Cliquez sur le bouton "Dupliquer".
Ce bouton duplique la définition courante. Saisissez dans le champ
Nom de l'interface "Def_Document". C'est la définition
qui va être chargée à partir de la fiche du contact
lors de l'ajout ou du double clic.
Ne changez rien sur la page "Liste". Passez directement sur
la page "Saisie". Dans le champ "Sur chargement" tapez
le nom de la méthode Document_SaisieSurChargement que vous allez
créer ensuite. Voici le code de cette méthode:
Document_SaisieSurChargement
LECTURE SEULEMENT([Contact])
Si (Non(o
("Theme";o Exist )->))
rcd_SelectAll
(<>ptrIndex)
$ptr:=rcd_GetFieldPointer
(<>ptrIndex;rcdDataValue )
rcd_GetIndexByDataName
(rcd_GetDataName
;"French";Opt )
rcd_SearchIndex
("Theme")
$ptr:=rcd_GetFieldPointer
(<>ptrIndex;rcdDataValue )
$ptrArray:=o
("Theme";Est un tableau texte
)
VALEURS DISTINCTES($ptr->;$ptrArray->)
Fin de si
`________________________________________________________________________________
`declaration des boutons de saisie [data]EntryData
fop_Declare ("@bdone";Vrai)
fop_Declare ("ligne3";Vrai)
fop_Declare ("ligne4";Vrai)
fop_Declare ("@bfirst";Vrai)
fop_Declare ("@bnext";Vrai)
fop_Declare ("@bprevious";Vrai)
fop_Declare ("@blast";Vrai)
fop_Declare ("write";Vrai)
fop_Declare ("write2";Faux)
fop_Declare ("cboxClassOnWrite@/hide";Vrai)
fop_Declare ("vTMessage";Vrai)
fop_Declare ("Séparateur2";Vrai)
fop_Declare ("DataOnglet";Faux)
fop_Declare ("alp_vlSubListEntry";Faux)
fop_Declare ("bDeleteSub
alp_vlSubListEntry@";Faux)
fop_Declare ("bAddSub
alp_vlSubListEntry@";Faux)
fop_Declare ("SepH";Faux)
Explorer ("OnLoadEntry")
Si (rcd_IsVirgen (rcd_CurrentDataTable))
rcd_LinkData
(->[Data];->[Contact])
CHOIX VISIBLE(*;"bCancel@";Faux)
CHOIX VISIBLE(*;"bDelete@";Faux)
CHOIX VISIBLE(*;"bAddOnWrite@";Faux)
Sinon
$l:=sch_
(->[Contact]Handle;[Data]Link)
WR EXECUTER COMMANDE (wrt_PtrArea->;wr
cmd mise à jour références )
Si ($l=0)
vtMessage:=str_Get
("Attention ! Ce document n'a pas de contact associé.")
Fin de si
Fin de si
Cette méthode repique du code de la méthode Explorer
qui gère l'affichage de la table Data et de la méthode uid_
. Lorsque le document est créé à partir du contact,
une partie du code d'initialisation n'est pas appelé du fait qu'on
passe directement en saisie. Ce code est celui qui se trouve avant la
ligne Explorer ("OnLoadEntry").
Il faut initialiser le tableau de la liste hierarchique (Thème)
qui est normalement construite sur l'ouverture de la liste. Ce tableau
est utilisé dans la saisie pour classer le document en fonction
d'un thème. C'est l'outil Tool_Class
dont l'interface occupe la partie gauche de l'écran à coté
de la zone 4D Write.
Il faut déclarer les boutons du formulaire [Data]DataEntry et les
objets qui sont masqués ou déplacés selon le contexte.
Cette déclaration est assurée par uid_
lors d'un appel classique (ouverture en liste, passage en page).
Après ce repiquage, le code de l'explorateur est appelé
directement : Explorer
("OnLoadEntry"). Puis vient le test qui détermine si
c'est un ajout de document. Dans ce cas, il faut lier le document au contact.
Dans le cas contraire, il faut rechercher le contact lié au document.
Si vous avez inserer des références à votre contact,
comme le nom, l'adresse, il faut demander à 4D Write de mettre
à jour ces références. wrt_PtrArea vous retourne
un pointeur sur la zone 4D Write courante.
Vous allez ouvrir la méthode Explorer
et repérer l'appel "OnLoadEntry". A la fin du code de
ce cas, insérez le code :
$l:=sch_ (->[Contact]Handle;[Data]Link)
WR EXECUTER COMMANDE (wrt_PtrArea->;wr
cmd mise à jour références )
Cela vous permettra de charger le contact si vous ouvrez un document depuis
la liste, c'est-à-dire en choisissant Explorateur dans le menu
Fichier.
Vous êtes arrivé à la fin du développement
de cette gestion de contacts. Vous pouvez télécharger
le code de cette application pour vous éviter de le recopier.

Retour | Haut
de page
|