User Tools

Site Tools


questionnairedetailslangguide

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
questionnairedetailslangguide [2025/03/10 07:22] gloriaquestionnairedetailslangguide [2025/03/10 08:57] (current) gloria
Line 1: Line 1:
-====== Steps to Fill in the Modules Table (Complete Guide) ====== 
  
-This guide provides a step-by-step approach to correctly fill the **Modules** table.   +====== Steps to Fill in the QuestionnaireDetailsLang Table (Complete Guide) ======
-The **Modules** table is used to store information about various **functional modules** in the system.   +
-Each module represents a component of the system that can:   +
-  * Operate **independently** or **depend on other modules**.   +
-  * Be activated/inactivated per client.   +
-  * Be displayed in both **front-end and back-end** applications.  +
  
-The table also supports:   +This guide provides a step-by-step approach to correctly fill the **QuestionnaireDetailsLang** tableThis table is used to store **language-specific text** for each question in the surveyIt supports multi-language surveys, allowing the same question to appear in **multiple languages** with corresponding text, labels, and media files.
-  * **Parent-child relationships** between modules  +
-  * **Default module selection** for specific clients  +
-  Uploading module **icons/logos**.   +
-  Enabling/disabling modules per client +
  
-👉 You can find the detailed structure of the **Modules** table here:  [[modules|Modules Table Structure]]+The table is linked to the **QuestionnaireDetails** table via **qdetailid**, meaning each question from [[questionnairedetails|QuestionnaireDetails]] has a corresponding language text entry in **fw_questiondetailslang**.
  
 +You can find the detailed structure of the **QuestionnaireDetailsLang** table here:  
 +👉 [[questionnairedetailslang|QuestionnaireDetailsLang Table Structure]]
  
  
-===== 1. Add the Module ID (id) ===== 
-The **id** column serves as the **Primary Key** for the Modules table.\\ 
-This value is **auto-incremented**, meaning the database automatically assigns a unique ID to each module.\\ 
-You **do not need to fill this manually** when inserting a module.\\ 
  
-**Example:**   +==== 1. Add the ID (id) ==== 
-^ Scenario         ^ id  ^ +This is the **primary key** (auto-incremented) for the table.\\ 
-| First Module     | 1   | +**Do not manually enter** this value if inserting data directly via the database.\\ 
-| Second Module    | 2   |+It is automatically generated.
  
  
-===== 2. Link the Module to a Client (clientid) ===== 
-The **clientid** column acts as a **Foreign Key** linking the module to a specific client.\\ 
-This is crucial for **multi-client systems** where each client has distinct modules.\\ 
  
-**Why is this important?** +==== 2. Link Question to Details (qdetailid) ==== 
-  It ensures that modules are **client-specific**. +**qdetailid** refers to the ID of the question from the **QuestionnaireDetails** table.\\ 
-  Clients will only see the modules **assigned to them** in the front-end.+This creates a link between the **question text** and the **question details**.\\ 
 +Without this linkage, the text will not appear in the survey.
  
 **Example:**   **Example:**  
-Suppose you have two clients:   +Suppose your question in **QuestionnaireDetails** has:   
-^ Client      ^ clientid ^ +**id = 1001** (This is the question ID in **fw_questiondetails**)\\   
-| Client A    | 101       | +**majorqid = 1**, **minorqid = 0**  
-| Client B    | 102       |+
  
-If creating a module for **Client A**:   +You need to link the text to this question using:   
-`clientid 101`  +qdetailid 1001
  
-If creating a module for **Client B**:   
-`clientid = 102`   
  
  
-=====  3. Set the Parent Module ID (parentid===== +==== 3. Set the Language (language) ==== 
-The **parentid** column is used to define a **parent-child relationship** between modules.\\ +This column specifies the **language** in which the question text appears.\\ 
-If the module has a **parent module**, enter the **id of the parent module** here.   +Use standard **language codes** like:   
-If the module is **independent** (no parent module), leave it as **NULL**.   +  **EN** → English   
- +  **NL** → Dutch   
-**Why use a Parent Module?** +  **DE** → German   
-  * This creates a **hierarchical structure**.   +  - **FR** → French  
-  * Sub-modules will only appear when the **parent module** is enabled.  +
  
 **Example:**   **Example:**  
-Suppose you have:   +For an English version of the question:   
-  * **Parent Module:** Reports (`id = 1`)   +language EN  
-  * **Child Module:** Sales Reports (`id 2`)  +
  
-You should enter:   +For a Dutch version of the same question:   
-`parentid 1` for **Sales Reports**.  +language NL  
  
-^ Module Name    ^ id  ^ parentid ^ 
-| Reports        | 1   | NULL     | 
-| Sales Reports  | 2   | 1        | 
  
- **Leave this blank (NULL) if the module has no parent.** 
  
-=====  4. Set the Module Name (name===== +==== 4. Add the Question Text (question) ==== 
-The **name** column contains the **visible name** of the module in both the:   +This column holds the **actual text of the question** in the specified language.\\
-  * **Back-end (admin panel)**   +
-  * **Front-end (client panel)**  +
  
 +**Example:**  
 +For an English version:  
 +question = "How satisfied are you with our service?"  
  
-=====  5. Set the Module Description (description===== +For a Dutch version:   
-The **description** column is used to provide short **explanation** of what the module does.\\ +question "Hoe tevreden bent u met onze service?" 
-This description will usually appear as a tooltip or small info block.\\+ 
 + 
 + 
 +==== 5. Set the Client Sheet Question Text (clientsheetqtext) ==== 
 +This text appears specifically on the **Client Sheet (CS)** report.\\ 
 +It is usually shorter version of the **full question text** for reporting purposes.
  
 **Example:**   **Example:**  
-^ Module Name    ^ description                                           | +For the full question:   
-| Reports        | Provides access to reports & dashboards             | +question = "How satisfied are you with our service?"  
-| Sales Reports  | Shows detailed sales performance reports            | +
-| User Management| Manage client-level access and roles                |+
  
- Keep the description under **255 characters**.+For the client sheet:   
 +clientsheetqtext = "Service satisfaction"
  
  
  
-===== 6. Upload the Module Icon (iconfile) (optional===== +==== 6. Set the Download Question Text (downloadqtext) ==== 
-The **iconfile** column allows you to upload a **small image/logo** representing the module.\\ +This text will appear in the **Excel/CSV export** of the survey data.\\ 
-This is useful when displaying visual menu of modules in the front-end.\\+It should be simplified version of the question text to fit within the download file. 
 + 
 +**Example:**   
 +For the full question:   
 +question = "How satisfied are you with our service?"   
 + 
 +For download purposes:   
 +downloadqtext = "Service Satisfaction Rating" 
  
-**Supported formats:**   
-  * PNG   
-  * JPG   
-  * SVG   
  
-**Maximum size:**   +==== 7. Set the Import Question Text (importqtext) ==== 
-  **100x100 pixels**  +This text will appear if the survey data is being **imported** (bulk response data).\\ 
 +It should clearly reflect the **question context** for easy data mapping.
  
 **Example:**   **Example:**  
-^ Module Name    ^ iconfile               | +For an NPS:   
-| Reports        | reports_icon.png     | +importqtext = "NPS Score"  
-| User Management| user_icon.svg        |+
  
-This field can be left **blank** if no icon is needed.+For service satisfaction:   
 +importqtext = "Service Satisfaction Level"
  
  
  
-=====  7Activate or Inactivate the Module (active===== +==== 8Set the Report Question Text (reportqtext) ==== 
-The **active** column defines whether the module is **active** or **inactive** for the client.\\+The **reportqtext** is used in drill-down reports to generate a natural language summary of the respondent's answer instead of showing the raw question text.\\ 
 +The placeholder //^answerQ^// should be used in the text to indicate where the respondent's answer will be inserted.\\ 
 +This helps make the report easier to read and more conversational when reviewing answers.
  
-**Possible values:**   +**Example:**   
-^ Value  ^ Meaning        | +If the response was:   
-| 1      | Active         | +Answer: **8/10**  
-| 0      | Inactive       |+
  
 +The report will display:  
 +**The respondent rated us 8 out of 10.**  
  
 +Here is a reference table for the **reportqtext**:
  
- Set **1** if the module is available  +**Question Type**      ^ **Actual Question in Survey**                                        ^ **Suggested Report Text (reportqtext)**                                              ^ 
- Set **0** if the module is hidden.+| **NPS**                | How likely are you to recommend us to a friend?                      | The respondent rated us //^answerQ^// out of 10.                                      | 
 +| **Satisfaction**       | How satisfied were you with our service?                             | The customer satisfaction rating was: //^answerQ^//                                | 
 +| **Open Text**          | What can we do to improve our service?                               | The customer suggested: //^answerQ^//                                               | 
 +| **Multiple Choice**    | Which service did you use?                                           | The customer used: //^answerQ^//                                                    | 
 +**Yes/No**             | Did the doctor listen to your concerns?                              | The customer answered: //^answerQ^//                                                |
  
  
  
-=====  8. Set the Default Module (isdefault===== +==== 9. Set the App Question Text (appqtext) ==== 
-The **isdefault** column determines if the module is the **default module** when a client logs in.\\ +This text appears in the **mobile app case details screen** if the survey is accessible via an app.\\
-Only **one module** can be marked as the default per client.\\+
  
-**Possible values:**   +**Example:**   
-^ Value  ^ Meaning           | +For service satisfaction:   
-| 1      | Default module    | +appqtext = "Satisfaction"   
-| 0      | Not default       |+ 
 +For NPS:   
 +appqtext = "NPS Score" 
 + 
 + 
 + 
 +==== 10. Set the Client Sheet Category (cscategory) ==== 
 +This defines the **category** in which the question falls in the Client Sheet.\\ 
 +Common categories include:   
 +  - Service Quality   
 +  - Product Quality   
 +  - Customer Satisfaction   
 +  - Recommendation  
  
 **Example:**   **Example:**  
-^ Module Name        ^ isdefault | +For Service Satisfaction:   
-| Dashboard          | 1         | +cscategory = "Service Quality"  
-| Reports            | 0         |+
  
- If no module is marked as default, the system will redirect to the first active module.+For NPS:   
 +cscategory = "Recommendation"
  
  
-=====  9Set the Module Order (sortorder===== + 
-The **sortorder** column controls the **display order** of the modules in the front-end.\\ +==== 11Add Basis Text (basistext) ==== 
-Modules with **lower sortorder** appear **first**.\\+The **basis text** is shown in the **Voorbeeld Vragenlijst** (Example Questionnaire).\\ 
 +It explains why this question is being asked.
  
 **Example:**   **Example:**  
-^ Module Name        ^ sortorder | +basistext = "This question is asked when variable client is Swiesktly."  
-| Dashboard          | 1         | +
-| Reports            | 2         |+
  
 +For NPS:  
 +basistext = "This question is asked when the respondent is a promoter."
  
  
-=====  10. Add the Created Date (createdate) ===== 
-The **createdate** column stores the **date and time** the module was added.\\ 
-Format: `YYYY-MM-DD HH:MM:SS`\\ 
  
-Example:   +==== 12. Set Added From Module Language Settings (addedfrommodlangsettings) ==== 
-`createdate = 2025-03-10 12:45:00`+This is a **technical flag** to indicate if the text was auto-generated from module settings.\\ 
 +Use:   
 +**1** → Yes, text was added from module language settings   
 +**0** → No, manually added text 
 + 
 +**Example:**   
 +If you manually entered the text  
 +addedfrommodlangsettings = 0 
  
  
 +==== 13. Upload Audio File (audiofile) (optional) ====
 +This is an optional column where you can upload an **audio recording of the question**.\\
 +The file should be uploaded as a **BLOB (binary large object)**.\\
 +Supported formats:  
 +- MP3  
 +- WAV
  
-=====  11. Add the Last Modified Date (lastmodifieddate) ===== 
-The **lastmodifieddate** column stores the **date and time** the module was last updated.\\ 
-Format: `YYYY-MM-DD HH:MM:SS`\\ 
  
-Example:   
-`lastmodifieddate = 2025-03-10 14:30:00` 
  
 +==== 14. Upload Video File (videofile) (optional) ====
 +This is an optional column where you can upload a **video file related to the question**.\\
 +The file should be uploaded as a **BLOB**.\\
 +Supported formats:  
 +- MP4  
 +- MOV
  
-===== 12. Add the Modified By User (modifiedby) ===== 
-The **modifiedby** column stores the **user ID** of the person who last modified the module.\\ 
  
-Example:   
-`modifiedby = 25` 
  
 +====  Example: Final Record ====
 +Here’s an example of a complete record for a single question:
  
-=====  Example: Final Record ===== +| id | qdetailid | language | question                                | clientsheetqtext  | downloadqtext | importqtext     | reportqtext                     | appqtext | cscategory       | basistext                     | addedfrommodlangsettings | audiofile | videofile | 
-Here’s how a complete record would look:+| 1  | 1001      | EN      | How satisfied are you with our service?  | Service Satisfaction | Service Rating | Satisfaction Level | The respondent rated us //^answerQ^//. | Satisfaction | Service Quality | Understand customer satisfaction |                        |             |
  
-id | clientid | parentid | name          | description                  | iconfile          | active | isdefault | sortorder | createdate             | lastmodifieddate       | modifiedby |+==== ✅ Notes ==== 
 + Always ensure the **qdetailid** matches the ID from [[questionnairedetails|QuestionnaireDetails]].\\     
 + The **reportqtext** should always use //^answerQ^// to dynamically insert the response.  
  
-| 1  | 101      | NULL     | Reports        | View reports & dashboards | reports_icon.png | 1      | 1         | 1         | 2025-03-10 12:45:00   | 2025-03-10 14:30:00   | 25         |+💡 **In most cases:**  \\ 
 +  -     The **question** text and **reportqtext** are usually identical  
 +     The **clientsheetqtext**, **downloadqtext**, **importqtext**, and **appqtext** often have the **same text** unless there's a specific reason to differentiate them.
  
  
-✅ **Note:**   
-  -  **parentid** is correctly linked.   
-  -  **sortorder** is unique.   
-  -  Modules for the same client have unique names. 
  
questionnairedetailslangguide.1741591356.txt.gz · Last modified: 2025/03/10 07:22 by gloria