天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1763|回复: 5

如何从已有的实体表(或视图)建立视图和表单

[复制链接]
perwang 发表于 2011-10-25 09:52:59 | 显示全部楼层 |阅读模式
需求描述:从已有的表(非系统自动建立的)或试图中读取数据,建立视图,点击某行后弹出查询表单。
要求视图和表单都是只读的。

已有的表结构如下
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
 楼主| perwang 发表于 2011-10-25 10:04:48 | 显示全部楼层
是不是sql语句中必须要加上id,domain列?我看以前别人的好多求助帖都没有说这两个列。他们是怎么实现的?
 楼主| perwang 发表于 2011-10-25 10:07:00 | 显示全部楼层
我的一个典型应用是:
select id,姓名 as item_姓名,性别 as item_性别 from elseDb.dbo.档案
是从另外一个数据库中取数据,同一台服务器同一个sql实例,因数据量较大需要实施获取,无法采用同步+映射方式。该如何实现查询表单?
admin 发表于 2011-10-25 10:08:22 | 显示全部楼层
您好,您的的操作很正确。如果您需要点击视图弹出页面还是需要用到映射表单。具体映射表单可参考我的模板“myApps功能示例”
 楼主| perwang 发表于 2011-10-25 10:10:20 | 显示全部楼层
但是映射也无法从视图映射到实体表啊。还有映射的数据同步是如何频率
admin 发表于 2011-10-25 10:34:08 | 显示全部楼层
额。您视图点一条记录也是链接到对应的表单啊。映射表单就是绑定对应的数据库存在的实体表的。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 16:02

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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