示例#1
0
        /// <summary>
        /// 编辑报表
        /// </summary>
        /// <param name="id">报表ID</param>
        /// <param name="report">报表</param>
        /// <returns>Result</returns>
        public Result <object> editReport(string id, ReportDefinition report)
        {
            if (!verify("editReport"))
            {
                return(result);
            }

            var data = DbHelper.find <ReportDefinition>(id);

            if (data == null)
            {
                return(result.notFound());
            }

            data.categoryId = report.categoryId;
            data.name       = report.name;
            data.mode       = report.mode;
            data.delay      = report.delay;
            data.reportType = report.reportType;
            data.dataSource = report.dataSource;
            data.remark     = report.remark;
            if (existed(data))
            {
                return(result.dataAlreadyExists());
            }

            return(DbHelper.update(data) ? result : result.dataBaseError());
        }
示例#2
0
        private void _save_Click(object sender, EventArgs e)
        {
            if (_fileName == null)
            {
                using (var form = new SaveForm())
                {
                    form.Path = Path.Combine(_directory, "Report.wqreport");
                    if (form.ShowDialog(this) != DialogResult.OK)
                    {
                        return;
                    }

                    _fileName = Path.GetFileName(form.Path);

                    Text += " - " + _fileName;
                }
            }

            var report = new ReportDefinition
            {
                Entity = _entity
            };

            report.Filters.AddRange(_filters);

            report.Fields.AddRange(_columns.GetFields());
            report.Fields.AddRange(_rows.GetFields());
            report.Fields.AddRange(_values.GetFields());

            report.Save(Path.Combine(_directory, _fileName));
        }
示例#3
0
        public ReportPaginator(DocumentPaginator documentPaginator)
        {
            _paginator = documentPaginator;
            _reportDefinition = new ReportDefinition();

            _paginator.PageSize = _reportDefinition.ContentSize;
        }
示例#4
0
        protected override void Method(DataLakeAdWordsContext dbContext)
        {
            var now        = DateTime.UtcNow;
            var lastRecord = dbContext.AdPerformanceReports.OrderByDescending(r => r.Date).FirstOrDefault();
            var minDate    = StartDate;

            if (lastRecord != null)
            {
                minDate = DateTime.ParseExact(lastRecord.Date, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
                if (now - minDate < TimeMargin)
                {
                    minDate = now.Date - TimeMargin;
                }
            }
            var maxDate    = minDate + TimeStep;
            var records    = new List <DLM.AdPerformance>();
            var definition = new ReportDefinition {
                reportName     = "Last 30 days AD_PERFORMANCE_REPORT",
                dateRangeType  = ReportDefinitionDateRangeType.CUSTOM_DATE,
                reportType     = ReportDefinitionReportType.AD_PERFORMANCE_REPORT,
                downloadFormat = DownloadFormat.TSV,
                selector       = new Selector {
                    fields = new string[] {
                        "CampaignId",
                        "AdGroupId",
                        "Id",
                        "Headline",
                        "Date",
                        "Impressions",
                        "VideoViews",
                        "Clicks",
                        "Engagements",
                        "AverageCpm",
                        "AverageCpv",
                        "AverageCpc",
                        "AverageCpe",
                        "Cost"
                    },
                    dateRange = new DateRange {
                        min = FormatDate(minDate),
                        max = FormatDate(maxDate)
                    }
                }
            };

            while (maxDate < now)
            {
                definition.selector.dateRange.min = FormatDate(minDate);
                definition.selector.dateRange.max = FormatDate(maxDate);

                records  = records.Concat(DefinitionToRecords(dbContext, definition, now)).ToList();
                minDate  = maxDate + OneDay;
                maxDate += TimeStep;
            }
            definition.selector.dateRange.min = FormatDate(minDate);
            definition.selector.dateRange.max = FormatDate(now);
            records = records.Concat(DefinitionToRecords(dbContext, definition, now)).ToList();
            dbContext.AddRange(records);
            Logger.Debug("Inserted {Count} new records", records.Count());
        }
示例#5
0
        /// <summary>
        /// This is the primary function aimed at running a report - we simply pass the report
        /// through to the tabview who does the actual work
        /// </summary>
        /// <param name="report"></param>
        public void RunReport(ReportDefinition report)
        {
            // Simply call the relevent function in the tab view to do the work
            ReportsTabView tabView = WorkItem.TabView as ReportsTabView;

            tabView.RunCustomReport((AuditedDataReportDefinition)report);
        }
        public static void ChangDataSourceInRentime(ReportDefinition rdl, string dataSourceType)
        {
            //need to centralize all DataSource in  one Report source,so report source    dynamically change report datasource on the fly

            for (int i = 0; i < rdl.Report.DataSources.Count; i++)
            {
                if (dataSourceType == EmReportDataSourceType.DWDatabase.ToString())
                {
                    rdl.Report.DataSources[i].DataSourceReference = null;

                    rdl.Report.DataSources[i].ConnectionProperties.ConnectString = DDSetup.DWDataSourceConnectionString;
                    rdl.Report.DataSources[i].ConnectionProperties.DataProvider  = "SQL";
                }
                else
                {
                    rdl.Report.DataSources[i].DataSourceReference = null;

                    rdl.Report.DataSources[i].ConnectionProperties.ConnectString = DDSetup.PLMConnectionString;
                    rdl.Report.DataSources[i].ConnectionProperties.DataProvider  = "SQL";
                }
            }

            //rdl.Report.
            rdl.ResourceLocator = new DataDynamicsCustomResourceLocator(rdl.ResourceLocator, dataSourceType);
        }
        /// <summary>
        /// Runs the code example.
        /// </summary>
        /// <param name="user">The AdWords user.</param>
        /// <param name="fileName">The file to which the report is downloaded.
        /// </param>
        public void Run(AdWordsUser user, string fileName)
        {
            ReportDefinition definition = new ReportDefinition()
            {
                reportName     = "Last 7 days CRITERIA_PERFORMANCE_REPORT",
                reportType     = ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT,
                downloadFormat = DownloadFormat.GZIPPED_CSV,
                dateRangeType  = ReportDefinitionDateRangeType.LAST_7_DAYS,

                selector = new Selector()
                {
                    fields = new string[] { "CampaignId", "AdGroupId", "Id", "CriteriaType", "Criteria",
                                            "FinalUrls", "Clicks", "Impressions", "Cost" },
                    predicates = new Predicate[] {
                        Predicate.In("Status", new string[] { "ENABLED", "PAUSED" })
                    }
                },
                // Optional: Include zero impression rows.
                includeZeroImpressions = true
            };

            string filePath = ExampleUtilities.GetHomeDir() + Path.DirectorySeparatorChar + fileName;

            try {
                ReportUtilities utilities = new ReportUtilities(user, "v201506", definition);
                using (ReportResponse response = utilities.GetResponse()) {
                    response.Save(filePath);
                }
                Console.WriteLine("Report was downloaded to '{0}'.", filePath);
            } catch (Exception e) {
                throw new System.ApplicationException("Failed to download report.", e);
            }
        }
        private void LoadKeywordPerformanceReport()
        {
            var definition = new ReportDefinition()
            {
                reportName = "Custom Date KEYWORDS_PERFORMANCE_REPORT",
                reportType = ReportDefinitionReportType.KEYWORDS_PERFORMANCE_REPORT,
                selector   = new Selector()
                {
                    fields = new string[]
                    {
                        "CampaignId",
                        "AdGroupId",
                        "Id",       // keyword id
                        "Status",   // keyword status
                        "Criteria", // keyword text
                        "KeywordMatchType",
                        "Impressions",
                        "AveragePosition",
                        "Clicks",
                        "Cost",
                        "AdNetworkType1",     // create partitioning by search/display networks
                    }
                }
            };

            DownloadAndLoadReport <XmlKeywordPerformanceReader>(definition);
        }
示例#9
0
        private void Aggregate(object currentHttpContext)
        {
            HttpContext httpContext = FakeHttpContext(
                new Dictionary <string, object>(),
                ((HttpContext)currentHttpContext).Request.Url.ToString()
                );

            this.Sessions.Add(httpContext.Session);

            ReportDefinition reportDefinition = new ReportDefinition(
                this.Core,
                this.ReportDefinitionFileName,
                new Crosstables.Classes.HierarchyClasses.HierarchyFilter(null)
                );

            ReportCalculator calculator = new ReportCalculator(
                reportDefinition,
                this.Core,
                httpContext.Session
                );

            //try
            //{
            calculator.Aggregate("1.0.0.0", false);

            /*}
             * catch {
             *  httpContext.Session["DataAggregationProgress"] = 100;
             * }*/
        }
示例#10
0
        public static void Run()
        {
            var query = TestRepository.GetAllPerson();

            var reportDataSource = query.ToReportDataSource("Persons");
            var reportDefinition = ReportDefinition.FromJson(
                EmbeddedResource.GetResourceTextFile("Sample3ReportDefinition.json"));

            var report = SimpleExporter.CreateReport(reportDefinition, reportDataSource);

            report.SetTextBlock("titleId", "Titulo de Prueba");
            report.SetTextBlock("subtitleId", "Subtitulo");
            var table = (Table)reportDefinition.Body[2];

            table.Columns = GetColumns(query);

            //CSV
            using (var fs = File.Create("Sample3.csv"))
            {
                var writer = new DelimitedTextReportWriter();
                report.WriteReport(fs, writer);
                Console.WriteLine("(CSV) Sample 3 created: {0}", fs.Name);
            }

            //Xlsx
            using (var fs = File.Create("Sample3.xlsx"))
            {
                var writer = new XlsxReportWriter();
                report.WriteReport(fs, writer);
                Console.WriteLine("(Xlsx) Sample 3 created: {0}", fs.Name);
            }
        }
示例#11
0
        /// <summary>
        /// Gets the section type for a report component
        /// </summary>
        /// <param name="definition">The report definition</param>
        /// <param name="componentName">The component name</param>
        /// <returns>The section type</returns>
        private ReportSectionType GetSectionType
        (
            ReportDefinition definition,
            string componentName
        )
        {
            var allSectionTypes = Enum.GetValues
                                  (
                typeof(ReportSectionType)
                                  );

            foreach (ReportSectionType sectionType in allSectionTypes)
            {
                var component = definition.FindComponent
                                (
                    sectionType,
                    componentName
                                );

                if (component != null)
                {
                    return(sectionType);
                }
            }

            return(ReportSectionType.ReportBody);
        }
示例#12
0
        /// <summary>
        /// Cast parameters
        /// </summary>
        private IDictionary <string, object> CastParameters(ReportDefinition report, IDictionary <string, object> parameters)
        {
            var retVal = new Dictionary <String, Object>();

            // Cast parms
            foreach (var kv in parameters)
            {
                try
                {
                    var rparm = report.Parameters.FirstOrDefault(o => o.Name == kv.Key);
                    if (rparm == null)
                    {
                        retVal.Add(kv.Key, kv.Value);
                    }
                    else if (kv.Value != null)
                    {
                        switch (rparm.Type)
                        {
                        case ReportPropertyType.ByteArray:
                            retVal[rparm.Name] = kv.Value;
                            break;

                        case ReportPropertyType.Date:
                            if (rparm.Ceil)
                            {
                                retVal[rparm.Name] = DateTime.Parse(kv.Value.ToString().Substring(0, 10) + "T23:59:59");
                            }
                            else
                            {
                                retVal[rparm.Name] = DateTime.Parse(kv.Value.ToString().Substring(0, 10));
                            }
                            break;

                        case ReportPropertyType.DateTime:
                            retVal[rparm.Name] = DateTime.Parse(kv.Value.ToString());

                            break;

                        case ReportPropertyType.Decimal:
                            retVal[rparm.Name] = Decimal.Parse(kv.Value.ToString());
                            break;

                        case ReportPropertyType.Integer:
                            retVal[rparm.Name] = Int32.Parse(kv.Value.ToString());
                            break;

                        case ReportPropertyType.String:
                            retVal[rparm.Name] = kv.Value?.ToString();
                            break;

                        case ReportPropertyType.Uuid:
                            retVal[rparm.Name] = Guid.Parse(kv.Value.ToString());
                            break;
                        }
                    }
                }
                catch { }
            }
            return(retVal);
        }
        protected void lnkLeftPanelSectionNew_Click(object sender, EventArgs e)
        {
            // Get the full path of the current session's report definition file.
            string fileName = HttpContext.Current.Session["ReportDefinition"].ToString();

            // Create a new report definition by the file.
            ReportDefinition reportDefinition = new ReportDefinition(
                Global.Core,
                fileName,
                Global.HierarchyFilters[fileName]
                );

            // Clear the report definition.
            reportDefinition.Clear();

            // Clear the data check entries.
            DataCheck dataCheck = new DataCheck(fileName);

            dataCheck.Clear();

            // Self redirect to display clear crosstable.
            Response.Redirect(
                Request.Url.ToString()
                );
        }
示例#14
0
        public static void Run()
        {
            var query = TestRepository.GetAllProducts();

            var reportDataSource = query.ToReportDataSource("Products");
            var reportDefinition = ReportDefinition.FromJson(
                EmbeddedResource.GetResourceTextFile("Sample2ReportDefinition.json"));

            var report = SimpleExporter.CreateReport(reportDefinition, reportDataSource);

            report.SetTextBlock("titleId", "Titulo de Prueba");
            report.SetTextBlock("subtitleId", "Other text for the sample");

            //CSV
            using (var fs = File.Create("Sample2.csv"))
            {
                var writer = new DelimitedTextReportWriter();
                report.WriteReport(fs, writer);
                Console.WriteLine("(CSV) Sample 2 created: {0}", fs.Name);
            }

            //Xlsx
            using (var fs = File.Create("Sample2.xlsx"))
            {
                var writer = new XlsxReportWriter();
                report.WriteReport(fs, writer);
                Console.WriteLine("(Xlsx) Sample 2 created: {0}", fs.Name);
            }
        }
示例#15
0
        public static void Run()
        {
            var query = TestRepository.GetAllProducts();

            var reportDataSource = query.ToReportDataSource("Products");
            var reportDefinition = ReportDefinition.FromJson(
                EmbeddedResource.GetResourceTextFile("Sample1ReportDefinition.json"));

            var report = SimpleExporter.CreateReport(reportDefinition, reportDataSource);

            //CSV
            using (var fs = File.Create("Sample1.csv"))
            {
                var writer = new DelimitedTextReportWriter();
                report.WriteReport(fs, writer);
                Console.WriteLine("(CSV) Sample 1 created: {0}", fs.Name);
            }

            //Xlsx
            using (var fs = File.Create("Sample1.xlsx"))
            {
                var writer = new XlsxReportWriter();
                report.WriteReport(fs, writer);
                Console.WriteLine("(Xlsx) Sample 1 created: {0}", fs.Name);
            }

            //PDF
            using (var fs = File.Create("Sample1.pdf"))
            {
                var writer = new PdfReportWriter();
                report.WriteReport(fs, writer);
                Console.WriteLine("(PDF) Sample 1 created: {0}", fs.Name);
            }
        }
示例#16
0
        public void Definition_Save_and_create_Updates_Columns()
        {
            // arrange
            var timeStamp  = DateTime.UtcNow.ToString("MM-dd-yy-HH:mm tt");
            var fakeReport = new ReportDefinition()
            {
                name       = $"fakeReportName-{timeStamp}",
                commonName = $"Fake Report Name {timeStamp}",
                sqlquery   = "select * from ReportDefinitions",
                inputsJson = "{\"beginDate\":false,\"endDate\":false,\"memberNumber\":false}"
            };

            var expectedCreatedColumns = "[{\"field\":\"ID\",\"header\":\"ID\",\"visible\":true},{\"field\":\"name\",\"header\":\"name\",\"visible\":true},{\"field\":\"commonName\",\"header\":\"commonName\",\"visible\":true},{\"field\":\"title\",\"header\":\"title\",\"visible\":true},{\"field\":\"description\",\"header\":\"description\",\"visible\":true},{\"field\":\"sqlquery\",\"header\":\"sqlquery\",\"visible\":true},{\"field\":\"category\",\"header\":\"category\",\"visible\":true},{\"field\":\"subcategory\",\"header\":\"subcategory\",\"visible\":true},{\"field\":\"inputsJson\",\"header\":\"inputsJson\",\"visible\":true},{\"field\":\"columnsJson\",\"header\":\"columnsJson\",\"visible\":true},{\"field\":\"datecreated\",\"header\":\"datecreated\",\"visible\":true},{\"field\":\"dateupdated\",\"header\":\"dateupdated\",\"visible\":true},{\"field\":\"Createdby\",\"header\":\"Createdby\",\"visible\":true},{\"field\":\"Updatedby\",\"header\":\"Updatedby\",\"visible\":true}]";
            // act
            var createResult = frb.ToServ <IReportsV2Service>().Create(fakeReport, "test");

            // assert
            Assert.AreEqual(createResult.columnsJson, expectedCreatedColumns);
            createResult.sqlquery = "SELECT name, commonName, description FROM ReportDefinitions";
            frb.ToServ <IReportsV2Service>().Save(createResult, "testbot");
            var saveResult = frb.ToServ <IReportsV2Service>().Get($"fakeReportName-{timeStamp}");

            // assert
            Assert.AreEqual(saveResult.columnsJson, "[{\"field\":\"name\",\"header\":\"name\",\"visible\":true},{\"field\":\"commonName\",\"header\":\"commonName\",\"visible\":true},{\"field\":\"description\",\"header\":\"description\",\"visible\":true}]");
            Assert.AreNotEqual(saveResult.columnsJson, expectedCreatedColumns);

            // clean up
            frb.ToServ <IReportsV2Service>().Delete(createResult.ID, "test bot");
        }
        private void LoadAdGroupPerformanceReport()
        {
            var definition = new ReportDefinition()
            {
                reportName = "Custom Date ADGROUP_PERFORMANCE_REPORT",
                reportType = ReportDefinitionReportType.ADGROUP_PERFORMANCE_REPORT,
                selector   = new Selector()
                {
                    fields = new string[]
                    {
                        "CampaignId",
                        "AdGroupId",
                        "AdGroupName",
                        "AdGroupStatus",
                        "Impressions",
                        "AveragePosition",
                        "Clicks",
                        "Cost",
                        "AdNetworkType1", // create partitioning by search/display networks
                        "Device",         // create partitioning by device type (mobile/tablet/desktop)
                    }
                }
            };

            DownloadAndLoadReport <XmlAdGroupPerformanceReader>(definition);
        }
示例#18
0
        public async Task TestGetContentStringAsyncByReportDefinition_PlainCsv_Passed()
        {
            var reportUtil = CreateReportUtility();
            var rptDef     = new ReportDefinition();

            rptDef.DateRangeType   = ReportDefinitionDateRangeType.AllTime;
            rptDef.DownloadFormat  = DownloadFormat.Csv;
            rptDef.ReportName      = "TestGetContentStringAsyncByReportDefinition";
            rptDef.ReportType      = ReportDefinitionReportType.CampaignPerformanceReport;
            rptDef.Selector        = new Selector();
            rptDef.Selector.Fields = new List <string>();
            rptDef.Selector.Fields.AddRange(new string[] { "CampaignId", "CampaignName", "Impressions" });

            var reportContent = await reportUtil.GetContentStringAsync(rptDef);

            var lines = reportContent.Split('\n');

            int i = 0;

            Assert.Equal("TestGetContentStringAsyncByReportDefinition (All Time)", lines[i++]);
            Assert.Equal("Campaign ID,Campaign,Impressions", lines[i++]);
            Assert.Equal('0', lines[i++].Last());
            Assert.Equal("Total, --,0", lines[i++]);
            Assert.Equal("", lines[i++]);             // there is always an empty line at last
        }
示例#19
0
        public static Stream GetDataDynamicPdfStream(string rdlxFileName, int?aUId, string productReferenceId, string PdmRequestRegisterID, string dataSourceType, string mainReferenceID, string masterReferenceID)
        {
            string fullpath = DDSetup.ReorptSetup.ReportRootPath + @"\" + rdlxFileName;

            try
            {
                PdfRenderingExtension device = new PdfRenderingExtension();

                ReportDefinition def = new ReportDefinition(new FileInfo(fullpath));

                ChangDataSourceInRentime(def, dataSourceType);

                using (ReportRuntime runtime = new ReportRuntime(def))
                {
                    SetupReportParamter(runtime, aUId, productReferenceId, PdmRequestRegisterID, mainReferenceID, masterReferenceID);

                    //   FileStreamProvider aFileStreamProvider=    new FileStreamProvider(new DirectoryInfo(@".\"), exportFieName);

                    DataDynamics.Reports.Rendering.IO.MemoryStreamProvider memoryStreamProvider = new MemoryStreamProvider();
                    runtime.Render(device, memoryStreamProvider);
                    var pInfo = memoryStreamProvider.GetPrimaryStream();
                    return(pInfo.OpenStream());
                }


                //  ReportRuntime runtime = new ReportRuntime(rdl);
            }

            catch (Exception ex)
            {
                string exStrt = ex.ToString();
                return(null);
            }
        }
        /// <summary>
        /// Handles the Click event of the btnDownloadReport control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing
        /// the event data.</param>
        protected void OnDownloadReportButtonClick(object sender, EventArgs e)
        {
            ConfigureUserForOAuth();
            ReportDefinition definition = new ReportDefinition();

            definition.reportName     = "Last 7 days CRITERIA_PERFORMANCE_REPORT";
            definition.reportType     = ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT;
            definition.downloadFormat = DownloadFormat.GZIPPED_CSV;
            definition.dateRangeType  = ReportDefinitionDateRangeType.LAST_7_DAYS;

            // Create selector.
            Selector selector = new Selector();

            selector.fields = new string[] { "CampaignId", "AdGroupId", "Id", "CriteriaType", "Criteria",
                                             "CriteriaDestinationUrl", "Clicks", "Impressions", "Cost" };

            Predicate predicate = new Predicate();

            predicate.field     = "Status";
            predicate.@operator = PredicateOperator.IN;
            predicate.values    = new string[] { "ACTIVE", "PAUSED" };
            selector.predicates = new Predicate[] { predicate };

            definition.selector = selector;
            definition.includeZeroImpressions = true;

            string filePath = Path.GetTempFileName();

            try {
                // If you know that your report is small enough to fit in memory, then
                // you can instead use
                // ReportUtilities utilities = new ReportUtilities(user);
                // utilities.ReportVersion = "v201309";
                // ClientReport report = utilities.GetClientReport(definition);
                //
                // // Get the text report directly if you requested a text format
                // // (e.g. xml)
                // string reportText = report.Text;
                //
                // // Get the binary report if you requested a binary format
                // // (e.g. gzip)
                // byte[] reportBytes = report.Contents;
                //
                // // Deflate a zipped binary report for further processing.
                // string deflatedReportText = Encoding.UTF8.GetString(
                //     MediaUtilities.DeflateGZipData(report.Contents));

                // Set the customer id.
                (user.Config as AdWordsAppConfig).ClientCustomerId = txtCustomerId.Text;
                ReportUtilities utilities = new ReportUtilities(user);
                utilities.ReportVersion = "v201309";
                utilities.DownloadClientReport(definition, filePath);
            } catch (Exception ex) {
                throw new System.ApplicationException("Failed to download report.", ex);
            }
            Response.AddHeader("content-disposition", "attachment;filename=report.gzip");
            Response.WriteFile(filePath);
            Response.End();
        }
示例#21
0
        public ReportForm(Api api, string directory, string fileName, ReportDefinition report)
        {
            if (api == null)
            {
                throw new ArgumentNullException(nameof(api));
            }
            if (directory == null)
            {
                throw new ArgumentNullException(nameof(directory));
            }
            if (report == null)
            {
                throw new ArgumentNullException(nameof(report));
            }

            _api       = api;
            _directory = directory;
            _fileName  = fileName;
            _entity    = report.Entity;
            _filters   = report.Filters;

            InitializeComponent();

            if (fileName != null)
            {
                Text += " - " + fileName;
            }

            _gridManager = new ReportGridManager(_grid);

            foreach (ToolStripMenuItem menuItem in _aggregateMenuItem.DropDownItems)
            {
                menuItem.Tag = Enum.Parse(typeof(ReportFieldTransform), (string)menuItem.Tag);
            }

            VisualStyleUtil.StyleTreeView(_fields);

            BuildFields(_fields.Nodes, _entity);

            foreach (var field in report.Fields)
            {
                switch (field.Type)
                {
                case ReportFieldType.Column:
                    _columns.Items.Add(field);
                    break;

                case ReportFieldType.Row:
                    _rows.Items.Add(field);
                    break;

                case ReportFieldType.Value:
                    _values.Items.Add(field);
                    break;
                }
            }

            UpdateEnabled();
        }
示例#22
0
        /// <summary>
        /// Handles the Click event of the btnDownloadReport control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="eventArgs">The <see cref="System.EventArgs"/> instance containing
        /// the event data.</param>
        protected void OnDownloadReportButtonClick(object sender, EventArgs eventArgs)
        {
            ConfigureUserForOAuth();
            ReportDefinition definition = new ReportDefinition()
            {
                reportName     = "Last 7 days CRITERIA_PERFORMANCE_REPORT",
                reportType     = ReportDefinitionReportType.CRITERIA_PERFORMANCE_REPORT,
                downloadFormat = DownloadFormat.GZIPPED_CSV,
                dateRangeType  = ReportDefinitionDateRangeType.LAST_7_DAYS,

                selector = new Selector()
                {
                    fields = new string[]
                    {
                        "CampaignId",
                        "AdGroupId",
                        "Id",
                        "CriteriaType",
                        "Criteria",
                        "FinalUrls",
                        "Clicks",
                        "Impressions",
                        "Cost"
                    },
                    predicates = new Predicate[]
                    {
                        Predicate.In("Status", new string[]
                        {
                            "ACTIVE",
                            "PAUSED"
                        })
                    }
                }
            };

            // Optional: Include zero impression rows.
            AdWordsAppConfig config = (AdWordsAppConfig)user.Config;

            config.IncludeZeroImpressions = true;

            string filePath = Path.GetTempFileName();

            try
            {
                ReportUtilities utilities = new ReportUtilities(user, "v201601", definition);
                using (ReportResponse response = utilities.GetResponse())
                {
                    response.Save(filePath);
                }
            }
            catch (Exception e)
            {
                throw new System.ApplicationException("Failed to download report.", e);
            }

            Response.AddHeader("content-disposition", "attachment;filename=report.gzip");
            Response.WriteFile(filePath);
            Response.End();
        }
示例#23
0
 public static SimpleExporter CreateReport(ReportDefinition reportDefinition, DataSource reportDataSource)
 {
     return(new SimpleExporter
     {
         ReportDefinition = reportDefinition,
         ReportDataSource = reportDataSource
     });
 }
示例#24
0
 /// <summary>
 /// Create new root report execution context
 /// </summary>
 public ReportExecutionContext(ReportDefinition report, IDictionary <String, Object> arguments, Object scope, IEnumerable dataset)
 {
     this.ParentScope = default(ReportExecutionContext);
     this.Report      = report;
     this.Scope       = scope;
     this.Dataset     = dataset;
     this.Arguments   = arguments;
 }
示例#25
0
        public async Task LoadStateFromFile(string fileName)
        {
            _fileName = fileName;

            _state = SetupHelpers.ReadReportDefinition(fileName);

            await ReloadOptions();
        }
示例#26
0
 public static void ProcessReportDefinition(ReportDefinition rd, XmlWriter xmlw)
 {
     xmlw.WriteStartElement("ReportDefinition");
     xmlw.WriteAttributeString("ReportKind", rd.ReportKind.ToStringSafe());
     xmlw.WriteAttributeString("RptrReportFlag", rd.RptrReportFlag.ToStringSafe());
     ProcessAreas(rd.Areas, xmlw);
     xmlw.WriteEndElement();
 }
示例#27
0
 public CategorySelector(ReportDefinition reportDefinition, string fileName)
     : base("div")
 {
     this.FileName         = fileName.Replace("\\", "/");
     this.ReportDefinition = reportDefinition;
     this.Load            += CategorySelector_Load;
     this.PreRender       += CategorySelector_PreRender;
 }
示例#28
0
 /// <summary>
 /// Set report column header.
 /// </summary>
 /// <param name="reportData">The report data.</param>
 /// <param name="reportDefinition">The report definition.</param>
 internal void SetReportColumnHeader(DataTable reportData, ReportDefinition reportDefinition)
 {
     ExcludeColumns(reportData, reportDefinition);
     foreach (ReportDefinitionReportDataReportColumnsColumn reportDefinitionReportDataColumn in reportDefinition.ReportData.ReportColumns.Column)
     {
         reportData.ModifyColumn(reportDefinitionReportDataColumn.DataField, reportDefinitionReportDataColumn.TitleField, reportDefinitionReportDataColumn.Order);
     }
 }
        protected void lnkLeftPanelSectionExport_Click(object sender, EventArgs e)
        {
            // Get the full path of the current session's report definition file.
            string fileName = HttpContext.Current.Session["ReportDefinition"].ToString();

            // Create a new report definition by the file.
            ReportDefinition reportDefinition = new ReportDefinition(
                Global.Core,
                fileName,
                Global.HierarchyFilters[fileName]
                );

            DisplayType displayType = reportDefinition.Settings.DisplayType;

            reportDefinition.Settings.DisplayType = DisplayType.Crosstable;
            reportDefinition.Save();

            Crosstables.Classes.Crosstable crosstable = new Crosstables.Classes.Crosstable(
                Global.Core,
                fileName
                );

            crosstable.IsExport = true;
            //crosstable.AsynchRender = true;

            crosstable.Render();

            ColorSchemeStylesheet colorScheme = new ColorSchemeStylesheet();

            colorScheme.Render();

            StringBuilder style = new StringBuilder();

            style.Append("<style type=\"text/css\">");
            style.Append(colorScheme.InnerHtml.Split(new string[] { "##### Scroll bar styles #####" }, StringSplitOptions.None)[0]);

            style.Append(File.ReadAllText(Path.Combine(
                                              Request.PhysicalApplicationPath,
                                              "Stylesheets",
                                              "Modules",
                                              "Crosstables.css"
                                              )));

            style.Append("</style>");

            Crosstables.Classes.Exporter exporter = new Crosstables.Classes.Exporter(
                crosstable.Table,
                style.ToString(),
                reportDefinition
                );

            reportDefinition.Settings.DisplayType = displayType;
            reportDefinition.Save();

            string fName = exporter.Export();

            base.WriteFileToResponse(fName, "Export.xlsx", "application/msexcel", true);
        }
示例#30
0
 /// <summary>
 /// 定义是否存在
 /// </summary>
 /// <param name="definition"></param>
 /// <returns>bool 是否存在</returns>
 public static bool existed(ReportDefinition definition)
 {
     using (var context = new Entities())
     {
         return(context.definitions.Any(i => i.id != definition.id && i.tenantId == definition.tenantId &&
                                        i.categoryId == definition.categoryId &&
                                        i.name == definition.name));
     }
 }
示例#31
0
 public void A_report_definition()
 {
     _definition = ReportDefinition.New<Report>(cfg =>
     {
         //could be auto mapped
         cfg.Column(r => r.Name, o=>o.SetDisplayName("Full Name"));
         cfg.Column(r => r.Amount);
     });
 }
示例#32
0
 public static void ProcessReportDefinition(ReportDefinition rd, Utf8JsonWriter jsonw)
 {
     jsonw.WritePropertyName("ReportDefinition");
     jsonw.WriteStartObject();
     jsonw.WriteString("ReportKind", rd.ReportKind.ToStringSafe());
     jsonw.WriteString("RptrReportFlag", rd.RptrReportFlag.ToStringSafe());
     ProcessAreas(rd.Areas, jsonw);
     jsonw.WriteEndObject();
 }
示例#33
0
        private void GetAreas(ReportDefinition reportDefinition, XmlWriter writer)
        {
            WriteAndTraceStartElement(writer, "Areas");

            foreach (Area area in reportDefinition.Areas)
            {
                WriteAndTraceStartElement(writer, "Area");

                writer.WriteAttributeString("Kind", area.Kind.ToString());
                writer.WriteAttributeString("Name", area.Name);

                if ((ShowFormatTypes & FormatTypes.AreaFormat) == FormatTypes.AreaFormat)
                    GetAreaFormat(area.AreaFormat, writer);

                GetSections(area, writer);

                writer.WriteEndElement();
            }

            writer.WriteEndElement();
        }