DOI EXCEL显示报表
我这个是比较不规则的数据填充
1.程序开头,定义一个工作区,存对应单元格的值:
- BEGIN OF TY_EXCEL,
- C031() TYPE C,
- C032() TYPE C,
- C033() TYPE C,
- C034() TYPE C,
- C035() TYPE C,
- C036() TYPE C,
- C052() TYPE C,
- C054() TYPE C,
- C056() TYPE C,
- C058() TYPE C,
- C091() TYPE C,
- C151() TYPE C,
- C152() TYPE C,
- C153() TYPE C,
- C154() TYPE C,
- C155() TYPE C,
- C156() TYPE C,
- C157() TYPE C,
- C158() TYPE C,
- C181() TYPE C,
- C182() TYPE C,
- C183() TYPE C,
- C184() TYPE C,
- C185() TYPE C,
- C186() TYPE C,
- C187() TYPE C,
- C188() TYPE C,
- END OF TY_EXCEL.
DOI一些变量定义:
- DATA: DOCUMENT_NAME() VALUE 'ZHRR010',
- ACTIVE_SHEET() VALUE 'Sheet1'.
- CONSTANTS INPLACE VALUE 'X'.
- DATA: CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
- CONTROL TYPE REF TO I_OI_CONTAINER_CONTROL,
- DOCUMENT TYPE REF TO I_OI_DOCUMENT_PROXY,
- SPREADSHEET TYPE REF TO I_OI_SPREADSHEET,
- ERROR TYPE REF TO I_OI_ERROR,
- ERRORS TYPE REF TO I_OI_ERROR OCCURS WITH HEADER LINE.
- DATA: RANGEITEM TYPE SOI_RANGE_ITEM.
- DATA: RANGES TYPE SOI_RANGE_LIST.
- DATA: EXCEL_INPUT TYPE SOI_GENERIC_TABLE.
- DATA: EXCEL_INPUT_WA TYPE SOI_GENERIC_ITEM.
- DATA: INITIALIZED(), RETCODE TYPE SOI_RET_STRING.
- DATA: ITEM_URL(), ALREADY_DONE, NEWNAME().
- DATA DOCUMENT_TYPE().
- DATA: EXCEL() VALUE 'Excel.Sheet'.
- DATA: LINE_COUNT TYPE I,
- COLUMN_COUNT TYPE I.
- DATA: OK_CODE LIKE SY-UCOMM.
主屏幕上画个CONTAINER。
单元格填充
- FORM FILL_CELL_01 USING I J VAL.
- DATA: COLUMNS_NUMBER TYPE I,
- ROWS_NUMBER TYPE I.
- COLUMNS_NUMBER = .
- ROWS_NUMBER = .
- CALL METHOD SPREADSHEET->INSERT_RANGE_DIM
- EXPORTING
- NAME = 'cell'
- NO_FLUSH = 'X'
- TOP = I
- LEFT = J
- ROWS = ROWS_NUMBER
- COLUMNS = COLUMNS_NUMBER
- IMPORTING
- ERROR = ERRORS.
- APPEND ERRORS.
- REFRESH: RANGES, EXCEL_INPUT.
- RANGEITEM-NAME = 'cell'.
- RANGEITEM-COLUMNS = .
- RANGEITEM-ROWS = .
- APPEND RANGEITEM TO RANGES.
- EXCEL_INPUT_WA-COLUMN = .
- EXCEL_INPUT_WA-ROW = .
- EXCEL_INPUT_WA-VALUE = VAL.
- APPEND EXCEL_INPUT_WA TO EXCEL_INPUT.
- * set data
- CALL METHOD SPREADSHEET->SET_RANGES_DATA
- EXPORTING
- RANGES = RANGES
- CONTENTS = EXCEL_INPUT
- NO_FLUSH = 'X'
- IMPORTING
- ERROR = ERRORS.
- APPEND ERRORS.
- CALL METHOD SPREADSHEET->FIT_WIDEST
- EXPORTING
- NAME = SPACE
- NO_FLUSH = 'X'.
- REFRESH: RANGES, EXCEL_INPUT.
- ENDFORM. "fill_cell
PBO
- MODULE STATUS_9000 OUTPUT.
- SET PF-STATUS 'STATUS_9000'.
- * SET TITLEBAR 'xxx'.
- * 创建EXCEL模板
- PERFORM CREATE_BASIC_OBJECTS USING '' '' '' '' DOCUMENT_NAME.
- * 输出EXCEL
- PERFORM OUTPUT_TO_EXCEL.
- ENDMODULE.
- FORM CREATE_BASIC_OBJECTS USING P_APP_NAME
- P_CLASSNAME
- P_CLASSTYPE
- P_OBJ_KEY
- P_DOCNAME.
- DATA L_APP_NAME().
- DATA: BDS_INSTANCE TYPE REF TO CL_BDS_DOCUMENT_SET.
- DATA: DOC_SIGNATURE TYPE SBDST_SIGNATURE,
- WA_DOC_SIGNATURE LIKE LINE OF DOC_SIGNATURE,
- DOC_COMPONENTS TYPE SBDST_COMPONENTS,
- DOC_URIS TYPE SBDST_URI,
- WA_DOC_URIS LIKE LINE OF DOC_URIS.
- DATA: DOC_CLASSNAME TYPE SBDST_CLASSNAME VALUE 'PICTURES',
- DOC_CLASSTYPE TYPE SBDST_CLASSTYPE VALUE 'OT',
- DOC_OBJECT_KEY TYPE SBDST_OBJECT_KEY VALUE 'EXCEL'.
- CHECK INITIALIZED IS INITIAL.
- * 处理参数
- IF P_APP_NAME IS INITIAL.
- L_APP_NAME = 'R/3 Reporter'.
- ELSE.
- L_APP_NAME = P_APP_NAME.
- ENDIF.
- IF NOT ( P_CLASSNAME IS INITIAL OR P_CLASSTYPE IS INITIAL
- OR P_OBJ_KEY IS INITIAL ).
- DOC_CLASSNAME = P_CLASSNAME.
- DOC_CLASSTYPE = P_CLASSTYPE.
- DOC_OBJECT_KEY = P_OBJ_KEY.
- ENDIF.
- * 创建容器控制器实例
- CALL METHOD C_OI_CONTAINER_CONTROL_CREATOR=>GET_CONTAINER_CONTROL
- IMPORTING
- CONTROL = CONTROL
- ERROR = ERROR.
- CALL METHOD ERROR->RAISE_MESSAGE
- EXPORTING
- TYPE = 'E'.
- * 创建屏幕上的容器对象
- CREATE OBJECT CONTAINER
- EXPORTING
- CONTAINER_NAME = 'CONTAINER'.
- * 初始化容器控制器
- CALL METHOD CONTROL->INIT_CONTROL
- EXPORTING
- R3_APPLICATION_NAME = L_APP_NAME
- INPLACE_ENABLED = INPLACE
- INPLACE_SCROLL_DOCUMENTS = 'X'
- PARENT = CONTAINER
- REGISTER_ON_CLOSE_EVENT = 'X'
- REGISTER_ON_CUSTOM_EVENT = 'X'
- NO_FLUSH = 'X'
- IMPORTING
- ERROR = ERRORS.
- APPEND ERRORS.
- CLEAR ITEM_URL.
- WA_DOC_SIGNATURE-PROP_NAME = 'DESCRIPTION'.
- DOCUMENT_TYPE = EXCEL.
- WA_DOC_SIGNATURE-PROP_VALUE = DOCUMENT_TYPE.
- APPEND WA_DOC_SIGNATURE TO DOC_SIGNATURE.
- * BDS对象实例化
- CREATE OBJECT BDS_INSTANCE.
- * 读取BDS内容(模板)
- CALL METHOD BDS_INSTANCE->GET_INFO
- EXPORTING
- CLASSNAME = DOC_CLASSNAME
- CLASSTYPE = DOC_CLASSTYPE
- OBJECT_KEY = DOC_OBJECT_KEY
- CHANGING
- COMPONENTS = DOC_COMPONENTS
- SIGNATURE = DOC_SIGNATURE.
- * 读取BDS的URL
- CALL METHOD BDS_INSTANCE->GET_WITH_URL
- EXPORTING
- CLASSNAME = DOC_CLASSNAME
- CLASSTYPE = DOC_CLASSTYPE
- OBJECT_KEY = DOC_OBJECT_KEY
- CHANGING
- URIS = DOC_URIS
- SIGNATURE = DOC_SIGNATURE.
- FREE BDS_INSTANCE.
- LOOP AT DOC_URIS INTO WA_DOC_URIS.
- SEARCH WA_DOC_URIS-URI FOR 'ZHRR010'.
- IF SY-SUBRC = .
- ITEM_URL = WA_DOC_URIS-URI.
- ENDIF.
- ENDLOOP.
- * READ TABLE DOC_URIS INTO WA_DOC_URIS INDEX 3.
- * ITEM_URL = WA_DOC_URIS-URI.
- * ask the SAP DOI container for a i_oi_document_proxy for Excel
- * 容器控制器获得一个EXCEL文档代理
- CALL METHOD CONTROL->GET_DOCUMENT_PROXY
- EXPORTING
- DOCUMENT_TYPE = 'Excel.Sheet1'
- NO_FLUSH = 'X'
- IMPORTING
- DOCUMENT_PROXY = DOCUMENT
- ERROR = ERRORS.
- APPEND ERRORS.
- * open a document saved in business document service.
- * 容器控制器中打开指定BDS返回的文档
- CALL METHOD DOCUMENT->OPEN_DOCUMENT
- EXPORTING
- OPEN_INPLACE = INPLACE
- DOCUMENT_URL = ITEM_URL.
- DATA: HAS TYPE I.
- CALL METHOD DOCUMENT->HAS_SPREADSHEET_INTERFACE
- EXPORTING
- NO_FLUSH = ''
- IMPORTING
- IS_AVAILABLE = HAS
- ERROR = ERRORS.
- APPEND ERRORS.
- CALL METHOD DOCUMENT->GET_SPREADSHEET_INTERFACE
- EXPORTING
- NO_FLUSH = ' '
- IMPORTING
- SHEET_INTERFACE = SPREADSHEET
- ERROR = ERRORS.
- APPEND ERRORS.
- * Activate sheet
- CALL METHOD SPREADSHEET->SELECT_SHEET
- EXPORTING
- NAME = ACTIVE_SHEET
- NO_FLUSH = ''
- IMPORTING
- ERROR = ERRORS.
- APPEND ERRORS.
- *错误处理
- LOOP AT ERRORS.
- CALL METHOD ERRORS->RAISE_MESSAGE
- EXPORTING
- TYPE = 'S'.
- ENDLOOP.
- FREE ERRORS.
- INITIALIZED = 'X'.
- ENDFORM.
- FORM OUTPUT_TO_EXCEL .
- DATA:LV_LINE TYPE I.
- DATA:LV_YD LIKE LINE OF GT_PA0001.
- DATA:LV_COUNT TYPE I.
- DATA:LT_YD TYPE TABLE OF TY_0000.
- DATA:LV_GZ1 TYPE I.
- DATA:LV_GZ2 TYPE I.
- PERFORM FILL_CELL_01 USING GW_EXCEL-C031 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C032 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C033 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C034 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C035 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C036 ."工号
- IF GW_EXCEL-C054 > .
- PERFORM FILL_CELL_01 USING GW_EXCEL-C052 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C054 ."工号
- ENDIF.
- PERFORM FILL_CELL_01 USING GW_EXCEL-C056 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C058 ."工号
- AUTHORITY-CHECK OBJECT 'ZHR01'
- ID 'INFOTYP' FIELD ''.
- IF SY-SUBRC = .
- PERFORM FILL_CELL_01 USING GW_EXCEL-C091 ."工号
- ENDIF.
- * AUTHORITY-CHECK OBJECT 'ZHR02'
- * ID 'INFOTYP' FIELD '9004'.
- * IF SY-SUBRC = 0.
- * PERFORM FILL_CELL_01 USING 9 2 GW_EXCEL-C091 ."工号
- * ENDIF.
- PERFORM FILL_CELL_01 USING GW_EXCEL-C151 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C152 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C153 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C154 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C155 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C156 ."工号
- * PERFORM FILL_CELL_01 USING 15 7 GW_EXCEL-C157 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C158 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C181 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C182 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C183 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C184 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C185 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C186 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C187 ."工号
- PERFORM FILL_CELL_01 USING GW_EXCEL-C188 ."工号
- LV_LINE = .
- "异动情况
- SORT GT_PA0000 BY PERNR BEGDA ENDDA ASCENDING.
- "绩效明细
- LV_COUNT = LINES( GT_PA9002 ) - .
- DO LV_COUNT TIMES.
- CALL METHOD DOCUMENT->EXECUTE_MACRO
- EXPORTING
- MACRO_STRING = '模块4.Macro2'
- IMPORTING
- ERROR = ERRORS.
- ENDDO.
- "异动明细
- APPEND LINES OF GT_PA0000 TO LT_YD.
- DELETE LT_YD WHERE MASSN <> 'Z3'.
- LV_COUNT = LINES( LT_YD ) - .
- DO LV_COUNT TIMES.
- CALL METHOD DOCUMENT->EXECUTE_MACRO
- EXPORTING
- MACRO_STRING = '模块4.Macro1'
- IMPORTING
- ERROR = ERRORS.
- ENDDO.
- "************************************工资
- SORT GT_PA9004[] BY PERNR BEGDA DESCENDING.
- DELETE GT_PA9004 WHERE ZJBGZ = AND ZJXGZ = AND ZZWJT =
- AND ZFDJJ = AND ZTSGWJT = AND ZQTJT = .
- LOOP AT GT_PA0000 INTO GW_PA0000." WHERE MASSN = 'Z3'.
- READ TABLE GT_PA0001 INTO GW_PA0001 WITH KEY PERNR = GW_PA0000-PERNR
- BEGDA = GW_PA0000-BEGDA.
- * ENDDA = GW_PA0000-ENDDA.
- IF SY-SUBRC = .
- IF GW_PA0000-MASSN = 'Z1' OR GW_PA0000-MASSN = 'Z2'.
- MOVE-CORRESPONDING GW_PA0001 TO LV_YD."将异动前数据保存
- ENDIF.
- IF GW_PA0000-MASSN = 'Z3'."异动
- CLEAR:LV_GZ1,LV_GZ1.
- READ TABLE GT_PA9004 INTO GW_PA9004 WITH KEY PERNR = GW_PA0000-PERNR
- BEGDA = GW_PA0000-BEGDA.
- * ENDDA = GW_PA0000-ENDDA.
- IF SY-SUBRC = .
- LV_GZ2 = GW_PA9004-ZJBGZ + GW_PA9004-ZJXGZ + GW_PA9004-ZZWJT
- + GW_PA9004-ZFDJJ + GW_PA9004-ZTSGWJT + GW_PA9004-ZQTJT.
- ENDIF.
- LOOP AT GT_PA9004 INTO GW_PA9004 WHERE PERNR = GW_PA0000-PERNR.
- IF GW_PA9004-BEGDA = GW_PA0000-BEGDA."当前异动后工资
- LV_GZ2 = GW_PA9004-ZJBGZ + GW_PA9004-ZJXGZ + GW_PA9004-ZZWJT
- + GW_PA9004-ZFDJJ + GW_PA9004-ZTSGWJT + GW_PA9004-ZQTJT.
- ELSEIF GW_PA9004-BEGDA < GW_PA0000-BEGDA."当前异动前工资
- IF LV_GZ1 <> .
- LV_GZ1 = GW_PA9004-ZJBGZ + GW_PA9004-ZJXGZ + GW_PA9004-ZZWJT
- + GW_PA9004-ZFDJJ + GW_PA9004-ZTSGWJT + GW_PA9004-ZQTJT.
- ENDIF.
- ENDIF.
- ENDLOOP.
- PERFORM FILL_CELL_01 USING LV_LINE GW_PA0001-BEGDA ."异动时间
- PERFORM FILL_CELL_01 USING LV_LINE LV_YD-ORGTX ."异动前部门
- PERFORM FILL_CELL_01 USING LV_LINE LV_YD-PLSTX ."异动前岗位
- AUTHORITY-CHECK OBJECT 'ZHR01'
- ID 'INFOTYP' FIELD ''.
- IF SY-SUBRC = .
- PERFORM FILL_CELL_01 USING LV_LINE LV_GZ1 ."异动时间
- PERFORM FILL_CELL_01 USING LV_LINE LV_GZ2 ."异动后工资
- ENDIF.
- PERFORM FILL_CELL_01 USING LV_LINE GW_PA0001-ORGTX ."异动后部门
- PERFORM FILL_CELL_01 USING LV_LINE GW_PA0001-PLSTX ."异动后岗位
- MOVE-CORRESPONDING GW_PA0001 TO LV_YD."将异动前数据保存
- LV_LINE = LV_LINE + .
- ENDIF.
- ENDIF.
- ENDLOOP.
- "无异动,行数下移一位
- IF LV_COUNT < .
- LV_LINE = LV_LINE + .
- ELSE."IF LV_COUNT > 1.
- LV_LINE = LV_LINE + .
- * ELSEIF LV_COUNT = 1.
- * LV_LINE = LV_LINE + 2.
- ENDIF.
- LOOP AT GT_PA9002 INTO GW_PA9002.
- PERFORM FILL_CELL_01 USING LV_LINE GW_PA9002-ZJXNY ."绩效考核年月份
- PERFORM FILL_CELL_01 USING LV_LINE GW_PA9002-ZJXZF ."绩效总分
- AUTHORITY-CHECK OBJECT 'ZHR01'
- ID 'INFOTYP' FIELD ''.
- IF SY-SUBRC = .
- PERFORM FILL_CELL_01 USING LV_LINE GW_PA9002-ZJXJJ ."奖惩金额
- ENDIF.
- LV_LINE = LV_LINE + .
- ENDLOOP.
- "证书
- DATA:LV_ZS() TYPE C.
- LV_LINE = LV_LINE + .
- LOOP AT GT_PA9003 INTO GW_PA9003.
- IF GW_PA9003-ZZCZG IS NOT INITIAL.
- CONCATENATE LV_ZS GW_PA9003-ZZCZG INTO LV_ZS SEPARATED BY '/'.
- ENDIF.
- ENDLOOP.
- PERFORM FILL_CELL_01 USING LV_LINE LV_ZS ."绩效考核年月份
- ENDFORM.
PAI
- MODULE USER_COMMAND_9000 INPUT.
- IF OK_CODE = 'BACK' .
- CALL METHOD DOCUMENT->CLOSE_DOCUMENT.
- FREE DOCUMENT.
- CALL METHOD CONTROL->DESTROY_CONTROL.
- FREE CONTROL.
- SET SCREEN .
- * ELSEIF OK_CODE = 'EXCEL' .
- * PERFORM SUB_OUT_EXCEL .
- ENDIF .
- ENDMODULE.
DOI EXCEL显示报表的更多相关文章
- 使用C#和Excel进行报表开发(三)-生成统计图(Chart)
有的Web项目选用Excel作为报表方案,在服务器端生成Excel文件,然后传送到客户端,由客户端进行打印.在国内的环境下,相对PDF方式,Excel的安装率应该比pdf阅读器的安装率要高,同时,微软 ...
- C#操作Excel开发报表系列整理(转)
C#操作Excel进行报表开发系列共写了七篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...
- EBS中 EXCEL 格式报表输出的公用API
http://blog.itpub.net/10359218/viewspace-752601/ 最近的项目上写了一个公用的API,很久以前就用EXCEL发布过报表,但从没想过写API来简化... ...
- 极速响应Excel数据报表请求的一种方法
摘要 通过缓存和维护Excel Workbook实例,极速响应Excel数据报表请求. 这是一个真实的大数据"云计算"项目中的解决方案,在给定的时间和资源下,只有这种方法是最简单并 ...
- python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图
python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...
- C#操作Excel开发报表系列整理
C#操作Excel进行报表开发系列共写了八篇,也已经有很久没有新东西了,现在整理一下,方便以后查阅,如果有写新的,会同时更新.需要注意的是因为Office的版本不同,实际的代码可能会有所不同,但是都是 ...
- 怎么让Excel显示时间时候能把秒显示出来
Excel显示时间一般只显示年月日小时分钟怎么能够把秒也显示出来既如下显示 2007-04-11 12:00:00 将单元格格式设为"自定义",在"类型"框中输 ...
- python制作简单excel统计报表2之操作excel的模块openpyxl简单用法
python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...
- 作为报表工具,Excel移动报表的优势和劣势
Excel是应用最广泛的报表工具,它集数据存储.数据处理.数据分析于一身,广泛应用于各行各业的日常工作中(无论这个企业的信息化程度有多高.多低).而且随着Office365的普及,软件License的 ...
随机推荐
- Beaglebone Black - 控制 BBB 板上的 LED 灯
BBB 的板上有五个 LED 灯,一个电源,四个其他指示灯,usr0 至 usr3 .这次学习是控制 usr0 至 3 让它们亮着,熄灭,闪.算是个 Hello World 实验.非常简单. 需要的材 ...
- 【VB6笔记-01】 读取Excel绑定到DataGrid
Private Sub cmdOpen_Click() CommonDialog1.Filter = "Excel???t(*.xlsx)|*.xlsx" CommonDialog ...
- hdu 4217 Data Structure? 树状数组求第K小
Data Structure? Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- javascript中获取非行间样式的方法
我们都知道一般在javascript中获取样式一般用的是nodeObj.style.attr这个属性的,但是这个属性只能获取行间样式非行间样式比如写在样式表中的样式那么用nodeObj.style.a ...
- iOS - OC NSProcessInfo 系统进程信息
前言 @interface NSProcessInfo : NSObject NSProcessInfo 类中包含一些方法,允许你设置或检索正在运行的应用程序(即进程)的各种类型的信息. 1.获取系统 ...
- SAP供应商和客户的创建
进来遇到一个创建供应商的需求,由于在系统中关于供应商和客户的创建比较特殊,且没有相关函数进行创建, 找到一个类和方法来创建,类名:VMD_EI_API 方法名:MAINTAIN_DIRECT_INP ...
- bootstrap学习笔记<二>(标题,段落样式)
标题.样式:class="h1"~class="h6" bootstrap中重新定义了h1~h6标签,具体差别如下: 在bootstrap中其他任何标签使用cl ...
- poj2420A Star not a Tree?(模拟退火)
链接 求某一点到其它点距离和最小,求这个和,这个点 为费马点. 做法:模拟退火 #include <iostream> #include<cstdio> #include< ...
- html的空格和换行显示【摘自网络】
一.HTML 代码中的所有连续的空格或空行(换行)都会被显示为一个空格,不管是内容还是标签之间. 二.当我们想让它们在同一行连续显示时,就让所有的代码之间没有空格,也不要换行. 三.当我们想要显示连续 ...
- SDL1.2到2.0的迁移指南(转)
里面有些单词不好翻译所以放在开头,以备查验. BLock Image Transfer, a computer graphics operation in which two bitmap patte ...