创建带有可编辑和着色单元格的动态alv.docx
- 文档编号:4820318
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:15
- 大小:67.60KB
创建带有可编辑和着色单元格的动态alv.docx
《创建带有可编辑和着色单元格的动态alv.docx》由会员分享,可在线阅读,更多相关《创建带有可编辑和着色单元格的动态alv.docx(15页珍藏版)》请在冰点文库上搜索。
创建带有可编辑和着色单元格的动态alv
程序代码:
1.TYPE-POOLS:
ABAP.
2.FIELD-SYMBOLS:
3.
4.DATA:
DYN_TABLE TYPEREFTODATA,
5. DYN_LINE TYPEREFTODATA,
6. WA_FIELDCAT TYPELVC_S_FCAT,
7. IT_FIELDCAT TYPELVC_T_FCAT,
8. IT_FIELDCAT_1TYPELVC_T_FCAT,
9. OK_CODE TYPESY-UCOMM.
10.TYPES:
BEGINOFTY_1,
11. TIME TYPET,
12. REMARKSTYPECHAR50,
13. ENDOFTY_1.
14.DATA:
LV_FLD_1TYPETY_1.
15.
16.START-OF-SELECTION.
17.*Createdynamictablestricture..
18. PERFORMGET_TABLE_STRUCTURE.
19.*CreatedynamicinternALE table..
20. PERFORMCREATE_ITAB_DYNAMICALLY.
21.*fillingthedataintodynamicinternaltable..
22. PERFORMGET_DATA.
23.END-OF-SELECTION.
24.*displaydynamicinteraldata.
25. PERFORMDISPLAY_alv_REPORT.
26. CALLSCREEN2000.
27.*&---------------------------------------------------------------------*
28.*& Form get_table_structure
29.*&---------------------------------------------------------------------*
30.* GetstructureofanSAPtable
31.*----------------------------------------------------------------------*
32.FORMGET_TABLE_STRUCTURE.
33. DATA:
REF_TABLE_DESCRTYPEREFTOCL_ABAP_STRUCTDESCR,
34. IT_TABDESCRTYPEABAP_COMPDESCR_TAB,
35. WA_TABDESCRTYPEABAP_COMPDESCR,
36. LV_NO_DAYS TYPEP,
37. LV_DATE TYPESY-DATUM,
38. LV_DATUM TYPESY-DATUM,
39. LV_DAY TYPETEXT40,
40. LV_WEEK_DAYTYPETEXT10,
41. LIN TYPESY-TFILL,
42. C_REM TYPESTRINGVALUE'Remarks'.
43.*fillthedataintofieldcatlogofstaticfield
44. PERFORMBUILD_FIELDCATALOGUSINGIT_FIELDCAT.
45.*Returnstructureofthetable.
46. REF_TABLE_DESCR?
=CL_ABAP_TYPEDESCR=>DESCRIBE_BY_DATA(LV_FLD_1).
47. IT_TABDESCR[]=REF_TABLE_DESCR->COMPONENTS[].
48.
49.*Getnoofdaysinamonth..
50. CALLFUNCTION'HR_E_NUM_OF_DAYS_OF_MONTH'
51. EXPORTING
52. P_FECHA =SY-DATUM
53. IMPORTING
54. NUMBER_OF_DAYS=LV_NO_DAYS.
55.
56.*getnooflines..
57. DESCRIBETABLEIT_FIELDCATLINESLIN.
58.
59. LV_DATUM =SY-DATUM.
60. LV_DATUM+6
(2) =1.
61. WA_FIELDCAT-COL_POS=LIN.
62.*filldynamicfieldintofieldscate..
63. DOLV_NO_DAYSTIMES.
64. LV_DATE=LV_DATUM +SY-INDEX-1.
65. CALLFUNCTION'DATE_TO_DAY'
66. EXPORTING
67. DATE =LV_DATE
68. IMPORTING
69. WEEKDAY=LV_WEEK_DAY.
70.
71. CONCATENATELV_DATE+6
(2)','LV_WEEK_DAYINTOLV_DAY.
72.
73. LOOPATIT_TABDESCRINTOWA_TABDESCR.
74. WA_FIELDCAT-COL_POS =WA_FIELDCAT-COL_POS+1 .
75. IFSY-TABIX=1.
76. WA_FIELDCAT-FIELDNAME=LV_DATE.
77. WA_FIELDCAT-COLTEXT =LV_DAY.
78. ELSE.
79. CONCATENATELV_DATE '_R' INTOWA_FIELDCAT-FIELDNAME.
80. WA_FIELDCAT-COLTEXT =C_REM."'Remarks'.
81. ENDIF.
82. WA_FIELDCAT-INTTYPE =WA_TABDESCR-TYPE_KIND.
83. WA_FIELDCAT-INTLEN =WA_TABDESCR-LENGTH/2.
84. APPEND WA_FIELDCATTO IT_FIELDCAT.
85. ENDLOOP.
86. ENDDO.
87.ENDFORM. "get_table_structure
88.
89.*&---------------------------------------------------------------------*
90.*& Form create_itab_dynamically
91.*&---------------------------------------------------------------------*
92.* Createinternaltabledynamically
93.*----------------------------------------------------------------------*
94.FORMCREATE_ITAB_DYNAMICALLY.
95.*CreatedynamicinternaltableandassigntoField-Symbol
96. CLEARWA_FIELDCAT.
97.*movefieldsfromIT_FIELDCATintoIT_FIELDCAT_1.
98. IT_FIELDCAT_1=IT_FIELDCAT.
99.*UsereftableCALENDAR_TYPEandreffield'COLTAB'
100. WA_FIELDCAT-FIELDNAME='CELLCOLOR'.
101. WA_FIELDCAT-REF_TABLE='CALENDAR_TYPE'.
102. WA_FIELDCAT-REF_FIELD='COLTAB'.
103. APPENDWA_FIELDCATTOIT_FIELDCAT.
104. CLEARWA_FIELDCAT.
105.*createatabletype'ZCELLSTYL'withfield'CELLSTYLE'oftype LVC_T_STYL
106. WA_FIELDCAT-FIELDNAME='CELLSTYLE'.
107. WA_FIELDCAT-REF_TABLE='ZCELLSTYL'.
108. WA_FIELDCAT-REF_FIELD='CELLSTYLE'.
109. APPENDWA_FIELDCATTOIT_FIELDCAT.
110.*CreateadynamictablewithIT_FIELDCAT.
111.*andUseIT_FIELDCAT_1todisplayALV.
112. CALLMETHODCL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
113. EXPORTING
114. IT_FIELDCATALOG=IT_FIELDCAT
115. IMPORTING
116. EP_TABLE =DYN_TABLE.
117. ASSIGNDYN_TABLE->*TO
118.*CreatedynamicworkareaandassigntoFieldSymbol
119. CREATEDATADYN_LINELIKELINEOF
120. ASSIGNDYN_LINE->*TO
121.ENDFORM. "create_itab_dynamically
122.*&---------------------------------------------------------------------*
123.*& Form get_data
124.*&---------------------------------------------------------------------*
125.* Populatedynamicitab
126.*----------------------------------------------------------------------*
127.FORMGET_DATA.
128. FIELD-SYMBOLS:
129.
130.
131.
132.
133. DATA:
IT_CELLCOLORTYPELVC_T_SCOL,
134. IT_CELLSTYLETYPELVC_T_STYL,
135. L_DAY_P TYPEP,
136. LV_MOD_DATE TYPEDATUM,
137. C_HOL TYPECHAR10VALUE'Holiday'.
138. ASSIGNCOMPONENT'PERNR'OFSTRUCTURE
139. LOOP ATIT_FIELDCATASSIGNING
140.*addecolortodynamcifields..
141. ASSIGNCOMPONENT'CELLCOLOR'OFSTRUCTURE
142. IF
143. PERFORM MODIFY_CELL_COLORUSING
144. CHANGINGIT_CELLCOLOR.
145.
146. ELSE.
147. IF
(2)='_R'.
148. LV_MOD_DATE=
149. L_DAY_P=LV_MOD_DATE MOD7.
150. IFL_DAY_P>1.
151. L_DAY_P=L_DAY_P-1.
152. ELSE.
153. L_DAY_P=L_DAY_P+6.
154. ENDIF.
155. IFL_DAY_P=6ORL_DAY_P=7.
156. PERFORM MODIFY_CELL_COLORUSING
157. CHANGINGIT_CELLCOLOR.
158.
159. ASSIGNCOMPONENT
160.
161. ENDIF.
162. ENDIF.
163. ENDIF.
164.*Dynamiceditable
165. IF
166. ASSIGNCOMPONENT'CELLSTYLE'OFSTRUCTURE
167. PERFORMEDITABLE_CELLUSING
168. CHANGINGIT_CELLSTYLE.
169.
170. ENDIF.
171. ENDLOOP.
172. APPEND
173.ENDFORM. "get_data
174.
175.*&---------------------------------------------------------------------*
176.*& Form modify_cell_color
177.*&---------------------------------------------------------------------*
178.* -->P_FIELDNAME text
179.* -->PT_CELLCOLOR text
180.*----------------------------------------------------------------------*
181.FORMMODIFY_CELL_COLOR USINGP_FIELDNAME TYPELVC_FNAME
182. CHANGINGPT_CELLCOLOR TYPETABLE.
183. DATAL_CELLCOLORTYPELVC_S_SCOL.
184. DATA:
LV_DATETYPEDATUM.
185. DATA:
DAY_PTYPEP.
186. CLEARL_CELLCOLOR.
187. IFP_FIELDNAME+8
(2)='_R'.
188. LV_DATE= P_FIELDNAME+8
(2).
189. ELSE.
190. LV_DATE= P_FIELDNAME.
191. ENDIF.
192. DAY_P=LV_DATE MOD7.
193. IFDAY_P>1.
194. DAY_P=DAY_P-1.
195. ELSE.
196. DAY_P=DAY_P+6.
197. ENDIF.
198. IFDAY_P=6ORDAY_P=7.
199. IFP_FIELDNAME+8
(2)='_R'.
200. L_CELLCOLOR-COLOR-COL=7. "Red.
201. L_CELLCOLOR-COLOR-INT=0.
202. L_CELLCOLOR-COLOR-INV=0.
203. ELSE.
204. L_CELLCOLOR-COLOR-COL=7. "Red.
205. L_CELLCOLOR-COLOR-INT=1.
206. L_CELLCOLOR-COLOR-INV=1.
207. ENDIF.
208. L_CELLCOLOR-FNAME=P_FIELDNAME.
209. APPENDL_CELLCOLORTOPT_CELLCOLOR.
210. ELSE.
211. CLEARL_CELLCOLOR.
212. ENDIF.
213. IFP_FIELDNAME+0(8)=SY-DATUM.
214. L_CELLCOLOR-FNAME=P_FIELDNAME.
215. L_CELLCOLOR-COLOR-COL=3. "Red.
216. L_CELLCOLOR-COLOR-INT=1.
217. L_CELLCOLOR-COLOR-INV=1.
218. APPENDL_CELLCOLORTOPT_CELLCOLOR.
219. CONCATENATEP_FIELDNAME'_R'INTO L_CELLCOLOR-FNAME.
220. L_CELLCOLOR-COLOR-COL=3. "Red.
221. L_CELLCOLOR-COLOR-INT=1.
222. L_CELLCOLOR-COLOR-INV=1.
223. APPENDL_CELLCOLORTOPT_CELLCOLOR.
224. ENDIF.
225.ENDFORM. "MODIFY_CELL_COLOR
226.
227.*&---------------------------------------------------------------------*
228.*& Form BUILD_FIELDCATALOG
229.*&---------------------------------------------------------------------*
230.* BuildFieldcatalogforALVReport,usingSAPtablestructure
231.*----------------------------------------------------------------------*
232.FORMBUILD_FIELDCATALOGUSINGP_IT_FIELDCAT TYPELVC_T_FCAT."SLIS_T_FIELDCAT_ALV.
233.**ALVFunctionmoduletobuildfieldcatalogfromSAPtablestructure
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 创建 带有 编辑 着色 单元格 动态 alv