第一个需求可以参照文档:https://help.fanruan.com/finereport/doc-view-1197.html
第二个需求也可以做,在开始时间列的日期控件做编辑结束事件,js里面用调用sql函数查询出项目列所填写项目的最后结束时间,然后和填写的开始时间对比,如果不符和要求弹出提示,并清空该控件。
不过有一个条件,该填报表不能插入多行,只能单行填报保存。因为不好判断该页面新增同项目的最后结束时间。
参考编辑结束js:
var cell=this.options.location;
//获取当前控件所在单元格的编号
var cr=FR.cellStr2ColumnRow(cell);
//获取当前单元格的行列号
var ro=cr.row;
var co=cr.col;
var sdate=this.getValue();
var xmh=_g().getCellValue(co-1, ro);
var str='=sql("xxxDB","SELECT max(结束日期字段) from xxx表名称 where 项目号字段 =\''+ xmh+ \' group by 项目号字段';
var maxenddate=FR.remoteEvaluate(str);
if( sdate < maxenddate ){
FR.Msg.toast("开始日期小于该项目最后结束日期,请重新选择日期!");
this.setValue("");
}