Ziffern zusammenhängen, fallauswahl bei select?

Getting started ... Alles für einen gelungenen Start.
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Ziffern zusammenhängen, fallauswahl bei select?

Beitrag von Fian (ForumUser / 19 / 0 / 0 ) »
Hi,

nachdem ich so tatkräftige HIlfe beim letzten mal bekommen habe (nochmal danke), bitte ich euch noch mal um eure HIlfe.

Und zwar hab ich 2 Probleme:

1. Ich habe eine Partnernummer. Problem ist, der Benutzer soll jetzt zum beispiel 12 eingeben. damit findet er aber nichts in der ursprünglich (Vdarl) tabelle, da Sie dort dann solange ne 0 davor hat bis sie 10stellig ist. Wie kann ich mit ABAP nun verwirklichen das er das selbst macht, wenn halt nur ne Zahl (ohne Sternchen) eingegeben wird?



2. ich selektiere aus der VDArl tabelle (dank kräftiger mithilfe von hier) jetzt aus meiner Tabelle 5 verschiedene Spalten. Soweit alles Okay, jetzt will mein Chef allerdings das ich ne Spalte einrichte, wo dann je nach Partnertyp: name_org1+name_orgs oder name_last+name_first oder name_grp1 steht.

wie kann ich so eine Auswahl bauen?
Hat jemand ne Idee?


Schon jetzt ein dickes Dankeschön!

Gruß
Fian
Allen, die durch das Buch ABAP - grundkurs durchgekommen sind, gebührt mein respekt.

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


Ziffern zusammenhängen

Beitrag von scott111 (ForumUser / 49 / 0 / 0 ) »
Wenn ich da Problem richtig verstanden habe, geht es mal wieder um das Interen und extene Datenformat von SAP.

Also Du hast eine Zahl /Type n zb 18.
Das SAp ist 10 Stellen lang also 0000000018.

Dann kannst Du einfach die führenden nullen aufüllen

DATA: füllen type n value '0000000000'
Wert type n,

Contatend wert füllen into wert.

Es kann auch sein das noch ein Split oder Replace oder na Gaps (keine nullen) dabei brauchst

Hoffe das hilft weiter

Tschau Chris

Beitrag von Fian (ForumUser / 19 / 0 / 0 ) »
HI,

ja sowas meine ich.SAP hat halt 10 stellen (0000000xxx) und nur die letzten ZIffern sind wirklich die Nummer, die von Benutzer eingegeben wird.

Problem ist jetzt natürlich auch: das nicht immer gleichviel '0' davor gestzt werden muss.

auf die idee mit concatate und replace bin ich auch schon gekommen. aber irgendwie krieg ich das nciht zum LAufen! ich könnt mir vorstellen, dass es daran liegt, das es halt Nullen sind. also eigentlich etwas was man bei Zahlen weglässt!
Allen, die durch das Buch ABAP - grundkurs durchgekommen sind, gebührt mein respekt.

Beitrag von JHM (Top Expert / 1211 / 2 / 202 ) »
Fian hat geschrieben:Problem ist jetzt natürlich auch: das nicht immer gleichviel '0' davor gestzt werden muss.
Eine Frage vorweg: Wie ist das Feld definiert in das der User seine Zahl eingibt?
Wenn dieses mit Bezug auf das Datenelement definiert ist wird die Konvertierung automatisch durchgeführt.
Wenn du aus welchen Gründen auch immer die Konvertierung selber durchführen mußt, nimmst du am besten die Konvertierungsbausteine, die in der Domäne hinterlegt sind. Für vdarl-ranl ist die Konvertierung mit ALPHA angegeben. Wie komm ich darauf? SE11 -> Datenbanktabelle -> Anzeigen lassen -> Doppelklick auf das Datenelement RANL -> Doppelklick auf die Domäne RANL -> auf dem Reiter Definition unter Ausgabeeigenschaften gibt es das Feld Konvert-Routine hier drin steht ALPHA -> da einen Doppelklick drauf und du bekommst eine Liste der möglichen Funktionsbausteine, je einen von intern nach extern und einen extern nach intern.
Diese Funktionsbausteine konvertieren deine Werte wie gewünscht.

Die Frage mit den zwei Feldern in ein tun hab ich nicht richtig Verstanden.
Gruß Hendrik

Beitrag von Fian (ForumUser / 19 / 0 / 0 ) »
Hi,

also inzwischen hat sich gottseidank fast alles mit fachkundiger HIlfe erledigt.

Trotzdem hier noch zur BEantwortung:
das Feld ist so definiert (als rdarnehm) wie es auch in der auszulesenden Tabelle ist.

gelöst haben wir das Problem jetzt mit einer Range und concatenate.

Allerdings stellt sich jetzt raus das das nicht so gut mit meinem Selectoptions und INNer join funktioniert.

d.h. die '000' werden immer dran gesetzt egal ob nur Zahl oder ob auch * dahinter steht. es hindert die Suchfähigkeit des Sternchen, weil immer bis 10 Stellen aufgefüllt wird. was bedeutet das er dann wenn z.B. jemand 12* eingibt er auch nur 3-stellige Nummern findet, obwohl es in der Variante auch 4, 5 o. 6 stellige geben kann.

Jemand ne Idee wie man das noch beheben könnte?


2. Das mit den Feldern war so gemeint: ich habe verschiedene PArtnertypen: Gruppe, Organisation, Natürlich Person.

dazu gehören je die Felder (/Spalte in der Tabelle):
name_grp1, _grp2, _org1, _org2, _last , _first.

Und jetzt sollte ich das so machen, das je nach Typ, dann immer das genommen dazugehörige genommen wird.

und das dann alles in einer Spalte in meiner ausgebenden Tabelle ist.

meine jetzige Lösung ist: das ich abfrage ob grp1 leer, wenn ja fülle mit org1, wenn immer noch leer mit _last.

Und hab dann als Standardsicht in der Tabelle, einfach die anderen Felder ausgeblendet.


Das ist nicht wirklich die feine Art, deswegen bin ich für Vorschläge jederzeit offen!

Ein großes dickes Dankeschön an dieses Forum!

Gruß
Fian
Allen, die durch das Buch ABAP - grundkurs durchgekommen sind, gebührt mein respekt.

Beitrag von JHM (Top Expert / 1211 / 2 / 202 ) »
Fian hat geschrieben:d.h. die '000' werden immer dran gesetzt egal ob nur Zahl oder ob auch * dahinter steht.
Jemand ne Idee wie man das noch beheben könnte?
Warum nutzt du nicht den von mir oben aufgezeigten Weg mit dem Konvertierungsbaustein?
Dieser berücksichtigt einen Stern.

Hier mal ein Beispiel zu Konvertierungen in SAP:

Code: Alles auswählen.

TABLES: vdarl.
SELECT-OPTIONS s_rdarne FOR vdarl-rdarnehm.
PARAMETER p_rdarne TYPE vdarl-rdarnehm.
PARAMETER p_char(10) TYPE c.

WRITE: / 'Externe Darstellung:'.
LOOP AT s_rdarne.
  WRITE: / s_rdarne-sign,
           s_rdarne-option,
           s_rdarne-low,
           s_rdarne-high.
ENDLOOP.
WRITE: / p_rdarne.

WRITE: /,/,/ 'Interne Darstellung:'.
LOOP AT s_rdarne.
  WRITE: / s_rdarne-sign    USING NO EDIT MASK,
           s_rdarne-option  USING NO EDIT MASK,
           s_rdarne-low     USING NO EDIT MASK,
           s_rdarne-high    USING NO EDIT MASK.
ENDLOOP.
WRITE: / p_rdarne           USING NO EDIT MASK.

WRITE: /, /, / 'Ohne Bezug zum Datenelement muss man selber ran:'.
WRITE: / 'VOR Konvertierung', p_char USING NO EDIT MASK.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    input  = p_char
  IMPORTING
    output = p_char.

WRITE: / 'NACH Konvertierung', p_char USING NO EDIT MASK.
Gruß Hendrik

Beitrag von c oco (Specialist / 326 / 12 / 16 ) »
hallo fian,

so wie ich es verstanden habe, willst du die daten von einer tabelle in eine andere tabelle übergeben ?

die felder kannst du mittels eines performs in deine endgültige tabelle übergeben und so aufbereiten:

z.b.: perform Felder using Tabelle-Feld1
tabelle-Feld2
usw.
changing feld1
feld2 usw.

zuweisen:
ausgabe Tabelle-Feld1 = Feld1.
so kannst du bestimmen, welches typ wem zugewiesen werden soll.

grüße coco

Beitrag von Fian (ForumUser / 19 / 0 / 0 ) »
Hi,

@JHM ich danke dir sehr für deine Lösung.

Ich weiß nicht vielleicht ist es nicht so gut, aber ich bin der Meinung, dass wenn es funktioniert und ich es verstehe mir jetzt während meiner Lernphase mehr hilft, als wenn ich versuche jetzt einfach nur einen Code zu kopieren und dann drin zu raten was ich ändern muss.

Deswegen stelle ich ja hier drin meist auch nur Fragen und nicht mein Code rein, nach der Meinung nun berichtigt mal. Daraus lerne ich nichts.


Inzwischen habe ich das mit Verzweigungen geklärt. es macht jetzt das was es machen soll.
Und jetzt hänge ich an der nächste Herausforderung! Werthilfen alla F4. :?

Danke für eure HIlfe!


Gruß
FIan
Allen, die durch das Buch ABAP - grundkurs durchgekommen sind, gebührt mein respekt.

Beitrag von JHM (Top Expert / 1211 / 2 / 202 ) »
Fian hat geschrieben:Hi,

@JHM ich danke dir sehr für deine Lösung.

Ich weiß nicht vielleicht ist es nicht so gut, aber ich bin der Meinung, dass wenn es funktioniert und ich es verstehe mir jetzt während meiner Lernphase mehr hilft, als wenn ich versuche jetzt einfach nur einen Code zu kopieren und dann drin zu raten was ich ändern muss.
Die Einstellung ist bestimmt nicht verkehrt.
Ich wollte dir nur eine Technik von SAP vorstellen, die sehr häufig automatisch im Hintergrund abläuft, manchmal aber auch selber getan werden muss. Das Beispielcoding zeigt diese Technik und war dazu gedacht die Technik der Konvertierung zu demonstrieren. Ob du daraus nur ein COPY-PAST machst, oder versuchst die Technik (am Besten im Debugger) nach zu vollziehen, bleibt dir überlassen.

Bei der F4-Hilfe gibt es jetzt auch wieder verschiedene Techniken dies zu realisieren. In diesem Fall währe es gut zu wissen wie du das Eingabefeld definierst. Select-Option, Parameter, Eingabe in ein Listfeld oder doch ein Dynprofeld?
Gruß Hendrik

Beitrag von Fian (ForumUser / 19 / 0 / 0 ) »
HI,

die Möglichkeit wie ich das machen kann, hast du mir aufjedenfall aufgezeigt. und ich bin mir sicher, dass ich das noch irgendwann nutzen werde. Deswegen ja danke.


Um genauzu sein habe ich 2 select-options.
falls das auch ncoh wichtig: die stehen bei mir in einem Selection-screen (nur block).


Ich hab jetzt in der Hilfe etwas von:

Code: Alles auswählen.

ON VALUE-REQUEST FOR xxx_high 
gelesen?

Ist das wirkllich was ich suche? und wie soll das funktionieren?


Danke
gruß
Fian
Allen, die durch das Buch ABAP - grundkurs durchgekommen sind, gebührt mein respekt.

Beitrag von JHM (Top Expert / 1211 / 2 / 202 ) »
Fian hat geschrieben:

Code: Alles auswählen.

ON VALUE-REQUEST FOR xxx_high 
gelesen?

Ist das wirkllich was ich suche? und wie soll das funktionieren?
Mit ON VALUE-REQUEST kannst du eine selbst programierte Suchhilfe realisieren. z.B. mit dem FuBa F4IF_INT_TABLE_VALUE_REQUEST. Der Code im Block ON VALUE REQUEST wird ausgeführt wenn die Suchhilfe mit F4 angefordert wird.

Eine andere Möglichkeit ist eine Suchhilfe aus dem DICT der Select-Option zu zuordnen:

Code: Alles auswählen.

SELECT-OPTION s_partner FOR vdarl-rdarnehm MATCHCODE OBJECT BUPA
Das schwierige hierbei ist das finden der richtigen Suchhilfe. (Hier im Beispiel ist die Suchhilfe BUPA an die G.Partnernr. in der Tabelle VDARL expliziet angegeben [Reiter Eingabehilfe/-prüfung in der se11].)
Wenn keine Suchhilfe vorhanden ist, kann man sie natürlich auch selber anlegen.
Gruß Hendrik

Beitrag von Fian (ForumUser / 19 / 0 / 0 ) »
HI,

du bist genial!! :D .

die BUPA war vorhanden, musste ich nur noch einbinden und die andere hab ich durch die Hilfe eines Kollegen gefunden! jetzt läuft erstmal alles!


Ein große fettes dankeschön an alle Helfer!
Das Forum ist spitze!!
Macht weiter so!

Gruß
Fian
Allen, die durch das Buch ABAP - grundkurs durchgekommen sind, gebührt mein respekt.

Seite 1 von 1

Vergleichbare Themen

2
Antw.
4789
Views
Felder einer Struktur kommagetrennt zusammenhängen
von dieter.losert » 14.02.2012 16:41 • Verfasst in ABAP® Core
5
Antw.
2806
Views
Darstellung von Ziffern im Excel
von SAP_ENTWICKLER » 09.11.2017 13:05 • Verfasst in ABAP® Core
3
Antw.
3561
Views
Char-Feld (Ziffern) ersetzen
von Sculi » 05.01.2011 16:07 • Verfasst in ABAP® für Anfänger
4
Antw.
9686
Views
Performance: SELECT UP TO 1 ROWS vs. SELECT SINGLE
von roman1983 » 04.09.2008 14:29 • Verfasst in ABAP® für Anfänger
4
Antw.
19337
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Frage zur redefinierten Methode
vor 7 Stunden von Tetr4 1 / 66
RFC vs. ODATA
vor 13 Stunden von ewx 3 / 146
Druck von Etiketten via FP_PDF_TEST_01
vor 16 Stunden von Mr_Mkt 3 / 154

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.

Aktuelle Forenbeiträge

Frage zur redefinierten Methode
vor 7 Stunden von Tetr4 1 / 66
RFC vs. ODATA
vor 13 Stunden von ewx 3 / 146
Druck von Etiketten via FP_PDF_TEST_01
vor 16 Stunden von Mr_Mkt 3 / 154