http://wenku.baidu.com/view/2117e25077232f60ddcca17a.html     一直想做一个dialog 程序但是一直没有这个需求,一直没做而又知道有这么一个基础的东西心里总是堵得慌,反正这两天也有空,闲的没事就边学边做了一个

*&---------------------------------------------------------------------*
*& Report  Z_VST_APAPPLY
*& 支出申请单
*&---------------------------------------------------------------------*
*& 实现新增、修改、删除、打印等功能
*&
*&---------------------------------------------------------------------*
REPORT  zfi_007.
TABLES:bkpf,bseg,bsik,lfa1,skat,zapa_header,zapa_item,tcurr,bsak.* 变量定义
DATA : smartform(30) TYPE c.
DATA fm_name TYPE c.
DATA: gv_fmname        TYPE rs38l_fnam,gs_control_param TYPE ssfctrlop,gs_output_option TYPE ssfcompop,gs_cresop        TYPE ssfcresop.
DATA: gv_formname  TYPE tdsfname.
DATA: lv_line  TYPE i VALUE 0.
CONSTANTS  gc_x  TYPE char1  VALUE 'X'.
DATA: tmp_belnr LIKE bsik-belnr.
DATA: number(3) TYPE c.
DATA: grop(8) TYPE c VALUE 'NO1'.DATA: z_header TYPE zapa_header.
DATA: zapa_item1 TYPE zapa_item OCCURS 0 WITH HEADER LINE.DATA: p_gjahr LIKE bsik-gjahr,p_bukrs LIKE t001-bukrs,p_lifnr LIKE bsik-lifnr,p_zfbdt LIKE bsik-zfbdt,p_belnr LIKE zapa_header-belnr.
CALL SCREEN 0100.INITIALIZATION.WRITE :p_bukrs,/ p_lifnr,/ p_zfbdt,/ p_belnr .***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'Z_ITEM'
*&SPWIZARD: DEFINITION OF DDIC-TABLE*功能码返回DATA: ok_code TYPE sy-ucomm,save_ok LIKE ok_code,mode TYPE c,i_num TYPE i.START-OF-SELECTION.*&---------------------------------------------------------------------*
*&      Module  FORM_INIT  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE form_init OUTPUT.LOOP AT SCREEN.IF screen-group1 = grop.screen-input = 1.MODIFY SCREEN.ELSE.screen-input = 0.MODIFY SCREEN.ENDIF.ENDLOOP.IF save_ok = 'SCH'.LOOP AT SCREEN.IF screen-group1 = 'NO3'.screen-input = 1.MODIFY SCREEN.ENDIF.ENDLOOP.ENDIF.ENDMODULE.                 " FORM_INIT  OUTPUT*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
*定义状态栏,工具条,菜单 等SET PF-STATUS 'SAT1'.SET TITLEBAR '001'.*将变量值输出至屏幕字段
ENDMODULE.                 " STATUS_0100  OUTPUT*---------PAI输入后控制 退出事件,与屏幕逻辑流对应
MODULE cancel INPUT.LEAVE PROGRAM.
ENDMODULE.                    "CANCEL INPUT*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       PAI输入后控制  处理按钮事件
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.save_ok = ok_code.DATA: op(6) TYPE c.CLEAR ok_code.CASE save_ok .WHEN  'BACK1'.LEAVE TO SCREEN 0.WHEN 'SCH'."检查权限PERFORM main.PERFORM get_old_data.PERFORM display_data.WHEN 'CREATE'.     "新增grop = 'NO2'.op = 'CREATE'.PERFORM get_new_data.PERFORM display_data.WHEN 'SAVE1'.      "保存        PERFORM save_data USING op .WHEN 'PRT'.PERFORM frm_set_parameter.WHEN 'CHG'.                "更改grop = 'NO2'.op = 'CHG'.PERFORM get_old_data.PERFORM display_data.WHEN 'DEL'.        "删除op = 'DEL'.PERFORM save_data USING op .WHEN 'EXIT'.     "退出LEAVE PROGRAM.ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_Z_QTY_BUKRS  text
*      -->P_Z_QTY_GJAHR  text
*      -->P_Z_QTY_BELNR  text
*----------------------------------------------------------------------*
FORM get_new_data .
*  data: wa_item type zapa_item.REFRESH  zapa_item1.CLEAR z_header.
*------抬头z_header-name = '支出申请单'.   "凭证名称SELECT MAX( zapa_header~belnr ) FROM zapa_headerINTO tmp_belnr .IF   tmp_belnr <> '' AND tmp_belnr+1(6) = sy-datum(6).number = tmp_belnr+7(3) + 1.UNPACK number TO number.CONCATENATE 'B' sy-datum(6) number INTO z_header-belnr."会计凭证编号:B+年月+流水号ELSE.CONCATENATE 'B' sy-datum(6) '001' INTO z_header-belnr."会计凭证编号ENDIF.z_header-gjahr = sy-datum+0(4)."会计年度z_header-cpudt = sy-datum.     "请款日期-会计凭证输入日期z_header-cpudt1 = sy-datum.    "制表日期-会计凭证输入日期z_header-usnam = sy-uname.     "用户名*货币码 付款方式SELECT SINGLE bsik~waers bsik~zlschINTO (z_header-waers, z_header-zlsch )FROM bsikWHERE bukrs = p_bukrs "公司代码AND lifnr = p_lifnr"供应商
*     and waers <> 'CNY'AND blart <> 'KZ' "供应商付款AND blart <> 'AB'. "会计凭证
*汇率SELECT SINGLE tcurr~ukurs FROM tcurr INTO z_header-kursfWHERE  kurst ='M' AND  fcurr = z_header-waers AND tcurr ='CNY'.IF z_header-waers ='CNY'.z_header-kursf = 1.ENDIF.*-------行项目 客户端 公司代码 凭证编号 会计年度 行项目数SELECT  bsik~mandt bsik~bukrs bsik~belnr bsik~gjahr bsik~buzei
*--供应商 会计凭证编号 会计凭证行项目数 过帐日期 基准日期 折扣天数
     bsik~lifnr bsik~belnr bsik~buzei bsik~budat bsik~zfbdt bsik~zbd1t
*--应付 已付 已申请 本次申请    本位币 文本
    bsik~wrbtr bsik~wrbtr bsik~wrbtr bsik~wrbtr bsik~dmbtr bsik~sgtxt
*--总帐科目编号   科目文本 成本中心   借方/贷方标识
    BSIK~HKONT BSIK~HKONT bsik~kostl bsik~shkzg
*     FROM bsik INTO CORRESPONDING FIELDS OF TABLE zapa_item1FROM bsik INTO TABLE zapa_item1WHERE bukrs = p_bukrs "公司代码" and gjahr = p_gjahr"会计年度
*     AND belnr IN p_belnr"会计凭证编号AND lifnr = p_lifnr"供应商
*     AND monat IN p_monat"会计期间AND blart <> 'KZ'  "供应商付款AND blart <> 'AB'. "会计凭证
*     and BSTAT = ''."凭证状态"判断正负IF sy-subrc <> 0.MESSAGE '无凭证被选择,请重新输入!' TYPE 'I'.grop = 'NO1'.ENDIF.SORT zapa_item1 BY budat ."权限检查LOOP AT zapa_item1.AUTHORITY-CHECK OBJECT 'M_MATE_BUK'ID 'ACTVT'  DUMMY  " 作业ID 'BUKRS'  FIELD p_bukrs.  " 公司代码IF sy-subrc NE 0.MESSAGE e002(zauthority).ENDIF.ENDLOOP.LOOP AT zapa_item1.* remark by dutm 2012/3/23 10:40"进行判断IF zapa_item1-shkzg = 'S'.zapa_item1-wrbtra = 0 - zapa_item1-wrbtra.zapa_item1-wrbtrb = 0 - zapa_item1-wrbtrb.zapa_item1-wrbtrc = 0 - zapa_item1-wrbtrc.zapa_item1-wrbtrd = 0 - zapa_item1-wrbtrd.ENDIF."凭证已付货币金额=冲账金额SELECT SUM( wrbtr ) FROM bsak INTO zapa_item1-wrbtrbWHERE rebzg = zapa_item1-xblnrAND   bukrs = zapa_item1-bukrsAND   lifnr = zapa_item1-lifnrAND   rebzj = zapa_item1-gjahrAND   rebzz = zapa_item1-belnrAND blart <> 'AB'. "与应付凭证相关的凭证,不为重置的凭证
*    zapa_item1-wrbtrb = 0."凭证已申请货币金额=已经申请金额SELECT SUM( zapa_item~wrbtrd ) FROM zapa_itemINTO zapa_item1-wrbtrcWHERE xblnr = zapa_item1-xblnrAND bukrs = zapa_item1-bukrsAND gjahr = zapa_item1-gjahrAND xbzei = zapa_item1-xbzei.*本次支付金额zapa_item1-wrbtrd = zapa_item1-wrbtra - zapa_item1-wrbtrc.
*本位币金额IF zapa_item1-waers = 'JPY'.zapa_item1-dmbtr = zapa_item1-wrbtrd * z_header-kursf / 100.ELSE.zapa_item1-dmbtr = zapa_item1-wrbtrd * z_header-kursf .ENDIF.IF zapa_item1-shkzg = 'S'.zapa_item1-shkzg = '借'.ELSE.zapa_item1-shkzg = '贷'.ENDIF.*   txt50 LIKE skat-txt50,  "科目名称SELECT SINGLE skat~txt50 INTO zapa_item1-txt50FROM skat WHERE saknr = zapa_item1-saknr.zapa_item1-belnr = z_header-belnr."编号zapa_item1-buzei = sy-tabix.      "行项目数
*------抬头
z_header-lifnr = zapa_item1-lifnr.      "供应商或债权人的帐号z_header-bukrs = zapa_item1-bukrs.      "公司代码*货币码SELECT SINGLE bsik~waersINTO (zapa_item1-waers)FROM bsikWHERE bukrs = p_bukrs "公司代码AND lifnr = p_lifnr"供应商
*     and waers <> 'CNY'AND blart <> 'KZ' "供应商付款AND blart <> 'AB'. "会计凭证" by dutm 2011/3/22 22:14"关于币种为日元IF zapa_item1-waers = 'JPY'.zapa_item1-wrbtra = zapa_item1-wrbtra * 100.zapa_item1-wrbtrb = zapa_item1-wrbtrb * 100.zapa_item1-wrbtrc = zapa_item1-wrbtrc * 100.zapa_item1-wrbtrd = zapa_item1-wrbtrd * 100.MODIFY zapa_item1.ENDIF.
*2012-04-10
**项目文本 存储凭证号码
*    IF z_header-sgtxt = ''.
*      z_header-sgtxt =  zapa_item1-belnr  .
*    ELSE.
*      CONCATENATE z_header-sgtxt '|' zapa_item1-belnr INTO z_header-sgtxt .
*    ENDIF.*到期日=  基准日期 + 折扣天数zapa_item1-zfbdt = zapa_item1-zfbdt + zapa_item1-zbd1t .MODIFY zapa_item1.
*到期日在输入日期后的,删掉IF ( p_zfbdt <> '00000000' AND zapa_item1-zfbdt > p_zfbdt )OR zapa_item1-wrbtrd = 0.DELETE zapa_item1.CLEAR zapa_item1.ENDIF.*本次申请总金额*    IF zapa_item1-shkzg = '借'.
*      z_header-twrbtr = z_header-twrbtr - zapa_item1-wrbtrd.
*    ELSE.z_header-twrbtr = z_header-twrbtr + zapa_item1-wrbtrd."ENDIF.CLEAR zapa_item1.ENDLOOP.*公司的名称SELECT SINGLE t001~butxt INTO (z_header-butxt)FROM t001 WHERE bukrs = z_header-bukrs .
*供应商名称 第一个电话号 传真号SELECT SINGLE lfa1~name1 lfa1~telf1 lfa1~telfxINTO (z_header-name1,z_header-telf1,z_header-telfx)FROM lfa1 WHERE lifnr = z_header-lifnr.
*联络人SELECT SINGLE knvk~namev knvk~name1INTO (z_header-namev, z_header-namev1)FROM knvk WHERE kunnr = z_header-lifnr.CONCATENATE z_header-namev z_header-name1 INTO z_header-namev.ENDFORM.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  FRM_SET_PARAMETER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_set_parameter .* remark by dutm 2012/3/23 10:40
* 2011-8-4 解决打印汇总问题
*  LOOP AT zapa_item1.
*    IF zapa_item1-shkzg = '借'.
*      zapa_item1-wrbtra = 0 - zapa_item1-wrbtra.
*      zapa_item1-wrbtrb = 0 - zapa_item1-wrbtrb.
*      zapa_item1-wrbtrc = 0 - zapa_item1-wrbtrc.
*      zapa_item1-wrbtrd = 0 - zapa_item1-wrbtrd.
*      zapa_item1-dmbtr = 0 - zapa_item1-dmbtr.
*      MODIFY zapa_item1.
*    ENDIF.
*  ENDLOOP.IF z_header-waers = 'JPY'.z_header-twrbtr = z_header-twrbtr * 100.ENDIF.smartform = 'Z_VST_APAPPLY'.CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'EXPORTINGformname           = smartformIMPORTINGfm_name            = gv_fmnameEXCEPTIONSno_form            = 1no_function_module = 2OTHERS             = 3.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.CLEAR gs_output_option.CALL FUNCTION gv_fmnameEXPORTINGcontrol_parameters = gs_control_paramoutput_options     = gs_output_optionuser_settings      = spacezapa_header        = z_headerTABLESzapa_item          = zapa_item1[]EXCEPTIONSformatting_error   = 1internal_error     = 2send_error         = 3user_canceled      = 4OTHERS             = 5.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.
ENDFORM.                    " FRM_SET_PARAMETER
*&---------------------------------------------------------------------*
*&      Form  FRM_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_display .CLEAR: gs_output_option.gs_output_option-tdimmed   = gc_x.                       "开启立即打印gs_output_option-tdnewid   = ' '.                        "新的打印设备付空gs_output_option-tddelete  = gc_x.                       "打印完后断开设置连接,清空打印内容缓存IF gs_cresop-tddest IS INITIAL.                          "判断打印输出设备是否存在gs_output_option-tddest = 'VS'.ELSE.gs_output_option-tddest = gs_cresop-tddest.            "当前打印输出设备付予打印控制ENDIF.
ENDFORM.                    " FRM_DISPLAY*&---------------------------------------------------------------------*
*&      Form  GET_OLD_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_old_data .
*  REFRESH  g_z_item_itab.REFRESH  zapa_item1.CLEAR  z_header.DATA: count TYPE i,s_where(200) TYPE c .IF p_belnr IS NOT INITIAL.SELECT SINGLE * FROM zapa_headerINTO z_headerWHERE bukrs = p_bukrs AND lifnr = p_lifnrAND ( belnr = p_belnr  ).IF sy-subrc <> 0.MESSAGE '查询单据不存在,请重新输入!' TYPE 'I'.ENDIF.*读取表项目SELECT * FROM zapa_itemINTO CORRESPONDING FIELDSOF   TABLE zapa_item1[] WHERE belnr = z_header-belnr.ELSE.SELECT COUNT(*) FROM zapa_headerINTO countWHERE bukrs = p_bukrs AND lifnr = p_lifnr.IF count <> 1.MESSAGE '输入条件查出的单据不唯一,请重新输入!' TYPE 'I'.ELSE.SELECT SINGLE * FROM zapa_headerINTO z_headerWHERE bukrs = p_bukrs AND lifnr = p_lifnr.
*读取表项目SELECT * FROM zapa_itemINTO CORRESPONDING FIELDSOF TABLE zapa_item1 WHERE belnr = z_header-belnr .ENDIF.ENDIF.* BY DUTM 2012/3/22IF z_header-waers = 'JPY'.z_header-twrbtr = z_header-twrbtr * 100.ENDIF.LOOP AT zapa_item1.IF zapa_item1-waers = 'JPY'.zapa_item1-wrbtra = zapa_item1-wrbtra * 100.zapa_item1-wrbtrb = zapa_item1-wrbtrb * 100.zapa_item1-wrbtrc = zapa_item1-wrbtrc * 100.zapa_item1-wrbtrd = zapa_item1-wrbtrd * 100.MODIFY zapa_item1.ENDIF.ENDLOOP.ENDFORM.                    " GET_OLD_DATA*&---------------------------------------------------------------------*
*&      Form  DISPLAY_DATA
*&---------------------------------------------------------------------*
*       查询数据显示
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_data .IF z_header-waers = 'JPY'.z_header-twrbtr =  z_header-twrbtr / 100.ENDIF.zapa_header-mandt  = z_header-mandt .zapa_header-bukrs  = z_header-bukrs .zapa_header-belnr  = z_header-belnr .zapa_header-gjahr  = z_header-gjahr .zapa_header-butxt  = z_header-butxt .zapa_header-cpudt  = z_header-cpudt .zapa_header-cpudt1 = z_header-cpudt1.zapa_header-usnam  = z_header-usnam .zapa_header-lifnr  = z_header-lifnr .zapa_header-name1  = z_header-name1 .zapa_header-telf1  = z_header-telf1 .zapa_header-telfx  = z_header-telfx .zapa_header-namev  = z_header-namev .zapa_header-namev1  = z_header-namev1 .zapa_header-kursf  = z_header-kursf .zapa_header-zlsch  = z_header-zlsch .zapa_header-twrbtr = z_header-twrbtr.zapa_header-name   = z_header-name  .zapa_header-waers  = z_header-waers ."zapa_header-sgtxt  = z_header-sgtxt .
*2012/04/10" zapa_header-sgtxt  = ''.*  WRITE:zapa_header-usnam, / zapa_header-cpudt1, / zapa_header-belnr ,
*   / zapa_header-cpudt,/ zapa_header-lifnr ,/ zapa_header-name1,
*   / zapa_header-telf1,/ zapa_header-telfx,
*   / zapa_header-namev,/ zapa_header-waers ,/ zapa_header-kursf.IF zapa_header-twrbtr < 0.MESSAGE w001(00) WITH '该供应商应付总额为负(' zapa_header-twrbtr '),请用FBL1N检查并纠正财务凭证的错误'.
*    CLEAR: zapa_header, z_header, zapa_item1[].ENDIF.ENDFORM.                    " DISPLAY_DATA
*&---------------------------------------------------------------------*
*&      Form  SAVE_DATA
*&---------------------------------------------------------------------*
*       保存支出申请单
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM save_data USING op TYPE c.DATA:tmp_wrbtr LIKE bsik-wrbtr.DATA: flag(5) TYPE c.LOOP AT zapa_item1.
*  read table g_z_item_itab with table key XBLNR = zapa_item1-XBLNR INTO g_z_item_wa .
*
*    zapa_item1-XBLNR = g_z_item_wa-XBLNR.
*    zapa_item1-WRBTRD = g_z_item_wa-WRBTRD.
*    zapa_item1-SGTXT = g_z_item_wa-SGTXT.
*    zapa_item1-KOSTL = g_z_item_wa-KOSTL.
tmp_wrbtr = zapa_item1-wrbtrc + zapa_item1-wrbtrd.IF  ABS( tmp_wrbtr ) > ABS( zapa_item1-wrbtra ).MESSAGE '申请金额不能大于应付金额减去已申请金额,请检查输入金额!' TYPE 'I'.save_ok = 'CREATE'.flag = 'false'.RETURN .ELSEIF SIGN( zapa_item1-wrbtra ) <> SIGN( tmp_wrbtr ).MESSAGE '输入有误!申请金额与应付金额的正负号应该一致。' TYPE 'I'.save_ok = 'CREATE'.flag = 'false'.RETURN .ELSE.flag = 'true'.ENDIF.CLEAR zapa_item1.ENDLOOP.IF flag = 'true'.IF op = 'CREATE'.LOOP AT zapa_item1.* remark by dutm 2012/3/23 10:40
*        IF zapa_item1-shkzg = '借'.
*          zapa_item1-wrbtra = 0 - zapa_item1-wrbtra.
*          zapa_item1-wrbtrb = 0 - zapa_item1-wrbtrb.
*          zapa_item1-wrbtrc = 0 - zapa_item1-wrbtrc.
*          zapa_item1-wrbtrd = 0 - zapa_item1-wrbtrd.
*          zapa_item1-dmbtr = 0 - zapa_item1-dmbtr.
*          MODIFY zapa_item1.
*        ENDIF." BY DUTM 2012/3/23IF zapa_item1-waers = 'JPY'.zapa_item1-wrbtra = zapa_item1-wrbtra / 100.zapa_item1-wrbtrb = zapa_item1-wrbtrb / 100.zapa_item1-wrbtrc = zapa_item1-wrbtrc / 100.zapa_item1-wrbtrd = zapa_item1-wrbtrd / 100.MODIFY zapa_item1.ENDIF.INSERT INTO zapa_item VALUES zapa_item1.CLEAR zapa_item1.ENDLOOP.IF zapa_header-waers = 'JPY'.zapa_header-twrbtr = zapa_header-twrbtr / 100.ENDIF.INSERT INTO zapa_header VALUES zapa_header.MESSAGE '保存支付申请单成功!' TYPE 'I'.ELSEIF  op = 'CHG'.LOOP AT zapa_item1.DELETE FROM zapa_item WHERE belnr = zapa_item1-belnr.CLEAR zapa_item1.ENDLOOP.DELETE FROM zapa_header WHERE belnr = zapa_header-belnr.LOOP AT zapa_item1.* remark by dutm 2012/3/23 10:40
*        IF zapa_item1-shkzg = '借'.
*          zapa_item1-wrbtra = 0 - zapa_item1-wrbtra.
*          zapa_item1-wrbtrb = 0 - zapa_item1-wrbtrb.
*          zapa_item1-wrbtrc = 0 - zapa_item1-wrbtrc.
*          zapa_item1-wrbtrd = 0 - zapa_item1-wrbtrd.
*          zapa_item1-dmbtr = 0 - zapa_item1-dmbtr.
*          MODIFY zapa_item1.
*        ENDIF." BY DUTM 2012/3/23IF zapa_item1-waers = 'JPY'.zapa_item1-wrbtra = zapa_item1-wrbtra / 100.zapa_item1-wrbtrb = zapa_item1-wrbtrb / 100.zapa_item1-wrbtrc = zapa_item1-wrbtrc / 100.zapa_item1-wrbtrd = zapa_item1-wrbtrd / 100.MODIFY zapa_item1.ENDIF.INSERT INTO zapa_item VALUES zapa_item1.CLEAR zapa_item1.ENDLOOP.IF zapa_header-waers = 'JPY'.zapa_header-twrbtr = zapa_header-twrbtr / 100.ENDIF.INSERT INTO zapa_header VALUES zapa_header.MESSAGE '修改支付申请单成功!' TYPE 'I'.ELSEIF op = 'DEL' .LOOP AT zapa_item1.DELETE FROM zapa_item WHERE belnr = zapa_item1-belnr.CLEAR zapa_item1.ENDLOOP.DELETE FROM zapa_header WHERE belnr = zapa_header-belnr.MESSAGE '删除支付申请单成功!' TYPE 'I'.ENDIF.CLEAR zapa_header.REFRESH  zapa_item1.grop = 'NO1'.ENDIF.
ENDFORM.                    " SAVE_DATA
*
*&SPWIZARD: DECLARATION OF TABLECONTROL 'Z_ITEM1' ITSELF
CONTROLS: z_item1 TYPE TABLEVIEW USING SCREEN 0100.*&SPWIZARD: LINES OF TABLECONTROL 'Z_ITEM1'
DATA:     g_z_item1_lines  LIKE sy-loopc,rsdxx LIKE rsdxx.*&SPWIZARD: OUTPUT MODULE FOR TC 'Z_ITEM1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE z_item1_change_tc_attr OUTPUT.DESCRIBE TABLE zapa_item1 LINES z_item1-lines.
ENDMODULE.                    "Z_ITEM1_CHANGE_TC_ATTR OUTPUT*&SPWIZARD: OUTPUT MODULE FOR TC 'Z_ITEM1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE z_item1_get_lines OUTPUT.g_z_item1_lines = sy-loopc.ENDMODULE.                    "Z_ITEM1_GET_LINES OUTPUT*&SPWIZARD: INPUT MODULE FOR TC 'Z_ITEM1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MODIFY TABLE
MODULE z_item1_modify INPUT.* 在表格中插入行,要考虑的因素较多,最好要弹出一个对话框让用户选择合适的数据,
* 代码处理起来比较麻烦,暂时不实现。以后有空时再完善。WRITE:/ zapa_item1-bstat.IF zapa_item1-belnr = ''. "未初始化的行项目,主要针对新增行SELECT SINGLE
*    bsik~mandt bsik~bukrs bsik~belnr bsik~gjahr bsik~buzei
*--供应商 会计凭证编号 会计凭证行项目数 过帐日期 基准日期 折扣天数
      bsik~lifnr bsik~belnr bsik~buzei bsik~budat bsik~zfbdt bsik~zbd1t
*--应付 已付 已申请 本次申请    本位币 文本bsik~wrbtr bsik~wrbtr bsik~wrbtr bsik~wrbtr bsik~dmbtr "bsik~sgtxt
*--总帐科目编号  科目文本  成本中心   借方/贷方标识 货币种类
     BSIK~HKONT BSIK~HKONT bsik~kostl bsik~shkzg bsik~waersFROM bsik INTO (zapa_item1-lifnr, zapa_item1-belnr,zapa_item1-buzei, zapa_item1-budat,zapa_item1-zfbdt,zapa_item1-zbd1t,zapa_item1-wrbtra, zapa_item1-wrbtrb,zapa_item1-wrbtrc, zapa_item1-wrbtrd, zapa_item1-dmbtr,"zapa_item1-SGtxt,zapa_item1-saknr, zapa_item1-saknr, zapa_item1-kostl, zapa_item1-shkzg,zapa_item1-waers )WHERE belnr = zapa_item1-xblnr " 这个值不够准确,本还需要一个项目……AND bukrs = p_bukrsAND lifnr = p_lifnrAND blart <> 'KZ'AND blart <> 'AB'.* remark by dutm 2012/3/23IF zapa_item1-shkzg = 'S'.zapa_item1-wrbtra = 0 - zapa_item1-wrbtra.zapa_item1-wrbtrb = 0 - zapa_item1-wrbtrb.zapa_item1-wrbtrc = 0 - zapa_item1-wrbtrc.zapa_item1-wrbtrd = 0 - zapa_item1-wrbtrd.ENDIF.IF zapa_item1-waers = 'JPY'.zapa_item1-wrbtra = zapa_item1-wrbtra * 100.zapa_item1-wrbtrb = zapa_item1-wrbtrb * 100.zapa_item1-wrbtrc = zapa_item1-wrbtrc * 100.zapa_item1-wrbtrd = zapa_item1-wrbtrd * 100.ENDIF.*     and BSTAT = ''."凭证状态IF sy-subrc <> 0.MESSAGE '无凭证被选择,请重新输入!' TYPE 'I'.grop = 'NO2'.ELSE.
*-------行项目 客户端 公司代码 凭证编号 会计年度 行项目数zapa_item1-mandt = zapa_header-mandt.zapa_item1-bukrs = zapa_header-bukrs.zapa_item1-belnr = zapa_header-belnr.zapa_item1-gjahr = zapa_header-gjahr.zapa_item1-buzei = ''.zapa_item1-waers = zapa_header-waers.zapa_item1-lifnr = zapa_header-lifnr.zapa_item1-zfbdt = zapa_item1-zfbdt + zapa_item1-zbd1t."凭证已付货币金额=冲账金额
*    zapa_item1-wrbtrb = 0.SELECT SUM( wrbtr ) FROM bsak INTO zapa_item1-wrbtrbWHERE rebzg = zapa_item1-xblnrAND bukrs = zapa_item1-bukrsAND lifnr = zapa_item1-lifnrAND rebzj = zapa_item1-gjahrAND rebzz = zapa_item1-belnrAND blart <> 'AB'."凭证已申请货币金额=已经申请金额SELECT SUM( zapa_item~wrbtrd ) FROM zapa_itemINTO zapa_item1-wrbtrcWHERE xblnr = zapa_item1-xblnrAND bukrs = zapa_item1-bukrsAND gjahr = zapa_item1-gjahrAND xbzei = zapa_item1-xbzei.zapa_item1-wrbtrd = zapa_item1-wrbtra - zapa_item1-wrbtrc.IF zapa_item1-shkzg = 'S'.zapa_item1-shkzg = '借'.ELSE.zapa_item1-shkzg = '贷'.ENDIF.
*   txt50 LIKE skat-txt50,  "科目名称SELECT SINGLE skat~txt50 INTO zapa_item1-txt50FROM skat WHERE saknr = zapa_item1-saknr.ENDIF.ENDIF.MODIFY zapa_item1FROM zapa_item1INDEX z_item1-current_line.
*本次支付凭证货币总金额zapa_header-twrbtr = 0.LOOP AT zapa_item1.** remark by dutm 2012/3/23 10:40
*    IF zapa_item1-shkzg = '借'.
*      zapa_item1-wrbtra = 0 - zapa_item1-wrbtra.
*      zapa_item1-wrbtrb = 0 - zapa_item1-wrbtrb.
*      zapa_item1-wrbtrc = 0 - zapa_item1-wrbtrc.
*      zapa_item1-wrbtrd = 0 - zapa_item1-wrbtrd.
*      zapa_item1-dmbtr = 0 - zapa_item1-dmbtr.
*      MODIFY zapa_item1.
*    ENDIF.* ReMark by dutm 2011/3/22 22:14
*    "关于币种为日元
*    IF zapa_item1-waers = 'JPY'.
*      zapa_item1-wrbtra = zapa_item1-wrbtra * 100.
*      zapa_item1-wrbtrb = zapa_item1-wrbtrb * 100.
*      zapa_item1-wrbtrc = zapa_item1-wrbtrc * 100.
*      zapa_item1-wrbtrd = zapa_item1-wrbtrd * 100.
*      MODIFY zapa_item1.
*    ENDIF.*本次申请总金额
*    IF zapa_item1-shkzg = '借'.
*      zapa_header-twrbtr = zapa_header-twrbtr - zapa_item1-wrbtrd.
*    ELSE.zapa_header-twrbtr = zapa_header-twrbtr + zapa_item1-wrbtrd."ENDIF.CLEAR zapa_item1.ENDLOOP.ENDMODULE.                    "Z_ITEM1_MODIFY INPUT*&SPWIZARD: INPUT MODULE FOR TC 'Z_ITEM1'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE z_item1_user_command INPUT.ok_code = sy-ucomm.PERFORM user_ok_tc USING    'Z_ITEM1''ZAPA_ITEM1''BSTAT'"'ITEM_LINES'CHANGING ok_code.sy-ucomm = ok_code.
ENDMODULE.                    "Z_ITEM1_USER_COMMAND INPUT*----------------------------------------------------------------------*
*   INCLUDE TABLECONTROL_FORMS                                         *
*----------------------------------------------------------------------**&---------------------------------------------------------------------*
*&      Form  USER_OK_TC                                               *
*&---------------------------------------------------------------------*
FORM user_ok_tc USING    p_tc_name TYPE dynfnamp_table_namep_mark_nameCHANGING p_ok      LIKE sy-ucomm.*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*DATA: l_ok              TYPE sy-ucomm,l_offset          TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------**&SPWIZARD: Table control specific operations                          *
*&SPWIZARD: evaluate TC name and operations                            *
*  search p_ok for p_tc_name.
*  if sy-subrc <> 0.
*    exit.
*  endif.
*  l_offset = strlen( p_tc_name ) + 1.
*  l_ok = p_ok+l_offset.l_ok = p_ok.
*&SPWIZARD: execute general and TC specific operations                 *CASE l_ok.WHEN 'INSR'.                      "insert rowPERFORM fcode_insert_row USING    p_tc_namep_table_name.CLEAR p_ok.WHEN 'DELE'.                      "delete rowPERFORM fcode_delete_row USING    p_tc_namep_table_namep_mark_name.CLEAR p_ok.WHEN 'P--' OR                     "top of list'P-'  OR                     "previous page'P+'  OR                     "next page'P++'.                       "bottom of listPERFORM compute_scrolling_in_tc USING p_tc_namel_ok.CLEAR p_ok.
*     WHEN 'L--'.                       "total left
*       PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
*
*     WHEN 'L-'.                        "column left
*       PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
*
*     WHEN 'R+'.                        "column right
*       PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
*
*     WHEN 'R++'.                       "total right
*       PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
*
    WHEN 'MARK'.                      "mark all filled linesPERFORM fcode_tc_mark_lines USING p_tc_namep_table_namep_mark_name   .CLEAR p_ok.WHEN 'DMRK'.                      "demark all filled linesPERFORM fcode_tc_demark_lines USING p_tc_namep_table_namep_mark_name .CLEAR p_ok.*     WHEN 'SASCEND'   OR
*          'SDESCEND'.                  "sort column
*       PERFORM FCODE_SORT_TC USING P_TC_NAME
*                                   l_ok.ENDCASE.ENDFORM.                              " USER_OK_TC*&---------------------------------------------------------------------*
*&      Form  FCODE_INSERT_ROW                                         *
*&---------------------------------------------------------------------*
FORM fcode_insert_rowUSING    p_tc_name           TYPE dynfnamp_table_name             .*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*DATA l_lines_name       LIKE feld-name.DATA l_selline          LIKE sy-stepl.DATA l_lastline         TYPE i.DATA l_line             TYPE i.DATA l_table_name       LIKE feld-name.FIELD-SYMBOLS <tc>                 TYPE cxtab_control.FIELD-SYMBOLS <table>              TYPE STANDARD TABLE.FIELD-SYMBOLS <lines>              TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*ASSIGN (p_tc_name) TO <tc>.*&SPWIZARD: get the table, which belongs to the tc                     *CONCATENATE p_table_name '[]' INTO l_table_name. "table bodyASSIGN (l_table_name) TO <table>.                "not headerline*&SPWIZARD: get looplines of TableControl                              *CONCATENATE 'G_' p_tc_name '_LINES' INTO l_lines_name.ASSIGN (l_lines_name) TO <lines>.*&SPWIZARD: get current line                                           *GET CURSOR LINE l_selline.IF sy-subrc <> 0.                   " append line to tablel_selline = <tc>-lines + 1.
*&SPWIZARD: set top line                                               *IF l_selline > <lines>.<tc>-top_line = l_selline - <lines> + 1 .ELSE.<tc>-top_line = 1.ENDIF.ELSE.                               " insert line into tablel_selline = <tc>-top_line + l_selline - 1.l_lastline = <tc>-top_line + <lines> - 1.ENDIF.
*&SPWIZARD: set new cursor line                                        *l_line = l_selline - <tc>-top_line + 1.*&SPWIZARD: insert initial line                                        *INSERT INITIAL LINE INTO <table> INDEX l_selline.<tc>-lines = <tc>-lines + 1.
*&SPWIZARD: set cursor                                                 *SET CURSOR LINE l_line.ENDFORM.                              " FCODE_INSERT_ROW*&---------------------------------------------------------------------*
*&      Form  FCODE_DELETE_ROW                                         *
*&---------------------------------------------------------------------*
FORM fcode_delete_rowUSING    p_tc_name           TYPE dynfnamp_table_namep_mark_name   .*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*DATA l_table_name       LIKE feld-name.FIELD-SYMBOLS <tc>         TYPE cxtab_control.FIELD-SYMBOLS <table>      TYPE STANDARD TABLE.FIELD-SYMBOLS <wa>.FIELD-SYMBOLS <mark_field>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*ASSIGN (p_tc_name) TO <tc>.*&SPWIZARD: get the table, which belongs to the tc                     *CONCATENATE p_table_name '[]' INTO l_table_name. "table bodyASSIGN (l_table_name) TO <table>.                "not headerline*&SPWIZARD: delete marked lines                                        *DESCRIBE TABLE <table> LINES <tc>-lines.LOOP AT <table> ASSIGNING <wa>.*&SPWIZARD: access to the component 'FLAG' of the table header         *ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.IF <mark_field> = 'X'.DELETE <table> INDEX syst-tabix.IF sy-subrc = 0.<tc>-lines = <tc>-lines - 1.ENDIF.ENDIF.ENDLOOP.ENDFORM.                              " FCODE_DELETE_ROW*&---------------------------------------------------------------------*
*&      Form  COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_TC_NAME  name of tablecontrol
*      -->P_OK       ok code
*----------------------------------------------------------------------*
FORM compute_scrolling_in_tc USING    p_tc_namep_ok.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*DATA l_tc_new_top_line     TYPE i.DATA l_tc_name             LIKE feld-name.DATA l_tc_lines_name       LIKE feld-name.DATA l_tc_field_name       LIKE feld-name.FIELD-SYMBOLS <tc>         TYPE cxtab_control.FIELD-SYMBOLS <lines>      TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*ASSIGN (p_tc_name) TO <tc>.
*&SPWIZARD: get looplines of TableControl                              *CONCATENATE 'G_' p_tc_name '_LINES' INTO l_tc_lines_name.ASSIGN (l_tc_lines_name) TO <lines>.*&SPWIZARD: is no line filled?                                         *IF <tc>-lines = 0.
*&SPWIZARD: yes, ...                                                   *l_tc_new_top_line = 1.ELSE.
*&SPWIZARD: no, ...                                                    *CALL FUNCTION 'SCROLLING_IN_TABLE'EXPORTINGentry_act             = <tc>-top_lineentry_from            = 1entry_to              = <tc>-lineslast_page_full        = 'X'loops                 = <lines>ok_code               = p_okoverlapping           = 'X'IMPORTINGentry_new             = l_tc_new_top_lineEXCEPTIONS
*              NO_ENTRY_OR_PAGE_ACT  = 01
*              NO_ENTRY_TO           = 02
*              NO_OK_CODE_OR_PAGE_GO = 03OTHERS                = 0.ENDIF.*&SPWIZARD: get actual tc and column                                   *GET CURSOR FIELD l_tc_field_nameAREA  l_tc_name.IF syst-subrc = 0.IF l_tc_name = p_tc_name.
*&SPWIZARD: et actual column                                           *SET CURSOR FIELD l_tc_field_name LINE 1.ENDIF.ENDIF.*&SPWIZARD: set the new top line                                       *<tc>-top_line = l_tc_new_top_line.ENDFORM.                              " COMPUTE_SCROLLING_IN_TC*&---------------------------------------------------------------------*
*&      Form  FCODE_TC_MARK_LINES
*&---------------------------------------------------------------------*
*       marks all TableControl lines
*----------------------------------------------------------------------*
*      -->P_TC_NAME  name of tablecontrol
*----------------------------------------------------------------------*
FORM fcode_tc_mark_lines USING p_tc_namep_table_namep_mark_name.
*&SPWIZARD: EGIN OF LOCAL DATA-----------------------------------------*DATA l_table_name       LIKE feld-name.FIELD-SYMBOLS <tc>         TYPE cxtab_control.FIELD-SYMBOLS <table>      TYPE STANDARD TABLE.FIELD-SYMBOLS <wa>.FIELD-SYMBOLS <mark_field>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*ASSIGN (p_tc_name) TO <tc>.*&SPWIZARD: get the table, which belongs to the tc                     *CONCATENATE p_table_name '[]' INTO l_table_name. "table bodyASSIGN (l_table_name) TO <table>.                "not headerline*&SPWIZARD: mark all filled lines                                      *LOOP AT <table> ASSIGNING <wa>.*&SPWIZARD: access to the component 'FLAG' of the table header         *ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.<mark_field> = 'X'.ENDLOOP.
ENDFORM.                                          "fcode_tc_mark_lines*&---------------------------------------------------------------------*
*&      Form  FCODE_TC_DEMARK_LINES
*&---------------------------------------------------------------------*
*       demarks all TableControl lines
*----------------------------------------------------------------------*
*      -->P_TC_NAME  name of tablecontrol
*----------------------------------------------------------------------*
FORM fcode_tc_demark_lines USING p_tc_namep_table_namep_mark_name .
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*DATA l_table_name       LIKE feld-name.FIELD-SYMBOLS <tc>         TYPE cxtab_control.FIELD-SYMBOLS <table>      TYPE STANDARD TABLE.FIELD-SYMBOLS <wa>.FIELD-SYMBOLS <mark_field>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*ASSIGN (p_tc_name) TO <tc>.*&SPWIZARD: get the table, which belongs to the tc                     *CONCATENATE p_table_name '[]' INTO l_table_name. "table bodyASSIGN (l_table_name) TO <table>.                "not headerline*&SPWIZARD: demark all filled lines                                    *LOOP AT <table> ASSIGNING <wa>.*&SPWIZARD: access to the component 'FLAG' of the table header         *ASSIGN COMPONENT p_mark_name OF STRUCTURE <wa> TO <mark_field>.<mark_field> = space.ENDLOOP.
ENDFORM.                                          "fcode_tc_mark_lines
*&---------------------------------------------------------------------*
*&      Module  GET_WAERS_SET_KURSF  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE get_waers_set_kursf  INPUT.
*汇率zapa_header-kursf = 0.WRITE:zapa_header-kursf.SELECT SINGLE tcurr~ukurs FROM tcurr INTO zapa_header-kursfWHERE  kurst ='M' AND  fcurr = zapa_header-waers AND tcurr ='CNY'.IF sy-subrc <> 0.IF zapa_header-waers = 'CNY'.zapa_header-kursf = 1.ELSE.MESSAGE '该币种汇率没有维护!' TYPE 'I'.ENDIF.ELSE.
*  zapa_header-kursf  = zapa_header-kursf .WRITE:zapa_header-kursf.
*本位币金额LOOP AT zapa_item1.IF zapa_item1-waers = 'JPY'.zapa_item1-dmbtr = zapa_item1-wrbtrd * zapa_header-kursf / 100.ELSE.zapa_item1-dmbtr = zapa_item1-wrbtrd * zapa_header-kursf.ENDIF.MODIFY zapa_item1 FROM zapa_item1.CLEAR zapa_item1.ENDLOOP.ENDIF.
*本次支付凭证货币总金额zapa_header-twrbtr = 0.LOOP AT zapa_item1.* remark by dutm 2012/3/23 10:40
*    IF zapa_item1-shkzg = '借'.
*      zapa_item1-wrbtra = 0 - zapa_item1-wrbtra.
*      zapa_item1-wrbtrb = 0 - zapa_item1-wrbtrb.
*      zapa_item1-wrbtrc = 0 - zapa_item1-wrbtrc.
*      zapa_item1-wrbtrd = 0 - zapa_item1-wrbtrd.
*      zapa_item1-dmbtr = 0 - zapa_item1-dmbtr.
*      MODIFY zapa_item1.
*    ENDIF.* ReMark by dutm 2011/3/22 22:14
*    "关于币种为日元
*    IF zapa_item1-waers = 'JPY'.
*      zapa_item1-wrbtra = zapa_item1-wrbtra * 100.
*      zapa_item1-wrbtrb = zapa_item1-wrbtrb * 100.
*      zapa_item1-wrbtrc = zapa_item1-wrbtrc * 100.
*      zapa_item1-wrbtrd = zapa_item1-wrbtrd * 100.
*      MODIFY zapa_item1.
*    ENDIF.
*本次申请总金额
*    IF zapa_item1-shkzg = '借'.
*      zapa_header-twrbtr = zapa_header-twrbtr - zapa_item1-wrbtrd.
*    ELSE.zapa_header-twrbtr = zapa_header-twrbtr + zapa_item1-wrbtrd.
*    ENDIF.CLEAR zapa_item1.ENDLOOP.grop = 'NO2'.
ENDMODULE.                 " GET_WAERS_SET_KURSF  INPUT
*&---------------------------------------------------------------------*
*&      Module  SET_KURSF  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE set_kursf INPUT.WRITE:zapa_header-kursf.
*本位币金额LOOP AT zapa_item1.IF zapa_item1-waers = 'JPY'.zapa_item1-dmbtr = zapa_item1-wrbtrd * zapa_header-kursf / 100.ELSE.zapa_item1-dmbtr = zapa_item1-wrbtrd * zapa_header-kursf.ENDIF.MODIFY zapa_item1 FROM zapa_item1.CLEAR zapa_item1.ENDLOOP.
*本次支付凭证货币总金额
*  zapa_header-twrbtr = 0.
*  loop at zapa_item1.
*    zapa_header-twrbtr = zapa_header-twrbtr + zapa_item1-wrbtrd.
*    clear zapa_item1.
*  endloop.grop = 'NO2'.ENDMODULE.                 " SET_KURSF  INPUT
*&---------------------------------------------------------------------*
*&      Form  MAIN
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM main ."权限检查AUTHORITY-CHECK OBJECT 'M_MATE_BUK'ID 'ACTVT'  DUMMY  " 作业ID 'BUKRS'  FIELD p_bukrs.  " 公司代码IF sy-subrc NE 0.MESSAGE e002(zauthority).ENDIF.ENDFORM.                    " MAIN

转载于:https://www.cnblogs.com/charles-guo/archive/2013/05/27/3101480.html

dialog 程序 表控制相关推荐

  1. 【Java基础】· Java基本语法:程序流程控制习题总结

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  2. c语言程序流程控制(下)

    c语言程序流程控制 嵌套 switch分支结构 语法 例题 switch细节 练习 switch与if语句的比较 循环控制 for循环 练习题 while循环控制 do while 循环 多重循环控制 ...

  3. 一文带你深入理解【Java基础】· Java基本语法:程序流程控制

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  4. Java笔记2.3——Java基本语法之程序流程控制

    Java基础 Java基本语法(下):程序流程控制 目录 目录 Java基础 Java基本语法(下):程序流程控制 一.程序流程控制 1.理论 2.分支语句1: if-else结构 2.1.if-el ...

  5. Python程序流程控制

    程序流程控制 实验一 程序流程控制 实验一 程序流程控制 一.利用程序流程控制语句打印运行效果如图所示的九九乘法表,要求:关键语句要有注释 实现代码 #九九乘法表 for i in range(1,1 ...

  6. 机电控制与可编程序技术控制【1】

    1.MPS指令后如是单一常开触点时其指令应用 A.ANB B.LD C.AND 2.PLC中各个继电器工作在可编程控制器应用技术期末复习卷_文档下载https://doc.xuehai.net/bb1 ...

  7. Java架构师成长之道之Java程序流程控制

    Java架构师成长之道之Java程序流程控制 Java架构师成长之道 4.1 程序流程控制概述 之前编写的绝大多数程序都是顺序执行,也就是从main函数开始,由上到下一行一行的执行,也被称为顺序结构. ...

  8. 使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  9. 【物联网(IoT)开发】使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  10. C语言遥控器程序,电视遥控器C51解码程序及其控制电动遥控玩具车举例.doc

    电视遥控器的C51解码程序及其控制的电动遥控玩具车举例 彩色电视红外线遥控器小巧方便,抗干扰能力强,遥控距离远,得到广泛应用.其基本原理是通过键盘产生编码,对38K载波调制,经放大,形成一串串脉冲由红 ...

最新文章

  1. SQL Server的数据库连接的极限在哪儿?
  2. js如何操作表格(常用属性方法汇总)
  3. Django新建项目
  4. 浏览器无法显示某些网页或者提示脚本错误的问题解决
  5. block在美团iOS的实践
  6. 一个 Safari 的 new Date() bug
  7. 实战中总结出来的CSS常见问题及解决办法
  8. cordova android项目自定义插件及使用(二)
  9. 一次 HashSet 所引起的并发问题 1
  10. 朗文3000词汇表带音标_朗文定义词汇表2000-朗文2000释义词汇pdf-朗文词汇用法
  11. web前端程序员真的值这么多钱吗?
  12. 2019/3/20统计单词数
  13. elementUI之模拟goTop组件
  14. python 查看所有变量_CentOS6.查看 Python中变量的信息(名称类型内容等)
  15. 从0到1400star,从阮一峰周刊到尤雨溪推荐,小透明开源项目的2021年总结
  16. KerberosSDR新手入门测试
  17. Windows 常用dos命令大全
  18. H.266代码学习:decompressCtu和xDecompressCU函数
  19. 全国计算机考试进制计算器吗,进制数换算器(十六进制计算器在线)
  20. 软件版本Alpha、Beta、RC等版本的区别

热门文章

  1. 基于TI Sitara系列AM3352/AM3354/AM3359的Linux常用开发案例分享
  2. 如何向弱智程序员解释区块链
  3. 爬取豆瓣电影,输出最新电影列表、影评、影评热词统计、词云之一
  4. 异常:Handler sending message to a Handler on a dead thread
  5. vivo NEX的Usb调试模式在哪里,打开vivo NEXUsb调试模式的教程
  6. 努比亚 N2(Nubia NX575J) 解锁BootLoader 并进入临时recovery ROOT
  7. JS 阻止键盘输入event.preventDefault 和window.event.returnValue
  8. orcale和mysql跨库查询_ORACLE跨数据库查询的方法
  9. 弧微分直角系最详细推导
  10. python中id 是什么意思_python中的id函数是什么意思?