protected void OnReportTypeValueChanged(object sender, ValueChangedEventArgs e)
        {
            var old_report_type = e.OldValue.ToInt();

            if (0 != old_report_type)
            {
                StoresClientScripts.ConfirmSaveStoresOrder(this, old_report_type);
            }

            var new_report_type = e.NewValue.ToInt();

            if (0 != new_report_type)
            {
                //Для того чтобы избежать лишних обновлений, которые случаются при выборе нового типа отчетов по складам
                object old_value = null;
                if (_table.SqlParams.TryGetValue("@КодТипаОтчётаПоСкладам", out old_value) &&
                    new_report_type == ((string)old_value).ToInt())
                {
                    return;
                }

                StoresClientScripts.UpdateReportType(this);
                FilterApply();
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (V4IsPostBack)
            {
                return;
            }

            Title = Resx.GetString("STORE_ReportTitle");

            StoresClientScripts.InitializeGlobalVariables(this);

            _table = new TemplatedSqlResult(this, "StoreReport", null, "StoreOrder.xslt",
                                            SQLQueries.SELECT_ОтчётыПоСкладам, CommandType.Text);

            var pageHelper = new StoresPageHelper(Request,
                                                  ReturnId != "1" ? new AppParamsManager(ClId, StoresPageHelper.ReportParametersNamesCollection) : null);

            var isRequired  = false;
            var strReportId = pageHelper.getRequestParameterValue("id", out isRequired);

            if (isRequired)
            {
                pageHelper.setSelectCtrlValue(sStoreReportType, ((int)SelectEnum.Contain).ToString(), strReportId,
                                              isRequired);
            }
            else
            {
                pageHelper.setSelectCtrlParameterValue(sStoreReportType, null, StoresPageHelper.ReportParameters.Type);
            }

            //string strRowsPerPage = pageHelper.getParameterValue(StoresPageHelper.ReportParameters.ResultsPerPage, out isRequired, string.Empty);
            //pageBar.RowsPerPage = strRowsPerPage.ToInt();

            if (!string.IsNullOrEmpty(sStoreReportType.Value))
            {
                FilterApply();
            }

            StoresClientScripts.ClearSelectedStores(this);

            _SizePosKeeper = new WndSizePosKeeper(this, StoresPageHelper.WindowParameters.RptLeft,
                                                  StoresPageHelper.WindowParameters.RptTop, StoresPageHelper.WindowParameters.RptWidth,
                                                  StoresPageHelper.WindowParameters.RptHeight);
            _SizePosKeeper.OnLoad();
        }
        public void ProcessCommand(string cmd, NameValueCollection param)
        {
            switch (cmd)
            {
            case "SaveWindowSizePos":
                StoreWindowSize(param["x"], param["y"], param["width"], param["height"]);
                break;

            case "PageClose":
                if (_page_closed)
                {
                    break;
                }
                StoresClientScripts.SendWindowSizePos(_p);
                _page_closed = true;
                break;
            }
        }
        public void OnLoad()
        {
            //Восстановление размеров окна
            var WindowParameterNamesCollection = new StringCollection {
                _paramX, _paramY, _paramWidth, _paramHeight
            };

            var pageHelper2 =
                new StoresPageHelper(_p.Request, new AppParamsManager(_p.ClId, WindowParameterNamesCollection));
            var isRequired2 = false;
            var strX        = pageHelper2.getParameterValue(_paramX, out isRequired2, "-1");
            var strY        = pageHelper2.getParameterValue(_paramY, out isRequired2, "-1");
            var strWidth    = pageHelper2.getParameterValue(_paramWidth, out isRequired2, "640");
            var strHeight   = pageHelper2.getParameterValue(_paramHeight, out isRequired2, "480");

            if (strWidth.ToInt() > 0 && strHeight.ToInt() > 0)
            {
                StoresClientScripts.SetWindowSizePos(_p, strX, strY, strWidth, strHeight);
            }
            //размеры восстановлены
        }
        /// <summary>
        ///     Метод осуществляет поиск в соответствии с установленными параметрами
        /// </summary>
        private void FilterApply()
        {
            originalStoresId = null;
            StoresClientScripts.SendSetInnerHtml(this, "StoreReport", string.Empty);

            var report_type = sStoreReportType.Value.ToInt();

            if (report_type == 0)
            {
                return;
            }

            //pageBar.SetDisabled(true, false);

            _table.SqlParams.Clear();
            _table.SqlParams.Add("@КодТипаОтчётаПоСкладам",
                                 string.IsNullOrEmpty(sStoreReportType.Value) ? DBNull.Value : (object)sStoreReportType.Value);

            //pageBar.CurrentPageNumber = 1;

            FilterUpdate();
        }
Exemplo n.º 6
0
        /// <summary>
        ///     Метод устанавливает параметры сортировки и отправляет запрос поиска в БД в соответствии с ранее установленными
        ///     параметрами.
        ///     Отображает или обновляет таблицу с результатами поиска
        /// </summary>
        public DataTable Update()
        {
            var rowNumber    = "-1";
            var pageNum      = null == _pageBar ? "-1" : _pageBar.CurrentPageNumber.ToString();
            var itemsPerPage = null == _pageBar ? "-1" : _pageBar.RowsPerPage.ToString();
            var pageCount    = "-1";

            var strSort = GetSortMode(-1);

            if (_sqlCmdType == CommandType.StoredProcedure)
            {
                SqlParams["@Sort"] = strSort;
            }

            var dtStoresResult = DBManager.GetData(sqlCmd, Config.DS_person, _sqlCmdType, SqlParams, null, strSort,
                                                   string.Empty, null, null, null, ref pageNum, ref itemsPerPage, ref pageCount, out rowNumber);

            if (null == dtStoresResult)
            {
                StoresClientScripts.SendSetInnerHtml(_parentPage, _divId, string.Empty);
                if (null != _pageBar)
                {
                    _pageBar.SetDisabled(true, true);
                }
                return(null);
            }

            if (null != _pageBar)
            {
                _pageBar.MaxPageNumber = pageCount.ToInt();

                while (_pageBar.MaxPageNumber < _pageBar.CurrentPageNumber)
                {
                    //Такая ситуация возможна при удалении последней записи на последней странице
                    //Используем --_pageBar.CurrentPageNumber > 0 что избежать бесконечной рекурсии
                    if (--_pageBar.CurrentPageNumber > 0 && _pageBar.CurrentPageNumber <= _pageBar.MaxPageNumber)
                    {
                        return(Update());
                    }
                }

                _pageBar.SetDisabled(dtStoresResult.Rows.Count < 1, false);
            }

            var strXmlResult = string.Empty;

            using (var writer = new StringWriter()) //warning : CA2000 : Microsoft.Reliability
            {
                dtStoresResult.WriteXml(writer);
                strXmlResult = writer.ToString();
            }

            var xslt = new XslCompiledTransform();

            xslt.Load(_parentPage.Server.MapPath(_template));

            var argsList = new XsltArgumentList();

            var ed = new EmpoyeeData(_parentPage);

            argsList.AddExtensionObject("urn:kesco-stores-person", ed);
            if (_parentPage.ReturnId == "1")
            {
                argsList.AddParam("return_id", "", true);
            }

            if (null == _pageBar)
            {
                argsList.AddParam("total_count", "", dtStoresResult.Rows.Count);
                argsList.AddParam("current_page", "", 1);
                argsList.AddParam("page_size", "", dtStoresResult.Rows.Count);
            }
            else
            {
                argsList.AddParam("total_count", "", rowNumber);
                argsList.AddParam("current_page", "", _pageBar.CurrentPageNumber);
                argsList.AddParam("page_size", "", _pageBar.RowsPerPage);
            }

            using (var sreader = new StringReader(strXmlResult)) //warning : CA2000 : Microsoft.Reliability
            {
                var xreader = new XmlTextReader(sreader);
                using (var swriter = new StringWriter()) //warning : CA2000 : Microsoft.Reliability
                {
                    var xwriter = new XmlTextWriter(swriter);

                    xslt.Transform(xreader, argsList, xwriter);
                    StoresClientScripts.SendSetInnerHtml(_parentPage, _divId, swriter.ToString());
                    //_parentCtrl.Value = swriter.ToString();
                }
            }

            //Таблицу необходимо перерисовать в любом случае (возможно она была отображена с другими стилями)
            //При изменении содержимого элементов из JavaScript (изменили аттрибут class) серверные значения Value
            //остаются неизменными, что приводит к неправильному определению изменения содержимого элемента
            //Но !!! При выполнении какой-либо следующей команды, все изменения сделанные на стороне клиента будут отменены...
            //_parentCtrl.SetPropertyChanged("Value");

            return(dtStoresResult);
        }