Outils pour utilisateurs

Outils du site


issue85:libreoffice_p_37

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue85:libreoffice_p_37 [2014/11/24 19:18] d52frissue85:libreoffice_p_37 [2014/11/25 18:59] (Version actuelle) auntiee
Ligne 1: Ligne 1:
 **In my article in issue 83 of Full Circle Magazine, I walked you through creating a form that used a view, but I left things unfinished in the forms: I didn't do anything to format the controls to ensure data integrity. If you haven't already done so, read the article in Full Circle 83, and follow along to create the tables and forms. We will work with the “ProjectForm,” and see how we can improve data integrity. I'll wait if you need to work through the How-To in issue 83.** **In my article in issue 83 of Full Circle Magazine, I walked you through creating a form that used a view, but I left things unfinished in the forms: I didn't do anything to format the controls to ensure data integrity. If you haven't already done so, read the article in Full Circle 83, and follow along to create the tables and forms. We will work with the “ProjectForm,” and see how we can improve data integrity. I'll wait if you need to work through the How-To in issue 83.**
  
-Dans mon article du numéro 83 de FCM, je vous ai monté comment créer un formulaire qui utilise une vue, mais j'ai laissé des choses en plan dans les formulaires : je n'ai rien fait concernant les contrôles qui assurent l'intégrité des données. Si vous ne l'avez pas encore fait, lisez l'article dans FCM 83 et suivez-le pour créer les tables et les formulaires. Nous allons travailler avec le projet "ProjectFormet voir comment nous pouvons améliorer l'intégrité des données. Je vais attendre si vous avez besoin de réaliser le tutoriel du numéro 83.+Dans mon article du numéro 83 du FCM, je vous ai montré comment créer un formulaire qui utilise une vue, mais j'ai laissé des choses en plan dans les formulaires : je n'ai rien fait concernant les contrôles qui assurent l'intégrité des données. Si vous ne l'avez pas encore fait, lisez l'article dans le FCM n° 83 et suivez-le pour créer les tables et les formulaires. Nous allons travailler avec le projet « ProjectForm » et voir comment nous pouvons améliorer l'intégrité des données. Je vais attendre si vous avez besoin de réaliser le tutoriel du numéro 83.
  
 **Date and Time Controls **Date and Time Controls
Ligne 10: Ligne 10:
  
 Contrôles de date et d'heure Contrôles de date et d'heure
-Maintenant reprenons le travail. Dans le volet « Formulaires » de la base de données que vous avez créée, faites un clic droit sur « ProjectForm » et sélectionnez Editer. Comme je l'ai déjà dit, l'assistant associe habituellement une étiquette avec une zone de saisie, mais dans le cas des champs de date et d'heure, il les associe réellement avec des contrôles de date et d'heure. Sans aucun formatage, elles ressemblent aux zones de saisie de texte, mais croyez-moi, ce sont des contrôles de date et d'heure. Nous devons dissocier le contrôle de son étiquette avant de modifier le contrôle de date. Faites un clic droit sur l'étiquette « Due » ou sur le contrôle de date, et sélectionnez Groupe > Dissocier. + 
-Double-cliquez sur le contrôle de date pour afficher la boîte de dialogue des propriétés. Dans l'onglet « Général », vous trouvez tous les ajustements disponibles. Nous nous intéressons à ceux qui ajustent la saisie de date.+Maintenant reprenons le travail. Dans le volet « Formulaires » de la base de données que vous avez créée, faites un clic droit sur « ProjectForm » et sélectionnez Éditer. Comme je l'ai déjà dit, l'assistant associe habituellement une étiquette avec une zone de saisie, maisdans le cas des champs de date et d'heure, il les associe en fait avec des contrôles de date et d'heure. Sans aucun formatage, elles ressemblent aux zones de saisie de texte, mais croyez-moi, ce sont des contrôles de date et d'heure. Nous devons dissocier le contrôle de son étiquette avant de modifier le contrôle de date. Faites un clic droit sur l'étiquette « Due »ou sur le contrôle de date, et sélectionnez Groupe > Dissocier. 
 + 
 +Double-cliquez sur le contrôle de date pour afficher la boîte de dialogue des propriétés. Dans l'onglet « Général », vous trouverez tous les ajustements disponibles. Nous nous intéressons à ceux qui ajustent la saisie de date.
  
 **Date Min / Date Max – These two options allow you to control the minimum and maximum date values allowed in the fields. These fields have default values of 01/01/1800 for minimum and 12/31/2200 for maximum. In general applications, these defaults should work, but if you have different needs, feel free to adjust. An example is an inventory database, where no shipping invoices dated before the inception of the company is necessary. You could set the minimum date to the opening day. **Date Min / Date Max – These two options allow you to control the minimum and maximum date values allowed in the fields. These fields have default values of 01/01/1800 for minimum and 12/31/2200 for maximum. In general applications, these defaults should work, but if you have different needs, feel free to adjust. An example is an inventory database, where no shipping invoices dated before the inception of the company is necessary. You could set the minimum date to the opening day.
Ligne 17: Ligne 19:
 Date Format – There are 12 different date formats. This option determines how the control will display the date. Scroll through the options and see which one best suits your application.** Date Format – There are 12 different date formats. This option determines how the control will display the date. Scroll through the options and see which one best suits your application.**
  
-Date Min / Date Max - Ces options vous permettent de contrôler les valeurs de dates mini et maxi autorisées dans les champs. Les valeurs par défaut sont le 01/01/1980 pour le minimum et 12/31/2200 pour le maximum. Dans les applications habituelles, ces valeurs par défaut devraient fonctionner mais si vous avez des besoins différents, libre à vous de les adapter. Par exemple dans un base de données de gestion de stockoù il est nécessaire qu'aucune facture ne puisse être datée d'avant la date de création de la société. Vous devriez mettre la date mini à la date d'ouverture.+Date Min/Date Max - Ces deux options vous permettent de contrôler les valeurs de dates mini et maxi autorisées dans les champs. Les valeurs par défaut sont le 01/01/1980 pour le minimum et le 12/31/2200 pour le maximum. Dans les applications habituelles, ces valeurs par défaut devraient fonctionnermais si vous avez des besoins différents, libre à vous de les adapter. Par exempledans une base de données de gestion de stock où il est nécessaire qu'aucune facture ne soit datée d'avant la date de création de la société. Vous devriez mettre la date mini à la date d'ouverture.
  
-Format de Date - Il y a 12 formats différents de date. Cette option détermine le format d'affichage de la date. Parcourez la liste d'options et voyez celle qui convient le mieux à votre application.+Format de Date - Il y a 12 formats différents de date. Cette option détermine le format d'affichage de la date par le contrôle. Parcourez la liste d'options et voyez celle qui convient le mieux à votre application.
  
 **Default Date – This is a default value for the field. If you have a date that users should use most of the time, then use that date. It will speed up data entry. It can also show the user the format in which to enter dates. Unfortunately, at this time, you cannot easily set the default to the (current) date the record was added. **Default Date – This is a default value for the field. If you have a date that users should use most of the time, then use that date. It will speed up data entry. It can also show the user the format in which to enter dates. Unfortunately, at this time, you cannot easily set the default to the (current) date the record was added.
Ligne 25: Ligne 27:
 Spin Button – Setting this option to Yes will put an up-and-down spin button on the control. The user can use this button to adjust the month, day, and year. The user clicks into the part of the date they want to adjust and makes changes by clicking on these buttons. Very handy for data entry.** Spin Button – Setting this option to Yes will put an up-and-down spin button on the control. The user can use this button to adjust the month, day, and year. The user clicks into the part of the date they want to adjust and makes changes by clicking on these buttons. Very handy for data entry.**
  
-Date par défaut- Il y a une date par défaut pour ce champ. S'il y a une date que les utilisateurs choisiront la plupart du temps, alors utilisez cette date. Çà accélérera la saisie. Ça peut être aussi une façon de montrer le format de saisie des dates à l'utilisateur. Malheureusement, pour l' instant, vous ne pouvez pas choisir la date (courante) de saisie de l’enregistrement comme valeur par défaut.+Date par défaut- Il y a une date par défaut pour ce champ. S'il y a une date que les utilisateurs choisiront la plupart du temps, alors utilisez cette date. Ça accélérera la saisie. Ça peut être aussi une façon de montrer le format de saisie des dates à l'utilisateur. Malheureusement, pour l' instant, vous ne pouvez pas choisir la date (courante) de saisie de l’enregistrement comme valeur par défaut.
  
-Compteur - Mettre cette option à Oui ajoute un bouton « Monte-Baisse » au contrôle. L'utilisateur peut utiliser ce bouton pour ajusterle jour, le mois et l'année. L'utilisateur clique sur la partie de date à modifier et ajuste la valeur en cliquant sur ces boutons. Très pratique pour la saisie des dates.+Compteur - Mettre cette option à Oui ajoute un bouton « Monte-Baisse » au contrôle. L'utilisateur peut utiliser ce bouton pour ajuster le jour, le mois et l'année. L'utilisateur clique sur la partie de date à modifier et ajuste la valeur en cliquant sur ces boutons. Très pratique pour la saisie des dates.
  
 **Repeat – The Repeat option is related to the spin button option. It controls whether to repeat when you hold down the mouse button on the spin button. Use at your own discretion. Sometimes, it makes sense. Other times, not so much. **Repeat – The Repeat option is related to the spin button option. It controls whether to repeat when you hold down the mouse button on the spin button. Use at your own discretion. Sometimes, it makes sense. Other times, not so much.
Ligne 33: Ligne 35:
 Delay – The Delay option controls the speed of the repeat option. A longer delay means you have to hold the button down longer before it will repeat. The default is “50 ms” (milliseconds).** Delay – The Delay option controls the speed of the repeat option. A longer delay means you have to hold the button down longer before it will repeat. The default is “50 ms” (milliseconds).**
  
-Répéter - L'option Répéter est liée à l'option Compteur. Elle contrôle si l'action est répétée quand vous tenez le bouton de souris appuyé sur le bouton « Monte-Baisse ». Elle est à votre disposition. Parfois, ça a du sens. D'autres fois, pas beaucoup.+Répéter - L'option Répéter est liée à l'option Compteur. Elle vérifie si l'action est répétée quand vous tenez le bouton de souris appuyé sur le bouton « Monte-Baisse ». Elle est à votre disposition. Parfois, c'est logique de l'utiliser. D'autres fois, non.
  
-Délai - L'option de Délai contrôle la vitesse de l'option de répétition. Un délai plus long signifie que vous devez tenir le bouton de souris plus longtemps par que ça se répéte. La valeur par défaut est « 50ms » (millisecondes).+Délai - L'option de Délai contrôle la vitesse de l'option de répétition. Un délai plus long signifie que vous devez tenir le bouton de souris plus longtemps avant que ça ne se répète. La valeur par défaut est « 50 ms » (millisecondes).
  
 **Dropdown – Dropdown adds a listbox style arrow to the control. Clicking it displays a calendar where you can select the date you need. **Dropdown – Dropdown adds a listbox style arrow to the control. Clicking it displays a calendar where you can select the date you need.
Ligne 43: Ligne 45:
 After you make your adjustments to the control, save the form and close it. Open the form and test your newly adjusted date control. Feel free to experiment with the different control options to get a better idea of how they work. The options for a time control are the same as the date control except you don't have the Dropdown option.** After you make your adjustments to the control, save the form and close it. Open the form and test your newly adjusted date control. Feel free to experiment with the different control options to get a better idea of how they work. The options for a time control are the same as the date control except you don't have the Dropdown option.**
  
-Déroulante - l'option « Déroulante » ajoute une flèche type liste déroulante au contrôle. En cliquant dessus, un calendrier s'affiche pour pouvoir sélectionner la date voulue.+Déroulante - l'option « Déroulante » ajoute une flèche de type liste déroulante au contrôle. En cliquant dessus, un calendrier s'affiche pour pouvoir sélectionner la date voulue.
  
 NOTE : Vous pouvez utiliser les options Compteur et Déroulante ensemble pour créer un contrôle flexible. NOTE : Vous pouvez utiliser les options Compteur et Déroulante ensemble pour créer un contrôle flexible.
Ligne 55: Ligne 57:
 Rendre le titre obligatoire Rendre le titre obligatoire
  
-Maintenant que nous avons réglé le contrôle de date, attaquons-nous à quelques possibles difficultés avec la zone de saisie du champ « Title ». Quand nous avons créé ce champ, nous avons limité la longueur de 50 caractères. Cependant, comme la zone de texte est dimensionnée actuellement, nous pouvons saisir plus de 50 caractères. Si nous essayons de sauvegarder l’enregistrement avec plus de 50 caractères dans « Title », une erreur SQL va se produire. Aussi, quand nous avons créé la table, nous avons déclaré qu'une entrée était obligatoire. Le statut « NON NULL » évite que la zone de saisie soit laissée vide, mais il est toujours possible de saisir un espace pour que le formulaire accepte la saisie comme valide. Aussi, nous avons quelques points à régler dans notre formulaire.+Maintenant que nous avons réglé le contrôle de date, attaquons-nous à quelques possibles difficultés avec la zone de saisie du champ « Title ». Quand nous avons créé ce champ, nous en avons limité la longueur à 50 caractères. Cependant, les dimensions actuelles de la zone de texte nous permettent de saisir plus de 50 caractères. Si nous essayons de sauvegarder l’enregistrement avec plus de 50 caractères dans « Title », une erreur SQL va se produire. De plus, quand nous avons créé la table, nous avons déclaré qu'une entrée était obligatoire. Le statut « NON NULL » évite que la zone de saisie soit laissée vide, mais il est toujours possible de saisir une espace pour que le formulaire accepte la saisie comme valide. Aussi, nous avons quelques points à régler dans notre formulaire.
  
 **Open “ProjectForm” for editing. Right-clicking the “Title” label or input box, Group > Ungroup. Now, double-click the “Title” input box to bring up its properties dialog. On the “General” tab, set the value for “Max Length” to 50. This will prevent the user from entering more than 50 characters. On the “Data” tab, make sure that both “Empty String Is NULL” and “Input Required” are set to “Yes.” These two settings become a redundancy check for making sure there is a valid value in the input field.** **Open “ProjectForm” for editing. Right-clicking the “Title” label or input box, Group > Ungroup. Now, double-click the “Title” input box to bring up its properties dialog. On the “General” tab, set the value for “Max Length” to 50. This will prevent the user from entering more than 50 characters. On the “Data” tab, make sure that both “Empty String Is NULL” and “Input Required” are set to “Yes.” These two settings become a redundancy check for making sure there is a valid value in the input field.**
Ligne 63: Ligne 65:
 **However, we still have an issue with the fact that the user can just create a “Title” with spaces. To fix this issue, we will need to use a little SQL. I have looked for a graphical way to get the same result, but sometimes, when you work with databases, SQL is the best, if not only, choice. We will add a CHECK constraint to the “Project” table. Click on Tools > SQL. To enter the SQL, Tools > SQL... Use the following SQL command to add the constraint to the table:** **However, we still have an issue with the fact that the user can just create a “Title” with spaces. To fix this issue, we will need to use a little SQL. I have looked for a graphical way to get the same result, but sometimes, when you work with databases, SQL is the best, if not only, choice. We will add a CHECK constraint to the “Project” table. Click on Tools > SQL. To enter the SQL, Tools > SQL... Use the following SQL command to add the constraint to the table:**
  
-Cependant, nous avons toujours un problème avec le fait que l'utilisateur peut simplement créer un titre avec des espaces. Pour résoudre ce point, nous avons besoin d'utiliser un bout de SQL. J'avais regardé comment obtenir le même résultat avec l'interface graphique, mais parfois, quand on travaille avec des bases de données, SQL est mieux, si ce n'est le seul choix. Nous allons ajouter une contrainte CHECK à la table « Project ». Cliquez sur Outils > SQL. Utilisez la commande SQL suivante pour ajouter la contrainte à la table :+Cependant, nous avons toujours un problème avec le fait que l'utilisateur peut simplement créer un titre avec des espaces. Pour résoudre ce point, nous avons besoin d'utiliser un bout de SQL. J'avais regardé comment obtenir le même résultat avec une interface graphique, mais, parfois quand on travaille avec des bases de données, SQL est le meilleur, si ce n'est le seul choix. Nous allons ajouter une contrainte CHECK à la table « Project ». Cliquez sur Outils > SQL. Utilisez la commande SQL suivante pour ajouter la contrainte à la table :
  
 ALTER TABLE “Project” ALTER TABLE “Project”
Ligne 73: Ligne 75:
 **The ALTER TABLE command means we are making changes to the table, in this case the table “Project.” To indicate the change we are making, we use the ADD CONSTRAINT command. NOSPACES_CK is the name of the constraint we are adding. It's not required that you make your constraint names all caps. I just do it as a matter of convention. The last line is the CHECK constraint. Using the built-in function TRIM, it removes all the spaces from both sides of the string and checks to make sure it is not equal to an empty string. Now, if someone tries to use a string of spaces for the “Title”, an SQL constraint error is generated.** **The ALTER TABLE command means we are making changes to the table, in this case the table “Project.” To indicate the change we are making, we use the ADD CONSTRAINT command. NOSPACES_CK is the name of the constraint we are adding. It's not required that you make your constraint names all caps. I just do it as a matter of convention. The last line is the CHECK constraint. Using the built-in function TRIM, it removes all the spaces from both sides of the string and checks to make sure it is not equal to an empty string. Now, if someone tries to use a string of spaces for the “Title”, an SQL constraint error is generated.**
  
-La commande ALTER TABLE signifie que nous apportons des changements à la table, en l’occurrence la table « Project ». Pour indiquer le changement à faire, nous utilisons la commande ADD CONSTRAINT. NOSPACES_CK est le nom de la contrainte à ajouter. Ce n'est pas nécessaire de mettre les noms de contrainte tout en majuscules. Je fais cela juste comme une convention. La dernière ligne est la contrainte CHECK. En utilisant la fonction intégrée TRIM, cela enlève tous les espaces aux bouts de la chaîne de caractères et ça contrôle pour être sûr qu'il ne reste pas de chaîne vide. Maintenant, si quelqu'un essaie de placer une chaîne d'espace dans « Title », ça génère une erreur de contrainte SQL.+La commande ALTER TABLE signifie que nous apportons des changements à la table, en l’occurrence la table « Project ». Pour indiquer le changement à faire, nous utilisons la commande ADD CONSTRAINT. NOSPACES_CK est le nom de la contrainte à ajouter. Il n'est pas nécessaire de mettre les noms de contrainte tout en majuscules. Je fais cela juste comme une convention. La dernière ligne est la contrainte CHECK. En utilisant la fonction intégrée TRIM, cela enlève toutes les espaces aux deux bouts de la chaîne de caractères et ça les vérifie pour être sûr qu'il ne reste pas de chaîne vide. Maintenant, si quelqu'un essaie de placer une chaîne d'espaces dans « Title », cela générera une erreur de contrainte SQL.
  
 **You can do the same thing for the “FirstName” and “LastName” fields in the “TeamMember” table. The “Max Length” for the name fields is 25. I suggest the following SQL for adding the constraints:** **You can do the same thing for the “FirstName” and “LastName” fields in the “TeamMember” table. The “Max Length” for the name fields is 25. I suggest the following SQL for adding the constraints:**
Ligne 98: Ligne 100:
 The view we create for putting the names in the drop down list box in the “ProjectForm” is good, legal SQL, but there are a couple of problems. First, although we have prevented a name from being just spaces, the users can still add a legal name with spaces added to the beginning or end. Also, the names are not in any order.** The view we create for putting the names in the drop down list box in the “ProjectForm” is good, legal SQL, but there are a couple of problems. First, although we have prevented a name from being just spaces, the users can still add a legal name with spaces added to the beginning or end. Also, the names are not in any order.**
  
-Améliorer La //Requête Vue//+Améliorer la requête de vue
  
-La vue que nous avons créée pour mettre les noms sous forme de liste déroulante dans « ProjectForm » est en bon et légal SQL mais il y a une paire de problèmes. D'abord, bien que nous ayons pris les dispositions pour empêcher qu'un nom ne soit fait que d'espaces, les utilisateurs peuvent encore ajouter des noms corrects avec des espaces au début ou à la fin. Aussi, les noms ne sont plus ordonnés.+La vue que nous avons créée pour mettre les noms sous forme de liste déroulante dans « ProjectForm » est en bon et légal SQL mais il y a deux problèmes. D'abord, bien que nous ayons pris les dispositions pour empêcher qu'un nom ne soit fait que d'espaces, les utilisateurs peuvent encore ajouter des noms corrects avec des espaces au début ou à la fin. De ce fait, les noms ne sont plus ordonnés.
  
 **Luckily, we can edit our view and make some additions to address these problems. Select “Tables” from the “Database” pane. Right-click “TeamView” and select “Edit in SQL View...” This brings up the SQL we used to create the view. Change the current SQL so it looks like the following:** **Luckily, we can edit our view and make some additions to address these problems. Select “Tables” from the “Database” pane. Right-click “TeamView” and select “Edit in SQL View...” This brings up the SQL we used to create the view. Change the current SQL so it looks like the following:**
  
-Heureusement, nous pouvons éditer notre vue et faire quelques compléments pour résoudre ces difficultés. Choisissez « Tables » dans le panneau « Database ». Faites un clic droit sur « TeamView » et sélectionnez « Editer en mode SQL... ». Ceci affiche le code SQL utilisé pour créer la vue. Modifie le code SQL affiché par la déclaration suivante :+Heureusement, nous pouvons éditer notre vue et faire quelques compléments pour résoudre ces difficultés. Choisissez « Tables » dans le panneau « Base de données ». Faites un clic droit sur « TeamView » et sélectionnez « Editer en mode SQL... ». Ceci affiche le code SQL utilisé pour créer la vue. Modifiez le code SQL affiché par la déclaration suivante :
  
 SELECT TRIM(BOTH FROM “FirstName”) || ' ' SELECT TRIM(BOTH FROM “FirstName”) || ' '
Ligne 121: Ligne 123:
 W3Schools SQL Tutorial http://www.w3schools.com/sql/default.asp** W3Schools SQL Tutorial http://www.w3schools.com/sql/default.asp**
  
-A la fin, nous ajoutons la commande ORDER BY pour classer les noms par « LastName » puis par « FirstName ». +A la fin, nous ajoutons la commande ORDER BY pour classer les noms par « LastName »puis par « FirstName ». Cela signifie que les noms seront d'abord triés par « LastName », puis, s'il y a plus d'un même « LastName », un tri se fera par « FirstName» 
-Avec les réglages des contrôles et un peu de SQL, nous avons été capables d'apporter plusieurs améliorations à nos formulaires, rendant la saisie des donnéesnon seulement plus simple mais aussi plus fiable. Si vous êtes intéressé à mieux comprendre le code SQL utilisé dans ce tutoriel, j'ai une paire de ressources pour vous. +Avec les réglages des contrôles et un peu de SQL, nous avons été capables d'apporter plusieurs améliorations à nos formulaires, rendant la saisie des données non seulement plus simplemais aussi plus fiable. Si vous voulez mieux comprendre le code SQL utilisé dans ce tutoriel, j'ai deux ressources pour vous. 
-Sur mon blog « What the tech am I doing ? » (Ndt : Quelle technique j'utilise ?), les sujets sur LibreOffice Base, http://eeperry.wordpress.com/category/libreoffice/libreoffice-base/+Sur mon blog « What the tech am I doing ? » (Ndt : Quelle technique j'utilise ?), les billets sur LibreOffice Base, http://eeperry.wordpress.com/category/libreoffice/libreoffice-base/
  
 W3Schools SQL Tutorial (Ndt : Tutoriel SQL des écoles W3) http://www.w3schools.com/sql/default.asp W3Schools SQL Tutorial (Ndt : Tutoriel SQL des écoles W3) http://www.w3schools.com/sql/default.asp
issue85/libreoffice_p_37.1416853104.txt.gz · Dernière modification : 2014/11/24 19:18 de d52fr