Crud常用开发

输入图片说明

建表 #

推荐使用mysql做为目标数据库, 因为这是深度测试过的, 支持在界面进行建表, 但可能用sql建表更方便, 以下为推荐的建表样列

-- mysql
create table work_order(
    id int PRIMARY KEY auto_increment,
    工单号 varchar(50) unique KEY,
    工单类型 varchar(50),
    工单数量 int,
    create_time datetime DEFAULT CURRENT_TIMESTAMP,
    update_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    updater varchar(50) comment '更新人',
) comment '工单';

-- sqlite3
CREATE TABLE work_order (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    工单号 TEXT UNIQUE,
    工单类型 TEXT,
    工单数量 INTEGER,
    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    update_time DATETIME DEFAULT (datetime('now')),
    updater TEXT
);

-- id,create_time,update_time,updater建意都保留

显示表格 #

  • 在开发菜单中, 点数据集0的编辑器, 执行完成建表语句之后输入
select * from work_order
  • 保存数据集之后, 在数据源的菜单–>刷新设定中配置缓存时间为0

如需控制字段的显示,可以在配置面板中的模型管理中配置"短显" 和 “长显”

新增修改 #

数据写入数据集 #

  • 新增一个懒加载数据集,假设是1号数据集, 在数据集编辑器中输入表名, 如work_order,
  • 选中表名, 点击数据源菜单–>数据填报, 将自动生成配置项, 保存即可

新增数据配置 #

  • 回到仪表盘开发界面,在工具条上点击列表样式的图标, 在下方会出现配置面板
  • 点击面板中模型管理, 点击查询按钮(不用输入表名), 将自动带出所有字段列表,
  • 在右边的菜单中勾选上需要新增,修改,必填的字段,比如这个表, 我们可以选工单号,工单类型,工单数量
  • 之后点击预览和保存,此时点击左上角的加号图标就可以新增数据了, 可以试着新增一些数据

编辑修改数据功能 #

  • 修改数据的功能需在配置面板中, 切换到新增修改页, 将编辑功能开启
  • 点击保存后, 即可在每一条数据的右方看到编辑图标
  • 具体能修改的字段参考上节"新增数据配置"的方法

默认新增修改界面是弹窗, 如果需要直接在界面显示可在"新增修改"配置界面开启"新增头"

数据过滤 #

  • 数据过滤是指在表格查询出来数据后, 用户可以输入任意字符进行模糊查询
  • 开启方式只需要在配置面板的模型管理中勾选相应的字段后保存即可
  • 支持模糊,>=<等过滤方式

条件查询 #

  • 条件查询是指用户需要通过选项向后台查询数据的要求,
  • 首先需要在配置面板的模型管理中勾选相应的字段后保存,
  • 然后在0号数据库集中编写相应的sql, 比如我们如果选择了"工单类型"这个字段做为选项,则sql的写法如下:
select * from work_order
where 1=1 
/* and 工单类型 = '$工单类型' */

小提示,其实条件查询的字段名不一定要来源与已有的字段, 可以自定义名称

选项的实现 #

  • 在查询或录入的时候, 有些字段需要是选项字段
  • 首先需要在配置面板的模型管理,将相应的字段类型设定为"选择",然后保存

自定义固定选项 #

  • 切换到"筛选过滤"的面板, 进入"选项定义"的编辑框, 输入如下,即可定义A,B两个固定的选项
{"工单类型":[["A"],["B"]]}
  • 如果有更多的字段配置可以如:
{"工单类型":[["A"],["B"]], "字段X":[["X1","名1"],["X2"]]}

自动化固定选项 #

  • 如何实现从数据库获取选项而不是自定义,我们需要新增一个懒加载数据集,比如2号数据集, 写入以下代码, 然后在"数据管理"面板配置中的"选项"中填入数据集的编号2即可
-- 注意只要字段名对应上即可
select distinct 工单类型 from work_order;
select xx as 字段X from xx_table
  • 可以查询多个字段,在选项中将全部显示,但只取第一个字段做为值
select city_code, city, province, from xx_table

远程查询选项 #

  • 针对选项较多的情况, 需要使用远程模糊查询的方式来获取选项
  • 比如先新建一个懒加载数据集,编号为6, 写入
select 工单号 from work_order where 工单号 like '%$工单号%' limit 10
  • 在"数据管理"面板配置中的"选项ds绑定"中填入: 工单号:6, 即可

当字段类型非select时, 为input组件,如需在移动使用,推荐

编辑界面数据自动带出 #

  • 在"数据管理"中设定"带出ds绑定", 如: 工单编号:3
  • 在指定的3号数据集中编写查询,如
select 工单类型,工单数量 from work_order
where 工单号 = '$工单编号'
  • 即可实现选择工单编号时,自动带出工单类型,工单数量的数据

可变维度 #

  • 在筛选过滤页面中,设定可变维度,如: province,city
  • 在表格查询中编写,注意参数前带_, 即可实现切换不同维度统计
select 
customer,
/* $_province, */
/* $_city, */
sum(qty) as qty
from programmers_food
group by
customer,
/* $_province, */
/* $_city */

后端分页 #

  • 设定中开启后端分页
  • 在表格数据集(一般是0号), 增加总数量的查询, 并加入limit 和 offset参数
select count(1)  from programmers_food
where 1=1 /* and province = '$province' */;

select * from programmers_food
where 1=1 /* and province = '$province' */
limit $limit /* offset $offset */

表格展开(树形) #

  • 在"数据管理"设定"展开"数据集, 如4号数据集
  • 编写数据集查询即可,注意传参为表格点击行的第一列的名称和值
select * from work_order where id = '$id'

EXCEL导入 #

  • 在"数据管理"面板的"导入"中填写之前新建的写入数据集, 如1号,保存后即可
dataset={
    "table":"work_order(工单号,工单类型,工单数量)",
    "id":"id",
    "fDict":{},
    "sFields":[],
    "autoDict":{"updater":"$username"}
}
  • 如此案例需要上传excel的字段有:工单号,工单类型,工单数量

注意updater不需要填写, 因为我们在1号数据集中配置了自动填写updater的设定

上传图片或文件 #

  • 在配置面板的模型管理,将相应的字段设定为图片或文件即可

注意关于权限控制, 只有在仪表盘中按用户分配的权限的人才可以上传, 用组分配的不可以上传

对表格数据进行加工 #

  • 假设0号数据集对应的是表格数据, 那么你可以进入0号数据集的图形开发中,将代码替换为
data0=__dataset__;
  • 如果需要进一步的加工只需编写更多逻辑即可, 最终把结果赋值给data0
  • 假设我们需要对每一行数据进行计算得到新的列
//假设数据样列[["省","人数","总收入"],[...]]
data0=__dataset__;
for (let i=1;i< data0[0].length;i++){
    data0[i].push(data0[2]/data0[1]);
}
data0[0].push('平均收入');
  • 假设我们需要从另一个数据源比如3号数据集, 查询数据并与data0拼接,然后透视
data0=__dataset__;
ds_refresh(3);
data0 = ds_leftjoin(data0, data3);
data0 = ds_pivot(data0,indexs=[1,0],column=2,value=3);

更多配置参考 CRUD配置说明