Langtext

Benutzeroberflächen in SAP Systemen.

Langtext

Postby Beate4743 » Fri Sep 02, 2011 8:52 am

Hallo Leute,

ich habe folgendes kuriose Problem. Ich habe es jetzt geschafft in zwei verschiedenen Dynpros zwei verschiedene Langtexte anzulegen mit einem jeweiligen Textobjekt. Das Speichern funktioniert eigentlich schon, jedoch passiert hier manchmal folgendes: Wenn ich in dem einen Langtext was reinschreibe und abspeicher, ist er beim erneuten Aufrufen immer noch da, alles gut, jedoch wird gleichzeitig irgendwie der Text aus dem anderen Langtext gelöscht??? Da mache ich ja aber gar nichts? Das Problem tritt auch nur manchmal auf? Echt kurios?
Vielleicht hat jemand ne Idee?

MFG
thelocgirl
Beate4743
...
...
 
Posts: 214
Joined: Mon Oct 26, 2009 8:18 am

Re: Langtext

Postby Jonny2227 » Fri Sep 02, 2011 11:54 am

Sali,

ich denke um da etwas unterstützen zu können - müsste man etwas genauer wissen wie du das umgesetzt hast - sprich Coding oder so !

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: Langtext

Postby Beate4743 » Fri Sep 02, 2011 12:36 pm

instanzieren und aufbauen
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   "Container instanziieren
  2.   CREATE OBJECT gr_container_0102
  3.     EXPORTING
  4.       container_name              = 'CONT_TEXT_0102'
  5.     EXCEPTIONS
  6.       cntl_error                  = 1
  7.       cntl_system_error           = 2
  8.       create_error                = 3
  9.       lifetime_error              = 4
  10.       lifetime_dynpro_dynpro_link = 5
  11.       OTHERS                      = 6.
  12.  
  13.   "TextEditor instanziieren
  14.   CREATE OBJECT gr_text_edit_zasg
  15.     EXPORTING
  16.       parent                     = gr_container_0102
  17.       name                       = 'Gründe'
  18.       wordwrap_mode              = cl_gui_textedit=>wordwrap_at_fixed_position
  19.       wordwrap_position          = line_length
  20.       wordwrap_to_linebreak_mode = cl_gui_textedit=>true
  21.     EXCEPTIONS
  22.       error_cntl_create          = 1
  23.       error_cntl_init            = 2
  24.       error_cntl_link            = 3
  25.       error_dp_create            = 4
  26.       gui_type_not_supported     = 5
  27.       OTHERS                     = 6.
GeSHi ©


blockieren und so weiter
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. CLEAR: gs_head_zasg, gv_liner2, gv_kommentar2, gv_sgr.
  2.   REFRESH: gt_sv_txt_zasg.
  3.  
  4.   gv_sgr = 'X'.
  5.  
  6.   gs_head_zasg-tdobject = 'ZQM_MELD'.
  7.   gs_head_zasg-tdname   = gs_viqmel_dyn-qmnum.
  8.   gs_head_zasg-tdid     = 'ZASG'.
  9.   gs_head_zasg-tdspras  = sy-langu.
  10.  
  11.   CALL FUNCTION 'READ_TEXT'
  12.     EXPORTING
  13.       id                      = gs_head_zasg-tdid
  14.       language                = gs_head_zasg-tdspras
  15.       name                    = gs_head_zasg-tdname
  16.       object                  = gs_head_zasg-tdobject
  17.     TABLES
  18.       lines                   = gt_sv_txt_zasg
  19.     EXCEPTIONS
  20.       id                      = 1
  21.       language                = 2
  22.       name                    = 3
  23.       not_found               = 4
  24.       object                  = 5
  25.       reference_check         = 6
  26.       wrong_access_to_archive = 7
  27.       OTHERS                  = 8.
  28.  
  29.   DESCRIBE TABLE gt_sv_txt_zasg LINES gv_liner2.
  30.  
  31. * Eigenschaften setzen
  32.  
  33.   IF g_aktyp = 'A'.
  34.     CALL METHOD gr_text_edit_zasg->set_readonly_mode
  35.       EXPORTING
  36.         readonly_mode = 1.
  37.   ENDIF.
  38.  
  39.   IF g_aktyp <> 'A'.
  40.     CALL METHOD gr_text_edit_zasg->set_readonly_mode
  41.       EXPORTING
  42.         readonly_mode = 0.
  43.  
  44.     CALL METHOD gr_text_edit_zasg->set_toolbar_mode
  45.       EXPORTING
  46.         toolbar_mode = 0.
  47.  
  48. * wenn Langtext nicht leer ist
  49.     IF gt_sv_txt_zasg[] IS NOT INITIAL.
  50.       gv_liner2 = gv_liner2 + 1.
  51.  
  52.       gv_datum(2)   = sy-datum+6(2).
  53.       gv_datum+2(1) = '.'.
  54.       gv_datum+3(2) = sy-datum+4(2).
  55.       gv_datum+5(1) = '.'.
  56.       gv_datum+6(4) = sy-datum(4).
  57.  
  58.       gv_uzeit(2)   = sy-uzeit(2).
  59.       gv_uzeit+2(1) = ':'.
  60.       gv_uzeit+3(2) = sy-uzeit+2(2).
  61.       gv_uzeit+5(1) = ':'.
  62.       gv_uzeit+6(2) = sy-uzeit+4(2).
  63.  
  64.       SELECT SINGLE pernr FROM pa0002
  65.         INTO (pa0001-pernr)
  66.         WHERE nchmc = sy-uname.
  67.  
  68.       SHIFT pa0001-pernr RIGHT DELETING TRAILING space.
  69.       OVERLAY pa0001-pernr WITH '00000000'.
  70.  
  71.       SELECT SINGLE ename FROM pa0001
  72.         INTO (pa0001-ename)
  73.         WHERE pernr = pa0001-pernr.
  74.  
  75.       CONCATENATE '(' sy-uname ')' INTO gv_uname.
  76.  
  77.       SELECT SINGLE persnumber addrnumber
  78.       FROM usr21 INTO (usr21-persnumber, usr21-addrnumber)
  79.         WHERE bname = sy-uname.
  80.  
  81.       SELECT SINGLE tel_number tel_extens
  82.         FROM adr2 INTO (adr2-tel_number, adr2-tel_extens)
  83.         WHERE persnumber = usr21-persnumber AND
  84.               addrnumber = usr21-addrnumber.
  85.  
  86.       CONCATENATE '*' gv_datum gv_uzeit pa0001-ename gv_uname 'Tel.' adr2-tel_number adr2-tel_extens '*' INTO gv_kommentar2 SEPARATED BY space.
  87.       MOVE gv_kommentar2 TO gs_sv_txt_zasg-tdline.
  88.       APPEND gs_sv_txt_zasg TO gt_sv_txt_zasg.
  89.       CLEAR gs_txt_zasg.
  90.  
  91.       LOOP AT gt_sv_txt_zasg INTO gs_sv_txt_zasg.
  92.         MOVE gs_sv_txt_zasg-tdline TO gs_txt_zasg-line.
  93.         APPEND gs_txt_zasg TO gt_txt_zasg.
  94.         CLEAR gs_txt_zasg.
  95.         IF sy-tabix = gv_liner2.
  96.           APPEND gs_txt_zasg TO gt_txt_zasg.
  97.         ENDIF.
  98.       ENDLOOP.
  99.  
  100.       CALL METHOD gr_text_edit_zasg->set_text_as_r3table
  101.         EXPORTING
  102.           table  = gt_txt_zasg
  103.         EXCEPTIONS
  104.           OTHERS = 1.
  105.  
  106.       MOVE gv_liner2 TO gv_lineend2.
  107.  
  108.       CALL METHOD gr_text_edit_zasg->protect_lines
  109.         EXPORTING
  110.           from_line = 1
  111.           to_line   = gv_lineend2.
  112.  
  113.       CALL METHOD cl_gui_cfw=>flush.
  114.     ENDIF.
  115.  
  116. * wenn Langtext leer ist
  117.     IF gt_sv_txt_zasg[] IS INITIAL.
  118.  
  119. * Datum richtig setzen
  120.       gv_datum(2)   = sy-datum+6(2).
  121.       gv_datum+2(1) = '.'.
  122.       gv_datum+3(2) = sy-datum+4(2).
  123.       gv_datum+5(1) = '.'.
  124.       gv_datum+6(4) = sy-datum(4).
  125. * Uhrzeit richtig setzen
  126.       gv_uzeit(2)   = sy-uzeit(2).
  127.       gv_uzeit+2(1) = ':'.
  128.       gv_uzeit+3(2) = sy-uzeit+2(2).
  129.       gv_uzeit+5(1) = ':'.
  130.       gv_uzeit+6(2) = sy-uzeit+4(2).
  131.  
  132.       SELECT SINGLE pernr FROM pa0002
  133.         INTO (pa0001-pernr)
  134.         WHERE nchmc = sy-uname.
  135.  
  136.       SHIFT pa0001-pernr RIGHT DELETING TRAILING space.
  137.       OVERLAY pa0001-pernr WITH '00000000'.
  138.  
  139.       SELECT SINGLE ename FROM pa0001
  140.         INTO (pa0001-ename)
  141.         WHERE pernr = pa0001-pernr.
  142.  
  143.       CONCATENATE '(' sy-uname ')' INTO gv_uname.
  144.  
  145.       SELECT SINGLE persnumber addrnumber
  146.       FROM usr21 INTO (usr21-persnumber, usr21-addrnumber)
  147.         WHERE bname = sy-uname.
  148.  
  149.       SELECT SINGLE tel_number tel_extens
  150.         FROM adr2 INTO (adr2-tel_number, adr2-tel_extens)
  151.         WHERE persnumber = usr21-persnumber AND
  152.               addrnumber = usr21-addrnumber.
  153.  
  154.       CONCATENATE '*' gv_datum gv_uzeit pa0001-ename gv_uname 'Tel.' adr2-tel_number adr2-tel_extens '*' INTO gv_kommentar2 SEPARATED BY space.
  155.       MOVE gv_kommentar2 TO gs_sv_txt_zasg-tdline.
  156.       APPEND gs_sv_txt_zasg TO gt_sv_txt_zasg.
  157.       CLEAR gs_sv_txt_zasg.
  158.  
  159.       LOOP AT gt_sv_txt_zasg INTO gs_sv_txt_zasg.
  160.         MOVE gs_sv_txt_zasg-tdline TO gs_txt_zasg-line.
  161.         APPEND gs_txt_zasg TO gt_txt_zasg.
  162.         CLEAR gs_txt_zasg.
  163.         APPEND gs_txt_zasg TO gt_txt_zasg.
  164.       ENDLOOP.
  165.  
  166.       CALL METHOD gr_text_edit_zasg->set_text_as_r3table
  167.         EXPORTING
  168.           table  = gt_txt_zasg
  169.         EXCEPTIONS
  170.           OTHERS = 1.
  171.  
  172.       CALL METHOD gr_text_edit_zasg->protect_lines
  173.         EXPORTING
  174.           from_line = 1
  175.           to_line   = 1.
  176.  
  177.       CALL METHOD gr_text_edit_zasg->go_to_line
  178.         EXPORTING
  179.           line = 2.
  180.  
  181.       CALL METHOD cl_gui_cfw=>flush.
  182.     ENDIF.
  183.   ENDIF.
GeSHi ©


und speichern wie folgt:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. IF gv_sgr = 'X'.
  2. * Text Sonstige Gründe sichern
  3. *-------------
  4.  
  5.       DATA: lt_tline2     LIKE TABLE OF tline WITH HEADER LINE,
  6.             lv_thead2     LIKE thead.
  7.  
  8.       REFRESH gt_txt_zasg.
  9.       gv_mod = 1.
  10.  
  11. * Text Sonstige Gründe aus dem Editor ins Programm einlesen
  12. *******************************************
  13.       CALL METHOD gr_text_edit_zasg->get_text_as_r3table
  14.         EXPORTING
  15.           only_when_modified     = gv_mod
  16.         IMPORTING
  17.           table                  = gt_txt_zasg
  18.         EXCEPTIONS
  19.           error_dp               = 1
  20.           error_cntl_call_method = 2
  21.           error_dp_create        = 3
  22.           potential_data_loss    = 4.
  23.  
  24.       CALL METHOD cl_gui_cfw=>flush.
  25.  
  26.       CLEAR: lv_thead2.
  27.  
  28. * Workareas für Textbausteine initialisieren
  29. ********************************************
  30.       DATA: lv_name2 LIKE thead-tdname.
  31.  
  32.       MOVE gs_viqmel_dyn-qmnum TO lv_name2.
  33.  
  34.       CALL FUNCTION 'INIT_TEXT'
  35.         EXPORTING
  36.           id       = 'ZASG'
  37.           language = sy-langu
  38.           name     = lv_name2
  39.           object   = 'ZQM_MELD'
  40.         IMPORTING
  41.           header   = lv_thead2
  42.         TABLES
  43.           lines    = lt_tline2
  44.         EXCEPTIONS
  45.           id       = 1
  46.           language = 2
  47.           name     = 3
  48.           object   = 4
  49.           OTHERS   = 5.
  50.  
  51.       REFRESH gt_sv_txt_zasg.
  52.       LOOP AT gt_txt_zasg INTO gs_txt_zasg.
  53.         gs_sv_txt_zasg-tdformat = '='.
  54.         MOVE gs_txt_zasg-line TO gs_sv_txt_zasg-tdline.
  55.         APPEND gs_sv_txt_zasg TO gt_sv_txt_zasg.
  56.       ENDLOOP.
  57.  
  58.  
  59. * Text Sonstige Gründe speichern
  60. ****************
  61.       CALL FUNCTION 'SAVE_TEXT'
  62.         EXPORTING
  63.           header          = lv_thead2
  64.           savemode_direct = 'X'
  65.         IMPORTING
  66.           newheader       = lv_thead2
  67.         TABLES
  68.           lines           = gt_sv_txt_zasg
  69.         EXCEPTIONS
  70.           id              = 1
  71.           language        = 2
  72.           name            = 3
  73.           object          = 4
  74.           OTHERS          = 5.
  75.  
  76.     ENDIF.
  77.   ENDIF.
GeSHi ©


und das gleiche für den anderen langtext
Beate4743
...
...
 
Posts: 214
Joined: Mon Oct 26, 2009 8:18 am

Re: Langtext

Postby Jonny2227 » Fri Sep 02, 2011 1:01 pm

Sali,

hast du es im Debugger schon mal verfolgt - ich vermute - du hast ein Problem mit deinen Container Instanzen - du hast doch 2 Dynpros und auch zwei unterschiedliche Instanzen dazu oder ?!

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: Langtext

Postby Beate4743 » Fri Sep 02, 2011 1:43 pm

ja hab zwei dynpros und auch zwei instanzen. mit dem debugger komm ich irgendwie nicht weiter.. es ist auf jeden fall einfach leer.???
Beate4743
...
...
 
Posts: 214
Joined: Mon Oct 26, 2009 8:18 am

Re: Langtext

Postby Beate4743 » Fri Sep 02, 2011 1:47 pm

langtext 1
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   "Container instanziieren
  2.   CREATE OBJECT gr_container_0101
  3.     EXPORTING
  4.       container_name              = 'CONT_TEXT_0101'
  5.     EXCEPTIONS
  6.       cntl_error                  = 1
  7.       cntl_system_error           = 2
  8.       create_error                = 3
  9.       lifetime_error              = 4
  10.       lifetime_dynpro_dynpro_link = 5
  11.       OTHERS                      = 6.
  12.  
  13.   "TextEditor instanziieren
  14.   CREATE OBJECT gr_text_edit_zaeb
  15.     EXPORTING
  16.       parent                     = gr_container_0101
  17.       name                       = 'Änderungsbeschreibung'
  18.       wordwrap_mode              = cl_gui_textedit=>wordwrap_at_fixed_position
  19.       wordwrap_position          = line_length
  20.       wordwrap_to_linebreak_mode = cl_gui_textedit=>true
  21.     EXCEPTIONS
  22.       error_cntl_create          = 1
  23.       error_cntl_init            = 2
  24.       error_cntl_link            = 3
  25.       error_dp_create            = 4
  26.       gui_type_not_supported     = 5
  27.       OTHERS                     = 6.
  28.  
GeSHi ©


langtext 2
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   "Container instanziieren
  2.   CREATE OBJECT gr_container_0102
  3.     EXPORTING
  4.       container_name              = 'CONT_TEXT_0102'
  5.     EXCEPTIONS
  6.       cntl_error                  = 1
  7.       cntl_system_error           = 2
  8.       create_error                = 3
  9.       lifetime_error              = 4
  10.       lifetime_dynpro_dynpro_link = 5
  11.       OTHERS                      = 6.
  12.  
  13.   "TextEditor instanziieren
  14.   CREATE OBJECT gr_text_edit_zasg
  15.     EXPORTING
  16.       parent                     = gr_container_0102
  17.       name                       = 'Gründe'
  18.       wordwrap_mode              = cl_gui_textedit=>wordwrap_at_fixed_position
  19.       wordwrap_position          = line_length
  20.       wordwrap_to_linebreak_mode = cl_gui_textedit=>true
  21.     EXCEPTIONS
  22.       error_cntl_create          = 1
  23.       error_cntl_init            = 2
  24.       error_cntl_link            = 3
  25.       error_dp_create            = 4
  26.       gui_type_not_supported     = 5
  27.       OTHERS                     = 6.
GeSHi ©
Beate4743
...
...
 
Posts: 214
Joined: Mon Oct 26, 2009 8:18 am

Re: Langtext

Postby Jonny2227 » Fri Sep 02, 2011 2:05 pm

Sali,

also wenn ich jetzt richtig blicke - du hast keine 2 Dynpros - sondern auf einem Dynpro 2 Containerbereiche in denen du einen Texteditorcontrol einbindest - richtig ?
Nun aber für beide Customer Control Bereiche benutzt du ein und dieselbe Textedit Instanz - da liegt der Fehler - der Auf und Abbau der Zuordnung der Textedit Instanz zu deinen Customer Control Instanzen ist nicht korrekt . Genauer gehts erst mal nicht - da müsste ich das ganze Coding haben - aber mach einfach folgendes - für Container 1 -> Textedit 1 und für Container 2 -> Textedit 2 und selbiges beim Sichern unterscheiden .

Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: Langtext

Postby Beate4743 » Fri Sep 02, 2011 2:32 pm

nein also ich habe wirklich zwei verschiedene dynpros hab das coding nur rauskopiert.. und ich hab auch zwei verschiedene texteditoren und beim speichern unterscheide ich diese auch..deswegen kann ich mir das komische phänomen ja eifnach nicht erklären
Beate4743
...
...
 
Posts: 214
Joined: Mon Oct 26, 2009 8:18 am

Re: Langtext

Postby Jonny2227 » Fri Sep 02, 2011 2:51 pm

Sali,

also ich vermute jetzt einfach mal - es ist deine interne Tabelle mit den Textzeilen - die hat eine Headerzeile -(solltest du ändern nicht mehr konform) und da liegt sicher die Ursache !
Gib mal bei deinem

... das mit ...

check lines( gt_sv_txt_zasg ) > 0
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
header = lv_thead2
savemode_direct = 'X'
IMPORTING
newheader = lv_thead2
TABLES
lines = gt_sv_txt_zasg[]
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.

... und die Klammer mit


Gruss Jens
Jonny2227
....
....
 
Posts: 605
Joined: Wed Mar 01, 2006 3:16 pm

Re: Langtext

Postby Beate4743 » Mon Sep 12, 2011 8:47 am

Hallo,

das Problem mit dem kuriosen Löschen ist verschwunden.. Jetzt ist es nur noch so, dass er manchmal den Text einfach nicht speichert. Meistens macht er es, aber das muss immer zuverlässig funktionieren.

gruß thelocgirl
Beate4743
...
...
 
Posts: 214
Joined: Mon Oct 26, 2009 8:18 am


Return to Dialogprogrammierung

Who is online

Users browsing this forum: No registered users and 1 guest