请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
AntorH(uid:235898)
。。 职业资格认证:FCP-报表开发工程师
填报成功后关闭填报窗口并重新查询父窗口(保留原参数)
以下方法均是”对话框“形式进行填报 第1种方法: 直接写代码即可,但前提是父窗口报表的参数栏有参数控件,否则不会执行.代码如下: setTimeout(function(){ parent._g().parameterCommit();  parent.FR.closeDialog();     parent.FR.destroyDialog(); },100); 如下图 第2种方法: 父窗口的超链接勾选继承参数,后在子报表的事件中获取参数和执行JS语句:window.parent.location="${servletURL}?viewlet=目录路径/报表名.cpt&op=view&主表参数1="+js事件里获取的主表参数1+"&主表参数2="+js事件里获取的主表参数2; ,如下图:
类似数知鸟的需求管理填报
图片和所需的全部文件均在下文,有需要的自取。 类似数知鸟的报表需求管理和履历更新.zip (1.55 M)
帆软论坛的图片放大功能使用体验不佳,能不能优化下呢
类似于论坛这个帖子https://bbs.fanruan.com/thread-137913-1-1.html,使用的是360极速浏览器,想要放大图看却放大不了,只好复制出来到微信再放大,有点麻烦,帆软论坛能不能优化下这图片放大功能呢
报表维护工具--打包全部帆软报表文件集中到一个文件,便于查找修改报表文件里的信息
BI工具__打包全部帆软报表文件集中到一个文件.docx (273.21 K) BI工具:打包全部帆软报表文件集中到一个文件 备注:本表需安装java开发工具eclipse或其他同类工具,以及文件查看软件EmEditor 作用:由于有时候发现错误或因为权限问题需要大批量修改涉及的SQL表,或者由于历史曾经写过代码但现在忘了只有零零星星的记忆,那么可以使用本代码执行出来的文件,通过搜索关键字来查找您所想知道的信息,再加以经验排查即可获得相应的表单或者cpt文件或者代码,方便精准修改文件或者复用代码。 例子:因为权限问题,需将客户表 CLIENT 的查看权限关闭,改用为视图 V_CLIENT 调用,因此需要将帆软报表中有调用CLIENT表的代码全部改为V_CLIENT,那么可以在本工具导出来的文件中查找“CLIENT”,找到《100202灯具UPPH月报表.cpt》的<日报数据>数据集使用了这个CLIENT表,接下来打开在帆软打开《100202灯具UPPH月报表.cpt》进行修改即可,并继续按照以上步骤查找其他存在“CLIENT”的报表文件。全部修改后,将新的全部报表文件重新打包成一个文件fine01,重新查找“CLIENT”用于检索是否漏掉的。这样可以精准定位精准检查,避免将数据后台的成百上千个表单都打开检查浪费精力并产生视觉疲劳导致错误。 ↓↓ Java代码如下: package sqltext; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.InputStreamReader; import java.util.ArrayList; public class CpFile {   //本类使用于将指定文件夹的文件内容全部写到同一个文件里方便查找 public static void main(String args) throws Exception { //存储文件路径,true 代表 可追加 BufferedWriter out1 = new BufferedWriter(new FileWriter("E:\\copy_one\\fine01.txt",true)); //读取文件路径 String pre="E:\\copy_all"; //读取文件后缀名 String suffix=""; //统计复制文件数量 int count=0; //true 获取存储文件目录下所有存在文件的文件夹全路径,false 获取存储文件路径下所有文件全路径(true的子文件), ArrayList path = getDirPath(new File{new File(pre)},false,suffix); System.out.println("copy starting......"); //遍历路径,进行复制 for(String txtName:path){ //读取路径文件,"utf-8"防止中文乱码 BufferedReader buf = new BufferedReader(new InputStreamReader(new FileInputStream (txtName),"utf-8")); //按行读取 String str = null; String shujuji = ""; //判断数据集标志 out1.newLine(); out1.newLine(); out1.newLine(); out1.newLine(); out1.append("start -------------------------------------------------------------------------------------------------------- "+new File(txtName).getName()+" ------------------------------------------------------------------------------------------------------------------------------------------------------"); out1.newLine(); while((str=buf.readLine())!=null){ //换行 out1.newLine(); //写入数据 if( str.indexOf(" out1.append("--"+new File(txtName).getName()+" " + str+shujuji); } out1.append("end -------------------------------------------------------------------------------------------------------- "+new File(txtName).getName()+" ------------------------------------------------------------------------------------------------------------------------------------------------------"); out1.newLine(); out1.newLine(); out1.newLine(); out1.newLine(); System.out.println("copy \""+new File(txtName).getName()+"\" successed!"); count++; buf.close(); } out1.close(); System.out.println("copy ending......"); System.out.println("Files:"+count); }   //获取最后一层文件夹,sign true获取最后一层文件夹,false 获取所有文件 public static ArrayList getDirPath(File files,Boolean sign,String suffix){ ArrayList fs=new ArrayList(); for(File f:files){ if(f.isDirectory()) fs.addAll(getDirPath(f.listFiles(),sign,suffix)); else{ if(sign){ if(!fs.contains(f.getParent())) if(endWithCh(f,suffix)) fs.add(f.getParent()); }else{ if(!fs.contains(f.getPath())) if(endWithCh(f,suffix)) fs.add(f.getPath()); }   } } return fs; } //以。。。结尾,"",或者null,默认无后缀名 public static Boolean endWithCh(File file,String suffix){ if(suffix==""||suffix==null) return true; if(file.getName().endsWith(suffix)) return true; else return false;   } } 具体使用方法: 将代码添加到eclipse 将所要查找的报表文件全部复制到 E:\copy_all 3,将E:\copy_one里的fine01.txt删除掉,因为我代码写的是追加数据,如果不删除原有文件,那新的内容会追加到旧的内容里。 在eclipse执行代码即可在E:\copy_one生成 fine01.txt文件,此时用软件EmEditor打开文件即可查找.(如果文件很小,也可以用电脑的记事本打开) 编辑于 2021-10-13 09:29
报表开发工具--获取数据库每个表TOP几条数据,便于学习探索数据库表之间的联系
BI工具__获取数据库每个表TOP几条数据.docx (204.02 K) BI开发小工具:获取数据库每个表TOP几条数据   备注:本表代码为仅适用于SQLserver 2005 存储过程。MySQL的可以看本文最下面的图片示意导出全部数据. 作用:由于数据库的低冗余度设计,表单的字段值很多是根据ID关联的,比如下图的例子,原料库里的总类,类别,名称在原料库表goods_1里都是以ID的形式存在着,新手可能会摸不着头脑这ID对应的文字又存在于哪个表单里,那么这时候可以使用本工具。在本工具导出来的文件里查找" 安装配件 ”(因为导出来的字段值前后都有空格,因此把查找值前后都加空格来查找可以更精准),查找出来可能存在的表单有CLASS_DETAIL 和 GOODS_8,再根据经验或者数据字典确定是CLASS_DETAIL表用来关联。本工具有利于新旧数据员对数据库进行自我学习摸索,同时降低经验丰富的员工对每个表单都亲力亲为指导的程度。本表只适用于定义型的数据,不适合查询业务型的数据。 ERP截图: 数据库截图: ↓↓ 本工具搜索关键字截图: 代码如下: USE GO /****** 对象: StoredProcedure . 脚本日期: 09/28/2021 10:46:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER procedure . --exec other.dbo.p_循环获取数据库每个表TOP几条数据 'kk','100000' --需使用'将结果保存到文件'的方式执行,最好在十万以下 (@DS_Name nvarchar(100),@qty nvarchar(40)) --数据库名,查询top数量 AS BEGIN SET NOCOUNT ON declare @SQLString_DS_Name nvarchar(max) --获取所有有权限的表和视图的名单 declare @SQLString_1 nvarchar(max) declare @SQLString_2 nvarchar(max) CREATE TABLE #tablename ( -- 因定义游标不能执行存储过程,故使用临时表代替 (100) NULL, ) SET @SQLString_DS_Name=N'INSERT INTO #tablename select distinct name from ' + @DS_Name + '.dbo.sysobjects where xtype='''+'U'+''' order by name ' ; --表 --SET @SQLString_DS_Name=N'INSERT INTO #tablename select distinct name from ( select distinct name from ' + @DS_Name + '.dbo.sysobjects where xtype='''+'U'+''' union all select distinct name from ' + @DS_Name + '.dbo.sysobjects where xtype='''+'V'+''' ) as t order by name ' ; --表和视图 exec sp_executesql @SQLString_DS_Name set @SQLString_1=N'' set @SQLString_2=N'' DECLARE @tableName nvarchar(100) DECLARE My_Cursor CURSOR --定义游标 FOR ( select name from #tablename ) --查出需要的集合放到游标中-- 因定义游标不能执行存储过程,故使用临时表代替 OPEN My_Cursor; --打开游标 FETCH NEXT FROM My_Cursor INTO @tableName; --读取第一行数据 WHILE @@FETCH_STATUS = 0 BEGIN -- PRINT @pnum1; --打印数据(打印CAILIAO表中的NUMBER) set @SQLString_1=N' select top '+@qty+ ' '''+@tableName+''' as tablename , * from ' + @DS_Name + '.dbo.'+@tableName+' ;' set @SQLString_2=@SQLString_2+@SQLString_1 FETCH NEXT FROM My_Cursor INTO @tableName; --读取下一行数据(将CAILIAO表中的NUMBER放到@pnum1变量中) END CLOSE My_Cursor; --关闭游标 DEALLOCATE My_Cursor; --释放游标 --select @SQLString_2 exec sp_executesql @SQLString_2 --exec sp_executesql 该存储过程为执行字符串的语句 END 具体使用方法: 本代码已添加到数据库,直接执行即可,注意要通过“将结果保存到文件”的形式执行 使用Emeditor打开即可   ******************************* mysql可以使用以下方法导出或查找所有数据,效果跟上面的存储过程差不多,但不能控制导出的数量,只能导出全部数据
数知鸟当前免费,后期会收费吗
填报的显示错位
(备注:发本帖时想要上传cpt的文件和SQL代码,居然提示上传失败:上传格式错误,说是没有它要求的格式)
网页评论区的js代码是有BUG吗,显示不完整了
https://bbs.fanruan.com/wenda/question/80384.html 这个问题网页提交了js代码后就出了问题,代码乱码,不能评论,网页最下面的黑色部位错位,是不是网页BUG
关闭系统通知
如何关闭系统通知呢.发的广告有点多有点烦
你们觉得帆软的直播卡不卡
从以前到现在,看帆软的直播时经常觉得好卡,不知道是我手机问题还是帆软直播平台的问题,想请教下大家是不是也是这情况{:fange04gif:} 编辑于 2021-3-30 16:36
个人成就
内容被浏览42,631
加入社区4年343天
返回顶部