Modify Footers - Add Column Base Sizes
Jump to navigation
Jump to search
Q Technical Reference
Q Technical Reference
Q Technical Reference > Creating And Modifying Tables
Q Technical Reference > Setting Up Data > Creating New Variables
Q Technical Reference > Updating and Automation > Automation Online Library
Q Technical Reference > Updating and Automation > JavaScript > Table JavaScript and Plot JavaScript
Rule Online Library
This rule adds sample sizes for each column to the footer for a table or chart.
Example
Client = 919; Supplier = 3650;
Technical details
By editing the rule, you can change the delimiter and the text that appears between the name of the column and the sample size. For example, to: Client base is 919 Supplier base is 3650
How to apply this rule
For the first time in a project
- Select the table(s)/chart(s) that you wish to apply the rule to.
- Start typing the name of the Rule into the Search features and data box in the top right of the Q window.
- Click on the Rule when it appears in the QScripts and Rules section of the search results.
OR
- Select Automate > Browse Online Library.
- Choose this rule from the list.
Additional applications of the rule
- Select a table or chart that has the rule and any table(s)/chart(s) that you wish to apply the rule to.
- Click on the Rules tab (bottom-left of the table/chart).
- Select the rule that you wish to apply.
- Click on the Apply drop-down and choose your desired option.
- Check New items to have it automatically applied to new items that you create. Use Edit > Project Options > Save as Template to create a new project template that automatically uses this rule.
Removing the rule
- Select the table(s)/chart(s) that you wish to remove the rule from.
- Press the Rules tab (bottom-right corner).
- Press Apply next to the rule you wish to remove and choose the appropriate option.
How to modify the rule
- Click on the Rules tab (bottom-left of the table/chart).
- Select the rule that you wish to modify.
- Click Edit Rule and make the desired changes. Alternatively, you can use the JavaScript below to make your own rule (see Customizing Rules).
JavaScript
// Create the form.
form.setSummary("Show sample sizes in footers");
var label_text = form.newLabel('Between label and number:');
var text_box = form.newTextBox('between');
text_box.setDefault(' = ');
var label_text1 = form.newLabel('Delimiter:');
var text_box1 = form.newTextBox('delimiter');
text_box1.setDefault('; ');
form.setInputControls([label_text, text_box, label_text1, text_box1]);
var between = text_box.getValue();
var delimiter = text_box1.getValue();
// Getting the data
var column_n_missing = table.availableStatistics.indexOf('Column n') == -1;
var base_n_missing = table.availableStatistics.indexOf('Base n') == -1;
if (column_n_missing && base_n_missing)
form.ruleNotApplicable("This rule only works one tables with Column n or Base n")
var column_ns = column_n_missing ? table.get('Base n') : table.get('Column n');
// Computing the ranges
var ranges = [];
for (var col = 0; col < table.numberColumns; col++) {
var smallest_size = column_ns [0][col];
var largest_size = smallest_size;
for (var row = 0; row < table.numberRows; row++) {
smallest_size = Math.min(smallest_size, column_ns [row][col]);
largest_size = Math.max(largest_size, column_ns [row][col]);
}
ranges.push(smallest_size == largest_size ? smallest_size : smallest_size + " to " + largest_size);
}
// updating the footer
var ss = "";
if (ranges.length == 1 || table.blueQuestion.questionType == "Pick One - Multi")
ss += ranges[0] + delimiter;
else {
for (var col = 0; col < table.numberColumns; col++){
var col_label = table.columnLabels[col];
if (col_label != "NET" && col_label != "Total" && col_label != "SUM") {
ss += table.columnLabels[col] + between + ranges[col] + delimiter;
}
}
//ss = ss.substring(0, ss.length - delimiter.length);
}
table.extraFooters = [ss];
See also
- User Input for Rules for technical information on Rules.
- Rule Online Library for other examples of Rules.
- Table JavaScript and Plot JavaScript for the JavaScript that is used to write custom rules.
- JavaScript for information about the JavaScript programming language.
Q Technical Reference
Q Technical Reference
Q Technical Reference > Creating And Modifying Tables
Q Technical Reference > Setting Up Data > Creating New Variables
Q Technical Reference > Updating and Automation > Automation Online Library
Q Technical Reference > Updating and Automation > JavaScript > Table JavaScript and Plot JavaScript
Rule Online Library