/// <summary> /// Получить элемент окна данных, имеющий спецификацию заданного типа, по идентификатору. /// </summary> public DataWndItem GetDataWndItem(int dataWndID, Type specType, bool throwOnFail = false) { DataWndItem dataWndItem = GetDataWndItem(dataWndID); if (dataWndItem == null) { if (throwOnFail) { throw new ScadaException(string.Format(WebPhrases.DataWndNotFound, dataWndID)); } else { return(null); } } else if (dataWndItem.DataWndSpec == null || dataWndItem.DataWndSpec.GetType() != specType) { if (throwOnFail) { throw new ScadaException(string.Format(WebPhrases.UnexpectedDataWndSpec, dataWndID)); } else { return(null); } } else { return(dataWndItem); } }
/// <summary> /// Добавление контента, прописанного в базе конфигурации. /// </summary> protected void AddContentFromBase(UserRights userRights, Dictionary <string, UiObjSpec> uiObjSpecs, DataAccess dataAccess) { if (userRights != null && uiObjSpecs != null) { List <UiObjProps> uiObjPropsList = dataAccess.GetUiObjPropsList( UiObjProps.BaseUiTypes.Report | UiObjProps.BaseUiTypes.DataWnd); foreach (UiObjProps uiObjProps in uiObjPropsList) { int uiObjID = uiObjProps.UiObjID; if (!uiObjProps.Hidden && userRights.GetUiObjRights(uiObjID).ViewRight) { uiObjSpecs.TryGetValue(uiObjProps.TypeCode, out UiObjSpec uiObjSpec); if (uiObjProps.BaseUiType == UiObjProps.BaseUiTypes.Report) { // добавление элемента отчёта ReportItem reportItem = new ReportItem() { UiObjID = uiObjID, Text = uiObjProps.Title, Path = uiObjProps.Path }; if (uiObjSpec is ReportSpec reportSpec) { if (string.IsNullOrEmpty(reportItem.Text)) { reportItem.Text = reportSpec.Name; } reportItem.Url = uiObjSpec.GetUrl(uiObjID); reportItem.ReportSpec = reportSpec; } if (!string.IsNullOrEmpty(reportItem.Text)) { ReportItems.Add(reportItem); reportItemDict[uiObjID] = reportItem; } } else if (uiObjProps.BaseUiType == UiObjProps.BaseUiTypes.DataWnd) { // добавление элемента окна данных DataWndItem dataWndItem = new DataWndItem() { UiObjID = uiObjID, Text = uiObjProps.Title, Path = uiObjProps.Path }; if (uiObjSpec is DataWndSpec dataWndSpec) { if (string.IsNullOrEmpty(dataWndItem.Text)) { dataWndItem.Text = dataWndSpec.Name; } dataWndItem.Url = uiObjSpec.GetUrl(uiObjID); dataWndItem.DataWndSpec = dataWndSpec; } if (!string.IsNullOrEmpty(dataWndItem.Text)) { DataWndItems.Add(dataWndItem); dataWndItemDict[uiObjID] = dataWndItem; } } } } } }