需求描述:从已有的表(非系统自动建立的)或试图中读取数据,建立视图,点击某行后弹出查询表单。
要求视图和表单都是只读的。
已有的表结构如下
id,varchar,填入的是guid值
姓名,varchar
性别,varchar
我是按如下步骤实现的:
1、依据查到的资料,建立视图,在视图的【过滤】中使用SQL方式。
"select 姓名 as item_姓名,性别 as item_性别 from 档案"
2、定义列,使用值脚本定义各个列
var doc =getCurrentDocument();
doc.getItemValueAsString("姓名");
var doc =getCurrentDocument();
doc.getItemValueAsString("性别");
3、建立菜单,设置权限,前台登陆,点击该菜单时提示:
*列名 'ID' 无效
然后把sql语句改成了
"select id,姓名 as item_姓名,性别 as item_性别 from 档案"
4、再运行,提示:
*列名 'DOMAINID' 无效。
5、将查询过滤中的sql脚本改成如下
var domainid=getDomainid();
var sql="select ID,'"+domainid+"' as domainid,姓名 as item_姓名,性别 as item_性别 from 档案"
sql;
6、前台运行,能显示视图及数据,但跟踪sqlserver执行语句发现是嵌套子查询(可能是考虑分页吧),比较繁琐
SELECT top 2147483647 * FROM (select ID,'11e0-fc72-e6f2ae6e-876e-6b14217dc6c3' as domainid,姓名 as item_姓名,性别 as item_性别 from 档案) ordtb WHERE DOMAINID ='11e0-fc72-e6f2ae6e-876e-6b14217dc6c3' ORDER BY ordtb.ID
以上是我的操作过程,是否正确?
建立视图后,如果点击某行弹出只读的查询界面,如何设计?这一步没找到相关资料,请教
如果是已有的实体表好像可以用映射表单,但是视图好像就不可以了,如何解决?求助
运行环境:
win7
版本2.5 sp3(但界面上显示的是“beta测试版”,myApps V2.5.0.7900beta测试版 天翎科技 版权所有)
数据库是系统自带的数据库
新建的应用是sqlserver数据库,版本2000,sp3 |