设为首页 加入收藏

TOP

10.7.5 收支信息查找的实现
2013-10-07 00:58:41 来源: 作者: 【 】 浏览:70
Tags:10.7.5 收支 信息 查找 实现

10.7.5  收支信息查找的实现

和其他管理系统一样,查找功能的设计是必不可少的。根据需求,本模块实现了按收支信息时间查找记录操作,通过单选按钮控件建立一组消息函数对年、月、日也实现了模糊查询。给查询界面添加类FIND,添加自定义函数GetSelTime(UINT nID)和保存时间的time变量,当用户选择查询时间后单击【查找】按钮,则会在列表中显示查询结果。【查找】对话框上"查找"按钮对应的消息具体代码如下:

代码位置:见光盘中本章源代码的FIND类。

  1. 1  void FIND::OnOK()  
  2. 2  {  
  3. 3    int i,j,k;                       
    //保存记录选择索引  
  4. 4    i=m_year.GetCurSel();                 
    //获取组合框选择索引  
  5. 5    m_year.GetLBText(i,year);             
    //索引对应的选项  
  6. 6    j=m_month.GetCurSel();  
  7. 7    m_month.GetLBText(j,month);  
  8. 8    k=m_day.GetCurSel();  
  9. 9    m_day.GetLBText(k,day);  
  10. 10    if(monthflag)                              
    //不按月查找  
  11. 11    {  
  12. 12      if(yearflag)                            
    //按年查找  
  13. 13      time=year;                              
    //查找的年份  
  14. 14      else 
  15. 15      {  
  16. 16        if(timeflag)                        
    //如果查找年月的话  
  17. 17          time=year+"-"+month;  
  18. 18        else                              
    //查找年月日  
  19. 19          time=year+"-"+month+"-"+day;  
  20. 20      }  
  21. 21    }  
  22. 22    else                                
    //按月查找  
  23. 23      time="-"+month+"-";  
  24. 24    CDialog::OnOK();  
  25. 25  } 

第3~9行代码实现了年、月、日组合框当前选项内容获取。

第10~23行代码实现了根据年、月、日对应布尔型变量的值获取查询时间的组成。其中年、月、日对应布尔型变量的值是在自定义一组消息函数GetSelTime(UINT nID)中实现的。

在GetSelTime(UINT nID)函数中实现用户选择的查询依据。该函数具体代码如下:

代码位置:见光盘中本章源代码的FIND类。

  1. 1  void FIND::GetSelTime(UINT nID)  
  2. 2  {  
  3. 3    switch(nID)  
  4. 4    {  
  5. 5    case IDC_foryear:                       
    //选择
    "按年份查询" 
  6. 6      m_year.EnableWindow(true);           
    //年组合框可用  
  7. 7      m_month.EnableWindow(false);       
    //月组合框不可用  
  8. 8      m_day.EnableWindow(false);        
    //日组合框不可用  
  9. 9      monthflag=true;                  
    //布尔型变量赋值  
  10. 10      yearflag=true;                 
    //布尔型变量赋值  
  11. 11      break;  
  12. 12    case IDC_formonth:                 
    //选择
    "按年月查询" 
  13. 13      m_year.EnableWindow(true);  
  14. 14      m_month.EnableWindow(true);  
  15. 15      m_day.EnableWindow(false);  
  16. 16      monthflag=true;  
  17. 17      yearflag=false;  
  18. 18      timeflag=true;  
  19. 19      break;  
  20. 20    case IDC_forday:                   
    //选择
    "按年月日查询" 
  21. 21      m_year.EnableWindow(true);  
  22. 22      m_month.EnableWindow(true);  
  23. 23      m_day.EnableWindow(true);  
  24. 24      monthflag=true;  
  25. 25      yearflag=false;  
  26. 26      timeflag=false;  
  27. 27      break;  
  28. 28    case IDC_month:                     
    //选择
    "只按月"单选钮  
  29. 29      m_year.EnableWindow(false);  
  30. 30      m_month.EnableWindow(true);  
  31. 31      m_day.EnableWindow(false);  
  32. 32      monthflag=false;  
  33. 33      break;  
  34. 34    }  
  35. 35  } 

第5~11行代码实现了当用户选择"按年份查询"单选钮的相关设置。

第12~19行代码实现了当用户选择"按年月查询"单选钮的相关设置。

第20~27行代码实现了当用户选择"按年月日查询"单选钮的相关设置。

第28~33行代码实现了当用户选择"只按月"单选钮的相关设置。

注意:关于一组消息函数的实现步骤在本书6.9.4节中详细介绍过,在此不再重复说明,请读者自行查看相关内容。

上面是在FIND类中实现了查询条件和查询内容的获取,而实现查询操作是在【查找信息】按钮消息函数中实现的。该按钮消息函数具体实现代码说明如下:

代码位置:见光盘中本章源代码的PAGE1类。

  1. 1  void PAGE1::OnFind()  
  2. 2  {  
  3. 3    FIND mydlg;                         
    //定义【查找信息】对话框对象  
  4. 4    if(mydlg.DoModal()==IDOK)           
    //按下【查找信息】按钮  
  5. 5    {  
  6. 6      CString str,time="time";  
  7. 7      str.Format("%s like '%%%s%%'",time,mydlg.time); 

    //构造查询语句  
  8. 8      mySet->m_strFilter=str;              
    //给m_strFilter赋值  
  9. 9      mySet->Requery();                     
    //执行查询  
  10. 10      LOADDATA();                      
    //在列表中显示结果  
  11. 11    }  
  12. 12  } 

第6~9行代码实现了获取查询条件和查询内容,构造查询语句,执行查询操作。其中使用了记录集类成员变量m_strFilter来实现查询,给这个变量赋值就相当于执行SQL语句中的WHERE子句。

第10行代码实现了把查询结果显示在列表中。关于这个函数具体实现在前面章节中已经介绍了。

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇10.7.4 收支信息添加、修改的实现 下一篇10.7.3 收支信息界面的设计

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: