Salve a tutti, ho installato la versione 1.5 e mi chiedevo come fosse possibile ordinare in maniera crescente i valori di una Lookup gerarchica (esempio: prima combo con la regione italiana, seconda combo con le città di quella regione). Dalla sezione Amministrazione cliccando su "Descrizione" della "Lista Voci" della lookup è possibile ordinare i valori in maniera crescente ma poi dalla Gestione Dati non appaiono così (resta l'ordinamento così come inseriti nel database). Sapete se è possibile ottenerli ordinati? Grazie, Luigi.
Ho anche io lo stesso problema... qualcuno sa come fare?
Luigi ha scritto:
Salve a tutti, ho installato la versione 1.5 e mi chiedevo come fosse possibile ordinare in maniera crescente i valori di una Lookup gerarchica (esempio: prima combo con la regione italiana, seconda combo con le città di quella regione). Dalla sezione Amministrazione cliccando su "Descrizione" della "Lista Voci" della lookup è possibile ordinare i valori in maniera crescente ma poi dalla Gestione Dati non appaiono così (resta l'ordinamento così come inseriti nel database). Sapete se è possibile ottenerli ordinati? Grazie, Luigi.
Per spostare una riga di una lista lookup in una posizione diversa è sufficiente cliccare sulla riga e spostarla in alto o in basso nella posizione voluta (drag and drop).
La funzione di ordinamento disponibile su ciascuna colonna di una griglia serve invece in CMDBuild per visualizzare i dati ordinati in modo diverso, non per modificarne l'ordinamento nel database.
Fabio
Il problema è che ho circa 1000 righe ordinate casualmente... quindi attualmente l'unica soluzione è tramite DRAG&DROP? Non è possibile aggiungere da "qualche parte" il tipo di ordinamento?
Grazie per la tempestività comunque della risposta.
Luigi.
Tecnoteca ha scritto:
Per spostare una riga di una lista lookup in una posizione diversa è sufficiente cliccare sulla riga e spostarla in alto o in basso nella posizione voluta (drag and drop).
La funzione di ordinamento disponibile su ciascuna colonna di una griglia serve invece in CMDBuild per visualizzare i dati ordinati in modo diverso, non per modificarne l'ordinamento nel database.
Fabio
In genere (ma ci sono sicuramente casi in cui la scelta può essere giustificata) le "lookup" si utilizzano per liste con alcune unità o decine di righe, mentre archivi di dimensioni maggiori vengono trattati come "classi" (con la possibilità in quel caso non solo di definire un ordinamento persistente, ma anche di trattare ulteriori informazioni oltre a codice e descrizione).
Al momento non è comunque disponibile nel Modulo di Amministrazione una funzione per riordinare una lista lookup.
Pur non essendo una soluzione suggerita (l'intervento manuale nel database è a rischio e pericolo di chi lo effettua) le segnalo che l'ordimento di una lista "lookup" è determinato dalla colonna di DB "LookUp"."Number", su cui si può eventualmente intervenire tramite una query SQL di update.
Riporto di seguito uno script SQL che ordina la lista in base al campo "Descrizione", specificando come parametro il nome della "lookup":
CREATE OR REPLACE FUNCTION sortlookup(lookuptype text) RETURNS integer AS $BODY$ DECLARE rRec RECORD; BEGIN CREATE TEMPORARY SEQUENCE lookuporder_seq start 1; PERFORM SETVAL('lookuporder_seq', 1, false); FOR rRec IN (SELECT * FROM "LookUp" where "Type" = lookuptype ORDER BY "Description") LOOP UPDATE "LookUp" SET "Number" = nextval( 'lookuporder_seq' ) WHERE "Description" = rRec."Description"; END LOOP; DROP SEQUENCE lookuporder_seq; RETURN 0; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION sortlookup(text) OWNER TO postgres;
Fabio
Le confermo che il trigger sembra funzionare.
Grazie,
Luigi.
Tecnoteca ha scritto:
In genere (ma ci sono sicuramente casi in cui la scelta può essere giustificata) le "lookup" si utilizzano per liste con alcune unità o decine di righe, mentre archivi di dimensioni maggiori vengono trattati come "classi" (con la possibilità in quel caso non solo di definire un ordinamento persistente, ma anche di trattare ulteriori informazioni oltre a codice e descrizione).
Al momento non è comunque disponibile nel Modulo di Amministrazione una funzione per riordinare una lista lookup.
Pur non essendo una soluzione suggerita (l'intervento manuale nel database è a rischio e pericolo di chi lo effettua) le segnalo che l'ordimento di una lista "lookup" è determinato dalla colonna di DB "LookUp"."Number", su cui si può eventualmente intervenire tramite una query SQL di update.
Riporto di seguito uno script SQL che ordina la lista in base al campo "Descrizione", specificando come parametro il nome della "lookup":
CREATE OR REPLACE FUNCTION sortlookup(lookuptype text) RETURNS integer AS $BODY$ DECLARE rRec RECORD; BEGIN CREATE TEMPORARY SEQUENCE lookuporder_seq start 1; PERFORM SETVAL('lookuporder_seq', 1, false); FOR rRec IN (SELECT * FROM "LookUp" where "Type" = lookuptype ORDER BY "Description") LOOP UPDATE "LookUp" SET "Number" = nextval( 'lookuporder_seq' ) WHERE "Description" = rRec."Description"; END LOOP; DROP SEQUENCE lookuporder_seq; RETURN 0; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; ALTER FUNCTION sortlookup(text) OWNER TO postgres;Fabio