ABAP ALV 示例:ALV单元格颜色,ALV行颜色,ALV双击事件,数据合计,ALV表头,ALV GUI STATUS

  1 *& Program Name: ZMFIX_ASSET
  2 *&
  3 *& Description: 资产信息一览
  4 *& Date/Author: 
  5
  6 *& Table Update:
  7 *& Special Logic:
  8 *& Include:
  9 *----------------------------------------------------------------------*
 10 * MODIFICATION LOG : 程序修改更新记录
 11 *----------------------------------------------------------------------*
 12 * ChangeDate Programmer    Request      Description
 13 * ========== ============= ============ ================================
 14 *                                                          NEW PROGRAM
 15 *----------------------------------------------------------------------*
 16
 17 REPORT  ZMFIX_ASSET NO STANDARD PAGE HEADING.
 18
 19 *----------------------------------------------------------------------*
 20 * TABLES                                                               *
 21 *----------------------------------------------------------------------*
 22
 23 TABLES :
 24         ANLA,                              "资产主记录段
 25         ANLH,                              "主资产号
 26         ANKT,                              "资产类别描述
 27         T087S,                             "评估组8测试表位置
 28         ANLZ,                              "时间相关资产分配
 29         ANLC,                              "资产值字段
 30         ANLB,                              "折旧期限
 31         ANLP,                              "资产期间价值
 32         FIAA_DPOST,                        "已记帐价值的显示结构
 33         BSID,                              "会计核算:客户的第二次索引
 34         ANEP,                              "资产行项目
 35         CSKS.                              "成本中心主数据
 36
 37 *----------------------------------------------------------------------*
 38 * DATA                                                                 *
 39 *----------------------------------------------------------------------*
 40
 41 TYPES : BEGIN OF TY_ASSET ,
 42            GJAHR LIKE ANLP-GJAHR,"会计年度
 43            BUKRS LIKE ANLA-BUKRS,"公司代码
 44            ANLN1 LIKE ANLA-ANLN1,"主资产号
 45            TXT50 LIKE ANLA-TXT50,"资产描述
 46            TXA50 LIKE ANLA-TXA50,"附加资产描述
 47            ANLN2 LIKE ANLA-ANLN2,"次资产号
 48            ANLHTXT LIKE ANLH-ANLHTXT,"主资产号描述
 49            KFZKZ LIKE ANLZ-KFZKZ,"执照牌号
 50            MCOAL LIKE M_AANLA-MCOA1,"次资产号描述
 51            ANLKL LIKE ANLA-ANLKL,"资产种类
 52            TXK20 LIKE ANKT-TXK20,"资产种类描述
 53            GDLGRP LIKE ANLA-GDLGRP,"资产小类
 54            GDLGRP_TXT LIKE T087S-GDLGRP_TXT,"资产小类描述
 55            NAFAG LIKE ANLC-NAFAG,"记帐在当前年的正常折旧
 56            KNAFA LIKE ANLC-KNAFA,"累计正常折旧
 57            KOSTL LIKE ANLZ-KOSTL,"成本中心
 58            SERNR LIKE ANLA-SERNR,"实际卡片编号
 59            AIBN1 LIKE ANLA-AIBN1,"来源资产编号
 60            ORD41 LIKE ANLA-ORD41,"资产小类
 61            LIFNR LIKE ANLA-LIFNR,"供应商科目编号(其他关键字)
 62            LIEFE LIKE ANLA-LIEFE,"资产提供者名
 63            ORDTX1 LIKE T087T-ORDTX,"资产小类名称
 64            ORD42 LIKE ANLA-ORD42, "评审小组2
 65            ORDTX2 LIKE T087T-ORDTX,"评审小组:短描述
 66            KTEXT LIKE CSKT-KTEXT,"成本中心描述
 67            AFASL LIKE ANLB-AFASL,"折旧码
 68            YZ LIKE ANLC-KANSW,"累积购置和生产费用
 69            KANSW LIKE ANLC-KANSW,"累积购置和生产费用
 70            KAUFW LIKE ANLC-KAUFW,"重置价值的累计重估
 71            ANBTR LIKE ANEP-ANBTR,"记帐金额
 72            AKTIV LIKE ANLA-AKTIV,"资产资本化日期
 73            DEAKT LIKE ANLA-DEAKT,"不激活的日期
 74            NDJAR LIKE ANLB-NDJAR,"计划年使用期
 75            NDPER LIKE ANLB-NDPER,"计划使用期间
 76            YJCZ LIKE ANLC-KANSW,"累积购置和生产费用
 77            NAFAZ TYPE ANLP-NAFAZ,"记帐的正常折旧
 78            AAFAZ LIKE ANLP-AAFAZ,"待过帐的计划外折旧
 79            LJPTZJ LIKE ANLP-NAFAZ,"记帐的正常折旧
 80            NAFAV LIKE ANLC-NAFAV,"比例累积正常折旧
 81            NAFAL LIKE ANLC-NAFAL,"此年的比例正常折旧
 82            PERAF LIKE ANLP-PERAF,"折旧计算期
 83            AAFAP LIKE ANLP-AAFAP,"年内已预定的未计划折旧
 84            JZ LIKE ANLP-AAFAP,"净值 = 原值-累计普通折旧-累计计划外折旧
 85            AFBNR LIKE ANLP-AFBNR,"此期间折旧记帐运行的顺序号
 86            GSBER LIKE ANLZ-GSBER,"业务范围
 87            GTEXT LIKE TGSBT-GTEXT,"业务部门描述
 88            PRCTR LIKE CSKS-PRCTR,"利润中心
 89            PKTEXT LIKE CEPCT-KTEXT,"
 90            CSHZJ LIKE ANLP-AAFAP,"年内已预定的未计划折旧
 91            AUFWB LIKE ANLC-AUFWB,"重置价值的重估记帐
 92            AUFNG LIKE ANLC-AUFNG,"有关累积正常折旧的记帐评估
 93            AFABG LIKE ANLB-AFABG,"折旧计算开始日期
 94            XFABG LIKE KOMP-ANZ_MONATE,"月数
 95            XFABG1 TYPE I,"
 96            COLOR TYPE CHAR4,   "行颜色
 97            CELLCOLOR TYPE LVC_T_SCOL, "单元格颜色
 98         END OF TY_ASSET.
 99
100 DATA : IT_ASSET  TYPE STANDARD TABLE OF TY_ASSET,
101        IW_ASSET  TYPE TY_ASSET,
102
103        IT_ASSET1 TYPE STANDARD TABLE OF TY_ASSET,
104        IW_ASSET1 TYPE TY_ASSET.
105 DATA : IW_CELLCOLOR TYPE LVC_S_SCOL.
106 DATA : P_AFBNR LIKE ANLP-AFBNR.
107
108 *----------------------------------------------------------------------*
109 * TYPE-POOLS                                                           *
110 *----------------------------------------------------------------------*
111 TYPE-POOLS : SLIS.
112 DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
113
114        IT_EVENT TYPE SLIS_T_EVENT, "不能有表头,否则会RUNTIME ERROR
115        IW_LAYOUT TYPE SLIS_LAYOUT_ALV,
116        IT_LISTHEADER TYPE SLIS_T_LISTHEADER.
117
118 DATA : P_NUM TYPE VBRK-NETWR,
119        XL_SUM TYPE I,
120        FLAG TYPE CHAR01.
121
122
123 RANGES : S_HKONT FOR BSEG-HKONT.
124
125 *----------------------------------------------------------------------*
126 * SCREEN                                                               *
127 *----------------------------------------------------------------------*
128
129 SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
130   PARAMETERS: P_BUKRS LIKE ANLA-BUKRS OBLIGATORY DEFAULT ‘1000‘,
131               P_GJAHR LIKE ANLC-GJAHR OBLIGATORY,"DEFAULT SY-DATUM+0(4),
132               P_PERAF LIKE ANLP-PERAF OBLIGATORY."DEFAULT SY-DATUM+4(2).
133
134   SELECT-OPTIONS : S_GSBER FOR ANLZ-GSBER,
135                    S_PRCTR FOR CSKS-PRCTR OBLIGATORY  ,
136                    S_ANLN1 FOR ANLA-ANLN1,
137                    S_ANLKL FOR ANLA-ANLKL,
138                    S_KOSTL FOR ANLZ-KOSTL,
139                    S_ORD41 FOR ANLA-ORD41.
140 SELECTION-SCREEN SKIP 1.
141
142 SELECTION-SCREEN END OF BLOCK B1.
143
144 *----------------------------------------------------------------------*
145 *                                                                      *
146 *----------------------------------------------------------------------*
147
148
149 INITIALIZATION.
150
151
152 START-OF-SELECTION.
153
154   PERFORM FRM_GET_EVENTS.
155   PERFORM FRM_GET_DATA.
156   PERFORM FRM_COMMENT_BUILD.
157   PERFORM FRM_FDCAT.
158   PERFORM FRM_LAYOUT.
159   PERFORM FRM_ALV_DISPLAY.
160
161 END-OF-SELECTION.
162
163
164
165 *&---------------------------------------------------------------------*
166 *&      Form  FRM_GET_EVENTS
167 *&---------------------------------------------------------------------*
168 *       text
169 *----------------------------------------------------------------------*
170 *  -->  p1        text
171 *  <--  p2        text
172 *----------------------------------------------------------------------*
173 FORM FRM_GET_EVENTS .
174
175 * EVENTS
176 *SLIS_EV_ITEM_DATA_EXPAND  TYPE SLIS_FORMNAME VALUE ‘ITEM_DATA_EXPAND‘,
177 *SLIS_EV_REPREP_SEL_MODIFY TYPE SLIS_FORMNAME VALUE ‘REPREP_SEL_MODIFY‘,
178 *SLIS_EV_CALLER_EXIT_AT_START TYPE SLIS_FORMNAME VALUE ‘CALLER_EXIT‘,
179 *SLIS_EV_USER_COMMAND       TYPE SLIS_FORMNAME VALUE ‘USER_COMMAND‘,
180 *SLIS_EV_TOP_OF_PAGE        TYPE SLIS_FORMNAME VALUE ‘TOP_OF_PAGE‘,
181 *SLIS_EV_DATA_CHANGED       TYPE SLIS_FORMNAME VALUE ‘DATA_CHANGED‘,
182 *SLIS_EV_TOP_OF_COVERPAGE  TYPE SLIS_FORMNAME VALUE ‘TOP_OF_COVERPAGE‘,
183 *SLIS_EV_END_OF_COVERPAGE  TYPE SLIS_FORMNAME VALUE ‘END_OF_COVERPAGE‘,
184 *SLIS_EV_FOREIGN_TOP_OF_PAGE TYPE SLIS_FORMNAME
185 *                                       VALUE ‘FOREIGN_TOP_OF_PAGE‘,
186 *SLIS_EV_FOREIGN_END_OF_PAGE TYPE SLIS_FORMNAME
187 *                                       VALUE ‘FOREIGN_END_OF_PAGE‘,
188 *SLIS_EV_PF_STATUS_SET      TYPE SLIS_FORMNAME VALUE ‘PF_STATUS_SET‘,
189 *SLIS_EV_LIST_MODIFY        TYPE SLIS_FORMNAME VALUE ‘LIST_MODIFY‘,
190 *SLIS_EV_TOP_OF_LIST        TYPE SLIS_FORMNAME VALUE ‘TOP_OF_LIST‘,
191 *SLIS_EV_END_OF_PAGE        TYPE SLIS_FORMNAME VALUE ‘END_OF_PAGE‘,
192 *SLIS_EV_END_OF_LIST        TYPE SLIS_FORMNAME VALUE ‘END_OF_LIST‘,
193 *SLIS_EV_AFTER_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE ‘AFTER_LINE_OUTPUT‘,
194 *SLIS_EV_BEFORE_LINE_OUTPUT TYPE SLIS_FORMNAME VALUE
195 *                                                 ‘BEFORE_LINE_OUTPUT‘,
196 *SLIS_EV_SUBTOTAL_TEXT      TYPE SLIS_FORMNAME VALUE ‘SUBTOTAL_TEXT‘,
197 *SLIS_EV_GROUPLEVEL_CHANGE  TYPE SLIS_FORMNAME VALUE
198 *                                                  ‘GROUPLEVEL_CHANGE‘,
199 *SLIS_EV_CONTEXT_MENU       TYPE SLIS_FORMNAME VALUE ‘CONTEXT_MENU‘.
200
201   DATA: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE ‘FRM_TOP_OF_PAGE‘.
202
203   DATA L_EVENTS TYPE SLIS_ALV_EVENT.
204
205   CALL FUNCTION ‘REUSE_ALV_EVENTS_GET‘
206     EXPORTING
207       I_LIST_TYPE     = 0
208     IMPORTING
209       ET_EVENTS       = IT_EVENT
210     EXCEPTIONS
211       LIST_TYPE_WRONG = 1
212       OTHERS          = 2.
213   IF SY-SUBRC <> 0.
214     MESSAGE ID SY-MSGID TYPE SY-MSGTY
215         NUMBER SY-MSGNO
216           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
217   ENDIF.
218 * 在事件(字段名:NAME)为"TOP_OF_PAGE"的行中
219 *将FORM名(字段名:FORM)设为"FRM_TOP_OF_PAGE"
220 * 这样,系统就会自动PERFORM FRM_TOP_OF_PAGE.
221   CLEAR L_EVENTS.
222   READ TABLE IT_EVENT
223         WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
224         INTO L_EVENTS.
225
226   IF SY-SUBRC = 0.
227     MOVE FORMNAME_TOP_OF_PAGE TO L_EVENTS-FORM.
228     MODIFY IT_EVENT FROM L_EVENTS INDEX SY-TABIX.
229   ELSE.
230     L_EVENTS-FORM = FORMNAME_TOP_OF_PAGE.
231     L_EVENTS-NAME = FORMNAME_TOP_OF_PAGE.
232     APPEND L_EVENTS TO IT_EVENT.
233   ENDIF.
234
235 ENDFORM.                    " FRM_GET_EVENTS
236
237 *&---------------------------------------------------------------------*
238 *&      Form  FRM_TOP_OF_PAGE
239 *&---------------------------------------------------------------------*
240 *       表头
241 *----------------------------------------------------------------------*
242 *  -->  p1        text
243 *  <--  p2        text
244 *----------------------------------------------------------------------*
245 FORM  FRM_TOP_OF_PAGE.
246   CALL FUNCTION ‘REUSE_ALV_COMMENTARY_WRITE‘
247     EXPORTING
248       IT_LIST_COMMENTARY       = IT_LISTHEADER
249       I_LOGO                   = ‘ENJOYSAP_LOGO‘
250 *     I_END_OF_LIST_GRID       =
251 *     I_ALV_FORM               =
252       .
253 * "TCODE:OAOR,CLASS
254 * NAME:PICTURES,CLASS TYPE :OT,执行,可以看到所有的PICTURE
255
256 ENDFORM.                    "FRM_TOP_OF_PAGE
257
258
259 *&---------------------------------------------------------------------*
260 *&      Form  FRM_COMMENT_BUILD
261 *&---------------------------------------------------------------------*
262 *       text
263 *----------------------------------------------------------------------*
264 *  -->  p1        text
265 *  <--  p2        text
266 *----------------------------------------------------------------------*
267 FORM FRM_COMMENT_BUILD.
268
269   DATA LW_LISTHEADER TYPE SLIS_LISTHEADER.
270
271   CLEAR: IT_LISTHEADER, LW_LISTHEADER.
272
273   LW_LISTHEADER-TYP  = ‘H‘.
274   LW_LISTHEADER-INFO = ‘资产信息一览‘.
275   APPEND LW_LISTHEADER TO IT_LISTHEADER.
276
277   CLEAR LW_LISTHEADER.
278   LW_LISTHEADER-TYP  = ‘S‘.
279   LW_LISTHEADER-KEY  = ‘用户:‘.
280   LW_LISTHEADER-INFO = SY-UNAME.
281   APPEND LW_LISTHEADER TO IT_LISTHEADER.
282
283   CLEAR LW_LISTHEADER.
284   LW_LISTHEADER-TYP  = ‘S‘.
285   LW_LISTHEADER-KEY  = ‘日期:‘.
286   LW_LISTHEADER-INFO = SY-DATUM.
287   APPEND LW_LISTHEADER TO IT_LISTHEADER.
288
289 ENDFORM.                    " FRM_COMMENT_BUILD
290
291 *&---------------------------------------------------------------------*
292 *&      Form  FRM_GET_DATA
293 *&---------------------------------------------------------------------*
294 *         text
295 *----------------------------------------------------------------------*
296 *    -->  p1        text
297 *    <--  p2        text
298 *----------------------------------------------------------------------*
299   FORM FRM_GET_DATA .
300     DATA : WRK_TABIX TYPE SY-TABIX.
301 *  查询固定资产
302     SELECT
303       ANLA~ANLN1
304       ANLA~TXT50
305       ANLA~TXA50
306       ANLH~ANLHTXT
307       ANLA~ANLKL
308       ANKT~TXK20
309       ANLA~ANLN2
310       ANLA~GDLGRP
311       T087S~GDLGRP_TXT
312       ANLZ~KOSTL
313       CSKT~KTEXT
314       ANLA~SERNR
315       ANLA~AIBN1
316       ANLA~ORD41
317       ANLA~LIFNR
318       T087T1~ORDTX AS ORDTX1
319       ANLB~NDPER
320       ANLC~KANSW
321       ANLC~KAUFW
322       ANLA~AKTIV
323       ANLA~DEAKT
324       ANLB~NDJAR
325       ANLB~AFABG
326       ANLB~AFASL
327       ANLC~ANLN1
328       ANLC~KNAFA
329       ANLP~PERAF
330       ANLC~GJAHR
331       ANLA~BUKRS
332       ANLZ~GSBER
333       TGSBT~GTEXT
334       ANLC~NAFAG
335       ANLC~KNAFA
336       ANLC~AUFWB
337       ANLC~AUFNG
338       ANLC~NAFAV
339       ANLC~NAFAL
340       ANLZ~KFZKZ
341       INTO CORRESPONDING FIELDS OF TABLE IT_ASSET
342       FROM ANLA
343      INNER JOIN ANLH
344         ON ANLH~BUKRS = ANLA~BUKRS AND
345            ANLH~ANLN1 = ANLA~ANLN1
346       LEFT JOIN T087S
347         ON T087S~GDLGRP = ANLA~GDLGRP AND
348            T087S~SPRAS = SY-LANGU
349       LEFT JOIN T087T AS T087T1
350         ON T087T1~ORDNR = ‘1‘ AND
351            T087T1~ORD4X = ANLA~ORD41 AND
352            T087T1~SPRAS = SY-LANGU
353       LEFT JOIN T087T AS T087T2
354         ON T087T2~ORDNR = ‘2‘ AND
355            T087T2~ORD4X = ANLA~ORD42 AND
356            T087T2~SPRAS = SY-LANGU
357      INNER JOIN ANLZ
358         ON ANLZ~BUKRS = ANLA~BUKRS AND
359            ANLZ~ANLN1 = ANLA~ANLN1 AND
360            ANLZ~ANLN2 = ANLA~ANLN2 AND
361            ANLZ~BDATU = ‘99991231‘
362      INNER JOIN ANKT
363         ON ANKT~SPRAS = SY-LANGU AND
364            ANKT~ANLKL = ANLA~ANLKL
365      INNER JOIN ANLC
366         ON ANLC~BUKRS = ANLA~BUKRS AND
367            ANLC~ANLN1 = ANLA~ANLN1 AND
368            ANLC~ANLN2 = ANLA~ANLN2 AND
369            ANLC~AFABE = ‘01‘
370      INNER JOIN ANLB
371         ON ANLB~BUKRS = ANLA~BUKRS AND
372            ANLB~ANLN1 = ANLA~ANLN1 AND
373            ANLB~ANLN2 = ANLA~ANLN2 AND
374            ANLB~AFABE = ‘01‘ AND
375            ANLB~BDATU = ‘99991231‘
376       LEFT JOIN ANLP
377         ON ANLP~BUKRS = ANLA~BUKRS AND
378            ANLP~PERAF = P_PERAF AND
379            ANLP~ANLN1 = ANLA~ANLN1 AND
380            ANLP~ANLN2 = ANLA~ANLN2 AND
381            ANLP~AFABER = ‘01‘
382       LEFT JOIN TGSBT
383         ON ANLZ~GSBER = TGSBT~GSBER
384       LEFT JOIN CSKT
385         ON ANLZ~KOSTL = CSKT~KOSTL AND
386            CSKT~SPRAS = ‘EN ‘ AND
387            CSKT~DATBI = ‘99991231‘ AND
388            CSKT~KOKRS = ‘1000‘
389      WHERE ANLA~BUKRS = P_BUKRS
390        AND ANLC~GJAHR = P_GJAHR
391        AND ANLA~ANLN1 IN S_ANLN1
392        AND ANLA~ANLKL IN S_ANLKL
393        AND ANLZ~KOSTL IN S_KOSTL
394        AND ANLA~ORD41 IN S_ORD41
395        AND ANLZ~GSBER IN S_GSBER.
396
397    SORT IT_ASSET BY GJAHR BUKRS ANLN1 ANLKL GDLGRP KOSTL.
398
399    DELETE ADJACENT DUPLICATES FROM IT_ASSET
400    COMPARING GJAHR BUKRS ANLN1 ANLKL GDLGRP KOSTL.
401
402    LOOP AT IT_ASSET INTO IW_ASSET.
403       WRK_TABIX = SY-TABIX.
404
405       "根据成本中心获取利润中心
406       SELECT SINGLE PRCTR
407         INTO IW_ASSET-PRCTR
408         FROM CSKS
409        WHERE KOSTL = IW_ASSET-KOSTL AND
410               KOKRS = ‘1000‘.
411
412        "删除非利润中心查询条件内的固定资产查询结果
413       IF IW_ASSET-PRCTR NOT IN S_PRCTR.
414         DELETE IT_ASSET INDEX WRK_TABIX.
415         CLEAR WRK_TABIX.
416         CONTINUE.
417       ENDIF.
418
419    "从供应商信息视图获取供应商名称
420       SELECT SINGLE MCOD1"匹配码搜索的搜索条件
421         INTO IW_ASSET-LIEFE
422         FROM M_KREDI"生成匹配码ID KRED-I的视图
423        WHERE LIFNR = IW_ASSET-LIFNR AND
424               BUKRS = P_BUKRS AND
425               LAND1 = ‘DE‘.
426
427      "获取利润中心的名称
428       IF IW_ASSET-PRCTR IS NOT INITIAL.
429         SELECT SINGLE KTEXT
430           INTO IW_ASSET-PKTEXT
431           FROM CEPCT"利润中心主数据文本
432          WHERE PRCTR = IW_ASSET-PRCTR
433            AND SPRAS = ‘EN‘"SY-LANGU‘
434            AND KOKRS = ‘1000‘.
435       ENDIF.
436
437      "获取当前期间的累计值
438       DATA : N       TYPE I,
439              NC      TYPE STRING,
440              F_ANBTR LIKE ANEP-ANBTR, "记账金额
441              F_BEGIN LIKE SY-DATUM,
442              F_END   LIKE SY-DATUM.
443
444       N  = P_PERAF.
445       NC = N.
446
447       IF N < 10.
448         CONCATENATE P_GJAHR ‘0‘ NC  ‘01‘ INTO F_BEGIN.
449       ELSE.
450         CONCATENATE P_GJAHR NC ‘01‘ INTO F_BEGIN.
451       ENDIF.
452
453      "该函数获取某月的最后一天
454       CALL FUNCTION ‘RP_LAST_DAY_OF_MONTHS‘
455         EXPORTING
456           DAY_IN            = F_BEGIN
457         IMPORTING
458           LAST_DAY_OF_MONTH = F_END
459         EXCEPTIONS
460           DAY_IN_NO_DATE    = 1
461           OTHERS            = 2.
462       IF SY-SUBRC <> 0.
463 *   MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
464 *           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
465       ENDIF.
466
467      "计算某段期间内的记账金额,可以通过abep-bwasl来指定资产业务类型,提高查询
468       CLEAR : F_ANBTR.
469       SELECT SINGLE SUM( ANBTR )
470         INTO F_ANBTR
471         FROM ANEP"资产行项目
472        WHERE BUKRS = P_BUKRS
473          AND GJAHR = P_GJAHR
474          AND ANLN1 = IW_ASSET-ANLN1
475          AND BZDAT BETWEEN ‘1900101‘ AND F_END
476          AND ANEP~AFABE = ‘01‘.
477
478      "计算资产原值,为购置和生产费用(KANSW)资产重置费用(KAUFW)以及累计记账之和
479       IW_ASSET-YZ = IW_ASSET-KANSW + IW_ASSET-KAUFW + F_ANBTR.
480
481 *  折旧率----具体看公司了
482       "检查是否存在资产折旧记录,若有,则根据折旧码来推算扣除折旧的资产余值
483       SELECT SINGLE *
484         FROM ANLB"折旧期限
485        WHERE ANLN1 = IW_ASSET-ANLN1
486          AND BUKRS = P_BUKRS.
487
488      IF SY-SUBRC = 0.
489         IF ANLB-AFASL = ‘0000‘."折旧码
490           IW_ASSET-YJCZ = IW_ASSET-YZ.
491         ELSEIF ANLB-AFASL = ‘1000‘.
492           IW_ASSET-YJCZ = IW_ASSET-YZ * ‘0.1‘.
493         ELSEIF ANLB-AFASL = ‘2000‘.
494           IW_ASSET-YJCZ = 0.
495         ENDIF.
496       ENDIF.
497
498      "获取当月折旧
499       SELECT SINGLE SUM( NAFAZ )
500         INTO IW_ASSET-NAFAZ
501         FROM ANLP
502        WHERE ANLN1 = IW_ASSET-ANLN1
503          AND BUKRS = IW_ASSET-BUKRS
504          AND GJAHR = IW_ASSET-GJAHR
505          AND PERAF = IW_ASSET-PERAF
506          AND AFABER = ‘01‘.
507
508     "获取当月计划外折旧
509       SELECT SINGLE SUM( AAFAZ )
510         INTO IW_ASSET-AAFAZ
511         FROM ANLP
512        WHERE ANLN1 = IW_ASSET-ANLN1
513          AND BUKRS = IW_ASSET-BUKRS
514          AND GJAHR = IW_ASSET-GJAHR
515          AND PERAF = IW_ASSET-PERAF
516          AND AFABER = ‘01‘.
517
518      DATA : P_NAFAG LIKE ANLP-NAFAG,
519             P_NAFAZ LIKE ANLP-NAFAZ,
520             P_NAFAV LIKE ANLC-NAFAV,
521             P_NAFAL LIKE ANLC-NAFAL.
522      DATA : MIN_PER LIKE ANLP-PERAF,
523             MIN_NO  LIKE ANLP-AFBNR.
524
525      "获取当前年度折旧
526       SELECT SUM( NAFAZ )
527         INTO P_NAFAZ FROM ANLP
528        WHERE ANLN1 = IW_ASSET-ANLN1
529          AND BUKRS = IW_ASSET-BUKRS
530          AND GJAHR = P_GJAHR
531          AND PERAF >= 1
532          AND PERAF <= P_PERAF
533          AND AFABER = ‘01‘.
534
535     "获取历史折旧
536       SELECT SUM( NAFAG )
537         INTO P_NAFAG
538         FROM ANLC
539        WHERE ANLN1 = IW_ASSET-ANLN1
540          AND BUKRS = IW_ASSET-BUKRS
541          AND GJAHR < P_GJAHR
542          AND AFABE = ‘01‘.
543
544      "获取结转的历史折旧
545       SELECT SUM( NAFAV ) SUM( NAFAL ) INTO (P_NAFAV,P_NAFAL)
546         FROM ANLC
547        WHERE ANLN1 = IW_ASSET-ANLN1
548          AND BUKRS = IW_ASSET-BUKRS
549          AND GJAHR <= P_GJAHR
550          AND AFABE = ‘01‘.
551
552      IW_ASSET-CSHZJ = P_NAFAV + P_NAFAL.
553
554      "获取累计正常折旧
555       SELECT SUM( KNAFA )
556         INTO IW_ASSET-KNAFA
557         FROM ANLC
558        WHERE ANLN1 = IW_ASSET-ANLN1
559          AND BUKRS = IW_ASSET-BUKRS
560          AND GJAHR < P_GJAHR
561          AND AFABE = ‘01‘.
562
563      IW_ASSET-LJPTZJ = P_NAFAZ +
564                        P_NAFAG +
565                        IW_ASSET-CSHZJ +
566                        IW_ASSET-KNAFA +
567                        IW_ASSET-AUFNG.
568
569      "获取折旧运行顺序号
570       SELECT SINGLE  MAX( AFBNR )
571         INTO P_AFBNR
572         FROM ANLP
573        WHERE ANLN1 = IW_ASSET-ANLN1
574          AND BUKRS = IW_ASSET-BUKRS
575          AND GJAHR = IW_ASSET-GJAHR
576          AND PERAF = P_PERAF
577          AND AFABER = ‘01‘.
578
579      "通过折旧运行的顺序号获取累计计划外折旧
580       SELECT SINGLE AAFAP
581         INTO IW_ASSET-AAFAP
582         FROM ANLP
583        WHERE ANLN1 = IW_ASSET-ANLN1
584          AND BUKRS = IW_ASSET-BUKRS
585          AND GJAHR = IW_ASSET-GJAHR
586          AND PERAF = P_PERAF
587          AND AFBNR = P_AFBNR
588          AND AFABER = ‘01‘.
589
590      "获取指定期间折旧记账运行的顺序号
591       SELECT SINGLE MAX( AFBNR )
592         INTO P_AFBNR
593         FROM ANLP
594        WHERE ANLN1 = IW_ASSET-ANLN1
595          AND BUKRS = IW_ASSET-BUKRS
596          AND GJAHR = IW_ASSET-GJAHR
597          AND PERAF = IW_ASSET-PERAF
598          AND AFABER = ‘01‘.
599
600      IW_ASSET-JZ = IW_ASSET-YZ + IW_ASSET-LJPTZJ + IW_ASSET-AAFAP.
601
602      DATA : L_DATE LIKE SY-DATUM.
603
604      CONCATENATE P_GJAHR P_PERAF+1(2) ‘01‘ INTO L_DATE.
605
606     "通过函数计算两个日期的差异月份
607       CALL FUNCTION ‘MONTHS_BETWEEN_TWO_DATES_NEW‘
608         EXPORTING
609           I_DATUM_BIS             = L_DATE
610           I_DATUM_VON             = IW_ASSET-AFABG
611 *       I_KZ_INCL_BIS           = ‘ ‘
612 *       I_KZ_VOLLE_MONATE       = ‘X‘
613        IMPORTING
614          E_MONATE                = IW_ASSET-XFABG
615
616          .
617
618      "工作中心为0000003120的行,颜色为红色
619      IF IW_ASSET-KOSTL = ‘0000003120‘.
620        IW_ASSET-COLOR = ‘C610‘.
621      ENDIF.
622
623      IF IW_ASSET-KOSTL = ‘0000004250‘.
624        IW_CELLCOLOR-FNAME = ‘PRCTR‘.
625        IW_CELLCOLOR-COLOR-COL = 3.
626        IW_CELLCOLOR-COLOR-INT = 1.
627        IW_CELLCOLOR-COLOR-INV = 0.
628
629        APPEND IW_CELLCOLOR TO IW_ASSET-CELLCOLOR.
630      ENDIF.
631
632      IW_ASSET-XFABG1 = IW_ASSET-XFABG + 1.
633       MODIFY IT_ASSET FROM IW_ASSET.
634       CLEAR : IW_ASSET.
635     ENDLOOP.
636   ENDFORM.                    " FRM_GET_DATA
637
638 *&---------------------------------------------------------------------*
639 *&      Form  FRM_FDCAT_BUILD
640 *&---------------------------------------------------------------------*
641 *       text
642 *----------------------------------------------------------------------*
643 *  -->  p1        text
644 *  <--  p2        text
645 *----------------------------------------------------------------------*
646 FORM FRM_FDCAT .
647   DATA LW_FCAT TYPE SLIS_FIELDCAT_ALV.
648   CLEAR IT_FIELDCAT.
649
650 ** 函数调I用获得标准字段
651 *  PERFORM FRM_GET_ALL_FIELD USING LW_FCAT.
652 * RFE自定义字段
653   PERFORM FRM_REDEFINE_FIELD USING LW_FCAT.
654 * 求和
655   PERFORM FRM_SUM_FIELD USING LW_FCAT.
656 * 颜色和HOTSPOT和对齐
657   PERFORM FRM_COLOR_HOTSPOT USING LW_FCAT.
658 * 格式调整
659  " PERFORM FRM_FORMAT_FIELD USING LW_FCAT.
660
661 ENDFORM.                    " FRM_FDCAT
662
663
664 *&---------------------------------------------------------------------*
665 *&      Form  FRM_LAYOUT
666 *&---------------------------------------------------------------------*
667 *       text
668 *----------------------------------------------------------------------*
669 *  -->  p1        text
670 *  <--  p2        text
671 *----------------------------------------------------------------------*
672 FORM FRM_LAYOUT .
673
674   IW_LAYOUT-COLWIDTH_OPTIMIZE = ‘X‘."自适应字段宽度
675   IW_LAYOUT-ZEBRA = ‘X‘.              "斑马线显示
676   IW_LAYOUT-INFO_FIELDNAME = ‘COLOR‘.  "保存行颜色代码的字段
677   IW_LAYOUT-COLTAB_FIELDNAME = ‘CELLCOLOR‘. "单元格颜色内表字段
678 * IW_LAYOUT-EDIT = ‘X‘. "可以修改所有ALV列的数据,
679 * 左边也会出来选择行的按钮","保存"按钮也会出来
680   IW_LAYOUT-F2CODE = ‘PICK‘."双击触发的FUNCTION CODE
681 ENDFORM.                    " FRM_LAYOUT
682
683 *&---------------------------------------------------------------------*
684 *&      Form  FRM_GET_ALL_FIELD
685 *&---------------------------------------------------------------------*
686 *       text
687 *----------------------------------------------------------------------*
688 *  -->  p1        text
689 *  <--  p2        text
690 *----------------------------------------------------------------------*
691 FORM FRM_GET_ALL_FIELD USING PS_FCAT TYPE SLIS_FIELDCAT_ALV.
692   DATA W_REPID TYPE SY-REPID.
693   W_REPID = SY-REPID.
694
695   CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE‘
696     EXPORTING
697       I_PROGRAM_NAME         = W_REPID
698 *     I_INTERNAL_TABNAME     =
699       I_STRUCTURE_NAME       = ‘‘
700 *     I_CLIENT_NEVER_DISPLAY = ‘X‘
701 *     I_INCLNAME             =
702 *     I_BYPASSING_BUFFER     =
703 *     I_BUFFER_ACTIVE        =
704     CHANGING
705       CT_FIELDCAT            = IT_FIELDCAT
706     EXCEPTIONS
707       INCONSISTENT_INTERFACE = 1
708       PROGRAM_ERROR          = 2
709       OTHERS                 = 3.
710   IF SY-SUBRC <> 0.
711     MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
712            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
713   ENDIF.
714
715 ENDFORM.                    " FRM_GET_ALL_FIELD
716
717 *&---------------------------------------------------------------------*
718 *&      Form  FRM_REDEFINE_FIELD
719 *&---------------------------------------------------------------------*
720 *       text
721 *----------------------------------------------------------------------*
722 *      -->P_LW_FCAT  text
723 *----------------------------------------------------------------------*
724 FORM FRM_REDEFINE_FIELD USING P_LW_FCAT TYPE SLIS_FIELDCAT_ALV.
725 CLEAR P_LW_FCAT.
726 DEFINE INITIAL_FIELD.
727   P_LW_FCAT-SELTEXT_L = &1.                          DEFINE alv_fieldcat.
728   P_LW_FCAT-SELTEXT_M = &1.                              ADD 1 TO col_pos .
729   P_LW_FCAT-SELTEXT_S = &1.                              CLEAR ls_fieldcat.
730   P_LW_FCAT-FIELDNAME = &2.                              ls_fieldcat-col_pos = col_pos .
731   APPEND P_LW_FCAT TO IT_FIELDCAT.                              ls_fieldcat-tabname = tabname.
732 END-OF-DEFINITION.                              ls_fieldcat-fieldname = &1.
733                               ls_fieldcat-reptext_ddic = &2.
734 INITIAL_FIELD   ‘主资产编号‘       ‘ANLN1‘.                              ls_fieldcat-outputlen = &3 .
735 INITIAL_FIELD   ‘资产名称‘         ‘TXT50‘.                              APPEND ls_fieldcat TO gt_fieldcat .
736 INITIAL_FIELD   ‘资产名称2‘        ‘TXA50‘.                          END-OF-DEFINITION.
737 INITIAL_FIELD   ‘公司代码‘         ‘BUKRS‘.
738 INITIAL_FIELD   ‘会计年度‘         ‘GJAHR‘.
739 INITIAL_FIELD   ‘成本中心‘         ‘KOSTL‘.
740 INITIAL_FIELD   ‘成本中心描述‘     ‘KTEXT‘.
741 INITIAL_FIELD   ‘业务范围‘         ‘GSBER‘.
742 INITIAL_FIELD   ‘业务范围描述‘     ‘GTEXT‘.
743 INITIAL_FIELD   ‘利润中心‘         ‘PRCTR‘.
744 INITIAL_FIELD   ‘利润中心描述‘     ‘PKTEXT‘.
745 INITIAL_FIELD   ‘资产大类‘         ‘ANLKL‘.
746 INITIAL_FIELD   ‘资产大类名称‘     ‘TXK20‘.
747 INITIAL_FIELD   ‘存放地点‘         ‘ANLHTXT‘.
748 INITIAL_FIELD   ‘使用人/保管人‘    ‘KFZKZ‘.
749 INITIAL_FIELD   ‘规格‘             ‘SERNR‘.
750 INITIAL_FIELD   ‘来源资产卡片编号‘  ‘AIBN1‘.
751 INITIAL_FIELD   ‘资产小类编码‘      ‘ORD41‘.
752 INITIAL_FIELD   ‘资产小类名称‘      ‘ORDTX1‘.
753 INITIAL_FIELD   ‘资本化日期‘        ‘AKTIV‘.
754 INITIAL_FIELD   ‘已折旧月份‘        ‘XFABG1‘.
755 INITIAL_FIELD   ‘不活动日期‘        ‘DEAKT‘.
756 INITIAL_FIELD   ‘折旧期限-年‘       ‘NDJAR‘.
757 INITIAL_FIELD   ‘折旧期限-月‘       ‘NDPER‘.
758 INITIAL_FIELD   ‘折旧码‘            ‘AFASL‘.
759 INITIAL_FIELD   ‘原值‘              ‘YZ‘.
760 INITIAL_FIELD   ‘预计净残值‘        ‘YJCZ‘.
761 INITIAL_FIELD   ‘本月折旧‘          ‘NAFAZ‘.
762 INITIAL_FIELD   ‘本月计划外折旧‘    ‘AAFAZ‘.
763 INITIAL_FIELD   ‘累计普通折旧‘      ‘LJPTZJ‘.
764 INITIAL_FIELD   ‘累计计划外折旧‘    ‘AAFAP‘.
765 INITIAL_FIELD   ‘净值‘             ‘JZ‘.
766 INITIAL_FIELD   ‘初始化折旧‘        ‘CSHZJ‘.
767 INITIAL_FIELD   ‘供应商代码‘        ‘LIFNR‘.
768 INITIAL_FIELD   ‘供应商名称‘        ‘LIEFE‘.
769
770 ENDFORM.                    " FRM_REDEFINE_FIELD
771
772 *&---------------------------------------------------------------------*
773 *&      Form  FRM_SUM_FIELD
774 *&---------------------------------------------------------------------*
775 *       text
776 *----------------------------------------------------------------------*
777 *      -->P_LW_FCAT  text
778 *----------------------------------------------------------------------*
779 FORM FRM_SUM_FIELD  USING P_LW_FCAT TYPE SLIS_FIELDCAT_ALV.
780 * 求和
781   CLEAR P_LW_FCAT.
782   P_LW_FCAT-FIELDNAME = ‘NAFAZ‘.
783   "P_LW_FCAT-REF_TABNAME = ‘ ‘.
784   "P_LW_FCAT-COL_POS = ‘ ‘.
785   P_LW_FCAT-DO_SUM = ‘X‘.  "立即求和,只有I,F,P类型的列可以求和
786   MODIFY IT_FIELDCAT FROM P_LW_FCAT TRANSPORTING DO_SUM
787   WHERE FIELDNAME = ‘NAFAZ‘.
788 ENDFORM.                    " FRM_SUM_FIELD
789
790 *&---------------------------------------------------------------------*
791 *&      Form  FRM_COLOR_HOTSPOT
792 *&---------------------------------------------------------------------*
793 *       text
794 *----------------------------------------------------------------------*
795 *      -->P_LW_FCAT  text
796 *----------------------------------------------------------------------*
797 FORM FRM_COLOR_HOTSPOT  USING P_CLR_FCAT TYPE SLIS_FIELDCAT_ALV.
798   CLEAR P_CLR_FCAT.
799
800  "列 LJPTZJ 的字体颜色为红色
801   P_CLR_FCAT-EMPHASIZE = ‘C601‘.
802   MODIFY IT_FIELDCAT FROM P_CLR_FCAT TRANSPORTING EMPHASIZE
803    WHERE FIELDNAME = ‘ANLKL‘.
804
805   "定义热键显示字段,使双击事件有效
806   P_CLR_FCAT-REF_TABNAME = ‘IT_ASSET‘.
807   P_CLR_FCAT-HOTSPOT = ‘X‘.
808   P_CLR_FCAT-KEY = ‘X‘.
809   MODIFY IT_FIELDCAT FROM P_CLR_FCAT
810   TRANSPORTING REF_TABNAME HOTSPOT KEY
811   WHERE FIELDNAME = ‘ANLN1‘.
812 ENDFORM.                    " FRM_COLOR_HOTSPOT
813
814 *&---------------------------------------------------------------------*
815 *&      Form  FRM_STATUS_EX
816 *&---------------------------------------------------------------------*
817 *       text
818 *----------------------------------------------------------------------*
819 *  -->  p1        text
820 *  <--  p2        text
821 *----------------------------------------------------------------------*
822 FORM FRM_STATUS_EX USING EXTAB TYPE SLIS_T_EXTAB.
823   DATA:BEGIN OF TAB OCCURS 0,
824          FCODE LIKE RSMPE-FUNC,
825        END OF TAB.
826
827   TAB-FCODE = ‘&OL0‘.APPEND TAB.
828   TAB-FCODE = ‘&OAD‘.APPEND TAB.
829   TAB-FCODE = ‘&AVE‘.APPEND TAB.
830
831   SET PF-STATUS ‘STANDARD_FULLSCREEN‘ OF PROGRAM ‘SAPLKKBL‘
832   EXCLUDING TAB IMMEDIATELY.
833
834 ENDFORM.                    " FRM_STATUS_EX
835
836
837 *&---------------------------------------------------------------------*
838 *&      Form  FRM_ALV_DISPLAY
839 *&---------------------------------------------------------------------*
840 *       text
841 *----------------------------------------------------------------------*
842 *  -->  p1        text
843 *  <--  p2        text
844 *----------------------------------------------------------------------*
845 FORM FRM_ALV_DISPLAY .
846 DATA W_REPID TYPE SY-REPID.
847
848 W_REPID = SY-REPID.
849
850 CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘
851  EXPORTING
852 *   I_INTERFACE_CHECK                 = ‘ ‘
853 *   I_BYPASSING_BUFFER                = ‘ ‘
854 *   I_BUFFER_ACTIVE                   = ‘ ‘
855    I_CALLBACK_PROGRAM                = W_REPID
856     I_CALLBACK_PF_STATUS_SET          = ‘FRM_STATUS_EX‘
857     I_CALLBACK_USER_COMMAND           = ‘FRM_ALV_USER_COMMAND‘
858 *   I_CALLBACK_TOP_OF_PAGE            = ‘ ‘
859 *   I_CALLBACK_HTML_TOP_OF_PAGE       = ‘ ‘
860 *   I_CALLBACK_HTML_END_OF_LIST       = ‘ ‘
861 *   I_STRUCTURE_NAME                  =
862 *   I_BACKGROUND_ID                   = ‘ ‘
863    I_GRID_TITLE                      = ‘资产信息一览‘
864 *   I_GRID_SETTINGS                   =
865    IS_LAYOUT                         = IW_LAYOUT
866    IT_FIELDCAT                       = IT_FIELDCAT
867 *   IT_EXCLUDING                      =
868 *   IT_SPECIAL_GROUPS                 =
869 *   IT_SORT                           =
870 *   IT_FILTER                         =
871 *   IS_SEL_HIDE                       =
872    I_DEFAULT                         = ‘X‘
873    I_SAVE                            = ‘X‘
874 *   IS_VARIANT                        =
875    IT_EVENTS                         = IT_EVENT
876 *   IT_EVENT_EXIT                     =
877 *   IS_PRINT                          =
878 *   IS_REPREP_ID                      =
879 *   I_SCREEN_START_COLUMN             = 0
880 *   I_SCREEN_START_LINE               = 0
881 *   I_SCREEN_END_COLUMN               = 0
882 *   I_SCREEN_END_LINE                 = 0
883 *   I_HTML_HEIGHT_TOP                 = 0
884 *   I_HTML_HEIGHT_END                 = 0
885 *   IT_ALV_GRAPHICS                   =
886 *   IT_HYPERLINK                      =
887 *   IT_ADD_FIELDCAT                   =
888 *   IT_EXCEPT_QINFO                   =
889 *   IR_SALV_FULLSCREEN_ADAPTER        =
890 * IMPORTING
891 *   E_EXIT_CAUSED_BY_CALLER           =
892 *   ES_EXIT_CAUSED_BY_USER            =
893   TABLES
894     T_OUTTAB                          = IT_ASSET
895  EXCEPTIONS
896    PROGRAM_ERROR                     = 1
897    OTHERS                            = 2
898           .
899 IF SY-SUBRC <> 0.
900 *MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
901 *       WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
902 ENDIF.
903 ENDFORM.                    " FRM_ALV_DISPLAY
904 *&---------------------------------------------------------------------*
905 *&      Form  FRM_ALV_USER_COMMAND
906 *&---------------------------------------------------------------------*
907 *       text
908 *----------------------------------------------------------------------*
909 *  -->  p1        text
910 *  <--  p2        text
911 *----------------------------------------------------------------------*
912 FORM FRM_ALV_USER_COMMAND USING R_UCOMM TYPE SY-UCOMM
913                                  RS_SELFIELD TYPE SLIS_SELFIELD.
914   CASE R_UCOMM.
915     WHEN ‘PICK‘.
916     READ TABLE IT_ASSET INTO IW_ASSET INDEX RS_SELFIELD-TABINDEX.
917     SET PARAMETER ID: ‘AN1‘ FIELD IW_ASSET-ANLN1,
918                       ‘BUK‘ FIELD IW_ASSET-BUKRS.
919
920     CALL TRANSACTION ‘AS03‘ AND SKIP FIRST SCREEN.
921   ENDCASE.
922 ENDFORM.                    " FRM_ALV_USER_COMMAND
时间: 2024-07-30 20:48:45

ABAP ALV 示例:ALV单元格颜色,ALV行颜色,ALV双击事件,数据合计,ALV表头,ALV GUI STATUS的相关文章

读取Excel文件中的单元格的内容和颜色

读取Excel文件中的单元格的内容和颜色 先创建一个Excel文件,在A1和A2中随意输入内容,设置A1的字体颜色为红色,A2的背景为黄色.需要 using Excel = Microsoft.Office.Interop.Excel;或者using Microsoft.Excel; string file = @"E:\test.xls"; //测试文件 Excel.Application excel = null; Excel.Workbook wkb = null; try {

点击表格的单元格时实现变颜色

<title>无标题文档</title> <script type="text/javascript" language="javascript"> //清空 function backs(){ var td= document.getElementsByTagName("td"); for(var i=0;i<td.length;i++){ td[i].style.backgroundColor=&qu

【web开发】☆★之利用POI操作Excel表格系列教程【10】单元格填充色和颜色操作

[web开发]☆★之利用POI操作Excel表格系列教程[10]单元格填充色和颜色操作 package csg.xiaoye.poidemo; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import

c#DataGridView数据绑定示例——格式化单元格的内容

c#DataGridView数据绑定示例 格式化单元格的内容 在使用DataGridView显示数据库中的数据时,我们需要对某列的数据显示格式进行格式化. 这里使用实时构建的数据,如下图: 在显示时对第三列的数据进行格式化,如下图: 测试数据构建及数据绑定: private void Form1_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("Id&

123批量添加和删除单元格(扩展知识:设置单元格的尺寸和颜色)

效果如下: ViewController.h 1 #import <UIKit/UIKit.h> 2 3 @interface ViewController : UITableViewController 4 @property (strong, nonatomic) NSMutableArray *mArrDataSource; 5 6 @end ViewController.m 1 #import "ViewController.h" 2 3 @interface Vi

在DBGrid中,单击单元格选择整行,双击又可编辑单元格

在设计过程中,有时候数据较大量,field 较多的时候,只是点击单元格可能会对某个field的数据误操作(如数据错行),为此才会想到这个问题,解决办法如下:点击单元格就改当前行颜色. 首先DBGRID的属性做好下设置(其实也是DBGRID默认的属性) DBGrid1->Options->dgEditing=TrueDBGrid1->Options->dgRowSelect=False 一.先在implementation前做如下定义type  TMyDBGrid=class(TDB

DataGridView合并单元格(多行多列合并)

一.点击在拖入的显示控件(TreeList)右上方的箭头,在Treelist任务中选择数据源,添加项目数据源,依次选择数据库.数据集,新建连接,浏览选择数据库(*.mdb),依次点击 下一步,选择“表”,完成. 二.具体代码如下: #region"合并单元格(多行多列)" //需要(行.列)合并的所有列标题名 List<String> colsHeaderText_V = new List<String>(); List<String> colsHe

Excel 使用单元格的值 查询MySQL数据库并返回数据给相应的单元格

Dim MyConn As ObjectPrivate Sub ConnectDB()Set MyConn = CreateObject("ADODB.Connection")    ----->创建连接对象Dim str As Stringstr = "DRIVER={MySQL ODBC 5.3 Unicode Driver};" & _   ---->拼接连接语句   odbc驱动 "SERVER=localhost;"

Excel 设置单元格为下拉框,并且设置数据来源

1.选中单元格,设置Data Validation为下拉框: 2 .数据来源代码设置: =OFFSET(DropDownValues!$C$2,0,0,COUNTIF(DropDownValues!$C:$C,">=""")-1,1) // 表示数据来源于"DropDownValues"这个sheet的C列,筛选出不为空的数值作为数据源 原文地址:https://www.cnblogs.com/Aaron-Lee/p/9964777.htm

VBA返回选中单元格区域的行数、列数,以及活动单元格的行号和列号

Private Sub Worksheet_SelectionChange(ByVal Target As Range)    Dim rows_count As Integer    Dim rows_id As Integer    Dim column_count As Integer    Dim column_id As Integer    column_count = Selection.Columns.Count '返回选择区域列数    rows_id = ActiveCell