using ryCommon; using ryCommonDb; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace MyHouse.DbOp { public partial class FrmLocationView : RySkins.SKinForm { string titleName = "存储位置"; public FrmLocationView() { InitializeComponent(); OlvSN.AspectGetter = delegate (object x) { return ((LocationInfo)x).SN; }; OlvName.AspectGetter = delegate (object x) { return ((LocationInfo)x).Name; }; OlvDes.AspectGetter = delegate (object x) { return ((LocationInfo)x).Des; }; OlvAddTime.AspectGetter = delegate (object x) { return ((LocationInfo)x).AddTimeStr; }; } #region 需要修改的内容 private void RySearch1_OnSearch(object sender, EventArgs e) { ctlMyPage1.RecordCount = 1; ctlMyPage1.GotoPageIndex(1); } private void CtlMyPage1_OnPageChange(object sender, EventArgs e) { #region 重新载入数据 LvCbResult.ClearObjects(); var page_index = ctlMyPage1.GetCurrPageIndex(); if (page_index == 0) { page_index = 1; } string post_str = "api=GetLocationList&name=" + RyWeb.WebDecode.UrlEncode(rySearch1.Text) + "&page=" + page_index + (page_index == 1 ? "&getpagecount=1": ""); var jsonResult = API.API.Post("Goods", "GetLocationList", post_str); if (jsonResult.IsOK) { List list = new List(); if (page_index == 1) { ctlMyPage1.RecordCount = jsonResult.Get("pagecount", 0); } DataTable data = jsonResult.List; for (int i = 0; i < data.Rows.Count; i++) { DataRow row = data.Rows[i]; list.Add(new LocationInfo() { Id = row["id"].ToInt(), SN = row["SN"].ToString(), Name = row["Name"].ToString(), Img = row["img"].ToString(), Des = row["Des"].ToString(), AddTime = row["AddTime"].ToInt64().ToDateTime() }); } LvCbResult.AddObjects(list); } #endregion } private void GetRow(int id, int index) { #region 重新载入数据 var jsonResult = API.API.Post("Goods", "GetLocation", "id=" + id); if (jsonResult.IsOK) { DataTable data = jsonResult.List; if (data.Rows.Count > 0) { DataRow row = data.Rows[0]; var item = (LocationInfo)LvCbResult.GetModelObject(index); item.SN = row["SN"].ToString(); item.Name = row["Name"].ToString(); item.Img = row["img"].ToString(); item.Des = row["Des"].ToString(); //添加剩余的项目 //添加完毕 LvCbResult.UpdateObject(item); } } #endregion } #endregion private void BtnAdd_Click(object sender, EventArgs e) { FrmLocationAdd frm = new FrmLocationAdd() { Text = "添加"+ titleName, Icon = Icon, isAdd = 1 }; frm.mr = new ModalForm(this, frm); frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { if (dg == DialogResult.OK) { rySearch1.PerformClick(); } }); frm.mr.ShowModal(); } private void BtnEdit_Click(object sender, EventArgs e) { if (LvCbResult.SelectedObject == null) { return; } var item = (LocationInfo)LvCbResult.SelectedObject; var selectId = item.Id; FrmLocationAdd frm = new FrmLocationAdd() { Text = "修改"+ titleName, Icon = Icon, isAdd = 0 }; frm.GetInfo(selectId.ToString()); frm.mr = new ModalForm(this, frm); frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { if (dg == DialogResult.OK) { GetRow(selectId, LvCbResult.SelectedIndex); } }); frm.mr.ShowModal(); } private void BtnDel_Click(object sender, EventArgs e) { if (LvCbResult.SelectedObject == null) { MessageBox.Show("请先选择要删除的项。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } var item = (LocationInfo)LvCbResult.SelectedObject; var selectId = item.Id; if (RySkins.Msg.ShowMsg("确定要删除该项吗?一旦删除将不可恢复。", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { return; } string post_str = "api=DelLocation&id=" + selectId; var jsonResult = API.API.Post("Goods", "DelLocation", post_str); if (jsonResult.IsOK) { LvCbResult.RemoveObject(item); } else { API.API.ErrorJson(jsonResult); } } private void FrmView_Load(object sender, EventArgs e) { Text = "浏览"+ titleName; 添加数据ToolStripMenuItem.Text = "添加"+ titleName; 修改数据ToolStripMenuItem.Text = "修改" + titleName; 删除数据ToolStripMenuItem.Text = "删除" + titleName; rySearch1.PerformClick(); } private void 添加数据ToolStripMenuItem_Click(object sender, EventArgs e) { btnAdd.PerformClick(); } private void 修改数据ToolStripMenuItem_Click(object sender, EventArgs e) { btnEdit.PerformClick(); } private void 删除数据ToolStripMenuItem_Click(object sender, EventArgs e) { btnDel.PerformClick(); } private void 复制并添加数据ToolStripMenuItem_Click(object sender, EventArgs e) { if (LvCbResult.SelectedObject == null) { return; } var item = (LocationInfo)LvCbResult.SelectedObject; var selectId = item.Id; FrmLocationAdd frm = new FrmLocationAdd() { Text = "添加" + titleName, Icon = Icon, isAdd = 1 }; frm.GetInfo(selectId.ToString()); frm.mr = new ModalForm(this, frm); frm.mr.OnDialogResult += new ModalForm.DialogResultHandler((object t, DialogResult dg) => { if (dg == DialogResult.OK) { rySearch1.PerformClick(); } }); frm.mr.ShowModal(); } public bool IsSelectedMode { get; set; } = false; public int SelectId { get; set; } = -1; public string SelectName { get; set; } = ""; private void LvCbResult_DoubleClick(object sender, EventArgs e) { if (!IsSelectedMode) { return; } if (LvCbResult.SelectedObject == null) { return; } var item = (LocationInfo)LvCbResult.SelectedObject; SelectId = item.Id; SelectName = "【"+item.SN+"】"+ item.Name; DialogResult = DialogResult.OK; } private void GetItemUI(int rowindex) { int id; if (LvCbResult.GetItemCount() > rowindex && rowindex >= 0) { var item = (LocationInfo)LvCbResult.GetModelObject(rowindex); id = item.Id; TxtName.Text = item.Name; var jsonResult = API.API.Post("Goods", "GetLocation", "id=" + id); if (jsonResult.IsOK) { DataTable data = jsonResult.List; if (data.Rows.Count > 0) { DataRow row = data.Rows[0]; TxtDes.Text = row["Des"].ToString(); TxtAddTime.Text = row["AddTime"].ToInt64().ToDateTime().ToString("yyyy-MM-dd dddd HH:mm"); TxtEditTime.Text = row["EditTime"].ToInt64().ToDateTime().ToString("yyyy-MM-dd dddd HH:mm"); PicLogo.Image = API.WebDav.LoadPic(Public_Config.WebDav_VistorUrl + "/" + row["img"].ToString()); } } } else { TxtName.Text = ""; TxtEditTime.Text = ""; TxtAddTime.Text = ""; TxtDes.Text = ""; PicLogo.Image = null; return; } } private void LvCbResult_SelectionChanged(object sender, EventArgs e) { if (LvCbResult.SelectedObject == null) { GetItemUI(-1); return; } var row_index = LvCbResult.SelectedIndex; GetItemUI(row_index); } private void PicLogo_Click(object sender, EventArgs e) { OTools.FrmPreview frm = new OTools.FrmPreview(); frm.pictureBox1.Image = PicLogo.Image; frm.ShowDialog(); frm.Dispose(); } } class LocationInfo { /// /// id /// public int Id{ get; set; } /// /// 父id /// public int ParentId { get; set; } = 0; /// /// id路径 /// public string IdPath { get; set; } = ""; /// /// 直系子位置数量 /// public int ChildrenCount { get; set; } = 0; /// /// 编号 /// public string SN { get; set; } /// /// 名称 /// public string Name { get; set; } /// /// 备注 /// public string Des { get; set; } = ""; /// /// 图片 /// public string Img { get; set; } = ""; /// /// 添加时间 /// public DateTime AddTime { get; set; } /// /// 添加时间字符串 /// public string AddTimeStr { get { return AddTime.ToString("yyyy-MM-dd dddd HH:mm:ss"); } } } }