📄 returnslabformview.cpp
字号:
// ReturnSlabFormView.cpp : implementation file
//
#include "stdafx.h"
#include "mestang.h"
#include "ReturnSlabFormView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CReturnSlabFormView
IMPLEMENT_DYNCREATE(CReturnSlabFormView, CFormView)
CReturnSlabFormView::CReturnSlabFormView()
: CFormView(CReturnSlabFormView::IDD)
{
//{{AFX_DATA_INIT(CReturnSlabFormView)
m_edit_stack_return = _T("0101");
//}}AFX_DATA_INIT
}
CReturnSlabFormView::~CReturnSlabFormView()
{
}
void CReturnSlabFormView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReturnSlabFormView)
DDX_Control(pDX, IDC_LIST_SLAB_INF, m_list_slab_inf);
DDX_Control(pDX, IDC_LIST_SLAB_RETURN, m_list_slab_return);
DDX_Text(pDX, IDC_EDIT_STACK_R, m_edit_stack_return);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReturnSlabFormView, CFormView)
//{{AFX_MSG_MAP(CReturnSlabFormView)
ON_WM_DESTROY()
ON_BN_CLICKED(ID_RETURN_SLAB, OnReturnSlab)
ON_BN_CLICKED(IDC_TURN_TO_SINGLE, OnTurnToSingle)
ON_NOTIFY(NM_CLICK, IDC_LIST_SLAB_RETURN, OnClickListSlabReturn)
ON_BN_CLICKED(ID_RETURN_DELETE, OnReturnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReturnSlabFormView diagnostics
#ifdef _DEBUG
void CReturnSlabFormView::AssertValid() const
{
CFormView::AssertValid();
}
void CReturnSlabFormView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CReturnSlabFormView message handlers
void CReturnSlabFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
//设置回炉坯记录的框架大小
m_list_slab_return.SetWindowPos(NULL,0,0,500,616,SWP_NOMOVE|SWP_NOZORDER | SWP_NOACTIVATE);
m_list_slab_return.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_INFOTIP | LVS_EDITLABELS);
m_list_slab_return.SetBkColor(RGB(224,255,255));
m_list_slab_return.SetTextBkColor(RGB(230 ,230 ,250));
m_list_slab_return.SetTextColor(RGB(85 ,26 ,139 ));
//设置回炉坯列表框标题名字
int k=0;
m_list_slab_return.InsertColumn(k++,"ID",LVCFMT_CENTER,180);
m_list_slab_return.InsertColumn(k++,"炉号",LVCFMT_CENTER,180);
m_list_slab_return.InsertColumn(k++,"回炉时间",LVCFMT_CENTER,140);
m_list_slab_return.SetBkColor(RGB(224,255,255));
m_list_slab_return.SetTextBkColor(RGB(230 ,230 ,250));
m_list_slab_return.SetTextColor(RGB(85 ,26 ,139 ));
//设置LIST_SLAB的框架大小
m_list_slab_inf.SetWindowPos(NULL,0,0,500,616,SWP_NOMOVE|SWP_NOZORDER | SWP_NOACTIVATE);
m_list_slab_inf.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_INFOTIP | LVS_EDITLABELS);
m_list_slab_inf.SetBkColor(RGB(224,255,255));
m_list_slab_inf.SetTextBkColor(RGB(230 ,230 ,250));
m_list_slab_inf.SetTextColor(RGB(85 ,26 ,139 ));
//设置列表框LIST_SLAB标题名字
k=0;
m_list_slab_inf.InsertColumn(k++,"炉号",LVCFMT_CENTER,100);
m_list_slab_inf.InsertColumn(k++,"入库数(块)",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"已挂料数(块)",LVCFMT_CENTER,100);
m_list_slab_inf.InsertColumn(k++,"库存数(块)",LVCFMT_CENTER,100);
m_list_slab_inf.InsertColumn(k++,"板坯类型",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"钢种",LVCFMT_CENTER,60);
m_list_slab_inf.InsertColumn(k++,"板坯厚度(mm)",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"板坯宽度(mm)",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"板坯长度(mm)",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"班次",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"操作者",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"入库日期",LVCFMT_CENTER,140);
m_list_slab_inf.InsertColumn(k++,"C",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"Si",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"Mn",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"P",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"S",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"Nb",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"V",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"Ti",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"Al",LVCFMT_CENTER,60);
m_list_slab_inf.InsertColumn(k++,"Cu",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"Ni",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"元素1",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"元素1含量",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"元素2",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"元素2含量",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"元素3",LVCFMT_CENTER,80);
m_list_slab_inf.InsertColumn(k++,"元素3含量",LVCFMT_CENTER,80);
//设置列表框控件字体
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_list_slab_inf.SetFont(&m_ListFont);
m_list_slab_return.SetFont(&m_ListFont);
}
void CReturnSlabFormView::OnDestroy()
{
CFormView::OnDestroy();
// TODO: Add your message handler code here
}
void CReturnSlabFormView::OnReturnSlab()
{
// TODO: Add your control notification handler code here
//读取回炉坯记录信息
CString cur_status;
cur_status.Format("'%s'","回炉");
m_list_slab_return.DeleteAllItems();
m_list_slab_inf.DeleteAllItems();
theApp.open_mes();
resultset &rs_return = *(theApp.cn).select ("select * from RETURN_FURNACE order by OPERATE_TIME DESC");
Slab_Return_List_Update(m_list_slab_return,rs_return);
resultset &rs_slab = *(theApp.cn).select ("select * from CAST_INF where DHCR="+cur_status+" order by INPUT_DATE DESC");
SlabInfo_List_Update(m_list_slab_inf,rs_slab);
theApp.cn.close();
}
void CReturnSlabFormView::OnTurnToSingle()
{
// TODO: Add your control notification handler code here
UpdateData(true);
theApp.open_mes(); //调用过程,回炉坯重新入库
CString cur_user,cur_shift,cur_dep,cur_status;
cur_dep.Format("'%s'","称重操作室");
cur_status.Format("'%s'","回炉");
resultset &rs = *(theApp.cn).select ("select * from CURRENT_USER where DEPARTMENT="+cur_dep);
cur_shift = result_CString(rs,"SHIFT");
cur_user = result_CString(rs,"NAME");
statement &st_return_slab = *(theApp.cn).prepare ("begin RETURN_FURNACE_INF (:v_fur,:v_stack,:v_shift,:v_name); end;");
st_return_slab.bind(":v_fur", DT_TEXT) = m_return_castid;
st_return_slab.bind(":v_stack", DT_TEXT) = m_edit_stack_return;
st_return_slab.bind(":v_shift", DT_TEXT) = cur_shift;
st_return_slab.bind(":v_name", DT_TEXT) = cur_user;
st_return_slab.execute ();
st_return_slab.release ();
//刷新回炉表和回炉板坯信息
m_list_slab_return.DeleteAllItems();
m_list_slab_inf.DeleteAllItems();
resultset &rs_return = *(theApp.cn).select ("select * from RETURN_FURNACE order by OPERATE_TIME DESC");
Slab_Return_List_Update(m_list_slab_return,rs_return);
resultset &rs_slab = *(theApp.cn).select ("select * from CAST_INF where DHCR="+cur_status+" order by INPUT_DATE DESC");
SlabInfo_List_Update(m_list_slab_inf,rs_slab);
theApp.cn.close();
}
void CReturnSlabFormView::OnClickListSlabReturn(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_return_castid=this->m_list_slab_return.GetItemText(m_list_slab_return.GetSelectionMark(),0);
*pResult = 0;
}
void CReturnSlabFormView::OnReturnDelete()
{
// TODO: Add your control notification handler code here
UpdateData(true);
theApp.open_mes();
CString cur_id;
cur_id.Format("'%s'",m_return_castid);
statement &rs_dele = *(theApp.cn).prepare ("delete from RETURN_FURNACE where FUR_CODE="+cur_id);
rs_dele.execute();
rs_dele.release();
//刷新回炉表和回炉板坯信息
m_list_slab_return.DeleteAllItems();
resultset &rs_return = *(theApp.cn).select ("select * from RETURN_FURNACE order by OPERATE_TIME DESC");
Slab_Return_List_Update(m_list_slab_return,rs_return);
theApp.cn.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -