德尔福创建用户表单



我正在Delphi中制作一个用于文档跟踪应用程序的用户表单。我对功能输入新条目(记录(查看列表感兴趣...(日期、文件名称、身份证,...(。

我的问题是我不知道如何为多个用户实现这些功能。目前,我有5个用户。每个用户都有唯一的输入数据(记录(字段(列(和视图字段(列(,每个用户也是唯一的。可能会有更多的用户。

那么,如何为这种形式实现这些功能呢?如何为每个单独的用户分配不同的数据(字段(以供输入和查看?这就是我不明白的。这是应用程序的分布式功能吗?如果是,如何实现?

请注意,我不希望在应用程序的代码中静态分配用户,例如:

if(username='user1') then {
input();
view();
}
else if (username='user2') then {...}
...

因为,每次有新用户时,开发人员都必须回到应用程序的代码并对其进行硬编码。这是没有效率的,是一个糟糕的实现。相反,我希望它是动态的(如果这是正确的术语(。如何实现这一点?

注意:我正在使用带有 MySQL DBMSdbExpress工具以及RAD Studio XE7 Architect

如果我正确理解了您在问什么,那么您似乎不熟悉以所谓的主-从关系运行的表/数据集的概念。 这些在德尔福很容易设置。

一旦你熟悉了 M->D 关系,我想你会意识到你应该问的是如何在你的应用程序中设置一个,而不是将单个用户硬编码到你的表单中的问题。

在您的情况下,您目前缺少的是用户详细信息表。 我们称之为"用户"表。 通常,这将包含它们的名称,显然,和某种唯一标识符(最好是用户数据库表中的"主键"(,但请,他们的密码来访问数据库,特别是不是纯文本。

创建用户表后,您可以为其创建显示网格 (TDBGrid( 和输入/编辑表单。

然后,如果您还没有它,您可以为用户的文档设置网格和编辑表单(我将称之为文档表(。

完成此操作后,剩下的主要工作是在 Delphi 项目中设置用户表(主表(和文档表(详细信息(之间的主-从关系。

如果您愿意,可以有一个包含两个网格的窗体,即"用户"网格和"文档"网格,当您滚动浏览"用户"网格时,您将看到"文档"网格仅显示其文档记录。

有关如何设置大纲的详细信息因您使用的表/数据集的类型而异,因此您需要在线搜索有关如何执行此操作的详细信息。 从广义上讲,这是将 TDataSource 连接到"用户"表并将"文档"表的"数据源"(或"主源"(属性设置为指向"用户 TDataSource",然后设置"文档"表的其他几个与表类型相关的属性。

早在 D7 之前,每个版本的 Delphi 都附带了一个演示应用程序"MastApp",它说明了如何在多个表之间使用主从关系。 我建议您查看Delphi版本的MastApp,然后研究如何为您实际使用的Delphi数据集类型设置M->D关系。

相关内容

最新更新