发布时间:2022-10-14 09:22:00 访问数:873
单据开发一般涉及物理表的新增,针对二开新增物理表的Guid升级。
需要按照T+升级约定按照步骤修改如下文件:
Appserver\Upgrade\12.100.999.9999\DATA_DSTR_EAP_GUID_SecondaryDev.sql 修改过程可分为如下5步。
a.清理垃圾数据脚本
b.清除相关字段上的索引和约束
c.更新id值,将Guid更新为int 类型的id
1) 将现有字段fieldName改名为_gFieldName
2) 新增一个字段fieldName
3) 从原表更新本表的fieldName
d. 删除_gFieldName
e. 重建索引
1.2.1元数据
早期版本二开账套中的元数据会自动升级上来。但原有的插件无法直接在12.1安装,需要把GUID值替换为Int型,并且不能直接插入。所有引用的字段需要重新更新为【被引用字段】新ID值。
举例如下:
insert into eap_reportfield([title],[selectFieldName],[aliasName],[whereFieldName],[isBundleField],[isMain],[canGroup],[defaultGroup],[canClassiced],[canLinkage],[canRowGroup],[defaultRowGroup],[canColumnGroup],[isMultiLevelGroup],[ideap_reporttemplate],[idparent],[parentDataField],[isColumn],[lastLevelIdentifyField],[dtoprop],[RefDtoProp],[StaticGroup],[IsHeaderSum],[IsColSpan])
values('供应商编码','Vendor.Code','VendorCode','Vendor.Code','0','0','0','0','0','0','0','0','0','0','b33c5dc5-2c3b-4a5b-9191-bad08fad29dd',null,null,'1',null,'','','0','0','0' )
--以往来单位报表字段数据为例,说明如何修改以上数据idparent
--先查询当前自身结点VendorCode的ID,返回29125
select id from eap_reportfield where ideap_reporttemplate=9999 and aliasName='VendorCode'
--先查询父结点ID,返回29123
select id from eap_reportfield where ideap_reporttemplate=9999 and aliasName='VendorInfo'
--修改当前结点数据的idparent
update eap_reportfield set idparent=29123 where id=29125
脚本举例
delete EAP_Menu where Code='WO8081'
insert EAP_Menu(Code,name ,Grade,SupMenuID,EndGrade,[order],
IsItemGroup ,IsControl ,AccountType ,Visibility ,RequestUrl,
inID,ExpressionName,iscommonuse,ShowIndex2,MenuIn)
values('WO8081','委外综合分析表',2,'WO80',1,200,1,0,1,
,'BAPView/ReportWithSimpleSearch.aspx?ReportName=WO_WOAnalysisRpt', 'WO_WO80_WO8081','WO',1,14,3)
注意修改一下三部分:
修改字段名称[order] 为ShowIndex;
增加iscommonuse值为1;
增加ShowIndex2值为其显示顺序。
查询枚举中GUID对应的新枚举ID。
select ID,Code,Name from eap_Enumitem where idEnum in(select ID from eap_Enum where name='[枚举名称]')
--举例:往来单位性质
select ID,Code,Name from eap_Enumitem where idEnum in(select ID from eap_Enum where name='PartnerType')
--单据类型 出入库类别等档案需要按照需要按照编码取值
select ID,Code,Name,* from SM_VoucherType where code='[单据类型编码]'
--举例:采购入库 SA01t报价单
select ID,Code,Name,* from SM_VoucherType where code=' SA01'
--单据类型 出入库类别等档案需要按照需要按照编码取值
select ID,Code,Name,* from AA_RDStyle where code='[出入库编码]'
--举例:采购入库
select ID,Code,Name,* from AA_RDStyle where code='101'
1.3.1报表配置文件【可选步骤】
t 因为报表加载机制变化,原来把报表的配置文件已经修改到数据库中;
<!-- 预测单统计表-->
<reportAdvancedSearch name="MP_IntendSaleOrderSumRpt" code="MP4001">
<view>
<add name="MP_IntendSaleOrderSumRpt"
type="Ufida.T.MP.Report.UIP.MPSumRptSearch,Ufida.T.MP.UIP" searchControlIsPost="false"></add>
</view>
</reportAdvancedSearch>
配置文件和Eap_ViewSet的字段对应关系:
Name |
ParameterValue |
advancedSearchTemplateCode |
MP4001 |
advancedSearchTemplateName |
MP_IntendSaleOrderSumRpt |
advancedSearchViewControlIsPost |
0 |
advancedSearchViewName |
MP_IntendSaleOrderSumRpt |
advancedSearchViewTypeInfo |
Ufida.T.MP.Report.UIP.MPSumRptSearch, Ufida.T.MP.UIP |
ViewSetItem中新增三个Name值,对应的ParameterCode值如下:
Name |
ParameterCode |
advancedSearchViewChartName |
1761 |
advancedSearchViewChartType |
1761 |
advancedSearchViewChartJSPInfo |
1761 |
二开中用到的JS脚本修改,分两T+扩展机制相关和插件内部逻辑的修改部分,本文只涉及扩展机制相关内容,扩展机制中涉及的修改举例如下。
原有代码
window.attachEvent("onload", function () {
// 这里原有的代码逻辑...
}
修改为:
$(document).ready(function(){
//这里改写你的代码逻辑,并支持多浏览器...
});
为了提升性能,12.1网站默认强制要求为经预编译后发布网站。因此页面需要预编译。操作步骤如下:先打开网站属性页面,去掉允许更新此预编译站点的勾选,选中使用固定命名和单页程序集。这样设置发布后的站点采用的是预编译模式。t
进入发布网站选项,选设置—〉配置,选不合并,为每个网页创建单独程序集。
发布后的bin目录:
注意:二开不支持使用全局资源,只支持本地资源。
将发布后的目录中bin目录和代码目录拷贝复制到T+产品目录\WebSite下。
调整菜单需要安装RAP快速开发工具,安装后在开发管理菜单中找到【菜单】功能,,通常需要新建一个一级菜单,如图新建【test管理】:
然后找到对应二开新增菜单、勾选是否显示、是否常应用即可。
解决办法:可参考本文【数据库相关内容】修改GUID字段
原因:找不到GUID对应引用字段ID。
解决办法:查询对应的ID,更新改字段,可参考本文【数据库相关内容】
安装卸载软件之前请对二开的部署脚本和代码进行手工备份。