protected void form_DataBound(object sender, EventArgs e) { RMReportMaint graph = this.ds.DataGraph as RMReportMaint; if (graph.IsSiteMapAltered) { this.ds.CallbackResultArg = "RefreshSitemap"; } }
protected void Page_Init(object sender, EventArgs e) { RMReportMaint graph = (RMReportMaint)ds.DataGraph; PXDataSourceViewSchema schema = ds.GetSchema("Report"); RMReport currentReport = graph.Report.Current; RMRowSet currentRowSet = (RMRowSet)graph.Caches[typeof(RMRowSet)].Current; RMColumnSet currentColumnSet = (RMColumnSet)graph.Caches[typeof(RMColumnSet)].Current; RMUnitSet currentUnitSet = (RMUnitSet)graph.Caches[typeof(RMUnitSet)].Current; string currentTypeReport = currentReport != null ? currentReport.Type : null; RMDataSource currentDataSource = graph.DataSourceByID.Current; if (currentTypeReport == null) { graph.Report.Current = currentReport = new RMReport(); } if (currentRowSet == null) { graph.Caches[typeof(RMRowSet)].Current = new RMRowSet(); } graph.Caches[typeof(RMColumnSet)].Current = null; graph.Caches[typeof(RMUnitSet)].Current = null; Dictionary <string, List <PXFieldSchema> > controls = new Dictionary <string, List <PXFieldSchema> >(); string[] arrTypes = ((PXStringState)graph.Report.Cache.GetStateExt <RMReport.type>(null)).AllowedValues; foreach (string type in arrTypes) { graph.Report.Current.Type = type; ((RMRowSet)graph.Caches[typeof(RMRowSet)].Current).Type = type; graph.Report.Current = currentReport; graph.DataSourceByID.Current = null; List <PXFieldSchema> lControls = new List <PXFieldSchema>(); List <PXFieldSchema> list = RefreshFieldsList(schema, graph); foreach (PXFieldSchema f in list) { if (f.DataType == TypeCode.Object) { continue; } if (!ContainsControlDictionary(f, controls)) { lControls.Add(f); } } controls.Add(type, lControls); } if (currentTypeReport == null) { graph.Report.Cache.Clear(); } else { graph.Report.Current.Type = currentTypeReport; } graph.DataSourceByID.Current = currentDataSource; graph.Caches[typeof(RMRowSet)].Current = currentRowSet; graph.Caches[typeof(RMColumnSet)].Current = currentColumnSet; graph.Caches[typeof(RMUnitSet)].Current = currentUnitSet; _insertIndex = 0; foreach (Control control in this.form.TemplateContainer.Controls) { if (!string.IsNullOrEmpty(control.ID)) { if (!control.ID.Equals("edStartUnitCode", StringComparison.OrdinalIgnoreCase)) { _insertIndex++; } else { break; } } else { _insertIndex++; } } _insertIndex++; PXLayoutRule rule1 = new PXLayoutRule() { ID = "rule1", StartGroup = true, GroupCaption = "Default Data Source Settings" }; (rule1).ApplyStyleSheetSkin(this.Page); this.form.TemplateContainer.Controls.AddAt(_insertIndex, rule1); _insertIndex++; for (int c = arrTypes.Length - 1; c >= 0; c--) { string type = arrTypes[c]; List <PXFieldSchema> lDsControls = new List <PXFieldSchema>(); for (int i = 0; i < controls[type].Count; i++) { if (controls[type][i].DataField.StartsWith("DataSource", StringComparison.OrdinalIgnoreCase) && !controls[type][i].DataField.Equals("datasourceexpand", StringComparison.OrdinalIgnoreCase) && !controls[type][i].DataField.Equals("datasourceamounttype", StringComparison.OrdinalIgnoreCase) && !controls[type][i].DataField.Equals("datasourcestartPeriodOffset", StringComparison.OrdinalIgnoreCase) && !controls[type][i].DataField.Equals("datasourceEndPeriodOffset", StringComparison.OrdinalIgnoreCase) //ContainsControl("Request" + controls[type][i].DataField.Replace("DataSource", string.Empty), controls[type]) ) { lDsControls.Add(controls[type][i]); } } int cntFirstColumn = lDsControls.Count / 2; if ((lDsControls.Count % 2) > 0) { cntFirstColumn++; } for (int i = 0; i < cntFirstColumn; i++) { AddControl(lDsControls[i], controls[type]); if ((lDsControls.Count - 1) >= (i + cntFirstColumn)) { AddControl(lDsControls[i + cntFirstColumn], controls[type]); } } } PXDropDown edDataSourceAmountType = new PXDropDown() { ID = "edDataSourceAmountType", AllowNull = false, DataField = "DataSourceAmountType" }; form.TemplateContainer.Controls.AddAt(_insertIndex, edDataSourceAmountType); (edDataSourceAmountType).ApplyStyleSheetSkin(this.Page); _insertIndex++; PXCheckBox chkApplyRestrictionGroups = new PXCheckBox() { ID = "chkApplyRestrictionGroups", DataField = "ApplyRestrictionGroups" }; form.TemplateContainer.Controls.AddAt(_insertIndex, chkApplyRestrictionGroups); (chkApplyRestrictionGroups).ApplyStyleSheetSkin(this.Page); }
/// <summary> /// Refresh the list of data fields using specified view name. /// </summary> private List <PXFieldSchema> RefreshFieldsList(PXDataSourceViewSchema schema, RMReportMaint graph) { PX.Data.PXFieldState[] fields = schema.GetFields(); List <PXFieldSchema> list = new List <PXFieldSchema>(); if (fields != null) { foreach (PX.Data.PXFieldState f in fields) { if (String.IsNullOrEmpty(f.Name) || !f.Name.StartsWith("DataSource", StringComparison.OrdinalIgnoreCase) && !f.Name.StartsWith("Request", StringComparison.OrdinalIgnoreCase) && !f.Name.StartsWith("UsrRequest", StringComparison.OrdinalIgnoreCase)) { continue; } string dsField = f.Name; if (dsField.StartsWith("DataSource", StringComparison.OrdinalIgnoreCase)) { dsField = dsField.Substring(10); } else if (f.Name.StartsWith("Request", StringComparison.OrdinalIgnoreCase)) { dsField = dsField.Substring(7); } else { dsField = "Usr" + dsField.Substring(10); } PXFieldState dsState = graph.DataSourceByID.Cache.GetStateExt(null, dsField) as PXFieldState; if (dsState == null || !dsState.Visible) { continue; } TypeCode dataType = Type.GetTypeCode(f.DataType); if (dataType == TypeCode.Object) { continue; } PXFieldSchema item = new PXFieldSchema(true, f.Name, dataType); item.ControlType = PXSchemaGenerator.GetControlType(f); item.PrimaryKey = f.PrimaryKey; item.ReadOnly = f.IsReadOnly; item.AllowNull = f.Nullable; item.MaxLength = (f.Length > 0) ? f.Length : 0; item.Precision = (f.Precision > 0) ? f.Precision : 0; item.Caption = f.DisplayName; item.ViewName = f.ViewName; item.HintField = f.DescriptionName; item.FieldList = f.FieldList; item.HeaderList = f.HeaderList; item.DefaultValue = f.DefaultValue; list.Add(item); } } return(list); }
/// <summary> /// Refresh the list of data fields using specified view name. /// </summary> private List<PXFieldSchema> RefreshFieldsList(PXDataSourceViewSchema schema, RMReportMaint graph) { PX.Data.PXFieldState[] fields = schema.GetFields(); List<PXFieldSchema> list = new List<PXFieldSchema>(); if (fields != null) { foreach (PX.Data.PXFieldState f in fields) { if (String.IsNullOrEmpty(f.Name) || !f.Name.StartsWith("DataSource", StringComparison.OrdinalIgnoreCase) && !f.Name.StartsWith("Request", StringComparison.OrdinalIgnoreCase) && !f.Name.StartsWith("UsrRequest", StringComparison.OrdinalIgnoreCase)) continue; string dsField = f.Name; if (dsField.StartsWith("DataSource", StringComparison.OrdinalIgnoreCase)) dsField = dsField.Substring(10); else if (f.Name.StartsWith("Request", StringComparison.OrdinalIgnoreCase)) dsField = dsField.Substring(7); else dsField = "Usr" + dsField.Substring(10); PXFieldState dsState = graph.DataSourceByID.Cache.GetStateExt(null, dsField) as PXFieldState; if (dsState == null || !dsState.Visible) continue; TypeCode dataType = Type.GetTypeCode(f.DataType); if (dataType == TypeCode.Object) continue; PXFieldSchema item = new PXFieldSchema(true, f.Name, dataType); item.ControlType = PXSchemaGenerator.GetControlType(f); item.PrimaryKey = f.PrimaryKey; item.ReadOnly = f.IsReadOnly; item.AllowNull = f.Nullable; item.MaxLength = (f.Length > 0) ? f.Length : 0; item.Precision = (f.Precision > 0) ? f.Precision : 0; item.Caption = f.DisplayName; item.ViewName = f.ViewName; item.HintField = f.DescriptionName; item.FieldList = f.FieldList; item.HeaderList = f.HeaderList; item.DefaultValue = f.DefaultValue; list.Add(item); } } return list; }