From 388eaf0cdb436e59f0e5a73fe52920fe0a6bbffe Mon Sep 17 00:00:00 2001 From: Nick Volynkin Date: Tue, 31 Mar 2026 11:20:37 +0300 Subject: [PATCH 1/3] readme: Update screenshots with the new application look - Application title and icon - Data grid sorted by product name - Update a comment on a reference link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b21e5b5..963911b 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Click the **Preview Report** button to display a report containing all selected - [Store report layouts in REPX files at design-time][reports-design-time-store] - API reference: - [TdxReport] - - [TdxReport.ReportName] (internal report name) + - [TdxReport.ReportName] (internal report name that is not included in the layout) - [TdxReport.Layout] (an XML-based layout template that can be stored in a BLOB data field) - [TdxReport.ShowViewer] - [TdxMemData] (DevExpress in-memory dataset implementation) From d4f7b3016e02a45724592a7a13fd88f8b591fa7a Mon Sep 17 00:00:00 2001 From: Nick Volynkin Date: Tue, 31 Mar 2026 17:28:47 +0300 Subject: [PATCH 2/3] delphi: Replace deprecated DataSet with DataSource - Field TdxBackendDataSetCollectionItem.DataSet is deprecated. This PR replaces it with DataSource. See: https://docs.devexpress.com/VCL/dxBackend.ConnectionString.JSON.DataSet.TdxBackendDataSetCollectionItem.DataSet https://docs.devexpress.com/VCL/dxBackend.ConnectionString.JSON.DataSet.TdxBackendDataSetCollectionItem.DataSource. - Remove the unused SQLite database connection. - Cleanup the form layout and layout manager. --- Delphi/uMainForm.dfm | 40 ++++++++++------------------------------ Delphi/uMainForm.pas | 9 +++------ 2 files changed, 13 insertions(+), 36 deletions(-) diff --git a/Delphi/uMainForm.dfm b/Delphi/uMainForm.dfm index f6092d4..ae7bb3b 100644 --- a/Delphi/uMainForm.dfm +++ b/Delphi/uMainForm.dfm @@ -22,7 +22,7 @@ object MainForm: TMainForm AutoSize = True object btnPreview: TcxButton Left = 12 - Top = 24 + Top = 12 Width = 557 Height = 25 Caption = 'Preview Report' @@ -31,12 +31,12 @@ object MainForm: TMainForm end object cxGrid1: TcxGrid Left = 12 - Top = 56 + Top = 44 Width = 557 Height = 345 TabOrder = 1 object gvProducts: TcxGridDBTableView - DataController.DataSource = DataSource1 + DataController.DataSource = dsProducts OptionsData.CancelOnExit = False OptionsData.Deleting = False OptionsData.DeletingConfirmation = False @@ -85,12 +85,12 @@ object MainForm: TMainForm Index = -1 end object liPreview: TdxLayoutItem - Parent = dxLayoutGroup2 + Parent = dxButtons CaptionOptions.Text = 'btnViewReport' CaptionOptions.Visible = False Control = btnPreview ControlOptions.OriginalHeight = 25 - ControlOptions.OriginalWidth = 193 + ControlOptions.OriginalWidth = 557 ControlOptions.ShowBorder = False Index = 0 end @@ -98,21 +98,14 @@ object MainForm: TMainForm CaptionOptions.Text = 'Label' Index = -1 end - object dxLayoutGroup1: TdxLayoutGroup - Parent = dxLayoutGroup3 + object dxButtons: TdxLayoutGroup + Parent = dxLayoutControl1Group_Root CaptionOptions.Text = 'New Group' CaptionOptions.Visible = False ShowBorder = False Index = 0 end - object dxLayoutGroup2: TdxLayoutGroup - Parent = dxLayoutGroup3 - CaptionOptions.Text = 'New Group' - CaptionOptions.Visible = False - ShowBorder = False - Index = 1 - end - object dxLayoutItem1: TdxLayoutItem + object dxGrid: TdxLayoutItem Parent = dxLayoutControl1Group_Root AlignHorz = ahLeft CaptionOptions.Text = 'cxGrid1' @@ -123,13 +116,6 @@ object MainForm: TMainForm ControlOptions.ShowBorder = False Index = 1 end - object dxLayoutGroup3: TdxLayoutGroup - Parent = dxLayoutControl1Group_Root - CaptionOptions.Text = 'New Group' - ItemIndex = 1 - ShowBorder = False - Index = 0 - end end object dxReport1: TdxReport ReportName = 'Product List Report' @@ -382,15 +368,9 @@ object MainForm: TMainForm object dxReportDataConnectionManager: TdxBackendDataConnectionManager Left = 40 Top = 144 - object ReportsNWindConnectionString: TdxBackendDatabaseSQLConnection - DisplayName = 'NWindConnectionString' - ConnectionString = - 'XpoProvider=SQLite; Data Source=|DataDirectory|\..\..\..\nwind.d' + - 'b; Mode=ReadOnly' - end object NWindMemDataConnection: TdxBackendDataSetJSONConnection object NWindMemDataConnectionItem1: TdxBackendDataSetCollectionItem - DataSet = mdProducts + DataSource = dsProducts DataSetAlias = 'Products' end end @@ -401,7 +381,7 @@ object MainForm: TMainForm Left = 88 Top = 144 end - object DataSource1: TDataSource + object dsProducts: TDataSource DataSet = mdProducts Left = 88 Top = 192 diff --git a/Delphi/uMainForm.pas b/Delphi/uMainForm.pas index ea8c81e..7c2ff44 100644 --- a/Delphi/uMainForm.pas +++ b/Delphi/uMainForm.pas @@ -24,20 +24,17 @@ TMainForm = class(TForm) dxReport1: TdxReport; btnPreview: TcxButton; dxReportDataConnectionManager: TdxBackendDataConnectionManager; - ReportsNWindConnectionString: TdxBackendDatabaseSQLConnection; dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1: TdxLayoutControl; liPreview: TdxLayoutItem; dxSkinController1: TdxSkinController; dxLayoutLabeledItem1: TdxLayoutLabeledItem; - dxLayoutGroup1: TdxLayoutGroup; - dxLayoutGroup2: TdxLayoutGroup; + dxButtons: TdxLayoutGroup; gvProducts: TcxGridDBTableView; cxGrid1Level1: TcxGridLevel; cxGrid1: TcxGrid; - dxLayoutItem1: TdxLayoutItem; - dxLayoutGroup3: TdxLayoutGroup; - DataSource1: TDataSource; + dxGrid: TdxLayoutItem; + dsProducts: TDataSource; gvProductsProductID: TcxGridDBColumn; gvProductsProductName: TcxGridDBColumn; gvProductsQuantityPerUnit: TcxGridDBColumn; From a67e636f0b87920b4469e94256630389953915b4 Mon Sep 17 00:00:00 2001 From: Nick Volynkin Date: Tue, 31 Mar 2026 17:28:47 +0300 Subject: [PATCH 3/3] cpp-builder: Replace deprecated DataSet with DataSource - Field TdxBackendDataSetCollectionItem.DataSet is deprecated. This PR replaces it with DataSource. See: https://docs.devexpress.com/VCL/dxBackend.ConnectionString.JSON.DataSet.TdxBackendDataSetCollectionItem.DataSet https://docs.devexpress.com/VCL/dxBackend.ConnectionString.JSON.DataSet.TdxBackendDataSetCollectionItem.DataSource. - Remove the unused SQLite database connection. - Cleanup the form layout and layout manager. --- CPB/uMainForm.dfm | 45 +++++++++++++-------------------------------- CPB/uMainForm.h | 3 +-- 2 files changed, 14 insertions(+), 34 deletions(-) diff --git a/CPB/uMainForm.dfm b/CPB/uMainForm.dfm index 07b116e..ae7bb3b 100644 --- a/CPB/uMainForm.dfm +++ b/CPB/uMainForm.dfm @@ -1,10 +1,11 @@ object MainForm: TMainForm Left = 0 Top = 0 + Width = 657 + Height = 464 + AutoScroll = True AutoSize = True Caption = 'DevExpress Example - Filter Data Records in a Report' - ClientHeight = 425 - ClientWidth = 641 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText @@ -21,7 +22,7 @@ object MainForm: TMainForm AutoSize = True object btnPreview: TcxButton Left = 12 - Top = 24 + Top = 12 Width = 557 Height = 25 Caption = 'Preview Report' @@ -30,12 +31,12 @@ object MainForm: TMainForm end object cxGrid1: TcxGrid Left = 12 - Top = 56 + Top = 44 Width = 557 Height = 345 TabOrder = 1 object gvProducts: TcxGridDBTableView - DataController.DataSource = DataSource1 + DataController.DataSource = dsProducts OptionsData.CancelOnExit = False OptionsData.Deleting = False OptionsData.DeletingConfirmation = False @@ -84,12 +85,12 @@ object MainForm: TMainForm Index = -1 end object liPreview: TdxLayoutItem - Parent = dxLayoutGroup2 + Parent = dxButtons CaptionOptions.Text = 'btnViewReport' CaptionOptions.Visible = False Control = btnPreview ControlOptions.OriginalHeight = 25 - ControlOptions.OriginalWidth = 193 + ControlOptions.OriginalWidth = 557 ControlOptions.ShowBorder = False Index = 0 end @@ -97,21 +98,14 @@ object MainForm: TMainForm CaptionOptions.Text = 'Label' Index = -1 end - object dxLayoutGroup1: TdxLayoutGroup - Parent = dxLayoutGroup3 + object dxButtons: TdxLayoutGroup + Parent = dxLayoutControl1Group_Root CaptionOptions.Text = 'New Group' CaptionOptions.Visible = False ShowBorder = False Index = 0 end - object dxLayoutGroup2: TdxLayoutGroup - Parent = dxLayoutGroup3 - CaptionOptions.Text = 'New Group' - CaptionOptions.Visible = False - ShowBorder = False - Index = 1 - end - object dxLayoutItem1: TdxLayoutItem + object dxGrid: TdxLayoutItem Parent = dxLayoutControl1Group_Root AlignHorz = ahLeft CaptionOptions.Text = 'cxGrid1' @@ -122,13 +116,6 @@ object MainForm: TMainForm ControlOptions.ShowBorder = False Index = 1 end - object dxLayoutGroup3: TdxLayoutGroup - Parent = dxLayoutControl1Group_Root - CaptionOptions.Text = 'New Group' - ItemIndex = 1 - ShowBorder = False - Index = 0 - end end object dxReport1: TdxReport ReportName = 'Product List Report' @@ -381,15 +368,9 @@ object MainForm: TMainForm object dxReportDataConnectionManager: TdxBackendDataConnectionManager Left = 40 Top = 144 - object ReportsNWindConnectionString: TdxBackendDatabaseSQLConnection - DisplayName = 'NWindConnectionString' - ConnectionString = - 'XpoProvider=SQLite; Data Source=|DataDirectory|\..\..\..\nwind.d' + - 'b; Mode=ReadOnly' - end object NWindMemDataConnection: TdxBackendDataSetJSONConnection object NWindMemDataConnectionItem1: TdxBackendDataSetCollectionItem - DataSet = mdProducts + DataSource = dsProducts DataSetAlias = 'Products' end end @@ -400,7 +381,7 @@ object MainForm: TMainForm Left = 88 Top = 144 end - object DataSource1: TDataSource + object dsProducts: TDataSource DataSet = mdProducts Left = 88 Top = 192 diff --git a/CPB/uMainForm.h b/CPB/uMainForm.h index 5c54f26..dadb488 100644 --- a/CPB/uMainForm.h +++ b/CPB/uMainForm.h @@ -68,11 +68,10 @@ class TMainForm : public TForm TdxLayoutGroup *dxLayoutGroup3; TdxReport *dxReport1; TdxBackendDataConnectionManager *dxReportDataConnectionManager; - TdxBackendDatabaseSQLConnection *ReportsNWindConnectionString; TdxBackendDataSetJSONConnection *NWindMemDataConnection; TdxBackendDataSetCollectionItem *NWindMemDataConnectionItem1; TdxSkinController *dxSkinController1; - TDataSource *DataSource1; + TDataSource *dsProducts; TdxMemData *mdProducts; TIntegerField *mdProductsProductID; TWideStringField *mdProductsProductName;