企业管理软件代码阅读报告.doc_第1页
企业管理软件代码阅读报告.doc_第2页
企业管理软件代码阅读报告.doc_第3页
企业管理软件代码阅读报告.doc_第4页
企业管理软件代码阅读报告.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

李龙跃 2008145551李文龙 2008145552刘新宇 2008145565一软件架构描述 华能日照电厂管理信息系统是一个基于C/S软件体系结构的管理信息系统,各个模块在逻辑上保持相对独立性,整个系统的逻辑结构清晰,从而提高了本系统的可维护性和扩展性,并且可以使用多个客户端,方便日常使用和管理。二软件功能描述 该系统客户端操作界面如上图所示,包括燃料管理、档案管理、商业运营、财务预算等,不仅功能齐全,而且界面清晰简洁,方便使用者快速掌握使用方法,并且提供了不同的使用权限,通过不同颜色提示用户的操作权限,简洁明了,既方便了使用,又简化了界面开发过程。可以预见,通过该界面可以基本满足客户的日常工作的需求,系统化生产过程,便于统筹管理,节约人力物力。系统管理模块如上图所示,实现用户等数据的增加、修改、删除、查找。在此模块中,使用了索引,可以方便使用者的正常操作,并且可以在一定程度上避免使用者的操作错误,并且便于管理。3 所用算法描述int i,li_lendec,li_lenintint li_amout_flagstring ls_numstr,a,b,c,d,bbakstring ls_dxint13,ls_dxdec2,ls_sz13string ls_dxstr=万仟佰拾亿仟佰拾万仟佰拾元string ls_szstr=零壹贰叁肆伍陆柒捌玖if ad_amout = 0.00 thenls_dxstr = 零元整return ls_dxstrelseif ad_amout 0.00 thenad_amout = abs(ad_amout) li_amout_flag = 1end ifend ifls_numstr=string(ad_amout,#0.00)li_lenint=len(mid(ls_numstr,1,pos(ls_numstr,.) - 1)if right(ls_numstr,2)=00 thenli_lendec=0elseli_lendec=2end iffor i=1 to 13ls_dxinti=mid(ls_dxstr,26 - i*2+1,2)if i11 thenls_szi=mid(ls_szstr,i*2 - 1,2)else ls_szi= end ifnextls_dxdec1=角ls_dxdec2=分ls_dxstr= for i = 1 to li_leninta = mid(mid(ls_numstr,1,li_lenint),i,1)b = ls_szinteger(a)+1c = ls_dxintli_lenint - i +1if ls_dxstr thend = mid(ls_dxstr,len(ls_dxstr) - 1 ,2)else d = end if if b=零 and (d=零 or b=bbak or c=元 or c=万 or c=亿) then b=if a=0 and c元 and c万 and c亿 then c=if (c=元 or c=万 or c=亿) and d=零 and a=0 thenls_dxstr=mid(ls_dxstr,1,len(ls_dxstr) - 2)d = mid(ls_dxstr,len(ls_dxstr) - 1,2)if (c=元 and d=万 or c=万and d=亿) then c=end ifls_dxstr=ls_dxstr + b + cbbak = bnextfor i=1 to li_lendeca = mid (mid(ls_numstr,li_lenint+2,li_lendec),i,1)if a=0 and ls_dxdeci=分 thenb=elseb=ls_szinteger(a) + 1end ifif a0 thenls_dxstr=ls_dxstr+b+ls_dxdecielsels_dxstr=ls_dxstr+bend ifnextif li_lendec=0 then ls_dxstr=ls_dxstr+整 if ad_amout 1.00 then ls_dxstr = 零 + trim(ls_dxstr )if li_amout_flag = 1 then ls_dxstr = 负 + ls_dxstrreturn ls_dxstr这一算法出自班组管理,将金额转为大写。此段代码在日常使用中起着重要的作用,满足了财务管理过程中普遍需要使用大写金额的要求,又解决了使用者在使用过程中输入大写麻烦的问题,是软件系统人性化的体现,并且此段代码力求使用最小的体积完成需要的功能 1. li_amout_flag作为标志,用来标记数字的正负 使用此方法简化了转化的过程 当数字为负时,就可设定li_amout_flag=1,可在转化过程中忽略数字正负,只需 最后判定即可完成要求。 2. li_lenint = len(mid(ls_numstr,1,pos(ls_numstr,.) - 1) Len()功能得到Blob类型变量的数据长度,以字节为单位。 3. ls_dxinti = mid(ls_dxstr,26 - i * 2 + 1,2) 截取指定长度字符串mid(要截取的字符串,开始位置,截取长度) mid(ls_dxstr,26 - i * 2 + 1,2) 上面意思是 截取ls_dxstr这个字符串 从26 - i * 2 + 1个字符开始截取2个长度4 优秀代码片段oldpointer = SetPointer(HourGlass!)ole_object.Workbooks.Addll_row = 1ll_colnum =long(adw.Object.DataWindow.Column.Count)ll_num = 1FOR i = 1 TO ll_colnumIF adw.Describe(#+String(i)+.Visible)=1 THEN /列标志为noseek的不显示 ls_obj = adw.Describe(#+String(i)+.name) /字段名称的实际存储值ls_objsll_num = ls_objls_objtagll_num=adw.Describe(ls_obj+_t.text) /字段名称的显示值 ls_widthll_num= adw.Describe(ls_obj + .width) /每列的宽度ll_num+END IFNEXTll_colnum = upperbound(ls_objs)IF trim(reptitle) THENll_row = 2/*-生成标题-*/ole_object.Cells(1,1).Value =reptitleole_object.Range(A1).Selectole_object.Selection.Font.Size =16ole_object.selection.HorizontalAlignment =3ole_object.Range(A1:+mid(s_english,ll_colnum,1)+1).Selectole_object.Range(A1:+mid(s_english,ll_colnum,1)+1).Merge/*-生成标题完毕-*/END IF/*-设置标题栏-*/for i = 1 to ll_colnum ls_value = ls_objtagi ole_object.cells(ll_row,i).value = ls_value /1 if isnull(ls_widthi) thenld_width=12elseld_width=dec(ls_widthi)/35end ifole_object.Columns(i).ColumnWidth=ld_widthole_object.Columns(i).HorizontalAlignment =3ole_object.Columns(i).Borders.LineStyle= 1ole_object.Columns(i).Font.Bold =TruenextIF groupflag = 1 and detailflag = 0 THENll_row +END IF/*-设置标题栏完毕-*/*-将数据窗口中的值导入Excell-*/li_grouprow = 0ll_groupnum = 0IF groupflag = 1 THEN /*-分组-*/FOR i = 1 to adw.rowcount()li_newgrouprow = adw.findgroupchange(i,1)IF li_newgrouprow = i THENIF li_grouprow 0 THENrow = i*detailflag + ll_row + ll_groupnumfor j = 1 to ll_colnum column_name = ls_objsj+_c ls_value = adw.Describe(Evaluate( + adw.Describe(column_name + .expression) + ,+string(li_grouprow)+) ls_coltype=adw.Describe(column_name+.coltype)IF isnull(ls_value) or ls_value=! or ls_value = ? THEN ls_value = END IF if pos(upper(ls_coltype),CHAR)0 then /对字符型数据处理 ole_object.cells(row,j).NumberFormat = end if ole_object.cells(row,j).Font.Bold =true ole_object.cells(row,j).value = ls_value nextll_groupnum+li_grouprow = li_newgrouprowELSEli_grouprow = li_newgrouprowEND IFIF detailflag = 1 THEN /*-显示Detail区-*/row = i + ll_row + ll_groupnumfor j = 1 to ll_colnum column_name = ls_objsj if adw.Describe(column_name + .type) = column then ls_value = adw.Describe(Evaluate(LookupDisplay(+column_name+),+string(i)+) end if if adw.Describe(column_name + .type) = compute then ls_value = adw.Describe(Evaluate( + adw.Describe(column_name + .expression) + ,+string(i)+) end if IF isnull(ls_value) or ls_value=! or ls_value = ? THEN ls_value = END IF ls_coltype=adw.Describe(column_name+.coltype) if pos(upper(ls_coltype),CHAR)0 then /对字符型数据处理 ole_object.cells(row,j).NumberFormat = end if ole_object.cells(row,j).Font.Bold =false ole_object.cells(row,j).value = ls_value nextEND IFELSE IF detailflag = 1 THEN /*-显示Detail区-*/ row = i + ll_row + ll_groupnum for j = 1 to ll_colnum column_name = ls_objsj if adw.Describe(column_name + .type) = column then ls_value = adw.Describe(Evaluate(LookupDisplay(+column_name+),+string(i)+) end if if adw.Describe(column_name + .type) = compute then ls_value = adw.Describe(Evaluate( + adw.Describe(column_name + .expression) + ,+string(i)+) end if IF isnull(ls_value) or ls_value=! or ls_value = ? THEN ls_value = END IF ls_coltype=adw.Describe(column_name+.coltype) if pos(upper(ls_coltype),CHAR)0 then /对字符型数据处理 ole_object.cells(row,j).NumberFormat = end if ole_object.cells(row,j).Font.Bold =false ole_object.cells(row,j).value = ls_value next END IFEND IFNEXTll_sumrow = i*detailflag + ll_row + ll_groupnumIF groupflag = 1 THEN row = i*detailflag + ll_row + ll_groupnum ll_sumrow+for j = 1 to ll_colnum column_name = ls_objsj+_c ls_value = adw.Describe(Evaluate( + adw.Describe(column_name + .expression) + ,+string(li_grouprow)+) ls_coltype=adw.Describe(column_name+.coltype) IF isnull(ls_value) or ls_value=! or ls_value = ? THEN ls_value = END IF if pos(upper(ls_coltype),CHAR)0 then /对字符型数据处理 ole_object.cells(row,j).NumberFormat = end if ole_object.cells(row,j).Font.Bold =true ole_object.cells(row,j).value = ls_value nextEND IFELSE /*-没有分组-*/FOR i = 1 TO adw.rowcount() for j = 1 to ll_colnum column_name = ls_objsj if adw.Describe(column_name + .type) = column then ls_value = adw.Describe(Evaluate(LookupDisplay(+column_name+),+string(i)+) end if if adw.Describe(column_name + .type) = compute then ls_value = adw.Describe(Evaluate( + adw.Describe(column_name + .expression) + ,+string(i)+) end if IF isnull(ls_value) or ls_value=! or ls_value = ? THEN ls_value = END IF ls_coltype=adw.Describe(column_name+.coltype) if pos(upper(ls_coltype),CHAR)0 then /对字符型数据处理 ole_object.cells(ll_row+i,j).NumberFormat = end if ole_object.cells(ll_row+i,j).

温馨提示

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

评论

0/150

提交评论