IDEMPIERE-4753 Make printing filename configurable (#1251)

* IDEMPIERE-4753 Make printing filename configurable

* IDEMPIERE-4753 - Jasper report

* IDEMPIERE-4753 - fix NPE
This commit is contained in:
PeterTakacs300 2022-03-31 14:59:45 +02:00 committed by GitHub
parent 10fca86adf
commit a1d58852ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 413 additions and 77 deletions

View File

@ -0,0 +1,86 @@
-- IDEMPIERE-4753
SET SQLBLANKLINES ON
SET DEFINE OFF
-- Jun 2, 2021, 12:04:43 PM CEST
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,PrintName,EntityType,AD_Element_UU) VALUES (203512,0,0,'Y',TO_DATE('2021-06-02 12:04:43','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2021-06-02 12:04:43','YYYY-MM-DD HH24:MI:SS'),100,'FileNamePattern','File Name Pattern','File Name Pattern','D','09e87361-0597-43b4-9378-8afa29bc83ed')
;
-- Jun 2, 2021, 12:10:55 PM CEST
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (214497,0,'File Name Pattern',493,'FileNamePattern',255,'N','N','N','N','N',0,'N',10,0,0,'Y',TO_DATE('2021-06-02 12:10:55','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2021-06-02 12:10:55','YYYY-MM-DD HH24:MI:SS'),100,203512,'Y','N','D','N','N','N','Y','7bc2b0a2-c57f-41ae-b287-711dbeaa9192','Y',0,'N','N','N','N')
;
-- Jun 2, 2021, 12:10:59 PM CEST
ALTER TABLE AD_PrintFormat ADD FileNamePattern VARCHAR2(255 CHAR) DEFAULT NULL
;
-- Jun 2, 2021, 12:11:48 PM CEST
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (214498,0,'File Name Pattern',284,'FileNamePattern',255,'N','N','N','N','N',0,'N',10,0,0,'Y',TO_DATE('2021-06-02 12:11:47','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2021-06-02 12:11:47','YYYY-MM-DD HH24:MI:SS'),100,203512,'Y','N','D','N','N','N','Y','b04cde1b-4791-4e5d-a270-ad1e526f77a0','Y',0,'N','N','N','N')
;
-- Jun 2, 2021, 12:11:51 PM CEST
ALTER TABLE AD_Process ADD FileNamePattern VARCHAR2(255 CHAR) DEFAULT NULL
;
-- Jun 2, 2021, 12:12:27 PM CEST
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (206663,'File Name Pattern',425,214497,'Y',255,260,'N','N','N','N',0,0,'Y',TO_DATE('2021-06-02 12:12:26','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2021-06-02 12:12:26','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','0a554010-53a1-4b18-b66f-9333f72960f7','Y',260,5)
;
-- Jun 2, 2021, 12:13:21 PM CEST
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (206664,'File Name Pattern',245,214498,'Y',255,280,'N','N','N','N',0,0,'Y',TO_DATE('2021-06-02 12:13:21','YYYY-MM-DD HH24:MI:SS'),100,TO_DATE('2021-06-02 12:13:21','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','79eafd94-0fa6-4419-908c-1781f5edea58','Y',250,5)
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3703
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2534
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10235
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56497
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3278
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3219
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5849
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=2, IsToolbarButton=NULL,Updated=TO_DATE('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206664
;
-- Mar 15, 2022, 4:32:32 PM CET
UPDATE AD_Column SET IsTranslated='Y',Updated=TO_TIMESTAMP('2022-03-15 16:32:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=214497
;
-- Mar 15, 2022, 4:32:50 PM CET
ALTER TABLE AD_PrintFormat MODIFY FileNamePattern VARCHAR2(255 CHAR) DEFAULT NULL
;
-- Mar 15, 2022, 4:36:11 PM CET
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (214714,0,'File Name Pattern',200130,'FileNamePattern',255,'N','N','N','N','N',0,'N',10,0,0,'Y',TO_TIMESTAMP('2022-03-15 16:36:11','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-03-15 16:36:11','YYYY-MM-DD HH24:MI:SS'),100,203512,'Y','Y','D','N','N','N','Y','b60bf16e-e25c-42cb-95ba-9fc88bd3eb0d','Y',10,'N','N','N','N')
;
-- Mar 16, 2022, 8:16:42 AM CET
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,SortNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (206916,'File Name Pattern',200143,214714,'Y',0,90,0,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2022-03-16 08:16:42','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-03-16 08:16:42','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','269e9f00-8ed2-4887-afc0-aee484f4ade6','Y',80,1,1,1,'N','N','N','N')
;
-- Mar 16, 2022, 8:22:24 AM CET
ALTER TABLE AD_PrintFormat_Trl ADD FileNamePattern VARCHAR2(255 CHAR) DEFAULT NULL
;
SELECT register_migration_script('202203151632_IDEMPIERE-4753.sql') FROM dual;

View File

@ -0,0 +1,83 @@
-- IDEMPIERE-4753
-- Jun 2, 2021, 12:04:43 PM CEST
INSERT INTO AD_Element (AD_Element_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,ColumnName,Name,PrintName,EntityType,AD_Element_UU) VALUES (203512,0,0,'Y',TO_TIMESTAMP('2021-06-02 12:04:43','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2021-06-02 12:04:43','YYYY-MM-DD HH24:MI:SS'),100,'FileNamePattern','File Name Pattern','File Name Pattern','D','09e87361-0597-43b4-9378-8afa29bc83ed')
;
-- Jun 2, 2021, 12:10:55 PM CEST
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (214497,0,'File Name Pattern',493,'FileNamePattern',255,'N','N','N','N','N',0,'N',10,0,0,'Y',TO_TIMESTAMP('2021-06-02 12:10:55','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2021-06-02 12:10:55','YYYY-MM-DD HH24:MI:SS'),100,203512,'Y','N','D','N','N','N','Y','7bc2b0a2-c57f-41ae-b287-711dbeaa9192','Y',0,'N','N','N','N')
;
-- Jun 2, 2021, 12:10:59 PM CEST
ALTER TABLE AD_PrintFormat ADD COLUMN FileNamePattern VARCHAR(255) DEFAULT NULL
;
-- Jun 2, 2021, 12:11:48 PM CEST
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (214498,0,'File Name Pattern',284,'FileNamePattern',255,'N','N','N','N','N',0,'N',10,0,0,'Y',TO_TIMESTAMP('2021-06-02 12:11:47','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2021-06-02 12:11:47','YYYY-MM-DD HH24:MI:SS'),100,203512,'Y','N','D','N','N','N','Y','b04cde1b-4791-4e5d-a270-ad1e526f77a0','Y',0,'N','N','N','N')
;
-- Jun 2, 2021, 12:11:51 PM CEST
ALTER TABLE AD_Process ADD COLUMN FileNamePattern VARCHAR(255) DEFAULT NULL
;
-- Jun 2, 2021, 12:12:27 PM CEST
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (206663,'File Name Pattern',425,214497,'Y',255,260,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2021-06-02 12:12:26','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2021-06-02 12:12:26','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','0a554010-53a1-4b18-b66f-9333f72960f7','Y',260,5)
;
-- Jun 2, 2021, 12:13:21 PM CEST
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,ColumnSpan) VALUES (206664,'File Name Pattern',245,214498,'Y',255,280,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2021-06-02 12:13:21','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2021-06-02 12:13:21','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','79eafd94-0fa6-4419-908c-1781f5edea58','Y',250,5)
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=140, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3703
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=150, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=2534
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=160, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=10235
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=170, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=56497
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=180, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3278
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=190, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=3219
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET SeqNo=200, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=5849
;
-- Jun 2, 2021, 12:13:59 PM CEST
UPDATE AD_Field SET IsDisplayed='Y', SeqNo=210, AD_Reference_Value_ID=NULL, AD_Val_Rule_ID=NULL, XPosition=4, ColumnSpan=2, IsToolbarButton=NULL,Updated=TO_TIMESTAMP('2021-06-02 12:13:59','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Field_ID=206664
;
-- Mar 15, 2022, 4:32:32 PM CET
UPDATE AD_Column SET IsTranslated='Y',Updated=TO_TIMESTAMP('2022-03-15 16:32:32','YYYY-MM-DD HH24:MI:SS'),UpdatedBy=100 WHERE AD_Column_ID=214497
;
-- Mar 15, 2022, 4:32:50 PM CET
INSERT INTO t_alter_column values('ad_printformat','FileNamePattern','VARCHAR(255)',null,'NULL')
;
-- Mar 15, 2022, 4:36:11 PM CET
INSERT INTO AD_Column (AD_Column_ID,Version,Name,AD_Table_ID,ColumnName,FieldLength,IsKey,IsParent,IsMandatory,IsTranslated,IsIdentifier,SeqNo,IsEncrypted,AD_Reference_ID,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,AD_Element_ID,IsUpdateable,IsSelectionColumn,EntityType,IsSyncDatabase,IsAlwaysUpdateable,IsAutocomplete,IsAllowLogging,AD_Column_UU,IsAllowCopy,SeqNoSelection,IsToolbarButton,IsSecure,FKConstraintType,IsHtml) VALUES (214714,0,'File Name Pattern',200130,'FileNamePattern',255,'N','N','N','N','N',0,'N',10,0,0,'Y',TO_TIMESTAMP('2022-03-15 16:36:11','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-03-15 16:36:11','YYYY-MM-DD HH24:MI:SS'),100,203512,'Y','Y','D','N','N','N','Y','b60bf16e-e25c-42cb-95ba-9fc88bd3eb0d','Y',10,'N','N','N','N')
;
-- Mar 16, 2022, 8:16:42 AM CET
INSERT INTO AD_Field (AD_Field_ID,Name,AD_Tab_ID,AD_Column_ID,IsDisplayed,DisplayLength,SeqNo,SortNo,IsSameLine,IsHeading,IsFieldOnly,IsEncrypted,AD_Client_ID,AD_Org_ID,IsActive,Created,CreatedBy,Updated,UpdatedBy,IsReadOnly,IsCentrallyMaintained,EntityType,AD_Field_UU,IsDisplayedGrid,SeqNoGrid,XPosition,ColumnSpan,NumLines,IsQuickEntry,IsDefaultFocus,IsAdvancedField,IsQuickForm) VALUES (206916,'File Name Pattern',200143,214714,'Y',0,90,0,'N','N','N','N',0,0,'Y',TO_TIMESTAMP('2022-03-16 08:16:42','YYYY-MM-DD HH24:MI:SS'),100,TO_TIMESTAMP('2022-03-16 08:16:42','YYYY-MM-DD HH24:MI:SS'),100,'N','Y','D','269e9f00-8ed2-4887-afc0-aee484f4ade6','Y',80,1,1,1,'N','N','N','N')
;
-- Mar 16, 2022, 8:22:24 AM CET
ALTER TABLE AD_PrintFormat_Trl ADD COLUMN FileNamePattern VARCHAR(255) DEFAULT NULL
;
SELECT register_migration_script('202203151632_IDEMPIERE-4753.sql') FROM dual;

View File

@ -22,7 +22,7 @@ import org.compiere.util.KeyNamePair;
/** Generated Interface for AD_PrintFormat /** Generated Interface for AD_PrintFormat
* @author iDempiere (generated) * @author iDempiere (generated)
* @version Release 9 * @version Release 10
*/ */
public interface I_AD_PrintFormat public interface I_AD_PrintFormat
{ {
@ -44,8 +44,8 @@ public interface I_AD_PrintFormat
/** Column name AD_Client_ID */ /** Column name AD_Client_ID */
public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID"; public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID";
/** Get Client. /** Get Tenant.
* Client/Tenant for this installation. * Tenant for this installation.
*/ */
public int getAD_Client_ID(); public int getAD_Client_ID();
@ -53,12 +53,12 @@ public interface I_AD_PrintFormat
public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID";
/** Set Organization. /** Set Organization.
* Organizational entity within client * Organizational entity within tenant
*/ */
public void setAD_Org_ID (int AD_Org_ID); public void setAD_Org_ID (int AD_Org_ID);
/** Get Organization. /** Get Organization.
* Organizational entity within client * Organizational entity within tenant
*/ */
public int getAD_Org_ID(); public int getAD_Org_ID();
@ -238,6 +238,15 @@ public interface I_AD_PrintFormat
*/ */
public String getDescription(); public String getDescription();
/** Column name FileNamePattern */
public static final String COLUMNNAME_FileNamePattern = "FileNamePattern";
/** Set File Name Pattern */
public void setFileNamePattern (String FileNamePattern);
/** Get File Name Pattern */
public String getFileNamePattern();
/** Column name FooterMargin */ /** Column name FooterMargin */
public static final String COLUMNNAME_FooterMargin = "FooterMargin"; public static final String COLUMNNAME_FooterMargin = "FooterMargin";

View File

@ -22,7 +22,7 @@ import org.compiere.util.KeyNamePair;
/** Generated Interface for AD_Process /** Generated Interface for AD_Process
* @author iDempiere (generated) * @author iDempiere (generated)
* @version Release 9 * @version Release 10
*/ */
public interface I_AD_Process public interface I_AD_Process
{ {
@ -41,24 +41,11 @@ public interface I_AD_Process
/** Load Meta Data */ /** Load Meta Data */
/** Column name AccessLevel */
public static final String COLUMNNAME_AccessLevel = "AccessLevel";
/** Set Data Access Level.
* Access Level required
*/
public void setAccessLevel (String AccessLevel);
/** Get Data Access Level.
* Access Level required
*/
public String getAccessLevel();
/** Column name AD_Client_ID */ /** Column name AD_Client_ID */
public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID"; public static final String COLUMNNAME_AD_Client_ID = "AD_Client_ID";
/** Get Client. /** Get Tenant.
* Client/Tenant for this installation. * Tenant for this installation.
*/ */
public int getAD_Client_ID(); public int getAD_Client_ID();
@ -92,12 +79,12 @@ public interface I_AD_Process
public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID"; public static final String COLUMNNAME_AD_Org_ID = "AD_Org_ID";
/** Set Organization. /** Set Organization.
* Organizational entity within client * Organizational entity within tenant
*/ */
public void setAD_Org_ID (int AD_Org_ID); public void setAD_Org_ID (int AD_Org_ID);
/** Get Organization. /** Get Organization.
* Organizational entity within client * Organizational entity within tenant
*/ */
public int getAD_Org_ID(); public int getAD_Org_ID();
@ -168,6 +155,19 @@ public interface I_AD_Process
public org.compiere.model.I_AD_Workflow getAD_Workflow() throws RuntimeException; public org.compiere.model.I_AD_Workflow getAD_Workflow() throws RuntimeException;
/** Column name AccessLevel */
public static final String COLUMNNAME_AccessLevel = "AccessLevel";
/** Set Data Access Level.
* Access Level required
*/
public void setAccessLevel (String AccessLevel);
/** Get Data Access Level.
* Access Level required
*/
public String getAccessLevel();
/** Column name AllowMultipleExecution */ /** Column name AllowMultipleExecution */
public static final String COLUMNNAME_AllowMultipleExecution = "AllowMultipleExecution"; public static final String COLUMNNAME_AllowMultipleExecution = "AllowMultipleExecution";
@ -264,6 +264,15 @@ public interface I_AD_Process
*/ */
public String getExecutionType(); public String getExecutionType();
/** Column name FileNamePattern */
public static final String COLUMNNAME_FileNamePattern = "FileNamePattern";
/** Set File Name Pattern */
public void setFileNamePattern (String FileNamePattern);
/** Get File Name Pattern */
public String getFileNamePattern();
/** Column name Help */ /** Column name Help */
public static final String COLUMNNAME_Help = "Help"; public static final String COLUMNNAME_Help = "Help";

View File

@ -23,7 +23,7 @@ import org.compiere.util.KeyNamePair;
/** Generated Model for AD_PrintFormat /** Generated Model for AD_PrintFormat
* @author iDempiere (generated) * @author iDempiere (generated)
* @version Release 9 - $Id$ */ * @version Release 10 - $Id$ */
@org.adempiere.base.Model(table="AD_PrintFormat") @org.adempiere.base.Model(table="AD_PrintFormat")
public class X_AD_PrintFormat extends PO implements I_AD_PrintFormat, I_Persistent public class X_AD_PrintFormat extends PO implements I_AD_PrintFormat, I_Persistent
{ {
@ -31,7 +31,7 @@ public class X_AD_PrintFormat extends PO implements I_AD_PrintFormat, I_Persiste
/** /**
* *
*/ */
private static final long serialVersionUID = 20220116L; private static final long serialVersionUID = 20220315L;
/** Standard Constructor */ /** Standard Constructor */
public X_AD_PrintFormat (Properties ctx, int AD_PrintFormat_ID, String trxName) public X_AD_PrintFormat (Properties ctx, int AD_PrintFormat_ID, String trxName)
@ -404,6 +404,21 @@ public class X_AD_PrintFormat extends PO implements I_AD_PrintFormat, I_Persiste
return (String)get_Value(COLUMNNAME_Description); return (String)get_Value(COLUMNNAME_Description);
} }
/** Set File Name Pattern.
@param FileNamePattern File Name Pattern
*/
public void setFileNamePattern (String FileNamePattern)
{
set_Value (COLUMNNAME_FileNamePattern, FileNamePattern);
}
/** Get File Name Pattern.
@return File Name Pattern */
public String getFileNamePattern()
{
return (String)get_Value(COLUMNNAME_FileNamePattern);
}
/** Set Footer Margin. /** Set Footer Margin.
@param FooterMargin Margin of the Footer in 1/72 of an inch @param FooterMargin Margin of the Footer in 1/72 of an inch
*/ */

View File

@ -23,7 +23,7 @@ import org.compiere.util.KeyNamePair;
/** Generated Model for AD_Process /** Generated Model for AD_Process
* @author iDempiere (generated) * @author iDempiere (generated)
* @version Release 9 - $Id$ */ * @version Release 10 - $Id$ */
@org.adempiere.base.Model(table="AD_Process") @org.adempiere.base.Model(table="AD_Process")
public class X_AD_Process extends PO implements I_AD_Process, I_Persistent public class X_AD_Process extends PO implements I_AD_Process, I_Persistent
{ {
@ -31,7 +31,7 @@ public class X_AD_Process extends PO implements I_AD_Process, I_Persistent
/** /**
* *
*/ */
private static final long serialVersionUID = 20220116L; private static final long serialVersionUID = 20220315L;
/** Standard Constructor */ /** Standard Constructor */
public X_AD_Process (Properties ctx, int AD_Process_ID, String trxName) public X_AD_Process (Properties ctx, int AD_Process_ID, String trxName)
@ -39,8 +39,8 @@ public class X_AD_Process extends PO implements I_AD_Process, I_Persistent
super (ctx, AD_Process_ID, trxName); super (ctx, AD_Process_ID, trxName);
/** if (AD_Process_ID == 0) /** if (AD_Process_ID == 0)
{ {
setAccessLevel (null);
setAD_Process_ID (0); setAD_Process_ID (0);
setAccessLevel (null);
setEntityType (null); setEntityType (null);
// @SQL=SELECT CASE WHEN '@P|AdempiereSys:N@'='Y' THEN 'D' ELSE get_sysconfig('DEFAULT_ENTITYTYPE','U',0,0) END FROM Dual // @SQL=SELECT CASE WHEN '@P|AdempiereSys:N@'='Y' THEN 'D' ELSE get_sysconfig('DEFAULT_ENTITYTYPE','U',0,0) END FROM Dual
setIsBetaFunctionality (false); setIsBetaFunctionality (false);
@ -56,8 +56,8 @@ public class X_AD_Process extends PO implements I_AD_Process, I_Persistent
super (ctx, AD_Process_ID, trxName, virtualColumns); super (ctx, AD_Process_ID, trxName, virtualColumns);
/** if (AD_Process_ID == 0) /** if (AD_Process_ID == 0)
{ {
setAccessLevel (null);
setAD_Process_ID (0); setAD_Process_ID (0);
setAccessLevel (null);
setEntityType (null); setEntityType (null);
// @SQL=SELECT CASE WHEN '@P|AdempiereSys:N@'='Y' THEN 'D' ELSE get_sysconfig('DEFAULT_ENTITYTYPE','U',0,0) END FROM Dual // @SQL=SELECT CASE WHEN '@P|AdempiereSys:N@'='Y' THEN 'D' ELSE get_sysconfig('DEFAULT_ENTITYTYPE','U',0,0) END FROM Dual
setIsBetaFunctionality (false); setIsBetaFunctionality (false);
@ -95,37 +95,6 @@ public class X_AD_Process extends PO implements I_AD_Process, I_Persistent
return sb.toString(); return sb.toString();
} }
/** AccessLevel AD_Reference_ID=5 */
public static final int ACCESSLEVEL_AD_Reference_ID=5;
/** Organization = 1 */
public static final String ACCESSLEVEL_Organization = "1";
/** Client only = 2 */
public static final String ACCESSLEVEL_ClientOnly = "2";
/** Client+Organization = 3 */
public static final String ACCESSLEVEL_ClientPlusOrganization = "3";
/** System only = 4 */
public static final String ACCESSLEVEL_SystemOnly = "4";
/** System+Client = 6 */
public static final String ACCESSLEVEL_SystemPlusClient = "6";
/** All = 7 */
public static final String ACCESSLEVEL_All = "7";
/** Set Data Access Level.
@param AccessLevel Access Level required
*/
public void setAccessLevel (String AccessLevel)
{
set_Value (COLUMNNAME_AccessLevel, AccessLevel);
}
/** Get Data Access Level.
@return Access Level required
*/
public String getAccessLevel()
{
return (String)get_Value(COLUMNNAME_AccessLevel);
}
public org.compiere.model.I_AD_CtxHelp getAD_CtxHelp() throws RuntimeException public org.compiere.model.I_AD_CtxHelp getAD_CtxHelp() throws RuntimeException
{ {
return (org.compiere.model.I_AD_CtxHelp)MTable.get(getCtx(), org.compiere.model.I_AD_CtxHelp.Table_ID) return (org.compiere.model.I_AD_CtxHelp)MTable.get(getCtx(), org.compiere.model.I_AD_CtxHelp.Table_ID)
@ -302,6 +271,37 @@ public class X_AD_Process extends PO implements I_AD_Process, I_Persistent
return ii.intValue(); return ii.intValue();
} }
/** AccessLevel AD_Reference_ID=5 */
public static final int ACCESSLEVEL_AD_Reference_ID=5;
/** Organization = 1 */
public static final String ACCESSLEVEL_Organization = "1";
/** Client only = 2 */
public static final String ACCESSLEVEL_ClientOnly = "2";
/** Client+Organization = 3 */
public static final String ACCESSLEVEL_ClientPlusOrganization = "3";
/** System only = 4 */
public static final String ACCESSLEVEL_SystemOnly = "4";
/** System+Client = 6 */
public static final String ACCESSLEVEL_SystemPlusClient = "6";
/** All = 7 */
public static final String ACCESSLEVEL_All = "7";
/** Set Data Access Level.
@param AccessLevel Access Level required
*/
public void setAccessLevel (String AccessLevel)
{
set_Value (COLUMNNAME_AccessLevel, AccessLevel);
}
/** Get Data Access Level.
@return Access Level required
*/
public String getAccessLevel()
{
return (String)get_Value(COLUMNNAME_AccessLevel);
}
/** AllowMultipleExecution AD_Reference_ID=200158 */ /** AllowMultipleExecution AD_Reference_ID=200158 */
public static final int ALLOWMULTIPLEEXECUTION_AD_Reference_ID=200158; public static final int ALLOWMULTIPLEEXECUTION_AD_Reference_ID=200158;
/** Disallow multiple executions = N */ /** Disallow multiple executions = N */
@ -415,6 +415,21 @@ public class X_AD_Process extends PO implements I_AD_Process, I_Persistent
return (String)get_Value(COLUMNNAME_ExecutionType); return (String)get_Value(COLUMNNAME_ExecutionType);
} }
/** Set File Name Pattern.
@param FileNamePattern File Name Pattern
*/
public void setFileNamePattern (String FileNamePattern)
{
set_Value (COLUMNNAME_FileNamePattern, FileNamePattern);
}
/** Get File Name Pattern.
@return File Name Pattern */
public String getFileNamePattern()
{
return (String)get_Value(COLUMNNAME_FileNamePattern);
}
/** Set Comment/Help. /** Set Comment/Help.
@param Help Comment or Hint @param Help Comment or Hint
*/ */

View File

@ -39,7 +39,9 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
@ -100,6 +102,7 @@ import org.compiere.print.layout.PrintDataEvaluatee;
import org.compiere.process.ProcessInfo; import org.compiere.process.ProcessInfo;
import org.compiere.process.ProcessInfoParameter; import org.compiere.process.ProcessInfoParameter;
import org.compiere.process.ServerProcessCtl; import org.compiere.process.ServerProcessCtl;
import org.compiere.tools.FileUtil;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.DisplayType; import org.compiere.util.DisplayType;
@ -199,6 +202,7 @@ public class ReportEngine implements PrintServiceAttributeListener
m_printFormat = pf; m_printFormat = pf;
m_info = info; m_info = info;
m_trxName = trxName; m_trxName = trxName;
initName();
setQuery(query); // loads Data setQuery(query); // loads Data
} // ReportEngine } // ReportEngine
@ -232,6 +236,8 @@ public class ReportEngine implements PrintServiceAttributeListener
private boolean m_summary = false; private boolean m_summary = false;
private String m_name = null;
/** /**
* store all column has same css rule into a list * store all column has same css rule into a list
* for IDEMPIERE-2640 * for IDEMPIERE-2640
@ -364,13 +370,43 @@ public class ReportEngine implements PrintServiceAttributeListener
return m_layout; return m_layout;
} // getLayout } // getLayout
/**
* Initialize Report Name
*/
public void initName()
{
Language language = m_printFormat.getLanguage();
String processFileNamePattern = m_printFormat.get_Translation("FileNamePattern", language.getAD_Language());
if (m_info.getAD_Process_ID()>0) {
MProcess process = new MProcess(Env.getCtx(), m_info.getAD_Process_ID(), m_trxName);
if (process !=null && !Util.isEmpty(process.getFileNamePattern())) {
processFileNamePattern = process.getFileNamePattern();
}
}
if(Util.isEmpty(processFileNamePattern)) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String dt = sdf.format(cal.getTime());
m_name = m_printFormat.get_Translation("Name") + "_" + dt;
} else {
m_name = FileUtil.parseTitle(m_ctx, processFileNamePattern, m_info.getAD_Table_ID(), m_info.getRecord_ID(), m_windowNo, m_trxName);
}
} // initName
/** /**
* Get PrintFormat (Report) Name * Get PrintFormat (Report) Name
* @return name * @return name
*/ */
public String getName() public String getName()
{ {
return m_printFormat.get_Translation("Name"); if (m_name==null)
initName();
return m_name;
} // getName } // getName
/** /**
@ -1422,7 +1458,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
try try
{ {
if (file == null) if (file == null)
file = File.createTempFile (makePrefix(getName()), ".pdf"); file = FileUtil.createTempFile (makePrefix(getName()), ".pdf");
} }
catch (IOException e) catch (IOException e)
{ {
@ -1453,7 +1489,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
try try
{ {
if (file == null) if (file == null)
file = File.createTempFile (makePrefix(getName()), ".html"); file = FileUtil.createTempFile (makePrefix(getName()), ".html");
} }
catch (IOException e) catch (IOException e)
{ {
@ -1484,7 +1520,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
try try
{ {
if (file == null) if (file == null)
file = File.createTempFile (makePrefix(getName()), ".csv"); file = FileUtil.createTempFile (makePrefix(getName()), ".csv");
} }
catch (IOException e) catch (IOException e)
{ {
@ -1515,7 +1551,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
try try
{ {
if (file == null) if (file == null)
file = File.createTempFile (makePrefix(getName()), ".xls"); file = FileUtil.createTempFile (makePrefix(getName()), ".xls");
} }
catch (IOException e) catch (IOException e)
{ {
@ -1553,7 +1589,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
try try
{ {
if (file == null) if (file == null)
file = File.createTempFile (makePrefix(getName()), ".xlsx"); file = FileUtil.createTempFile (makePrefix(getName()), ".xlsx");
} }
catch (IOException e) catch (IOException e)
{ {
@ -1584,7 +1620,7 @@ queued-job-count = 0 (class javax.print.attribute.standard.QueuedJobCount)
try try
{ {
if (file == null) if (file == null)
file = File.createTempFile ("ReportEngine", ".pdf"); file = FileUtil.createTempFile ("ReportEngine", ".pdf");
fileName = file.getAbsolutePath(); fileName = file.getAbsolutePath();
uri = file.toURI(); uri = file.toURI();
if (file.exists()) if (file.exists())

View File

@ -158,6 +158,7 @@ public class ServerReportCtl {
public static boolean runJasperProcess(int Record_ID, ReportEngine re, boolean IsDirectPrint, String printerName, ProcessInfo pi) { public static boolean runJasperProcess(int Record_ID, ReportEngine re, boolean IsDirectPrint, String printerName, ProcessInfo pi) {
MPrintFormat format = re.getPrintFormat(); MPrintFormat format = re.getPrintFormat();
ProcessInfo jasperProcessInfo = new ProcessInfo ("", format.getJasperProcess_ID()); ProcessInfo jasperProcessInfo = new ProcessInfo ("", format.getJasperProcess_ID());
PrintInfo printInfo = re.getPrintInfo();
if (pi != null) { if (pi != null) {
jasperProcessInfo.setPrintPreview(pi.isPrintPreview()); jasperProcessInfo.setPrintPreview(pi.isPrintPreview());
jasperProcessInfo.setIsBatch(pi.isBatch()); jasperProcessInfo.setIsBatch(pi.isBatch());
@ -165,6 +166,7 @@ public class ServerReportCtl {
jasperProcessInfo.setPrintPreview( !IsDirectPrint ); jasperProcessInfo.setPrintPreview( !IsDirectPrint );
} }
jasperProcessInfo.setRecord_ID ( Record_ID ); jasperProcessInfo.setRecord_ID ( Record_ID );
jasperProcessInfo.setTable_ID(printInfo.getAD_Table_ID());
ArrayList<ProcessInfoParameter> jasperPrintParams = new ArrayList<ProcessInfoParameter>(); ArrayList<ProcessInfoParameter> jasperPrintParams = new ArrayList<ProcessInfoParameter>();
ProcessInfoParameter pip; ProcessInfoParameter pip;
if (printerName!=null && printerName.trim().length()>0) { if (printerName!=null && printerName.trim().length()>0) {

View File

@ -32,9 +32,13 @@ import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.BasicFileAttributes;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Properties;
import org.adempiere.exceptions.AdempiereException; import org.adempiere.exceptions.AdempiereException;
import org.adempiere.model.GenericPO;
import org.compiere.model.MAttachment; import org.compiere.model.MAttachment;
import org.compiere.model.MTable;
import org.compiere.model.PO;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.compiere.util.Util; import org.compiere.util.Util;
@ -431,12 +435,78 @@ public class FileUtil
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String dt = sdf.format(cal.getTime()); String dt = sdf.format(cal.getTime());
String cleanName = subject.replaceAll("[ &/]", ""); String cleanName = subject.replaceAll("[ &/]", "");
String localFile = System.getProperty("java.io.tmpdir") String dir = System.getProperty("java.io.tmpdir")
+ System.getProperty("file.separator") + cleanName + "_" + dt + "_" + Env.getContext(Env.getCtx(), Env.AD_SESSION_ID) + System.getProperty("file.separator") + "rpttmp_" + dt + "_" + Env.getContext(Env.getCtx(), Env.AD_SESSION_ID) + System.getProperty("file.separator");
+ extension; String localFile = dir
+ cleanName + extension;
new File(dir ).mkdirs();
return localFile; return localFile;
} }
/**
*
* @param title
* @param table_ID
* @param record_ID
* @param ctx
* @param m_WindowNo
* @param trxName
* @return
*/
public static String parseTitle(Properties ctx, String title, int table_ID, int record_ID, int m_WindowNo, String trxName) {
if (title.contains("@") && record_ID>0 && table_ID>0) {
MTable table=new MTable(ctx,table_ID,trxName );
PO po = new GenericPO(table.getTableName(), ctx, record_ID, trxName);
title=Env.parseVariable(title, po, trxName, true);
}
else
title= Env.parseContext (ctx, m_WindowNo, title,
true, true);
return title;
}
public static File createTempFile(String prefix, String suffix, File directory) throws IOException
{
if (prefix.length() < 3) {
throw new IllegalArgumentException("Prefix string \"" + prefix +
"\" too short: length must be at least 3");
}
if (suffix == null)
suffix = ".tmp";
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String dt = sdf.format(cal.getTime());
String tmpdirname = (directory != null) ? directory.getCanonicalPath() : System.getProperty("java.io.tmpdir");
tmpdirname += System.getProperty("file.separator") + "rpttmp_" + dt + "_" + Env.getContext(Env.getCtx(), Env.AD_SESSION_ID) + System.getProperty("file.separator");
File tmpdir = new File(tmpdirname);
tmpdir.mkdirs();
String fileName = prefix + suffix;
SecurityManager sm = System.getSecurityManager();
File f = new File(tmpdirname, fileName);
if (sm != null) {
try {
sm.checkWrite(f.getPath());
} catch (SecurityException se) {
// don't reveal temporary directory location
if (directory == null)
throw new SecurityException("Unable to create temporary file");
throw se;
}
}
return f;
}
public static File createTempFile(String prefix, String suffix) throws IOException
{
return createTempFile(prefix, suffix, null);
}
/** /**
* *
* @param path * @param path

View File

@ -64,6 +64,7 @@ import org.compiere.process.ClientProcess;
import org.compiere.process.ProcessCall; import org.compiere.process.ProcessCall;
import org.compiere.process.ProcessInfo; import org.compiere.process.ProcessInfo;
import org.compiere.process.ProcessInfoParameter; import org.compiere.process.ProcessInfoParameter;
import org.compiere.tools.FileUtil;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.Env; import org.compiere.util.Env;
@ -394,7 +395,15 @@ public class ReportStarter implements ProcessCall, ClientProcess
printerName = printFormat.getPrinterName(); printerName = printFormat.getPrinterName();
} }
} }
if (pi.getAD_Process_ID()>0) {
MProcess process = new MProcess(Env.getCtx(), processInfo.getAD_Process_ID(), processInfo.getTransactionName());
Language language = printFormat.getLanguage();
String processFileNamePattern = printFormat.get_Translation("FileNamePattern", language.getAD_Language());
if (process !=null && !Util.isEmpty(processFileNamePattern)) {
String filename=FileUtil.parseTitle(Env.getCtx(), processFileNamePattern, pi.getTable_ID(), Record_ID, 0, trxName);
pi.setTitle(filename);
}
}
params.put(CURRENT_LANG, currLang.getAD_Language()); params.put(CURRENT_LANG, currLang.getAD_Language());
params.put(JRParameter.REPORT_LOCALE, currLang.getLocale()); params.put(JRParameter.REPORT_LOCALE, currLang.getLocale());
params.put(COLUMN_LOOKUP, new ColumnLookup(currLang)); params.put(COLUMN_LOOKUP, new ColumnLookup(currLang));
@ -443,6 +452,7 @@ public class ReportStarter implements ProcessCall, ClientProcess
params.put(JRParameter.REPORT_VIRTUALIZER, virtualizer); params.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);
JRBaseFiller filler = JRFiller.createFiller(jasperReportContext, jasperReport); JRBaseFiller filler = JRFiller.createFiller(jasperReportContext, jasperReport);
JasperPrint jasperPrint = filler.fill(params, conn); JasperPrint jasperPrint = filler.fill(params, conn);
jasperPrint.setName(pi.getTitle());
recordCounts = filler.getVariableValue(JRVariable.REPORT_COUNT); recordCounts = filler.getVariableValue(JRVariable.REPORT_COUNT);
if (!processInfo.isExport()) if (!processInfo.isExport())

View File

@ -64,6 +64,7 @@ import org.compiere.model.MProcessPara;
import org.compiere.model.MSysConfig; import org.compiere.model.MSysConfig;
import org.compiere.print.ReportEngine; import org.compiere.print.ReportEngine;
import org.compiere.process.ProcessInfo; import org.compiere.process.ProcessInfo;
import org.compiere.tools.FileUtil;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.DisplayType; import org.compiere.util.DisplayType;
@ -888,7 +889,7 @@ public class DashboardController implements EventListener<Event> {
public AMedia generateReport(int AD_Process_ID, String parameters) throws Exception { public AMedia generateReport(int AD_Process_ID, String parameters) throws Exception {
ReportEngine re = runReport(AD_Process_ID, parameters); ReportEngine re = runReport(AD_Process_ID, parameters);
File file = File.createTempFile(re.getName(), ".html"); File file = FileUtil.createTempFile(re.getName(), ".html");
re.createHTML(file, false, AEnv.getLanguage(Env.getCtx()), new HTMLExtension(Executions.getCurrent().getContextPath(), "rp", re.createHTML(file, false, AEnv.getLanguage(Env.getCtx()), new HTMLExtension(Executions.getCurrent().getContextPath(), "rp",
SessionManager.getAppDesktop().getComponent().getUuid())); SessionManager.getAppDesktop().getComponent().getUuid()));
return new AMedia(re.getName(), "html", "text/html", file, false); return new AMedia(re.getName(), "html", "text/html", file, false);

View File

@ -275,7 +275,7 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
if (prefix.length() < 3) if (prefix.length() < 3)
prefix += "_".repeat(3-prefix.length()); prefix += "_".repeat(3-prefix.length());
if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "Path="+path + " Prefix="+prefix); if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "Path="+path + " Prefix="+prefix);
File file = File.createTempFile(prefix, "."+PDF_FILE_EXT, new File(path)); File file = FileUtil.createTempFile(prefix, "."+PDF_FILE_EXT, new File(path));
m_reportEngine.createPDF(file); m_reportEngine.createPDF(file);
return new AMedia(file.getName(), PDF_FILE_EXT, PDF_MIME_TYPE, file, true); return new AMedia(file.getName(), PDF_FILE_EXT, PDF_MIME_TYPE, file, true);
} catch (Exception e) { } catch (Exception e) {
@ -293,7 +293,7 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
if (prefix.length() < 3) if (prefix.length() < 3)
prefix += "_".repeat(3-prefix.length()); prefix += "_".repeat(3-prefix.length());
if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "Path="+path + " Prefix="+prefix); if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "Path="+path + " Prefix="+prefix);
File file = File.createTempFile(prefix, "."+HTML_FILE_EXT, new File(path)); File file = FileUtil.createTempFile(prefix, "."+HTML_FILE_EXT, new File(path));
String contextPath = Executions.getCurrent().getContextPath(); String contextPath = Executions.getCurrent().getContextPath();
m_reportEngine.createHTML(file, false, m_reportEngine.getPrintFormat().getLanguage(), new HTMLExtension(contextPath, "rp", getUuid())); m_reportEngine.createHTML(file, false, m_reportEngine.getPrintFormat().getLanguage(), new HTMLExtension(contextPath, "rp", getUuid()));
return new AMedia(file.getName(), HTML_FILE_EXT, HTML_MIME_TYPE, file, false); return new AMedia(file.getName(), HTML_FILE_EXT, HTML_MIME_TYPE, file, false);
@ -312,7 +312,7 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
if (prefix.length() < 3) if (prefix.length() < 3)
prefix += "_".repeat(3-prefix.length()); prefix += "_".repeat(3-prefix.length());
if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "Path="+path + " Prefix="+prefix); if (log.isLoggable(Level.FINE)) log.log(Level.FINE, "Path="+path + " Prefix="+prefix);
File file = File.createTempFile(prefix, "."+EXCEL_FILE_EXT, new File(path)); File file = FileUtil.createTempFile(prefix, "."+EXCEL_FILE_EXT, new File(path));
m_reportEngine.createXLS(file, m_reportEngine.getPrintFormat().getLanguage()); m_reportEngine.createXLS(file, m_reportEngine.getPrintFormat().getLanguage());
return new AMedia(file.getName(), EXCEL_FILE_EXT, EXCEL_MIME_TYPE, file, true); return new AMedia(file.getName(), EXCEL_FILE_EXT, EXCEL_MIME_TYPE, file, true);
} catch (Exception e) { } catch (Exception e) {
@ -331,7 +331,7 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
{ {
log.log(Level.FINE, "Path="+path + " Prefix="+prefix); log.log(Level.FINE, "Path="+path + " Prefix="+prefix);
} }
File file = File.createTempFile(prefix, "."+CSV_FILE_EXT, new File(path)); File file = FileUtil.createTempFile(prefix, "."+CSV_FILE_EXT, new File(path));
m_reportEngine.createCSV(file, ',', AEnv.getLanguage(Env.getCtx())); m_reportEngine.createCSV(file, ',', AEnv.getLanguage(Env.getCtx()));
return new AMedia(file.getName(), CSV_FILE_EXT, CSV_MIME_TYPE, file, false); return new AMedia(file.getName(), CSV_FILE_EXT, CSV_MIME_TYPE, file, false);
} catch (Exception e) { } catch (Exception e) {
@ -350,7 +350,7 @@ public class ZkReportViewer extends Window implements EventListener<Event>, ITab
{ {
log.log(Level.FINE, "Path=" + path + " Prefix=" + prefix); log.log(Level.FINE, "Path=" + path + " Prefix=" + prefix);
} }
File file = File.createTempFile(prefix, "."+EXCEL_XML_FILE_EXT, new File(path)); File file = FileUtil.createTempFile(prefix, "."+EXCEL_XML_FILE_EXT, new File(path));
m_reportEngine.createXLSX(file, m_reportEngine.getPrintFormat().getLanguage()); m_reportEngine.createXLSX(file, m_reportEngine.getPrintFormat().getLanguage());
return new AMedia(file.getName(), EXCEL_XML_FILE_EXT, EXCEL_XML_MIME_TYPE, file, true); return new AMedia(file.getName(), EXCEL_XML_FILE_EXT, EXCEL_XML_MIME_TYPE, file, true);
} catch (Exception e) { } catch (Exception e) {