"tiefe" interne Tabellen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

"tiefe" interne Tabellen

Beitrag von itmeli ( / / 0 / 3 ) »
Hallo zusammen,

ich habe einen ABAP geschrieben, der den Funktionsbaustein GRAPH_MATRIX_4D beinhaltet, welche durch eine interne Tabelle (gtab3) gefüllt wird.
Diese gtab3 widerum erhält ihre Daten von der internen Tabelle gtab2.
Mein Problem ist, dass in der List zwar die korrekten Daten (berechnete Durchlaufzeiten zu Aufträgen) zu bestimmten daten und/oder Werken angezeigt werden. In der Grafik aber, können zwar die Monate aus der internen Tablle dynamisch angezeigt werden, aber dann habe ich nur noch die Möglichkeit für das Werk einen manuellen Wert einzugeben, wobei dann, wenn mehrere bzw. andere Werke selektiert werden, die Beschriftung der grafik nicht mehr stimmt.
Bei dem Funktionsbaustein GRAPH_MATRIX_4D wird als erstes feld ein Typ C Feld übergeben, anschließend folgen die "Wertfelder" vom Typ F oder P. Also habe ich hier lediglich die Möglichkeit ein Textfeld (Monate) zu belegen, das in der Grafik als Beschriftungsfeld angezeigt werden kann.

Ich habe einen Hinweis gefunden, der besagt, dass für die Grafikaufbereitung keine "flachen internen Tabellen" verwendet werden sollten. Ich bin mir nicht sicher, ob ich eine "flache interne Tabelle" verwendet habe. Vielleicht könnten Ihr Euch das mal ansehen und habt eine Idee, wie ich diese Tabelle gtab3 als "tiefe interne Tabelle" anpassen kann....

CODE:

*--------------------------------------------------*
* Definition of data table gtab2 which is needed *
* for the graphical display; y1l1- y6l1 stand for * * 1 plant and 6 month. *
*--------------------------------------------------*

DATA: BEGIN OF gtab2 OCCURS 1,
mon(6) TYPE c,
werks LIKE mseg-werks, "Production Plant
y1l1 TYPE p DECIMALS 2, "Lead time A&P
y2l1 TYPE p DECIMALS 2, "Lead time CSD
y3l1 TYPE p DECIMALS 2, "Lead time Drawing
y4l1 TYPE p DECIMALS 2, "Lead time POP
y5l1 TYPE p DECIMALS 2, "Lead time PPW
y6l1 TYPE p DECIMALS 2, "Lead time PPP
y8l1 TYPE p DECIMALS 2, "Sum PPW + PPP
y7l1 TYPE p DECIMALS 2, "Lead time SH
END OF gtab2.

*-------------------------------------------------*
* Further internal table for graphical display *
* with Prod. Queue and Prod. Time summed up *
*-------------------------------------------------*

DATA: BEGIN OF gtab3 OCCURS 1,
mon(6) TYPE c,
* werks LIKE mseg-werks, "ProductionPlant
* "does not work

y1l1 TYPE p DECIMALS 2, "Lead time A&P
y2l1 TYPE p DECIMALS 2, "Lead time CSD
y3l1 TYPE p DECIMALS 2, "Lead time Drawing
y4l1 TYPE p DECIMALS 2, "Lead time POP
y8l1 TYPE p DECIMALS 2, "Sum of PPP/
"Queue
y7l1 TYPE p DECIMALS 2, "Lead time SH
END OF gtab3.


[...]


MOVE itab2-mon TO gtab2-mon.
MOVE itab2-werks TO gtab2-werks.
MOVE ap_avg TO gtab2-y1l1.
MOVE csd_avg TO gtab2-y2l1.
MOVE dr_avg TO gtab2-y3l1.
MOVE pop_avg TO gtab2-y4l1.
MOVE ppw_avg TO gtab2-y5l1.
MOVE ppp_avg TO gtab2-y6l1.
MOVE sh_avg TO gtab2-y7l1.
gtab2-y8l1 = ppw_avg + ppp_avg.
APPEND gtab2.
CLEAR: ap_avg, csd_avg, dr_avg, pop_avg, ppw_avg, ppp_avg, sh_avg.
CLEAR: ap_tnd, csd_tnd, dr_tnd, pop_tnd, ppw_tnd, ppp_tnd, sh_tnd.

CLEAR gtab2.


* Sum up Prod. Time and Prod. Queue for graphical
* display
MOVE itab2-mon TO gtab3-mon.
* MOVE gtab2-werks TO gtab3-werks. "does not work
MOVE g_ap_avg TO gtab3-y1l1.
MOVE g_csd_avg TO gtab3-y2l1.
MOVE g_dr_avg TO gtab3-y3l1.
MOVE g_pop_avg TO gtab3-y4l1.
MOVE g_sh_avg TO gtab3-y7l1.
gtab3-y8l1 = g_ppw_avg + g_ppp_avg.

APPEND gtab3.
CLEAR gtab3.


[...]


*------------------------------------------------*
* Graphical Display of Lead Times for 1 plant, *
* selected months, 7 single steps *
*------------------------------------------------*

AT USER-COMMAND.

WRITE 'FIFRST = PU' TO opts-c. APPEND opts.

*--- 2D-Graphic type: bars
*----------------------------*
WRITE 'P2TYPE = TD' TO opts-c. APPEND opts.
*--- colour: even
*----------------------------------*
WRITE 'P3CTYP = PL' TO opts-c. APPEND opts.
CALL FUNCTION 'GRAPH_MATRIX_4D'
EXPORTING
titl = 'Total Lead Times Analysis'
valt = 'DAYS'
dim1 = text-vgl
dim2 = 'NGP1' "not dynamically
* dim2 = gtab3-werks
dim3 = 'Month'
dim1_1 = text-l01 "dim1_x=leadtimes
dim1_2 = text-l02
dim1_3 = text-l03
dim1_4 = text-l04
dim1_5 = text-l08
dim1_6 = text-l07
dim2_1 = 'NGP1'
winpos = '5' "Position of graphic
winszx = '100'
winszy = '100'


mail_allow = 'X'
TABLES
data = gtab3
opts = opts.


Vielen Dank!!!!
Meli

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von just ( / / 0 / 3 ) »
hallo meli,

ich kenne zwar den fuba nicht, aber in deinem coding kann ich keine tiefe tabelle finden.

vielleicht hilft es dir ja bereits wenn ich den begriff etwas erkläre:

eine flache tabelle hat als zeile nur einzelne werte, z.b. Zahlen, Buchstaben, Strings, etc.

eine tiefe tabelle hat in der zeile wiederum eine (oder mehrere) tabellen und z.t. auch einzelne werte.

im coding sieht das etwa so aus:

Code: Alles auswählen.

DATA: t1_mara type table of mara. " flache Tabelle

Types:                      " eigener Strukturtyp 
begin of tiefe_tab_typ,
 tab1 type table of mara,
* weitere felder ...
* z.b.
* name type c,
* tab2 like t1_mara,
end of tiefe_tab_typ.
DATA: tiefe_tabelle type table of tiefe_tab_typ. " tiefe Tab

Data: tt_struktur like line of tiefe_tabelle. " zugehörige Struktur

*hier wäre nun folgendes möglich:
tt_struktur-tab1[] = t1_mara[].
append tt_struktur to tiefe_tabelle.
kannst dir das ja mal im debugger ansehen...

Beitrag von Gast ( / / 0 / 3 ) »
Hast du dir das Demo Programm GRBUSG_3 angeschaut?

Gruß Hendrik

Beitrag von itmeli ( / / 0 / 3 ) »
Hallo Hendrik,

erst einmal vielen Dank für Deine Antwort. Das Programm GRBUSG_3 habe ich mir bereits angesehen und habe auch mein Programm weitesgehend versucht daran zu orientieren.
Das Problem war allerdings, dass die Werte, die im Demoprogramm hardgecodet sind, in meinem Programm alle variabel sind und über die Selektionsmaske eingegeben werden. Deswegen habe ich den Aufbau der Tabellen nicht exakt so hinbekommen, wie es im Demoprogramm ist.

Habe ich es richtig verstanden, dass ich zunächst mehrere interne Tabellen definiere, die alle Daten beinhalten, die ich später verwenden möchte. Anschließend definiere ich eine weitere Tabelle, die eine Struktur darstellt und übergebe die vorher definierten internen Tabellen komplett als einzelne Felder dieser Struktur?

Ich werde das auf jeden fall mal so ausprobieren, vielleicht klappts ja sogar, selbst mit diesem FUBA.

Vielen Dank noch mal,
LG,
Meli

Seite 1 von 1

Vergleichbare Themen

0
Antw.
2247
Views
Interne Tabelle in XML-Date (tiefe Struktur)
von airwaver » 07.09.2006 11:14 • Verfasst in ABAP® Core
3
Antw.
5304
Views
1
Antw.
2434
Views
RFC und interne Tabellen
von Mr.Black » 23.01.2007 18:22 • Verfasst in ABAP® Core
3
Antw.
2387
Views
2 interne tabellen
von swonny » 21.12.2006 09:40 • Verfasst in ABAP® für Anfänger
3
Antw.
3235
Views
interne Tabellen
von komel » 29.12.2016 16:35 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag

Anonymous
Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.