Discussions au sujet des autres produits NI

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Programmation d'une table dans l'interface UIR

Bonjour,

Je désire utiliser une table de données (donc les cellules sont de type "string") que je créé à partir de l'interface utilisateur (*.uir). La création de cette table ne me pose pas trop de problèmes, mais j'aimerais pouvoir ajouter une nouvelle case entre deux cases déjà remplies. Donc il faudrait que je puisse décaler toutes les cases (déjà remplies) qui suivent cette nouvelle case. Comment puis-je procéder afin de pouvoir ajouter cette fonctionnalité à la table ? Avez-vous des exemples ? Je vous en remercie d'avance et n'hésitez pas à me contacter s'il manque des précisions dans ma demande.

Salutations !
0 Compliments
Message 1 sur 11
4 477 Visites
Bonjour,

Vous trouverez ci-dessous un lien vers un exemple CVI d'édition dynamique de table:
* Editing Tables Dynamically in LabWindows/CVI
http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=B45EACE3ECA756A4E034080020E74861&p_node=DZ52148&p_source=External

Cordialement.

Matthieu Gourssies
National Instruments France
Message 2 sur 11
4 455 Visites
Bonjour,

Je tiens à vous remercier pour votre réponse concernant le fichier table. En revanche, celui-ci me montre comment ajouter une nouvelle ligne à la fin de la table, mais pas une nouvelle cellule en plein milieu de la table. Avez-vous un autre exemple ou alors une idée de comment modifier la fonction du fichier table afin de pouvoir ajouter une cellule en plein milieu de la table ?

Merci d'avance !

Salutations !
0 Compliments
Message 3 sur 11
4 450 Visites
Bonjour,

Si vous regardez la documentation d'aide sur les fonctions de manipulation des tables (Library >> User Interface Library >> Controls/Graphs/Strip Charts... >> Tables), et si vous lisez l'aide de la fonction "InsertTablesRow" ou "InsertTablesColumn", ces fonctions prennent un paramètre d'entrée appelé "Index" qui permet de spécifier à quel endroit la ligne ou la colonne doit être insérée dans la Table.

Cordialement.

Matthieu Gourssies
National Instruments France
0 Compliments
Message 4 sur 11
4 441 Visites
Effectivement, l'utilisation de la fonction "InsertTableRows" m'a permis d'ajouter une bonne fonctionnalité à ma table. Cependant, existe t-il une fonction qui permettrait de faire la même chose avec "une seule cellule (case)", sinon quel serait le moyen pour le faire ?

Merci bien !

Salutations !
0 Compliments
Message 5 sur 11
4 439 Visites
Bonjour,

Ajouter un élément dans un tableau 2D consiste forcément à ajouter 1 ligne puis 1 colonne.

Sincères salutations.
0 Compliments
Message 6 sur 11
4 432 Visites
Bonjour,

J'ai essayé de créér une nouvelle ligne et une nouvelle colonne mais je n'obtiens pas uniquement la création d'une seule cellule. Je vous joins l'interface UIR et ainsi que le fichier source contenant la fonction Calback permettant de créer cette cellule. Lorsque je pointe le curseur de la souris sur ma case 7 et que je clique sur "Insérer" dans la barre des menus de ma table je devrais obtenir uniquement une case vide entre la case 5 et 7. Or j'obtiens une colonne et une ligne. Comment faire dans ma fonction "CVICALLBACK Insertion" afin de n'obtenir qu'une seule case ?

P.S.: voir la pièce jointe pour mieux comprendre.

void CVICALLBACK Insertion (int menuBar, int menuItem, void *callbackData, int panel)
{
Point cellMap ;
Point cellCourante ;

GetActiveTableCell (PANEL, PANEL_TABLE, &cellMap); // case active

InsertTableRows (PANEL, PANEL_TABLE, cellMap.y +1, 1, VAL_CELL_STRING); // création d'une ligne
InsertTableColumns(PANEL, PANEL_TABLE, cellMap.x, 1, VAL_CELL_STRING); // création d'une colonne
DeleteTableColumns (PANEL, PANEL_TABLE, 14, 1); // Effacement de la dernière colonne de la table
DeleteTableRows (PANEL, PANEL_TABLE, 20, 1); // Effacement de la dernière ligne de la table

}
0 Compliments
Message 7 sur 11
4 420 Visites
Excusez-moi j'ai oublié le fichier "test.h" dans ma précédente pièce jointe. Avec celle-ci ça devrait être mieux.

Salutations !
0 Compliments
Message 8 sur 11
4 417 Visites
Bonjour,

Quelqu'un peut-il m'aider s'il vous plaît à résoudre mon problème ?

Merci d'avance !
0 Compliments
Message 9 sur 11
4 399 Visites
Bonjour,

Dans un tableau 2D (ce qui correspond à une table), vous ne pouvez pas rajouter une cellule sans rajouter une ligne ou une colonne. Ceci est purement lié à la gestion d'un tableau.
Exemple:
* un tableau de départ de taille (4 lignes ,4 colonnes)
* l'ajout d'une cellule en position (2,3) va forcément impliquer que la taille du tableau passe à (5,5) (nouvelle ligne en 2 et nouvelle colonne en 3).
Ce que vous souhaitez donc faire n'est donc pas du tout compatible avec des objets de type tableau 2D (et donc l'objet table de CVI)

Sincères salutations.
Message 10 sur 11
4 392 Visites