private void textDetail_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { SearchDetail.PerformClick(); } }
/// <summary> /// 画面の初期化処理をおこなう /// </summary> private void ScreenClear() { this.MaintenanceMode = null; if (SearchHeader != null) { SearchHeader = null; } if (SearchDetail != null) { SearchDetail.Clear(); for (int i = 0; i < 10; i++) { SearchDetail.Rows.Add(SearchDetail.NewRow()); } } if (SeikyuTable != null) { SeikyuTable = null; } ChangeKeyItemChangeable(true); ResetAllValidation(); this.txt会社名.Text1 = ccfg.自社コード.ToString(); this.txt伝票番号.Focus(); }
// No-271 Add Start #region F5 行追加 /// <summary> /// F5 リボン 行追加 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void OnF5Key(object sender, KeyEventArgs e) { if (this.MaintenanceMode == null) { return; } if (SearchDetail.Rows.Count >= 10) { MessageBox.Show("明細行数が上限に達している為、これ以上追加できません。", "明細上限", MessageBoxButton.OK, MessageBoxImage.Information); return; } DataRow dtlRow = SearchDetail.NewRow(); dtlRow["伝票番号"] = this.txt伝票番号.Text; if (SearchDetail.Rows.Count > 0) { dtlRow["行番号"] = (int)SearchDetail.Rows[SearchDetail.Rows.Count - 1]["行番号"] + 1; } else { dtlRow["行番号"] = 1; } SearchDetail.Rows.Add(dtlRow); // 行追加後は追加行を選択させる int newRowIdx = SearchDetail.Rows.Count - 1; gcSpreadGrid.ActiveCellPosition = new CellPosition(newRowIdx, (int)GridColumnsMapping.金種コード); }
public ActionResult Index(SearchDetailViewModel model) { if (!ModelState.IsValid) { return(this.View(model)); } using (DatabaseContext con = new DatabaseContext()) { var searchDetail = new SearchDetail { CheckIn = model.CheckIn, CheckOut = model.CheckOut, Location = model.Location, RoomsCount = model.RoomsCount }; con.SearchDetails.Add(searchDetail); con.SaveChanges(); foreach (var roomDetail in model.RoomsList) { var room = new Room { Adults = roomDetail.Adults, Children = roomDetail.Children, SearchId = searchDetail.Id }; con.Rooms.Add(room); con.SaveChanges(); } } return(RedirectToAction("Index", new { message = "You have saved your search." })); }
// GET: Search public ActionResult Index(string txtSearch, bool?hidfIsOr, int id = 1) { int pageSize = 4; int totalCount = 0; PagedList <SearchResult> resultPageList = null; if (!string.IsNullOrEmpty(txtSearch))//如果点击的是查询按钮 { // 索引查询 List <SearchResult> resultList = (hidfIsOr == null || hidfIsOr.Value == false) ? SearchIndexManager.Manager.LenuceAndSearch(txtSearch, id, pageSize, out totalCount) : SearchIndexManager.Manager.LenuceOrSearch(txtSearch, id, pageSize, out totalCount); // 搜索词插入到明细表。 SearchDetail searchDetail = new SearchDetail { Id = Guid.NewGuid(), KeyWords = txtSearch, SearchDateTime = DateTime.Now }; db.SearchDetail.Add(searchDetail); int r = db.SaveChanges(); // 索引结果分页 resultPageList = new PagedList <SearchResult>(resultList, id, pageSize, totalCount); resultPageList.CurrentPageIndex = id; resultPageList.TotalItemCount = totalCount; } // 高频词统计 var keyWords = db.SearchTotal.OrderByDescending(a => a.SearchCounts).Select(x => x.KeyWords).Skip(0).Take(6).ToList(); ViewBag.KeyWords = keyWords; return(View(resultPageList)); }
, UriTemplate = "/?Dpar={Dpar}")] //只接收string类型,如果是其他类型,需要按照 /?para={parameter}的方式来组织。 public string Get(string Dpar) { SearchDetail Um = new SearchDetail(Dpar); string Result = Um.GetList(); return(Result); }
public List <Item> searchAllStores(SearchDetail searchDetail) { if (realBridge != null) { return(realBridge.searchAllStores(searchDetail)); } return(null); }
public override void Execute() { var detail = new SearchDetail <MaterialWarehouseItem>() { StoredProcedure = "srch_material_transactions", SearchText = "Materials Transaction Search" }; var controller = new SearchController <MaterialWarehouseItem>(); controller.SearchByDetail(detail); }
/// <summary> /// Loads the search all materials inventory form. /// </summary> public override void Execute() { var detail = new SearchDetail <IMaterialItem>() { StoredProcedure = "srch_materials_all_items", SearchText = "Materials All Inventory Search" }; var controller = new SearchController <IMaterialItem>(); controller.SearchByDetail(detail); }
public override void Execute() { var detail = new SearchDetail <MaterialConsumableItem>() { StoredProcedure = "srch_materials_consumable_items", SearchText = "Search consumable materials" }; var controller = new SearchController <MaterialConsumableItem>(); controller.SearchByDetail(detail); }
private List <Model.ViewModel.FenCiViewModel> ShowSearchContent() { string indexPath = @"C:\Lucenedir"; List <string> list = FenCiHelper.PanGuSplitWord(Request["txtSearch"]);//对用户输入的搜索条件进行拆分。 FSDirectory directory = FSDirectory.Open(new DirectoryInfo(indexPath), new NoLockFactory()); IndexReader reader = IndexReader.Open(directory, true); IndexSearcher searcher = new IndexSearcher(reader); //搜索条件 PhraseQuery query = new PhraseQuery(); foreach (string word in list)//先用空格,让用户去分词,空格分隔的就是词“计算机 专业” { query.Add(new Term("Content", word)); } //query.Add(new Term("body","语言"));--可以添加查询条件,两者是add关系.顺序没有关系. // query.Add(new Term("body", "大学生")); //query.Add(new Term("body", kw));//body中含有kw的文章 query.Slop = 100;//多个查询条件的词之间的最大距离.在文章中相隔太远 也就无意义.(例如 “大学生”这个查询条件和"简历"这个查询条件之间如果间隔的词太多也就没有意义了。) //TopScoreDocCollector是盛放查询结果的容器 TopScoreDocCollector collector = TopScoreDocCollector.Create(1000, true); searcher.Search(query, null, collector); //根据query查询条件进行查询,查询结果放入collector容器 ScoreDoc[] docs = collector.TopDocs(0, collector.TotalHits).ScoreDocs; //得到所有查询结果中的文档,GetTotalHits():表示总条数 TopDocs(300, 20);//表示得到300(从300开始),到320(结束)的文档内容. //可以用来实现分页功能 List <Model.ViewModel.FenCiViewModel> viewModelList = new List <Model.ViewModel.FenCiViewModel>(); for (int i = 0; i < docs.Length; i++) { // //搜索ScoreDoc[]只能获得文档的id,这样不会把查询结果的Document一次性加载到内存中。降低了内存压力,需要获得文档的详细内容的时候通过searcher.Doc来根据文档id来获得文档的详细内容对象Document. Model.ViewModel.FenCiViewModel viewModel = new Model.ViewModel.FenCiViewModel(); int docId = docs[i].Doc; //得到查询结果文档的id(Lucene内部分配的id) Document doc = searcher.Doc(docId); //找到文档id对应的文档详细信息 viewModel.Id = Convert.ToInt32(doc.Get("Id")); viewModel.Title = doc.Get("Title"); viewModel.Content = FenCiHelper.CreateHightLight(Request["txtSearch"], doc.Get("Content"));//将搜索的内容高亮显示 viewModelList.Add(viewModel); } //将搜索词插入到明细表中 SearchDetail model = new SearchDetail { Id = Guid.NewGuid(), KeyWords = Request["txtSearch"], SearchDateTime = DateTime.Now }; searchDetailService.AddEntity(model); return(viewModelList); }
public override void Execute() { SearchDetail <Packlist> searchDetail = new SearchDetail <Packlist>() { StoredProcedure = "srch_shipping_configuration_packlists", SearchText = "Shipping Configuration Packlists", SearchButtons = new PacklistSearchButtons(), WindowState = FormWindowState.Normal }; SearchController <Packlist> searchController = new SearchController <Packlist>(); searchController.SearchByDetail(searchDetail); }
public override void Execute() { // Initialize a new controller for output only and call // LoadReceivingForm when a item is selected. var detail = new SearchDetail <MaterialPurchaseOrder>() { SearchText = "Material Purchase Order Search", StoredProcedure = "srch_material_purchase_orders", IdColumn = "id", EditFormType = typeof(MaterialsReceivingForm), OnSelection = LoadReceivingForm }; var controller = new SearchController <MaterialPurchaseOrder>(); controller.SearchByDetail(detail); }
private void searchPacklists2Button_Click(object sender, EventArgs e) { var searchDetail = new SearchDetail <Packlist>() { OutputOnly = true, OnSelection = ChangePacklist, StoredProcedure = "srch_shipping_configuration_packlists", SearchText = "Shipping Configuration Packlists", IdColumn = "id", SearchButtons = new PacklistSearchButtons(), WindowState = FormWindowState.Normal, ShowModal = true, MdiParent = null, Session = Session.UnitOfWork }; var searchController = new SearchController <Packlist>(); searchController.SearchByDetail(searchDetail); }
/// <summary> /// データ受信処理 /// </summary> /// <param name="message"></param> public override void OnReceivedResponseData(CommunicationObject message) { try { this.ErrorMessage = string.Empty; var data = message.GetResultData(); DataTable tbl = (data is DataTable) ? (data as DataTable) : null; switch (message.GetMessageName()) { case UpdateData_StockCheck: // No-222 Add Start // 在庫数チェック結果受信 Dictionary <string, string> updateList = data as Dictionary <string, string>; string zaiUpdateMessage = AppConst.CONFIRM_UPDATE; var zaiMBImage = MessageBoxImage.Question; foreach (DataRow row in SearchDetail.Select("", "", DataViewRowState.CurrentRows)) { if (updateList.Count > 0) { zaiMBImage = MessageBoxImage.Warning; zaiUpdateMessage = "在庫がマイナスになる品番が存在しますが、\r\n登録してもよろしいでしょうか?"; break; } } if (MessageBox.Show(zaiUpdateMessage, "登録確認", MessageBoxButton.YesNo, zaiMBImage, MessageBoxResult.Yes) == MessageBoxResult.No) { return; } // No-222 Add End Update(); // 致命的なエラーの場合、以降の処理を中止する if (blnCloseFlg == false) { return; } // 警告がない場合、当該画面を終了する if (blnWarningFlg == true) { // 処理続行確認メッセージを表示する var yesno = MessageBox.Show("警告がありますが処理を続行しますか?", "確認", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No); if (yesno == MessageBoxResult.No) { return; } CloseDataEdited(); } else { CloseDataEdited(); } break; case SearchTableToShin: // セット品で検索された場合 SetHin = tbl.Copy(); break; case MasterCode_MyProduct: #region 自社品番手入力時 DataTable ctbl = data as DataTable; int columnIdx = gridDtb.ActiveColumnIndex; int rIdx = gridDtb.ActiveRowIndex; // フォーカス移動後の項目が異なる場合または編集行が異なる場合は処理しない。 if ((columnIdx != (int)GridColumnsMapping.色コード) || _編集行 != rIdx) { return; } if (ctbl == null || ctbl.Rows.Count == 0) { // 対象データなしの場合 gridDtb.SetCellValue((int)GridColumnsMapping.品番コード, 0); gridDtb.SetCellValue((int)GridColumnsMapping.自社品番, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.自社品名, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.数量, 0m); gridDtb.SetCellValue((int)GridColumnsMapping.単位, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.商品分類, (int)商品分類.その他); gridDtb.SetCellValue((int)GridColumnsMapping.色コード, string.Empty); gridDtb.SetCellValue((int)GridColumnsMapping.色名称, string.Empty); // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品番); // No.425 Add } else if (tbl.Rows.Count > 1) { int cIdx = gcInnerSpreadGrid.ActiveColumnIndex; var colVal = gridDtb.GetCellValueToString((int)GridColumnsMapping.自社品番); int code = int.Parse(SearchHeader["外注先コード"].ToString()); int eda = int.Parse(SearchHeader["外注先枝番"].ToString()); // 自社品番の場合 SCHM09_MYHIN myhin = new SCHM09_MYHIN(code, eda); myhin.TwinTextBox = new UcLabelTwinTextBox(); myhin.txtCode.Text = colVal; myhin.txtCode.IsEnabled = false; myhin.TwinTextBox.LinkItem = 2; if (myhin.ShowDialog(this) == true) { gridDtb.SetCellValue((int)GridColumnsMapping.品番コード, myhin.SelectedRowData["品番コード"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品番, myhin.SelectedRowData["自社品番"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品名, myhin.SelectedRowData["自社品名"]); gridDtb.SetCellValue((int)GridColumnsMapping.数量, 1m); gridDtb.SetCellValue((int)GridColumnsMapping.単位, myhin.SelectedRowData["単位"]); gridDtb.SetCellValue((int)GridColumnsMapping.商品分類, myhin.SelectedRowData["商品分類"]); gridDtb.SetCellValue((int)GridColumnsMapping.色コード, myhin.SelectedRowData["自社色"]); gridDtb.SetCellValue((int)GridColumnsMapping.色名称, myhin.SelectedRowData["自社色名"]); // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品名); // No.425 Add } else { // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品番); // No.425 Add } } else { // 対象データありの場合 DataRow drow = ctbl.Rows[0]; gcInnerSpreadGrid.BeginEdit(); gridDtb.SetCellValue((int)GridColumnsMapping.品番コード, drow["品番コード"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品番, drow["自社品番"]); gridDtb.SetCellValue((int)GridColumnsMapping.自社品名, drow["自社品名"]); gridDtb.SetCellValue((int)GridColumnsMapping.数量, 1m); gridDtb.SetCellValue((int)GridColumnsMapping.単位, drow["単位"]); gridDtb.SetCellValue((int)GridColumnsMapping.商品分類, drow["商品分類"]); gridDtb.SetCellValue((int)GridColumnsMapping.色コード, drow["自社色"]); gridDtb.SetCellValue((int)GridColumnsMapping.色名称, drow["色名称"]); // 自社品番のセルをロック // 数量以外はロック gridDtb.SetCellLocked((int)GridColumnsMapping.品番コード, true); gridDtb.SetCellLocked((int)GridColumnsMapping.自社品番, true); gridDtb.SetCellLocked((int)GridColumnsMapping.自社品名, false); // No.391 Add gridDtb.SetCellLocked((int)GridColumnsMapping.単位, true); gridDtb.SetCellLocked((int)GridColumnsMapping.商品分類, true); gridDtb.SetCellLocked((int)GridColumnsMapping.色コード, true); gridDtb.SetCellLocked((int)GridColumnsMapping.色名称, true); // フォーカス位置の設定 gridDtb.SetCellFocus(rIdx, (int)GridColumnsMapping.自社品名); // No.425 Add } InnerDetail.Rows[rIdx].EndEdit(); #endregion break; default: break; } } catch (Exception ex) { ErrorMessage = ex.Message; } }
public static SearchDetail <T> GetSearchDetailsFor <T>() { var searchDetail = new SearchDetail <T>(); if (typeof(T) == typeof(Order)) { searchDetail.SearchText = "Order Search"; searchDetail.StoredProcedure = "srch_Orders"; searchDetail.IdColumn = "id"; searchDetail.MdiParent = MainForm.GetInstance(); searchDetail.EditFormType = typeof(mainOrderForm); return(searchDetail); } if (typeof(T) == typeof(PurchaseOrder)) { searchDetail.SearchText = "Purchase Order Search"; searchDetail.StoredProcedure = "srch_PO_Receiving"; searchDetail.IdColumn = "id"; searchDetail.EditFormType = typeof(receivingForm); return(searchDetail); } if (typeof(T) == typeof(InventoryItem)) { searchDetail.SearchText = "Inventory Search"; searchDetail.StoredProcedure = "srch_Inventory_Search"; searchDetail.IdColumn = null; searchDetail.EditFormType = null; searchDetail.SearchButtons = new InventorySearchButtons(); return(searchDetail); } if (typeof(T) == typeof(SalesOrder)) { searchDetail.SearchText = "Sales Order Search"; searchDetail.StoredProcedure = "srch_SO_Shipping"; searchDetail.IdColumn = "id"; searchDetail.EditFormType = typeof(shippingForm); return(searchDetail); } if (typeof(T) == typeof(Transaction)) { searchDetail.SearchText = "Transaction Search"; searchDetail.StoredProcedure = "srch_transaction_search"; searchDetail.IdColumn = null; searchDetail.EditFormType = null; searchDetail.SearchButtons = new UnitHistorySearchButtons(); return(searchDetail); } if (typeof(T) == typeof(Part)) { searchDetail.SearchText = "Parts Search"; searchDetail.StoredProcedure = "srch_Parts"; searchDetail.IdColumn = "Id"; searchDetail.EditFormType = typeof(PartEditForm); return(searchDetail); } if (typeof(T) == typeof(Tote)) { searchDetail.SearchText = "Tote Search"; searchDetail.StoredProcedure = "srch_totes"; searchDetail.IdColumn = "area_id"; searchDetail.EditFormType = typeof(ToteManagerForm); return(searchDetail); } if (typeof(T) == typeof(ServiceRoute)) { searchDetail.SearchText = "Service route search"; searchDetail.StoredProcedure = "srch_routes"; searchDetail.IdColumn = "id"; searchDetail.EditFormType = typeof(RouteBuilderForm); return(searchDetail); } if (typeof(T) == typeof(InventoryCapture)) { searchDetail.SearchText = "Inventory capture search"; searchDetail.StoredProcedure = "srch_inventory_captures"; searchDetail.IdColumn = "id"; searchDetail.EditFormType = typeof(InventoryCaptureManager); return(searchDetail); } if (typeof(T) == typeof(PartFamily)) { searchDetail.SearchText = "Part Family Search"; searchDetail.StoredProcedure = "srch_part_families"; searchDetail.IdColumn = "id"; searchDetail.EditFormType = typeof(PartFamilyForm); return(searchDetail); } if (typeof(T) == typeof(MaterialPurchaseOrder)) { searchDetail.SearchText = "Material Purchase Order Search"; searchDetail.StoredProcedure = "srch_material_purchase_orders"; searchDetail.IdColumn = "id"; searchDetail.EditFormType = typeof(MaterialsPurchaseOrderForm); return(searchDetail); } return(null); }
/// <summary> /// 获得搜索内 /// </summary> /// <returns></returns> private List <ViewModelContent> ShowSearchContent() { //string indexPath = @"C:\lucenedir"; string indexPath = Server.MapPath("~/lucenedir"); List <string> list = Common.WebCommon.PanGuSplitWord(Request["txtSearch"].Trim());//对用户输入的搜索条件进行拆分。 FSDirectory directory = FSDirectory.Open(new DirectoryInfo(indexPath), new NoLockFactory()); IndexReader reader = IndexReader.Open(directory, true); IndexSearcher searcher = new IndexSearcher(reader); //搜索条件-简单 //PhraseQuery query = new PhraseQuery(); //foreach (string word in list)//先用空格,让用户去分词,空格分隔的就是词“计算机 专业” //{ // query.Add(new Term("Content", word));//根据内容 //} //query.SetSlop(100);//多个查询条件的词之间的最大距离.在文章中相隔太远 也就无意义.(例如 “大学生”这个查询条件和"简历"这个查询条件之间如果间隔的词太多也就没有意义了。) //改造搜索条件 PhraseQuery query = new PhraseQuery(); foreach (string word in list) //先用空格,让用户去分词,空格分隔的就是词“计算机 专业” { query.Add(new Term("Content", word)); //根据内容 } query.SetSlop(100); //多个查询条件的词之间的最大距离.在文章中相隔太远 也就无意义.(例如 “大学生”这个查询条件和"简历"这个查询条件之间如果间隔的词太多也就没有意义了。) PhraseQuery queryTitle = new PhraseQuery(); foreach (string word in list) //先用空格,让用户去分词,空格分隔的就是词“计算机 专业” { queryTitle.Add(new Term("Title", word)); //根据内容 } queryTitle.SetSlop(100); //组合搜索条件 BooleanQuery booleanQuery = new BooleanQuery(); booleanQuery.Add(query, BooleanClause.Occur.SHOULD); booleanQuery.Add(queryTitle, BooleanClause.Occur.SHOULD); //query.Add(new Term("body","语言"));--可以添加查询条件,两者是add关系.顺序没有关系. // query.Add(new Term("body", "大学生")); // query.Add(new Term("body", kw));//body中含有kw的文章 //TopScoreDocCollector是盛放查询结果的容器 TopScoreDocCollector collector = TopScoreDocCollector.create(1000, true); searcher.Search(booleanQuery, null, collector); //根据query查询条件进行查询,查询结果放入collector容器 ScoreDoc[] docs = collector.TopDocs(0, collector.GetTotalHits()).scoreDocs; //得到所有查询结果中的文档,GetTotalHits():表示总条数 TopDocs(300, 20);//表示得到300(从300开始),到320(结束)的文档内容. //可以用来实现分页功能 List <ViewModelContent> viewModelList = new List <ViewModelContent>(); for (int i = 0; i < docs.Length; i++) { // //搜索ScoreDoc[]只能获得文档的id,这样不会把查询结果的Document一次性加载到内存中。降低了内存压力,需要获得文档的详细内容的时候通过searcher.Doc来根据文档id来获得文档的详细内容对象Document. ViewModelContent viewModel = new ViewModelContent(); int docId = docs[i].doc; //得到查询结果文档的id(Lucene内部分配的id) Document doc = searcher.Doc(docId); //找到文档id对应的文档详细信息 viewModel.Id = Convert.ToInt32(doc.Get("Id")); // 取出放进字段的值 //viewModel.Title = doc.Get("Title"); viewModel.Title = Common.WebCommon.CreateHightLight(Request["txtSearch"], doc.Get("Title")); //将搜索的关键字高亮显示。 viewModel.Content = Common.WebCommon.CreateHightLight(Request["txtSearch"], doc.Get("Content")); //将搜索的关键字高亮显示。 viewModelList.Add(viewModel); } //先将搜索的词插入到明细表。 SearchDetail searchDetail = new SearchDetail(); //searchDetail.Id = Guid.NewGuid(); searchDetail.KeyWords = Request["txtSearch"].Trim(); searchDetail.SearchDateTime = DateTime.Now; Db.SearchDetail.Add(searchDetail); Db.SaveChanges(); return(viewModelList); }
/// <summary> /// 入力内容の検証をおこなう /// </summary> /// <returns></returns> private bool isFormValidation() { bool isResult = false; #region 【ヘッダ】必須入力チェック // 入金日 if (string.IsNullOrEmpty(this.txt入金日.Text)) { this.txt入金日.Focus(); base.ErrorMessage = string.Format("入金日が入力されていません。"); return(isResult); } // 得意先・入金元販社 // REMARKS:どちらかの設定が必要 if ((string.IsNullOrEmpty(this.txt得意先.Text1) || string.IsNullOrEmpty(txt得意先.Text2)) && string.IsNullOrEmpty(txt入金元販社.Text1)) { this.txt得意先.Focus(); base.ErrorMessage = string.Format("得意先または入金元販社が入力されていません。"); return(isResult); } else if ((!string.IsNullOrEmpty(this.txt得意先.Text1) || !string.IsNullOrEmpty(txt得意先.Text2)) && !string.IsNullOrEmpty(txt入金元販社.Text1)) { this.txt得意先.Focus(); base.ErrorMessage = string.Format("得意先または入金元販社のどちらかしか設定できません。"); return(isResult); } #endregion #region 【明細】入力チェック // 【明細】詳細データが1件もない場合はエラー // No-271 Mod Start // 金種コード入力件数取得 int intInpCnt = SearchDetail.AsEnumerable() .Where(w => w.Field <string>("金種コード") != null && !w.Field <string>("金種コード").Equals("0")) .Count(); // 明細件数チェック if (SearchDetail == null || SearchDetail.Rows.Count == 0 || intInpCnt == 0) // No-271 Mod End { base.ErrorMessage = string.Format("明細情報が1件もありません。"); return(isResult); } int rIdx = 0; bool isDetailErr = false; foreach (DataRow row in SearchDetail.Rows) { // 削除行は検証対象外 if (row.RowState == DataRowState.Deleted) { continue; } // 追加行未入力レコードはスキップ if (row["金種コード"] == null || string.IsNullOrEmpty(row["金種コード"].ToString()) || row["金種コード"].ToString().Equals("0")) { continue; } // エラー情報をクリア gcSpreadGrid.Rows[rIdx].ValidationErrors.Clear(); // 金額の未入力チェック if (string.IsNullOrEmpty(row["金額"].ToString())) { gcSpreadGrid.Rows[rIdx] .ValidationErrors.Add(new SpreadValidationError("金額が入力されていません。", null, rIdx, GridColumnsMapping.金額.GetHashCode())); if (!isDetailErr) { gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.金額.GetHashCode()); } isDetailErr = true; } // 金種が「手形」の場合は期日が必須 if (string.IsNullOrEmpty(row["期日"].ToString())) { if (int.Parse(row["金種コード"].ToString()).Equals(金種Dic.FirstOrDefault(x => x.Value.Equals("手形")).Key)) // No.145 Mod { gcSpreadGrid.Rows[rIdx] .ValidationErrors.Add(new SpreadValidationError("金種が「手形」の場合は期日の設定が必要です。", null, rIdx, GridColumnsMapping.期日.GetHashCode())); if (!isDetailErr) { gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.期日.GetHashCode()); } isDetailErr = true; } } rIdx++; } if (isDetailErr) { return(isResult); } #endregion return(true); }
/// <summary> /// 取得内容を各コントロールに設定 /// </summary> /// <param name="ds"></param> private void SetTblData(DataSet ds) { // 移動ヘッダ情報設定 DataTable tblHd = ds.Tables[T05_HEADER_TABLE_NAME]; SearchHeader = tblHd.Rows[0]; SearchHeader.AcceptChanges(); // 移動明細情報設定 DataTable tblDtl = ds.Tables[T05_DETAIL_TABLE_NAME]; SearchDetail = tblDtl; SearchDetail.AcceptChanges(); // データ状態から編集状態を設定 if (SearchDetail.Select("金種コード > 0").Count() == 0) { // 新規行を追加 for (int i = 0; i < 10; i++) { DataRow row = SearchDetail.NewRow(); row["伝票番号"] = AppCommon.IntParse(tblHd.Rows[0]["伝票番号"].ToString()); row["行番号"] = (i + 1); SearchDetail.Rows.Add(row); } this.MaintenanceMode = AppConst.MAINTENANCEMODE_ADD; this.txt入金日.Focus(); } else { this.MaintenanceMode = AppConst.MAINTENANCEMODE_EDIT; // 金種名称を設定 int rIdx = 0; foreach (DataRow row in SearchDetail.Rows) { if (string.IsNullOrEmpty(row["金種コード"].ToString())) { continue; } setSpreadGridValue(rIdx, GridColumnsMapping.金種名, 金種Dic[int.Parse(row["金種コード"].ToString())]); rIdx++; } // 不足分レコードを追加 for (int i = SearchDetail.Rows.Count; i < 10; i++) { DataRow row = SearchDetail.NewRow(); row["伝票番号"] = AppCommon.IntParse(tblHd.Rows[0]["伝票番号"].ToString()); row["行番号"] = (i + 1); SearchDetail.Rows.Add(row); } this.gcSpreadGrid.Focus(); this.gcSpreadGrid.ActiveCellPosition = new CellPosition(0, GridColumnsMapping.金種コード.GetHashCode()); } }
/// <summary> /// 手形情報の期日、金額チェックをおこなう /// </summary> /// <param name="dt">得意先情報</param> /// <returns>true:チェックOK / false:NG </returns> private bool CheckTegata(DataTable dt) { // 手形入力確認 var tegata = SearchDetail.AsEnumerable() .Where(w => w.Field <string>("金種コード") != null && w.Field <string>("金種コード").Equals(金種Dic.FirstOrDefault(x => x.Value.Equals("手形")).Key.ToString())).FirstOrDefault(); if (tegata == null) { return(true); } // 請求条件チェック var cond = dt.AsEnumerable() .Where(w => w.Field <int?>("Tサイト2") == null || w.Field <int?>("T入金日2") == null); if (cond.Any() && (SearchHeader["得意先コード"].ToString() != "1" && string.IsNullOrEmpty(SearchHeader["入金元販社コード"].ToString()))) { MessageBox.Show("取引先マスタに手形条件が設定されていません。\n請求条件(サイト、入金日)を設定してください。", "請求条件未登録", MessageBoxButton.OK, MessageBoxImage.Asterisk); return(false); } else { if (MessageBox.Show("取引先マスタに手形条件が設定されていません。\r\n" + AppConst.CONFIRM_UPDATE, "請求条件未登録", MessageBoxButton.YesNo, MessageBoxImage.Asterisk) != MessageBoxResult.Yes) { return(false); } else { return(true); } } // 手形内容チェック int rIdx = 0; bool isCheckErr = true; foreach (DataRow row in SearchDetail.Rows) { // 削除行はチェック対象外 if (row.RowState == DataRowState.Deleted) { continue; } // 追加行未入力レコードはスキップ if (row["金種コード"] == null || string.IsNullOrEmpty(row["金種コード"].ToString()) || row["金種コード"].ToString().Equals("0")) { continue; } // エラー情報をクリア gcSpreadGrid.Rows[rIdx].ValidationErrors.Clear(); if (int.Parse(row["金種コード"].ToString()).Equals(金種Dic.FirstOrDefault(x => x.Value.Equals("手形")).Key)) { // 手形期日チェック //DateTime tagataDateMonth = ((DateTime)SearchHeader["入金日"]).AddMonths(-(int)dt.Rows[0].Field<int?>("Tサイト1")).AddMonths((int)dt.Rows[0].Field<int?>("Tサイト2")); //int サイト日 = (int)dt.Rows[0].Field<int?>("T入金日2"); //if(サイト日 == 31) //{ // サイト日 = DateTime.DaysInMonth(tagataDateMonth.Year, tagataDateMonth.Month); //} //DateTime limitDate = new DateTime(tagataDateMonth.Year, tagataDateMonth.Month, サイト日); ////バッファとして5日後に設定 //limitDate = limitDate.AddDays(5); //if (row.Field<DateTime>("期日") > limitDate) //{ // gcSpreadGrid.Rows[rIdx] // .ValidationErrors.Add(new SpreadValidationError(string.Format("期日が異なります。\n{0}の期日は{1}です。", // dt.Rows[0].Field<string>("略称名"), limitDate.ToString("yyyy/MM/dd")), // null, rIdx, GridColumnsMapping.期日.GetHashCode())); // if (isCheckErr) // { // gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.期日.GetHashCode()); // } // isCheckErr = false; //} // 手形金額チェック // 請求区分.以上の場合 if (dt.Rows[0].Field <int>("T請求区分") == (int)請求区分.以上) { if (row.Field <int>("金額") < dt.Rows[0].Field <int>("T請求条件")) { gcSpreadGrid.Rows[rIdx] .ValidationErrors.Add(new SpreadValidationError(string.Format("手形発行金額が異なります。\n{0:#,0}円以上で手形を入力してください。", dt.Rows[0].Field <int>("T請求条件")), null, rIdx, GridColumnsMapping.金額.GetHashCode())); if (isCheckErr) { gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.金額.GetHashCode()); } isCheckErr = false; } } // 請求区分.以下の場合 else { if (row.Field <int>("金額") > dt.Rows[0].Field <int>("T請求条件")) { gcSpreadGrid.Rows[rIdx] .ValidationErrors.Add(new SpreadValidationError(string.Format("手形発行金額が異なります。\n{0:#,0}円以下で手形を入力してください。", dt.Rows[0].Field <int>("T請求条件")), null, rIdx, GridColumnsMapping.金額.GetHashCode())); if (isCheckErr) { gcSpreadGrid.ActiveCellPosition = new CellPosition(rIdx, GridColumnsMapping.金額.GetHashCode()); } isCheckErr = false; } } } rIdx++; } if (isCheckErr == false) { return(isCheckErr); } //登録確認メッセージPopUp表示 if (MessageBox.Show(AppConst.CONFIRM_UPDATE, "登録確認", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) != MessageBoxResult.Yes) { return(false); } }
/// <summary> /// F09 リボン 登録 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public override void OnF9Key(object sender, KeyEventArgs e) { // Spread編集内容を確定させる gcDetailSpreadGrid.CommitCellEdit(); gcInnerSpreadGrid.CommitCellEdit(); // 画面初期状態または揚り部材明細が未設定の場合、以降の処理を中止する if (MaintenanceMode == null || InnerDetail == null) { return; } // No.423 Add Start #region 空行削除 for (int rowIdx = gridDtb.SpreadGrid.Rows.Count - 1; rowIdx >= 0; rowIdx--) { // 品番コードがnullのデータは削除 if (gridDtb.SpreadGrid.Cells[rowIdx, "品番コード"].Value == null || (int)gridDtb.SpreadGrid.Cells[rowIdx, "品番コード"].Value == 0) { try { // フォーカスがない状態で削除するとエラーが発生するためフォーカスを設定 gridDtb.SpreadGrid.Focus(); gridDtb.SpreadGrid.Rows.Remove(rowIdx); } catch { InnerDetail.Rows.Remove(InnerDetail.Rows[rowIdx]); } if (gridDtb.SpreadGrid.Rows.Count != InnerDetail.Rows.Count) { try { InnerDetail.Rows.Remove(InnerDetail.Rows[rowIdx]); } catch { // エラー処理なし } } } } #endregion // No.423 Add End // 在庫チェックを行う DataSet ds = new DataSet(); ds.Tables.Add(SearchHeader.Table.Copy()); ds.Tables.Add(SearchDetail.Copy()); ds.Tables.Add(InnerDetail.Copy()); base.SendRequest( new CommunicationObject( MessageType.UpdateData, UpdateData_StockCheck, new object[] { ds, ccfg.ユーザID })); }
public NeuroniaViewModel(CoreDispatcher dispatcher, ConsumerData consumerData) : base(Messenger.Default) { SharedDispatcher.Dispatcher = dispatcher; twitterUIComponent = new TwitterUIComponent(); accountList = new ObservableCollection <TwitterAccount>(); TimelineListTab = new ObservableCollection <TimelineTab>(); NowTimelineList = new ObservableCollection <TimelineBase>(); SearchDetail = new SearchDetail(); Setting = new SettingData(); TweetDetail = new TweetDetail(new TimelineRow(Tweet.ZeroTweet, "", Setting, CallRowAction)); DMDetail = new DirectMessageDetail(); UserDetail = new UserDetail(); NotifyMessage = new NotificationMessage(); IsFirstNavigate = true; this.consumerData = consumerData; this.connectionStatusStr = ""; Authorizer = new TwitterAuthorizer(); restTimerCounter = 0; LicenseInfo = CurrentApp.LicenseInformation; RestTimer = new DispatcherTimer(); RestTimer.Interval = TimeSpan.FromMinutes(1); RestTimer.Tick += (s, e) => Task.Run(async() => { await SharedDispatcher.RunAsync(() => { NowTime = DateTime.Now; NowTimeStr = NowTime.ToString("HH:mm"); }); if (restTimerCounter % 2 == 0) { foreach (var tab in TimelineListTab) { foreach (var t in tab.TimelineList) { await t.RestUpdate(); } } } if (restTimerCounter % 10 == 0) { TwitterUIComponent.MentionSuggestSourceList.Clear(); TwitterUIComponent.HashSuggestSourceList.Clear(); foreach (var tab in TimelineListTab) { foreach (var t in tab.TimelineList) { foreach (var ac in (await t.GetTimelineAccountListAsync())) { TwitterUIComponent.MentionSuggestSourceList.Add(ac); } foreach (var ac in (await t.GetTimelineHashTagListAsync())) { TwitterUIComponent.HashSuggestSourceList.Add(ac); } } } } restTimerCounter++; if (restTimerCounter > 100) { restTimerCounter = 0; } }); RestTimer.Start(); CommandInitialize(); timelineWidth = 320; IsFirstLaunch = true; if (LicenseInfo.ProductLicenses["ApplicationTheme"].IsActive) { IsPurchase = true; } else { IsPurchase = false; } }