目录
1 简介
2 准备电子表格
3 初始化
4 根据电子表格生成数据库表并导入数据
5 使刚创建的表显示在待编辑列表中
6 开始编辑单表
7 一段代码用于实现中文字段名、调整列宽、只读字段、隐藏字段
1 简介
单数据表是最容易实现的表。由于不需要从零开始一个一个地增加字段,而是基于excel数据表,自动判断每列数据类型,自动根据excel列名称生成数据库字段名称,整体速度很快。
简单操作流程是:
根据已有的电子表格,或者新建一个电子表格;
用程序中的工具打开这个表格,建立表结构;
根据需要导入数据,也可以不导入;
程序中简单设置一下就可以编辑数据了。
2 准备电子表格
制作一个简单的电子表格。
3 初始化
初始化过程,删除所有数据库表,然后生成几个存储系统数据的表格。
4 根据电子表格生成数据库表并导入数据
操作步骤:工具——建表与导入
创建表完成后,左下角列表中显示表名称。双击表名称,显示导入的数据。但字段名称显示为英文。
5 使刚创建的表显示在待编辑列表中
左下角显示所有的表,这些表中,只有一个或几个表需要编辑。我们修改一下 sys_tables,使刚创建的“供应商”表显示在左上角待编辑列表中。
6 开始编辑单表
双击左上角编辑列表中的“供应商”,开始编辑。 这次,字段名称显示为中文,与原始电子表格中一致。
7 一段代码用于实现中文字段名、调整列宽、只读字段、隐藏字段
整个程序没有非常特别的代码,都是一堆基本操作的堆砌。这里发布一小段代码。
// 设置 queryFields 的字段宽度,否则字段宽度太长
queryMain.FieldDefs.Clear;
for i := 0 to queryMain.FieldCount - 1 do
begin
if queryMain.Fields[i].DisplayWidth > 12 then
queryMain.Fields[i].DisplayWidth := 12;
end;
//显示 crud 主表中文字段名称和其他属性-------------------
queryMain.FieldDefs.Clear;
for i:= 0 to queryMain.FieldCount - 1 do
begin
sFldEn := lowercase(trim(queryMain.Fields[i].FieldName));
// 字段属性设置
if queryFields.Locate('table_name_en;field_name_en', VarArrayOf([tableEn_crud_master, sFldEn]), [loCaseInsensitive, loPartialKey]) then
begin
// 字段中文名
queryMain.Fields[i].DisplayLabel := queryFields.FieldByName('field_name_cn').AsString;
// 字段只读
if queryFields.FieldByName('if_readonly').AsInteger = 1 then
queryMain.Fields[i].ReadOnly := True;
// 字段是否可见
if queryFields.FieldByName('if_visible').AsInteger = 1 then
queryMain.Fields[i].Visible := True
else
queryMain.Fields[i].Visible := False;
end;
end;
//显示 crud 主单表中文字段名称和其他属性===================