using System;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Text;
|
using System.Windows.Forms;
|
using System.Collections;
|
using DBUtility;
|
|
namespace APSM
|
{
|
public partial class Gy_WorkTimes : Form
|
{
|
private DateTime BDate;
|
private DateTime EDate;
|
private DateTime XQDate;
|
public DBUtility.frm_B_BillQueryCondition_New frmCondition;
|
public const string ViewName = "h_v_Gy_WorkTimesList";
|
//public string CheckProcName = "h_p_Gy_WorkTimes"; //20141020
|
public string ModName = "工厂日历";
|
public const string BillName = "Gy_WorkTimes";
|
public const string ModRightNameEdit = BillName + "_Edit";
|
public const string ModRightNameDelete = BillName + "_Delete";
|
public DBUtility.ClsPub.Enum_InputMode InputMode; //录入状态标志(0-非录入状态 1-增加 2-修改)
|
public long HItemID;//项目ID
|
public long HSourceID;//资源ID
|
DAL.ClsGy_PlanShifts_Ctl oPs = new DAL.ClsGy_PlanShifts_Ctl();
|
DAL.ClsGy_PlanShifts_View oPsHlp = new DAL.ClsGy_PlanShifts_View();
|
DAL.ClsGy_Source_Ctl oSou = new DAL.ClsGy_Source_Ctl();
|
DAL.ClsGy_Source_View oSouHlp = new DAL.ClsGy_Source_View();
|
TreeNode CurNode = new TreeNode();
|
|
public Gy_WorkTimes()
|
{
|
InitializeComponent();
|
}
|
#region 固定代码
|
//保存GRID列宽
|
|
//窗体加载
|
private void Gy_WorkTimes_Load(object sender, EventArgs e)
|
{
|
cmbYear.Items.Clear();
|
cmbYear.Items.Add(DateTime.Today.Year - 3);
|
cmbYear.Items.Add(DateTime.Today.Year - 2);
|
cmbYear.Items.Add(DateTime.Today.Year - 1);
|
cmbYear.Items.Add(DateTime.Today.Year);
|
cmbYear.Items.Add(DateTime.Today.Year + 1);
|
cmbYear.Items.Add(DateTime.Today.Year + 2);
|
cmbYear.Items.Add(DateTime.Today.Year + 3);
|
cmbYear.Items.Add(DateTime.Today.Year + 4);
|
cmbYear.Items.Add(DateTime.Today.Year + 5);
|
cmbYear.Items.Add(DateTime.Today.Year + 6);
|
cmbYear.Items.Add(DateTime.Today.Year + 7);
|
cmbYear.SelectedIndex = 3;
|
frmCondition = new DBUtility.frm_B_BillQueryCondition_New();
|
LoadTree();
|
initGrid();
|
RefreshTool();
|
}
|
//加载子结点
|
private void LoadAllNodes(TreeNode sNode)
|
{
|
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
|
|
|
if (sNode != null)
|
{
|
try
|
{
|
long sName = Convert.ToInt64(sNode.Name.Substring(1, sNode.Name.Length - 1));
|
sNode.Nodes.Clear();
|
string sSQL = "";
|
if (HSourceID == 0)
|
{
|
sSQL = "select hitemid,hnumber,hname from Gy_Source where HParentID='" + sName + "' order by Hnumber";
|
}
|
else
|
{
|
sSQL = "select hitemid,hnumber,hname from Gy_Source where HItemID=" + HSourceID + " order by Hnumber";
|
}
|
DataSet Ds = oCn.RunProcReturn(sSQL, "Gy_Source", ref ClsPub.sExeReturnInfo);
|
for (int i = 0; i < Ds.Tables[0].Rows.Count; i++)
|
{
|
TreeNode oNode = sNode.Nodes.Add("T" + Ds.Tables[0].Rows[i]["HItemID"].ToString(), Ds.Tables[0].Rows[i]["HNumber"].ToString() + "-" + Ds.Tables[0].Rows[i]["HName"].ToString(), 0, 1);
|
}
|
sNode.Expand();
|
}
|
catch (Exception e)
|
{
|
MessageBox.Show("加载子项目失败!" + e.Message, "提示");
|
}
|
}
|
}
|
//加载树形
|
private void LoadTree()
|
{
|
try
|
{
|
tv.Nodes.Clear();
|
tv.ImageList = imageList1;
|
TreeNode sNode = tv.Nodes.Add("T0", "生产资源", 0, 1);
|
LoadAllNodes(sNode);
|
}
|
catch (Exception e)
|
{
|
MessageBox.Show("加载树型失败!" + e.Message, "提示");
|
}
|
}
|
//树型 单击
|
private void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
|
{
|
CurNode = e.Node;
|
if (CurNode != null)
|
{
|
if (CurNode.Nodes.Count == 0 && HSourceID == 0)
|
LoadAllNodes(CurNode);
|
Display();
|
}
|
}
|
//初始化GRID
|
private void initGrid()
|
{
|
//Gy_ICMOSortBillFun.initGridVS_Times(grd, ref BDate, ref EDate, this.Name, ref XQDate, cmbYear);
|
}
|
//显示列表
|
private void Display()
|
{
|
DateTime Date;
|
////禁用 红色显示 20141020
|
//Sub_ShowStopFlag();
|
//得到工作中心默认上班时间
|
long sID = Convert.ToInt64(CurNode.Name.Substring(1, CurNode.Name.Length - 1));
|
Single sWorkTimes = 8;
|
//sWorkTimes = oSouHlp.GetInfoByName(sName); //根据资源得到工作中心的工时
|
//
|
//
|
for (int r = 0; r <= 22; r = r + 2)
|
{
|
BDate = DBUtility.ClsPub.isDate(cmbYear.Text.ToString() + "-" + Convert.ToString(r / 2 + 1) + "-01");
|
EDate = BDate.AddMonths(1);
|
EDate = EDate.AddDays(-1);
|
|
TimeSpan t = EDate - BDate;//获取2个时间的相隔天数
|
//
|
for (int c = 1; c <= DBUtility.ClsPub.isInt(t.Days + 1); c++)
|
{
|
if (DBUtility.ClsPub.isStrNull(CurNode.Name) != null && DBUtility.ClsPub.isStrNull(CurNode.Text) != "")
|
{
|
Date = DBUtility.ClsPub.isDate(cmbYear.Text.ToString() + "-" + Convert.ToString(r / 2 + 1) + "-" + grd.Rows[r].Cells[c].Value.ToString());
|
if (oPsHlp.GetInfoByDate_Line(sID, Date.ToShortDateString()))
|
{
|
grd.Rows[r + 1].Cells[c].Value = DBUtility.ClsPub.isDoule(oPsHlp.omodel.HOverTimes, 0);
|
}
|
else
|
{
|
if (Date.DayOfWeek == DayOfWeek.Sunday)
|
{
|
grd.Rows[r + 1].Cells[c].Value = "0";
|
}
|
else
|
{
|
if (oSouHlp.GetInfoByID(sID))
|
{
|
//grd.set_TextMatrix(r + 1, c, DBUtility.ClsPub.isDoule(oPsHlp.omodel.HOverTimes, 1));
|
grd.Rows[r + 1].Cells[c].Value = DBUtility.ClsPub.isDoule(oSouHlp.omodel.HWorkTimes, 0);
|
}
|
else
|
{
|
//grd.set_TextMatrix(r + 1, c, sWorkTimes.ToString());
|
grd.Rows[r + 1].Cells[c].Value = sWorkTimes.ToString();
|
}
|
}
|
}
|
|
}
|
}
|
}
|
}
|
//退出模块
|
private void tc_Click(object sender, EventArgs e)
|
{
|
this.Close();
|
}
|
//刷新
|
private void xs_Click(object sender, EventArgs e)
|
{
|
Display();
|
}
|
//刷新TOOLBAR
|
private void RefreshTool()
|
{
|
|
if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_View)
|
{
|
stTab.SelectedIndex = 0;
|
stTab.TabPages.Remove(this.tabPage1);
|
stTab.TabPages.Add(this.tabPage1);
|
grd.Enabled = true;
|
tc.Enabled = true;
|
//tz.Enabled = true;
|
xs.Enabled = true;
|
}
|
else
|
{
|
stTab.SelectedIndex = 1;
|
stTab.TabPages.Remove(this.tabPage1);
|
stTab.TabPages[0].Hide();
|
grd.Enabled = false;
|
//tc.Enabled = true;
|
//tz.Enabled = false;
|
xs.Enabled = false;
|
}
|
}
|
//取消按钮
|
private void cmdCancel_Click(object sender, EventArgs e)
|
{
|
InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View;
|
RefreshTool();
|
}
|
//得到对应列
|
private Int32 Fun_GetCol(string sCol,DataGridView grd)
|
{
|
return 1;
|
//return Gy_ICMOSortBillFun.Fun_GetCol_VS(sCol, grd);
|
}
|
//private void bclk_Click(object sender, EventArgs e)
|
//{
|
// //保存列宽
|
// Gy_ICMOSortBillFun.SaveGrid(grd, this.Name, DBUtility.ClsPub.AppPath);
|
//}
|
|
private void mrlk_Click(object sender, EventArgs e)
|
{
|
//for (int i = 1; i <= 12; i++)
|
//{
|
// grdMain(i).AutoSize(0, grdMain(i).Cols - 1, false, 1);
|
|
|
// //参数解释 开始列 ,结束列,是否以最大列宽为准,最小列宽
|
// Gy_ICMOSortBillFun.SaveGrid(grdMain(i), this.Name, DBUtility.ClsPub.AppPath);
|
//}
|
}
|
////选中行是否正常
|
//private bool AllowRow()
|
//{
|
|
// if (grdMain.Row >= grdMain.FixedRows && grdMain.Row <= grdMain.Rows - 1)
|
// return true;
|
// else
|
// return false;
|
//}
|
|
|
//时间控件
|
private void timer1_Tick(object sender, EventArgs e)
|
{
|
timer1.Enabled = false;
|
LoadTree();
|
initGrid();
|
}
|
|
#endregion
|
|
|
#region 类的读写
|
//读取类 到 控件
|
private void ShowData(long sItemID)
|
{
|
//
|
}
|
|
//写入类 从控件
|
private bool WriteClass(double sWorktimes, Int64 sSourceID, DateTime sDate)
|
{
|
oPs.oModel.HOverTimes = sWorktimes;
|
oPs.oModel.HRemark = "";
|
oPs.oModel.HShiftsID = 0;
|
oPs.oModel.HSourceID = sSourceID;
|
oPs.oModel.HDate = sDate;
|
return true;
|
}
|
#endregion
|
|
|
#region 界面控件处理
|
|
#endregion
|
|
////检测按钮 20141020
|
//private void jc_Click(object sender, EventArgs e)
|
//{
|
// BLL.ClsPub_BLL.Sub_CheckUseStatus(grdMain, HItemIDCol, CheckProcName);
|
// Display();
|
//}
|
|
|
////禁用项目 红色字体 20141020
|
//public void Sub_ShowStopFlag()
|
//{
|
// BLL.ClsPub_BLL.Sub_ShowStopFlag(grdMain, Fun_GetCol("禁用标记"));
|
//}
|
private void cmbYear_TextChanged(object sender, EventArgs e)
|
{
|
initGrid();
|
}
|
|
private void cmbYear_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
initGrid();
|
}
|
//查询
|
private void cx_Click(object sender, EventArgs e)
|
{
|
frmCondition = new DBUtility.frm_B_BillQueryCondition_New();
|
DBUtility.Gy_BaseFun.SetCondition(frmCondition, ViewName, this.Name);
|
frmCondition.ShowDialog();
|
if (frmCondition.Tag.ToString() == "OK")
|
{
|
Display();
|
}
|
}
|
//修改(批量修改)
|
private void xg_Click(object sender, EventArgs e)
|
{
|
Gy_WorkTimesDlg oDlg = new Gy_WorkTimesDlg();
|
oDlg.ShowDialog();
|
//Display();
|
}
|
|
//CellBeginEdit事件:在触发该事件时单元格还没有获得焦点,我们可以通过设置事件参数e来决定是否执行对单元格的编辑,如下
|
private void grd_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
|
{
|
// //执行编辑,这个一般不用写
|
|
// e.Cancel = true;
|
|
// //不执行编辑,这个一般是通过条件判断是否执行编辑,如果条件不成立,即不允许对单元格进行编辑
|
|
// e.Cancel = false;
|
}
|
|
//CellParsing事件:在该事件中我们可以对输入的文本进行格式化,如将输入的英文字母全部改成大写等等,如下
|
private void grd_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
|
{
|
/*
|
|
* 这里必须是通过e.Value来获得重新输入的值
|
|
* 如果是通过this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString()这种方法获得
|
|
* 那么获得值将是原来的值,并不是用户刚刚输入的值
|
|
* 这个也正可以对用户输入的数据进行验证,如果不符合则将原来的值再赋给该单元格,不进行修改
|
|
* 切记!!!!!
|
|
* 在这里必须将e.ParsingApplied属性设置为true,否则刚刚用户输入的值不会更新
|
|
* 还是会将原来的值赋给该单元格
|
|
* */
|
|
e.Value = e.Value.ToString().ToUpper();
|
|
e.ParsingApplied = true;
|
|
//MessageBox.Show(this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
|
}
|
private void grd_CellEndEdit(object sender, DataGridViewCellEventArgs e)
|
{
|
DateTime Date = DBUtility.ClsPub.isDate(cmbYear.Text.ToString() + "-" + DBUtility.ClsPub.isInt(e.RowIndex / 2 + 1).ToString() + "-" + grd.Rows[e.RowIndex - 1].Cells[e.ColumnIndex].Value.ToString());
|
if (DBUtility.ClsPub.isStrNull(CurNode.Name) != null && DBUtility.ClsPub.isStrNull(CurNode.Text) != "")
|
{
|
Int64 sName = Convert.ToInt64(CurNode.Name.Substring(1, CurNode.Name.Length - 1));
|
double sWorktimes = DBUtility.ClsPub.isDoule(grd.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
|
//
|
WriteClass(sWorktimes, sName, Date);
|
oPs.AddNew();
|
Display();
|
}
|
}
|
|
|
|
//private void grdMain_BeforeEdit(object sender, AxVSFlex7._IVSFlexGridEvents_BeforeEditEvent e)
|
//{
|
// if (DBUtility.ClsPub.GridToColor(grdMain.get_Cell(VSFlex7.CellPropertySettings.flexcpBackColor, grdMain.Row, grdMain.Col, grdMain.Row, grdMain.Col)) == DBUtility.ClsPub.Enum_Color.hx_Write)
|
// {
|
// //
|
// }
|
// else
|
// {
|
// e.cancel = true;
|
// }
|
//}
|
|
//private void tz_Click(object sender, EventArgs e)
|
//{
|
// Gy_WorkTimesDlg oDlg = new Gy_WorkTimesDlg();
|
// oDlg.ShowDialog();
|
// Display();
|
//}
|
|
//private void grdMain_AfterEdit(object sender, AxVSFlex7._IVSFlexGridEvents_AfterEditEvent e)
|
//{
|
|
// DateTime Date = DBUtility.ClsPub.isDate(cmbYear.Text.ToString() + "-" + DBUtility.ClsPub.isInt(grdMain.Row / 2 + 1).ToString() + "-" + grdMain.get_TextMatrix(grdMain.Row - 1, grdMain.Col).ToString());
|
// if (DBUtility.ClsPub.isStrNull(CurNode.Name) != null && DBUtility.ClsPub.isStrNull(CurNode.Text) != "")
|
// {
|
// Int64 sName = Convert.ToInt64(CurNode.Name.Substring(1, CurNode.Name.Length - 1));
|
// double sWorktimes = DBUtility.ClsPub.isDoule(grdMain.get_TextMatrix(grdMain.Row, grdMain.Col));
|
// //
|
// WriteClass(sWorktimes, sName, Date);
|
// oPs.AddNew();
|
// Display();
|
// }
|
//}
|
|
//private void cmdHSource_Click(object sender, EventArgs e)
|
//{
|
// DAL.ClsGy_Source_View oSource = new DAL.ClsGy_Source_View();
|
// oSource.WherePart = txtHSource.Text.Trim();
|
// if (oSource.RefreshView())
|
// {
|
// txtHSource.Text = oSource.oModel.HName;
|
// txtHSource.Tag = oSource.oModel.HItemID;
|
// HSourceID = oSource.oModel.HItemID;
|
// }
|
// else
|
// {
|
// txtHSource.Text = "";
|
// txtHSource.Tag = "0";
|
// HSourceID = 0;
|
// }
|
// LoadTree();
|
//}
|
|
//private void ww_Click(object sender, EventArgs e)
|
//{
|
// Gy_WorkTimesWWDlg oDlg = new Gy_WorkTimesWWDlg();
|
// oDlg.HSourceID = DBUtility.ClsPub.isLong(txtHSource.Tag);
|
// oDlg.ShowDialog();
|
// Display();
|
//}
|
|
}
|
}
|