SAP中方会计凭证打印解决方案

中方会计凭证由于 编码格式 以及 科目对照关系 是无法直接使用SAP自带的凭证打印功能的,如下为客户开发的一个解决方案,供各位参考

1).需要定制几个Table的结构

zc0000fit0009【科目对照表】

2).

   1 REPORT  zc0000fir0013 NO STANDARD PAGE HEADING
   2                       LINE-COUNT 65
   3                       LINE-SIZE 80.
   4 *---------------------------------------------------------------------*
   5 *   TABLES
   6 *---------------------------------------------------------------------*
   7 TABLES: bkpf,zc0000fit0009.
   8
   9 TYPE-POOLS: slis.
  10
  11 *---------------------------------------------------------------------*
  12 *   Types (ty_)
  13 *---------------------------------------------------------------------*
  14 TYPES:
  15       BEGIN OF gty_bkpf,
  16         bukrs    TYPE bkpf-bukrs,    "Company Code
  17         belnr    TYPE bkpf-belnr,    "Accounting Document Number
  18         gjahr    TYPE bkpf-gjahr,    "Fiscal Year
  19         blart    TYPE bkpf-blart,    "document type
  20         budat    TYPE bkpf-budat,    "Payment time
  21         monat    TYPE bkpf-monat,    "Fiscal Period
  22         cpudt    TYPE bkpf-cpudt,    "Day Was Entered
  23         usnam    TYPE bkpf-usnam,    "User Name
  24 *start add alex han 20130604
  25         ppnam TYPE bkpf-ppnam,
  26 *end add alex han 20130604
  27         xblnr    TYPE bkpf-xblnr,    "Reference Document Number
  28         bktxt    TYPE bkpf-bktxt,    "Document Header Text
  29         waers    TYPE bkpf-waers,    "Currency Key
  30         kursf    TYPE bkpf-kursf,    "Exchange rate
  31       END OF gty_bkpf,
  32
  33       BEGIN OF gty_bseg,
  34         bukrs    TYPE bkpf-bukrs,    "Company Code
  35         belnr    TYPE bkpf-belnr,    "Accounting Document Number
  36         gjahr    TYPE bkpf-gjahr,    "Fiscal Year
  37         buzei    TYPE bseg-buzei,    "Number of Line
  38         hkont    TYPE bseg-hkont,    "General Ledger Account
  39         kostl    TYPE bseg-kostl,    "Cost Center
  40         prctr    TYPE bseg-prctr,    "Profit Center
  41         wrbtr    TYPE bseg-wrbtr,    "Amount in Document Currency
  42         dmbtr    TYPE bseg-dmbtr,    "amount in local currency
  43         shkzg    TYPE bseg-shkzg,    "Debit/Credit Indicator
  44         zuonr    TYPE bseg-zuonr,    "Assignment Number
  45         sgtxt    TYPE bseg-sgtxt,    "Item Text
  46         lifnr    TYPE bseg-lifnr,    "vendor
  47         kunnr    TYPE bseg-kunnr,    "customer
  48         koart    TYPE bseg-koart,    "Account Type
  49         aufnr    TYPE bseg-aufnr,    "ORER
  50 *& Start of Insertion CR0158 by Davy on 2013/08/14
  51         fkber    TYPE bseg-fkber,    "function area
  52 *& End of Insertion CR0158 by Davy on 2013/08/14
  53       END OF gty_bseg,
  54
  55       BEGIN OF gty_head,
  56         bukrs    TYPE bkpf-bukrs,    "Company Code
  57         belnr    TYPE bkpf-belnr,    "SAP Document Number
  58         gjahr    TYPE bkpf-gjahr,    "Fiscal Year
  59         budat    TYPE char30,        "posting date
  60         name1    TYPE comp_txt,          "company name
  61         prcnr    TYPE zc0000fit0009-prcnr,"PRC number
  62         prctp    TYPE zc0000fit0008-prctp,"PRC Doc.Type Name
  63         prctt    TYPE zc0000fit0008-prctt,"PRC Doc.Type Title
  64         acmgr    TYPE text10,            "Acc mgr
  65         dbchk    TYPE text10,            "double check
  66         usnam    TYPE bkpf-usnam,        "user name
  67         ppnam    TYPE bkpf-ppnam,
  68 *&  Begin of Modification CR00222 BY YE_S on 2013/12/02
  69         persnumber TYPE adrp-persnumber,  "人员编号
  70         name_first TYPE adrp-name_first,  "名
  71         name_last  TYPE adrp-name_last,   "姓
  72 *&  End of Modification CR00222 BY YE_S on 2013/12/02
  73       END OF gty_head,
  74
  75       BEGIN OF gty_item,
  76         bukrs    TYPE bkpf-bukrs,    "Company Code
  77         belnr    TYPE bkpf-belnr,    "Accounting Document Number
  78         gjahr    TYPE bkpf-gjahr,    "Fiscal Year
  79         hkont    TYPE bseg-hkont,    "General Ledger Account
  80         kostl    TYPE bseg-kostl,    "Cost Center
  81         lifnr    TYPE bseg-lifnr,    "vendor
  82         kunnr    TYPE bseg-kunnr,    "customer
  83         shkzg    TYPE bseg-shkzg,    "Debit/Credit Indicator
  84         xblnr    TYPE bkpf-xblnr,    "Reference Document Number #01
  85         bktxt    TYPE bkpf-bktxt,    "Document Header Text
  86         sgtxt    TYPE bseg-sgtxt,    "Item Text
  87         zuonr    TYPE bseg-zuonr,    "Assignment Number
  88         prctr    TYPE bseg-prctr,    "Profit Center  #01
  89         name1    TYPE zc0000fit0007-prcnm1,"PRC Name1 #02
  90         name2    TYPE ad_name2,       "PRC_Name2” + “CostCenter #03
  91         waers    TYPE bkpf-waers,    "Currency Key #04
  92         wrbtr    TYPE bseg-wrbtr,    "Amount in Document Currency #05
  93         dmbtr    TYPE bseg-dmbtr,    "amount in local currency #07/8
  94         kursf    TYPE bkpf-kursf,    "Exchange rate #06
  95       END OF gty_item,
  96
  97     BEGIN OF gty_list,
  98         sel(1)   TYPE c,             "selection flag
  99         bukrs    TYPE bkpf-bukrs,    "Company Code
 100         belnr    TYPE bkpf-belnr,    "Accounting Document Number
 101         gjahr    TYPE bkpf-gjahr,    "Fiscal Year
 102         blart    TYPE bkpf-blart,    "document type
 103         budat    TYPE bkpf-budat,    "Payment time
 104         monat    TYPE bkpf-monat,    "Fiscal Period
 105         cpudt    TYPE bkpf-cpudt,    "Day Was Entered
 106         usnam    TYPE bkpf-usnam,    "User Name
 107 *start add by alex han 20130604
 108         ppnam    TYPE bkpf-ppnam,
 109 *end add by alex han 20130604
 110         xblnr    TYPE bkpf-xblnr,    "Reference Document Number
 111         bktxt    TYPE bkpf-bktxt,    "Document Header Text
 112         waers    TYPE bkpf-waers,    "Currency Key
 113         kursf    TYPE bkpf-kursf,    "Exchange rate
 114         prcnr    TYPE zc0000fit0009-prcnr,"PRC number
 115         prctp    TYPE zc0000fit0008-prctp,"PRC Doc.Type Name
 116         name1    TYPE comp_txt,          "company name
 117         pflag    TYPE char10,            "print flag
 118        END OF gty_list,
 119 *& Start of Insertion CR0000 by Zoey on 2014/08/25
 120        BEGIN OF gty_ska,
 121          saknr   TYPE ska1-saknr,
 122          xbilk   TYPE ska1-xbilk,
 123          txt50   TYPE skat-txt50,
 124        END OF gty_ska.
 125 *& End of Insertion CR0000 by Zoey on 2014/08/25
 126
 127 *---------------------------------------------------------------------*
 128 *   Internal Tables (git_)
 129 *---------------------------------------------------------------------*
 130 DATA:
 131   git_t001   TYPE STANDARD TABLE OF t001 WITH HEADER LINE,  "#EC *
 132   git_bkpf   TYPE STANDARD TABLE OF gty_bkpf WITH HEADER LINE, "#EC *
 133   git_bseg   TYPE STANDARD TABLE OF gty_bseg WITH HEADER LINE, "#EC *
 134   git_list   TYPE STANDARD TABLE OF gty_list WITH HEADER LINE, "#EC *
 135   git_head   TYPE STANDARD TABLE OF gty_head WITH HEADER LINE, "#EC *
 136   git_item   TYPE STANDARD TABLE OF gty_item WITH HEADER LINE, "#EC *
 137   git_prcnm  TYPE STANDARD TABLE OF zc0000fit0007 WITH HEADER LINE,"#EC*
 138   git_prctp  TYPE STANDARD TABLE OF zc0000fit0008 WITH HEADER LINE,"#EC*
 139   git_prclg  TYPE STANDARD TABLE OF zc0000fit0009 WITH HEADER LINE,"#EC*
 140   git_upd09  TYPE STANDARD TABLE OF zc0000fit0009 WITH HEADER LINE,"#EC*
 141   git_header TYPE STANDARD TABLE OF gty_head WITH HEADER LINE, "#EC *
 142   git_detail TYPE STANDARD TABLE OF gty_item WITH HEADER LINE, "#EC *
 143 *& Start of Insertion CR0000 by Zoey on 2014/08/25
 144   git_ska    TYPE STANDARD TABLE OF gty_ska WITH HEADER LINE. "#EC *
 145 *& End of Insertion CR0000 by Zoey on 2014/08/25
 146
 147 * ALV Related
 148 DATA: git_fieldcat  TYPE slis_t_fieldcat_alv,
 149       git_comments  TYPE slis_t_listheader,
 150       git_events    TYPE slis_t_event.
 151
 152 * Work Area
 153 DATA: gwa_fieldcat  TYPE slis_fieldcat_alv.
 154 DATA: gwa_output    TYPE gty_list.
 155 *---------------------------------------------------------------------*
 156 *   Global Variables (gv_)
 157 *---------------------------------------------------------------------*
 158 DATA: g_repid TYPE sy-repid,    "PROGRAM
 159       g_amtup TYPE char100.
 160
 161 *----------------------------------------------------------------------*
 162 ** Range Declaration
 163 *----------------------------------------------------------------------*
 164 RANGES: r_lifnr FOR ekko-lifnr,
 165         r_ebeln FOR ekko-ebeln.
 166
 167 *---------------------------------------------------------------------*
 168 *   Constants (c_)
 169 *---------------------------------------------------------------------*
 170 CONSTANTS:
 171   c_e                TYPE char1          VALUE ‘E‘,
 172   c_x                TYPE char1          VALUE ‘X‘,
 173   c_perct            TYPE char1          VALUE ‘%‘,
 174   c_sign_i           TYPE char1          VALUE ‘I‘,
 175   c_option_eq        TYPE char2          VALUE ‘EQ‘,
 176   c_03               TYPE char2          VALUE ‘03‘,
 177   c_sel              TYPE field_name     VALUE ‘SEL‘,
 178   c_bukrs            TYPE field_name     VALUE ‘BUKRS‘,
 179   c_belnr            TYPE field_name     VALUE ‘BELNR‘,
 180   c_gjahr            TYPE field_name     VALUE ‘GJAHR‘,
 181   c_blart            TYPE field_name     VALUE ‘BLART‘,
 182   c_budat            TYPE field_name     VALUE ‘BUDAT‘,
 183   c_monat            TYPE field_name     VALUE ‘MONAT‘,
 184   c_cpudt            TYPE field_name     VALUE ‘CPUDT‘,
 185   c_usnam            TYPE field_name     VALUE ‘USNAM‘,
 186 *START-ADD BY ALEX HAN20130604
 187    c_ppnam            TYPE field_name     VALUE ‘PPNAM‘,
 188 *END-ADD BY ALEX HAN 20130604
 189   c_xblnr            TYPE field_name     VALUE ‘XBLNR‘,
 190   c_bktxt            TYPE field_name     VALUE ‘BKTXT‘,
 191   c_waers            TYPE field_name     VALUE ‘WAERS‘,
 192   c_kursf            TYPE field_name     VALUE ‘KURSF‘,
 193   c_prctp            TYPE field_name     VALUE ‘PRCTP‘,
 194   c_prcnr            TYPE field_name     VALUE ‘PRCNR‘,
 195   c_name1            TYPE field_name     VALUE ‘NAME1‘,
 196   c_hkont            TYPE field_name     VALUE ‘HKONT‘,
 197   c_kostl            TYPE field_name     VALUE ‘KOSTL‘,
 198   c_prctr            TYPE field_name     VALUE ‘PRCTR‘,
 199   c_wrbtr            TYPE field_name     VALUE ‘WRBTR‘,
 200   c_dmbtr            TYPE field_name     VALUE ‘DMBTR‘,
 201   c_zuonr            TYPE field_name     VALUE ‘ZUONR‘,
 202   c_shkzg            TYPE field_name     VALUE ‘SHKZG‘,
 203   c_sgtxt            TYPE field_name     VALUE ‘SGTXT‘,
 204   c_pflag            TYPE field_name     VALUE ‘PFLAG‘,
 205   c_save_all         TYPE c LENGTH 1     VALUE ‘A‘,
 206   c_ddictxt_l        TYPE c LENGTH 1     VALUE ‘L‘,
 207   c_ddictxt_m        TYPE c LENGTH 1     VALUE ‘M‘,
 208   c_ddictxt_s        TYPE c LENGTH 1     VALUE ‘S‘,
 209   c_formname         TYPE tdsfname       VALUE ‘ZC0000FIS0001‘,
 210   c_pf_set           TYPE slis_formname  VALUE ‘PF_STATUS_SET‘,
 211   c_user_command     TYPE slis_formname  VALUE ‘USER_COMMAND_ALV‘,
 212 *& Start of Insertion CR0000 by Zoey on 2014/08/25
 213   c_a001             TYPE ktopl          VALUE ‘A001‘,
 214   c_zh               TYPE spras          VALUE ‘1‘.
 215 *& End of Insertion CR0000 by Zoey on 2014/08/25
 216 *---------------------------------------------------------------------*
 217 *   Macro
 218 *---------------------------------------------------------------------*
 219 DEFINE set_fc.
 220   clear gwa_fieldcat.
 221   gwa_fieldcat-tabname = ‘GIT_REP‘.
 222   gwa_fieldcat-fieldname   = &1.
 223   gwa_fieldcat-cfieldname  = &2.
 224   gwa_fieldcat-seltext_l   = &3.
 225   gwa_fieldcat-do_sum      = &4.
 226   gwa_fieldcat-ddictxt     = c_ddictxt_l.
 227   if  gwa_fieldcat-fieldname(5) = ‘PERCT‘.
 228     gwa_fieldcat-just = ‘R‘.
 229   endif.
 230   if gwa_fieldcat-fieldname = ‘BUKRS‘ or
 231      gwa_fieldcat-fieldname = ‘BELNR‘ or
 232      gwa_fieldcat-fieldname = ‘GJAHR‘.
 233     gwa_fieldcat-key = c_x.
 234   endif.
 235   append gwa_fieldcat to git_fieldcat.
 236 END-OF-DEFINITION.
 237
 238 *---------------------------------------------------------------------*
 239 *   Selection screen data
 240 *       select-options (s_)
 241 *       parameters     (p_)
 242 *       radio buttons  (rb_)
 243 *       checkboxes     (cb_)
 244 *       pushbuttons    (pb_)
 245 *---------------------------------------------------------------------*
 246 SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-t01.
 247 SELECT-OPTIONS:
 248   s_bukrs FOR bkpf-bukrs OBLIGATORY,
 249   s_belnr FOR bkpf-belnr OBLIGATORY,
 250   s_prcnr FOR zc0000fit0009-prcnr,
 251   s_gjahr FOR bkpf-gjahr OBLIGATORY,
 252   s_blart FOR bkpf-blart OBLIGATORY,
 253   s_budat FOR bkpf-budat NO-EXTENSION OBLIGATORY,
 254   s_cpudt FOR bkpf-cpudt NO-EXTENSION ."NO INTERVALS
 255 *START-Modify by davy 2013/06/14
 256 SELECT-OPTIONS:
 257   s_usnam FOR bkpf-usnam NO-EXTENSION NO INTERVALS,
 258   s_ppnam FOR bkpf-ppnam NO-EXTENSION NO INTERVALS.
 259 *PARAMETERS:
 260 *  p_usnam  TYPE bkpf-usnam,
 261 *START-ADD BY ALEX 20130604
 262 *  p_ppnam  TYPE bkpf-ppnam .
 263 *END-ADD BY ALEX 20130604
 264 *START-Modify by davy 2013/06/14
 265 SELECTION-SCREEN END OF BLOCK blk1.
 266
 267 SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-t02. "#EC *
 268 PARAMETERS:
 269   p_cmpnm  TYPE comp_txt OBLIGATORY,
 270   p_acmgr  TYPE text10,
 271   p_dbchk  TYPE text10.
 272 SELECTION-SCREEN END OF BLOCK blk2.
 273
 274 *---------------------------------------------------------------------*
 275 *  Initialization
 276 *---------------------------------------------------------------------*
 277 INITIALIZATION.
 278   PERFORM init_data.
 279
 280 *---------------------------------------------------------------------*
 281 *  AT SELECTION-SCREEN
 282 *---------------------------------------------------------------------*
 283 AT SELECTION-SCREEN.
 284   PERFORM check_data.
 285
 286 *---------------------------------------------------------------------*
 287 *  TOP-OF-PAGE
 288 *---------------------------------------------------------------------*
 289 *TOP-OF-PAGE.
 290
 291 ***********************************************************************
 292 *    START-OF-SELECTION PROCESSING                                    *
 293 ***********************************************************************
 294 START-OF-SELECTION.
 295 * get data from database tabl
 296   PERFORM get_data.
 297 *  process data in internal table
 298   PERFORM process_data.
 299
 300 ***********************************************************************
 301 *    END-OF-SELECTION PROCESSING                                      *
 302 ***********************************************************************
 303 END-OF-SELECTION.
 304   IF NOT git_list[] IS INITIAL.
 305     IF sy-batch = c_x.
 306       PERFORM print_data_background.
 307     ELSE.
 308 *  output the final data
 309       PERFORM display_data.
 310     ENDIF.
 311   ELSE.
 312     MESSAGE s099(ba) DISPLAY LIKE c_e WITH text-m01..
 313   ENDIF.
 314
 315 *&---------------------------------------------------------------------*
 316 *&      Form  INIT_DATA
 317 *&---------------------------------------------------------------------*
 318 *       text
 319 *----------------------------------------------------------------------*
 320 *  -->  p1        text
 321 *  <--  p2        text
 322 *----------------------------------------------------------------------*
 323 FORM init_data .
 324
 325   g_repid = sy-repid.
 326
 327   CLEAR: git_bkpf,git_bseg,git_list,git_head,git_item,
 328          git_prctp,git_prcnm,git_prclg.
 329
 330   REFRESH: git_bkpf,git_bseg,git_list,git_head,git_item,
 331            git_prctp,git_prcnm,git_prclg.
 332
 333 ENDFORM.                    " INIT_DATA
 334
 335 *&---------------------------------------------------------------------*
 336 *&      Form  CHECK_DATA
 337 *&---------------------------------------------------------------------*
 338 *       text
 339 *----------------------------------------------------------------------*
 340 *  -->  p1        text
 341 *  <--  p2        text
 342 *----------------------------------------------------------------------*
 343 FORM check_data .
 344 * check the company code valid
 345   REFRESH git_t001.
 346   SELECT * FROM t001 INTO TABLE git_t001
 347    WHERE bukrs IN s_bukrs.
 348   IF sy-subrc <> 0.
 349     MESSAGE e006(zc001) WITH s_bukrs-low s_bukrs-high.
 350   ENDIF.
 351
 352   LOOP AT git_t001.
 353     AUTHORITY-CHECK OBJECT ‘F_BKPF_BUK‘
 354               ID ‘BUKRS‘ FIELD git_t001-bukrs
 355               ID ‘ACTVT‘ FIELD ‘03‘.
 356     IF sy-subrc <> 0.
 357       MESSAGE e099(ba) WITH text-m02.
 358     ENDIF.
 359   ENDLOOP.
 360
 361 ENDFORM.                    " CHECK_DATA
 362
 363 *&---------------------------------------------------------------------*
 364 *&      Form  GET_DATA
 365 *&---------------------------------------------------------------------*
 366 *       text
 367 *----------------------------------------------------------------------*
 368 *  -->  p1        text
 369 *  <--  p2        text
 370 *----------------------------------------------------------------------*
 371 FORM get_data .
 372 * Get voucher doucment header data
 373   SELECT
 374                bukrs        "Company Code
 375                belnr        "Accounting Document Number
 376                gjahr        "Fiscal Year
 377                blart        "document type
 378                budat        "posting date
 379                monat        "Fiscal Period
 380                cpudt        "Day Was Entered
 381                usnam        "User Name
 382 *START ADD ALEX HAN 20130604
 383                ppnam
 384 *END ADD ALEX HAN 20130604
 385                xblnr        "Reference Document Number
 386                bktxt        "Document Header Text
 387                waers        "Currency Key
 388                kursf        "Exchange rate
 389           FROM bkpf
 390           INTO TABLE git_bkpf
 391           WHERE bukrs IN s_bukrs
 392             AND belnr IN s_belnr
 393             AND gjahr IN s_gjahr
 394             AND blart IN s_blart
 395             AND budat IN s_budat
 396             AND cpudt IN s_cpudt
 397             AND usnam IN s_usnam
 398 *START-ADD BY ALEXHAN 20130604
 399             AND ppnam IN s_ppnam.
 400 *END-ADD BY ALEX HAN 20130604
 401
 402   IF git_bkpf[] IS INITIAL.
 403     MESSAGE s099(ba) DISPLAY LIKE c_e WITH text-m01.
 404     STOP.
 405   ELSE.
 406
 407     SELECT
 408           bukrs        "Company Code
 409           belnr        "Accounting Document Number
 410           gjahr        "Fiscal Year
 411           buzei        "Number of Line
 412           hkont        "General Ledger Account
 413           kostl        "Cost Center
 414           prctr        "Profit Center
 415           wrbtr        "Amount in Document Currency
 416           dmbtr        "amount in local currency
 417           shkzg        "Debit/Credit Indicator
 418           zuonr        "Assignment Number
 419           sgtxt        "Item Text
 420           lifnr        "vendor
 421           kunnr        "customer
 422           koart        "acct type
 423           aufnr        "ORDER
 424 *& Start of Insertion CR0158 by Davy on 2013/08/14
 425           fkber        "function area
 426 *& End of Insertion CR0158 by Davy on 2013/08/14
 427      FROM bseg INTO TABLE git_bseg
 428       FOR ALL ENTRIES IN git_bkpf
 429      WHERE bukrs = git_bkpf-bukrs
 430        AND belnr = git_bkpf-belnr
 431        AND gjahr = git_bkpf-gjahr.
 432
 433   ENDIF.
 434
 435 * get SAP account number and PRC number
 436   SELECT * INTO TABLE git_prcnm FROM zc0000fit0007
 437    WHERE hkont <> ‘‘.
 438
 439 * get Document type and PRC document type mapping table
 440   SELECT * INTO TABLE git_prctp FROM zc0000fit0008
 441    WHERE blart <> ‘‘.
 442
 443 * get PRC number
 444   SELECT * INTO TABLE git_prclg FROM zc0000fit0009
 445    WHERE bukrs IN s_bukrs
 446      AND belnr IN s_belnr
 447      AND gjahr IN s_gjahr.
 448 *     AND prcnr IN s_prcnr.
 449 *& Start of Insertion CR0000 by Zoey on 2014/08/25
 450   SELECT a~saknr a~xbilk b~txt50 INTO TABLE git_ska FROM ska1 AS a
 451     JOIN skat AS b ON a~saknr = b~saknr
 452     FOR ALL ENTRIES IN git_bseg
 453     WHERE  a~ktopl = c_a001
 454      AND   a~saknr = git_bseg-hkont
 455      AND   b~spras = c_zh.
 456 *& End of Insertion CR0000 by Zoey on 2014/08/25
 457 ENDFORM.                    " GET_DATA
 458 *&---------------------------------------------------------------------*
 459 *&      Form  PROCESS_DATA
 460 *&---------------------------------------------------------------------*
 461 *       text
 462 *----------------------------------------------------------------------*
 463 *  -->  p1        text
 464 *  <--  p2        text
 465 *----------------------------------------------------------------------*
 466 FORM process_data.
 467   DATA: l_amt      TYPE wertv8.
 468   DATA: l_func     TYPE csks-func_area.
 469   DATA: l_name1    TYPE kna1-name1.
 470   DATA: l_xbilk    TYPE ska1-xbilk.
 471   DATA: lit_item   TYPE STANDARD TABLE OF gty_item WITH HEADER LINE.
 472   DATA: lit_bseg   TYPE STANDARD TABLE OF gty_bseg WITH HEADER LINE.
 473   DATA: l_kostl    TYPE bseg-kostl,
 474         l_aufnr    TYPE bseg-aufnr.
 475
 476 * collect the PRC Doc.Type Name and title
 477   SORT git_prctp BY blart.
 478   SORT git_prclg BY bukrs belnr gjahr.
 479   SORT git_t001 BY bukrs.
 480
 481   LOOP AT git_bkpf.
 482     MOVE-CORRESPONDING git_bkpf TO git_list.
 483     READ TABLE git_prctp WITH KEY blart = git_bkpf-blart.
 484     IF sy-subrc = 0.
 485       git_list-prctp = git_prctp-prctp.
 486     ENDIF.
 487
 488     git_list-name1 = p_cmpnm.
 489
 490     IF git_list-name1 IS INITIAL.
 491       READ TABLE git_t001 WITH KEY bukrs = git_bkpf-bukrs
 492                                    BINARY SEARCH.
 493       IF sy-subrc = 0.
 494         git_list-name1 = git_t001-butxt.
 495       ENDIF.
 496     ENDIF.
 497
 498     READ TABLE git_prclg WITH KEY bukrs = git_bkpf-bukrs
 499                                   belnr = git_bkpf-belnr
 500                                   gjahr = git_bkpf-gjahr.
 501     IF sy-subrc = 0.
 502       git_list-prcnr = git_prclg-prcnr.
 503       git_list-pflag = text-h17.
 504     ELSE.
 505
 506       PERFORM set_next_prcno USING git_bkpf-bukrs
 507                                    git_bkpf-gjahr
 508                                    git_bkpf-monat
 509                           CHANGING git_list-prcnr.
 510       git_list-pflag = text-h18.
 511     ENDIF.
 512
 513     READ TABLE git_t001 WITH KEY  bukrs = git_bkpf-bukrs.
 514     IF git_bkpf-waers <> git_t001-waers. " AND
 515       PERFORM convert_rate USING git_bkpf-waers git_bkpf-kursf
 516                           CHANGING git_list-kursf.
 517     ELSE.
 518       MOVE git_list-kursf TO git_list-kursf.
 519     ENDIF.
 520
 521     APPEND git_list.
 522     CLEAR git_list.
 523   ENDLOOP.
 524
 525 * for print header data
 526   LOOP AT git_list.
 527
 528     MOVE-CORRESPONDING git_list TO git_head.
 529
 530     CONCATENATE git_list-budat(4) text-t03 git_list-budat+4(2) text-t04
 531     git_list-budat+6(2) text-t05 INTO  git_head-budat.
 532
 533     READ TABLE git_prctp WITH KEY blart = git_list-blart.
 534     IF sy-subrc = 0.
 535       git_head-prctt = git_prctp-prctt.
 536     ENDIF.
 537
 538     git_head-acmgr = p_acmgr.
 539     git_head-dbchk = p_dbchk.
 540
 541     APPEND git_head.
 542     CLEAR git_head.
 543   ENDLOOP.
 544
 545   SORT git_bkpf BY bukrs belnr gjahr.
 546   SORT git_prcnm BY hkont kostl.
 547 *& Start of Insertion CR0000 by Zoey on 2014/08/25
 548   SORT git_ska   BY saknr.
 549 *& End of Insertion CR0000 by Zoey on 2014/08/25
 550   REFRESH lit_bseg.
 551   lit_bseg[] = git_bseg[].
 552
 553   SORT lit_bseg BY bukrs belnr gjahr lifnr kunnr.
 554
 555 *  collect voucher data for list
 556   LOOP AT git_bseg.
 557     MOVE-CORRESPONDING git_bseg TO git_item.
 558     READ TABLE git_bkpf WITH KEY bukrs = git_bseg-bukrs
 559                                  belnr = git_bseg-belnr
 560                                  gjahr = git_bseg-gjahr.
 561     IF sy-subrc = 0.
 562       MOVE:
 563         git_bkpf-xblnr TO git_item-xblnr,
 564         git_bkpf-bktxt TO git_item-bktxt,
 565         git_bkpf-waers TO git_item-waers.
 566       READ TABLE git_t001 WITH KEY  bukrs = git_bseg-bukrs.
 567       IF git_bkpf-waers <> git_t001-waers. " AND
 568         PERFORM convert_rate USING git_bkpf-waers git_bkpf-kursf
 569                             CHANGING git_item-kursf.
 570       ELSE.
 571         MOVE git_bkpf-kursf TO git_item-kursf.
 572       ENDIF.
 573
 574       IF git_bkpf-waers = git_t001-waers.
 575         CLEAR git_item-wrbtr.
 576       ENDIF.
 577     ENDIF.
 578
 579     READ TABLE git_prcnm WITH KEY hkont = git_bseg-hkont.
 580     IF sy-subrc = 0.
 581       IF git_prcnm-prccd1 = ‘COSTCENTER‘.
 582 *   first class account
 583         SELECT SINGLE func_area INTO l_func FROM csks
 584          WHERE kostl = git_bseg-kostl
 585            AND bukrs = git_bseg-bukrs.                      "#EC *
 586         IF sy-subrc = 0.
 587           SELECT SINGLE prcnm1 INTO git_item-name1
 588             FROM zc0000fit0010
 589             WHERE func_area = l_func.
 590         ENDIF.
 591
 592         git_item-name2 = git_prcnm-prcnm2.
 593         IF NOT git_bseg-kostl IS INITIAL.
 594 *          CONCATENATE git_item-name2 git_bseg-kostl
 595 *                 INTO git_item-name2 SEPARATED BY space.
 596 *& Start of Insertion CR0158 by Davy on 2013/08/14
 597         ELSE.
 598           IF git_item-name1 IS INITIAL.
 599             SELECT SINGLE prcnm1 INTO git_item-name1
 600               FROM zc0000fit0010
 601               WHERE func_area = git_bseg-fkber.
 602           ENDIF.
 603 *& End of Insertion CR0158 by Davy on 2013/08/14
 604         ENDIF.
 605 *       interanl order
 606         IF NOT git_bseg-aufnr IS INITIAL.
 607           CLEAR l_aufnr.
 608           CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT‘
 609             EXPORTING
 610               input  = git_bseg-aufnr
 611             IMPORTING
 612               output = l_aufnr.
 613           CONCATENATE git_item-name2 l_aufnr
 614                  INTO git_item-name2 SEPARATED BY space.
 615         ENDIF.
 616
 617       ELSE.
 618         git_item-name1 = git_prcnm-prcnm1.
 619         git_item-name2 = git_prcnm-prcnm2.
 620
 621         CLEAR l_name1.
 622
 623         IF git_bseg-lifnr <> ‘‘ AND git_bseg-koart = ‘K‘.
 624           SELECT SINGLE name1 INTO l_name1 FROM lfa1
 625             WHERE lifnr = git_bseg-lifnr.
 626         ENDIF.
 627         IF git_bseg-kunnr <> ‘‘ AND git_bseg-koart = ‘D‘.
 628           SELECT SINGLE name1 INTO l_name1 FROM kna1
 629           WHERE kunnr = git_bseg-kunnr.
 630         ENDIF.
 631
 632         IF NOT l_name1 IS INITIAL.
 633           CONCATENATE git_item-name2 ‘-‘ l_name1 INTO git_item-name2.
 634         ENDIF.
 635
 636       ENDIF.
 637 *& Start of Insertion CR0000 by Zoey on 2014/08/25
 638
 639     ELSE.
 640
 641 *  If GL account XXXXXX is not maintained in mapping table
 642 *     ZC0000FIT0007
 643       READ TABLE git_ska WITH KEY saknr = git_bseg-hkont.
 644 *     Balance sheet account
 645       IF git_ska-xbilk IS NOT INITIAL.
 646         PERFORM frm_Balance.
 647
 648       ELSE.
 649 *     Profit & Loss account
 650         PERFORM frm_Profit.
 651
 652       ENDIF.
 653 *& End of Insertion CR0000 by Zoey on 2014/08/25
 654     ENDIF.
 655
 656     APPEND git_item.
 657     CLEAR git_item.
 658   ENDLOOP.
 659
 660   CLEAR l_amt.
 661   REFRESH lit_item.
 662   SORT git_item BY bukrs belnr gjahr hkont kostl.
 663   DATA: l_flag TYPE c.
 664   CLEAR l_flag.
 665
 666   LOOP AT git_item.
 667
 668     AT NEW shkzg.
 669       CLEAR l_flag.
 670     ENDAT.
 671
 672     MOVE git_item-bukrs TO lit_item-bukrs .
 673     MOVE git_item-belnr TO lit_item-belnr .
 674     MOVE git_item-gjahr TO lit_item-gjahr .
 675     MOVE git_item-hkont TO lit_item-hkont .
 676     MOVE git_item-kostl TO lit_item-kostl .
 677     MOVE git_item-xblnr TO lit_item-xblnr .
 678
 679     IF l_flag IS INITIAL.
 680       MOVE git_item-bktxt TO lit_item-bktxt .
 681       MOVE git_item-sgtxt TO lit_item-sgtxt .
 682       MOVE git_item-zuonr TO lit_item-zuonr .
 683     ENDIF.
 684
 685     MOVE git_item-prctr TO lit_item-prctr .
 686     MOVE git_item-name1 TO lit_item-name1 .
 687     MOVE git_item-name2 TO lit_item-name2 .
 688     MOVE git_item-waers TO lit_item-waers .
 689     MOVE git_item-kursf TO lit_item-kursf .
 690     MOVE git_item-shkzg TO lit_item-shkzg .
 691     lit_item-dmbtr = lit_item-dmbtr  + git_item-dmbtr.
 692     lit_item-wrbtr = lit_item-wrbtr  + git_item-wrbtr.
 693
 694     l_flag = c_x.
 695     AT END OF shkzg.
 696       APPEND lit_item.
 697       CLEAR lit_item.
 698     ENDAT.
 699
 700   ENDLOOP.
 701
 702   REFRESH git_item.
 703   git_item[] = lit_item[].
 704
 705 ENDFORM.                    " PROCESS_DATA
 706
 707 *&---------------------------------------------------------------------*
 708 *&      Form  DISPLAY_DATA
 709 *&---------------------------------------------------------------------*
 710 *       text
 711 *----------------------------------------------------------------------*
 712 *  -->  p1        text
 713 *  <--  p2        text
 714 *----------------------------------------------------------------------*
 715 FORM display_data .
 716
 717 * Local Variable
 718   DATA: l_repid      TYPE sy-repid,
 719         l_prntparams TYPE slis_print_alv.
 720 * Local Work Area
 721   DATA: lwa_layout    TYPE slis_layout_alv,
 722         lwa_variant   TYPE disvariant.
 723
 724 * Create ALV Field Catalog/Comment/Event
 725   PERFORM create_fieldcatalog.
 726   PERFORM alv_set_variant CHANGING lwa_variant.
 727
 728 * Assign Program ID
 729   l_repid = sy-repid.
 730 * Layout
 731   lwa_layout-box_fieldname = ‘SEL‘.
 732   lwa_layout-zebra = c_x.
 733   lwa_layout-colwidth_optimize = c_x.
 734
 735 * Call ALV
 736   CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY‘
 737     EXPORTING
 738       i_callback_program       = g_repid
 739       i_callback_pf_status_set = c_pf_set
 740       i_callback_user_command  = c_user_command
 741       it_events                = git_events
 742       is_layout                = lwa_layout
 743       it_fieldcat              = git_fieldcat
 744       i_save                   = c_save_all
 745       is_print                 = l_prntparams
 746       is_variant               = lwa_variant
 747     TABLES
 748       t_outtab                 = git_list
 749     EXCEPTIONS
 750       program_error            = 1
 751       OTHERS                   = 2.                         "#EC *
 752
 753 ENDFORM.                    " DISPLAY_DATA
 754 *&---------------------------------------------------------------------*
 755 *&      Form  CREATE_FIELDCATALOG
 756 *&---------------------------------------------------------------------*
 757 *       text
 758 *----------------------------------------------------------------------*
 759 *  -->  p1        text
 760 *  <--  p2        text
 761 *----------------------------------------------------------------------*
 762 FORM create_fieldcatalog .
 763 * Create Field Catalog
 764   DATA: lit_fieldcat  TYPE slis_t_fieldcat_alv.
 765
 766   CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE‘
 767    EXPORTING
 768       i_program_name               = g_repid
 769       i_internal_tabname           = ‘GTY_LIST‘
 770 *      i_client_never_display       = c_x
 771       i_inclname                   = g_repid
 772     CHANGING
 773       ct_fieldcat                  = lit_fieldcat
 774    EXCEPTIONS
 775      inconsistent_interface       = 1
 776      program_error                = 2
 777      OTHERS                       = 3
 778             .
 779   IF sy-subrc <> 0.
 780 * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
 781 *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 782   ENDIF.
 783
 784   set_fc: c_bukrs    c_bukrs  text-h01 ‘‘."Company Code
 785   set_fc: c_belnr    c_belnr  text-h02 ‘‘."Accounting Document Number
 786   set_fc: c_gjahr    c_gjahr  text-h03 ‘‘."Fiscal Year
 787   set_fc: c_blart    c_blart  text-h04 ‘‘."document type
 788   set_fc: c_budat    ‘‘  text-h05 ‘‘."Payment time
 789   set_fc: c_monat    ‘‘  text-h06 ‘‘."Fiscal Period
 790   set_fc: c_cpudt    ‘‘  text-h07 ‘‘."Day Was Entered
 791   set_fc: c_usnam    ‘‘  text-h08 ‘‘."User Name
 792 *start-add by alex han 20130604
 793   set_fc: c_ppnam    ‘‘  text-h19 ‘‘."Parked BY
 794 *end-add by alex han 20130604
 795   set_fc: c_xblnr    ‘‘  text-h09 ‘‘."Reference Document Number
 796   set_fc: c_bktxt    ‘‘  text-h10 ‘‘."Document Header Text
 797   set_fc: c_waers    ‘‘  text-h11 ‘‘."Currency Key
 798   set_fc: c_kursf    ‘‘  text-h12 ‘‘."Exchange rate
 799   set_fc: c_prcnr    ‘‘  text-h14 ‘‘."PRC number
 800   set_fc: c_prctp    ‘‘  text-h13 ‘‘."PRC Doc.Type Name
 801   set_fc: c_name1    ‘‘  text-h15 ‘‘. "company name
 802   set_fc: c_pflag    ‘‘  text-h16 ‘‘. "company name
 803
 804 ENDFORM.                    " CREATE_FIELDCATALOG
 805 *&---------------------------------------------------------------------*
 806 *&      Form  f_alv_set_variant
 807 *&---------------------------------------------------------------------*
 808 *       text
 809 *----------------------------------------------------------------------*
 810 *      -->P_LWA_VAR  text
 811 *----------------------------------------------------------------------*
 812 FORM alv_set_variant CHANGING p_lwa_var TYPE disvariant.
 813
 814 * Assign Variant
 815   p_lwa_var-report      = sy-repid.
 816   p_lwa_var-handle      = space.
 817   p_lwa_var-log_group   = space.
 818   p_lwa_var-username    = sy-uname.
 819   p_lwa_var-variant     = space.
 820   p_lwa_var-text        = space.
 821   p_lwa_var-dependvars  = space.
 822
 823 ENDFORM.                    " f_alv_set_variant
 824
 825 *&---------------------------------------------------------------------*
 826 *&      Form  PF_STATUS_SET
 827 *&---------------------------------------------------------------------*
 828 *       text
 829 *----------------------------------------------------------------------*
 830 *  -->  p1        text
 831 *  <--  p2        text
 832 *----------------------------------------------------------------------*
 833 FORM pf_status_set USING pt_extab TYPE slis_t_extab.
 834   SET PF-STATUS ‘PF_STATUS‘ EXCLUDING pt_extab.
 835
 836 ENDFORM.                    " PF_STATUS_SET
 837
 838 *&---------------------------------------------------------------------*
 839 *&  Form  f_user_command_alv
 840 *&---------------------------------------------------------------------*
 841 *   User Commnad From ALV Screen
 842 *----------------------------------------------------------------------*
 843 FORM user_command_alv USING r_ucomm     LIKE sy-ucomm
 844                             ps_selfield TYPE slis_selfield.
 845 ** Local Variable
 846   DATA: l_belnr TYPE bkpf-belnr,
 847         l_bukrs TYPE bkpf-bukrs,
 848         l_gjahr TYPE bkpf-gjahr.
 849   DATA: lo_grid TYPE REF TO cl_gui_alv_grid.
 850   CALL FUNCTION ‘GET_GLOBALS_FROM_SLVC_FULLSCR‘
 851     IMPORTING
 852       e_grid = lo_grid.
 853   CALL METHOD lo_grid->check_changed_data.
 854
 855 * Check User Command
 856   CASE r_ucomm.
 857     WHEN ‘&IC1‘.  " Double Click
 858 **     Set Parameters
 859       CHECK ps_selfield-fieldname = c_belnr.
 860       l_belnr =  ps_selfield-value.
 861       READ TABLE git_list INDEX ps_selfield-tabindex.
 862       IF sy-subrc = 0.
 863         l_bukrs = git_list-bukrs.
 864         l_gjahr = git_list-gjahr.
 865       ENDIF.
 866
 867       SET PARAMETER ID: ‘BLN‘ FIELD l_belnr .
 868       SET PARAMETER ID: ‘BUK‘ FIELD l_bukrs .
 869       SET PARAMETER ID: ‘GJR‘ FIELD l_gjahr .
 870       CALL TRANSACTION ‘FB03‘ AND SKIP FIRST SCREEN.
 871       CLEAR r_ucomm.
 872
 873     WHEN ‘PRNT‘ OR ‘&PRT‘.
 874       READ TABLE git_list WITH KEY sel = c_x.
 875       IF sy-subrc = 0.
 876         PERFORM print_voucher USING c_x ‘‘..
 877         ps_selfield-refresh = c_x.
 878       ELSE.
 879         MESSAGE s099(ba) DISPLAY LIKE ‘E‘ WITH text-m04.
 880       ENDIF.
 881
 882     WHEN OTHERS.
 883   ENDCASE.
 884 ENDFORM.                    " f_user_command_alv
 885 *&---------------------------------------------------------------------*
 886 *&      Form  PRINT_VOUCHER
 887 *&---------------------------------------------------------------------*
 888 *       text
 889 *----------------------------------------------------------------------*
 890 *      -->P_C_X  text
 891 *      -->P_0891   text
 892 *----------------------------------------------------------------------*
 893 FORM print_voucher  USING    pu_preview TYPE tdpreview
 894                              pu_tdimmed TYPE tdimmed.
 895   DATA: lv_fm_name       TYPE rs38l_fnam,
 896         lv_ldest         TYPE usr01-spld,
 897         lwa_controlpara  TYPE ssfctrlop,
 898         lwa_output       TYPE ssfcompop.
 899   DATA:
 900 *& Start of Insertion CR00158 by Davy on 2013/08/06
 901         ls_ssfcresop     TYPE ssfcresop,
 902 *& End of Insertion CR00158 by Davy on 2013/08/06
 903         ls_ssfcrescl     TYPE ssfcrescl,
 904         ls_ssfctrlop     TYPE ssfctrlop,
 905         ls_ssfcompop     TYPE ssfcompop.
 906
 907   DATA: ls_output_info    TYPE  ssfcrescl,
 908         ls_output_options TYPE  ssfcresop.
 909
 910   CLEAR lv_ldest.
 911   SELECT SINGLE spld FROM usr01 INTO lv_ldest
 912    WHERE bname = sy-uname.
 913
 914   lwa_controlpara-langu  = sy-langu.
 915   lwa_controlpara-no_dialog  = c_x.
 916   lwa_controlpara-device = ‘PRINTER‘.
 917   lwa_output-tddest      = lv_ldest.
 918   lwa_controlpara-preview = pu_preview.
 919   lwa_output-tdimmed = pu_tdimmed.
 920
 921 *Get Smartform Function Name
 922   CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME‘
 923     EXPORTING
 924       formname           = c_formname
 925     IMPORTING
 926       fm_name            = lv_fm_name
 927     EXCEPTIONS
 928       no_form            = 1
 929       no_function_module = 2
 930       OTHERS             = 3.
 931
 932   IF sy-subrc <> 0.
 933     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
 934     WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
 935     RETURN.
 936   ENDIF.
 937
 938 *--->Setup output options berfore call smartforms
 939   ls_ssfctrlop-device = ‘PRINTER‘.
 940   ls_ssfctrlop-preview = c_x.
 941   ls_ssfctrlop-langu = sy-langu.
 942   ls_ssfcompop-tddest = lv_ldest.                           "‘LO01‘.
 943   ls_ssfcompop-tdimmed = c_x.
 944   ls_ssfcompop-tdnewid = c_x.
 945
 946 *Open spool
 947 *& Start of Insertion CR00158 by Davy on 2013/08/06
 948   CLEAR ls_ssfcresop.
 949 *& End of Insertion CR00158 by Davy on 2013/08/06
 950   CALL FUNCTION ‘SSF_OPEN‘
 951     EXPORTING
 952       control_parameters = ls_ssfctrlop
 953       output_options     = ls_ssfcompop
 954       user_settings      = ‘ ‘
 955 *& Start of Insertion CR00158 by Davy on 2013/08/06
 956             IMPORTING
 957        job_output_options = ls_ssfcresop  "add importing parameters
 958 *& End of Insertion CR00158 by Davy on 2013/08/06
 959     EXCEPTIONS
 960       formatting_error   = 1
 961       internal_error     = 2
 962       send_error         = 3
 963       user_canceled      = 4.
 964   CHECK sy-subrc = 0.
 965
 966 *--->Call Smartforms by Function Mode Name
 967   CLEAR ls_ssfctrlop.
 968   ls_ssfctrlop-no_open = c_x.
 969   ls_ssfctrlop-no_close = c_x.
 970
 971   LOOP AT git_list WHERE sel = c_x.
 972
 973     REFRESH git_header.
 974     REFRESH git_detail.
 975     git_header[] = git_head[].
 976     git_detail[] = git_item[].
 977
 978     DELETE git_header WHERE bukrs <> git_list-bukrs.
 979     DELETE git_header WHERE belnr <> git_list-belnr.
 980     DELETE git_header WHERE gjahr <> git_list-gjahr.
 981
 982     DELETE git_detail WHERE bukrs <> git_list-bukrs.
 983     DELETE git_detail WHERE belnr <> git_list-belnr.
 984     DELETE git_detail WHERE gjahr <> git_list-gjahr.
 985
 986 *& Start of Insertion CR00158 by Davy on 2013/08/06
 987 * Reset prc number
 988     IF ls_ssfcresop-tdpreview IS INITIAL. "Print mode
 989       PERFORM update_prc_log.
 990     ENDIF.
 991 *& End of Insertion CR00158 by Davy on 2013/08/06
 992
 993     CLEAR: ls_output_info,ls_output_options.
 994 *Open Smartforms
 995     CALL FUNCTION lv_fm_name
 996       EXPORTING
 997         control_parameters = ls_ssfctrlop "lwa_controlpara
 998         output_options     = lwa_output
 999         user_settings      = ‘‘
1000         im_report          = sy-repid
1001       IMPORTING
1002         job_output_info    = ls_output_info
1003         job_output_options = ls_output_options
1004       EXCEPTIONS
1005         formatting_error   = 1
1006         internal_error     = 2
1007         send_error         = 3
1008         user_canceled      = 4
1009         OTHERS             = 5.
1010     IF sy-subrc <> 0.
1011       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
1012       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
1013       RETURN.
1014     ENDIF.
1015
1016 *& Start of Deletion CR00158 by Davy on 2013/08/06
1017 *    PERFORM update_prc_log.
1018 *& End of Deletion CR00158 by Davy on 2013/08/06
1019
1020   ENDLOOP.
1021
1022 *Close spool
1023   CALL FUNCTION ‘SSF_CLOSE‘
1024     IMPORTING
1025       job_output_info = ls_ssfcrescl.
1026
1027
1028   IF NOT ls_ssfcrescl-spoolids[] IS INITIAL OR
1029      ls_ssfcrescl-outputdone <> ‘‘.
1030     PERFORM modify_table TABLES git_upd09.
1031 *    MODIFY zc0000fit0009 FROM TABLE git_upd09.
1032 *    IF sy-subrc = 0.
1033 *      COMMIT WORK.
1034 *    ELSE.
1035 *      ROLLBACK WORK.
1036 *      MESSAGE s099(ba) DISPLAY LIKE c_e WITH text-m03.
1037 *    ENDIF.
1038
1039     git_list-pflag = text-h17.
1040     MODIFY git_list TRANSPORTING pflag WHERE sel = c_x.
1041
1042   ENDIF.
1043
1044   REFRESH git_upd09.
1045
1046 ENDFORM.                    " PRINT_VOUCHER
1047 *&---------------------------------------------------------------------*
1048 *&      Form  UPDATE_PRC_LOG
1049 *&---------------------------------------------------------------------*
1050 *       text
1051 *----------------------------------------------------------------------*
1052 *  -->  p1        text
1053 *  <--  p2        text
1054 *----------------------------------------------------------------------*
1055 FORM update_prc_log .
1056   DATA: lv_seq    TYPE txnum.
1057   DATA: lv_prcnr  TYPE zc0000fit0009-prcnr.
1058   DATA: lwa_prclg TYPE zc0000fit0009.
1059   DATA: lit_list  TYPE STANDARD TABLE OF zc0000fit0009 WITH HEADER LINE.
1060 *& Start of Insertion CR00158 by Davy on 2013/08/06
1061   DATA: lwa_header TYPE gty_head.
1062 *& End of Insertion CR00158 by Davy on 2013/08/06
1063
1064   SELECT SINGLE * INTO lwa_prclg FROM zc0000fit0009
1065   WHERE bukrs = git_list-bukrs
1066     AND belnr = git_list-belnr
1067     AND gjahr = git_list-gjahr.
1068   CHECK sy-subrc <> 0.
1069
1070   CLEAR: lv_seq,lv_prcnr.
1071   REFRESH lit_list.
1072   lit_list[] = git_upd09[].
1073   DELETE lit_list WHERE bukrs <> git_list-bukrs.
1074   DELETE lit_list WHERE gjahr <> git_list-gjahr.
1075   DELETE lit_list WHERE monat <> git_list-monat.
1076   SORT lit_list BY prcnr DESCENDING.
1077
1078   READ TABLE lit_list INDEX 1.
1079   IF sy-subrc = 0 AND lit_list-prcnr <> ‘‘.
1080     lv_seq  = lit_list-prcnr+6(5).
1081
1082   ELSE.
1083
1084     SELECT MAX( prcnr ) INTO lv_prcnr FROM zc0000fit0009
1085     WHERE bukrs = git_list-bukrs
1086       AND gjahr = git_list-gjahr
1087       AND monat = git_list-monat.
1088     IF sy-subrc = 0.
1089       lv_seq  = lv_prcnr+6(5).
1090     ENDIF.
1091
1092   ENDIF.
1093
1094   lv_seq = lv_seq + 1.
1095   CLEAR lv_prcnr.
1096
1097   CONCATENATE git_list-gjahr git_list-monat lv_seq INTO lv_prcnr.
1098   lwa_prclg-prcnr = lv_prcnr.
1099   lwa_prclg-bukrs = git_list-bukrs.
1100   lwa_prclg-belnr = git_list-belnr.
1101   lwa_prclg-gjahr = git_list-gjahr.
1102   lwa_prclg-monat = git_list-monat.
1103
1104 *& Start of Insertion CR00158 by Davy on 2013/08/06
1105 * Reset the PRC number
1106   lwa_header-prcnr = lv_prcnr.
1107   MODIFY git_header FROM lwa_header TRANSPORTING prcnr
1108    WHERE bukrs = git_list-bukrs
1109      AND belnr = git_list-belnr
1110      AND gjahr = git_list-gjahr.
1111 *& End of Insertion CR00158 by Davy on 2013/08/06
1112
1113   APPEND lwa_prclg TO git_upd09.
1114   CLEAR lwa_prclg.
1115
1116 ENDFORM.                    " UPDATE_PRC_LOG
1117 *&---------------------------------------------------------------------*
1118 *&      Form  CONV_AMOUNT
1119 *&---------------------------------------------------------------------*
1120 *       text
1121 *----------------------------------------------------------------------*
1122 *      -->P_VA1  text
1123 *      <--P_STR  text
1124 *----------------------------------------------------------------------*
1125 FORM conv_amount USING value(pv_source)
1126                  CHANGING value(pv_result).
1127   DATA: scr(30) TYPE c, res(60) TYPE c,fen(2) TYPE c .
1128   DATA: len TYPE i, c1 TYPE i, c2 TYPE i, c3 TYPE i, c4 TYPE i.
1129   DATA: d1(1) TYPE c, d2(1) TYPE c, d3 TYPE i.
1130   DATA: digit(2) TYPE c, weight(2) TYPE c.
1131   DATA: leroy(4) TYPE c VALUE ‘零元‘.
1132   DATA: lfen(2)  TYPE c VALUE ‘分‘.
1133   DATA: lint(2)  TYPE c VALUE ‘整‘.
1134   DATA: rule1(20) TYPE c VALUE ‘零壹贰叁肆伍陆柒捌玖‘.
1135   DATA: rule2(30) TYPE c VALUE ‘分角元拾佰仟万拾佰仟亿拾佰仟万‘.
1136   scr = pv_source * 100.
1137   CONDENSE scr NO-GAPS.
1138   IF scr = ‘0‘.
1139     res = leroy. "‘零元‘.
1140   ELSE.
1141     len = STRLEN( scr ).
1142     c1 = 0.
1143     d1 = ‘0‘.
1144     CLEAR res.
1145     DO len TIMES.
1146       c1 = c1 + 1.
1147       c2 = len - c1.
1148       d2 = scr+c2(1) .
1149       IF d2 = ‘0‘.
1150         d3 = 0.
1151       ELSE.
1152         d3 = d2.
1153       ENDIF.
1154       digit = rule1+d3(1) .
1155       c3 = ( c1 - 1 ) .
1156       weight = rule2+c3(1) .
1157       IF d2 = ‘0‘.
1158         IF c1 = 3.
1159           digit = ‘‘.
1160         ELSEIF c1 = 7.
1161           digit = ‘‘.
1162           IF len > 10 .
1163             c4 = len - 10.
1164             IF scr+c4(4) = ‘0000‘.
1165               weight = ‘‘.
1166             ENDIF.
1167           ENDIF.
1168         ELSEIF c1 = 11.
1169           digit = ‘‘.
1170         ELSEIF d1 = ‘0‘.
1171           digit = ‘‘.
1172           weight = ‘‘.
1173         ELSE.
1174           weight = ‘‘.
1175         ENDIF.
1176       ENDIF.
1177       CONCATENATE digit weight res INTO res .
1178       d1 = d2.
1179     ENDDO.
1180   ENDIF.
1181   len = STRLEN( res ) - 1.
1182   fen = res+len(1).
1183   IF fen <> lfen. "‘分‘ .
1184     CONCATENATE res lint  INTO pv_result."‘整‘
1185   ELSE.
1186     pv_result = res.
1187   ENDIF.
1188 ENDFORM.                    " CONV_AMOUNT
1189 *&---------------------------------------------------------------------*
1190 *&      Form  SET_NEXT_PRCNO
1191 *&---------------------------------------------------------------------*
1192 *       text
1193 *----------------------------------------------------------------------*
1194 *      -->P_GIT_BKPF_BUKRS  text
1195 *      -->P_GIT_BKPF_GJAHR  text
1196 *      -->P_GIT_BKPF_MONAT  text
1197 *      <--P_GIT_LIST_PRCNR  text
1198 *----------------------------------------------------------------------*
1199 FORM set_next_prcno  USING    p_git_bkpf_bukrs
1200                               p_git_bkpf_gjahr
1201                               p_git_bkpf_monat
1202                      CHANGING p_git_list_prcnr.
1203
1204   DATA: lv_seq    TYPE txnum.
1205   DATA: lv_prcnr  TYPE zc0000fit0009-prcnr.
1206   DATA: lit_list  TYPE STANDARD TABLE OF gty_list WITH HEADER LINE.
1207
1208   CLEAR p_git_list_prcnr.
1209   CLEAR: lv_seq,lv_prcnr.
1210   REFRESH lit_list.
1211
1212   lit_list[] = git_list[].
1213   DELETE lit_list WHERE bukrs <> p_git_bkpf_bukrs.
1214   DELETE lit_list WHERE gjahr <> p_git_bkpf_gjahr.
1215   DELETE lit_list WHERE monat <> p_git_bkpf_monat.
1216   SORT lit_list BY prcnr DESCENDING.
1217
1218 * read table git_prclg2 with key bukrs = p_git_bkpf_bukrs
1219 *                                gjahr = p_git_bkpf_gjahr
1220 *                                monat = p_git_bkpf_monat.
1221
1222   READ TABLE lit_list INDEX 1.
1223   IF sy-subrc = 0 AND lit_list-prcnr <> ‘‘.
1224     lv_seq  = lit_list-prcnr+6(5).
1225
1226   ELSE.
1227
1228     SELECT MAX( prcnr ) INTO lv_prcnr FROM zc0000fit0009
1229     WHERE bukrs = p_git_bkpf_bukrs
1230       AND gjahr = p_git_bkpf_gjahr
1231       AND monat = p_git_bkpf_monat.
1232     IF sy-subrc = 0.
1233       lv_seq  = lv_prcnr+6(5).
1234     ENDIF.
1235
1236   ENDIF.
1237
1238   lv_seq = lv_seq + 1.
1239   CLEAR lv_prcnr.
1240
1241   CONCATENATE p_git_bkpf_gjahr p_git_bkpf_monat lv_seq INTO lv_prcnr.
1242   p_git_list_prcnr = lv_prcnr.
1243
1244 ENDFORM.                    " SET_NEXT_PRCNO
1245 *&---------------------------------------------------------------------*
1246 *&      Form  PF_SMART_GET_DATA
1247 *&---------------------------------------------------------------------*
1248 *       text
1249 *----------------------------------------------------------------------*
1250 *      -->P_IM_HEADER  text
1251 *      -->P_IM_DETAIL  text
1252 *----------------------------------------------------------------------*
1253 *&---------------------------------------------------------------------*
1254 *&      Form  pf_smart_get_data
1255 *&---------------------------------------------------------------------*
1256 FORM pf_smart_get_data TABLES im_header im_detail.
1257   im_header[] = git_header[].
1258 *  im_detail[] = git_detail[].
1259   LOOP AT git_detail.
1260     MOVE-CORRESPONDING git_detail TO im_detail.
1261     APPEND im_detail.
1262     CLEAR im_detail.
1263   ENDLOOP.
1264 ENDFORM.                    "pf_smart_get_data
1265 *&---------------------------------------------------------------------*
1266 *&      Form  PRINT_DATA_BACKGROUND
1267 *&---------------------------------------------------------------------*
1268 *       text
1269 *----------------------------------------------------------------------*
1270 *  -->  p1        text
1271 *  <--  p2        text
1272 *----------------------------------------------------------------------*
1273 FORM print_data_background .
1274   DATA: lv_fm_name      TYPE rs38l_fnam,
1275         lv_ldest        TYPE usr01-spld,
1276         lwa_controlpara TYPE ssfctrlop,
1277         lwa_output      TYPE ssfcompop.
1278   DATA:
1279           ls_ssfcrescl TYPE ssfcrescl,
1280           ls_ssfctrlop TYPE ssfctrlop,
1281           ls_ssfcompop TYPE ssfcompop.
1282
1283   CLEAR lv_ldest.
1284   SELECT SINGLE spld FROM usr01 INTO lv_ldest
1285    WHERE bname = sy-uname.
1286
1287   lwa_controlpara-langu  = sy-langu.
1288   lwa_controlpara-no_dialog  = c_x.
1289   lwa_controlpara-device = ‘PRINTER‘.
1290   lwa_output-tddest      = lv_ldest.
1291   lwa_controlpara-preview = ‘‘.
1292   lwa_output-tdimmed = c_x.
1293   lwa_controlpara-no_dialog = c_x.
1294
1295 *Get Smartform Function Name
1296   CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME‘
1297     EXPORTING
1298       formname           = c_formname
1299     IMPORTING
1300       fm_name            = lv_fm_name
1301     EXCEPTIONS
1302       no_form            = 1
1303       no_function_module = 2
1304       OTHERS             = 3.
1305
1306   IF sy-subrc <> 0.
1307     MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
1308     WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
1309     RETURN.
1310   ENDIF.
1311
1312 *--->Setup output options berfore call smartforms
1313   ls_ssfctrlop-device = ‘PRINTER‘.
1314   ls_ssfctrlop-preview = c_x.
1315   ls_ssfctrlop-langu = sy-langu.
1316   ls_ssfcompop-tddest = lv_ldest.                           "‘LO01‘.
1317   ls_ssfcompop-tdimmed = c_x.
1318   ls_ssfcompop-tdnewid = c_x.
1319   ls_ssfcompop-tdnoprev = c_x.
1320
1321 *Open spool
1322   CALL FUNCTION ‘SSF_OPEN‘
1323     EXPORTING
1324       control_parameters = ls_ssfctrlop
1325       output_options     = ls_ssfcompop
1326       user_settings      = ‘ ‘
1327     EXCEPTIONS
1328       formatting_error   = 1
1329       internal_error     = 2
1330       send_error         = 3
1331       user_canceled      = 4.
1332   CHECK sy-subrc = 0.
1333
1334 *--->Call Smartforms by Function Mode Name
1335   CLEAR ls_ssfctrlop.
1336   ls_ssfctrlop-no_open = c_x.
1337   ls_ssfctrlop-no_close = c_x.
1338
1339   LOOP AT git_list.
1340
1341     REFRESH git_header.
1342     REFRESH git_detail.
1343     git_header[] = git_head[].
1344     git_detail[] = git_item[].
1345
1346     DELETE git_header WHERE bukrs <> git_list-bukrs.
1347     DELETE git_header WHERE belnr <> git_list-belnr.
1348     DELETE git_header WHERE gjahr <> git_list-gjahr.
1349
1350     DELETE git_detail WHERE bukrs <> git_list-bukrs.
1351     DELETE git_detail WHERE belnr <> git_list-belnr.
1352     DELETE git_detail WHERE gjahr <> git_list-gjahr.
1353
1354 *Open Smartforms
1355     CALL FUNCTION lv_fm_name
1356       EXPORTING
1357         control_parameters = ls_ssfctrlop "lwa_controlpara
1358         output_options     = lwa_output
1359         user_settings      = ‘‘
1360         im_report          = sy-repid
1361       EXCEPTIONS
1362         formatting_error   = 1
1363         internal_error     = 2
1364         send_error         = 3
1365         user_canceled      = 4
1366         OTHERS             = 5.
1367     IF sy-subrc <> 0.
1368       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
1369       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
1370       RETURN.
1371     ENDIF.
1372
1373     PERFORM update_prc_log.
1374   ENDLOOP.
1375
1376 *Close spool
1377   CALL FUNCTION ‘SSF_CLOSE‘
1378     IMPORTING
1379       job_output_info = ls_ssfcrescl.
1380
1381   IF NOT ls_ssfcrescl-spoolids[] IS INITIAL OR
1382      ls_ssfcrescl-outputdone <> ‘‘.
1383     PERFORM modify_table TABLES git_upd09.
1384 *    MODIFY zc0000fit0009 FROM TABLE git_upd09.
1385 *    IF sy-subrc = 0.
1386 *      COMMIT WORK.
1387 *    ELSE.
1388 *      ROLLBACK WORK.
1389 *      MESSAGE s099(ba) DISPLAY LIKE c_e WITH text-m03.
1390 *    ENDIF.
1391   ENDIF.
1392
1393   REFRESH git_upd09.
1394
1395 ENDFORM.                    " PRINT_DATA_BACKGROUND
1396 *&---------------------------------------------------------------------*
1397 *&      Form  CONVERT_RATE
1398 *&---------------------------------------------------------------------*
1399 *       text
1400 *----------------------------------------------------------------------*
1401 *      -->P_GIT_BKPF_WAERS  text
1402 *      <--P_GIT_ITEM_KURSF  text
1403 *----------------------------------------------------------------------*
1404 FORM convert_rate  USING    p_git_bkpf_waers p_git_bkpf_kursf
1405                    CHANGING p_git_item_kursf.
1406
1407   DATA: v_amount(16) TYPE p DECIMALS 6.
1408
1409   v_amount = p_git_bkpf_kursf.
1410
1411   TABLES: tcurx.
1412
1413   SELECT SINGLE * FROM tcurx WHERE currkey = p_git_bkpf_waers.
1414   IF sy-subrc = 0.
1415     v_amount = v_amount * 10 ** ( tcurx-currdec - 2 ).
1416   ENDIF.
1417
1418   p_git_item_kursf = v_amount.
1419
1420 ENDFORM.                    " CONVERT_RATE
1421 *&---------------------------------------------------------------------*
1422 *&      Form  MODIFY_TABLE
1423 *&---------------------------------------------------------------------*
1424 *       text
1425 *----------------------------------------------------------------------*
1426 *      -->P_GIT_UPD09  text
1427 *----------------------------------------------------------------------*
1428 FORM modify_table  TABLES   p_git_upd09 STRUCTURE zc0000fit0009.
1429   "Insert correct name for <...>.
1430   DATA: wa_upd09 TYPE zc0000fit0009.
1431
1432   CHECK NOT p_git_upd09[] IS INITIAL.
1433
1434   LOOP AT p_git_upd09 INTO wa_upd09.
1435
1436     CALL FUNCTION ‘ENQUEUE_EZ_ZC0000FIT0009‘
1437       EXPORTING
1438         mode_zc0000fit0009 = ‘X‘
1439         mandt              = sy-mandt
1440         bukrs              = wa_upd09-bukrs
1441         belnr              = wa_upd09-belnr
1442         gjahr              = wa_upd09-gjahr
1443       EXCEPTIONS
1444         foreign_lock       = 1
1445         system_failure     = 2
1446         OTHERS             = 3.
1447     IF sy-subrc <> 0.
1448       MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
1449               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
1450     ENDIF.
1451
1452     MODIFY zc0000fit0009 FROM wa_upd09.
1453     IF sy-subrc = 0.
1454       COMMIT WORK.
1455     ELSE.
1456       ROLLBACK WORK.
1457       MESSAGE s099(ba) DISPLAY LIKE c_e WITH text-m03.
1458     ENDIF.
1459
1460     CALL FUNCTION ‘DEQUEUE_EZ_ZC0000FIT0009‘
1461       EXPORTING
1462         mode_zc0000fit0009 = ‘X‘
1463         mandt              = sy-mandt
1464         bukrs              = wa_upd09-bukrs
1465         belnr              = wa_upd09-belnr
1466         gjahr              = wa_upd09-gjahr.
1467
1468   ENDLOOP.
1469
1470 ENDFORM.                    " MODIFY_TABLE
1471 *&---------------------------------------------------------------------*
1472 *&      Form  FRM_BALANCE
1473 *&---------------------------------------------------------------------*
1474 *       text
1475 *----------------------------------------------------------------------*
1476 *  -->  p1        text
1477 *  <--  p2        text
1478 *----------------------------------------------------------------------*
1479 form FRM_BALANCE .
1480   DATA: l_func     TYPE csks-func_area.
1481   DATA: l_name1    TYPE kna1-name1.
1482   SPLIT git_ska-txt50 AT ‘-‘ INTO git_item-name1 git_item-name2.
1483   IF git_bseg-lifnr <> ‘‘ AND git_bseg-koart = ‘K‘.
1484     SELECT SINGLE name1 INTO l_name1 FROM lfa1
1485       WHERE lifnr = git_bseg-lifnr.
1486   ENDIF.
1487   IF git_bseg-kunnr <> ‘‘ AND git_bseg-koart = ‘D‘.
1488     SELECT SINGLE name1 INTO l_name1 FROM kna1
1489     WHERE kunnr = git_bseg-kunnr.
1490   ENDIF.
1491
1492   IF NOT l_name1 IS INITIAL.
1493     CONCATENATE git_item-name2 ‘-‘ l_name1 INTO git_item-name2.
1494   ENDIF.
1495 endform.                    " FRM_BALANCE
1496 *&---------------------------------------------------------------------*
1497 *&      Form  FRM_PROFIT
1498 *&---------------------------------------------------------------------*
1499 *       text
1500 *----------------------------------------------------------------------*
1501 *  -->  p1        text
1502 *  <--  p2        text
1503 *----------------------------------------------------------------------*
1504 form FRM_PROFIT .
1505   DATA: l_func     TYPE csks-func_area.
1506   DATA: l_name1    TYPE kna1-name1,
1507         l_aufnr    TYPE bseg-aufnr.
1508 * first class account
1509   SELECT SINGLE func_area INTO l_func FROM csks
1510    WHERE kostl = git_bseg-kostl
1511      AND bukrs = git_bseg-bukrs.                      "#EC *
1512   IF sy-subrc = 0.
1513     SELECT SINGLE prcnm1 INTO git_item-name1
1514       FROM zc0000fit0010
1515       WHERE func_area = l_func.
1516   ENDIF.
1517   git_item-name2 = git_ska-txt50.
1518 * interanl order
1519   IF NOT git_bseg-aufnr IS INITIAL.
1520     CLEAR l_aufnr.
1521     CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_OUTPUT‘
1522       EXPORTING
1523         input  = git_bseg-aufnr
1524       IMPORTING
1525         output = l_aufnr.
1526     CONCATENATE git_item-name2 l_aufnr
1527            INTO git_item-name2 SEPARATED BY space.
1528
1529   ENDIF.
1530 endform.                    " FRM_PROFIT
时间: 2024-10-23 14:53:54

SAP中方会计凭证打印解决方案的相关文章

原创:XXX公司-基于SAP的库存管理系统解决方案

XXX公司-基于SAP的库存管理系统 解决方案 版本:V0.3.0 Excel_Cortan 文件状态: [ ] 草稿 [ ] 正式发布 [√] 正在修改 文件标识:   当前版本: V0.3 作 者: Excel_Cortana 完成日期: 2014-2-7 修改履历 版本 修订日期 修改内容 作者 V0.0.1 2013-11-9 初稿 Excel_Cortana V0.0.2 2013-12-13 增加系统截图 Excel_Cortana                          

可视化、高智能、多功能、XML配置型工业条码打印、标签打印解决方案

前言 现代工业生产中,标签打印无处不在,可以说标签就是产品的脸面.标签种类繁琐,特别是在工业生产中,标签信息需要与生产系统相关联,动态地获取打印信息.当然我们可以为每个标签写一个生成程序,但如果标签种类成千上万,那么就需要投入大量的人力.物力.比如一个很小的布局变动也去修改程序代码,显然是不明智的.如何构建一个可视化.高智能.多功能的工业条码打印解决框架,正是我们迫切需要解决的难题. 可视化.高智能.多功能.XML配置型工业条码打印解决方案应运而生,旨在解决上述难题.下面简要的给出部分截图,有兴

SNF快速开发平台3.0之--MVC 打印解决方案

SNF-MVC打印报表方案: 报表模块创建的过程如下: 利用Stimulsoft Reports客户端报表工具新增一个报表文件 *.mrt 当然你也可以拿好用的*.mrt模版文件进行复制出来一个,我常用这个方法. 按规定要求放于指定位置:Areas->Sys->Reports->BaseRole.mrt 打开对应的页面功能,点击打印即可,也可以在线编辑报表 第一步:配置打印按钮 第二步:配置打印方法 //打印 this.printClick = function () { snf.ope

QTableView另类打印解决方案(复用render函数去解决print问题)

Qt QTableView另类打印解决方案     上回书说道Qt的model/view,我就做了个demo用于显示数据库中的内容.没想到tableview的打印竟然成了问题.我困惑了,难道Qt不应该提供一个print函数给tableview吗?这是最最常用的功能啊.    Google了半天,也没什么有用的结果.看到Qt labs有一篇blog,叫“All You Need is a little Polish”,里面给出了最新的spreadsheet demo中的tableview prin

SAP & Oracle EBS集成解决方案

一.需求分析 SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的亲耐.然而由于 系统庞大.价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑: 1.SAP如何实现"线上+线下"闭环流程 SAP用户外延流程设计以及二次开发流程面临挑战. 2.如何梳理业务流程 企业的制度.规则和 流程体系大多 散落在各个业务系统 中,管理 和 变更这些散落的要素存在难点. 3.如何实现持续流程改进 SAP工作流在流程规划.分析和变更方面,如何更好的满足中国企业 需求. 4

SAP智能机器人流程自动化解决方案

本文是2020年第14篇原创文章,也是汪子熙公众号总共第197篇原创文章. 今天这篇文章的主题是机器人(Robot). Jerry看过的第一部机器人主题的电影,就是大神詹姆斯-卡梅隆的神作<终结者II>,里面的T1000一度成为我的童年阴影. 几个月前我才欣赏完最新上映的终结者:黑暗命运(Dark Fate),又一部收割终结者粉丝情怀的续作. 当看到白发苍苍的琳达·汉密尔顿饰演的莎拉·康纳穿越了28年漫长的岁月,以终结者迷最熟悉的风格重新出现在荧屏上时,我竟有些情不能自已. 下图是Linda

BPM与 SAP &amp; Oracle EBS集成解决方案分享

一.需求分析 SAP和Oracle EBS都是作为全球顶级的的ERP产 品,得到了众多客户的青睐.然而由于系统庞大.价格昂贵以及定位不同,客户在实施过程中经常会面临以下困惑: 1.SAP如何实现"线上+线下"闭环流程 SAP用户外延流程设计以及二次开发流程面临挑战. 2.如何梳理业务流程 企业的制度.规则和流程体系大多散落在各个业务系统中,管理和变更这些散落的要素存在难点. 3.如何实现持续流程改进 SAP工作流在流程规划.分析和变更方面,如何更好的满足中国企业需求. 4.如何实现跨系

使用log4j.xml日志重复打印解决方案

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- in java cmd add -Dlog4j.configuration=logging.xml --> <log4j:configuration xmlns:log4j="http://jakarta.a

SAP公有云和私有云解决方案概述

SAP公有云解决方案见下图最右侧,比较著名的有SAP SuccessFactors和SAP Cloud for Customer(C4C)等,作为SAP软件即服务(SaaS)的解决方案. 而最左侧的SAP HANA Enterprise Cloud,是SAP一个私有云平台.这个平台上能购买的方案最主要的就是SAP S/4HANA(当然也有Business Suite等).客户购买产品后,SAP负责搭建底层基础设施(Infrastructure)和系统运维.也就是说,这些系统实际上运行于SAP遍布