我有一组员工(对象),每个员工都有自己的属性(属性),如ID,年龄等。 我已经定义了一个类模块(名为clsemployee),如下所示:
公共ID为整数 公共年龄为整数 。
我在下面的模块中将ID,年龄等属性添加到集合中:
PARAMETERS : S_MONTH LIKE ISELLIST-MONTH OBLIGATORY.
SELECT-OPTIONS : S_DATE FOR SY-DATUM.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_MONTH.
PERFORM GET_DATES.
FORM GET_DATES.
DATA: MONTH LIKE ISELLIST-MONTH,
FIRST_DAY LIKE SY-DATUM,
LAST_DAY LIKE SY-DATUM.
MONTH = SY-DATUM+0(6). "default
CALL FUNCTION 'POPUP_TO_SELECT_MONTH'
EXPORTING
ACTUAL_MONTH = MONTH
IMPORTING
SELECTED_MONTH = MONTH.
IF SY-SUBRC <> 0.
"put some message
ENDIF.
CONCATENATE MONTH '01' INTO FIRST_DAY.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = FIRST_DAY
IMPORTING
LAST_DAY_OF_MONTH = LAST_DAY.
IF SY-SUBRC <> 0.
"put some message
ENDIF.
S_DATE-LOW = FIRST_DAY.
S_DATE-HIGH = LAST_DAY.
S_DATE-SIGN = 'I'.
S_DATE-OPTION = 'BT'.
APPEND S_DATE.
S_MONTH = MONTH.
ENDFORM.
我不知道如何在我的其他模块(子)中调用这个集合。我应该通过价值来电话还是通过参考来电话?我不想在我拥有的每一个子中重复定义这个员工。
答案 0 :(得分:1)
扩展cyboashu说的话:
Global employee as Collection
Public Sub employee_collection()
Set employee = New Collection
....'rest of code here
End Sub
Public Sub use_collection()
Debug.print employee.count
End Sub
请注意,全局声明需要在一个模块中,也如cyboashu所述。
如果要与员工一起填充集合,请运行employee_collection
代码1次。然后,您可以在已经填充的任何其他过程中简单地使用该集合。
请注意,可以重置全局变量。有关此问题的详细解释,请参阅here。