找回密码
 注册账号

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

初学者课程:T3自学|T6自学|U8自学软件下载课件下载工具下载资料:通资料|U8资料|NC|培训|年结积分规则 | 使用常见问题Q&A
知识库:U8 | | NC | U9 | OA | 政务U8|U9|NCC|NC65|NC65客开|NCC客开新手必读 | 任务 | 快速增金币用友QQ群[微信群]
查看: 4282|回复: 2

BS表单编程注意事项

[复制链接]
发表于 2010-11-8 10:25:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册账号

×
本帖最后由 windy8848 于 2010-11-8 10:27 编辑

界面风格:
1. 开发使用1024×768分辨率
2. 新建一个表单,要首先调整界面,界面排布紧凑点,不要留太多空白地带
3. 必须添加默认主菜单;SKBILLGRID一般添加默认弹出菜单
4. 默认让SKBILLGRID自动扩展一行,查询结束后,如果展现字段较多,超过屏幕宽度,一般自动让表格根据数据内容扩展;字段不足屏幕宽度时,在Grid控件中指定字段显示宽度。
5. SKBILLGRID一般要使用行和列自动扩展,如果界面存在多个SKBILLGRID,看需要选择使用Panel
6. text和edit控件距离要适当,不要加:符号
7. 有查询的,一般不要在onLoad事件中自动查询,增加一个查询主菜单。
8. 查询中存在多页面的,默认只查询当前活动页面,当页面切换后在查询其他页面内容
9. 明细不要显示内码字段,要将需要看到的关键字段排布位置靠前
10. 单据或查询多条明细,一般需要增加斑马线,方便辨识
11. 显示数据库字段一般使用SKDBtext控件,有录入编辑操作的使用SKDBedit控件
12. 控件对应字段:金额、数量字段右对齐、字符类型左对齐
13. 日期选择对应的控件,要设置为只读,只支持双击选择
14. 查询记录超过100条以上,请选择使用导航条
15. 涉及lsdtxb选择的,请显示机构标识和名称,不要显示分店标识和名称
界面可操作性:
1. 如【商品条码录入】将抬头商品录入明细后,明细自动增加一条记录,同时应将光标定位到[商品编号]输入处,以方面用户操作,光标不要停留在[商品条码]上
2. 明细数据集展现后,不需要维护的字段,必须设置成只读
3. 明细相关拦截,如上下线维护,必须保证下限不能高于上限
4. 尽量不要使用下拉框控件,如显示内容超过10条,请使用资料检索方案,方便助记码查找。
5. 字段内容为[是]或者[否]的,请使用下拉框控件,防止输入错误
6. 资料检索,一般编号左匹配、助记码模糊
7. 表单中有记录删除动作时,要挂在主菜单以及右键菜单上,方便操作。点击删除功能时,首先应弹出确认提示,通过后还要判断是否有需要删除的记录
编码风格:
1. 函数命名应遵守编程规范要求,名字有实际意义,排版简介
2. 数据集存盘:应使用try捕捉可能出现的异常,并将异常信息带回用户操作界面
3. 单据存盘前,需要判断是否存在单据明细等信息,如不存在,不能存盘
4. 提交完成前,必须删除注释信息,copytopub等调试信息
5. 数据集字段和控件绑定问题:一般赋值给数据库字段,不要直接给控件复制;取值可以从控件
6. rq 取客户端日期  ontime取客户端时间 riqi、kaipiaorq取服务器日期
存储过程:
1. 使用过程,先申请过程名称和错误区间号,需要事务的事务使用:tran_过程名称
查询规范:
1. 查询条件一般包含:起始日期、终止日期、部门、登记人;明细中包含商品信息的还可以在抬头上增加按照商品过滤的查询条件;
2. 查询内容一般只包含当前机构的信息;明细数据集要求支持单据再现功能
3. 查询一般增加分页控件,每页默认显示30条数据,且设置固定行高
表单存盘书写范例:
function uf_save(){
    try{
        if (!IsSpace(DjSave('提示'))) return;
AddBill()。。。或其他后继处理
    }catch(e){
        alert(e.message);
}
}
把需要校验的内容放到saveCheck中,使用DjSave()会自动调用存盘校验函数
function uf_saveCheck(){
    if (DsMain.Field('bm').Value == ""){
        alert("请选择填报部门!");
        return false;
}
。。。
将存盘前赋值内容写在校验的最后
var ontime=CurDateTime();
DsMain.Field('ontime').Value=ontime.substr(11,8);
。。。
}
如果使用数据集存盘如,dssub1.save,则系统不会自动调用存盘校验函数,需要自己在平台上直接调用
function uf_save(){
if ( !uf_saveCheck() ) return;
    try{
        if(!IsSpace(dssub1.Save())) return;
  …
    }catch(e){
        alert(e.message);
    }
}

――――――――――――――――――――――――――――――――
请在开发前仔细阅读编程规范要求!

补充内容 (2016-2-20 15:23):
欢迎大家加入时空软件交流群279958350
发表于 2012-2-3 09:29:00 | 显示全部楼层
学习了,这个暂时还不太懂
回复 点赞 拍砖

使用道具 举报

发表于 2015-5-12 10:27:47 | 显示全部楼层
细节还是很多的,不错的汇总,可以参考!
回复 点赞 拍砖

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-5-5 09:41 , Processed in 0.042954 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表