【技术文档】开发一个人力资源管理系统遇到的问题及解决的方法

经过两个半月的实习,接触了很多Java Web开发的知识,不能说完全理解Java Web开发的技术,但在开发过程中遇到的一些问题,使自己的技术有很大的提高。当遇到问题时,通过在网上搜集解决的方法,和通过询问同事,最终发现一些问题的解决方法比想象中的简单,几乎所有的问题只要你找到了解决问题的方法后,对方法的理解和应用都是很简单的,比如一些问题的解决方法就是两行代码,有的甚至只要添加一个属性值就可以。在这里和大家分享我在开发这个系统的过程中遇到的四个问题:

  1. 实现发邮件功能
  2. 前台String型数据到后台Date型数据的转化
  3. 页面上实时显示时间
  4. 将数据导出到Excel中

当然遇到的问题远远不止这四个。


1 实现发邮件功能

一个办公系统中经常会有给职员群发邮件的情况,具体该怎么实现,首先让我们看一个实例(ExtJS中的应用):

location.href ='mailto:HR-Manager@163.com?cc=leader@163.com&subject=培训通知&body=请各位准时参加本次培训!';

下面就让我们解释一下上面的代码。其中mailto:后面接着的HR-Manager@163.com是指收件人的地址,?&在这里可以理解为分割的意思,cc=后面接的leader@163.com是抄送人的地址,地址可以是多项的,地址之间用隔开,subject=后面接的是邮件主题,body=后接的是邮件正文了。

由于有时我们抄送的地址是不确定的,而且是多个地址,这就需要我们做一些额外的工作来确定每次需要抄送的地址。比如有一个人力资源管理系统,系统管理员需要在每个培训计划开始之前给参与人员发送提醒准时参加的邮件,这时我们可以设置一个按钮,并通过系统管理员选择的行(就是参与者的信息)来确定需要抄送的地址,代码如下:

{

    text: '通知',

    handler: function(){

        var selections = tab_grid_participant.getSelectionModel().getSelections();

        var mail = "";

        var i = 0;

        for (i = 0; i <selections.length; i++) {

            mail+= selections[i].get('participantEmployeeEmail') + ";";

        }

 
        location.href= 'mailto:HR-Manager@163.com?cc='

                       + mail

                       + '&subject=培训通知&body=请各位准时参加本次培训!';

    }

}

其中tab_grid_participant是一个GridPanel,participantEmployeeEmail是tab_grid_participant中的一个数据项,通过for循环就能实现将所选的抄送地址都赋值到mail中,最后将mail加在cc=后面即可。


2 前台String型数据到后台Date型数据的转化

前后台数据交换时会遇到数据类型的不一致,从而导致数据不能按预想的格式显示出来,下面就提供一个方法,来解决前台是String型,后台是Date型的数据不一致性问题。

其实,这个方法用简单,就两行代码,比如,preBirthday是前台传来的String型数据,我们需要将它存到后台的Date型数据中,这时我们只需在service层的相关函数中增加如下两行代码:

long midBirthday = Long.parseLong(preBirthday);

java.sql.Date  backBirthday = new java.sql.Date(midBirthday);

这时的backBirthday就是一个Date型数据了。


3 页面上实时显示时间

我们经常在一些网页和系统中看到可以实时显示日期、星期和时间的情况,这个看起来是很难,因为它是在不停的变化,其实在ExtJS中一点都不难,只需要几行代码即可,代码如下(在此申明,此处代码是从网上搜集而来):

 

var aWeek = [ '星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六' ];

varcurrentTime = newExt.Toolbar.TextItem(new Date().format('Y-m-d H:i:s') +'  ' + aWeek[newDate().getDay()]);

Ext.TaskMgr.start({

    run: function(){

        Ext.fly(currentTime.getEl()).update(

                new Date().format('Y-m-d H:i:s') + '  '+ aWeek[newDate().getDay()]);

        },

    interval: 1000

});

我们把变量currentTime放在我们想放的地方就可以了。

 


4 将数据导出到Excel中

在ExtJS中很容易实现导出数据,我们只需要在按钮tbar中增加一个导出按钮即可,代码如下:

 

{

    text: '导出',

    handler: function(){

        var vExportContent =tab_grid_applicant.getExcelXml();

        if (Ext.isIE6 || Ext.isIE7|| Ext.isSafari|| Ext.isSafari2 || Ext.isSafari3){

            var fd = Ext.get('frmDummy');

            if (!fd) {

                    fd= Ext.DomHelper.append(Ext.getBody(),{

                            tag: 'form',

                            method: 'post',

                            id: 'frmDummy',

                            action:'util/gridToexcel.jsp',

                            target: '_blank',

                            name: 'frmDummy',

                            cls: 'x-hidden',

                            cn: [ {

                                     tag : 'input',

                                     name : 'exportContent',

                                    id: 'exportContent',

                                    type: 'hidden'

            } ] }, true); }

            fd.child('#exportContent').set({value :vExportContent});

            fd.dom.submit();

        }else{

            document.location= 'data:application/vnd.ms-excel;base64,'

                                +Base64.encode(vExportContent);

        }

    }

}

当然,我们还需要一个额外的gridToExcel.js文件,由于gridToExcel.js文件内容太长,在这就不粘贴了,直接百度gridToExcel.js就能找到里面的代码。

 


好了,四个问题终于介绍完了。在这也要强调一句,问题是解决不完的,解决某个问题不是我们的最终目的,而是从每次解决问题的过程中总结出解决问题的方法,这样才能有利于我提高自己的工作能力。

 

转载于:https://www.cnblogs.com/james1207/p/3253635.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小型MIS(管理信息系统)开发可能会遇到以下几个主要问题: 1. 需求不明确或者不稳定:这个问题可能会导致开发人员无法确定系统的功能和需求,从而影响系统的开发进度和质量。解决方法是在开发前充分了解用户需求,与用户沟通,并且在系统开发过程中对需求进行动态调整。 2. 资源不足:小型MIS开发可能会面临人力、物力、财力等资源不足的问题,这可能会影响项目的进度和质量。解决方法是在项目规划阶段充分考虑资源的需求,并且在项目执行过程中合理利用资源,避免资源浪费。 3. 技术选型不当:选择不合适的技术可能会导致系统开发效率低下、功能不完善、系统安全性差等问题解决方法是在项目规划阶段进行技术评估,选择合适的技术,避免技术选型不当带来的风险。 4. 代码质量不高:代码质量不高可能会导致系统的可维护性、可扩展性、可靠性等方面的问题解决方法是在项目执行过程中加强代码质量管理,包括代码审查、单元测试、代码重构等措施,提高代码质量。 5. 交付延迟:交付延迟可能会导致用户对系统的不满意,影响项目的成功。解决方法是在项目规划阶段充分考虑项目进度管理,加强项目管理,及时发现和解决项目进度问题,确保项目按时交付。 以上是小型MIS开发可能会遇到的主要问题解决方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值