-
Notifications
You must be signed in to change notification settings - Fork 0
/
ejemplo vero
199 lines (155 loc) · 6.8 KB
/
ejemplo vero
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
*&---------------------------------------------------------------------*
*& Report Z_EJEMPLO_VERO_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT z_ejemplo_vero_2.
*&---------------------------------------------------------------------*
*& TABLES
*&---------------------------------------------------------------------*
TABLES: spfli.
*&---------------------------------------------------------------------*
*& Declaración de types
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_alumno,
nombre TYPE char30,
apellido TYPE c LENGTH 30,
user TYPE sy-uname,
fechanac TYPE d,
direccion TYPE char50,
END OF ty_alumno.
TYPES ity_alumno TYPE STANDARD TABLE OF ty_alumno.
*&---------------------------------------------------------------------*
*& Declaración de datos
*&---------------------------------------------------------------------*
DATA: it_alumno TYPE ity_alumno,
wa_alumno TYPE ty_alumno.
*&---------------------------------------------------------------------*
*& Declaración de Pantalla
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_nom TYPE char30 OBLIGATORY DEFAULT 'VERO', "nombre
p_ape TYPE char30, " apellido
p_user TYPE sy-uname.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-004.
PARAMETER p_fnac TYPE sy-datum OBLIGATORY. "Fecha de vuelvo
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-003.
PARAMETER p_dom TYPE char50 . "Fecha de vuelvo
SELECTION-SCREEN END OF BLOCK b4.
SELECTION-SCREEN BEGIN OF BLOCK b5 WITH FRAME TITLE text-005.
PARAMETERS: rb_1 RADIOBUTTON GROUP gr1,
rb_2 RADIOBUTTON GROUP gr1.
SELECTION-SCREEN END OF BLOCK b5.
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
p_user = sy-uname.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
* obtener datos (los obtuve de pantalla.
* procesar datos
PERFORM f_procesar_datos.
*&---------------------------------------------------------------------*
*& END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
* mostrar o devolver info.
* si le radiobutton 1 esta marcado muestro mi wa sino muestro mi tabla.
IF rb_1 EQ 'X'.
PERFORM f_mostrar_wa.
ELSE.
PERFORM f_mostrar_tabla.
ENDIF.
*&---------------------------------------------------------------------*
*& FORMS
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form F_PROCESAR_DATOS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_procesar_datos .
DATA lwa_alumno TYPE ty_alumno.
*Asigno los valores obtenidos por pantalla a mi wa.
PERFORM f_llenar_wa.
*lleno mi wa local.
MOVE wa_alumno TO lwa_alumno.
*lleno mi tabla
PERFORM f_llenar_tabla USING lwa_alumno.
ENDFORM. " F_PROCESAR_DATOS
*&---------------------------------------------------------------------*
*& Form F_MOSTRAR_WA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_mostrar_wa .
WRITE / wa_alumno.
WRITE: / 'Nombre alumno:', wa_alumno-nombre.
WRITE: / 'Apellido Alumno:', wa_alumno-apellido.
ENDFORM. " F_MOSTRAR_WA
*&---------------------------------------------------------------------*
*& Form F_MOSTRAR_TABLA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_mostrar_tabla .
ENDFORM. " F_MOSTRAR_TABLA
*&---------------------------------------------------------------------*
*& Form F_LLENAR_WA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_llenar_wa .
*Asignación los valores de una variable a otra
wa_alumno-nombre = p_nom.
wa_alumno-user = p_user.
wa_alumno-fechanac = p_fnac.
*Muevo un dato de una variable a otra
MOVE: p_ape TO wa_alumno-apellido,
p_dom TO wa_alumno-direccion.
ENDFORM. " F_LLENAR_WA
*&---------------------------------------------------------------------*
*& Form F_LLENAR_TABLA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LWA_ALUMNO text
*----------------------------------------------------------------------*
FORM f_llenar_tabla USING p_lwa_alumno TYPE ty_alumno.
* inserto una posicion en mi tabla interna.
APPEND p_lwa_alumno TO it_alumno.
* inserto otra linea en mi tabla interna con la misma información.
APPEND p_lwa_alumno TO it_alumno.
* inserto otra linea en mi tabla interna con la misma información pero el campo user estara en blanco.
CLEAR p_lwa_alumno-user.
APPEND p_lwa_alumno TO it_alumno.
* inserto otra linea en mi tabla interna donde ahora user es el usuario del sistema y la fecha de nacimiento tambien es la fecha del sistema, a su vez, borramos la direccion y apellido.
p_lwa_alumno-user = sy-uname.
p_lwa_alumno-fechanac = sy-datum.
CLEAR: p_lwa_alumno-direccion, p_lwa_alumno-apellido.
APPEND p_lwa_alumno TO it_alumno.
ENDFORM. " F_LLENAR_TABLA