C++物流管理系统(功能结构图+源代码+论文参考文献) 第6页

C++物流管理系统(功能结构图+源代码+论文参考文献) 第6页
3.客户区设计
(1)在主窗口添加虚函数PreTranslateMessage,为工具栏添加快捷键。具体代码如下。
BOOL CDMain::PreTranslateMessage(MSG* pMsg)
{
 if( pMsg->message==WM_KEYDOWN)
 {
  CString OPID;
  OPID=ado.FieldToOtherField("操作员信息表","用户名",OP,"操作员编号",1);
  CString sSQL;
  sSQL.Format("SELECT * FROM 权限表 WHERE 操作员编号=%s",OPID);
  int nJCXX,nCKGL,nYSGL,nXSGL,nPSGL,nXTGL;
  RxRecordset rst;
  rst.Open(sSQL,adCmdText);
  if(rst.GetRecordCount()<1)
  {
   nJCXX=1;
   nCKGL=1;
   nYSGL=1;
   nXSGL=1;
   nPSGL=1;
   nXTGL=1;
  }
  else
  {
   nJCXX=atoi(rst.GetFieldValue("基础信息"));
   nCKGL=atoi(rst.GetFieldValue("仓库管理"));
   nYSGL=atoi(rst.GetFieldValue("运输管理"));
   nXSGL=atoi(rst.GetFieldValue("销售管理"));
   nPSGL=atoi(rst.GetFieldValue("配送管理"));
   nXTGL=atoi(rst.GetFieldValue("系统管理"));
  }
  if(pMsg->wParam==VK_F2 && nJCXX!=0)
   PostMessage(WM_COMMAND,IDM_JCXX_HPXXWH);
  if(pMsg->wParam==VK_F3 && nXSGL!=0)
   PostMessage(WM_COMMAND,IDM_XSGL_XSKP);
  if(pMsg->wParam==VK_F4 && nCKGL!=0)
   PostMessage(WM_COMMAND,IDM_CCGL_CKDJ);
  if(pMsg->wParam==VK_F5 && nCKGL!=0)
   PostMessage(WM_COMMAND,IDM_CCGL_RKDJ);
  if(pMsg->wParam==VK_F6 && nCKGL!=0)
   PostMessage(WM_COMMAND,IDM_CCGL_CCZBB);
  if(pMsg->wParam==VK_F7 && nPSGL!=0)
   PostMessage(WM_COMMAND,IDM_PSGL_PSSQ);
  if(pMsg->wParam==VK_F8 && nPSGL!=0)
   PostMessage(WM_COMMAND,IDM_PSGL_ZTFK);
  if(pMsg->wParam==VK_F9)
   PostMessage(WM_COMMAND,IDM_YSGL_HCQRGL);
  if(pMsg->wParam==VK_F11 && nXTGL!=0)
   PostMessage(WM_COMMAND,IDM_SJGL_SJBF);
  if(pMsg->wParam==VK_F12)
   PostMessage(WM_COMMAND,IDM_ZYPX_SPJZ);
 }
 return CDialog::PreTranslateMessage(pMsg);
}
(2)添加状态栏,代码如下。
 m_StatusBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_STATUSBAR);
 int xpos=::GetSystemMetrics(SM_CXSCREEN);
 int width[4];
 width[1]=xpos*0.2;
 width[2]=xpos*0.74;
 width[3]=xpos*0.86;
 width[4]=xpos;
 CString sText;
 sText="操作员:【"+OP+"】";
 m_StatusBar.SetParts(4,&width[1]);
 RxRecordset rst;
4.2  基础信息基类
1.查询模块
 实现目标
查询子模块可以完成的功能如下:
 支持按照多字段、多条件查询。
 支持模糊查询。
 当用户双击表格中某记录时,调用编辑模块进行编辑。
 支持打印功能。
查询子模块的运行界面如图6所示。
 
图6  查询子模块的运行界面
 设计步骤
向项目中添加一个新Dialog资源,资源ID为IDD_BASEQUERY。从Controls面板上向Dialog资源中添加2个Static、1个Edit、2个ComboBox、1个ListControl控件。
 代码分析
(1) 根据模块所要完成的功能,抽象出CDBaseQuery的原型如下:
class CDBaseQuery : public Cdialog
{
public:
 CDBaseQuery(Cstring sCaption,   //窗口标题
  Cstring sSQL,  //SQL语句字符串
  Cstring sIdentify, //由程序自动生成的惟一标识字段名
  int nNumberStyle, //惟一标识字段的类型
  CWnd* pParent = NULL
  );   // 构造函数
protected:
  //{{AFX_MSG(CDBaseQuery)
 virtual void Init(); //为子类提供的初始化虚函数
 //}}AFX_MSG
 DECLARE_MESSAGE_MAP()
private:
 int m_NumberStyle; ///惟一标识字段的类型
 Cstring m_Identify; //由程序自动生成的惟一标识字段名
 RxRecordset rst;  //记录集对象
 int m_CurrentRow;  //当前行
 Cstring m_Caption; //对话框标题
 Cstring m_DateBaseName; //数据库名称

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有