From 92d6defa20bb2b54d51bd3e91c3db5c49490ce46 Mon Sep 17 00:00:00 2001 From: Dmitry Eliseev <81766219+dmitry-eliseev-devexpress@users.noreply.github.com> Date: Wed, 24 Sep 2025 18:05:52 +0300 Subject: [PATCH 1/9] Create README.md --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..6b528d9 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# DevExpress VCL Reports - Store report layouts in a database + +This example demonstrates how to store a [report layout](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) (XML-based template) in a dataset. + +vcl-reports-tdxreport-template-designer@2x + +The example stores a saved report layout in a BLOB field of a memory-based dataset component ([TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) inherited from the standard [TDataSet](https://docwiki.embarcadero.com/Libraries/Athens/en/Data.DB.TDataSet) class shipped with the VCL library). + +## Testing the example + +* Click **New Report** to create an empty database record. +* Click **Show Designer** to display the [Report Designer](https://docs.devexpress.com/XtraReports/119176/web-reporting/web-end-user-report-designer) dialog. +* Create a report layout using any tools available in the UI. +* Click the hamburger button and select the **Save** option and close the dialog. +* Click **View Designer** or **View Report** to load the saved report layout or preview a layout-based report in the [Report Viewer](https://docs.devexpress.com/XtraReports/401850/web-reporting/web-document-viewer) dialog. + +## Documentation + +* [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) +* [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) From 8eea3d416c165426a845ef032f31c7334a13adf2 Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Wed, 24 Sep 2025 19:07:44 +0400 Subject: [PATCH 2/9] README auto update [skip ci] --- README.md | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 6b528d9..ebf3bf6 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,31 @@ -# DevExpress VCL Reports - Store report layouts in a database + +[![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) +[![](https://img.shields.io/badge/💬_Leave_Feedback-feecdd?style=flat-square)](#does-this-example-address-your-development-requirementsobjectives) + +# DevExpress VCL Reports - Store report layouts in a database + +This example demonstrates how to store a [report layout](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) (XML-based template) in a dataset. + +vcl-reports-tdxreport-template-designer@2x + +The example stores a saved report layout in a BLOB field of a memory-based dataset component ([TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) inherited from the standard [TDataSet](https://docwiki.embarcadero.com/Libraries/Athens/en/Data.DB.TDataSet) class shipped with the VCL library). + +## Testing the example + +* Click **New Report** to create an empty database record. +* Click **Show Designer** to display the [Report Designer](https://docs.devexpress.com/XtraReports/119176/web-reporting/web-end-user-report-designer) dialog. +* Create a report layout using any tools available in the UI. +* Click the hamburger button and select the **Save** option and close the dialog. +* Click **View Designer** or **View Report** to load the saved report layout or preview a layout-based report in the [Report Viewer](https://docs.devexpress.com/XtraReports/401850/web-reporting/web-document-viewer) dialog. + +## Documentation + +* [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) +* [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) + +## Does this example address your development requirements/objectives? -This example demonstrates how to store a [report layout](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) (XML-based template) in a dataset. +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) -vcl-reports-tdxreport-template-designer@2x - -The example stores a saved report layout in a BLOB field of a memory-based dataset component ([TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) inherited from the standard [TDataSet](https://docwiki.embarcadero.com/Libraries/Athens/en/Data.DB.TDataSet) class shipped with the VCL library). - -## Testing the example - -* Click **New Report** to create an empty database record. -* Click **Show Designer** to display the [Report Designer](https://docs.devexpress.com/XtraReports/119176/web-reporting/web-end-user-report-designer) dialog. -* Create a report layout using any tools available in the UI. -* Click the hamburger button and select the **Save** option and close the dialog. -* Click **View Designer** or **View Report** to load the saved report layout or preview a layout-based report in the [Report Viewer](https://docs.devexpress.com/XtraReports/401850/web-reporting/web-document-viewer) dialog. - -## Documentation - -* [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) -* [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) +(you will be redirected to DevExpress.com to submit your response) + From 045a3d9470915e22f126540385b85312464f5a88 Mon Sep 17 00:00:00 2001 From: Dmitry Eliseev <81766219+dmitry-eliseev-devexpress@users.noreply.github.com> Date: Wed, 24 Sep 2025 18:18:31 +0300 Subject: [PATCH 3/9] Apply suggestions from code review --- README.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ebf3bf6..e60338b 100644 --- a/README.md +++ b/README.md @@ -12,20 +12,21 @@ The example stores a saved report layout in a BLOB field of a memory-based datas ## Testing the example -* Click **New Report** to create an empty database record. +* Run the sample app and click **New Report** to create an empty database record. * Click **Show Designer** to display the [Report Designer](https://docs.devexpress.com/XtraReports/119176/web-reporting/web-end-user-report-designer) dialog. * Create a report layout using any tools available in the UI. * Click the hamburger button and select the **Save** option and close the dialog. -* Click **View Designer** or **View Report** to load the saved report layout or preview a layout-based report in the [Report Viewer](https://docs.devexpress.com/XtraReports/401850/web-reporting/web-document-viewer) dialog. +* Close the app. The [TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) component stores layout data in a file between sessions. +* Run the sample app again and click **View Designer** or **View Report** to load the saved report layout or preview a layout-based report in the [Report Viewer](https://docs.devexpress.com/XtraReports/401850/web-reporting/web-document-viewer) dialog. ## Documentation * [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) * [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From 2e0be4348cf8386444aded027c669ef65086a2ee Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Wed, 24 Sep 2025 19:20:08 +0400 Subject: [PATCH 4/9] README auto update [skip ci] --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index e60338b..8508f7e 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ The example stores a saved report layout in a BLOB field of a memory-based datas * [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) * [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From fd75d21abd63f40e5af7f20e4acc2cdbbb23dd8c Mon Sep 17 00:00:00 2001 From: Dmitry Eliseev <81766219+dmitry-eliseev-devexpress@users.noreply.github.com> Date: Thu, 25 Sep 2025 10:15:20 +0300 Subject: [PATCH 5/9] Apply suggestions from code review Co-authored-by: Elena Khamlyuk <80813840+khamlyuk@users.noreply.github.com> --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 8508f7e..0b3bb7d 100644 --- a/README.md +++ b/README.md @@ -15,18 +15,18 @@ The example stores a saved report layout in a BLOB field of a memory-based datas * Run the sample app and click **New Report** to create an empty database record. * Click **Show Designer** to display the [Report Designer](https://docs.devexpress.com/XtraReports/119176/web-reporting/web-end-user-report-designer) dialog. * Create a report layout using any tools available in the UI. -* Click the hamburger button and select the **Save** option and close the dialog. -* Close the app. The [TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) component stores layout data in a file between sessions. -* Run the sample app again and click **View Designer** or **View Report** to load the saved report layout or preview a layout-based report in the [Report Viewer](https://docs.devexpress.com/XtraReports/401850/web-reporting/web-document-viewer) dialog. +* Click the hamburger button, select the **Save** option, and close the dialog. +* Close the app. The [TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) component will store layout data in a file between sessions. +* Run the sample app again. Click **View Designer** to load the saved report layout, or **View Report** to preview a layout-based report in the [Report Viewer](https://docs.devexpress.com/XtraReports/401850/web-reporting/web-document-viewer) dialog. ## Documentation * [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) * [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From a055736a59deb83324a6e308b98a217f5e3a48d2 Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Thu, 25 Sep 2025 11:19:17 +0400 Subject: [PATCH 6/9] README auto update [skip ci] --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 0b3bb7d..e774620 100644 --- a/README.md +++ b/README.md @@ -24,9 +24,9 @@ The example stores a saved report layout in a BLOB field of a memory-based datas * [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) * [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From 993ef0ab94af5c788af5229593f0eeea1c2317de Mon Sep 17 00:00:00 2001 From: Dmitry Eliseev <81766219+dmitry-eliseev-devexpress@users.noreply.github.com> Date: Thu, 25 Sep 2025 10:55:21 +0300 Subject: [PATCH 7/9] Remove redundant content --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e774620..6f9bc29 100644 --- a/README.md +++ b/README.md @@ -8,8 +8,6 @@ This example demonstrates how to store a [report layout](https://docs.devexpress vcl-reports-tdxreport-template-designer@2x -The example stores a saved report layout in a BLOB field of a memory-based dataset component ([TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) inherited from the standard [TDataSet](https://docwiki.embarcadero.com/Libraries/Athens/en/Data.DB.TDataSet) class shipped with the VCL library). - ## Testing the example * Run the sample app and click **New Report** to create an empty database record. @@ -24,9 +22,9 @@ The example stores a saved report layout in a BLOB field of a memory-based datas * [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) * [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From c40eb95871ea9d50465a189475d118d3c00f5dc7 Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Thu, 25 Sep 2025 11:57:21 +0400 Subject: [PATCH 8/9] README auto update [skip ci] --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6f9bc29..1b3ddec 100644 --- a/README.md +++ b/README.md @@ -22,9 +22,9 @@ This example demonstrates how to store a [report layout](https://docs.devexpress * [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) * [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response) From bd7f5c7680b19e7722bf0856e2c800a2eb3201e8 Mon Sep 17 00:00:00 2001 From: Dmitry Eliseev <81766219+dmitry-eliseev-devexpress@users.noreply.github.com> Date: Thu, 25 Sep 2025 12:55:58 +0300 Subject: [PATCH 9/9] Apply suggestions from code review --- README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1b3ddec..cac2293 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,8 @@ # DevExpress VCL Reports - Store report layouts in a database -This example demonstrates how to store a [report layout](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) (XML-based template) in a dataset. +This example stores a [report layout](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) (XML-based template) in a BLOB field of a memory-based dataset ([TdxMemData](https://docs.devexpress.com/VCL/dxmdaset.TdxMemData) inherited from the standard [TDataSet](https://docwiki.embarcadero.com/Libraries/Athens/en/Data.DB.TDataSet) class shipped with the VCL library). -vcl-reports-tdxreport-template-designer@2x ## Testing the example @@ -22,9 +21,9 @@ This example demonstrates how to store a [report layout](https://docs.devexpress * [TdxReport.Layout Property](https://docs.devexpress.com/VCL/dxReport.TdxReport.Layout) * [TdxReportDataSetJSONConnection Component](https://docs.devexpress.com/VCL/dxReport.ConnectionString.JSON.DB.TdxReportDataSetJSONConnection) -## Does this example address your development requirements/objectives? - -[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) - +## Does this example address your development requirements/objectives? + +[](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=yes) [](https://www.devexpress.com/support/examples/survey.xml?utm_source=github&utm_campaign=vcl-reports-store-layout-template-database&~~~was_helpful=no) + (you will be redirected to DevExpress.com to submit your response)