《雅奇MIS》大师版学习笔记.docx
《《雅奇MIS》大师版学习笔记.docx》由会员分享,可在线阅读,更多相关《《雅奇MIS》大师版学习笔记.docx(23页珍藏版)》请在冰点文库上搜索。
《雅奇MIS》大师版学习笔记
一、解析表达式与报表的结合?
如果((数据源6.代码>=1)而且(数据源6.代码<=12),解析表达式('报表&(数据源6.代码).打印报表',1),'');
含义:
根据代码的不同调用不同的报表
二、如何制作表格式报告?
方法很多:
1、用卡片式报表,报表内容一律用标签和公式完成;
2、运用前后台计算把需要的内容计算到一个打印表中,用列表浏览式报表;
3、用电子表控件完成,需要设置每个单元格的公式。
三、前台与后台修改的区别
前台逐条修改可以,后台批量修改不行
四、如何让取范围随机值()函数产生不会重复值?
方法:
用检测判断
五、如何对报表进行分页
子表自动分页,可以在将属性"另起一页打印"选中.
如果要同时打印主表,可以设"表头打印方式"为每页均打印表头.
六、如何对前台字段的重复值进行检测?
如果是:
检测字段值重复(数据源2.产品货号,前台)=1
强制终止('此产品已存在')
否则
数据源2.产品货号:
=数据源0.成品编码;
七、模糊查询()中条件或者的使用注意点?
如:
模糊查询(数据源0.姓名,编辑框0.当前值)+模糊查询(数据源0.学历,’或者’+编辑框1.当前值)
答:
或者与右边的单引号之间要加一个空格
八、如何随机生成记录?
注:
随机记录数在access中建立查询视图。
九、如何实现调用存储过程功能?
执行SQL语句('....')
如:
调用存储过程sp_test('abc')
执行SQL语句('sp_test("abc")')即可。
此存储过程可以支持参数。
十、执行SQL语句('createdatabasemcfon(name=mcf_data,filename="C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\mcf_data.mdf",size=1,maxsize=3,filegrowth=10%)logon(name=mcf_log,filename="C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\mcf_log.ldf",size=1,maxsize=5,filegrowth=10%)')
十一、如何设计报表打印前事件与打印后事件?
把事件放在按键单击事件中,利用按键调用报表。
十二、如何调整主子表"尾行重合"
主子表没有"调整尾行重合",调整尾行非常麻烦,大约有三种解决办法:
1)根据表的实际情况调整主表的栏高,这种方法太费时间了
2)先建立个列表浏览式,把子表调整好后,再建立主子表,把子表导入就可以了
3)建立主子表,先把主子表关联去掉,各自调整完后再建立关联,建立关联后,大家就有神奇发现。
十三、如何快速设计报表的布局?
1)利用复制整行和粘贴整行功能,也可以复制标签;
2)利用工具栏可以快速整列调整,对齐整列;
3)利用报表的环境设置,可以增快设计速度.其中的显示报表对象列表和字段拖放工具,打开后大大加快设计速度.还有就是度量单位的选择,大家如果对像素不是很熟悉,可以改用毫米,能很准确的设计报表;
4可以用ctrl+方向键,进行微调,整列调整可以使用SHIFT+选择调整的数据线,快速进行调整;
5很好的利用报表的环境设置,可以增快设计速度.其中的显示报表对象列表和字段拖放工具,打开后大大加快设计速度.还有就是度量单位的选择,大家如果对像素不是很熟悉,可以改用毫米,能很准确的设计报表,我就是用这种方法设计的.
十四、生成报表时,为什么有时记录很少,却生成很多页?
发现有时候预览或者打印时候,本来没有数据发现预览快速生成了很多页,经测试,发现问题原因,就是你有新增的有源标签超过行高列宽所导致的,希望大家在加这类标签一定注意否则你的打印机估计的放上足够的纸张了。
十五、载入窗体慢主要原因?
载入窗体慢主要原因是要实现的内容太多,措施:
减少显示表单和数据加载量是最好的方法;减少数据源记录的载入数量,窗体打开前打开后的事件尽量简化。
十六、如何打印备注字段?
比如备注字段有100个或者200个汉字,如何在所有明细记录地方都显示出来呢?
就是说这个备注是对所有明细行的说明,这个调整需要用有源长文本框,不过在调整过程中需要注意以下三点
1)有源长文本框必须放在页头栏,通过微调把文本框最上端和页头栏最下端对齐.
2)就是有源文本框下端的调整,需要把表尾栏或者页尾栏拉到屏幕最下端,这样有源文本框才能够往下拉,根据尺寸调整完后,再把表尾栏或者页尾栏拉回原来位置.
3)就是左右宽度调整和是否延续到下一栏的调整了,这个在属性里面控制.
十七、不可忽视打印控件垃圾?
如果你的打印按键已经损害的情况下,需要用按键调用报表打印设计器,把相应的打印格式清除,否则你即使删除了打印按钮,打印格式仍然存在----这个是个系统大垃圾.请各位学友看看自己设计系统是否存在这样的垃圾吧.
十八、注意打印格式载入模板功能会影响打印事件.
十九、解析表达式函数的意义?
话说表达式在大师版中有2种
一种是传统意义上的表达式,比如1+2+3,这种就是要计算一下表达式的值,第二个参数不写实际的意义就是解析这种表达式,这个函数会将表达式的结果返回。
另一种实际上可以称之为语句。
比如变量.I:
=3。
或者调用一下行为。
这时就是第二个参数的意义,当第二个参数为1时,解析的就是这种表达式。
如:
1)解析表达式('1+2+3')
返回结果6
2)解析表达式('变量.Q:
=3',1)
将变量.Q赋值为3
二十、在写解析表达式函数后,为什么编辑器中不提示出错,但执行时,就是提示:
综合任务中少信息而不得执行?
看了各位老师以上的讨论,推翻了我原以为条件式,赋值式的左边是不可以用公式动态指定一个对象的结论.所以就做了下面的公式验证:
解析表达式('&(解析表达式('"表单列"+"&(编辑框0.当前值)"+".列头标题"')):
="&(编辑框1.当前值)"',1)
解析表达式('"表单列"+"&(编辑框0.当前值)"+".列头标题:
="+"&(编辑框1.当前值)"',1)
以上两公式虽在编辑器中不提示出错,但执行时,就是提示:
综合任务中少信息而不得执行.
请教欧老师:
错在那儿?
答:
解析表达式('表单列&(编辑框0.当前值).列头标题:
="&(编辑框1.当前值)"',1)
在数据库端作一个交叉查询表(视图)
二十一、共享同一个软件与多个同样软件共享同一个数据库有什么不同?
如果是ACCESS数据库的软件:
共享同一数据库和软件有可能会造成数据库出错,这种共享不是结构性共享,而是依托操作系统提供的一种文件共享。
换句话说并不是真正的S/c结构。
如果是SQL数据库的软件:
共享同一软件和数据库相对其数据的读写等操作出错可能性小些,毕竟SQL数据库是支持队列的。
不过尽量不要在局网内共享同一个软件执行文件,出错可能性过大,实在是不可避免要用,宁肯都装一个软件而共享数据库。
二十二、web程序怎样入门?
从学习OSI网络协议、html语言、网络数据库编程一步步来
二十三、如何制作进度条?
二十四、如何对身份证号进行取值?
可以在编辑框的"内容改变后"事件中放置一"综合任务"模块其表达式:
如果是:
((取字节长度(编辑框4.当前值)<15)或者(取字节长度(编辑框4.当前值)=16))或者((取字节长度(编辑框4.当前值)=17)或者(取字节长度(编辑框4.当前值)>18))
强制终止('您输入的身份证号码不合法!
')
或者还是用智能检测表达式如下:
智能检测(((取字节长度(编辑框4.当前值)<15)或者(取字节长度(编辑框4.当前值)=16))或者((取字节长度(编辑框4.当前值)=17)或者(取字节长度(编辑框4.当前值)>18)),'您的身份证号码不合法!
')
二十五、如何让查询值与数据源变化同步?
我有设置了查询框后,出现这样一个问题:
把查询框设置为内容改变后查询,当我删除查询框内容后,再点击所查询的表单框,这时表单框会显示该数据源的所有内容,请问要怎么解决这个问题。
我该数据源载入表达式为设为:
否
答:
在查询框的“内容改变后”事件中放置一“综合任务”模块,其表达式为:
如果是:
查询框0.当前值=''数据源0.查询条件:
=否
二十六、如何更改安装目录?
各位同仁:
目前雅奇系统的运行目录自动设置在c:
\programfiles\下,怎样在生成系统安装文件时直接将运行目录设置在指定的目录下(如d:
\yqmis)?
不必每次安装都要更改目录。
多谢!
答:
用二次打包软件重新封装一下就可以了。
二十七、请问我要在编辑框设置数字不超过13位要怎么写公式呀?
智能检测(转为数字(数据源0.字段0)>'9999999999999','[字段0]字段值不合法!
')这是13位的如果位数不是13位,只要增加或减少9的个数。
二十八、如果是()函数不同情况下的用法?
"如果是"为检测条件可以用'而且'或'或者'来增加检测条件。
而"如果是"为赋值或改变属性等,可用'开始'作开头,'结束'作结尾,中间可以有任意多的赋值和改变属性。
如:
如果是:
编辑框6.当前值='重点监管'
编辑框6.颜色:
=颜色赋值(255,0,0);
如果是:
编辑框6.当前值='例行监管'
编辑框6.颜色:
=颜色赋值(255,255,0);
如果是:
编辑框6.当前值='不用监管'
编辑框6.颜色:
=颜色赋值(255,255,255);
如果是:
编辑框6.当前值='普通监管'
编辑框6.颜色:
=颜色赋值(0,255,0);
二十九、如果一个程序,要用到两个数据库,要如何来应用?
老师:
我的程序要引用别的数据库中的表到本程序中来,但本程序只能打开一个数据库,要怎么才能跨数据库操作呢?
SQLServer可以使用LinkedServer或者openrowset,如:
CREATEVIEWerp_inall_viewASselect*fromOPENROWSET('MSDASQL','DRIVER={SQLServer};SERVER=192.168.0.19;UID=sa;PWD=',dia.dbo.dia_two_view)ASam_tab
三十、如何做到自动赋值?
在户主关系编辑框的"内容改变后"放置一"综合模块",表达式如下:
如果是:
检测含有字符(数据源1.与户主关系,'户主')
数据源0.姓名:
=数据源0.户主
否则
数据源0.姓名:
=''(28)
三十一、如何求上周二载入表达式?
(求星期号(入库日期)-1=2)而且(求日期时间差('ww',入库日期,求日期())-1=0)
三十二、如何给图片加密?
把图片后缀名修改成其他格式,安装到windows目录下特定文件夹内,需要那个改名复制过来即可。
三十三、无法为更新定位,一些值可能已在最后一次读取中已更改出现上述问题有常见的两个原因?
1.用于数据采集的窗体里的数据源没有加载自动编号字段
2.智能公式中的计算顺序不合理,造成了循环计算错误
三十四、载入销售主表销售金额前30名记录如何设置?
利用行次整理'金额降序';
数据源载入条件:
记录顺序<=30
三十五、利用数据源汇总统计,计算出分组字段统计数值,如借书数
三十六、如何对日期进行分组?
"子串分组"中,如何按年和月分组,就是要同时,不是分别的。
法一:
只要用一个日期字段就可以了:
求左起字节(日期,1,7).这里有个条件,系统日期格式要求为:
yyyy-mm-dd
法二,增加一个"月"字段,在录入时该字段折智能公式为:
取日期(数据源1.日期)
这样分组时,就可以利用两个字段.
操作如下:
第一个字段为"日期"字段,子串分组表达式为:
求左起字节(日期,1,4).
第二个字段为"月"字段(无需子串分组表达式)
三十七、查询与过滤的区别?
查询是基于数据库的,而过滤是基于数据源的
三十八、数字格式化()函数的使用?
数字格式化((计算表.职务岗位工资+计算表.现级别薪级工资)*0.1,'%15.0n')
三十九、请问:
图片框中的GIF图形文件,在生成项目文件后,为何不显示?
估计你是连接外部文件了。
去掉这个选项试试二楼讲得很清楚了,连接图片后,将连接到外部文件的钩去掉,这个gif图像就保存在窗体中了
四十、想删除单位类别不等于0002的记录,表达式应如何写?
删除条件为:
单位类别不存在于("0002")
四十一、为什么这样设置后所有的用户都不能使用?
编辑框0编辑框0.可用:
=取操作员信息(0)='系统管理员,操作员';
答:
编辑框0.可用:
=权限检查站('系统管理员,操作员')
编辑框0.可用:
=(取操作员信息(0)='系统管理员')或者(取操作员信息(0)='操作员')
四十二、在电子表格控件中,可以建许多张表格,比如表1、表2、等,在设计中又如何区分每一张表呢,比如单元格赋值(电子表0,'A1',数据源0.字段0);只能往表1中赋值,如果要往表2中赋值呢。
表名!
A1
四十三、如何将数据源0的字段名写入到数据源1的第一行?
数据源0字段名:
姓名年龄出生年月籍贯备注
将上面的字段名,写入到数据源1的第一行。
答:
如果是:
数据源1.最大记录号>0
数据源1.到首记录否则数据源1.新增记录;
按变量循环:
变量.AA,0,4,1
解析表达式('数据源1.字段&(变量.AA):
=表单列&(变量.AA).列头标题',1)
四十四、如何设置图片套打?
设计见下图:
四十五、上移、下移、插入设计方法?
四十六、如何多个选择产品?
四十七、如何动态多项清除重复记录?
四十八、如何设计交叉表?
四十九、子查询、按变量循环综合应用?
五十、横纵转换设计原理?
五十一、查询()与定位()紧密结合?
五十二、随机函数在取数上的应用?
五十三、树与表单的结合
五十四、电子表的应用:
转成卡片式:
卡片式事件如下:
电子表0.文件名:
=取项目文件信息()+'卡片.XLS';
电子表0.载入文件;
变量.行号:
=1;
变量.列号:
=65;
按变量循环:
变量.行号,1,100,1
开始
按变量循环:
变量.列号,65,100,1
如果是:
取左起字节(单元格查询(电子表0,'&(ASCII转字符(变量.列号))&(变量.行号)'),1,1)='['
开始
变量.原始内容:
=单元格查询(电子表0,'&(ASCII转字符(变量.列号))&(变量.行号)');
变量.内容:
=解析表达式('数据源0.&(取左起字节(变量.原始内容,2,取字节长度(变量.原始内容)-2))');
单元格赋值(电子表0,'&(ASCII转字符(变量.列号))&(变量.行号)',变量.内容);
结束;
变量.列号:
=变量.列号+1;
结束;
变量.行号:
=变量.行号+1;
结束{行号}
转成列表式:
列表式事件如下:
电子表0.文件名:
=取项目文件信息()+'列表.XLS';
电子表0.载入文件;
按变量循环:
变量.列号,65,100,1
开始
按变量循环:
变量.行号,1,100,1
开始
如果是:
取左起字节(单元格查询(电子表0,'&(ASCII转字符(变量.列号))&(变量.行号)'),1,1)='['
开始
变量.原始内容:
=单元格查询(电子表0,'&(ASCII转字符(变量.列号))&(变量.行号)');
数据源0.到首记录;
变量.当前记录号:
=0;
变量.最大记录号:
=数据源0.最大记录号;
按变量循环:
变量.当前记录号,1,变量.最大记录号
开始
变量.内容:
=解析表达式('数据源0.&(取左起字节(变量.原始内容,2,取字节长度(变量.原始内容)-2))');
单元格赋值(电子表0,'&(ASCII转字符(变量.列号))&(变量.行号)',变量.内容)
数据源0.到下一记录;变量.行号:
=变量.行号+1;
结束;
结束;{如果是}
结束;{行号}
变量.列号:
=变量.列号+1;
结束{列号}
五十五、指定日期范围查询问题
用于ACCESS数据库
数据源0.查询条件:
='缴费日期>=#&(编辑框0.当前值)#而且缴费日期<=#&(编辑框1.当前值)#'
五十六、最近发现个问题,如果2个人同时开单子,自动编号会重复。
有解决的方法么?
答:
当"智能公式"表达式前缀的末尾含有"#"符号时,当前公式对应的数据源将在触发计算后立即执行保存。
这一机制通常使用在网络上的"取自动编号()",以及"动态更新库存"等应用上。
如:
~#取自动编号(数据源0.票号,'A-',3)
此表达式可避免网络应用时的"票号重复"。
注意:
如果使用了第四位参数(前台),不可以编辑为含有"#"的立即保存表达式,否则将出错。
如:
数据源中的"数量"字段值被直接编辑时,要求立即保存当前数据源,可编辑:
#(数据源1.数量)
五十七、如何将数据源0的字段名写入到数据源1的第一行?
如果是:
数据源1.最大记录号>0
数据源1.到首记录否则数据源1.新增记录;
按变量循环:
变量.AA,0,4,1
解析表达式('数据源1.字段&(变量.AA):
=表单列&(变量.AA).列头标题',1)
五十八、请教一个多字段关联检测的问题
不用卡片框控件,用编辑框控件,并且编辑框不与数据源字段绑定。
当需要保存时,用生成记录模块,用编辑框当前值给字段赋值,当不需要保存时清空编辑框当前值就行了。
这种情况下,数据验证就不能使用智能检测了,只能使用编辑框的事件来检测数据的合法性了。
五十九、关于数据源导出为文件函数的问题
数据源导出为文件({数据源名},{包括文件后缀名类型的文件全路径名},{覆盖时是否提示}),我编为:
数据源导出为文件(数据源0.学习,'C:
\aaa.xls',0)保存提示有错,请教各位错在哪?
数据源导出为文件(数据源0,'C:
\aaa.xls',0)
六十、字段列表树和字段谱系树的区别
"字段谱系树"控件只能关联到数据源中的某个"字符型"字段。
"字段列表树"控件只能关联到数据源中的某个"数值型"、"日期型"、"字符型"字段。
至于这个表中星期六星期日的数据,可以通过程序计算插入。
这个就不用说了吧。
六十一、怎么计算每个月的工作日(除星期六日)
方法一:
变量.计算日期:
=转为日期(编辑框0.当前值);
{注释:
编辑框0中指出一个任意日期值,这个日期值是变量的计算日期初始值,用来计算当月工作日天数}
变量.本月前缀:
='&(取年号(变量.计算日期))-&(取月号(变量.计算日期))-';
变量.本月第一天:
=变量.本月前缀+'1';
变量.下月:
=取数月后日期(变量.计算日期,1);
变量.本月最后一天:
=转为日期('&(取年号(变量.下月))-&(取月号(变量.下月))-01')-1;
变量.总天数:
=取日号(变量.本月最后一天);
变量.假期总数:
=0;
按变量循环:
变量.循环变量,1,变量.总天数,1
开始
变量.星期号:
=取星期号(变量.本月前缀+转为字符(变量.循环变量));
如果是:
(变量.星期号=1)或者(变量.星期号=7)
变量.假期总数:
=变量.假期总数+1;
结束;
变量.工作天数:
=变量.总天数-变量.假期总数;
>>>>你可以把这段代码放到某个事件里,给变量赋值,再调用事件就可以当函数使用了。
方法二:
建立一张表,表中3个字段
年月假日日号
子查询就可以知道某月假期数
再算得某月天数,一减即可。
这个更为合理,因为可以把所有的假期(国家法定,或者工厂自定)计算在内。
。