⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slabinputformview.cpp

📁 开发环境为VC++ 的数据库管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// SlabInputFormView.cpp : implementation file
//

#include "stdafx.h"
#include "mestang.h"
#include "SlabInputFormView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSlabInputFormView

IMPLEMENT_DYNCREATE(CSlabInputFormView, CFormView)

CSlabInputFormView::CSlabInputFormView()
	: CFormView(CSlabInputFormView::IDD)
{
	//{{AFX_DATA_INIT(CSlabInputFormView)
	m_furcode = _T("");
	m_count = 1;
	m_slab_h = 220;
	m_slab_l = 3300;
	m_slab_w = 2000;
	m_date_input = CTime::GetCurrentTime();
	m_edit_al = 0.0f;
	m_edit_mn = 0.0f;
	m_edit_nb = 0.0f;
	m_edit_s = 0.0f;
	m_edit_si = 0.0f;
	m_edit_ti = 0.0f;
	m_edit_v = 0.0f;
	m_edit_c = 0.0f;
	m_edit_p = 0.0f;
	m_cs1 = _T("");
	m_cs2 = _T("");
	m_cs3 = _T("");
	m_cs1_value = 0.0f;
	m_cs2_value = 0.0f;
	m_cs3_value = 0.0f;
	m_edit_ni = 0.0f;
	m_edit_cu = 0.0f;
	m_stackcount1 = 0;
	m_stackcount2 = 0;
	m_stackcount3 = 0;
	m_stack1 = _T("");
	m_stack2 = _T("");
	m_stack3 = _T("");
	m_date_search = CTime::GetCurrentTime();

	//}}AFX_DATA_INIT
}

CSlabInputFormView::~CSlabInputFormView()
{
}

void CSlabInputFormView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSlabInputFormView)
	DDX_Control(pDX, IDC_SHIFT_SEARCH, m_shift_search);
	DDX_Control(pDX, IDC_CONDICTION, m_condic_select);
	DDX_Control(pDX, IDC_OPER_COMBO, m_oper_name);
	DDX_Control(pDX, IDC_LIST_SLAB_INF, m_slab_list);
	DDX_Control(pDX, IDC_STATUS, m_status);
	DDX_Control(pDX, IDC_SHIFT, m_shift);
	DDX_Control(pDX, IDC_COMBO3, m_steel_code);
	DDX_Text(pDX, IDC_EDIT_FurCode, m_furcode);
	DDV_MaxChars(pDX, m_furcode, 16);
	DDX_Text(pDX, IDC_EDIT_Count, m_count);
	DDX_Text(pDX, IDC_EDIT_Slab_H, m_slab_h);
	DDX_Text(pDX, IDC_EDIT_Slab_L, m_slab_l);
	DDX_Text(pDX, IDC_EDIT_Slab_W, m_slab_w);
	DDX_DateTimeCtrl(pDX, IDC_DATE_INPUT, m_date_input);
	DDX_Text(pDX, IDC_EDIT_Al, m_edit_al);
	DDX_Text(pDX, IDC_EDIT_Mn, m_edit_mn);
	DDX_Text(pDX, IDC_EDIT_Nb, m_edit_nb);
	DDX_Text(pDX, IDC_EDIT_S, m_edit_s);
	DDX_Text(pDX, IDC_EDIT_Si, m_edit_si);
	DDX_Text(pDX, IDC_EDIT_Ti, m_edit_ti);
	DDX_Text(pDX, IDC_EDIT_V, m_edit_v);
	DDX_Text(pDX, IDC_EDIT_C, m_edit_c);
	DDX_Text(pDX, IDC_EDIT_P, m_edit_p);
	DDX_Text(pDX, IDC_EDIT_CS1, m_cs1);
	DDV_MaxChars(pDX, m_cs1, 16);
	DDX_Text(pDX, IDC_EDIT_CS2, m_cs2);
	DDV_MaxChars(pDX, m_cs2, 16);
	DDX_Text(pDX, IDC_EDIT_CS3, m_cs3);
	DDV_MaxChars(pDX, m_cs3, 16);
	DDX_Text(pDX, IDC_EDIT_CS1_VALUE, m_cs1_value);
	DDX_Text(pDX, IDC_EDIT_CS2_VALUE, m_cs2_value);
	DDX_Text(pDX, IDC_EDIT_CS3_VALUE, m_cs3_value);
	DDX_Text(pDX, IDC_EDIT_Ni, m_edit_ni);
	DDX_Text(pDX, IDC_EDIT_Cu, m_edit_cu);
	DDX_Text(pDX, IDC_EDIT_STACKCOUNT1, m_stackcount1);
	DDX_Text(pDX, IDC_EDIT_STACKCOUNT2, m_stackcount2);
	DDX_Text(pDX, IDC_EDIT_STACKCOUNT3, m_stackcount3);
	DDX_Text(pDX, IDC_EDIT_STACK1, m_stack1);
	DDX_Text(pDX, IDC_EDIT_STACK2, m_stack2);
	DDX_Text(pDX, IDC_EDIT_STACK3, m_stack3);
	DDX_DateTimeCtrl(pDX, IDC_DATE_INPUT_SEARCH, m_date_search);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSlabInputFormView, CFormView)
	//{{AFX_MSG_MAP(CSlabInputFormView)
	ON_WM_DESTROY()
	ON_BN_CLICKED(IDSave, OnSaveSlabInput)
	ON_BN_CLICKED(ID_Modify_Slab, OnModifySlab)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST_SLAB_INF, OnDblclkListSlabInf)
	ON_BN_CLICKED(ID_Delete_Slab, OnDeleteSlab)
	ON_BN_CLICKED(IDInPutSearch, OnInPutSearch)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSlabInputFormView diagnostics

#ifdef _DEBUG
void CSlabInputFormView::AssertValid() const
{
	CFormView::AssertValid();
}

void CSlabInputFormView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CSlabInputFormView message handlers

void CSlabInputFormView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class

	
	if (theApp.cn.is_opened==false)
	{
		theApp.open_mes();
	}
	else
	{
	}
	
	CString temp_code;
	steel_code_count=0;
	resultset &rs_steelcode = *(theApp.cn).select("select STEEL_CODE from  STEEL_GRADE");
	for(;!rs_steelcode.eod();++rs_steelcode)
	{
		temp_code=result_CString(rs_steelcode,"STEEL_CODE");
        int j=m_steel_code.FindStringExact(0,temp_code);
		if(j==-1)
		m_steel_code.AddString(temp_code);
		steel_code_count++;
	}
	rs_steelcode.release();
	m_status.SetCurSel(1);
	int code_count=0;
	CString str_shift,si;
	m_steel_code.SetCurSel(1);
	theApp.cn.close();
	//设置列表框控件字体
	CFont m_ListFont;
    m_ListFont.CreateFont(16,0,0,0,FW_NORMAL, 0,0,0,DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Times New Roman");
    m_slab_list.SetFont(&m_ListFont);

	//设置LIST_SLAB的框架大小
	m_slab_list.SetWindowPos(NULL,0,0,1242,320,SWP_NOMOVE|SWP_NOZORDER | SWP_NOACTIVATE);
	m_slab_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_INFOTIP | LVS_EDITLABELS);
	m_slab_list.SetBkColor(RGB(224,255,255));
	m_slab_list.SetTextBkColor(RGB(230 ,230 ,250));
	m_slab_list.SetTextColor(RGB(85 ,26 ,139 ));
	//设置列表框LIST_SLAB标题名字
	int k=0;
	m_slab_list.InsertColumn(k++,"炉号",LVCFMT_CENTER,100);
	m_slab_list.InsertColumn(k++,"入库数(块)",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"已挂料数(块)",LVCFMT_CENTER,100);	
	m_slab_list.InsertColumn(k++,"库存数(块)",LVCFMT_CENTER,100);	
	m_slab_list.InsertColumn(k++,"板坯类型",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"钢种",LVCFMT_CENTER,60);
	m_slab_list.InsertColumn(k++,"板坯厚度(mm)",LVCFMT_CENTER,80);	
	m_slab_list.InsertColumn(k++,"板坯宽度(mm)",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"板坯长度(mm)",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"班次",LVCFMT_CENTER,80);	
	m_slab_list.InsertColumn(k++,"操作者",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"入库日期",LVCFMT_CENTER,140);	
	m_slab_list.InsertColumn(k++,"C",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"Si",LVCFMT_CENTER,80);	
	m_slab_list.InsertColumn(k++,"Mn",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"P",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"S",LVCFMT_CENTER,80);	
	m_slab_list.InsertColumn(k++,"Nb",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"V",LVCFMT_CENTER,80);	
	m_slab_list.InsertColumn(k++,"Ti",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"Al",LVCFMT_CENTER,60);	
	m_slab_list.InsertColumn(k++,"Cu",LVCFMT_CENTER,80);
    m_slab_list.InsertColumn(k++,"Ni",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"元素1",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"元素1含量",LVCFMT_CENTER,80);	
	m_slab_list.InsertColumn(k++,"元素2",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"元素2含量",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"元素3",LVCFMT_CENTER,80);
	m_slab_list.InsertColumn(k++,"元素3含量",LVCFMT_CENTER,80);

	m_slab_list.DeleteAllItems();
	theApp.open_mes();	
	CTime temp_time_cole;
	temp_time_cole=CTime::GetCurrentTime();
	CString Current_time;
	Current_time = temp_time_cole.Format("'%Y-%m-%d'");   //CTime->CString	
	resultset &rs_cast = *(theApp.cn).select ("select * from  CAST_INF order by INPUT_DATE");
	SlabInfo_List_Update(m_slab_list,rs_cast);

	m_condic_select.SetCurSel(0);
	m_shift_search.SetCurSel(0);
/*	
	department.Format("'%s'","称重操作室");
	resultset &rs_user = *(theApp.cn).select ("select * from  CURRENT_USER where DEPARTMENT="+department);
	cur_shift = result_CString(rs_user,"SHIFT");
	cur_user = result_CString(rs_user,"NAME");

	for(i=0;i<3;i++)//初始化班次
	{
		n=m_shift.SetCurSel(i);
		m_shift.GetLBText(n,judg_str);   
		if(judg_str==cur_shift)
		{   m_shift.SetCurSel(n);
		break;
		}
	}*/
	int i=0,n=0;
	for(i=0;i<3;i++)//初始化操作工
	{
		n=m_oper_name.SetCurSel(i);
		m_oper_name.GetLBText(n,judg_str);   
		if(judg_str==cur_user)
		{   m_oper_name.SetCurSel(n);
		break;
		}
	}
	theApp.cn.close();
	UpdateData(FALSE);		
	return;
}

void CSlabInputFormView::OnDestroy() 
{
	CFormView::OnDestroy();
	
	// TODO: Add your message handler code here
	
}

void CSlabInputFormView::OnSaveSlabInput() 
{
	// TODO: Add your control notification handler code here
	CWnd* pWnd ;
	pWnd = GetDlgItem(IDC_EDIT_FurCode);
	pWnd->EnableWindow(true);
	
	UpdateData(TRUE);//更新桌面上选择的信息项
	m_furcode.TrimLeft();
    m_furcode.TrimRight();	
    CString strTime,str[11];
	strTime = m_date_input.Format("%Y-%m-%d");   //CTime->CString	
	m_steel_code.GetLBText(m_steel_code.GetCurSel(),str[2]);  
	m_shift.GetLBText(m_shift.GetCurSel(),str[3]);	
	m_status.GetLBText(m_status.GetCurSel(),str[4]);
	str[0].Format("'%s','%s'",m_furcode,cur_user);
	str[1].Format("%d,%d,%d,%d",m_slab_h,m_slab_w,m_slab_l,m_count);
    str[5].Format("'%s','%s','%s','%s'",str[2],str[3],str[4],strTime);
	str[6].Format("%d",m_count);
	str[7].Format("'%s'",m_furcode);
	str[8].Format("%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f,%f",m_edit_c,m_edit_si,m_edit_mn,m_edit_p,m_edit_s,m_edit_cu,m_edit_nb,m_edit_v,m_edit_ti,m_edit_al,m_cs1_value,m_cs2_value,m_cs3_value,m_edit_ni);
    str[9].Format("'%s','%s','%s'",m_cs1,m_cs2,m_cs3);	
	theApp.open_mes();	
	resultset &fur_code =*(theApp.cn).select("select * from CAST_INF where CAST_ID="+str[7]);
	if (fur_code.rows_count())
	{
		MessageBox("炉号已存在!","系统提示",MB_ICONWARNING);
		return;
	}
	fur_code.release();
	if(m_furcode=="")
	{
		MessageBox("炉号不能为空!","系统提示",MB_ICONWARNING);
		return;
	}
	if(m_count<=0||m_count>300)
	{
		MessageBox("请检查入库数量!","系统提示",MB_ICONWARNING);
	    return;		
	}
	if (m_slab_h>300||m_slab_h<100||m_slab_w>3000||m_slab_w<1000||m_slab_l>3500||m_slab_l<1500)
	{
		MessageBox("请检查坯料规格!","系统提示",MB_ICONWARNING);
	    return;	
	}
	if (!Data_Check())
	{
		return;	
	}
	statement &st = *(theApp.cn).prepare("insert into CAST_INF (MATERIAL_AMOUNT_LEFT,CAST_ID,OPERATOR,MATERIAL_THICK,MATERIAL_WIDE,MATERIAL_LENGTH,MATERIAL_AMOUNT,STEEL_TYPE,SHIFT,DHCR,INPUT_DATE,C,SI,MN,P,S,CU,NB,V,TI,AL,CS1_VALUE,CS2_VALUE,CS3_VALUE,NI,CS1,CS2,CS3,MATERIAL_SCHEDULED_AMOUNT) values("+str[6]+","+str[0]+","+str[1]+","+str[5]+","+str[8]+","+str[9]+",0)");
	st.execute ();
	st.release ();

	//调用过程,写入板坯位置
	statement &st_stack = *(theApp.cn).prepare ("begin RECORD_IN_STOCK (:v_fur,:v_stack1,:v_sta_cou1,:v_stack2,:v_sta_cou2,:v_stack3,:v_sta_cou3); end;");
	st_stack.bind(":v_fur", DT_TEXT) = m_furcode;
	st_stack.bind(":v_stack1", DT_TEXT) = m_stack1;
	st_stack.bind(":v_stack2", DT_TEXT) = m_stack2;
	st_stack.bind(":v_stack3", DT_TEXT) = m_stack3;
	st_stack.bind(":v_sta_cou1", DT_NUMBER) = (long) m_stackcount1;
	st_stack.bind(":v_sta_cou2", DT_NUMBER) = (long) m_stackcount2;
	st_stack.bind(":v_sta_cou3", DT_NUMBER) = (long) m_stackcount3;
	st_stack.execute ();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -