博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
差旅报销流程开发--表单篇
阅读量:5070 次
发布时间:2019-06-12

本文共 7974 字,大约阅读时间需要 26 分钟。

上次使用弄了一个简单的”请休假流程“,只有一个主表,比较简单;所有的代码都是一键自动生成。只需稍微调整一下样子,即可。领导挺满意。

今天做了一个复杂一点”差旅报销流程“,报销单需要一个主表和一个明细表。其实做法都一样.
1.设计表结构(一个主表+明细表)

2.点击自动生成代码

3.调整一下界面样子

4.根据需要再扩展一下,比如:小计,合计功能

主表的代码和之前的请假单代码结构一样,让我们来看看明细表操作的代码吧:

#region --操作明细表-------------------------    //查看    protected void BView_CLFBX_MX_Click(object sender, DirectEventArgs e)    {        HCmd_CLFBX_MX.Text = "V";//V查看  A新增  E修改        Cmd_CLFBX_MX();    }    //新增    protected void BAdd_CLFBX_MX_Click(object sender, DirectEventArgs e)    {        HCmd_CLFBX_MX.Text = "A";//V查看  A新增  E修改        Cmd_CLFBX_MX();    }    //修改    protected void BEdit_CLFBX_MX_Click(object sender, DirectEventArgs e)    {        HCmd_CLFBX_MX.Text = "E";//V查看  A新增  E修改        Cmd_CLFBX_MX();    }    //删除    protected void BDelete_CLFBX_MX_Click(object sender, DirectEventArgs e)    {        StringBuilder sqlStr = new StringBuilder();        sqlStr.Append("Delete CLFBX_MX where  ");        sqlStr.Append(" workid = '" + Tworkid.Text.ToString() + "' and id='"+CLFBX_MX_id.Text.Trim()+"'");        sh.Execute(sqlStr.ToString());        BindCLFBX_MX();        UpdateTotalMoney();    }    protected void Cmd_CLFBX_MX()    {        string cmd = HCmd_CLFBX_MX.Text.ToString();        if (cmd == "V")        {            BSave_CLFBX_MX.Hide();            Window_CLFBX_MX.Title = "查看";            Window_CLFBX_MX.Icon = Icon.PageMagnify;            Window_CLFBX_MX.Show();        }        else if (cmd == "A")        {            BSave_CLFBX_MX.Show();            Window_CLFBX_MX.Title = "新增";            Window_CLFBX_MX.Icon = Icon.PageAdd;            Window_CLFBX_MX.Show();        }        else if (cmd == "E")        {            BSave_CLFBX_MX.Show();            Window_CLFBX_MX.Title = "修改";            Window_CLFBX_MX.Icon = Icon.PageEdit; ;            Window_CLFBX_MX.Show();        }    }    //保存    protected void BSave_CLFBX_MX_Click(object sender, DirectEventArgs e)    {        Hidden HCmd = (Hidden)Master.FindControl("HCmd");        string cmdM = HCmd.Text.ToUpper();        string CFnid = GetCurrentFnid(cmdM);        if (CLFBX_MX_Check(CFnid) == true)        {            string v_id = CLFBX_MX_id.Text.ToString();            string v_startdate = CLFBX_MX_startdate.Text.ToString();            string v_enddate = CLFBX_MX_enddate.Text.ToString();            string v_place = CLFBX_MX_place.Text.ToString();            string v_days = CLFBX_MX_days.Text.ToString();            string v_fee_ticket = CLFBX_MX_fee_ticket.Text.ToString();            string v_fee_hotel = CLFBX_MX_fee_hotel.Text.ToString();            string v_fee_traffic = CLFBX_MX_fee_traffic.Text.ToString();            string v_bz1 = CLFBX_MX_bz1.Text.ToString();            string v_zsbz = CLFBX_MX_zsbz.Text.ToString();                        string v_fee_other = CLFBX_MX_fee_other.Text.ToString();            string v_workid = Tworkid.Text;            string v_creator = u.GetLoginID();            string v_modifier = u.GetLoginID();            string v_ctime = DateTime.Now.ToString();            string v_mtime = DateTime.Now.ToString();            CLFBX_MX_subtotal.Text = (Convert.ToDecimal(v_fee_hotel) + Convert.ToDecimal(v_fee_ticket) + Convert.ToDecimal(v_fee_traffic) + Convert.ToDecimal(v_fee_other) + Convert.ToDecimal(v_bz1) + Convert.ToDecimal(v_zsbz)).ToString();            string v_subtotal = CLFBX_MX_subtotal.Text.ToString();            StringBuilder sqlStr = new StringBuilder();            sqlStr.Clear();            string cmd = HCmd_CLFBX_MX.Text.ToString();            if (cmd == "A")            {                //判断主键是否重复                //sqlStr.Append("Select count(*) from CLFBX_MX where ");                //sqlStr.Append("workid='" + v_workid + "' and id='"+v_id+"'");                //if (sh.Exists(sqlStr.ToString()) == false)                //{
sqlStr.Clear(); sqlStr.Append("Insert into CLFBX_MX ("); sqlStr.Append("workid,"); sqlStr.Append("startdate,"); sqlStr.Append("enddate,"); sqlStr.Append("place,"); sqlStr.Append("days,"); sqlStr.Append("fee_ticket,"); sqlStr.Append("fee_hotel,"); sqlStr.Append("fee_traffic,"); sqlStr.Append("bz1,"); sqlStr.Append("zsbz,"); sqlStr.Append("subtotal,"); sqlStr.Append("fee_other,"); sqlStr.Append(" creator,ctime) values( "); sqlStr.Append("'" + v_workid + "',"); sqlStr.Append("'" + v_startdate + "',"); sqlStr.Append("'" + v_enddate + "',"); sqlStr.Append("'" + v_place + "',"); sqlStr.Append("'" + v_days + "',"); sqlStr.Append("'" + v_fee_ticket + "',"); sqlStr.Append("'" + v_fee_hotel + "',"); sqlStr.Append("'" + v_fee_traffic + "',"); sqlStr.Append("'" + v_bz1 + "',"); sqlStr.Append("'" + v_zsbz + "',"); sqlStr.Append("'" + v_subtotal + "',"); sqlStr.Append("'" + v_fee_other + "',"); sqlStr.Append("'" + v_creator + "','" + v_ctime + "')"); sh.Execute(sqlStr.ToString()); Form_CLFBX_MX.Reset(); UpdateTotalMoney(); //} //else //{ // X.Msg.Alert("提示:", "已经存在,不能重复添加!").Show(); //} } else if (cmd == "E") { sqlStr.Clear(); sqlStr.Append("Update CLFBX_MX Set "); sqlStr.Append("startdate='" + v_startdate + "',"); sqlStr.Append("enddate='" + v_enddate + "',"); sqlStr.Append("place='" + v_place + "',"); sqlStr.Append("days='" + v_days + "',"); sqlStr.Append("fee_ticket='" + v_fee_ticket + "',"); sqlStr.Append("fee_hotel='" + v_fee_hotel + "',"); sqlStr.Append("fee_traffic='" + v_fee_traffic + "',"); sqlStr.Append("bz1='" + v_bz1 + "',"); sqlStr.Append("zsbz='" + v_zsbz + "',"); sqlStr.Append("subtotal='" + v_subtotal + "',"); sqlStr.Append("fee_other='" + v_fee_other + "',"); sqlStr.Append("modifier='" + v_modifier + "',mtime='" + v_mtime + "'"); sqlStr.Append(" Where "); sqlStr.Append("workid='" + v_workid + "' and id='"+v_id+"'"); sh.Execute(sqlStr.ToString()); Window_CLFBX_MX.Hide(); UpdateTotalMoney(); } BindCLFBX_MX(); } } // 保存前检查 protected bool CLFBX_MX_Check(string CFnid) { bool pass = true; string msg = ""; switch (CFnid) { case "A": if (CLFBX_MX_startdate.Text.ToString() == "") { msg += "请输入起始日期!
"; } if (CLFBX_MX_enddate.Text.ToString() == "") { msg += "请输入截止日期!
"; } if (CLFBX_MX_days.Text.Trim() == "") { msg += "请输入天数!
"; } break; //case "A01": //根据实际需要填写 //break; } if (msg != "") { pass = false; X.Msg.Alert("提示:", msg).Show(); } return pass; } //绑定数据------------- protected void BindCLFBX_MX() { string sql = "Select * from CLFBX_MX where workid='" + Tworkid.Text.ToString() + "'"; Store_CLFBX_MX.DataSource = sh.Query(sql); Store_CLFBX_MX.DataBind(); } #endregion --操作明细表

注:以上代码都是系统自动生成的。

不知道怎么写了,上图吧

明细表的操作是:点新增,然后弹出一个窗体给你输入(这些都是自动生成的)

审批截图

 

转载于:https://www.cnblogs.com/zhiyao/archive/2013/05/29/3106330.html

你可能感兴趣的文章
关于TFS2010使用常见问题
查看>>
软件工程团队作业3
查看>>
python标准库——queue模块 的queue类(单向队列)
查看>>
display的值有哪些?
查看>>
火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题...
查看>>
基于Lucene3.5.0怎样从TokenStream获得Token
查看>>
一网打尽各类Java基本数据类型转换
查看>>
FlowLayout布局
查看>>
深入理解JVM读书笔记--字节码执行引擎
查看>>
vue-搜索功能-实时监听搜索框的输入,N毫秒请求一次数据
查看>>
批处理 windows 服务的安装与卸载
查看>>
React文档翻译 (快速入门)
查看>>
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>