vc++工资管理系统设计与实现_第1页
vc++工资管理系统设计与实现_第2页
vc++工资管理系统设计与实现_第3页
vc++工资管理系统设计与实现_第4页
vc++工资管理系统设计与实现_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录一、设计题目2二、系统环境2三、设计内容23.1数据库的设计23.2创建数据库及其数据表 33.3开放数据源。43.4创建工资管理系统基本框架 63.5主对话框IDD_MY_FORM 中控件的加入与布局。 83.6为编辑框控件建立数据字段映射 113.7为命令按钮增加函数并编制过程代码 13四、流程图及模块图 174,1系统的总体设计174.2工资数据处理模块184.3工资数据浏览模块184.4增加与删除模块194.5统计模块19五、程序清单19六、程序中遇到的冋题及解决方法 38七、心得体会38八、参考文献39、设计题目工资管理系统设计与实现、系统环境wi ndowsXP VC+二、设计

2、内容3.1数据库的设计作为工资管理系统,它主要是数据库应用系统数据处理,数据库应用系统开发的前提是首先开发数据库和数据库中的数据表。因此在本案例中,我 采用Microsoft Access 2007创建数据库和数据表。为此我们先定义一个职工工资数据表”的结构,如下表所示。职工工资数据表字段名称字段类型字段大小小数位数索引必须填写年份数字整型是月份数字整型是输入日期日期/时间默认是职工编号数字整型是姓名文本16是部门文本20是基本工资数字长整型自动是业绩工资数字长整型自动是奖金数字长整型自动是津贴数字长整型自动是各种补助数字长整型自动是应发数数字长整型自动是水电费数字长整型自动是2房租数字长整型

3、自动是储蓄数字长整型自动是会费数字长整型自动是保险数字长整型自动是扣除总计数字长整型自动是实发工资数字长整型自动是3.2创建数据库及其数据表(1 启动 Microsoft Office 2007 中的 Microsoft Access应用程序,出现下 图所示界面,通过该界面可以创建一个新的数据库。M4 感旦0血餵国rw-呜谭口: ST眸叹r症卧为4C«UJ巴*MciMcHTAtEOj SI? '2 :l4s=«39 2007 -Ascrii(2)在创建里头单击“表设计”,用户可以在其中设计一个新的数据表结构。如下图所示Stt9&h啓fi=-* «&

4、gt; 创!fog寿|iW.r5EB Et走壬世«!暑阳如由teTIEwMB,.炼KJafisl严斗0«2«鼻帆1±ifjT * J * 3 冏闻r # 国园 | = < T 吃*主畔壬工备 闘宀彌ifedfi莊IEl曲 f l啊料耳;aw配薛说8I0中忖14H 57佢?*4孕鼻zi me23i ww編明宇賤呂居! «±M鼻沖如童已厨貝|i±te7«:#«<l轲用曲年忻 月悄 itaASW 职匸律葺WX林字 蝕字 載字 帝專fEflG市就J3CEBK$frv.B0mattRNa91£

5、vwewft«在Microsoft Access 2007数据库设计器中,用户可以定义数据表的字段 名称、字段类型、字段大小等数据表结构的内容。数据表结构一经确定,用 户可以打开该数据表,在数据表中输入一些基本数据,以在后面的系统设计 中体现设计的效果。最后,系统自动将创建的数据表保存在“D WC+写作案例CH432资管理数据库”中,将创建的数据表命名为职工工资表”。3.3开放数据源开始一一设置一一控制面板一一管理工具,双击数据源打开。选择 第二个系统 DSN,点击“添加”选择 Microsoft Access Driver(*mdb)。点 击完成。在弹出的对话框中起一个数据源名,然

6、后点击“选择”,然后在目录一栏选择 刚才建立的那个表。选中,点击确定。一路确定下去,0Q 数据源就建立好了。ODBC数曙源管理器3.4创建工资管理系统基本框架在前面我已经创建了工资管理数据库”、职工工资表”。它可为应用程 序提供一个数据源。应用程序就是对该数据源的记录进行访问、增加、删除 以及数据管理的一切操作。有了这一切的工作,用户就可以着手进行应用系 统的构建了。接下来我要创建 工资管理系统”应用程序框架,步骤如下:(1) 结束数据库的创建并启动VC+,出现VC+主控界面。(2) 在VC+主控界面中单击 文件|新建”菜单项,出现新建工程类型选择对话框,在工程类型列表中选择 MFC AppW

7、izard(EXE)工程类型。输入工程名称为 工资管理系统”,并选择Win32平台类型。(4) 单击 确定”按钮,进入文档类型设置。(5) 选择单文档类型,即创建一个单文档界面的应用程序,设置资源使用 语言为中文,选择文档/查看体系结构支持。单击 下一步”按钮,进入框架设置的第2步,如图的对话框。在该对 话框中,需要用户对数据库的类型作一些相关的选择。SWfiMtMJ 損/血 ZB1£| 也|血 I*U 口血 WlHi3(7)选择“查看数据库不使用文件支持”;这时候Data Source按钮处于可用状态(或激活状态);在这一种选择下,VC+将为应用系统引入数据环境,即数据源,该数据源

8、就是我们在前面创建的工资数据库”,而不使用其他类型数据的文件支持。但数据源在系统制作中的引入需要用一定的驱动程序为 之进行。(8)单击“ Data Sourc按钮,出现图下图所示的选择数据源类型的对话框”胡紬叶点SwtK+WE 4afcL< MtUXBl£i 舸闻 I*U .gJJ *-.即均R C11 l*J .卜*m .护夢3D-.駆.:Wd程宜件個直擋隹交件卅虫花1站果 如閘唏g /ait躺曾中帕1鼻3.5主对话框IDD_MY_FORM 中控件的加入与布局。(1) 在主对话框IDD_MY_FORM中放入各种需要的控件,如标签控件、编 辑框控件、命令按钮控件,如下图。轴工B

9、M 硕rw出E+ + -皿2 町-IMlV KWM |吐T* 町|=|J31 却fj flMiE HlMJ «>.* 工血 删血 *U Mill 血 M«址U丄ftj总£f Q0ifc | 亠"寺%厂F *| 匚MvVl±iv | |AJI clasi i*MitieFG| JCMyVieuSi1i J. 一一 ,. ._ . ._ _. _lUi._J 工賢* 租 i£AQurct& 应AcHPereriM寺 iDFLIM*如3 血DjtfWMJTHi 吕 idd1my_fqr .+ 口 VCDfi+ J Meat+

10、jlStTWf Tbh _jl«dkir _j Vet AlonfWIi二兽WIju工逊嬉nr环*'M-ft国一劇上-jp|Kft輛血口佯曰固工吨日SIE国 比血aFliIEbGnlmwmEZEL 葩輛I岸刘和勺宣掴任立件讲慢苒二结果、皿昭唏匸| £13中丿:巨I4各个控件的属性设置如下表:标签对象的基本属性ID标题内容IDC_STATICCAPTION职工工资管理系统IDC_STATICNE年份IDC_STATICYF月份IDC_STATICZGBH职工编号IDC_STATICZGXM职工姓名IDC_STATICZGBM部门IDC_STATICJBGZ基本工资ID

11、C_STATICJJ奖金IDC_STATICYJGZ业绩工资IDC_STATICJT津贴IDC_STATICGZBZ各种补助IDC_STATICRDF水电费IDC_STATICFZOU房租IDC_STATICCX储蓄IDC_STATICHF会费IDC_STATICBX保险IDC_STATICYFHJ应发合计IDC_STATICKCHJ扣除合计IDC_STATICSFGZ实发工资编辑框空间的基本属性和编辑内容ID编辑内容IDC_EDITNF年份IDC_EDITYF月份IDC_EDITZGBH职工编号IDC_EDITZGBM所在部门IDC_EDITZGXM职工姓名IDC_EDITJBGZ基本工资9

12、IDC_EDITJJ奖金IDC_EDITYJGZ业绩工资IDC_EDITJT津贴IDC_EDITGZBZ各种补助IDC_EDITRDF水电费IDC_EDITFZOU房租IDC_EDITCX储蓄IDC_EDITHF会费IDC_EDITBX保险IDC_EDITYFHJ应发合计IDC_EDITKCHJ扣除合计IDC_EDITSFGZ实发工资命令按钮对象的基本属性和内容ID标题内容IDC_BUTIONFIRST|第一条IDC_BUTIONNEXT下一条IDC_BUTIONPREV前一条IDC_BUTIONLAST|最后一条IDC_BUTIONSUM执行统计IDC_RADIOADD增加记录IDC_RAD

13、IODELETE删除记录IDC_RADIOUPDATE刷新记录分组对象控件的基本属性ID标题IDC_STATICDATA工资数据处理10IDC_STATICBROWSE工资数据浏览3.6为编辑框控件建立数据字段映射(1) 在主对话框IDD_MY FORM中选取“年份”编辑框控件。(2) 用鼠标右键单击该对话框,出现一个快捷菜单。(3) 在快捷菜单中单击 建立类向导”,出现类向导对话框。(4) 在类向导对话框中将页面切换至 Member Variables页面并设置类名为 CmySet。该对话框列出了数据集的全部字段名、字段类型和字段的成员变量名称, 但成员变量名是在创建数据源时自动生成的,往往

14、不便于与编辑框建立映射 关系,为此将全部成员变量名称删除,并重新定义字段的成员变量名称。重 新定义后的字段变量名称如下图所示。MFC Cla«WizardAuito matin inClass name:Update Co turn nsMessage Maps Member VairiabltsActiveX Events I Class Infoooooo-OODa部储房各会基奖津tns - - - - - - > - - - - - 1 IJ - - 助资 讣 卷1工1总Description: binding data source integer column to

15、long lipidProject:工髓理 nH:l工资管理ITtaseth, HS工资皆理Set.cppColumn Names:Typem DXm BMm_CXin rzoum GZQZmHFmZJOGZm JJm JTm_KCZJm_NFMemberAdd Chss.aAdd Variablle,Oelete VariableBind All在Class name列表中选择CmyView,出现为编辑框控件与字段成员变量建 立消息映射的页面,如下图所示。11选中IDC_EDITNF(年份编辑)控件资源索引,再单击 Add Variable按钮, 出现变量选择列表框。在字段选择列表框中选择

16、年份”成员变量,如下图所 示。rAdd Member VariableSV>Set->m NF¥)Set->m NFMember variable name:Cancelm_pSet->m_RDF m_pSet->m_SFGZ m_pSet->m_YF m_pSet->m_YFHJ m pSet->m YJGZ iifHyDescription:long v/ith range validation(7)单击OK按钮,即完成 年份”编辑框与 年份”字段成员变量的映射。12采用相同的方法为全部编辑框控件建立消息映射,然后编译对话框,则发现

17、可以在编辑框中修改数据表中的记录。3.7为命令按钮增加函数并编制过程代码3.7.1第一条记录”命令按钮的过程代码(1)在对话框中选取 第一条记录”命令按钮。(2)用鼠标右键单击该命令按钮,出现一个快捷菜单。(3)在快捷菜单中单击 建立类向导”菜单项,出现一个消息映射的对话 框。(4)在消息映射的对话框中选择 Message Maps页面,选择消息类型为 “ON_CLICKED并单击Add Function按钮,出现一个函数命令对话框,建议接受系统命名的函数名即可。(5)确认函数名后单击Edit Code按钮,出现代码编辑框,在代码编辑 框中编辑命令按钮的代码,如下所示:void CMyView

18、 : OnBnttoiiilrst 0/ / TODO: Add your control notification handler code here i)_pSet - > MoveFirst ();iffmjjSet ->IsBOF0)Mess age Box录己经在第一条!jujDSet - > MoveNext 0;UpdateData (FALSE);Re tu nuUp da t eData (FALSE);这样,第一条记录”命令按钮的过程代码就编辑完成了。采用同样的方法,我们可以编辑其他命令按钮的过程代码。133.7.2下一条记录”命令按钮的过程代码void

19、CMyView:O nButio nn ext()/ TODO: Add your con trol no tificati on han dler code here m_pSet->MoveNext();if(m_pSet->lsEOF()MessageBox("已经是最后了! ”); m_pSet->MovePrev();UpdateData(FALSE);return;UpdateData(FALSE);3.7.3上一条记录”命令按钮的过程代码void CMyView:O nButi on prev()/ TODO: Add your con trol no

20、 tificatio n han dler code here m_pSet->MovePrev();if(m_pSet->lsBOF()MessageBox("已经是第一条了!"); m_pSet->MoveNext();UpdateData(FALSE);return;UpdateData(FALSE);143.7.4最后一条记录”命令按钮的过程代码void CMyView:O nButio nlast()/ TODO: Add your con trol no tificatio n han dler code here m_pSet->Mov

21、eLast();if(m_pSet->lsEOF()MessageBox("已经是最后了!");m_pSet->MovePrev();UpdateData(FALSE);return;UpdateData(FALSE);3.7.5增加记录”选项按钮的过程代码void CMyView : : On Radiodd ()/TODO: Add your con trol no tificati on han dler code here m_pSet - >AddNew ();UpdateData (FALSE);3.7.6删除记录”选项按钮的过程代码void

22、CMyView: On Radiodelete()/ TODO: Add your con trol no tificatio n han dler code here15 m_pSet->Delete();m_pSet->MoveNext();if(m_pSet->lsEOF()m_pSet->MoveLast();if(m_pSet->lsBOF()m_pSet->SetFieldNull(NULL);UpdateData(FALSE);3.7.7刷新记录”选项按钮的过程代码void CMyView:O nRadioupdate()/ TODO: Add

23、 your con trol no tificatio n han dler code herem_pSet->Edit();UpdateData();m_pSet->Update();m_pSet->Requery();m_pSet->Ca ncelUpdate();3.7.8执行统计”命令按钮的过程代码void CMyView:O nButio nsum()/ TODO: Add your con trol no tificati on han dler code here m_pSet->Edit();m_pSet->m_YJGZ=m_pSet->

24、;m_JBGZ+m_pSet->m_JJ+m_pSet->m_YJGZ+m_pSet->m_JT+m_pSet->m_GZBZ;m_pSet->m_KCZJ=m_pSet->m_CX+m_pSet->m_HF+m_pSet->m_FZOU+m_pSet->m_RDF+m_pSet->m_BX;m_pSet->m_SFGZ=m_pSet->m_YJGZ-m_pSet->m_KCZJ;16UpdateData(FALSE); m_pSet->Requery(); m_pSet->Update();最后编译执行

25、,结果如下图:四、流程图及模块图4,1系统的总体设计根据对系统需求的分析,可以把系统划分:工资数据处理模块、工资数 据浏览模块、增加与删除模块、统计模块。系统总体模块,: 1 11工工工工资资资资数数数数据据据据浏处处处览理理理模模模模块块块块174.2工资数据处理模块年份月份保险会费职工姓名储蓄部门房租基本工资水电费各种补助奖金业绩工资津贴工资数 据处理模 块职工编号4.3工资数据浏览模块184.4增加与删除模块五、程序清单5.1 / 工资管理.cpp : Defines the class behaviors for the application./#include "stda

26、fx.h" #include "工资管理.h"19#i nclude "Mai nF rm.h"#in elude "ChildFrm.h"#include "工资管理 Set.h"#include "工资管理 Doc.h"#include "工资管理 View.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_;#en dif/ CMyAppBEG

27、IN_MESSAGE_MAP(CMyApp, CWin App)AFX_MSG_MAP(CMyApp)ON_COMMAND(ID_APP_ABOUT, On AppAbout)/ NOTE - the ClassWizard will add and remove mapp ing macros here./ DO NOT EDIT what you see in these blocks of gen erated code!/AFX_MSG_MAP/ Stan dard file based docume nt comma nds20ON_COMMAND(ID_FILE_NEW, CWin

28、 App:O nF ileNew)ON_COMMAND(ID_FILE_OPEN, CWin App:O nFileOpe n)/ Stan dard print setup comma ndON_COMMAND(ID_FILE_PRINT_SETUP,CWin App:O nFilePri ntSetup)END_MESSAGE_MAP()/ CMyApp con structio nCMyApp:CMyApp()/ TODO: add con structi on code here,/ Place all sig nifica nt in itializati on in Initln

29、sta nee/ The one and only CMyApp objectCMyApp theApp;/ CMyApp in itializati onBOOL CMyApp:I nitln sta nce()21AfxE nableCo ntrolCo ntai ner();/ Stan dard in itializati on/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the followi ng/

30、 the specific in itializati on routi nes you do not n eed.#ifdef _AFXDLLEn able3dCo ntrols();/ Call this whe n usi ng MFC in a sharedDLL#elseEn able3dCo ntrolsStatic() Call this whe n lin ki ng to MFC statically#en dif/ Change the registry key un der which our sett ings are stored./ TODO: You should

31、 modify this stri ng to be somethi ng appropriate/ such as the n ame of your compa ny or orga ni zati on.SetRegistryKey(_T("Local AppWizard-Ge nerated Applicatio ns");LoadStdProfileSettings(); / Load standard INI file options (includingMRU)/ Register the applicati on's docume nt templa

32、tes. Docume nt templates/ serve as the conn ecti on betwee n docume nts, frame wi ndows and22views.CMultiDocTemplate* pDocTemplate;pDocTemplate = new CMultiDocTemplate(IDR_MYTYPE,RUNTIME_CLASS(CMyDoc),RUNTIME_CLASS(CChildFrame), / custom MDI child frameRUNTIME_CLASS(CMyView);AddDocTemplate(pDocTempl

33、ate);/ create main MDI Frame wi ndowCMainF rame* pMa inF rame = new CMainF rame;if (!pMa in Frame->LoadFrame(IDR_MAINFRAME)return FALSE;m_pMai nWnd = pMa inF rame;/ Parse comma nd line for sta ndard shell comma nds, DDE, file ope n CComma ndLi nelnfo cmdI nfo;ParseComma ndLi ne(cmdl nfo);/ Dispat

34、ch comma nds specified on the comma nd lineif (!ProcessShellComma nd(cmd Info)return FALSE;23/ The main win dow has bee n in itialized, so show and update it.pMa inF rame->ShowWi ndow(m_ nCmdShow);pMa inF rame->UpdateWi ndow();return TRUE;/ CAboutDlg dialog used for App Aboutclass CAboutDlg :

35、public CDialogpublic:CAboutDlg();/ Dialog DataAFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard gen erated virtual fun ctio n overridesAFX_VIRTUAL(CAboutDlg)protected:24virtual void DoDataExcha nge(CDataExcha nge* pDX); / DDX/DDVsupport/AFX_VIRTUAL/ Impleme ntati onprotected:AFX_MSG

36、(CAboutDlg)/ No message han dlers/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExcha nge(CDataExcha nge* pDX)CDialog:DoDataExcha nge(pDX);AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAP25BEGIN_MESSAGE_MAP(CAboutDlg, CDialo

37、g)AFX_MSG_MAP(CAboutDlg)/ No message han dlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ App comma nd to run the dialogvoid CMyApp: On AppAbout()CAboutDlg aboutDlg;aboutDlg.DoModal();/ CMyApp message han dlers5,2 / 工资管理 Doc.cpp : implementation of the CMyDoc class/#i nclude "stdafx.h"#include "工资

38、管理.h"#include "工资管理 Set.h"26#include "工资管理 Doc.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_;#en dif/ CMyDocIMPLEMENT_DYNCREATE(CMyDoc, CDocume nt)BEGIN_MESSAGE_MAP(CMyDoc, CDocume nt)AFX_MSG_MAP(CMyDoc)/ NOTE - the ClassWizard will add

39、 and remove mapp ing macros here./ DO NOT EDIT what you see in these blocks of gen erated code!/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDoc con structio n/destructio n27CMyDoc:CMyDoc()/ TODO: add on e-time con structi on code hereCMyDoc:CMyDoc()BOOL CMyDoc:O nN ewDocume nt()if (!CDocume nt: :OnN ewDocume n

40、t()return FALSE;/ TODO: add rein itializati on code here/ (SDI docume nts will reuse this docume nt) return TRUE;/28/ CMyDoc serializationvoid CMyDoc:Serialize(CArchive & ar)if (ar.lsStori ng()/ TODO: add stori ng code hereelse/ TODO: add loadi ng code here/ CMyDoc diag no stics#ifdef _DEBUGvoid

41、 CMyDoc:AssertValid() constCDocume nt:AssertValid();void CMyDoc:Dump(CDumpCo ntext & dc) const29CDocume nt:Dump(dc);#en dif _DEBUG/ CMyDoc comma nds5.3/ 工资管理 Set.cpp : implementation of the CMySet class/#in clude "stdafx.h"#include "工资管理.h"#include "工资管理 Set.h"#ifde

42、f _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_;#en dif/ CMySet impleme ntati on30IMPLEMENT_DYNAMIC(CMySet, CRecordset)CMySet:CMySet(CDatabase* pdb):CRecordset(pdb)AFX_FIELD_INIT(CMySet)m_BX = 0;m_BM = _T("");m_CX = 0;m_FZOU = 0;m_GZBZ = 0;m_HF = 0;m_JBGZ = 0;

43、m_JJ = 0;m_JT = 0;m_KCZJ = 0;m_NF = 0;m_SFGZ = 0;m_RDF = 0;m_ZGXM = _T("");m_YJGZ = 0;m_YFHJ = 0;m_YF = 0;m_ZGBH = 0;31 m_nFields = 18;/AFX_FIELDNIT m_n DefaultType = sn apshot;CStri ng CMySet:GetDefaultCo nn ect()return _T("ODBC;DSN=工资管理");CStri ng CMySet:GetDefaultSQL()return _

44、T("工资管理");void CMySet:DoFieldExcha nge(CFieldExcha nge* pFX)AFX_FIELD_MAP(CMySet) pFX->SetFieldType(CFieldExcha nge:outputColum n); RFX_Long(pFX, _T("保险"), m_BX); RFX_Text(pFX, _T("部门"), m_BM);RFX_Long(pFX, _T("储蓄"), m_CX);RFX_Long(pFX, _T("房租"),

45、m_FZOU);RFX_Long(pFX, _T("各种补助"), m_GZBZ);RFX_Long(pFX, _T("会费"), m_HF);32RFX_Long(pFX, _T("基本工资"), m_JBGZ);RFX_Long(pFX, _T("奖金"), m_JJ);RFX_Long(pFX, _T("津贴"), m_JT);RFX_Long(pFX, _T("扣除总计"), m_KCZJ);RFX_Long(pFX, _T("年份"), m_NF

46、);RFX_Long(pFX, _T("实发工资"), m_SFGZ);RFX_Long(pFX, _T("水电费"), m_RDF); RFX_Text(pFX, _T("姓名"), m_ZGXM);RFX_Long(pFX, _T("业绩工资"), m_YJGZ);RFX_Long(pFX, _T("应发数"), m_YFHJ);RFX_Long(pFX, _T("月份"), m_YF);RFX_Long(pFX, _T("职工编号"), m_ZGBH

47、); /AFX_FIELD_MAP/ CMySet diag no sties#ifdef _DEBUGvoid CMySet:AssertValid() constCRecordset:AssertValid();33void CMySet:Dump(CDumpC on text& de) constCRecordset:Dump(dc);#en dif _DEBUG5.4 / 工资管理 Set.cpp : implementation of the CMySet class/#in clude "stdafx.h"#include "工资管理.h&qu

48、ot;#include "工资管理 Set.h"#ifdef _DEBUG#defi ne new DEBUG_NEW#un def THIS_FILEstatic char THIS_FILE = _FILE_;#en dif/ CMySet impleme ntati onIMPLEMENT_DYNAMIC(CMySet, CRecordset)34CMySet:CMySet(CDatabase* pdb):CRecordset(pdb)AFX_FIELD_INIT(CMySet)m_BX = 0;m_BM = _T("");m_CX = 0;m_F

49、ZOU = 0;m_GZBZ = 0;m_HF = 0;m_JBGZ = 0;m_JJ = 0;m_JT = 0;m_KCZJ = 0;m_NF = 0;m_SFGZ = 0;m_RDF = 0;m_ZGXM = _T("");m_YJGZ = 0;m_YFHJ = 0;m_YF = 0;m_ZGBH = 0;m_nFields = 18;/AFX_FIELDNIT35m_n DefaultType = sn apshot;CStri ng CMySet:GetDefaultCo nn ect()return _T("ODBC;DSN=工资管理");CS

50、tri ng CMySet:GetDefaultSQL()return _T("工资管理");void CMySet:DoFieldExcha nge(CFieldExcha nge* pFX)AFX_FIELD_MAP(CMySet) pFX->SetFieldType(CFieldExcha nge:outputColum n);RFX_Long(pFX, _T("保险"), m_BX);RFX_Text(pFX, _T("部门"), m_BM);RFX_Long(pFX, _T("储蓄"), m_CX);RFX_Long(pFX, _T("房租"), m_FZOU);RFX_Long(pFX, _T("各种补助"), m_GZBZ);RFX_Long(pFX, _T("会费"), m_HF);RFX_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论