转下一步时对费用报销单检测明细grid中不能为空

2024-05-02 04:48

本文主要是介绍转下一步时对费用报销单检测明细grid中不能为空,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

加入日期判断,仅对新发起的报销单进行检测,不影响未走完的流程.
function UserDefineDjSave()
{
//add by tzjly   
if((sys_getAppAppCurDisposeName()=="事业部总经理级")&&(radioQQ.value==""))
{  
return "请选择“是否质量费用”!"; 
}
if (combobox3.value == "") { return "请在费用类型下拉框选择是否车贴!"; }
if (cmbPeriod.value == "") { return "期间不允许为空,请选择。"; }
if(dataset2.RecordCourt == "0") { return "请填写费用细目!"; }
if(txtDeptID.value == "" && txtRegCode.value =="" && txtProjectID.value == "") { return "归属部门不能都为空!"; }	
dataset2.Update('不检查');
if(dataset2.RecordCount==0) {return "请输入费用细目";  }
var Year = txtYear.value;
var DeptID = txtDeptID.value;
var ProjectID = "";//txtProjectID.value;
var RegCode = "";//txtRegCode.value;
var Period = cmbPeriod.value;
var xml="<?xml version=\"1.0\" encoding=\"gb2312\"?><root>";
//---------add by tzjly,仅对新发起的报销单进行检测--
if(txtBaoXiaoShiJian.value>='2012-08-10')
for (var i=0;i<dataset2.RecordCount;i++)
{
var typecode = dataset2.oDom.documentElement.childNodes(i).childNodes(2).text;
var itemcode = dataset2.oDom.documentElement.childNodes(i).childNodes(4).text;
var money = dataset2.oDom.documentElement.childNodes(i).childNodes(5).text;
var appmoney = dataset2.oDom.documentElement.childNodes(i).childNodes(6).text;
var BillNum = dataset2.oDom.documentElement.childNodes(i).childNodes(7).text;
var feeDate = dataset2.oDom.documentElement.childNodes(i).childNodes(8).text;
var Remark = dataset2.oDom.documentElement.childNodes(i).childNodes(9).text;
//if(IsSpace(typecode)) { return "费用类型不能为空!"; }
//if(IsSpace(itemcode)) { return "费用科目不能为空!"; }
if(IsSpace(money)) { return "报销金额不能为空!"; }
if(parseFloat(money)<0) { return "报销金额不能小于0!"; }              
if(IsSpace(BillNum)) { return "票据张数不能为空!"; }
if(IsSpace(feeDate)) { return "费用产生日期不能为空!"; }
if(IsSpace(Remark)) { return "用途备注不能为空!"; }
if(IsSpace(appmoney)) { appmoney = "0"; }
if(IsSpace(usagemoney)) { usagemoney = "0"; }
xml+= "<record>";	
xml+="<Year>"+ Year +"</Year>";
xml+="<Period>"+ Period +"</Period>";
xml+="<DeptID>"+ DeptID +"</DeptID>";
xml+="<ProjectID>"+ ProjectID +"</ProjectID>";
xml+="<RegCode>"+ RegCode +"</RegCode>";
xml+="<TypeCode>"+ typecode +"</TypeCode>";
xml+="<ItemCode>"+ itemcode +"</ItemCode>";
xml+="<OldMoney>"+ appmoney +"</OldMoney>";
xml+="<NewMoney>"+ money +"</NewMoney>";
xml+= "</record>";
}
xml+= "</root>";
var sql = "EXEC [dbo].[Form_pYS_UpdateBudget] '"+xml+"'";
var res = SelectSql(sql,1,-1);
var dom = SetDom(res);
var test = "";
if(dom.documentElement)
{
if(dom.documentElement.xml != "<root></root>")
{	
for(var i = 0;i<dom.documentElement.childNodes.length-1;i++)
{   
var itemname = dom.documentElement.childNodes(i).childNodes(0).text;
var usagemoney = dom.documentElement.childNodes(i).childNodes(1).text;
test += "科目 [ "+ itemname +" ] 申请超支,当前可用金额为 [ "+ usagemoney +" ]\r\n";   
}
}		
}
if(test != "")
{
var StopApprove = SqlToField("select value from Form_YS_SystemManage where keyword='StopApprove'");
var name=sys_getAppCurDisposeName();
if(StopApprove == "是" && name=="财务部")
{
return test;
}
//else
//{
//alert(test);
//}
}
return DjSave();
}

这篇关于转下一步时对费用报销单检测明细grid中不能为空的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/953416

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

poj 2175 最小费用最大流TLE

题意: 一条街上有n个大楼,坐标为xi,yi,bi个人在里面工作。 然后防空洞的坐标为pj,qj,可以容纳cj个人。 从大楼i中的人到防空洞j去避难所需的时间为 abs(xi - pi) + (yi - qi) + 1。 现在设计了一个避难计划,指定从大楼i到防空洞j避难的人数 eij。 判断如果按照原计划进行,所有人避难所用的时间总和是不是最小的。 若是,输出“OPETIMAL",若

poj 2135 有流量限制的最小费用最大流

题意: 农场里有n块地,其中约翰的家在1号地,二n号地有个很大的仓库。 农场有M条道路(双向),道路i连接着ai号地和bi号地,长度为ci。 约翰希望按照从家里出发,经过若干块地后到达仓库,然后再返回家中的顺序带朋友参观。 如果要求往返不能经过同一条路两次,求参观路线总长度的最小值。 解析: 如果只考虑去或者回的情况,问题只不过是无向图中两点之间的最短路问题。 但是现在要去要回

poj 3422 有流量限制的最小费用流 反用求最大 + 拆点

题意: 给一个n*n(50 * 50) 的数字迷宫,从左上点开始走,走到右下点。 每次只能往右移一格,或者往下移一格。 每个格子,第一次到达时可以获得格子对应的数字作为奖励,再次到达则没有奖励。 问走k次这个迷宫,最大能获得多少奖励。 解析: 拆点,拿样例来说明: 3 2 1 2 3 0 2 1 1 4 2 3*3的数字迷宫,走两次最大能获得多少奖励。 将每个点拆成两个

poj 2195 bfs+有流量限制的最小费用流

题意: 给一张n * m(100 * 100)的图,图中” . " 代表空地, “ M ” 代表人, “ H ” 代表家。 现在,要你安排每个人从他所在的地方移动到家里,每移动一格的消耗是1,求最小的消耗。 人可以移动到家的那一格但是不进去。 解析: 先用bfs搞出每个M与每个H的距离。 然后就是网络流的建图过程了,先抽象出源点s和汇点t。 令源点与每个人相连,容量为1,费用为

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

最大流、 最小费用最大流终极版模板

最大流  const int inf = 1000000000 ;const int maxn = 20000 , maxm = 500000 ;struct Edge{int v , f ,next ;Edge(){}Edge(int _v , int _f , int _next):v(_v) ,f(_f),next(_next){}};int sourse , mee

cf 164 C 费用流

给你n个任务,k个机器,n个任务的起始时间,持续时间,完成任务的获利 每个机器可以完成任何一项任务,但是同一时刻只能完成一项任务,一旦某台机器在完成某项任务时,直到任务结束,这台机器都不能去做其他任务 最后问你当获利最大时,应该安排那些机器工作,即输出方案 具体建图方法: 新建源汇S T‘ 对任务按照起始时间s按升序排序 拆点: u 向 u'连一条边 容量为 1 费用为 -c,

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景