Renommer ses tables

Résultat à obtenir



1 Faisons une révision générale

Avant d'aborder les chapitres suivants, une révision générale s'impose
Nous allons renommer nos tables ce qui nous oblige à passer en revue les classes déjà mises en oeuvre

Profitons en aussi pour partir sur une petite application concrète de gestion d'agenda personnel

2 Le bon moment pour renommer ses tables

Le Framework met à disposition du Dev 2 méthodes particulières

Après la première connexion de l'utilisateur un appel à setUserParamFromDb est fait dans l'AppliParam, profitons de cette méthode pour renommer nos tables (C'est une sur-définition à faire)

On utilise généralement cette méthode pour initialiser les ports série du PC ou pour instancier des valeurs qui seront nécessaires à l'exploitation du logiciel

J'ajoute setUserParamFromDb à l'AppliParam

public void setUserParamFromDb(Gp gpAbc){
	Sql sql=new Sql(gpAbc.gp); //On se connecte à la base Métier 
	Sql sqlTmp=new Sql(sql, "sous_table_test"); //On travaille à partir de la table
	sqlTmp.renameTable("type_contact", true); //On renomme la table
	sqlTmp.closeT_stat(); //On libère les tables
	sql.closeCx(); //On libère la connexion
}

Je change le titre du logiciel et son numéro de version dans l'AppliParam

//TITRE_APPLI="Mon application"; 
TITRE_APPLI="Mon Agenda"; 
//VERSION = "1.01"; 
VERSION = "1.02"; 

3 je reprends le package de table.soustableTest

Je modifie SousTableTestFICHE le nom de la table

//t_table="sous_table_test";
t_table="type_contact";

Je modifie SousTableTestLISTE le nom de la table

//t_table="sous_table_test";
t_table="type_contact";

4 je reprends le package de table.tableTest

Je modifie TableTestLISTE le nom de la table en liaison et la désignation

//addSqlField("sous_table_test.c_libe", 30, Fma.FIELD, "Libellé sous table");
addSqlField("type_contact.c_libe", 30, Fma.FIELD, "type de contact");

Je modifie TableTestPRINT le nom de la table en liaison et la désignation

//addSqlField("sous_table_test.c_libe", 30, Fma.FIELD, "Libellé sous table");
addSqlField("type_contact.c_libe", 30, Fma.FIELD, "type de contact");

Je modifie TableTestVUE le nom de la table en liaison

//"sous_table_test",
"type_contact", 

Je modifie TableTestFICHE le libellé

//addSqlField("c_stab", 2, Fma.F2, "sous table", "", Edit.F2, "");			
addSqlField("c_stab", 2, Fma.F2, "type de contact", "", Edit.F2, "");

5 je refactorise l'ensemble du package soustableTest

Je refactorise le package en typeContact
Je refactorise les 4 classes en TypeContactxxx

Je compile et je teste cela fonctionne mais les menus ne sont pas à jour


6 je modifie les menus

Attention le titre de la vue reprend le titre de l'option du menu
Aller dans le menu développement/menu et changer l'option de menu

Changer aussi la Key pour l'appliParam en type_cont

Je modifie AppliParam

//} else 	if (option.equals("sstb_test")){
} else 	if (option.equals("type_cont")){
	

Mince, il faut retirer le renommage de la table

public void setUserParamFromDb(Gp gpAbc){
//		Sql sql=new Sql(gpAbc.gp); //On se connect à la base Métier 
//		Sql sqlTmp=new Sql(sql,"sous_table_test"); //On travaille à partir de la table
//		sqlTmp.renameTable("type_contact",true); //On renomme la table
//		sqlTmp.closeT_stat(); //On libère les tables
//		sql.closeCx(); //On libère la connexion
}

7 Mettre à jour vos saisies

Changer la fiche 01 en "Personnel"
Changer la fiche 02 en "Professionnel"




8 Faite seul le changement de nom de tableTest en Contact

1) renommer la table en Contact par le setUserParamFromDb

2) changer le nom la table dans les classes de mappage

3) refactorer le package et ses classes

4) Adapter le menu, changer la key et mettre à jour l'Appliparam




9 Conclusion

Bien réfléchir concernant les noms des tables, car comme vous avez pu le constater, les reprendre est un peu long
Depuis ce premier apprentissage de l'Api, vous pouvez d'ores et déjà construire l'arborescence d'un logiciel et aussi commencer à mettre en place vos premières tables de base
Je vous invite à enchaîner la mise en place de plusieurs tables à la suite pour favoriser vos automatismes

La deuxième méthode setAppliParamFromDb qui est appelée avant la connexion du premier utilisateur.
En particulier, on peut l'utiliser pour se connecter à une base de données autre que celle prévue initialement


Suite du tutorial prévue ...