xml 硕正报表_硕正控件学习记录

本文记录了硕正富文本应用套件的学习过程,详细介绍了如何使用xml配置Web套件,包括TreeList和FreeForm的使用方法,如数据加载、验证、事件处理等,并提到了相关数据库操作技巧和注意事项。
摘要由CSDN通过智能技术生成

http://www.cnblogs.com/Jackie-sky/p/4119706.html

最近做项目接触到了很强大的Web套件工具:硕正富文本应用套件,特此记录下学习插件的点滴:

********************* TreeList/FreeForm *********************

1.页面通过xml配置,xml中的table_id对应数据库的表名,col_physical_name对应表中的字段,col_type对应字段的类型。

2.页面加载时执行OnReady方法,在OnEvent方法中判断各种事件的触发。

3.页面加载类型分为TreeList和FreeForm两种,TreeList为列表,通常取AF为id,FreeForm为表单,通常取FM为id。

4.Tab标签页下的方法调用:Tab1为当前table页的id,tab_OrderData为页签的id

var changeXML = AF.func("Tab1.tab_OrderData.GetChangedXml", "level=2");

5.xml中列的属性,col_type对应的是数据库中字段的类型,而datatype是页面验证的数据类型,通过配置datatype可自动验证数据。

6.配置下拉框数据时,edittype要写成dropdownlist,还要起一个dropdownlistid,在下方dropdownlists处配置数据源。例如:

数据源:

isTreeNodeSelectAble="true" />

7.TreeList列表在提交时,property中必填key,否则不能提交。

8.TreeList列表在加载数据时,后台table转json的方法中需要传入记录总条数,用来显示分页控件,否则记录只会显示一条。

9.在列表首列加入全选checkbox:AF.func("InsertCol", "0\r\nname=checked;isCheckboxOnly=true");

10.获取选中checkbox的行号(多行号用逗号分割):var checkRowNumbers = AF.func("findAll", "checked=1");

11.标签切换:AF.func("SetCurSel", "Tab1 \r\n 1"); 最后那个是切换到第几个标签,从0开始

12.aspx页面文件应该在根目录下一级,如果在文件夹下还有二级文件夹,则在查找条件区的字段时会因找不到路径而报错。

13.搜索区的字段加载不出来的原因是顶部的xmlpath配置不正确,如果是tab页的话,则xmlpath应为主表对应的xml,而非tab页的。

14.自增长的表插入一条数据时返回主键:insert into tb1 values('...'); select @@IDENTITY id

15.加载列表时,如果有主外键关联的字段,这样配置:

首先清楚什么是主表、子表:如果有一个用户表,一个性别码表,则性别表为主表,用户表为子表。

供应商类别

注:①table_id对应下面TableLists中的TableInfo中的id="relation_type",并不是真正的表名。

②col_main_name为子表中与主表对应的字段

③col_physical_name是主表中存名称的字段,也就是用来显示在页面上的字段。

④name为子表中对应主表的字段名。

配置好上面的字段后,再配置两表的关联关系:

注:①id="relation_type"对应上面配置的table_id

②table_alias_name不是真正的字段,无关紧要。

③table_physical_name是主表的表名

④relation_table_name是子表的表名

⑤main_col为子表中与主表关联的字段

⑥detail_col为主表中与子表关联的字段

⑦relation为两表关联的关系,连接可分为:内连接、左连接、右连接

16.数据库在设计表的时候,注意字段不要与关键字重复。

17.可编辑的下拉框:edittype="editabledroptreeList",把editable去掉则为只读。

18.列表混添加混编辑,应该调用tl.AddMuiltTlData方法。

19.Jquery Ajax火狐浏览器返回的result为何是object XmlDocument?因为ajax请求缺少dataType属性。

20.Jquery的dataType包括:

①"xml": 返回 XML 文档,可用 jQuery 处理。

②"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。

③"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),

所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)

④"json": 返回 JSON 数据 。

⑤"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回

调函数。

⑥"text": 返回纯文本字符串

21.列表删除数据时,提示找不到main_table_name,可能是调用了FreeForm的方法;

22.屏蔽右键:Right_Shield(AF); //屏蔽右键

23.TreeList和FreeForm获取元素的值:

①FM:FM.func("GetValue", "字段");

②AF:var currentRow = AF.func("GetCurrentRow", "");  AF.func("GetCellData", currentRow + " \r\n 字段");

24.日期控件默认值:defaultvalue="=now()" datatype="date"

25.小数格式:editmask="#,###.0000" datatype="double"

26.插入行:AF.func("InsertRows", "0 \r\n 1");

27.Treelist赋值:

var curRowNum = AF.func("GetCurrentRow", "");  //获取当前行

AF.func("SetCellData", curRowNum + " \r\n 字段 \r\n" + 值);  //注意\r\n与值之间不要有空格

28.FreeForm赋值:

FM.func("SetValue", "字段 \r\n" + 值);  //FreeForm不需要获取行号,\r\n与值之间不要有空格

29.取消行:AF.func("DeleteRows", curRowNum + " \r\n 1");

30.设置元素属性,如隐藏、不可用、不为空等:AF.func("SetObjectProp", "ID \r\n visible \r\n false");

31.获取xml的时候要写level=2,否则后台找不到NewRow还是ModifyRow,如:AF.func("GetChangedXML", "level=2");

32.加载数据:

TreeList:AF.func("bBar.SetObjectProp", "ID0\r\n dataURL \r\n" + data + "\r\n mode=asynch");

FreeForm:FM.func("Load", data);

33.加载列表数据,并且加载分页数据:

var h = AF.func("GetHandle", "");

AF.func("bBar.BindPager", h + "\r\n ID0");

AF.func("bBar.SetObjectProp", "ID0\r\n dataURL \r\n" + data + "\r\n mode=asynch");

34.TreeList  GetChangedXML  获取数据几种方式:

可选, 可以有如下的选项,相互以分号分隔:

level - 级别号,可以是0(默认)、1、2、3,其含义分别为:

0 - 级别0,生成当前全部、最新内容(不包括修改前的原始内容);

1 - 级别1,仅生成被修改过的单元格的内容(包括原始内容);

2 - 级别2,在级别1的基础上,增加被修改过单元的整行内容;

3 - 级别3,内容包含所有行、所有列、修改前后的内容;

isIgnoreChange - true/false, 仅用于Level=0. true表示不管内容是否被修改过,始终生成XML; false表示除非内容被修改过,否则返回空串. 默认是false;

startRow - 开始行,默认是0;

endRow - 结束行,默认是-1,-1表示最后行;

DateFormat - 日期的格式,默认是'%Y.%m.%d',可参见公共内容中now( )函数的参数;

********************* Report *********************

1.report定义:  

(注意:报表分为好几种模式,只有在inputDSRunTime模式下才可以获取由数据源绑定的和数据,为操作数据库做准备)

2.report报表绑定数据分为两种:

1:data绑定,主要用于数据库中的主表数据。

2:dataRow绑定,主要用于数据库中的明细列表的显示。

3.report获取数据的方式范围两种:

1:对于数据绑定为data方式的获取方式 :

(1) var mainchangeXML = AF.func("CollectXML", "BackColor=#FEFEFE"); //通过背景颜色获取主表的XML

(2) var mainchangeXML = AF.func("CollectXML", "别名"); //通过别名获取主表的XML

2: 对于数据绑定为data方式的获取方式 :

(1) var childChangeXML = AF.func("GetChangedXML", "ds=ds1;level=2"); //获取明细表XML  ds=ds1表示当前

绑定Data为ds1的XML数据

4.report获取修改过内容的单元格函数  GetChangedCells  (注意:ResetChanged 和  GetChangedCells要一起使用,

否则会达不到想要的效果,其中ResetChanged函数一般用在硕正  OnReady函数中)   例:

1: AF.func("ResetChanged", ""); //合并修改内容,为以后调用 GetChangedCells( ) 作准备.

2: var mainchangeCells = AF.func("GetChangedCells", ""); //获取修改过内容的单元格   和ResetChanged一起使用

5.report绑定数据:

AF.func("setsource", "ds0 \r\n " + data);    //data为Json数据

6.report绑定数据源: calc函数:此函数用在setsource后,否则不会显示数据,另外在执行了calc函数之后,在执行 insertRows

函数会达不到效果,所以一定要在执行完calc函数之后在用其他函数。例:

AF.func("calc", ""); //执行报表的计算,包括数据源的取数填充

7.report定义事件函数:SubscribeEvent   事件要先定义才能在硕正OnEvent中使用,这里不如treelist和freeform强大   例:

AF.func("SubscribeEvent", "SelChanged \r\n Clicked \r\n DblClicked \r\n EditChanged \r\n Editing");

转载于:https://www.cnblogs.com/Jackie-sky/p/4119706.html

标签:控件,AF,记录,func,var,table,主表,id,硕正

来源: https://blog.csdn.net/weixin_30869099/article/details/96759924

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值