Struttura del sondaggio sul valore separato da tabulazioni
From LimeSurvey Manual
Importazione ed esportazione di valori separati da tabulazioni della struttura del sondaggio
Questa funzione è progettata per semplificare l'utilizzo di un software per fogli di calcolo come LibreOffice, Excel o Google Docs per creare e modificare sondaggi. Elimina completamente la dipendenza dai codici SGQA.
Questa funzione supporta l'importazione da file TSV (Tab Separated Value) con codifica ASCII o UTF-8 con estensione .txt.
Per iniziare
Il modo più semplice è prendere un sondaggio esistente ed esportarlo in formato Valore separato da tabulazioni. Utilizza il normale pulsante di esportazione del sondaggio e, invece di selezionare il formato .lss, seleziona "Formato valori separati da tabulazioni (*.txt)". Verrà salvato come file con valori separati da tabulazioni nel formato corretto (file Unicode delimitato da tabulazioni), con tutte le intestazioni di colonna corrette.
Va bene qualsiasi software per fogli di calcolo che supporti i valori separati da tabulazioni (ad es. OpenOffice o LibreOffice). LimeSurvey ignora qualsiasi formattazione all'interno del foglio di calcolo, ma sentiti libero di aggiungerne qualcuna se ti aiuta.
Ci sarà una riga per ogni gruppo, domanda, sottodomanda e risposta. Ci sono anche righe per le variabili del sondaggio globale e per le variabili del sondaggio specifiche della lingua. La lingua principale verrà elencata per prima, seguita da eventuali lingue secondarie. Quindi, se sono presenti più lingue, verrà visualizzato per primo l'intero contenuto della lingua di base (ad esempio, tutti i gruppi, le domande, le sottodomande e le risposte). Questo sarà seguito da una copia tradotta per ogni lingua secondaria (con esattamente lo stesso numero e lo stesso ordine o righe per il set tradotto).
Le relazioni sono dedotte dalla prossimità. Quindi, le domande che seguono un gruppo fanno parte di quel gruppo; le sottodomande che seguono una domanda fanno parte di quella domanda e le risposte che seguono una domanda fanno parte di quella domanda. Pertanto, non è necessario conoscere gli ID (gid, qid, sqid) per qualsiasi domanda. Questi verranno calcolati automaticamente al momento dell'importazione. In effetti, questo formato non utilizza affatto gid, qid o sqid (o codici SGQA).
Suggerimenti
L'obiettivo dell'importazione/esportazione di valori separati da tabulazioni è consentirti di progettare rapidamente il tuo sondaggio utilizzando un foglio di calcolo. Prevediamo che importerai frequentemente il foglio, ne verificherai la validità utilizzando la funzione "Mostra logica del sondaggio" e lo testerai. Ogni volta che lo importi, otterrai un nuovo sondaggio. Quindi, potresti ritrovarti con molti sondaggi parzialmente sviluppati, ma va bene. Basta prendere l'abitudine di tenere traccia di quale è il più recente o eliminare quello vecchio dopo aver importato quelli nuovi. Dal momento che non utilizzi mai i codici SGQA nel valore separato da tabulazioni, non devi mai preoccuparti di quali codici LimeSurvey assegna per il sondaggio principale, il gruppo, la domanda e le chiavi di risposta. Quindi, sentiti libero di importare ed esportare tutte le volte che vuoi.
Ecco alcune cose utili che puoi fare con questo approccio agli strumenti di creazione:
- Usa le stesse risposte per molte domande. Basta copiare le righe 'A' e incollarle dopo ogni domanda che dovrebbe avere lo stesso insieme.
- Usa le stesse sottodomande per molte domande. Basta copiare le righe 'SQ' e incollarle dopo ogni domanda che ne ha bisogno.
- "Looping" - usa lo stesso gruppo molte volte. Dopo che il gruppo è come lo desideri, copialo tutte le volte che è necessario. Utilizza i filtri di Excel per visualizzare solo le righe "G" (per i gruppi) e utilizza la funzione di trascinamento della colonna di Excel per aggiornare le equazioni di rilevanza per ciascun gruppo (ad esempio, per un censimento, la prima rilevanza potrebbe essere "numPeople > 1", la successiva dovrebbe essere "numPeople > 2". La funzione di trascinamento aggiornerà automaticamente il numero). Filtra per righe 'Q' e assicurati che ogni domanda abbia un valore univoco (ad esempio, supponi di nominare le tue variabili g1_q1, g1_q2, g1_qN, usa trova/sostituisci per convertire g1 in g2 il secondo gruppo; g3 per il terzo, ecc.).
- Riordino di domande/gruppi. È sufficiente riordinare le righe del foglio di calcolo.
- Testare i moduli di indagine. Per lunghi sondaggi, potresti voler suddividere il test in moduli. Crea semplicemente nuovi file di fogli di calcolo per ciascun modulo, eliminando tutte le righe che non ti servono. Questo evita la necessità di inserire molti dati per testare sezioni successive del sondaggio.
- Domande obbligatorie di test. Una lamentela comune non è la necessità di rendere obbligatorie molte domande, ma la necessità di disattivare la funzione obbligatoria per i test. Crea semplicemente il foglio di calcolo principale con l'impostazione obbligatoria sui valori finali desiderati. Quindi, per testarlo, basta eliminare la colonna "obbligatoria" e salvare la versione di prova del foglio di calcolo. Quando importi quella versione, nessuna delle domande sarà obbligatoria. Dopo aver terminato il test, importa la copia master.
- Setting defaults. Anziché utilizzare la GUI, è possibile inserire qualsiasi impostazione predefinita desiderata nella colonna predefinita. Ciò è particolarmente utile nei casi in cui la GUI non consente di inserire il valore desiderato, come espressioni per impostare l'impostazione predefinita per gli elementi dell'elenco (come la compilazione di un elenco da un attributo partecipante al sondaggio.
- Traduzione. Puoi creare copie del tuo foglio di calcolo, una per lingua. Includi tutte le righe per la lingua principale, quindi copiale e incollale di seguito e usa il trascinamento per cambiare il campo della lingua nella lingua di destinazione. Questi possono essere distribuiti ai tuoi traduttori e reintegrati in un singolo file di foglio di calcolo quando hanno finito.
- Impostazione in blocco degli attributi delle domande avanzate. Potresti volere che tutte le tue equazioni inizino a essere visibili (così puoi vedere i loro valori mentre raccogli i dati), ma poi nascondile tutte prima di andare in produzione. Basta filtrare il foglio di calcolo su class = 'Q' e tipo di domanda = '*' (equazione) e impostare always_hide su 1 per ciascuna di queste domande. Allo stesso modo, supponiamo che dopo aver creato il sondaggio, tu decida quali domande dovrebbero apparire nelle statistiche pubbliche. Piuttosto che modificare ogni domanda tramite la GUI, filtrare su class = 'Q' e impostare public_statistics = 1 per tutte le domande che dovrebbero essere visibili nelle statistiche.
- Trova e sostituisci. Supponiamo che tu decida di dover modificare alcune frasi in tutte le tue domande, puoi utilizzare Trova e sostituisci di Excel per apportare tali modifiche. Allo stesso modo, supponiamo che tu decida di eseguire una ridenominazione in blocco delle tue variabili, trova e sostituisci può venire in soccorso. Se hai bisogno di ricerca e sostituzione basata su espressioni regolari, puoi selezionare la colonna desiderata, copiarla in un editor di testo, eseguire la ricerca e la sostituzione e incollare nuovamente la colonna nel foglio di calcolo.
- Ottenimento di approvazioni. Se stai facendo ricerche, potresti avere un comitato di revisione istituzionale che insiste per vedere il testo delle domande. Questo può essere un modo conveniente per condividerlo. Allo stesso modo per le discussioni con un cliente.
- Consenso del team. Se stai cercando di convincere un gruppo a concordare la formulazione o l'aspetto di una domanda o di un gruppo, puoi prototipare/modificare rapidamente il foglio di calcolo, importarlo e mostrare al team (tramite domanda o anteprima di gruppo) esattamente ciò che vedranno gli utenti. In questo modo puoi ottenere l'approvazione dal team prima che lasci la stanza invece di dover documentare i requisiti, crearli e ottenere l'approvazione durante le riunioni future.
- Aggiornamento da altri formati di sondaggio. Se il tuo sondaggio è in XML, Word o altro formato, puoi creare un processo di traduzione per mapparli a questo formato. Sebbene tu possa anche provare a eseguire il mapping al formato .lss, il vantaggio di questo formato è che non richiede di tenere traccia delle relazioni di chiave esterna tra gruppi, domande, domande secondarie, risposte e impostazioni predefinite.
Limitazioni
- In base alla progettazione, questa funzione funziona correttamente solo per i sondaggi che utilizzano la denominazione qcode (piuttosto che SGQA). Questa funzione presuppone che i nomi delle variabili (identificatori di domanda) siano univoci in tutto il sondaggio. I nomi delle sottodomande possono essere ripetuti, purché siano univoci nell'ambito di una particolare domanda.
Formato file
Generale
Utilizziamo lo stesso insieme di intestazioni di colonna per più scopi. Le prime 14 colonne hanno scopi diversi a seconda del tipo di entità (ad esempio, gruppo, domanda, risposta). Le restanti colonne sono un elenco alfabetico dei nomi dei campi del database per i codici delle domande avanzate. Di seguito è riportata la sintassi per ogni tipo di entità
Le prime 14 colonne sono:
- id (New in 3.14.0 )
- related_id (New in 3.14.0 )
- class
- type/scale
- name
- relevance
- text
- help
- language
- validation
- mandatory
- other
- default
- same_default

Parametri globali del sondaggio
C'è una riga per parametro nella tabella dei sondaggi.
- class => 'S'
- name => nome del campo del database
- text => valore
Parametri specifici della lingua del sondaggio
C'è una riga per campo per lingua nella tabella surveys_languagesettings. Tutte le voci per una determinata lingua vengono raccolte prima di eseguire l'inserimento in quella tabella.
- class => 'SL'
- name => nome del campo del database
- text => valore
- language => lingua
Gruppi
Una riga di gruppo per lingua del sondaggio (ad esempio, ci sarebbero 3 righe di gruppo se il sondaggio ha 3 lingue).
- id => identificatore numerico univoco per il gruppo, a partire dal numero 1, usa lo stesso ID per altre lingue appartenenti al gruppo corrente
- class => 'G'
N!#name => nome_gruppo -- l'identificatore univoco per il gruppo
- relevance => grelevance -- l'equazione di rilevanza a livello di gruppo, senza parentesi graffe
- text => descrizione -- la descrizione specifica della lingua del gruppo
- language => language -- la lingua del gruppo (ad esempio, 'en')
Questions
One question row per survey language (e.g., there would be 3 question rows if survey has 3 languages). Questions are assumed to belong to the group that precedes them.
- id => unique numeric identifier for the question, starting with number 1, use the same ID for additional languages belonging to current question
- class => 'Q'
- type/scale => type -- the (usually one letter) question type (e.g., 'M' is Multiple Choice)
- name => title -- the unique question name (the root of the qcode naming system)
- relevance => relevance -- the relevance equation for the question
- text => question -- the language-specific text of the question
- help => help -- the language-specific help text
- language => language -- the language for the group (e.g., 'en')
- validation => preg -- the optional regular expression validation criteria for the question
- mandatory => mandatory -- 'Y' if mandatory
- other => other -- 'Y' if the "Other" option should be available (only for some question types)
- default => default -- if set, this value is inserted into the defaultvalues table for this question
- same_default => same_default -- 'Y' for true, in which case any defaultvalue set for primary language applies to other languages
Subquestions
One subquestion row per survey language. Subquestions are assumed to belong to the question that precedes them.
- id => same unique numeric identifier which is used for the questions. Subquestions should use next available value, question and subquestion IDs should be different (e.g. use ID 1 for question and IDs 2, 3 and 4 for subquestions belonging to question 1, next question ID should be 5 and so on). Use the same subquestion ID for additional languages belonging to current subquestions.
- class => 'SQ'
- type/scale => scale_id -- 0 or 1, depending upon question type (e.g. array text will have two scales)
- name => title -- the "name" of the subquestion, e.g. the one used for exclude_all_others
- relevance => relevance -- (Future) to support subquestion-level relevance
- text => question -- the language-specific text of the subquestion
- help => help -- (Future) to support subquestion-level help
- language => language -- the language for the subquestion
- validation => preg -- (Future) to support subquestion-level regular expression validation (e.g. for address parts)
- mandatory => mandatory -- (Future) to support subquestion-level mandatory (e.g. make only a few subquestions mandatory)
- default => default -- if set, then this is the default value for the subquestion (inserted into defaultvalues table)
- same_default => same_default -- if set, then the default for the primary language is used for all other languages
Answers
One answer row per survey language (e.g., there would be 3 answer rows if survey has 3 languages). Answers are assumed to belong to the question that precedes them, and be in the desired sort order.
- id => use the same ID as the ID of the question it belongs to
- class => 'A'
- type/scale => scale_id -- 0 or 1 (e.g. for dual-scale)
- name => code -- the unique answer identifier
- relevance => assessment_value -- if using assessment option, this is the assessment value for the answer
- text => answer -- the language-specific text of the answer
- language => language -- the language for this answer (e.g. 'en')
Assessments
One assessment row per survey language (e.g., there would be 3 assessment rows if survey has 3 languages). Assessments are written at the end of file.
- id => unique numeric identifier for the assessment, starting with number 1, use the same ID for additional languages belonging to current assessment
- related_id => id of group to which current assessment belongs to
- class => 'AS'
- type/scale => assessment scope: T-Total, G-group
- name => name
- text => message
- min_num_value => Minimum
- max_num_value => Maximum
- language => language -- the language for this answer (e.g. 'en')
Quotas
One row per quota. Quotas are written at the end of file.
- id => unique numeric identifier for the quota, starting with number 1
- class => 'QTA'
- name => quota name
- mandatory => limit
- other => quota action
- default => active
- same_default => autoload URL
Quota language settings
One quota row per survey language. Quota language settings are assumed to belong to the quota that precedes them.
- id => unique numeric identifier for the quota language settings, starting with number 1. Each row for different survey languages should have different IDs
- related_id => quota id of quota to which this setting belongs to
- class => 'QTALS'
- relevance => message
- text => URL
- help => URL description
- language => language -- the language for this quota (e.g. 'en')
Quota members
One row per quota member, no language dependent. Quota member row should be placed immediately after question it relates to. Quota members are assumed to belong to the question that precedes them.
- id => unique numeric identifier for the quota members, starting with number 1
- related_id => quota id of quota to which this member belongs to
- class => 'QTAM'
- name => answer code
Conditions
One row per condition, no language dependent. Condition row should be placed immediately after question it relates to. Conditions are assumed to belong to the question that precedes them.
- id => unique numeric identifier for the condition, starting with number 1.
- related_id => question id of related question, if applicable
- class => 'C'
- type/scale => scenario
- name => answer field name
- relevance => comparison operator
- text => expected answer