{"id":22854875,"url":"https://github.com/datarza/devexpress-reporting-extensions","last_synced_at":"2025-03-31T07:25:19.453Z","repository":{"id":40888987,"uuid":"231499702","full_name":"datarza/DevExpress-Reporting-Extensions","owner":"datarza","description":"Extensions for DevExpress Reports that allows creating reports in C# code","archived":false,"fork":false,"pushed_at":"2023-10-22T05:44:03.000Z","size":914,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-06T12:11:48.963Z","etag":null,"topics":["charp","controls","devexpress","devexpress-components","devexpress-libraries","devexpress-reporting","devexpress-reports","extender","extensions","extentions","framework-engine","layouts","library","preparation","reporting","reports","visual-studio","visualization"],"latest_commit_sha":null,"homepage":"https://datarza.github.io/DevExpress-Reporting-Extensions/","language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datarza.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-03T02:49:26.000Z","updated_at":"2023-10-22T05:44:03.000Z","dependencies_parsed_at":"2025-02-06T12:11:45.535Z","dependency_job_id":"ba61b8a1-fb89-44bf-bb13-55e5188b8602","html_url":"https://github.com/datarza/DevExpress-Reporting-Extensions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarza%2FDevExpress-Reporting-Extensions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarza%2FDevExpress-Reporting-Extensions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarza%2FDevExpress-Reporting-Extensions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarza%2FDevExpress-Reporting-Extensions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datarza","download_url":"https://codeload.github.com/datarza/DevExpress-Reporting-Extensions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246430894,"owners_count":20776109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charp","controls","devexpress","devexpress-components","devexpress-libraries","devexpress-reporting","devexpress-reports","extender","extensions","extentions","framework-engine","layouts","library","preparation","reporting","reports","visual-studio","visualization"],"created_at":"2024-12-13T07:08:54.444Z","updated_at":"2025-03-31T07:25:19.423Z","avatar_url":"https://github.com/datarza.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"I often use [DevExpress Reporting](https://www.devexpress.com/subscriptions/reporting/) in software projects. This library is good enough for faster developing. But in large projects, in which there may be many similar reports, development may be inconvenient. The problem is in [Visual Studio Report Designer](https://docs.devexpress.com/XtraReports/4256/visual-studio-report-designer). Designer from DevExpress is good for developing the several reports, but not convenient for developing the hundred reports with similar template and behaviour.\n\nThat's why I created extensions, that makes report development with the DevExpress library easier and more intuitive. Instead of using the Report Designer, developer can generate the reports directly in C# code.\n\nThe Similar problems I met in WinForms with GridView control. To solve them, I created project [DataViewExtenders](https://github.com/CanadianBeaver/DataViewExtenders). The same solution is used for DevExpress Reporting.\n\n#### How does it work?\n\nThe simplest example demonstrates the main approach:\n\n ```csharp\nvar report = new DevExpress.XtraReports.UI.XtraReport();\n\nreport\n  .AddGrid()\n    .AddColumn(1D, \"Number\", nameof(Person.Number))\n    .AddColumn(1.5D, \"First Name\", nameof(Person.FirstName))\n    .AddColumn(1.5D, \"Last Name\", nameof(Person.LastName))\n    .AddColumn(1.5D, \"Type\", nameof(Person.Type))\n    .AddColumn(1.5D, \"Department\", nameof(Person.Department))\n    .AddColumn(2.5D, \"Manager\", nameof(Person.Manager))\n    .AddColumnDate(1D, \"Started\", nameof(Person.EmploymentDate))\n    .AddColumnDate(1D, \"Finished\", nameof(Person.DismissalDate))\n    .AddColumnMoney(1.5D, \"Salary\", nameof(Person.Salary));\n    \nreport\n  .AddGroupFooter()\n    .AddColumnCount(10.5D)\n    .AddColumnMoney(1.5D, nameof(Person.Salary));\n    \nreport.DataSource = new List\u003cPerson\u003e() { \n  new Person { Number = \"OW-2134\", FirstName = \"Paul\", LastName = \"Daker\", ... },\n  new Person { Number = \"OW-2137\", FirstName = \"Devon\", LastName = \"Curokasu\", ... },\n  new Person { Number = \"OW-2041\", FirstName = \"Claris\", LastName = \"Manole\", ... }, \n  new Person { Number = \"OW-3261\", FirstName = \"Mia\", LastName = \"Coty\", ... }\n};\n```\n\nThe generated report looks like:\n![Report Example](reportexample.png)\n\n#### Group the data\n\nAdd the group into report and change the grid layout is pretty simple. Just add the group by the `Department` field to the report, remove this column from the grid and align the width of the columns in group footer:\n\n```csharp\nreport\n  .AddGrid()\n    .AddColumn(1D, \"Number\", nameof(Person.Number))\n    .AddColumn(1.5D, \"First Name\", nameof(Person.FirstName))\n    .AddColumn(1.5D, \"Last Name\", nameof(Person.LastName))\n    .AddColumn(1.5D, \"Type\", nameof(Person.Type))\n    .AddColumn(2.5D, \"Manager\", nameof(Person.Manager))\n    .AddColumnDate(1D, \"Started\", nameof(Person.EmploymentDate))\n    .AddColumnDate(1D, \"Finished\", nameof(Person.DismissalDate))\n    .AddColumnMoney(1.5D, \"Salary\", nameof(Person.Salary));\n  \nreport.AddGroupHeader(nameof(Person.Department), \"{0} Department\");\n  \nreport\n  .AddGroupFooter()\n    .AddColumnCount(9.0D, nameof(Person.Number))\n    .AddColumnMoney(1.5D, nameof(Person.Salary));\n      \nreport.DataSource = new List\u003cPerson\u003e() { \n  new Person { Number = \"OW-2134\", FirstName = \"Paul\", LastName = \"Daker\", ... },\n  new Person { Number = \"OW-2137\", FirstName = \"Devon\", LastName = \"Curokasu\", ... },\n  new Person { Number = \"OW-2041\", FirstName = \"Claris\", LastName = \"Manole\", ... }, \n  new Person { Number = \"OW-3261\", FirstName = \"Mia\", LastName = \"Coty\", ... }\n};\n```\n\nThis example generate the following report:\n![Report Example](reportgroupexample.png)\n\n#### What else is inside?\n\nDevExpress Report Extensions contain features, that allows to create headers and footers, groups and additional calculations for summaries, grids and column headers, page numbering and nested Master-Detail reports. These extensions can be easily expanded with different styles and design templates.\n\n### System requirements\n\nLibrary depends on the [DevExpress Reporting](https://www.devexpress.com/subscriptions/reporting/). Plese, install the full or trial version before compiling the library.\n\n#### Support or Contact\n\nPlease, read the [Wiki](../../wiki) pages for detail information. Also, `DemoWebApplication` contains several usefull examples.\n\nHaving questions? [Contact me](https://github.com/datarza) and I will help you sort it out.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarza%2Fdevexpress-reporting-extensions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatarza%2Fdevexpress-reporting-extensions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarza%2Fdevexpress-reporting-extensions/lists"}