IDEMPIERE-3760 Implement Virtual UI Column

This commit is contained in:
Carlos Ruiz 2018-07-25 19:00:17 +02:00
parent fed84e92e1
commit 8c30a6c6cd
16 changed files with 530 additions and 27 deletions

View File

@ -0,0 +1,173 @@
SET SQLBLANKLINES ON
SET DEFINE OFF
-- IDEMPIERE-3760 Implement Virtual UI Column
-- Jul 25, 2018 6:02:03 PM CEST
UPDATE AD_Column SET FieldLength=4000,Updated=TO_DATE('2018-07-25 18:02:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13448
;
-- Jul 25, 2018 6:02:05 PM CEST
ALTER TABLE AD_Column MODIFY ColumnSQL VARCHAR2(4000) DEFAULT NULL
;
-- Jul 25, 2018 6:02:36 PM CEST
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, NumLines=2, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:02:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11264
;
-- Jul 25, 2018 6:05:35 PM CEST
UPDATE AD_Field SET Help='You can define virtual columns (not stored in the database). If defined, the Column name is the synonym of the SQL expression defined here. The SQL expression must be valid.<br>
Example: "Updated-Created" would list the age of the entry in days.
You can also use the syntax @SQL= to define a UI virtual column - this is calculated on the fly and can use context variables in the query, virtual UI columns are not searchable, and they are not shown in reports.', IsCentrallyMaintained='N', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:05:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11264
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=170
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=172
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=158
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205668
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56279
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56374
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=310
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2526
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=220, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=59619
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=230, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204220
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=240, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=250, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2574
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=260, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2573
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=270, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=161
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=280, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=162
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=290, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202518
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=300, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202519
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=310, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=160
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=320, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=166
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=330, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2370
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=340, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10128
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=350, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5122
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=360, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=169
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=370, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4941
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=380, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50188
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=390, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=168
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=400, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=2, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=159
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=410, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4940
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=420, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200288
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=430, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56317
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=440, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=62467
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=450, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202257
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=460, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200648
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=470, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=167
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=480, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=825
;
-- Jul 25, 2018 6:29:46 PM CEST
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, NumLines=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:29:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=160
;
-- Jul 25, 2018 6:29:56 PM CEST
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, NumLines=1, IsToolbarButton=NULL,Updated=TO_DATE('2018-07-25 18:29:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4941
;
SELECT register_migration_script('201807251833_IDEMPIERE-3760.sql') FROM dual
;

View File

@ -0,0 +1,170 @@
-- IDEMPIERE-3760 Implement Virtual UI Column
-- Jul 25, 2018 6:02:03 PM CEST
UPDATE AD_Column SET FieldLength=4000,Updated=TO_TIMESTAMP('2018-07-25 18:02:03','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=13448
;
-- Jul 25, 2018 6:02:05 PM CEST
INSERT INTO t_alter_column values('ad_column','ColumnSQL','VARCHAR(4000)',null,'NULL')
;
-- Jul 25, 2018 6:02:36 PM CEST
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, NumLines=2, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:02:36','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11264
;
-- Jul 25, 2018 6:05:35 PM CEST
UPDATE AD_Field SET Help='You can define virtual columns (not stored in the database). If defined, the Column name is the synonym of the SQL expression defined here. The SQL expression must be valid.<br>
Example: "Updated-Created" would list the age of the entry in days.
You can also use the syntax @SQL= to define a UI virtual column - this is calculated on the fly and can use context variables in the query, virtual UI columns are not searchable, and they are not shown in reports.', IsCentrallyMaintained='N', AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:05:35','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=11264
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=170
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=172
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=158
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=205668
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56279
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56374
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=310
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2526
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=220, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=59619
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=230, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=204220
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=240, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=171
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=250, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2574
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=260, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2573
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=270, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=161
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=280, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=6, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=162
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=290, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202518
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=300, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202519
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=310, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=160
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=320, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=166
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=330, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2370
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=340, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10128
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=350, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5122
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=360, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=169
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=370, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4941
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=380, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=50188
;
-- Jul 25, 2018 6:28:27 PM CEST
UPDATE AD_Field SET SeqNo=390, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:27','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=168
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=400, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=2, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=159
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=410, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4940
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=420, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200288
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=430, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56317
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=440, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=3, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=62467
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=450, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=202257
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=460, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=5, ColumnSpan=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=200648
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=470, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=167
;
-- Jul 25, 2018 6:28:28 PM CEST
UPDATE AD_Field SET SeqNo=480, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:28:28','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=825
;
-- Jul 25, 2018 6:29:46 PM CEST
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, NumLines=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:29:46','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=160
;
-- Jul 25, 2018 6:29:56 PM CEST
UPDATE AD_Field SET AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, NumLines=1, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2018-07-25 18:29:56','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=4941
;
SELECT register_migration_script('201807251833_IDEMPIERE-3760.sql') FROM dual
;

View File

@ -85,7 +85,7 @@ public class GridField
/**
*
*/
private static final long serialVersionUID = 8599010602475684052L;
private static final long serialVersionUID = -1871840570764036802L;
/**
* Field Constructor.
@ -307,6 +307,9 @@ public class GridField
Evaluator.parseDepends(list, m_vo.DisplayLogic);
Evaluator.parseDepends(list, m_vo.ReadOnlyLogic);
Evaluator.parseDepends(list, m_vo.MandatoryLogic);
// Virtual UI Column
if (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0 && m_vo.ColumnSQL.startsWith("@SQL="))
Evaluator.parseDepends(list, m_vo.ColumnSQL.substring(5));
// Lookup
if (m_lookup != null)
Evaluator.parseDepends(list, m_lookup.getValidation());
@ -1365,10 +1368,15 @@ public class GridField
{
if (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0)
{
if (withAS)
return m_vo.ColumnSQL + " AS " + m_vo.ColumnName;
String query;
if (m_vo.ColumnSQL.startsWith("@SQL="))
query = "NULL";
else
return m_vo.ColumnSQL;
query = m_vo.ColumnSQL;
if (withAS)
return query + " AS " + m_vo.ColumnName;
else
return query;
}
return m_vo.ColumnName;
} // getColumnSQL
@ -1379,10 +1387,26 @@ public class GridField
*/
public boolean isVirtualColumn()
{
if (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0)
return true;
return false;
} // isColumnVirtual
return (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0);
} // isVirtualColumn
/**
* Is Virtual DB Column
* @return column is virtual DB
*/
public boolean isVirtualDBColumn()
{
return (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0 && !m_vo.ColumnSQL.startsWith("@SQL="));
} // isVirtualDBColumn
/**
* Is Virtual UI Column
* @return column is virtual UI
*/
public boolean isVirtualUIColumn()
{
return (m_vo.ColumnSQL != null && m_vo.ColumnSQL.length() > 0 && m_vo.ColumnSQL.startsWith("@SQL="));
} // isVirtualUIColumn
/**
* Get Header
@ -2587,4 +2611,26 @@ public class GridField
long timestamp;
boolean value;
}
public void processUIVirtualColumn() {
String sql = m_vo.ColumnSQL.substring(5);
sql = Env.parseContext(Env.getCtx(), getWindowNo(), sql, false);
if (Util.isEmpty(sql)) {
setValue(null, false);
} else {
if (DisplayType.isDate(m_vo.displayType)) {
Timestamp valueTS = DB.getSQLValueTSEx(null, sql, new Object[] {});
setValue(valueTS, false);
} else if (DisplayType.isNumeric(m_vo.displayType)) {
BigDecimal valueBD = DB.getSQLValueBDEx(null, sql, new Object[] {});
setValue(valueBD, false);
} else if (DisplayType.isID(m_vo.displayType)) {
int valueInt = DB.getSQLValueEx(null, sql, new Object[] {});
setValue(valueInt, false);
} else { // default to String
String valueStr = DB.getSQLValueStringEx(null, sql);
setValue(valueStr, false);
}
}
}
} // GridField

View File

@ -202,7 +202,7 @@ public class GridFieldVO implements Serializable
vo.ValidationCode = rs.getString(i);
else if (columnName.equalsIgnoreCase("ColumnSQL")) {
vo.ColumnSQL = rs.getString(i);
if (vo.ColumnSQL != null && vo.ColumnSQL.contains("@")) {
if (vo.ColumnSQL != null && !vo.ColumnSQL.startsWith("@SQL=") && vo.ColumnSQL.contains("@")) {
// NOTE: cannot use window context because this is set globally on the query, not per record
vo.ColumnSQL = Env.parseContext(ctx, -1, vo.ColumnSQL, false, true);
}

View File

@ -2116,6 +2116,11 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
fFax.setVFormat(phone_frm);
}
// Load virtual UI columns
for (GridField field : getFields()) {
if (field.isVirtualUIColumn())
field.processUIVirtualColumn();
}
} // loadDependentInfo
/**
@ -2782,6 +2787,10 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable
setValue(dependentField, null);
}
}
// if the field is a Virtual UI Column
if (dependentField.isVirtualUIColumn()) {
dependentField.processUIVirtualColumn();
}
} // for all dependent fields
} // processDependencies

View File

@ -67,7 +67,10 @@ public class LookupDisplayColumn implements Serializable
IsTranslated = isTranslated;
DisplayType = ad_Reference_ID;
AD_Reference_ID = ad_Reference_Value_ID;
ColumnSQL = columnSQL;
if (columnSQL != null && columnSQL.length() > 0 && columnSQL.startsWith("@SQL="))
ColumnSQL = "NULL";
else
ColumnSQL = columnSQL;
IsVirtual = !Util.isEmpty(ColumnSQL, true);
} //

View File

@ -51,7 +51,7 @@ public class MColumn extends X_AD_Column
/**
*
*/
private static final long serialVersionUID = -6914331394933196295L;
private static final long serialVersionUID = 7215660422231054443L;
public static MColumn get (Properties ctx, int AD_Column_ID)
{
@ -207,7 +207,27 @@ public class MColumn extends X_AD_Column
String s = getColumnSQL();
return s != null && s.length() > 0;
} // isVirtualColumn
/**
* Is Virtual DB Column
* @return true if virtual DB column
*/
public boolean isVirtualDBColumn()
{
String s = getColumnSQL();
return s != null && s.length() > 0 && !s.startsWith("@SQL=");
} // isVirtualDBColumn
/**
* Is Virtual UI Column
* @return true if virtual UI column
*/
public boolean isVirtualUIColumn()
{
String s = getColumnSQL();
return s != null && s.length() > 0 && s.startsWith("@SQL=");
} // isVirtualUIColumn
/**
* Is the Column Encrypted?
* @return true if encrypted
@ -305,6 +325,8 @@ public class MColumn extends X_AD_Column
setIsMandatory(false);
if (isUpdateable())
setIsUpdateable(false);
if (isVirtualUIColumn() && isIdentifier())
setIsIdentifier(false);
}
// Updateable
if (isParent() || isKey())
@ -1146,4 +1168,13 @@ public class MColumn extends X_AD_Column
return cnt > 0;
}
public String getColumnSQL(boolean nullForUI) {
String query = getColumnSQL();
if (query != null && query.length() > 0) {
if (query.startsWith("@SQL=") && nullForUI)
query = "NULL";
}
return query;
}
} // MColumn

View File

@ -434,7 +434,9 @@ public class MLookupFactory
ZoomWindowPO = rs.getInt(9);
//AD_Table_ID = rs.getInt(10);
displayColumnSQL = rs.getString(11);
if (displayColumnSQL != null && displayColumnSQL.contains("@"))
if (displayColumnSQL != null && displayColumnSQL.length() > 0 && displayColumnSQL.startsWith("@SQL="))
displayColumnSQL = "NULL";
if (displayColumnSQL != null && displayColumnSQL.contains("@") && displayColumnSQL.startsWith("@SQL="))
displayColumnSQL = Env.parseContext(Env.getCtx(), -1, displayColumnSQL, false, true);
overrideZoomWindow = rs.getInt(12);
infoWindowId = rs.getInt(13);
@ -665,6 +667,11 @@ public class MLookupFactory
embedSQL.append(TableNameAlias).append(".Value||'-'||");
MColumn columnDisplay = new MColumn(Env.getCtx(), columnDisplay_ID, null);
if (columnDisplay.isVirtualUIColumn())
{
s_log.warning("Virtual UI Column must not be used as display");
return null;
}
boolean translated = false;
// Translated
@ -678,7 +685,7 @@ public class MLookupFactory
return null;
}
else
embedSQL.append(TableName).append("_Trl.").append(DisplayColumn);
embedSQL.append(TableName).append("_Trl.").append(DisplayColumn);
embedSQL.append(" FROM ").append(TableName).append(" ").append(TableNameAlias)
.append(" INNER JOIN ").append(TableName).append("_TRL ON (")
@ -691,9 +698,9 @@ public class MLookupFactory
else
{
if (columnDisplay.isVirtualColumn())
embedSQL.append(columnDisplay.getColumnSQL()).append(" AS ").append(KeyColumn);
embedSQL.append(columnDisplay.getColumnSQL(true)).append(" AS ").append(KeyColumn);
else
embedSQL.append(TableNameAlias).append(".").append(DisplayColumn);
embedSQL.append(TableNameAlias).append(".").append(DisplayColumn);
embedSQL.append(" FROM ").append(TableName).append(" ").append(TableNameAlias);
}
@ -708,9 +715,9 @@ public class MLookupFactory
embedSQL.append(BaseTable).append(".").append(BaseColumn);
embedSQL.append("=").append(TableNameAlias).append(".").append(KeyColumn);
} else if (translated) {
embedSQL.append(TableNameAlias).append(".").append(KeyColumn).append("=").append(column.getColumnSQL());
embedSQL.append(TableNameAlias).append(".").append(KeyColumn).append("=").append(column.getColumnSQL(true));
} else {
embedSQL.append(KeyColumn).append("=").append(column.getColumnSQL());
embedSQL.append(KeyColumn).append("=").append(column.getColumnSQL(true));
}
return embedSQL.toString();
@ -973,7 +980,7 @@ public class MLookupFactory
MTable table = MTable.get(Env.getCtx(), TableName);
for (String idColumnName : table.getIdentifierColumns()) {
MColumn column = table.getColumn(idColumnName);
LookupDisplayColumn ldc = new LookupDisplayColumn(column.getColumnName(), column.getColumnSQL(), column.isTranslated(), column.getAD_Reference_ID(), column.getAD_Reference_Value_ID());
LookupDisplayColumn ldc = new LookupDisplayColumn(column.getColumnName(), column.getColumnSQL(true), column.isTranslated(), column.getAD_Reference_ID(), column.getAD_Reference_Value_ID());
list.add (ldc);
}
return list;

View File

@ -1121,7 +1121,7 @@ class Restriction implements Serializable
MTable table = MTable.get(Env.getCtx(), tableName);
if (table != null) {
for (MColumn col : table.getColumns(false)) {
String colSQL = col.getColumnSQL();
String colSQL = col.getColumnSQL(true);
if (colSQL != null && colSQL.contains("@"))
colSQL = Env.parseContext(Env.getCtx(), -1, colSQL, false, true);
if (ColumnName.equals(colSQL)) {

View File

@ -199,6 +199,8 @@ public class POInfo implements Serializable
//
m_AccessLevel = rs.getString(18);
String ColumnSQL = rs.getString(19);
if (ColumnSQL != null && ColumnSQL.length() > 0 && ColumnSQL.startsWith("@SQL="))
ColumnSQL = "NULL";
if (ColumnSQL != null && ColumnSQL.contains("@"))
ColumnSQL = Env.parseContext(Env.getCtx(), -1, ColumnSQL, false, true);
boolean IsEncrypted = "Y".equals(rs.getString(20));
@ -375,8 +377,11 @@ public class POInfo implements Serializable
{
if (index < 0 || index >= m_columns.length)
return null;
if (m_columns[index].ColumnSQL != null && m_columns[index].ColumnSQL.length() > 0)
if (m_columns[index].ColumnSQL != null && m_columns[index].ColumnSQL.length() > 0) {
if (m_columns[index].ColumnSQL.startsWith("@SQL="))
return "NULL AS " + m_columns[index].ColumnName;
return m_columns[index].ColumnSQL + " AS " + m_columns[index].ColumnName;
}
return m_columns[index].ColumnName;
} // getColumnSQL
@ -393,6 +398,34 @@ public class POInfo implements Serializable
&& m_columns[index].ColumnSQL.length() > 0;
} // isVirtualColumn
/**
* Is Column Virtual DB?
* @param index index
* @return true if column is virtual DB
*/
public boolean isVirtualDBColumn (int index)
{
if (index < 0 || index >= m_columns.length)
return true;
return m_columns[index].ColumnSQL != null
&& m_columns[index].ColumnSQL.length() > 0
&& !m_columns[index].ColumnSQL.startsWith("@SQL=");
} // isVirtualDBColumn
/**
* Is Column Virtual UI?
* @param index index
* @return true if column is virtual UI
*/
public boolean isVirtualUIColumn (int index)
{
if (index < 0 || index >= m_columns.length)
return true;
return m_columns[index].ColumnSQL != null
&& m_columns[index].ColumnSQL.length() > 0
&& m_columns[index].ColumnSQL.startsWith("@SQL=");
} // isVirtualUIColumn
/**
* Get Column Label
* @param index index

View File

@ -310,6 +310,8 @@ public class DataEngine
int AD_Column_ID = rs.getInt(1);
String ColumnName = rs.getString(2);
String ColumnSQL = rs.getString(24);
if (ColumnSQL != null && ColumnSQL.length() > 0 && ColumnSQL.startsWith("@SQL="))
ColumnSQL = "NULL";
if (ColumnSQL != null && ColumnSQL.contains("@"))
ColumnSQL = Env.parseContext(Env.getCtx(), -1, ColumnSQL, false, true);
if (ColumnSQL == null)

View File

@ -34,6 +34,7 @@ import org.adempiere.model.MTabCustomization;
import org.compiere.model.GridField;
import org.compiere.model.GridTab;
import org.compiere.model.GridTable;
import org.compiere.model.MColumn;
import org.compiere.model.MQuery;
import org.compiere.model.MRole;
import org.compiere.model.Query;
@ -614,6 +615,8 @@ public class MPrintFormat extends X_AD_PrintFormat
int seqNo = 1;
for (GridField gridField : gridFields)
{
if (gridField.isVirtualUIColumn())
continue;
MPrintFormatItem pfi = MPrintFormatItem.createFromGridField(pf, gridField, seqNo++);
if (pfi != null)
{
@ -859,7 +862,11 @@ public class MPrintFormat extends X_AD_PrintFormat
int seqNo = 1;
while (rs.next())
{
MPrintFormatItem pfi = MPrintFormatItem.createFromColumn (format, rs.getInt(1), seqNo++);
int columnID = rs.getInt(1);
MColumn column = MColumn.get(ctx, columnID);
if (column.isVirtualUIColumn())
continue;
MPrintFormatItem pfi = MPrintFormatItem.createFromColumn (format, columnID, seqNo++);
if (pfi != null)
{
list.add (pfi);
@ -897,7 +904,11 @@ public class MPrintFormat extends X_AD_PrintFormat
int seqNo = 1;
while (rs.next())
{
MPrintFormatItem pfi = MPrintFormatItem.createFromColumn (format, rs.getInt(1), seqNo++);
int columnID = rs.getInt(1);
MColumn column = MColumn.get(ctx, columnID);
if (column.isVirtualUIColumn())
continue;
MPrintFormatItem pfi = MPrintFormatItem.createFromColumn (format, columnID, seqNo++);
if (pfi != null)
{
list.add (pfi);

View File

@ -1054,6 +1054,8 @@ public final class Find extends CDialog
// globalqss - Carlos Ruiz - 20060711
// fix a bug with virtualColumn + isSelectionColumn not yielding results
GridField field = getTargetMField(ColumnName.toString());
if (field.isVirtualUIColumn())
continue;
boolean isProductCategoryField = isProductCategoryField(field.getAD_Column_ID());
StringBuilder ColumnSQL = new StringBuilder().append(field.getColumnSQL(false));
//
@ -1159,7 +1161,7 @@ public final class Find extends CDialog
String infoName = column.toString();
//
GridField field = getTargetMField(ColumnName.toString());
if (field == null)
if (field == null || field.isVirtualUIColumn())
continue;
boolean isProductCategoryField = isProductCategoryField(field.getAD_Column_ID());
String ColumnSQL = field.getColumnSQL(false);

View File

@ -256,6 +256,8 @@ public class InfoGeneral extends Info
{
m_queryColumns.add(rs.getString(1));
String columnSql = rs.getString(4);
if (columnSql != null && columnSql.length() > 0 && columnSql.contains("@"))
columnSql = "NULL";
if (columnSql != null && columnSql.contains("@"))
columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true);
if (columnSql != null && columnSql.length() > 0)
@ -327,6 +329,8 @@ public class InfoGeneral extends Info
int AD_Reference_Value_ID = rs.getInt(5);
// teo_sarca
String columnSql = rs.getString(6);
if (columnSql != null && columnSql.length() > 0 && columnSql.contains("@"))
columnSql = "NULL";
if (columnSql != null && columnSql.contains("@"))
columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true);
if (columnSql == null || columnSql.length() == 0)

View File

@ -383,6 +383,8 @@ public class InfoGeneralPanel extends InfoPanel implements EventListener<Event>
{
m_queryColumns.add(rs.getString(1));
String columnSql = rs.getString(4);
if (columnSql != null && columnSql.length() > 0 && columnSql.contains("@"))
columnSql = "NULL";
if (columnSql != null && columnSql.contains("@"))
columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true);
String qualified = p_tableName+"."+rs.getString(1);
@ -462,11 +464,13 @@ public class InfoGeneralPanel extends InfoPanel implements EventListener<Event>
boolean isDisplayed = rs.getString(4).equals("Y");
int AD_Reference_Value_ID = rs.getInt(5);
String columnSql = rs.getString(6);
int AD_Column_ID = rs.getInt(7);
if (columnSql != null && columnSql.length() > 0 && columnSql.contains("@"))
columnSql = "NULL";
if (columnSql != null && columnSql.contains("@"))
columnSql = Env.parseContext(Env.getCtx(), -1, columnSql, false, true);
if (columnSql == null || columnSql.length() == 0)
columnSql = tableName+"."+columnName;
int AD_Column_ID = rs.getInt(7);
// Default
StringBuffer colSql = new StringBuffer(columnSql);

View File

@ -789,6 +789,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
List<GridField> excludes = new ArrayList<GridField>();
// adding sorted columns
for(GridField field:gridFieldList){
if (field.isVirtualUIColumn())
continue;
if (!addSelectionColumn (field))
excludes.add(field);
}
@ -802,6 +804,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
cell.setColspan(3);
cell.setAlign("left");
for(GridField field:moreFieldList){
if (field.isVirtualUIColumn())
continue;
if (!addSelectionColumn (field, rowg))
excludes.add(field);
}
@ -1053,7 +1057,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
for (int c = 0; c < m_findFields.length; c++)
{
GridField field = m_findFields[c];
if (field == null) continue;
if (field == null || field.isVirtualUIColumn())
continue;
String columnName = field.getColumnName();
String header = field.getHeader();
@ -1589,7 +1594,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
String infoName = column.toString();
//
GridField field = getTargetMField(ColumnName);
if(field == null) continue; // Elaine 2008/07/29
if (field == null || field.isVirtualUIColumn())
continue;
boolean isProductCategoryField = isProductCategoryField(field.getColumnName());
String ColumnSQL = field.getColumnSQL(false);
// Left brackets
@ -1811,6 +1817,8 @@ public class FindWindow extends Window implements EventListener<Event>, ValueCha
}
GridField field = getTargetMField(ColumnName);
if (field.isVirtualUIColumn())
continue;
StringBuilder ColumnSQL = new StringBuilder(field.getColumnSQL(false));
m_query.addRangeRestriction(ColumnSQL.toString(), value, valueTo,
ColumnName, wed.getDisplay(), wedTo.getDisplay(), true, 0);