赶快加入我们,队员招募。
此处待编辑
QQ群:28069988

赶快加入我们,队员招募。
此处待编辑
QQ群:28069988
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
(1).Screen 设计 TABLES: SSCRFIELDS. PARAMETERS: P_EBLEN LIKE VBRK-EBLEN DEFAULT ' '. PARAMETERS: P_CK1 AS CHECKBOX DEFAULT 'X'. PARAMETERS: P_CK2 AS CHECKBOX. PARAMETERS: P_RAD1 RADIOBUTTON GROUP SG1 DEFAULT 'X'. PARAMETERS: P_RAD2 RADIOBUTTON GROUP SG1 . SELECT-OPTIONS: S_EBLEN FOR VBRK-EBLEN NO-EXTENSTION. “无后边的箭头 SELECT-OPTIONS: S_EBLEN FOR VBRK-EBLEN NO INTERVALS. ”无到后边的选项 SELECTION-SCREEN SKIP 1. "产生空行 SELECTION-SCREEN BEGIN OF LINE . "将元素排列到一行 SELECTION-SCREEN END OF LINE. SELECTION-SCREEN ULINE. "画直线 SELECTION-SCREEN COMMENT 10(20) TEXT-001."屏幕上输出文本 SELECTION-SCREEN BEGIN OF BLOCK BK1 WITH FRAME TITLE TEXT-002. SELECTION-SCREEN END OF BLOCK BK1. SELECTION-SCREEN PUSHBUTTON 50(10) TEXT-003 USER-COMMAND BUT1. "产生按钮 SELECTION-SCREEN FUNCTION KEY 1. "工具条按钮 最多为5个. PARAMETERS: <P> .... MEMORY ID <PID>. "从全局SAP内存(SPA/GPA参数)使用缺省值 SET PARAMETERS ID 'HK' FIELD 'Test Parameters' "以'HK'为名称在全局SAP内存中存储值. PARAMETERS: P_TEST(16) TYPE C MEMORY ID HK. "使用缺省值 GET PARAMETERS ID ' ' FIELD ' '. INITIALIZATION. SSCRFIELDS-FUNCTXT_01 = 'Button 1'. SSCRFIELDS-UCOMM = 'FC01'. (2).修改Screen NAME “字段名称 GROUP1 ”字段组1 GROUP2 “字段组2 GROUP3 ”字段组3 GROUP4 “字段组4 ACTIVE ”可见并准备输入的字段 REQUIRED “强制输入的字段 INPUT ”字段准备输入 OUTPUT ”字段仅用来显示 INTENSIFIED ”高亮显示字段 INVISIBLE “字段不可见 LENGTH “设置字段长度 DISPLAY_3D “以3围框架显示字段 VALUE_HELP ”显示有值帮助的字段 在PBO模块中对字段进行属性修改 MODULE MODIFY_SCREEN OUTPUT. LOOP AT SCREEN. CHECK SCREEN-GROUP1 = 'MOD'. SCREEN-INPUT = 0. MODIFY SCREEN. ENDLOOP. ENDMODULE. (3) 使用子屏幕 CALL SUBSCREEN <AREA> INCLUDING <PROGRAM> <SCREEN> (4)设置光标位置 SET CURSOR FIELD <FIELD_NAME> OFFSEY <POSITION> 设置光标的特定位置 (5)设置下一个屏幕 SET SCREEN <SCREEN_NUMBER>. CALL SCREEN <SCREEN_NUMBER>.调用新的屏幕序列 LEAVE TO SCREEN 0. SET SCREEN 0. LEAVE SCREEN. (6)后台处理屏幕 可以使用SUPPRESS DIALOG 取消所有屏幕. *---------PBO MODULE OF SCREEN 100. CALL SCREEN 110 STARTING AT 10 5. *---------SCREEN 110 FLOW LOGIC MODULE DIALOG_WINDOWS OUTPUT. SUPPRESS DIALOG. LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 0. WRITE: /. WRITE: /. ENDMODULE. (7)报表及选择屏幕事件过程 报表事件过程 INITIALIZATION 用于屏幕初始化,例如屏幕字段默认值的填充 START-OF-SELECTION END-OF-SELECTION 选择屏幕事件 在INITIALIZATION之前 STATR-OF-SELECTION之后触发 AT SELECTION-SCREEN OUTPUT."对选择屏幕字段进行修改 AT SELECTION-SCREEN INPUT. 处理特殊输入字段 AT SELECTION-SCREEN ON <FIELD> 创建值输入列表 AT SELECTION-SCREEN ON VALUE-REQUEST FOR <FIELD>. 创建输入字段的帮助 AT SELECTION-SCREEN ON HELP-REQUEST FOE <FIELD>. 处理单选按钮组 AT SELECTION-SCREEN ON RADIOBUTTON GROUP <RADIO> 处理输入字段块 AT SELECTION-SCREEN ON BLOCK <BK1>. 标准选择屏幕include 控件 SELECTION-SCREEN INCLUDE BLOCKS: B01, B00. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
REPORT YSARIEL. "Create by Sariel PARAMETERS P_CHAR TYPE CHAR4 OBLIGATORY. "任意长 PARAMETERS P_NUMC TYPE NUMC4 OBLIGATORY. "任意长 PERFORM FRM_GET_RSTR. FORM FRM_GET_RSTR . WRITE / P_CHAR && P_NUMC. IF P_NUMC EQ '9999'. "按定义最大值 DATA(LV_LEN) = STRLEN( P_CHAR ) - 1. PERFORM FRM_GET_CHAR CHANGING LV_LEN P_CHAR. WRITE / P_CHAR && '0000'. "按定义最小值 ELSE. P_NUMC = P_NUMC + 1. WRITE / P_CHAR && P_NUMC. ENDIF. ENDFORM. FORM FRM_GET_CHAR CHANGING CV_INDX CV_CHAR. DATA LS_RESULT TYPE MATCH_RESULT. IF CV_INDX LT 0. MESSAGE 'Max!' TYPE 'E'. ENDIF. FIND CV_CHAR+CV_INDX(1) IN SY-ABCDE RESULTS LS_RESULT. IF SY-SUBRC EQ 0. IF LS_RESULT-OFFSET EQ 25. CV_CHAR+CV_INDX(1) = 'A'. DATA(LV_INDX) = CV_INDX - 1. PERFORM FRM_GET_CHAR CHANGING LV_INDX CV_CHAR. ELSE. DATA(LV_OFFSET) = LS_RESULT-OFFSET + 1. CV_CHAR+CV_INDX(1) = SY-ABCDE+LV_OFFSET(1). ENDIF. ENDIF. ENDFORM. " FRM_GET_CHAR |
在使用bapi BAPI_SALESORDER_CREATEFROMDAT2创建销售订单时,可以通过extensionin参数给自定义的参数赋值。
具体的使用方法可以通过点击Function module documentaion来查看,如下:
下面举例说明:
在销售订单的行项目上的additional data a tab页上有5个自定义的增强字段,如下:
对应表vbap中是如下几个字段,这些字段是通过append的方式加到vbap上的
同样,这些自定义字段也要加到structure VBAPKOZ,BAPE_VBAP和 BAPE_VBAPX中,
总结一下:
如果增强字段在销售订单抬头(vbak)上,则要将增强字段一并append到如下四个表/结构中:
在行项目(vbap)上:
在运货计划行(VBEP)上:
下面介绍如何向bapi中extensionin参数赋值数据,具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
DATA: lwa_bape_vbap TYPE bape_vbap. "BAPI Interface for Customer Enhancements to Table VBAP DATA: lwa_bape_vbapx TYPE bape_vbapx. "BAPI Checkbox for Customer Enhancments to Table VBAP DATA: lwa_extensionin TYPE bapiparex. "Customer Enhancement for VBAK, VBAP, VBEP "Fill item level self-defined fields * extension BAPE_VBAP CLEAR: lwa_bape_vbap, lwa_bape_vbapx. * 订单号可以不填,只填行项目号就可以,然后给自定义字段赋值 lwa_bape_vbap-posnr = lwa_order_items_in-itm_number. lwa_bape_vbap-yymv_mvgr1 = lwa_items-yymv_mvgr1. lwa_bape_vbap-yymv_mvgr2 = lwa_items-yymv_mvgr2. lwa_bape_vbap-yymv_mvgr3 = lwa_items-yymv_mvgr3. lwa_bape_vbap-yymv_mvgr4 = lwa_items-yymv_mvgr4. lwa_bape_vbap-yymv_mvgr5 = lwa_items-yymv_mvgr5. lwa_bape_vbapx-yymv_mvgr1 = 'X'. lwa_bape_vbapx-yymv_mvgr2 = 'X'. lwa_bape_vbapx-yymv_mvgr3 = 'X'. lwa_bape_vbapx-yymv_mvgr4 = 'X'. lwa_bape_vbapx-yymv_mvgr5 = 'X'. lwa_bape_vbapx-posnr = lwa_order_items_in-itm_number. MOVE 'BAPE_VBAP' TO lwa_extensionin-structure. CALL METHOD cl_abap_container_utilities=>fill_container_c EXPORTING im_value = lwa_bape_vbap IMPORTING ex_container = lwa_extensionin-valuepart1. APPEND lwa_extensionin TO m_it_extensionin. CLEAR lwa_extensionin. MOVE 'BAPE_VBAPX' TO lwa_extensionin-structure. MOVE lwa_bape_vbapx TO lwa_extensionin-valuepart1. APPEND lwa_extensionin TO m_it_extensionin. |
最后调用bapi BAPI_SALESORDER_CREATEFROMDAT2时将上面代码中填充好的m_it_extensionin内表传入就可以了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2' EXPORTING order_header_in = m_order_header_in logic_switch = lwa_logic_switch testrun = i_test_run IMPORTING salesdocument = m_order_number TABLES return = lit_return order_items_in = m_it_order_items_in order_partners = m_it_order_partners order_schedules_in = m_it_order_schedules_in order_conditions_in = m_it_order_conditions_in order_cfgs_ref = m_it_order_cfgs_ref order_cfgs_inst = m_it_order_cfgs_inst order_cfgs_value = m_it_order_cfgs_value order_cfgs_refinst = m_it_order_cfgs_refinst order_text = m_it_order_text extensionin = m_it_extensionin "<====自定义字段 partneraddresses = m_it_partneraddresses. |
Check out this SDN blog if you plan to write HANA Certification exam
http://scn.sap.com/community/hana-in-memory/blog/2012/08/27/my-experience-on-hana-certification
Videos available at HANA Academy
http://www.saphana.com/community/resources/hana-academy
http://help.sap.com/hana/hana1_model_en.pdf
Google Custom search for SCN and SAP websites
http://www.google.com/cse/home?cx=013447253335410278659:k8ob9ipscwg
Site Search for SAP Community Network powered by Google. Find discussions (forums), blogs, documents, videos, topic spaces and the latest news found on SCN.
searches sites including: http://scn.sap.com, http://scn.sap.com, http://www.sdn.sap.com , http://help.sap.com, http://scn.sap.com/community/
http://www.google.com/cse/home?cx=013447253335410278659:k8ob9ipscwg
HANA on AWS
Getting Started with HANA on AWS – http://www.saphana.com/community/solutions/cloud-info/cloud/hana-platform-aws
Step by step instructions for setting up SAP HANA on AWS – http://scn.sap.com/docs/DOC-28294
HANA Overview
SAP HANA Appliance Software document list (many locked docs) – http://help.sap.com/hana_appliance/
Whitepaper – Technical Overview SAP HANA – http://www.saphana.com/docs/DOC-1506 & http://www.saphana.com/docs/DOC-1507
Understanding HANA One – http://www.saphana.com/docs/DOC-2481
HANA One quick start – http://cloud.saphana.com/quickstart-aws-hana
HANA Technical White Paper – http://www.saphana.com/docs/DOC-2091 – http://www.saphana.com/servlet/JiveServlet/download/2091-7-7434/HANA%20technical%20white%20paper.pdf
Product Road Map – SAP HANA – http://www.saphana.com/docs/DOC-1636
Licensing / Pricing – http://www.saphana.com/docs/DOC-2080
SAP HANA Hardware Specifications & Product Availability Matrix (PAM) – http://www.saphana.com/docs/DOC-2382
Deep Dive into the SAP In-Memory Technology, Strategy, and Roadmap – http://www.saphana.com/docs/DOC-1437
HANA Deep Dive – http://www.saphana.com/docs/DOC-1257
Enterprise Architecture and HANA – http://www.saphana.com/docs/DOC-2541
Master Guide to HANA – http://www.saphana.com/docs/DOC-1311
Technical Operations Manual – SAP HANA – http://www.saphana.com/docs/DOC-1072
System Order – SAP HANA – http://www.saphana.com/docs/DOC-1213
Overall Installation Guide – SAP HANA 1.0 – http://www.saphana.com/docs/DOC-1040
Installation & Configuration Overview – SAP HANA – http://www.saphana.com/docs/DOC-1218
Installation, Implementation, Master Guides – http://www.saphana.com/docs/DOC-2102
Studio Installation and Update Guide – SAP HANA In-memory Database SP04 – http://www.saphana.com/docs/DOC-1808
Server Installation and Update Guide – SAP In-Memory Database – http://www.saphana.com/docs/DOC-1031
Client Installation and Update Guide – SAP In-Memory Database 1.0 – http://www.saphana.com/docs/DOC-1032
Efficient Transaction Processing in SAP HANA Database – http://www.saphana.com/docs/DOC-2119
HANA for Developers
SAP HANA Developer Center in SAP Developer Center
http://scn.sap.com/community/developer-center/hana
The Road to HANA for Software Developers – http://scn.sap.com/docs/DOC-31723
SAP HANA SQL Reference Documentation – http://help.sap.com/hana/html/index.html
What’s New Release Notes – SAP HANA Appliance Software SPS 04 – What’s New – Release Notes.pdf
Technical Documents – SAP HANA – http://www.saphana.com/docs/DOC-2171
Master Guide – SAP HANA SPS4 – http://www.saphana.com/docs/DOC-1806
Security Guide – SAP HANA – http://www.saphana.com/docs/DOC-1067
Security Guide – SAP In-Memory Database – http://www.saphana.com/docs/DOC-1068
Security and Authentication – SAP HANA – http://www.saphana.com/docs/DOC-1223
Overview – SAP HANA Studio – http://www.saphana.com/docs/DOC-1217
Modeling Features – SAP HANA – http://www.saphana.com/docs/DOC-1216
SAP HANA Modelling Guide PDF – http://www.saphana.com/docs/DOC-1302
Implementing Calculation Views – SAP HANA Modeling – http://www.saphana.com/docs/DOC-1922
Aspects of the HANA-optimized InfoCube – http://www.saphana.com/docs/DOC-1363
SQL Script in Nutshell – http://www.saphana.com/videos/1038
SAP HANA Database – Partitioning and Distribution of Large Tables- http://help.sap.com/hana/hana_db_part_en.pdf
HANA Analytics and BI Tools including BOBJ
SAP_In-Memory_How BI will change_.pdf – http://www.saphana.com/docs/DOC-1238
Analytics Overview – Predictive Analytics with SAP HANA – http://www.saphana.com/docs/DOC-1955
Predictive Analysis Library Manual – http://www.saphana.com/docs/DOC-1402
Business Function Library Manual – http://www.saphana.com/docs/DOC-2378
Integrating R with HANA – http://help.sap.com/hana/hana_dev_r_emb_en.pdf
When SAP HANA met R – http://scn.sap.com/community/developer-center/hana/blog/2012/05/21/when-sap-hana-met-r–first-kiss
ABC CLASSIFICATION & C4.5 DECISION TREE – http://www.saphana.com/docs/DOC-1283
High level steps of using SAP HANA and BI 4.0 tools – http://www.saphana.com/docs/DOC-1556
Best Practices – Creating a universe on SAP HANA – http://www.saphana.com/docs/DOC-1682
Using SAP HANA Variables with SAP BusinessObjects BI 4.0 – http://www.saphana.com/docs/DOC-1688
Setting up end to end security for SAP HANA and BI4.0 – http://www.saphana.com/docs/DOC-2416
Installation Guide – SAP BusinessObjects Information Platform Services 4.0 Feature Pack 3 – http://www.saphana.com/docs/DOC-1036
What’s new guide – SAP BusinessObjects Analysis, edition for Microsoft Office 1.2 SP5 – http://www.saphana.com/docs/DOC-1684
What’s new guide – SAP BusinessObjects Business Intelligence platform 4.0 – http://www.saphana.com/docs/DOC-1685
User’s Guide – SAP BusinessObjects Web Intelligence 4.0 FP3 – http://www.saphana.com/docs/DOC-1065
User’s Guide – SAP BusinessObjects Web Intelligence Rich Client 4.0 FP3 – http://www.saphana.com/docs/DOC-1066
FAQ for IT – SAP BusinessObjects Explorer – http://www.saphana.com/docs/DOC-1756
SAP BusinessObjects Explorer on BW on HANA – http://www.saphana.com/docs/DOC-2099
Overview – Operational Reporting – http://www.saphana.com/docs/DOC-1618
HANA Clients for different Reporting tools and their relations ships – http://sapanalyticsguru.com/hana/hana-clients-for-different-reporting-tools-and-their-relations-ships/
Unstructured Data – http://www.saphana.com/docs/DOC-2118
Turbo Charge Big Data Analytics with SAP HANA and Hadoop – http://www.saphana.com/docs/DOC-2125
Data Services
Data Provisioning – SAP HANA – http://www.saphana.com/docs/DOC-1210
SAP HANA Information Composer V 1.0 – External Data Upload – http://www.saphana.com/docs/DOC-1552
Extractor-based Data Acquisition by SAP HANA Direct Extractor – http://www.saphana.com/docs/DOC-2301
Using the Direct Extractor Connection (DXC) – http://www.saphana.com/docs/DOC-2420
SAP BusinessObjects Data Services 4.1 – http://help.sap.com/bods
Installation Guide – SAP BusinessObjects Data Services XI 4.0 – http://www.saphana.com/docs/DOC-1038
How To… load SAP Business Suite data into SAP HANA using SAP BusinessObjects Data Services – http://www.saphana.com/docs/DOC-1354
Data Services Administrator’s Guide – SAP BusinessObjects – http://www.saphana.com/docs/DOC-1070
SAP System Landscape Transformation SLT – http://www.saphana.com/docs/DOC-2116
ETL – Extraction Transformation Loading – http://www.saphana.com/docs/DOC-2117
Installation Guide – Trigger-Based Data Replication SAP HANA – http://www.saphana.com/docs/DOC-1352
Overview Presentation – SAP LT Replication Server for SAP HANA – http://www.saphana.com/docs/DOC-1811
Whitepaper – LT Replication Server – http://www.saphana.com/docs/DOC-1334
Webinar: Replicating Data into the SAP HANA Database Using SAP LT Replication Server – http://www.saphana.com/docs/DOC-1145
SAP LT Replication Server for SAP HANA SPS03 – http://www.saphana.com/docs/DOC-1335
Replicating SAP system tables in HANA using SLT – http://www.saphana.com/docs/DOC-2441
Security Guide – Trigger-Based Replication (SLT) SAP HANA – http://www.saphana.com/docs/DOC-1069
Security Guide – Log-Based Replication (SYBASE) SAP HANA – http://www.saphana.com/docs/DOC-1071
How to invoke SAP HANA stored procedures from Data Services – http://www.saphana.com/docs/DOC-2289
High Availability and Disaster Recovery
Introduction – SAP HANA Data Center Readiness – http://www.saphana.com/docs/DOC-2010
Introduction to High Availability for SAP HANA (NEW 11/27) – http://www.saphana.com/docs/DOC-2775
Readiness Guide – SAP HANA http://www.saphana.com/docs/DOC-1810
High Availability & Disaster Tolerance – SAP HANA – http://www.saphana.com/docs/DOC-1221
Update & Patching – SAP HANA – http://www.saphana.com/docs/DOC-1212
Manual Update Guide – SAP HANA 1.0 – http://www.saphana.com/docs/DOC-1051
Administration & Monitoring – SAP HANA – http://www.saphana.com/docs/DOC-1215
Administration Guide – SAP HANA In-Memory Database – http://www.saphana.com/docs/DOC-1073
Backup and Recovery Guide – SAP In-Memory Database – http://www.saphana.com/docs/DOC-1078
Database Persistence – SAP HANA – http://www.saphana.com/docs/DOC-1222 – also see 0102 – Foundation – Persistence in HANA.pdf
Performance
For real: Performance of the same SQL comparing Hana and another RDBMS – http://www.saphana.com/docs/DOC-2321
Whitepaper – SAP HANA Performance – http://www.saphana.com/docs/DOC-1647
Performance Test Report – SAP HANA – http://www.saphana.com/docs/DOC-1755
SAP HANA Performance: 100TB Performance Test Results – http://www.saphana.com/docs/DOC-2381
SAP HANA Memory Usage Explained – http://www.saphana.com/docs/DOC-2299
Scalability – SAP HANA – http://www.saphana.com/docs/DOC-2022
How to Delta Merge for SAP HANA – http://www.saphana.com/docs/DOC-2002
SAP HANA-System Tables and Monitor Views Reference – http://www.saphana.com/docs/DOC-1833
Query Performance – BW powered by SAP HANA – http://www.saphana.com/docs/DOC-1888
Performance tuning tip to accelerate first query request Video – http://www.saphana.com/videos/1075
SAP HANA SQL Optimizer Video – http://www.saphana.com/videos/1050
HANA and SAP BW
Strategic Direction and Evolution – Data Warehouse Solutions from SAP – http://www.saphana.com/docs/DOC-2164
SAP NetWeaver Business Warehouse 7.3, powered by SAP HANA – http://help.sap.com/nw73bwHANA
Overview – BW Powered by HANA – http://www.saphana.com/docs/DOC-1522
General Information for BW on HANA – http://www.saphana.com/docs/DOC-2100
How To Size SAP BW on HANA – http://www.saphana.com/docs/DOC-2531 & http://www.saphana.com/docs/DOC-2114
Mixed scenarios: BW on HANA and HANA datamart – http://www.saphana.com/docs/DOC-2771
EDW and HANA – http://www.saphana.com/docs/DOC-2110
Automated Processes for BW on HANA Migration – http://www.saphana.com/docs/DOC-2661
Installation, Implementation, Master Guides for BW on HANA – http://www.saphana.com/docs/DOC-2102
SAP NetWeaver 7.30 – BW Systemcopy ABAP – http://scn.sap.com/docs/DOC-12262
DBA Aspects – http://www.saphana.com/docs/DOC-2091
BW Housekeeping Tasks – http://www.saphana.com/docs/DOC-2770
Important Housekeeping Principles for keeping your SAP NetWeaver BW in good shape – http://scn.sap.com/docs/DOC-13132
Data Modeling – http://www.saphana.com/docs/DOC-2130
Reporting on HANA models in BW-on-HANA – http://www.saphana.com/docs/DOC-1463
Security / Authorization for HANA and BW – http://www.saphana.com/docs/DOC-2128
Upgrade / Migration for BW objects – http://www.saphana.com/docs/DOC-2113
Upgrade / Migration – General – http://www.saphana.com/docs/DOC-2112
Java Stack for BW on HANA – http://www.saphana.com/docs/DOC-2103
BW Planning Applications (IP) on HANA – http://www.saphana.com/docs/DOC-2144
ABAP and developing on BW on HANA – http://www.saphana.com/docs/DOC-2090
Mixed scenarios: BW on HANA and HANA datamart – http://www.saphana.com/docs/DOC-2771
Data Modeling – BW InfoProviders – http://www.saphana.com/docs/DOC-2129
BWA – SAP BW Accelerator vs HANA BW – http://www.saphana.com/docs/DOC-2098 & http://www.saphana.com/docs/DOC-1088
SAP First Guidance – SAP Netweaver BW 7.30 on HANA Inventory InfoCubes – http://scn.sap.com/docs/DOC-28525
HANA Based Solutions
What kinds of applications are being delivered on top of SAP HANA? – http://www.saphana.com/docs/DOC-1063
Overview – Rapid Marts – http://www.saphana.com/docs/DOC-1753
Period-End Closing – http://www.saphana.com/docs/DOC-1670
Pricing Analytics – http://www.saphana.com/docs/DOC-2436
Overview – SAP CO-PA Accelerator – http://www.saphana.com/docs/DOC-1206
Profitability Analysis CO-PA – http://www.saphana.com/docs/DOC-1672
Overview – Finance and Controlling Accelerator – http://www.saphana.com/docs/DOC-1619
Info providers and data sources – SAP ERP RDS for Accelerated Finance and Controlling – http://www.saphana.com/docs/DOC-1565
Analytical Banking – SAP HANA – http://www.saphana.com/docs/DOC-1972
Banking Transaction History & Spend Analysis – http://www.saphana.com/docs/DOC-1702
Liquidity Risk Management – http://www.saphana.com/docs/DOC-1768
Enterprise Risk Management – http://www.saphana.com/docs/DOC-2033
Real Time Enterprise Risk Reporting – http://www.saphana.com/docs/DOC-1704
Overview – Deposits Management for Transaction History Analysis – http://www.saphana.com/docs/DOC-1617
Real-Time Stress Testing Banking – http://www.saphana.com/docs/DOC-1974
Overview – SAP Smart Meter Analytics – http://www.saphana.com/docs/DOC-1131
Strategic Condition Management – http://www.saphana.com/docs/DOC-1689
Market Basket Analysis for Promotion Management – http://www.saphana.com/docs/DOC-1562
Scope – SAP ERP RDS for Accelerated Finance and Controlling with SAP HANA – http://www.saphana.com/docs/DOC-1579
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,
你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西。”
很多程序员响应,他们在推荐时也写下自己的评语。
以前就有国内网友介绍这个程序员书单,不过都是推荐数 Top 10的书。
其实除了前10本之外,推荐数前30左右的书籍都算经典,笔者整理编译这个问答贴,同时摘译部分推荐人的评语。
下面就按照各本书的推荐数排列。
推荐数:1684
“优秀的编程实践的百科全书,《代码大全》注重个人技术,其中所有东西加起来,
就是我们本能所说的“编写整洁的代码”。这本书有50页在谈论代码布局。” —— Joel Spolsky对于新手来说,这本书中的观念有点高阶了。到你准备阅读此书时,你应该已经知道并实践过书中99%的观念。– esac
Steve McConnell的原作《代码大全》(第1版)是公认的关于编程的最佳实践指南之一,
在过去的十多年间,本书一直在帮助开发人员编写更好的软件。
现在,作者将这本经典著作全新演绎,融入了最前沿的实践技术,加入了上百个崭新的代码示例,
充分展示了软件构建的艺术性和科学性。
McConnell汇集了来自研究机构、学术界以及业界日常实践的主要知识,
把最高效的技术和最重要的原理交织融会为这本既清晰又实用的指南。
无论您的经验水平如何,也不管您在怎样的开发环境中工作,也无论项目是大是小,
本书都将激发您的思维并帮助您构建高品质的代码。
《代码大全(第2版))》做了全面的更新,增加了很多与时俱进的内容,包括对新语言、新的开发过程与方法论的讨论等等。
推荐数:1504
对于那些已经学习过编程机制的程序员来说,这是一本卓越的书。
或许他们还是在校生,但对要自己做什么,还感觉不是很安全。
就像草图和架构之间的差别。虽然你在学校课堂上学到的是画图,你也可以画的很漂亮,
但如果你觉得你不太知道从哪儿下手,如果某人要你独自画一个P2P的音乐交换网络图,那这本书就适合你了。—— Joel
《程序员修炼之道:从小工到专家》内容简介:《程序员修炼之道》由一系列独立的部分组成,
涵盖的主题从个人责任、职业发展,知道用于使代码保持灵活、并且易于改编和复用的各种架构技术,
利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,
全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。
无论你是初学者,是有经验的程序员,还是软件项目经理,《程序员修炼之道:从小工到专家》都适合你阅读。
推荐数:916
就个人而言,这本书目前为止对我影响醉倒的一本编程书。
《代码大全》、《重构》和《设计模式》这些经典书会教给你高效的工作习惯和交易细节。
其他像《人件集》、《计算机编程心理学》和《人月神话》这些书会深入软件开发的心理层面。
其他书籍则处理算法。这些书都有自己所属的位置。
然而《计算机程序的构造和解释》与这些不同。
这是一本会启发你的书,它会燃起你编写出色程序的热情;
它还将教会你认识并欣赏美;
它会让你有种敬畏,让你难以抑制地渴望学习更多的东西。
其他书或许会让你成为一位更出色的程序员,但此书将一定会让你成为一名程序员。
同时,你将会学到其他东西,函数式编程(第三章)、惰性计算、元编程、虚拟机、解释器和编译器。
一些人认为此书不适合新手。
个人认为,虽然我并不完全认同要有一些编程经验才能读此书,但我还是一定推荐给初学者。
毕竟这本书是写给著名的6.001,是麻省理工学院的入门编程课程。
此书或许需要多做努力(尤其你在做练习的时候,你也应当如此),但这个价是对得起这本书的。
推荐数:774
这本书简洁易读,会教给你三件事:C 编程语言;如何像程序员一样思考;底层计算模型。
(这对理解“底层”非常重要)—— Nathan
《C程序设计语言》(第2版新版)讲述深入浅出,配合典型例证,通俗易懂,实用性强,
适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。
《C程序设计语言》(第2版新版)原著即为C语言的设计者之一Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan合著的
一本介绍C语言的权威经典著作。
我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。
原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。
人们熟知的“hello,world”程序就是由本书首次引入的,现在,这一程序已经成为所有程序设计语言入门的第一课。
推荐数:671
《代码大全》教你如何正确编程;
《人月神话》教你如何正确管理;
《设计模式》教你如何正确设计……
在我看来,代码只是一个工具,并非精髓。
开发软件的主要部分是创建新算法或重新实现现有算法。
其他部分则像重新组装乐高砖块或创建“管理”层。
我依然梦想这样的工作,我的大部分时间(>50%)是在写算法,其他“管理”细节则留给其他人…… —— Ran Biron
推荐数:617
《重构:改善既有代码的设计》清晰地揭示了重构的过程,解释了重构的原理和最佳实践方式,
并给出了何时以及何地应该开始挖掘代码以求改善。
书中给出了70多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。
《重构:改善既有代码的设计》提出的重构准则将帮助你一次一小步地修改你的代码,从而减少了开发过程中的风险。
《重构:改善既有代码的设计》适合软件开发人员、项目管理人员等阅读,
也可作为高等院校计算机及相关专业师生的参考读物。
我想我不得不推荐《重构》:改进现有代码的设计。—— Martin
我必须承认,我最喜欢的编程语录是出自这本书:任何一个傻瓜都能写出计算机能理解的程序,
而优秀的程序员却能写出别人能读得懂的程序。—— Martin Fowler
推荐数:617
自1995年出版以来,本书一直名列Amazon和各大书店销售榜前列。
近10年后,本书仍是Addison-Wesley公司2003年最畅销的图书之一。
中文版销售逾4万册。
就我而言,我认为四人帮编著的《设计模式》是一本极为有用的书。
虽然此书并不像其他建议一样有关“元”编程,但它强调封装诸如模式一类的优秀编程技术,
因而鼓励其他人提出新模式和反模式(antipatterns),并运用于编程对话中。—— Chris Jester-Young
推荐数:588
在软件领域,很少能有像《人月神话》一样具有深远影响力并且畅销不衰的著作。
Brooks博士为人们管理复杂项目提供了最具洞察力的见解。
既有很多发人深省的观点,又有大量软件工程的实践。
本书内容来自Brooks博士在IBM公司System/360家族和OS/360中的项目管理经验。
该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄中等多种语言,全球销量数百万册。
确立了其在行业内的经典地位。
推荐数:542
《计算机程序设计艺术》系列著作对计算机领域产生了深远的影响。
这一系列堪称一项浩大的工程,自1962年开始编写,计划出版7卷,目前已经出版了4卷。
《美国科学家》杂志曾将这套书与爱因斯坦的《相对论》等书并列称为20世纪最重要的12本物理学著作。
目前Knuth正将毕生精力投入到这部史诗性著作的撰写中。
这是高德纳倾注心血写的一本书。—— Peter Coulton
推荐数:462
我很奇怪,居然没人提到龙书。(或许已有推荐,我没有看到)。
我从没忘过此书的第一版封面。
此书让我知道了编译器是多么地神奇绝妙。- DB
推荐数:445
强大的写作阵容。
本书的产品设计应用神经生物学、认知科学,以及学习理论,这使得这本书能够将这些知识深深地印在你的脑海里,
不容易被遗忘。
本书的编写方式采用引导式教学,不直接告诉你该怎么做,而是利用故事当作引子,带领读者思考并想办法解决问题。
解决问题的过程中又会产生一些新的问题,再继续思考、继续解决问题,这样可以加深体会。
作者以大量的生活化故事当背景,例如第1章是鸭子,第2章是气象站,第3章是咖啡店,
书中搭配大量的插图(几乎每一页都有图),所以阅读起来生动有趣,不会感觉到昏昏欲睡。
作者还利用歪歪斜斜的手写字体,增加“现场感”。
精心设计许多爆笑的对白,让学习过程不会太枯燥。
还有模式告白节目,将设计模式拟人化成节目来宾,畅谈其内在的一切。
每一章都有数目不等的测验题。
每章最后有一页要点整理,这也是精华所在,我都是利用这一页做复习。
我知道四人帮的《设计模式》是一本标准书,但倒不如先看看这部大部头,此书更为简易。
一旦你了解了解了基本原则,可以去看四人帮的那本圣经了。- Calanus
推荐数:437
如果下昂真正深入阅读,我推荐道格拉斯·侯世达(Douglas Hofstadter)的《哥德尔、艾舍尔、巴赫书》。
他极为深入研究了程序员每日都要面对的问题:递归、验证、证明和布尔代数。
这是一本很出色的读物,难度不大,偶尔有挑战,一旦你要鏖战到底,将是非常值得的。 – Jonik
推荐数:329
细节之中自有天地,整洁成就卓越代码
尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,
写得不好的代码每年都要耗费难以计数的时间和资源。
然而这种情况并非无法避免。
著名软件专家RoberfC.Marlin在《代码整洁之道》中为你呈现出了革命性的视野。
Martin携同ObjectMetltor公司的同事,从他们有关整洁代码的最佳敏捷实践中提炼出软件技艺的价值观,
以飨读者,让你成为更优秀的程序员——只要你着手研读《代码整洁之道》。
阅读《代码整洁之道》需要你做些什么呢?你将阅读代码——大量代码。
《代码整洁之道》促使你思考代码中何谓正确,何谓错误。
更重要的是,《代码整洁之道》将促使你重新评估自己的专业价值观,以及对自己技艺的承诺。
从《代码整洁之道》中可以学到:
虽然《代码整洁之道》和《代码大全》有很多共同之处,但它有更为简洁更为实际的清晰例子。 – Craig P. Motlin
推荐数:297
在我职业生涯早期,Scott Meyer的《Effective C++》和后续的《More Effective C++》都对我的编程能力有着直接影响。
正如当时的一位朋友所说,这些书缩短你培养编程技能的过程,而其他人可能要花费数年。
去年对我影响最大的一本书是《大教堂与市集》,该书教会我很有关开源开发过程如何运作,和如何处理我代码中的Bug。 – John Channing
推荐数:282
多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位列前列。
正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,
从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,
成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,
最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。
本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。
尽管我不得不羞愧地承认,书中一半的东西我都没有理解,但我真的推荐《编程珠玑》,书中有些令人惊奇的东西。 – Matt Warren
本书是继《重构》和《重构与模式》之后探讨修改代码技术的又一里程碑式的著作,
而且从涵盖面和深度上都超过了前两部经典。
书中不仅讲述面向对象语言(Java、C#和C++)代码,也有专章讨论C这样的过程式语言。
作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),
与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入,而且常常发前人所未发。
书中处处体现出作者独到的洞察力,以及多年开发和指导软件项目所积累的丰富经验和深厚功力。
通过这部集大成之作,你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。
我认为没有任何一本书能向这本书一样影响了我的编程观点。
它明确地告诉你如何处理其他人的代码,含蓄地教会你避免哪些(以及为什么要避免)。- Wolfbyte同意。很多开发人员讨论用干净的石板来编写软件。
但我想几乎所有开发人员的某些时候是在吃其他开发人员的狗食。– Bernard Dy
这是一本讲述计算机工作原理的书。
不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。
作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。
更重要的是,你会因此而获得对计算机工作原理较深刻的理解。
这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。
不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟,
都不妨翻阅一下《编码:隐匿在计算机软硬件背后的语言》,读一读大师的经典作品,必然会有收获。
我推荐Charles Petzold的《编码》。
在这个充满工具和IDE的年代,很多复杂度已经从程序员那“抽取”走了,这本书一本开眼之作。 – hemil
对我影响最大的那本书是 Robert Pirsig 的《禅与摩托车维修艺术》。
不管你做什么事,总是要力求完美,彻底了解你手中的工具和任务,更为重要的是,
要有乐趣(因为如果你做事有乐趣,一切将自发引向更好的结果)。 – akr
Demarco 和 Lister 表明,软件开发中的首要问题是人,并非技术。
他们的答案并不简单,只是令人难以置信的成功。
第二版新增加了八章内容。 – Eduardo Molteni
这是一本访谈笔录,记录了当今最具个人魅力的15位软件先驱的编程生涯。
包括DonaldKnuth、Jamie Zawinski、Joshua Bloch、Ken Thompson等在内的业界传奇人物,为我们讲述了
他们是怎么学习编程的,在编程过程中发现了什么以及他们对未来的看法,
并对诸如应该如何设计软件等长久以来一直困扰很多程序员的问题谈了自己的观点。
一本非常有影响力的书,可以从中学到一些业界顶级人士的经验,了解他们如何思考并工作。 – Jahanzeb Farooq
虽然这本书可能有点偏题,但不管你信不信,这本书曾在计算机科学专业课程的阅读列表之上。
一个优秀的角色模型,一本有关好奇心的优秀书籍。 – mike511
此书第二版教你如何编写漂亮并高效的代码,虽然这是一本Java书,但其中有很多跨语言的理念。 – Marcio Aguiar
很奇怪,还没人推荐 Martin Fowler 的《企业应用架构模式》- levi rosol
这两本是LISP的英文书,尚无中文版。
美国东北大学网站上也有电子版。
本书是基于众多商务案例,讲述如何创建更好的、高客户忠诚度的软件产品和基于软件的高科技产品的书。
本书列举了很多真实可信的实际例子,说明目前在软件产品和基于软件的高科技产品中,普遍存在着“难用”的问题。
作者认为,“难用”问题是由这些产品中存在着的高度“认知摩擦”引起的,
而产生这个问题的根源在于现今软件开发过程中欠缺了一个为用户利益着想的前期“交互设计”阶段。
“难用”的产品不仅损害了用户的利益,最终也将导致企业的失败。
本书通过一些生动的实例,让人信服地讲述了由作者倡导的“目标导向”交互设计方法在解决“难用”问题方面的有效性,
证实了只有改变现有观念,才能有效地在开发过程中引入交互设计,将产品的设计引向成功。
本书虽然是一本面向商务人员而编写的书,但也适合于所有参与软件产品和基于软件的高科技产品开发的专业人士,
以及关心软件行业和高科技行业现状与发展的人士阅读。
他还有另一本中文版著作:《About Face 3 交互设计精髓》
如果你不是程序员,阅读此书可能会很有趣,但如果你已经是个程序员,可能会有点乏味。
It is useful regardless operating system you use. – J.F. Sebastian
不管你使用什么操作系统,这本书都很有用。 – J.F. Sebastian
45个习惯,分为7个方面:工作态度、学习、软件交付、反馈、编码、调试和协作。
每一个具体的习惯里,一开始提出一个谬论,然后展开分析,之后有正队性地提出正确的做法,并设身处地地讲出了正确做法给你个人的“切身感受”,最后列出几条注意事项,帮助你修正自己的做法(“平衡的艺术”)。
前面已经提到的很多书都启发了我,并影响了我,但这本书每位程序员都应该读。
它向我展示了单元测试和TDD的重要性,并让我很快上手。 – Curro我不关心你的代码有多好或优雅。
如果你没有测试,你或许就如同没有编写代码。
这本书得到的推荐数应该更高些。
人们讨论编写用户喜欢的软件,或既设计出色并健壮的高效代码,但如果你的软件有一堆bug,谈论那些东西毫无意义。– Adam Gent
可用性设计是Web设计中最重要也是难度最大的一项任务。
《点石成金-访客至上的网页设计秘笈(原书第二版)》作者根据多年从业的经验,剖析用户的心理,
在用户使用的模式、为扫描进行设计、导航设计、主页布局、可用性测试等方面提出了许多独特的观点,
并给出了大量简单、易行的可用性设计的建议。
本书短小精炼,语言轻松诙谐,书中穿插大量色彩丰富的屏幕截图、趣味丛生的卡通插图以及包含大量信息的图表,
使枯燥的设计原理变得平易近人。
本书适合从事Web设计和Web开发的技术人员阅读,特别适合为如何留住访问者而苦恼的网站/网页设计人员阅读。
这是一本关于Web设计原则而不是Web设计技术的书。
本书作者是Web设计专家,具有丰富的实践经验。
他用幽默的语言为你揭示Web设计中重要但却容易被忽视的问题,只需几个小时,
你便能对照书中讲授的设计原则找到网站设计的症结所在,令你的网站焕然一新。
取决于你所追求的目标。
我喜欢《代码大全》是因纯编程,《点石成金》是一本有关UI设计的卓越书籍。 – Justin Standard
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 |
*----------------------------------------------------------------------* * Description : Over Picking ODO Qty Adjust * Date/Author : Sariel *----------------------------------------------------------------------* REPORT YSARIEL NO STANDARD PAGE HEADING. *----------------------------------------------------------------------* * DEFINE TYPES *----------------------------------------------------------------------* TABLES /SCDL/DB_PROCH_O. *----------------------------------------------------------------------* * DEFINE SCREEN PARAMETERS *----------------------------------------------------------------------* PARAMETERS P_LGNUM TYPE /SCWM/LGNUM OBLIGATORY. SELECT-OPTIONS S_DOCNO FOR /SCDL/DB_PROCH_O-DOCNO. *----------------------------------------------------------------------* * START-OF-SELECTION *----------------------------------------------------------------------* START-OF-SELECTION. PERFORM FRM_GET_DATA. *&---------------------------------------------------------------------* *& Form FRM_GET_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM FRM_GET_DATA . DATA LV_LGNUM TYPE /SCWM/LGNUM. DATA LO_PRD_OUT TYPE REF TO /SCDL/CL_SP_PRD_OUT. DATA LO_MESSAGE_BOX TYPE REF TO /SCDL/CL_SP_MESSAGE_BOX. DATA LT_A_HEAD TYPE /SCDL/T_SP_A_HEAD. DATA LT_A_ITEM TYPE /SCDL/T_SP_A_ITEM. DATA LS_ACTION TYPE /SCDL/S_SP_ACT_ACTION. DATA LS_PRCODE TYPE /SCWM/DLV_PRCODE_ADD_STR. DATA LV_REJECTED TYPE BOOLE_D. DATA LT_RETURN_CODES TYPE /SCDL/T_SP_RETURN_CODE. DATA LT_MESSAGES TYPE /SCDL/DM_MESSAGE_TAB. DATA LV_MSGTXT TYPE CHAR255. DEFINE MCR_FILL_ERROR. IF LV_REJECTED IS NOT INITIAL OR LINE_EXISTS( LT_RETURN_CODES[ FAILED = 'X'] ). LS_ODO-MSGTXT = &1. /SCWM/CL_TM=>CLEANUP( ). MODIFY LT_ODO FROM LS_ODO TRANSPORTING QTY_PICK QTY_DIFF MSGTXT. CLEAR LS_ODO. CONTINUE. ENDIF. END-OF-DEFINITION. * Get Delivery SELECT /SCMB/TOENTITY~ENTITY, /SCDL/DB_PROCH_O~DOCTYPE, /SCDL/DB_PROCH_O~DOCNO, /SCDL/DB_PROCI_O~ITEMNO, /SCDL/DB_PROCI_O~UOM, /SCDL/DB_PROCI_O~QTY, /SCDL/DB_PROCI_O~QTY AS QTY_PICK, /SCDL/DB_PROCI_O~QTY AS QTY_DIFF, @LV_MSGTXT AS MSGTXT, /SCDL/DB_PROCH_O~DOCID, /SCDL/DB_PROCI_O~ITEMID INTO TABLE @DATA(LT_ODO) FROM /SCDL/DB_PROCH_O JOIN /SCMB/TOENTITY ON /SCMB/TOENTITY~SCUGUID EQ /SCDL/DB_PROCH_O~WAREHOUSE_ID AND /SCMB/TOENTITY~SCUTYPE EQ '1008' JOIN /SCDL/DB_PROCI_O ON /SCDL/DB_PROCI_O~DOCID EQ /SCDL/DB_PROCH_O~DOCID JOIN /SCDL/DB_STATUS ON /SCDL/DB_STATUS~DOCID EQ /SCDL/DB_PROCI_O~DOCID AND /SCDL/DB_STATUS~ITEMID EQ /SCDL/DB_PROCI_O~ITEMID WHERE /SCMB/TOENTITY~ENTITY EQ @P_LGNUM AND /SCDL/DB_PROCH_O~DOCNO IN @S_DOCNO AND /SCDL/DB_STATUS~STATUS_TYPE EQ 'DPI' AND /SCDL/DB_STATUS~STATUS_VALUE EQ '7'. IF SY-SUBRC NE 0. MESSAGE S038(/SCDL/BO_ACTION) DISPLAY LIKE 'E'. * No documents found LEAVE LIST-PROCESSING. ENDIF. LOOP AT LT_ODO INTO DATA(LS_ODO). CLEAR LS_ODO-QTY_PICK. CLEAR LS_ODO-QTY_DIFF. SELECT SUM( REL_QTY ) INTO LS_ODO-QTY_PICK FROM /SCDL/DB_DF WHERE DOCCATTO IN ( 'PCA','PCR' ) AND DOCID EQ LS_ODO-DOCID AND ITEMID EQ LS_ODO-ITEMID. LS_ODO-QTY_DIFF = ABS( LS_ODO-QTY - LS_ODO-QTY_PICK ). LV_LGNUM = LS_ODO-ENTITY. /SCWM/CL_TM=>SET_LGNUM( LV_LGNUM ). IF LO_PRD_OUT IS INITIAL. CREATE OBJECT LO_MESSAGE_BOX. CREATE OBJECT LO_PRD_OUT EXPORTING IO_MESSAGE_BOX = LO_MESSAGE_BOX IV_MODE = /SCDL/CL_SP=>SC_MODE_CLASSIC IV_DOCCAT = /SCDL/IF_DL_DOC_C=>SC_DOCCAT_OUT_PRD. ENDIF. * Select Delivery DATA(LT_K_HEAD) = VALUE /SCDL/T_SP_K_HEAD( ( DOCID = LS_ODO-DOCID ) ). CLEAR LV_REJECTED. REFRESH LT_RETURN_CODES. LO_PRD_OUT->/SCDL/IF_SP1_ASPECT~SELECT( EXPORTING INKEYS = LT_K_HEAD ASPECT = /SCDL/IF_SP_C=>SC_ASP_HEAD IMPORTING OUTRECORDS = LT_A_HEAD REJECTED = LV_REJECTED RETURN_CODES = LT_RETURN_CODES ). * check if any error occurred MCR_FILL_ERROR 'No documents found'. * Locking Delivery CLEAR LV_REJECTED. REFRESH LT_RETURN_CODES. LO_PRD_OUT->LOCK( EXPORTING INKEYS = LT_K_HEAD ASPECT = /SCDL/IF_SP_C=>SC_ASP_HEAD LOCKMODE = /SCDL/IF_SP1_LOCKING=>SC_EXCLUSIVE_LOCK IMPORTING REJECTED = LV_REJECTED RETURN_CODES = LT_RETURN_CODES ). * check if any error occurred MCR_FILL_ERROR 'Lock delivery failed'. * Adjust Delivery CLEAR LV_REJECTED. REFRESH LT_RETURN_CODES. DATA(LT_K_ITEM) = VALUE /SCDL/T_SP_K_ITEM( ( DOCID = LS_ODO-DOCID ITEMID = LS_ODO-ITEMID ) ). LS_ACTION-ACTION_CODE = /SCWM/IF_DL_C=>SC_AC_PRCODE_ADD. CREATE DATA LS_ACTION-ACTION_CONTROL TYPE /SCWM/DLV_PRCODE_ADD_STR. ASSIGN LS_ACTION-ACTION_CONTROL->* TO FIELD-SYMBOL(<FS_ACTION_CONTROL>). LS_PRCODE-PRCODE = 'O001'. LS_PRCODE-QTY = LS_ODO-QTY_DIFF. LS_PRCODE-UOM = LS_ODO-UOM. <FS_ACTION_CONTROL> = LS_PRCODE. LO_PRD_OUT->/SCDL/IF_SP1_ACTION~EXECUTE( EXPORTING ASPECT = /SCDL/IF_SP_C=>SC_ASP_ITEM INKEYS = LT_K_ITEM INPARAM = LS_ACTION ACTION = /SCDL/IF_SP_C=>SC_ACT_EXECUTE_ACTION IMPORTING OUTRECORDS = LT_A_ITEM REJECTED = LV_REJECTED RETURN_CODES = LT_RETURN_CODES ). * check if any error occurred IF LV_REJECTED IS NOT INITIAL OR LINE_EXISTS( LT_RETURN_CODES[ FAILED = 'X'] ). ROLLBACK WORK. MCR_FILL_ERROR 'Delivery qty adjust failed'. ELSE. LO_PRD_OUT->SAVE( ). COMMIT WORK AND WAIT. LS_ODO-MSGTXT = 'Delivery qty adjust successfully'. ENDIF. /SCWM/CL_TM=>CLEANUP( ). MODIFY LT_ODO FROM LS_ODO TRANSPORTING QTY_PICK QTY_DIFF MSGTXT. CLEAR LS_ODO. ENDLOOP. LT_MESSAGES = LO_MESSAGE_BOX->GET_MESSAGES( ). DATA: LS_LAYO TYPE LVC_S_LAYO, LT_FCAT TYPE LVC_T_FCAT. LS_LAYO-ZEBRA = ABAP_TRUE. LS_LAYO-CWIDTH_OPT = ABAP_TRUE. PERFORM FRM_SET_FCAT TABLES LT_FCAT USING: 'ENTITY ' 'Warehouse', 'DOCTYPE ' 'Delivery Type', 'DOCNO ' 'Delivery', 'ITEMNO ' 'Item', 'UOM ' 'Unit', 'QTY ' 'Quantity', 'QTY_PICK' 'Picking Qty', 'QTY_DIFF' 'Different Qty', 'MSGTXT ' 'Return Message '. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING I_CALLBACK_PROGRAM = SY-REPID IS_LAYOUT_LVC = LS_LAYO IT_FIELDCAT_LVC = LT_FCAT I_SAVE = 'A' TABLES T_OUTTAB = LT_ODO EXCEPTIONS PROGRAM_ERROR = 1 OTHERS = 2. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDFORM. *&---------------------------------------------------------------------* *& Form FRM_SET_FCAT *&---------------------------------------------------------------------* FORM FRM_SET_FCAT TABLES T_FCAT TYPE LVC_T_FCAT USING VALUE(UV_FIELDNAME) TYPE ANY VALUE(UV_SELTEXT) TYPE ANY. DATA LS_FCAT TYPE LVC_S_FCAT. LS_FCAT-FIELDNAME = UV_FIELDNAME. LS_FCAT-REPTEXT = LS_FCAT-SCRTEXT_L = UV_SELTEXT. CASE UV_FIELDNAME. WHEN 'DOCNO'. LS_FCAT-NO_ZERO = ABAP_TRUE. WHEN 'QTY' OR 'QTY_PICK' OR 'QTY_DIFF'. LS_FCAT-QFIELDNAME = 'UOM'. WHEN OTHERS. ENDCASE. APPEND LS_FCAT TO T_FCAT. ENDFORM. " FRM_SET_FCAT |
这是一份对开发者有用的英文网站清单,涉及到从初学者到行业大牛成长的方方面面,还有很多事英语学习的网站,请相信我,这些肯定会对你有所帮助的。
BAP可以实现复制粘贴的操作
自己玩儿
项目里暂时用不到
在ABAP中的 CLASS :CL_GUI_FRONTEND_SERVICES中提供了两个方法来控制与剪贴板内容的导入导出,
分别是:CLIPBOARD_EXPORT和CLIPBOARD_IMPORT。
CLIPBOARD_EXPORT是将一个内表的内容导入到剪贴板中,示例程序如下:
复制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
DATA rc TYPE i. DATA:BEGIN OF itab OCCURS 0, line(200) TYPE c , END OF itab. itab-line = '好吧,你已经把我复制了……'. APPEND itab. CALL METHOD cl_gui_frontend_services=>clipboard_export IMPORTING data = itab[] CHANGING rc = rc * EXCEPTIONS * CNTL_ERROR = 1 * ERROR_NO_GUI = 2 * NOT_SUPPORTED_BY_GUI = 3 * others = 4 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. |
粘贴
CLIPBOARD_IMPORT是将剪贴板中的内容导入到一个定义好的内表当中,示例程序如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
DATA rc TYPE i. DATA:BEGIN OF itab OCCURS 0, line(200) TYPE c , END OF itab. CALL METHOD cl_gui_frontend_services=>clipboard_import IMPORTING DATA = itab[] "粘贴板内数据 LENGTH = rc "一共几行 * EXCEPTIONS * CNTL_ERROR = 1 * ERROR_NO_GUI = 2 * NOT_SUPPORTED_BY_GUI = 3 * others = 4 . IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. write: '粘贴板中一共' ,rc,' 行数据,如下:'. loop at itab. write / itab-line. endloop. |
内表到粘贴板
itabtoclip
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
FORM itabtoclip TABLES intab . DATA: BEGIN OF itab_clip OCCURS 0 , line(8092) TYPE c , END OF itab_clip. DATA: BEGIN OF headtab OCCURS 0 , length TYPE i , decimals TYPE i, type_kind TYPE c, name(30) TYPE c, END OF headtab. DATA n TYPE i . DATA descr_ref TYPE REF TO cl_abap_structdescr. FIELD-SYMBOLS: <comp_wa> TYPE abap_compdescr , <f_field> , <f_intab> TYPE ANY . DATA:str TYPE string , text1 TYPE c. DATA: tab TYPE c VALUE cl_abap_char_utilities=>horizontal_tab . descr_ref ?= cl_abap_typedescr=>describe_by_data( intab ). LOOP AT descr_ref->components ASSIGNING <comp_wa>. MOVE-CORRESPONDING <comp_wa> TO headtab. APPEND headtab. ENDLOOP. DESCRIBE TABLE headtab LINES n. LOOP AT intab ASSIGNING <f_intab>. DO n TIMES. ASSIGN COMPONENT sy-index OF STRUCTURE <f_intab> TO <f_field>. str = <f_field>. READ TABLE headtab INDEX sy-index. IF headtab-type_kind = 'I' OR headtab-type_kind = 'P' OR headtab-type_kind = 'F'. SEARCH str FOR '-'. IF sy-subrc = 0 AND sy-fdpos <> 0. SPLIT str AT '-' INTO str text1. CONDENSE str. CONCATENATE '-' str INTO str. ELSE. CONDENSE str. ENDIF. ELSE. * SHIFT str LEFT DELETING LEADING '0' . ENDIF. CONCATENATE itab_clip-line tab str INTO itab_clip-line. ENDDO. SHIFT itab_clip. APPEND itab_clip. CLEAR itab_clip. ENDLOOP. CALL FUNCTION 'CLPB_EXPORT' TABLES data_tab = itab_clip EXCEPTIONS clpb_error = 01. ENDFORM. "itabtoclip |
1.ole中如何保存和退出。
call method of sheetname ‘saveas’ exporting #1 = filepath #2 =1.
call method of applicationname ‘quit’.
2.给sheet重命名。
call method of sheetname ‘name’ = ‘sheetname’.
3.创建application.
call method of XXX ‘excel.application’.
4.设置XXX的显示模式。
set property of XXX ‘visible’ = 1. 前台运行。为0时表示为后台运行。
5.创建workbook.
CALL METHOD OF EXCEL ‘WORKBOOKS’ = WORKBOOK .
call method of workbook ‘ADD’.
6.在一个workbook中添加一个worksheet.
CALL METHOD OF applicationname ‘sheets’ = worksheet.
call method of worksheet ‘Add’ .
7.给单元格赋值。
CaLL METHOD OF EXCEL ‘CELLS’ = CELL
EXPORTING
#1 = 2
#2 = 2.
Set PROPERTY OF CELL ‘value’ = xxxx.
8.指定要被操作的sheet.
CALL METHOD OF applicationname ‘Worksheets’ = SHEET
EXPORTING
#1 = ‘sheet3’. 这里sheet3为要操作的sheet的名字。
call method of sheet ‘Activate ‘.
9.指定操作的单元格的范围。
CALL METHOD OF applicationname ‘Range’ = range
EXPORTING
#1 = ‘B2’
#2 = ‘c2’.
10. 如何操作范围内的单元格。
call method of range ‘select ‘. range也为已经定义好的ole2_object.
Set PROPERTY OF range ‘MergeCells’ = 0 . 合并单元格,0时不合并,1则合并。与前面一起使用
Set PROPERTY OF range ‘HorizontalAlignment’ = 10 .
Set PROPERTY OF range ‘VerticalAlignment’ = -4108 .
11.单元格内部属性的操作.
call method of cell ‘INTERIOR’ = int.
set property of int ‘ColorIndex’ = color. 颜色
set property of int ‘Pattern’ = pattern.
12.单元格内字体的操作.
call method of CELL ‘FONT’ = font.
set property of font ‘BOLD’ = bold.
set property of font ‘SIZE’ = size.
13.边框的操作.
call method of CELL ‘BORDERS’ = BORDERS
EXPORTING
#1 = ‘1’. 1-left 2-right 3-top 4-bottom
set property of borders ‘Linestyle’ = plinestyle .
set property of borders ‘Weight’ = pweight .
free object borders.
在此之前应该指定range.
14.复制与粘贴.
call method of sheet ‘copy’.
call method of sheet ‘paste’.
15.一点注意。
在操作sheet时,默认为上次操作的sheet.如果想更换,参考8。
16.一个问题。有时输入数据如111111111111111111,会显示为1E+17。
解决办法:
CALL METHOD OF h_excel ‘COLUMNS’ = columnObj
EXPORTING
#1 = 6. “the column number
SET PROPERTY OF columnObj ‘ColumnWidth’ = 10.
SET PROPERTY OF columnObj ‘NumberFormat’ = ‘@’.
17.打开一个workbook.
call METHOD OF workbook ‘Open’ EXPORTING #1 = filename+path.
18. 所有的操作方法都可以在sell—-表 oleload 中 查询到。
19. 执行宏。
CALL METHOD OF EXCEL ‘RUN’ EXPORTING #1 = ‘ZMACRO2’.
20.清除range 内容
CALL METHOD OF EXCEL ‘Range’ = RANGE
EXPORTING
#1 = tar_cell
#2 = tar_cell.
call METHOD of RANGE ‘ClearContents’.
21.合并单元格
CALL METHOD OF EXCEL ‘Range’ = RANGE
EXPORTING
#1 = sor_cell
#2 = tar_cell.
SET PROPERTY OF RANGE ‘MergeCells’ = 1.
22.缩小字体填充
SET PROPERTY OF range ‘ShrinkToFit’ = 0 .
note: 为0时取消缩小字体填充,为1时设置缩小字体填充。
note:
1.与ole相关的关键字存储在表oleload中。
2.如果有些ole方法不熟悉,可以利用vba录制宏来寻找相关的关键字。