diff --git a/.abapgit.xml b/.abapgit.xml
new file mode 100644
index 0000000..4b8a2ce
--- /dev/null
+++ b/.abapgit.xml
@@ -0,0 +1,19 @@
+
+
+
+
+ D
+
+ E
+
+ /src/
+ FULL
+
+ -
+ SAP_ABA
+ 750
+
+
+
+
+
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..5899960
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,19 @@
+# Contributing to cds2alv
+
+Welcome and thank you for your interest in our lovely project. Your contributions are grealty appreciated.
+
+Please bear in mind that this is our first public Open Source ABAP project, so we are still very much in the process of figuring things out.
+
+## Discussions
+
+You are welcome to engage in discussions here on GitHub.
+
+## Bug Reports
+
+If you have found a bug or wish for a new feature, please file an issue here on GitHub.
+
+When reporting bugs please provide some information on how the issue can be reproduced to help us find the cause of the error.
+
+## Contributions
+
+You are welcome to contribute by means of pull requests. If a pull request aims to resolve an issue, please reference accordingly.
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..e5ce5ae
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 rku.it GmbH
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/README.md b/README.md
index 524594f..028eddf 100644
--- a/README.md
+++ b/README.md
@@ -4,4 +4,4 @@ For information regarding installation and setup please refer to the [Installati
Program Extensions will be provided in a separate repository.
-Version support: The project is maintained in SAP_ABA 750 SP26, it works on newer releases with minor adjustments.
+Version support: The project is maintained in SAP_ABA 750 SP26, it works on newer releases with minor adjustments.
\ No newline at end of file
diff --git a/docs/annotations.md b/docs/annotations.md
new file mode 100644
index 0000000..2d90617
--- /dev/null
+++ b/docs/annotations.md
@@ -0,0 +1,68 @@
+# Annotations
+The following CDS annotations are evaluated by the components of the CDS ALV framework.
+
+## Base
+* EndUserText.label - Descriptive name of the CDS entity
+
+## Grid Builder
+* Consumption.hidden - field is treated as technical by ALV
+* Consumption.valueHelp - custom F4 help for the field in the ALV grid
+* Consumption.valueHelpDefinition - custom F4 help for the field in the ALV grid
+* Consumption.semanticObject - semantic object for Intent-Based Navigation (Hotspot or Button)
+* DefaultAggregation - aggregation is applied to the respective column
+* EndUserText.label - column heading
+* EndUserText.quickInfo - column tooltip
+* Semantics.email.address - column becomes hotspot, link click to send mail
+* UI.hidden - field is hidden in the ALV grid by default
+* UI.lineItem.position - column position in the ALV grid
+* UI.lineItem.label - column heading
+* UI.lineItem.type - behaviour according to type:
+ * #STANDARD or none: plain column
+ * #FOR_ACTION: button for a BOPF action
+ * #FOR_INTENT_BASED_NAVIGATION: button for Intent-Based Navigation
+ * #WITH_INTENT_BASED_NAVIGATION: hotspot for Intent-Based Navigation
+ * #WITH_URL: hotspot for an HTTP call
+ * #WITH_NAVIGATION_PATH: hotspot for calling the report of an associated CDS view with the current display as forall-table
+* UI.lineItem.semanticObject - semantic object for Intent-Based Navigation (Hotspot or Button)
+* UI.lineItem.semanticObjectAction - semantic action for Intent-Based Navigation (Hotspot or Button)
+* UI.lineItem.targetElement - target path of the navigation via association
+* UI.lineItem.dataAction - name of the BOPF action
+* UI.lineItem.url - target URL for the HTTP call
+* ObjectModel.semanticKey - key columns in the ALV grid
+* ObjectModel.deleteEnabled - if true, adds user command DELETE to the alv grid
+* ObjectModel.updateEnabled - if true, the ALV becomes editable, adds user command SAVE to the alv grid
+* ObjectModel.readOnly - column remains read-only
+
+## Report Generation Strategy and Selection Screen
+* AbapCatalog.sqlViewName - used to compose the name of the generated report
+* Consumption.filter.selectionType - displays the field on the selection screen. Restrictions apply:
+ * #SINGLE: NO-EXTENSIONS and NO INTERVALS, only EQ allowed
+ * #INTERVAL: NO-EXTENSIONS, only EQ and BT allowed
+ * #RANGE: no restrictions
+* Consumption.filter.multipleSelections - restricts the selection
+* Consumption.filter.mandatory - marks the field as mandatory on the selection screen
+* Consumption.filter.defaultValue - default value for a select option on the selection screen
+* Consumption.defaultValue - default value for a parameter on the selection screen
+* Consumption.valueHelp - custom F4 help for the field in the selection screen
+* Consumption.valueHelpDefinition - custom F4 help for the field in the selection screen
+* Consumption.hidden - field is not displayed on the selection screen
+* EndUserText.label - label for the line on the selection screen
+* UI.selectionField.position - position of the field on the selection screen
+* UI.selectionField.qualifier - used to group the selection fields into separate blocks on the selection screen
+
+## Table Container
+* ObjectModel.updateEnabled - if true, add style table field to the ALV grid
+* UI.lineItem.criticality - add color table field to the ALV grid
+
+## Value Help
+* Consumption.valueHelp - association that is used for the value help
+* Consumption.valueHelpDefinition.association - association that is used for the value help
+* Consumption.valueHelpDefinition.entity.name - name of the target CDS entity
+* Consumption.valueHelpDefinition.entity.element - name of the target CDS element
+* Consumption.valueHelpDefinition.distinctValues - selection is executed as SELECT DISTINCT
+* Consumption.valueHelpDefinition.label - not yet used
+* Consumption.valueHelpDefinition.additionalBinding.localParameter - name of the source parameter for an ON-condition
+* Consumption.valueHelpDefinition.additionalBinding.localElement - name of the source element for an ON-condition
+* Consumption.valueHelpDefinition.additionalBinding.parameter - name of the target parameter for an ON-condition
+* Consumption.valueHelpDefinition.additionalBinding.element - name of the target element for an ON-condition
+* Consumption.valueHelpDefinition.additionalBinding.usage - controls whether the binding is used as filter or result
\ No newline at end of file
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 0000000..8a8d3d7
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,13 @@
+This project offers a framework to generate List Reports using ALV Grid for CDS Views.
+The features of the reports are controlled using CDS Annotations.
+
+**Version**
+
+The project is maintained on a system with Software Component SAP_ABA 750 SP26.
+It runs on newer releases with minor adjustments, we plan to offer a variant for S/4HANA 2023 in the near future.
+
+**Resources**
+
+* [Installation Guide](./installation_guide.md)
+* [Overview of relevant CDS annotations](./annotations.md)
+* [Program extensions](./program_extensions.md)
\ No newline at end of file
diff --git a/docs/installation_guide.md b/docs/installation_guide.md
new file mode 100644
index 0000000..912e0e3
--- /dev/null
+++ b/docs/installation_guide.md
@@ -0,0 +1,52 @@
+## Prerequisites
+
+abapGit needs to be installed and set up according to the official documentation:
+* [Installation](https://docs.abapgit.org/user-guide/getting-started/install.html)
+* [SSL Setup](https://docs.abapgit.org/user-guide/setup/ssl-setup.html) (SSL certificates for api.github.com)
+* [Proxy Configuration](https://docs.abapgit.org/user-guide/setup/settings-global.html)
+
+## Installation
+
+Execute abapGit using the report *ZABAPGIT_STANDALONE* or transaction code *ZABAPGIT*, click on *New Online*.
+
+Fill the field *Git repository URL* with *https://github.com/rku-it-GmbH/cds2alv.git*.
+
+The default package name is *ZCDS_ALV*, create the package, if it does not already exist.
+
+Create the Online Repository and pull all contents to your system.
+
+Check if the Viewcluster *ZVC_CDS_ALV_FW* works properly, it may be necessary to generate the Maintenance Views in Function Group *ZCDS_ALV_TABLES* manually.
+
+## Setup
+
+### Maintain the Viewcluster *ZVC_CDS_ALV_FW*
+
+#### Intent-Based Navigation
+Define the Intent-Based Navigation for the semantic objects and actions you want to use in your CDS Views.
+
+#### Intent-Based Navigation (Exits)
+If the features offered by the framework are insufficient for ypur use case, you can use an exit class to implement the navigation for a specific CDS view.
+
+#### Program Extensions
+These are Plugins to enhance the features of the reports generated by the framework.
+They allow you to replace the steps for selection and display.
+
+##### Extension Parameters
+Program Extensions typically need additional parameters that need to be added to the selection screen. In this view you can define these additional parameters.
+
+Please be aware that the parameter names must be unique globally, so two extensions using the same parameter names cannot be active at the same time.
+
+#### Implementation
+The framework's factory class uses an Inverison of Control container to resolve the dependencies between the various classes.
+This allows for replacing the default classes with other classes implementing the same interface.
+
+In this view you can register global alternative implementing classes for the framework's interfaces.
+
+Please be aware that the IoC container is not able to resolve cyclic dependencies, so you need to make sure that your collection of implementing classes does not lead to any cyclic dependencies.
+
+### Maintain Number Range Interval for View Entity Reports
+Originally when designing the framework we decided to name the reports using a prefix and the name of the underlying database view of the CDS views.
+As CDS View Entities do not have underlying database views the need for an alternative solution arose.
+
+As of now the solution is to create a unique name by numbering the reports. To this end the framework uses the Number Range *ZCDS_ALV_N* with interval *00*.
+This interval needs to be defined in order for the framework to generate reports for CDS View entities.
\ No newline at end of file
diff --git a/docs/program_extensions.md b/docs/program_extensions.md
new file mode 100644
index 0000000..d79e730
--- /dev/null
+++ b/docs/program_extensions.md
@@ -0,0 +1,36 @@
+# Program extensions
+
+Program extensions are plugins for the reports genereated by the framework.
+They can be switched on and off for each individual CDS view in the first screen of the transaction *ZCDS_ALV_START*.
+
+## Defining a Program extension
+
+Program extensions are defined in the Viewcluster *ZVC_CDS_ALV_FW*.
+The definition of a program extension consists of the following information:
+* database key
+* display name
+* implementing class
+* descriptive texts for alternative selection or display, if any of these are impemented
+* addtional parameters that are added to the selection screen and bound to attributes of the implementing class
+
+## Implementing a Program extension
+
+The implementing class of a program extension must implement the interface *ZIF_CDS_ALV_REPORT_EXTENSION*,
+furthermore it is recommended to inherit from the abstract class *ZCL_CDS_ALV_REPORT_EXTENSION* or a suitable subclass.
+
+Program extensions can enhance the following events:
+
+* INITIALIZATION (initialization)
+* AT SELECTION-SCREEN OUTPUT (modify_screen)
+* AT SELECTION-SCREEN (handle_user_command)
+* AT SELECTION-SCREEN ON HELP-REQUEST (show_help)
+* AT SELECTION-SCREEN ON VALUE-REQUEST (value_help)
+* START-OF-SELECTION:
+ * alternative_selection to replace the selection via the SADL framework
+ * alternative_display to replace the ALV grid display
+
+Moreover, the method *alternative_reselection* needs to be implemented for handling the ALV user command *REFRESH*, if an alternative selection is defined
+
+## Collection of Program extensions
+
+A collection of program extensions will be made available as a separate repository in the near future.
\ No newline at end of file
diff --git a/src/package.devc.xml b/src/package.devc.xml
new file mode 100644
index 0000000..71b089a
--- /dev/null
+++ b/src/package.devc.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ CDS ALV Framework
+
+
+
+ SBOI_PUBLIC
+ NONE
+
+
+
+
+
diff --git a/src/zc_cds_alv_extensionheaders.ddls.asddls b/src/zc_cds_alv_extensionheaders.ddls.asddls
new file mode 100644
index 0000000..3db57d4
--- /dev/null
+++ b/src/zc_cds_alv_extensionheaders.ddls.asddls
@@ -0,0 +1,17 @@
+@AbapCatalog.sqlViewName: 'ZCCDSALVEXTHDR'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'Erweiterungen von Reports für CDS-Views'
+@VDM.viewType: #CONSUMPTION
+define view ZC_CDS_ALV_ExtensionHeaders as select from ZI_CDS_ALV_ExtensionHeaders {
+ key ExtensionName,
+ AlternativeSelection,
+ AlternativeDisplay,
+ ImplementingClass,
+ _Text[ 1: Language = $session.system_language ].ExtensionText,
+ _Text[ 1: Language = $session.system_language ].SelectionText,
+ _Text[ 1: Language = $session.system_language ].DisplayText,
+ /* Associations */
+ _Text
+}
diff --git a/src/zc_cds_alv_extensionheaders.ddls.xml b/src/zc_cds_alv_extensionheaders.ddls.xml
new file mode 100644
index 0000000..98ff60c
--- /dev/null
+++ b/src/zc_cds_alv_extensionheaders.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZC_CDS_ALV_EXTENSIONHEADERS
+ D
+ Erweiterungen von Reports für CDS-Views
+
+
+
+
diff --git a/src/zc_cds_alv_extensionparameters.ddls.asddls b/src/zc_cds_alv_extensionparameters.ddls.asddls
new file mode 100644
index 0000000..c898ebe
--- /dev/null
+++ b/src/zc_cds_alv_extensionparameters.ddls.asddls
@@ -0,0 +1,17 @@
+@AbapCatalog.sqlViewName: 'ZCCDSALVEXTPAR'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'Parameter einer Programmerweiterung'
+@VDM.viewType: #CONSUMPTION
+define view ZC_CDS_ALV_ExtensionParameters as select from ZI_CDS_ALV_ExtensionParameters {
+ key ExtensionName,
+ key ParameterName,
+ DbField,
+ HasValueHelp,
+ HasHelp,
+ AttributeName,
+ _Text[ 1: Language = $session.system_language ].ParameterText as ParameterText,
+ /* Associations */
+ _Text
+}
diff --git a/src/zc_cds_alv_extensionparameters.ddls.xml b/src/zc_cds_alv_extensionparameters.ddls.xml
new file mode 100644
index 0000000..523eebb
--- /dev/null
+++ b/src/zc_cds_alv_extensionparameters.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZC_CDS_ALV_EXTENSIONPARAMETERS
+ D
+ Parameter einer Programmerweiterung
+
+
+
+
diff --git a/src/zc_cds_alv_navigation.ddls.asddls b/src/zc_cds_alv_navigation.ddls.asddls
new file mode 100644
index 0000000..93e17a0
--- /dev/null
+++ b/src/zc_cds_alv_navigation.ddls.asddls
@@ -0,0 +1,17 @@
+@AbapCatalog.sqlViewName: 'ZCCDSALVNAV'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'Intent-Based Navigation'
+@VDM.viewType: #CONSUMPTION
+define view ZC_CDS_ALV_Navigation as select from ZI_CDS_ALV_Navigation {
+ key SemanticObject,
+ key SemanticAction,
+ Function,
+ DefaultParameter,
+ ConversionExit,
+ ObjectType,
+ ObjectMethod,
+ TransactionCode,
+ ParameterId
+}
diff --git a/src/zc_cds_alv_navigation.ddls.xml b/src/zc_cds_alv_navigation.ddls.xml
new file mode 100644
index 0000000..8d73313
--- /dev/null
+++ b/src/zc_cds_alv_navigation.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZC_CDS_ALV_NAVIGATION
+ D
+ Intent-Based Navigation
+
+
+
+
diff --git a/src/zc_cds_alv_parameters.ddls.asddls b/src/zc_cds_alv_parameters.ddls.asddls
new file mode 100644
index 0000000..511b29e
--- /dev/null
+++ b/src/zc_cds_alv_parameters.ddls.asddls
@@ -0,0 +1,12 @@
+@AbapCatalog.sqlViewName: 'ZCCDSALVPARAMS'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'PARAMETERS der generierten Programme für CDS-Views'
+@VDM.viewType: #CONSUMPTION
+define view ZC_CDS_ALV_Parameters as select from ZI_CDS_ALV_Parameters {
+ key ProgramName,
+ key SelectionName,
+ CdsView,
+ ParameterName
+}
diff --git a/src/zc_cds_alv_parameters.ddls.xml b/src/zc_cds_alv_parameters.ddls.xml
new file mode 100644
index 0000000..9869842
--- /dev/null
+++ b/src/zc_cds_alv_parameters.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZC_CDS_ALV_PARAMETERS
+ D
+ PARAMETERS der generierten Programme für CDS-Views
+
+
+
+
diff --git a/src/zc_cds_alv_programs.ddls.asddls b/src/zc_cds_alv_programs.ddls.asddls
new file mode 100644
index 0000000..d601d5c
--- /dev/null
+++ b/src/zc_cds_alv_programs.ddls.asddls
@@ -0,0 +1,19 @@
+@AbapCatalog.sqlViewName: 'ZCCDSALVPROGRAM'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'Programme zur Anzeige von CDS-Views'
+define view ZC_CDS_ALV_Programs as select from ZI_CDS_ALV_Programs {
+ @UI.lineItem: [{ position: 1 }]
+ key CdsView,
+ @UI.lineItem: [{ position: 2 }]
+ ProgramName,
+ @UI.lineItem: [{ position: 3 }]
+ SelectionScreen,
+ @UI.lineItem: [{ position: 4 }]
+ Author,
+ @UI.lineItem: [{ position: 5 }]
+ GeneratedAt,
+ @UI.lineItem: [{ position: 6 }]
+ NoGeneration
+}
diff --git a/src/zc_cds_alv_programs.ddls.xml b/src/zc_cds_alv_programs.ddls.xml
new file mode 100644
index 0000000..aee115f
--- /dev/null
+++ b/src/zc_cds_alv_programs.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZC_CDS_ALV_PROGRAMS
+ D
+ Programme zur Anzeige von CDS-Views
+
+
+
+
diff --git a/src/zc_cds_alv_selectoptions.ddls.asddls b/src/zc_cds_alv_selectoptions.ddls.asddls
new file mode 100644
index 0000000..925230f
--- /dev/null
+++ b/src/zc_cds_alv_selectoptions.ddls.asddls
@@ -0,0 +1,16 @@
+@AbapCatalog.sqlViewName: 'ZCCDSVALVSELOPTS'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'SELECT-OPTIONS der generierten Programme für CDS-Views'
+@VDM.viewType: #CONSUMPTION
+define view ZC_CDS_ALV_SelectOptions as select from ZI_CDS_ALV_SelectOptions {
+ @UI.lineItem: [{ position: 1 }]
+ key ProgramName,
+ @UI.lineItem: [{ position: 2 }]
+ key SelectionName,
+ @UI.lineItem: [{ position: 3 }]
+ CdsView,
+ @UI.lineItem: [{ position: 4 }]
+ FieldName
+}
diff --git a/src/zc_cds_alv_selectoptions.ddls.xml b/src/zc_cds_alv_selectoptions.ddls.xml
new file mode 100644
index 0000000..d45f124
--- /dev/null
+++ b/src/zc_cds_alv_selectoptions.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZC_CDS_ALV_SELECTOPTIONS
+ D
+ SELECT-OPTIONS der generierten Programme für CDS-Views
+
+
+
+
diff --git a/src/zcds_alv.msag.xml b/src/zcds_alv.msag.xml
new file mode 100644
index 0000000..4dd58e6
--- /dev/null
+++ b/src/zcds_alv.msag.xml
@@ -0,0 +1,378 @@
+
+
+
+
+
+ ZCDS_ALV
+ D
+ CDS ALV Framework
+
+
+
+ D
+ ZCDS_ALV
+ 001
+ Die Tabelle konnte nicht um das Style-Feld &1 erweitert werden.
+
+
+ D
+ ZCDS_ALV
+ 002
+ Keine Navigation für Objekt &1, Aktion &2 definiert.
+
+
+ D
+ ZCDS_ALV
+ 003
+ Bitte markieren Sie nur eine Zeile für diese Aktion.
+
+
+ D
+ ZCDS_ALV
+ 004
+ Aufruf mit Tabellenparameter nur für Funktionsbausteine möglich!
+
+
+ D
+ ZCDS_ALV
+ 005
+ Ungültiger Importparameter &1 für Funktionsbaustein &2.
+
+
+ D
+ ZCDS_ALV
+ 006
+ Fehler beim Generieren des Reports für CDS-View &1 (Zeile &2, Wort &3)
+
+
+ D
+ ZCDS_ALV
+ 007
+ Der CDS-View &1 existiert nicht.
+
+
+ D
+ ZCDS_ALV
+ 008
+ Kein Programm für CDS-View &1 vorhanden.
+
+
+ D
+ ZCDS_ALV
+ 009
+ Der CDS-View &1 existiert bereits.
+
+
+ D
+ ZCDS_ALV
+ 010
+ Der DDIC-View &1 existiert bereits.
+
+
+ D
+ ZCDS_ALV
+ 011
+ Query oder Quick-View &1 ist nicht vorhanden.
+
+
+ D
+ ZCDS_ALV
+ 012
+ Query oder Quick-View &1 kann nicht gelesen werden.
+
+
+ D
+ ZCDS_ALV
+ 013
+ Objekt &1 konnte nicht aktiviert werden.
+
+
+ D
+ ZCDS_ALV
+ 014
+ Programminfos für CDS-View &1 konnten nicht gespeichert werden.
+
+
+ D
+ ZCDS_ALV
+ 015
+ Das Objekt implementiert nicht das Interface &1.
+
+
+ D
+ ZCDS_ALV
+ 016
+ Keine gültige implementierende Klasse für Interface &1 konfiguriert.
+
+
+ D
+ ZCDS_ALV
+ 017
+ Für Interface &1 konnte keine Instanz der Klasse &2 instanziiert werden.
+
+
+ D
+ ZCDS_ALV
+ 018
+ Die Tabelle hat nicht die passende Struktur für CDS-View &1.
+
+
+ D
+ ZCDS_ALV
+ 019
+ Klasse &1 für Erweiterung &2 konnte nicht instanziiert werden.
+
+
+ D
+ ZCDS_ALV
+ 020
+ Es sind keine Programmerweiterungen verfügbar.
+
+
+ D
+ ZCDS_ALV
+ 021
+ Konvertierung für XML-Version &1 aktuell nicht umgesetzt.
+
+
+ D
+ ZCDS_ALV
+ 022
+ Bitte geben Sie einen Dateinamen an.
+
+
+ D
+ ZCDS_ALV
+ 023
+ Fehler beim Lesen der Datei &1.
+
+
+ D
+ ZCDS_ALV
+ 024
+ Fehler beim Ablegen der Datei &1.
+
+
+ D
+ ZCDS_ALV
+ 025
+ Fehler beim Löschen der Datei &1.
+
+
+ D
+ ZCDS_ALV
+ 026
+ Datei &1 wurde abgelegt.
+
+
+ D
+ ZCDS_ALV
+ 027
+ &1 ist keine gültige Klasse.
+
+
+ D
+ ZCDS_ALV
+ 028
+ &1 ist kein gültiges Interface.
+
+
+ D
+ ZCDS_ALV
+ 029
+ Klasse &1 implementiert nicht das Interface &2.
+
+
+ D
+ ZCDS_ALV
+ 030
+ Fehler beim RFC-Aufruf: &1
+
+
+ D
+ ZCDS_ALV
+ 031
+ Mailversand an Empfängerliste &1 angestoßen.
+
+
+ D
+ ZCDS_ALV
+ 032
+ Leere Empfängerliste &1
+
+
+
+ E
+
+
+
+ E
+ ZCDS_ALV
+ CDS ALV Framework
+
+
+
+ -
+ E
+ 001
+ Style field &1 could not be inserted into the table.
+
+ -
+ E
+ 002
+ No navigation defined for semantic object &1, action &2.
+
+ -
+ E
+ 003
+ Please select exactly one line for this action.
+
+ -
+ E
+ 004
+ Only function modules may be called with tables parameters!
+
+ -
+ E
+ 005
+ Invalid importing parameter &1 for function module &2.
+
+ -
+ E
+ 006
+ Syntax error in generated report for CDS view &1 (Line &2, Word &3)
+
+ -
+ E
+ 007
+ CDS view &1 does not exist.
+
+ -
+ E
+ 008
+ No program available for CDS view &1.
+
+ -
+ E
+ 009
+ CDS view &1 already exists.
+
+ -
+ E
+ 010
+ DDIC view &1 already exists.
+
+ -
+ E
+ 011
+ Query or quick view &1 does not exist.
+
+ -
+ E
+ 012
+ Error reading query or quick view &1.
+
+ -
+ E
+ 013
+ Object &1 could not be activated.
+
+ -
+ E
+ 014
+ Program infos for CDS View &1 could not be saved.
+
+ -
+ E
+ 015
+ The given object does not implement interface &1.
+
+ -
+ E
+ 016
+ There is no valid implementing class configured for interface &1.
+
+ -
+ E
+ 017
+ No instance of class &2 could be instantiated for interface &1.
+
+ -
+ E
+ 018
+ The given table does not have the right line type for CDS view &1.
+
+ -
+ E
+ 019
+ Class &1 could not be instantiated for extension &2.
+
+ -
+ E
+ 020
+ There are no program extensions available.
+
+ -
+ E
+ 021
+ Conversion is currently not implemented for XML version &1.
+
+ -
+ E
+ 022
+ Please enter a file name!
+
+ -
+ E
+ 023
+ Error occured reading file &1.
+
+ -
+ E
+ 024
+ Error occured storing file &1.
+
+ -
+ E
+ 025
+ Error occured deleting file &1.
+
+ -
+ E
+ 026
+ File &1 was stored.
+
+ -
+ E
+ 027
+ &1 is not a valid class.
+
+ -
+ E
+ 028
+ &1 is not a valid interface.
+
+ -
+ E
+ 029
+ Class &1 does not implement interface &2.
+
+ -
+ E
+ 030
+ Error during RFC call: &1
+
+ -
+ E
+ 031
+ Mail delivery to receiver list &1 was triggered.
+
+ -
+ E
+ 032
+ Empty receiver list &1.
+
+
+
+
+
diff --git a/src/zcds_alv_action_name.doma.xml b/src/zcds_alv_action_name.doma.xml
new file mode 100644
index 0000000..93426f5
--- /dev/null
+++ b/src/zcds_alv_action_name.doma.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+ ZCDS_ALV_ACTION_NAME
+ CHAR
+ 000030
+ 000030
+
+
+ E
+
+
+ -
+ E
+ Name
+
+
+
+
+
diff --git a/src/zcds_alv_action_name.dtel.xml b/src/zcds_alv_action_name.dtel.xml
new file mode 100644
index 0000000..56589de
--- /dev/null
+++ b/src/zcds_alv_action_name.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_ACTION_NAME
+ D
+ ZCDS_ALV_ACTION_NAME
+ 30
+ 10
+ 15
+ 20
+ Name
+ Objektname
+ Objektname
+ Objektname
+ Objektname
+ E
+ D
+
+
+ E
+
+
+ -
+ E
+ Name
+ Action Name
+ Act. Name
+ Action Name
+ Action Name
+
+
+
+
+
diff --git a/src/zcds_alv_activation_timestamp.dtel.xml b/src/zcds_alv_activation_timestamp.dtel.xml
new file mode 100644
index 0000000..b5456bb
--- /dev/null
+++ b/src/zcds_alv_activation_timestamp.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_ACTIVATION_TIMESTAMP
+ D
+ SALV_TEST_TSTMP
+ X
+ 55
+ 10
+ 20
+ 40
+ Zeitstempel der Generierung
+ Zeitpunkt der Aktivierung
+ Aktiviert
+ Aktiviert am
+ Zeitpunkt der Aktivierung
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Generation Timestamp
+ Activation Timestamp
+ Activated
+ Activated on
+ Activation Timestamp
+
+
+
+
+
diff --git a/src/zcds_alv_active_flag.dtel.xml b/src/zcds_alv_active_flag.dtel.xml
new file mode 100644
index 0000000..c1b3b2f
--- /dev/null
+++ b/src/zcds_alv_active_flag.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_ACTIVE_FLAG
+ D
+ XFELD
+ X
+ 55
+ 10
+ 20
+ 40
+ Kennzeichen: Aktiv
+ Aktiv
+ Aktiv
+ Aktiv
+ Aktiv
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Flag: Active
+ Active
+ Active
+ Active
+ Active
+
+
+
+
+
diff --git a/src/zcds_alv_alternative_display.dtel.xml b/src/zcds_alv_alternative_display.dtel.xml
new file mode 100644
index 0000000..249a451
--- /dev/null
+++ b/src/zcds_alv_alternative_display.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_ALTERNATIVE_DISPLAY
+ D
+ XFELD
+ 55
+ 10
+ 20
+ 40
+ Kennzeichen: Alternative Anzeige
+ Alternative Anzeige
+ Alt. Anz.
+ Alternative Anzeige
+ Alternative Anzeige
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Flag: Alternative Display
+ Alternative Display
+ Alt. Disp.
+ Alternative Display
+ Alternative Display
+
+
+
+
+
diff --git a/src/zcds_alv_alternative_selection.dtel.xml b/src/zcds_alv_alternative_selection.dtel.xml
new file mode 100644
index 0000000..babac28
--- /dev/null
+++ b/src/zcds_alv_alternative_selection.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_ALTERNATIVE_SELECTION
+ D
+ XFELD
+ X
+ 55
+ 10
+ 20
+ 40
+ Kennzeichen: Alternative Selektion
+ Alternative Selektion
+ Alt. Sel.
+ Alt. Selektion
+ Alternative Selektion
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Flag: Alternative Selection
+ Alternative Selection
+ Alt. Sel.
+ Alt. Selection
+ Alternative Selection
+
+
+
+
+
diff --git a/src/zcds_alv_cds_view.para.xml b/src/zcds_alv_cds_view.para.xml
new file mode 100644
index 0000000..b1535eb
--- /dev/null
+++ b/src/zcds_alv_cds_view.para.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ ZCDS_ALV_CDS_VIEW
+
+
+ ZCDS_ALV_CDS_VIEW
+ D
+ CDS-View zur Anzeige im ALV
+
+
+
+
diff --git a/src/zcds_alv_criticality.doma.xml b/src/zcds_alv_criticality.doma.xml
new file mode 100644
index 0000000..acbab88
--- /dev/null
+++ b/src/zcds_alv_criticality.doma.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+ ZCDS_ALV_CRITICALITY
+ D
+ NUMC
+ 000001
+ 000001
+ X
+ Criticality (aus UI.LineItem.Criticality)
+
+
+
+ 0001
+ D
+ 0
+ Neutral
+
+
+ 0002
+ D
+ 1
+ Negative
+
+
+ 0003
+ D
+ 2
+ Critical
+
+
+ 0004
+ D
+ 3
+ Positive
+
+
+
+ E
+
+
+ -
+ E
+ Criticality (from UI.LineItem.Criticality)
+
+
+
+ -
+ 0001
+ E
+ 0
+ Neutral
+
+ -
+ 0002
+ E
+ 1
+ Negative
+
+ -
+ 0003
+ E
+ 2
+ Critical
+
+ -
+ 0004
+ E
+ 3
+ Positive
+
+
+
+
+
diff --git a/src/zcds_alv_criticality.dtel.xml b/src/zcds_alv_criticality.dtel.xml
new file mode 100644
index 0000000..fd4bf1e
--- /dev/null
+++ b/src/zcds_alv_criticality.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_CRITICALITY
+ D
+ ZCDS_ALV_CRITICALITY
+ 55
+ 10
+ 20
+ 40
+ Criticality (aus UI.LineItem.Criticality)
+ Criticality
+ Crit.
+ Criticality
+ Criticality
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Criticality (from UI.LineItem.Criticality)
+ Criticality
+ Crit.
+ Criticality
+ Criticality
+
+
+
+
+
diff --git a/src/zcds_alv_demo/package.devc.xml b/src/zcds_alv_demo/package.devc.xml
new file mode 100644
index 0000000..e3d49a2
--- /dev/null
+++ b/src/zcds_alv_demo/package.devc.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ CDS ALV Framework: Demo- und Testobjekte
+
+
+
+
diff --git a/src/zcds_alv_demo/zc_cds_alv_demo.ddls.asddls b/src/zcds_alv_demo/zc_cds_alv_demo.ddls.asddls
new file mode 100644
index 0000000..815acb8
--- /dev/null
+++ b/src/zcds_alv_demo/zc_cds_alv_demo.ddls.asddls
@@ -0,0 +1,51 @@
+@AbapCatalog.sqlViewName: 'ZCCDSALVDEMO'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'Consumption-View für Demoprogramm'
+@ObjectModel.semanticKey: ['DemoKey']
+@VDM.viewType: #CONSUMPTION
+define view ZC_CDS_ALV_Demo as select from ZI_CDS_ALV_Demo {
+ @Consumption.filter.selectionType: #RANGE
+ @UI.lineItem: [{ position: 1 }]
+ @UI.selectionField: [{ position: 1, qualifier: 'Main' }]
+ key demo_key as DemoKey,
+ @Consumption.filter.selectionType: #RANGE
+ @UI.lineItem: [{ position: 2, criticality: 'Criticality' }]
+ @UI.selectionField: [{ position: 2, qualifier: 'Main' }]
+ demo_text as DemoText,
+ @Consumption.filter.selectionType: #INTERVAL
+ @UI.lineItem: [{ position: 3 }]
+ @UI.selectionField: [{ position: 3, qualifier: 'Sub' }]
+ demo_integer as DemoInteger,
+ @UI.lineItem: [{ position: 4 }]
+ demo_float as DemoFloat,
+ @UI.lineItem: [{ position: 5 }]
+ @Semantics.amount.currencyCode: 'DemoCurrency'
+ demo_amount as DemoAmount,
+ @UI.hidden
+ demo_currency as DemoCurrency,
+ @UI.lineItem: [{ position: 6 }]
+ @Semantics.quantity.unitOfMeasure: 'DemoUnit'
+ demo_quantity as DemoQuantity,
+ @Consumption.semanticObject: 'UnitOfMeasure'
+ @UI.hidden
+ @UI.lineItem: [{ type: #FOR_INTENT_BASED_NAVIGATION, semanticObjectAction: 'Maintain', label: 'Units of Measure' }]
+ demo_unit as DemoUnit,
+ @Consumption.filter.selectionType: #RANGE
+ @UI.lineItem: [{ position: 8 }]
+ @UI.selectionField: [{ position: 4 }]
+ demo_email as DemoEmail,
+ @UI.lineItem: [{ position: 9, type: #WITH_URL, url: 'DemoUrl' }]
+ @Semantics.url.mimeType: 'DemoMimeType'
+ demo_url as DemoUrl,
+ @UI.lineItem: [{ position: 10 }]
+ demo_mime_type as DemoMimeType,
+ @Consumption.filter.defaultValue: '3'
+ @Consumption.filter.selectionType: #INTERVAL
+ @UI.lineItem: [{ position: 11 }]
+ @UI.selectionField: [{ position: 5, qualifier: 'Sub' }]
+ criticality as Criticality,
+ @Consumption.hidden: true
+ 'X' as Invisible
+}
diff --git a/src/zcds_alv_demo/zc_cds_alv_demo.ddls.xml b/src/zcds_alv_demo/zc_cds_alv_demo.ddls.xml
new file mode 100644
index 0000000..666908e
--- /dev/null
+++ b/src/zcds_alv_demo/zc_cds_alv_demo.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZC_CDS_ALV_DEMO
+ D
+ Consumption-View für das Demoprogramm
+
+
+
+
diff --git a/src/zcds_alv_demo/zcds_alv_demo.prog.abap b/src/zcds_alv_demo/zcds_alv_demo.prog.abap
new file mode 100644
index 0000000..e92bbdd
--- /dev/null
+++ b/src/zcds_alv_demo/zcds_alv_demo.prog.abap
@@ -0,0 +1,53 @@
+*&---------------------------------------------------------------------*
+*& Report zcds_alv_demo
+*&---------------------------------------------------------------------*
+REPORT zcds_alv_demo.
+
+TABLES: sscrfields, zccdsalvdemo.
+
+CONSTANTS cds_view TYPE ddstrucobjname VALUE 'ZC_CDS_ALV_Demo'.
+
+DATA controller TYPE REF TO zif_cds_alv_report_controller.
+DATA message TYPE REF TO zcx_cds_alv_message.
+
+SELECTION-SCREEN BEGIN OF SCREEN 1001 AS SUBSCREEN.
+ SELECTION-SCREEN BEGIN OF BLOCK sub.
+ SELECT-OPTIONS so_key FOR zccdsalvdemo-demokey.
+
+ PARAMETERS: p_maxrec TYPE ddshmaxrec DEFAULT 500 MODIF ID max,
+ p_no_max TYPE xfeld DEFAULT abap_false USER-COMMAND switch_max,
+ p_forall TYPE xfeld DEFAULT abap_false NO-DISPLAY,
+ p_mem_id TYPE zcds_alv_memory_id NO-DISPLAY.
+ SELECTION-SCREEN END OF BLOCK sub.
+SELECTION-SCREEN END OF SCREEN 1001.
+SELECTION-SCREEN INCLUDE BLOCKS sub.
+PARAMETERS p_split TYPE xfeld DEFAULT abap_false.
+
+LOAD-OF-PROGRAM.
+ TRY.
+ controller = zcl_cds_alv_factory=>get_instance( )->get_report_controller( cds_view ).
+ CATCH zcx_cds_alv_message INTO message.
+ MESSAGE message TYPE 'A'.
+ ENDTRY.
+
+INITIALIZATION.
+ controller->initialization( ).
+
+AT SELECTION-SCREEN OUTPUT.
+ controller->at_selection_screen_output( ).
+
+AT SELECTION-SCREEN.
+ controller->at_selection_screen( sscrfields-ucomm ).
+
+AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_key-low.
+ controller->at_value_request( EXPORTING i_sel_name = 'SO_KEY'
+ CHANGING c_value = so_key-low ).
+
+AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_key-high.
+ controller->at_value_request( EXPORTING i_sel_name = 'SO_KEY'
+ CHANGING c_value = so_key-high ).
+
+START-OF-SELECTION.
+ controller->start_of_selection( i_forall = p_forall
+ i_memory_id = p_mem_id
+ i_in_split_screen = p_split ).
diff --git a/src/zcds_alv_demo/zcds_alv_demo.prog.xml b/src/zcds_alv_demo/zcds_alv_demo.prog.xml
new file mode 100644
index 0000000..3c1c0b4
--- /dev/null
+++ b/src/zcds_alv_demo/zcds_alv_demo.prog.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+ ZCDS_ALV_DEMO
+ S
+ 1
+ X
+ D$S
+ X
+
+
+ -
+ R
+ Demoprogramm für das CDS ALV Framework
+ 38
+
+ -
+ S
+ P_MAXREC
+ .
+ 9
+ D
+
+ -
+ S
+ P_NO_MAX
+ Keine Beschränkung
+ 26
+
+ -
+ S
+ P_SPLIT
+ Anzeige im Split Screen
+ 31
+
+ -
+ S
+ SO_KEY
+ Schlüssel
+ 17
+
+
+
+ -
+ E
+
+
-
+ R
+ CDS ALV demo program
+ 70
+
+ -
+ S
+ P_NO_MAX
+ No restriction
+ 38
+
+ -
+ S
+ P_SPLIT
+ Display in split screen
+ 38
+
+ -
+ S
+ SO_KEY
+ Key
+ 38
+
+ -
+ S
+ P_MAXREC
+ .
+ 9
+ D
+
+
+
+
+
+
+
diff --git a/src/zcds_alv_demo/zcds_alv_demo.tabl.xml b/src/zcds_alv_demo/zcds_alv_demo.tabl.xml
new file mode 100644
index 0000000..cb09c36
--- /dev/null
+++ b/src/zcds_alv_demo/zcds_alv_demo.tabl.xml
@@ -0,0 +1,179 @@
+
+
+
+
+
+ ZCDS_ALV_DEMO
+ D
+ TRANSP
+ X
+ Tabelle für das Demoprogramm
+ X
+ L
+ 4
+
+
+ ZCDS_ALV_DEMO
+ A
+ 0
+ APPL0
+ N
+
+
+
+ MANDT
+ X
+ MANDT
+ T000
+ 0
+ X
+ P
+ E
+
+
+ DEMO_KEY
+ X
+ 0
+ C
+ 000060
+ X
+ CHAR
+ 000030
+ CHAR
+ Schlüssel
+
+
+ DEMO_TEXT
+ 0
+ C
+ 000200
+ CHAR
+ 000100
+ CHAR
+ Freitext
+
+
+ DEMO_INTEGER
+ 0
+ X
+ 000004
+ INT4
+ 000010
+ INT4
+ Ganze Zahl
+
+
+ DEMO_FLOAT
+ 0
+ F
+ 000008
+ FLTP
+ 000016
+ 000016
+ FLTP
+ Gleitpunktzahl
+
+
+ DEMO_AMOUNT
+ 0
+ P
+ 000008
+ ZCDS_ALV_DEMO
+ DEMO_CURRENCY
+ CURR
+ 000014
+ 000002
+ CURR
+ Betrag
+
+
+ DEMO_CURRENCY
+ 0
+ C
+ 000010
+ CUKY
+ 000005
+ CUKY
+ Währung
+
+
+ DEMO_QUANTITY
+ 0
+ P
+ 000016
+ ZCDS_ALV_DEMO
+ DEMO_UNIT
+ QUAN
+ 000031
+ 000014
+ QUAN
+ Menge
+
+
+ DEMO_UNIT
+ 0
+ C
+ 000006
+ UNIT
+ 000003
+ UNIT
+ Einheit
+
+
+ DEMO_EMAIL
+ AD_SMTPADR
+ 0
+ E
+
+
+ DEMO_URL
+ W3URL
+ 0
+ E
+
+
+ DEMO_MIME_TYPE
+ W3CONTTYPE
+ 0
+ E
+
+
+ CRITICALITY
+ ZCDS_ALV_CRITICALITY
+ 0
+ X
+ F
+ E
+
+
+
+
+ MANDT
+ ZCDS_ALV_DEMO
+ MANDT
+ T000
+ MANDT
+ 0001
+ MANDT
+ CLNT
+
+
+
+
+ MANDT
+ T000
+ KEY
+
+
+
+ E
+
+
+ -
+ E
+ Demo database table
+
+
+
+
+
diff --git a/src/zcds_alv_demo/zi_cds_alv_demo.ddls.asddls b/src/zcds_alv_demo/zi_cds_alv_demo.ddls.asddls
new file mode 100644
index 0000000..44b62b5
--- /dev/null
+++ b/src/zcds_alv_demo/zi_cds_alv_demo.ddls.asddls
@@ -0,0 +1,62 @@
+@AbapCatalog.sqlViewName: 'ZICDSALVDEMO'
+@AbapCatalog.compiler.compareFilter: true
+@AbapCatalog.preserveKey: true
+@AccessControl.authorizationCheck: #NOT_REQUIRED
+@EndUserText.label: 'Demo interface view'
+//@ObjectModel.compositionRoot: true
+@ObjectModel.modelCategory: #BUSINESS_OBJECT
+@ObjectModel.representativeKey: 'demo_key'
+@ObjectModel.semanticKey: ['demo_key']
+@ObjectModel.writeActivePersistence: 'ZCDS_ALV_DEMO'
+@ObjectModel.transactionalProcessingEnabled: true
+@ObjectModel.deleteEnabled: true
+@ObjectModel.updateEnabled: true
+@VDM.viewType: #BASIC
+define view ZI_CDS_ALV_Demo as select from zcds_alv_demo {
+ @EndUserText.label: 'Key'
+ @EndUserText.quickInfo: 'Key'
+ @ObjectModel.readOnly: true
+ key demo_key,
+ @EndUserText.label: 'Text'
+ @EndUserText.quickInfo: 'Text'
+ demo_text,
+ @EndUserText.label: 'Integer'
+ @EndUserText.quickInfo: 'Integer'
+ @DefaultAggregation: #MAX
+ demo_integer,
+ @EndUserText.label: 'Float'
+ @EndUserText.quickInfo: 'Float'
+ @DefaultAggregation: #AVG
+ demo_float,
+ @EndUserText.label: 'Amount'
+ @EndUserText.quickInfo: 'Amount'
+ @DefaultAggregation: #SUM
+ @Semantics.amount.currencyCode: 'demo_currency'
+ demo_amount,
+ @EndUserText.label: 'Currency'
+ @EndUserText.quickInfo: 'Currency'
+ @Semantics.currencyCode: true
+ demo_currency,
+ @EndUserText.label: 'Quantity'
+ @EndUserText.quickInfo: 'Quantity'
+ @DefaultAggregation: #SUM
+ @Semantics.quantity.unitOfMeasure: 'demo_unit'
+ demo_quantity,
+ @EndUserText.label: 'Unit'
+ @EndUserText.quickInfo: 'Unit'
+ @Semantics.unitOfMeasure: true
+ demo_unit,
+ @EndUserText.label: 'Email address'
+ @EndUserText.quickInfo: 'Email address'
+ @Semantics.eMail.address: true
+ demo_email,
+ @EndUserText.label: 'URL'
+ @EndUserText.quickInfo: 'URL'
+ @Semantics.url.mimeType: 'demo_mime_type'
+ demo_url,
+ @EndUserText.label: 'MIME-Typ'
+ @EndUserText.quickInfo: 'MIME-Typ'
+ demo_mime_type,
+ @DefaultAggregation: #MIN
+ criticality
+}
diff --git a/src/zcds_alv_demo/zi_cds_alv_demo.ddls.xml b/src/zcds_alv_demo/zi_cds_alv_demo.ddls.xml
new file mode 100644
index 0000000..061ca7f
--- /dev/null
+++ b/src/zcds_alv_demo/zi_cds_alv_demo.ddls.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ ZI_CDS_ALV_DEMO
+ D
+ Interfaceview für das Demoprogramm
+
+
+
+
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displayf01.abap b/src/zcds_alv_display.fugr.lzcds_alv_displayf01.abap
new file mode 100644
index 0000000..9b83ed3
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displayf01.abap
@@ -0,0 +1,29 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_DISPLAYF01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Form BUILD_GRID
+*&---------------------------------------------------------------------*
+FORM build_grid USING container_name RAISING zcx_cds_alv_message.
+ IF container IS NOT BOUND.
+ CREATE OBJECT container
+ EXPORTING
+ container_name = container_name
+ EXCEPTIONS
+ OTHERS = 1.
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+ ENDIF.
+
+ IF alv_grid IS NOT BOUND.
+ builder->create_alv_grid(
+ EXPORTING
+ i_container = container
+ i_table_container = table_container
+ IMPORTING
+ e_alv_grid = alv_grid ).
+ ENDIF.
+ENDFORM.
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displayf01.xml b/src/zcds_alv_display.fugr.lzcds_alv_displayf01.xml
new file mode 100644
index 0000000..89512d5
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displayf01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_DISPLAYF01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_DISPLAYF01
+ 28
+
+
+
+
+
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displayi01.abap b/src/zcds_alv_display.fugr.lzcds_alv_displayi01.abap
new file mode 100644
index 0000000..abcbb26
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displayi01.abap
@@ -0,0 +1,39 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_DISPLAYI01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Module EXIT INPUT
+*&---------------------------------------------------------------------*
+MODULE exit INPUT.
+ IF container IS BOUND.
+ container->free( EXCEPTIONS OTHERS = 1 ).
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+ ENDIF.
+
+ FREE: container, alv_grid.
+ LEAVE TO SCREEN 0.
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module USER_COMMAND INPUT
+*&---------------------------------------------------------------------*
+MODULE user_command INPUT.
+ TRY.
+ IF controller IS BOUND.
+ controller->handle_user_command( ok_code ).
+ alv_grid->refresh_table_display( EXCEPTIONS OTHERS = 1 ).
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+ ENDIF.
+
+ CLEAR ok_code.
+ CLEANUP.
+ CLEAR ok_code.
+ ENDTRY.
+ENDMODULE.
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displayi01.xml b/src/zcds_alv_display.fugr.lzcds_alv_displayi01.xml
new file mode 100644
index 0000000..410b77d
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displayi01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_DISPLAYI01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_DISPLAYI01
+ 28
+
+
+
+
+
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displayo01.abap b/src/zcds_alv_display.fugr.lzcds_alv_displayo01.abap
new file mode 100644
index 0000000..f0928fd
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displayo01.abap
@@ -0,0 +1,29 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_DISPLAYO01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Module STATUS_0100 OUTPUT
+*&---------------------------------------------------------------------*
+MODULE status_0100 OUTPUT.
+ SET PF-STATUS 'STAT0100'.
+ SET TITLEBAR 'TITLE' WITH title.
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module BUILD_GRID_0100 OUTPUT
+*&---------------------------------------------------------------------*
+MODULE build_grid_0100 OUTPUT.
+ PERFORM build_grid USING 'FULL_SCREEN_CONTAINER'.
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module STATUS_0200 OUTPUT
+*&---------------------------------------------------------------------*
+MODULE status_0200 OUTPUT.
+ SET PF-STATUS 'STAT0200'.
+ SET TITLEBAR 'TITLE' WITH title.
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module BUILD_GRID_0200 OUTPUT
+*&---------------------------------------------------------------------*
+MODULE build_grid_0200 OUTPUT.
+ PERFORM build_grid USING 'SPLIT_SCREEN_CONTAINER'.
+ENDMODULE.
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displayo01.xml b/src/zcds_alv_display.fugr.lzcds_alv_displayo01.xml
new file mode 100644
index 0000000..9a89f37
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displayo01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_DISPLAYO01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_DISPLAYO01
+ 28
+
+
+
+
+
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displaytop.abap b/src/zcds_alv_display.fugr.lzcds_alv_displaytop.abap
new file mode 100644
index 0000000..ba10e2e
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displaytop.abap
@@ -0,0 +1,14 @@
+FUNCTION-POOL zcds_alv_display.
+CONSTANTS: full_screen TYPE sydynnr VALUE '0100',
+ split_screen TYPE sydynnr VALUE '0200'.
+
+DATA: table_container TYPE REF TO zif_cds_alv_table_container,
+ controller TYPE REF TO zif_cds_alv_split_screen_cntr,
+ builder TYPE REF TO zif_cds_alv_grid_builder,
+ alv_grid TYPE REF TO cl_gui_alv_grid,
+ container TYPE REF TO cl_gui_custom_container,
+ ref_to_table TYPE REF TO data,
+ sub_repid TYPE syrepid,
+ sub_dynnr TYPE sydynnr,
+ ok_code TYPE cua_code,
+ title TYPE sytitle.
diff --git a/src/zcds_alv_display.fugr.lzcds_alv_displaytop.xml b/src/zcds_alv_display.fugr.lzcds_alv_displaytop.xml
new file mode 100644
index 0000000..ee5c0c2
--- /dev/null
+++ b/src/zcds_alv_display.fugr.lzcds_alv_displaytop.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ LZCDS_ALV_DISPLAYTOP
+ S
+ D$
+ I
+ S
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_display.fugr.saplzcds_alv_display.abap b/src/zcds_alv_display.fugr.saplzcds_alv_display.abap
new file mode 100644
index 0000000..24ec0e5
--- /dev/null
+++ b/src/zcds_alv_display.fugr.saplzcds_alv_display.abap
@@ -0,0 +1,21 @@
+*******************************************************************
+* System-defined Include-files. *
+*******************************************************************
+ INCLUDE LZCDS_ALV_DISPLAYTOP. " Global Declarations
+ INCLUDE LZCDS_ALV_DISPLAYUXX. " Function Modules
+
+*******************************************************************
+* User-defined Include-files (if necessary). *
+*******************************************************************
+* INCLUDE LZCDS_ALV_DISPLAYF... " Subroutines
+* INCLUDE LZCDS_ALV_DISPLAYO... " PBO-Modules
+* INCLUDE LZCDS_ALV_DISPLAYI... " PAI-Modules
+* INCLUDE LZCDS_ALV_DISPLAYE... " Events
+* INCLUDE LZCDS_ALV_DISPLAYP... " Local class implement.
+* INCLUDE LZCDS_ALV_DISPLAYT99. " ABAP Unit tests
+
+INCLUDE lzcds_alv_displayi01.
+
+INCLUDE lzcds_alv_displayo01.
+
+INCLUDE lzcds_alv_displayf01.
diff --git a/src/zcds_alv_display.fugr.saplzcds_alv_display.xml b/src/zcds_alv_display.fugr.saplzcds_alv_display.xml
new file mode 100644
index 0000000..18bd9f7
--- /dev/null
+++ b/src/zcds_alv_display.fugr.saplzcds_alv_display.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ SAPLZCDS_ALV_DISPLAY
+ S
+ D$
+ F
+ S
+ D
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_display.fugr.xml b/src/zcds_alv_display.fugr.xml
new file mode 100644
index 0000000..2ccabf8
--- /dev/null
+++ b/src/zcds_alv_display.fugr.xml
@@ -0,0 +1,718 @@
+
+
+
+
+ Anzeige des ALV-Grids für einen CDS-View
+
+ LZCDS_ALV_DISPLAYF01
+ LZCDS_ALV_DISPLAYI01
+ LZCDS_ALV_DISPLAYO01
+ LZCDS_ALV_DISPLAYTOP
+ SAPLZCDS_ALV_DISPLAY
+
+
+ -
+ Z_CDS_ALV_FULL_SCREEN
+ Anzeige des ALV-Grids im Full Screen
+
+
+ I_BUILDER
+ X
+ REF TO ZIF_CDS_ALV_GRID_BUILDER
+ X
+
+
+ I_TABLE_CONTAINER
+ X
+ REF TO ZIF_CDS_ALV_TABLE_CONTAINER
+ X
+
+
+
+
+ ZCX_CDS_ALV_MESSAGE
+
+
+
+
+ I_BUILDER
+ P
+
+
+ I_TABLE_CONTAINER
+ P
+ Container für Daten eines CDS-Views
+
+
+ ZCX_CDS_ALV_MESSAGE
+ X
+
+
+ X
+
+ -
+ Z_CDS_ALV_SPLIT_SCREEN
+ Anzeige im Split Screen
+
+
+ I_BUILDER
+ X
+ REF TO ZIF_CDS_ALV_GRID_BUILDER
+ X
+
+
+ I_TABLE_CONTAINER
+ X
+ REF TO ZIF_CDS_ALV_TABLE_CONTAINER
+ X
+
+
+ I_CONTROLLER
+ X
+ REF TO ZIF_CDS_ALV_SPLIT_SCREEN_CNTR
+ X
+
+
+ I_SUB_REPID
+ X
+ SYREPID
+
+
+ I_SUB_DYNNR
+ X
+ SYDYNNR
+
+
+
+
+ I_BUILDER
+ P
+ Aufbau eines ALV-Grids mittels CDS-Annotationen
+
+
+ I_TABLE_CONTAINER
+ P
+ Container für Daten eines CDS-Views
+
+
+ I_CONTROLLER
+ P
+ Controller für den Split Screen
+
+
+ I_SUB_REPID
+ P
+ ABAP-Programm, aktuelles Rahmenprogramm
+
+
+ I_SUB_DYNNR
+ P
+ Dynpro-Nummer
+
+
+
+
+
+ -
+
+ SAPLZCDS_ALV_DISPLAY
+ 0100
+ D
+ Full Screen
+ N
+ 0100
+ 200
+ 255
+
+
+
+ SCREEN
+ SCREEN
+
+
+ CUST_CTRL
+ FULL_SCREEN_CONTAINER
+ SCREEN
+ 001
+ 001
+ 255
+ 200
+ X
+ X
+ 010
+ 010
+
+
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE status_0100.
+
+
+ MODULE build_grid_0100.
+
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE exit AT EXIT-COMMAND.
+
+
+
+ -
+
+ SAPLZCDS_ALV_DISPLAY
+ 0200
+ D
+ Split Screen
+ N
+ 0200
+ 200
+ 255
+
+
+
+ SCREEN
+ SCREEN
+
+
+ SUBSCREEN
+ SELECTION_SUBSCREEN
+ SCREEN
+ 002
+ 002
+ 253
+ 040
+ X
+ X
+ 010
+ 010
+
+
+ CUST_CTRL
+ SPLIT_SCREEN_CONTAINER
+ SCREEN
+ 044
+ 002
+ 253
+ 156
+ X
+ X
+ 010
+ 010
+
+
+
+
+ SCREEN
+ SCREEN
+ FRAME
+ FRAME_FOR_SELECTION
+ Selektionskriterien_________________________________________________________________________________________________________________
+ 001
+ 001
+ 255
+ 255
+ 042
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ FRAME
+ FRAME_FOR_ALV_GRID
+ Ergebnisliste_______________________________________________________________________________________________________________________
+ 043
+ 001
+ 255
+ 255
+ 158
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE status_0200.
+
+
+ MODULE build_grid_0200.
+
+
+
+ CALL SUBSCREEN selection_subscreen INCLUDING sub_repid sub_dynnr.
+
+
+
+ PROCESS AFTER INPUT.
+
+
+ CALL SUBSCREEN selection_subscreen.
+
+
+
+ MODULE exit AT EXIT-COMMAND.
+
+
+ MODULE user_command.
+
+
+
+
+
+
+ 000002
+ 000005
+ 000002
+
+
+
+ STAT0100
+ D
+ 000001
+ 000001
+ 0001
+ Full Screen
+
+
+ STAT0200
+ D
+ 000002
+ 000002
+ 0001
+ Split Screen
+
+
+
+
+ BACK
+ 001
+ E
+ S
+ Zurück
+
+
+ CANC
+ 001
+ E
+ S
+ ICON_CANCEL
+ @0W@
+ Abbrechen
+
+
+ EXIT
+ 001
+ E
+ S
+ Beenden
+
+
+ SELECT
+ 001
+ S
+ ICON_EXECUTE_OBJECT
+ @15@
+ Ausführen (F8)
+
+
+
+
+ 000001
+ 01
+ F
+ <01>
+
+
+ 000001
+ 02
+ F
+ <02>
+
+
+ 000001
+ 03
+ F
+ <03>
+
+
+ 000001
+ 04
+ F
+ <04>
+
+
+ 000001
+ 05
+ F
+ <05>
+
+
+ 000001
+ 06
+ S
+ <S1>
+
+
+ 000001
+ 07
+ F
+ <06>
+
+
+ 000001
+ 08
+ S
+ <S1>
+
+
+ 000001
+ 09
+ F
+ <09>
+
+
+ 000001
+ 10
+ S
+ <S1>
+
+
+ 000001
+ 11
+ F
+ <10>
+
+
+ 000001
+ 12
+ F
+ <11>
+
+
+ 000002
+ 01
+ F
+ <12>
+
+
+ 000002
+ 02
+ F
+ <13>
+
+
+ 000002
+ 03
+ F
+ <24>
+
+
+ 000002
+ 04
+ F
+ <14>
+
+
+ 000002
+ 05
+ S
+ <S1>
+
+
+ 000002
+ 06
+ F
+ <16>
+
+
+ 000002
+ 07
+ F
+ <17>
+
+
+ 000002
+ 08
+ F
+ <18>
+
+
+ 000002
+ 09
+ S
+ <S1>
+
+
+ 000002
+ 10
+ F
+ <26>
+
+
+ 000002
+ 11
+ F
+ <27>
+
+
+ 000002
+ 12
+ F
+ <20>
+
+
+ 000002
+ 13
+ S
+ <S1>
+
+
+ 000002
+ 14
+ F
+ <22>
+
+
+ 000003
+ 01
+ S
+ <S1>
+
+
+ 000003
+ 02
+ F
+ <23>
+
+
+
+
+ 000001
+ S
+ <Objekt>
+ O
+ Normergänzung
+
+
+ 000002
+ S
+ Bearbeiten
+ B
+ Normergänzung
+
+
+ 000003
+ S
+ Springen
+ S
+ Normergänzung
+
+
+ 000004
+ S
+ Zusätze
+ Z
+ Normergänzung
+
+
+ 000005
+ S
+ Umfeld
+ U
+ Normergänzung
+
+
+
+
+ 000001
+ 01
+ 000001
+
+
+ 000001
+ 02
+ 000002
+
+
+ 000001
+ 03
+ 000003
+
+
+ 000001
+ 04
+ 000004
+
+
+ 000001
+ 05
+ 000005
+
+
+
+
+ 000002
+ 0001
+ 01
+ 08
+
+
+
+
+ 000001
+ 03
+ BACK
+ 001
+
+
+ 000001
+ 12
+ CANC
+ 001
+
+
+ 000001
+ 15
+ EXIT
+ 001
+
+
+ 000002
+ 03
+ BACK
+ 001
+
+
+ 000002
+ 08
+ SELECT
+ 001
+
+
+ 000002
+ 12
+ CANC
+ 001
+
+
+ 000002
+ 15
+ EXIT
+ 001
+
+
+
+
+ STAT0100
+ BACK
+
+
+ STAT0100
+ CANC
+
+
+ STAT0100
+ EXIT
+
+
+ STAT0200
+ BACK
+
+
+ STAT0200
+ CANC
+
+
+ STAT0200
+ EXIT
+
+
+ STAT0200
+ SELECT
+
+
+
+
+ A
+ 000001
+ D
+ X
+ Full Screen
+
+
+ P
+ 000001
+ D
+ Full Screen
+
+
+ B
+ 000001
+ 0001
+ D
+ Full Screen
+
+
+ A
+ 000002
+ D
+ Split Screen
+
+
+ P
+ 000002
+ D
+ Split Screen
+
+
+ B
+ 000002
+ 0001
+ D
+ Split Screen
+
+
+
+
+ TITLE
+ &
+
+
+
+
+
+
diff --git a/src/zcds_alv_display.fugr.z_cds_alv_full_screen.abap b/src/zcds_alv_display.fugr.z_cds_alv_full_screen.abap
new file mode 100644
index 0000000..0eaf4f1
--- /dev/null
+++ b/src/zcds_alv_display.fugr.z_cds_alv_full_screen.abap
@@ -0,0 +1,19 @@
+FUNCTION z_cds_alv_full_screen.
+*"----------------------------------------------------------------------
+*"*"Lokale Schnittstelle:
+*" IMPORTING
+*" REFERENCE(I_BUILDER) TYPE REF TO ZIF_CDS_ALV_GRID_BUILDER
+*" REFERENCE(I_TABLE_CONTAINER) TYPE REF TO
+*" ZIF_CDS_ALV_TABLE_CONTAINER
+*" RAISING
+*" ZCX_CDS_ALV_MESSAGE
+*"----------------------------------------------------------------------
+
+ title = i_builder->get_gui_title( ).
+ builder = i_builder.
+ table_container = i_table_container.
+ ref_to_table = table_container->get_ref_to_table( ).
+
+ CALL SCREEN full_screen.
+
+ENDFUNCTION.
diff --git a/src/zcds_alv_display.fugr.z_cds_alv_split_screen.abap b/src/zcds_alv_display.fugr.z_cds_alv_split_screen.abap
new file mode 100644
index 0000000..f8ab459
--- /dev/null
+++ b/src/zcds_alv_display.fugr.z_cds_alv_split_screen.abap
@@ -0,0 +1,24 @@
+FUNCTION z_cds_alv_split_screen.
+*"----------------------------------------------------------------------
+*"*"Lokale Schnittstelle:
+*" IMPORTING
+*" REFERENCE(I_BUILDER) TYPE REF TO ZIF_CDS_ALV_GRID_BUILDER
+*" REFERENCE(I_TABLE_CONTAINER) TYPE REF TO
+*" ZIF_CDS_ALV_TABLE_CONTAINER
+*" REFERENCE(I_CONTROLLER) TYPE REF TO
+*" ZIF_CDS_ALV_SPLIT_SCREEN_CNTR
+*" REFERENCE(I_SUB_REPID) TYPE SYREPID
+*" REFERENCE(I_SUB_DYNNR) TYPE SYDYNNR
+*"----------------------------------------------------------------------
+
+ title = i_builder->get_gui_title( ).
+ builder = i_builder.
+ controller = i_controller.
+ sub_repid = i_sub_repid.
+ sub_dynnr = i_sub_dynnr.
+ table_container = i_table_container.
+ ref_to_table = table_container->get_ref_to_table( ).
+
+ CALL SCREEN split_screen.
+
+ENDFUNCTION.
diff --git a/src/zcds_alv_display_text.doma.xml b/src/zcds_alv_display_text.doma.xml
new file mode 100644
index 0000000..6fed7b8
--- /dev/null
+++ b/src/zcds_alv_display_text.doma.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ ZCDS_ALV_DISPLAY_TEXT
+ D
+ CHAR
+ 000040
+ 000040
+ X
+ Text für alternative Anzeige
+
+
+ E
+
+
+ -
+ E
+ text for alternative display mode
+
+
+
+
+
diff --git a/src/zcds_alv_display_text.dtel.xml b/src/zcds_alv_display_text.dtel.xml
new file mode 100644
index 0000000..19321f3
--- /dev/null
+++ b/src/zcds_alv_display_text.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_DISPLAY_TEXT
+ D
+ ZCDS_ALV_DISPLAY_TEXT
+ X
+ 55
+ 10
+ 20
+ 40
+ Text für alternative Anzeige
+ Text für alternative Anzeige
+ Alt. Anz.
+ Text f. alt. Anzeige
+ Text für alternative Anzeige
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ text for alternative display mode
+ text for alternative display mode
+ Alt. Disp.
+ text f. alt. disp.
+ text for alternative display mode
+
+
+
+
+
diff --git a/src/zcds_alv_extension_parameter.tabl.xml b/src/zcds_alv_extension_parameter.tabl.xml
new file mode 100644
index 0000000..f27ffc9
--- /dev/null
+++ b/src/zcds_alv_extension_parameter.tabl.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+ ZCDS_ALV_EXTENSION_PARAMETER
+ D
+ INTTAB
+ Parameter einer Programmerweiterung
+ D
+ 1
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ 0
+ E
+
+
+ PARAMETER_NAME
+ RSSCR_NAME
+ 0
+ E
+
+
+ PARAMETER_TEXT
+ TEXTPOOLTX
+ 0
+ E
+
+
+ DB_FIELD
+ RSSCR_DBFI
+ 0
+ E
+
+
+ HAS_VALUE_HELP
+ ZCDS_ALV_PARAM_HAS_VALUE_HELP
+ 0
+ X
+ F
+ E
+
+
+ HAS_HELP
+ ZCDS_ALV_PARAM_HAS_HELP
+ 0
+ X
+ F
+ E
+
+
+ ATTRIBUTE_NAME
+ ZCDS_ALV_LONG_ATTRIBUTE_NAME
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ Program extension parameters
+
+
+
+
+
diff --git a/src/zcds_alv_extension_parameters.ttyp.xml b/src/zcds_alv_extension_parameters.ttyp.xml
new file mode 100644
index 0000000..e5f8dc8
--- /dev/null
+++ b/src/zcds_alv_extension_parameters.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_EXTENSION_PARAMETERS
+ D
+ ZCDS_ALV_EXTENSION_PARAMETER
+ S
+ STRU
+ T
+ D
+ N
+ Parameter einer Programmerweiterung
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf01.abap b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf01.abap
new file mode 100644
index 0000000..eff8b47
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf01.abap
@@ -0,0 +1,75 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_EXTENSIONSF01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Form BUILD_GRID
+*&---------------------------------------------------------------------*
+FORM build_grid RAISING zcx_cds_alv_message.
+ IF container IS NOT BOUND.
+ CREATE OBJECT container
+ EXPORTING
+ container_name = 'EXTENSIONS_CONTAINER'
+ EXCEPTIONS
+ OTHERS = 1.
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+ ENDIF.
+
+ IF alv_grid IS NOT BOUND.
+ CREATE OBJECT alv_grid
+ EXPORTING
+ i_parent = container
+ EXCEPTIONS
+ OTHERS = 1.
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+
+ PERFORM prepare_grid.
+
+ alv_grid->set_table_for_first_display(
+ EXPORTING
+ i_structure_name = 'ZCDS_ALV_PROGRAM_EXTENSION'
+ i_save = 'A'
+ is_layout = layout
+ it_toolbar_excluding = excluding
+ CHANGING
+ it_outtab = extensions
+ it_fieldcatalog = fieldcatalog
+ EXCEPTIONS
+ OTHERS = 1 ).
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+ ENDIF.
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form CLOSE_DISPLAY
+*&---------------------------------------------------------------------*
+FORM close_display RAISING zcx_cds_alv_message.
+ container->free( EXCEPTIONS OTHERS = 1 ).
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+
+ FREE: container, alv_grid, extensions.
+ENDFORM.
+*&---------------------------------------------------------------------*
+*& Form SAVE_CHANGES
+*&---------------------------------------------------------------------*
+FORM save_changes RAISING zcx_cds_alv_message.
+ alv_grid->check_changed_data( ).
+ persistence->set_report_extensions(
+ i_cds_view = cds_view
+ i_extensions = extensions ).
+ COMMIT WORK AND WAIT.
+ENDFORM.
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf01.xml b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf01.xml
new file mode 100644
index 0000000..56a3b22
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_EXTENSIONSF01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_EXTENSIONSF01
+ 31
+
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf02.abap b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf02.abap
new file mode 100644
index 0000000..1c07fe4
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf02.abap
@@ -0,0 +1,49 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_EXTENSIONSF02.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Form PREPARE_GRID
+*&---------------------------------------------------------------------*
+FORM prepare_grid RAISING zcx_cds_alv_message.
+ layout = VALUE #(
+ cwidth_opt = abap_true
+ col_opt = abap_true
+ zebra = abap_true
+ edit = abap_true ).
+
+ excluding = VALUE #(
+ ( cl_gui_alv_grid=>mc_fc_loc_append_row )
+ ( cl_gui_alv_grid=>mc_fc_loc_copy )
+ ( cl_gui_alv_grid=>mc_fc_loc_copy_row )
+ ( cl_gui_alv_grid=>mc_fc_loc_cut )
+ ( cl_gui_alv_grid=>mc_fc_loc_delete_row )
+ ( cl_gui_alv_grid=>mc_fc_loc_insert_row )
+ ( cl_gui_alv_grid=>mc_fc_loc_move_row )
+ ( cl_gui_alv_grid=>mc_fc_loc_paste )
+ ( cl_gui_alv_grid=>mc_fc_loc_paste_new_row )
+ ( cl_gui_alv_grid=>mc_fc_loc_undo ) ).
+
+ CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
+ EXPORTING
+ i_structure_name = 'ZCDS_ALV_PROGRAM_EXTENSION'
+ CHANGING
+ ct_fieldcat = fieldcatalog
+ EXCEPTIONS
+ OTHERS = 1.
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+
+ LOOP AT fieldcatalog ASSIGNING FIELD-SYMBOL().
+ -tech = xsdbool( -fieldname = 'ACTIVATED_ON' ).
+ -edit = -checkbox = xsdbool( -fieldname = 'ACTIVE' ).
+ -key = -key_sel = xsdbool( -fieldname = 'EXTENSION_TEXT' ).
+
+ IF -fieldname <> 'EXTENSION_TEXT' AND -fieldname <> 'ACTIVE'.
+ -no_out = abap_true.
+ -edit = abap_false.
+ ENDIF.
+ ENDLOOP.
+ENDFORM.
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf02.xml b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf02.xml
new file mode 100644
index 0000000..6505237
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsf02.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_EXTENSIONSF02
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_EXTENSIONSF02
+ 31
+
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsi01.abap b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsi01.abap
new file mode 100644
index 0000000..285d751
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsi01.abap
@@ -0,0 +1,17 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_EXTENSIONSI01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Module USER_COMMAND_0100 INPUT
+*&---------------------------------------------------------------------*
+MODULE user_command_0100 INPUT.
+ CASE ok_code.
+ WHEN 'ENTER'.
+ PERFORM save_changes.
+ PERFORM close_display.
+ LEAVE TO SCREEN 0.
+ WHEN 'CANCEL'.
+ PERFORM close_display.
+ LEAVE TO SCREEN 0.
+ ENDCASE.
+ENDMODULE.
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsi01.xml b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsi01.xml
new file mode 100644
index 0000000..c8cb3dd
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionsi01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_EXTENSIONSI01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_EXTENSIONSI01
+ 31
+
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionso01.abap b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionso01.abap
new file mode 100644
index 0000000..f7156fc
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionso01.abap
@@ -0,0 +1,12 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_EXTENSIONSO01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Module STATUS_0100 OUTPUT
+*&---------------------------------------------------------------------*
+MODULE status_0100 OUTPUT.
+ PERFORM build_grid.
+
+ SET PF-STATUS 'STAT_0100'.
+ SET TITLEBAR 'T0100'.
+ENDMODULE.
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionso01.xml b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionso01.xml
new file mode 100644
index 0000000..892e981
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionso01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_EXTENSIONSO01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_EXTENSIONSO01
+ 31
+
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionstop.abap b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionstop.abap
new file mode 100644
index 0000000..4b5898b
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionstop.abap
@@ -0,0 +1,14 @@
+FUNCTION-POOL zcds_alv_extensions.
+
+DATA: cds_view TYPE ddstrucobjname,
+ extensions TYPE zcds_alv_program_extensions,
+ persistence TYPE REF TO zif_cds_alv_persistence,
+ container TYPE REF TO cl_gui_custom_container,
+ alv_grid TYPE REF TO cl_gui_alv_grid,
+ layout TYPE lvc_s_layo,
+ fieldcatalog TYPE lvc_t_fcat,
+ excluding TYPE ui_functions,
+ ok_code TYPE cua_code.
+
+LOAD-OF-PROGRAM.
+ persistence = zcl_cds_alv_factory=>get_instance( )->get_persistence( ).
diff --git a/src/zcds_alv_extensions.fugr.lzcds_alv_extensionstop.xml b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionstop.xml
new file mode 100644
index 0000000..21e57a5
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.lzcds_alv_extensionstop.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ LZCDS_ALV_EXTENSIONSTOP
+ S
+ D$
+ I
+ S
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.saplzcds_alv_extensions.abap b/src/zcds_alv_extensions.fugr.saplzcds_alv_extensions.abap
new file mode 100644
index 0000000..89416e3
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.saplzcds_alv_extensions.abap
@@ -0,0 +1,23 @@
+*******************************************************************
+* System-defined Include-files. *
+*******************************************************************
+ INCLUDE LZCDS_ALV_EXTENSIONSTOP. " Global Declarations
+ INCLUDE LZCDS_ALV_EXTENSIONSUXX. " Function Modules
+
+*******************************************************************
+* User-defined Include-files (if necessary). *
+*******************************************************************
+* INCLUDE LZCDS_ALV_EXTENSIONSF... " Subroutines
+* INCLUDE LZCDS_ALV_EXTENSIONSO... " PBO-Modules
+* INCLUDE LZCDS_ALV_EXTENSIONSI... " PAI-Modules
+* INCLUDE LZCDS_ALV_EXTENSIONSE... " Events
+* INCLUDE LZCDS_ALV_EXTENSIONSP... " Local class implement.
+* INCLUDE LZCDS_ALV_EXTENSIONST99. " ABAP Unit tests
+
+INCLUDE lzcds_alv_extensionso01.
+
+INCLUDE lzcds_alv_extensionsf01.
+
+INCLUDE lzcds_alv_extensionsi01.
+
+INCLUDE lzcds_alv_extensionsf02.
diff --git a/src/zcds_alv_extensions.fugr.saplzcds_alv_extensions.xml b/src/zcds_alv_extensions.fugr.saplzcds_alv_extensions.xml
new file mode 100644
index 0000000..c8ebda3
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.saplzcds_alv_extensions.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ SAPLZCDS_ALV_EXTENSIONS
+ S
+ D$
+ F
+ S
+ E
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.xml b/src/zcds_alv_extensions.fugr.xml
new file mode 100644
index 0000000..50337ed
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.xml
@@ -0,0 +1,205 @@
+
+
+
+
+ Dialog zur Verwaltung von Erweiterungen
+
+ LZCDS_ALV_EXTENSIONSF01
+ LZCDS_ALV_EXTENSIONSF02
+ LZCDS_ALV_EXTENSIONSI01
+ LZCDS_ALV_EXTENSIONSO01
+ LZCDS_ALV_EXTENSIONSTOP
+ SAPLZCDS_ALV_EXTENSIONS
+
+
+ -
+ Z_CDS_ALV_EXTENSIONS_DIALOG
+ Dialog zur Pflege der Programmerweiterungen zum CDS-View
+
+
+ I_CDS_VIEW
+ X
+ DDSTRUCOBJNAME
+
+
+
+
+ ZCX_CDS_ALV_MESSAGE
+
+
+
+
+ I_CDS_VIEW
+ P
+ DD: Name eines struktierten Objekts (z.B. Entity, Context)
+
+
+ ZCX_CDS_ALV_MESSAGE
+ X
+
+
+ X
+
+
+
+ -
+ E
+
+
+
+ -
+
+ SAPLZCDS_ALV_EXTENSIONS
+ 0100
+ E
+ Program extensions dialog
+ M
+ 0100
+ 020
+ 161
+
+
+
+ SCREEN
+ SCREEN
+
+
+ CUST_CTRL
+ EXTENSIONS_CONTAINER
+ SCREEN
+ 001
+ 001
+ 161
+ 020
+ X
+ X
+ 010
+ 080
+
+
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE status_0100.
+
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE user_command_0100.
+
+
+
+
+
+
+ 000001
+
+
+
+ STAT_0100
+ P
+ 000001
+ 0001
+ Status für Dialog
+
+
+
+
+ CANCEL
+ 001
+ S
+ ICON_CANCEL
+ @0W@
+ Abbrechen
+ A
+
+
+ ENTER
+ 001
+ S
+ ICON_OKAY
+ @0V@
+ Weiter
+
+
+
+
+ 000001
+ 0001
+ 01
+ 00
+
+
+ 000001
+ 0001
+ 02
+ 12
+
+
+
+
+ 000001
+ 00
+ ENTER
+ 001
+
+
+ 000001
+ 12
+ CANCEL
+ 001
+
+
+
+
+ STAT_0100
+ CANCEL
+
+
+ STAT_0100
+ ENTER
+
+
+
+
+ P
+ 000001
+ P
+ Status für Dialog
+
+
+ B
+ 000001
+ 0001
+ P
+ Status für Dialog
+
+
+
+
+ T0100
+ Programmerweiterungen auswählen
+
+
+
+
+
+
diff --git a/src/zcds_alv_extensions.fugr.z_cds_alv_extensions_dialog.abap b/src/zcds_alv_extensions.fugr.z_cds_alv_extensions_dialog.abap
new file mode 100644
index 0000000..30f7fba
--- /dev/null
+++ b/src/zcds_alv_extensions.fugr.z_cds_alv_extensions_dialog.abap
@@ -0,0 +1,21 @@
+FUNCTION z_cds_alv_extensions_dialog.
+*"----------------------------------------------------------------------
+*"*"Lokale Schnittstelle:
+*" IMPORTING
+*" REFERENCE(I_CDS_VIEW) TYPE DDSTRUCOBJNAME
+*" RAISING
+*" ZCX_CDS_ALV_MESSAGE
+*"----------------------------------------------------------------------
+
+ cds_view = i_cds_view.
+ extensions = persistence->get_report_extensions(
+ i_cds_view = i_cds_view
+ i_only_active = abap_false ).
+
+ IF extensions IS INITIAL.
+ MESSAGE i020(zcds_alv).
+ ELSE.
+ CALL SCREEN '0100' STARTING AT 10 10.
+ ENDIF.
+
+ENDFUNCTION.
diff --git a/src/zcds_alv_exthdr.tabl.xml b/src/zcds_alv_exthdr.tabl.xml
new file mode 100644
index 0000000..87994bd
--- /dev/null
+++ b/src/zcds_alv_exthdr.tabl.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+ ZCDS_ALV_EXTHDR
+ D
+ TRANSP
+ Erweiterungen für Reports zu CDS-Views: Kopfdaten
+ X
+ C
+ 2
+
+
+ ZCDS_ALV_EXTHDR
+ A
+ 0
+ APPL2
+ X
+ X
+ X
+
+
+
+ EXTENSION_NAME
+ X
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ 0
+ X
+ E
+
+
+ ALTERNATIVE_SELECTION
+ ZCDS_ALV_ALTERNATIVE_SELECTION
+ 0
+ X
+ F
+ E
+
+
+ ALTERNATIVE_DISPLAY
+ ZCDS_ALV_ALTERNATIVE_DISPLAY
+ 0
+ X
+ F
+ E
+
+
+ IMPLEMENTING_CLASS
+ SEOCLSNAME
+ 0
+ X
+ E
+
+
+
+
+ IMPLEMENTING_CLASS
+ ICL_IMPL_CLASS_E
+
+
+
+
+ IMPLEMENTING_CLASS
+ ICL_IMPL_CLASS_E
+ CLSNAME
+ 0002
+ ZCDS_ALV_EXTHDR
+ IMPLEMENTING_CLASS
+ X
+ SEOCLSNAME
+ SEOCLSNAME
+ CHAR
+ 000030
+
+
+ IMPLEMENTING_CLASS
+ ICL_IMPL_CLASS_E
+ INTERFACE
+ 0001
+ C
+ 'ZIF_CDS_ALV_REPORT_EXTENSION'
+ X
+ SEOCLSNAME
+ SEOCLSNAME
+ CHAR
+ 000030
+
+
+
+ E
+
+
+ -
+ E
+ Report extensions for CDS views: header data
+
+
+
+
+ ZCDS_ALV_EXTHDR
+ &NC&
+
+
+
+
+
diff --git a/src/zcds_alv_exthdrs.tobj.xml b/src/zcds_alv_exthdrs.tobj.xml
new file mode 100644
index 0000000..879bc39
--- /dev/null
+++ b/src/zcds_alv_exthdrs.tobj.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+ ZCDS_ALV_EXTHDR
+ S
+ X
+ CUSY
+ 2
+ 3
+
+
+ D
+ ZCDS_ALV_EXTHDR
+ S
+ Erweiterungen für Reports zu CDS-Views: Kopfdaten
+
+
+
+ ZCDS_ALV_EXTHDR
+ S
+ ZCDS_ALV_EXTHDR
+ X
+ X
+
+
+ ZCDS_ALV_EXTHDR
+ S
+ ZCDS_ALV_EXTHDRT
+ X
+
+
+
+
+ ZCDS_ALV_EXTHDR
+ &NC&
+
+
+ ZCDS_ALV_EXTHDR
+ ZCDS_ALV_TABLES
+ 1
+ 0002
+ X
+
+
+
+
+
diff --git a/src/zcds_alv_exthdrt.tabl.xml b/src/zcds_alv_exthdrt.tabl.xml
new file mode 100644
index 0000000..f21ba8c
--- /dev/null
+++ b/src/zcds_alv_exthdrt.tabl.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+ ZCDS_ALV_EXTHDRT
+ D
+ TRANSP
+ Erweiterungen für Reports zu CDS-Views: Texte
+ X
+ C
+ 2
+
+
+ ZCDS_ALV_EXTHDRT
+ A
+ 0
+ APPL2
+ X
+ X
+ X
+ X
+
+
+
+ SPRAS
+ X
+ SPRAS
+ 0
+ X
+ D
+ E
+ X
+
+
+ EXTENSION_NAME
+ X
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ 0
+ X
+ P
+ E
+
+
+ EXTENSION_TEXT
+ ZCDS_ALV_REPORT_EXTENSION_TEXT
+ 0
+ E
+
+
+ SELECTION_TEXT
+ ZCDS_ALV_SELECTION_TEXT
+ 0
+ E
+
+
+ DISPLAY_TEXT
+ ZCDS_ALV_DISPLAY_TEXT
+ 0
+ E
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDRT
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ EXTENSION_NAME
+ 0001
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ CHAR
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ TEXT
+ CN
+ 1
+
+
+
+ E
+
+
+ -
+ E
+ Report extensions for CDS views: texts
+
+
+
+
+
diff --git a/src/zcds_alv_extpar.tabl.xml b/src/zcds_alv_extpar.tabl.xml
new file mode 100644
index 0000000..3b5b166
--- /dev/null
+++ b/src/zcds_alv_extpar.tabl.xml
@@ -0,0 +1,107 @@
+
+
+
+
+
+ ZCDS_ALV_EXTPAR
+ D
+ TRANSP
+ Erweiterungen für Reports zu CDS-Views: Parameter
+ X
+ C
+ 2
+
+
+ ZCDS_ALV_EXTPAR
+ A
+ 0
+ APPL2
+ X
+ X
+ X
+
+
+
+ EXTENSION_NAME
+ X
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ 0
+ X
+ P
+ E
+
+
+ PARAMETER_NAME
+ X
+ RSSCR_NAME
+ 0
+ X
+ E
+
+
+ DB_FIELD
+ RSSCR_DBFI
+ 0
+ E
+
+
+ HAS_VALUE_HELP
+ ZCDS_ALV_PARAM_HAS_VALUE_HELP
+ 0
+ X
+ F
+ E
+
+
+ HAS_HELP
+ ZCDS_ALV_PARAM_HAS_HELP
+ 0
+ X
+ F
+ E
+
+
+ ATTRIBUTE_NAME
+ ZCDS_ALV_LONG_ATTRIBUTE_NAME
+ 0
+ E
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_EXTPAR
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ EXTENSION_NAME
+ 0001
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ CHAR
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ KEY
+
+
+
+ E
+
+
+ -
+ E
+ Report extensions for CDS views: parameters
+
+
+
+
+ ZCDS_ALV_EXTPAR
+ &NC&
+
+
+
+
+
diff --git a/src/zcds_alv_extpars.tobj.xml b/src/zcds_alv_extpars.tobj.xml
new file mode 100644
index 0000000..c3e2d7f
--- /dev/null
+++ b/src/zcds_alv_extpars.tobj.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+ ZCDS_ALV_EXTPAR
+ S
+ X
+ CUSY
+ 2
+ 3
+
+
+ D
+ ZCDS_ALV_EXTPAR
+ S
+ Erweiterungen für Reports zu CDS-Views: Parameter
+
+
+
+ ZCDS_ALV_EXTPAR
+ S
+ ZCDS_ALV_EXTPAR
+ X
+ X
+
+
+ ZCDS_ALV_EXTPAR
+ S
+ ZCDS_ALV_EXTPART
+ X
+
+
+
+
+ ZCDS_ALV_EXTPAR
+ &NC&
+
+
+ ZCDS_ALV_EXTPAR
+ ZCDS_ALV_TABLES
+ 1
+ 0003
+ X
+
+
+
+
+
diff --git a/src/zcds_alv_extpart.tabl.xml b/src/zcds_alv_extpart.tabl.xml
new file mode 100644
index 0000000..8188d63
--- /dev/null
+++ b/src/zcds_alv_extpart.tabl.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+ ZCDS_ALV_EXTPART
+ D
+ TRANSP
+ Erweiterungen für Reports zu CDS-Views: Parametertexte
+ X
+ C
+ 2
+
+
+ ZCDS_ALV_EXTPART
+ A
+ 0
+ APPL2
+ X
+ X
+ X
+ X
+
+
+
+ SPRAS
+ X
+ SPRAS
+ 0
+ X
+ D
+ E
+ X
+
+
+ EXTENSION_NAME
+ X
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ 0
+ X
+ P
+ E
+
+
+ PARAMETER_NAME
+ X
+ RSSCR_NAME
+ ZCDS_ALV_EXTPAR
+ 0
+ X
+ P
+ E
+
+
+ PARAMETER_TEXT
+ TEXTPOOLTX
+ 0
+ E
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_EXTPART
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ EXTENSION_NAME
+ 0001
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ CHAR
+
+
+ PARAMETER_NAME
+ ZCDS_ALV_EXTPART
+ EXTENSION_NAME
+ ZCDS_ALV_EXTPAR
+ EXTENSION_NAME
+ 0001
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ CHAR
+
+
+ PARAMETER_NAME
+ ZCDS_ALV_EXTPART
+ PARAMETER_NAME
+ ZCDS_ALV_EXTPAR
+ PARAMETER_NAME
+ 0002
+ SELCNAME
+ CHAR
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ KEY
+
+
+ PARAMETER_NAME
+ ZCDS_ALV_EXTPAR
+ TEXT
+ CN
+ 1
+
+
+
+ E
+
+
+ -
+ E
+ Report extensions for CDS views: parameter texts
+
+
+
+
+
diff --git a/src/zcds_alv_field_action.tabl.xml b/src/zcds_alv_field_action.tabl.xml
new file mode 100644
index 0000000..39b4049
--- /dev/null
+++ b/src/zcds_alv_field_action.tabl.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+ ZCDS_ALV_FIELD_ACTION
+ D
+ INTTAB
+ Aktion für ein Feld im CDS-View
+ D
+ 1
+
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ FIELDNAME
+ FIELDNAME
+ 0
+ E
+
+
+ FIELDTYPE
+ ZCDS_ALV_FIELD_TYPE
+ 0
+ E
+
+
+ SEMANTIC_OBJECT
+ ZCDS_ALV_SEMANTIC_OBJECT
+ 0
+ E
+
+
+ SEMANTIC_ACTION
+ ZCDS_ALV_SEMANTIC_ACTION
+ 0
+ E
+
+
+ ASSOCIATIONNAME
+ DDASSOCIATIONNAME
+ 0
+ E
+
+
+ DATA_ACTION
+ ZCDS_ALV_ACTION_NAME
+ 0
+ E
+
+
+ URL_FIELDNAME
+ FIELDNAME
+ 0
+ E
+
+
+ USER_COMMAND
+ UI_FUNC
+ 0
+ E
+
+
+ LABEL
+ LVC_STRING
+ 0
+ E
+
+
+ HOTSPOT
+ XFELD
+ 0
+ X
+ F
+ E
+
+
+ SEND_MAIL
+ XFELD
+ 0
+ X
+ F
+ E
+
+
+
+ E
+
+
+ -
+ E
+ CDS view field action
+
+
+
+
+
diff --git a/src/zcds_alv_field_actions.ttyp.xml b/src/zcds_alv_field_actions.ttyp.xml
new file mode 100644
index 0000000..72f2dc6
--- /dev/null
+++ b/src/zcds_alv_field_actions.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_FIELD_ACTIONS
+ D
+ ZCDS_ALV_FIELD_ACTION
+ S
+ STRU
+ T
+ D
+ N
+ Aktionen für Felder eines CDS-Views
+
+
+
+
diff --git a/src/zcds_alv_field_type.doma.xml b/src/zcds_alv_field_type.doma.xml
new file mode 100644
index 0000000..7d7289c
--- /dev/null
+++ b/src/zcds_alv_field_type.doma.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ ZCDS_ALV_FIELD_TYPE
+ D
+ CHAR
+ 000040
+ 000040
+ Art eines Feldes im Consumption View (UI.lineItem.Type)
+
+
+ E
+
+
+ -
+ E
+ Consumption View Field Type (UI.lineItem.Type)
+
+
+
+
+
diff --git a/src/zcds_alv_field_type.dtel.xml b/src/zcds_alv_field_type.dtel.xml
new file mode 100644
index 0000000..b05749f
--- /dev/null
+++ b/src/zcds_alv_field_type.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_FIELD_TYPE
+ D
+ ZCDS_ALV_FIELD_TYPE
+ 40
+ 10
+ 20
+ 40
+ Art eines Feldes im Consumption View (UI.lineItem.Type)
+ Feldart
+ Feldart
+ Feldart
+ Feldart
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Consumption View Field Type (UI.lineItem.Type)
+ Field Type
+ Field Type
+ Field Type
+ Field Type
+
+
+
+
+
diff --git a/src/zcds_alv_function.tabl.xml b/src/zcds_alv_function.tabl.xml
new file mode 100644
index 0000000..e5811ec
--- /dev/null
+++ b/src/zcds_alv_function.tabl.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+ ZCDS_ALV_FUNCTION
+ D
+ INTTAB
+ Eigene Funktionen für ALV-Grids
+ D
+ 1
+
+
+
+ NAME
+ UI_FUNC
+ 0
+ E
+
+
+ ICON
+ 0
+ g
+ 000008
+ STRG
+ STRG
+ Icon der Funktion
+
+
+ TEXT
+ 0
+ g
+ 000008
+ STRG
+ STRG
+ Text der Funktion
+
+
+ TOOLTIP
+ 0
+ g
+ 000008
+ STRG
+ STRG
+ Tooltip
+
+
+ BUTTON_TYPE
+ TB_BTYPE
+ 0
+ X
+ F
+ E
+
+
+
+ E
+
+
+ -
+ E
+ Custom Functions for ALV grids
+
+
+
+
+
diff --git a/src/zcds_alv_functions.ttyp.xml b/src/zcds_alv_functions.ttyp.xml
new file mode 100644
index 0000000..257822b
--- /dev/null
+++ b/src/zcds_alv_functions.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_FUNCTIONS
+ D
+ ZCDS_ALV_FUNCTION
+ S
+ STRU
+ T
+ D
+ N
+ Funktionen des ALV-Grids
+
+
+
+
diff --git a/src/zcds_alv_generation_timestamp.dtel.xml b/src/zcds_alv_generation_timestamp.dtel.xml
new file mode 100644
index 0000000..644c0d7
--- /dev/null
+++ b/src/zcds_alv_generation_timestamp.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_GENERATION_TIMESTAMP
+ D
+ SALV_TEST_TSTMP
+ X
+ 55
+ 10
+ 20
+ 40
+ Zeitstempel der Generierung
+ Zeitpunkt der Generierung
+ Generiert
+ Generiert am
+ Zeitpunkt der Generierung
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Generation Timestamp
+ Generation Timestamp
+ Generated
+ Generated on
+ Generation Timestamp
+
+
+
+
+
diff --git a/src/zcds_alv_grid_event_handlers.ttyp.xml b/src/zcds_alv_grid_event_handlers.ttyp.xml
new file mode 100644
index 0000000..da3bc73
--- /dev/null
+++ b/src/zcds_alv_grid_event_handlers.ttyp.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ ZCDS_ALV_GRID_EVENT_HANDLERS
+ D
+ ZIF_CDS_ALV_GRID_EVENT_HANDLER
+ R
+ REF
+ T
+ D
+ N
+ Event Handler für das ALV-Grid
+ I
+
+
+
+
diff --git a/src/zcds_alv_iocclif.tabl.xml b/src/zcds_alv_iocclif.tabl.xml
new file mode 100644
index 0000000..7b580f9
--- /dev/null
+++ b/src/zcds_alv_iocclif.tabl.xml
@@ -0,0 +1,126 @@
+
+
+
+
+
+ ZCDS_ALV_IOCCLIF
+ D
+ TRANSP
+ Registrierung von Implementierungen für den IoC Container
+ X
+ C
+ 1
+
+
+ ZCDS_ALV_IOCCLIF
+ A
+ 0
+ APPL2
+ X
+ X
+ X
+
+
+
+ INTERFACE
+ X
+ SEOITFNAME
+ 0
+ X
+ X
+ E
+
+
+ CLASS
+ SEOCLSNAME
+ 0
+ X
+ E
+
+
+
+
+ CLASS
+ SEO_CLASSES_INTERFACES
+
+
+ INTERFACE
+ SEO_CLASSES_INTERFACES
+
+
+
+
+ CLASS
+ SEO_CLASSES_INTERFACES
+ LANGUAGE
+ 0002
+ G
+ X
+ SPRAS
+ SPRAS
+ LANG
+ 000001
+ SY-LANGU
+ S
+
+
+ CLASS
+ SEO_CLASSES_INTERFACES
+ NAME
+ 0001
+ ZCDS_ALV_IOCCLIF
+ CLASS
+ X
+ X
+ SEOCLSNAME
+ SEOCLSNAME
+ CHAR
+ 000030
+
+
+ INTERFACE
+ SEO_CLASSES_INTERFACES
+ LANGUAGE
+ 0002
+ G
+ X
+ SPRAS
+ SPRAS
+ LANG
+ 000001
+ SY-LANGU
+ S
+
+
+ INTERFACE
+ SEO_CLASSES_INTERFACES
+ NAME
+ 0001
+ ZCDS_ALV_IOCCLIF
+ INTERFACE
+ X
+ X
+ SEOCLSNAME
+ SEOCLSNAME
+ CHAR
+ 000030
+
+
+
+ E
+
+
+ -
+ E
+ Implementation registry for the IoC Container
+
+
+
+
+ ZCDS_ALV_IOCCLIF
+ &NC&
+
+
+
+
+
diff --git a/src/zcds_alv_iocclifs.tobj.xml b/src/zcds_alv_iocclifs.tobj.xml
new file mode 100644
index 0000000..f209884
--- /dev/null
+++ b/src/zcds_alv_iocclifs.tobj.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ ZCDS_ALV_IOCCLIF
+ S
+ CUSY
+ 2
+ 3
+
+
+ D
+ ZCDS_ALV_IOCCLIF
+ S
+ Registrierung von Implementierungen für den IoC Container
+
+
+
+ ZCDS_ALV_IOCCLIF
+ S
+ ZCDS_ALV_IOCCLIF
+ X
+ X
+
+
+
+
+ ZCDS_ALV_IOCCLIF
+ &NC&
+
+
+ ZCDS_ALV_IOCCLIF
+ ZCDS_ALV_TABLES
+ 1
+ 0004
+ X
+
+
+
+
+
diff --git a/src/zcds_alv_launcher.fugr.lzcds_alv_launcheri01.abap b/src/zcds_alv_launcher.fugr.lzcds_alv_launcheri01.abap
new file mode 100644
index 0000000..ceed717
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.lzcds_alv_launcheri01.abap
@@ -0,0 +1,45 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_LAUNCHERI01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Module EXIT INPUT
+*&---------------------------------------------------------------------*
+MODULE exit INPUT.
+ LEAVE TO SCREEN 0.
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module CHECK_VIEW INPUT
+*&---------------------------------------------------------------------*
+MODULE check_view INPUT.
+ IF NOT ddic_access->exists_view( cds_view ).
+ MESSAGE e007(zcds_alv) WITH cds_view.
+ ENDIF.
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module USER_COMMAND_0100 INPUT
+*&---------------------------------------------------------------------*
+MODULE user_command_0100 INPUT.
+ TRY.
+ CASE ok_code.
+ WHEN space OR 'ENTER'.
+ CALL 'GET_PARAM_TCOD' ID 'PTCOD' FIELD tcode. "#EC CI_CCALL
+
+ launcher->start_report_for_view(
+ i_cds_view = cds_view
+ i_in_split_screen = mode-split_screen ).
+
+ IF tcode <> 'ZCDS_ALV_START'.
+ SET SCREEN 0.
+ LEAVE SCREEN.
+ ENDIF.
+
+ WHEN 'EXTENSIONS'.
+ CALL FUNCTION 'Z_CDS_ALV_EXTENSIONS_DIALOG'
+ EXPORTING
+ i_cds_view = cds_view.
+ ENDCASE.
+
+ CATCH zcx_cds_alv_message INTO message.
+ MESSAGE message TYPE 'I' DISPLAY LIKE 'E'.
+ ENDTRY.
+ENDMODULE.
diff --git a/src/zcds_alv_launcher.fugr.lzcds_alv_launcheri01.xml b/src/zcds_alv_launcher.fugr.lzcds_alv_launcheri01.xml
new file mode 100644
index 0000000..524d4c3
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.lzcds_alv_launcheri01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_LAUNCHERI01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_LAUNCHERI01
+ 29
+
+
+
+
+
diff --git a/src/zcds_alv_launcher.fugr.lzcds_alv_launchero01.abap b/src/zcds_alv_launcher.fugr.lzcds_alv_launchero01.abap
new file mode 100644
index 0000000..250bf85
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.lzcds_alv_launchero01.abap
@@ -0,0 +1,20 @@
+*----------------------------------------------------------------------*
+***INCLUDE LZCDS_ALV_LAUNCHERO01.
+*----------------------------------------------------------------------*
+*&---------------------------------------------------------------------*
+*& Module AUTH_CHECK_0100 OUTPUT
+*&---------------------------------------------------------------------*
+MODULE auth_check_0100 OUTPUT.
+ TRY.
+ auth_check->check_authority_for_tcode( ).
+ CATCH zcx_cds_alv_message INTO message.
+ MESSAGE message TYPE 'A'.
+ ENDTRY.
+ENDMODULE.
+*&---------------------------------------------------------------------*
+*& Module STATUS_0100 OUTPUT
+*&---------------------------------------------------------------------*
+MODULE status_0100 OUTPUT.
+ SET PF-STATUS 'STAT0100'.
+ SET TITLEBAR 'T0100'.
+ENDMODULE.
diff --git a/src/zcds_alv_launcher.fugr.lzcds_alv_launchero01.xml b/src/zcds_alv_launcher.fugr.lzcds_alv_launchero01.xml
new file mode 100644
index 0000000..47bca5a
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.lzcds_alv_launchero01.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+ LZCDS_ALV_LAUNCHERO01
+ I
+ S
+ D
+ X
+
+
+ -
+ R
+ Include LZCDS_ALV_LAUNCHERO01
+ 29
+
+
+
+
+
diff --git a/src/zcds_alv_launcher.fugr.lzcds_alv_launchertop.abap b/src/zcds_alv_launcher.fugr.lzcds_alv_launchertop.abap
new file mode 100644
index 0000000..40541b1
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.lzcds_alv_launchertop.abap
@@ -0,0 +1,23 @@
+FUNCTION-POOL zcds_alv_launcher.
+
+DATA: tcode TYPE sytcode,
+ ok_code TYPE cua_code,
+ cds_view TYPE ddstrucobjname,
+ auth_check TYPE REF TO zif_cds_alv_authority_check,
+ ddic_access TYPE REF TO zif_cds_alv_ddic_access,
+ launcher TYPE REF TO zif_cds_alv_report_launcher,
+ message TYPE REF TO zcx_cds_alv_message.
+
+DATA: BEGIN OF mode,
+ full_screen TYPE xfeld VALUE 'X',
+ split_screen TYPE xfeld,
+ END OF mode.
+
+LOAD-OF-PROGRAM.
+ TRY.
+ launcher = zcl_cds_alv_factory=>get_instance( )->get_launcher( ).
+ ddic_access = zcl_cds_alv_factory=>get_instance( )->get_ddic_access( ).
+ auth_check = zcl_cds_alv_factory=>get_instance( )->get_authority_checker( ).
+ CATCH zcx_cds_alv_message INTO message.
+ MESSAGE message TYPE 'A'.
+ ENDTRY.
diff --git a/src/zcds_alv_launcher.fugr.lzcds_alv_launchertop.xml b/src/zcds_alv_launcher.fugr.lzcds_alv_launchertop.xml
new file mode 100644
index 0000000..fa42d9f
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.lzcds_alv_launchertop.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ LZCDS_ALV_LAUNCHERTOP
+ S
+ D$
+ I
+ S
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_launcher.fugr.saplzcds_alv_launcher.abap b/src/zcds_alv_launcher.fugr.saplzcds_alv_launcher.abap
new file mode 100644
index 0000000..a88e477
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.saplzcds_alv_launcher.abap
@@ -0,0 +1,19 @@
+*******************************************************************
+* System-defined Include-files. *
+*******************************************************************
+ INCLUDE LZCDS_ALV_LAUNCHERTOP. " Global Declarations
+ INCLUDE LZCDS_ALV_LAUNCHERUXX. " Function Modules
+
+*******************************************************************
+* User-defined Include-files (if necessary). *
+*******************************************************************
+* INCLUDE LZCDS_ALV_LAUNCHERF... " Subroutines
+* INCLUDE LZCDS_ALV_LAUNCHERO... " PBO-Modules
+* INCLUDE LZCDS_ALV_LAUNCHERI... " PAI-Modules
+* INCLUDE LZCDS_ALV_LAUNCHERE... " Events
+* INCLUDE LZCDS_ALV_LAUNCHERP... " Local class implement.
+* INCLUDE LZCDS_ALV_LAUNCHERT99. " ABAP Unit tests
+
+INCLUDE lzcds_alv_launchero01.
+
+INCLUDE lzcds_alv_launcheri01.
diff --git a/src/zcds_alv_launcher.fugr.saplzcds_alv_launcher.xml b/src/zcds_alv_launcher.fugr.saplzcds_alv_launcher.xml
new file mode 100644
index 0000000..2bef679
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.saplzcds_alv_launcher.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ SAPLZCDS_ALV_LAUNCHER
+ S
+ D$
+ F
+ S
+ E
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_launcher.fugr.xml b/src/zcds_alv_launcher.fugr.xml
new file mode 100644
index 0000000..603a74a
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.xml
@@ -0,0 +1,322 @@
+
+
+
+
+ Starttransaktion für generierte Reports
+
+ LZCDS_ALV_LAUNCHERI01
+ LZCDS_ALV_LAUNCHERO01
+ LZCDS_ALV_LAUNCHERTOP
+ SAPLZCDS_ALV_LAUNCHER
+
+
+ -
+ Z_CDS_ALV_START
+ Programmstart für einen CDS-View
+
+
+
+ -
+ E
+
+
+
+ -
+
+ SAPLZCDS_ALV_LAUNCHER
+ 0100
+ E
+ Startup screen
+ N
+ 0100
+ 027
+ 121
+
+
+
+ SCREEN
+ SCREEN
+
+
+ RADIOGROUP
+ %A_MODE-FULL_SCREEN
+ SCREEN
+ 004
+ 003
+ 029
+ 002
+
+
+
+
+ SCREEN
+ SCREEN
+ FRAME
+ FRAME
+ _______________________________________________________
+ 001
+ 001
+ 056
+ 056
+ 006
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ CDS_VIEW
+ CDS_view__
+ 002
+ 003
+ 010
+ 010
+ 001
+ CHAR
+ N
+ X
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ CDS_VIEW
+ ________________________________________
+ 002
+ 014
+ 040
+ 040
+ 001
+ CHAR
+ ZCDS_ALV_CDS_VIEW
+ X
+ X
+ X
+ X
+ DD_CDSVIEW
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+ RADIOGROUP
+ %A_MODE-FULL_SCREEN
+ RADIO
+ MODE-FULL_SCREEN
+ Report_transaction_________
+ 004
+ 003
+ 029
+ 029
+ 001
+ CHAR
+ X
+ X
+
+
+ RADIOGROUP
+ %A_MODE-FULL_SCREEN
+ RADIO
+ MODE-SPLIT_SCREEN
+ Split_Screen____
+ 005
+ 003
+ 018
+ 018
+ 001
+ CHAR
+ X
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE auth_check_0100.
+
+
+ MODULE status_0100.
+
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE exit AT EXIT-COMMAND.
+
+
+
+ FIELD cds_view MODULE check_view.
+
+
+
+ MODULE user_command_0100.
+
+
+
+
+
+
+ 000001
+ 000001
+
+
+
+ STAT0100
+ D
+ 000001
+ 000001
+ 0001
+ Status für das Einstiegsbild
+
+
+
+
+ BACK
+ 001
+ E
+ S
+ Zurück
+
+
+ CANC
+ 001
+ E
+ S
+ ICON_CANCEL
+ @0W@
+ Abbrechen
+
+
+ ENTER
+ 001
+ S
+ ICON_OKAY
+ @0V@
+ Weiter
+
+
+ EXIT
+ 001
+ E
+ S
+ Beenden
+
+
+ EXTENSIONS
+ 001
+ S
+ Erweiterungen auswählen
+
+
+
+
+ 000001
+ 0001
+ 01
+ 05
+
+
+
+
+ 000001
+ 00
+ ENTER
+ 001
+
+
+ 000001
+ 03
+ BACK
+ 001
+
+
+ 000001
+ 05
+ EXTENSIONS
+ 001
+
+
+ 000001
+ 08
+ ENTER
+ 001
+
+
+ 000001
+ 12
+ CANC
+ 001
+
+
+ 000001
+ 15
+ EXIT
+ 001
+
+
+
+
+ STAT0100
+ BACK
+
+
+ STAT0100
+ CANC
+
+
+ STAT0100
+ ENTER
+
+
+ STAT0100
+ EXIT
+
+
+ STAT0100
+ EXTENSIONS
+
+
+
+
+ A
+ 000001
+ D
+ Status für das Einstiegsbild
+
+
+ P
+ 000001
+ D
+ Status für das Einstiegsbild
+
+
+ B
+ 000001
+ 0001
+ D
+ Status für das Einstiegsbild
+
+
+
+
+ T0100
+ Einstieg: CDS-View anzeigen
+
+
+
+
+
+
diff --git a/src/zcds_alv_launcher.fugr.z_cds_alv_start.abap b/src/zcds_alv_launcher.fugr.z_cds_alv_start.abap
new file mode 100644
index 0000000..0573811
--- /dev/null
+++ b/src/zcds_alv_launcher.fugr.z_cds_alv_start.abap
@@ -0,0 +1,9 @@
+FUNCTION z_cds_alv_start.
+*"----------------------------------------------------------------------
+*"*"Local Interface:
+*"----------------------------------------------------------------------
+
+ GET PARAMETER ID 'ZCDS_ALV_CDS_VIEW' FIELD cds_view.
+ CALL SCREEN '0100'.
+
+ENDFUNCTION.
diff --git a/src/zcds_alv_long_attribute_name.doma.xml b/src/zcds_alv_long_attribute_name.doma.xml
new file mode 100644
index 0000000..13015e4
--- /dev/null
+++ b/src/zcds_alv_long_attribute_name.doma.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ ZCDS_ALV_LONG_ATTRIBUTE_NAME
+ D
+ CHAR
+ 000255
+ 000255
+ Name eines Klassenattributs (erlaubt Verkettung)
+
+
+ E
+
+
+ -
+ E
+ Class attribute name (long field to allow chaining)
+
+
+
+
+
diff --git a/src/zcds_alv_long_attribute_name.dtel.xml b/src/zcds_alv_long_attribute_name.dtel.xml
new file mode 100644
index 0000000..39e23e9
--- /dev/null
+++ b/src/zcds_alv_long_attribute_name.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_LONG_ATTRIBUTE_NAME
+ D
+ ZCDS_ALV_LONG_ATTRIBUTE_NAME
+ X
+ 55
+ 10
+ 20
+ 40
+ Name eines Klassenattributs (erlaubt Verkettung)
+ Attribut
+ Attribut
+ Attribut
+ Attribut
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Class attribute name (long field to allow chaining)
+ Attribute
+ Attribute
+ Attribute
+ Attribute
+
+
+
+
+
diff --git a/src/zcds_alv_memory_id.doma.xml b/src/zcds_alv_memory_id.doma.xml
new file mode 100644
index 0000000..a4a5cfb
--- /dev/null
+++ b/src/zcds_alv_memory_id.doma.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ ZCDS_ALV_MEMORY_ID
+ D
+ CHAR
+ 000060
+ 000060
+ Memory-ID
+
+
+ E
+
+
+ -
+ E
+ Memory ID
+
+
+
+
+
diff --git a/src/zcds_alv_memory_id.dtel.xml b/src/zcds_alv_memory_id.dtel.xml
new file mode 100644
index 0000000..e33b0c4
--- /dev/null
+++ b/src/zcds_alv_memory_id.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_MEMORY_ID
+ D
+ ZCDS_ALV_MEMORY_ID
+ 55
+ 10
+ 20
+ 40
+ Memory-ID
+ Memory-ID
+ Memory-ID
+ Memory-ID
+ Memory-ID
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Memory ID
+ Memory ID
+ Memory ID
+ Memory ID
+ Memory ID
+
+
+
+
+
diff --git a/src/zcds_alv_n.nrob.xml b/src/zcds_alv_n.nrob.xml
new file mode 100644
index 0000000..0ee6e32
--- /dev/null
+++ b/src/zcds_alv_n.nrob.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ ZCDS_ALV_VIEW_PROG_COUNTER
+ 5.0
+ X
+ 00000010
+
+
+ D
+
+ CDS ALV: Laufende Nummer für generierte Programme
+ CDS ALV
+
+
+
+
diff --git a/src/zcds_alv_nav.tabl.xml b/src/zcds_alv_nav.tabl.xml
new file mode 100644
index 0000000..5bf79d1
--- /dev/null
+++ b/src/zcds_alv_nav.tabl.xml
@@ -0,0 +1,188 @@
+
+
+
+
+
+ ZCDS_ALV_NAV
+ D
+ TRANSP
+ Intent-Based Navigation für das CDS ALV-Framework
+ X
+ C
+ 2
+
+
+ ZCDS_ALV_NAV
+ A
+ 0
+ APPL2
+ X
+ X
+
+
+
+ SEMANTIC_OBJECT
+ X
+ ZCDS_ALV_SEMANTIC_OBJECT
+ 0
+ X
+ E
+
+
+ SEMANTIC_ACTION
+ X
+ ZCDS_ALV_SEMANTIC_ACTION
+ 0
+ X
+ E
+
+
+ FUNCTION
+ RS38L_FNAM
+ TFDIR
+ 0
+ P
+ E
+
+
+ DEFAULT_PARAMETER
+ PARAMETER
+ 0
+ E
+
+
+ CONVERSION_EXIT
+ CONVEXIT
+ 0
+ E
+
+
+ OBJECT_TYPE
+ SWO_OBJTYP
+ TOJTB
+ 0
+ P
+ E
+
+
+ OBJECT_METHOD
+ SWO_METHOD
+ 0
+ E
+
+
+ TRANSACTION_CODE
+ SYTCODE
+ TSTC
+ 0
+ P
+ E
+
+
+ PARAMETER_ID
+ MEMORYID
+ TPARA
+ 0
+ P
+ E
+
+
+ MASS_PROCESSING
+ ZCDS_ALV_NAV_MASS_PROCESSING
+ 0
+ X
+ F
+ E
+
+
+ REFRESH_AFTER
+ ZCDS_ALV_REFRESH_AFTER
+ 0
+ X
+ F
+ E
+
+
+
+
+ FUNCTION
+ ZCDS_ALV_NAV
+ FUNCTION
+ TFDIR
+ FUNCNAME
+ 0001
+ FUNCNAME
+ CHAR
+
+
+ OBJECT_TYPE
+ ZCDS_ALV_NAV
+ OBJECT_TYPE
+ TOJTB
+ NAME
+ 0001
+ OJ_NAME
+ CHAR
+
+
+ PARAMETER_ID
+ ZCDS_ALV_NAV
+ PARAMETER_ID
+ TPARA
+ PARAMID
+ 0001
+ MEMORYID
+ CHAR
+
+
+ TRANSACTION_CODE
+ ZCDS_ALV_NAV
+ TRANSACTION_CODE
+ TSTC
+ TCODE
+ 0001
+ TCODE
+ CHAR
+
+
+
+
+ FUNCTION
+ TFDIR
+ REF
+
+
+ OBJECT_TYPE
+ TOJTB
+ REF
+
+
+ PARAMETER_ID
+ TPARA
+ REF
+ X
+
+
+ TRANSACTION_CODE
+ TSTC
+ REF
+
+
+
+ E
+
+
+ -
+ E
+ Intent-Based Navigation for the CDS ALV Framework
+
+
+
+
+ ZCDS_ALV_NAV
+ &NC&
+
+
+
+
+
diff --git a/src/zcds_alv_nav_mass_processing.doma.xml b/src/zcds_alv_nav_mass_processing.doma.xml
new file mode 100644
index 0000000..e3fc00f
--- /dev/null
+++ b/src/zcds_alv_nav_mass_processing.doma.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+ ZCDS_ALV_NAV_MASS_PROCESSING
+ D
+ CHAR
+ 000001
+ 000001
+ X
+ Massenverarbeitung der Intent-Based Navigation
+
+
+
+ 0001
+ D
+ Keine Massenverarbeitung
+
+
+ 0002
+ D
+ L
+ Verarbeitung im Loop
+
+
+ 0003
+ D
+ T
+ Übergabe als Tabellenparameter
+
+
+
+ E
+
+
+ -
+ E
+ Intent-Based Navigation mass processing
+
+
+
+ -
+ 0001
+ E
+ No mass processing
+
+ -
+ 0002
+ E
+ L
+ Mass processing via loop
+
+ -
+ 0003
+ E
+ T
+ Mass processing using table parameter
+
+
+
+
+
diff --git a/src/zcds_alv_nav_mass_processing.dtel.xml b/src/zcds_alv_nav_mass_processing.dtel.xml
new file mode 100644
index 0000000..3f55946
--- /dev/null
+++ b/src/zcds_alv_nav_mass_processing.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_NAV_MASS_PROCESSING
+ D
+ ZCDS_ALV_NAV_MASS_PROCESSING
+ 55
+ 10
+ 20
+ 40
+ Massenverarbeitung der Intent-Based Navigation
+ Massenverarbeitung
+ Mass.
+ Massenverarbeitung
+ Massenverarbeitung
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Intent-Based Navigation mass processing
+ Mass Processing
+ Mass.
+ Mass Processing
+ Mass Processing
+
+
+
+
+
diff --git a/src/zcds_alv_navexit.tabl.xml b/src/zcds_alv_navexit.tabl.xml
new file mode 100644
index 0000000..caf72d1
--- /dev/null
+++ b/src/zcds_alv_navexit.tabl.xml
@@ -0,0 +1,152 @@
+
+
+
+
+
+ ZCDS_ALV_NAVEXIT
+ D
+ TRANSP
+ Eigene Implementierungen (Exits) für Intent-Based Navigation
+ X
+ C
+ 1
+
+
+ ZCDS_ALV_NAVEXIT
+ A
+ 0
+ APPL2
+ X
+ N
+
+
+
+ SEMANTIC_OBJECT
+ X
+ ZCDS_ALV_SEMANTIC_OBJECT
+ 0
+ X
+ E
+
+
+ SEMANTIC_ACTION
+ X
+ ZCDS_ALV_SEMANTIC_ACTION
+ 0
+ X
+ E
+
+
+ CDS_VIEW
+ X
+ DDSTRUCOBJNAME
+ 0
+ X
+ X
+ E
+
+
+ IMPLEMENTING_CLASS
+ SEOCLSNAME
+ 0
+ X
+ E
+
+
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+
+
+ IMPLEMENTING_CLASS
+ ICL_IMPL_CLASS_E
+
+
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+ AS4LOCAL
+ 0002
+ C
+ 'A'
+ X
+ AS4LOCAL
+ AS4LOCAL
+ CHAR
+ 000001
+ 'A'
+ L
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+ DDTEXT
+ 0003
+ G
+ X
+ AS4TEXT
+ AS4TEXT
+ CHAR
+ 000060
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+ STRUCOBJN
+ 0001
+ ZCDS_ALV_NAVEXIT
+ CDS_VIEW
+ X
+ X
+ DDSTRUCOBJNAME
+ DDSTRUCOBJNAME
+ CHAR
+ 000030
+
+
+ IMPLEMENTING_CLASS
+ ICL_IMPL_CLASS_E
+ CLSNAME
+ 0002
+ ZCDS_ALV_NAVEXIT
+ IMPLEMENTING_CLASS
+ X
+ SEOCLSNAME
+ SEOCLSNAME
+ CHAR
+ 000030
+
+
+ IMPLEMENTING_CLASS
+ ICL_IMPL_CLASS_E
+ INTERFACE
+ 0001
+ C
+ 'ZIF_CDS_ALV_NAVIGATION'
+ X
+ SEOCLSNAME
+ SEOCLSNAME
+ CHAR
+ 000030
+
+
+
+ E
+
+
+ -
+ E
+ Custom Implementations (Exits) for Intent-Based Navigation
+
+
+
+
+ ZCDS_ALV_NAVEXIT
+ &NC&
+
+
+
+
+
diff --git a/src/zcds_alv_navexits.tobj.xml b/src/zcds_alv_navexits.tobj.xml
new file mode 100644
index 0000000..a64f01f
--- /dev/null
+++ b/src/zcds_alv_navexits.tobj.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ ZCDS_ALV_NAVEXIT
+ S
+ CUSY
+ 2
+ 3
+
+
+ D
+ ZCDS_ALV_NAVEXIT
+ S
+ Eigene Implementierungen (Exits) für Intent-Based Navigation
+
+
+
+ ZCDS_ALV_NAVEXIT
+ S
+ ZCDS_ALV_NAVEXIT
+ X
+ X
+
+
+
+
+ ZCDS_ALV_NAVEXIT
+ &NC&
+
+
+ ZCDS_ALV_NAVEXIT
+ ZCDS_ALV_TABLES
+ 1
+ 0005
+ X
+
+
+
+
+
diff --git a/src/zcds_alv_navigation_exit_tab.ttyp.xml b/src/zcds_alv_navigation_exit_tab.ttyp.xml
new file mode 100644
index 0000000..5625dd6
--- /dev/null
+++ b/src/zcds_alv_navigation_exit_tab.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_NAVIGATION_EXIT_TAB
+ D
+ ZCDS_ALV_NAVEXIT
+ S
+ STRU
+ T
+ D
+ N
+ Intent-Based Navigation (Exits)
+
+
+
+
diff --git a/src/zcds_alv_navigation_tab.ttyp.xml b/src/zcds_alv_navigation_tab.ttyp.xml
new file mode 100644
index 0000000..77bdbc5
--- /dev/null
+++ b/src/zcds_alv_navigation_tab.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_NAVIGATION_TAB
+ D
+ ZCDS_ALV_NAV
+ S
+ STRU
+ T
+ D
+ N
+ Intent-Based Navigation
+
+
+
+
diff --git a/src/zcds_alv_navs.tobj.xml b/src/zcds_alv_navs.tobj.xml
new file mode 100644
index 0000000..e1db00e
--- /dev/null
+++ b/src/zcds_alv_navs.tobj.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ ZCDS_ALV_NAV
+ S
+ CUSY
+ 2
+ 3
+
+
+ D
+ ZCDS_ALV_NAV
+ S
+ Intent-Based Navigation für das CDS ALV-Framework
+
+
+
+ ZCDS_ALV_NAV
+ S
+ ZCDS_ALV_NAV
+ X
+ X
+
+
+
+
+ ZCDS_ALV_NAV
+ &NC&
+
+
+ ZCDS_ALV_NAV
+ ZCDS_ALV_TABLES
+ 1
+ 0001
+ X
+
+
+
+
+
diff --git a/src/zcds_alv_no_generation.dtel.xml b/src/zcds_alv_no_generation.dtel.xml
new file mode 100644
index 0000000..edb9c2c
--- /dev/null
+++ b/src/zcds_alv_no_generation.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_NO_GENERATION
+ D
+ XFELD
+ X
+ 55
+ 10
+ 20
+ 40
+ Kennz.: Keine Programmgenierung für den CDS-View
+ Keine Generierung
+ Keine Gen.
+ Keine Generierung
+ Keine Generierung
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Flag: No program generation for a CDS view
+ No generation
+ No Gen.
+ No generation
+ No generation
+
+
+
+
+
diff --git a/src/zcds_alv_param_has_help.dtel.xml b/src/zcds_alv_param_has_help.dtel.xml
new file mode 100644
index 0000000..cceab2e
--- /dev/null
+++ b/src/zcds_alv_param_has_help.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_PARAM_HAS_HELP
+ D
+ XFELD
+ X
+ 55
+ 10
+ 20
+ 40
+ Kennzeichen: Hilfe zum Parameter vorhanden
+ Hilfe vorhanden
+ Hilfe
+ Hilfe vorhanden
+ Hilfe vorhanden
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Flag: Help available for a parameter
+ Help available
+ Help
+ Help available
+ Help available
+
+
+
+
+
diff --git a/src/zcds_alv_param_has_value_help.dtel.xml b/src/zcds_alv_param_has_value_help.dtel.xml
new file mode 100644
index 0000000..06114dd
--- /dev/null
+++ b/src/zcds_alv_param_has_value_help.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_PARAM_HAS_VALUE_HELP
+ D
+ XFELD
+ X
+ 55
+ 10
+ 20
+ 40
+ Kennzeichen: Wertehilfe zum Parameter vorhanden
+ Wertehilfe vorhanden
+ Wertehilfe
+ Wertehilfe vorhanden
+ Wertehilfe vorhanden
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Flag: Value help available for a parameter
+ Value help available
+ Value help
+ Value help available
+ Value help available
+
+
+
+
+
diff --git a/src/zcds_alv_parameter.tabl.xml b/src/zcds_alv_parameter.tabl.xml
new file mode 100644
index 0000000..8889969
--- /dev/null
+++ b/src/zcds_alv_parameter.tabl.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+ ZCDS_ALV_PARAMETER
+ D
+ INTTAB
+ Wert eines CDS-View-Parameters
+ 1
+
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ PARNAME
+ DDPARNAME
+ 0
+ E
+
+
+ VALUE
+ 0
+ g
+ 000008
+ STRG
+ STRG
+
+
+
+ E
+
+
+ -
+ E
+ CDS view parameter value
+
+
+
+
+
diff --git a/src/zcds_alv_parameter_mapping.tabl.xml b/src/zcds_alv_parameter_mapping.tabl.xml
new file mode 100644
index 0000000..0e2ce63
--- /dev/null
+++ b/src/zcds_alv_parameter_mapping.tabl.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+ ZCDS_ALV_PARAMETER_MAPPING
+ D
+ INTTAB
+ Mapping zwischen PARAMETERS und Viewparametern
+ 1
+
+
+
+ PROGNAME
+ PROGNAME
+ 0
+ E
+
+
+ SEL_NAME
+ RSSCR_NAME
+ 0
+ E
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ PARNAME
+ DDPARNAME
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ Mapping between PARAMETERS and view parameters
+
+
+
+
+
diff --git a/src/zcds_alv_parameter_mapping_tab.ttyp.xml b/src/zcds_alv_parameter_mapping_tab.ttyp.xml
new file mode 100644
index 0000000..566f448
--- /dev/null
+++ b/src/zcds_alv_parameter_mapping_tab.ttyp.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ ZCDS_ALV_PARAMETER_MAPPING_TAB
+ D
+ ZCDS_ALV_PARAMETER_MAPPING
+ S
+ STRU
+ H
+ K
+ U
+ 0002
+ Mapping zwischen PARAMETERS und View-Parametern
+
+
+
+ ZCDS_ALV_PARAMETER_MAPPING_TAB
+ 0001
+ 0001
+ PROGNAME
+
+
+ ZCDS_ALV_PARAMETER_MAPPING_TAB
+ 0002
+ 0002
+ SEL_NAME
+
+
+
+
+
diff --git a/src/zcds_alv_parameters.ttyp.xml b/src/zcds_alv_parameters.ttyp.xml
new file mode 100644
index 0000000..de2bf2f
--- /dev/null
+++ b/src/zcds_alv_parameters.ttyp.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ ZCDS_ALV_PARAMETERS
+ D
+ ZCDS_ALV_PARAMETER
+ S
+ STRU
+ S
+ K
+ N
+ 0002
+ Tabelle mit Parametern eines CDS-Views
+
+
+
+ ZCDS_ALV_PARAMETERS
+ 0001
+ 0001
+ CDS_VIEW
+
+
+ ZCDS_ALV_PARAMETERS
+ 0002
+ 0002
+ PARNAME
+
+
+
+
+
diff --git a/src/zcds_alv_params.tabl.xml b/src/zcds_alv_params.tabl.xml
new file mode 100644
index 0000000..f5b38c2
--- /dev/null
+++ b/src/zcds_alv_params.tabl.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+ ZCDS_ALV_PARAMS
+ D
+ TRANSP
+ PARAMETERS der generierten Programme
+ X
+ C
+ 1
+
+
+ ZCDS_ALV_PARAMS
+ A
+ 0
+ APPL2
+ X
+ X
+
+
+
+ PROGNAME
+ X
+ PROGNAME
+ 0
+ X
+ E
+
+
+ SEL_NAME
+ X
+ RSSCR_NAME
+ 0
+ X
+ E
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ PARNAME
+ DDPARNAME
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ PARAMETERS in a generated program
+
+
+
+
+
diff --git a/src/zcds_alv_progext.tabl.xml b/src/zcds_alv_progext.tabl.xml
new file mode 100644
index 0000000..40fcdf9
--- /dev/null
+++ b/src/zcds_alv_progext.tabl.xml
@@ -0,0 +1,87 @@
+
+
+
+
+
+ ZCDS_ALV_PROGEXT
+ D
+ TRANSP
+ Programmerweiterungen des generierten Reports zum CDS-View
+ X
+ C
+ 3
+
+
+ ZCDS_ALV_PROGEXT
+ A
+ 0
+ APPL2
+ X
+ X
+ X
+
+
+
+ CDS_VIEW
+ X
+ DDSTRUCOBJNAME
+ 0
+ X
+ E
+
+
+ EXTENSION_NAME
+ X
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ 0
+ X
+ P
+ E
+
+
+ ACTIVE
+ ZCDS_ALV_ACTIVE_FLAG
+ 0
+ X
+ F
+ E
+
+
+ ACTIVATED_ON
+ ZCDS_ALV_ACTIVATION_TIMESTAMP
+ 0
+ E
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_PROGEXT
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ EXTENSION_NAME
+ 0001
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ CHAR
+
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_EXTHDR
+ KEY
+
+
+
+ E
+
+
+ -
+ E
+ Program extensions of a generated report for a CDS view
+
+
+
+
+
diff --git a/src/zcds_alv_program.tabl.xml b/src/zcds_alv_program.tabl.xml
new file mode 100644
index 0000000..1ad41f5
--- /dev/null
+++ b/src/zcds_alv_program.tabl.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+ ZCDS_ALV_PROGRAM
+ D
+ TRANSP
+ X
+ Programm zur Anzeige eines CDS-Views
+ X
+ C
+ 1
+
+
+ ZCDS_ALV_PROGRAM
+ A
+ 0
+ APPL2
+ X
+ X
+
+
+
+ CDS_VIEW
+ X
+ DDSTRUCOBJNAME
+ 0
+ X
+ X
+ E
+
+
+ .INCLUDE
+ 0
+ ZCDS_ALV_PROGRAM_HEADER
+ S
+ Kopfdaten eines Programms zur Anzeige eines CDS-Views
+ S
+
+
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+
+
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+ AS4LOCAL
+ 0002
+ C
+ 'A'
+ X
+ AS4LOCAL
+ AS4LOCAL
+ CHAR
+ 000001
+ 'A'
+ L
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+ DDTEXT
+ 0003
+ G
+ X
+ AS4TEXT
+ AS4TEXT
+ CHAR
+ 000060
+
+
+ CDS_VIEW
+ DD_CDSVIEW
+ STRUCOBJN
+ 0001
+ ZCDS_ALV_PROGRAM
+ CDS_VIEW
+ X
+ X
+ DDSTRUCOBJNAME
+ DDSTRUCOBJNAME
+ CHAR
+ 000030
+
+
+
+ E
+
+
+ -
+ E
+ Program for displaying a CDS view
+
+
+
+
+
diff --git a/src/zcds_alv_program_extension.tabl.xml b/src/zcds_alv_program_extension.tabl.xml
new file mode 100644
index 0000000..a284412
--- /dev/null
+++ b/src/zcds_alv_program_extension.tabl.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+ ZCDS_ALV_PROGRAM_EXTENSION
+ D
+ INTTAB
+ X
+ Programmerweiterungen für einen CDS-View
+ D
+ 1
+
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ .INCLUDE
+ 0
+ ZCDS_ALV_REPORT_EXTENSION
+ S
+ Erweiterung für Reports zu CDS-Views
+ S
+
+
+ ACTIVE
+ ZCDS_ALV_ACTIVE_FLAG
+ 0
+ X
+ F
+ E
+
+
+ ACTIVATED_ON
+ ZCDS_ALV_ACTIVATION_TIMESTAMP
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ Program extensions for a CDS view
+
+
+
+
+
diff --git a/src/zcds_alv_program_extensions.ttyp.xml b/src/zcds_alv_program_extensions.ttyp.xml
new file mode 100644
index 0000000..f1ccd97
--- /dev/null
+++ b/src/zcds_alv_program_extensions.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_PROGRAM_EXTENSIONS
+ D
+ ZCDS_ALV_PROGRAM_EXTENSION
+ S
+ STRU
+ T
+ D
+ N
+ Programmerweiterungen für einen CDS-View
+
+
+
+
diff --git a/src/zcds_alv_program_header.tabl.xml b/src/zcds_alv_program_header.tabl.xml
new file mode 100644
index 0000000..5293c13
--- /dev/null
+++ b/src/zcds_alv_program_header.tabl.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+ ZCDS_ALV_PROGRAM_HEADER
+ D
+ INTTAB
+ Kopfdaten eines Programms zur Anzeige eines CDS-Views
+ D
+ 1
+
+
+
+ PROGNAME
+ PROGNAME
+ 0
+ E
+
+
+ DYNPRO
+ SYDYNNR
+ 0
+ E
+
+
+ AUTHOR
+ AS4USER
+ 0
+ E
+
+
+ GENERATED_AT
+ ZCDS_ALV_GENERATION_TIMESTAMP
+ 0
+ E
+
+
+ NO_GENERATION
+ ZCDS_ALV_NO_GENERATION
+ 0
+ X
+ F
+ E
+
+
+
+ E
+
+
+ -
+ E
+ Header data of a program for display a CDS view
+
+
+
+
+
diff --git a/src/zcds_alv_program_info.tabl.xml b/src/zcds_alv_program_info.tabl.xml
new file mode 100644
index 0000000..76042bc
--- /dev/null
+++ b/src/zcds_alv_program_info.tabl.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+ ZCDS_ALV_PROGRAM_INFO
+ D
+ INTTAB
+ X
+ Alle Daten eines Programms zur Anzeige eines CDS-Views
+ 1
+
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ .INCLUDE
+ 0
+ ZCDS_ALV_PROGRAM_HEADER
+ S
+ Kopfdaten eines Programms zur Anzeige eines CDS-Views
+ S
+
+
+ PARAMETERS
+ ZCDS_ALV_PARAMETER_MAPPING_TAB
+ 0
+ TTYP
+ TTYPL
+ L
+
+
+ SELECT_OPTIONS
+ ZCDS_ALV_SELOPTS_MAPPING_TAB
+ 0
+ TTYP
+ TTYPL
+ L
+
+
+ SOURCE_LINES
+ ZCDS_ALV_SOURCE_LINES
+ 0
+ TTYP
+ TTYPL
+ L
+
+
+
+ E
+
+
+ -
+ E
+ All data of a program for displaying a CDS view
+
+
+
+
+
diff --git a/src/zcds_alv_refresh_after.dtel.xml b/src/zcds_alv_refresh_after.dtel.xml
new file mode 100644
index 0000000..8922b31
--- /dev/null
+++ b/src/zcds_alv_refresh_after.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_REFRESH_AFTER
+ D
+ XFELD
+ 55
+ 10
+ 20
+ 40
+ Kennzeichen: Liste nach der Aktion aktualisieren
+ Refresh
+ Refresh
+ Refresh
+ Refresh
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Flag: Refresh List after action
+ Refresh
+ Refresh
+ Refresh
+ Refresh
+
+
+
+
+
diff --git a/src/zcds_alv_regenerate_reports.prog.abap b/src/zcds_alv_regenerate_reports.prog.abap
new file mode 100644
index 0000000..b850ca2
--- /dev/null
+++ b/src/zcds_alv_regenerate_reports.prog.abap
@@ -0,0 +1,23 @@
+*&------------------------------------------------------------------------------*
+*& Report zcds_alv_regenerate_reports
+*&------------------------------------------------------------------------------*
+*& Regenerates all existing reports fpr CDS views.
+*& This may be sensible when a new version of the framework was installed
+*& or new extensions were added.
+*&------------------------------------------------------------------------------*
+REPORT zcds_alv_regenerate_reports.
+
+DATA cds_views TYPE TABLE OF ddstrucobjname.
+DATA generator TYPE REF TO zif_cds_alv_report_generator.
+
+START-OF-SELECTION.
+ generator = zcl_cds_alv_factory=>get_instance( )->get_report_generator( ).
+ SELECT cds_view FROM zcds_alv_program INTO TABLE @cds_views. "#EC CI_NOWHERE
+
+ LOOP AT cds_views INTO DATA(cds_view).
+ TRY.
+ generator->generate_report( cds_view ).
+ CATCH zcx_cds_alv_message INTO DATA(message).
+ WRITE |{ message->get_text( ) }|.
+ ENDTRY.
+ ENDLOOP.
diff --git a/src/zcds_alv_regenerate_reports.prog.xml b/src/zcds_alv_regenerate_reports.prog.xml
new file mode 100644
index 0000000..4f289e1
--- /dev/null
+++ b/src/zcds_alv_regenerate_reports.prog.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+ ZCDS_ALV_REGENERATE_REPORTS
+ S
+ 1
+ X
+ D$S
+ X
+
+
+ -
+ R
+ Erneute Generierung aller Reports zu CDS-Views
+ 46
+
+
+
+ -
+ E
+
+
-
+ R
+ Regenerate all reports for CDS views
+ 70
+
+
+
+
+
+
+
diff --git a/src/zcds_alv_report_extension.tabl.xml b/src/zcds_alv_report_extension.tabl.xml
new file mode 100644
index 0000000..96cb4e7
--- /dev/null
+++ b/src/zcds_alv_report_extension.tabl.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+ ZCDS_ALV_REPORT_EXTENSION
+ D
+ INTTAB
+ Erweiterung für Reports zu CDS-Views
+ D
+ 1
+
+
+
+ EXTENSION_NAME
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ 0
+ E
+
+
+ ALTERNATIVE_SELECTION
+ XFELD
+ 0
+ X
+ F
+ E
+
+
+ ALTERNATIVE_DISPLAY
+ XFELD
+ 0
+ X
+ F
+ E
+
+
+ IMPLEMENTING_CLASS
+ SEOCLSNAME
+ 0
+ E
+
+
+ EXTENSION_TEXT
+ ZCDS_ALV_REPORT_EXTENSION_TEXT
+ 0
+ E
+
+
+ SELECTION_TEXT
+ ZCDS_ALV_SELECTION_TEXT
+ 0
+ E
+
+
+ DISPLAY_TEXT
+ ZCDS_ALV_DISPLAY_TEXT
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ CDS view report extension
+
+
+
+
+
diff --git a/src/zcds_alv_report_extension_name.doma.xml b/src/zcds_alv_report_extension_name.doma.xml
new file mode 100644
index 0000000..7813596
--- /dev/null
+++ b/src/zcds_alv_report_extension_name.doma.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ D
+ CHAR
+ 000010
+ 000010
+ ZCDS_ALV_EXTHDR
+ Erweiterung der Ablauflogik für Reports zu CDS-Views
+
+
+ E
+
+
+ -
+ E
+ Report source code extension for CDS views
+
+
+
+
+
diff --git a/src/zcds_alv_report_extension_name.dtel.xml b/src/zcds_alv_report_extension_name.dtel.xml
new file mode 100644
index 0000000..1e85586
--- /dev/null
+++ b/src/zcds_alv_report_extension_name.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ D
+ ZCDS_ALV_REPORT_EXTENSION_NAME
+ 55
+ 10
+ 20
+ 40
+ Erweiterung der Ablauflogik für Reports zu CDS-Views
+ Reporterweiterung
+ Reporterw.
+ Reporterweiterung
+ Reporterweiterung
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Report source code extension for CDS views
+ Report extension
+ Report ext
+ Report extension
+ Report extension
+
+
+
+
+
diff --git a/src/zcds_alv_report_extension_text.dtel.xml b/src/zcds_alv_report_extension_text.dtel.xml
new file mode 100644
index 0000000..eaa2de8
--- /dev/null
+++ b/src/zcds_alv_report_extension_text.dtel.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ ZCDS_ALV_REPORT_EXTENSION_TEXT
+ D
+ TEXT80
+ 55
+ 10
+ 20
+ 40
+ Erweiterung der Ablauflogik für Reports zu CDS-Views
+ Reporterweiterung
+ Reporterw.
+ Reporterweiterung
+ Reporterweiterung
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Report source code extension for CDS views
+ Report extension
+ Report ext
+ Report extension
+ Report extension
+
+
+
+
+
diff --git a/src/zcds_alv_report_extensions.ttyp.xml b/src/zcds_alv_report_extensions.ttyp.xml
new file mode 100644
index 0000000..5814cd6
--- /dev/null
+++ b/src/zcds_alv_report_extensions.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_REPORT_EXTENSIONS
+ D
+ ZCDS_ALV_REPORT_EXTENSION
+ S
+ STRU
+ T
+ D
+ N
+ Erweiterungen der Ablauflogik von Reports für CDS-Views
+
+
+
+
diff --git a/src/zcds_alv_rfc_field_range.tabl.xml b/src/zcds_alv_rfc_field_range.tabl.xml
new file mode 100644
index 0000000..1de49c0
--- /dev/null
+++ b/src/zcds_alv_rfc_field_range.tabl.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+ ZCDS_ALV_RFC_FIELD_RANGE
+ D
+ INTTAB
+ RSDS_FRANGE
+ 1
+
+
+
+ FIELDNAME
+ FIELDNAME
+ 0
+ E
+
+
+ SELOPT_T
+ ZCDS_ALV_RFC_SELOPT_TAB
+ 0
+ TTYP
+ TTYPL
+ L
+
+
+
+ E
+
+
+ -
+ E
+ RSDS_FRANGE
+
+
+
+
+
diff --git a/src/zcds_alv_rfc_field_ranges.ttyp.xml b/src/zcds_alv_rfc_field_ranges.ttyp.xml
new file mode 100644
index 0000000..3cd86a7
--- /dev/null
+++ b/src/zcds_alv_rfc_field_ranges.ttyp.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ ZCDS_ALV_RFC_FIELD_RANGES
+ D
+ ZCDS_ALV_RFC_FIELD_RANGE
+ S
+ STRU
+ T
+ D
+ N
+ RSDS_FRANGE_T
+ 00010
+
+
+
+
diff --git a/src/zcds_alv_rfc_selopt_tab.ttyp.xml b/src/zcds_alv_rfc_selopt_tab.ttyp.xml
new file mode 100644
index 0000000..ac017d4
--- /dev/null
+++ b/src/zcds_alv_rfc_selopt_tab.ttyp.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ ZCDS_ALV_RFC_SELOPT_TAB
+ D
+ RSDSSELOPT
+ S
+ STRU
+ T
+ D
+ N
+ RSDS_SELOPT_T
+ 00010
+
+
+
+
diff --git a/src/zcds_alv_rfc_where_tab.ttyp.xml b/src/zcds_alv_rfc_where_tab.ttyp.xml
new file mode 100644
index 0000000..4913970
--- /dev/null
+++ b/src/zcds_alv_rfc_where_tab.ttyp.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ ZCDS_ALV_RFC_WHERE_TAB
+ D
+ RSDSWHERE
+ S
+ STRU
+ T
+ D
+ N
+ RSDS_WHERE_TAB
+ 00005
+
+
+
+
diff --git a/src/zcds_alv_selection_text.doma.xml b/src/zcds_alv_selection_text.doma.xml
new file mode 100644
index 0000000..bbfc860
--- /dev/null
+++ b/src/zcds_alv_selection_text.doma.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ ZCDS_ALV_SELECTION_TEXT
+ D
+ CHAR
+ 000040
+ 000040
+ X
+ Text für alternative Selektion
+
+
+ E
+
+
+ -
+ E
+ Text for alternative selection mode
+
+
+
+
+
diff --git a/src/zcds_alv_selection_text.dtel.xml b/src/zcds_alv_selection_text.dtel.xml
new file mode 100644
index 0000000..1b38553
--- /dev/null
+++ b/src/zcds_alv_selection_text.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_SELECTION_TEXT
+ D
+ ZCDS_ALV_SELECTION_TEXT
+ X
+ 55
+ 10
+ 20
+ 40
+ Text für alternative Selektion
+ Text für alternative Selektion
+ Alt. Sel.
+ Text f. alt. Selekt.
+ Text für alternative Selektion
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Text for alternative selection mode
+ Text for alternative selection mode
+ Alt. Sel.
+ Text f. alt. Sel.
+ Text for alternative selection mode
+
+
+
+
+
diff --git a/src/zcds_alv_selopts.tabl.xml b/src/zcds_alv_selopts.tabl.xml
new file mode 100644
index 0000000..1fff246
--- /dev/null
+++ b/src/zcds_alv_selopts.tabl.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+ ZCDS_ALV_SELOPTS
+ D
+ TRANSP
+ SELECT-OPTIONS der generierten Programme
+ X
+ C
+ 1
+
+
+ ZCDS_ALV_SELOPTS
+ A
+ 0
+ APPL2
+ X
+ X
+
+
+
+ PROGNAME
+ X
+ PROGNAME
+ 0
+ X
+ E
+
+
+ SEL_NAME
+ X
+ RSSCR_NAME
+ 0
+ X
+ E
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ FIELDNAME
+ FIELDNAME
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ SELECT-OPTIONS in a generated program
+
+
+
+
+
diff --git a/src/zcds_alv_selopts_mapping.tabl.xml b/src/zcds_alv_selopts_mapping.tabl.xml
new file mode 100644
index 0000000..f6f507f
--- /dev/null
+++ b/src/zcds_alv_selopts_mapping.tabl.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+ ZCDS_ALV_SELOPTS_MAPPING
+ D
+ INTTAB
+ Mapping zwischen SELECT-OPTIONS und Viewfeldern
+ 1
+
+
+
+ PROGNAME
+ PROGNAME
+ 0
+ E
+
+
+ SEL_NAME
+ RSSCR_NAME
+ 0
+ E
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ FIELDNAME
+ FIELDNAME
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ Mapping between SELECT-OPTIONS and view fields
+
+
+
+
+
diff --git a/src/zcds_alv_selopts_mapping_tab.ttyp.xml b/src/zcds_alv_selopts_mapping_tab.ttyp.xml
new file mode 100644
index 0000000..994c7dc
--- /dev/null
+++ b/src/zcds_alv_selopts_mapping_tab.ttyp.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ ZCDS_ALV_SELOPTS_MAPPING_TAB
+ D
+ ZCDS_ALV_SELOPTS_MAPPING
+ S
+ STRU
+ H
+ K
+ U
+ 0002
+ Mapping zwischen SELECT-OPTIONS und Viewfeldern
+
+
+
+ ZCDS_ALV_SELOPTS_MAPPING_TAB
+ 0001
+ 0001
+ PROGNAME
+
+
+ ZCDS_ALV_SELOPTS_MAPPING_TAB
+ 0002
+ 0002
+ SEL_NAME
+
+
+
+
+
diff --git a/src/zcds_alv_semantic_action.dtel.xml b/src/zcds_alv_semantic_action.dtel.xml
new file mode 100644
index 0000000..dd1c52e
--- /dev/null
+++ b/src/zcds_alv_semantic_action.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_SEMANTIC_ACTION
+ D
+ TEXT60
+ X
+ 55
+ 10
+ 20
+ 40
+ Semantische Aktion (für Intent-Based Navigation)
+ Semantische Aktion
+ Aktion
+ Semantische Aktion
+ Semantische Aktion
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Semantic action (for Intent-Based Navigation)
+ Semantic action
+ Action
+ Semantic action
+ Semantic action
+
+
+
+
+
diff --git a/src/zcds_alv_semantic_object.dtel.xml b/src/zcds_alv_semantic_object.dtel.xml
new file mode 100644
index 0000000..c99db55
--- /dev/null
+++ b/src/zcds_alv_semantic_object.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_SEMANTIC_OBJECT
+ D
+ TEXT30
+ X
+ 55
+ 10
+ 20
+ 40
+ Semantisches Objekt (für Intent-Based Navigation)
+ Semantisches Objekt
+ Objekt
+ Semantisches Objekt
+ Semantisches Objekt
+ D
+ D
+
+
+ E
+
+
+ -
+ E
+ Semantic Object (for Intent-Based Navigation)
+ Semantic Object
+ Object
+ Semantic Object
+ Semantic Object
+
+
+
+
+
diff --git a/src/zcds_alv_source_line.dtel.xml b/src/zcds_alv_source_line.dtel.xml
new file mode 100644
index 0000000..09b1e78
--- /dev/null
+++ b/src/zcds_alv_source_line.dtel.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ ZCDS_ALV_SOURCE_LINE
+ D
+ 55
+ 10
+ 20
+ 40
+ Quellcodezeile
+ Quellcodezeile
+ Codezeile
+ Quellcodezeile
+ Quellcodezeile
+ D
+ CHAR
+ 000255
+ 000255
+
+
+ E
+
+
+ -
+ E
+ Source code line
+ Source code line
+ Code line
+ Source code line
+ Source code line
+
+
+
+
+
diff --git a/src/zcds_alv_source_lines.ttyp.xml b/src/zcds_alv_source_lines.ttyp.xml
new file mode 100644
index 0000000..d27097d
--- /dev/null
+++ b/src/zcds_alv_source_lines.ttyp.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ ZCDS_ALV_SOURCE_LINES
+ D
+ ZCDS_ALV_SOURCE_LINE
+ E
+ CHAR
+ 000255
+ T
+ D
+ N
+ Quellcodezeilen
+
+
+
+
diff --git a/src/zcds_alv_special_columns.tabl.xml b/src/zcds_alv_special_columns.tabl.xml
new file mode 100644
index 0000000..1b53bdc
--- /dev/null
+++ b/src/zcds_alv_special_columns.tabl.xml
@@ -0,0 +1,80 @@
+
+
+
+
+
+ ZCDS_ALV_SPECIAL_COLUMNS
+ D
+ INTTAB
+ Besondere Spalten zur Steuerung des ALV-Grids
+ D
+ 1
+
+
+
+ INDEX_FIELDNAME
+ LVC_FNAME
+ 0
+ E
+
+
+ COUNT_FIELDNAME
+ LVC_FNAME
+ 0
+ E
+
+
+ STYLE_FIELDNAME
+ LVC_FNAME
+ 0
+ E
+
+
+ BOX_FIELDNAME
+ LVC_FNAME
+ 0
+ E
+
+
+ INFO_FIELDNAME
+ LVC_CIFNM
+ 0
+ E
+
+
+ COLOR_FIELDNAME
+ LVC_CTFNM
+ 0
+ E
+
+
+ EXCP_FIELDNAME
+ LVC_EXFNM
+ 0
+ E
+
+
+ SYSTEM_FIELDNAME
+ LVC_FNAME
+ 0
+ E
+
+
+ CLIENT_FIELDNAME
+ LVC_FNAME
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ ALV grid special admin columns
+
+
+
+
+
diff --git a/src/zcds_alv_start.tran.xml b/src/zcds_alv_start.tran.xml
new file mode 100644
index 0000000..4c95795
--- /dev/null
+++ b/src/zcds_alv_start.tran.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ ZCDS_ALV_START
+ SAPLZCDS_ALV_LAUNCHER
+ 0100
+
+
+ ZCDS_ALV_START
+ 1
+ X
+ X
+
+
+ D
+ ZCDS_ALV_START
+ Anzeige eines CDS-Views im ALV
+
+
+
+ E
+ Display of a CDS view in ALV
+
+
+
+
+
diff --git a/src/zcds_alv_storage_header.tabl.xml b/src/zcds_alv_storage_header.tabl.xml
new file mode 100644
index 0000000..12b9e42
--- /dev/null
+++ b/src/zcds_alv_storage_header.tabl.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+ ZCDS_ALV_STORAGE_HEADER
+ D
+ INTTAB
+ X
+ Kopfdaten eines abgelegten ALV-Grids
+ D
+ 1
+
+
+
+ .INCLUDE
+ 0
+ ZCDS_ALV_STORAGE_KEY
+ S
+ Schlüssel eines abgelegten ALV-Grids
+ S
+ KEY
+
+
+ MIME_TYPE
+ W3CONTTYPE
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ ALV grid storage header data
+
+
+
+
+
diff --git a/src/zcds_alv_storage_headers.ttyp.xml b/src/zcds_alv_storage_headers.ttyp.xml
new file mode 100644
index 0000000..8b75942
--- /dev/null
+++ b/src/zcds_alv_storage_headers.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_STORAGE_HEADERS
+ D
+ ZCDS_ALV_STORAGE_HEADER
+ S
+ STRU
+ T
+ D
+ N
+ Kopfdaten abgelegter ALV-Grids
+
+
+
+
diff --git a/src/zcds_alv_storage_key.tabl.xml b/src/zcds_alv_storage_key.tabl.xml
new file mode 100644
index 0000000..d3abbe5
--- /dev/null
+++ b/src/zcds_alv_storage_key.tabl.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+ ZCDS_ALV_STORAGE_KEY
+ D
+ INTTAB
+ Schlüssel eines abgelegten ALV-Grids
+ D
+ 1
+
+
+
+ REPORT
+ REPID
+ 0
+ E
+
+
+ HANDLE
+ SLIS_HANDL
+ 0
+ E
+
+
+ LOG_GROUP
+ SLIS_LOGGR
+ 0
+ E
+
+
+ USERNAME
+ SLIS_USER
+ 0
+ E
+
+
+ FILENAME
+ LOCALFILE
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ ALV grid storage key
+
+
+
+
+
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablesf00.abap b/src/zcds_alv_tables.fugr.lzcds_alv_tablesf00.abap
new file mode 100644
index 0000000..722fe1a
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablesf00.abap
@@ -0,0 +1,6 @@
+*---------------------------------------------------------------------*
+* view related FORM routines
+*---------------------------------------------------------------------*
+
+* base table related FORM-routines.............
+INCLUDE LSVIMFTX .
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablesf00.xml b/src/zcds_alv_tables.fugr.lzcds_alv_tablesf00.xml
new file mode 100644
index 0000000..32096d5
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablesf00.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ LZCDS_ALV_TABLESF00
+ X
+ I
+ D
+
+
+
+
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablesi00.abap b/src/zcds_alv_tables.fugr.lzcds_alv_tablesi00.abap
new file mode 100644
index 0000000..c265046
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablesi00.abap
@@ -0,0 +1,5 @@
+*---------------------------------------------------------------------*
+* view related PAI modules
+*---------------------------------------------------------------------*
+
+INCLUDE LSVIMITX . "base table related PAI modules
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablesi00.xml b/src/zcds_alv_tables.fugr.lzcds_alv_tablesi00.xml
new file mode 100644
index 0000000..ee6b9d3
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablesi00.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ LZCDS_ALV_TABLESI00
+ X
+ I
+ D
+
+
+
+
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablest00.abap b/src/zcds_alv_tables.fugr.lzcds_alv_tablest00.abap
new file mode 100644
index 0000000..a23f28b
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablest00.abap
@@ -0,0 +1,51 @@
+*---------------------------------------------------------------------*
+* view related data declarations
+*---------------------------------------------------------------------*
+*...processing: ZCDS_ALV_EXTHDR.................................*
+DATA: BEGIN OF STATUS_ZCDS_ALV_EXTHDR . "state vector
+ INCLUDE STRUCTURE VIMSTATUS.
+DATA: END OF STATUS_ZCDS_ALV_EXTHDR .
+CONTROLS: TCTRL_ZCDS_ALV_EXTHDR
+ TYPE TABLEVIEW USING SCREEN '0002'.
+*...processing: ZCDS_ALV_EXTPAR.................................*
+DATA: BEGIN OF STATUS_ZCDS_ALV_EXTPAR . "state vector
+ INCLUDE STRUCTURE VIMSTATUS.
+DATA: END OF STATUS_ZCDS_ALV_EXTPAR .
+CONTROLS: TCTRL_ZCDS_ALV_EXTPAR
+ TYPE TABLEVIEW USING SCREEN '0003'.
+*...processing: ZCDS_ALV_IOCCLIF................................*
+DATA: BEGIN OF STATUS_ZCDS_ALV_IOCCLIF . "state vector
+ INCLUDE STRUCTURE VIMSTATUS.
+DATA: END OF STATUS_ZCDS_ALV_IOCCLIF .
+CONTROLS: TCTRL_ZCDS_ALV_IOCCLIF
+ TYPE TABLEVIEW USING SCREEN '0004'.
+*...processing: ZCDS_ALV_NAV....................................*
+DATA: BEGIN OF STATUS_ZCDS_ALV_NAV . "state vector
+ INCLUDE STRUCTURE VIMSTATUS.
+DATA: END OF STATUS_ZCDS_ALV_NAV .
+CONTROLS: TCTRL_ZCDS_ALV_NAV
+ TYPE TABLEVIEW USING SCREEN '0001'.
+*...processing: ZCDS_ALV_NAVEXIT................................*
+DATA: BEGIN OF STATUS_ZCDS_ALV_NAVEXIT . "state vector
+ INCLUDE STRUCTURE VIMSTATUS.
+DATA: END OF STATUS_ZCDS_ALV_NAVEXIT .
+CONTROLS: TCTRL_ZCDS_ALV_NAVEXIT
+ TYPE TABLEVIEW USING SCREEN '0005'.
+*.........table declarations:.................................*
+TABLES: *ZCDS_ALV_EXTHDR .
+TABLES: *ZCDS_ALV_EXTHDRT .
+TABLES: *ZCDS_ALV_EXTPAR .
+TABLES: *ZCDS_ALV_EXTPART .
+TABLES: *ZCDS_ALV_IOCCLIF .
+TABLES: *ZCDS_ALV_NAV .
+TABLES: *ZCDS_ALV_NAVEXIT .
+TABLES: ZCDS_ALV_EXTHDR .
+TABLES: ZCDS_ALV_EXTHDRT .
+TABLES: ZCDS_ALV_EXTPAR .
+TABLES: ZCDS_ALV_EXTPART .
+TABLES: ZCDS_ALV_IOCCLIF .
+TABLES: ZCDS_ALV_NAV .
+TABLES: ZCDS_ALV_NAVEXIT .
+
+* general table data declarations..............
+ INCLUDE LSVIMTDT .
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablest00.xml b/src/zcds_alv_tables.fugr.lzcds_alv_tablest00.xml
new file mode 100644
index 0000000..b017da4
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablest00.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ LZCDS_ALV_TABLEST00
+ I
+ D
+
+
+
+
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablestop.abap b/src/zcds_alv_tables.fugr.lzcds_alv_tablestop.abap
new file mode 100644
index 0000000..2f8da7e
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablestop.abap
@@ -0,0 +1,5 @@
+FUNCTION-POOL ZCDS_ALV_TABLES MESSAGE-ID SV.
+
+* INCLUDE LZCDS_ALV_TABLESD... " Local class definition
+ INCLUDE LSVIMDAT . "general data decl.
+ INCLUDE LZCDS_ALV_TABLEST00 . "view rel. data dcl.
diff --git a/src/zcds_alv_tables.fugr.lzcds_alv_tablestop.xml b/src/zcds_alv_tables.fugr.lzcds_alv_tablestop.xml
new file mode 100644
index 0000000..7f3ca06
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.lzcds_alv_tablestop.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ LZCDS_ALV_TABLESTOP
+ S
+ D$
+ I
+ S
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_tables.fugr.saplzcds_alv_tables.abap b/src/zcds_alv_tables.fugr.saplzcds_alv_tables.abap
new file mode 100644
index 0000000..868bdb1
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.saplzcds_alv_tables.abap
@@ -0,0 +1,20 @@
+*******************************************************************
+* System-defined Include-files. *
+*******************************************************************
+ INCLUDE LZCDS_ALV_TABLESTOP. " Global Declarations
+ INCLUDE LZCDS_ALV_TABLESUXX. " Function Modules
+
+*******************************************************************
+* User-defined Include-files (if necessary). *
+*******************************************************************
+* INCLUDE LZCDS_ALV_TABLESF... " Subroutines
+* INCLUDE LZCDS_ALV_TABLESO... " PBO-Modules
+* INCLUDE LZCDS_ALV_TABLESI... " PAI-Modules
+* INCLUDE LZCDS_ALV_TABLESE... " Events
+* INCLUDE LZCDS_ALV_TABLESP... " Local class implement.
+* INCLUDE LZCDS_ALV_TABLEST99. " ABAP Unit tests
+ INCLUDE LZCDS_ALV_TABLESF00 . " subprograms
+ INCLUDE LZCDS_ALV_TABLESI00 . " PAI modules
+ INCLUDE LSVIMFXX . " subprograms
+ INCLUDE LSVIMOXX . " PBO modules
+ INCLUDE LSVIMIXX . " PAI modules
diff --git a/src/zcds_alv_tables.fugr.saplzcds_alv_tables.xml b/src/zcds_alv_tables.fugr.saplzcds_alv_tables.xml
new file mode 100644
index 0000000..4be1049
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.saplzcds_alv_tables.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ SAPLZCDS_ALV_TABLES
+ X
+ S
+ D$
+ F
+ S
+ E
+ X
+ D$S
+ X
+
+
+
+
diff --git a/src/zcds_alv_tables.fugr.tableframe_zcds_alv_tables.abap b/src/zcds_alv_tables.fugr.tableframe_zcds_alv_tables.abap
new file mode 100644
index 0000000..34e9fc3
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.tableframe_zcds_alv_tables.abap
@@ -0,0 +1,25 @@
+*---------------------------------------------------------------------*
+* program for: TABLEFRAME_ZCDS_ALV_TABLES
+*---------------------------------------------------------------------*
+FUNCTION TABLEFRAME_ZCDS_ALV_TABLES .
+*"----------------------------------------------------------------------
+*"*"Local Interface:
+*" IMPORTING
+*" VALUE(VIEW_ACTION) DEFAULT 'S'
+*" VALUE(VIEW_NAME) LIKE DD02V-TABNAME
+*" VALUE(CORR_NUMBER) LIKE E070-TRKORR DEFAULT ' '
+*" TABLES
+*" DBA_SELLIST STRUCTURE VIMSELLIST
+*" DPL_SELLIST STRUCTURE VIMSELLIST
+*" EXCL_CUA_FUNCT STRUCTURE VIMEXCLFUN
+*" X_HEADER STRUCTURE VIMDESC
+*" X_NAMTAB STRUCTURE VIMNAMTAB
+*" EXCEPTIONS
+*" MISSING_CORR_NUMBER
+*"----------------------------------------------------------------------
+
+ PERFORM TABLEFRAME TABLES X_HEADER X_NAMTAB DBA_SELLIST DPL_SELLIST
+ EXCL_CUA_FUNCT
+ USING CORR_NUMBER VIEW_ACTION VIEW_NAME.
+
+ENDFUNCTION.
diff --git a/src/zcds_alv_tables.fugr.tableproc_zcds_alv_tables.abap b/src/zcds_alv_tables.fugr.tableproc_zcds_alv_tables.abap
new file mode 100644
index 0000000..94b8583
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.tableproc_zcds_alv_tables.abap
@@ -0,0 +1,8 @@
+*---------------------------------------------------------------------*
+* program for: TABLEPROC_ZCDS_ALV_TABLES
+*---------------------------------------------------------------------*
+FUNCTION TABLEPROC_ZCDS_ALV_TABLES .
+
+ PERFORM TABLEPROC.
+
+ENDFUNCTION.
diff --git a/src/zcds_alv_tables.fugr.xml b/src/zcds_alv_tables.fugr.xml
new file mode 100644
index 0000000..13898cf
--- /dev/null
+++ b/src/zcds_alv_tables.fugr.xml
@@ -0,0 +1,2411 @@
+
+
+
+
+ erweiterte Tabellenpflege (generiert)
+
+ LZCDS_ALV_TABLESF00
+ LZCDS_ALV_TABLESI00
+ LZCDS_ALV_TABLEST00
+ LZCDS_ALV_TABLESTOP
+ SAPLZCDS_ALV_TABLES
+
+
+ -
+ TABLEFRAME_ZCDS_ALV_TABLES
+ erweiterte Tabellenpflege obere Ebene
+
+
+ VIEW_ACTION
+ 'S'
+
+
+ VIEW_NAME
+ DD02V-TABNAME
+
+
+ CORR_NUMBER
+ E070-TRKORR
+ ' '
+
+
+
+
+ DBA_SELLIST
+ VIMSELLIST
+
+
+ DPL_SELLIST
+ VIMSELLIST
+
+
+ EXCL_CUA_FUNCT
+ VIMEXCLFUN
+
+
+ X_HEADER
+ VIMDESC
+
+
+ X_NAMTAB
+ VIMNAMTAB
+
+
+
+
+ MISSING_CORR_NUMBER
+
+
+
+
+ VIEW_ACTION
+ P
+ Aktion mit Tabelle: anz./änd./transp. (S/U/T)
+
+
+ VIEW_NAME
+ P
+ Name der Tabelle
+
+
+ CORR_NUMBER
+ P
+ Korrekturnummer für durchgeführte Änderungen
+
+
+ DBA_SELLIST
+ P
+ Selektionsbedingungen für den DB-Zugriff
+
+
+ DPL_SELLIST
+ P
+ Selektionsbedingungen für die Anzeige
+
+
+ EXCL_CUA_FUNCT
+ P
+ Tabelle mit dynam. zu deaktivierenden CUA-Funkt.
+
+
+ X_HEADER
+ P
+ Kontrollblocktabelle für die Tabelle
+
+
+ X_NAMTAB
+ P
+ Kontrollblocktabelle für die Tabellen-Felder
+
+
+ MISSING_CORR_NUMBER
+ X
+ Korrekturnummer fehlt
+
+
+
+ -
+ TABLEPROC_ZCDS_ALV_TABLES
+ X
+ erweiterte Tabellenpflege untere Ebene
+
+
+ FCODE
+ 'RDED'
+
+
+ VIEW_ACTION
+ 'S'
+
+
+ VIEW_NAME
+ DD02V-TABNAME
+
+
+ CORR_NUMBER
+ E070-TRKORR
+ ' '
+
+
+
+
+ LAST_ACT_ENTRY
+
+
+ UCOMM
+
+
+ UPDATE_REQUIRED
+
+
+
+
+ CORR_KEYTAB
+ E071K
+
+
+ DBA_SELLIST
+ VIMSELLIST
+
+
+ DPL_SELLIST
+ VIMSELLIST
+
+
+ EXCL_CUA_FUNCT
+ VIMEXCLFUN
+
+
+ EXTRACT
+
+
+ TOTAL
+
+
+ X_HEADER
+ VIMDESC
+
+
+ X_NAMTAB
+ VIMNAMTAB
+
+
+
+
+ MISSING_CORR_NUMBER
+
+
+ SAVING_CORRECTION_FAILED
+
+
+
+
+ FCODE
+ P
+ gewünschte Funktion des Bausteins
+
+
+ VIEW_ACTION
+ P
+ Aktion mit Tabelle: anz./änd./transp. (S/U/T)
+
+
+ VIEW_NAME
+ P
+ Name der Tabelle
+
+
+ CORR_NUMBER
+ P
+ Korrekturnummer für durchgeführte Änderungen
+
+
+ LAST_ACT_ENTRY
+ P
+ Index der Cursorposition in der Anzeigetabelle
+
+
+ UCOMM
+ P
+ letztes User-command innerhalb der Viewpflege
+
+
+ UPDATE_REQUIRED
+ P
+ Flag: Einträge verändert, Sichern erforderlich
+
+
+ CORR_KEYTAB
+ P
+ Tabelle mit den Keys der zu transport. Einträge
+
+
+ DBA_SELLIST
+ P
+ Selektionsbedingungen für den DB-Zugriff
+
+
+ DPL_SELLIST
+ P
+ Selektionsbedingungen für die Anzeige
+
+
+ EXCL_CUA_FUNCT
+ P
+ Tab. der nicht zu aktivierenden CUA-Funktionen
+
+
+ EXTRACT
+ P
+ Tab. der gerade sichtbaren Daten (Anzeigetabelle
+
+
+ TOTAL
+ P
+ Tabelle, mit allen von der DB gelesenen Daten
+
+
+ X_HEADER
+ P
+ Kontrollblocktabelle für die Tabelle
+
+
+ X_NAMTAB
+ P
+ Kontrollblocktabelle für die Tabellen-Felder
+
+
+ MISSING_CORR_NUMBER
+ X
+ Korrekturnummer fehlt
+
+
+ SAVING_CORRECTION_FAILED
+ X
+ Fehler beim Sichern der Korrektureinträge
+
+
+
+
+
+ -
+ E
+
+
+
+ -
+
+ SAPLZCDS_ALV_TABLES
+ 0001
+ E
+ View Maintenance: Overview screen for ZCDS_ALV_NAV
+ N
+ 0001
+ 061
+ 246
+
+
+
+ SCREEN
+ SCREEN
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ SCREEN
+ 001
+ 001
+ 245
+ 059
+ X
+ X
+ X
+ X
+ ENTRY
+ X
+ X
+ X
+ X
+ X
+ MULTIPLE
+ NONE
+ X
+ 002
+
+
+
+
+ SCREEN
+ SCREEN
+ PUSH_TMPL
+ VIM_POSI_PUSH
+ ____________________
+ 061
+ 019
+ 020
+ 020
+ 001
+ POSI
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ VIM_POSITION_INFO
+ ______________________________
+ 061
+ 040
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ N
+ <_--32_DIMENS>X
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ VIM_FRAME_FIELD
+ ____________________________________________________________
+ 001
+ 060
+ 060
+ 001
+ CHAR
+ X
+ X
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-SEMANTIC_OBJECT
+ 001
+ 001
+ 040
+ 030
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-SEMANTIC_ACTION
+ 001
+ 002
+ 040
+ 060
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-FUNCTION
+ 001
+ 003
+ 040
+ 030
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-DEFAULT_PARAMETER
+ 001
+ 004
+ 040
+ 030
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-CONVERSION_EXIT
+ 001
+ 005
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-OBJECT_TYPE
+ 001
+ 006
+ 040
+ 015
+ 001
+ CHAR
+ X
+ 2
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-OBJECT_METHOD
+ 001
+ 007
+ 040
+ 032
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-TRANSACTION_CODE
+ 001
+ 008
+ 040
+ 020
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-PARAMETER_ID
+ 001
+ 009
+ 040
+ 020
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-MASS_PROCESSING
+ 001
+ 010
+ 040
+ 030
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEXT
+ *ZCDS_ALV_NAV-REFRESH_AFTER
+ 001
+ 011
+ 020
+ 010
+ 001
+ CHAR
+ X
+ 2
+ N
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ CHECK
+ VIM_MARKED
+ 001
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-SEMANTIC_OBJECT
+ ______________________________
+ X
+ 001
+ 001
+ 030
+ 015
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-SEMANTIC_ACTION
+ ____________________________________________________________
+ X
+ 001
+ 002
+ 060
+ 030
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-FUNCTION
+ ______________________________
+ 001
+ 003
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ LIB
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-DEFAULT_PARAMETER
+ ______________________________
+ 001
+ 004
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-CONVERSION_EXIT
+ _____
+ 001
+ 005
+ 005
+ 010
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-OBJECT_TYPE
+ __________
+ 001
+ 006
+ 010
+ 015
+ 001
+ CHAR
+ X
+ X
+ OBJ
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-OBJECT_METHOD
+ ________________________________
+ 001
+ 007
+ 032
+ 032
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-TRANSACTION_CODE
+ ____________________
+ 001
+ 008
+ 020
+ 020
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-PARAMETER_ID
+ ____________________
+ 001
+ 009
+ 020
+ 020
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ TEMPLATE
+ ZCDS_ALV_NAV-MASS_PROCESSING
+ _
+ L
+ 001
+ 010
+ 001
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAV
+ CHECK
+ ZCDS_ALV_NAV-REFRESH_AFTER
+ 001
+ 011
+ 001
+ 010
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE LISTE_INITIALISIEREN.
+
+
+ LOOP AT EXTRACT WITH CONTROL
+
+
+ TCTRL_ZCDS_ALV_NAV CURSOR NEXTLINE.
+
+
+ MODULE LISTE_SHOW_LISTE.
+
+
+ ENDLOOP.
+
+
+ *
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
+
+
+ MODULE LISTE_BEFORE_LOOP.
+
+
+ LOOP AT EXTRACT.
+
+
+ MODULE LISTE_INIT_WORKAREA.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_NAV-SEMANTIC_OBJECT .
+
+
+ FIELD ZCDS_ALV_NAV-SEMANTIC_ACTION .
+
+
+ FIELD ZCDS_ALV_NAV-FUNCTION .
+
+
+ FIELD ZCDS_ALV_NAV-DEFAULT_PARAMETER .
+
+
+ FIELD ZCDS_ALV_NAV-CONVERSION_EXIT .
+
+
+ FIELD ZCDS_ALV_NAV-OBJECT_TYPE .
+
+
+ FIELD ZCDS_ALV_NAV-OBJECT_METHOD .
+
+
+ FIELD ZCDS_ALV_NAV-TRANSACTION_CODE .
+
+
+ FIELD ZCDS_ALV_NAV-PARAMETER_ID .
+
+
+ FIELD ZCDS_ALV_NAV-MASS_PROCESSING .
+
+
+ FIELD ZCDS_ALV_NAV-REFRESH_AFTER .
+
+
+ MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
+
+
+ ENDCHAIN.
+
+
+ FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_NAV-SEMANTIC_OBJECT .
+
+
+ FIELD ZCDS_ALV_NAV-SEMANTIC_ACTION .
+
+
+ MODULE LISTE_UPDATE_LISTE.
+
+
+ ENDCHAIN.
+
+
+ ENDLOOP.
+
+
+ MODULE LISTE_AFTER_LOOP.
+
+
+
+ -
+
+ SAPLZCDS_ALV_TABLES
+ 0002
+ E
+ View Maintenance: Overview screen for ZCDS_ALV_EXTHDR
+ N
+ 0002
+ 061
+ 201
+
+
+
+ SCREEN
+ SCREEN
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ SCREEN
+ 001
+ 001
+ 201
+ 059
+ X
+ X
+ X
+ X
+ ENTRY
+ X
+ X
+ X
+ X
+ X
+ MULTIPLE
+ NONE
+ X
+ 001
+
+
+
+
+ SCREEN
+ SCREEN
+ PUSH_TMPL
+ VIM_POSI_PUSH
+ ____________________
+ 061
+ 019
+ 020
+ 020
+ 001
+ POSI
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ VIM_POSITION_INFO
+ ______________________________
+ 061
+ 040
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ N
+ <_--32_DIMENS>X
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEMPLATE
+ VIM_FRAME_FIELD
+ ____________________________________________________________
+ 001
+ 060
+ 060
+ 001
+ CHAR
+ X
+ X
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEXT
+ *ZCDS_ALV_EXTHDR-EXTENSION_NAME
+ 001
+ 001
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEXT
+ *ZCDS_ALV_EXTHDRT-EXTENSION_TEXT
+ Description_
+ 001
+ 002
+ 012
+ 050
+ 001
+ CHAR
+ X
+ F
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEXT
+ *ZCDS_ALV_EXTHDRT-SELECTION_TEXT
+ 001
+ 003
+ 040
+ 040
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEXT
+ *ZCDS_ALV_EXTHDRT-DISPLAY_TEXT
+ 001
+ 004
+ 040
+ 040
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEXT
+ *ZCDS_ALV_EXTHDR-ALTERNATIVE_SELECTION
+ 001
+ 005
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEXT
+ *ZCDS_ALV_EXTHDR-ALTERNATIVE_DISPLAY
+ 001
+ 006
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEXT
+ *ZCDS_ALV_EXTHDR-IMPLEMENTING_CLASS
+ 001
+ 007
+ 040
+ 030
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ CHECK
+ VIM_MARKED
+ 001
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEMPLATE
+ ZCDS_ALV_EXTHDR-EXTENSION_NAME
+ __________
+ 001
+ 001
+ 010
+ 010
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEMPLATE
+ ZCDS_ALV_EXTHDRT-EXTENSION_TEXT
+ ________________________________________________________________________________
+ X
+ 001
+ 002
+ 080
+ 050
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEMPLATE
+ ZCDS_ALV_EXTHDRT-SELECTION_TEXT
+ 001
+ 003
+ 040
+ 040
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEMPLATE
+ ZCDS_ALV_EXTHDRT-DISPLAY_TEXT
+ 001
+ 004
+ 040
+ 040
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ CHECK
+ ZCDS_ALV_EXTHDR-ALTERNATIVE_SELECTION
+ 001
+ 005
+ 001
+ 010
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ CHECK
+ ZCDS_ALV_EXTHDR-ALTERNATIVE_DISPLAY
+ 001
+ 006
+ 001
+ 010
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTHDR
+ TEMPLATE
+ ZCDS_ALV_EXTHDR-IMPLEMENTING_CLASS
+ ______________________________
+ 001
+ 007
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ CLASS
+ X
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE LISTE_INITIALISIEREN.
+
+
+ LOOP AT EXTRACT WITH CONTROL
+
+
+ TCTRL_ZCDS_ALV_EXTHDR CURSOR NEXTLINE.
+
+
+ MODULE LISTE_SHOW_LISTE.
+
+
+ ENDLOOP.
+
+
+ *
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
+
+
+ MODULE LISTE_BEFORE_LOOP.
+
+
+ LOOP AT EXTRACT.
+
+
+ MODULE LISTE_INIT_WORKAREA.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_EXTHDR-EXTENSION_NAME .
+
+
+ FIELD ZCDS_ALV_EXTHDR-ALTERNATIVE_SELECTION .
+
+
+ FIELD ZCDS_ALV_EXTHDR-ALTERNATIVE_DISPLAY .
+
+
+ FIELD ZCDS_ALV_EXTHDR-IMPLEMENTING_CLASS .
+
+
+ MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
+
+
+ ENDCHAIN.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_EXTHDRT-EXTENSION_TEXT .
+
+
+ FIELD ZCDS_ALV_EXTHDRT-SELECTION_TEXT .
+
+
+ FIELD ZCDS_ALV_EXTHDRT-DISPLAY_TEXT .
+
+
+ MODULE SET_TXT_UPDATE_FLAG ON CHAIN-REQUEST.
+
+
+ ENDCHAIN.
+
+
+ FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_EXTHDR-EXTENSION_NAME .
+
+
+ MODULE LISTE_UPDATE_LISTE.
+
+
+ ENDCHAIN.
+
+
+ ENDLOOP.
+
+
+ MODULE LISTE_AFTER_LOOP.
+
+
+
+ -
+
+ SAPLZCDS_ALV_TABLES
+ 0003
+ E
+ View Maintenance: Overview screen for ZCDS_ALV_EXTPAR
+ N
+ 0003
+ 061
+ 201
+
+
+
+ SCREEN
+ SCREEN
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ SCREEN
+ 001
+ 001
+ 201
+ 059
+ X
+ X
+ X
+ X
+ ENTRY
+ X
+ X
+ X
+ X
+ X
+ MULTIPLE
+ NONE
+ X
+ 002
+
+
+
+
+ SCREEN
+ SCREEN
+ PUSH_TMPL
+ VIM_POSI_PUSH
+ ____________________
+ 061
+ 019
+ 020
+ 020
+ 001
+ POSI
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ VIM_POSITION_INFO
+ ______________________________
+ 061
+ 040
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ N
+ <_--32_DIMENS>X
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEMPLATE
+ VIM_FRAME_FIELD
+ ____________________________________________________________
+ 001
+ 060
+ 060
+ 001
+ CHAR
+ X
+ X
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEXT
+ *ZCDS_ALV_EXTPAR-EXTENSION_NAME
+ 001
+ 001
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEXT
+ *ZCDS_ALV_EXTPAR-PARAMETER_NAME
+ 001
+ 002
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEXT
+ *ZCDS_ALV_EXTPART-PARAMETER_TEXT
+ 001
+ 003
+ 040
+ 040
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEXT
+ *ZCDS_ALV_EXTPAR-DB_FIELD
+ 001
+ 004
+ 040
+ 030
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEXT
+ *ZCDS_ALV_EXTPAR-HAS_VALUE_HELP
+ 001
+ 005
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEXT
+ *ZCDS_ALV_EXTPAR-HAS_HELP
+ 001
+ 006
+ 040
+ 010
+ 001
+ CHAR
+ X
+ 1
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEXT
+ *ZCDS_ALV_EXTPAR-ATTRIBUTE_NAME
+ 001
+ 007
+ 040
+ 060
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ CHECK
+ VIM_MARKED
+ 001
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEMPLATE
+ ZCDS_ALV_EXTPAR-EXTENSION_NAME
+ __________
+ 001
+ 001
+ 010
+ 010
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEMPLATE
+ ZCDS_ALV_EXTPAR-PARAMETER_NAME
+ ________
+ 001
+ 002
+ 008
+ 010
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEMPLATE
+ ZCDS_ALV_EXTPART-PARAMETER_TEXT
+ ____________________________________________________________________________________________________________________________________
+ X
+ 001
+ 003
+ 255
+ 040
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEMPLATE
+ ZCDS_ALV_EXTPAR-DB_FIELD
+ ____________________________________________________________________________________________________________________________________
+ X
+ 001
+ 004
+ 132
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ CHECK
+ ZCDS_ALV_EXTPAR-HAS_VALUE_HELP
+ 001
+ 005
+ 001
+ 010
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ CHECK
+ ZCDS_ALV_EXTPAR-HAS_HELP
+ 001
+ 006
+ 001
+ 010
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_EXTPAR
+ TEMPLATE
+ ZCDS_ALV_EXTPAR-ATTRIBUTE_NAME
+ ____________________________________________________________________________________________________________________________________
+ X
+ 001
+ 007
+ 255
+ 060
+ 001
+ CHAR
+ X
+ X
+ X
+ X
+
+
+
+
+ * VCL-Modifications
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE LISTE_INITIALISIEREN.
+
+
+ LOOP AT EXTRACT WITH CONTROL
+
+
+ TCTRL_ZCDS_ALV_EXTPAR CURSOR NEXTLINE.
+
+
+ MODULE LISTE_SHOW_LISTE.
+
+
+ ENDLOOP.
+
+
+ *
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
+
+
+ MODULE LISTE_BEFORE_LOOP.
+
+
+ LOOP AT EXTRACT.
+
+
+ MODULE LISTE_INIT_WORKAREA.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_EXTPAR-EXTENSION_NAME .
+
+
+ FIELD ZCDS_ALV_EXTPAR-PARAMETER_NAME .
+
+
+ FIELD ZCDS_ALV_EXTPAR-DB_FIELD .
+
+
+ FIELD ZCDS_ALV_EXTPAR-HAS_VALUE_HELP .
+
+
+ FIELD ZCDS_ALV_EXTPAR-HAS_HELP .
+
+
+ FIELD ZCDS_ALV_EXTPAR-ATTRIBUTE_NAME .
+
+
+ MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
+
+
+ ENDCHAIN.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_EXTPART-PARAMETER_TEXT .
+
+
+ MODULE SET_TXT_UPDATE_FLAG ON CHAIN-REQUEST.
+
+
+ ENDCHAIN.
+
+
+ FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_EXTPAR-EXTENSION_NAME .
+
+
+ FIELD ZCDS_ALV_EXTPAR-PARAMETER_NAME .
+
+
+ MODULE LISTE_UPDATE_LISTE.
+
+
+ ENDCHAIN.
+
+
+ ENDLOOP.
+
+
+ MODULE LISTE_AFTER_LOOP.
+
+
+ *
+
+
+ PROCESS ON VALUE-REQUEST.
+
+
+ FIELD ZCDS_ALV_EXTPAR-EXTENSION_NAME MODULE VCL_HELP_VALUES.
+
+
+
+ -
+
+ SAPLZCDS_ALV_TABLES
+ 0004
+ E
+ View Maintenance: Overview screen for ZCDS_ALV_IOCCLIF
+ N
+ 0004
+ 061
+ 083
+
+
+
+ SCREEN
+ SCREEN
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_IOCCLIF
+ SCREEN
+ 001
+ 001
+ 068
+ 059
+ X
+ X
+ X
+ X
+ ENTRY
+ X
+ X
+ X
+ X
+ X
+ MULTIPLE
+ NONE
+ X
+ 001
+
+
+
+
+ SCREEN
+ SCREEN
+ PUSH_TMPL
+ VIM_POSI_PUSH
+ ____________________
+ 061
+ 019
+ 020
+ 020
+ 001
+ POSI
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ VIM_POSITION_INFO
+ ______________________________
+ 061
+ 040
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ N
+ <_--32_DIMENS>X
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_IOCCLIF
+ TEMPLATE
+ VIM_FRAME_FIELD
+ ____________________________________________________________
+ 001
+ 060
+ 060
+ 001
+ CHAR
+ X
+ X
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_IOCCLIF
+ TEXT
+ *ZCDS_ALV_IOCCLIF-INTERFACE
+ 001
+ 001
+ 040
+ 030
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_IOCCLIF
+ TEXT
+ *ZCDS_ALV_IOCCLIF-CLASS
+ 001
+ 002
+ 040
+ 030
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_IOCCLIF
+ CHECK
+ VIM_MARKED
+ 001
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_IOCCLIF
+ TEMPLATE
+ ZCDS_ALV_IOCCLIF-INTERFACE
+ ______________________________
+ 001
+ 001
+ 030
+ 030
+ 001
+ KEY
+ CHAR
+ X
+ X
+ CLASS
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_IOCCLIF
+ TEMPLATE
+ ZCDS_ALV_IOCCLIF-CLASS
+ ______________________________
+ 001
+ 002
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ CLASS
+ X
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE LISTE_INITIALISIEREN.
+
+
+ LOOP AT EXTRACT WITH CONTROL
+
+
+ TCTRL_ZCDS_ALV_IOCCLIF CURSOR NEXTLINE.
+
+
+ MODULE LISTE_SHOW_LISTE.
+
+
+ ENDLOOP.
+
+
+ *
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
+
+
+ MODULE LISTE_BEFORE_LOOP.
+
+
+ LOOP AT EXTRACT.
+
+
+ MODULE LISTE_INIT_WORKAREA.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_IOCCLIF-INTERFACE .
+
+
+ FIELD ZCDS_ALV_IOCCLIF-CLASS .
+
+
+ MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
+
+
+ ENDCHAIN.
+
+
+ FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_IOCCLIF-INTERFACE .
+
+
+ MODULE LISTE_UPDATE_LISTE.
+
+
+ ENDCHAIN.
+
+
+ ENDLOOP.
+
+
+ MODULE LISTE_AFTER_LOOP.
+
+
+
+ -
+
+ SAPLZCDS_ALV_TABLES
+ 0005
+ E
+ View maintainance: Overview Screen ZCDS_ALV_NAVEXIT
+ N
+ 0005
+ 061
+ 123
+
+
+
+ SCREEN
+ SCREEN
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ SCREEN
+ 001
+ 001
+ 123
+ 059
+ X
+ X
+ X
+ X
+ ENTRY
+ X
+ X
+ X
+ X
+ X
+ MULTIPLE
+ NONE
+ X
+ 003
+
+
+
+
+ SCREEN
+ SCREEN
+ PUSH_TMPL
+ VIM_POSI_PUSH
+ ____________________
+ 061
+ 019
+ 020
+ 020
+ 001
+ POSI
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ VIM_POSITION_INFO
+ ______________________________
+ 061
+ 040
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ X
+ N
+ <_--32_DIMENS>X
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ OK_CODE
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEMPLATE
+ VIM_FRAME_FIELD
+ ____________________________________________________________
+ 001
+ 060
+ 060
+ 001
+ CHAR
+ X
+ X
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEXT
+ *ZCDS_ALV_NAVEXIT-SEMANTIC_OBJECT
+ 001
+ 001
+ 040
+ 020
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEXT
+ *ZCDS_ALV_NAVEXIT-SEMANTIC_ACTION
+ 001
+ 002
+ 040
+ 020
+ 001
+ CHAR
+ X
+ V
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEXT
+ *ZCDS_ALV_NAVEXIT-CDS_VIEW
+ CDS_view
+ 001
+ 003
+ 008
+ 030
+ 001
+ CHAR
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEXT
+ *ZCDS_ALV_NAVEXIT-IMPLEMENTING_CLASS
+ Implementaning_class___________________________
+ 001
+ 004
+ 047
+ 030
+ 001
+ CHAR
+ X
+ F
+ N
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ CHECK
+ VIM_MARKED
+ 001
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+ X
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEMPLATE
+ ZCDS_ALV_NAVEXIT-SEMANTIC_OBJECT
+ ______________________________
+ X
+ 001
+ 001
+ 030
+ 020
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEMPLATE
+ ZCDS_ALV_NAVEXIT-SEMANTIC_ACTION
+ ____________________________________________________________
+ X
+ 001
+ 002
+ 060
+ 020
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEMPLATE
+ ZCDS_ALV_NAVEXIT-CDS_VIEW
+ ______________________________
+ 001
+ 003
+ 030
+ 030
+ 001
+ KEY
+ CHAR
+ X
+ X
+ X
+ N
+
+
+ TABLE_CTRL
+ TCTRL_ZCDS_ALV_NAVEXIT
+ TEMPLATE
+ ZCDS_ALV_NAVEXIT-IMPLEMENTING_CLASS
+ ______________________________
+ 001
+ 004
+ 030
+ 030
+ 001
+ CHAR
+ X
+ X
+ CLASS
+ X
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE LISTE_INITIALISIEREN.
+
+
+ LOOP AT EXTRACT WITH CONTROL
+
+
+ TCTRL_ZCDS_ALV_NAVEXIT CURSOR NEXTLINE.
+
+
+ MODULE LISTE_SHOW_LISTE.
+
+
+ ENDLOOP.
+
+
+ *
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
+
+
+ MODULE LISTE_BEFORE_LOOP.
+
+
+ LOOP AT EXTRACT.
+
+
+ MODULE LISTE_INIT_WORKAREA.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_NAVEXIT-SEMANTIC_OBJECT .
+
+
+ FIELD ZCDS_ALV_NAVEXIT-SEMANTIC_ACTION .
+
+
+ FIELD ZCDS_ALV_NAVEXIT-CDS_VIEW .
+
+
+ FIELD ZCDS_ALV_NAVEXIT-IMPLEMENTING_CLASS .
+
+
+ MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
+
+
+ ENDCHAIN.
+
+
+ FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
+
+
+ CHAIN.
+
+
+ FIELD ZCDS_ALV_NAVEXIT-SEMANTIC_OBJECT .
+
+
+ FIELD ZCDS_ALV_NAVEXIT-SEMANTIC_ACTION .
+
+
+ FIELD ZCDS_ALV_NAVEXIT-CDS_VIEW .
+
+
+ MODULE LISTE_UPDATE_LISTE.
+
+
+ ENDCHAIN.
+
+
+ ENDLOOP.
+
+
+ MODULE LISTE_AFTER_LOOP.
+
+
+
+
+
+
+
diff --git a/src/zcds_alv_textpool_tab.ttyp.xml b/src/zcds_alv_textpool_tab.ttyp.xml
new file mode 100644
index 0000000..e479c7a
--- /dev/null
+++ b/src/zcds_alv_textpool_tab.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_TEXTPOOL_TAB
+ D
+ TEXTPOOL
+ S
+ STRU
+ T
+ D
+ N
+ Tabelle mit Einträgen eines Textpools
+
+
+
+
diff --git a/src/zcds_alv_valuehelp_binding.tabl.xml b/src/zcds_alv_valuehelp_binding.tabl.xml
new file mode 100644
index 0000000..7828949
--- /dev/null
+++ b/src/zcds_alv_valuehelp_binding.tabl.xml
@@ -0,0 +1,65 @@
+
+
+
+
+
+ ZCDS_ALV_VALUEHELP_BINDING
+ D
+ INTTAB
+ Zusätzliche Parameter für Suchhilfeanbindung
+ 1
+
+
+
+ INDEX
+ SYTABIX
+ 0
+ E
+
+
+ TARGET_PARAMETER
+ DDPARNAME
+ 0
+ E
+
+
+ TARGET_ELEMENT
+ FIELDNAME
+ 0
+ E
+
+
+ SOURCE_PARAMETER
+ DDPARNAME
+ 0
+ E
+
+
+ SOURCE_ELEMENT
+ FIELDNAME
+ 0
+ E
+
+
+ USAGE
+ 0
+ C
+ 000060
+ CHAR
+ 000030
+ CHAR
+ Verwendung
+
+
+
+ E
+
+
+ -
+ E
+ Additional parameters for a value help
+
+
+
+
+
diff --git a/src/zcds_alv_valuehelp_binding_tab.ttyp.xml b/src/zcds_alv_valuehelp_binding_tab.ttyp.xml
new file mode 100644
index 0000000..a626ec9
--- /dev/null
+++ b/src/zcds_alv_valuehelp_binding_tab.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_VALUEHELP_BINDING_TAB
+ D
+ ZCDS_ALV_VALUEHELP_BINDING
+ S
+ STRU
+ T
+ D
+ N
+ Zusätzliches Binding für eine Wertehilfe
+
+
+
+
diff --git a/src/zcds_alv_valuehelp_definition.tabl.xml b/src/zcds_alv_valuehelp_definition.tabl.xml
new file mode 100644
index 0000000..de027f4
--- /dev/null
+++ b/src/zcds_alv_valuehelp_definition.tabl.xml
@@ -0,0 +1,84 @@
+
+
+
+
+
+ ZCDS_ALV_VALUEHELP_DEFINITION
+ D
+ INTTAB
+ Werthilfe über eine CDS-Assoziation
+ D
+ 1
+
+
+
+ CDS_VIEW
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ FIELDNAME
+ FIELDNAME
+ 0
+ E
+
+
+ PARAMETER_NAME
+ DDPARNAME
+ 0
+ E
+
+
+ ASSOCIATION_NAME
+ DDASSOCIATIONNAME
+ 0
+ E
+
+
+ TARGET_ENTITY
+ DDSTRUCOBJNAME
+ 0
+ E
+
+
+ TARGET_ELEMENT
+ FIELDNAME
+ 0
+ E
+
+
+ DISTINCT_VALUES
+ KENNZX
+ 0
+ X
+ F
+ E
+
+
+ ADDITIONAL_BINDING
+ ZCDS_ALV_VALUEHELP_BINDING_TAB
+ 0
+ TTYP
+ TTYPL
+ L
+
+
+ LABEL
+ AS4TEXT
+ 0
+ E
+
+
+
+ E
+
+
+ -
+ E
+ Value help via CDS association
+
+
+
+
+
diff --git a/src/zcds_alv_valuehelp_definitions.ttyp.xml b/src/zcds_alv_valuehelp_definitions.ttyp.xml
new file mode 100644
index 0000000..2759814
--- /dev/null
+++ b/src/zcds_alv_valuehelp_definitions.ttyp.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+ ZCDS_ALV_VALUEHELP_DEFINITIONS
+ D
+ ZCDS_ALV_VALUEHELP_DEFINITION
+ S
+ STRU
+ T
+ D
+ N
+ Definitionen von Suchhilfen für Elemente eines CDS-Views
+
+
+
+
diff --git a/src/zcds_alv_view_prog_counter.doma.xml b/src/zcds_alv_view_prog_counter.doma.xml
new file mode 100644
index 0000000..e85ea02
--- /dev/null
+++ b/src/zcds_alv_view_prog_counter.doma.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+ ZCDS_ALV_VIEW_PROG_COUNTER
+ D
+ NUMC
+ 000016
+ 000016
+ ALPHA
+ Laufende Nummer für generierte Programme
+
+
+ E
+
+
+ -
+ E
+ Counter for generated programs
+
+
+
+
+
diff --git a/src/zcds_alv_view_prog_counter.dtel.xml b/src/zcds_alv_view_prog_counter.dtel.xml
new file mode 100644
index 0000000..62504c1
--- /dev/null
+++ b/src/zcds_alv_view_prog_counter.dtel.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ ZCDS_ALV_VIEW_PROG_COUNTER
+ D
+ ZCDS_ALV_VIEW_PROG_COUNTER
+ 16
+ 10
+ 20
+ 40
+ Laufende Nummer für generierte Programme
+ Laufende Nummer
+ Nummer
+ Laufende Nummer
+ Laufende Nummer
+ D
+ D
+
+
+
+
diff --git a/src/zcl_cds_alv_authority_check.clas.abap b/src/zcl_cds_alv_authority_check.clas.abap
new file mode 100644
index 0000000..387d869
--- /dev/null
+++ b/src/zcl_cds_alv_authority_check.clas.abap
@@ -0,0 +1,49 @@
+CLASS zcl_cds_alv_authority_check DEFINITION PUBLIC CREATE PUBLIC.
+ PUBLIC SECTION.
+ INTERFACES zif_cds_alv_authority_check.
+
+ METHODS constructor
+ IMPORTING i_ddic_access TYPE REF TO zif_cds_alv_ddic_access.
+
+ PROTECTED SECTION.
+ DATA ddic_access TYPE REF TO zif_cds_alv_ddic_access.
+
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS ZCL_CDS_ALV_AUTHORITY_CHECK IMPLEMENTATION.
+ METHOD constructor.
+ ddic_access = i_ddic_access.
+ ENDMETHOD.
+
+ METHOD zif_cds_alv_authority_check~check_authority_for_assoc.
+ " No implementation yet; might be added at a later date...
+ ENDMETHOD.
+
+ METHOD zif_cds_alv_authority_check~check_authority_for_tcode.
+ DATA tcode TYPE sytcode.
+
+ CALL 'GET_PARAM_TCOD' ID 'PTCOD' FIELD tcode. "#EC CI_CCALL
+
+ IF tcode <> 'ZCDS_ALV_START'.
+ RETURN.
+ ENDIF.
+
+ CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
+ EXPORTING tcode = 'ZCDS_ALV_START'
+ EXCEPTIONS ok = 0
+ not_ok = 1
+ OTHERS = 1.
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+ ENDMETHOD.
+
+ METHOD zif_cds_alv_authority_check~check_authority_for_view.
+ " No implementation yet; might be added at a later date...
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/zcl_cds_alv_authority_check.clas.xml b/src/zcl_cds_alv_authority_check.clas.xml
new file mode 100644
index 0000000..58f6615
--- /dev/null
+++ b/src/zcl_cds_alv_authority_check.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ ZCL_CDS_ALV_AUTHORITY_CHECK
+ D
+ Berechtigungsprüfungen zum CDS ALV Framework
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/zcl_cds_alv_base.clas.abap b/src/zcl_cds_alv_base.clas.abap
new file mode 100644
index 0000000..32f4323
--- /dev/null
+++ b/src/zcl_cds_alv_base.clas.abap
@@ -0,0 +1,72 @@
+CLASS zcl_cds_alv_base DEFINITION PUBLIC ABSTRACT CREATE PUBLIC.
+ PUBLIC SECTION.
+ DATA cds_view TYPE ddstrucobjname READ-ONLY.
+
+ METHODS constructor
+ IMPORTING i_cds_view TYPE ddstrucobjname
+ i_ddic_access TYPE REF TO zif_cds_alv_ddic_access
+ i_persistence TYPE REF TO zif_cds_alv_persistence
+ i_memory TYPE REF TO zif_cds_alv_memory
+ i_factory TYPE REF TO zif_cds_alv_factory
+ RAISING zcx_cds_alv_message.
+
+ PROTECTED SECTION.
+ CONSTANTS: BEGIN OF field_type,
+ standard TYPE zcds_alv_field_type VALUE '#STANDARD',
+ for_action TYPE zcds_alv_field_type VALUE '#FOR_ACTION',
+ for_intent_based_navigation TYPE zcds_alv_field_type VALUE '#FOR_INTENT_BASED_NAVIGATION',
+ with_intent_based_navigation TYPE zcds_alv_field_type VALUE '#WITH_INTENT_BASED_NAVIGATION',
+ with_navigation_path TYPE zcds_alv_field_type VALUE '#WITH_NAVIGATION_PATH',
+ with_url TYPE zcds_alv_field_type VALUE '#WITH_URL',
+ END OF field_type.
+
+ DATA description TYPE ddtext .
+ DATA ddfields TYPE ddfields .
+ DATA parameter_annotations TYPE cl_dd_ddl_annotation_service=>ty_t_para_anno_val_src_dtel .
+ DATA element_annotations TYPE cl_dd_ddl_annotation_service=>ty_t_elmnt_anno_val_src_dtel .
+ DATA entity_annotations TYPE cl_dd_ddl_annotation_service=>ty_t_anno_value .
+ DATA ddic_access TYPE REF TO zif_cds_alv_ddic_access.
+ DATA persistence TYPE REF TO zif_cds_alv_persistence.
+ DATA memory TYPE REF TO zif_cds_alv_memory.
+ DATA factory TYPE REF TO zif_cds_alv_factory.
+
+ METHODS evaluate_annotations ABSTRACT
+ RAISING
+ zcx_cds_alv_message.
+
+ METHODS remove_quotes
+ IMPORTING
+ i_string TYPE clike
+ RETURNING
+ VALUE(r_string) TYPE string.
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS ZCL_CDS_ALV_BASE IMPLEMENTATION.
+ METHOD constructor.
+ cds_view = to_upper( i_cds_view ).
+ ddic_access = i_ddic_access.
+ persistence = i_persistence.
+ memory = i_memory.
+ factory = i_factory.
+
+ ddic_access->get_annotations_for_cds_view( EXPORTING i_cds_view = cds_view
+ IMPORTING e_entity_annotations = entity_annotations
+ e_element_annotations = element_annotations
+ e_parameter_annotations = parameter_annotations ).
+
+ TRY.
+ description = entity_annotations[ annoname = 'ENDUSERTEXT.LABEL' ]-value.
+ CATCH cx_sy_itab_line_not_found.
+ description = cds_view.
+ ENDTRY.
+
+ ddfields = ddic_access->get_ddic_fields_for_cds_view( cds_view ).
+ ENDMETHOD.
+
+ METHOD remove_quotes.
+ r_string = replace( val = i_string sub = `'` with = `` occ = 0 ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/zcl_cds_alv_base.clas.xml b/src/zcl_cds_alv_base.clas.xml
new file mode 100644
index 0000000..2703ef1
--- /dev/null
+++ b/src/zcl_cds_alv_base.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ ZCL_CDS_ALV_BASE
+ D
+ Abstrakte Oberklasse für Objekte mit annotierten CDS-Views
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/zcl_cds_alv_bopf_handler.clas.abap b/src/zcl_cds_alv_bopf_handler.clas.abap
new file mode 100644
index 0000000..0c045d9
--- /dev/null
+++ b/src/zcl_cds_alv_bopf_handler.clas.abap
@@ -0,0 +1,310 @@
+CLASS zcl_cds_alv_bopf_handler DEFINITION PUBLIC INHERITING FROM zcl_cds_alv_base CREATE PUBLIC.
+ PUBLIC SECTION.
+ INTERFACES zif_cds_alv_bopf_handler.
+
+ METHODS constructor
+ IMPORTING i_cds_view TYPE ddstrucobjname
+ i_ddic_access TYPE REF TO zif_cds_alv_ddic_access
+ i_persistence TYPE REF TO zif_cds_alv_persistence
+ i_memory TYPE REF TO zif_cds_alv_memory
+ i_factory TYPE REF TO zif_cds_alv_factory
+ RAISING zcx_cds_alv_message.
+
+ PROTECTED SECTION.
+ METHODS: evaluate_annotations REDEFINITION.
+
+ PRIVATE SECTION.
+ DATA sadl_definition TYPE if_sadl_types=>ty_sadl_definition.
+ DATA entity TYPE REF TO if_sadl_entity.
+ DATA runtime TYPE REF TO if_sadl_entity_transactional.
+ DATA transaction_manager TYPE REF TO cl_sadl_transaction_manager.
+
+ METHODS ask_for_parameters
+ CHANGING c_parameters TYPE any
+ RAISING zcx_cds_alv_message.
+
+ METHODS map_attributes_single
+ IMPORTING i_entity_key TYPE any OPTIONAL
+ i_attributes TYPE if_sadl_types=>tt_sadl_attributes
+ EXPORTING e_source_key TYPE any
+ RAISING zcx_cds_alv_message.
+
+ METHODS map_attributes_table
+ IMPORTING i_entity_keys TYPE STANDARD TABLE OPTIONAL
+ i_attributes TYPE if_sadl_types=>tt_sadl_attributes
+ EXPORTING e_source_keys TYPE STANDARD TABLE
+ RAISING zcx_cds_alv_message.
+
+ METHODS instantiate
+ RAISING zcx_cds_alv_message.
+ENDCLASS.
+
+
+
+CLASS zcl_cds_alv_bopf_handler IMPLEMENTATION.
+ METHOD ask_for_parameters.
+ DATA fields TYPE STANDARD TABLE OF sval.
+
+ DATA(descriptor) = CAST cl_abap_structdescr( cl_abap_typedescr=>describe_by_data( c_parameters ) ).
+ IF descriptor->is_ddic_type( ).
+ fields = VALUE #( FOR x_ddic_field IN descriptor->get_ddic_field_list( )
+ ( tabname = x_ddic_field-tabname
+ fieldname = x_ddic_field-fieldname
+ fieldtext = x_ddic_field-scrtext_m ) ).
+ ELSE.
+ fields = VALUE #( FOR x_component IN descriptor->components
+ ( tabname = descriptor->get_relative_name( )
+ fieldname = x_component-name
+ fieldtext = x_component-name ) ).
+ ENDIF.
+
+ CALL FUNCTION 'POPUP_GET_VALUES'
+ EXPORTING popup_title = 'Parameter eingeben'
+ TABLES fields = fields
+ EXCEPTIONS error_in_fields = 1
+ OTHERS = 2.
+ IF sy-subrc <> 0.
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
+ WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
+ ENDIF.
+
+ LOOP AT fields INTO DATA(field).
+ ASSIGN COMPONENT field-fieldname OF STRUCTURE c_parameters TO FIELD-SYMBOL().
+ IF sy-subrc = 0.
+ = field-value.
+ ENDIF.
+ ENDLOOP.
+ ENDMETHOD.
+
+ METHOD constructor.
+ super->constructor( i_cds_view = i_cds_view
+ i_ddic_access = i_ddic_access
+ i_persistence = i_persistence
+ i_memory = i_memory
+ i_factory = i_factory ).
+
+ evaluate_annotations( ).
+ ENDMETHOD.
+
+ METHOD evaluate_annotations.
+ " not used yet
+ ENDMETHOD.
+
+ METHOD instantiate.
+ TRY.
+ DATA(entity_id) = CONV sadl_entity_id( cds_view ).
+ entity = cl_sadl_entity_factory=>get_instance( )->get_entity( iv_type = cl_sadl_entity_factory=>co_type-cds
+ iv_id = entity_id ).
+
+ " This gets the correct entity, when ObjectModel.transactionalProcessingDelegated is used!
+ DATA(source_id) = ddic_access->get_source_id( entity ).
+
+ runtime = cl_sadl_crud_runtime_util=>get_ta_runtime(
+ iv_entity_id = COND #( WHEN source_id IS NOT INITIAL THEN source_id ELSE entity_id )
+ iv_entity_type = cl_sadl_entity_factory=>co_type-cds ).
+
+ transaction_manager = cl_sadl_transaction_manager=>get_transaction_manager( ).
+
+ IF source_id IS NOT INITIAL.
+ DATA(mp) = ddic_access->get_mp_for_entity( entity ).
+
+ DATA(entity_type_trans_manager) =
+ cl_sadl_entity_trans_factory=>get_transactional_provider( cl_sadl_entity_factory=>co_type-bopf
+ )->get_transaction_manager( cl_sadl_entity_factory=>co_type-bopf ).
+
+ transaction_manager->register_entity_transaction(
+ io_entity_transaction = entity_type_trans_manager
+ iv_entity_type = cl_sadl_entity_factory=>co_type-bopf
+ io_mdp = cl_sadl_metadata_provider=>get( mp ) ).
+ ENDIF.
+
+ CATCH cx_sadl_static cx_sadl_contract_violation INTO DATA(previous).
+ RAISE EXCEPTION TYPE zcx_cds_alv_message
+ EXPORTING previous = previous.
+ ENDTRY.
+ ENDMETHOD.
+
+ METHOD map_attributes_single.
+ CLEAR e_source_key.
+
+ " Use Mapping, if it exists, else MOVE-CORRESPONDING
+ LOOP AT i_attributes ASSIGNING FIELD-SYMBOL().
+ ASSIGN COMPONENT -name OF STRUCTURE i_entity_key TO FIELD-SYMBOL(