- 确认当前查询窗口是查询策略
- 当我们在窗口按钮上看到了【修改查询策略】的菜单,那么就是这个窗口是支持我们自定义查询策略方案的
- 点击修改策略进入策略修改窗口
- 修改查询策略的窗口功能说明
- 整体窗口说明
- 上部是策略清单,我们刚刚打开的时候,我们看到的策略都是软件开发商安仕达软件帮我们设计好的现成的策略
- 每一行就是一个策略,一个策略就是一个报表
- 下面是策略构成的字段列表
- 我们在策略之间点击切换,下面的字段内容会跟随变化
- 整体窗口说明
- 策略项目说明
- 策略ID:只读属性,类型是整数,自动生成的唯一策略编号
- 标准:只读属性,类型是逻辑,凡是安仕达软件产品自带的策略,称呼为标准策略,我们自己定义出来的是非标准策略
- 策略名称:文字属性,就是我们理解的报表标题,凡标准策略,则我们不能修改名称,我们自己定义的策略,就可以修改名称,强烈建议大家不要使用相同的策略名称,避免导致混淆
- 是否使用:可修改属性,类型是逻辑,我们可以通过双击表格来修改这个属性值。只有 使用中 的策略,才会在查询窗口的策略清单中显示出来,见下图。
- 分组名称:可修改属性,类型是文字,这里定义的文字 会影响到查询报表里面的分类,见下图
- 主表名:可修改属性,类型是文字,这里定义的是策略的主数据来源,这个功能是给安仕达软件的开发人员去修改的,我们强烈建议大家不要去修改,修改不当可能会导致报表出错,实际上你完全可以不修改这个属性来完成你的报表需求
- 策略类型:可修改属性,取值可以是 二维表 或者 交叉表,这里定义你需要的报表显示格式,标准报表不能被修改,自定义报表可以随便修改。
- 固定条件:可修过属性,类型是文字,这里定义的值会影响最终生成的SQL命令内容,这个功能是给安仕达软件的开发人员去修改的,实际的值跟软件数据库表结构设计有关的。安仕达建议大家不要去修改,因为修改不当可能会导致报表出错,实际上你完全可以不修改这个属性来完成你的报表需求
- 备注:可修改属性,类型是文字,定义的内容不会影响查询策略,只是让我们去备注自己修改的策略,避免策略太多以后,自己搞混了。
- 定义日期:只读属性,类型是日期。
- 明细报表:可修改属性,类型是逻辑,给安仕达软件开发人员使用的,在我们自己定义的策略中不需要去填写这个值,因为我们就不需要开发明细的报表,前面已经说了,查询明细是没有意义的。
- 策略操作培训
- 新建方案
- 增加空白方案:这个功能主要是给安仕达软件开发人员使用,不建议大家自己去从头开始定义空白策略
- 复制添加方案:复制增加当前行的策略到表格的最后一行,大家可以对这个新策略进行自己需要的调整
- 删除策略
- 删除自己定义的当前行策略,需要注意的是这个操作没有后悔药的,如果后悔了,马上关闭当前窗口,系统问我们要不要补充的时候,选择“否”
- 需要注意一点,如果你使用自己定义的大数据查询报表,之后又删除了这个策略,这会导致之前查询的报表以后无法再次查看,原因是软件已经不知道系统存储的结果数据是什么意思了。
- 保存策略
- 保存自己修改的当前策略
- 查看策略指令
- 如果我们掌握了SQL语法的技术水平,可以点击这个按钮去看看系统生成的SQL命令是不是我们需要的,如果我们不会SQL语法,就不要去用这个功能
- 如果我们掌握了SQL语法的技术水平,可以点击这个按钮去看看系统生成的SQL命令是不是我们需要的,如果我们不会SQL语法,就不要去用这个功能
- 策略信息
- 因为安仕达软件的查询策略有时候同时发表了多个版本在用,这个功能帮助我们了解当前的策略是否合适的策略,如果出现问题的时候,安仕达服务人员可以通过看策略信息来确认是不是需要升级新策略
- 因为安仕达软件的查询策略有时候同时发表了多个版本在用,这个功能帮助我们了解当前的策略是否合适的策略,如果出现问题的时候,安仕达服务人员可以通过看策略信息来确认是不是需要升级新策略
- 新建方案
- 字段项目说明
- 如图,全部存在这些字段
- 表含义:只读属性,文字类型,表示当前字段来自于哪一个数据源,这些数据源是安仕达软件提前开发设计好的。
- 显示标题:可修改属性,文字类型,相当于表示EXCEL表格的当前数据列使用哪一个列标题
- 排序次序:可修改属性,整数类型,意思是当前列位置安排在表格中的第几列
- 选中:可修改属性,逻辑类型,意思是我们的报表需要当前列的结果
- 计算类型:
- 可修改属性,如果是普通的数字类型字段,有以下几种可选类型
- 可修改属性,如果是日期时间类型字段,有以下几种可选类型
- 当设置为 无 或者 分组,表示说数据表中,这一列会有多次重复出现的机会,我们将对这一列进行数据分组,在SQL命令中表示这一列放到 GROUP 的位置去。使用建议——例如,当我们针对14亿中国人民这个海量超大数据表去分析数据,我们可以使用 籍贯、学历 或者 年龄 来作为分组,去统计报表,因为这些列的值会经常重复,我们就不可以使用姓名去做分组,因为同名同姓的概率太低了,这个统计报表就没有意义了。
- 汇总类型 就是累加值,在SQL里面相当于 SUM 函数
- 次数类型 就是计算出现的非空次数,在SQL里面相当于 COUNT(?) 函数,这里特指的是非空值出现次数,例如某列的值出现清单如下——1,2,2,3,2,1,4,null 。也就是又8行记录出现过有值的行数为7,所以计算返回的结果是 7 。
- 特别需要注意的是次数计算仅支持 整数型 、文字型 和 逻辑型的,不支持浮点型的数据。这是什么意思呢?例如说,如果 岁数列 需要统计 次数,则岁数 必须是整数,40岁或者41岁,而不能有小数,如果有41.5岁,则汇总过程会报错的
- 如果是日期型,我们还是希望统计或者分组怎么办?我们需要通过 显示格式 让日期数据 变成文字类型,例如 显示格式 YYYYMMDD 就可以把日期变成文字 “20230801”,就可以参加分组或者计算次数。
- 次数(单一)类型 就是计算出现的非空次数,并且不要重复,在SQL里面相当于Count(DISTINCT ?) 函数,这里特指的是不重复的非空值的出现次数,例如某列的值出现清单如下——1,2,2,3,2,1,4,null 。也就是8行记录出现过的不重复值有4个,分别是 1-2-3-4,计算的结果就是 4 。
- 特别需要注意的是次数计算仅支持 整数型 、文字型 和 逻辑型的,不支持浮点型的数据。这是什么意思呢?例如说,如果 岁数列 需要统计 次数,则岁数 必须是整数,40岁或者41岁,而不能有小数,如果有41.5岁,则汇总过程会报错的
- 如果是日期型,我们还是希望统计或者分组怎么办?我们需要通过 显示格式 让日期数据 变成文字类型,例如 显示格式 YYYYMMDD 就可以把日期变成文字 “20230801”,就可以参加分组或者计算次数。
- 最大类型 就是查询出当前列的最大值,相当于SQL里面的 MAX 函数
- 最小类型 就是查询出当前列的最小值,相当于SQL里面的 MIN 函数
- 平均类型 就是查询出当前列的平均值,意思是先汇总,然后再按行数平均一下
- 年度类型 将日期值转换为【 2023年】这样的文字
- 月度类型 将日期值转换为【 2023年05月】这样的文字
- 季度类型 将日期值转换为【 2023年1季度】这样的文字
- 周次类型 将日期值转换为【 2023年15周】这样的文字
- 星期类型 将日期值转换为【 星期六】这样的文字
- 可修改属性,如果是普通的数字类型字段,有以下几种可选类型
- 字段的计算类型总结
- 文字类型、整数类型 或者 日期类型 字段格式化为文字以后 就可以作为 分组计算类型 或者 次数计算类型
- 数值类型的字段 可以使用 汇总、最大、最小 和 平均 计算类型
- 日期类型的字段 可以使用自己的独特计算类型 生成 文字结果
- 数值类的字段都可以做常规的汇总,例如 最大 最小 平均 汇总 等计算类型
- 文字类 或者 整数类 的字段,可以做 次数 或者 次数(单一)的计算类型
- 除非我们只是需要查询明细资料,否则我们是一定要拥有至少一个汇总类型的字段!
- 汇总类型字段自动可以同时使用多个
- 当我们定义了汇总的字段,其他非汇总的字段就自动变成了分组字段
- 排序方法:
- 可修改属性,有以下几种可选类型,分别代表 无排序,从低到高排序 和 从高到低排序
- 对应于SQL命令,其实就是设置哪些字段需要放到 ORDER BY 段落
- 可修改属性,有以下几种可选类型,分别代表 无排序,从低到高排序 和 从高到低排序
- 宽度:可修改属性,整数类型,就是我们二维表里面该列的显示宽度,如果定义为8就代表宽度可以容纳下 12345678 这端文字。
- 显示格式:可修改属性,文字类型,当列值为日期或者数字的时候,这个属性就可以起作用了,建议采纳默认值不要去修改。这个属性的工作原理是delphi开发语言里面TField.DisplayFormat 格式化方法,说来话长,如果大家对显示格式不满意可以咨询我们服务顾问。
- 例子
- 技术参考资料1
Delphi开发语言里面TField.DisplayFormat是一个字符串属性,用于控制数据字段在显示为字符串时的格式。不同类型的数据字段有不同的格式设置规则,例如:
• TDateTimeField:用于日期和时间类型的字段,可以使用FormatDateTime函数中定义的格式符号来设置显示格式,例如’yyyy/mm/dd hh:nn:ss’表示年/月/日 时:分:秒。具体的格式符号可以参考3 https://docwiki.embarcadero.com/Libraries/Sydney/en/Data.DB.TDateTimeField.DisplayFormat。
• TFloatField:用于浮点数类型的字段,可以使用FormatFloat函数中定义的格式符号来设置显示格式,例如’###,###.##’表示千分位分隔符和两位小数。具体的格式符号可以参考1 https://stackoverflow.com/questions/21399729/delphi-tfloatfield-displayformat-for-numeric-fields-less-than-1-0。
• TIntegerField:用于整数类型的字段,可以使用Format函数中定义的格式符号来设置显示格式,例如’00000’表示五位数字,不足的用0补齐。具体的格式符号可以参考[8]。
以下是一些使用TField.DisplayFormat的例子:
• 如果你想让一个TDateTimeField显示为’2021年8月31日星期二’,你可以设置TDateTimeField.DisplayFormat := ‘yyyy”年”mm”月”dd”日”dddd’;
• 如果你想让一个TFloatField显示为’$12,345.67’,你可以设置TFloatField.DisplayFormat := ‘$###,###.##’;
• 如果你想让一个TIntegerField显示为’00001’,你可以设置TIntegerField.DisplayFormat := ‘00000’; - 技术参考资料2
TField.DisplayFormat是Delphi中TField类的一个属性,用于设置字段的显示格式。它可以设置为自定义格式,也可以设置为系统默认格式。以下是一些常见的格式定义方法和例子:
设置为数字格式
Field1.DisplayFormat := ‘0,0.0’;
设置为日期格式Field1.DisplayFormat := ‘dd/MM/yyyy’;
设置为货币格式Field1.DisplayFormat := ‘¥#,##0.0’;
设置为百分比格式Field1.DisplayFormat := ‘##0.00%’;
自定义格式
Field1.DisplayFormat := ‘Custom format: %d %s’;
在自定义格式中,可以使用以下字符:
%d: 显示数字
%s: 显示字符串
%f: 显示浮点数
%g: 显示整数或浮点数,取决于字段的数据类型
%e: 显示科学计数法
%x: 显示十六进制
%p: 显示字段的值,格式为“值(类型)”
注意,不同的数据类型可能需要不同的格式,例如日期、货币、百分比等。在设置格式时,请确保它与字段的数据类型匹配。
- 例子
- 可见:可修改属性,逻辑类型,意思是当前列要不要显示在最终的表格中,理论上我们是应该选中的字段都显示的,有时候我们可能有这样的需求想法,例如不想看到太多的列,而隐藏一些列,比如只显示 客户编号 和 客户名称,不要显示 客户ID 和 客户联系人
- 交叉汇总:可修改属性,这个属性只对交叉表类型有效,二维表情况下设置无效。
- 可选类型如下
- 交叉表是一种安仕达软件中强大而常用的分类汇总表格,使用交叉表查询,显示源于表中某个字段的汇 总值,并将它们分组,其中一组列在数据表的左侧(称呼为纵向),另一组列在数据表的上部(称呼为横向)。行和列的交叉处 可以对数据进行多种汇总计算(称呼为汇总),如:求和、平均值、记数、最大值、最小值等。更具体的含义我们看下图
- 横向 和 纵向 其实对应的是 交叉汇总表里面的维度概念,见下图。如需要进一步的精细化定义,未来我们会另外做交叉表使用的培训视频
- 页头字段 的用途,设置以后在交叉表的左上角会显示一个按钮,方便我们去进行过滤操作,类似于 EXCEL的 列标题过滤,注意看动画视频
- 上面这个报表中, 安仕达软件 考虑到大部分客户都需要看到类别的分级展开和汇总,所以只要我们选择了类别项目,报表就会自动的统计各级明细类别的汇总情况
- 可选类型如下
- 汇总设置:多选属性,这里是特别用于交叉汇总表的汇总项目定义
- 使用方法,定位到交叉表的汇总字段行,然后点击下方的按钮 【汇总设置】
- 这几个属性对应的就是我们交叉表最常用的几个扩展统计功能
- 列值占比:当前值在全部列汇总值中的占比
- 行值占比:当前值在全部行汇总值中的占比
- 列值差异:当前值比前面一列的变化
- 行值差异:当前值比前面一行的变化
- 其他的扩展统计功能还有下面这些,估计大家都还用不到,都是统计学上的专业术语,这里我们就不再详述
- 使用方法,定位到交叉表的汇总字段行,然后点击下方的按钮 【汇总设置】
- 输出字段:只读属性,文字类型,这里都是软件自动生成最终字段值,我们作为使用者不需要去关心,这里主要是服务于软件开发程序员调试和排查错误用途
- 如图,全部存在这些字段
- 字段操作培训
- 导入字段
- ① 按表导入:数据字段来源于与目标查询相关的数据库表,选择源表,将整表字段导 入。
- ② 按字段导入:数据字段来源于与目标查询相关的数据库表,从表中多选字段导入。
- ③ 按日期导入:数据字段来源于与目标查询相关的数据库表,从表中选日期类字段导 入。
- 选择字段
- 选中:选中的字段将加入数据查询。
- 样式设计
- 字段删除
- 在字段刚刚导入明细中时,所有的字段都是未选中状,将想要插入查询的目 标字段选中,然后选择【删除未选项】将其他字段删除。
- 字段列排序
- 次序含义:策略明细设计表中的字段自上向下,对应在查询结果表中展现的 字段从左至右排序(二维表)。
- 调整顺序:运用上移一行、下移一行按键调整字段间顺序。
- 字段内容排序
- 数据字段内按照一定规则排定的顺序. 规则: 如果有一个字段选择了排序方法,列表按照该字段顺序对应显示。 如果有不止一个字段选择了排序方法,顺序在前的字段优先级高。
- 字段是否可见
- 如果想在查询结果中显示该字段,必须勾选。(注:例如物料ID为自增列字段,没有实际意义,通常不被勾选可见)
- 字段显示格式
- 参见前面介绍的字段显示格式设置说明
- 字段删除
- 保存退出
- 之后我们退出窗口的时候,系统会询问我们是否保存,我们点击保存就可以去测试和使用新定义的查询策略了。
- 导入字段
- 好了,经过前面的查询策略常识培训,我们下面将通过ABC三步法则,真正地实战开发我们自定义的查询策略!
安仕达烘焙软件,更专业更用心。发布者:admin,转转请注明出处:http://www.mstar.com.cn/archives/7554