📄 slabinputformview.cpp
字号:
// 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 + -