用友CDM开发平台
培训
焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载
手册(精品)
佳易科技,用友CDM广东授权交付中心~
用友CDM软件
开发平台培训手册
佳易计算机科技
2012-11-2
佳易科技,用友CDM广东授权交付中心~
目 录
表单工具.......................................................................................................................... 3 第一章.概 述........................................................................................................... 3
1.新建表单 ......................................................................................................... 3
2.打开表单 ......................................................................................................... 4
3.另存为表单 ..................................................................................................... 6 第二章.构件属性说明 ................................................................................................ 7
1.BitBtn.............................................................................................................. 8
2.Label ............................................................................................................... 9
3.Image(装饰用)........................................................................................... 10
4.Shape ............................................................................................................ 10
5.SKDBTreeView ...............................................................................................11
6.SKDBCheckbox ............................................................................................. 12
7.SKDBEdit ...................................................................................................... 13
8.SKDBText ..................................................................................................... 14
9.SKDBListbox ................................................................................................. 15
10.SKDBCombobox .......................................................................................... 16
11.SKDBRadioGroup......................................................................................... 16
12.SKDBMemo ................................................................................................. 17
13.DBChart....................................................................................................... 18
14.skdbImage .................................................................................................... 18
15.SKuploadfile................................................................................................. 19
16.SKBILLGRID .............................................................................................. 19 第三章.基本编辑方法 .............................................................................................. 22
1.添加删除构件 ................................................................................................ 22
2.锁定构件 ....................................................................................................... 22
3.对齐 .............................................................................................................. 22
4.前置、后置 ................................................................................................... 24
5.右键菜单操作 ................................................................................................ 24 第四章.表单属性 ..................................................................................................... 25
1.表单总体 ....................................................................................................... 25
2.数据集合说明 ................................................................................................ 28
3.弹出菜单 ....................................................................................................... 28 第五章.常用函数说明 .............................................................................................. 29 第六章.表单总体设计
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
....................................................................................... 30
附一:实用脚本 ............................................................................................................. 35
附二:系统变参简介 ...................................................................................................... 40
附三:表单开发常用代码 ............................................................................................... 47
佳易科技,用友CDM广东授权交付中心~
表单工具
第一章.概 述
表单工具是用友一种基于B/S表现形式下的设计工具。
下面我们先对表单设计工具进行整体的介绍,使大家有一个初步的认识。其操作界面如图1-1:
菜单
构件
图1-1
鼠标单击页面上的“单据”标签时会显示出更多的单据构件 如图1-2:
图1-2
1.新建表单
用鼠标单击“表单”菜单,在显示的下拉菜单中选择“新建”来新建表单 如图1-3
快捷键的使用
Alt键+菜单名称后括号内
的字母。
E.g. 新建表单:
Alt+B:显示下拉菜单;
然后单击N或回车:弹出
新建表单窗口。
佳易科技,用友CDM广东授权交付中心~
图1-3
初始的单据窗口是一个空白页面,可供灵活的运用构件设计各种单据。
图1-4
2.打开表单
鼠标单击“表单”菜单,在显示下拉菜单中选择“打开”来打开表单 或者使用快捷键Alt+B 然后按 0或回车 如图1-5
图1-5
首先系统会提示从“数据库”或“文件”打开,如图1-6
佳易科技,用友CDM广东授权交付中心~
图1-6
如果选择从数据库打开,系统会跳传到如图1-7显示的窗体
通过单据类型分类显示的单据信息,选择左面窗口的单据类型,在右面窗口会显示出相应类型的所有单据,通过双击鼠标打开单据;
, 注册单据:将当前单据在功能列表中进行注册增加
, 取消注册:将当前单据从功能列表中删除
, 删除单据:删除当前选择的单据。
图1-7
2) 如果选择从文件打开,系统弹出搜索文件路径的窗口,找到文件双击即可打开。如图1-8:
佳易科技,用友CDM广东授权交付中心~
图1-8
3.保存表单
鼠标单击“表单”菜单,在显示下拉菜单中选择“保存”来保存当前设计的表单 或者使用快捷键Alt+B 然后按 S或回车 如图1-9
图1-9
此时系统提示窗口如下图1-10:与打开表单时选择“数据库”或“文件”打开相对应;可根据实际情况选择新建表单的保存模式。
图1-10 图1-11
3.另存为表单
鼠标单击“表单”菜单,在显示下拉菜单中选择“另存为”来另存当前设计的表单
佳易科技,用友CDM广东授权交付中心~ 或者使用快捷键Alt+B 然后按 Z或回车 如图1-12
如图1-12
此时弹出对话框如图1-13如果选择另存到文件,则在目标文件处选择和输入保存的文件目录和文件名;如果选择另存到数据库则显示如图1-14直接输入表单名即可。
图1-13
图1-14
, 自动注册:表单另存到数据库时自动注册到功能列表中。
第二章.构件属性说明
构件是组成表单的基本元素,对于构件的灵活运用直接关系到我们所设计的表单的
表现形式风格和实现的功能。所以了解每一个构件的作用非常重要。
下面我们将对工具中的所有构件依次说明,如图2-1:
佳易科技,用友CDM广东授权交付中心~
-1 图2
1.BitBtn
, 中文名称:按钮
, 功能:在表单中设置添加按钮。
, 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-2
构件的
“标题”、“活
动”、“可见”、
“事件”等属
性具有相同
的意义,所以
在说明其他
构件时不再图2-2
依次说明。
“标题”栏输入按钮上显示的文字;
“活动”属性设置构件是否在单据中显示;
“可见”属性设置构件在单据中是否可以见到;
“事件”通过鼠标双击动作弹出的窗口来选择构件相应的事件,即所执行的函数; “字体”设置字形、字体大小和字体颜色等信息,通过预览框可以查看字体效果; 设置好构件属性点击“确定”保存设置,“取消”则不保存。
SKBitBtn
SKBitBtn的功能和BitBtn的功能基本相同,他是增加了权限的BitBtn, 在右键点击SKBitBtn之后可以选择相应的选项范围,只有选择到的角色才具有对该按钮的
佳易科技,用友CDM广东授权交付中心~ 操作权限。
启用权限管理:对该按钮进行权限校验
组件可用权限:对该组件可以使用的角色的列表
组件可见权限:对该组件可以看见的角色列表
2.Label
, 中文名称:标签
, 功能:添加表单上的中文标题显示。
, 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-3
图2-3 “排布”属性是标签上的文字的排布设置;
佳易科技,用友CDM广东授权交付中心~ “透明”属性设置标签的是否透明;
“自动收缩”指标签是否跟据中文的数目自动大小收缩; “超链接” 指是否有超级链接
“超链接文本”设置超级链接的文本,格式为URL地址。 3.Image(装饰用)
, 中文名称:图片
, 功能:在表单中增加图片,增强其美观实用性。
, 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-4
图2-4
“选择图象” 选择显示到表单上的图片,起到装饰表单的作用 “保存图象” 保存图象到目录
“清除图象” 清除选择的图象
“自动大小” 设置是否自动按图片原来的大小在表单中显示 “边界匹配” 设置图片是否按设定好的编辑框大小显示 4.Shape
, 中文名称:图形
, 功能:在表单中填加各种图形,起到装饰表单的作用。 , 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-5
佳易科技,用友CDM广东授权交付中心~
图2-5
“边框” 设置图形边框的线形、宽度和颜色的选择
“填充” 设置填充图形的网格和颜色的选择
“形状” 设置选择图形的各种形状
编辑“形状”时通过窗口上方的预览框来观察设置的效果; 5.SKDBTreeView
, 中文名称: 目录树
, 功能: 在表单中设置显示目录树
, 操作: 双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-6
佳易科技,用友CDM广东授权交付中心~
图2-6
“自动展开” 进入表单时自动展开目录树
“边界风格” 设置边界的线条形式
“边界宽度” 设置边界的宽度
“编辑方式” 分为自定义和SQL语句两种方式:前者通过录入方式生成目录树,后者通过
设置编码格式写SQL语句来实现。SQL语句中必须确定分级字段和传输显示字
段。
“事 件” 设置调用函数来执行某些动作。
6.SKDBCheckbox
, 中文名称:复选框
, 功能:在表单中设置打勾编辑框功能
, 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-7
佳易科技,用友CDM广东授权交付中心~
图2-7
“文本” 输入复选框在表单上显示的名称
“数据连接”在设定好表单数据源的基础上,设置数据连接,它包括数据集、字段 和名称三项。
“数据集” 通过下拉菜单选择其对应的数据集;
“字段和名称” 在选择了数据集的基础上,点击“对应字段选择按钮”
来选择
构件的“取 值” 针对复选框的选中与否设置取值; “事件”、“数
据连接”在此“事 件” 设置选择调用某函数来执行某些事务
同一说明,所
以在其他构7.SKDBEdit 件的说明时
不再依次列
举。 , 中文名称:编辑框
, 功能:设置表单的编辑栏项
, 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-8
属性说明:略
佳易科技,用友CDM广东授权交付中心~
图2-8
8.SKDBText
, 中文名称:文本框
, 功能:在表单中填加文本
, 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-9;略
佳易科技,用友CDM广东授权交付中心~
图2-9
9.SKDBListbox
, 中文名称:选项列表
, 功能:在表单中设置选项列表
, 操作: 双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-10
图2-10
取值方式:两种方式
1) 标准格式:在显示窗口填写显示内容,在取值窗口填写实际取值;
佳易科技,用友CDM广东授权交付中心~
2) SQL语句:通过sql语句从数据库表内取得填充值; 10.SKDBCombobox
, 中文名称:下拉菜单
, 功能: 在表单中填加下拉选项列表框,作用同 ’选项列表’ , 操作: 双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-11
图2-11
“显示行数”下拉菜单显示的行数
“取值方式”参见“SKDBListbox”的取值方式,方法相同;
11.SKDBRadioGroup
, 中文名称:单选表
, 功能:在表单中填写单选表
, 操作:双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如下图2-12 介绍:略
佳易科技,用友CDM广东授权交付中心~
12.SKDBMemo
, 中文名称:文本
, 功能:在表单中设置文本编辑区域
, 操作: 双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如图2-13
图2-13
佳易科技,用友CDM广东授权交付中心~ 文本:标识构件区域的名称
13.DBChart
, 中文名称:统计图
, 功能:在表单中显示统计图标信息
, 操作: 双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如下图
数据集:该表所对应的数据集合,进行查询。。在这里选择所对应的数据集合。 图形类型:在这里选择对应的图形的类型,包括树图,饼图等。 对应字段:选择展现界面对应的字段和显示的名称。
高级:里面有显示的图形的高级选项,设置显示时候图形的界面的一些信息。 14.skdbImage
, 中文名称:图片
, 功能:在表单填加图片显示区域
, 操作: 双击构件或者鼠标右键菜单选择“编辑属性”会弹出窗口如下图2-14 略
佳易科技,用友CDM广东授权交付中心~
图2-14 15.SKuploadfile
, 中文名称:上传附件。
, 功能:在表单填加上上传文件附件的按钮。
, 操作: 双击构件或者鼠标右键菜单选择“编辑属性”弹出以下窗口,设计其基本属性。
16.SKBILLGRID
, 中文名称:明细项
, 功能:在表单上填加数据明细编辑框和明细编辑字段; 包括对“数据项”和“数据集合”
两部分。
, 操作: 双击构件或者鼠标右键菜单选择“编辑数据源”会弹出窗口如下图2-15
佳易科技,用友CDM广东授权交付中心~
图2-15
, 数据集合
“中文名称” 是对数据集合名称的描述;
“相关临时表” 是构建临时表时系统自动生成的临时表名称,在编辑完“表单总体”
和“数据项”并且校验通过的基础上点击窗口右下角的“构件临时
表”按钮,系统创建临时表时产生的表名称;
“保存到” 设置当前数据集保存的表
“单据展现SQL” 是对该单据再现时,用户可以通过SQL语句自定义再现单据内容;
在此处可以调用存储过程。 例如:
exec hr_mytest
exec hr_mytest :dzyid
“事件”、“动作” 是指对数据集进行某个操作时执行的事务动作;操作方法如下:
在“数据集事件”框选择事件,用鼠标点击事件的同时事件的名称
会显示到“事件”处,然后在“动作”栏输入相应的函数,点击保
存,这样即编辑好了一个事件的响应动作。
佳易科技,用友CDM广东授权交付中心~
, 数据项:其显示界面如下图2-16
图2-16
“增加、删除” 增加删除数据源字段。
“默认值” 设置填写字段的默认值 在数据
项中点击鼠“唯一” 设置字段值是否唯一性
标右键会弹“不能为空” 设置值不能为空 出右键菜单: “类型” 设置当前字段的类型 新增批
量字段; “排布” 设置字段的排列方式
增加单“固定列宽” 设置列的宽度值
个字段; “字段查重” 检查数据项字段是否重复。 删除单
个字段。
佳易科技,用友CDM广东授权交付中心~
第三章.基本编辑方法
单据是由不同的构件组合而成,所以对构件的操作即是设计单据的基本编辑方法。 1.添加删除构件
, 添加构件:鼠标单击选中的构件后到表单上再单击鼠标,构件即会显示到相
应的位置上;
, 删除构件:首先要选中预删除的构件,然后执行删除操作,删除方法如下两
种:
A) 直接按键盘上的“delete”键
B) 选择菜单:编辑,>删除
2.锁定构件
, 锁定构件:选择编辑菜单中锁定构件,所执行的功能是表单中的所有构件将不能移动; 3.对齐
功能:将错乱排列的几个构件有序的进行排序;
佳易科技,用友CDM广东授权交付中心~
如图3-1,几个错乱排放的构件
图3-1
对齐步骤如下:
, 方法一 选择多个构件的方法:
按住键1) 首先选中全部预对齐的构件
盘Shift键的2) 鼠标右键选择“对齐面板”,系统弹出如图3-2的窗口 同时鼠标选窗口左边一栏是水平对齐选项,右边是垂直对齐选项 择构件。
3) 按单据的要求选择对齐方式
多个构件对齐的基准是:
第一个选择的构件~
图3-2
, 方法二
1) 首先选中全部预对齐的构件
2) 选择菜单编辑,>对齐栏,系统会弹出如图3-3的窗口 用图列的形式标出了对齐方法,鼠标悬停在图标上时会有文字说明
3) 按单据的要求选择对齐方式
佳易科技,用友CDM广东授权交付中心~
图3-3
4.前置、后置
, 前置: 将表单上多个层次排列的构件前后层次的调换,把下面的层的构件移到上一层
的作用;
, 后置: 将表单上多个层次排列的构件前后层次的调换,把上面的层的构件移到下一层
的作用;
5.右键菜单操作
对构件的操作除以上提到外,还有在构件上点击鼠标右键弹出的菜单项,如图3-4
图3-4
编辑属性:(详见“构件属性说明”小节)
, 网格对齐:将构件按照表单上的网格坐标强制对齐,用于细微的对齐调整; , 大小:对构件的宽高的控制,也可以直接用鼠标拖动来实现;
, 比例:构件显示大小的比例,也可通过鼠标拖动来改变;
, 焦点次序:使用Tab键时光标移动的次序,编辑页面如图2-2-5
佳易科技,用友CDM广东授权交付中心~
图3-5
通过窗口上“上下箭头”键来调整先后的顺序;
编辑完毕按“确定”保存,按“取消”则放弃。
第四章.表单属性
表单的属性包括:表单属性总体、表单数据源和表单菜三部分,它是表单的三要素。下面我
们将详细讲解。
1.表单总体
在表单上双击鼠标或右键菜单可对表单总体进行编辑,如图4-1,包括三个标签:属性、事件、其他控制
佳易科技,用友CDM广东授权交付中心~
图4-1
, 属性标签 :设置表单的总体属性。
“表单SN” 在表单中指定的表单标识
“表单分类” 是指表单所属的类别;通过双击鼠标来进行选择,双击鼠标会弹出分类选择窗口如图4-2
表单
类型维
护:
在表
单类型选
择窗口对
表单类型
进行维
护。
佳易科技,用友CDM广东授权交付中心~
图4-2
“表单名称” 描述表单的中文名称;
“表单摘要” 录入表单摘要;
“关键字段” 存储主表中主键标识,如在进行查找、删除时的主线 “主表名称” 单据存储记录的主表,主要作用于某种记录的删除操作,不是单据数据的最
终存储表。
“模块标识” 是指设计的单据所属的模块。
“表单外观” 设置表单的显示高度和宽度;
“显示窗口” 设置表单的显示窗口位置;
“显示风格” 设置表单在显示时是否有工具栏;
“表单进入时状态” 可以设置进入表单中可进行的工作:新增或修改; “编号标识” 标号标识的输入
“打印标识” 打印标识的输入;
事件标签:主要控制表单在打开和关闭所执行的事务。
风格边界:用于显示在展现界面下边的界面的一些显示设置。 工作流设置:如果该表单服务于工作流,在这里设置工作流流向的设置。 其他控制 如图4-3
图2-3-5 “表单控制参数” 在这里对一些特殊功能进行设置;目前可以设置打印方式。例如:
存盘后提示打印=打印。则直接打印不进行预览,默认先预览再打印。
“处理过程” 用于设置表单所用的存储过程。
佳易科技,用友CDM广东授权交付中心~ 2.数据集合说明
基本定制原理
数据集合是一种数据组织方式,一个数据集合可能来源于一个或多个数据库表中的字段;一个表单可对应多个数据集合,根据实际需求建立相应的数据集合。数据集合可以针对一个构件如明细项构件,也可以是整个表单的数据集合。每张表单必须有一个数据源。
其详细介绍参见第二节中SKBILLGRID构件
3.弹出菜单
功 能: 将一些函数挂接在鼠标右键弹出菜单上在对单据操作时,可通过菜单执行一些功能。 执行路径:鼠标右键,>编辑弹出菜单
定制页面:弹出菜单的定制页面如图2-6-2
图2-6-2
构建菜单:通过“添加”、“删除”、“上移”、“下移”四个功能按钮来构建多级菜单; 菜单设置:“名称”输入菜单显示的名称,“快捷方式”选择菜单对应的快捷键,“执行功能”
通过鼠标双击弹出的窗口选择函数;
图标:菜单图标的选择,加号按钮添加、减号按钮删除;
佳易科技,用友CDM广东授权交付中心~ 预览:预览定制的菜单;
第五章.常用函数说明
函数在整张表单中发挥着很重要的作用,在8.0的表单工具中对于单据的操作大多数都是通过函数来执行的.下面将对函数统一说明.
函 数 名 称 函数的用途及用法 SELECTDATE 进行日期的选择
GRIDADDLINE 增加一行明细
GRIDDELLINE 删除一行明细
SAVEBILL 保存单据 主要用于:零散构件;零散构件+图形字段
零散部件,表格(一对多关系); 零散部件,多个表格(一对多
多关系;使用过程保存到其它位置
DELBILL 删除单据; 在beactive字段做标记
ADDBILL 新增单据
EXITBILL 关闭单据
SAVEBILLEXIT 保存单据并退出窗口
从单据打开另一单据时用openbillxx_单据sn 函数用法如下:
第一个x 可为1(表示以新增模式打开下一单据) OPENBILLXX_单据SN 可为2(表示以修改模式打开下一单据)
第二个x 可为1(表示关闭下一单据后不刷新上一单据)
可为2(表示关闭下一单据后刷新上一单据) DJ_SELECT_ 选择调用己有单据; 用法:DJ_SELECT_加
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
号 ZL_SELECT_ 选择资料检索方案; 用法:ZL_SELECT_加方案号 MOVEFIRST 移到第一条
MOVEPREV 移到上一条
MOVENEXT 移到下一条
MOVELAST 移到最后一条
EXPANDEEALLTR 全部展开表单上的树目录
CLOSEALLTREE 全部收缩表单上的树目录
佳易科技,用友CDM广东授权交付中心~ TREEFILTERGRID 人事系统函数;如:选择职员时,选中树目录后过滤第一个表格
中的记录。
CLICKSEL 表单中鼠标时打勾选择
SAVEGRID 只保存单据上第一个表格的内容
用savegrid只保存单据中的第一个表格中的数据时,前提如下:
* 另存表名必须存在
* 必须建立相应的临时表
* 表单主字段必须为要保存的表的主KEY
DJCHECK 人事专用审核函数,在SAVEGRID的基础上自动写当前操作员为审
核员等
DJCHECK1 人事系统中常用的发布功能
GRIDKEY 用于在表格中使用上下键导航键
SUBMOVEFIRST 按所属部门进行过滤其职员
SCROLLSUB 用于双重一对多输入的表格中。设置于主表格数据源中:‘滚动
之后’事件的相应动作中
maingridmovefirst 用于双重一对多输入的表格中,设置于主表格数据源中:在‘打
开之后’事件的相应动作中
postmaingrid 用于双重一对多输入的表格中,设置于主表格数据源中:在‘提
交之前’事件的相应动作中
FF(字段名) 用于字段运算求值。例如:金额=数量*单价,在‘金额’字段类
型改为"实际计算项",将默认值设为:ff('shl')*ff('dj') Sum(字段名) 字段求和函数。应用此函数时,其求和字段类型要改为汇总项。 GETMAXDJBH() 进入单据时自动显示出当前最大单据编号,字段改为实际计算项 printdesign 进入打印设计界面
printpreview 进入打印预览界面
第六章.表单总体设计流程
通过前面几节的介绍,我们对于表单工具已经有了一个整体的认识。下面我们以简历筛选表单(如图6-1)为例讲一下表单的整体设计流程。应尊循以下几点
原则
组织架构调整原则组织架构设计原则组织架构设置原则财政预算编制原则问卷调查设计原则
:
佳易科技,用友CDM广东授权交付中心~
图6-1
一、要先确定所作表单的目的,它在系统中起到什么作用;
二、要确定表单的总体属性、格式布局;
三、要确定表单的数据源,即表单中所涉及的字段内容;
四、要确定表单的弹出菜单功能项;
五、确定表单功以能需要由哪些构件实现;
六、确定表单功能实现所需要的函数;
七、确定数据存储的库表和存储逻辑;
以上几点确定后,我们便可以进行表单的具体制作了,它由以下几个步骤完成。 一、确定表单的总体属性:如图6-2,以下几点必须填写: , 设定表单SN:表单的唯一识别标识;
, 表单分类: 双击进行选择其类别,也可在弹出的对话框中增加新类别; , 表单的名称和摘要;
, 关键字段: 双击在数据源中进行选择;
, 主表名称;
佳易科技,用友CDM广东授权交付中心~ , 模块编号:所做表单所属的模块;
, 表单进入时状态:
, 编号标识:表单的单据标识。
图6-2
二、要确定表单的数据源
, 确定表单中涉及哪些字段,如下图6-3
佳易科技,用友CDM广东授权交付中心~
, 确定数据存储的表,事件所执行的动作,以及单据展现的SQL语句,注前保存
到内只能输入一张表,进行数据的存储,多表存储通过存储过程实现。 , 填写完毕后必须要创建临时表。
三、确定表单的弹出菜单实现的功能。如图6-3
佳易科技,用友CDM广东授权交付中心~
图6-3
四、确定表单需要由哪些构件实现及构件所调用的字段,此单据中用到了6个构件,分别为:
SKDBedit、SKDBcombobox、SKDBImage、Label、SKDBMemo、BitBtn等构件 五、确定实现功能所需的函数如图:
确定存盘
退出函数
六、数据的存储:目前我们的单据只涉及的单表的存储,如果进行多表存储可以使用存储过
程来实现。存储过程必须要带有两个参数:表单ID和挂帐ID。
这样一张表单就设计完了,进行存储后其最终体现效果如下图:
佳易科技,用友CDM广东授权交付中心~
附一:实用脚本
--EXCEL文件读取
SELECT * FROM
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\商品目录.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...商
品资料$
--游标使用示例
declare my_cursor cursor for
select dzycode from zhiydoc open my_cursor
declare @code varchar(20) fetch next from my_cursor into @code
while(@@fetch_status=0)
begin
print @code
fetch next from my_cursor into @code end
close my_cursor
deallocate my_cursor
--查找存储过程中使用的字段及库表等by wangkezhi declare @id int
declare @procCounts int
declare @key varchar(30)
declare @procname char(60) set @id=1
set @key='spkfk'
create table #procList
佳易科技,用友CDM广东授权交付中心~
(id int,
procName char(60)
)
create table #procText
(procname char(60),
sqls varchar(1000)
)
insert into #procList
select ROW_NUMBER() over(order by name) id, name as procName
from sys.objects where type='P' and is_ms_shipped=0 select @procCounts=count(id) from #procList while @id<@procCounts
begin
select @procname=procname from #procList where id=@id insert into #procText
(sqls)
exec sp_helptext @procname
update #proctext set procname=@procname where procname is null
set @id=@id+1
end;
select distinct procname
from #proctext
where sqls like '%'+@key+'%'
drop table #proctext
drop table #procList
--列举某一库表中所有字段
declare @tbname varchar(30),@col_num int,@colid int,@colname varchar(30),@sqltext
varchar(2000)
set @tbname='spkfk'
set @colid=1
set @sqltext=''
select name,colid into #tbname from syscolumns where object_name(id)=@tbname
select @col_num=count(*) from #tbname while @colid<=@col_num
begin
if @colid%10=0
set @sqltext=@sqltext+char(10)
select @colname=name from #tbname where colid=@colid set @sqltext=@sqltext+@colname+','
set @colid=@colid+1
end
佳易科技,用友CDM广东授权交付中心~
drop table #tbname
print @sqltext
--库表比较
declare @tbname varchar(50)
set @tbname='tmp_xsg212'
with org as
(select a.name from linyi.dbo.syscolumns a , linyi.dbo.sysobjects b where a.id=b.id and b.name=@tbname),
aim as
(select a.name from wms.dbo.syscolumns a , wms.dbo.sysobjects b where a.id=b.id and b.name=@tbname)
select * from aim
where name not in (select name from org)
--字段类型、长度比较
declare @tbname varchar(50)
set @tbname='mchk'
with a as
(select b.name fdname,c.name types,b.length,b.xprec,b.xscale from yining.skmaster.dbo.sysobjects a,yining.skmaster.dbo.syscolumns b,yining.skmaster.dbo.systypes c
where a.xtype='u' and a.id=b.id and b.xtype=c.xtype and a.name=@tbname), b as
(select b.name fdname,c.name types,b.length,b.xprec,b.xscale from skmaster.dbo.sysobjects a,skmaster.dbo.syscolumns b,skmaster.dbo.systypes c where a.xtype='u' and a.id=b.id and b.xtype=c.xtype and a.name=@tbname) select * from a full join b on a.fdname=b.fdname
where isnull(a.types,'')<>isnull(b.types,'') or isnull(a.length,0)<>isnull(b.length,0)
or isnull(a.xprec,0)<>isnull(b.xprec,0) or isnull(a.xscale,0)<>isnull(b.xscale,0) order by a.fdname desc
--------格式不对称检查-------
--查看大月小月日期错误
select * from sphwph where substring(sxrq,5,2) in ('02','04','06','09','11') and shl<>0 and
substring(sxrq,7,2)='31'
--检查2月日期错误
select * from sphwph where substring(sxrq,5,2) in ('02') and shl<>0 and substring(sxrq,7,2) in
('31','29','30')
佳易科技,用友CDM广东授权交付中心~
--检查有无格式不对的
select * from sphwph where substring(sxrq,5,2) not in ('01','02','03','04','05','06','07','08','09','10','11','12') and sxrq<>''
--检查字符长短有无错误
select * from sphwph where (len(sxrq)<>8 and len(sxrq)<>6)and sxrq<>''
--检查年份有无错误
select distinct substring(sxrq,1,4) from sphwph where shl<>0 and sxrq<>''
-------通用交叉表生成存储过程--------
CREATE PROCEDURE OpenCrossTable
@rows VARCHAR(1000), --汇总字段,可以是一个或者多个字段,
如:'spbh,spmch,shpgg,shpchd'
@cols VARCHAR(1000), --列表题字段,只能是单个字段,如'bm',最终结果形如: 采购部
销售部 仓储部
@sumfld VARCHAR(1000), --求合字段,只能是单个字段,如'hsje'.
@aggFun VARCHAR(1000), --聚合函数,指明汇总运算方式
@isSum CHAR(1) --是否显示合计项
AS
--lixd 2005-09-19
DECLARE @sql VARCHAR(8000),@tmpsql VARCHAR(8000)
SET @tmpsql='select distinct '+@cols+' AS c1 into ##T1 from #t_query'
EXEC(@tmpsql)
SET @sql='select '+@rows+','
SELECT @sql=@sql+''''+RTRIM(c1)+'''='+@aggFun+'(case when '+@cols+'='''+RTRIM(c1)+'''
then '+@sumfld+' else 0 end),' FROM ##T1
IF @isSum='Y'
SET @sql=@sql+'合计=sum(hsje) '
ELSE
SET @sql=left(@sql,len(@sql)-1)
SET @sql=@sql+' from #t_query group by '+@rows
EXEC(@sql)
DROP TABLE ##T1
GO
佳易科技,用友CDM广东授权交付中心~
--测试数据
create table #t_query(
rq char(10) null default '',
bm char(20) null default '',
hsje decimal(14,2) null default 0
)
insert into #t_query(rq,bm,hsje) values('2005-09-01','bm1',10)
insert into #t_query(rq,bm,hsje) values('2005-09-01','bm2',15)
insert into #t_query(rq,bm,hsje) values('2005-09-02','bm2',11)
insert into #t_query(rq,bm,hsje) values('2005-09-05','bm3',12)
exec OpenCrossTable 'rq','bm','hsje','sum','Y'
/*
bm rq hsje
-01 10 bm1 2005-09
bm2 2005-09-01 15
bm2 2005-09-02 11
bm3 2005-09-05 12
rq bm1 bm2 bm3
2005-09-01 10 15 0
2005-09-02 0 11 0
2005-09-05 0 0 12
*/
---------命令行安装表单控件-----------
@echo off
echo 注意:控件安装前请先关闭IE内核浏览器及KSOA\CDM主程序~
rem 注:该脚本暂不适用于64位系统~
pause
echo 如果存在则先删除原控件。。。
del /f %systemroot%\downlo~1\PSKwebclass.dll del /f %systemroot%\downlo~1\SmartClient.dll del /f %systemroot%\downlo~1\SmartClient.inf
echo 安装新控件。。。
佳易科技,用友CDM广东授权交付中心~
copy PSKwebclass.dll %systemroot%\downlo~1 copy SmartClient.dll %systemroot%\downlo~1 copy SmartClient.inf %systemroot%\downlo~1
echo 注册控件。。。
regsvr32 /s %systemroot%\downlo~1\PSKwebclass.dll regsvr32 /s %systemroot%\downlo~1\SmartClient.dll
echo 控件安装完成~
Pause
--------POS参数缺失--------------
DECLARE @shezmc VARCHAR(30)
SET @shezmc='非医药行业特性'
declare my_cursor cursor
for
select fangabh from possetupfanga
open my_cursor
declare @fangabh varchar(20)
fetch next from my_cursor into @fangabh while(@@fetch_status=0)
begin
IF NOT EXISTS (SELECT * FROM possetup WHERE fangabh=@fangabh AND shezdm='业务控制' AND shezmc=@shezmc)
INSERT INTO possetup(fangabh,shezdm,shezmc,shezlx,quesz,shurz,shuom)
VALUES(@fangabh,'业务控制',@shezmc,'逻辑型','否','是','')
fetch next from my_cursor into @fangabh end
close my_cursor
deallocate my_cursor
附二:系统变参简介
系统变参------:v_get
变参名称::v_get
佳易科技,用友CDM广东授权交付中心~
功能说明:左匹配查找
注 释:系统软件执行时,将其解释为: :v_get = '%'
示 例:提取商品资料
方案中定义: select spid,spbh,spmch,shpgg,shpchd,dw from spkfk
where beactive='是' and spbh like :v_get order by 2 asc
程序解释: select spid,spbh,spmch,shpgg,shpchd,dw from spkfk
where beactive='是' and spbh like '%' order by 2 asc
系统变参------:v_zjm
变参名称::v_zjm
功能说明:模糊查找字段,可使用在任何需要模糊查找的字段
注 释:系统软件执行时,将其解释为: :v_zjm= '%%'
示 例:提取商品资料
方案中定义: select spid,spbh,spmch,shpgg,shpchd,dw from spkfk
where beactive='是' and spmch like :v_zjm order by 2 asc
程序解释: select spid,spbh,spmch,shpgg,shpchd,dw from spkfk
where beactive='是' and spmch like '% % ' order by 2 asc
系统变参------:v_bh
变参名称::v_bh
功能说明:可使用在所有编号字段匹配,也是左匹配查找
注 释:系统软件执行时,将其解释为: :v_bh = '%'
示 例:提取商品资料
佳易科技,用友CDM广东授权交付中心~
方案中定义: select spid,spbh,spmch,shpgg,shpchd,dw from spkfk where beactive='是' and spbh
like :v_bh order by 2 asc
程序解释: select spid,spbh,spmch,shpgg,shpchd,dw from spkfk where beactive='是' and spbh
like '%' order by 2 asc
系统变参------:hz.字段名
变参名称::hz.字段名
功能说明:引用当前单据中抬头项字段作为查找条件
注 释:
示 例:选择调出货位
方案中定义: select hw as dchw,huowname as dchwname from huoweizl a,lsdtxb b where a.duifbsh=b.duifbsh and b.duifbsh=:hz.s_fdbs and (a.huowname like :v_get or a.hwbh like :v_get) order by huowname
程序解释: select hw as dchw,huowname as dchwname from huoweizl a,lsdtxb b where a.duifbsh=b.duifbsh and b.duifbsh= ‘fdy' and (a.huowname like :v_get or a.hwbh like :v_get) order by huowname
系统变参------:mx.字段名
变参名称::mx.字段名
功能说明:引用当前单据中的明细项字段作为查找条件
注 释:
示 例:提取商品的货位
方案中定义: select a.hwbh,a.huowname,b.hwshl from huoweizl a,hwsp b where a.hw=b.hw and b.spid =:mx.spid
程序解释: select a.hwbh,a.huoname,b.hwshl from huoweizl a,hwsp b where a.hw=b.hw and b.spid = ' SPH00000062 ' ---- 具体执行一商品内码
系统变参------:spid
变参名称::spid
佳易科技,用友CDM广东授权交付中心~
功能说明:获取当前商品的商品内码。
注 释:此变参的使用,在选择商品的时候就已经取得商品的spid
示 例:提取商品资料
方案中定义: select a.hwbh,a.huowname,b.hwshl from huoweizl a,hwsp b where a.hw=b.hw
and b.spid =:spid
程序解释: select a.hwbh,a.huowname,b.hwshl from huoweizl a,hwsp b where a.hw=b.hw and
b.spid = ' SPH00000062 ' ---- 具体执行一商品内码
系统变参------:bendian
变参名称::bendian
功能说明:读取本地ini配置文件中的本店标识。
注 释:
示 例:货位检索
方案中定义: select hw,hwbh,huowname from huoweizl where beactive='是' and
duifbsh= :bendian
程序解释: select hw,hwbh,huowname from huoweizl where beactive='是' and duifbsh= 'ZDA'
(此处为本店标识)
系统变参------:djbh
变参名称::djbh
功能说明:获取当前指定的单据编号。
注 释:
示 例:单据再现
方案中定义: select a.*,b.* from cwk a,mchk b where a.dwbh=b.dwbh and a.djbh=:djbh
程序解释: select a.*,b.* from cwk a,mchk b where a.dwbh=b.dwbh and a.djbh= ' HG00000001'
系统变参------:username
佳易科技,用友CDM广东授权交付中心~
变参名称::username
功能说明:取得系统登录的操作员名称。
注 释:一般用于单据的检索方案中。
示 例:提取操作员
方案中定义: select * from zhiydoc where dzyname = :username
程序解释: select * from zhiydoc where dzyname = '系统管理员'
系统变参------P_caozy
变参名称:P_caozy
功能说明:自动取得系统软件登录的用户名
注 释:主要使用在查询中,查询条件中直接使用
示 例:根据系统登录用户查询
方案中定义: select * from cwk where username = :p_caozy
程序解释: select * from cwk where username = '系统管理员' ----系统以管理员登录
系统变参------:p_bendian
变参名称::p_bendian
功能说明:读取软件ini中本店标识项设置的标识
注 释:
佳易科技,用友CDM广东授权交付中心~
示 例:查询本店中的数据
方案中定义: select * from cwk where bendian = :p_bendian
程序解释: select * from cwk where bendian = 'ZDA'
系统变参------:S_time
变参名称::S_time
功能说明:读取当前操作系统的时间
注 释:格式为hh:mm:ss
示 例:如图,在查询添加字段显示:
变参名称::lastmodifytime
功能说明:获取基本资料的最后更新时间
注 释:执行表de_timerec
示 例:连锁店通讯簿下载
方案中定义: select * from lsdtxb where beactive='是' and lastmodifytime>=:lastmodifytime
程序解释: select * from lsdtxb where beactive='是' and lastmodifytime>='2004-09-10 16:
变参名称::billno
功能说明:当前执行数据组织的单据编号
注 释:
示 例:直营配送出库单传输,执行前处理 方案中定义: update cwk set yishj='中' where djbh=:billno
程序解释: update cwk set yishj='中' where djbh=' ZCKFDY00000030'
变参名称::unitid
功能说明:登录终端的分店标识
注 释:类同的变参::from_unit 功能为任务发送方的分店标识
佳易科技,用友CDM广东授权交付中心~
示 例:加盟配送出库单传输,数据提取步骤
方案中定义: select djbh,dwbh as duifbsh,rq,convert(char(10),getdate(),21) as jiesriqi, :unitid as
fdbs from cwk where djbh=:billno
程序解释: select djbh,dwbh as duifbsh,rq,convert(char(10),getdate(),21) as jiesriqi, 'fdy' as fdbs
from cwk where djbh=:billno
变参名称::task_sn
功能说明:接收到任务的task_sn值
注 释:
示 例:连锁传输任务上报
方案中定义: exec sbp_lsd_jxdj :task_sn
程序解释: exec sbp_lsd_jxdj 'DEX00000003'
变参名称:P_quyu
功能说明:对当前登录的业务员所管辖的区域进行查询。
注 释:必须对业务员进行区域设置
示 例:查询系统管理员所管辖的区域。
方案中定义: select a.*,b.* from mchk a,jxdjhz b where a.dwbh=b.dwbh and a.p_quyufl
程序解释: select a.*,b. from mchk a,jxdjhz b where a.dwbh=b.dwbh and a.quyufl in ('北京')
变参名称::P_zuzhi
功能说明:对当前登录的业务员所属的组织进行查询。
注 释:对当前登录的业务员所属的组织进行查询。
示 例:查询系统管理员的人员组织层次中的查询。(当前登录为系统管理员,系统管理员管理业务员刘孜)
方案中定义: select * from cwk where p_zuzhi
佳易科技,用友CDM广东授权交付中心~
程序解释: select * from cwk where ywy in ('系统管理员','刘孜')
附三:表单开发常用代码
//分类树商品选择
function uf_selectsp() {
var con = Trim(SKBILLgrid2.Cell(SKBILLgrid2.CurrentRow,SKBILLgrid2.CurrentCol).Text);
var treeSql = "select hzflbh as id,hzflchina,hzflbh from hzfamx where hzcode = 'sp_init' order
by hzflbh";
var fieldkey = "id";
var dsOpensql = " select spid,spbh,spmch,shpgg,dw,shpchd,zjm from spkfk (nolock) "
+ " where beactive='是' "
+ " and (spbh like '" + con + "%' or zjm like '%" + con + "%' or spmch like '%" + con +
"%') "
+ " order by spbh ";
var fieldkey_filterExp = "spbh like ':id" + "%' ";
var multsel = "是";
var undispflds = "spid,zjm";
var caption ="商品选择";
var pageSize=-1;
var codemode = "2,2,2,2";
var width = 800;
var height = 600;
var notcopyflds = "";
var filterExp = "( spbh like '%:v_get%' ) or ( zjm like '%:v_get%') or ( spmch like '%:v_get%')";
var returnOne = "是";
CreateFilterSelTree(treeSql,fieldkey,dsOpensql,fieldkey_filterExp,multsel,undispflds,caption
,pageSize,dssub2,codemode,width,height,notcopyflds,filterExp,returnOne); }
//商品选择
function uf_selectsp(sender) {
if (sender=='spbh') {
var con = Trim(DsMain.Field('spbh').Value);
} else if (sender=='spmch') {
var con = Trim(DsMain.Field('spmch').Value);
}
//var con =
Trim(SKBILLgrid2.Cell(SKBILLgrid2.CurrentRow,SKBILLgrid2.CurrentCol).Text);
佳易科技,用友CDM广东授权交付中心~
var sql = " select spid,spbh,spmch,shpgg,dw,shpchd,zjm from spkfk(nolock) "
+ " where beactive='是' "
+ " and (spbh like '" + con + "%' or zjm like '%" + con + "%' or spmch like '%" + con + "%') "
+ " order by spbh ";
var undispflds = "spid,zjm";
var multisel = "是";
var pageSize = "-1";
var d_caption = "商品选择";
var d_width = 645;
var d_height = 375;
var notcopyflds = "";
var returnone = "是";
var filterExp = "( spbh like '%:v_get%' ) or ( zjm like '%:v_get%') or ( spmch like '%:v_get%')";
var idrowstyle = "";
if (ZlSelectImpl(sql, undispflds , dssub2, multisel, pageSize, d_caption, d_width, d_height, notcopyflds,returnone,filterExp,idrowstyle)) {
} else {
dssub2.field('spid').value = '';
dssub2.field('spbh').value = '';
dssub2.field('spmch').value = '';
}
}
//分类树单位选择
function uf_selectdw() {
var con =
Trim(SKBILLgrid1.Cell(SKBILLgrid1.CurrentRow,SKBILLgrid1.CurrentCol).Text);
var treeSql = " select hzflbh as id,hzflchina,hzflbh from hzfamx where hzcode = 'dw_init' order by hzflbh ";
var fieldkey = "id";
var opensql = " select dwbh,danwbh,dwmch,zjm,kehufl,quyufl,kehulb from mchk(nolock) "
+ " where beactive='是' and is_jg='否' and isxs='是' and danwbh like ':id" +
"%' "
+ " and (danwbh like '" + con + "%' or zjm like '%" + con + "%' or dwmch like '%" + con + "%') "
+ " order by danwbh ";
var multsel = "是";
var undisplay = "dwbh";
var caption = "单位选择";
var pageSize = -1;
var codemode = "2,2,2";
佳易科技,用友CDM广东授权交付中心~
var width = 800;
var height = 600;
var notcopyflds = "";
var filterExp = "( danwbh like '%:v_get%' ) or ( zjm like '%:v_get%') or ( dwmch like '%:v_get%')";
CreateSelTree(treeSql,fieldkey,opensql,multsel,undisplay,caption,pageSize,dssub1,codemode,width,height,notcopyflds,filterExp);
}
function uf_selectdw(sender) {
if (sender=='danwbh') {
var con = Trim(DsMain.Field('danwbh').Value);
} else if (sender=='dwmch') {
var con = Trim(DsMain.Field('dwmch').Value);
}
var con =
Trim(SKBILLgrid1.Cell(SKBILLgrid1.CurrentRow,SKBILLgrid1.CurrentCol).Text);
var sql = " select dwbh,danwbh,dwmch,zjm,kehufl,quyufl,kehulb from mchk(nolock) "
+ " where beactive='是' and is_jg='否' and isxs='是' "
+ " and (danwbh like '" + con + "%' or zjm like '%" + con + "%' or dwmch like
'%" + con + "%') "
+ " order by danwbh ";
var undispflds = "dwbh,zjm";
var multisel = "是";
var pageSize = "-1";
var d_caption = "单位选择";
var d_width = 645;
var d_height = 375;
var notcopyflds = "";
var returnone = "是";
var filterExp = "( danwbh like '%:v_get%' ) or ( zjm like '%:v_get%') or ( dwmch like
'%:v_get%')";
if (ZlSelectImpl(sql, undispflds , dssub1, multisel, pageSize, d_caption, d_width, d_height, notcopyflds,returnone,filterExp)) {
} else {
dssub1.Field('dwbh').value = '';
dssub1.Field('danwbh').value = '';
dssub1.Field('dwmch').value = '';
}
}
佳易科技,用友CDM广东授权交付中心~
//检索方案色标显示
var idrowstyle = " 'color: ' + if( ((xdqxx <= 0) or (xdqxg <= 0)) , 'red;', if( ((xdqxx > 0) and
(xdqxx < 90)) or ((xdqxg > 0) and (xdqxg < 90)), 'blue;', 'black;')) +"
+ " 'background-color: ' + if( (xdqxx > 90) and (xdqxg > 90),'yellow','white;') ";
//存盘代码
try{
if ( IsSpace(DjSave('提示')) ) {
uf_onload();
}
}catch(e){
alert(e.message);
}
//当月最后一天
DsMain.Field('end_rq').value = SqlToField("SELECT CONVERT(CHAR(10),DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,getdate()),120)+'01'),120)");
//操作员对应部门
var bmsql = " select top 1 b.bm from hr_bmzhygw a(nolock),bmdoc b(nolock) "
+ " where a.bmid=b.bmid and a.dzyid = '" + GetCookie('dzyid') + "' ";
DsMain.Field('bm').Value = SqlToField(bmsql);
//存盘检查
if (dssub1.RecordCount>0) {
for (var i=0;i
本文档为【用友CDM开发平台培训手册(精品)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。