北京安通林JIS系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

480 lines
13 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Stone.WinBiz.BasicData;
using Stone.Common;
namespace Stone.WinModule.BasicData
{
public partial class frmBaseMain : Stone.WinModule.frmBase
{
public F_Base m_Base = null;
public string strWhere = "1=1";
public frmSelectDataGridView frmFilter = null;
public string SelectValue = "";
public DataGridViewRow SelectRow = null;
/// <summary>
/// 设为只读模式(隐藏新增、删除、修改按钮啥的)
/// </summary>
public virtual void ReadOnly()
{
this.tlbAdd.Enabled = false;
this.tlbAddCopy.Enabled = false;
this.tlbEdit.Enabled = false;
this.tlbDelete.Enabled = false;
this.tlbInput.Enabled = false;
this.tlbView.Enabled = false;
this.tlbAdd.Visible = false;
this.tlbAddCopy.Visible = false;
this.tlbEdit.Visible = false;
this.tlbDelete.Visible = false;
this.tlbInput.Visible = false;
this.tlbView.Visible = false;
}
public virtual void init()
{
try
{
//this.dgrdView.MultiSelect = true;
this.Text = m_Base.name;
this.TabText = m_Base.name;
UpdateGridView();
frmFilter = new frmSelectDataGridView(this.dgrdView);
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
public virtual DialogResult ShowSelect(string selectValue)
{
ReadOnly();
this.tlbSelect.Enabled = true;
this.tlbSelect.Visible = true;
this.txtCode.Text = selectValue;
btnSerach_Click(new object(), new EventArgs());
return this.ShowDialog();
}
public frmBaseMain()
{
InitializeComponent();
}
private void frmBaseMain_Load(object sender, EventArgs e)
{
try
{
F_Log.WriteLog($"进入[{m_Base.name}]模块");
}
catch
{
}
}
private void tlbAdd_Click(object sender, EventArgs e)
{
try
{
if (F_Factory.ShowMainDetail(m_Base).ShowAdd() == DialogResult.OK)
{
UpdateGridView();
}
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void tlbAddCopy_Click(object sender, EventArgs e)
{
try
{
if (this.dgrdView.SelectedRows.Count > 0)
{
int ID = Convert.ToInt32(this.dgrdView.SelectedRows[0].Cells["ID"].Value);
if (F_Factory.ShowMainDetail(m_Base).ShowAddCopy(ID) == DialogResult.OK)
{
UpdateGridView();
}
}
else
{
throw new Exception("请选择一条要复制的记录!");
}
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void tlbEdit_Click(object sender, EventArgs e)
{
try
{
if (this.dgrdView.SelectedRows.Count > 0)
{
int ID = Convert.ToInt32(this.dgrdView.SelectedRows[0].Cells["ID"].Value);
if (F_Factory.ShowMainDetail(m_Base).ShowEdit(ID) == DialogResult.OK)
{
UpdateGridView();
}
}
else
{
throw new Exception("请选择一条要修改的记录!");
}
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void tlbDelete_Click(object sender, EventArgs e)
{
try
{
Delete();
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void tlbView_Click(object sender, EventArgs e)
{
try
{
if (this.dgrdView.SelectedRows.Count > 0)
{
int ID = Convert.ToInt32(this.dgrdView.SelectedRows[0].Cells["ID"].Value);
F_Factory.ShowMainDetail(m_Base).ShowView(ID);
}
else
{
throw new Exception("请选择一条要查看的记录!");
}
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void tlbFilter_Click(object sender, EventArgs e)
{
try
{
frmFilter.ShowDialog();
if (frmFilter.SelectString != "")
{
strWhere = frmFilter.SelectString;
UpdateGridView();
}
else
{
strWhere = "1=1";
}
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void dgrdView_DoubleClick(object sender, EventArgs e)
{
if (this.tlbSelect.Visible && this.tlbSelect.Enabled)
{
tlbSelect_Click(new object(), new EventArgs());
}
else if (this.tlbEdit.Visible && this.tlbEdit.Enabled)
{
tlbEdit_Click(new object(), new EventArgs());
}
else if (this.tlbView.Visible && this.tlbView.Enabled)
{
tlbView_Click(new object(), new EventArgs());
}
}
private void tlbSelect_Click(object sender, EventArgs e)
{
try
{
if (this.dgrdView.SelectedRows.Count > 0)
{
this.SelectValue = GetSelect();
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
throw new Exception("请选择一条要修改的记录!");
}
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void tlbRefresh_Click(object sender, EventArgs e)
{
try
{
UpdateGridView();
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void tlbSet_Click(object sender, EventArgs e)
{
MyGridViewStyle.Show(this.dgrdView, "BasicData" + m_Base.type.ToString());
}
private void tlbInput_Click(object sender, EventArgs e)
{
try
{
Input();
}
catch (Exception ex)
{
MyMessageBox.ShowInfoMessage(ex.Message);
}
}
private void tlbOutPut_Click(object sender, EventArgs e)
{
try
{
Stone.Common.MyExport.ShowExport(this.dgrdView);
}
catch (Exception ex)
{
MyMessageBox.ShowInfoMessage(ex.Message);
}
}
private void tlbExit_Click(object sender, EventArgs e)
{
this.Close();
}
public void btnSerach_Click(object sender, EventArgs e)
{
try
{
Search();
}
catch (Exception ex)
{
MyMessageBox.ShowErrorMessage(ex.Message);
}
}
private void txtCode_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
btnSerach_Click(new object(), new EventArgs());
}
}
private void frmBaseMain_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
MyGridViewStyle.SaveGridViewState(this.dgrdView, "BasicData" + m_Base.type.ToString());
F_Log.WriteLog($"退出[{m_Base.name}]模块");
}
catch
{
}
}
#region 可覆写的方法
/// <summary>
/// 更新DataGridView显示
/// </summary>
public virtual void UpdateGridView()
{
string dateWhere = "";
if (m_Base.dateWhere != "")
{
this.txtD1.Visible = true;
this.txtD2.Visible = true;
dateWhere = m_Base.dateWhere;
dateWhere = string.Format(dateWhere, this.txtD1.Value.ToString("yyyy-MM-dd 00:00:00"), this.txtD2.Value.ToString("yyyy-MM-dd 23:59:59"));
dateWhere = " and (" + dateWhere + ")";
}
m_Base.BindPageData("(" + strWhere + ") " + dateWhere);
m_Base.GetView(this.dgrdView);
this.lblStateRecord.Text = "记录数:" + this.dgrdView.Rows.Count;
//System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
//dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
//this.dgrdView.DefaultCellStyle = dataGridViewCellStyle1;
//this.dgrdView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
public virtual void Search()
{
string code = this.txtCode.Text.Trim();
Search(code);
this.txtCode.Focus();
this.txtCode.SelectAll();
UpdateGridView();
}
/// <summary>
/// 快速搜索
/// </summary>
/// <param name="code"></param>
public virtual void Search(string code)
{
if (code == "")
{
strWhere = "1=1";
}
else
{
strWhere = " [Code] like '%" + code + "%' ";
}
}
/// <summary>
/// 取得选择的行的值,默认为Code字段,如果是其他字段请覆写该方法
/// </summary>
/// <returns></returns>
public virtual string GetSelect()
{
SelectRow = this.dgrdView.SelectedRows[0];
return this.dgrdView.SelectedRows[0].Cells["Code"].Value.ToString();
}
/// <summary>
/// 删除记录
/// </summary>
public virtual void Delete()
{
if (this.dgrdView.SelectedRows.Count > 0)
{
if (!m_Base.IsDeleteMultiple)
{
if (MyMessageBox.ShowQuestion("你确实要删除选择的记录吗?"))
{
int ID = Convert.ToInt32(this.dgrdView.SelectedRows[0].Cells["ID"].Value);
m_Base.Delete(ID);
UpdateGridView();
}
}
else
{
if (MyMessageBox.ShowQuestion($"你确实要删除选择的{this.dgrdView.SelectedRows.Count}条记录吗?"))
{
for (int i = 0; i < this.dgrdView.SelectedRows.Count; i++)
{
int ID = Convert.ToInt32(this.dgrdView.SelectedRows[i].Cells["ID"].Value);
m_Base.Delete(ID);
}
UpdateGridView();
}
}
}
else
{
throw new Exception("请选择要删除的记录!");
}
}
/// <summary>
/// 在工具栏中创建一个按钮
/// </summary>
/// <param name="name"></param>
/// <param name="image_index">图标索引</param>
/// <param name="button_index">按钮位置</param>
/// <returns></returns>
public virtual ToolStripButton CreateButton(string name, int image_index, int button_index)
{
ToolStripButton btnButton = new ToolStripButton(name);
btnButton.Image = this.imageList.Images[image_index];
btnButton.TextImageRelation = TextImageRelation.ImageBeforeText;
this.toolStrip2.Items.Insert(button_index, btnButton);
return btnButton;
}
public virtual void Input()
{
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
m_Base.Input(this.openFileDialog1.FileName);
UpdateGridView();
MyMessageBox.ShowInfoMessage("数据导入成功!");
}
}
#endregion
}
}