Guides/Report-Lifecycle.md
... ...
@@ -8,48 +8,143 @@ The Izenda reports API has a various methods and properties that can be overridd
8 8
9 9
##ReportList.aspx
10 10
11
-The ReportList page is loaded by default when Izenda first starts up or is navigated to on the web. This can vary if a custom solution is implemented, but the basic flow of the page will remain the same.
11
+This outlines the call structure when accessing the report list page as it pertains to reports and API hooks.
12 12
13 13
[[InitializeReporting|http://wiki.izenda.us/FAQ/InitializeReporting]]
14 14
15
-The first call must be to InitializeReporting before other API calls are made. This sets the groundwork for all reporting operations.
15
+The first call must be to InitializeReporting before other API calls are made. This sets the groundwork for all reporting operations. It is recommended that all pages using Izenda reports call this method in the code-behind.
16 16
17
-[[ProcessDataset|http://wiki.izenda.us/FAQ/ProcessDataSet]]
18
-
19
-ProcessDataSet is where the raw data for reports is available for manipulation, and will be called after initialization, but before any caching is performed.
20
-
21
-GetReportListConfig (webServer)
17
+[[GetReportListConfig|/API/CodeSamples/Javascript/GetReportListConfig]] (webServer)
22 18
23 19
GetReportListConfig is an ajax call launched by the report list that is necessary to be called before the report list can be initialized.
24 20
25
-ReportListDataLite (webServer)
21
+[[ReportListDataLite|/API/CodeSamples/Javascript/ReportListDataLite]] (webServer)
26 22
27 23
ReportListDataLite is an ajax call launched after the configuration is obtained by the report list and returns a JSON formatted object to the javascript callback specified.
28 24
29 25
[[FilteredListReportsDictionary|http://wiki.izenda.us/FAQ/FilteredListReports]]
30 26
31
-FilteredListReportsDictionary is called upon requesting the report list data above and can be manipulated in global.asax.
27
+FilteredListReportsDictionary is called upon requesting the report list data above and can be manipulated in global.asax. This will also get the database schema from the cache or cache it if it's not cached.
32 28
33 29
[[ListReports|http://wiki.izenda.us/FAQ/ListReports]]
34 30
35 31
The ListReports method returns a broader range of reports and can also be manipulated in global.asax. This method performs differently depending on if you use DatabaseAdHocConfig or FileSystemAdHocConfig. This will iterate through each report and perform the following operations:
36 32
37
-getreportnamebyid
33
+[[GetReportNameById|/FAQ/GetReportNameById]]
38 34
39 35
This will simply return the report name based on the ID of the report. This will run for each report before any other steps below are run.
40 36
41
-processdataset
37
+[ClearCachedReportSet|/FAQ/ClearCachedReportSet]]
42 38
43
-ProcessDataSet is again called
39
+The cache is cleared in preparation for the new set of reports.
44 40
45
-ClearCachedReportSet
41
+[[PreLoadReportSet|/FAQ/PreLoadReportSet]]
46 42
47
-The cache is cleared in preparation for the new set of reports.
43
+Here, PreLoadReportSet
44
+
45
+[[LoadReportSet|http://wiki.izenda.us/FAQ/LoadReportSet]]
46
+
47
+It is at this point that XML definitions are read for each report and the ReportInfo is returned. If you want to perform your own processing of the report. Note that your customizations will only be kept if you perform them after ``base.LoadReportSet`` is called (if it's called).
48
+
49
+[[PostLoadReportSet|/FAQ/PostLoadReportSet]]
50
+
51
+Alternately, you can perform any post-processing you wish to do in the PostLoadReportSet method. These three methods will always be called when fetching report definitions.
52
+caching occurs at this point (turned on by default) so the definitions will not have to be loaded again.
53
+
54
+The cached reports are accessed and thumbnails are loaded if [[GenerateThumbnails|/API/CodeSamples/GenerateThumbnails]] is on.
55
+
56
+##ReportDesigner
57
+
58
+This outlines the call structure when accessing the report designer page as it pertains to reports and API hooks.
59
+
60
+[[InitializeReporting|http://wiki.izenda.us/FAQ/InitializeReporting]]
61
+
62
+This should be called via the OnPreInit function in the page's code behind file, like all Izenda reports pages (except rs.aspx).
63
+
64
+[[FilteredListReportsDictionary|/FAQ/FilteredListReportsDictionary]]
65
+
66
+This will perform the same operation as in the report list.
67
+
68
+ListReports
69
+
70
+If this is the first call to ListReports, or the cache was recently invalidated, this will obtain the reports as before. Otherwise it will skip the individual processing of reports in favor of the cache.
71
+
72
+[[GetReportNameById|/FAQ/GetReportNameById]]
73
+
74
+Called like above.
75
+
76
+[[GetOperatorList|/FAQ/GetOperatorList]]
77
+
78
+The ReportDesigner now gets a list of operators available for the SqlType context. If customizations to the operator list are required, it can be done here.
79
+
80
+##Report Viewer
81
+
82
+This outlines the call structure when accessing the report viewer page as it pertains to reports and API hooks.
83
+
84
+[[InitializeReporting|http://wiki.izenda.us/FAQ/InitializeReporting]]
85
+
86
+[[ReportViewerConfig|http://wiki.izenda.us/API/CodeSamples/Javascript/ReportViewerConfig]]
87
+
88
+This is an AJAX command sent by javascript and returns JSON formatted data related to the report viewer configuration.
89
+
90
+[[GetRenderedReportSet|http://wiki.izenda.us/API/CodeSamples/Javascript/GetRenderedReportSet]]
91
+
92
+This AJAX command will get the current report set being loaded by the viewer and return the object to the callback method
93
+
94
+[[PreLoadReportSet|/FAQ/PreLoadReportSet]]
95
+
96
+[[LoadReportSet|/FAQ/LoadReportSet]]
97
+
98
+[[PostLoadReportSet|/FAQ/PostLoadReportSet]]
99
+
100
+[[PreExecuteReportSet|/FAQ/PreExecuteReportSet]]
101
+
102
+###Detail report
103
+
104
+The following API calls are related specifically to the detail section of the report. (The reportPart specified is "Detail")
105
+
106
+[[ProcessDataSet|/FAQ/ProcessDataSet]]
107
+
108
+This call to ProcessDataSet returns the headers of the Detail table. It contains one table with as many columns as are in the report before pivot columns are added and one row.
109
+
110
+[[ProcessDataSet|/FAQ/ProcessDataSet]]
111
+
112
+This call to ProcessDataSet returns the body of the Detail table. This is where post processing of report viewer data can be performed. The difference between the previous call and this one is the presence of pivot columns and more than one row.
113
+
114
+[[ProcessDataSet|/FAQ/ProcessDataSet]]
115
+
116
+The next call to ProcessDataSet is to get the pivot column parameters. It will give as many values as specified by your function returns. For instance, using a Group(Year) function when your data has data for 2010, 2011, 2012, and 2013 will return a datatable with four columns at this particular time. This will repeat for as many pivot columns are on your report.
117
+
118
+[[ProcessDataSet|/FAQ/ProcessDataSet]]
119
+
120
+Then we have a call to ProcessDataSet with the totals line being returned as the dataset. Generally, this table will have as many columns as the total columns on your report (plus pivot columns) and one row.
121
+
122
+[[PostExecuteReportSet|/FAQ/PostExecuteReportSet]]
123
+
124
+You can perform any post processing to the actual report here. The [[ReportSet|/API/CodeSamples/ReportSet]]
125
+
126
+[[GetFiltersData|/API/CodeSamples/Javascript/GetFiltersData]] (web server)
127
+
128
+AJAX call
129
+
130
+[[GetOperatorList|/FAQ/GetOperatorList]]
131
+
132
+This call hooks back into your global and applies the filters on the report using the operators in the list.
133
+
134
+[[ReportViewerConfig|/API/CodeSamples/Javascript/RportViewer]] (web server)
135
+
136
+
137
+
138
+[[GetFiltersData|/FAQ/GetFiltersData]]
139
+
140
+[[GetOperatorList|/FAQ/GetOperatorList]]
141
+
142
+This call hooks back into your global and applies the filters on the report using the operators in the list.
143
+
144
+[[CrsDataSources|/API/CodeSamples/Javascript/CrsDataSources]] (web server)
145
+
146
+Sends an AJAX call to the web server to get the current report set's datasources. This is used by the report viewer to get the data used in the inline filter editor.
48 147
49
-preloadreportset
148
+[[GetPivotGuiData|/API/CodeSamples/Javascript/GetPivotGuiData]] (web server)
50 149
51
-PreLoadReportSet allows you
52
-loadreportset
53
-ReadXml
54
-postloadreportset
55
-caching occurs
150
+Sends an AJAX call to the web server to get the pivot data for use on the pivots tab on the viewer.
... ...
\ No newline at end of file