Bonjour,
Je cherche une méthode pour récupérer le type de colonne d’une table via un widget custom builder lié à la table pour pouvoir modifier l’affichage si la colonne est texte ou choice ou autre etc…
Bonjour,
Je cherche une méthode pour récupérer le type de colonne d’une table via un widget custom builder lié à la table pour pouvoir modifier l’affichage si la colonne est texte ou choice ou autre etc…
Bonjour,
c’est cette fonction qui donne les infos sur les colonnes :
grist.docApi.fetchTable('_grist_Tables_column')
Le code ci-dessous permet de récupérer les métadonnées d’une table :
<html>
<head>
<script src="https://docs.getgrist.com/grist-plugin-api.js"></script>
</head>
<body>
<pre id="output"></pre>
<script>
grist.ready({ requiredAccess: 'full' });
(async () => {
// Récupérer le nom de la table courante
const table = await grist.getTable();
const tableId = await table._platform.getTableId();
// Récupérer les tables système
const tables = await grist.docApi.fetchTable('_grist_Tables');
const columnsTable = await grist.docApi.fetchTable('_grist_Tables_column');
// Trouver l'ID numérique de la table
const tableRef = tables.id[tables.tableId.indexOf(tableId)];
// Extraire les colonnes de cette table
const metadata = {};
for (let i = 0; i < columnsTable.parentId.length; i++) {
if (columnsTable.parentId[i] === tableRef) {
const colId = columnsTable.colId[i];
if (colId !== 'id' && colId !== 'manualSort' && !colId.startsWith('gristHelper')) {
metadata[colId] = {
type: columnsTable.type[i],
label: columnsTable.label?.[i] || colId
};
}
}
}
document.getElementById('output').textContent = JSON.stringify(metadata, null, 2);
})();
</script>
</body>
</html>
Ce code :
J’ai mis l’exemple minimal ici : https://grist.incubateur.anct.gouv.fr/o/tutos-templates/doc/rvyQtf7ECqp3~2oUff4Eav9EYt2p3HjFyWc~6921/p/8