├── .gitattributes ├── .gitignore ├── API Demos ├── CloudAPIDemo │ ├── CloudAPIDemo.sln │ └── UploadTemplateDemo │ │ ├── CloudRequestSender.cs │ │ ├── Program.cs │ │ ├── Properties │ │ ├── Resources.Designer.cs │ │ └── Resources.resx │ │ ├── Templates │ │ └── Box.frx │ │ └── UploadTemplateDemo.csproj ├── CloudApiWebDemo │ ├── CloudApiWebDemo.sln │ ├── CloudApiWebDemo │ │ ├── ApplicationContext.cs │ │ ├── CloudApiWebDemo.csproj │ │ ├── Controllers │ │ │ └── HomeController.cs │ │ ├── Models │ │ │ ├── Book.cs │ │ │ └── ErrorViewModel.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Resources │ │ │ ├── PriceList.frx │ │ │ └── books.json │ │ ├── Singletones │ │ │ └── UploadAndExportSingleton.cs │ │ ├── Startup.cs │ │ ├── Views │ │ │ ├── Home │ │ │ │ ├── BookView.cshtml │ │ │ │ ├── Edit.cshtml │ │ │ │ ├── Index.cshtml │ │ │ │ └── Privacy.cshtml │ │ │ ├── Shared │ │ │ │ ├── Error.cshtml │ │ │ │ ├── _Layout.cshtml │ │ │ │ └── _ValidationScriptsPartial.cshtml │ │ │ ├── _ViewImports.cshtml │ │ │ └── _ViewStart.cshtml │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── wwwroot │ │ │ ├── css │ │ │ └── site.css │ │ │ ├── favicon.ico │ │ │ ├── images │ │ │ ├── istockphoto-1156672386-612x612.jpg │ │ │ └── xls-icon.png │ │ │ ├── js │ │ │ └── site.js │ │ │ └── lib │ │ │ ├── bootstrap │ │ │ ├── LICENSE │ │ │ └── dist │ │ │ │ ├── css │ │ │ │ ├── bootstrap-grid.css │ │ │ │ ├── bootstrap-grid.css.map │ │ │ │ ├── bootstrap-grid.min.css │ │ │ │ ├── bootstrap-grid.min.css.map │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ ├── bootstrap-reboot.css.map │ │ │ │ ├── bootstrap-reboot.min.css │ │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ │ ├── bootstrap.css │ │ │ │ ├── bootstrap.css.map │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ │ │ └── js │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ ├── bootstrap.bundle.js.map │ │ │ │ ├── bootstrap.bundle.min.js │ │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.js.map │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── bootstrap.min.js.map │ │ │ ├── jquery-validation-unobtrusive │ │ │ ├── LICENSE.txt │ │ │ ├── jquery.validate.unobtrusive.js │ │ │ └── jquery.validate.unobtrusive.min.js │ │ │ ├── jquery-validation │ │ │ ├── LICENSE.md │ │ │ └── dist │ │ │ │ ├── additional-methods.js │ │ │ │ ├── additional-methods.min.js │ │ │ │ ├── jquery.validate.js │ │ │ │ └── jquery.validate.min.js │ │ │ └── jquery │ │ │ ├── LICENSE.txt │ │ │ └── dist │ │ │ ├── jquery.js │ │ │ ├── jquery.min.js │ │ │ └── jquery.min.map │ └── README.txt └── FastReport.Cloud.Demos.Webhook │ ├── Controllers │ └── CloudReceiverController.cs │ ├── FastReport.Cloud.Demos.Webhook.csproj │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── Angular Demos └── fastreport-cloud-angular │ ├── README.md │ ├── angular.json │ ├── package-lock.json │ ├── package.json │ ├── proxy.conf.json │ ├── public │ └── favicon.ico │ ├── server.ts │ ├── src │ ├── app │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.config.server.ts │ │ └── app.config.ts │ ├── assets │ │ └── Template.frx │ ├── index.html │ ├── main.server.ts │ ├── main.ts │ └── styles.css │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── CSharp Demos ├── CSharpSDKDemo │ ├── Box.frx │ ├── CSharpSDKDemo.sln │ └── CSharpSDKDemo │ │ ├── CSharpSDKDemo.csproj │ │ └── Program.cs ├── CSharpSDKReportParameters │ ├── CSharpSDKReportParameters.csproj │ ├── CSharpSDKReportParameters.sln │ ├── Controllers │ │ └── HomeController.cs │ ├── Models │ │ ├── ErrorViewModel.cs │ │ └── PrepareReportModel.cs │ ├── Program.cs │ ├── Properties │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ └── launchSettings.json │ ├── Startup.cs │ ├── Views │ │ ├── Home │ │ │ ├── Index.cshtml │ │ │ └── Privacy.cshtml │ │ ├── Shared │ │ │ ├── Error.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ │ ├── css │ │ └── site.css │ │ ├── favicon.ico │ │ ├── js │ │ └── site.js │ │ └── lib │ │ ├── bootstrap │ │ ├── LICENSE │ │ └── dist │ │ │ ├── css │ │ │ ├── bootstrap-grid.css │ │ │ ├── bootstrap-grid.css.map │ │ │ ├── bootstrap-grid.min.css │ │ │ ├── bootstrap-grid.min.css.map │ │ │ ├── bootstrap-reboot.css │ │ │ ├── bootstrap-reboot.css.map │ │ │ ├── bootstrap-reboot.min.css │ │ │ ├── bootstrap-reboot.min.css.map │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ ├── bootstrap.min.css │ │ │ └── bootstrap.min.css.map │ │ │ └── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ └── bootstrap.min.js.map │ │ ├── jquery-validation-unobtrusive │ │ ├── LICENSE.txt │ │ ├── jquery.validate.unobtrusive.js │ │ └── jquery.validate.unobtrusive.min.js │ │ ├── jquery-validation │ │ ├── LICENSE.md │ │ └── dist │ │ │ ├── additional-methods.js │ │ │ ├── additional-methods.min.js │ │ │ ├── jquery.validate.js │ │ │ └── jquery.validate.min.js │ │ └── jquery │ │ ├── LICENSE.txt │ │ └── dist │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ └── jquery.min.map ├── CSharpSDKTasks │ ├── CSharpSDKTasks.sln │ └── CSharpSDKTasks │ │ ├── CSharpSDKTasks.csproj │ │ └── Program.cs └── CSharpSDKWebDemo │ ├── CSharpSDKWebDemo.sln │ └── CloudApiWebDemo │ ├── ApplicationContext.cs │ ├── CSharpSDKWebDemo.csproj │ ├── Controllers │ └── HomeController.cs │ ├── Models │ ├── Book.cs │ ├── ErrorViewModel.cs │ └── Song.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Resources │ ├── PriceList.frx │ ├── books.json │ └── songs.json │ ├── Startup.cs │ ├── Views │ ├── Home │ │ ├── Index.cshtml │ │ ├── Privacy.cshtml │ │ └── SongView.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot │ ├── css │ └── site.css │ ├── favicon.ico │ ├── images │ ├── istockphoto-1156672386-612x612.jpg │ └── xls-icon.png │ ├── js │ └── site.js │ └── lib │ ├── bootstrap │ ├── LICENSE │ └── dist │ │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ │ └── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── jquery-validation-unobtrusive │ ├── LICENSE.txt │ ├── jquery.validate.unobtrusive.js │ └── jquery.validate.unobtrusive.min.js │ ├── jquery-validation │ ├── LICENSE.md │ └── dist │ │ ├── additional-methods.js │ │ ├── additional-methods.min.js │ │ ├── jquery.validate.js │ │ └── jquery.validate.min.js │ └── jquery │ ├── LICENSE.txt │ └── dist │ ├── jquery.js │ ├── jquery.min.js │ └── jquery.min.map ├── Cpp Demos └── pdf_export_demo │ ├── Makefile │ ├── README.md │ └── frcloud_demo.cpp ├── Golang Demos └── fastreport-cloud-pdf │ ├── README.md │ ├── go.mod │ ├── go.sum │ ├── main.go │ └── report.frx ├── JS Demos └── fastreport-cloud-demo-pdf │ ├── .gitignore │ ├── index.js │ ├── package-lock.json │ └── package.json ├── Java Demos ├── fastreport-cloud-demo-rest │ ├── Template.frx │ ├── build.gradle │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle │ └── src │ │ └── main │ │ └── java │ │ └── cloud │ │ └── fastreport │ │ └── demopdf │ │ └── App.java └── fastreport-cloud-demopdf │ ├── .gitattributes │ ├── .gitignore │ ├── .vscode │ └── settings.json │ ├── Box.frx │ ├── build.gradle │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── out │ └── production │ │ └── fastreport-cloud-demopdf │ │ └── Box.frx │ ├── readme.md │ ├── settings.gradle │ └── src │ ├── main │ └── java │ │ └── cloud │ │ └── fastreport │ │ └── demopdf │ │ └── App.java │ └── test │ └── java │ └── cloud │ └── fastreport │ └── demopdf │ └── AppTest.java ├── Kotlin Demos ├── fastreport-cloud-androidKotlin │ ├── app │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets │ │ │ └── Template.frx │ │ │ ├── cloud_icon-playstore.png │ │ │ ├── java │ │ │ └── cloud │ │ │ │ └── fastreport │ │ │ │ └── androiddemo │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ ├── drawable │ │ │ ├── ic_launcher_background.xml │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── layout │ │ │ └── activity_main.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── cloud_icon.xml │ │ │ └── cloud_icon_round.xml │ │ │ ├── mipmap-anydpi │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── cloud_icon.webp │ │ │ ├── cloud_icon_background.webp │ │ │ ├── cloud_icon_foreground.webp │ │ │ ├── cloud_icon_round.webp │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-mdpi │ │ │ ├── cloud_icon.webp │ │ │ ├── cloud_icon_background.webp │ │ │ ├── cloud_icon_foreground.webp │ │ │ ├── cloud_icon_round.webp │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ ├── cloud_icon.webp │ │ │ ├── cloud_icon_background.webp │ │ │ ├── cloud_icon_foreground.webp │ │ │ ├── cloud_icon_round.webp │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ ├── cloud_icon.webp │ │ │ ├── cloud_icon_background.webp │ │ │ ├── cloud_icon_foreground.webp │ │ │ ├── cloud_icon_round.webp │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── cloud_icon.webp │ │ │ ├── cloud_icon_background.webp │ │ │ ├── cloud_icon_foreground.webp │ │ │ ├── cloud_icon_round.webp │ │ │ ├── ic_launcher.webp │ │ │ └── ic_launcher_round.webp │ │ │ ├── values-night │ │ │ └── themes.xml │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ │ └── xml │ │ │ ├── backup_rules.xml │ │ │ └── data_extraction_rules.xml │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts └── fastreport-cloud-demoConsole │ └── demoConsole │ ├── Template.frx │ ├── build.gradle.kts │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle.kts │ └── src │ └── main │ └── kotlin │ └── Main.kt ├── PhpDemos └── php-cloud-demo │ ├── .gitignore │ ├── .idea │ ├── .gitignore │ ├── .name │ ├── modules.xml │ ├── php-cloud-demo.iml │ └── php.xml │ ├── api │ ├── Dockerfile │ └── xdebug.ini │ ├── docker-compose.yml │ ├── public │ ├── composer.json │ └── index.php │ └── web │ └── api.conf ├── Python Demos └── demo_pdf │ ├── .gitignore │ └── __main__.py └── README.MD /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Diff behavior for common document formats 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | 19 | # Behavior for image files 20 | *.ico binary 21 | *.ICO binary 22 | *.bmp binary 23 | *.BMP binary 24 | *.tif binary 25 | *.TIF binary 26 | *.tiff binary 27 | *.TIFF binary 28 | *.jpg binary 29 | *.JPG binary 30 | *.jpeg binary 31 | *.JPEG binary 32 | *.png binary 33 | *.PNG binary 34 | *.gif binary 35 | *.GIF binary -------------------------------------------------------------------------------- /API Demos/CloudAPIDemo/CloudAPIDemo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30428.66 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "UploadTemplateDemo", "UploadTemplateDemo\UploadTemplateDemo.csproj", "{A30A0A66-EDDE-4784-AD43-0269B349B514}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {A30A0A66-EDDE-4784-AD43-0269B349B514}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {A30A0A66-EDDE-4784-AD43-0269B349B514}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {A30A0A66-EDDE-4784-AD43-0269B349B514}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {A30A0A66-EDDE-4784-AD43-0269B349B514}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {119E6EB9-9508-4DDA-9513-9B3FE669810B} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /API Demos/CloudAPIDemo/UploadTemplateDemo/Program.cs: -------------------------------------------------------------------------------- 1 | using UploadTemplateDemo.Properties; 2 | using Newtonsoft.Json; 3 | using System; 4 | using System.IO; 5 | using System.Net; 6 | using System.Net.Http; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace UploadTemplateDemo 11 | { 12 | class Program 13 | { 14 | private static readonly HttpClient client = new HttpClient(); 15 | private const string apiKey = "*YOUR API KEY HERE*"; 16 | 17 | //View model of the file we want to upload 18 | private static FileVM boxFileVM = new FileVM() 19 | { 20 | name = "createdByScript.frx", 21 | tags = new string[] { "generated" }, 22 | icon = null, 23 | // adding file to project resources is unnecessary, you can get it's content with any method you like 24 | content = Convert.ToBase64String(Resources.Box) 25 | }; 26 | 27 | static async Task Main() 28 | { 29 | // you can lookup API documentation here - https://www.fast-report.com/public_download/docs/Cloud/online/en/user/en-US/index.html 30 | 31 | CloudRequestSender requestSender = new CloudRequestSender(apiKey); 32 | 33 | dynamic templateRootFolder = await requestSender.SendRequestAsync("https://fastreport.cloud/api/rp/v1/Templates/Root", CloudRequestSender.RequestMethod.GET); 34 | 35 | dynamic template = await requestSender.SendRequestAsync($"https://fastreport.cloud/api/rp/v1/Templates/Folder/{templateRootFolder.id}/File", 36 | CloudRequestSender.RequestMethod.POST, boxFileVM); 37 | 38 | dynamic export = await requestSender.SendRequestAsync($"https://fastreport.cloud/api/rp/v1/Templates/File/{template.id}/Export", CloudRequestSender.RequestMethod.POST, 39 | new ExportVM() { fileName = "exportedByScript.pdf", format = "Pdf" }); 40 | 41 | await requestSender.SendRequestAsync($"https://fastreport.cloud/download/e/{export.id}", 42 | CloudRequestSender.RequestMethod.GET); 43 | 44 | await requestSender.SendRequestAsync($"https://fastreport.cloud/api/rp/v1/Templates/File/{template.id}", 45 | CloudRequestSender.RequestMethod.DELETE); 46 | 47 | await requestSender.SendRequestAsync($"https://fastreport.cloud/api/rp/v1/Exports/File/{export.id}", 48 | CloudRequestSender.RequestMethod.DELETE); 49 | } 50 | } 51 | 52 | /// 53 | /// This is a view model for files, required to upload 54 | /// (you can also just provide JSON, without such representation) 55 | /// 56 | public struct FileVM 57 | { 58 | // file name have to include format (.frx to templates, .fpx to reports) 59 | public string name; 60 | // you can add tags to any file you upload 61 | public string[] tags; 62 | // you can select custom image as file's icon 63 | public string icon; 64 | // this is the base64 representation of file's content 65 | public string content; 66 | } 67 | 68 | /// 69 | /// This is a view model for export configuration 70 | /// 71 | public struct ExportVM 72 | { 73 | // you can configure export parameters here, if you want 74 | public string[] exportParameters; 75 | // file name (including export format) 76 | public string fileName; 77 | // folder for created export (root folder for exports by default) 78 | public string folderId; 79 | // export format 80 | public string format; 81 | // you can configure report parameters here, if you want 82 | public string reportParameters; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /API Demos/CloudAPIDemo/UploadTemplateDemo/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Этот код создан программой. 4 | // Исполняемая версия:4.0.30319.42000 5 | // 6 | // Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае 7 | // повторной генерации кода. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace UploadTemplateDemo.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. 17 | /// 18 | // Этот класс создан автоматически классом StronglyTypedResourceBuilder 19 | // с помощью такого средства, как ResGen или Visual Studio. 20 | // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen 21 | // с параметром /str или перестройте свой проект VS. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("UploadTemplateDemo.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Перезаписывает свойство CurrentUICulture текущего потока для всех 51 | /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Поиск локализованного ресурса типа System.Byte[]. 65 | /// 66 | internal static byte[] Box { 67 | get { 68 | object obj = ResourceManager.GetObject("Box", resourceCulture); 69 | return ((byte[])(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /API Demos/CloudAPIDemo/UploadTemplateDemo/UploadTemplateDemo.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net5.0 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | True 15 | True 16 | Resources.resx 17 | 18 | 19 | 20 | 21 | 22 | ResXFileCodeGenerator 23 | Resources.Designer.cs 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30709.64 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CloudApiWebDemo", "CloudApiWebDemo\CloudApiWebDemo.csproj", "{93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {F93144EB-949D-402C-A8BD-CED29C41638B} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/ApplicationContext.cs: -------------------------------------------------------------------------------- 1 | using CloudApiWebDemo.Models; 2 | using Microsoft.EntityFrameworkCore; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | 8 | namespace CloudApiWebDemo 9 | { 10 | public class ApplicationContext : DbContext 11 | { 12 | public DbSet Books { get; set; } 13 | 14 | public ApplicationContext() 15 | { 16 | Database.EnsureCreated(); 17 | } 18 | 19 | protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 20 | { 21 | optionsBuilder.UseInMemoryDatabase(databaseName: "Books"); 22 | } 23 | protected override void OnModelCreating(ModelBuilder modelBuilder) 24 | { 25 | modelBuilder.Entity().HasData( 26 | new Book[] 27 | { 28 | new Book() { Id = 1, Author = "Marat Alaev", Alias = "How to be a krol", ReleaseDate = new DateTime(2020, 11, 20), Price = 4.20M }, 29 | new Book() { Id = 2, Author = "Gleb Striukov", Alias = "How to be a bigger krol", ReleaseDate = new DateTime(2020, 11, 21), Price = 4.21M }, 30 | new Book() { Id = 3, Author = "Sergey Susakov", Alias = "How to survive in army", ReleaseDate = new DateTime(2020, 10, 28), Price = 60.00M }, 31 | new Book() { Id = 4, Author = "Lev Tolstoi", Alias = "War and piece", ReleaseDate = new DateTime(1867, 1, 1), Price = 3.00M } 32 | }); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/CloudApiWebDemo.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net5.0 5 | false 6 | 7 | 8 | 9 | 10 | 11 | 12 | all 13 | runtime; build; native; contentfiles; analyzers; buildtransitive 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Models/Book.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel.DataAnnotations; 4 | using System.ComponentModel.DataAnnotations.Schema; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | 8 | namespace CloudApiWebDemo.Models 9 | { 10 | public class Book 11 | { 12 | public int Id { get; set; } 13 | public string Author { get; set; } 14 | public string Alias { get; set; } 15 | [Display(Name = "Release Date")] 16 | public DateTime ReleaseDate { get; set; } 17 | [Range(1, 10000)] 18 | [DataType(DataType.Currency)] 19 | [Column(TypeName = "decimal(18, 2)")] 20 | public decimal Price { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CloudApiWebDemo.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Program.cs: -------------------------------------------------------------------------------- 1 | using CloudApiWebDemo.Models; 2 | using Microsoft.AspNetCore.Hosting; 3 | using Microsoft.EntityFrameworkCore; 4 | using Microsoft.Extensions.Configuration; 5 | using Microsoft.Extensions.Hosting; 6 | using Microsoft.Extensions.Logging; 7 | using Newtonsoft.Json; 8 | using System; 9 | using System.Collections.Generic; 10 | using System.IO; 11 | using System.Linq; 12 | using System.Net; 13 | using System.Net.Http; 14 | using System.Net.Http.Json; 15 | using System.Text; 16 | using System.Threading.Tasks; 17 | 18 | namespace CloudApiWebDemo 19 | { 20 | public class Program 21 | { 22 | public static string apiKey = "PUT YOUR APIKEY HERE"; 23 | 24 | public static void Main(string[] args) 25 | { 26 | // we are using entity framework to make data storage simple and effective 27 | using (ApplicationContext db = new()) 28 | { 29 | var books = db.Books.ToList(); 30 | var json = JsonConvert.SerializeObject(books); 31 | using (StreamWriter w = new(Directory.GetCurrentDirectory() + @"/Resources/books.json")) 32 | { 33 | w.WriteLine(json); 34 | } 35 | 36 | } 37 | 38 | CreateHostBuilder(args).Build().Run(); 39 | } 40 | 41 | public static IHostBuilder CreateHostBuilder(string[] args) => 42 | Host.CreateDefaultBuilder(args) 43 | .ConfigureWebHostDefaults(webBuilder => 44 | { 45 | webBuilder.UseStartup(); 46 | }); 47 | 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:58276", 7 | "sslPort": 44320 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development", 16 | "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" 17 | } 18 | }, 19 | "CloudApiWebDemo": { 20 | "commandName": "Project", 21 | "dotnetRunMessages": "true", 22 | "launchBrowser": true, 23 | "applicationUrl": "https://localhost:5001;http://localhost:5000", 24 | "environmentVariables": { 25 | "ASPNETCORE_ENVIRONMENT": "Development", 26 | "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Resources/PriceList.frx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Resources/books.json: -------------------------------------------------------------------------------- 1 | [{"Id":1,"Author":"Marat Alaev","Alias":"How to be a krol","ReleaseDate":"2020-11-20T00:00:00","Price":4.20},{"Id":2,"Author":"Gleb Striukov","Alias":"How to be a bigger krol","ReleaseDate":"2020-11-21T00:00:00","Price":4.21},{"Id":3,"Author":"Sergey Susakov","Alias":"How to survive in army","ReleaseDate":"2020-10-28T00:00:00","Price":60.00},{"Id":4,"Author":"Lev Tolstoi","Alias":"War and piece","ReleaseDate":"1867-01-01T00:00:00","Price":3.00}] 2 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Startup.cs: -------------------------------------------------------------------------------- 1 | using CloudApiWebDemo.Singletones; 2 | using Microsoft.AspNetCore.Builder; 3 | using Microsoft.AspNetCore.Hosting; 4 | using Microsoft.AspNetCore.HttpsPolicy; 5 | using Microsoft.Extensions.Configuration; 6 | using Microsoft.Extensions.DependencyInjection; 7 | using Microsoft.Extensions.Hosting; 8 | using System; 9 | using System.Collections.Generic; 10 | using System.Linq; 11 | using System.Threading.Tasks; 12 | 13 | namespace CloudApiWebDemo 14 | { 15 | public class Startup 16 | { 17 | public Startup(IConfiguration configuration) 18 | { 19 | Configuration = configuration; 20 | } 21 | 22 | public IConfiguration Configuration { get; } 23 | 24 | // This method gets called by the runtime. Use this method to add services to the container. 25 | public void ConfigureServices(IServiceCollection services) 26 | { 27 | services.AddControllersWithViews(); 28 | services.AddSingleton(); 29 | } 30 | 31 | // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 32 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 33 | { 34 | if (env.IsDevelopment()) 35 | { 36 | app.UseDeveloperExceptionPage(); 37 | } 38 | else 39 | { 40 | app.UseExceptionHandler("/Home/Error"); 41 | // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. 42 | app.UseHsts(); 43 | } 44 | app.UseHttpsRedirection(); 45 | app.UseStaticFiles(); 46 | 47 | app.UseRouting(); 48 | 49 | app.UseAuthorization(); 50 | 51 | app.UseEndpoints(endpoints => 52 | { 53 | endpoints.MapControllerRoute( 54 | name: "default", 55 | pattern: "{controller=Home}/{action=Index}/{id?}"); 56 | }); 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/Home/BookView.cshtml: -------------------------------------------------------------------------------- 1 | @model CloudApiWebDemo.Models.Book 2 | 3 |
4 |

Book

5 |
6 |
7 |
8 | @Html.DisplayNameFor(model => model.Author) 9 |
10 |
11 | @Html.DisplayFor(model => model.Author) 12 |
13 |
14 | @Html.DisplayNameFor(model => model.Alias) 15 |
16 |
17 | @Html.DisplayFor(model => model.Alias) 18 |
19 |
20 | @Html.DisplayNameFor(model => model.ReleaseDate) 21 |
22 |
23 | @Html.DisplayFor(model => model.ReleaseDate.Year) 24 |
25 |
26 | @Html.DisplayNameFor(model => model.Price) 27 |
28 |
29 | $ @Html.DisplayFor(model => model.Price) 30 |
31 |
32 |
33 |
34 | Back to List 35 |
36 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/Home/Edit.cshtml: -------------------------------------------------------------------------------- 1 | @model CloudApiWebDemo.Models.Book 2 | 3 | @{ 4 | ViewData["Title"] = "Edit"; 5 | } 6 | 7 |

Edit

8 | 9 |

Movie

10 |
11 |
12 |
13 |
14 |
15 | 16 |
17 | 18 | 19 | 20 |
21 |
22 | 23 | 24 | 25 |
26 |
27 | 28 | 29 | 30 |
31 |
32 | 33 | 34 | 35 |
36 |
37 | 38 |
39 |
40 |
41 |
42 | 43 |
44 | Back to List 45 |
46 | 47 | @section Scripts { 48 | @{await Html.RenderPartialAsync("_ValidationScriptsPartial");} 49 | } -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |
6 |

Welcome

7 |

Checkout our books recommendation for today

8 | 14 |
15 | @{ 16 | 17 | using (ApplicationContext db = new ApplicationContext()) 18 | { 19 | foreach (var b in db.Books.ToList()) 20 | { 21 |
22 |

@b.Author - @b.Alias | Edit

23 | } 24 | } 25 | } 26 |
27 |
28 | 29 |
30 |
31 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/Home/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Privacy Policy"; 3 | } 4 |

@ViewData["Title"]

5 | 6 |

Use this page to detail your site's privacy policy.

7 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @model ErrorViewModel 2 | @{ 3 | ViewData["Title"] = "Error"; 4 | } 5 | 6 |

Error.

7 |

An error occurred while processing your request.

8 | 9 | @if (Model.ShowRequestId) 10 | { 11 |

12 | Request ID: @Model.RequestId 13 |

14 | } 15 | 16 |

Development Mode

17 |

18 | Swapping to Development environment will display more detailed information about the error that occurred. 19 |

20 |

21 | The Development environment shouldn't be enabled for deployed applications. 22 | It can result in displaying sensitive information from exceptions to end users. 23 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 24 | and restarting the app. 25 |

26 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | @ViewData["Title"] - CloudApiWebDemo 7 | 8 | 9 | 10 | 11 |
12 | 31 |
32 |
33 |
34 | @RenderBody() 35 |
36 |
37 | 38 |
39 |
40 | © 2020 - CloudApiWebDemo - Privacy 41 |
42 |
43 | 44 | 45 | 46 | @await RenderSectionAsync("Scripts", required: false) 47 | 48 | 49 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using CloudApiWebDemo 2 | @using CloudApiWebDemo.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | /* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | for details on configuring this project to bundle and minify static web assets. */ 3 | 4 | a.navbar-brand { 5 | white-space: normal; 6 | text-align: center; 7 | word-break: break-all; 8 | } 9 | 10 | /* Provide sufficient contrast against white background */ 11 | a { 12 | color: #0366d6; 13 | } 14 | 15 | .btn-primary { 16 | color: #fff; 17 | background-color: #1b6ec2; 18 | border-color: #1861ac; 19 | } 20 | 21 | .nav-pills .nav-link.active, .nav-pills .show > .nav-link { 22 | color: #fff; 23 | background-color: #1b6ec2; 24 | border-color: #1861ac; 25 | } 26 | 27 | /* Sticky footer styles 28 | -------------------------------------------------- */ 29 | html { 30 | font-size: 14px; 31 | } 32 | @media (min-width: 768px) { 33 | html { 34 | font-size: 16px; 35 | } 36 | } 37 | 38 | .border-top { 39 | border-top: 1px solid #e5e5e5; 40 | } 41 | .border-bottom { 42 | border-bottom: 1px solid #e5e5e5; 43 | } 44 | 45 | .box-shadow { 46 | box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); 47 | } 48 | 49 | button.accept-policy { 50 | font-size: 1rem; 51 | line-height: inherit; 52 | } 53 | 54 | /* Sticky footer styles 55 | -------------------------------------------------- */ 56 | html { 57 | position: relative; 58 | min-height: 100%; 59 | } 60 | 61 | body { 62 | /* Margin bottom by footer height */ 63 | margin-bottom: 60px; 64 | } 65 | .footer { 66 | position: absolute; 67 | bottom: 0; 68 | width: 100%; 69 | white-space: nowrap; 70 | line-height: 60px; /* Vertically center the text there */ 71 | } 72 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/favicon.ico -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/images/istockphoto-1156672386-612x612.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/images/istockphoto-1156672386-612x612.jpg -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/images/xls-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/images/xls-icon.png -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/lib/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2018 Twitter, Inc. 4 | Copyright (c) 2011-2018 The Bootstrap Authors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} 8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/lib/jquery-validation/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | Copyright Jörn Zaefferer 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/CloudApiWebDemo/wwwroot/lib/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors, https://js.foundation/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /API Demos/CloudApiWebDemo/README.txt: -------------------------------------------------------------------------------- 1 | Для того, чтобы это демо-приложение заработало, нужно настроить ngrok. 2 | 3 | 1. Скачиваем утилиту с официального сайта - https://dashboard.ngrok.com/get-started/setup 4 | 5 | 2. Вводим в ngrok команду, чтобы открыть 5001 порт для сети - ​​ngrok http https://localhost:5001 -host-header="localhost:5001" 6 | 7 | Теперь нужно настроить отчёт в папке Resources. 8 | 9 | 1. Закрываем комментарием строку uploadAndExport.Initialize() в конструкторе HomeController'a (32 ст.) 10 | 11 | 2. Запускаем демо-приложение 12 | 13 | 3. Пока приложение запущено редактируем строку подключения в отчёте через дизайнер (+ на источниках данных > 14 | ПКМ по Connection > редактировать > Редактировать...> 15 | замените адрес подключения к ngrok на тот, что указан в консольном интерфейсе ngrok) 16 | 17 | 4. Если всё прошло успешно, сохраняем отчёт и закрываем приложение 18 | 19 | 5. Убираем комментарии с раннее закрытой строки и запускаем приложение -------------------------------------------------------------------------------- /API Demos/FastReport.Cloud.Demos.Webhook/Controllers/CloudReceiverController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Http; 2 | using Microsoft.AspNetCore.Mvc; 3 | using Microsoft.Extensions.Logging; 4 | using System; 5 | using System.Collections.Generic; 6 | using System.IO; 7 | using System.Linq; 8 | using System.Threading.Tasks; 9 | 10 | namespace FastReport.Cloud.Demos.Webhook.Controllers 11 | { 12 | [ApiController] 13 | [Route("[controller]")] 14 | public class CloudReceiverController : ControllerBase 15 | { 16 | 17 | private readonly ILogger _logger; 18 | 19 | public CloudReceiverController(ILogger logger) 20 | { 21 | _logger = logger; 22 | } 23 | 24 | [HttpPost] 25 | public ActionResult> Receiver(IFormFileCollection files) 26 | { 27 | List fileLengths = new List(); 28 | foreach (var img in files) 29 | { 30 | using (MemoryStream ms = new MemoryStream()) 31 | { 32 | img.OpenReadStream().CopyTo(ms); 33 | fileLengths.Add(ms.ToArray().Length); 34 | } 35 | } 36 | return Ok(fileLengths); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /API Demos/FastReport.Cloud.Demos.Webhook/FastReport.Cloud.Demos.Webhook.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net5.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /API Demos/FastReport.Cloud.Demos.Webhook/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Hosting; 2 | using Microsoft.Extensions.Configuration; 3 | using Microsoft.Extensions.Hosting; 4 | using Microsoft.Extensions.Logging; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Threading.Tasks; 9 | 10 | namespace FastReport.Cloud.Demos.Webhook 11 | { 12 | public class Program 13 | { 14 | public static void Main(string[] args) 15 | { 16 | CreateHostBuilder(args).Build().Run(); 17 | } 18 | 19 | public static IHostBuilder CreateHostBuilder(string[] args) => 20 | Host.CreateDefaultBuilder(args) 21 | .ConfigureWebHostDefaults(webBuilder => 22 | { 23 | webBuilder.UseStartup(); 24 | }); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /API Demos/FastReport.Cloud.Demos.Webhook/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/launchsettings.json", 3 | "iisSettings": { 4 | "windowsAuthentication": false, 5 | "anonymousAuthentication": true, 6 | "iisExpress": { 7 | "applicationUrl": "http://localhost:33192", 8 | "sslPort": 0 9 | } 10 | }, 11 | "profiles": { 12 | "IIS Express": { 13 | "commandName": "IISExpress", 14 | "launchBrowser": true, 15 | "launchUrl": "swagger", 16 | "environmentVariables": { 17 | "ASPNETCORE_ENVIRONMENT": "Development" 18 | } 19 | }, 20 | "FastReport.Cloud.Demos.Webhook": { 21 | "commandName": "Project", 22 | "dotnetRunMessages": "true", 23 | "launchBrowser": true, 24 | "launchUrl": "swagger", 25 | "applicationUrl": "http://localhost:5949", 26 | "environmentVariables": { 27 | "ASPNETCORE_ENVIRONMENT": "Development" 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /API Demos/FastReport.Cloud.Demos.Webhook/Startup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using Microsoft.AspNetCore.Hosting; 3 | using Microsoft.AspNetCore.Mvc; 4 | using Microsoft.Extensions.Configuration; 5 | using Microsoft.Extensions.DependencyInjection; 6 | using Microsoft.Extensions.Hosting; 7 | using Microsoft.Extensions.Logging; 8 | using Microsoft.OpenApi.Models; 9 | using System; 10 | using System.Collections.Generic; 11 | using System.Linq; 12 | using System.Threading.Tasks; 13 | 14 | namespace FastReport.Cloud.Demos.Webhook 15 | { 16 | public class Startup 17 | { 18 | public Startup(IConfiguration configuration) 19 | { 20 | Configuration = configuration; 21 | } 22 | 23 | public IConfiguration Configuration { get; } 24 | 25 | // This method gets called by the runtime. Use this method to add services to the container. 26 | public void ConfigureServices(IServiceCollection services) 27 | { 28 | 29 | services.AddControllers(); 30 | services.AddSwaggerGen(c => 31 | { 32 | c.SwaggerDoc("v1", new OpenApiInfo { Title = "FastReport.Cloud.Demos.Webhook", Version = "v1" }); 33 | }); 34 | } 35 | 36 | // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 37 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 38 | { 39 | if (env.IsDevelopment()) 40 | { 41 | app.UseDeveloperExceptionPage(); 42 | app.UseSwagger(); 43 | app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "FastReport.Cloud.Demos.Webhook v1")); 44 | } 45 | 46 | app.UseRouting(); 47 | 48 | app.UseAuthorization(); 49 | 50 | app.UseEndpoints(endpoints => 51 | { 52 | endpoints.MapControllers(); 53 | }); 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /API Demos/FastReport.Cloud.Demos.Webhook/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /API Demos/FastReport.Cloud.Demos.Webhook/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/README.md: -------------------------------------------------------------------------------- 1 | # # Cloud Demo Angular 2 | 3 | This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.1.2. 4 | 5 | Use `npm install` to install all project dependencies. 6 | Use `ng serve --open` to run the application. 7 | 8 | ## The application contains the following variables: 9 | 10 | - host - URL address of your service ("https://fastreport.cloud" by default). 11 | - subId - Subscription ID. 12 | - apiKey - API key used for authentication and authorization. 13 | - templateId - Template identifier. 14 | - exportId - Identifier of the exported template. 15 | - templateFolder - Identifier of the folder where the template will be uploaded. 16 | - exportFolder - Identifier of the folder where the exported template will be saved. 17 | - parameterKey - Key of the report parameter passed during the build. 18 | - parameterValue - Value of the report parameter passed during the build. -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/angular.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/@angular/cli/lib/config/schema.json", 3 | "version": 1, 4 | "newProjectRoot": "projects", 5 | "projects": { 6 | "cloud-demo-angular": { 7 | "projectType": "application", 8 | "schematics": {}, 9 | "root": "", 10 | "sourceRoot": "src", 11 | "prefix": "app", 12 | "architect": { 13 | "build": { 14 | "builder": "@angular-devkit/build-angular:application", 15 | "options": { 16 | "outputPath": "dist/cloud-demo-angular", 17 | "index": "src/index.html", 18 | "browser": "src/main.ts", 19 | "polyfills": [ 20 | "zone.js" 21 | ], 22 | "tsConfig": "tsconfig.app.json", 23 | "assets": [ 24 | { 25 | "glob": "Template.frx", 26 | "input": "src/assets", 27 | "output": "/assets/" 28 | } 29 | ], 30 | "styles": [ 31 | "src/styles.css" 32 | ], 33 | "scripts": [], 34 | "server": "src/main.server.ts", 35 | "prerender": true, 36 | "ssr": { 37 | "entry": "server.ts" 38 | } 39 | }, 40 | "configurations": { 41 | "production": { 42 | "budgets": [ 43 | { 44 | "type": "initial", 45 | "maximumWarning": "500kB", 46 | "maximumError": "1MB" 47 | }, 48 | { 49 | "type": "anyComponentStyle", 50 | "maximumWarning": "2kB", 51 | "maximumError": "4kB" 52 | } 53 | ], 54 | "outputHashing": "all" 55 | }, 56 | "development": { 57 | "optimization": false, 58 | "extractLicenses": false, 59 | "sourceMap": true 60 | } 61 | }, 62 | "defaultConfiguration": "production" 63 | }, 64 | "serve": { 65 | "builder": "@angular-devkit/build-angular:dev-server", 66 | "configurations": { 67 | "production": { 68 | "buildTarget": "cloud-demo-angular:build:production" 69 | }, 70 | "development": { 71 | "buildTarget": "cloud-demo-angular:build:development" 72 | } 73 | }, 74 | "defaultConfiguration": "development" 75 | }, 76 | "extract-i18n": { 77 | "builder": "@angular-devkit/build-angular:extract-i18n" 78 | }, 79 | "test": { 80 | "builder": "@angular-devkit/build-angular:karma", 81 | "options": { 82 | "polyfills": [ 83 | "zone.js", 84 | "zone.js/testing" 85 | ], 86 | "tsConfig": "tsconfig.spec.json", 87 | "assets": [ 88 | { 89 | "glob": "**/*", 90 | "input": "public" 91 | } 92 | ], 93 | "styles": [ 94 | "src/styles.css" 95 | ], 96 | "scripts": [] 97 | } 98 | } 99 | } 100 | } 101 | } 102 | } -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cloud-demo-angular", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "ng": "ng", 6 | "start": "ng serve", 7 | "build": "ng build", 8 | "watch": "ng build --watch --configuration development", 9 | "test": "ng test", 10 | "serve:ssr:cloud-demo-angular": "node dist/cloud-demo-angular/server/server.mjs" 11 | }, 12 | "private": true, 13 | "dependencies": { 14 | "@angular/animations": "^18.1.0", 15 | "@angular/common": "^18.1.0", 16 | "@angular/compiler": "^18.1.0", 17 | "@angular/core": "^18.1.0", 18 | "@angular/forms": "^18.1.0", 19 | "@angular/platform-browser": "^18.1.0", 20 | "@angular/platform-browser-dynamic": "^18.1.0", 21 | "@angular/platform-server": "^18.1.0", 22 | "@angular/router": "^18.1.0", 23 | "@angular/ssr": "^18.1.2", 24 | "express": "^4.18.2", 25 | "rxjs": "~7.8.0", 26 | "tslib": "^2.3.0", 27 | "zone.js": "~0.14.3" 28 | }, 29 | "devDependencies": { 30 | "@angular-devkit/build-angular": "^18.1.2", 31 | "@angular/cli": "^18.1.2", 32 | "@angular/compiler-cli": "^18.1.0", 33 | "@types/express": "^4.17.17", 34 | "@types/jasmine": "~5.1.0", 35 | "@types/node": "^18.18.0", 36 | "jasmine-core": "~5.1.0", 37 | "karma": "~6.4.0", 38 | "karma-chrome-launcher": "~3.2.0", 39 | "karma-coverage": "~2.2.0", 40 | "karma-jasmine": "~5.1.0", 41 | "karma-jasmine-html-reporter": "~2.1.0", 42 | "typescript": "~5.5.2" 43 | } 44 | } -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/proxy.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "/assets": { 3 | "target": "http://localhost:4200", 4 | "secure": false 5 | } 6 | } -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Angular Demos/fastreport-cloud-angular/public/favicon.ico -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/server.ts: -------------------------------------------------------------------------------- 1 | import { APP_BASE_HREF } from '@angular/common'; 2 | import { CommonEngine } from '@angular/ssr'; 3 | import express from 'express'; 4 | import { fileURLToPath } from 'node:url'; 5 | import { dirname, join, resolve } from 'node:path'; 6 | import bootstrap from './src/main.server'; 7 | 8 | // The Express app is exported so that it can be used by serverless Functions. 9 | export function app(): express.Express { 10 | const server = express(); 11 | const serverDistFolder = dirname(fileURLToPath(import.meta.url)); 12 | const browserDistFolder = resolve(serverDistFolder, '../browser'); 13 | const indexHtml = join(serverDistFolder, 'index.server.html'); 14 | 15 | const commonEngine = new CommonEngine(); 16 | 17 | server.set('view engine', 'html'); 18 | server.set('views', browserDistFolder); 19 | 20 | // Example Express Rest API endpoints 21 | // server.get('/api/**', (req, res) => { }); 22 | // Serve static files from /browser 23 | server.get('**', express.static(browserDistFolder, { 24 | maxAge: '1y', 25 | index: 'index.html', 26 | })); 27 | 28 | // All regular routes use the Angular engine 29 | server.get('**', (req, res, next) => { 30 | const { protocol, originalUrl, baseUrl, headers } = req; 31 | 32 | commonEngine 33 | .render({ 34 | bootstrap, 35 | documentFilePath: indexHtml, 36 | url: `${protocol}://${headers.host}${originalUrl}`, 37 | publicPath: browserDistFolder, 38 | providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }], 39 | }) 40 | .then((html) => res.send(html)) 41 | .catch((err) => next(err)); 42 | }); 43 | 44 | return server; 45 | } 46 | 47 | function run(): void { 48 | const port = process.env['PORT'] || 4000; 49 | 50 | // Start up the Node server 51 | const server = app(); 52 | server.listen(port, () => { 53 | console.log(`Node Express server listening on http://localhost:${port}`); 54 | }); 55 | } 56 | 57 | run(); 58 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/app/app.component.css: -------------------------------------------------------------------------------- 1 | .main { 2 | display: flex; 3 | justify-content: center; 4 | } 5 | 6 | .content { 7 | width: 100%; 8 | max-width: 600px; 9 | margin: 0 auto; 10 | height: 100vh; 11 | text-align: center; 12 | background-color: #F8F9FA; 13 | } 14 | 15 | h1 { 16 | font-size: 2.125rem; 17 | font-weight: 500; 18 | padding: 10px; 19 | font-family: "Roboto", -apple-system, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 20 | } 21 | 22 | p { 23 | font-size: 1rem; 24 | font-family: "Roboto", -apple-system, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 25 | } 26 | 27 | input { 28 | width: 300px; 29 | border-radius: 0.25rem !important; 30 | height: 28px; 31 | padding: 0.375rem 0.75rem; 32 | font-size: 12px; 33 | line-height: 1.5; 34 | color: #495057; 35 | background-color: #FFFFFF; 36 | background-clip: padding-box; 37 | border: 1px solid #ced4da; 38 | border-radius: 0; 39 | } 40 | 41 | button { 42 | display: block; 43 | margin: 10px auto; 44 | width: 326px; 45 | border-radius: 0.25rem !important; 46 | height: 40px; 47 | padding: 0.375rem 0.75rem; 48 | font-size: 12px; 49 | line-height: 1.5; 50 | background-color: #1E7BB9; 51 | border: 0px solid #ced4da; 52 | color: #FFFFFF; 53 | } 54 | 55 | button:active { 56 | background-color: #196598; 57 | } -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/app/app.component.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |

FastReport Cloud Demo

4 | 5 |

Change subscription

6 |

7 | 8 |

Change API-key

9 |

10 | 11 | 12 | 13 |

Change parameter:

14 |

15 |

16 | 17 | 18 | 19 |
20 |
-------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/app/app.component.spec.ts: -------------------------------------------------------------------------------- 1 | import { TestBed } from '@angular/core/testing'; 2 | import { AppComponent } from './app.component'; 3 | 4 | describe('AppComponent', () => { 5 | beforeEach(async () => { 6 | await TestBed.configureTestingModule({ 7 | imports: [AppComponent], 8 | }).compileComponents(); 9 | }); 10 | 11 | it('should create the app', () => { 12 | const fixture = TestBed.createComponent(AppComponent); 13 | const app = fixture.componentInstance; 14 | expect(app).toBeTruthy(); 15 | }); 16 | 17 | it(`should have the 'cloud-demo-angular' title`, () => { 18 | const fixture = TestBed.createComponent(AppComponent); 19 | const app = fixture.componentInstance; 20 | expect(app.title).toEqual('cloud-demo-angular'); 21 | }); 22 | 23 | it('should render title', () => { 24 | const fixture = TestBed.createComponent(AppComponent); 25 | fixture.detectChanges(); 26 | const compiled = fixture.nativeElement as HTMLElement; 27 | expect(compiled.querySelector('h1')?.textContent).toContain('Hello, cloud-demo-angular'); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/app/app.config.server.ts: -------------------------------------------------------------------------------- 1 | import { mergeApplicationConfig, ApplicationConfig } from '@angular/core'; 2 | import { provideServerRendering } from '@angular/platform-server'; 3 | import { appConfig } from './app.config'; 4 | 5 | const serverConfig: ApplicationConfig = { 6 | providers: [ 7 | provideServerRendering() 8 | ] 9 | }; 10 | 11 | export const config = mergeApplicationConfig(appConfig, serverConfig); 12 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/app/app.config.ts: -------------------------------------------------------------------------------- 1 | import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; 2 | import { provideClientHydration } from '@angular/platform-browser'; 3 | 4 | export const appConfig: ApplicationConfig = { 5 | providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideClientHydration()] 6 | }; 7 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/assets/Template.frx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Angular Cloud Demo 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/main.server.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser'; 2 | import { AppComponent } from './app/app.component'; 3 | import { config } from './app/app.config.server'; 4 | 5 | const bootstrap = () => bootstrapApplication(AppComponent, config); 6 | 7 | export default bootstrap; 8 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/main.ts: -------------------------------------------------------------------------------- 1 | import { bootstrapApplication } from '@angular/platform-browser'; 2 | import { appConfig } from './app/app.config'; 3 | import { AppComponent } from './app/app.component'; 4 | 5 | bootstrapApplication(AppComponent, appConfig) 6 | .catch((err) => console.error(err)); 7 | 8 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/src/styles.css: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ 2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ 3 | { 4 | "extends": "./tsconfig.json", 5 | "compilerOptions": { 6 | "outDir": "./out-tsc/app", 7 | "types": [ 8 | "node" 9 | ] 10 | }, 11 | "files": [ 12 | "src/main.ts", 13 | "src/main.server.ts", 14 | "server.ts" 15 | ], 16 | "include": [ 17 | "src/**/*.d.ts" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/tsconfig.json: -------------------------------------------------------------------------------- 1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ 2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ 3 | { 4 | "compileOnSave": false, 5 | "compilerOptions": { 6 | "outDir": "./dist/out-tsc", 7 | "strict": true, 8 | "noImplicitOverride": true, 9 | "noPropertyAccessFromIndexSignature": true, 10 | "noImplicitReturns": true, 11 | "noFallthroughCasesInSwitch": true, 12 | "skipLibCheck": true, 13 | "esModuleInterop": true, 14 | "sourceMap": true, 15 | "declaration": false, 16 | "experimentalDecorators": true, 17 | "moduleResolution": "bundler", 18 | "importHelpers": true, 19 | "target": "ES2022", 20 | "module": "ES2022", 21 | "lib": [ 22 | "ES2022", 23 | "dom" 24 | ] 25 | }, 26 | "angularCompilerOptions": { 27 | "enableI18nLegacyMessageIdFormat": false, 28 | "strictInjectionParameters": true, 29 | "strictInputAccessModifiers": true, 30 | "strictTemplates": true 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Angular Demos/fastreport-cloud-angular/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | /* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */ 2 | /* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */ 3 | { 4 | "extends": "./tsconfig.json", 5 | "compilerOptions": { 6 | "outDir": "./out-tsc/spec", 7 | "types": [ 8 | "jasmine" 9 | ] 10 | }, 11 | "include": [ 12 | "src/**/*.spec.ts", 13 | "src/**/*.d.ts" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKDemo/CSharpSDKDemo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 17 4 | VisualStudioVersion = 17.9.34723.18 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharpSDKDemo", "CSharpSDKDemo\CSharpSDKDemo.csproj", "{588A38D8-9FA2-4DF2-83EE-8FA01753B362}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {588A38D8-9FA2-4DF2-83EE-8FA01753B362}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {588A38D8-9FA2-4DF2-83EE-8FA01753B362}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {588A38D8-9FA2-4DF2-83EE-8FA01753B362}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {588A38D8-9FA2-4DF2-83EE-8FA01753B362}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {D15C4212-F5D2-432C-8132-F457C1F499A0} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKDemo/CSharpSDKDemo/CSharpSDKDemo.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net8.0 6 | enable 7 | enable 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKDemo/CSharpSDKDemo/Program.cs: -------------------------------------------------------------------------------- 1 | using FastReport.Cloud; 2 | using FastReport.Cloud.Client; 3 | class Program 4 | { 5 | private const string ApiKey = "**YOUR APIKEY HERE**"; 6 | 7 | static async Task Main() 8 | { 9 | var httpClient = new HttpClient(); 10 | httpClient.BaseAddress = new Uri("https://fastreport.cloud"); 11 | httpClient.DefaultRequestHeaders.Authorization = new FastReportCloudApiKeyHeader(ApiKey); 12 | var subscriptionsClient = new SubscriptionsClient(httpClient); 13 | 14 | var templatesClient = new TemplatesClient(httpClient); 15 | var exportsClient = new ExportsClient(httpClient); 16 | var downloadClient = new DownloadClient(httpClient); 17 | 18 | var subscription = (await subscriptionsClient.GetSubscriptionsAsync(0, 10)).Subscriptions.First(); 19 | 20 | var templateRootFolder = subscription.TemplatesFolder.FolderId; 21 | var exportRootFolder = subscription.ExportsFolder.FolderId; 22 | 23 | // uploading template 24 | TemplateVM uploadedTemplate; 25 | using (FileStream fileStream = new FileStream("../../../../Box.frx", FileMode.Open, FileAccess.Read)) 26 | { 27 | FileParameter fileContent = new FileParameter(fileStream); 28 | uploadedTemplate = await templatesClient.UploadFileV2Async(templateRootFolder, null, null, fileContent); 29 | } 30 | Console.WriteLine("Successful template upload!"); 31 | 32 | // exporting template 33 | ExportTemplateVM export = new ExportTemplateVM() 34 | { 35 | FileName = "Box", 36 | FolderId = exportRootFolder, 37 | Format = ExportFormat.Pdf 38 | }; 39 | 40 | ExportVM exportedFile = new ExportVM(); 41 | try 42 | { 43 | exportedFile = await templatesClient.ExportAsync(uploadedTemplate.Id, export); 44 | Console.WriteLine("Successful template export!"); 45 | } 46 | catch (Exception ex) 47 | { 48 | Console.WriteLine(ex.ToString()); 49 | } 50 | 51 | int attempts = 3; 52 | while (exportedFile.Status != FileStatus.Success && attempts >= 0) 53 | { 54 | await Task.Delay(1000); 55 | exportedFile = exportsClient.GetFile(exportedFile.Id); 56 | attempts--; 57 | } 58 | 59 | // downloading file 60 | using (var file = await downloadClient.GetExportAsync(exportedFile.Id)) 61 | { 62 | using (var pdf = File.Open("../../../../box.pdf", FileMode.Create)) 63 | { 64 | file.Stream.CopyTo(pdf); 65 | } 66 | } 67 | Console.WriteLine("Successful pdf download!"); 68 | 69 | } 70 | } -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/CSharpSDKReportParameters.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net5.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | True 15 | True 16 | Resources.resx 17 | 18 | 19 | 20 | 21 | 22 | ResXFileCodeGenerator 23 | Resources.Designer.cs 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/CSharpSDKReportParameters.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30717.126 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpSDKReportParameters", "CSharpSDKReportParameters.csproj", "{1E42A77C-0786-4C2D-99B1-ECBF7B815F11}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {1E42A77C-0786-4C2D-99B1-ECBF7B815F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {1E42A77C-0786-4C2D-99B1-ECBF7B815F11}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {1E42A77C-0786-4C2D-99B1-ECBF7B815F11}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {1E42A77C-0786-4C2D-99B1-ECBF7B815F11}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {CF86311F-871C-43E4-A860-913DC392D9F2} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CSharpSDKReportParameters.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Models/PrepareReportModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace CSharpSDKReportParameters.Models 7 | { 8 | public class PrepareReportModel 9 | { 10 | public string ReportName { get; set; } 11 | public string BarcodeNums { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Program.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Hosting; 2 | using Microsoft.Extensions.Configuration; 3 | using Microsoft.Extensions.Hosting; 4 | using Microsoft.Extensions.Logging; 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Threading.Tasks; 9 | 10 | namespace CSharpSDKReportParameters 11 | { 12 | public class Program 13 | { 14 | public static void Main(string[] args) 15 | { 16 | CreateHostBuilder(args).Build().Run(); 17 | } 18 | 19 | public static IHostBuilder CreateHostBuilder(string[] args) => 20 | Host.CreateDefaultBuilder(args) 21 | .ConfigureWebHostDefaults(webBuilder => 22 | { 23 | webBuilder.UseStartup(); 24 | }); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Этот код создан программой. 4 | // Исполняемая версия:4.0.30319.42000 5 | // 6 | // Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае 7 | // повторной генерации кода. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace CSharpSDKReportParameters.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. 17 | /// 18 | // Этот класс создан автоматически классом StronglyTypedResourceBuilder 19 | // с помощью такого средства, как ResGen или Visual Studio. 20 | // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen 21 | // с параметром /str или перестройте свой проект VS. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CSharpSDKReportParameters.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Перезаписывает свойство CurrentUICulture текущего потока для всех 51 | /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Ищет локализованную строку, похожую на 77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxSZXBvcnQgU2NyaXB0TGFuZ3VhZ2U9IkNTaGFycCIgUmVwb3J0SW5mby5DcmVhdGVkPSIxMi8wNy8yMDIwIDE1OjI0OjUwIiBSZXBvcnRJbmZvLk1vZGlmaWVkPSIxMi8wNy8yMDIwIDE1OjQ0OjQ4IiBSZXBvcnRJbmZvLkNyZWF0b3JWZXJzaW9uPSIxLjAuMC4wIj4NCiAgPFNjcmlwdFRleHQ+dXNpbmcgU3lzdGVtOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zOw0KdXNpbmcgU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWM7DQp1c2luZyBTeXN0ZW0uQ29tcG9uZW50TW9kZWw7DQp1c2luZyBTeXN0ZW0uV2luZG93cy5Gb3JtczsNCnVzaW5nIFN5c3RlbS5EcmF3aW5nOw0KdXNpbmcgU3lzdGVtLkRh [остаток строки не уместился]";. 65 | /// 66 | internal static string report { 67 | get { 68 | return ResourceManager.GetString("report", resourceCulture); 69 | } 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:61408", 7 | "sslPort": 44334 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "CSharpSDKReportParameters": { 19 | "commandName": "Project", 20 | "dotnetRunMessages": "true", 21 | "launchBrowser": true, 22 | "applicationUrl": "https://localhost:5001;http://localhost:5000", 23 | "environmentVariables": { 24 | "ASPNETCORE_ENVIRONMENT": "Development" 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Startup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using Microsoft.AspNetCore.Hosting; 3 | using Microsoft.AspNetCore.HttpsPolicy; 4 | using Microsoft.Extensions.Configuration; 5 | using Microsoft.Extensions.DependencyInjection; 6 | using Microsoft.Extensions.Hosting; 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Threading.Tasks; 11 | 12 | namespace CSharpSDKReportParameters 13 | { 14 | public class Startup 15 | { 16 | public Startup(IConfiguration configuration) 17 | { 18 | Configuration = configuration; 19 | } 20 | 21 | public IConfiguration Configuration { get; } 22 | 23 | // This method gets called by the runtime. Use this method to add services to the container. 24 | public void ConfigureServices(IServiceCollection services) 25 | { 26 | services.AddControllersWithViews(); 27 | services.AddFastReportCloud(options => 28 | { 29 | options.ApiKey = "PUT YOUR APIKEY HERE"; 30 | }); 31 | } 32 | 33 | // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 34 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 35 | { 36 | if (env.IsDevelopment()) 37 | { 38 | app.UseDeveloperExceptionPage(); 39 | } 40 | else 41 | { 42 | app.UseExceptionHandler("/Home/Error"); 43 | // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. 44 | app.UseHsts(); 45 | } 46 | app.UseHttpsRedirection(); 47 | app.UseStaticFiles(); 48 | 49 | app.UseRouting(); 50 | 51 | app.UseAuthorization(); 52 | 53 | app.UseEndpoints(endpoints => 54 | { 55 | endpoints.MapControllerRoute( 56 | name: "default", 57 | pattern: "{controller=Home}/{action=Index}/{id?}"); 58 | }); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | PrepareReportModel model = new(); 4 | } 5 | 6 |
7 |

Barcode Generator

8 | @using (Html.BeginForm("PrepareReport", "Home")) 9 | { 10 | Report Name 11 | 12 |
13 | Barcode Numbers 14 | 15 |
16 |
17 | 18 | } 19 |
20 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Views/Home/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Privacy Policy"; 3 | } 4 |

@ViewData["Title"]

5 | 6 |

Use this page to detail your site's privacy policy.

7 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @model ErrorViewModel 2 | @{ 3 | ViewData["Title"] = "Error"; 4 | } 5 | 6 |

Error.

7 |

An error occurred while processing your request.

8 | 9 | @if (Model.ShowRequestId) 10 | { 11 |

12 | Request ID: @Model.RequestId 13 |

14 | } 15 | 16 |

Development Mode

17 |

18 | Swapping to Development environment will display more detailed information about the error that occurred. 19 |

20 |

21 | The Development environment shouldn't be enabled for deployed applications. 22 | It can result in displaying sensitive information from exceptions to end users. 23 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 24 | and restarting the app. 25 |

26 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | @ViewData["Title"] - CSharpSDKReportParameters 7 | 8 | 9 | 10 | 11 |
12 | 31 |
32 |
33 |
34 | @RenderBody() 35 |
36 |
37 | 38 |
39 |
40 | © 2020 - CSharpSDKReportParameters - Privacy 41 |
42 |
43 | 44 | 45 | 46 | @await RenderSectionAsync("Scripts", required: false) 47 | 48 | 49 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using CSharpSDKReportParameters 2 | @using CSharpSDKReportParameters.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | /* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | for details on configuring this project to bundle and minify static web assets. */ 3 | 4 | a.navbar-brand { 5 | white-space: normal; 6 | text-align: center; 7 | word-break: break-all; 8 | } 9 | 10 | /* Provide sufficient contrast against white background */ 11 | a { 12 | color: #0366d6; 13 | } 14 | 15 | .btn-primary { 16 | color: #fff; 17 | background-color: #1b6ec2; 18 | border-color: #1861ac; 19 | } 20 | 21 | .nav-pills .nav-link.active, .nav-pills .show > .nav-link { 22 | color: #fff; 23 | background-color: #1b6ec2; 24 | border-color: #1861ac; 25 | } 26 | 27 | /* Sticky footer styles 28 | -------------------------------------------------- */ 29 | html { 30 | font-size: 14px; 31 | } 32 | @media (min-width: 768px) { 33 | html { 34 | font-size: 16px; 35 | } 36 | } 37 | 38 | .border-top { 39 | border-top: 1px solid #e5e5e5; 40 | } 41 | .border-bottom { 42 | border-bottom: 1px solid #e5e5e5; 43 | } 44 | 45 | .box-shadow { 46 | box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); 47 | } 48 | 49 | button.accept-policy { 50 | font-size: 1rem; 51 | line-height: inherit; 52 | } 53 | 54 | /* Sticky footer styles 55 | -------------------------------------------------- */ 56 | html { 57 | position: relative; 58 | min-height: 100%; 59 | } 60 | 61 | body { 62 | /* Margin bottom by footer height */ 63 | margin-bottom: 60px; 64 | } 65 | .footer { 66 | position: absolute; 67 | bottom: 0; 68 | width: 100%; 69 | white-space: nowrap; 70 | line-height: 60px; /* Vertically center the text there */ 71 | } 72 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/CSharp Demos/CSharpSDKReportParameters/wwwroot/favicon.ico -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/lib/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2018 Twitter, Inc. 4 | Copyright (c) 2011-2018 The Bootstrap Authors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} 8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/lib/jquery-validation/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | Copyright Jörn Zaefferer 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKReportParameters/wwwroot/lib/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors, https://js.foundation/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKTasks/CSharpSDKTasks.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31729.503 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharpSDKTasks", "CSharpSDKTasks\CSharpSDKTasks.csproj", "{668DA067-9DFA-410E-B41E-0F72994D33E9}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {668DA067-9DFA-410E-B41E-0F72994D33E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {668DA067-9DFA-410E-B41E-0F72994D33E9}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {668DA067-9DFA-410E-B41E-0F72994D33E9}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {668DA067-9DFA-410E-B41E-0F72994D33E9}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {402AE6BB-A57E-4CEF-9003-E13FFFE57250} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKTasks/CSharpSDKTasks/CSharpSDKTasks.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | net8.0 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CSharpSDKWebDemo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30709.64 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CSharpSDKWebDemo", "CloudApiWebDemo\CSharpSDKWebDemo.csproj", "{93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {93D1D932-7FD7-4D47-9483-B5D6D5D8C7E4}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {F93144EB-949D-402C-A8BD-CED29C41638B} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/ApplicationContext.cs: -------------------------------------------------------------------------------- 1 | using CloudApiWebDemo.Models; 2 | using Microsoft.EntityFrameworkCore; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.Threading.Tasks; 7 | 8 | namespace CloudApiWebDemo 9 | { 10 | public class ApplicationContext : DbContext 11 | { 12 | public DbSet Songs { get; set; } 13 | 14 | public ApplicationContext() 15 | { 16 | Database.EnsureCreated(); 17 | } 18 | 19 | protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 20 | { 21 | optionsBuilder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=demo_song;Trusted_Connection=True;"); 22 | } 23 | protected override void OnModelCreating(ModelBuilder modelBuilder) 24 | { 25 | modelBuilder.Entity().HasData( 26 | new Song[] 27 | { 28 | new Song() { Id = 1, Author = "Iron Maiden", Alias = "The Number of the Beast", ReleaseDate = new DateTime(1997, 11, 20), Price = 119 }, 29 | new Song() { Id = 2, Author = "Epica", Alias = "Kingdom of Heaven - A New Age Dawns, Pt. 5", ReleaseDate = new DateTime(2009, 11, 21), Price = 119 }, 30 | new Song() { Id = 3, Author = "Korol i Shut", Alias = "Will Jump Off the Cliff", ReleaseDate = new DateTime(1999, 10, 28), Price = 149 }, 31 | new Song() { Id = 4, Author = "Aria", Alias = "Your New World", ReleaseDate = new DateTime(2020, 1, 1), Price = 149 } 32 | }); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/CSharpSDKWebDemo.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | net5.0 5 | false 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | all 15 | runtime; build; native; contentfiles; analyzers; buildtransitive 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Models/Book.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace CloudApiWebDemo.Models 7 | { 8 | public class Book 9 | { 10 | public int Id { get; set; } 11 | public string Author { get; set; } 12 | public string Alias { get; set; } 13 | public DateTime ReleaseDate { get; set; } 14 | public double Price { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Models/ErrorViewModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace CloudApiWebDemo.Models 4 | { 5 | public class ErrorViewModel 6 | { 7 | public string RequestId { get; set; } 8 | 9 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Models/Song.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | 6 | namespace CloudApiWebDemo.Models 7 | { 8 | public class Song 9 | { 10 | public int Id { get; set; } 11 | public string Author { get; set; } 12 | public string Alias { get; set; } 13 | public DateTime ReleaseDate { get; set; } 14 | public double Price { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Program.cs: -------------------------------------------------------------------------------- 1 | using CloudApiWebDemo.Models; 2 | using Microsoft.AspNetCore.Hosting; 3 | using Microsoft.EntityFrameworkCore; 4 | using Microsoft.Extensions.Configuration; 5 | using Microsoft.Extensions.Hosting; 6 | using Microsoft.Extensions.Logging; 7 | using Newtonsoft.Json; 8 | using System; 9 | using System.Collections.Generic; 10 | using System.IO; 11 | using System.Linq; 12 | using System.Net; 13 | using System.Net.Http; 14 | using System.Net.Http.Json; 15 | using System.Text; 16 | using System.Threading.Tasks; 17 | 18 | namespace CloudApiWebDemo 19 | { 20 | public class Program 21 | { 22 | public static void Main(string[] args) 23 | { 24 | // we are using entity framework to make data storage simple and effective 25 | using (ApplicationContext db = new()) 26 | { 27 | var songs = db.Songs.ToList(); 28 | var json = JsonConvert.SerializeObject(songs); 29 | using (StreamWriter w = new(Directory.GetCurrentDirectory() + @"/Resources/songs.json")) 30 | { 31 | w.WriteLine(json); 32 | } 33 | 34 | } 35 | 36 | CreateHostBuilder(args).Build().Run(); 37 | } 38 | 39 | public static IHostBuilder CreateHostBuilder(string[] args) => 40 | Host.CreateDefaultBuilder(args) 41 | .ConfigureWebHostDefaults(webBuilder => 42 | { 43 | webBuilder.UseStartup(); 44 | }); 45 | 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:58276", 7 | "sslPort": 44320 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development", 16 | "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" 17 | } 18 | }, 19 | "CloudApiWebDemo": { 20 | "commandName": "Project", 21 | "dotnetRunMessages": "true", 22 | "launchBrowser": true, 23 | "applicationUrl": "https://localhost:5001;http://localhost:5000", 24 | "environmentVariables": { 25 | "ASPNETCORE_ENVIRONMENT": "Development", 26 | "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Resources/PriceList.frx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Resources/books.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "Id": 1, 4 | "Author": "Marat Alaev", 5 | "Alias": "How to be a krol", 6 | "ReleaseDate": "2020-11-20T00:00:00", 7 | "Price": 4.2 8 | }, 9 | { 10 | "Id": 2, 11 | "Author": "Gleb Striukov", 12 | "Alias": "How to be a bigger krol", 13 | "ReleaseDate": "2020-11-21T00:00:00", 14 | "Price": 4.21 15 | }, 16 | { 17 | "Id": 3, 18 | "Author": "Sergey Susakov", 19 | "Alias": "How to survive in army", 20 | "ReleaseDate": "2020-10-28T00:00:00", 21 | "Price": 60.0 22 | }, 23 | { 24 | "Id": 4, 25 | "Author": "Lev Tolstoi", 26 | "Alias": "War and piece", 27 | "ReleaseDate": "1867-01-01T00:00:00", 28 | "Price": 3.0 29 | } 30 | ] 31 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Resources/songs.json: -------------------------------------------------------------------------------- 1 | [{"Id":1,"Author":"Iron Maiden","Alias":"The Number of the Beast","ReleaseDate":"1997-11-20T00:00:00","Price":119.0},{"Id":2,"Author":"Epica","Alias":"Kingdom of Heaven - A New Age Dawns, Pt. 5","ReleaseDate":"2009-11-21T00:00:00","Price":119.0},{"Id":3,"Author":"Korol i Shut","Alias":"Will Jump Off the Cliff","ReleaseDate":"1999-10-28T00:00:00","Price":149.0},{"Id":4,"Author":"Aria","Alias":"Your New World","ReleaseDate":"2020-01-01T00:00:00","Price":149.0}] 2 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Startup.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Builder; 2 | using Microsoft.AspNetCore.Hosting; 3 | using Microsoft.AspNetCore.HttpsPolicy; 4 | using Microsoft.Extensions.Configuration; 5 | using Microsoft.Extensions.DependencyInjection; 6 | using Microsoft.Extensions.Hosting; 7 | using System; 8 | using System.Collections.Generic; 9 | using System.Linq; 10 | using System.Threading.Tasks; 11 | 12 | namespace CloudApiWebDemo 13 | { 14 | public class Startup 15 | { 16 | public Startup(IConfiguration configuration) 17 | { 18 | Configuration = configuration; 19 | } 20 | 21 | public IConfiguration Configuration { get; } 22 | 23 | // This method gets called by the runtime. Use this method to add services to the container. 24 | public void ConfigureServices(IServiceCollection services) 25 | { 26 | services.AddControllersWithViews(); 27 | services.AddFastReportCloud(options => 28 | { 29 | options.ApiKey = "PUT YOUR API KEY HERE"; 30 | }); 31 | } 32 | 33 | // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 34 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 35 | { 36 | if (env.IsDevelopment()) 37 | { 38 | app.UseDeveloperExceptionPage(); 39 | } 40 | else 41 | { 42 | app.UseExceptionHandler("/Home/Error"); 43 | // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. 44 | app.UseHsts(); 45 | } 46 | app.UseHttpsRedirection(); 47 | app.UseStaticFiles(); 48 | 49 | app.UseRouting(); 50 | 51 | app.UseAuthorization(); 52 | 53 | app.UseEndpoints(endpoints => 54 | { 55 | endpoints.MapControllerRoute( 56 | name: "default", 57 | pattern: "{controller=Home}/{action=Index}/{id?}"); 58 | }); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/Home/Index.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Home Page"; 3 | } 4 | 5 |
6 |

FastReport's Radio

7 |

Checkout our songs recommendations for today

8 | 14 |
15 | @{ 16 | 17 | using (ApplicationContext db = new ApplicationContext()) 18 | { 19 | foreach (var b in db.Songs.ToList()) 20 | { 21 |
22 |

@b.Author - @b.Alias

23 | } 24 | } 25 | } 26 |
27 |
28 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/Home/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Privacy Policy"; 3 | } 4 |

@ViewData["Title"]

5 | 6 |

Use this page to detail your site's privacy policy.

7 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/Home/SongView.cshtml: -------------------------------------------------------------------------------- 1 | @model CloudApiWebDemo.Models.Song 2 | 3 |
4 |

Song

5 |
6 |
7 |
8 | @Html.DisplayNameFor(model => model.Author) 9 |
10 |
11 | @Html.DisplayFor(model => model.Author) 12 |
13 |
14 | @Html.DisplayNameFor(model => model.Alias) 15 |
16 |
17 | @Html.DisplayFor(model => model.Alias) 18 |
19 |
20 | @Html.DisplayNameFor(model => model.ReleaseDate) 21 |
22 |
23 | @Html.DisplayFor(model => model.ReleaseDate.Year) 24 |
25 |
26 | @Html.DisplayNameFor(model => model.Price) 27 |
28 |
29 | $@Html.DisplayFor(model => model.Price) 30 |
31 |
32 |
33 |
34 | Back to List 35 |
36 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @model ErrorViewModel 2 | @{ 3 | ViewData["Title"] = "Error"; 4 | } 5 | 6 |

Error.

7 |

An error occurred while processing your request.

8 | 9 | @if (Model.ShowRequestId) 10 | { 11 |

12 | Request ID: @Model.RequestId 13 |

14 | } 15 | 16 |

Development Mode

17 |

18 | Swapping to Development environment will display more detailed information about the error that occurred. 19 |

20 |

21 | The Development environment shouldn't be enabled for deployed applications. 22 | It can result in displaying sensitive information from exceptions to end users. 23 | For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development 24 | and restarting the app. 25 |

26 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | @ViewData["Title"] - CloudApiWebDemo 7 | 8 | 9 | 10 | 11 |
12 | 31 |
32 |
33 |
34 | @RenderBody() 35 |
36 |
37 | 38 |
39 |
40 | © 2020 - CloudApiWebDemo - Privacy 41 |
42 |
43 | 44 | 45 | 46 | @await RenderSectionAsync("Scripts", required: false) 47 | 48 | 49 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/Shared/_ValidationScriptsPartial.cshtml: -------------------------------------------------------------------------------- 1 |  2 | 3 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using CloudApiWebDemo 2 | @using CloudApiWebDemo.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/css/site.css: -------------------------------------------------------------------------------- 1 | /* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | for details on configuring this project to bundle and minify static web assets. */ 3 | 4 | a.navbar-brand { 5 | white-space: normal; 6 | text-align: center; 7 | word-break: break-all; 8 | } 9 | 10 | /* Provide sufficient contrast against white background */ 11 | a { 12 | color: #0366d6; 13 | } 14 | 15 | .btn-primary { 16 | color: #fff; 17 | background-color: #1b6ec2; 18 | border-color: #1861ac; 19 | } 20 | 21 | .nav-pills .nav-link.active, .nav-pills .show > .nav-link { 22 | color: #fff; 23 | background-color: #1b6ec2; 24 | border-color: #1861ac; 25 | } 26 | 27 | /* Sticky footer styles 28 | -------------------------------------------------- */ 29 | html { 30 | font-size: 14px; 31 | } 32 | @media (min-width: 768px) { 33 | html { 34 | font-size: 16px; 35 | } 36 | } 37 | 38 | .border-top { 39 | border-top: 1px solid #e5e5e5; 40 | } 41 | .border-bottom { 42 | border-bottom: 1px solid #e5e5e5; 43 | } 44 | 45 | .box-shadow { 46 | box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05); 47 | } 48 | 49 | button.accept-policy { 50 | font-size: 1rem; 51 | line-height: inherit; 52 | } 53 | 54 | /* Sticky footer styles 55 | -------------------------------------------------- */ 56 | html { 57 | position: relative; 58 | min-height: 100%; 59 | } 60 | 61 | body { 62 | /* Margin bottom by footer height */ 63 | margin-bottom: 60px; 64 | } 65 | .footer { 66 | position: absolute; 67 | bottom: 0; 68 | width: 100%; 69 | white-space: nowrap; 70 | line-height: 60px; /* Vertically center the text there */ 71 | } 72 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/favicon.ico -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/images/istockphoto-1156672386-612x612.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/images/istockphoto-1156672386-612x612.jpg -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/images/xls-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/images/xls-icon.png -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification 2 | // for details on configuring this project to bundle and minify static web assets. 3 | 4 | // Write your JavaScript code. 5 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/lib/bootstrap/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2011-2018 Twitter, Inc. 4 | Copyright (c) 2011-2018 The Bootstrap Authors 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/lib/bootstrap/dist/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.3.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} 8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/lib/jquery-validation-unobtrusive/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) .NET Foundation. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use 4 | these files except in compliance with the License. You may obtain a copy of the 5 | License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software distributed 10 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 11 | CONDITIONS OF ANY KIND, either express or implied. See the License for the 12 | specific language governing permissions and limitations under the License. 13 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/lib/jquery-validation/LICENSE.md: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | ===================== 3 | 4 | Copyright Jörn Zaefferer 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /CSharp Demos/CSharpSDKWebDemo/CloudApiWebDemo/wwwroot/lib/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors, https://js.foundation/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /Cpp Demos/pdf_export_demo/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | g++ frcloud_demo.cpp -I.. -I../model -I../api ../gen/libCppRestOpenAPIClient.a -lboost_system -lboost_filesystem -lcpprest -lcrypto -o frcloud 3 | -------------------------------------------------------------------------------- /Cpp Demos/pdf_export_demo/README.md: -------------------------------------------------------------------------------- 1 | # FastReport.Cloud C++ demo 2 | 3 | ## Configuration 4 | 5 | You should obtain apikey and write it to the source code as shown below. 6 | 7 | 8 | ``` 9 | int main(int argc, char *argv[]) 10 | { 11 | const char * api_key = "---- set API-KEY here -----"; 12 | ``` 13 | 14 | ## Building 15 | 16 | 1. Ensure that boost, cpprest, and crypto libraries are available on your system. 17 | 2. Run `make` 18 | 19 | ## Usage 20 | 21 | Run `frcloud report.frx` where report.frx is a report template. This template will be uploaded to server, prepared, exported to PDF, 22 | and downloaded to a current folder. 23 | Program exit code is 0 on success. Any other return value is error. 24 | -------------------------------------------------------------------------------- /Golang Demos/fastreport-cloud-pdf/README.md: -------------------------------------------------------------------------------- 1 | # Go example for FastReport Cloud SDK 2 | 3 | ## Overview 4 | 5 | This example shows how to generate a PDF file using the [FastReport Cloud](https://fastreport.cloud/en/) service. 6 | 7 | ## How to build an example 8 | 9 | ### Get the FastReport Cloud SDK 10 | 11 | Install the following dependencies: 12 | 13 | ```shell 14 | go get github.com/fastreports/gofrcloud 15 | ``` 16 | 17 | ### Change the API key and server URL 18 | 19 | To work with the service you need an API key. You can get it from the owners of the service, or generate it yourself in the control panel. 20 | 21 | Then you should change the `server_url` and `apiKey` constants in the source code of the example in the `main.go` file 22 | 23 | ## Compilation and execution 24 | 25 | Run the following commands in the console: 26 | 27 | ```shell 28 | go build 29 | go run main.go 30 | ``` 31 | 32 | You can replace the `report.frx` file with any template file and also change the save format in the source code. 33 | 34 | ## Documentation 35 | 36 | [FastReport Cloud Golang SDK documentation](https://github.com/FastReports/gofrcloud/blob/main/README.md) 37 | [REST API documentation](https://fastreport.cloud/en/docs/guides/rest_api) 38 | 39 | ## Support 40 | 41 | Contact us with any questions using [our website](https://www.fast-report.com/en/support/) or [GitHub issues](https://github.com/FastReports/FastReport-Cloud/issues). 42 | 43 | ## Useful links 44 | 45 | [FastReport Designer Community Edition](https://github.com/FastReports/FastReport/releases) 46 | 47 | [FastReport Cloud home site](https://fastreport.cloud) 48 | 49 | [FastReport Cloud SDK for Golang](https://github.com/FastReports/gofrcloud) 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Golang Demos/fastreport-cloud-pdf/go.mod: -------------------------------------------------------------------------------- 1 | module fastreport-cloud-pdf 2 | 3 | go 1.16 4 | 5 | require github.com/fastreports/gofrcloud v0.0.0-20210513082733-deecbf29007b // indirect 6 | -------------------------------------------------------------------------------- /Golang Demos/fastreport-cloud-pdf/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "io/ioutil" 6 | "time" 7 | 8 | "context" 9 | "encoding/base64" 10 | "os" 11 | 12 | fr "github.com/fastreports/gofrcloud" 13 | ) 14 | 15 | const server_url = "https://fastreport.cloud" 16 | const apiKey = "***PUT YOUR API KEY HERE***" 17 | 18 | const reportFileName = "report.frx" 19 | 20 | func check(err error) { 21 | if err != nil { 22 | panic(err) 23 | } 24 | } 25 | 26 | func main() { 27 | config := fr.NewConfiguration() 28 | // set-up the server 29 | config.Servers = fr.ServerConfigurations{ 30 | { 31 | URL: server_url, 32 | Description: "", 33 | }, 34 | } 35 | 36 | fmt.Fprintf(os.Stdout, "App is worikng with %s\n", server_url) 37 | 38 | client := fr.NewAPIClient(config) 39 | 40 | // set-up the API key 41 | auth := context.WithValue(context.Background(), fr.ContextBasicAuth, fr.BasicAuth{ 42 | UserName: "apikey", 43 | Password: apiKey, 44 | }) 45 | 46 | // get the root forlder of template storage 47 | templateRoot, r, err := client.TemplatesApi.TemplateFoldersGetRootFolder(auth).SubscriptionId("").Execute() 48 | if err != nil { 49 | fmt.Fprintf(os.Stdout, "Error when calling `TemplatesApi.TemplateFoldersGetRootFolder`: %v\n", err) 50 | fmt.Fprintf(os.Stdout, "Full HTTP response: %v\n", r) 51 | return 52 | } 53 | 54 | fmt.Println("Get the template root folder") 55 | 56 | // load report template from file 57 | reportFile, err := ioutil.ReadFile(reportFileName) 58 | check(err) 59 | 60 | // we need base64-encoded content 61 | report_content := base64.StdEncoding.EncodeToString(reportFile) 62 | 63 | // create a new template file in client 64 | templateFile := *fr.NewTemplateCreateVM() 65 | templateFile.SetName(reportFileName) 66 | templateFile.SetContent(report_content) // base64 string here 67 | 68 | // upload a template file in storage 69 | template, r, err := client.TemplatesApi.TemplatesUploadFile(auth, templateRoot.GetId()).FileVM(templateFile).Execute() 70 | if err != nil { 71 | fmt.Fprintf(os.Stdout, "Error when calling `TemplatesApi.TemplatesUploadFile`: %v\n", err) 72 | fmt.Fprintf(os.Stdout, "Full HTTP response: %v\n", r) 73 | return 74 | } 75 | 76 | fmt.Println("Upload the template file") 77 | 78 | // get the export root folder 79 | exportRoot, r, err := client.ExportsApi.ExportFoldersGetRootFolder(auth).SubscriptionId("").Execute() 80 | if err != nil { 81 | fmt.Fprintf(os.Stdout, "Error when calling `ExportsApi.ExportFoldersGetRootFolder`: %v\n", err) 82 | fmt.Fprintf(os.Stdout, "Full HTTP response: %v\n", r) 83 | return 84 | } 85 | fmt.Println("Get the export root folder") 86 | 87 | exportTask := *fr.NewExportTemplateTaskVM() 88 | 89 | // you can replace PDF to any supported format, for example: XLSX, DOCX, etc. 90 | exportTask.SetFileName("report.pdf") 91 | exportTask.SetFormat("pdf") 92 | exportTask.FolderId = exportRoot.Id 93 | 94 | export, r, err := client.TemplatesApi.TemplatesExport(auth, template.GetId()).ExportTask(exportTask).Execute() 95 | if err != nil { 96 | fmt.Fprintf(os.Stdout, "Error when calling `TemplatesApi.TemplatesExport`: %v\n", err) 97 | fmt.Fprintf(os.Stdout, "Full HTTP response: %v\n", r) 98 | return 99 | } 100 | 101 | fmt.Println("Start the export task") 102 | 103 | // wait for result 104 | i := 0 105 | for export.GetStatus() != "Success" && i < 100 { 106 | export, r, err = client.ExportsApi.ExportsGetFile(auth, export.GetId()).Execute() 107 | if err != nil { 108 | fmt.Fprintf(os.Stdout, "Error when calling `ExportsApi.ExportsGetFile`: %v\n", err) 109 | fmt.Fprintf(os.Stdout, "Full HTTP response: %v\n", r) 110 | return 111 | } 112 | // slip some time and repeat 113 | time.Sleep(100) 114 | i++ 115 | fmt.Print("*") 116 | } 117 | 118 | if i == 100 { 119 | fmt.Println("Timeout expired!") 120 | return 121 | } else { 122 | fmt.Println() 123 | } 124 | 125 | fmt.Println("File exported succesfully") 126 | 127 | _, r, err = client.DownloadApi.DownloadGetExport(auth, export.GetId()).Execute() 128 | 129 | // now it is without error checking and without os.File (resulting file came in r.Body) 130 | // to-do after future fix for octect-stream in gofrcloud/client.go/decode 131 | 132 | buf, err := ioutil.ReadAll(r.Body) 133 | check(err) 134 | 135 | err = ioutil.WriteFile(*exportTask.FileName, buf, 0644) 136 | check(err) 137 | 138 | fmt.Fprintf(os.Stdout, "File saved in %s\n", *exportTask.FileName) 139 | } 140 | -------------------------------------------------------------------------------- /JS Demos/fastreport-cloud-demo-pdf/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # Snowpack dependency directory (https://snowpack.dev/) 45 | web_modules/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | .parcel-cache 78 | 79 | # Next.js build output 80 | .next 81 | out 82 | 83 | # Nuxt.js build / generate output 84 | .nuxt 85 | dist 86 | 87 | # Gatsby files 88 | .cache/ 89 | # Comment in the public line in if your project uses Gatsby and not Next.js 90 | # https://nextjs.org/blog/next-9-1#public-directory-support 91 | # public 92 | 93 | # vuepress build output 94 | .vuepress/dist 95 | 96 | # Serverless directories 97 | .serverless/ 98 | 99 | # FuseBox cache 100 | .fusebox/ 101 | 102 | # DynamoDB Local files 103 | .dynamodb/ 104 | 105 | # TernJS port file 106 | .tern-port 107 | 108 | # Stores VSCode versions used for testing VSCode extensions 109 | .vscode-test 110 | 111 | # yarn v2 112 | .yarn/cache 113 | .yarn/unplugged 114 | .yarn/build-state.yml 115 | .yarn/install-state.gz 116 | .pnp.* -------------------------------------------------------------------------------- /JS Demos/fastreport-cloud-demo-pdf/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fastreport-cloud-demo-pdf", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "fastreport-cloud-sdk": "github:FastReports/FastReport-Cloud-JS" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demo-rest/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | // Apply the application plugin to add support for building a CLI application in Java. 3 | id 'application' 4 | id 'idea' 5 | } 6 | 7 | repositories { 8 | mavenLocal() 9 | mavenCentral() 10 | } 11 | 12 | dependencies { 13 | // Use JUnit test framework. 14 | testImplementation 'junit:junit:4.13' 15 | 16 | // This dependency is used by the application. 17 | implementation 'com.google.guava:guava:29.0-jre' 18 | implementation 'com.squareup.okhttp3:okhttp:4.9.3' 19 | implementation 'org.json:json:20231013' 20 | } 21 | 22 | application { 23 | // Define the main class for the application. 24 | mainClass = 'cloud.fastreport.demopdf.App' 25 | } 26 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demo-rest/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Java Demos/fastreport-cloud-demo-rest/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demo-rest/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demo-rest/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demo-rest/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'Java-demo' 2 | 3 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/.gitattributes: -------------------------------------------------------------------------------- 1 | # 2 | # https://help.github.com/articles/dealing-with-line-endings/ 3 | # 4 | # These are explicitly windows files and should use crlf 5 | *.bat text eol=crlf 6 | 7 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | 3 | # Mobile Tools for Java (J2ME) 4 | .mtj.tmp/ 5 | 6 | # Package Files # 7 | *.jar 8 | *.war 9 | *.ear 10 | 11 | # exclude jar for gradle wrapper 12 | !gradle/wrapper/*.jar 13 | 14 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 15 | hs_err_pid* 16 | 17 | # build files 18 | **/target 19 | target 20 | .gradle 21 | build 22 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "java.compile.nullAnalysis.mode": "disabled", 3 | "java.project.explorer.showNonJavaResources": true, 4 | "java.project.referencedLibraries": [ 5 | "lib/**/*.jar", 6 | "c:\\Users\\wital\\ProgramT\\fastreport.cloud\\sdks\\java\\build\\libs\\fastreport-cloud-sdk-2024.1.20.jar" 7 | ], 8 | "java.configuration.updateBuildConfiguration": "interactive" 9 | } -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | // Apply the application plugin to add support for building a CLI application in Java. 3 | id 'application' 4 | id 'idea' 5 | } 6 | 7 | repositories { 8 | // Use JCenter for resolving dependencies. 9 | jcenter() 10 | mavenLocal() 11 | } 12 | 13 | dependencies { 14 | // Use JUnit test framework. 15 | testImplementation 'junit:junit:4.13' 16 | 17 | // This dependency is used by the application. 18 | implementation 'com.google.guava:guava:29.0-jre' 19 | implementation "cloud.fastreport.sdk:fastreport-cloud-sdk:v2024.1.22" 20 | } 21 | 22 | application { 23 | // Define the main class for the application. 24 | mainClass = 'cloud.fastreport.demopdf.App' 25 | } 26 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Java Demos/fastreport-cloud-demopdf/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/gradlew.bat: -------------------------------------------------------------------------------- 1 | @rem 2 | @rem Copyright 2015 the original author or authors. 3 | @rem 4 | @rem Licensed under the Apache License, Version 2.0 (the "License"); 5 | @rem you may not use this file except in compliance with the License. 6 | @rem You may obtain a copy of the License at 7 | @rem 8 | @rem https://www.apache.org/licenses/LICENSE-2.0 9 | @rem 10 | @rem Unless required by applicable law or agreed to in writing, software 11 | @rem distributed under the License is distributed on an "AS IS" BASIS, 12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | @rem See the License for the specific language governing permissions and 14 | @rem limitations under the License. 15 | @rem 16 | 17 | @if "%DEBUG%" == "" @echo off 18 | @rem ########################################################################## 19 | @rem 20 | @rem Gradle startup script for Windows 21 | @rem 22 | @rem ########################################################################## 23 | 24 | @rem Set local scope for the variables with windows NT shell 25 | if "%OS%"=="Windows_NT" setlocal 26 | 27 | set DIRNAME=%~dp0 28 | if "%DIRNAME%" == "" set DIRNAME=. 29 | set APP_BASE_NAME=%~n0 30 | set APP_HOME=%DIRNAME% 31 | 32 | @rem Resolve any "." and ".." in APP_HOME to make it shorter. 33 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi 34 | 35 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 36 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" 37 | 38 | @rem Find java.exe 39 | if defined JAVA_HOME goto findJavaFromJavaHome 40 | 41 | set JAVA_EXE=java.exe 42 | %JAVA_EXE% -version >NUL 2>&1 43 | if "%ERRORLEVEL%" == "0" goto execute 44 | 45 | echo. 46 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 47 | echo. 48 | echo Please set the JAVA_HOME variable in your environment to match the 49 | echo location of your Java installation. 50 | 51 | goto fail 52 | 53 | :findJavaFromJavaHome 54 | set JAVA_HOME=%JAVA_HOME:"=% 55 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 56 | 57 | if exist "%JAVA_EXE%" goto execute 58 | 59 | echo. 60 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 61 | echo. 62 | echo Please set the JAVA_HOME variable in your environment to match the 63 | echo location of your Java installation. 64 | 65 | goto fail 66 | 67 | :execute 68 | @rem Setup the command line 69 | 70 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 71 | 72 | 73 | @rem Execute Gradle 74 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* 75 | 76 | :end 77 | @rem End local scope for the variables with windows NT shell 78 | if "%ERRORLEVEL%"=="0" goto mainEnd 79 | 80 | :fail 81 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 82 | rem the _cmd.exe /c_ return code! 83 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 84 | exit /b 1 85 | 86 | :mainEnd 87 | if "%OS%"=="Windows_NT" endlocal 88 | 89 | :omega 90 | -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/readme.md: -------------------------------------------------------------------------------- 1 | Use `gradlew.bat build --refresh-dependencies` to build the application! 2 | Use `gradlew run` to run the application! -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/settings.gradle: -------------------------------------------------------------------------------- 1 | /* 2 | * This file was generated by the Gradle 'init' task. 3 | * 4 | * The settings file is used to specify which projects to include in your build. 5 | * 6 | * Detailed information about configuring a multi-project build in Gradle can be found 7 | * in the user manual at https://docs.gradle.org/6.7.1/userguide/multi_project_builds.html 8 | */ 9 | 10 | rootProject.name = 'fastreport-cloud-demopdf' 11 | 12 | sourceControl { 13 | gitRepository("https://github.com/FastReports/FastReport-Cloud-Java.git") { 14 | producesModule("cloud.fastreport.sdk:fastreport-cloud-sdk") 15 | } 16 | } -------------------------------------------------------------------------------- /Java Demos/fastreport-cloud-demopdf/src/test/java/cloud/fastreport/demopdf/AppTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * This Java source file was generated by the Gradle 'init' task. 3 | */ 4 | package cloud.fastreport.demopdf; 5 | 6 | import org.junit.Test; 7 | import static org.junit.Assert.*; 8 | 9 | public class AppTest { 10 | @Test public void testAppHasAGreeting() { 11 | //App classUnderTest = new App(); 12 | //assertNotNull("app should have a greeting", classUnderTest.getGreeting()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | id("com.android.application") 3 | id("org.jetbrains.kotlin.android") 4 | } 5 | 6 | android { 7 | namespace = "cloud.fastreport.androiddemo" 8 | compileSdk = 34 9 | 10 | defaultConfig { 11 | applicationId = "cloud.fastreport.androiddemo" 12 | minSdk = 31 13 | targetSdk = 34 14 | versionCode = 1 15 | versionName = "1.0" 16 | 17 | testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" 18 | } 19 | 20 | buildTypes { 21 | release { 22 | isMinifyEnabled = false 23 | proguardFiles( 24 | getDefaultProguardFile("proguard-android-optimize.txt"), 25 | "proguard-rules.pro" 26 | ) 27 | signingConfig = signingConfigs.getByName("debug") 28 | } 29 | } 30 | compileOptions { 31 | sourceCompatibility = JavaVersion.VERSION_1_8 32 | targetCompatibility = JavaVersion.VERSION_1_8 33 | } 34 | kotlinOptions { 35 | jvmTarget = "1.8" 36 | } 37 | 38 | } 39 | 40 | dependencies { 41 | implementation("com.squareup.okhttp3:okhttp:4.12.0") 42 | implementation("org.json:json:20210307") 43 | implementation("androidx.core:core-ktx:1.13.1") 44 | implementation("androidx.appcompat:appcompat:1.6.1") 45 | implementation("com.google.android.material:material:1.12.0") 46 | implementation("androidx.constraintlayout:constraintlayout:2.1.4") 47 | } -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 17 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/assets/Template.frx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/cloud_icon-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/cloud_icon-playstore.png -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/drawable/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-anydpi-v26/cloud_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-anydpi-v26/cloud_icon_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-anydpi/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon_background.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon_foreground.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/cloud_icon_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon_background.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon_foreground.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/cloud_icon_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon_background.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon_foreground.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/cloud_icon_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon_background.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon_foreground.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/cloud_icon_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon_background.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon_background.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon_foreground.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon_foreground.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/cloud_icon_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FastReports/FastReport-Cloud-Demos/ff439e119009a07a687f3110c486000ba9f03155/Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FF000000 4 | #FFFFFFFF 5 | #1E7BB9 6 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | FastReport Cloud Demo 3 | Upload file 4 | Export 5 | Download 6 | Input 7 | 8 | Change Subscription: 9 | Enter your subscription ID 10 | Change API-key: 11 | Enter your API-key 12 | Change parameter: 13 | Enter parameter key 14 | Enter parameter value 15 | Enter template name 16 | 17 | -------------------------------------------------------------------------------- /Kotlin Demos/fastreport-cloud-androidKotlin/app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | 10 |