/// <summary> /// Метод инициализации ссылок на журналы /// </summary> /// <param name="urlBuilder"></param> /// <param name="detectedMenu"></param> /// <returns></returns> protected MainPageUrlBuilder InitMenu(MainPageUrlBuilder urlBuilder, bool detectedMenu) { //если урл не определен, ты определяем урл для данной таблицы if (!detectedMenu) { //проверяем, урл по данной таблице используется или нет if (urlBuilder.UserControl.Equals(TableName + "Edit", StringComparison.OrdinalIgnoreCase) || urlBuilder.UserControl.Equals(TableName + "Journal", StringComparison.OrdinalIgnoreCase)) { //проверяем что имеющиеся ссылки подходят именно этой части меню var keys = urlBuilder.QueryParameters.Keys.Where(r => r.EndsWith(".id")).ToList(); //смотрим либо отсутствуют параметры таблиц, либо они начинаются с текущего референса, тогда считаем текущей таблицей if (keys.Count == 0 || ReferenceName == null || keys.FirstOrDefault(r => r.StartsWith(ReferenceName)) != null) { detectedMenu = true; _isCurrentTable = true; InitMenuByChilds(urlBuilder, true); } } else { //обходим по дочкам и пытаемся определить урл для данной таблицы var detectedUrlBuilder = InitMenuByChilds(urlBuilder, false); if (detectedUrlBuilder != null) { urlBuilder = detectedUrlBuilder; detectedMenu = true; } } } else { //если урл определен, то передаем его дочкам InitMenuByChilds(urlBuilder, true); } //указываем журнал ссылке var setUrl = SetUserControl(urlBuilder); if (detectedMenu) { //выставляем текущему меню ссылку if (setUrl) { _url = urlBuilder.CreateUrl(); } //укарачиваем ссылки по референсам MoveReferenceToParent(urlBuilder, this, Parent); return(DetectedUrlBuilder = urlBuilder); } //если урл не был определен, то убираем все параметры родителей RemoveAllTableReferences(urlBuilder); //выставляем текущему меню ссылку if (setUrl) { _url = urlBuilder.CreateUrl(); } return(null); }
private string GetUrl() { var url = new MainPageUrlBuilder { Page = "MainPage", UserControl = TableName + "Journal", IsDataControl = true, IsSelect = true, IsMultipleSelect = MultipleSelect, SelectMode = SelectMode ?? "none", ViewMode = ViewMode ?? "none", }; return(url.CreateUrl()); }
private static void Export(HttpContext context, string queryParameters, IDataSourceView4 dataSourceView, IExportJournal journal, ICollection <string> selectedValues) { if (!dataSourceView.CheckPermit() || !dataSourceView.CheckPermitExport()) { context.Response.StatusCode = 404; context.Response.End(); return; } var data = selectedValues != null && selectedValues.Count > 0 ? dataSourceView.GetSelectIRowByID(queryParameters, selectedValues.ToArray()) : dataSourceView.GetSelectIRow(queryParameters); var log = InitializerSection.GetSection().LogMonitor; log.Init(); var exportData = data.ToList(); journal.Url = new MainPageUrlBuilder("/MainPage.aspx/data/" + journal.TableName + "Journal" + queryParameters); journal.PrepareExportData(exportData); var args = new JournalExportEventArgs { CheckPermit = true, Columns = GridHtmlGenerator.GetColumnsForExport(journal.GetColumns()), FilterValues = journal.GetFilterValues(), Format = "Excel", Header = journal.TableHeader, LogMonitor = log, Control = new AccessControl(dataSourceView.CheckPermitExport), Data = exportData, }; var url = new MainPageUrlBuilder { UserControl = journal.TableName + "Journal", IsDataControl = true, ShowHistory = true, }; args.ViewJournalUrl = new StringBuilder(); url.CreateUrl(args.ViewJournalUrl); args.ViewJournalUrl.Append("?id.EqualsCollection="); var stream = WebSpecificInstances.GetExcelExporter().GetExcelStream(args); PageHelper.DownloadFile(stream, journal.TableHeader + "." + args.FileNameExtention, context.Response); }
protected internal string GetJournalUrl(MainPageUrlBuilder urlClone) { urlClone.UserControl = TableName + "Journal"; urlClone.IsRead = false; return(urlClone.CreateUrl()); }
protected string GetLookUrl(MainPageUrlBuilder urlClone) { urlClone.UserControl = TableName + "Edit"; urlClone.IsRead = true; return(urlClone.CreateUrl()); }
protected override void OnPreRender(EventArgs e) { FilterTree(); Page.Form.Action = Url.CreateUrl(); base.OnPreRender(e); }
protected void CreateReport(string culture, bool isSubscriptions) { if (webReportManager.Plugin == null) { return; } errorDisplay.Text = ""; ValidateReportEventArgs args = new ValidateReportEventArgs(); if (!webReportManager.Validate(args)) { errorDisplay.ShowError(webReportManager.ErrorText); WriteErrors(errorDisplay, args); return; } //webReportManager.ShowReport(); //StiWebViewer1.Report = webReportManager.Report; //StiWebViewer1.ResetCurrentPage(); if (webReportManager.Plugin != null) { StorageValues values = webReportManager.GetValues(); var sid = new byte[] { }; switch (this.Context.User.Identity.AuthenticationType) { case "Windows": var windowsIdentity = (WindowsIdentity)this.Context.User.Identity; sid = new byte[windowsIdentity.User.BinaryLength]; windowsIdentity.User.GetBinaryForm(sid, 0); break; case "Forms": // note: Получение сида при идентификации по формам. sid = Encoding.Default.GetBytes(User.GetSID()); break; } if (((IWebReportPlugin)webReportManager.Plugin).AllowSaveValuesConditions) { StorageValues.SetStorageValues(webReportManager.Plugin.GetType().FullName, sid, values); } if (!isSubscriptions) { var redirectReportPlugin = webReportManager.Plugin as IRedirectReportPlugin; var backPath = Request.QueryString["backPath"]; var backText = Request.QueryString["text"]; if (string.IsNullOrEmpty(backPath) && webReportManager.Plugin.Visible) { backPath = WebReportManager.GetReportUrl( string.Empty, webReportManager.Plugin.GetType().FullName, string.Empty, string.Empty, false) + "&open=false&setDefaultParams=true"; } if (string.IsNullOrEmpty(backText)) { backText = Resources.SBack; } if (webReportManager.Plugin.Visible) { RememberReports( WebReportManager.GetReportUrl( string.Empty, webReportManager.Plugin.GetType().FullName, string.Empty, string.Empty, false) + "&open=false&setDefaultParams=true", webReportManager.Plugin); } if (redirectReportPlugin != null) { if (redirectReportPlugin.LogViewReport) { Tools.Security.DBDataContext.AddViewReports( Tools.Security.User.GetSID(), HttpContext.Current.User.Identity.Name, HttpContext.Current.User.Identity.Name, ReportInitializerSection.GetReportInitializerSection().ReportPageViewer + "?ClassName=" + redirectReportPlugin.GetType().FullName, HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority), Environment.MachineName, false, redirectReportPlugin.GetType()); } redirectReportPlugin.OpenReport( webReportManager, values, Request.QueryString["rs:format"], culture, HttpUtility.UrlEncode(backPath), backText, Request.QueryString["rs:command"]); } else { var guid = SetSession(values, webReportManager); Response.Redirect( string.Format( "{6}?reportName={0}&expword={4}&values={1}&text={2}&culture={5}&backPath={3}", webReportManager.Plugin.GetType().FullName, guid, backText, HttpUtility.UrlEncode(backPath), Request.QueryString["expword"], culture, ReportInitializerSection.GetReportInitializerSection().ReportingStiReportResultPage)); } // ScriptManager.RegisterStartupScript(btnCreateReport, // GetType(), // "open new window", // string.Format("window.open('ReportResultPage.aspx?reportName={0}&refPerson={1}', '');", // webReportManager.Plugin.GetType().FullName, // refPerson, // Guid.NewGuid().ToString().Replace("-", "")), // true); } else { var guid = SetSession(values, webReportManager); var url = new MainPageUrlBuilder { UserControl = "ReportSubscriptionsEdit", IsDataControl = true, IsNew = true }; url.CustomQueryParameters.Add("guid", guid); /*Определение типа отчета*/ var isSqlReportingServices = Convert.ToByte(webReportManager.Plugin is ISqlReportingServicesPlugin); url.CustomQueryParameters.Add("isSqlReportingServices", isSqlReportingServices.ToString()); url.CustomQueryParameters.Add("reportName", webReportManager.Plugin.GetType().FullName); url.CustomQueryParameters.Add("qscommand", Request.QueryString["rs:command"]); url.CustomQueryParameters.Add("culture", culture); /*Определениe формата выгрузки отчета в зависимости от типа отчета*/ string format = ""; if (isSqlReportingServices == 0) { var webReportPlugin = (IWebReportPlugin)webReportManager.Plugin; var stiPlugin = (IStimulsoftReportPlugin)webReportPlugin; var expToWord = !string.IsNullOrEmpty(Request.QueryString["expword"]); if (!expToWord && stiPlugin.AutoExportTo == null) { format = Request.QueryString["expword"]; } else if (stiPlugin.AutoExportTo != null) { format = stiPlugin.AutoExportTo.Value.ToString(); } } else { format = Request.QueryString["rs:format"]; } /**/ url.CustomQueryParameters.Add("format", format); Page.Response.Redirect(url.CreateUrl(false, true)); } } }