设为首页 加入收藏

TOP

10.5.4 系统框架界面的实现(2)
2013-10-07 00:56:27 来源: 作者: 【 】 浏览:60
Tags:10.5.4 系统 框架 面的 实现

10.5.4  系统框架界面的实现(2)

上述代码实现了Tab控件的设计,包含设置标题、关联对话框、设置窗口大小、对话框指针赋值、显示初始窗口5个部分。该控件初始显示的是用户收支详细界面。

下面介绍用户收支详细界面初始化设置实现过程。

通过类向导给该对话框添加初始化WM_INITDIALOG消息,给列表控件添加"control"型变量m_list,需要对列表控件属性进行设置。设置属性"View"改为"Report",界面如图10-22所示。值得注意的是和Tab控件相关联的对话框属性必须进行设置。最终对话框属性设置如图10-23所示。

 
(点击查看大图)图10-22  列表控件风格设置界面
 
(点击查看大图)图10-23  Tab控件关联对话框风格设置界面

该对话框界面的初始化函数OnInitDialog()中代码参考如下:

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

  1. 1  BOOL PAGE1::OnInitDialog()  
  2. 2  {  
  3. 3    CDialog::OnInitDialog();  
  4. 4    pdb=new CDatabase;            
    //数据库指针初始化  
  5. 5    mySet=new LCSet(pdb);        
    //记录集初始化  
  6. 6    mySet->Open();              
    //打开数据表  
  7. 7    m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);   

    //设置列表控件格式  
  8. 8    m_list.InsertColumn(0,"编号",LVCFMT_CENTER,40);        
    //添加列表列名编号  
  9. 9    m_list.InsertColumn(1,"记录时间",LVCFMT_CENTER,145);  

    //添加列名记录时间  
  10. 10    m_list.InsertColumn(2,"收入类型",LVCFMT_CENTER,120);  
    //添加列名收入类型  
  11. 11    m_list.InsertColumn(3,"收入数目(元)",LVCFMT_CENTER,100);  
    //添加列名收入数目(元)  
  12. 12    m_list.InsertColumn(4,"消费类型",LVCFMT_CENTER,120);  
    //添加列名消费类型  
  13. 13    m_list.InsertColumn(5,"消费数目(元)",LVCFMT_CENTER,100);  
    //添加列名消费数目(元)  
  14. 14    m_list.InsertColumn(6,"备注信息",LVCFMT_CENTER,150);  
    //添加列名备注信息  
  15. 15    LOADDATA();                                         
    //在列表中显示数据  
  16. 16    if(!loginflag)                 
    //非管理员权限  
  17. 17    {  
  18. 18      m_ADD.EnableWindow(FALSE);    
    //禁用【添加】按钮  
  19. 19      m_DELE.EnableWindow(FALSE);   
    //禁用【删除】按钮  
  20. 20      m_MODIFY.EnableWindow(FALSE);  
    //禁用【修改】按钮  
  21. 21      m_look.EnableWindow(FALSE);  
    //禁用【报表】按钮  
  22. 22      m_FIND.EnableWindow(FALSE);  
    //禁用【查找】按钮  
  23. 23      m_PRINT.EnableWindow(FALSE);     
    //禁用【打印】按钮  
  24. 24    }  
  25. 25    return TRUE;  
  26. 26  } 

第4~6行代码实现了数据库指针初始化、记录集初始化并打开数据表。

第7~14行代码实现了列表控件属性设置并给控件添加列标题。

第15行代码实现了读取数据表中数据并在列表中显示,通过LOADDATA()函数封装。该函数具体实现代码将在下面详细介绍。

第16~24行代码实现了非管理员登录时操作按钮禁用。

注意:列表控件常用函数功能说明如下:SetExtendedStyle()设置扩展风格,设置列标题使用InsertColumn()函数,数据插入用InsertItem()函数,获取数据用GetItemText()函数。

由于对数据表操作比较频繁,故把显示数据的代码用自定义函数封装,这样不仅简化代码,也给维护带来了方便。下面介绍LOADDATA()函数中的具体实现代码。

  1. 1  void PAGE1::LOADDATA()  
  2. 2  {  
  3. 3    mySet->Requery();                           
    //重新打开记录集  
  4. 4    m_list.DeleteAllItems();                      
    //列表数据清空  
  5. 5    int i=0;  
  6. 6    while(!mySet->IsEOF())                      
    //如果记录没到最后  
  7. 7    {  
  8. 8      CString str,str1,str2;  
  9. 9      str.Format("%d",mySet->m_id);                  
    //数据格式转换  
  10. 10      str1.Format("%d",mySet->m_incomnum);          
    //数据格式转换  
  11. 11      str2.Format("%d",mySet->m_costnum);             
    //数据格式转换  
  12. 12      m_list.InsertItem(i,str);                       
    //插入数据项  
  13. 13      m_list.SetItemText(i,1,mySet->m_time);          
    //插入时间  
  14. 14      m_list.SetItemText(i,2,mySet->m_incomtype);       
    //插入收入类型  
  15. 15      m_list.SetItemText(i,3,str1);                  
    //插入收入数量  
  16. 16      m_list.SetItemText(i,4,mySet->m_costtype);   
    //插入消费类型  
  17. 17      m_list.SetItemText(i,5,str2);                 
    //插入消费数量  
  18. 18      m_list.SetItemText(i,6,mySet->m_about);       
    //插入备注  
  19. 19      i++;  
  20. 20      mySet->MoveNext();             
    //记录后移  
  21. 21    }  
  22. 22  } 

第3行代码实现了通过按构造SQL语句方式,重新打开记录集。

第6~21行代码实现了遍历记录集读取数据并插入到列表控件中。其中9、10、11行实现了数据格式从整型到字符串格式的转换。

关于列表控件的使用方法前面已经介绍了,这里提醒读者注意插入数据的格式,如果不是字符串格式,首先需要通过Format()函数进行格式转换,再插入到列表控件中。

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

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇10.5.4 系统框架界面的实现(1) 下一篇10.6.3 用户管理界面的设计

评论

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