0

我创建了一个表单,在其中将记录添加到子表中。但是我不希望人们能够编辑辅助键,只能从父主键列表中选择它或类似的东西。我怎么能这样做?

表格:

CREATE TABLE CHAMPIONS (CNAME VARCHAR2(15) NOT NULL, PRICELEVEL NUMBER(1) NOT NULL, ROLE VARCHAR2(10) NOT NULL, HPLEVEL NUMBER(2) NOT NULL, ATKLEVEL NUMBER(2) NOT NULL, MAGICLEVEL NUMBER(2) NOT NULL, DIFFLEVEL NUMBER(2) NOT NULL); 

CREATE TABLE SKINS (SNAME VARCHAR2(20) NOT NULL, CNAME VARCHAR2(15) NOT NULL, PRICELEVEL NUMBER(1) NOT NULL); 

ALTER TABLE Champions ADD CONSTRAINT pk_Champions PRIMARY KEY (CNAME);

ALTER TABLE Skins ADD CONSTRAINT fk_Skins FOREIGN KEY (CNAME) REFERENCES champions(CNAME);
4

2 回答 2

0

信息太少,无法给出答案,但我可以试一试。

您可以在LOV明细表中创建 s 并将其LOV从父表主键中删除,也可以将文本项与 LOV 链接起来,您需要使用与sWHEN-VALIDATE-ITEM中相同的查询放置触发器,以便在如果用户键入而不是使用,您可以验证输入,然后在输入无效的情况下提醒他们,并在输入正确值的情况下获取正确的主主键。LOVRECORD GROUPLOV

下面是带有 LOV 按钮的数据块的外观 -

在此处输入图像描述

下面是STORE数据块中项目的触发器-

在此处输入图像描述

考虑到查询中的主表,您可以对 RG 进行与触发器中的查询类似的编码。

于 2012-11-30T22:20:09.590 回答
0

获得此功能的最简单方法是基于 Champions.cname 创建一个 LOV 并将其附加到项目表单列 skins.cname(如果您不熟悉创建 LOV:s,请参阅 Forms 帮助)。然后将项目 skins.cname 的项目属性“从列表验证”设置为“是”。这将根据现有的 cname 值验证所有输入的值。

于 2012-12-03T06:32:19.153 回答