/// <summary> /// Return report standard data /// </summary> /// <param name="record">RecReportStd</param> /// <returns></returns> public List<RecReportStd> LoadReport( RecReportStd record ) { var company = Util.FactoryToCompany( record.Factory ); var query = new ImpactQuery() { Select = { ImpReportStd.Factory, ImpReportStd.Project, ImpReportStd.ReportId, ImpReportStd.Name, ImpReportStd.ReportType, ImpReportStd.Filename, ImpReportStd.Foldername, ImpReportStd.PageMaxX, ImpReportStd.PageMaxY, ImpReportStd.ContinuousHeaderRow, ImpReportStd.ContinuousStartRow, ImpReportStd.ContinuousEndRow, ImpReportStd.ContinuousSumRow, }, From = { ImpReportStd.As( "T1" ) }, Where = { ImpReportStd.Factory.Equal( company ), ImpReportStd.Project.Equal( company ), // company, company } }; if( !string.IsNullOrWhiteSpace( record.Name ) ) { query.Where.Add( ImpReportStd.Name.Equal( record.Name ) ); } if( record.ReportType > 0 ) { query.Where.Add( ImpReportStd.ReportType.Equal( (int)record.ReportType ) ); } var statement = query.ToString(); List<RecReportStd> result; using( var database = new ImpactDatabase() ) { result = database.GetAll( statement, ParseReport ); } return result; }
/// <summary> /// Returns report standard data and layout info /// </summary> /// <param name="userId"> </param> /// <param name="record">RecReportStd</param> /// <param name="factory"> </param> /// <param name="project"> </param> /// <returns>ReportTemplateData</returns> public ReportTemplateData LoadReportLayout( string factory, string project, string userId, RecReportStd record ) { RecProject recProject = null; RecReportStd report = null; List<RecReportLayoutStd> layouts = null; var reports = LoadReport( record ); if( null != reports && reports.Count > 0 ) { report = reports[0]; layouts = LoadReportDetails( report ); var proj = new RecProject { Factory = factory, Project = project }; var projs = LoadProject( proj ); if( null != projs && projs.Count > 0 ) { recProject = projs[0]; } } var folders = LoadFolder( new RecFolder() { Factory = factory, Project = project } ); var recUser = LoadUser( userId ); return new ReportTemplateData( recUser, recProject, report, layouts, folders ); }
/// <summary> /// Loads report layout /// </summary> /// <param name="record">RecReportStd</param> /// <returns>List<RecReportLayoutStd></returns> public List<RecReportLayoutStd> LoadReportDetails( RecReportStd record ) { string company = Util.FactoryToCompany( record.Factory ); ImpactQuery query = new ImpactQuery() { Select = { ImpReportLayoutStd.Factory, ImpReportLayoutStd.Project, ImpReportLayoutStd.ReportId, ImpReportLayoutStd.FieldName, ImpReportLayoutStd.CellX, ImpReportLayoutStd.CellY, ImpReportLayoutStd.FieldType, }, From = { ImpReportLayoutStd.As( "T1" ) }, Where = { ImpReportLayoutStd.Factory.Equal( company ), ImpReportLayoutStd.Project.Equal( company ), ImpReportLayoutStd.ReportId.Equal( record.ReportId ) }, OrderBy = { ImpReportLayoutStd.FieldType, ImpReportLayoutStd.CellX }, }; string statement = query.ToString(); List<RecReportLayoutStd> result; using( ImpactDatabase database = new ImpactDatabase() ) { result = database.GetAll( statement, Parselayout ); } return result; }
/// <summary> /// Parses one row in <see cref="System.Data.Common.DbDataReader"/> into /// a new instance of <see cref="Paths.Common.Records.RecReportStd"/>. /// </summary> /// <param name="dataReader">The data reader.</param> /// <returns>A new instance of <see cref="Paths.Common.Records.RecReportStd"/>.</returns> public static RecReportStd ParseReport( DbDataReader dataReader ) { var record = new RecReportStd { Factory = dataReader[0].Cast<string>(), Project = dataReader[1].Cast<string>(), ReportId = dataReader[2].Cast<int>(), Name = dataReader[3].Cast<string>(), ReportType = dataReader[4].Cast<int>(), Filename = dataReader[5].Cast<string>(), Foldername = dataReader[6].Cast<string>(), PageMaxX = dataReader[7].Cast<int>(), PageMaxY = dataReader[8].Cast<int>(), ContinuousHeaderRow = dataReader[9].Cast<int>(), ContinuousStartRow = dataReader[10].Cast<int>(), ContinuousEndRow = dataReader[11].Cast<int>(), ContinuousSumRow = dataReader[12].Cast<int>() }; return record; }