Tableaux
Noms
Dans Constellation, chaque tableau est défini par un code identifiant et peut ensuite être nommé dans autant de langues que vous le souhaitez.
client.tableaux.sauvegarderNomTableau({ idTableau, langue, nom })
Sauvegarde le nom du tableau dans une langue donnée.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
nom | string | Le nom du tableau. |
langue | string | La langue du nom. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
await client.tableaux.sauvegarderNomTableau({
idTableau,
langue: "fr",
nom: "Hydrologie"
});client.tableaux.sauvegarderNomsTableau({ idTableau, noms })
Sauvegarde le nom du tableau dans plusieurs langues en même temps.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
noms | { [langue: string]: string } | Les noms du tableau, indexés par langue. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
await client.tableaux.sauvegarderNomsTableau({
idTableau,
noms: { fr: "Observations", த: "கண்காணிப்புகள்"}
});client.tableaux.effacerNomTableau({ idTableau, langue })
Efface la traduction du nom du tableau dans une langue donnée.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
langue | string | La langue dont ont doit effacer le nom. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
await client.tableaux.effacerNomTableau({ idTableau, langue: "fr" });client.tableaux.suivreNomsTableau({ idTableau, f })
Suit les noms (traduits en différentes langues) du tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
f | (noms: { [langue: string]: string }) => void | Une fonction qui sera appelée avec les noms du tableau chaque fois qu'ils changent |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const fOublierNoms = await client.tableaux.suivreNomsTableau({
idTableau,
f: async noms => {
console.log(noms);
await fOublierNoms();
}
});
await client.tableaux.sauvegarderNomsTableau({
idTableau,
noms: { fr: "Observations", த: "கண்காணிப்புகள்"}
});Colonnes
Chaque colonne d'un tableau est associé à une variable Constellation.
client.tableaux.ajouterColonneTableau({ idTableau, idVariable, idColonne })
Ajoute une colonne à un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
idVariable | string | L'identifiant de la variable à associer à la colonne. |
idColonne | `string | undefined` |
Exemple
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const idVariable = await client.variables.créerVariable({ catégorie: "horoDatage" });
const idColonne = await client.tableaux.ajouterColonneTableau({ idTableau, idVariable });client.tableaux.effacerColonneTableau({ idTableau, idColonne })
Efface une colonne d'un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
idColonne | string | L'identifiant de la colonne. |
Exemple
// ...continuant de ci-dessus...
const idColonne = await client.tableaux.effacerColonneTableau({ idTableau, idVariable });client.tableaux.suivreColonnesTableau({ idTableau, f, catégories })
Suit les colonnes d'un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
f | (colonnes: InfoCol` | [InfoColAvecCatégorie](#types-colonnes) ) => void` |
catégories | `boolean | undefined` |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { ref } from "vue";
import { créerConstellation, type tableaux } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const idVariable = await client.variables.créerVariable({ catégorie: "horoDatage" });
const idColonne = await client.tableaux.ajouterColonneTableau({ idTableau, idVariable });
const colonnes = ref<tableaux.InfoColAvecCatégorie>();
const fOublierColonnes = await client.tableaux.suivreColonnesTableau({
idTableau,
f: x => colonnes.value = x
});client.tableaux.réordonnerColonneTableau({ idTableau, idColonne, position })
Réordonne les colonnes d'un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
idColonne | string | L'identifiant de la colonne à déplacer. |
position | number | La nouvelle position de la colonne. |
Exemple
import { ref } from "vue";
import { créerConstellation, type tableaux } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const idVariableDate = await client.variables.créerVariable({ catégorie: "horoDatage" });
const idVariableImage = await client.variables.créerVariable({ catégorie: "image" });
const idColonneImage = await client.tableaux.ajouterColonneTableau({ idTableau, idVariable: idVariableImage });
const idColonneDate = await client.tableaux.ajouterColonneTableau({ idTableau, idVariable: idVariableDate });
const fOublierColonnes = await client.tableaux.réordonnerColonneTableau({
idTableau,
idColonne: idColonneDate,
position: 0,
});Index
Les colonnes d'un tableau peuvent être identifiées en tant que colonnes indexes. Les valeurs de ces colonnes ne peuvent pas être dupliquées parmi les données. Par exemple, si vous spécifiez l'horodatage et le site d'échantillonnage en tant que colonnes indexes, Constellation, lors de tout fusionnement de données, s'assurera que les indexes ne soient pas dupliqués et combinera les rangées avec des sites et horodatages identiques.
client.tableaux.changerColIndex({ idTableau, idColonne, val })
Change le statut d'index d'une colonne.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
idColonne | string | L'identifiant de la colonne. |
val | boolean | Si la colonne est une colonne indexe ou non. |
Exemple
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const idVariable = await client.variables.créerVariable({ catégorie: "horoDatage" });
const idColonne = await client.tableaux.ajouterColonneTableau({ idTableau, idVariable });
await client.tableaux.changerColIndex({
idTableau,
idColonne,
val: true
});client.tableaux.suivreIndex({ idTableau, f })
Suit les noms (traduits en différentes langues) du tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
f | (colonnes: string[]) => void | Une fonctionne qui sera appellée avec les identifiants des colonnes indexes chaque fois que ceux-ci changent. |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const indexes = ref<string[]>();
const fOublierIndexes = await client.tableaux.suivreIndex({
idTableau,
f: x => indexes.value = x
});Variables
Vous pouvez suivre la liste des variables associées avec un tableau.
client.tableaux.suivreVariables({ idTableau, f })
Suit les variables associées au tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
suivreVariables | string | L'identifiant du tableau. |
f | (variables: string[]) => void | Une fonction qui sera appelée avec la liste des identifiants des variables associées au tableau chaque fois que celle-ci change. |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Données
Ces fonctions vous permettent d'observer et de modifier les données d'un tableau.
client.tableaux.ajouterÉlément({ idTableau, vals })
Ajoute un ou plusieurs éléments à un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
vals | élémentBdListeDonnées[] | Les données à ajouter. |
Retour
| Type | Description |
|---|---|
Promise<string[]> | Les identifiants uniques des éléments ajoutés. |
Exemple
import { ref } from "vue";
import { créerConstellation, type bds, type tableaux } from "@constl/ipa";
const client = créerConstellation();
// Créer nos variables
const idVarSite = await client.variables.créerVariable({
catégorie: 'chaîneNonTraductible'
});
const idVarDate = await client.variables.créerVariable({
catégorie: 'horoDatage'
});
const idVarTempérature = await client.variables.créerVariable({
catégorie: 'numérique'
});
// Créer notre base de données
const idBd = await client.bds.créerBd({ licence: "ODbl-1_0" });
const idTableau = await client.bds.ajouterTableauBd({ idBd });
const idColSite = await client.tableaux.ajouterColonneTableau({
idTableau,
idVariable: idVarSite,
});
const idColDate = await client.tableaux.ajouterColonneTableau({
idTableau,
idVariable: idVarDate,
});
const idColTempérature = await client.tableaux.ajouterColonneTableau({
idTableau,
idVariable: idVarTempérature,
});
// Enfin, ajouter les données
const idsÉléments = await client.tableaux.ajouterÉlément({
schémaBd,
idNuéeUnique,
clefTableau: CLEF_TABLEAU,
vals: {
"site": "mon site d'observation",
"date": Date.now(),
"température": 52.2,
},
});client.tableaux.modifierÉlément({ idTableau, vals, idÉlément })
Modifie un élément d'un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
vals | { [idColonne: string]: élémentsBd | undefined } |
idÉlément | string | L'identifiant de l'élément à modifier. |
Retour
| Type | Description |
|---|---|
Promise<string> | L'identifiant unique de l'élément modifié. |
Exemple
// ...continuant de ci-dessus...
await client.tableaux.modifierÉlément({
idTableau,
vals: {
[idColTempérature]: 38.2 ,
},
idsÉléments[0],
});client.tableaux.effacerÉlément({ idTableau, idÉlément })
Efface un élément d'un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
idÉlément | string | L'identifiant de la rangée à effacer. |
Exemple
// ...continuant de ci-dessus...
await client.tableaux.effacerÉlément({
idTableau,
idÉlément: idsÉléments[0],
});client.tableaux.suivreDonnées({ idTableau, f, clefsSelonVariables })
Suit les données d'un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
f | (données:élémentDonnées[]) => void | La fonction qui sera appellée avec les données chaque fois que celles-ci changent. |
clefsSelonVariables | `boolean | undefined` |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
// ...continuant de ci-dessus...
const données = ref<tableaux.élémentDonnées[]>();
const fOublierDonnées = await client.tableaux.suivreDonnées({
idTableau,
f: x => données.value = x,
});Règles
Vous pouvez ajouter des règles de validation des données directement aux tableaux. Pour voir toutes les possibilités de règles permises, voir la section correspondante.
client.tableaux.ajouterRègleTableau({ idTableau, idColonne, règle })
Ajoute une règle de validation à un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
idColonne | string | L'identifiant de la colonne. |
règle | valid.règleVariable | La règle à ajouter. |
Retour
| Type | Description |
|---|---|
Promise<string> | L'identifiant unique de la nouvelle règle. |
Exemple
import { ref } from "vue";
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd({ licence: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const idVariable = await client.variables.créerVariable({ catégorie: "numérique" });
const idColonne = await client.tableaux.ajouterColonneTableau({ idTableau, idVariable });
const règle: valid.règleBornes = {
typeRègle: "bornes",
détails: {
type: "fixe",
val: 0,
op: ">=",
},
};
const idRègle = await client.tableaux.ajouterRègleTableau({ idTableau, idColonne, règle })client.tableaux.effacerRègleTableau({ idTableau, idRègle })
Ajoute une règle de validation à un tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
idColonne | string | L'identifiant de la règle à effacer. |
Exemple
// ...continuant de ci-dessus...
await client.tableaux.effacerRègleTableau({ idTableau, idRègle })client.tableaux.suivreRègles({ idTableau, f })
Suit les règles associées au tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
f | (règles: valid.règleColonne []) => void | Une fonction qui sera appelée avec les règles du tableau chaque fois que celles-ci changent. |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
// ...continuant de ci-dessus...
const règles = ref<valid.règleColonne[]>();
const fOublierRègles = await client.tableaux.suivreRègles({
idTableau,
f: x => règles.value = x,
});Validation
Constellation vous permet de valider les données des tableaux.
client.tableaux.suivreValidDonnées({ idTableau, f })
Suit les erreurs de validation des données du tableau.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
f | (erreurs: valid.erreurValidation []) => void | Une fonction qui sera appelée avec les erreurs de validation du tableau chaque fois que celles-ci changent. |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
// ...continuant de ci-dessus...
const erreursValidation = ref<valid.erreurValidation[]>();
const fOublierRègles = await client.tableaux.suivreValidDonnées({
idTableau,
f: x => erreursValidation.value = x,
});client.tableaux.suivreValidRègles({ idTableau, f })
Suit les erreurs présentes dans les règles elles-mêmes. Ces erreurs peuvent indiquer si:
- La colonne associée à une règle catégorique n'existe pas.
- La colonne associée à une règle de bornes n'existe pas sur ce tableau.
- Aucune colonne sur ce tableau n'a la variable associée à une règle de bornes.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
f | (erreurs: valid.erreurRègle []) => void | Une fonction qui sera appelée avec les erreurs des règles du tableau chaque fois que celles-ci changent. |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
// ...continuant de ci-dessus...
const erreursRègles = ref<valid.erreurRègle[]>();
const fOublierRègles = await client.tableaux.suivreValidRègles({
idTableau,
f: x => erreursRègles.value = x,
});Importation et exportation
Vous pouvez importer et exporter des données d'un tableau.
ASTUCE
Vous pouvez également automatiser ces actions !
client.tableaux.importerDonnées({ idTableau, données, conversions, cheminBaseFichiers })
Importer des données vers un tableau Constellation.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
données | élémentBdListeDonnées | Les données à importer. |
conversions | { [col: string]: tableaux.conversionDonnées` } | undefined` |
cheminBaseFichiers | `string | undefined` |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd(: "ODBl-1_0" });
const idTableau = await client.tableaux.créerTableau({ idBd });
const idVarDate = await client.variables.créerVariable({
catégorie: "horoDatage",
});
const idVarEndroit = await client.variables.créerVariable({
catégorie: "chaîneNonTraductible",
});
const idVarTempMin = await client.variables.créerVariable({
catégorie: "numérique",
});
const idVarTempMax = await client.variables.créerVariable({
catégorie: "numérique",
});
const idsCols = {};
for (const idVariable of [
idVarDate,
idVarEndroit,
idVarTempMin,
idVarTempMax,
]) {
const idCol = await client.tableaux.ajouterColonneTableau({
idTableau,
idVariable,
});
idsCols[idVar] = idCol;
}
const nouvellesDonnées = [
{
[idsCols[idVarEndroit]]: "ici",
[idsCols[idVarDate]]: "2023-01-01",
[idsCols[idVarTempMin]]: 101, // Ouach! Fahrenheit...
},
{
[idsCols[idVarEndroit]]: "là",
[idsCols[idVarDate]]: "2023-01-01",
[idsCols[idVarTempMax]]: 110,
},
];
// Convertir à centigrades
const fÀC = {
type: "numérique";
opération: [
{ op: "-", val: 32 },
{ op: "*", val: 5/9 }
]
}
// Finalement, importer les données
await client.tableaux.importerDonnées({
idTableau,
données: nouvellesDonnées,
conversions: {
[idsCols[idVarTempMin]]: fÀC,
[idsCols[idVarTempMaxx]]: fÀC,
}
});client.tableaux.exporterDonnées({ idTableau, langues, doc, nomFichier })
Exporte des données d'un tableau Constellation, mais ne le sauvegarde pas immédiatement au disque.
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
langues | `string[] | undefined` |
doc | `xlsx.WorkBook | undefined` |
nomFichier | `string | undefined` |
Retour
| Type | Description |
|---|---|
Promise<donnéesBdExportées> | Les données exportées, prètes à être écrites à un fichier de votre choix. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd(: "ODBl-1_0" });
const idTableau = await client.bds.ajouterTableauBd({ idBd });
// ... ajouter des colonnes et des données ...
const donnéesExportées = await client.tableaux.exporterDonnées({
idTableau,
langues: ["fr", "த", "kaq"],
});
// Faire quelque chose avec le documentclient.tableaux.suivreDonnéesExportation({ idTableau, langues, f })
Suite les données d'un tableau en format exportation (données traduites).
Paramètres
| Nom | Type | Description |
|---|---|---|
idTableau | string | L'identifiant du tableau. |
langues | `string[] | undefined` |
f | Promise<donnéesTableauExportation> | Fonction de suivi qui sera appellée chaque fois que changeront les données. |
Retour
| Type | Description |
|---|---|
Promise<() => Promise<void>> | Fonction à appeler pour arrêter le suivi. |
Exemple
import { créerConstellation } from "@constl/ipa";
const client = créerConstellation();
const idBd = await client.bds.créerBd(: "ODBl-1_0" });
const idTableau = await client.bds.ajouterTableauBd({ idBd });
// ... ajouter des colonnes et des données ...
const fOublier = await client.tableaux.suivreDonnéesExportation({
idTableau,
langues: ["fr", "த", "kaq"],
f: console.log
});Types
Plusieurs types sont associés aux tableaux Constellation et à leurs données.
Types données
// Représente une rangé de données provenant d'un tableau
interface élémentDonnées<
T extends élémentBdListeDonnées = élémentBdListeDonnées
> {
données: T;
id: string; // Identifiant unique de la rangé de données
}
type élémentBdListeDonnées = {
[key: string]: élémentsBd;
};
// Représente tout type de données pouvant être sauvegardé à orbit-db
type élémentsBd =
| number
| boolean
| string
| { [clef: string]: élémentsBd }
| Array<élémentsBd>;Types colonnes
Ces types sont associés avec les informations des colonnes des tableaux.
type InfoCol = {
id: string;
variable: string;
index?: boolean;
};
type InfoColAvecCatégorie = InfoCol & {
catégorie?: catégorieVariables;
};Types conversions données
export type conversionDonnées =
| conversionDonnéesNumérique
| conversionDonnéesDate
| conversionDonnéesChaîne;
export type conversionDonnéesNumérique = {
type: "numérique";
opération?: opérationConversionNumérique | opérationConversionNumérique[];
systèmeNumération?: string;
};
export type opérationConversionNumérique = {
op: "+" | "-" | "/" | "*" | "^";
val: number;
}
export type conversionDonnéesDate = {
type: "horoDatage";
système: string;
format: string;
};
export type conversionDonnéesChaîne = {
type: "chaîne";
langue: string;
};Types exportation
type donnéesTableauExportation = {
nomTableau: string;
données: élémentBdListeDonnées[];
fichiersSFIP: Set<string>;
};