diff --git a/server/AyaNova/biz/ReportBiz.cs b/server/AyaNova/biz/ReportBiz.cs index 76a41a49..c62ff8d2 100644 --- a/server/AyaNova/biz/ReportBiz.cs +++ b/server/AyaNova/biz/ReportBiz.cs @@ -404,6 +404,8 @@ namespace AyaNova.Biz //add Server meta data var serverMeta = $"{{ayApiUrl:`{apiUrl}`}}"; + //add Report meta data + var reportMeta = $"{{Id:{report.Id},Name:`{report.Name}`,Notes:`{report.Notes}`,ObjectType:`{report.ObjectType}`,DataListKey:`{reportParam.DataListKey}`,ListView:`{reportParam.ListView}`,SelectedRowIds: `{string.Join(",", reportParam.SelectedRowIds)}`}}"; #if (DEBUG) @@ -412,7 +414,7 @@ namespace AyaNova.Biz #endif //prePareData / preRender - var ReportDataObject = $"{{ ayReportData:{ReportData}, ayClientMetaData:{clientMeta}, ayServerMetaData:{serverMeta} }}"; + var ReportDataObject = $"{{ ayReportData:{ReportData}, ayReportMetaData:{reportMeta}, ayClientMetaData:{clientMeta}, ayServerMetaData:{serverMeta} }}"; var PreParedReportDataObject = await page.EvaluateExpressionAsync($"ayPreRender({ReportDataObject});");//note ayPreRender is async but dont' use await to call it as the EvaluateExpressionAsync function knows how to handle that already //compile the template diff --git a/server/AyaNova/resource/rpt/ay-report.js b/server/AyaNova/resource/rpt/ay-report.js index e6cba3ea..cded7f84 100644 --- a/server/AyaNova/resource/rpt/ay-report.js +++ b/server/AyaNova/resource/rpt/ay-report.js @@ -86,13 +86,55 @@ async function ayPrepareData(reportData) { //before the report is rendered //modify data as required here and return it to change the data before the report renders - //Example of using API method to fetch data from API server and make it available to the report template - let route=`${reportData.ayServerMetaData.ayApiUrl}enum-list/list/AyaType`; + //Example of using API GET method to fetch data from API server and make it available to the report template + let route=`${reportData.ayServerMetaData.ayApiUrl}server-info`; //Put the data into the main report data object so it's available to the template - reportData.myData={AyaTypeList:await ayGetFromAPI(route, reportData.ayClientMetaData.Authorization)}; + reportData.myData={ServerInfo:await ayGetFromAPI(route, reportData.ayClientMetaData.Authorization)}; + + //Example API POST method to fetch data from api server + route=`${reportData.ayServerMetaData.ayApiUrl}search`; + let searchPostData={phrase: "Fish"}; + reportData.myData.SearchResults=await ayPostToAPI(route, reportData.ayClientMetaData.Authorization,searchPostData); return reportData; } + + + + +
+

ayServerMetaData

+ {{ ayJSON ayServerMetaData }} +
+ +
+

ayClientMetaData

+ {{ ayJSON ayClientMetaData }} +
+ +
+

ayReportMetaData

+ {{ ayJSON ayReportMetaData }} +
+ + +
+

myData

+
(Fetched dynamically from API route enum-list/list/AyaType)
+ {{ ayJSON myData }} +
+ +
+

ayReportData

+ {{#each ayReportData}} +

{{ Name }}

+
Notes: {{ Notes }}
+ {{/each}} +
+ + + + */