Zum Inhalt springen

Agent Purple

Mitglieder
  • Gesamte Inhalte

    48
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Agent Purple

  1. Hi, sag mal... auf welchem Release arbeitet ihr denn? Scheint ja recht alt zu sein. Probier mal das "STANDARD" wegzulassen.
  2. Hi, hier ist das Programm zum Herunterladen von DB-Tabellen. Die Daten werden in einer CSV-Datei auf dem Applikations-Server gespeichert. Der FB 'Z_ZRPARAMETER_READ' holt nur ein Temporäres Verzeichnis aus einer Kundeneigenen Tabelle, muss also irgendwie ersetzt werden. Denke aber, dass dich das an dieser Stelle gar nicht so interessiert. Message 183(zr) ist eine Fehlermeldung, falls die Datei nicht erzeugt werden konnte. Message 081(zs) ist ein Dummy, den ich vergewaltigt habe. Ist ja auch nur ein Schmutzprogramm gewesen :-) Wenn noch fragen sind, weisste ja wie du mich erreichen kannst. REPORT z_tabledownload . * Lokale Daten DATA: l_tabname LIKE dd02l-tabname, lt_data TYPE REF TO data, l_data TYPE string, l_field TYPE string, l_out TYPE string, l_zrparameter TYPE zrparameter, l_filename TYPE string, lt_tablefields TYPE TABLE OF dbfield, l_count TYPE sydbcnt, l_sydbcnt TYPE sy-dbcnt. FIELD-SYMBOLS: <lt_data> TYPE table, <l_data> TYPE ANY, <l_field> TYPE ANY, <l_tablefield> TYPE dbfield. * Selektionsbild PARAMETERS: p_tab LIKE dd02l-tabname OBLIGATORY, p_size TYPE i OBLIGATORY DEFAULT '10000'. * Programmstart START-OF-SELECTION. * Tabelle prüfen SELECT SINGLE tabname FROM dd02l INTO l_tabname WHERE tabname = p_tab. * Tabelle nicht vorhanden IF NOT sy-subrc = 0. MESSAGE s402(mo) DISPLAY LIKE 'E' WITH p_tab. RETURN. ENDIF. * Feldbezeichnungen lesen CALL FUNCTION 'DB_GET_TABLE_FIELDS' EXPORTING tabname = l_tabname TABLES dbfields = lt_tablefields. * Pfad des Work-Verzeichnisses lesen CALL FUNCTION 'Z_ZRPARAMETER_READ' EXPORTING i_id = 'TEMP_PFAD' IMPORTING e_zrparameter = l_zrparameter EXCEPTIONS no_input_data = 1 data_not_found = 2 OTHERS = 3. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. * Dateiname aufbauen CONCATENATE l_zrparameter-wert sy-sysid '-' l_tabname '-' sy-datum '-' sy-uzeit '.txt' INTO l_filename. * Instanzierung der lokalen Daten CREATE DATA: lt_data TYPE STANDARD TABLE OF (l_tabname). ASSIGN lt_data->* TO <lt_data>. * Ausgabedatei öffnen OPEN DATASET l_filename FOR OUTPUT IN TEXT MODE. IF NOT sy-subrc = 0. MESSAGE s183(zr) DISPLAY LIKE 'E'. RETURN. ENDIF. * Überschrift der Feldnamen schreiben LOOP AT lt_tablefields ASSIGNING <l_tablefield>. CONCATENATE l_out <l_tablefield>-name ';' INTO l_out. ENDLOOP. * Überschrift schreibem TRANSFER l_out TO l_filename. * Anzahl der Datensätze ermitteln SELECT COUNT(*) FROM (l_tabname) INTO l_sydbcnt. * Datensätze paketweise lesen SELECT * FROM (l_tabname) INTO TABLE <lt_data> PACKAGE SIZE p_size ORDER BY PRIMARY KEY. * Gelesene Sätze zählen l_count = l_count + p_size. * Statusbar aktualisieren PERFORM show_status USING l_count l_sydbcnt. * Datensätze für Ausgabe aufbereiten LOOP AT <lt_data> ASSIGNING <l_data>. CLEAR l_out. DO. ASSIGN COMPONENT sy-index OF STRUCTURE <l_data> TO <l_field>. IF sy-subrc = 0. l_field = <l_field>. CONCATENATE l_out l_field ';' INTO l_out. ELSE. EXIT. ENDIF. ENDDO. * Datensatz in Datei schreiben TRANSFER l_out TO l_filename. ENDLOOP. ENDSELECT. * Ausgabedatei schließen CLOSE DATASET l_filename. IF NOT sy-subrc = 0. MESSAGE s183(zr) DISPLAY LIKE 'E'. RETURN. ENDIF. * Das war's MESSAGE s081(zs) WITH 'Tabelle' l_tabname 'wurde gespeichert in Datei' l_filename. *&---------------------------------------------------------------------* *& Form show_status *&---------------------------------------------------------------------* FORM show_status USING p_count TYPE sydbcnt p_sydbcnt TYPE sydbcnt. * Lokale Daten DATA: l_count TYPE string, l_sydbcnt TYPE string, l_progress1 TYPE string, l_progress_percentage(2) TYPE n, l_progress_text TYPE string. l_count = p_count. l_sydbcnt = p_sydbcnt. * Prozentsatz der Verarbeitung berechnen l_progress1 = trunc( l_count / l_sydbcnt * 100 ). l_progress_percentage = l_progress1. CONCATENATE l_count 'von' l_sydbcnt 'Sätzen gelesen (' l_progress_percentage '%)' INTO l_progress_text SEPARATED BY space. * Progress auf den GUI anzeigen CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR' EXPORTING percentage = l_progress_percentage text = l_progress_text. ENDFORM. " show_status
  3. Ich schick dir morgen mal ein wenig Source zu dem Thema, OK? Hab letzt ein Proggie zum Herunterladen von Tabellen geschrieben. Denke, das ist sowas, was du brauchst.
  4. Aber für die Felder und in Kombi mit deiner Zeilenmarkierung kannst du alles beliebig freischalten
  5. Klar geht das. Musst nur für die gewünschten Felder eine Screen-Group (im Painter) definieren. Auf die Fragst du dann ab und setzt die entsprechenden Eigenschaften.
  6. Hi, du brauchst in deiner Struktur, mit der du das TV aufbaust ein CHAR1-Feld (z.B. nennst du es "MARK"). Im Screen-Painter kannst du dann angeben, ob du einfach oder mehrfach Marikierung haben möchtest. Den Feldnamen deiner Sturktur musst du dann dort eintragen. Im PAI holst du dann die Markierungskennzeichen des TV in die IT. Im PBO loopst du dann über die IT . Wenn das X für MARK sitzt, setzt du die benötigten Felder des TV auf Input = 1. Kann dir auch mal ein Coding-Beispiel schicken, wenn dir das noch net weiter geholfen hat. Gruß P.S.: Bin übrigens auch wieder per ICQ erreichbar.
  7. Hi, vielleicht interessieren dich ein paar Programme zu dem Thema, die ich mal geschrieben habe. Das erste ist eine recht groß gewordene Gui für das Net Send Download WinNetSend Folgendes Programm funktioniert vom Prinzip her ähnlich, nur mit nem eigenen Protokoll, da sie uns in der Firma den Nachrichtendienst abgedreht haben. Hat noch zusätzlich ne Online-Anzeige ala ICQ, ist aber auch noch in der Testphase. Download LAN Messenger Viel Spaß damit
  8. Hi, konnte mich gestern leider net an der Diskussion beteiligen. War aber sehr interessant zu lesen Das mit der Suchhilfe klappt mit alle Feldern einer Struktur oder Tabelle und mit allen Datenelementen. Sie ans Datenelement zu hängen macht natürlich mehr Sinn, weil sie dann überall genutzt werden kann, wo sich das DE befindet. Musst halt nur aufpassen bei der Deklaration von Select-Options und Parameters. Im übrigen gibt: Variablen immer mit TYPE deklarieren, wegen AO (Abap Objects). Dann fällt einem die Umstellung net so schwer. Wenn du noch Fragen hast, kannst dich gern auch per Mail: agent.purple@gmx.de oder ICQ: 91958511 melden. Gruß
  9. Axo, du gehst in die SE11 und verknüpfst die Suchhilfe entweder mit einem Datenelement oder nem Feld einer Tabelle oder Struktur. Gibt da nen extra Reiter in der SE11. Und dann haste auf dem Dynpro, wenn du auf dem Feld mit dem Cursor stehst, den F4-Button.
  10. Jo, was meinst du, wozu eine Suchhilfe da ist :WD :WD
  11. Versuchs mal mit sichern und aktivieren
  12. Wie schon im anderen Posting gesagt, musst du dir lediglich ein Feld nehmen, hinter dem eine vernünfige NUMC-Domäne liegt (NUMC_RAN). Dann solltest du im Programm deine Eingaben mit führenden Nullen haben. Standardbeispiele sindhalt LIFNR und KUNNR, bei denen das genau so funktioniert. Sind aber leider nur 10-stellig
  13. Tach, erzähl doch einfach mal, was du da veranstalten sollst. So ganz kann ich das noch nicht nachvollziehen. Klingt fast wie dein letztes Posting zu dem Thema. Beliebig variabel können Ranges übrigens net sein (oder es ist mir noch net über'n Weg gelaufen). In welchem Modul arbeitest du?
  14. Hi, Suchhilfen kann du auch über die SE11 den Feldern zu. Idealerweise hängt man die Suchhilfen aber an eine Domäne oder ein Datenelement, damit sie überall wo das Element benutzt wird, verfügbar ist. Sonst musst du das in alle Strukturen und Tabellen hängen. Eine Suchhilfe kannst du verschieden anlegen. Wenn du eigenes Coding brauchst, bastelst du dir nen FB, der dir bestimmte Daten zurückliefert. Ansonsten halt über Prüftabellen etc. Sinn machen die Teile sowieso fast nur bei eigenen Tabellen /Strukturen.
  15. Hi! Das einfachste ist, wenn du dir entspechende Klassen anlegst, in der die ganzen Sprachschlüsel hinterlegt sind. Je nachdem was der benutzer auswählt, instanziert du dann die entsprechende Klasse. Ist nebenbei auch noch "hübscher" als INIs.
  16. Hi, hat sich dein obiges Problem eigentlich schon gelöst? Wenn ja -> OK, wenn nein -> du brauchst eigentlich nur eine Range-Tabelle mit ner richtigen Domäne dahinter, d.h. inkl. Typkonvertierung (NUMC). Dann füllt er dir das immer mit Nullen auf. Und mal so allgemein: ABAP ist doch richtig genial, z.B. bei der Verarbeitung von Arrays bzw. internen Tabellen. Da können sich diverse andere Sprachen aber locker noch was von abgucken. Ich programmiere seit nunmehr fast zwei Jahren im SAP und bin äußerst happy damit. Da ist man wenigstens nicht nur stumpf Kodierer, sondern brauchst auch viel betriebswirtschaftlichen Hintergrund, damit man auch ohne Krücke (viele, viele Helferlein) was auf die Beine krigt.
  17. Hi! Ist eigentlich ganz einfach. Es gibt verschiedene Möglichkeiten: Eine Liste (bzw. Array) aller Fenster zurückliefern, Fenster nach einem bestimmten Titel suchen, etc. Wenn du mir erzählst was du brauchst, kriegste auch ne Antwort
  18. Tach! @Julia: Mach dir mal keine Sorgen. ABAP ist weder leichter noch schwerer als irgendeine andere Sprache. Das, was den meisten Leuten zu schaffen macht, ist das betriebswirtschaftliche Umfeld. Schließlich will man nicht nur ganz stupf Kodierer sein, sondern hat meisten einen etwas anderen Anspruch. Zum anderen hat man ja noch die Möglichkeit, aus den (keine ahnung wie vielen) Funktionsbausteinen und Methoden auszuwählen, d.h. so viel muss man dann schon gar net mehr coden. Aber das kommt dann im Laufe der Zeit. Wenn es das grüne Buch ist, das du da hast, kann ich nur sagen, dass mir das damals super geholfen hat. Ne Schulung kann ich zu Beginn nicht empfehlen (jedenfalls nicht die anbsoluten Grundlagenschulungen), weil man da wirklich nur Laufen lernt, d.h. was ist eigentlich eine Variable etc. Wenn du jemanden hast, der dir beim Einstieg hilft, ist das meiner Meinung nach viel mehr Wert. Das soll's nun aber erstmal gewesen sein. Wenn du (oder sonstwer) noch Fragen hat, einfach mal melden... Gruß
  19. LOL wie geil... Dachte vielleicht kann man trotzdem mal helfen
  20. Na, wat liegt an? Vielleicht kann ich dir helfen
  21. Hi! Du solltest schon sagen, welche Objekte du damit steuern willst. Klingt irgendwie nach Liste oder Tableview
  22. Das SSTab ist doch gar nicht so schlecht. Bin recht zufrieden damit. Solltest nur den Style umstellen (0 -> 1), dann sieht das Teil auch passabel aus.
  23. Hab das Posting grad mal so entdeckt. Klar gibt es Esc-Sequenzen. Kannst das mit doppelten Anführungezeichen machen. MsgBox ("Text1 ""Text2"" Text3") gibt alles als einen String aus wobei Text2 in anführungszeichen steht. Text1 "Text2" Text3 <<< das steht dann in der Box Gruß

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...