/// <summary> /// 初始化数据 /// </summary> private void InitData() { IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); //小区 cbArea.Items.Add(new Model.ComboBoxItem("请选择小区", 0)); cbBuild.Items.Add(new Model.ComboBoxItem("请选择楼栋", 0)); cbUnit.Items.Add(new Model.ComboBoxItem("请选择单元", 0)); cbRoom.Items.Add(new Model.ComboBoxItem("请选择房间", 0)); cbArea.SelectedIndex = 0; cbBuild.SelectedIndex = 0; cbUnit.SelectedIndex = 0; cbRoom.SelectedIndex = 0; IList <Model.Building> lsAll = objDAL.GetListByWhere(-1, 100000, "1=1"); //小区 IList <Model.Building> listArea = lsAll.Where(s => s.FID == 0).ToList(); if (!(listArea == null || listArea.Count <= 0)) { foreach (Model.Building model in listArea) { cbArea.Items.Add(new Model.ComboBoxItem(string.Format("{0}|{1}", model.BName.Replace("|", ""), FormatBuildingCode(model.Code)), model.ID)); } } }
/// <summary> /// 绑定数据到列表 /// </summary> /// <param name="selNum">数据条数</param> /// <param name="sqlWhereAndOrderBy">条件</param> protected override void BindLVData(int selNum = 0, string sqlWhereAndOrderBy = null) { this.lvContent.BeginUpdate(); this.lvContent.Items.Clear(); try { if (selNum <= 0) { selNum = this.DefaultPageSize; } if (string.IsNullOrEmpty(sqlWhereAndOrderBy) || sqlWhereAndOrderBy.Equals("")) { sqlWhereAndOrderBy = "1=1"; } this.CurrentSqlWhere = sqlWhereAndOrderBy; IList <Building> listData = null; IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); listData = objDAL.GetListByWhere(this._DataType, selNum, sqlWhereAndOrderBy); if (!(listData == null || listData.Count <= 0)) { foreach (Building model in listData) { ListViewItem item = null; //当前模块 switch (this._DataType) { case 0: //小区 //序号,50|小区名称,100|小区编码,80|小区序列号,130|管理员姓名,100|管理员联系电话,110 item = new ListViewItem(new string[] { Convert.ToString(this.lvContent.Items.Count + 1), model.BName, FormatBuildingCode(model.Code), model.BuildingSerialNo, model.Contact, model.Tel }); break; case 1: //栋 //序号,50|楼栋名称,100|楼栋编码,80|所在小区,100|管理员姓名,100|管理员联系电话,110 item = new ListViewItem(new string[] { Convert.ToString(this.lvContent.Items.Count + 1), model.BName, FormatBuildingCode(model.Code), model.FatherInfo.BName, model.Contact, model.Tel }); break; case 2: //单元 //序号,50|单元名称,100|单元编码,80|所在楼栋,100|所在小区,120|管理员姓名,100|管理员联系电话,110 item = new ListViewItem(new string[] { Convert.ToString(this.lvContent.Items.Count + 1), model.BName, FormatBuildingCode(model.Code), model.FatherInfo.BName, model.FatherInfo.FatherInfo.BName, model.Contact, model.Tel }); break; case 3: //房间 //序号,50|房间名称,100|房间编码,80|所在单元,100|所在楼栋,100|所在小区,120|管理员姓名,100|管理员联系电话,110 item = new ListViewItem(new string[] { Convert.ToString(this.lvContent.Items.Count + 1), model.BName, FormatRoomCode(model.Code), model.FatherInfo.BName, model.FatherInfo.FatherInfo.BName, model.FatherInfo.FatherInfo.FatherInfo.BName, model.Contact, model.Tel }); break; } item.Tag = model; item.Font = new Font("宋体", 9, FontStyle.Regular); this.lvContent.Items.Add(item); } } } catch (Exception) { } this.lvContent.EndUpdate(); }
/// <summary> /// 创建选择的数据 /// </summary> private void DeleteSelectedData(object state) { bool bIfSucc = false; string strErrMessag = "未知错误"; SetButtonEnabled(false); try { if (this._FormIfClose) { return; } Model.SelecedTreeNodeData objSelecedTreeNodeData = (Model.SelecedTreeNodeData)state; if (!(objSelecedTreeNodeData.SelectedDataList == null || objSelecedTreeNodeData.SelectedDataList.Count == 0)) { IDAL.IBuilding objDalBuilding = DALFactory.DALFactory.Building(); IDAL.ISys objDalSys = DALFactory.DALFactory.Sys(); foreach (Model.NodeData objData in objSelecedTreeNodeData.SelectedDataList) { if (objData.Flag.Equals(-1)) { //全部 bIfSucc = objDalSys.DeleteData(0); } else if (objData.Flag >= 0 && objData.Flag <= 3) { bool bSucc = objDalBuilding.Delete(objData.ID); if (bSucc) { bIfSucc = bSucc; } } } } if (bIfSucc) { InitTree(); } } catch (Exception err) { strErrMessag = err.Message; } if (bIfSucc) { RefreshTreeByThread(); } SetButtonEnabled(true); if (bIfSucc) { CMessageBox.ShowSucc("恭喜您,删除成功!", Config.DialogTitle); //当建筑信息删除时,通知其他已开启的树 Manager.GetInstance().BuildingDataChangeNotice(); } else { CMessageBox.ShowError(string.Format("对不起,删除失败,错误原因:\r\n{0}", strErrMessag), Config.DialogTitle); } }
private void CbCombo_SelectedIndexChanged(object sender, EventArgs e) { if (this.IfFormLoadOk) { ComboBox cbCurrent = (ComboBox)sender; string strCbName = cbCurrent.Name; int iCurrentID = Convert.ToInt32(((Model.ComboBoxItem)cbCurrent.SelectedItem).Value); if (iCurrentID > 0) { IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); IList <Model.Building> lsAll = objDAL.GetListByWhere(-1, 100000, "1=1"); IList <Model.Building> listBuilding = lsAll.Where(s => s.FID == iCurrentID).ToList(); if (string.Compare(strCbName, "cbArea", true) == 0) { //楼栋 cbBuild.Items.Clear(); cbBuild.Items.Add(new Model.ComboBoxItem("请选择楼栋", 0)); //初始化楼栋 if (!(listBuilding == null || listBuilding.Count <= 0)) { foreach (Model.Building model in listBuilding) { cbBuild.Items.Add(new Model.ComboBoxItem(string.Format("{0}", model.BName), model.ID)); } } cbBuild.SelectedIndex = 0; } else if (string.Compare(strCbName, "cbBuild", true) == 0) { //单元 cbUnit.Items.Clear(); cbUnit.Items.Add(new Model.ComboBoxItem("请选择单元", 0)); //初始化单元 if (!(listBuilding == null || listBuilding.Count <= 0)) { foreach (Model.Building model in listBuilding) { cbUnit.Items.Add(new Model.ComboBoxItem(string.Format("{0}", model.BName), model.ID)); } } cbUnit.SelectedIndex = 0; } } } }
/// <summary> /// 删除数据 /// </summary> /// <param name="selectedItems">当前选择的所有项</param> protected override void OnDelete(ListView.SelectedListViewItemCollection selectedItems) { if (MessageBox.Show(string.Format("删除{0}数据的同时会把下属的建筑数据以及卡片信息一起删除,请慎重选择,确定要删除当前选择的{1}数据吗?", this._DataTypeName, this._DataTypeName), Config.DialogTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } int iSuccNum = 0; int iFaultNum = 0; foreach (ListViewItem selectedItem in selectedItems) { Building objModel = (Building)selectedItem.Tag; IDAL.IBuilding objDal = DALFactory.DALFactory.Building(); if (objDal.Delete(objModel.ID)) { iSuccNum++; } else { iFaultNum++; } } if (iSuccNum == 0) { CMessageBox.ShowError("对不起,删除失败!", Config.DialogTitle); } else if (iFaultNum == 0) { CMessageBox.ShowSucc("恭喜您,删除成功!", Config.DialogTitle); } else { CMessageBox.ShowSucc(string.Format("{0}个删除成功,{1}个删除失败", iSuccNum, iFaultNum), Config.DialogTitle); } if (iSuccNum > 0) { //重新刷新列表 BindLVData(0, this.CurrentSqlWhere); //当建筑信息删除时,通知其他已开启的树 Manager.GetInstance().BuildingDataChangeNotice(); } }
/// <summary> /// 绑定数据到树 /// </summary> /// <param name="objTV">树控件</param> /// <param name="iDeep">树的深度,0:只输出到小区;1:只输出到楼栋;2:只输出到单元;3:只输出到房间;</param> /// <param name="bIfShowUnGroup">是否显示分类</param> protected void BindBuildTreeData(TreeView objTV, int iDeep, bool bIfShowUnGroup = false) { //objTV.SelectedNode = null; TreeNode root = CreateTreeNode(new Model.NodeData(-1, Config.SoftName, 0)); if (bIfShowUnGroup) { root.Nodes.Add(CreateTreeNode(new NodeData(20, "未归属卡片", 0))); } IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); IList <Model.Building> lsAll = objDAL.GetListByWhere(-1, this.DefaultPageSize, "1=1"); if (!(lsAll == null || lsAll.Count <= 0)) { BuildTree(root.Nodes, 0, lsAll, iDeep, bIfShowUnGroup); } objTV.BeginUpdate(); objTV.Nodes.Clear(); objTV.Nodes.Add(root); objTV.EndUpdate(); }
private void InitData() { this.lvContent.BeginUpdate(); this.lvContent.Items.Clear(); IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); IList <Building> listData = objDAL.GetListByWhere(0, this.DefaultPageSize, "1=1"); if (!(listData == null || listData.Count <= 0)) { foreach (Building model in listData) { ListViewItem item = new ListViewItem(new string[] { Convert.ToString(lvContent.Items.Count + 1), model.BName, FormatBuildingCode(model.Code), model.BuildingSerialNo }) { Tag = model, Font = new Font("宋体", 9, FontStyle.Regular) }; this.lvContent.Items.Add(item); } } this.lvContent.EndUpdate(); }
/// <summary> /// 创建楼层房间 /// </summary> private void TaskProcess(object state) { int iSuccNum = 0; int iFaultNum = 0; SetButtonEnabled(false); try { Model.BuidingBatchCondition objCondition = (Model.BuidingBatchCondition)state; if (objCondition != null) { if (!(objCondition.UnitID <= 0 || objCondition.BeginCode >= objCondition.EndCode)) { string strBegin = FormatRoomCode(objCondition.BeginCode); string strEnd = FormatRoomCode(objCondition.EndCode); int iBeginFLoor = Convert.ToInt32(strBegin.Substring(0, 2)); int iEndFLoor = Convert.ToInt32(strEnd.Substring(0, 2)); int iBeginRoom = Convert.ToInt32(strBegin.Substring(2, 2)); int iEndRoom = Convert.ToInt32(strEnd.Substring(2, 2)); IList <Model.Building> listRoom = new List <Model.Building>(); if (iBeginFLoor < iEndFLoor) { for (int f = iBeginFLoor; f <= iEndFLoor; f++) { for (int r = iBeginRoom; r <= iEndRoom; r++) { Model.Building objModel = new Model.Building() { Flag = 3, FID = objCondition.UnitID, ID = 0, BName = BQ2(f) + BQ2(r), Code = f * 100 + r, Contact = "", Tel = "", BuildingSerialNo = "" }; listRoom.Add(objModel); } } } else { for (int r = iBeginRoom; r <= iEndRoom; r++) { Model.Building objModel = new Model.Building() { Flag = 3, FID = objCondition.UnitID, ID = 0, Code = iBeginFLoor * 100 + r }; objModel.BName = FormatRoomCode(objModel.Code); objModel.Contact = ""; objModel.Tel = ""; objModel.BuildingSerialNo = ""; listRoom.Add(objModel); } } string strErrorInfo = ""; if (!(listRoom == null || listRoom.Count == 0)) { IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); foreach (Model.Building objModel in listRoom) { if (this._FormIfClose) { return; } int iNewID = objDAL.Add(objModel, out strErrorInfo); if (iNewID <= 0) { iFaultNum++; ShowNotice(string.Format("创建楼层房间{0}数据失败,(原因:{1})!", objModel.BName, strErrorInfo)); } else { iSuccNum++; ShowNotice(string.Format("创建楼层房间{0}数据成功!", objModel.BName)); } } } ShowNotice(string.Format("\r\n生成报告:成功数{0},失败数{1},总计:{2}!\r\n\r\n", iSuccNum, iFaultNum, (iSuccNum + iFaultNum))); } } } catch (Exception err) { ShowNotice(string.Format("创建房间数据失败,(原因:{0})!", err.Message)); } SetButtonEnabled(true); if (iSuccNum > 0) { Manager.GetInstance().BuildingDataChangeNotice(); } CMessageBox.ShowSucc("生成结束!", Config.DialogTitle); }
protected override void BtnOK_Click(object sender, EventArgs e) { int iNewAreaID = 0; int iNewBuildID = 0; int iNewUnitID = 0; int iCode = 0; int iFatherID = 0; string strBName = txtName.Text.Trim(); string strCode = txtCode.Text.Trim(); string strContact = txtContact.Text.Trim(); string strTel = txtTel.Text.Trim(); string strSerialNo = txtSerialNo.Text.Trim(); int iSelectID = 0; if (cbArea.Visible) { iSelectID = Convert.ToInt32(((Model.ComboBoxItem)cbArea.SelectedItem).Value); if (iSelectID <= 0) { CMessageBox.ShowError("请选择一个小区!", Config.DialogTitle); return; } if (this._DataType.Equals(1)) { iFatherID = iSelectID; } iNewAreaID = iSelectID; } if (cbBuild.Visible) { iSelectID = Convert.ToInt32(((Model.ComboBoxItem)cbBuild.SelectedItem).Value); if (iSelectID <= 0) { CMessageBox.ShowError("请选择一个楼栋!", Config.DialogTitle); return; } if (this._DataType.Equals(2)) { iFatherID = iSelectID; } iNewBuildID = iSelectID; } if (cbUnit.Visible) { iSelectID = Convert.ToInt32(((Model.ComboBoxItem)cbUnit.SelectedItem).Value); if (iSelectID <= 0) { CMessageBox.ShowError("请选择一个单元!", Config.DialogTitle); return; } if (this._DataType.Equals(3)) { iFatherID = iSelectID; } iNewUnitID = iSelectID; } if (strBName.Equals("")) { txtName.Focus(); CMessageBox.ShowError(string.Format("请输入{0}名称!", this._DataTypeName), Config.DialogTitle); return; } if (strCode.Equals("") || !Functions.IsInt(strCode)) { txtCode.Focus(); CMessageBox.ShowError(string.Format("{0}编码不能为空,且范围必须是{1}之间的整数!", this._DataTypeName, (this._DataType.Equals(3) ? "0~9999" : "0~99")), Config.DialogTitle); return; } iCode = Functions.FormatInt(strCode); if (cbUnit.Visible) { //是房间 if (!(iCode >= 0 && iCode <= 9999)) { txtCode.Focus(); CMessageBox.ShowError(string.Format("输入的{0}编码超出范围,取值范围是0~9999之间的整数!", this._DataTypeName), Config.DialogTitle); return; } } else { if (!(iCode >= 0 && iCode <= 99)) { txtCode.Focus(); CMessageBox.ShowError(string.Format("输入的{0}编码超出范围,取值范围是0~99之间的整数!", this._DataTypeName), Config.DialogTitle); return; } } if (this._DataType.Equals(0) && !CheckSerialNo(strSerialNo)) { txtSerialNo.Focus(); CMessageBox.ShowError(string.Format("序列号必须填写,且必须是16字节的16进制字符!"), Config.DialogTitle); return; } if (MessageBox.Show("确定要保存吗?", Config.DialogTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } Model.Building objModel = new Model.Building() { Flag = _DataType, FID = iFatherID, ID = this._CurrentID, BName = strBName, Code = iCode, Contact = strContact, Tel = strTel, BuildingSerialNo = strSerialNo }; string strErrorInfo = ""; IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); if (this._CurrentAction.Equals(EAction.Create)) { int iNewID = objDAL.Add(objModel, out strErrorInfo); if (iNewID <= 0) { CMessageBox.ShowError(string.Format("创建{0}数据失败,错误如下:\r\n{1}!", this._DataTypeName, strErrorInfo), Config.DialogTitle); return; } } else { bool bIfSucc = objDAL.Update(objModel, out strErrorInfo); if (!bIfSucc) { CMessageBox.ShowError(string.Format("修改{0}数据失败,错误如下:\r\n{1}!", this._DataTypeName, strErrorInfo), Config.DialogTitle); return; } } //是否通知建筑数据已经改变 bool bIfNotice = false; if (this._CurrentAction == EAction.Create) { //新增必通知 bIfNotice = true; } else { if (string.Compare(this._OldName, strBName) != 0 || !this._OldCode.Equals(iCode) || !this._OldAreaID.Equals(iNewAreaID) || !this._OldBuildID.Equals(iNewBuildID) || !this._OldUnitID.Equals(iNewUnitID)) { //条件满足通知 bIfNotice = true; } } if (bIfNotice) { Manager.GetInstance().BuildingDataChangeNotice(); } this.DialogResult = DialogResult.OK; }
/// <summary> /// 初始化数据 /// </summary> private void InitData() { int iAreaID, iBuildID, iUnitID; iAreaID = iBuildID = iUnitID = 0; IDAL.IBuilding objDAL = DALFactory.DALFactory.Building(); //小区 cbArea.Items.Add(new Model.ComboBoxItem("请选择小区", 0)); cbBuild.Items.Add(new Model.ComboBoxItem("请选择楼栋", 0)); cbUnit.Items.Add(new Model.ComboBoxItem("请选择单元", 0)); cbArea.SelectedIndex = 0; cbBuild.SelectedIndex = 0; cbUnit.SelectedIndex = 0; if (this._CurrentAction.Equals(EAction.Edit)) { Model.Building objModel = objDAL.GetModel(this._DataType, this._CurrentID); if (objModel != null) { txtName.Text = objModel.BName; txtCode.Text = objModel.Flag.Equals(3) ? FormatRoomCode(objModel.Code) : FormatBuildingCode(objModel.Code); txtContact.Text = objModel.Contact; txtTel.Text = objModel.Tel; txtSerialNo.Text = objModel.BuildingSerialNo; switch (this._DataType) { case 1: iAreaID = objModel.FID; break; case 2: iBuildID = objModel.FID; iAreaID = objModel.FatherInfo.FID; break; case 3: iUnitID = objModel.FID; iBuildID = objModel.FatherInfo.FID; iAreaID = objModel.FatherInfo.FatherInfo.FID; break; } //记录旧数据 this._OldName = objModel.BName; this._OldCode = objModel.Code; this._OldAreaID = iAreaID; this._OldBuildID = iBuildID; this._OldUnitID = iUnitID; } } else { Model.Building objModel = null; switch (this._DataType) { case 1: iAreaID = this._CurrentParentID; break; case 2: iBuildID = this._CurrentParentID; objModel = objDAL.GetModel(this._DataType - 1, iBuildID); if (objModel != null) { iAreaID = objModel.FID; } break; case 3: iUnitID = this._CurrentParentID; objModel = objDAL.GetModel(this._DataType - 1, iUnitID); if (objModel != null) { iBuildID = objModel.FID; iAreaID = objModel.FatherInfo.FID; } break; } } if (iAreaID > 0 || (this._DataType >= 1 && this._DataType <= 3)) { IList <Model.Building> lsAll = objDAL.GetListByWhere(-1, 100000, "1=1"); int iCount = 0; int iSelectIndex = 0; IList <Model.Building> listArea = lsAll.Where(s => s.FID == 0).ToList(); if (!(listArea == null || listArea.Count <= 0)) { foreach (Model.Building model in listArea) { iCount++; if (model.ID.Equals(iAreaID)) { iSelectIndex = iCount; } cbArea.Items.Add(new Model.ComboBoxItem(model.BName, model.ID)); } cbArea.SelectedIndex = iSelectIndex; //新增时如果小区只有一个就自动选择那个小区 if (this._CurrentAction.Equals(EAction.Create) && iSelectIndex == 0 && listArea.Count == 1) { cbArea.SelectedIndex = 1; iAreaID = listArea[0].ID; } } //新增时如果只有一个楼栋 if (this._CurrentAction.Equals(EAction.Create) && iAreaID > 0 && iBuildID == 0) { IList <Model.Building> listBuild = lsAll.Where(s => s.FID == iAreaID).ToList(); if (!(listBuild == null || listBuild.Count <= 0)) { if (listBuild.Count == 1) { iBuildID = listBuild[0].ID; } } } if (iAreaID > 0) { iCount = 0; iSelectIndex = 0; IList <Model.Building> listBuild = lsAll.Where(s => s.FID == iAreaID).ToList(); if (!(listBuild == null || listBuild.Count <= 0)) { foreach (Model.Building model in listBuild) { iCount++; if (model.ID.Equals(iBuildID)) { iSelectIndex = iCount; } cbBuild.Items.Add(new Model.ComboBoxItem(model.BName, model.ID)); } cbBuild.SelectedIndex = iSelectIndex; } //新增时如果只有一个单元 if (this._CurrentAction.Equals(EAction.Create) && iBuildID > 0 && iUnitID == 0) { IList <Model.Building> listUnit = lsAll.Where(s => s.FID == iBuildID).ToList(); if (!(listUnit == null || listUnit.Count <= 0)) { if (listUnit.Count == 1) { iUnitID = listUnit[0].ID; } } } if (iBuildID > 0) { iCount = 0; iSelectIndex = 0; IList <Model.Building> listUnit = lsAll.Where(s => s.FID == iBuildID).ToList(); if (!(listUnit == null || listUnit.Count <= 0)) { foreach (Model.Building model in listUnit) { iCount++; if (model.ID.Equals(iUnitID)) { iSelectIndex = iCount; } cbUnit.Items.Add(new Model.ComboBoxItem(model.BName, model.ID)); } cbUnit.SelectedIndex = iSelectIndex; } } } } }