Z**002
来源:互联网 发布:软件质量控制流程 编辑:程序博客网 时间:2024/04/30 08:59
INCLUDE ZWJ0017_top.
INITIALIZATION.
*PERFORM frm_init.
AT SELECTION-SCREEN.
*PERFORM frm_check.
* AT SELECTION-SCREEN OUTPUT.
* PERFORM frm_get_values."设置下拉框
START-OF-SELECTION.
PERFORM frm_get_data.
PERFORM output_data.
INCLUDE ZWJ0017_frm.
*&---------------------------------------------------------------------*
*& 包括 ZWJ0017_TOP
*&---------------------------------------------------------------------*
TABLES:marc,mvke,pbim,pbed,mard,zwj_pp.
DATA:gt_exclude TYPE ui_functions.
DATA:g_itab_fieldcat_lvc TYPE lvc_t_fcat.
DATA:g_itab_sort_lvc TYPE lvc_t_sort.
DATA:LT_VAL_WERKS TYPE VRM_VALUES WITH HEADER LINE.
DATA:wa_sort_lvc TYPE lvc_s_sort."定义排序的
DATA:it_sort_lvc TYPE lvc_t_sort."定义排序的
DATA:it_excluding TYPE slis_t_extab."定义隐藏标准按钮的变量
DATA:wa_excluding LIKE LINE OF it_excluding. "定义隐藏标准按钮的变量
DATA:lt_ddval TYPE lvc_t_drop.
DATA:ls_ddval TYPE lvc_s_drop.
DATA:ls_EVENTS TYPE SLIS_ALV_EVENT.
DATA:lt_EVENTS TYPE SLIS_T_EVENT.
*声明ALV显示内表类型
TYPES:BEGIN OF ty_alv_itab.
INCLUDE STRUCTURE zwj_pp."ZWJ_PP是自建表,里面的字段就是以下带星号的字段
* werks TYPE marc-werks,"工厂
* matnr TYPE marc-matnr,"物料号
* maktx TYPE makt-maktx,"物料描述
* plnmg TYPE pbed-plnmg,"需求
* labst TYPE mard-labst,"库存数量
* zdjs TYPE zwj_pp-zdjs,"待检数
* zwqcgdd TYPE ZWJ_PP-zwqcgdd,"未清采购订单(在途)
* zjxq TYPE ZWJ_PP-zjxq,"净需求
* bstmi TYPE marc-bstmi,"最小批量
* ztzsl TYPE ZWJ_PP-ztzsl,"调整数量
* zcgxdsl TYPE ZWJ_PP-zcgxdsl,"采购下单数量
* zyqdhsj TYPE ZWJ_PP-zyqdhsj,"要求到货时间
* zyjdhsj TYPE ZWJ_PP-zyjdhsj,"预计到货时间
TYPES: zsfsc(220),
line_color(4),
LV(4),
dd_hndl TYPE int4,
END OF ty_alv_itab.
TYPES:BEGIN OF ty_pbim,
matnr TYPE pbim-matnr,"物料
werks TYPE pbim-werks,"工厂
plnmg TYPE pbed-plnmg,"需求数量
END OF ty_pbim.
DATA:OK_CODE_9000 LIKE SY-UCOMM.
DATA:SAVE_OK LIKE SY-UCOMM.
*ALV变量
DATA:
g_ischange,
g_tabnm(30) TYPE c VALUE 'ZWJ_PP',"维护表表名
gs_variant TYPE disvariant,
gs_alv_itab TYPE ty_alv_itab,
gt_alv_itab TYPE TABLE OF ty_alv_itab WITH HEADER LINE,
*gt_alv_itab LIKE TABLE OF ZWJ_PP WITH HEADER LINE,
gt_type_dec TYPE TABLE OF dd07t WITH HEADER LINE,
gt_fieldcat TYPE lvc_t_fcat, "ALV字段目录
gs_layout TYPE lvc_s_layo. "ALV样式
*gt_exclude TYPE ui_functions. "ALV排除按钮
*wcl_container TYPE REF TO cl_gui_docking_container,"容器类
*wcl_alv TYPE REF TO cl_gui_alv_grid."ALV类
DATA:wcl_container TYPE REF TO cl_gui_docking_container,"容器类
wcl_alv TYPE REF TO cl_gui_alv_grid."ALV类
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:s_werks FOR marc-werks OBLIGATORY MEMORY ID zwk ,"工厂
s_matnr FOR marc-matnr."物料
* s_mvgr1 FOR mvke-mvgr1."物料组
PARAMETERS:p_budat LIKE marc-mmstd DEFAULT sy-datum.
*PARAMETERS:P_WERKS TYPE MARC-WERKS AS LISTBOX VISIBLE LENGTH 30.
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
*& 包括 ZWJ0017_FRM
*&---------------------------------------------------------------------*
FORM FRM_GET_DATA .
*CLEAR:gs_alv_itab,gt_alv_itab[].
DATA:
* lt_mvke TYPE TABLE OF ty_mvke WITH HEADER LINE,
lt_mard TYPE TABLE OF mard WITH HEADER LINE,
lt_pbim TYPE TABLE OF ty_pbim WITH HEADER LINE,
lt_vbap TYPE TABLE OF vbap WITH HEADER LINE,
lt_lips TYPE TABLE OF lips WITH HEADER LINE,
lt_pp TYPE TABLE OF zwj_pp WITH HEADER LINE.
* 取物料工厂数据
SELECT t01~matnr"物料
t01~werks"工厂
t02~maktx"物料描述
* t03~name1"工厂描述
FROM marc AS t01
INNER JOIN makt AS t02 ON t01~matnr = t02~matnr AND t02~spras = '1'
INNER JOIN t001w AS t03 ON t01~werks = t03~werks
INNER JOIN mara AS t04 ON t01~matnr = t04~matnr
INTO CORRESPONDING FIELDS OF TABLE gt_alv_itab
WHERE t01~werks IN s_werks
AND t01~matnr IN s_matnr
AND t04~mtart = 'FERT'.
* 取物料组数据
* SELECT t01~matnr"物料
* t01~mvgr1 "物料组1
* t02~bezei"描述
* FROM mvke AS t01
* INNER JOIN tvm1t AS t02 ON t01~mvgr1 = t02~mvgr1 AND t02~spras = '1'
* INTO CORRESPONDING FIELDS OF TABLE lt_mvke
* WHERE t01~matnr IN s_matnr.
* 本月需求数量
SELECT matnr "物料
werks "工厂
SUM( plnmg ) AS plnmg"需求数量
FROM pbim AS t01
INNER JOIN pbed AS t02 ON t01~bdzei = t02~bdzei
INTO CORRESPONDING FIELDS OF TABLE lt_pbim
WHERE werks IN s_werks
AND matnr IN s_matnr
AND versb = '00'
* AND pdatu IN r_now
AND t01~loevr = ''
AND t02~loevr = ''
GROUP BY matnr werks.
* 库存数量
SELECT matnr "物料
werks"工厂
lgort"库存地点
labst"库存数
* SUM( labst ) AS labst"库存数累计
FROM mard
INTO CORRESPONDING FIELDS OF TABLE lt_mard
WHERE werks IN s_werks
AND matnr IN s_matnr.
* GROUP BY matnr werks.
* 取保存数据
SELECT *
FROM zwj_pp
INTO TABLE lt_pp
WHERE werks IN s_werks
AND matnr IN s_matnr.
LOOP AT gt_alv_itab.
* 读取本月计划数量
READ TABLE lt_pbim WITH KEY werks = gt_alv_itab-werks matnr = gt_alv_itab-matnr.
IF sy-subrc = 0.
gt_alv_itab-plnmg = lt_pbim-plnmg."计划数量
ENDIF.
* 读取库存数量
READ TABLE lt_mard WITH KEY werks = gt_alv_itab-werks matnr = gt_alv_itab-matnr.
IF sy-subrc = 0.
gt_alv_itab-labst = lt_mard-labst."库存数量
ENDIF.
IF gt_alv_itab-plnmg = 0.
gt_alv_itab-lv = icon_red_light.
ELSE.
gt_alv_itab-lv = icon_green_light.
ENDIF.
CASE gt_alv_itab-lv.
WHEN icon_red_light.
gt_alv_itab-zsfsc = '是'.
WHEN icon_green_light.
gt_alv_itab-zsfsc = '否'.
WHEN others.
* gt_alv_itab-lv = '其他'.
gt_alv_itab-zsfsc = '其他'.
ENDCASE.
* gt_alv_itab-zdjs = gt_alv_itab-plnmg - gt_alv_itab-labst.
READ TABLE lt_pp WITH KEY werks = gt_alv_itab-werks matnr = gt_alv_itab-matnr.
IF SY-SUBRC = 0.
gt_alv_itab-zdjs = lt_pp-zdjs.
gt_alv_itab-zwqcgdd = lt_pp-zwqcgdd.
gt_alv_itab-zjxq = gt_alv_itab-plnmg - gt_alv_itab-zwqcgdd - gt_alv_itab-labst.
gt_alv_itab-bstmi = lt_pp-bstmi.
gt_alv_itab-ztzsl = lt_pp-ztzsl.
gt_alv_itab-zcgxdsl = gt_alv_itab-zdjs + gt_alv_itab-zwqcgdd.
gt_alv_itab-zyqdhsj = lt_pp-zyqdhsj.
gt_alv_itab-zyjdhsj = lt_pp-zyjdhsj.
ENDIF.
gt_alv_itab-dd_hndl = 1.
MODIFY gt_alv_itab.
CLEAR gt_alv_itab.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form OUTPUT_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM OUTPUT_DATA .
* DATA:ls_exclude TYPE ui_func."删除按钮
* ls_exclude = cl_gui_alv_grid=>mc_fc_print.
* APPEND ls_exclude to gt_exclude.
DATA: l_layout TYPE lvc_s_layo,
i_grid_settings TYPE lvc_s_glay,"显示回调
l_repid LIKE sy-repid, "当前程序名
l_events TYPE slis_t_event WITH HEADER LINE.
l_repid = sy-repid.
* 填充FIELDCAT.
PERFORM sub_fill_alv_fieldcat USING 'WERKS' '工厂' space space 'X' space space space space.
PERFORM sub_fill_alv_fieldcat USING 'MATNR' '物料号' space 'X' space space space space space.
PERFORM sub_fill_alv_fieldcat USING 'MAKTX' '物料描述' space space space space space space space.
PERFORM sub_fill_alv_fieldcat USING 'PLNMG' '需求' space 'X' space space space space space.
PERFORM sub_fill_alv_fieldcat USING 'LABST' '库存数量' space 'X' space space space space space.
PERFORM sub_fill_alv_fieldcat USING 'ZDJS' '待检数' space 'X' space space space space space.
PERFORM sub_fill_alv_fieldcat USING 'ZWQCGDD' '未清采购订单数(在途)' space 'X' space space 'C701' space space.
PERFORM sub_fill_alv_fieldcat USING 'ZJXQ' '净需求'space 'X' space space 'C100' space space.
PERFORM sub_fill_alv_fieldcat USING 'BSTMI' '最小批量' space 'X' space space 'C200' space space.
PERFORM sub_fill_alv_fieldcat USING 'ZTZSL' '调整数量' space 'X' space space 'C300' space space.
PERFORM sub_fill_alv_fieldcat USING 'ZCGXDSL' '采购下单数量' 'X' 'X' space space 'C410' space space.
PERFORM sub_fill_alv_fieldcat USING 'ZYQDHSJ' '要求到货时间' 'X' space space space space 'R' space.
PERFORM sub_fill_alv_fieldcat USING 'ZYJDHSJ' '预计到货时间' 'X'space space space space 'R' space.
PERFORM sub_fill_alv_fieldcat USING 'LV' '图标'space space space space space space space.
PERFORM sub_fill_alv_fieldcat USING 'ZSFSC' '是否生产' 'X' space space space space space 'DD_HNDL'.
*PERFORM creat_dropdown_values.
l_layout-cwidth_opt = 'X'."自动优化列宽
l_layout-col_opt = 'X'. " 字段在列表中的第几列
l_layout-zebra = 'X'. "使ALV界面呈现颜色交替
* l_layout-sel_mode = 'B'. "选择模式,
* l_layout-no_rowmark = 'X'." 如果这个字段被设置,那么每一行前面的选择按钮就会被隐藏
l_layout-info_fname = 'LINE_COLOR'."带有简单行彩色代码的字段名称 最长30个字符
i_grid_settings-edt_cll_cb = 'X'.
l_layout-TOTALS_BEF = 'X'.
* l_layout-f2code = '&ETA'.
ls_events-name = 'CALLER_EXIT'.
ls_events-form = 'CALLER_EXIT'.
APPEND ls_events to lt_events.
* CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
* EXPORTING
** PERCENTAGE = 0
* TEXT = '数据处理中,请稍等片刻... '
* . “进行耗费时间处理,需要时再用
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE =
I_CALLBACK_PROGRAM = l_repid
I_CALLBACK_PF_STATUS_SET = 'FRM_STATUS'
I_CALLBACK_USER_COMMAND = 'FRM_USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = 'ALV_TOP_OF_PAGE '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
I_GRID_TITLE = '史上功能最全的报表'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT_LVC = l_layout
IT_FIELDCAT_LVC = g_itab_fieldcat_lvc
IT_EXCLUDING = it_excluding
* IT_SPECIAL_GROUPS_LVC =
IT_SORT_LVC = it_sort_lvc
* IT_FILTER_LVC =
* IT_HYPERLINK =
* IS_SEL_HIDE = 'X'
I_DEFAULT = 'X'
I_SAVE = 'A'
* IS_VARIANT = gs_variant
IT_EVENTS = LT_EVENTS
* IT_EVENT_EXIT =
* IS_PRINT_LVC =
* IS_REPREP_ID_LVC =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO_LVC =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = gt_alv_itab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.
FORM alv_top_of_page USING cl_dd TYPE REF TO cl_dd_document.
DATA: m_p TYPE i.
DATA: m_buff TYPE string.
*表头其实完全可以是一个html文件,自己使用html语言进行格式控制
m_buff = '<html>'.
CALL METHOD cl_dd->html_insert
EXPORTING
contents = m_buff
CHANGING
position = m_p.
m_buff = '<center><H2>配件报废品种汇总表</H2></Center>'.
CALL METHOD CL_DD->HTML_INSERT
EXPORTING
CONTENTS = m_buff
CHANGING
POSITION = m_p.
CONCATENATE '报表日期:' ' TO ' '' into m_buff.
CALL METHOD CL_DD->HTML_INSERT
EXPORTING
CONTENTS = m_buff
CHANGING
POSITION = m_p.
m_buff = '</html>'.
CALL METHOD cl_dd->html_insert
EXPORTING
contents = m_buff
CHANGING
position = m_p.
ENDFORM.
FORM CALLER_EXIT USING LS_DATA TYPE SLIS_DATA_CALLER_EXIT.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = wcl_ALV.
ls_ddval-handle = '1' .
ls_ddval-value = '是' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = '否' .
APPEND ls_ddval TO lt_ddval .
ls_ddval-handle = '1' .
ls_ddval-value = '其他' .
APPEND ls_ddval TO lt_ddval .
CALL METHOD wcL_ALV->SET_DROP_DOWN_TABLE
EXPORTING
IT_DROP_DOWN = lT_DDVAL.
ENDFORM. "CALLER_EXIT
FORM SUB_FILL_ALV_FIELDCAT USING p_fieldname "TYPE slis_fieldname
p_reptext_ddic "LIKE dd03p-reptext
P_edit" TYPE slis_edit_mask
p_zero" TYPE c
p_hotspot
P_SUM
p_color
p_just
p_handle.
* P_DRDN_FIELD.
DATA:L_fieldcat_lvc TYPE lvc_s_fcat.
l_fieldcat_lvc-fieldname = p_fieldname.
L_fieldcat_lvc-reptext = p_reptext_ddic.
L_fieldcat_lvc-edit = p_edit.
L_fieldcat_lvc-no_zero = p_zero.
L_fieldcat_lvc-hotspot = p_hotspot.
L_fieldcat_lvc-do_sum = p_sum.
L_fieldcat_lvc-emphasize = p_color.
L_fieldcat_lvc-just = p_just.
L_fieldcat_lvc-drdn_field = p_handle.
* IF L_fieldcat_lvc-drdn_field = 'ZSFSC'.
* PERFORM FRM_PREPARE_DRILLDOWN_VALUES.
* ENDIF.
*
IF p_fieldname = 'ZCGXDSL'.
L_fieldcat_lvc-datatype = 'QUAN'.
L_fieldcat_lvc-inttype = 'C'.
* IF p_fieldname = 'ZSFSC'.
* L_fieldcat_lvc-drdn_field = 'ZSFSC'.
* ENDIF.
* IF p_fieldname = 'ZYJDHSJ'.
* L_fieldcat_lvc-emphasize = 'C301'.
*
* ENDIF.
ENDIF.
* IF p_fieldname = 'ZSFSC'.
* PERFORM FRM_PREPARE_DRILLDOWN_VALUES.
* PERFORM caller_exit1.
*
* ENDIF.
wa_sort_lvc-spos = 1."设置排序字段,TOP需定义
wa_sort_lvc-fieldname = 'ZCGXDSL'.
wa_sort_lvc-up = 'X'.
append wa_sort_lvc to it_sort_lvc.
CLEAR wa_sort_lvc.
wa_excluding-fcode = '&ABC'."隐藏标准按钮ABC,TOP需定义
APPEND wa_excluding to it_excluding.
* CLEAR wa_excluding.
APPEND L_fieldcat_lvc TO g_itab_fieldcat_lvc.
CLEAR l_fieldcat_lvc.
ENDFORM.
FORM frm_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: lr_grid TYPE REF TO cl_gui_alv_grid.
data: l_valid type c.
*4此处代码将用户输入读入内表(这一步不可少)
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lr_grid.
CALL METHOD lr_grid->check_changed_data.
*5此处代码阻止'REUSE_ALV_GRID_DISPLAY创建新的屏幕,造成屏幕多层
RS_selfield-refresh = 'X'.
CASE r_ucomm.
WHEN 'SAVE'.
LOOP AT gt_alv_itab.
MOVE-CORRESPONDING gt_alv_itab to ZWJ_PP.
MODIFY ZWJ_PP FROM ZWJ_PP.
ENDLOOP.
COMMIT WORK.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDFORM.
"FORM GT_EVENTS USING ls_data TYPE slis_data_caller_exit.
"DATA: l_ref_alv TYPE REF TO cl_gui_alv_grid. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
"IMPORTING
" e_grid = l_ref_alv.
"CALL METHOD l_ref_alv->set_drop_down_table
" EXPORTING
" it_drop_down = Lt_ddval.
*ENDFORM.
FORM FRM_STATUS USING EXTAB TYPE slis_t_eXTAB.
SET PF-STATUS '0101'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_PREPARE_DRILLDOWN_VALUES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
*FORM FRM_PREPARE_DRILLDOWN_VALUES .
* DATA lt_ddval TYPE lvc_t_drop .
* DATA ls_ddval TYPE lvc_s_drop .
* ls_ddval-handle = '1' .
* ls_ddval-value = '是' .
* APPEND ls_ddval TO lt_ddval .
* ls_ddval-handle = '1' .
* ls_ddval-value = '否' .
* APPEND ls_ddval TO lt_ddval .
* ls_ddval-handle = '1' .
* ls_ddval-value = '其他' .
* APPEND ls_ddval TO lt_ddval .
* CALL METHOD wcl_alv->set_drop_down_table
* EXPORTING
* it_drop_down = lt_ddval.
*ENDFORM. " FRM_PREPARE_DRILLDOWN_VALUES
*---------------------------------------------------------------------*
*设置下拉列表,使Grid和内表能链接上
*---------------------------------------------------------------------*
*FORM caller_exit USING ls_data TYPE slis_data_caller_exit.
* DATA: l_ref_alv TYPE REF TO cl_gui_alv_grid.
* CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* IMPORTING
* e_grid = l_ref_alv.
* CALL METHOD l_ref_alv->set_drop_down_table
* EXPORTING
* it_drop_down = Lt_ddval.
*ENDFORM. "CALLER_EXIT
"*&---------------------------------------------------------------------*
"*& Form CALLER_EXIT1
"*&---------------------------------------------------------------------*
"* text
"*----------------------------------------------------------------------*
"* --> p1 text
"* <-- p2 text
"*----------------------------------------------------------------------*
"FORM CALLER_EXIT1 .
"ENDFORM. " CALLER_EXIT1
*http://www.cnblogs.com/VerySky/articles/2392262.html
*&---------------------------------------------------------------------*
*& Form FRM_GET_VALUES
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
*FORM FRM_GET_VALUES ."选择屏幕设置下拉框。。。
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* ID = 'P_WERKS'
* VALUES = LT_VAL_WERKS[].
* EXCEPTIONS
* ID_ILLEGAL_NAME = 1
* OTHERS = 2
.
* IF SY-SUBRC <> 0.
* Implement suitable error handling here
* ENDIF.
*ENDFORM. " FRM_GET_VALUES
- Z**002
- Z**002XO
- z
- z
- Z
- Z
- Z
- Z
- Z
- Z
- *.7z.002类型的文件解压
- [技巧]怎样用WinRAR解压7z.001,7z.002……格式的文件
- 用WinRAR解压7z.001,7z.002……格式的文件
- 用WinRAR解压7z.001,7z.002……格式的文件
- 遇到 *.7z001 *.7z.002 *.7z.003 如何用winrar解压缩
- [技巧]怎样用WinRAR解压7z.001,7z.002……格式的文件
- 处理7z格式的001、002……文件
- 12C-OCP升级1z-060-002
- HDU1069(还是dp基础)
- 剑指offer面试题21
- 怎样快速学习一门新技术
- 探讨C++中对象的“浅拷贝”与“深拷贝”
- 怎样快速学习一门新技术
- Z**002
- iOS获取OpenUUID
- 剑指offer面试题22
- 15-1-(1)-工资数据的输入(cin)
- 打造良好UI的32条建议(上)
- 打造良好UI的32条建议(下)
- Z**0022B
- cocos2d_android 向布景层添加一个精灵对象
- iOS开发中常用的两种架构(1)