4 Star 0 Fork 2

leegoobin/AutoPHS

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
ChangMaterilName.cpp 8.84 KB
一键复制 编辑 原始数据 按行查看 历史
// ChangMaterilName.cpp : implementation file
//
#include "stdafx.h"
#include "autophs.h"
#include "ChangMaterilName.h"
#include "EDIBgbl.h"
#include "userphs.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CChangMaterilName dialog
CChangMaterilName::CChangMaterilName(CWnd* pParent /*=NULL*/)
: CDialog(CChangMaterilName::IDD, pParent)
{
//{{AFX_DATA_INIT(CChangMaterilName)
m_newMaterilName = _T("");
//}}AFX_DATA_INIT
}
void CChangMaterilName::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChangMaterilName)
DDX_Control(pDX, IDC_LIST_MATERNAME, m_materNameList);
DDX_Control(pDX, IDC_LIST_VOLUME, m_volumeIdList);
DDX_Control(pDX, IDC_LIST_WORKNAME, m_workNameList);
DDX_Text(pDX, IDC_MATERILNAME_EDIT, m_newMaterilName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChangMaterilName, CDialog)
//{{AFX_MSG_MAP(CChangMaterilName)
ON_NOTIFY(NM_CLICK, IDC_LIST_WORKNAME, OnClickListWorkname)
ON_NOTIFY(NM_CLICK, IDC_LIST_VOLUME, OnClickListVolume)
ON_NOTIFY(LVN_BEGINDRAG, IDC_LIST_WORKNAME, OnBegindragListWorkname)
ON_NOTIFY(LVN_BEGINDRAG, IDC_LIST_VOLUME, OnBegindragListVolume)
ON_NOTIFY(LVN_COLUMNCLICK, IDC_LIST_VOLUME, OnColumnclickListVolume)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChangMaterilName message handlers
BOOL CChangMaterilName::OnInitDialog()
{
CDialog::OnInitDialog();
CRect rect;
int width = 0;
//设置报表样式
DWORD styles = m_workNameList.GetExtendedStyle();
m_workNameList.SetExtendedStyle(styles|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_workNameList.GetWindowRect(rect);
width = rect.right-rect.left;
m_workNameList.InsertColumn( 0, "工程代号", LVCFMT_LEFT, width/3 );
m_workNameList.InsertColumn( 1, "工程名称", LVCFMT_LEFT, width - width/3 );
//设置报表样式
styles = m_volumeIdList.GetExtendedStyle();
m_volumeIdList.SetExtendedStyle(styles|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_volumeIdList.GetWindowRect(rect);
width = rect.right-rect.left;
m_volumeIdList.InsertColumn( 0, "卷册代号", LVCFMT_LEFT, width/4 );
m_volumeIdList.InsertColumn( 1, "卷册名称", LVCFMT_LEFT, width - width/2 );
m_volumeIdList.InsertColumn( 2, "VolumeID", LVCFMT_LEFT, width/4 );
//设置报表样式
styles = m_materNameList.GetExtendedStyle();
m_materNameList.SetExtendedStyle(styles|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_materNameList.GetWindowRect(rect);
width = rect.right-rect.left;
m_materNameList.InsertColumn( 0, "材料名称", LVCFMT_LEFT, width );
CDaoRecordset rsTmpEngin(&EDIBgbl::dbPRJDB );
try
{
CString strSql = "SELECT EnginID,gcmc FROM Engin";
rsTmpEngin.Open(dbOpenSnapshot,strSql);
int i,iSelEngin;
CString strVal;
m_workNameList.DeleteAllItems();
while( !rsTmpEngin.IsEOF() )
{
i = 0;
strVal = vtos(rsTmpEngin.GetFieldValue("EnginID"));
if(strVal==EDIBgbl::SelPrjID)
{
iSelEngin=i;
//选中
m_workNameList.SetItemState(iSelEngin, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
SetVolumeList(strVal);
}
m_workNameList.InsertItem(i,strVal);
strVal = vtos(rsTmpEngin.GetFieldValue("gcmc"));
m_workNameList.SetItemText(i,1,strVal);
rsTmpEngin.MoveNext();
i++;
}
}
catch(::CDaoException *e)
{
e->ReportError();
e->Delete();
}
if(rsTmpEngin.IsOpen())
{
rsTmpEngin.Close();
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CChangMaterilName::OnClickListWorkname(NMHDR* pNMHDR, LRESULT* pResult)
{
if ( m_workNameList.GetItemCount() < 0 )
{
return;
}
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int x = pNMListView->iItem;//KEY
if(x == -1)
{
return;
}
CString strEnginID = m_workNameList.GetItemText(x,0);
SetVolumeList(strEnginID);
*pResult = 0;
}
void CChangMaterilName::OnClickListVolume(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
if ( m_volumeIdList.GetItemCount() < 0 )
{
return;
}
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
int x = pNMListView->iItem;//KEY
if(x == -1)
{
return;
}
SetMaterialList();
*pResult = 0;
}
void CChangMaterilName::OnOK()
{
CString strtmp;
int nVolumeIndex = m_volumeIdList.GetSelectionMark();
int nMaterilIndex = m_materNameList.GetSelectionMark();
CString strVolumeID = m_volumeIdList.GetItemText(nVolumeIndex,0);
UpdateData();
if(m_newMaterilName.IsEmpty())
{
AfxMessageBox("请输入材料名");
return;
}
UpdateMaterial();
CDialog::OnOK();
}
void CChangMaterilName::OnBegindragListWorkname(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CChangMaterilName::OnBegindragListVolume(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CChangMaterilName::SetVolumeList(CString strEngID)
{
CString strSql;
strSql.Format("SELECT VolumeID,jcdm,jcmc FROM Volume WHERE EnginID = '%s'",strEngID);
CDaoRecordset rsTmpVolume(&EDIBgbl::dbPRJDB );
try
{
rsTmpVolume.Open(dbOpenSnapshot,strSql);
int i;
CString strVal;
m_volumeIdList.DeleteAllItems();
while( !rsTmpVolume.IsEOF() )
{
i = 0;
strVal = vtos(rsTmpVolume.GetFieldValue("jcdm"));
m_volumeIdList.InsertItem(i,strVal);
strVal = vtos(rsTmpVolume.GetFieldValue("jcmc"));
m_volumeIdList.SetItemText(i,1,strVal);
strVal = vtos(rsTmpVolume.GetFieldValue("VolumeID"));
m_volumeIdList.SetItemText(i,2,strVal);
if(EDIBgbl::SelVlmID==strVal)
{
//选中
m_volumeIdList.SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
}
rsTmpVolume.MoveNext();
i++;
}
}
catch(::CDaoException *e)
{
e->ReportError();
e->Delete();
}
if(rsTmpVolume.IsOpen())
{
rsTmpVolume.Close();
}
}
void CChangMaterilName::OnColumnclickListVolume(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 0;
}
void CChangMaterilName::SetMaterialList()
{
CString strSql,strtmp;
try
{
POSITION pos1 = m_volumeIdList.GetFirstSelectedItemPosition();
if (pos1 == NULL)
TRACE0("No items were selected!/n");
else
{
while (pos1)
{
int nItem = m_volumeIdList.GetNextSelectedItem(pos1);
TRACE1("Item %d was selected!/n", nItem);
// you could do your own processing on nItem here
CString strVolumeID = m_volumeIdList.GetItemText(nItem,2);
CString strSql1;
strSql1.Format("%s,",strVolumeID);
strtmp+=strSql1;
}
strtmp=strtmp.Left(strtmp.GetLength()-1);//去掉最后逗号
//AfxMessageBox(strtmp);
strSql.Format("SELECT CLcl FROM ZB WHERE VolumeID IN (SELECT VolumeID FROM Volume WHERE VolumeID IN (%s)) AND CLcl is not NULL GROUP BY CLcl",strtmp);
CDaoRecordset rsTmpMateril(&EDIBgbl::dbPRJDB );
rsTmpMateril.Open(dbOpenSnapshot,strSql);
int i=0;
CString strVal;
m_materNameList.DeleteAllItems();
while( !rsTmpMateril.IsEOF() )
{
strVal = vtos(rsTmpMateril.GetFieldValue("CLcl"));
m_materNameList.InsertItem(i,strVal);
rsTmpMateril.MoveNext();
i++;
}
}
}
catch(::CDaoException *e)
{
e->ReportError();
e->Delete();
return;
}
return;
}
bool CChangMaterilName::UpdateMaterial()
{
try
{
CString strtmp,strtmp1;
CString strSql,strSql1;
POSITION pos1 = m_volumeIdList.GetFirstSelectedItemPosition();
if (pos1 == NULL)
TRACE0("No items were selected!/n");
else
{
while (pos1)
{
int nItem = m_volumeIdList.GetNextSelectedItem(pos1);
TRACE1("Item %d was selected!/n", nItem);
// you could do your own processing on nItem here
CString strVolumeID = m_volumeIdList.GetItemText(nItem,2);
strSql1.Format("%s,",strVolumeID);
strtmp+=strSql1;
}
strtmp=strtmp.Left(strtmp.GetLength()-1);//去掉最后逗号
POSITION pos = m_materNameList.GetFirstSelectedItemPosition();
if (pos == NULL)
TRACE0("No items were selected!/n");
else
{
strSql1="";
strtmp1="";
while (pos)
{
int nItem = m_materNameList.GetNextSelectedItem(pos);
TRACE1("Item %d was selected!/n", nItem);
// you could do your own processing on nItem here
CString strMaterilName = m_materNameList.GetItemText(nItem,0);
strSql.Format("UPDATE ZB SET CLcl='%s' WHERE CLcl='%s' AND VolumeID IN (%s)",m_newMaterilName,strMaterilName,strtmp);
EDIBgbl::dbPRJDB.Execute(strSql);
strSql1.Format("材料:'%s'已修改为'%s'\n",strMaterilName,m_newMaterilName);
strtmp1+=strSql1;
}
AfxMessageBox(strtmp1);
}
}
}
catch(::CDaoException *e)
{
e->ReportError();
e->Delete();
return false;
}
return true;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/uesoft/AutoPHS.git
git@gitee.com:uesoft/AutoPHS.git
uesoft
AutoPHS
AutoPHS
CAE

搜索帮助

D67c1975 1850385 1daf7b77 1850385