提交 f8c5c2d2 编写于 作者: ibizdev's avatar ibizdev

tony001 发布系统代码 [后台服务,演示应用]

上级 20f04015
.ibizbookinter-func-kan-ban-view-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.deepskyblueToolBar {color:white !important;background-color:#108cee !important;}
.ibizbookinter-func-kan-ban-view-layout{
display: block;
.ibizbookinter-func-kan-ban-view-layout {
display: block;
}
......@@ -4,10 +4,12 @@ import IBIZBOOKInterFuncKanBanView_layoutBase from './ibizbookinter-func-kan-ban
import view_kanban from '@widgets/ibizbook/inter-func-kanban-kanban/inter-func-kanban-kanban.vue';
import view_searchform from '@widgets/ibizbook/default-searchform/default-searchform.vue';
import view_searchbar from '@widgets/ibizbook/-searchbar/-searchbar.vue';
@Component({
components: {
view_kanban,
view_searchform,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
.ibizbookusr2-medit-view9-layout{
position: relative;
}
.ibizbookusr2-medit-view9-layout{
display: block;
.ibizbookusr2-medit-view9-layout {
display: block;
}
......@@ -3,9 +3,11 @@ import { Component } from 'vue-property-decorator';
import IBIZBOOKUsr2MEditView9_layoutBase from './ibizbookusr2-medit-view9-layout-base.vue';
import view_meditviewpanel from '@widgets/ibizbook/main-multieditviewpanel/main-multieditviewpanel.vue';
import view_searchbar from '@widgets/ibizbook/-searchbar/-searchbar.vue';
@Component({
components: {
view_meditviewpanel,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
.ibizbookusr4-list-view-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.ibizbookusr4-list-view-layout {
display: block;
}
......@@ -4,10 +4,12 @@ import IBIZBOOKUsr4ListView_layoutBase from './ibizbookusr4-list-view-layout-bas
import view_searchform from '@widgets/ibizbook/default-searchform/default-searchform.vue';
import view_list from '@widgets/ibizbook/lnternal-func-list-list/lnternal-func-list-list.vue';
import view_searchbar from '@widgets/ibizbook/-searchbar/-searchbar.vue';
@Component({
components: {
view_searchform,
view_list,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
.ibizorder-gantt-view-layout{
position: relative;
}
.ibizorder-gantt-view-layout {
> .view-card > .ivu-card-body > .content-container > .gantt {
overflow: auto;
}
}
.ibizorder-gantt-view-layout {
display: block;
}
.ibizorder-tree-grid-ex-view-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.ibizorder-tree-grid-ex-view-layout {
display: block;
}
......@@ -590,7 +590,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -626,7 +626,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -699,7 +699,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -1800,7 +1800,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.loadaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -1835,7 +1835,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return;
}
const arg: any = { ...opt } ;
......@@ -1897,7 +1897,7 @@ export default class MainBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -2005,7 +2005,7 @@ export default class MainBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -2082,7 +2082,7 @@ export default class MainBase extends Vue implements ControlInterface {
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.removeaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return;
}
const arg: any = opt[0];
......
......@@ -522,7 +522,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.fetchAction') as string) });
return;
}
const arg: any = {...opt};
......@@ -638,7 +638,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.removeAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.removeAction') as string) });
return;
}
if (datas.length === 0) {
......@@ -733,7 +733,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.createAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.createAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -741,7 +741,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.warning') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.updateAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.warning') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.updateAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.ibizorder){
......
......@@ -291,7 +291,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof IBIZOrderPickupGridViewBase
* @memberof IBIZOrderSF1GridViewBase
*/
public Edit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
if (args.length === 0) {
......@@ -413,6 +413,20 @@ export default class MainBase extends Vue implements ControlInterface {
return this.selections[0];
}
/**
* 打开新建数据视图
*
* @type {any}
* @memberof MainBase
*/
@Prop() public newdata: any;
/**
* 打开编辑数据视图
*
* @type {any}
* @memberof MainBase
*/
@Prop() public opendata: any;
/**
* 是否嵌入关系界面
......@@ -945,7 +959,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}, pageReset: boolean = false): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(pageReset){
......@@ -1040,7 +1054,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
return;
}
let _datas:any[] = [];
......@@ -1146,7 +1160,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public addBatch(arg: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(!arg){
......@@ -2063,7 +2077,7 @@ export default class MainBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.createAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.createAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -2071,7 +2085,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.ibizorder){
......@@ -2138,7 +2152,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
return;
}
let _this = this;
......
......@@ -104,6 +104,21 @@ export default class MainModel {
prop: 'n_ibizordername_like',
dataType: 'QUERYPARAM'
},
{
name: 'n_orderstate_eq',
prop: 'n_orderstate_eq',
dataType: 'QUERYPARAM'
},
{
name: 'n_ordertime_gt',
prop: 'n_ordertime_gt',
dataType: 'QUERYPARAM'
},
{
name: 'n_ordertime_lt',
prop: 'n_ordertime_lt',
dataType: 'QUERYPARAM'
},
{
name:'size',
......
......@@ -300,18 +300,109 @@
"getPSDEViewCodeName" : "GanttView_layout",
"getPSDEViewId" : "FABC81A7-B59E-4140-8630-84FE5ADB2EFC",
"getPSViewLayoutPanel" : {
"getAllPSPanelFields" : [ {
"id" : "view_pagecaption"
} ],
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEGANTTVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "甘特视图",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZOrder.json"
},
"getPSControlParam" : { },
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getRootPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "page_container",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"getPSPanelItems" : [ {
"caption" : "栅格容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_grid1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 12,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "页面标题",
"itemStyle" : "DEFAULT",
"itemType" : "FIELD",
"name" : "view_pagecaption",
"getPSEditor" : {
"editorType" : "SPAN",
"name" : "view_pagecaption",
"predefinedType" : "VIEW_PAGECAPTION",
"renderMode" : "HEADING1",
"enableLinkView" : false
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "SIMPLEFLEX"
},
"hidden" : false,
"showCaption" : false
} ]
} ]
}, {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container2",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "甘特部件",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "gantt",
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"showCaption" : true
} ]
} ]
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "3CF2CD83-FDEC-40C2-9FE7-AC4494127B7D",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "实体甘特视图",
"viewStyle" : "DEFAULT",
......
......@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-166-7">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-189-7">
<createTable tableName="T_IBIZBOOK">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column>
......@@ -340,7 +340,7 @@
<!--输出实体[IBIZORDER]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-191-14">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-220-14">
<createTable tableName="T_IBIZORDER">
<column name="TP" remarks="" type="TEXT(1048576)">
</column>
......@@ -1160,7 +1160,7 @@
<!--输出实体[IBIZSAMPLE0021]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizsample0021-27-39">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizsample0021-33-39">
<createTable tableName="T_IBIZSAMPLE0021">
<column name="IBIZSAMPLE0021ID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_IBIZSAMPLE0021_IBIZSAMPLE00"/>
......@@ -1306,7 +1306,7 @@
<!--输出实体[IBIZUNIPRODUCT]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizuniproduct-15-45">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizuniproduct-17-45">
<createTable tableName="T_IBIZUNIPRODUCT">
<column name="UNITPRICE" remarks="" type="FLOAT">
</column>
......
......@@ -37,7 +37,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZORDER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-191-8" runOnChange="true">
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-220-8" runOnChange="true">
<createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZORDER">
<![CDATA[ SELECT t1.[AMOUNT], t1.[CREATEDATE], t1.[CREATEMAN], t1.[DETAILNUM], t1.[IBIZCUSTOMERID], t11.[IBIZCUSTOMERNAME], t1.[IBIZORDERID], t1.[IBIZORDERNAME], t1.[MEMO], t1.[ORDERSTATE], t1.[ORDERTIME], t1.[ORDERTYPE], t1.[ORDERUID], t1.[UPDATEDATE], t1.[UPDATEMAN], t1.[WFINSTANCEID], t1.[WFSTATE], t1.[WFSTEP] FROM [T_IBIZORDER] t1 LEFT JOIN T_IBIZCUSTOMER t11 ON t1.IBIZCUSTOMERID = t11.IBIZCUSTOMERID ]]>
</createView>
......@@ -199,7 +199,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZUNIPRODUCT]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizuniproduct-15-35" runOnChange="true">
<changeSet author="a_LAB01_df847bdfd" id="view-ibizuniproduct-17-35" runOnChange="true">
<createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZUNIPRODUCT">
<![CDATA[ SELECT t1.[CREATEDATE], t1.[CREATEMAN], t1.[IBIZUNIPRODUCTID], t1.[IBIZUNIPRODUCTNAME], t1.[IBIZUNIPRODUCTTYPE], t1.[UNIT], t1.[UNITPRICE], t1.[UPDATEDATE], t1.[UPDATEMAN] FROM [T_IBIZUNIPRODUCT] t1 ]]>
</createView>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册