码迷,mamicode.com
首页 > 其他好文 > 详细

填报需求:行转列填报表的制作

时间:2020-06-17 23:15:01      阅读:54      评论:0      收藏:0      [点我收藏+]

标签:loading   需要   forward   效果   subject   lazy   制作   服务   zip   

需求描述

数据库中表结构如下图所示:

技术图片

填报表需要按照如下格式去展现数据让用户修改:

技术图片

这种填报需求可以归纳为是行转列填报表的制作。

实现原理

填报制作需要符合来源、界面、去向严格对应原则,那么我们可以拆开来看:
界面是行转列之后的效果,所以来源脚本里需要进行行转列处理,保证和界面一致。
去向里更新时按照实际数据库物理表结构更新,所以需要再转回来后进行更新。

实现示例

1、来源脚本

技术图片

A3:=A2.pivot(CLASS,STUDENTID;SUBJECT,SCORE) // 对取出来的数据进行行转列操作
A4:> 对象 1=A3 // 把处理后的数据作为对象数据展现到页面

2、去向脚本


技术图片

由于来源和界面都是行转列之后的数据,那么在更新库表前,需要还原回来,所以 B1、C1 都是这个操作(需要将差异数据更新入库,所以两个对象都需要处理):
B1:= 对象 1.pivot@r(CLASS,STUDENTID;SUBJECT,SCORE) // 页面新数据进行数据还原操作
C1:= 对象 1_old.pivot@r(CLASS,STUDENTID;SUBJECT,SCORE) // 旧对象数据还原

C2:>A1.update@uk(B1:C1,SCORES,CLASS,STUDENTID,SUBJECT,SCORE;SUBJECT,STUDENTID,CLASS) // 吧处理后两个对象的差异数据按照主键更新到物理表中

3、填报制作


为了方便示例制作和测试,这里使用行式填报类型:

技术图片

4、示例下载


点击 行转列填报示例.zip 进行下载。

示例使用的是内置数据库,需要开启内置数据库服务(点击上方菜单栏“本地应用”—“启动示例数据库”)

填报需求:行转列填报表的制作

标签:loading   需要   forward   效果   subject   lazy   制作   服务   zip   

原文地址:https://www.cnblogs.com/xmilu/p/13155105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!