diff --git a/akvo/templates/reportserver/BIRT/.project b/akvo/templates/reportserver/BIRT/.project new file mode 100644 index 0000000000..ba1010385c --- /dev/null +++ b/akvo/templates/reportserver/BIRT/.project @@ -0,0 +1,12 @@ + + + RSR_Results + + + + + + + org.eclipse.birt.report.designer.ui.reportprojectnature + + diff --git a/akvo/templates/reportserver/BIRT/Project-results-single.rptdesign b/akvo/templates/reportserver/BIRT/Project-results-single.rptdesign new file mode 100644 index 0000000000..4542f0cb2d --- /dev/null +++ b/akvo/templates/reportserver/BIRT/Project-results-single.rptdesign @@ -0,0 +1,5225 @@ + + + Akvo Foundation + Eclipse BIRT Designer Version 4.4.2.v201410272105 Build <4.4.2.v20150217-1805> + + + queryText + 71 + + + queryTimeOut + 71 + + + rowFetchSize + 71 + + + queryText + 298 + + + queryTimeOut + 298 + + + rowFetchSize + 298 + + + in + /templates/grouped_listing.gif + org.eclipse.birt.report.designer.ui.cheatsheet.groupedlisting + ltr + 96 + + + Id number of the project + Project id + static + true + integer + true + + 2849 + + + simple + false + text-box + + Unformatted + + + + + + + + metadataBidiFormatStr + ILYNN + + + disabledMetadataBidiFormatStr + + + contentBidiFormatStr + ILYNN + + + disabledContentBidiFormatStr + + + org.postgresql.Driver + jdbc:postgresql://localhost:1234/rsr + rsr + YnlwMGNndE1SQU13Y2JubzIxY3hWYm14cFM0TkxSaThuQkNScklNZQ== + + + + + metadataBidiFormatStr + ILYNN + + + disabledMetadataBidiFormatStr + + + contentBidiFormatStr + ILYNN + + + disabledContentBidiFormatStr + + + org.postgresql.Driver + jdbc:postgresql://localhost:1234/rsr + rsr_readonly + cmVtb25zdHJhdGluZ3JvZGVudA== + + + + + metadataBidiFormatStr + ILYNN + + + disabledMetadataBidiFormatStr + + + contentBidiFormatStr + ILYNN + + + disabledContentBidiFormatStr + + + org.postgresql.Driver + jdbc:postgresql://psql:5432/rsrreports + rsr + YnlwMGNndE1SQU13Y2JubzIxY3hWYm14cFM0TkxSaThuQkNScklNZQ== + + + + + nulls lowest + + + title + dimension + title + title + + + result_pk + measure + result_pk + result_pk + + + indicator_title + dimension + indicator_title + indicator_title + + + indicator_pk + measure + indicator_pk + indicator_pk + + + baseline_year + measure + baseline_year + baseline_year + + + baseline_comment + dimension + baseline_comment + baseline_comment + + + baseline_value + dimension + baseline_value + baseline_value + + + indicatorperiod_pk + measure + indicatorperiod_pk + indicatorperiod_pk + + + actual_value + dimension + actual_value + actual_value + + + actual_comment + dimension + actual_comment + actual_comment + + + target_value + dimension + target_value + target_value + + + target_comment + dimension + target_comment + target_comment + + + period_start + dimension + period_start + period_start + + + period_end + dimension + period_end + period_end + + + + + projid + TheProjectId + + integer + 4 + 1 + 2849 + true + false + + + + + + 1 + title + string + + + 2 + result_pk + integer + + + 3 + indicator_title + string + + + 4 + indicator_pk + integer + + + 5 + baseline_year + integer + + + 6 + baseline_comment + string + + + 7 + baseline_value + string + + + 8 + indicatorperiod_pk + integer + + + 9 + actual_value + string + + + 10 + actual_comment + string + + + 11 + target_value + string + + + 12 + target_comment + string + + + 13 + period_start + date + + + 14 + period_end + date + + + + RSR-test + + + 1 + title + title + string + 12 + + + 2 + result_pk + result_pk + integer + 4 + + + 3 + indicator_title + indicator_title + string + 12 + + + 4 + indicator_pk + indicator_pk + integer + 4 + + + 5 + baseline_year + baseline_year + integer + 4 + + + 6 + baseline_comment + baseline_comment + string + 12 + + + 7 + baseline_value + baseline_value + string + 12 + + + 8 + indicatorperiod_pk + indicatorperiod_pk + integer + 4 + + + 9 + actual_value + actual_value + string + 12 + + + 10 + actual_comment + actual_comment + string + 12 + + + 11 + target_value + target_value + string + 12 + + + 12 + target_comment + target_comment + string + 12 + + + 13 + period_start + period_start + date + 91 + + + 14 + period_end + period_end + date + 91 + + + + + + 2.0 + + + + + + + id + 1 + + 4 + 10 + 0 + NotNullable + + id + + + + id + + 11 + + + + + + + title + 2 + + 12 + 45 + 0 + NotNullable + + title + + + + title + + 45 + + + + + + + subtitle + 3 + + 12 + 75 + 0 + NotNullable + + subtitle + + + + subtitle + + 75 + + + + + + + status + 4 + + 12 + 1 + 0 + NotNullable + + status + + + + status + + 1 + + + + + + + project_plan_summary + 5 + + 12 + 2147483647 + 0 + NotNullable + + project_plan_summary + + + + project_plan_summary + + 2147483647 + + + + + + + current_image + 6 + + 12 + 100 + 0 + NotNullable + + current_image + + + + current_image + + 100 + + + + + + + current_image_caption + 7 + + 12 + 50 + 0 + NotNullable + + current_image_caption + + + + current_image_caption + + 50 + + + + + + + goals_overview + 8 + + 12 + 2147483647 + 0 + NotNullable + + goals_overview + + + + goals_overview + + 2147483647 + + + + + + + current_status + 9 + + 12 + 2147483647 + 0 + NotNullable + + current_status + + + + current_status + + 2147483647 + + + + + + + project_plan + 10 + + 12 + 2147483647 + 0 + NotNullable + + project_plan + + + + project_plan + + 2147483647 + + + + + + + sustainability + 11 + + 12 + 2147483647 + 0 + NotNullable + + sustainability + + + + sustainability + + 2147483647 + + + + + + + background + 12 + + 12 + 2147483647 + 0 + NotNullable + + background + + + + background + + 2147483647 + + + + + + + notes + 13 + + 12 + 2147483647 + 0 + NotNullable + + notes + + + + notes + + 2147483647 + + + + + + + currency + 14 + + 12 + 3 + 0 + NotNullable + + currency + + + + currency + + 3 + + + + + + + date_start_planned + 15 + + 91 + 13 + 0 + Nullable + + date_start_planned + + + + date_start_planned + + 13 + + + + + + + date_end_planned + 16 + + 91 + 13 + 0 + Nullable + + date_end_planned + + + + date_end_planned + + 13 + + + + + + + budget + 17 + + 2 + 14 + 2 + Nullable + + budget + + + + budget + + 16 + + + + + + + funds + 18 + + 2 + 14 + 2 + Nullable + + funds + + + + funds + + 16 + + + + + + + funds_needed + 19 + + 2 + 14 + 2 + Nullable + + funds_needed + + + + funds_needed + + 16 + + + + + + + primary_location_id + 20 + + 4 + 10 + 0 + Nullable + + primary_location_id + + + + primary_location_id + + 11 + + + + + + + language + 21 + + 12 + 2 + 0 + NotNullable + + language + + + + language + + 2 + + + + + + + current_image_credit + 22 + + 12 + 50 + 0 + NotNullable + + current_image_credit + + + + current_image_credit + + 50 + + + + + + + target_group + 23 + + 12 + 2147483647 + 0 + NotNullable + + target_group + + + + target_group + + 2147483647 + + + + + + + created_at + 24 + + 93 + 29 + 6 + Nullable + + created_at + + + + created_at + + 29 + + + + + + + last_modified_at + 25 + + 93 + 29 + 6 + Nullable + + last_modified_at + + + + last_modified_at + + 29 + + + + + + + donate_button + 26 + + -7 + 1 + 0 + NotNullable + + donate_button + + + + donate_button + + 1 + + + + + + + sync_owner_id + 27 + + 4 + 10 + 0 + Nullable + + sync_owner_id + + + + sync_owner_id + + 11 + + + + + + + date_start_actual + 28 + + 91 + 13 + 0 + Nullable + + date_start_actual + + + + date_start_actual + + 13 + + + + + + + date_end_actual + 29 + + 91 + 13 + 0 + Nullable + + date_end_actual + + + + date_end_actual + + 13 + + + + + + + hierarchy + 30 + + 4 + 10 + 0 + Nullable + + hierarchy + + + + hierarchy + + 11 + + + + + + + project_scope + 31 + + 12 + 2 + 0 + NotNullable + + project_scope + + + + project_scope + + 2 + + + + + + + capital_spend_percentage + 32 + + 2 + 4 + 1 + Nullable + + capital_spend_percentage + + + + capital_spend_percentage + + 6 + + + + + + + collaboration_type + 33 + + 12 + 1 + 0 + NotNullable + + collaboration_type + + + + collaboration_type + + 1 + + + + + + + default_aid_type + 34 + + 12 + 3 + 0 + NotNullable + + default_aid_type + + + + default_aid_type + + 3 + + + + + + + default_finance_type + 35 + + 12 + 3 + 0 + NotNullable + + default_finance_type + + + + default_finance_type + + 3 + + + + + + + default_flow_type + 36 + + 12 + 2 + 0 + NotNullable + + default_flow_type + + + + default_flow_type + + 2 + + + + + + + default_tied_status + 37 + + 12 + 1 + 0 + NotNullable + + default_tied_status + + + + default_tied_status + + 1 + + + + + + + last_update_id + 38 + + 4 + 10 + 0 + Nullable + + last_update_id + + + + last_update_id + + 11 + + + + + + + iati_activity_id + 39 + + 12 + 100 + 0 + Nullable + + iati_activity_id + + + + iati_activity_id + + 100 + + + + + + + sync_owner_secondary_reporter + 40 + + -7 + 1 + 0 + Nullable + + sync_owner_secondary_reporter + + + + sync_owner_secondary_reporter + + 1 + + + + + + + country_budget_vocabulary + 41 + + 12 + 1 + 0 + NotNullable + + country_budget_vocabulary + + + + country_budget_vocabulary + + 1 + + + + + + + +]]> + + + nulls lowest + + + id + measure + id + id + + + title + dimension + title + title + + + subtitle + dimension + subtitle + subtitle + + + status + dimension + status + status + + + project_plan_summary + dimension + project_plan_summary + project_plan_summary + + + current_image + dimension + current_image + current_image + + + current_image_caption + dimension + current_image_caption + current_image_caption + + + goals_overview + dimension + goals_overview + goals_overview + + + current_status + dimension + current_status + current_status + + + project_plan + dimension + project_plan + project_plan + + + sustainability + dimension + sustainability + sustainability + + + background + dimension + background + background + + + notes + dimension + notes + notes + + + currency + dimension + currency + currency + + + date_start_planned + dimension + date_start_planned + date_start_planned + + + date_end_planned + dimension + date_end_planned + date_end_planned + + + budget + measure + budget + budget + + + funds + measure + funds + funds + + + funds_needed + measure + funds_needed + funds_needed + + + primary_location_id + measure + primary_location_id + primary_location_id + + + language + dimension + language + language + + + current_image_credit + dimension + current_image_credit + current_image_credit + + + target_group + dimension + target_group + target_group + + + created_at + dimension + created_at + created_at + + + last_modified_at + dimension + last_modified_at + last_modified_at + + + donate_button + measure + donate_button + donate_button + + + sync_owner_id + measure + sync_owner_id + sync_owner_id + + + date_start_actual + dimension + date_start_actual + date_start_actual + + + date_end_actual + dimension + date_end_actual + date_end_actual + + + hierarchy + measure + hierarchy + hierarchy + + + project_scope + dimension + project_scope + project_scope + + + capital_spend_percentage + measure + capital_spend_percentage + capital_spend_percentage + + + collaboration_type + dimension + collaboration_type + collaboration_type + + + default_aid_type + dimension + default_aid_type + default_aid_type + + + default_finance_type + dimension + default_finance_type + default_finance_type + + + default_flow_type + dimension + default_flow_type + default_flow_type + + + default_tied_status + dimension + default_tied_status + default_tied_status + + + last_update_id + measure + last_update_id + last_update_id + + + iati_activity_id + dimension + iati_activity_id + iati_activity_id + + + sync_owner_secondary_reporter + measure + sync_owner_secondary_reporter + sync_owner_secondary_reporter + + + country_budget_vocabulary + dimension + country_budget_vocabulary + country_budget_vocabulary + + + city + dimension + city + city + + + countryname + dimension + countryname + countryname + + + + + projid + TheProjectId + + integer + 4 + 1 + 2849 + true + false + + + + + + 1 + id + integer + + + 2 + title + string + + + 3 + subtitle + string + + + 4 + status + string + + + 5 + project_plan_summary + string + + + 6 + current_image + string + + + 7 + current_image_caption + string + + + 8 + goals_overview + string + + + 9 + current_status + string + + + 10 + project_plan + string + + + 11 + sustainability + string + + + 12 + background + string + + + 13 + notes + string + + + 14 + currency + string + + + 15 + date_start_planned + date + + + 16 + date_end_planned + date + + + 17 + budget + decimal + + + 18 + funds + decimal + + + 19 + funds_needed + decimal + + + 20 + primary_location_id + integer + + + 21 + language + string + + + 22 + current_image_credit + string + + + 23 + target_group + string + + + 24 + created_at + date-time + + + 25 + last_modified_at + date-time + + + 26 + donate_button + integer + + + 27 + sync_owner_id + integer + + + 28 + date_start_actual + date + + + 29 + date_end_actual + date + + + 30 + hierarchy + integer + + + 31 + project_scope + string + + + 32 + capital_spend_percentage + decimal + + + 33 + collaboration_type + string + + + 34 + default_aid_type + string + + + 35 + default_finance_type + string + + + 36 + default_flow_type + string + + + 37 + default_tied_status + string + + + 38 + last_update_id + integer + + + 39 + iati_activity_id + string + + + 40 + sync_owner_secondary_reporter + integer + + + 41 + country_budget_vocabulary + string + + + 42 + city + string + + + 43 + countryname + string + + + + RSR-test + + + 1 + id + id + integer + 4 + + + 2 + title + title + string + 12 + + + 3 + subtitle + subtitle + string + 12 + + + 4 + status + status + string + 12 + + + 5 + project_plan_summary + project_plan_summary + string + 12 + + + 6 + current_image + current_image + string + 12 + + + 7 + current_image_caption + current_image_caption + string + 12 + + + 8 + goals_overview + goals_overview + string + 12 + + + 9 + current_status + current_status + string + 12 + + + 10 + project_plan + project_plan + string + 12 + + + 11 + sustainability + sustainability + string + 12 + + + 12 + background + background + string + 12 + + + 13 + notes + notes + string + 12 + + + 14 + currency + currency + string + 12 + + + 15 + date_start_planned + date_start_planned + date + 91 + + + 16 + date_end_planned + date_end_planned + date + 91 + + + 17 + budget + budget + decimal + 2 + + + 18 + funds + funds + decimal + 2 + + + 19 + funds_needed + funds_needed + decimal + 2 + + + 20 + primary_location_id + primary_location_id + integer + 4 + + + 21 + language + language + string + 12 + + + 22 + current_image_credit + current_image_credit + string + 12 + + + 23 + target_group + target_group + string + 12 + + + 24 + created_at + created_at + date-time + 93 + + + 25 + last_modified_at + last_modified_at + date-time + 93 + + + 26 + donate_button + donate_button + integer + -7 + + + 27 + sync_owner_id + sync_owner_id + integer + 4 + + + 28 + date_start_actual + date_start_actual + date + 91 + + + 29 + date_end_actual + date_end_actual + date + 91 + + + 30 + hierarchy + hierarchy + integer + 4 + + + 31 + project_scope + project_scope + string + 12 + + + 32 + capital_spend_percentage + capital_spend_percentage + decimal + 2 + + + 33 + collaboration_type + collaboration_type + string + 12 + + + 34 + default_aid_type + default_aid_type + string + 12 + + + 35 + default_finance_type + default_finance_type + string + 12 + + + 36 + default_flow_type + default_flow_type + string + 12 + + + 37 + default_tied_status + default_tied_status + string + 12 + + + 38 + last_update_id + last_update_id + integer + 4 + + + 39 + iati_activity_id + iati_activity_id + string + 12 + + + 40 + sync_owner_secondary_reporter + sync_owner_secondary_reporter + integer + -7 + + + 41 + country_budget_vocabulary + country_budget_vocabulary + string + 12 + + + 42 + city + city + string + 12 + + + 43 + countryname + countryname + string + 12 + + + + + + 2.0 + + + + + + + id + 1 + + 4 + 10 + 0 + NotNullable + + id + + + + id + + 11 + + + + + + + title + 2 + + 12 + 45 + 0 + NotNullable + + title + + + + title + + 45 + + + + + + + subtitle + 3 + + 12 + 75 + 0 + NotNullable + + subtitle + + + + subtitle + + 75 + + + + + + + status + 4 + + 12 + 1 + 0 + NotNullable + + status + + + + status + + 1 + + + + + + + project_plan_summary + 5 + + 12 + 2147483647 + 0 + NotNullable + + project_plan_summary + + + + project_plan_summary + + 2147483647 + + + + + + + current_image + 6 + + 12 + 100 + 0 + NotNullable + + current_image + + + + current_image + + 100 + + + + + + + current_image_caption + 7 + + 12 + 50 + 0 + NotNullable + + current_image_caption + + + + current_image_caption + + 50 + + + + + + + goals_overview + 8 + + 12 + 2147483647 + 0 + NotNullable + + goals_overview + + + + goals_overview + + 2147483647 + + + + + + + current_status + 9 + + 12 + 2147483647 + 0 + NotNullable + + current_status + + + + current_status + + 2147483647 + + + + + + + project_plan + 10 + + 12 + 2147483647 + 0 + NotNullable + + project_plan + + + + project_plan + + 2147483647 + + + + + + + sustainability + 11 + + 12 + 2147483647 + 0 + NotNullable + + sustainability + + + + sustainability + + 2147483647 + + + + + + + background + 12 + + 12 + 2147483647 + 0 + NotNullable + + background + + + + background + + 2147483647 + + + + + + + notes + 13 + + 12 + 2147483647 + 0 + NotNullable + + notes + + + + notes + + 2147483647 + + + + + + + currency + 14 + + 12 + 3 + 0 + NotNullable + + currency + + + + currency + + 3 + + + + + + + date_start_planned + 15 + + 91 + 13 + 0 + Nullable + + date_start_planned + + + + date_start_planned + + 13 + + + + + + + date_end_planned + 16 + + 91 + 13 + 0 + Nullable + + date_end_planned + + + + date_end_planned + + 13 + + + + + + + budget + 17 + + 2 + 14 + 2 + Nullable + + budget + + + + budget + + 16 + + + + + + + funds + 18 + + 2 + 14 + 2 + Nullable + + funds + + + + funds + + 16 + + + + + + + funds_needed + 19 + + 2 + 14 + 2 + Nullable + + funds_needed + + + + funds_needed + + 16 + + + + + + + primary_location_id + 20 + + 4 + 10 + 0 + Nullable + + primary_location_id + + + + primary_location_id + + 11 + + + + + + + language + 21 + + 12 + 2 + 0 + NotNullable + + language + + + + language + + 2 + + + + + + + current_image_credit + 22 + + 12 + 50 + 0 + NotNullable + + current_image_credit + + + + current_image_credit + + 50 + + + + + + + target_group + 23 + + 12 + 2147483647 + 0 + NotNullable + + target_group + + + + target_group + + 2147483647 + + + + + + + created_at + 24 + + 93 + 29 + 6 + Nullable + + created_at + + + + created_at + + 29 + + + + + + + last_modified_at + 25 + + 93 + 29 + 6 + Nullable + + last_modified_at + + + + last_modified_at + + 29 + + + + + + + donate_button + 26 + + -7 + 1 + 0 + NotNullable + + donate_button + + + + donate_button + + 1 + + + + + + + sync_owner_id + 27 + + 4 + 10 + 0 + Nullable + + sync_owner_id + + + + sync_owner_id + + 11 + + + + + + + date_start_actual + 28 + + 91 + 13 + 0 + Nullable + + date_start_actual + + + + date_start_actual + + 13 + + + + + + + date_end_actual + 29 + + 91 + 13 + 0 + Nullable + + date_end_actual + + + + date_end_actual + + 13 + + + + + + + hierarchy + 30 + + 4 + 10 + 0 + Nullable + + hierarchy + + + + hierarchy + + 11 + + + + + + + project_scope + 31 + + 12 + 2 + 0 + NotNullable + + project_scope + + + + project_scope + + 2 + + + + + + + capital_spend_percentage + 32 + + 2 + 4 + 1 + Nullable + + capital_spend_percentage + + + + capital_spend_percentage + + 6 + + + + + + + collaboration_type + 33 + + 12 + 1 + 0 + NotNullable + + collaboration_type + + + + collaboration_type + + 1 + + + + + + + default_aid_type + 34 + + 12 + 3 + 0 + NotNullable + + default_aid_type + + + + default_aid_type + + 3 + + + + + + + default_finance_type + 35 + + 12 + 3 + 0 + NotNullable + + default_finance_type + + + + default_finance_type + + 3 + + + + + + + default_flow_type + 36 + + 12 + 2 + 0 + NotNullable + + default_flow_type + + + + default_flow_type + + 2 + + + + + + + default_tied_status + 37 + + 12 + 1 + 0 + NotNullable + + default_tied_status + + + + default_tied_status + + 1 + + + + + + + last_update_id + 38 + + 4 + 10 + 0 + Nullable + + last_update_id + + + + last_update_id + + 11 + + + + + + + iati_activity_id + 39 + + 12 + 100 + 0 + Nullable + + iati_activity_id + + + + iati_activity_id + + 100 + + + + + + + sync_owner_secondary_reporter + 40 + + -7 + 1 + 0 + Nullable + + sync_owner_secondary_reporter + + + + sync_owner_secondary_reporter + + 1 + + + + + + + country_budget_vocabulary + 41 + + 12 + 1 + 0 + NotNullable + + country_budget_vocabulary + + + + country_budget_vocabulary + + 1 + + + + + + + +]]> + + + nulls lowest + + + name + dimension + name + name + + + + + projid + TheProjectId + + integer + 4 + 1 + 2849 + true + false + + + + + + 1 + name + string + + + + RSR-test + + + 1 + name + name + string + 12 + + + + + + nulls lowest + + + id + measure + id + id + + + title + dimension + title + title + + + + + child_of + TheProjectId + + integer + 4 + 1 + 2081 + true + false + + + has_as_parent + TheProjectId + + integer + 4 + 2 + 2081 + true + false + + + + + + 1 + id + integer + + + 2 + title + string + + + + RSR-test + + + 1 + id + id + integer + 4 + + + 2 + title + title + string + 12 + + + + + + 2.0 + + + + In + + + + 1 + + 4 + 0 + 0 + Unknown + + + + + + In + + + + 2 + + 4 + 0 + 0 + Unknown + + + + +]]> + + + nulls lowest + + + id + measure + id + id + + + title + dimension + title + title + + + + + child_of + TheProjectId + + integer + 4 + 1 + 2081 + true + false + + + has_as_parent + TheProjectId + + integer + 4 + 2 + 2081 + true + false + + + + + + 1 + id + integer + + + 2 + title + string + + + + RSR-test + + + 1 + id + id + integer + 4 + + + 2 + title + title + string + 12 + + + + + + 2.0 + + + + In + + + + 1 + + 4 + 0 + 0 + Unknown + + + + + + In + + + + 2 + + 4 + 0 + 0 + Unknown + + + + +]]> + + + + + number + dimension + number + number + + + name + dimension + name + name + + + + + param_1 + + string + 12 + 1 + 33 + true + false + + + param_2 + + string + 12 + 2 + 67 + true + false + + + + + + 1 + number + string + + + 2 + name + string + + + + RSR-test + + + 1 + number + number + string + 12 + + + 2 + name + name + string + 12 + + + + + + 2.0 + + + + In + + + + 1 + + 12 + 0 + 0 + Unknown + + + + + + In + + + + 2 + + 12 + 0 + 0 + Unknown + + + + + + + + + + + seventeen + 1 + + 4 + 10 + 0 + Unknown + + seventeen + + + + seventeen + + 11 + + + + + + + +]]> + + + nulls lowest + + + number + dimension + number + number + + + name + dimension + name + name + + + + + param_1 + + string + 12 + 1 + 33 + true + false + + + param_2 + + string + 12 + 2 + 0 + true + false + + + param_3 + + string + 12 + 3 + 0 + true + false + + + param_4 + + string + 12 + 4 + 67 + true + false + + + + + + 1 + number + string + + + 2 + name + string + + + + RSR-test + + + 1 + number + number + string + 12 + + + 2 + name + name + string + 12 + + + + + + 2.0 + + + + In + + + + 1 + + 12 + 0 + 0 + Unknown + + + + + + In + + + + 2 + + 12 + 0 + 0 + Unknown + + + + + + In + + + + 3 + + 12 + 0 + 0 + Unknown + + + + + + In + + + + 4 + + 12 + 0 + 0 + Unknown + + + + + + + + + + + seventeen + 1 + + 4 + 10 + 0 + Unknown + + seventeen + + + + seventeen + + 11 + + + + + + + +]]> + + + + + + + + + + + + + + + + + + 100% + + + + + 8pt + 8pt + html + new Date().toLocaleDateString()]]> + + + + + + + + + + 18pt + bold + #586978 + 8pt + 8pt + 8pt + 8pt + Project + + + title + title + dataSetRow["title"] + string + + + + row["title"] + html + + + 8pt + 8pt + 8pt + Project + + + date_start_planned + date_start_planned + dataSetRow["date_start_planned"] + date + + + date_end_planned + date_end_planned + dataSetRow["date_end_planned"] + date + + + date_start_actual + date_start_actual + dataSetRow["date_start_actual"] + date + + + date_end_actual + date_end_actual + dataSetRow["date_end_actual"] + date + + + + ((row["date_start_planned"]) ? + row["date_start_planned"] + " -- " + row["date_end_planned"] : + "(No time period)") + + " <br>" + +((row["date_start_actual"] || row["date_end_actual"]) ? + (row["date_start_actual"] ? row["date_start_actual"] : "") + + " -- " + + (row["date_end_actual"] ? row["date_end_actual"] : "") + + " (actual)" : + "") + html + + + #EDEFE1 + 0pt + 0pt + 0pt + 7.947916666666667in + + 4.291666666666667in + + + 3.65625in + + + + + + + + + + + + 1 + 3 + + 12pt + 0pt + 8pt + 8pt + 8pt + 8pt + Project + + + project_plan_summary + project_plan_summary + dataSetRow["project_plan_summary"] + string + + + + + row["project_plan_summary"] + html + + + + + Partners + + + name + name + dataSetRow["name"] + string + + + +
+ + + +
+ + + + + 14pt + bold + 1pt + 8pt + 1pt + 8pt + name + + + + +
+ + + +
+
+
+
+ + + + + + + + + 14pt + bold + 0pt + 0pt + 4pt + 8pt + 12pt + 8pt + Project + + + countryname + countryname + dataSetRow["countryname"] + string + + + city + dataSetRow["city"] + string + true + + + (row ["city"] ? row ["city"] + ", " : "") + row["countryname"] + html + + + +
+ + Parent_projects + + + title + title + dataSetRow["title"] + string + + + id + dataSetRow["id"] + integer + true + + + +
+ + + + + +
+ + + + + 14pt + bold + 8pt + 8pt + 8pt + 8pt + title + + + none + + + + + + +
+ + + +
+
+ + Child_projects + + + title + title + dataSetRow["title"] + string + + + Aggregation + integer + COUNT + + + Expression + + + true + + + +
+ + + + + +
+ + + + + 14pt + bold + 8pt + 8pt + 8pt + 8pt + title + + + + +
+ + + +
+
+ + 8pt + 7.96875in + Results_indicators_periods + + + period_start + period_start + dataSetRow["period_start"] + date + + + actual_value + actual_value + dataSetRow["actual_value"] + string + true + + + target_value + target_value + dataSetRow["target_value"] + string + + + baseline_value + baseline_value + dataSetRow["baseline_value"] + string + + + title + title + dataSetRow["title"] + string + + + period_end + period_end + dataSetRow["period_end"] + date + + + actual_comment + actual_comment + dataSetRow["actual_comment"] + string + + + indicator_title + indicator_title + dataSetRow["indicator_title"] + string + + + baseline_year + baseline_year + dataSetRow["baseline_year"] + integer + + + baseline_comment + baseline_comment + dataSetRow["baseline_comment"] + string + + + actual_value_number + dataSetRow["actual_value"] && !isNaN(dataSetRow["actual_value"]) ? dataSetRow["actual_value"] : -1 + integer + true + + + target_value_number + target_value_number + (dataSetRow["target_value"] && !isNaN(dataSetRow["target_value"])) ? dataSetRow["target_value"] : -1 + integer + true + + + progress_pct + progress_pct + (row["actual_value_number"] > -1 && row["target_value_number"] > -1 ) +? + Math.min(100, Math.round(row["actual_value_number"] * 100 / row["target_value_number"])) + : + -1 + integer + true + + + + 50 + + 1.2708333333333333in + + + 3.0729166666666665in + + + 1.8958333333333333in + + + 1.6770833333333333in + +
+ + + 2 + 1 + + + + + left + + + all + true + + + var a=1,b=1; +reportContext.getGlobalVariable('debug') + html + + + + +
+ + NewTableGroup1 + row["title"] + + row["title"] + +
+ + + 4 + 1 + + 14pt + bold + #6D8FAF + 8pt + 0pt + 1pt + 8pt + b=1, "Result " + a++; + html + + + 14pt + 0pt + 8pt + 8pt + title + + + +
+
+ + + + + + +
+
+ + NewTableGroup2 + row["indicator_title"] + + row["indicator_title"] + + false +
+ + #F0F0F0 + + + all + !row["indicator_title"] + + + + 4 + 1 + 0pt + 0pt + 4pt + 0pt + + 7.875in + + 1.4479166666666667in + + + 2.90625in + + + 1.90625in + + + 1.6145833333333333in + + + silver + + 0pt + 0pt + 4pt + 0pt + + gray + 12pt + bold + white + 8pt + 8pt + inline + "INDICATOR " + b++ + html + + + + 3 + 1 + + silver + 12pt + #000000 + 8pt + inline + row["indicator_title"] + html + + + + + + 4 + 1 + + #000000 + 8pt + 8pt + + + all + !(row["baseline_value"] && row["baseline_year"]) + + + "Baseline: " + row["baseline_value"] + " " + (row["baseline_year"] ? "(" + row["baseline_year"] + ")" : "") ++ " " + row["baseline_comment"] + html + + + + + + + + + + #F0F0F0 + + + + + + + + + +
+
+ + avoid + + 4 + 1 + 0pt + 0pt + 8pt + 0pt + + + +
+
+ + + #F0F0F0 + + + all + !row["indicator_title"] + + + + 1pt + 8pt + 1pt + 8pt + center + middle + + sans-serif + 8pt + normal + none + none + none + none + 0pt + 0pt + -35pt + 12pt + 12pt + center + block + + + between + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 0.0 + + 33.0 + progress_low + + + between + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 33 + + 66 + progress_middle + + + ge + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 66 + + progress_high + + + (row["progress_pct"] >=0) +? + row["progress_pct"] + "%" + : + "" + html + + + + 2.6.1 + Pie Chart + Standard + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 24.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + 0 + 255 + 255 + 255 + + + + 1 + + 255 + 0 + 0 + 0 + + + + 0.0 + 2.0 + 0.0 + 3.0 + + true + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 1.0 + 1.0 + 1.0 + 1.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + true + 0 + 0 + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 0.0 + 0.0 + 0.0 + 0.0 + + + + + + 0.0 + 0.0 + 0.0 + 0.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + false + + + + 0 + + 255 + 0 + 0 + 0 + + false + + + 2.0 + 2.0 + 2.0 + 2.0 + + + + + + + + + Vertical + Top_Bottom + + + 1 + + 255 + 0 + 0 + 0 + + true + + Right + Categories + + <Caption> + <Value></Value> + <Font> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Above + + + 0.0 + 0.0 + 212.0 + 130.0 + + + 3.0 + 3.0 + 3.0 + 3.0 + + -1 + -1 + -1 + -1 + + + 1 + + 255 + 0 + 0 + 0 + + false + + + 0 + 255 + 255 + 255 + + true + + Two_Dimensional + Points + 10.0 + 0 + + enable.area.alt + false + + + + 'A','B','C','D','E' + + + 6,4,12,8,10 + 0 + + + + false + + + + + 64 + 127 + 127 + 127 + + + + 128 + 127 + 127 + 127 + + true + + + 10.0 + 10.0 + 10.0 + 10.0 + + false + + + + + + + + 255 + 217 + 94 + 117 + + + 255 + 225 + 122 + 12 + + + 255 + 52 + 181 + 115 + + + 255 + 192 + 192 + 192 + + + + + + + + + 255 + 217 + 94 + 117 + + + 255 + 225 + 122 + 12 + + + 255 + 52 + 181 + 115 + + + 255 + 192 + 192 + 192 + + + + true + + + 0 + 255 + 255 + 255 + + + + 1 + + 255 + 0 + 0 + 0 + + false + + + 0.0 + 2.0 + 0.0 + 3.0 + + false + + + row["number"] + + Text + Sum + + + + + Orthogonal_Value + + , + + Outside + false + + onmouseover + + Show_Tooltip + + + 200 + + + + false + 0 + + <Caption> + <Value></Value> + <Font> + <Size>16.0</Size> + <Bold>true</Bold> + <Alignment/> + </Font> + </Caption> + <Background xsi:type="attribute:ColorDefinition"> + <Transparency>0</Transparency> + <Red>255</Red> + <Green>255</Green> + <Blue>255</Blue> + </Background> + <Outline> + <Style>Solid</Style> + <Thickness>1</Thickness> + <Color> + <Transparency>255</Transparency> + <Red>0</Red> + <Green>0</Green> + <Blue>0</Blue> + </Color> + <Visible>false</Visible> + </Outline> + <Insets> + <Top>0.0</Top> + <Left>2.0</Left> + <Bottom>0.0</Bottom> + <Right>3.0</Right> + </Insets> + <Visible>false</Visible> + + Right + + + 1 + true + + 10.0 + + 0 + 255 + 255 + 255 + + 1.0 + 90.0 + 66.0 + + + Text + Sum + + + + true + + + 0 + 255 + 255 + 255 + + + + 1 + + 255 + 0 + 0 + 0 + + false + + + 0.0 + 2.0 + 0.0 + 3.0 + + false + + + row["name"] + + + + Orthogonal_Value + + , + + Outside + false + + + true + Text + Sum + + + + 1.0 + +]]> + SVG + false + block + none + none + none + none + 0pt + 0pt + 38pt + 38pt + Four_rows + + + all + row._outer["progress_pct"] < 0 + + + + + param_1 + + (row["progress_pct"] < 33) +? +row["progress_pct"] +: +0 + + + + param_2 + + (row["progress_pct"] >= 33 && row["progress_pct"] < 67) +? +row["progress_pct"] +: +0 + + + + param_3 + + (row["progress_pct"] >= 67) +? +row["progress_pct"] +: +0 + + + + param_4 + + 100-row["progress_pct"] + + + + + + number + dataSetRow["number"] + string + + + name + dataSetRow["name"] + string + + + progress_low + + + + 1pt + 8pt + 1pt + 8pt + middle + + 12pt + center + (row["period_start"] || row["period_end"]) ? row["period_start"] + " -- " + row["period_end"] : "" + html + + + + middle + + 12pt + bold + 4pt + 4pt + 1pt + + Unformatted + + center + + + all + row["actual_value"] && (!isNaN(row["actual_value"])) + + + actual_value + + + 12pt + bold + 4pt + 4pt + 1pt + + Currency + #,##0{RoundingMode=HALF_UP} + + center + + + between + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 0.0 + + 33.0 + progress_low + + + between + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 33 + + 66 + progress_middle + + + ge + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 66 + + progress_high + + + + + all + row["actual_value_number"] == -1 + + + actual_value_number + + + + middle + + 12pt + bold + 4pt + 4pt + 1pt + center + + + all + row["target_value"] && (!isNaN(row["target_value"])) + + + target_value + + + 12pt + bold + 4pt + 4pt + 1pt + + Currency + #,##0{RoundingMode=HALF_UP} + + center + + + all + row["target_value_number"] == -1 + + + target_value_number + + + + + #F0F0F0 + avoid + + + all + !row["actual_comment"] + + + + 4 + 1 + 1pt + 16pt + 1pt + 8pt + + progress_high + 10pt + normal + + + between + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 0.0 + + 33.0 + progress_low + + + between + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 33 + + 66 + progress_middle + + + ge + Finance.percent(row["target_value_number"],row["actual_value_number"],-1) + + 66 + + progress_high + + + row["actual_comment"] + html + + + + +
+ + + + + + +
+
+ 77% + + 16.0 + true + + Center + Center + + + + This chart contains no data. + + + Center + Center + + + + + + + + + + + + +
+ +
diff --git a/akvo/templates/reportserver/README.md b/akvo/templates/reportserver/README.md new file mode 100644 index 0000000000..35db28bf70 --- /dev/null +++ b/akvo/templates/reportserver/README.md @@ -0,0 +1,62 @@ +# Reportserver templates for RSR + +These BIRT templates are intended to be installed on a ReportServer. + +They were developed using the BIRT Report Designer plugin for Eclipse, version 4.4. + +The RSR projects used as test cases were #2849 and its parent project #2081. + + +## Deployment to reportserver +The report has one parameter, TheProjectId, which is created on the RS as a Dataset parameter, key=TheProjectId, BIRT, query="select id from rsr_project order by id desc" + + + +## Access by URL + +https://reporting.test.akvo-ops.org/reportserver/reportserver/httpauthexport?key=project_results&user=user1&password=unicorns&format=pdf&download=false&p_TheProjectId=2081 + +Since this exposes a password, even if just a dummy one, it should be hidden behind the rsr nginx proxy which can append the key/username/password query parameters. A proxy rule like this should do it, as the original query parameters will be copied over: + +location /report/project { + proxy_pass https://reporting.test.akvo-ops.org; + rewrite ^(.*)$ /reportserver/reportserver/httpauthexport?key=project_results&username=user1&password=unicorns break; +} + +The URL will then become something like +https://rsr.akvo.org/report/project/2849?format=pdf +where format can be one of [WORD, PDF, HTML, PNG, EXCEL]. + + +During development I found it convenient to: + +### Set up a readonly account for the database +``` +sudo -u postgres psql +postgres=# create role rsr_readonly encrypted password '*************' login; +postgres=# grant connect on database rsr to rsr_readonly; +\c rsr +rsr=# grant usage on schema public to rsr_readonly; +rsr=# grant select on all tables in schema public to rsr_readonly; +rsr=# grant select on all sequences in schema public to rsr_readonly; +``` + + +### Make an ssl tunnel to the DB server + +``` +ssh -L 1234:psql.test.akvo-ops.org:5432 stellan@psql.test.akvo-ops.org +``` +which allowed me to create a BIRT data source like this: +``` +Driver Class: org.postgresql.Driver (v9.4) +Database URL: jdbc:postgresql://localhost:1234/rsr +User Name: rsr_readonly +Password: *********** +``` + + + + + +