C++物流管理系统(功能结构图+源代码+论文参考文献) 第8页
rcNewWindow.right=rcNewWindow.left+rcWnd.Width();
rcNewWindow.top=xPix/2-rcWnd.Height()/2-70;
rcNewWindow.bottom=rcNewWindow.top+rcWnd.Height();
if(nCol<14) {
this->MoveWindow(rcNewWindow);
MoveButton(13,rcEdit.top);
}
else{
this->ShowWindow(SW_SHOWMAXIMIZED);
MoveButton(xPix-500,yPix-120);
}
//设置窗口标题
Cstring sCaption;
this->GetParent()->GetWindowText(sCaption);
sCaption=sCaption.Left(sCaption.GetLength()-4);
this->SetWindowText(sCaption+”维护”);
m_DataBaseName=sCaption+”表”;
//设置字符某些只允许输入数字
RxRecordset rst;
rst.Open(m_DataBaseName);
for(I=0;I<rst.GetFieldCount();I++){
if(rst.GetFieldType(i)==”数值型”)
pEdt[I].IsMoneyOnly(true);
if(rst.GetFieldType(i)==”逻辑型”)
pEdt[I].IsBoolOnly(true);
}
this->Invalidate();
this->GetClientRect(&rcNewWindow);
//调整标题区域大小
this->m_StaTitle.MoveWindow(16,16,rcNewWindow.right-32,38,true);
this->m_StaTitle.SetWindowText(sCaption+”维护”);
Display();
return TRUE;
}
(2)现在,所有相关数据表中的字段在对话框中都会有一个对应的编辑框,通过Display成员函数将用户选择的记录添加到和编辑框中。
void CDBaseDlg::Display()
{
Cstring sItemValue;
int nSelectMark=m_pGrid->GetSelectionMark();// m_pGrid是指向查询子模块中表格对象的指针
if(nSelectMark==-1){
m_ButCommand[4].EnableWindow(true);
return;
}
for(int I=0;I<m_ColCount;I++){
sItemValue=m_pGrid->GetItemText(nSelectMark,I);
pEdt[I].SetWindowText(sItemValue);//根据用户选择的列,将各字段内容添加到编辑框中
}
}
(3)基础的准备工作制作完成,现在可以为程序增加编辑功能了。
void CDBaseDlg::OnButnew() //新增
{
Clear(); //清空各编辑框的内容
OnButcopy();
}
void CDBaseDlg::Clear() //清空各编辑框内容
{
for(int m=0;m<m_ColCount;m++)
{
pEdt[m].SetWindowText(“”);
}
}
void CDBaseDlg::OnButchange() //修改
{
m_IsAdd=false; //记录用户执行的是添加操作还是修改操作,在保存时使用
Enabled(true);
}
void CDBaseDlg::OnButdele() //删除
{
if(MessageBox(“确定要删除这条记录吗?”,”系统提示”,\
MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
Cstring sSQL,sID,sValue;
pSta[0].GetWindowText(sID);
sID=sID.Left(sID.GetLength()-1);
pEdt[0].GetWindowText(sValue);
RxRecordset rst;
rst.Open(m_DataBaseName);
Cstring sType=rst.GetFieldType(0);
if(sType=”字符型”)
sSQL.Format(“DELETE FROM %s WHERE %s=’%s’”,m_DataBaseName,sID,sValue);
else
sSQL.Format(“DELETE FROM %s WHERE %s=%s”,m_DataBaseName,sID,sValue);
rst.Open(sSQL,adCmdText);
this->OnCancel();
}
void CDBaseDlg::OnButcopy() //复制
{
Cstring sSmallCaption,sCaption;
m_IsAdd=true;
Enabled(true);
Cstring NewNumber;
RxRecordset rst;
sCaption=rst.GetFieldName(0);
rst.Open(m_DataBaseName);
Cstring sType=rst.GetFieldType(0);
if(sType==”字符型”){
sSmallCaption=CharToLetterCode(m_DataBaseName);
sSmallCaption=sSmallCaption.Left(2);
NewNumber=ado.AutoNumber(m_DataBaseName,m_Identify,sSmallCaption,m_NumberStyle);
}
else
NewNumber=ado.AutoNumber(m_DataBaseName,m_Identify,””,m_NumberStyle);
pEdt[0].SetWindowText(NewNumber);
pEdt[1].SetFocus();
}
void CDBaseDlg::OnButundo() //撤消
{
if(MessageBox(“确定要撤销操作吗?”,”系统提示”,\
MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
Clear();
Display();
Enabled(false);
}
void CDBaseDlg::OnButsave() //保存
{
if(MessageBox(“确定要保存记录吗?”,”系统提示”,\
MB_OKCANCEL|MB_ICONQUESTION)!=1)
return;
RxRecordset rst;
rst.Open(m_DataBaseName);
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>