示例#1
0
        public IActionResult Search(Search_param _params, int now_page = 1)
        {
            clear_session(); //Sessionのクリア
            if (_params.Start_day.ToString("yyyy") != null)
            {
                HttpContext.Session.SetString("date1", _params.Start_day.ToString("yyyy-MM-dd"));
                ViewBag.date1 = _params.Start_day.ToString("yyyy") == "0001" ? null : HttpContext.Session.GetString("date1");
            }
            else
            {
                ViewBag.date1 = "yyyy-MM-dd";
            }
            if (_params.End_day != null)
            {
                HttpContext.Session.SetString("date2", _params.End_day.ToString("yyyy-MM-dd"));
                ViewBag.date2 = _params.End_day.ToString("yyyy") == "0001" ? null : HttpContext.Session.GetString("date2");
            }
            else
            {
                ViewBag.date2 = "yyyy-MM-dd";
            }
            if (_params.Word != null)
            {
                HttpContext.Session.SetString("freeword", _params.Word);
                ViewBag.freeword = HttpContext.Session.GetString("freeword");
            }
            ViewBag.Check = _params.Check ? true : false;
            if (_params.Check)
            {
                HttpContext.Session.SetString("check", "Checked");
            }
            var          _list          = Search_Target();
            SearchInqury _search_inqury = new SearchInqury(_list, _params.Start_day, _params.End_day, _params.Check, _params.Word);
            var          _result        = _search_inqury.Search_start();

            if (_result.Count() == 0)
            {
                ViewBag.error = " 該当データはありません";
            }
            else
            {
                ViewBag.error = String.Format(" {0}件ヒット", _result.Count().ToString());
            }
            Pagenation pages    = new Pagenation(_result.AsQueryable().AsNoTracking(), 20);
            var        _result2 = pages.Pager(now_page);
            //_srにはページネーションをどこまで出すかをLIST<int>で渡している。
            var _sr = pages.Separate_now(now_page);

            if (_sr.Count() <= 1)  //1件未満の場合はViewでは非表示にする。
            {
                ViewBag.separate = new List <int>();
            }
            else
            {
                ViewBag.separate = _sr;
            }
            ViewBag.now_page = now_page;
            return(View("Index", _result2));
        }
示例#2
0
        //[AuthorizationFilter] Excelファイルをダウンロードさせるため、ログイン必須を解除
        public async Task <IActionResult> Export(Search_param _params, bool excel = false, bool monthly_report = false)
        {
            // Sessionに保持している値を変数に格納する。(後にサブルーチンに渡します)
            var check = _params.Check;
            var date1 = Convert.ToDateTime(_params.Start_day);
            var date2 = Convert.ToDateTime(_params.End_day);
            var word  = _params.Word;

            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); //SHIFT_JISを使えるようにする。
            StringBuilder csv         = new StringBuilder("");
            Downloader    _downloader = new Downloader(this._context);
            //CSVのヘッダー情報を取得する。
            IQueryable <Mst_Download> header = await Task.Run(() => this._context.Mst_Download
                                                              .OrderBy(x => x.Order_No)
                                                              .OrderBy(x => x.Id).AsQueryable());

            int _length = header.Select(x => x.Column_Name).Count(); //要素数を取得する。

            foreach (var v in header)
            {
                if (csv.Length >= 1)
                {
                    csv.Append(",");
                }
                csv.Append(v.Column_Name);
            }
            csv.Append("\r\n");
            csv.Append(_downloader.Get_Inqury(header, _length, date1, date2, check, word));
            if (excel)  //Excelのダウンロードの際に使用する。
            {
                //string date = "";
                string file_name = "";
                //Excelファイル名定義
                if (monthly_report) //月報の場合
                {
                    file_name = _params.Start_day.ToString("yyyy年M月月報");
                }
                else if (_params.Start_day.ToString() == "0001/01/01 0:00:00" && _params.End_day.ToString() == "0001/01/01 0:00:00")
                {
                    file_name = String.Format(@"問合せ表({0})", DateTime.Today.ToString("M月dd日"));
                }
                else if (_params.Start_day.ToString() == "0001/01/01 0:00:00")
                {
                    file_name = String.Format(@"問合せ表({0})", _params.End_day.ToString("M月dd日"));
                }
                else
                {
                    file_name = String.Format(@"問合せ表({0})", _params.Start_day.ToString("M月dd日"));
                }

                byte[] excel_file = _downloader.Create_Excel(file_name, csv);
                return(File(excel_file, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", file_name + ".xlsx"));
            }
            var result = Encoding.GetEncoding("Shift_JIS").GetBytes(csv.ToString()); //文字列をバイナリ化

            return(File(result, "text/csv", "inquiry.csv"));
        }