一 : PS美女照片脸部修饰的实例教程
相关文章:用Photoshop的“计算”打造晶莹通透皮肤
素材
1、打开素材图开始磨皮。
2、把背景图层复制一层,然后把眉毛用套锁工具勾出来,适当的羽化一下,填充眉毛附近的皮肤色,效果如下图。
3、适当的用减淡工具把脸上的阴影部分加亮。
4、对人物整体磨皮,方法自己把握,大致效果如下图。
5、把素材图中的薄纱复制出来,用到装饰人物的背景。
6、新建一个图层用画笔工具在人物脸上刷上红色,再适当的改变图层混合模式,效果如下图。
7、打开素材图中的黑色薄纱,勾出来防到人物的眼角边,执行菜单:滤镜 > 液化,慢慢涂抹成水墨的感觉。
8、最后加上水波素材,适当的改变模式,完成最终效果。
二 : Unity官方实例教程 Space Shooter(四)
Space Shooter 太空射击
传送门
Unity官方实例教程 Space Shooter(一)
Unity官方实例教程 Space Shooter(二)
Unity官方实例教程 Space Shooter(三)
Unity官方实例教程 Space Shooter(四)
Unity官方实例教程 Space Shooter(五)
前言
游戏截图
在Unity官方实例教程 Space Shooter(三)中,我们学会了:
如何回收子弹
如何创建障碍物
如何实现子弹击碎障碍的效果
如何实现飞船撞击障碍的华丽爆炸效果
现在我们的游戏已经具备了基本的玩法了,但是我们的障碍还是太少了,玩家击碎一个之后,就已经无所事事了,所以我们需要加大难度,来看看我们这一节会做哪些事情。
你将学到什么?
如何让障碍向下移动对玩家造成威胁
如何随机生成一个障碍
如何生成多个障碍
如何设置障碍生成的间隔
如何生成无尽波数的障碍
如何基于时间来回收GameObject
一、实现障碍向下移动
我们让障碍能够往下移动,这样才能对我们的飞船造成一些威胁。不知道大家是否还记得当初我们让子弹向前飞行的做法,有了这个东西,我们就能很快的让障碍向下移动,首先我们给障碍添加之前我们创建过的Mover脚本,然后将speed变量设置为-5,运行一下游戏,看看障碍是不是向下移动了
向下移动的障碍
很好,我们看到障碍已经向下移动了,飞船如果不躲避,也会被他撞毁,下面我们就要来生成更多的障碍了,首先我们来思考一下,要实现生成更多的障碍,我们应该做什么?
首先我们需要能够自动生成一个障碍物
而且这个障碍能够随机出现在不同的位置,不然就太没有挑战了
我们先来看看如何随机生成一个障碍
二、随机生成障碍
首先,我们这些逻辑需要绑定在一个游戏控制器上,所以我们新建一个空的GameObject,命名为GameController,然后给GameController添加一个新的脚本,也命名为GameController(有点绕,希望大家耐心点),然后我们打开GameController脚本输入以下代码:
完整的代码
首先我们定义一个公共变量hazard,来设置生成的障碍对象
然后我们继续定义一个公共变量spawnValue,它是一个Vector3的变量,用来设置障碍生成的位置,我们可以在编辑器中设置
接着我们在Start方法中调用SpawnWaves方法,因为很多我们自定义的方法,Unity都不会自动调用的,需要我们自己在合适的地方去调用
然后我们定义了SpawnWaves方法,我们来看看这个方法里面做了什么?
首先我们在方法里面定义了一个局部变量spawnPosition,这个变量是用来记录障碍生成的位置,我们来看看如何对他进行赋值
我们通过new Vector3的方法来新建了一个Vector3,而它的xyz值,我们对它进行了分别的设置,x值是在我们设置的spawnValue的x的[-x, x]之间随机,这样才能保证我们的障碍每次生成在不同的位置上
y和z我们直接调用spawnValue的y和z值,而spawnValue的y和z值是后面我们在编辑器里面进行设置,来确保障碍生成的位置在屏幕的上方
障碍的Position属性搞定后,我们要看看它的Rotation属性如何确定,Rotation属性是一个Quaternion类型的变量,所以我们定义了一个spawnRotation的变量,用来记录障碍的Rotation属性,在这里我们不需要让障碍一开始带着任何的旋转,所以我们直接赋值Quaternion.identity
到现在,我们确定了障碍的对象hazard,障碍的Position,障碍的Rotation,我们便可以使用Instantiate方法生成一个障碍实例了
写完代码,保存一下,回到Unity编辑器,我们还需要做两件事情:
设置hazard
设置spawnValue
首先我们来看看如何设置hazard,hazard我们需要的其实就是我们的障碍物,但是现在障碍物还只是我们场景中的一个GameObject,为了方便使用,我们需要将它做成一个Prefab,我们首先进入到Assets->Prefabs文件下面,然后将Asteroid拖入到文件夹下面,这样我们的Prefab就做好了
制作Prefab
然后我们在选中GameController,将Asteroid的Prefab拖入到hazard中
设置hazard
这样hazard我们就设置好了,下面我们来看看如何设置spawnValue,首先我们得知道spawnValue是用来确定障碍生成的位置的,由于我们游戏是顶视图,所以y值我们不会变化,直接设置为0,然后z值代表障碍在屏幕中的垂直位置,我们肯定希望障碍一开始从屏幕最上方掉下来,所以我们通过测量得知z值可以设置为16,而最后的x值代表障碍在屏幕中的水平位置,同时我们在代码中通过随机函数来确保障碍的x值在一定范围内随机,所以这个范围就是我们屏幕边界,通过测量,我们得到x的值为6,做好这些设置后,我们便可运行游戏来进行测试了,如无意外,我们每次运行游戏,障碍生成的位置都是随机的
三、让障碍来得更猛烈一些
现在我们可以随机生成障碍了,但是生成的障碍还是只有1个,这样太没有挑战性了,所以下面我们让障碍每次生成的数量变得多一点,那怎么让障碍生成数量边多一点了,聪明的朋友可能想到了,我们可以多调用几次生成障碍的方法就可以了,比如像下面这样:
多调用几次SpawnWaves
我们运行一下游戏,发现这样确实能够起到效果,现在可以一次生成3个障碍了,但是这样的写法可不好,如果我们需要生成100个障碍呢?难道我们要写100句SpawnWaves?这显然是很笨的方法,所以我们在这里要用到循环函数来生成多个障碍
完整的代码
首先我们定义了一个公共变量hazardCount,用来设置每次生成的障碍的数量
然后我们修改了SpawnWaves方法,将生成的代码放入了一个for循环里面,循环的次数就是我们的hazardCount
写完代码,保存一下,然后回到Unity编辑器,将hazardCount的数量设置为10,再运行游戏测试一下,便可以看到一次生成了10个障碍
一次生成多个障碍
现在的确一次可以生成多个障碍了,但是还是存在几个问题:
障碍不是一个接一个的出现的
同时出现的障碍还会互相碰撞发生爆炸
所以我们需要让障碍间隔生成
四、如何设置障碍生成的间隔
要让障碍物一个个的生成,其实逻辑说起来很简单,就是让一障碍生成后,稍等一会,再生成第二个,依次类推,那我们来看看如何在代码里面实现这个功能
完整的代[www.61k.com]码
首先我们定义了一个公共变量spawnWait,用来设置每个障碍生成的间隔时间
然后我们又定义了一个公共变量startWait,用来设置游戏开始生成障碍的准备时间,我们给予玩家一定准备时间
然后我们来看这里里面最重要的一个语句yield return new WaitForSeconds,这给方法就是让代码等待一定时间,这是个协同程序,可以让游戏不暂停的同时,让代码暂停(关于协同程序这里大家不用太在意他的内容,只要理解我们这里通过这个代码来实现让代码等待一定时间的效果就好了)
然后我们看一下,我们在方法最开始,使用yield return new WaitForSeconds语句,让代码等待startWait秒,然后再开始执行下面的代码,这样就实现了游戏开始给予玩家准备时间的功能
接着我们在每一次循环结束后,使用yield return new WaitForSeconds语句,让代码等待spawnWait秒,然后再开始执行下一次循环,这样就实现了障碍生存间隔的效果
然后为了使用yield return new WaitForSeconds语句,我们还需要将SpawnWaves的返回值改为IEnumerator类型
最后调用SpawnWaves方法也需要修改为StartCoroutine (SpawnWaves ())
写完代码,保存一下,然后回到Unity编辑器,并且将startWait和spawnWait的时间都设置为1,运行游戏测试一下
间隔落下的障碍
到这里看上去越来越棒了,但是还是有问题,障碍落下10个之后,就不会再落下来了,这可不太好玩,我们能不能让他一直落下呢?当然可以!
五、实现无限波数的障碍
要实现无限波数的障碍,我们需要用到一个新的循环语句——While循环,我们直接看代码来说明
完整的代码
首先我们定义一个公共变量waveWait,用来设置每一波的间隔时间
然后我们使用一个While循环,这里我们将里面的判断条件直接写为true,让它可以一直循环,然后将我们生成障碍的代码放入While循环中
之后在每次循环结束是,我们使用yield return new WaitForSeconds语句,让代码等待waveWait秒
写完代码,保存一下,然后回到Unity编辑器,将waveWait的值设置为3,接着运行游戏测试一下,我们可以看到,现在障碍会不停的生成了
六、回收爆炸效果
也许有些细心的朋友已经发现了,我们在游戏中发生的爆炸效果,都会创建一个GameObject,随着玩家击碎障碍越多,爆炸效果的GameObject就会越多
越来越多的爆炸效果对象
这些效果越多,就会让游戏的负担越大,所以我们也需要及时的进行清理,那么怎么来清理呢?我们无法像清理子弹一样,如果子弹飞出屏幕就将他清楚,因为爆炸效果是不会移动的,既然这样,我们就只能通过时间来控制了,我们让每个爆炸效果存在一定时间后就会自动清楚,就像给它绑上了一个定时炸弹一样,时间一到就会爆炸,将其清楚掉,首先我们在Assets->Scripts文件夹下面新建一个名为DestroyByTime的脚本,然后输入以下代码:
完整的代码
首先我们定义一个公共变量lifeTime,来设置GameObject的存活时间,时间一到就会被销毁
然后我们在Start方法中,调用Destroy方法来消除GameObject,第二个参数就是我们的lifeTime
写完代码,保存一下,然后回到Unity编辑器,找到我们的爆炸效果的Prefab,然后添加DestroyByTime脚本
添加DestroyByTime脚本
脚本添加完成后,我们再将lifeTime的值设置为2,运行游戏测试一下,这次我们发现所有的爆炸效果,再生成2秒后就会自己消除了
下集预告
在下一集中,我们将会学到:
如何给游戏添加背景音乐
如何给游戏添加各种音效
如何给飞船击碎障碍后进行计分
如何判断游戏结束
如何重新开始游戏
如何发布游戏
三 : ReportViewer实例教程
本示例操作 主要实现
a. ReportViewer关联Report1.rdlc的简单呈现
b. 对带有报表参数的Report1.rdlc的呈现
c. 利用程式生成的DataSet 填充报表
d. 调用存储过程 生成DataSet 填充报表
==========
简单的呈现
==========
1. 打开VS2005,文件->新建->网站 选择语言种类(C#)
2. 在该解决方案下 设计其已经生成的Default.aspx
3. 将工具箱-数据下的ReportViewer 拉入Default.aspx的设计界面
4. 在用鼠标选中ReportViewer1时 可以看到其右上角的 小三角 图标
5. 用鼠标点击该小三角 将展开 ReportViewer任务 快捷菜单
6. 由于本项目 目前还没有做好的报表 所以 选择 设计新报表
7. 点击 设计新报表 后 将呈现报表Report1.rdlc的设计界面
8. 由于本项目 目前还没有做好的网站数据源
所以 此时要添加新数据源
(如果没有呈现“网站数据源”界面,可以点击报表设计界面,
此时上方菜单中多出现“数据”,“报表”等选项
可以在“数据”菜单下,选择“显示数据源”)
9. 点击“添加新数据源” 会出现“TableAdapter 配置向导”
10. 选择数据连接(如连接到本机的Northwind数据库),下一步
11. 选择是否要将连接字符串保存到应用程序配置文件中,下一步
12. 选择命令类型,此时 可以 点击 取消 按钮,退出向导
13. 全部保存
14. 选择 视图 菜单 下 “服务器资源管理器”, 可以看到刚才所建立的数据连接, 可以看到Northwind数据库下的表,视图,存储过程,函数
15. 在解决方案的树下 找到并打开App_Code文件夹下的DataSet1.xsd数据集
16. 可以看到 打开的数据集设计器 是空的,此时可以将“服务器资源管理器”下的Northwind的表或存储过程等拉入数据集设计器(如此时 拉入了Orders表 和 Sales by Year这个存储过程)
17. 全部保存
18. 双击Report1.rdlc,打开报表设计界面 将此时的报表设计工具箱中的【报表项】的 【表】拉入报表设计界面
19. 选择 “数据”菜单下的“显示数据源”,
可以在网站数据源下 看到 DataSet1 下的 两个 表 orders 和 Sales by Year
20. 此时选择Orders下的任意字段 (如OrderID 和 CustomerID)
拉到Report1.rdlc设计界面的表的“详细资料”处 用于报表显示
21. 全部保存
22. 回到Default.aspx的设计界面,为ReportViewer1 绑定报表
选择ReportViewer1显示刚才设计好的Report1.rdlc
23. 全部保存,按F5或Ctrl F5 运行,以查看初步效果
======================================
接下来要为Report1.rdlc添加一个报表参数
======================================
24. 回到报表Report1.rdlc的设计界面
点击 报表 菜单 下的“报表参数”
25. 在报表参数在设置框中 添加一个报表参数 进行相关设置 并 确定以保存
(如其参数名称为rptParaA,类型为String)
26. 拉入一个文本框的报表项到Report1.rdlc的设计界面 以做为该报表的标题显示
27. 选中并右键单击该文本框,在弹出的菜单中选择“表达式”,
进入“编辑表达式”的对话框
28. 在“编辑表达式”的对话框中,选择 参数,
并双击刚才设置的rptParaA,使文本框的值=Parameters!rptParaA.Value
29. 保存对Report1.rdlc的修改
30. 因为新的Report1.rdlc报表的文本框需要有报表参数值的传入
所以要在ReportViewer1 对Report1.rdlc的呈现时
对Default.aspx.cs的编辑
31. 在Default.aspx.cs加入引用
using Microsoft.Reporting.WebForms;
在Page_Load中加入如下代码
ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");
ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });
32.保存并运行 以查看效果
=========================================
接下来,需要对所要呈现的报表资料 进行定制
也就是通过设计DataSet
用符合需要的数据对报表进行资料绑定和呈现
=========================================
33.设置ReportViewer1的Visible为false
34.在Default.aspx的设计界面 加入一个按钮Button1
将通过此按钮的Click事件 实现对数据库的访问 以及DataSet的数据填充
和对ReportViewer1的资料绑定
35. Default.aspx.cs加入引用
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
Button1_Click中的代码示例如下
SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");
SqlDataAdapter myda = new SqlDataAdapter("select top 5 * from orders", myConn);
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
扩展:reportviewer 教程 / reportviewer视频教程 / c reportviewer 教程
ReportViewer1.Visible = true;
ReportParameter rptParaA = new ReportParameter("rptParaA", "测试报表参数");
ReportViewer1.LocalReport.SetParameters(new ReportParameter[] { rptParaA });
ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
注意ReportDataSource rds = new ReportDataSource("DataSet1_Orders", myds.Tables[0]);
的"DataSet1_Orders"是与前台html程序的
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" Height="400px" Visible="False" Width="400px">
<LocalReport ReportPath="Report1.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1_Orders" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
中的<DataSources>的Name="DataSet1_Orders"是一致的
可以通过对DataSet的填充时的sql语句等的定制 来得到所需要的数据 以便报表呈现
需要注意的是由于ReportViewer1此时的关联报表为Report1.rdlc,所以DataSet的Tables[0]中的结构
一定要包含Report1.rdlc所呈现的字段,所以,这里的Sql语句为select top 5 * from orders
36.保存 运行 点击Button1 以便 报表呈现
===============================================
如果 报表所要呈现的数据 来源于存储过程
那么 在装载DataSet时 使其数据来源于存储过程即可
===============================================
37.右击项目 添加新项 ,选择 报表,向项目中加入Report2.rdlc,
设置其呈现的数据来源为存储过程 Sales by Year
同样的在Report2.rdlc的设计界面 加入“表”报表项
并将网站数据源下的DataSet1下的Sales by Year表中的字段
拉入报表项“表”在详细数据中 进行显示
38.如同Default.aspx 向项目中添加新的页面Default2.aspx
向Default2.aspx加入一个Button 和 ReportViewer1
并设置ReportViewer1所要呈现的报表为Report2.rdlc
设置ReportViewer1的Visible为false
双击Button 进行其Click事件的编写
设置Default2.aspx为项目的起始页
39.在Default2.aspx.cs加入引用
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
40.Button1_Click的事件代码示例如下
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=Northwind;User ID=sa;Password=sa");
SqlDataAdapter myda = new SqlDataAdapter("Sales by Year", myConn);
myda.SelectCommand.Parameters.AddWithValue("@Beginning_Date", "1997-10-10");
myda.SelectCommand.Parameters.AddWithValue("@Ending_Date", "2000-10-10");
myda.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet myds = new DataSet();
myConn.Open();
myda.Fill(myds);
myConn.Close();
ReportViewer1.Visible = true;
ReportDataSource rds = new ReportDataSource("DataSet1_Sales_by_Year", myds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
扩展:reportviewer 教程 / reportviewer视频教程 / c reportviewer 教程
ReportViewer1.LocalReport.Refresh();
}
41.保存 运行 点击按钮 报表效果查看
扩展:reportviewer 教程 / reportviewer视频教程 / c reportviewer 教程
四 : 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 目 录
第1章《进销存管理系统》编制 ................................................................................................. 3
1.1 主流程事件及数据库 .......................................................................................................... 3
1.1.1 主流程事件.................................................................................................................................... 3
1.1.2 系统封面........................................................................................................................................ 3
1.1.3 用户登录对话框............................................................................................................................ 3
1.1.4 主控窗体........................................................................................................................................ 4
1.1.5数据库设计..................................................................................................................................... 4
1.2 主控窗体 .............................................................................................................................. 5
1.2.1主控窗体布局................................................................................................................................. 5
1.2.2 主菜单规划.................................................................................................................................... 6
1.2.3快捷操作工具盒............................................................................................................................. 6
1.3“系统功能”设计 ................................................................................................................ 7
1.3.1“重新登录” ...................................................................................................................................... 7
1.3.2“修改个人密码” .............................................................................................................................. 7
1.3.3“用户权限编辑” .............................................................................................................................. 7
1.3.4“系统初始化” .................................................................................................................................. 8
1.3.5“数据备份” ...................................................................................................................................... 9
1.3.6“数据恢复”.................................................................................................................................. 10
1.3.7“关闭退出”................................................................................................................................ 10
1.4“销售管理”设计 ............................................................................................................... 11
1.4.1“销售开票”................................................................................................................................. 11
1.4.2“销售修改”................................................................................................................................ 18
1.4.3“销售查询”................................................................................................................................ 19
1.4.4“销售日报”................................................................................................................................ 21
1.4.5“销售月报”................................................................................................................................ 24
1.5“库存管理”设计 .............................................................................................................. 27
1.5.1“入库登记”................................................................................................................................ 27
1.5.2“库存修改” .................................................................................................................................... 29
1.5.3“库存查询”................................................................................................................................ 32
1.5.4“库存余量统计”........................................................................................................................ 34
1.5.5“库存月报”................................................................................................................................ 37
1.5.6“生成库存”................................................................................................................................ 39
1.6“信息编辑”设计 .............................................................................................................. 43
1.6.1“录入客户信息”........................................................................................................................ 43
1.6.2“查询客户信息”........................................................................................................................ 44
1.6.3“打印客户信息表”.................................................................................................................... 45
1.7“帮助”设计 ...................................................................................................................... 47
1.7.1“关于…” ........................................................................................................................................ 47
1.7.2“显示导航图”............................................................................................................................ 47
1.8 编后的话 ............................................................................................................................ 48
第2章《工资人事管理系统》编制............................................................................................ 49
2.1 主流程事件及数据库 ........................................................................................................ 49
2.1.1 主流程事件.................................................................................................................................. 49
2.1.2 系统封面...................................................................................................................................... 49
2.1.3 用户登录对话框.......................................................................................................................... 49
21.4 主控窗体....................................................................................................................................... 50
2.1.5数据库设计................................................................................................................................... 50
2.2 主控窗体 ............................................................................................................................ 52
2.2.1主控窗体布局............................................................................................................................... 52
2.2.2 主菜单规划.................................................................................................................................. 53
2.2.3快捷操作工具盒........................................................................................................................... 53
1
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2.3“系统功能”设计 .............................................................................................................. 53
2.3.1“重新登录” .................................................................................................................................... 54
2.3.2“修改个人密码” ............................................................................................................................ 54
2.3.3“用户权限编辑” ............................................................................................................................ 54
2.3.4“系统初始化” ................................................................................................................................ 55
2.3.5“数据备份” .................................................................................................................................... 57
2.3.6“数据恢复”.................................................................................................................................. 57
2.3.7“关闭退出”................................................................................................................................ 58
2.4“考勤管理”设计 ................................................................................................................ 58
2.4.1“出勤记录编辑” ............................................................................................................................ 58
2.4.2“加班记录编辑” ............................................................................................................................ 62
2.4.3“出差记录编辑” ............................................................................................................................ 65
2.4.4“请假记录编辑” ............................................................................................................................ 69
2.4.5“综合查询及修改” ........................................................................................................................ 72
2.5“工资管理”设计 ................................................................................................................ 76
2.5.1“月度考勤统计” ............................................................................................................................ 76
2.5.2“员工工资计算” ............................................................................................................................ 80
2.5.3“打印工资表” ................................................................................................................................ 85
2.6“人事管理”设计 .............................................................................................................. 87
2.6.1“增加新员工” ................................................................................................................................ 87
2.6.2“人事信息查询修改” .................................................................................................................... 90
2.7“信息编辑”设计 .............................................................................................................. 94
2.7.1“部门信息表编辑” ........................................................................................................................ 94
2.7.2“职务代码表编辑” ........................................................................................................................ 94
2.7.3“受教育程度代码表编辑” ............................................................................................................ 95
2.7.4“上下班时间设置” ........................................................................................................................ 96
2.8“帮助”设计 ...................................................................................................................... 97
2.8.1“关于…” ........................................................................................................................................ 97
2.8.2“显示导航图”............................................................................................................................ 98
1.8 编后的话 ............................................................................................................................ 98
2
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 第1章《进销存管理系统》编制
《进销存管理系统》开发,是较为常见的典型案例。(www.61k.com]对于大多数用户而言,只要懂得自己管理的业务,都可以自主地开发应用软件。用户通过本例的学习,将大大提高编程技巧方面的常识,并极其有助于提高自主编程的能力。
1.1 主流程事件及数据库
用户项目要执行的第一个流程事件,称为主流程。在一个用户项目中,只有一个“主流程”。
1.1.1 主流程事件
对于一般项目而言,主流程通常应设计为如图1.1.1-1所示的结构。
图1.1.1-1主流程结构
主流程事件中的“系统封面、用户登录对话框、系统主控窗体”,通常在“窗体和函数模板”选择页中选用现成的模板,而无需自己设计。
1.1.2 系统封面
“系统封面”是使用“窗体”模块作设计的,用来作为装饰性的显示项目信息的画面。
通常而言,“系统封面”是在“模板选择”中选用的,不必要用户自己费力设计。
在“系统封面”窗体中,用户可以对既有的原型设计作一些修改后直接使用。修改方法如下:
(1)双击“系统封面”窗体模块,打开窗体设计器。
(2)在窗体中选中标签控件,将标题更改为需要的文本。
(3)如果底图不满意,可以重选一张喜欢的“封面底图”即可,如图1.1.2-1所示。
图1.1.2-1“系统封面”模板
使用模板创建的“系统封面”中的其他事件一般无需修改。运行期时,封面窗体将在被单击,或打开2秒后关闭,并执行主流程事件中下一个“用户登录对话框”模块。
1.1.3 用户登录对话框
“用户登录对话框”是使用“检测执行”模块作设计的,用来限制不相干人员非法进入用户项目。 通常而言,“用户登录对话框”是在“模板选择”中选用的,不必要用户自己费力设计。
在“用户登录对话框”窗体中,用户可以对既有的原型设计作一些修改后直接使用。
(1)如果允许所有用户登录该系统,可以不做修改而直接使用该模板即可。
(2)如果允许登录的用户有所限制,可以将“检测执行”模块中的表达式作修改,如表达式编辑为:
3
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 登录对话框(’1 ,2 ,3’)
此表达式的含义为,只允许“权限号”为1、2、3的用户登录到系统。[www.61k.com]
值得提示的是,当用户没有设计“用户权限编辑器”功能时,可以在事件编辑器中按“浏览”按键,在打开的数据浏览编辑器中按按键后对用户权限做编辑修改。
1.1.4 主控窗体
对于高级用户而言,“主控窗体”通常是使用“主窗体”单元模块作设计的。对初级用户而言,也可以使用“常规窗体”单元模块作系统的“主控窗体”,因为它更便于设计时的实时试运行。熟练使用《多尔880 》后,用户还是应使用“主窗体”单元模块作用户系统的“主控窗体”。
1.1.5数据库设计
《进销存管理系统》的开发核心是创建数据库。对于不同的应用需求,其数据库中数据表的多少以及各个表的结构有所不同。本例介绍的是针对一般进销存管理需求应创建的数据表。
1、销售主表:
该数据表用来记载销售业务的主信息。
该数据表使用在“销售开票、销售修改”功能中。
2、销售明细表
该数据表用来记载销售业务的明细信息。
该数据表使用在“销售开票、销售修改”功能中。
3、库存明细表
该数据表用来记载产品库存的明细信息。
4
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 该数据表使用在“入库登记、入库修改、库存余量统计”功能中。[www.61k.com)
4、客户信息表
该数据表用来记载往来客户信息。
该数据表使用在“销售开票、信息编辑”功能中。
5、销售和库存明细汇总后合并
该数据表用来记载“销售明细表”和“库存明细表”的汇总后的合并数据信息。
该数据表只使用在“库存余量统计”功能中。
6、销售和库存合并后总汇总
该数据表用来记载“销售明细表”和“库存明细表”的汇总统计后的数据信息。
该数据表使用在“库存余量统计”功能中。
1.2 主控窗体
用户系统的“主控窗体”,是用户项目的“功能管理中心”,也是进入各个应用功能的操作入口。
1.2.1主控窗体布局
主控窗体是用户项目的“功能管理中心”
,因而通常只应放置两种控件“下拉式菜单”和“快捷操作工具
5
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 盒”。[www.61k.com)
主控窗体的窗口区域除了可放置“导航图”外,不应被其他显示控件占用。
用户系统的“主控窗体”结构,如图1.2.1.-1所示。
图1.2.1.-1 “主控窗体”外观
1.2.2 主菜单规划
主菜单是指放置在窗体顶端的“下拉式菜单”。一般包括五大部分:“系统功能、应用功能、信息编辑、窗口、帮助”共五个主菜单项。
本例叙述的“主菜单”规划,可在窗体设计器的“模板选择页”中选用,由用户根据需要增减或重新编辑即可。
1、“系统功能”菜单项
“系统功能”主菜单项,通常应放置在顶行主菜单项的第一列。其中的下拉菜单项主要应包括“重新登录、修改个人密码、用户权限编辑、系统备份、系统恢复、关闭退出”。
2、“应用功能”菜单项
“应用功能”主菜单项,通常应占据顶行主菜单项中间的多个列。如本例设置为“销售管理、库存管理”等主菜单项。
各个“应用功能”主菜单项中的下拉菜单项规划,可按项目的实际需要建立即可。
3、“信息编辑”菜单项
“信息编辑”主菜单项,通常应放置在顶行主菜单项的“应用功能”项之后。其中的下拉菜单项主要应为各种“辅助信息、词典值”等应用功能中需要的辅助信息编辑。
4、“帮助”菜单项
“帮助”主菜单项,通常应放置在顶行主菜单项的最后一列。其中的下拉菜单项主要应包括“版本信息”等帮助类辅助功能。
1.2.3快捷操作工具盒
“快捷操作工具盒”,是指放置在窗体“主菜单”下方的一排按钮。其主要作用是使一些要频繁使用的功能可被快速操作。
“快捷操作工具盒”由三个控件组成:一是“工具盒容器”控件,用来作为放置“工具盒”控件的容器;二是“工具盒”控件,用来放置“按钮”控件等。
通常“工具盒”上按钮的执行功能并不是独立设计的,而是通过“事件引用”模块连接到主菜单上的某个要频繁操作的菜单项“单击事件”。
本例叙述的“快捷操作工具盒”控件组,可在“模板选择页”中选用,由用户根据需要增减并连接“引用事件”。
6
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 1.3“系统功能”设计
系统功能菜单项中包括“重新登录、修改个人密码、用户权限编辑、系统初始化、数据备份、数据恢复、关闭退出”共7个功能项。[www.61k.com]
1.3.1“重新登录”
“重新登录”功能是指,当一个操作员下班或换岗为另一个操作员时,不是直接退出管理系统,而是使用该功能直接重新登录即可。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“重新登录”项,双击打开事件编辑器。
(2)在右侧的“模板选择页”中选择“用户登录对话框”模板放置到设计区。
(3)连接该模块流程线到“开始图标”。如图1.3.1-1所示。
图1.3.1-1“重新登录”事件流程
2、模块功能定义
(1)如果允许所有用户使用重新登录功能,可以不做修改而直接使用该模板即可。
(2)如果允许登录的用户有所限制,可以将“检测执行”模块中的表达式作修改,如表达式编辑为: 登录对话框(’1 ,2 ,3’)
此表达式的含义为,只允许“权限号”为1、2、3的用户使用重新登录功能。
1.3.2“修改个人密码”
“修改个人密码”功能是指,当一个操作员要自行改变自己的密码时的功能,而无需依赖系统管理员完成。 1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“修改个人密码”项,双击打开事件编辑器。
(2)在右侧的“模板选择页”中选择“修改个人密码”模块放置到设计区。
(3)连接模块流程线到“开始图标”,如图1.3.1-1所示。
图1.3.1-1“修改个人密码”事件流程
2、模块功能定义
如果没有特定需要,“修改个人密码”模板无需打开重新设置。
1.3.3“用户权限编辑”
“用户权限编辑”是系统管理员使用的专有功能。使用该功能可以指定操作员“权限号、姓名、密码”等设置。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“用户权限编辑”项,双击打开事件编辑器开。
(2)在右侧的“模板选择页”中,选择“口令检查对话框、用户权限编辑器”两个模板放置到设计区。
(3)连接两个模块的流程线到“开始图标”。如图1.3.3-1所示。
7
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.3.3-1“用户权限编辑”事件流程
2、模块功能定义
1)口令检查对话框
该模块是用来限制“用户权限编辑器”的使用者必须是知道密码的最高级管理员。[www.61k.com]
(1)双击“口令检查对话框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
口令对话框(’880’)
此表达式中的“880”,是该口令对话框的通过密码。
2)用户权限编辑器
该模块是用来打开“用户权限编辑器”的编辑窗体。系统运行时,“用户权限编辑器”的外观,如图1.3.3-2所示
图1.3.3-2“用户权限编辑器”的外观显示
(1)双击“用户权限编辑器”模块,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
权限编辑器(’用户权限编辑器’)
此表达式中的“用户权限编辑器”文本,是编辑器打开后的窗口显示标题。
1.3.4“系统初始化”
用户系统在开发期间,会使用测试数据来检测系统的运行状态和结果。系统在正式运行前,要删除这些无用数据,使其达到“洁净状态”。“系统初始化”功能,就是为此而设置的功能。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“系统初始化”项,双击打开事件编辑器。
(2)在右侧的“模板选择页”中选择“口令检查对话框、高级提示框”两个模板放置到设计区。
(3)在右侧的“功能选择页”中选择两个“删除记录”模块放置到设计区。
(4)连接四个模块的流程线到“开始图标”,如图1.3.4-1所示。
8
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.3.4-1“系统初始化”事件流程
2、模块功能定义
1)口令检查对话框
该模块是用来限制“系统初始化”的使用者必须是知道密码的最高级管理员。[www.61k.com]
(1)双击“口令检查对话框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
口令对话框(’880’)
此表达式中的“880”,是该口令对话框的通过密码。
2)询问是否初始化
该模块是用来打开提示框,提醒操作者再次确认要做“系统初始化”,以防意外操作。
(1)双击“提示对话框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
提示对话框(’提示:’,’初始化将删除全部记录,确定要初始化吗?’,1,3,1)
3)删除-销售主表
该模块是用来将“销售主表”中的数据作全部删除操作。
(1)双击“删除销售主表”模块,打开“删除记录”编辑器。
(2)在设计器中选择删除操作表为“销售主表”。
(3)在删除条件设置页中,将“重排自动编号字段”项设置为“选中”。
4)删除-销售明细表
该模块是用来将“销售明细表”中的数据作全部删除操作。
(1)双击“删除销售明细表”模块,打开“删除记录”编辑器。
(2)在设计器中选择删除操作表为“销售明细表”。
(3)在删除条件设置页中,将“重排自动编号字段”项设置为“选中”。
5)初始化完成
该模块是用来提示已经完成“系统初始化”操作。
(1)双击“提示框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
提示框(’初始化完成’)
1.3.5“数据备份”
用户系统在使用时要经常对数据库做备份,以防止数据的意外丢失。“数据备份”是使用事件流程中的“导出数据”模块实现的。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“数据备份”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“导出数据”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.3.5-1所示。
9
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 图1.3.5-1“数据备份”的事件流程
2、模块功能定义
导出数据:
(1)双击打开“导出数据”模块编辑器。(www.61k.com]
(2)指定要导出的数据表。
(3)在导出文件路径编辑框中,编辑文件的保存路径及文件名。如表达式编辑为:
’C:\数据备份’
此表达式的两边,一定要使用单引号括起,文件后缀名可不必编辑。
1.3.6“数据恢复”
当数据意外丢失时,通过将备份的数据导入可予以补救。“数据恢复”是使用事件流程中的“导入数据”模块实现的。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“数据恢复”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“导入数据”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.3.6-1所示。
图1.3.6-1“数据恢复”的事件流程
2、模块功能定义
导入数据:
(1)双击打开“导入数据”模块编辑器。
(2)在导入文件路径编辑框中,编辑文件的导入路径及文件名。如表达式编辑为:
’C:\数据备份’
此表达式的两边,一定要使用单引号括起,文件后缀名可不必编辑。
(3)指定导入源表与导入目标数据表的一一对应关系。
值得提示的是,导入数据操作前,导入文件必须事先存在。本例中的导出文件必须被执行后导入文件才存在,这一点要注意。
1.3.7“关闭退出”
关闭退出就是将主控窗体作关闭操作。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“关闭退出”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“行为调用”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.3.7-1所示。
图1.3.7-1“关闭退出”事件流程
2、模块功能定义
(1)双击打开“行为调用”模块编辑器。
(2)指定“窗体”为调用对象。
(3)选择该窗体的“关闭窗体”行为。
10
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 1.4“销售管理”设计
销售管理菜单项中包括“销售开票、销售退货、销售查询、销售日报、销售月报”共5个功能项。(www.61k.com]
1.4.1“销售开票”
“销售开票”窗体,是用来实现出货开票业务的功能窗体。在销售管理系统中,“销售开票”是常用的交互窗体。本例的学习重点是:使用代码词典辅助录入编辑的基本方法和原理。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“销售开票”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.4.1-1所示。
图1.4.1-1“销售开票”事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建4个数据源,如图1.4.1-2所示。
图1.4.1-2“销售开票”的窗体数据源
(1)“销售主表”数据源
该数据源是用来记录“销售开票”中的主表信息。可以理解为记载“谁买了东西”。
(1)选择“销售主表”创建为“常规型”数据源。
(2)载入全部字段。
(3)载入条件表达式为:
@销售主表.审核@=False
此表达式的含义为,数据源打开时只能看到最新增加的记录。
(2)“销售明细表”数据源
该数据源是用来记录“销售开票”中的子表信息。可以理解为记载“买了什么东西”。
(1)选择“销售明细表”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
(4)将该数据源与“销售主表”数据源作连接,其连接字段为“票号、日期、单位名称”
。并且“参照完
11
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 整性、级联更新、级联删除”选项设置为“选中”。[www.61k.com)
(3)“货号品名单价表” 数据源
该数据源是用来获得各种商品的“单价”信息,用来对“销售明细表”中的单价字段赋值。
(1)选择“库存明细表”创建为“常规型”数据源。
(2)载入字段为“货号、品名规格、销售价”。
(3)载入条件为无。
(4)将该数据源与“销售明细表”数据源作连接,其连接字段为“品名规格”。值得提示的是该连接一定要是“定位连接”,此种连接的连接线颜色为“灰色”。
连接后的“销售明细汇总表”数据源,将总是跟随“销售明细表”中“品名规格”的改变而自动计算出当前商品的“已售出数量”汇总值。
(4)“客户信息表”数据源
该数据源是用来作为向“销售主表”中的“单位名称”赋值的词典数据源。如果销售业务不是主要为“固定客户”,该数据源可以不建立。
(1)选择“客户信息表”创建为“常规型”数据源。
(2)只载入“自动编号、客户名称”2个字段。
(3)在载入条件页中,将“去除重复记录”项设置为选中。
此设置的作用是,可以将“客户信息表”中所有“客户名称”不重复地取出。
2)“智能公式”编辑 “销售开票”窗体中的所有“智能公式”及“计算顺序”
:
值得特别提示的是,智能公式的“计算顺序”是极为重要的,如果执行顺序不正确,将导致计算错误和根
本不计算。
(1)“销售主表”中的公式
票号-> ~赋自动编号(|数据源0.销售主表.票号|,’0’,1)
该公式用来自动产生全局销售“票号”。
日期-> ~取日期()
该公式用来自动将入库“日期”默认写为当天日期。
付款金额-> ~0
该公式用来指定默认付款金额为0。
应付总额-> ~~求合计值(|数据源1.销售明细表.金额|)
该公式用来实时计算应付总额的合计值。
欠款金额->~~|数据源0.销售主表.付款金额|-|数据源0.销售主表.应付总额|
该公式用来实时计算“付款金额-.应付总额”的“库存余量”。
经手人->~取操作员名()
该公式用来自动将“经手人”字段赋值为当前操作员姓名。
备注->~~数值转币值大写(|数据源0.销售主表.应付总额|)
12
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 该公式用来自动将“备注”字段赋值为“应付总额”的大写字符。(www.61k.com)
审核->~1
该公式用来自动将“审核”字段赋值为“是”,以使得窗体关闭后再打开时,看不到先前录入的记录。注意:1代表“是”,0代表“否”。
(2)“销售明细表”中的公式
货号-> ~~|数据源2.库存明细表. 货号|
该公式用来实时将动态关联的“数据源2.库存明细表.品名规格”写入到当前字段。
数量->~1
该公式用来指定默认数量为1。
单价-> ~~|数据源2.库存明细表.销售价|
该公式用来实时将动态关联的“数据源2.库存明细表.销售价”写入到当前字段。
金额->~~|据源1.销售明细表.数量|*|数据源1.销售明细表.单价|
该公式用来实时计算“数量*.单价”的“金额”。
3)界面设计
“销售开票”窗体的界面外观,如图1.4.1-3所示。
图1.4.1-3 “销售开票”窗体界面
(1)“销售主表”卡片框
该卡片用来编辑销售主表信息。
(1)在窗体空白处单击鼠标右键,选择“卡片框-设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“销售主表”数据源。
(3)在“选择字段”列表中,将卡片中需要的字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成“卡片框”。
“编辑框”属性设置
(1)保持按注Shift键,逐个单击卡片框中的“票号、日期、经手人、应付总额、欠款金额”控件。
(2)在属性设置页中,将这些控件的“可用”属性设置为“未选中”。
“卡片框”中的“票号、日期、经手人、应付总额、欠款金额”控件是不需要作编辑操作的,因而要将这些控件的“可用”属性设置为“未选中”,以避免无谓的焦点跳入和非法编辑。
13
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (2)“销售明细表”表单框
该表单用来编辑销售明细表信息。[www.61k.com)
(1)在窗体空白处单击鼠标右键,选择“表单框-设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“销售明细表”数据源。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成“表单框”。
“表单列”属性设置
(1)在表单框中分别单击表头中的“单价、金额”项。
(2)在属性设置页中,将其“可用”属性设置为“未选中”。
“表单框”中的“单价、金额”列是不需要编辑的,因而将其“可用”属性应设置为“未选中”,以避免无谓的焦点跳入和非法编辑。
(3)纸张样式界面的设计方法
(1)将窗体设计器环境设置中的“传统风格界面”设置为“未选中”。
(2)生成“卡片框”。
(3)生成“表单框”。
(4)拉长“卡片框”,形成纸张样式。
(5)将“表单框”拖放到“卡片框”新增加的下部空白区域。
如果卡片上需要“单选钮、选择框”等控件时,可将其先在窗体空白处创建设置,然后拖放到“卡片框”区域放置即可。
4)词典取值功能
(1)单位名称附加的“代码词典”定义
该控件用来向“单位名称”编辑框输入客户名称信息,以方便其录入编辑。
词典功能的设置方法如下:
(1)在“控件选择”页中选择“代码词典”控件单击,在窗体适当位置放置,“代码词典”创建完成。
(2)在“代码词典”控件上单击鼠标右键,选择“词典值来源”项,打开设置向导。
(3)设置“词典值来源”为“客户信息表”,选择“自动编号、客户名称”为词典选择框字段,完成后按“确定键”结束设置。
(4)在“代码词典”控件上单击鼠标右键,选择“词典值接收”项,打开设置向导。
(5)设置“词典值接收”为“销售主表”的“单位名称”字段,完成后按“确定键”结束设置。
(6)在“卡片框”中单击选中“单位名称”编辑框,使其获得焦点。
(7)在属性表中的“附加功能键”属性中,选中“附加按钮”选项。
该设置是为了连接“代码词典”功能。
使用代码词典的好处,一是支持大数据量的代码取值;二是手工编辑或代码编辑任意;三是支持代码定位的快速编辑。
(2)品名规格附加的“代码词典”定义
该控件用来向“货号”表单列输入货号信息,以方便其录入编辑。
词典功能的设置方法如下:
(1)在“控件选择”页中选择“代码词典”控件单击,在窗体适当位置放置,“代码词典”创建完成。
(2)在“代码词典”控件上单击鼠标右键,选择“词典值来源”项,打开设置向导。
(3)设置“词典值来源”为“品名货号单价表”,选择“货号、品名规格”为词典选择框字段,完成后按“确定键”结束设置。
(4)在“代码词典”控件上单击鼠标右键,选择“词典值接收”项,打开设置向导。
(5)设置“词典值接收”为“销售明细表”的“品名规格”字段,完成后按“确定键”结束设置。
(6)在“表单框”中单击选中“品名规格”表头栏,使其获得焦点。
(7)在属性表中的“附加功能键”属性中,选中“附加按钮”选项。
该设置是为了连接“代码词典”功能。
(8)在“点按附加键”事件中,放置“调用行为”模块,并选中“打开代码词典”行为。
使用代码词典的好处,一是支持大数据量的代码取值;二是手工编辑或代码编辑任意;三是支持代码定位的快速编辑。
14
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 5)“票据打印”功能设计
“票据打印”功能设计,包括“票据格式设计、报表属性设置”2部分。(www.61k.com)
(1)票据格式设计
票据格式设计操作分为3步:“生成票据卡片、生成明细列表、修改标题”。
生成“票据卡片”
票据格式设计的第一步操作是生成“票据卡片”。
(1)在窗体上放置“报表”控件,双击该控件打开报表编辑器。
(2)在“新建报表向导”中选择“票据卡片式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-销售主表”。
(4)在“选择字段”列表中,将卡片中需要的字段选择到“选中字段”列表中。
(5)按“完成”按钮,生成“票据卡片”。
生成“明细列表”
票据格式设计的第二步操作是生成“明细列表”。
生成“票据卡片”时由于选中了“附加子表”设置,因而在“报表编辑器”的下方可看到自动创建的“子报表设计页”,如图1.4.1-4所示。
图1.4.1-4自动创建的“子报表设计页”
(1)在“报表编辑器”中单击图1.4.1-5所示的“子表”标签,将报表设计页切换到“子报表”中。
(2)在“报表编辑器”的快捷工具栏中单击 打开“新建报表向导”选择框。
(3)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(4)在“选择数据源”列表中,单击选择“数据源0-销售主表”。
(5)在“选择字段”列表中,将子表中需要的字段选择到“选中字段”列表中。
(6)按“完成”按钮,生成“明细列表”。
格式属性设置
使用报表向导自动生成的报表格式时,部分格式属性要作相应的修改。
(1)在主表设计页将“卡片标题、编制单位、报表编号”修改为需要的标题。
(2)在主表设计页“细节栏”空白处单击鼠标右键,选中属性表中的“栏高度及打印设置”选项打开对话框,如图1.4.1-5所示。
图1.4.1-5 “栏高度及打印设置”对话框
(3)如果每张报表页只允许打印一条销售记录,可将“每页打印记录数”设置项更改为1。
(4)如果每份销售票据要一次打印3个副本,可将“每条记录打印次数”设置项更改为3,即打印为“一式三联”。
(2)“报表控件”属性设置
销售录入时,销售票据通常都是“一对一”打印,即“看到哪一票打印哪一票”。因而要作如下设置。
(1)在窗体中单击选中报表控件。
(2)将该控件的“仅打印当前记录”属性设置为“选中”。
如果不选中该属性,报表将把当前数据源中的所有记录全部打印出来。
6)“事件功能”设计
“销售开票”窗体中的全部事件列表如下:
15
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (1)编辑框2:点按附加键-打开代码词典
该事件定义用来打开卡片框中“单位名称”编辑框定义的“附加按钮”功能,以此来打开“代码词典”。(www.61k.com) 事件流程:
(1)在“卡片框”中单击选中“单位名称”编辑框,使其获得焦点。
(2)在事件定义页中双击“点按附加键”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“行为调用”模块放置到设计区。
(4)连接该模块的流程线到“开始图标”。如图1.4.1-6所示。
图1.4.1-6“附加键按下”的事件流程
模块定义-调用行为:打开代码词典框
该模块用来打开“代码词典”。
(1)在“打开代码词典”模块上双击,打开“行为调用”编辑器
(2)选中“代码词典”控件为操作对象。
(3)选择该控件对象的“打开词典框”行为。
(2)表单列1:点按附加键-打开代码词典
该事件定义用来打开表单框“货号”列中定义的“附加按钮”功能,以此来打开“代码词典”。 事件流程:
(1)在“表单框上单击选中“品名规格”表头列,使其获得焦点(出现黑条表明选中)。
(2)在事件定义页中双击“点按附加键”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“行为调用”模块放置到设计区。
(4)连接该模块的流程线到“开始图标”。如图1.4.1-7所示。
图1.4.1-7“附加键按下”的事件流程
模块定义-调用行为:打开词典框
该模块用来打开“代码词典”。
(1)在“打开代码词典”模块上双击,打开“行为调用”编辑器
(2)选中“代码词典”控件为操作对象。
(3)选择该控件对象的“打开词典框”行为。
(3)按键3:单击-打印报表
该事件定义用来执行报表打印功能。
事件流程:
16
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (1)在“按键3”上单击选中,使其获得焦点。(www.61k.com]
(2)在事件定义页中的“单击”事件上,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“行为调用”模块放置到设计区。
(4)连接该模块的流程线到“开始图标”。如图1.4.1-9所示。
图1.4.1-9“打印报表”的事件流程
模块定义-打印报表:
该模块用来执行报表打印行为。
(1)在“打印报表”模块上双击,打开“行为调用”设计器。
(2)选中“报表”为操作对象。
(3)选择该对象的“报表打印”行为。
(4)代码词典框0:按确定键后-获得焦点
该事件用来实现“单位名称”被代码词典改变后,将“编辑焦点”改变到“表单框”的“品名规格”列上。
(1)在代码词典框上单击,使其获得焦点。
(2)在事件定义页中双击“按确定键后”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“行为调用”模块放置到设计区。
(4)连接这个模块的流程线到“开始图标”,如图1.4.1-10所示。
图1.4.1-10“单位名称”被代码词典改变后的事件流程
(5)选择该对象的“报表打印”行为。
(5)代码词典框1:按确定键后-执行计算公式
该事件用来实现“品名规格”被代码词典改变后实时将“编辑焦点”改变到“表单框”的“数量”列上。
(1)在代码词典框上单击,使其获得焦点。
(2)在事件定义页中双击“按确定键后”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择个“行为调用”模块放置到设计区。
(4)连接这个模块的流程线到“开始图标”,如图1.4.1-11所示。
图1.4.1-11“品名规格”被代码词典改变后的事件流程
3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。
编辑操作时,可以使用“卡片框、表单框”自带的快捷操作菜单作各种编辑操作。如图1.4.1-12所示
图1.4.1-12 “卡片框、表单框”的编辑菜单
17
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 1.4.2“销售修改”
“销售修改”窗体,是用来实现对“销售开票”作修改业务的功能窗体。[www.61k.com)该窗体由于其绝大部分功能设计都与“销售开票”窗体相同,因而应在全部设计完“销售开票”窗体后,将其复制到调用“销售修改”窗体的事件流程中,并对复制后的窗体中一些不适宜部分作相应修改即可。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“销售修改”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.4.2-1所示。
图1.4.2-1“销售开票”事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在数据源编辑器中,将“销售主表”数据源的载入条件修改为无。
值得提示的是,“销售主表”数据源被修改后,要重新将其与“销售明细表”数据源作连接设置。
2)界面设计
“销售修改”窗体的界面外观,如图1.4.2-2所示。
图1.4.2-2 “销售修改”窗体界面
(1)“选择票号查询”查询框
该查询框用来执行按票号查询功能,其设置方法如下:
(1)在“控件选择”页中选择“查询框”控件单击,在窗体适当位置放置。
(2)在“查询框”控件上单击鼠标右键,选择“关联到查询字段”项,打开设置向导,设置其查询字段为“销售主表”数据源的“票号”字段。
(3)在属性表中的“附加功能键”属性中,选中“下拉词典”选项。
(4)在属性表中双击“词典源字段”项,打开设置向导,设置其词典源字段为“销售主表”数据源的“票号”字段。
(5)在属性表中将“查询方式”项,设置为“定位”方式。
如果不设置该功能,将导致再次查询时无法使用词典取值功能。
18
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (1)修改“卡片框”属性
该设置的目的是关闭“卡片框”的新增记录操作功能。(www.61k.com]
(1)选中“卡片框”控件,使其获得焦点。
(2)在属性表中将“允许的操作”属性中的子属性仅保留“查询、删除”两项。
3)“事件功能”设计
“销售修改”窗体中的全部事件列表如下:
3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。
编辑操作时,可以使用“卡片框、表单框”自带的快捷操作菜单作各种编辑操作。如图1.4.2-4所示
图1.4.2-4 “卡片框、表单框”的编辑菜单
1.4.3“销售查询”
“销售查询”窗体,是用来实现对销售业务的细节作查询的功能窗体。“销售查询”可以是多种多样的,设计方法也不尽相同。对于“单笔查询”而言,可以使用复制的“销售录入”窗体,并屏蔽掉编辑功能即可。本节将介绍的是对销售记录的“综合查询”。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“销售查询”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.4.3-1所示。
图1.4.3-1“销售查询”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.4.3-2所示。
19
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.4.3-2“销售查询”的窗体数据源
“销售明细表”数据源
该数据源用来获得全部销售记录的明细。(www.61k.com)
(1)选择“销售明细表”创建“常规型”数据源。
(2)载入字段为全部。
(3)载入天为无。
2) 界面设计
“销售查询”窗体的界面外观,如图1.4.3-3所示。
图1.4.3-3“销售查询”窗体界面
“查询表单”
该表单用来显示“销售明细表”中的全部数据信息。
(1)在窗体空白处单击鼠标右键,选择“查询表单框设计向导”项。
(2)在“选择数据源”列表中,单击选择“-销售明细表”数据源。
(3)在“选择字段”列表中,将查询表单中需要的字段选择到“选中字段”列表中。
20
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 值得提示的是,选择“查询字段”后不要按“下一步”按钮,而直接按完成键。(www.61k.com]
(4)按“完成”按钮,生成“查询表单框”。
3) 报表设计
设计“明细查询报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-销售明细表”。
由于报表选择的数据源与窗体中的查询数据源相同,因而窗体中“查询表单框”的查询结果,可实时被打印出来。
(4)在“选择字段”列表中,将报表中需要的字段选择到“选中字段”列表中。
因为当前报表不需要分组,也无需对报表作特殊的“列表结构定义”,所以不必继续按“下一步”按钮而直接完成报表创建。
(5)按“完成”按钮,生成“明细查询报表”。
4)“事件功能”设计
“销售开票”窗体中的全部事件列表如下:
查询编辑框0:附加键前-取消过滤
该事件定义用来在点按附加键时取消过滤。如果不设置该功能,将导致再次查询时无法使用词典取值功能。 事件流程:
(1)在“查询编辑框”上单击选中该控件,使其获得焦点。
(2)在事件定义页中双击“附加键前”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“行为调用”模块放置到设计区。
(4)连接该模块的流程线到“开始图标”。如图1.4.3-4所示。
图1.4.3-4“附加键前”的事件流程
模块定义-销售主表.取消过滤:
该模块用来执行对“销售主表”数据源的“取消过滤”。
(1)在模块上双击,打开“行为调用”设计器
(2)选中“销售明细表”数据源为操作对象。
(3)选择该对象的“取消过滤”行为。
3、试运行
窗体运行时可以使用“查询表单框”自带的快捷操作菜单作各种查询操作。如图1.4.3-5所示的是“字段列和表单框”操作菜单。
图1.4.3-5 “字段列和表单框”操作菜单
1.4.4“销售日报”
“销售日报”窗体,是用来显示当日“销售状况报表”和“销售数据图表”的功能窗体。本例的学习重点是:掌握数据图表的实际应用方法。
21
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“销售日报”项,双击打开事件编辑器。[www.61k.com]
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.4.4-1所示。
图1.4.4-1“销售日报”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.4.4-2所示。
图1.4.4-2“销售日报”的窗体数据源
“销售明细表”数据源
该数据源用来获得经营当日的全部销售记录。
(1)选择“销售明细表”创建“简易汇总型”数据源,名称编辑为“销售明细表-汇总”。
(2)在“汇总字段”向导页中指定“数量、金额”为“求合计值”。
(3)在“分组字段”向导页中指定“货号、品名规格”为“分组字段”。
(4)“载入条件”表达式编辑为:
@销售明细表.日期@=DATE()
2)界面设计
“销售日报”窗体的界面外观,如图1.4.4-3所示。
22
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.4.4-3“销售日报”窗体界面
(1)“报表预览框”设计
该预览框用来在窗体上显示报表。(www.61k.com]
(1)在“控件选择”列表中,选择“报表、报表预览框”两个控件放置到窗体适当位置。
(2)调整“报表预览框”控件的大小和显示位置。
值得提示的是,如果后放置“报表预览框”控件,要在放置“报表”控件后,将“报表预览框”控件的“关联到报表”属性选择关联到后放置的“报表”控件。
(2)销量“长条图”设计
该图表用来显示各个销售品种的“销售量合计”信息显示。
(1)在“控件选择”列表中,选择“图表”控件放置到窗体适当位置。
(2)在空白“图表”控件上,双击打开“图表编辑器”。
(3)在打开的“图表类型选择”对话框中,双击选中“长条图”。
(4)在“关联字段”向导页中,单击打开“选择数据源”列表框,并选中“数据源0.销售明细表-汇总”。
(5)在“标识值”列表框中单击,并选中“品名规格”字段作标识值显示。
(6)在“横轴值”列表框中单击,并选中“(自动间隔)”作横轴值。
(7)在“纵轴值”列表框中单击,并选中“数量”字段作纵轴值。
(8)在“轴标识”向导页中,修改横轴“值倾斜角”为270。
(9)在“图块标签”向导页中,单击“标签内容”列表框,并选中“图块值Y”。
(10)完成以上操作后,按“完成”按钮结束图表设置。
(11)调正“图表”控件的大小和显示位置,并在图表左上角增加说明标签。
(3)销量“圆饼图”设计
该图表用来显示各个销售品种的“销售量%统计”信息显示。
(1)在打开的“图表类型选择”对话框中,双击选中“圆饼图”。
(2)在“关联字段”向导页中,单击打开“选择数据源”列表框,并选中“数据源0. 销售明细表-汇总”。
(3)在“标识值”列表框中单击,并选中“品名规格”字段作标识值显示。
(4)在“圆饼值”列表框中单击,并选中“数量”作圆饼值。
(5)在“图块标签”向导页中,单击“标签内容”列表框,并选中“标识值与百分比值一同显示”。
(6)完成以上操作后,按“完成”按钮结束图表设置。
23
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 3)报表设计
设计“销售明细日报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。[www.61k.com)
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“销售明细表-汇总”。
(4)在“选择字段”列表中,选择所有字段到“选中字段”列表中。完成后按“下一步”按钮。
因为无需对报表作特殊的“列表结构定义”,所以不必继续按“下一步”按钮而直接完成报表创建。
(6)按“完成”按钮,生成“销售明细日报表”。
3、试运行
(1)“报表预览框”快捷操作菜单
窗体运行时,可使用“报表预览框”内置的快捷操作菜单完成相关操作。如图1.4.4-4所示。
图1.4.4-4 “报表预览框”内置的快捷操作菜单
(2)“图表”快捷操作菜单
窗体运行时,可使用“图报”内置的快捷操作菜单完成相关操作。如图1.4.4-5所示。
图1.4.4-5“图表”内置的快捷操作菜单
1.4.5“销售月报”
“销售月报”窗体,是用来显示本月“销售状况报表”和“销售数据图表”的功能窗体。由于“销售月报”窗体与“销售日报”窗体基本相同,因而应在全部设计完“销售日报”窗体后,将其复制到调用“销售月报”窗体的事件流程中,并对复制后的窗体中一些不适宜部分作相应修改即可。本例的学习重点是:如何在数据源载入条件中表达出只显示“本月记录”的方法。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“销售月报”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.4.5-1所示。
图1.4.5-1“销售月报”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1) 窗体数据源
2) 在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.4.5-2所示。
24
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.4.5-2“销售日报”的窗体数据源
“销售明细表”数据源
该数据源用来获得经营当日的全部销售记录。[www.61k.com)
(1)选择“销售明细表”创建“简易汇总型”数据源,名称编辑为“销售明细表-汇总”。
(2)在“汇总字段”向导页中指定“数量、金额”为“求合计值”。
(3)在“分组字段”向导页中指定“货号、品名规格”为“分组字段”。
(4)“载入条件”表达式编辑为:
@销售明细表.日期@>=DATE()-DAY(DATE())
此表达式的含义为,只显示“本月”的记录。
2)界面设计
“销售日报”窗体的界面外观,如图1.4.5-3所示。
图1.4.5-3“销售月报”窗体界面
25
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (1)“报表预览框”设计
该预览框用来在窗体上显示报表。[www.61k.com]
(1)在“控件选择”列表中,选择“报表、报表预览框”两个控件放置到窗体适当位置。
(2)调整“报表预览框”控件的大小和显示位置。
值得提示的是,如果后放置“报表预览框”控件,要在放置“报表”控件后,将“报表预览框”控件的“关联到报表”属性选择关联到后放置的“报表”控件。
(2)销量“长条图”设计
该图表用来显示各个销售品种的“销售量合计”信息显示。
(1)在“控件选择”列表中,选择“图表”控件放置到窗体适当位置。
(2)在空白“图表”控件上,双击打开“图表编辑器”。
(3)在打开的“图表类型选择”对话框中,双击选中“长条图”。
(4)在“关联字段”向导页中,单击打开“选择数据源”列表框,并选中“数据源0.销售明细表-汇总”。
(5)在“标识值”列表框中单击,并选中“品名规格”字段作标识值显示。
(6)在“横轴值”列表框中单击,并选中“(自动间隔)”作横轴值。
(7)在“纵轴值”列表框中单击,并选中“数量”字段作纵轴值。
(8)在“轴标识”向导页中,修改横轴“值倾斜角”为270。
(9)在“图块标签”向导页中,单击“标签内容”列表框,并选中“图块值Y”。
(10)完成以上操作后,按“完成”按钮结束图表设置。
(11)调正“图表”控件的大小和显示位置,并在图表左上角增加说明标签。
(3)销量“圆饼图”设计
该图表用来显示各个销售品种的“销售量%统计”信息显示。
(1)在打开的“图表类型选择”对话框中,双击选中“圆饼图”。
(2)在“关联字段”向导页中,单击打开“选择数据源”列表框,并选中“数据源0. 销售明细表-汇总”。
(3)在“标识值”列表框中单击,并选中“品名规格”字段作标识值显示。
(4)在“圆饼值”列表框中单击,并选中“数量”作圆饼值。
(5)在“图块标签”向导页中,单击“标签内容”列表框,并选中“标识值与百分比值一同显示”。
(6)完成以上操作后,按“完成”按钮结束图表设置。
3)报表设计
设计“销售明细日报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“销售明细表-汇总”。
(4)在“选择字段”列表中,选择所有字段到“选中字段”列表中。完成后按“下一步”按钮。 因为无需对报表作特殊的“列表结构定义”,所以不必继续按“下一步”按钮而直接完成报表创建。
(6)按“完成”按钮,生成“销售明细日报表”。
3、试运行
(1)“报表预览框”快捷操作菜单
窗体运行时,可使用“报表预览框”内置的快捷操作菜单完成相关操作。如图1.4.5-4所示。
图1.4.5-4 报表预览框”内置的快捷操作菜单
(2)“图表”快捷操作菜单
窗体运行时,可使用“图报”内置的快捷操作菜单完成相关操作。如图1.4.5-5所示。
26
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.4.5-5“图表”内置的快捷操作菜单
1.5“库存管理”设计
库存管理菜单项中包括“入库登记、入库修改、库存查询、库存月报、生成库存”共5个功能项。[www.61k.com)
1.5.1“入库登记”
“入库登记”窗体,是用来实现商品入库开票业务的功能窗体。本例的学习重点是:掌握“自动批号”的设置方法。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“入库登记”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.5.1-1所示。
图1.5.1-1“入库登记”事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.5.1-2所示。
图1.5.1-2“入库登记”的窗体数据源
“库存明细表”数据源
该数据源是用来向“库存明细表”中新增入库商品。
(1)选择“库存明细表”创建为“常规型”数据源。
(2)数据源的载入字段为全部字段。
(3)数据源的载入条件编辑为:
@库存明细表.当前状态@=False
此表达式的含义为,只能看到新增加的库存编辑。
27
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2) 数据源“智能公式”
“入库登记”窗体中的所有“智能公式””和“计算顺序”:
值得特别提示的是,智能公式的“计算顺序”是极为重要的,如果执行顺序不正确,将导致计算错误和根本不计算。(www.61k.com)
日期-> ~取日期()
该公式用来自动将入库“日期”默认写为当天日期。
批号-> ~~赋自动编号(|数据源0.库存明细表.批号|,’批号-’,1)
该公式用来自动产生全局商品入库“批号”。
入库数量-> ~0
该公式用来指定默认数量为0。
出库数量-> ~0
该公式用来指定默认数量为0。
进货价-> ~0
该公式用来指定默认数量为0。
销售价-> ~0
该公式用来指定默认数量为0。
库存余量->~~|数据源1.库存明细表.入库数量|-|数据源1.库存明细表.出库数量|
该公式用来自动计算“入库数量-出库数量”的“库存余量”。
是否有货->~1
该公式用来自动将“是否有货”字段赋值为“是”。
当前状态->~1
该公式用来自动将“当前状态”字段赋值为“是”。
3)界面设计
“入库登记”窗体的界面外观,如图1.5.1-3所示。
28
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 图1.5.1-3 “入库登记”窗体界面
(1)生成编辑框
该编辑框用来向“库存明细表”数据源录入“入库登记”信息。[www.61k.com]
(1)在窗体空白处单击鼠标右键,选择“编辑框设计向导”项,打开向导对话框.
(2)在“选择数据源”列表中,单击选择“库存明细表”。
(3)在“选择字段”列表中,将卡片中需要的字段选择到“选中字段”列表中。
(4)按“完成”按钮,生成“编辑框”。
(5)在窗口上逐个调整各个编辑框到适宜的显示位置。
(2)生成查询表单
该表单用来显示“库存明细表”数据源中的已有商品记录信息。
(1)在窗体空白处单击鼠标右键,选择“查询表单框设计向导”项。
(2)在“选择数据源”列表中,单击选择“存明细表”。
(3)在“选择字段”列表中,将查询表单中需要的字段选择到“选中字段”列表中。
值得提示的是,选择“查询字段”后不要按“下一步”按钮,而直接按完成键。
(4)按“完成”按钮,生成“查询表单框”。
(3)“数据导航器”控件
该控件用来导引对编辑卡片的各项操作。
(1)指定“导航条方向”属性为“纵向”。
(2)指定该控件的“连到数据源”设置为“库存明细表”数据源。
(3)在该控件的“按钮项选择”属性中,选择“保存编辑、到上一纪录、到下一记录、删除记录、追加记录”子属性为“选中”。
3)报表设计
设计“库存明细报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-库存明细表”。
(4)在“选择字段”列表中,选择报表需要显示的字段到“选中字段”列表中,结束后按“完成”按钮。 4)“事件功能”设计
“入库登记”窗体中的全部事件列表如下:
3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。
1.5.2“库存修改”
“库存修改”窗体,是用来实现对已入库商品作部分修改的功能窗体。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“库存修改”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.5.2-1所示。
图1.5.2-1“库存修改”的事件流程
29
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。[www.61k.com]
1) 窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.5.2-2所示。
图1.5.2-2“入库登记”的窗体数据源
“库存明细表”数据源
该数据源用来对“库存明细表”作修改操作。
(1)选择“库存明细表”创建为“常规型”数据源。
(2)数据源的载入字段为全部字段。
(3)数据源的载入条件为无。
2) 数据源“智能公式”
“入库登记”窗体中的所有“智能公式””和“计算顺序”:
值得特别提示的是,智能公式的“计算顺序”是极为重要的,如果执行顺序不正确,将导致计算错误和根本不计算。
日期-> ~取日期()
该公式用来自动将入库“日期”默认写为当天日期。
批号-> ~~赋自动编号(|数据源0.库存明细表.批号|,’0’,1)
该公式用来自动产生全局商品入库“批号”。
入库数量-> ~0
该公式用来指定默认数量为0。
出库数量-> ~0
该公式用来指定默认数量为0。
进货价-> ~0
该公式用来指定默认数量为0。
销售价-> ~0
该公式用来指定默认数量为0。
库存余量->~~|数据源1.库存明细表.入库数量|-|数据源1.库存明细表.出库数量|
该公式用来自动计算“入库数量-出库数量”的“库存余量”。
30
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 是否有货->~
该公式用来自动将“是否有货”字段赋值为“是”。[www.61k.com]
3)界面设计
“库存修改”窗体的界面外观,如图1.5.2-3所示。
图1.5.2-3 “库存修改”窗体界面
(1)生成编辑框
该编辑框用来向“库存明细表”数据源录入“入库登记”信息。
(1)在窗体空白处单击鼠标右键,选择“编辑框设计向导”项,打开向导对话框.
(2)在“选择数据源”列表中,单击选择“库存明细表”。
(3)在“选择字段”列表中,将卡片中需要的字段选择到“选中字段”列表中。
(4)按“完成”按钮,生成“编辑框”。
(5)在窗口上逐个调整各个编辑框到适宜的显示位置。
(2)生成查询表单
该表单用来显示“库存明细表”数据源中的已有商品记录信息。
(1)在窗体空白处单击鼠标右键,选择“查询表单框设计向导”项。
(2)在“选择数据源”列表中,单击选择“存明细表”。
(3)在“选择字段”列表中,将查询表单中需要的字段选择到“选中字段”列表中。
值得提示的是,选择“查询字段”后不要按“下一步”按钮,而直接按完成键。
(4)按“完成”按钮,生成“查询表单框”。
(3)“数据导航器”控件
该控件用来导引对编辑卡片的各项操作。
(1)指定“导航条方向”属性为“纵向”。
(2)指定该控件的“连到数据源”设置为“库存明细表”数据源。
(3)在该控件的“按钮项选择”属性中,选择“保存编辑、到记录头、到记录尾、到上一纪录、到下一记录”子属性为“选中”。
3)报表设计
设计“库存明细报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
31
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (3)在“选择数据源”列表中,单击选择“数据源0-库存明细表”。(www.61k.com]
(4)在“选择字段”列表中,选择报表需要显示的字段到“选中字段”列表中,结束后按“完成”按钮。 4)“事件功能”设计
“入库登记”窗体中的全部事件列表如下:
3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。
1.5.3“库存查询”
“库存查询”窗体,是用来实现对“已入库商品”的细节作查询的功能窗体。本例的学习重点是:如何使用“查询表单框”对库存记录作各种复杂的“综合查询”。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“库存查询”项双击,事件编辑器被打开。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.5.3-1所示。
图1.5.3-1“库存查询”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.5.3-2所示。
图1.5.3-2“库存查询”的窗体数据源
(1)选择“库存明细表”创建为“常规型”数据源。
(2)数据源的载入字段为全部字段。
(3)数据源的载入条件为无。
2)界面设计
“库存查询”窗体的界面外观,如图1.5.3-3所示。
32
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.5.3-3 “库存查询”窗体界面
生成查询表单
该表单用来显示“库存明细表”中的全部数据信息。(www.61k.com]
(1)在窗体空白处单击鼠标右键,选择“查询表单框设计向导”项。
(2)在“选择数据源”列表中,单击选择“数据源0-库存明细表”。
(3)在“选择字段”列表中,将查询表单中需要的字段选择到“选中字段”列表中。
值得提示的是,选择“查询字段”后不要按“下一步”按钮,而直接按完成键。
(4)按“完成”按钮,生成“查询表单框”。
3)报表设计
设计“库存明细报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-库存明细表”。
(4)在“选择字段”列表中,选择报表需要显示的字段到“选中字段”列表中,结束后按“完成”按钮。 4)“事件功能”设计
“库存查询”窗体中的全部事件列表如下:
3、试运行
运行“库存修改”功能时时,可以使用“查询表单框”自带的快捷操作菜单作各种查询操作。如图
1.5.3-4
33
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 所示的是“字段列和表单框”操作菜单。[www.61k.com]
图1.5.3-4“字段列和表单框”操作菜单
1.5.4“库存余量统计”
“库存余量统计”窗体,是用来实现对“已售出商品”与“库存余量”作计算汇总功能的窗体。通过本节学习,可使用户了解“多表数据汇总”的机理和方法。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“销售查询”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.5.4-1所示。
图1.5.4-1“库存余量统计”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.5.4-2所示。
图1.5.4-2“库存余量统计”的窗体数据源
“销售和库存汇总”数据源
该数据源用来获得全部销售记录的明细。
(1)选择“销售和库存合并后总汇总”创建“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
2) 界面设计
“库存余量统计”窗体的界面外观,如图1.5.4-3所示。
34
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.5.4-3 “库存余量统计”窗体界面
“查询表单”
该表单用来显示“销售和库存合并后总汇总”中的全部数据信息。[www.61k.com]
(1)在窗体空白处单击鼠标右键,选择“查询表单框设计向导”项。
(2)在“选择数据源”列表中,单击选择“-销售明细表_汇总”数据源。
(3)在“选择字段”列表中,将查询表单中需要的字段选择到“选中字段”列表中。
值得提示的是,选择“查询字段”后不要按“下一步”按钮,而直接按完成键。
(4)按“完成”按钮,生成“查询表单框”。
3) 报表设计
设计“库存余量报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“销售和库存合并后总汇总”数据源。
由于报表选择的数据源与窗体中的查询数据源相同,因而窗体中“查询表单框”的查询结果,可实时被打印出来。
(4)在“选择字段”列表中,将报表中需要的字段选择到“选中字段”列表中。
因为当前报表不需要分组,也无需对报表作特殊的“列表结构定义”,所以不必继续按“下一步”按钮而直接完成报表创建。
(5)按“完成”按钮,生成“库存余量报表”。
4)“事件功能”设计
“销售开票”窗体中的全部事件列表如下:
按键0:单击-开始汇总计算
该事件定义用来完成“库存余量”的计算汇总。
事件流程:
(1)在“按键0”上单击选中该控件,使其获得焦点。
(2)在事件定义页中选中“单击”事件,打开事件编辑器。
35
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (3)在右侧的“功能选择页”中选择需要的模块放置到设计区。[www.61k.com)
(4)连接所有模块的流程线到“开始图标”。如图1.5.4-4所示。
图1.5.4-4“开始汇总计算”的事件流程
汇总统计:销售明细:
该模块用来将“销售明细表”数据,汇总统计到“销售和库存合并”。
(1)在模块上双击,打开“汇总统计”设计器
(2)选择“销售明细表”为汇总源表,选择“销售和库存合并”为汇总接收表。
(3)在“汇总字段”向导页中,选择“数量”为汇总字段,该字段对应的汇总值接收字段选择为“出库数量”,汇总类型选择为“SUM(合计值)”。
(4)在“分组字段”向导页选择“品名规格、货号”为分组字段,该字段对应的分组标识值接收字段选择为“货号、品名规格”。
(5)在“汇总条件”向导页中,将“汇总前清空汇总值接收表”设置为“选中”。
汇总统计:库存明细:
该模块用来将“库存明细表”数据,汇总统计到“销售和库存合并”。
(1)在模块上双击,打开“汇总统计”设计器
(2)选择“库存明细表”为汇总源表,选择“销售和库存合并”为汇总接收表。
(3)在“汇总字段”向导页中,选择“入库数量”为汇总字段,该字段对应的汇总值接收字段选择为“入库数量”,汇总类型选择为“SUM(合计值)”。
(4)在“分组字段”向导页选择“品名规格、货号”为分组字段,该字段对应的分组标识值接收字段选择为“货号、品名规格”。
值得提示的是,不可以将“汇总条件”向导页中的“汇总前清空汇总值接收表”设置为“选中”,否则将导致已导入的“销售明细表”汇总数据被清除。
汇总统计:销售和库存:
该模块用来将“销售和库存合并”数据,汇总统计到“销售和库存汇总”。
(1)在模块上双击,打开“汇总统计”设计器
(2)选择“销售和库存合并”为汇总源表,选择“销售和库存汇总”为汇总接收表。
(3)在“汇总字段”向导页中,选择“入库数量、出库数量”为汇总字段,各字段对应的汇总值接收字段选择为“入库数量、出库数量”,各字段的汇总类型选择为“Sum(合计值)”。
(4)在“分组字段”向导页选择“品名规格、货号”为分组字段,该字段对应的分组标识值接收字段选择为“品名规格、货号”。
(5)在“汇总条件”向导页中,将“汇总前清空汇总值接收表”设置为“选中”。
修改为空的“出库数量”:
该模块用来对“销售和库存汇总”数据作横向计算,将为空的“出库库存”改变为0。
(1)在模块上双击,打开“修改数据”设计器
(2)选择“销售和库存汇总”表为修改操作表。
(3)在“字段值及条件”向导页中,选择“出库数量”为修改字段,并编辑表达式为:
(4)在“修改条件”中编辑表达式为:
36
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 @销售和库存汇总.出库数量@ IS NULL
对总汇总作余量计算:
该模块用来对“销售和库存汇总”数据作横向计算,以计算出“库存余量”。(www.61k.com]
(1)在模块上双击,打开“修改数据”设计器
(2)选择“销售和库存汇总”表为修改操作表。
(3)在“字段值及条件”向导页中,选择“库存余量”为修改字段,并编辑表达式为:
@销售和库存汇总.入库数量@-@销售和库存汇总.出库数量@
(4)“修改条件”为无。
调用行为-更新数据源:
该模块用来执行对“销售和库存汇总”数据源的“更新”显示。
(1)在模块上双击,打开“行为调用”设计器
(2)选中“销售和库存汇总”数据源为操作对象。
(3)选择该对象的“更新数据源”行为。
提示计算完成:
该模块用来提示是否完成计算。
(1)在模块上双击,打开“检测执行”设计器
(2)在函数选择页中选择“提示框”函数。
(3)将函数的提示文本编辑为:
提示框(’计算完成!’)
3、试运行
窗体运行时可以使用“查询表单框”自带的快捷操作菜单作各种查询操作。如图1.5.4-5所示的是“字段列和表单框”操作菜单。
图1.5.4-5 “字段列和表单框”操作菜单
1.5.5“库存月报”
“库存月报”窗体,是用来显示本月“库存状况报表”和“库存数据图表”的功能窗体。本例的学习重点是:如何使用“报表预览框”。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“库存月报”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.5.5-1所示。
图1.5.5-1“库存月报”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建1个数据源,如图1.5.5-2所示。
37
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.5.5-2“库存查询”的窗体数据源
“销售和库存汇总”数据源
该数据源用来获得库存中本月入库的全部库存记录。(www.61k.com]
(1)选择“销售和库存汇总”创建为“常规型”数据源。
(2)数据源的载入字段为全部字段。
(3)数据源的载入条件为无。
2)界面设计
“库存月报”窗体的界面外观,如图1.5.5-3所示。
图1.5.5-3“库存月报”窗体界面
(1)“报表预览框”设计
该预览框用来在窗体上显示报表。
(1)在“控件选择”列表中,选择“报表、报表预览框”两个控件放置到窗体适当位置。
(2)调整“报表预览框”控件的大小和显示位置。
38
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 值得提示的是,如果后放置“报表预览框”控件,要在放置“报表”控件后,将“报表预览框”控件的“关联到报表”属性选择关联到后放置的“报表”控件。(www.61k.com]
(2)库存量“长条图”设计
该图表用来显示各个库存品种的“库存量合计”信息显示。
(1)在“控件选择”列表中,选择“图表”控件放置到窗体适当位置。
(2)在空白“图表”控件上,双击打开“图表编辑器”。
(3)在打开的“图表类型选择”对话框中,双击选中“长条图”。
(4)在“关联字段”向导页中,单击打开“选择数据源”列表框,并选中“数据源0.库存明细表”。
(5)在“标识值”列表框中单击,并选中“规格”字段作标识值显示。
(6)在“横轴值”列表框中单击,并选中“(自动间隔)”作横轴值。
(7)在“纵轴值”列表框中单击,并选中“库存数量”字段作纵轴值。
(8)在“轴标识”向导页中,修改横轴“值倾斜角”为270。
(9)在“图块标签”向导页中,单击“标签内容”列表框,并选中“图块值Y”。
(10)完成以上操作后,按“完成”按钮结束图表设置。
(11)调整“图表”控件的大小和显示位置,并在图表左上角增加说明标签。
(3)出库量“圆饼图”设计
该图表用来显示各个库存品种的“库存量%统计”信息显示。
(1)在打开的“图表类型选择”对话框中,双击选中“圆饼图”。
(2)在“关联字段”向导页中,单击打开“选择数据源”列表框,并选中“数据源0. 库存明细表”。
(3)在“标识值”列表框中单击,并选中“规格”字段作标识值显示。
(4)在“圆饼值”列表框中单击,并选中“数量”作圆饼值。
(5)在“图块标签”向导页中,单击“标签内容”列表框,并选中“标识值与百分比值一同显示”。
(6)完成以上操作后,按“完成”按钮结束图表设置。
3)报表设计
设计“库存明细日报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-库存明细表”。
(4)在“选择字段”列表中,选择“品名、规格、入库数量、出库数量、库存余量”到“选中字段”列表中。完成后按“下一步”按钮。
(5)在“选择分组字段”向导页中选择“品名、规格”字段到“选中分组字段”列表中。
(6)按“完成”按钮,生成“销售明细日报表”。
1.5.6“生成库存”
用户项目试运行时,经常需要大量的数据来测试所设计的各种功能是否正确。这些测试用的数据,如果依赖于用户手工录入,将费时费力而得不偿失。本例学习的重点是:通过查看“生成库存”中的各个设计细节,了解数据记录的自动产生方法。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“生成库存”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.5.6-1所示。
图1.5.6-1“生成库存”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
39
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建3个数据源,如图1.5.6-2所示。(www.61k.com]
图1.5.6-2“生成库存”的窗体数据源
(1)“库存明细表”数据源
该数据源是用来记录自动生成的“库存明细”。
(1)选择“库存明细表”创建为“常规型”数据源。
(2)载入全部字段。
(3)载入条件为无
(2)“库存明细_样板表”数据源
该数据源是用来在自动生成“库存明细”时,从中随机获得“规格、数量、单价”等。
(1)选择“库存明细_样板表”创建为“常规型”数据源。
(2)载入全部字段。
(3)在载入为无。
2)界面设计
“生成库存”窗体的界面外观,如图1.5.6-3所示。
40
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.5.6-3 “生成库存”窗体界面
(1)“库存明细表”表单框
该表单框用来显示“自动生成”的库存明细记录。[www.61k.com]
(1)在窗体空白处单击鼠标右键,选择“表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“数据源1-销售明细表”。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)按“完成”按钮,生成“表单框”。
(2)“生成行数”编辑框
该编辑框用来编辑要自动生成的“记录行数”。
(1)在“控件选择”页中选择“编辑框”控件单击选中。
(2)在窗体适当位置单击完成控件放置。
(3)“生成库存”按键
该按键用来执行“自动生成”库存记录的操作。
(1)在“控件选择”页中选择“按键”控件单击选中。
(2)在窗体适当位置单击完成控件放置。
4)事件定义
“生成库存”
该事件用来完成“生成库存”的全部功能过程。
(1)在窗体上单击选中“生成库存”按键,使其获得焦点。
(2)在“窗体设计工具盒”中选择“事件定义页”。
(3)双击该控件的“单击”事件,打开事件编辑器。
(4)在事件流程中放置10个需要的模块。
(5)按需要的顺序连接所有模块的流程线到“开始图标”,如图1.5.6-4所示。
41
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.5.6-4“生成库存”事件流程
模块定义1-删除-库存明细表记录:
该模块用来在未开始生成数据前,删除所有“库存明细表”中的记录。(www.61k.com]
(1)使用“删除记录”模块,在该模块中指定删除无条件全部记录。
(2)在该模块的条件设置页中,将“重置自动编号字段”设置为“选中”。
模块定义2-变量赋值:取供货商名:
该模块用来从“库存明细_样板表”中随机获得“供货商名”。
(1)使用“变量赋值”模块,在该模块中新增“取供货商名”变量。
(2)编辑“取供货商名”变量的复制表达式为:
取随机行数值(|数据源2.库存明细_样板表.供货厂商| ,1,#数据源2:库存明细_样板表.最大记录号#) 模块定义3-新增-库存明细表记录:
该模块用来向“库存明细表”新增一条记录。
(1)使用“新增记录”模块,在该模块中选中“库存明细表”作为新增操作表。
(2)编辑各个字段的新增表达式如图1.5.6-5所示。
图1.5.6-5 各个字段的新增表达式
模块定义4-是否够数:
该模块用来检测窗体端“库存明细表”数据源所生成的记录是否已达到“指定的行数”。
(1)使用“检测执行”模块,对记录数作检测。
(2)编辑检测执行表达式为:
[查库存表记录数]>=#编辑框0:生成行数.当前值#
此表达式中的“[查库存表记录数]”部分,是一个“子查询”,用来获得新增后的记录是否够数。 模块定义5-修改-库存明细表数据:
该模块用来将“库存明细表”的记录指针指向“首记录”。
(1)使用“修改数据”模块,在该模块中选中“库存明细表”作为修改操作表。
(2)编辑各个字段的新增表达式如图1.5.6-6所示。
42
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.5.6-6 各个字段的新增表达式
模块定义6-更新数据源:
该模块用来将窗体端显示的“库存明细表”数据源作更新,以便实时看到新增加的记录。[www.61k.com)
(1)使用“行为调用”模块,对数据源作更新显示。
(2)设置数据源的更新对象为“库存明细表”。
3、试运行
当该窗体运行时,在“生成行数”编辑框中指定所要的记录数后,按“生成库存”按键将自动生成模拟的库存商品。
1.6“信息编辑”设计
信息编辑菜单项中包括“录入客户信息、查询客户信息、打印客户信息表”共3个功能项。
1.6.1“录入客户信息”
“录入客户信息”窗体,是用来编辑“客户信息表”数据的功能窗体。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“录入客户信息”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.6.1-1所示。
图1.6.1-1“录入客户信息”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
“客户信息表”数据源
该数据源用来记载要编辑的客户信息。
(1)选择“客户信息表”创建“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
2) 界面设计
“录入客户信息”窗体的界面外观,如图1.6.1-2所示。
43
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图1.6.1-2“录入客户信息”窗体界面
“客户信息表”表单框
该表单用来向“客户信息表”数据源录入“客户信息”。(www.61k.com)
(1)在窗体空白处单击鼠标右键,选择“表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“数据源1-销售明细表”。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)按“完成”按钮,生成“表单框”。
3) 报表设计
设计“客户信息报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-客户信息表”。
(4)在“选择字段”列表中,将报表中需要的字段选择到“选中字段”列表中。
(5)按“完成”按钮,生成“客户明细报表”。
1.6.2“查询客户信息”
“查询客户信息”窗体,是用来查询“客户信息表”数据的功能窗体。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“录入客户信息”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.6.2-1所示。
图1.6.2-1“查询客户信息”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
该数据源用来载入已有的客户信息。
(1)选择“客户信息表”创建“常规型”数据源。
44
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (2)载入字段为全部。[www.61k.com]
(3)载入条件为无。
2) 界面设计
“录入客户信息”窗体的界面外观,如图1.6.2-2所示。
图1.6.2-2“查询客户信息”窗体界面
“客户信息表”查询表单框
该查询表单用来显示“客户信息表”中的数据记录。
(1)在窗体空白处单击鼠标右键,选择“查询表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“数据源1-客户信息表”。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)按“完成”按钮,生成“查询表单框”。
3) 报表设计
设计“客户信息报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“列表浏览式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-客户信息表”。
(4)在“选择字段”列表中,将报表中需要的字段选择到“选中字段”列表中。
(5)按“完成”按钮,生成“客户明细报表”。
2)“事件功能”设计
在“录入客户信息”窗体中没有特殊的“事件”设计,请参照“销售开票”一节中的叙述即可。
1.6.3“打印客户信息表”
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“打印客户信息表”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.6.3-1所示。
图1.6.3-1“打印客户信息表”的事件流程
45
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。[www.61k.com]
1)窗体数据源
“客户信息表”数据源
该数据源用来载入“客户信息表”中的全部数据。
(1)选择“客户信息表”创建“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
2) 界面设计
“打印客户信息表”窗体的界面外观,如图1.6.3-2所示。
图1.6.3-2“打印客户信息表”窗体界面
“客户信息表”查询表单框
(1)在窗体空白处单击鼠标右键,选择“查询表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“数据源1-客户信息表”。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)按“完成”按钮,生成“查询表单框”。
3) 报表设计
设计“客户信息报表”的方法:
(1)在“报表”控件上双击,打开“报表编辑器”。
(2)在“新建报表向导”中选择“票据卡片式”,双击后打开报表设计向导。
(3)在“选择数据源”列表中,单击选择“数据源0-客户信息表”。
(4)在“选择字段”列表中,将报表中需要的字段选择到“选中字段”列表中。
(5)按“完成”按钮,生成“客户卡片报表”。
(3)“报表预览框”设计
(1)在“控件选择”列表中,选择“报表、报表预览框”两个控件放置到窗体适当位置。
(2)调整“报表预览框”控件的大小和显示位置。
值得提示的是,如果后放置“报表预览框”控件,要在放置“报表”控件后,将“报表预览框”控件的“关联到报表”属性选择关联到后放置的“报表”控件。
46
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 1.7“帮助”设计
帮助菜单项中包括“版本信息”1个功能项。[www.61k.com)
1.7.1“关于…”
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“版本信息”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.7.1-1所示。
图1.7.1-1“关于…”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1) 界面设计
“关于…”窗体的界面外观,如图1.7.1-2所示。
图1.7.1-2“关于…”的窗体界面
(1)“图片”控件
该控件用来显示“装饰图片”。
(1)在“窗体设计器工具盒”的“控件选择页”中,选择“图片”控件到窗体上。
(2)在“图片”上单击鼠标右键,选择“当前图片”项,打开向导对话框。
(3)从“设计资源”文件夹中选择一张图片载入。
(4)调整图片位置及尺寸到适宜状态。
(2)“标签”控件
该控件用来显示“版本信息”。
(1)在“窗体设计器工具盒”的“控件选择页”中,选择4个“标签”控件到窗体上。
(2)在“属性设置页”中分别编辑各个“标签”的标题文字。
(3)在“属性设置页”中分别设置各个“标签”的字体及颜色。
(4)调整各个标签的位置及尺寸到适宜状态。
(3)“窗体属性”设置
该控件用来显示“帮助主题”。
(1)在“属性设置页”中设置“窗体样式”属性为“对话框式”。
(2)在“属性设置页”中设置“窗体打开位置”属性为“显示器正中”。
1.7.2“显示导航图”
1、菜单项属性
(1)打开已经编辑的菜单编辑器,选择“显示工具条”项单击。
(2)在属性设置页中,将该菜单项的“选中状态”属性设置为“选中”。
47
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2、菜单项事件
该事件用来改变“工具条”控件的是否显示,并同时将菜单项相应地改变其“选中状态”。(www.61k.com)
(1)打开已经编辑的菜单编辑器,选择“显示工具条”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图1.7.4-1所示。
图1.7.4-1“显示导航图”的事件流程
模块定义-导航图底板为可视:
该模块用来将“导航图底板”的“可视”属性作反向设置。
(1)在事件流程中放置“属性赋值”模块。
(2)在该模块中选中“导航图底板”的“可视”属性。
(3)编辑“选中状态”的表达式为:
不是 #面板0:底板.可视#
此表达式被执行后,如果“导航图底板”为“可视”,就将其改变为“不可视”;反之,如果“导航图底板”为“不可视”,就将其改变为“可视”
1.8 编后的话
使用《雅奇MIS》编制自己使用的管理系统,是一件充满挑战和极有成就感的趣事。以上对《进销存管理系统》举例系统的开发过程叙述,只是一个抛砖引玉的过程而已,用户的想象力、创造力是无穷无尽,期待着更多的好作品问世。
48
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 第2章《工资人事管理系统》编制
《通用工资人事管理系统》开发,是较为常见的典型案例。[www.61k.com)对于大多数用户而言,只要懂得自己管理的业务,都可以自主地开发应用软件。用户通过本例的学习,将大大提高编程技巧方面的常识,并极其有助于提高自主编程的能力。
2.1 主流程事件及数据库
用户项目要执行的第一个流程事件,称为主流程。在一个用户项目中,只有一个“主流程”。
2.1.1 主流程事件
对于一般项目而言,主流程通常应设计为如图2.1.1-1所示的结构。
图2.1.1-1主流程结构
主流程事件中的“系统封面、用户登录对话框、系统主控窗体”,通常在“窗体和函数模板”选择页中选用现成的模板,而无需自己设计。
2.1.2 系统封面
“系统封面”是使用“常规窗体”模块作设计的,用来作为装饰性的显示项目信息的画面。
通常而言,“系统封面”是在“模板选择”中选用的,不必要用户自己费力设计。
在“系统封面”窗体中,用户可以对既有的原型设计作一些修改后直接使用。修改方法如下:
(1)双击“系统封面”窗体模块,打开窗体设计器。
(2)在窗体中选中标签控件,将标题更改为需要的文本。
(3)如果底图不满意,可以重选一张喜欢的“封面底图”即可,如图2.1.2-1所示。
图2.1.2-1“系统封面”模板
使用模板创建的“系统封面”中的其他事件一般无需修改。运行期时,封面窗体将在被单击,或打开2秒后关闭,并执行主流程事件中下一个“用户登录对话框”模块。
2.1.3 用户登录对话框
“用户登录对话框”是使用“检测执行”模块作设计的,用来限制不相干人员非法进入用户项目。 通常而言,“用户登录对话框”是在“模板选择”中选用的,不必要用户自己费力设计。
在“用户登录对话框”窗体中,用户可以对既有的原型设计作一些修改后直接使用。
49
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (1)如果允许所有用户登录该系统,可以不做修改而直接使用该模板即可。[www.61k.com)
(2)如果允许登录的用户有所限制,可以将“检测执行”模块中的表达式作修改,如表达式编辑为: 登录对话框(’1 ,2 ,3’)
此表达式的含义为,只允许“权限号”为1、2、3的用户登录到系统。
值得提示的是,当用户没有设计“用户权限编辑器”功能时,可以在事件编辑器中按“浏览”按键,在打开的数据浏览编辑器中按按键后对用户权限做编辑修改。
21.4 主控窗体
用户系统的“主控窗体”通常是使用“主窗体”单元模块作设计的。对初级用户而言,也可以使用“常规窗体”单元模块作系统的“主控窗体”,因为它更便于设计时的实时试运行。熟练使用《多尔880 》后,用户还是应使用“主窗体”单元模块作用户系统的“主控窗体”。
2.1.5数据库设计
《通用销售管理系统》的开发核心是创建数据库。对于不同的应用需求,其数据库中数据表的多少以及各个表的结构有所不同。本例介绍的是针对一般进销存管理需求应创建的数据表。
1、出勤记录表:
该数据表用来记载出勤记录信息。
该数据表只使用在“销售开票、销售修改”功能中。
2、加班记录表
该数据表用来记载加班记录信息。
该数据表使用在“出勤记录编辑、员工工资统计、员工工资计算”功能中。
3、出差记录表
该数据表用来记载出差记录信息。
50
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
该数据表使用在“出差记录编辑、员工工资统计、员工工资计算”功能中。(www.61k.com) 4、请假记录表
该数据表用来记载请假记录信息。
该数据表使用在“请假记录编辑、员工工资统计、员工工资计算”功能中。
5、月考勤统计表
该数据表用来记载销售明细汇总后的信息。
该数据表使用在“员工工资统计、员工工资计算”功能中。
6、月考勤统计表总汇总
该数据表用来记载库存明细汇总后的信息。
51
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
该数据表只使用在“员工工资计算”功能中。[www.61k.com)
7、部门信息表
该数据表用来作为“员工个人信息表”编辑时的“所属部门”编辑用词典。
该数据表使用在“增加新员工、人事信息查询修改”功能中。
8、职务代码表
该数据表用来作为“员工个人信息表”编辑时的“职务”编辑用词典。
该数据表使用在“增加新员工、人事信息查询修改”功能中。
9、受教育程度代码表
该数据表用来作为“员工个人信息表”编辑时的“受教育程度”编辑用词典。
该数据表使用在“增加新员工、人事信息查询修改”功能中。
2.2 主控窗体
用户系统的“主控窗体”,是用户项目的“功能管理中心”,也是进入各个应用功能的操作入口。
2.2.1主控窗体布局
主控窗体是用户项目的“功能管理中心”,因而通常只应放置两种控件“下拉式菜单”和“快捷操作工具盒”。
主窗体的窗口区域除了可放置“导航图”外,不应被其他显示控件占用。
“系统主控窗体”,如图2.2.1.-1所示。
52
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.2.1.-1 “主控窗体”外观
2.2.2 主菜单规划
主菜单是指放置在窗体顶端的“下拉式菜单”。[www.61k.com]一般包括五大部分:“系统功能、应用功能、信息编辑、窗口、帮助”共五个主菜单项。
本例叙述的“主菜单”规划,可在窗体设计器的“模板选择页”中选用,由用户根据需要增减或重新编辑即可。
1、“系统功能”菜单项
“系统功能”主菜单项,通常应放置在顶行主菜单项的第一列。其中的下拉菜单项主要应包括“重新登录、修改个人密码、用户权限编辑、系统备份、系统恢复、关闭退出”。
2、“应用功能”菜单项
“应用功能”主菜单项,通常应占据顶行主菜单项中间的多个列。如本例设置为“销售管理、库存管理”等主菜单项。
各个“应用功能”主菜单项中的下拉菜单项规划,可按项目的实际需要建立即可。
3、“信息编辑”菜单项
“信息编辑”主菜单项,通常应放置在顶行主菜单项的“应用功能”项之后。其中的下拉菜单项主要应为各种“辅助信息、词典值”等应用功能中需要的辅助信息编辑。
4、“帮助”菜单项
“帮助”主菜单项,通常应放置在顶行主菜单项的最后一列。其中的下拉菜单项主要应包括“版本信息”等帮助类辅助功能。
2.2.3快捷操作工具盒
“快捷操作工具盒”,是指放置在窗体“主菜单”下方的一排按钮。其主要作用是使一些要频繁使用的功能可被快速操作。
“快捷操作工具盒”由三个控件组成:一是“工具盒容器”控件,用来作为放置“工具盒”控件的容器;二是“工具盒”控件,用来放置“按钮”控件等。
通常“工具盒”上按钮的执行功能并不是独立设计的,而是通过“事件引用”模块连接到主菜单上的某个要频繁操作的菜单项“单击事件”。
本例叙述的“快捷操作工具盒”控件组,可在“模板选择页”中选用,由用户根据需要增减并连接“引用事件”。
2.3“系统功能”设计
系统功能菜单项中包括“重新登录、修改个人密码、用户权限编辑、系统初始化、数据备份、数据恢复、关闭退出”共7个功能项。
53
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2.3.1“重新登录”
“重新登录”功能是指,当一个操作员下班或换岗为另一个操作员时,不是直接退出管理系统,而是使用该功能直接重新登录即可。(www.61k.com)
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“重新登录”项,双击打开事件编辑器。
(2)在右侧的“模板选择页”中选择“用户登录对话框”模板放置到设计区。
(3)连接该模块流程线到“开始图标”。如图2.3.1-1所示。
图2.3.1-1“重新登录”事件流程
2、模块功能定义
(1)如果允许所有用户使用重新登录功能,可以不做修改而直接使用该模板即可。
(2)如果允许登录的用户有所限制,可以将“检测执行”模块中的表达式作修改,如表达式编辑为: 登录对话框(’1 ,2 ,3’)
此表达式的含义为,只允许“权限号”为1、2、3的用户使用重新登录功能。
2.3.2“修改个人密码”
“修改个人密码”功能是指,当一个操作员要自行改变自己的密码时的功能,而无需依赖系统管理员完成。 1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“修改个人密码”项,双击打开事件编辑器。
(2)在右侧的“模板选择页”中选择“修改个人密码”模块放置到设计区。
(3)连接模块流程线到“开始图标”,如图2.3.1-1所示。
图2.3.1-1“修改个人密码”事件流程
2、模块功能定义
如果没有特定需要,“修改个人密码”模板无需打开重新设置。
2.3.3“用户权限编辑”
“用户权限编辑”是系统管理员使用的专有功能。使用该功能可以指定操作员“权限号、姓名、密码”等设置。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“用户权限编辑”项,双击打开事件编辑器开。
(2)在右侧的“模板选择页”中,选择“口令检查对话框、用户权限编辑器”两个模板放置到设计区。
(3)连接两个模块的流程线到“开始图标”。如图2.3.3-1所示。
图2.3.3-1“用户权限编辑”事件流程
54
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2、模块功能定义
1)口令检查对话框
该模块是用来限制“用户权限编辑器”的使用者必须是知道密码的最高级管理员。(www.61k.com]
(1)双击“口令检查对话框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
打开口令检查对话框(’880’)
此表达式中的“880”,是该口令对话框的通过密码。
2)用户权限编辑器
该模块是用来打开“用户权限编辑器”的编辑窗体。系统运行时,“用户权限编辑器”的外观,如图2.3.3-2所示
图2.3.3-2“用户权限编辑器”的外观显示
(1)双击“用户权限编辑器”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
打开权限编辑器(’用户权限编辑器’)
此表达式中的“用户权限编辑器”文本,是编辑器打开后的窗口显示标题。
2.3.4“系统初始化”
用户系统在开发期间,会使用测试数据来检测系统的运行状态和结果。系统在正式运行前,要删除这些无用数据,使其达到“洁净状态”。“系统初始化”功能,就是为此而设置的功能。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“系统初始化”项,双击打开事件编辑器。
(2)在右侧的“模板选择页”中选择“口令检查对话框、高级提示框”两个模板放置到设计区。
(3)在右侧的“功能选择页”中选择两个“删除记录”模块放置到设计区。
(4)连接四个模块的流程线到“开始图标”,如图2.3.4-1所示。
55
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.3.4-1“系统初始化”事件流程
2、模块功能定义
1)口令检查对话框
该模块是用来限制“系统初始化”的使用者必须是知道密码的最高级管理员。[www.61k.com)
(1)双击“口令检查对话框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
口令检查对话框(’880’)
此表达式中的“880”,是该口令对话框的通过密码。
2)确定初始化吗
该模块是用来打开提示框,提醒操作者再次确认要做“系统初始化”,以防意外操作。
(1)双击“提示对话框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
提示对话框(’提示:’,’初始化将删除全部记录,确定要初始化吗?’,1,3,1) 3)删除-出勤记录表
该模块是用来将“出勤记录表”中的数据作全部删除操作。
(1)双击“删除-出勤记录表”模块,打开“删除记录”设计器。
(2)在设计器中选择删除操作表为“出勤记录表”。
(3)在删除条件设置页中,将“重排自动编号字段”项设置为“选中”。
4)删除-加班记录表
该模块是用来将“销售明细表”中的数据作全部删除操作。
(1)双击“删除-加班记录表”模块,打开“删除记录”设计器。
(2)在设计器中选择删除操作表为“加班记录表”。
(3)在删除条件设置页中,将“重排自动编号字段”项设置为“选中”。
5)删除-出差记录表
该模块是用来将“销售明细表”中的数据作全部删除操作。
(1)双击“删除-出差记录表”模块,打开“删除记录”设计器。
(2)在设计器中选择删除操作表为“出差记录表”。
(3)在删除条件设置页中,将“重排自动编号字段”项设置为“选中”。
6)删除-请假记录表
该模块是用来将“销售明细表”中的数据作全部删除操作。
(1)双击“删除-请假记录表”模块,打开“删除记录”设计器。
(2)在设计器中选择删除操作表为“请假记录表”。
(3)在删除条件设置页中,将“重排自动编号字段”项设置为“选中”。
7)初始化完成
该模块是用来提示已经完成“系统初始化”操作。
(1)双击“提示框”模板,打开“检测执行”编辑器。
(2)编辑“检测执行”表达式为:
56
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 提示框(’初始化完成’)
2.3.5“数据备份”
用户系统在使用时要经常对数据库做备份,以防止数据的意外丢失。(www.61k.com)“数据备份”是使用事件流程中的“导出数据”模块实现的。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“数据备份”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“导出数据”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.3.5-1所示。
图2.3.5-1“数据备份”的事件流程
2、模块功能定义
导出数据:
(1)双击打开“导出数据”模块编辑器。
(2)指定要导出的数据表。
(3)在导出文件路径编辑框中,编辑文件的保存路径及文件名。如表达式编辑为:
’C:\数据备份’
此表达式的两边,一定要使用单引号括起,文件后缀名可不必编辑。
2.3.6“数据恢复”
当数据意外丢失时,通过将备份的数据导入可予以补救。“数据恢复”是使用事件流程中的“导入数据”模块实现的。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“数据恢复”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“导入数据”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.3.6-1所示。
图2.3.6-1“数据恢复”的事件流程
2、模块功能定义
导入数据:
(1)双击打开“导入数据”模块编辑器。
(2)在导入文件路径编辑框中,编辑文件的导入路径及文件名。如表达式编辑为:
’C:\数据备份’
此表达式的两边,一定要使用单引号括起,文件后缀名可不必编辑。
(3)指定导入源表与导入目标数据表的一一对应关系。
值得提示的是,导入数据操作前,导入文件必须事先存在。本例中的导出文件必须被执行后导入文件才存在,这一点要注意。
57
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 2.3.7“关闭退出”
关闭退出就是将主控窗体作关闭操作。(www.61k.com)
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“关闭退出”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“行为调用”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.3.7-1所示。
图2.3.7-1“关闭退出”事件流程
2、模块功能定义
(1)双击打开“行为调用”模块编辑器。
(2)指定“窗体”为调用对象。
(3)选择该窗体的“关闭窗体”行为。
2.4“考勤管理”设计
考勤管理菜单项中包括“出勤记录编辑、加班记录编辑、出差记录编辑、请假记录编辑、综合查询及修改”共5个功能项。
2.4.1“出勤记录编辑”
在“工资人事管理系统”中,“出勤记录编辑”是常用的交互窗体。本例的学习重点:一是深入了解窗体设计的基本方法和原理;二是理解“动态赋值”的定义方法。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“出勤记录编辑”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.4.1-1所示。
图2.4.1-1“出勤记录编辑”事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建3个数据源,如图2.4.1-2所示。
58
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.4.1-2“出勤记录编辑”的窗体数据源
(1)“员工个人信息表”数据源
该数据源是用来作为“出勤记录编辑”的编辑定位数据源。[www.61k.com]
(1)选择“员工个人信息表”创建为“常规型”数据源。
(2)载入全部字段。
(3)载入条件为无。
(2)“出勤记录表”数据源
该数据源是用来记录“出勤记录”信息的数据源。
(1)选择“出勤记录表”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件编辑为:
@出勤记录表.日期@=DATE()
(4)将该数据源与“员工个人信息表”数据源作“定位”连接,其连接字段为“员工号”。
(3)“数据导航条”
该控件用来作为出勤记录编辑时的控制键。
(1)在“控件选择”页中选择“数据导航条”控件单击,在窗体适当位置放置。
(2)调整“数据导航条”到合适位置。
“数据导航条”属性设置
(1)在属性表中,选择“连到数据源”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“出差记录表”数据源。
(3)在“选择查询字段”列表中,随意选择任意字段到“选中查询字段”列表中,完成后确定键。
(4)在属性表中,选择“按钮项选择”项,在该子属性中,将“保存编辑、取消编辑、删除记录”设置为“选中”。
(4)“当日出勤记录浏览”表单框
该表单用来显示员工个人当日的出勤明细信息。
(1)在窗体空白处单击鼠标右键,选择“表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“出勤记录表”数据源。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成“表单框”。
“表单框”属性设置
(1)单击选中表单框,使其获得焦点。
(2)在属性设置页中,将其“不可编辑”属性设置为“选中”。
2)“智能公式”编辑
“出勤记录编辑”窗体中的所有“智能公式”及“计算顺序”:
59
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 值得特别提示的是,智能公式的“计算顺序”是极为重要的,如果执行顺序不正确,将导致计算错误和根
本不计算。(www.61k.com)
“出勤记录表”中的公式
日期-> ~取日期()
该公式用来自动将出勤“日期”默认写为当天日期。
月份-> ~取月份号(|数据源1.出勤记录表.日期|)
该公式用来将“月份”字段赋值为月份号。
出勤小时-> ~~保留小数((求日期时间差(|数据源1.出勤记录表.上午上班时间|, |数据源1.出勤记录表.中午下班时间|)+求日期时间差(|数据源1.出勤记录表.下午上班时间|,|数据源1.出勤记录表.下午下班时间|))* 24,2)
该公式用来实时计算出“出勤小时”字段的数值。其中最外层的“保留小数()”函数,用来将结果值取到小数2位;其中的“求日期时间差()”函数,是用来计算“两个日期时间之间的差值”。
3)界面设计
“出勤记录编辑”窗体的界面外观,如图2.4.1-3所示。
图2.4.1-3 “出勤记录编辑”窗体界面
(1)“请选择员工号”查询框
该查询框用来执行考勤编辑前的员工选择,其设置方法如下:
(1)在“控件选择”页中选择“查询编辑框”控件单击,在窗体适当位置放置。
(2)在“查询编辑框”控件上单击鼠标右键,选择“关联到查询字段”项,打开设置向导,设置其查询字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(3)在属性表中的“附加功能键”属性中,选中“词典取值”选项。
(4)在属性表中双击“词典源字段”项,打开设置向导,设置其词典源字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(5)在属性表中将“查询方式”属性设置为“定位”。
(2)“员工信息”显示框
该批显示框用来显示当前编辑员工的个人信息,其设置方法如下:
60
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (1)在“控件选择”页中选择“标签”控件单击,在窗体适当位置放置。(www.61k.com)按需要的数量将放置多个标签到窗体上完成标签创建。
(2)在“姓名”标签上单击,在属性表中,选择“标题连到字段”项,打开设置向导,设置其显示字段为“员工信息表”数据源的“姓名”字段,完成后按“确定键”结束设置。
(3)重复“(2)”的操作,将“所在部门、日期、职务”都关联到相应的数据源字段上。
(3)“出勤时间”编辑框
该批编辑框用来编辑出勤信息。
(1)在窗体空白处单击鼠标右键,选择“编辑框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“出勤记录表”数据源。
(3)在“选择字段”列表中,将需要的编辑字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成成批“编辑框”。
6)“事件功能”设计
“销售开票”窗体中的全部事件列表如下:
(1)编辑框4:附加键按下-上午上班时间
该事件定义用来在点按附加键时将标准的“上班时间”赋值给“出勤记录表”的“上午上班时间”字段。 事件流程:
(1)在上午上班时间“编辑框”上单击选中该控件,使其获得焦点。
(2)在事件定义页中双击“附加键按下”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“属性赋值”模块放置到设计区。
(4)连接该模块的流程线到“开始图标”。如图2.4.1-5所示。
图2.4.1-5 “附加键按下”的事件流程
模块定义-出勤记录表.上午上班时间:
该模块用来执行对“员工信息表”数据源的“上午上班时间”赋值。
(1)在模块上双击,打开“属性赋值”设计器
(2)选中“出勤记录表”数据源为操作对象。
(3)选中该对象的“出勤记录表”为赋值对象,
(4)在打开的“出勤记录表”字段列表中,双击选择“上午上班时间”。
(5)按“表达式”按钮,将表达式编辑为:
’8:30’
(2)编辑框6:附加键按下-中午下班时间
该事件定义用来在点按附加键时将标准的“上班时间”赋值给“出勤记录表”的“中午下班时间”字段。 其设计方法与(1)相同。
(3)编辑框7:附加键按下-下午上班时间
该事件定义用来在点按附加键时将标准的“上班时间”赋值给“出勤记录表”的“下午上班时间”字段。
61
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 其设计方法与(1)相同。(www.61k.com]
(4)编辑框8:附加键按下-下午下班时间
该事件定义用来在点按附加键时将标准的“上班时间”赋值给“出勤记录表”的“下午下班时间”字段。 其设计方法与(1)相同。
3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。
2.4.2“加班记录编辑”
在“工资人事管理系统”中,“加班记录编辑”是常用的交互窗体。本例的学习重点是:如何对数据源字段赋值。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“加班记录编辑”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.4.2-1所示。
图2.4.2-1“加班记录编辑”事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建2个数据源,如图2.4.2-2所示。
图2.4.2-2“加班记录编辑”的窗体数据源
(1)“员工个人信息表”数据源
该数据源是用来作为“加班记录编辑”的编辑定位数据源。
(1)选择“员工个人信息表”创建为“常规型”数据源。
(2)载入全部字段。
(3)载入条件为无。
(2)“加班记录表”数据源
该数据源是用来记录“出勤记录”信息的数据源。
(1)选择“加班记录编辑”创建为“常规型”数据源。
(2)载入字段为全部。
62
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (3)载入条件编辑为:
@加班记录表.日期@=DATE()
(4)将该数据源与“员工个人信息表”数据源作连接,其连接字段为“员工号”。[www.61k.com]
2)“智能公式”编辑
“加班记录编辑”窗体中的所有“智能公式”及“计算顺序”:
值得特别提示的是,智能公式的“计算顺序”是极为重要的,如果执行顺序不正确,将导致计算错误和根本不计算。
“加班记录表”中的公式
日期-> ~取日期()
该公式用来自动将加班“日期”默认写为当天日期。
月份-> ~取月份号(|数据源1.出勤记录表.日期|)
该公式用来将“月份”字段赋值为月份号。
加班小时-> ~~保留小数(求日期时间差(|数据源1.加班记录表.加班开始时间|,|数据源1.加班记录表.加班结束时间|)* 24,2)
该公式用来实时计算出“加班小时”字段的数值。其中最外层的“保留小数()”函数,用来将结果值取到小数2位;其中的“求日期时间差()”函数,是用来计算“两个日期时间之间的差值”。
3)界面设计
“加班记录编辑”窗体的界面外观,如图2.4.2-3所示。
图2.4.2-3 “加班记录编辑”窗体界面
(1)“请选择员工号”查询框
该查询框用来执行加班编辑前的员工选择,其设置方法如下:
(1)在“控件选择”页中选择“查询编辑框”控件单击,在窗体适当位置放置,“查询编辑框”创建完成。
(2)在“查询编辑框”控件上单击鼠标右键,选择“关联到查询字段”项,打开设置向导,设置其查询字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(3)在属性表中的“附加功能键”属性中,选中“词典取值”选项。
(4
)在属性表中双击“词典源字段”项,打开设置向导,设置其词典源字段为“员工信息表”数据源的
63
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 “员工号”字段,完成后按“确定键”结束设置。(www.61k.com]
(5)在属性表中将“查询方式”属性设置为“定位”。
(2)“员工信息”显示框
该批显示框用来显示当前编辑员工的个人信息,其设置方法如下:
(1)在“控件选择”页中选择“标签”控件单击,在窗体适当位置放置。按需要的数量将放置多个标签到窗体上完成标签创建。
(2)在“姓名”标签上单击,在属性表中,选择“标题连到字段”项,打开设置向导,设置其显示字段为“员工信息表”数据源的“姓名”字段,完成后按“确定键”结束设置。
(3)重复“(2)”的操作,将“所在部门、日期、职务”都关联到相应的数据源字段上。
(3)“加班时间”编辑框
该批编辑框用来编辑出勤信息。
(1)在窗体空白处单击鼠标右键,选择“编辑框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“加班记录表”数据源。
(3)在“选择字段”列表中,将需要的编辑字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成成批“编辑框”。
(4)“数据导航条”
该控件用来作为加班记录编辑时的控制键。
(1)在“控件选择”页中选择“数据导航条”控件单击,在窗体适当位置放置。
(2)调整“数据导航条”到合适位置。
“数据导航条”属性设置
(1)在属性表中,选择“连到数据源”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“出差记录表”数据源。
(3)在“选择查询字段”列表中,随意选择任意字段到“选中查询字段”列表中,完成后确定键。
(4)在属性表中,选择“按钮项选择”项,在该子属性中,将“保存编辑、取消编辑、删除记录”设置为“选中”。
(5)“加班记录浏览”表单框
该表单用来显示员工个人的当日的加班明细信息。
(1)在窗体空白处单击鼠标右键,选择“表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“加班记录表”数据源。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成“表单框”。
“表单框”属性设置
(1)单击选中表单框,使其获得焦点。
(2)在属性设置页中,将其“不可编辑”属性设置为“选中”。
6)“事件功能”设计
“加班时间编辑”窗体中的全部事件列表如下:
(1)编辑框1:附加键按下-加班开始时间
该事件定义用来在点按附加键时将默认的“加班开始时间”赋值给“加班记录表”的“加班开始时间”字段。
事件流程:
(1)在加班开始时间“编辑框”上单击选中该控件,使其获得焦点。
(2)在事件定义页中双击“附加键按下”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“属性赋值”模块放置到设计区。
64
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (4)连接该模块的流程线到“开始图标”。[www.61k.com]如图2.4.2-5所示。
图2.4.2-5 “附加键按下”的事件流程
模块定义-出勤记录表.上午上班时间:
该模块用来执行对“员工信息表”数据源的“上午上班时间”赋值。
(1)在模块上双击,打开“属性赋值”设计器
(2)选中“加班记录表”数据源为操作对象。
(3)选中该对象的“加班记录表”为赋值对象,
(4)在打开的“加班记录表”字段列表中,双击选择“加班开始时间”。
(5)按“表达式”按钮,将表达式编辑为:
’17:30:00’
(2)编辑框3:附加键按下-加班结束时间
该事件定义用来在点按附加键时将默认的“加班结束时间”赋值给“加班记录表”的“加班结束时间”字段。
其设计方法与(2)相同。
3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。
2.4.3“出差记录编辑”
在“工资人事管理系统”中,“出差记录编辑”是常用的交互窗体。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“出差记录编辑”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.4.3-1所示。
图2.4.3-1“出差记录编辑”事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建2个数据源,如图2.4.3-2所示。
65
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.4.3-2“出差记录编辑”的窗体数据源
(1)“员工个人信息表”数据源
该数据源是用来作为“加班记录编辑”的编辑定位数据源。[www.61k.com]
(1)选择“员工个人信息表”创建为“常规型”数据源。
(2)载入全部字段。
(3)载入条件为无。
(2)“出差记录表”数据源
该数据源是用来记录“出勤记录”信息的数据源。
(1)选择“出差记录编辑”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
2)“智能公式”编辑
“出差记录编辑”窗体中的所有“智能公式”及“计算顺序”:
值得特别提示的是,智能公式的“计算顺序”是极为重要的,如果执行顺序不正确,将导致计算错误和根
本不计算。
“出差记录表”中的公式
日期-> ~取日期()
该公式用来自动将加班“日期”默认写为当天日期。
月份-> ~取月份号(|数据源1出差记录表.日期|)
该公式用来将“月份”字段赋值为月份号。
出差天数-> ~~求日期时间差(|数据源1.出差记录表.出差开始时间|, |数据源1.出差记录表.出差结束时间|)
该公式用来实时计算出“出差天数”字段的数值。其中的“求日期时间差()”函数,是用来计算“两个日期时间之间的差值”。
3)界面设计
“出差记录编辑”窗体的界面外观,如图2.4.3-3所示。
66
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.4.3-3 “出差记录编辑”窗体界面
(1)“请选择员工号”查询框
该查询框用来执行加班编辑前的员工选择,其设置方法如下:
(1)在“控件选择”页中选择“查询编辑框”控件单击,在窗体适当位置放置,“查询编辑框”创建完成。(www.61k.com]
(2)在“查询编辑框”控件上单击鼠标右键,选择“关联到查询字段”项,打开设置向导,设置其查询字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(3)在属性表中的“附加功能键”属性中,选中“词典取值”选项。
(4)在属性表中双击“词典源字段”项,打开设置向导,设置其词典源字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(5)在属性表中将“查询方式”属性设置为“定位”。
(2)“员工信息”显示框
该批显示框用来显示当前编辑员工的个人信息,其设置方法如下:
(1)在“控件选择”页中选择“标签”控件单击,在窗体适当位置放置。按需要的数量将放置多个标签到窗体上完成标签创建。
(2)在“姓名”标签上单击,在属性表中,选择“标题连到字段”项,打开设置向导,设置其显示字段为“员工信息表”数据源的“姓名”字段,完成后按“确定键”结束设置。
(3)重复“(2)”的操作,将“所在部门、日期、职务”都关联到相应的数据源字段上。
(3)“出差时间”编辑框
该批编辑框用来编辑出勤信息。
(1)在窗体空白处单击鼠标右键,选择“编辑框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“出差记录表”数据源。
(3)在“选择字段”列表中,将需要的编辑字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成成批“编辑框”。
“编辑框”属性设置
(1)保持按注Shift键,逐个单击“加班开始时间、加班结束时间”编辑框控件。
(2)在属性设置页中,在这些控件的“附加功能键”属性中,将附加键选择为“日历取值”。
(4)“数据导航条”
该控件用来作为出差记录编辑时的控制键。
(1)在“控件选择”页中选择“数据导航条”控件单击,在窗体适当位置放置。
(2)调整“数据导航条”到合适位置。
“数据导航条”属性设置
(1)在属性表中,选择“连到数据源”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“出差记录表”数据源。
67
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 (3)在“选择查询字段”列表中,随意选择任意字段到“选中查询字段”列表中,完成后确定键。[www.61k.com)
(4)在属性表中,选择“按钮项选择”项,在该子属性中,将“保存编辑、取消编辑、删除记录、追加记录”设置为“选中”。
(5)“出差记录浏览”表单框
该表单用来显示员工个人的所有出差明细信息。
(1)在窗体空白处单击鼠标右键,选择“表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“出差记录表”数据源。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成“表单框”。
“表单框”属性设置
(1)单击选中表单框,使其获得焦点。
(2)在属性设置页中,将其“不可编辑”属性设置为“选中”。
6)“事件功能”设计
“加班时间编辑”窗体中的全部事件列表如下:
内容改变后查询
该事件定义用来在改变员工号选择后要执行的一系列操作。
事件流程:
(1)在“查询编辑框”上单击选中该控件,使其获得焦点。
(2)在事件定义页中双击“内容改变后”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“检测执行、行为调用”模块放置到设计区。
(4)连接各模块流程线到“开始图标”。如图2.4.3-4所示。
图2.4.3-4 “内容改变后查询”的事件流程
模块定义1-是否存在某员:
该模块用来检测是否存在某员工。
(1)在模块上双击,打开“检测执行”编辑器,并编辑表达式为:
求记录数(|数据源0.员工个人信息表.员工号|,'$|数据源0.员工个人信息表.员工号|=&#查询框0:请选择员工号.当前查询值#')
模块定义2-是否已经出勤:
该模块用来检测是否已经出勤。
(1)在模块上双击,打开“检测执行”编辑器,并编辑表达式为:
#查询框0:请选择员工号.当前查询值#<>|数据源1.出差记录表.员工号|
模块定义3-追加记录:
该模块用来追加记录。
(1)在模块上双击,打开“调用行为”编辑器。
(2)选择“出差记录表”数据源的“追加记录”行为。
68
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。[www.61k.com)
2.4.4“请假记录编辑”
在“工资人事管理系统”中,“请假记录编辑”是常用的交互窗体。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“请假记录编辑”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中,选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.4.4-1所示。
图2.4.4-1“请假记录编辑”事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
1)窗体数据源
在窗体设计器中按“数据源”按键,打开数据源设计器创建2个数据源,如图2.4.4-2所示。
图2.4.4-2“请假记录编辑”的窗体数据源
(1)“员工个人信息表”数据源
该数据源是用来作为“加班记录编辑”的编辑定位数据源。
(1)选择“员工个人信息表”创建为“常规型”数据源。
(2)载入全部字段。
(3)载入条件为无。
(2)“请假记录表”数据源
该数据源是用来记录“请假记录”信息的数据源。
(1)选择“请假记录编辑”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
2)“智能公式”编辑
“请假记录编辑”窗体中的所有“智能公式”及“计算顺序”:
69
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
值得特别提示的是,智能公式的“计算顺序”是极为重要的,如果执行顺序不正确,将导致计算错误和根本不计算。[www.61k.com]
“请假记录表”中的公式
日期-> ~取日期()
该公式用来自动将加班“日期”默认写为当天日期。
月份-> ~取月份号(|数据源1请假记录表.日期|)
该公式用来将“月份”字段赋值为月份号。
请假天数-> ~~求日期时间差(|数据源1. 请假记录表. 请假开始时间|,|数据源1. 请假记录表. 请假结束时间|)
该公式用来实时计算出“请假天数”字段的数值。其中的“求日期时间差()”函数,是用来计算“两个日期时间之间的差值”。
3)界面设计
“请假记录编辑”窗体的界面外观,如图2.4.4-3所示。
图2.4.4-3 “请假记录编辑”窗体界面
(1)“请选择员工号”查询框
该查询框用来执行加班编辑前的员工选择,其设置方法如下:
(1)在“控件选择”页中选择“查询编辑框”控件单击,在窗体适当位置放置,“查询编辑框”创建完成。
(2)在“查询编辑框”控件上单击鼠标右键,选择“关联到查询字段”项,打开设置向导,设置其查询字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(3)在属性表中的“附加功能键”属性中,选中“词典取值”选项。
(4)在属性表中双击“词典源字段”项,打开设置向导,设置其词典源字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(5)在属性表中将“查询方式”属性设置为“定位”。
(2)“员工信息”显示框
该批显示框用来显示当前编辑员工的个人信息,其设置方法如下:
(1
)在“控件选择”页中选择“标签”控件单击,在窗体适当位置放置。按需要的数量将放置多个标签
70
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书 到窗体上完成标签创建。[www.61k.com)
(2)在“姓名”标签上单击,在属性表中,选择“标题连到字段”项,打开设置向导,设置其显示字段为“员工信息表”数据源的“姓名”字段,完成后按“确定键”结束设置。
(3)重复“(2)”的操作,将“所在部门、日期、职务”都关联到相应的数据源字段上。
(3)“出差时间”编辑框
该批编辑框用来编辑出勤信息。
(1)在窗体空白处单击鼠标右键,选择“编辑框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“请假记录表”数据源。
(3)在“选择字段”列表中,将需要的编辑字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成成批“编辑框”。
“编辑框”属性设置
(1)保持按注Shift键,逐个单击“请假开始时间、请假结束时间”编辑框控件。
(2)在属性设置页中,在这些控件的“附加功能键”属性中,将附加键选择为“日历取值”。 (4)“数据导航条”
该控件用来作为出差记录编辑时的控制键。
(1)在“控件选择”页中选择“数据导航条”控件单击,在窗体适当位置放置。
(2)调整“数据导航条”到合适位置。
“数据导航条”属性设置
(1)在属性表中,选择“连到数据源”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“请假记录表”数据源。
(3)在“选择查询字段”列表中,随意选择任意字段到“选中查询字段”列表中,完成后确定键。
(4)在属性表中,选择“按钮项选择”项,在该子属性中,将“保存编辑、取消编辑、删除记录、追加记录”设置为“选中”。
(5)“请假记录浏览”表单框
该表单用来显示员工个人的所有请假明细信息。
(1)在窗体空白处单击鼠标右键,选择“表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“请假记录表”数据源。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成“表单框”。
“表单框”属性设置
(1)单击选中表单框,使其获得焦点。
(2)在属性设置页中,将其“不可编辑”属性设置为“选中”。
6)“事件功能”设计
“请假时间编辑”窗体中的全部事件列表如下:
内容改变后查询
该事件定义用来在改变员工号选择后要执行的一系列操作。
事件流程:
(1)在“查询编辑框”上单击选中该控件,使其获得焦点。
(2)在事件定义页中双击“内容改变后”事件,打开事件编辑器。
(3)在右侧的“功能选择页”中选择“检测执行、行为调用”模块放置到设计区。
(4)连接各模块流程线到“开始图标”。如图2.4.3-4所示。
71
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.4.3-4 “内容改变后查询”的事件流程
模块定义1-是否存在某员:
该模块用来检测是否存在某员工。(www.61k.com)
(1)在模块上双击,打开“检测执行”编辑器,并编辑表达式为:
求记录数(|数据源0.员工个人信息表.员工号|,'$|数据源0.员工个人信息表.员工号|=&#查询框0:请选择员工号.当前查询值#')
模块定义2-是否已经出勤:
该模块用来检测是否已经出勤。
(1)在模块上双击,打开“检测执行”编辑器,并编辑表达式为:
#查询框0:请选择员工号.当前查询值#<>|数据源1.出差记录表.员工号|
模块定义3-追加记录:
该模块用来追加记录。
(1)在模块上双击,打开“调用行为”编辑器。
(2)选择“出差记录表”数据源的“追加记录”行为。
3、试运行
通过试运行,可以检验用户设计的各种功能是否正确,以及是否达到使用要求。
2.4.5“综合查询及修改”
“综合查询及修改”窗体,是用来对考勤管理的查询及修改。本例的学习重点:一是“选项卡”控件的使用方法;二是一对多“子报表”的设计方法。
1、菜单项事件
(1)打开已经编辑的菜单编辑器,选择“销售月报”项,双击打开事件编辑器。
(2)在右侧的“功能选择页”中选择“常规窗体”模块放置到设计区。
(3)连接该模块的流程线到“开始图标”。如图2.4.5-1所示。
图2.4.5-1“综合查询及修改”的事件流程
2、窗体功能设计
双击“常规窗体”模块,打开窗体设计器。
3) 窗体数据源
4) 在窗体设计器中按“数据源”按键,打开数据源设计器创建5个数据源,如图2.4.5-2所示。
72
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.4.5-2“综合查询及修改”的窗体数据源
(1)“员工个人信息表”数据源
该数据源是用来作为“出勤记录编辑”的编辑定位数据源。(www.61k.com]
(1)选择“员工个人信息表”创建为“常规型”数据源。
(2)载入全部字段。
(3)载入条件为无。
(2)“出勤记录表”数据源
该数据源是用来记录“出勤记录”信息的数据源。
(1)选择“出勤记录表”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
(4)将该数据源与“员工个人信息表”数据源作连接,其连接字段为“员工号”。 (3)“加班记录表”数据源
该数据源是用来记录“出勤记录”信息的数据源。
(1)选择“加班记录编辑”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
(4)将该数据源与“员工个人信息表”数据源作连接,其连接字段为“员工号”。 (4)“出差记录表”数据源
该数据源是用来记录“出勤记录”信息的数据源。
(1)选择“出差记录编辑”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
(4)将该数据源与“员工个人信息表”数据源作连接,其连接字段为“员工号”。 (5“请假记录表”数据源
该数据源是用来记录“请假记录”信息的数据源。
(1)选择“请假记录编辑”创建为“常规型”数据源。
(2)载入字段为全部。
(3)载入条件为无。
(4)将该数据源与“员工个人信息表”数据源作连接,其连接字段为“员工号”。 2)界面设计
“综合查询及修改”窗体的界面外观,如图2.4.5-3所示。
73
雅奇 雅奇实例教程
《雅奇MIS》举例系统开发过程说明书
图2.4.5-3“综合查询及修改”窗体界面
(1)“请选择员工号查询”
该查询框用来选择要查询的员工,其设置方法如下:
(1)在“控件选择”页中选择“查询编辑框”控件单击,在窗体适当位置放置,“查询编辑框”创建完成。(www.61k.com]
(2)在“查询编辑框”控件上单击鼠标右键,选择“关联到查询字段”项,打开设置向导,设置其查询字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(3)在属性表中的“附加功能键”属性中,选中“词典取值”选项。
(4)在属性表中双击“词典源字段”项,打开设置向导,设置其词典源字段为“员工信息表”数据源的“员工号”字段,完成后按“确定键”结束设置。
(5)在属性表中将“查询方式”属性设置为“定位”。
(2)“员工个人信息表”表单框
该表单用来显示员工个人信息。
(1)在窗体空白处单击鼠标右键,选择“表单框设计向导”项,打开向导对话框。
(2)在“选择数据源”列表中,单击选择“员工个人信息表”数据源。
(3)在“选择字段”列表中,将表单中需要的字段选择到“选中字段”列表中。
(4)结束后按“完成”按钮,生成“表单框”。
“表单框”属性设置
(1)单击选中表单框,使其获得焦点。
(2)在属性设置页中,将其“不可编辑”属性设置为“选中”。
(3)“选项卡”设计
该选项卡用来分页显示“出勤信息、加班信息、出差信息、请假信息”。
(1)在“控件选择”页中选择“选项卡”控件单击,在窗体适当位置放置,“选项卡”创建完成。
(2)在“选项卡”控件上单击鼠标右键,选择“增加新页”项,为“选项卡”增加4个显示页面。
(3)单击选中第1个页面,在属性表中将“标签标题”编辑为“出勤记录”。
(4)按“(3)”的方法继续编辑其他3个页面。
(4)选项卡中的“出勤记录”表单框设计
该表单用来显示“出勤记录表”数据源中的信息。
(1)在“控件选择”页中选择“表单框”控件单击,在“选项卡”第1个页面的适当位置放置,“表单框”创建完成。
74
雅奇 雅奇实例教程
[www.61k.com) 本文标题:ps教程实例-PS美女照片脸部修饰的实例教程61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1