PRINT15.docx
- 文档编号:16389950
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:35
- 大小:37.80KB
PRINT15.docx
《PRINT15.docx》由会员分享,可在线阅读,更多相关《PRINT15.docx(35页珍藏版)》请在冰点文库上搜索。
PRINT15
R/3System
Release4.0
BC400
ABAPWorkbench
Solutions
Unit:
ABAPWorkbench
Topic:
FirstProgram
∙WorkingwiththeABAPWorkbench.
∙Writingasimpleprogramwithuserdialoganddatabaseaccess.
REPORTBC400D_GETTING_STARTED.
************************************************************************
*GlobalDataDeclarations*
************************************************************************
TABLESSDYN_CONN."Interfaceforscreen
DATAWA_SPFLILIKESPFLI."WorkareaforSELECT
PARAMETERSPA_CARRLIKESPFLI-CARRID."Selectionscreenparameter
************************************************************************
*ProgramLogic
************************************************************************
*Fillingscreeninterface
MOVEPA_CARRTOSDYN_CONN-CARRID.
*Callingscreen
CALLSCREEN100.
*OpenSQL
SELECTSINGLECARRIDCONNIDCITYFROMCITYTO
FROMSPFLI
INTOCORRESPONDINGFIELDSOFWA_SPFLI
WHERECARRID=SDYN_CONN-CARRID
ANDCONNID=SDYN_CONN-CONNID
*MessageHandling
IFSY-SUBRC=0.
MESSAGEI027(BCTRAIN).
ENDIF.
*List
WRITE:
/WA_SPFLI-CARRIDCOLORCOL_KEY,
WA_SPFLI-CONNIDCOLORCOL_KEY,
WA_SPFLI-CITYFROM,
WA_SPFLI-CITYTO.
Unit:
ABAPDictionary
Topic:
CreatingaABAPDictionaryObject
∙UsingtheABAPDictionary.
∙CreatingaABAPDictionarystructureforaprogramtocalculatetheoccupancyofaflight.
SeestructureSBC400FOCC.
Unit:
ABAPDataDefinitionsandStatements
Topic:
Datecalculations
∙Declaringdata
∙Calculations
REPORTSAPBC400TSS_CALCULATE_DATE.
PARAMETERS:
PA_DAT1LIKESY-DATUM,
PA_DAYSTYPEI.
DATA:
DAT2LIKESY-DATUM.
DAT2=PA_DAT1+PA_DAYS.
SKIP2.
WRITE:
PA_DAT1,
'+',
PA_DAYS(5),
TEXT-001.
SKIP1.
WRITE:
TEXT-002.
WRITE:
40DAT2.
Unit:
ABAPDataDefinitionsandStatements
Topic:
Calculator
∙Declaringdata
∙Calculations
REPORTSAPBC400TSS_CALCULATOR.
PARAMETERS:
PA_VAL1TYPEI,
OPERATOR,
PA_VAL2TYPEI.
DATA:
RESULTTYPEPDECIMALS2,
ERRORFLAG.
IFPA_VAL1ISINITIALORPA_VAL2ISINITIAL.
WRITE/TEXT-INI.
ERRORFLAG='X'.
ELSE.
CASEOPERATOR.
WHEN'+'.
RESULT=PA_VAL1+PA_VAL2.
WHEN'-'.
RESULT=PA_VAL1-PA_VAL2.
WHEN'*'.
RESULT=PA_VAL1*PA_VAL2.
WHEN'/'.
IFPA_VAL2=0.
WRITE/TEXT-DBZ."divisionbyzero
ERRORFLAG='X'.
ELSE.
RESULT=PA_VAL1/PA_VAL2.
ENDIF.
WHENOTHERS.
WRITE:
/TEXT-OTH.
ERRORFLAG='X'.
ENDCASE.
ENDIF.
IFERRORFLAGISINITIAL.
WRITE:
/PA_VAL1,OPERATOR,PA_VAL2,'=',RESULT.
ELSE.
WRITE:
/TEXT-ERR.
ENDIF.
Unit:
ABAPOpenSQL
Topic:
Readingasetoflinesfromadatabasetable
∙UsingABAPOpenSQL
∙TheSELECTstatement
*&---------------------------------------------------------------------*
*&ReportSAPBC400DDS_SELECT_SFLIGHT*
*&---------------------------------------------------------------------*
*&*
*&---------------------------------------------------------------------*
REPORTSAPBC400DDS_SELECT_SFLIGHT.
PARAMETERSPA_CARRLIKESFLIGHT-CARRID.
DATAWA_FLIGHTSLIKESBC400FOCC.
SELECTCARRIDCONNIDFLDATESEATSMAXSEATSOCC
FROMSFLIGHT
INTOCORRESPONDINGFIELDSOFWA_FLIGHTS
WHERECARRID=PA_CARR.
WRITE:
/WA_FLIGHTS-CARRID,
WA_FLIGHTS-CONNID,
WA_FLIGHTS-FLDATE,
WA_FLIGHTS-SEATSMAX,
WA_FLIGHTS-SEATSOCC.
ENDSELECT.
Unit:
InternalTables
∙Declaringastandardinternaltable
∙UsingAPPENDtofillastandardinternaltable
∙Sortingastandardinternaltable
∙Usingalooptoaccessastandardinternaltable
∙Anairlinemustalwaysbeabletodisplayanoverviewofflightoccupancyandbookings.
REPORTSAPBC400ITS_ITAB_RANKED_LIST.
*Selectioncriteria
PARAMETERS:
PA_CARRLIKESFLIGHT-CARRIDDEFAULT'LH'.
*Declarationofinternaltablewithworkarea
DATA:
IT_FLIGHTINFOLIKETABLEOFSBC400FOCC.
DATA:
WA_FLIGHTINFOLIKESBC400FOCC.
*Fillinginternaltable
SELECTCARRIDCONNIDFLDATESEATSMAXSEATSOCC
INTOCORRESPONDINGFIELDSOFWA_FLIGHTINFO
FROMSFLIGHT
WHERECARRID=PA_CARR.
IFWA_FLIGHTINFO-SEATSMAX><0.
WA_FLIGHTINFO-PERCENTAGE=100*WA_FLIGHTINFO-SEATSOCC
/WA_FLIGHTINFO-SEATSMAX.
ELSE.
CLEARWA_FLIGHTINFO_PERCENTAGE.
ENDIF.
APPENDWA_FLIGHTINFOTOIT_FLIGHTINFO.
ENDSELECT.
*Sortinginternaltable
SORTIT_FLIGHTINFOBYPERCENTAGEDESCENDING.
*Output
LOOPATIT_FLIGHTINFOINTOWA_FLIGHTINFO
FROM1TO5.
WRITE:
/WA_FLIGHTINFO-CARRID,
WA_FLIGHTINFO-CONNID,
WA_FLIGHTINFO-FLDATE,
WA_FLIGHTINFO-SEATSMAX,
WA_FLIGHTINFO-SEATSOCC,
WA_FLIGHTINFO-PERCENTAGE,
'%'.
ENDLOOP.
Unit:
InternalTables
∙Bufferingdataininternaltables
REPORTSAPBC400ITS_ITAB_BUFFER.
*Definitionofselectionscreen
PARAMETERSPA_ANUMLIKESBOOK-AGENCYNUM.
*internaltableforbuffering
TYPES:
BEGINOFSTRUC,
IDLIKESCUSTOM-ID,
NAMELIKESCUSTOM-NAME,
ENDOFSTRUC.
DATA:
WA_SCUSTOMTYPESTRUC,
IT_SCUSTOMTYPETABLEOFSTRUCWITHKEYID.
*workareaforselect
DATA:
WA_SBOOKLIKESBOOK.
START-OF-SELECTION.
*bufferingscustomdata
SELECTIDNAMEINTOTABLEIT_SCUSTOMFROMSCUSTOM.
*selectingdata
SELECTCARRIDCONNIDFLDATEBOOKIDCUSTOMIDORDER_DATE
FROMSBOOK
INTOCORRESPONDINGFIELDSOFWA_SBOOK
WHEREAGENCYNUM=PA_ANUM.
*readingcustomername
CLEARWA_SCUSTOM.
MOVEWA_SBOOK-CUSTOMIDTOWA_SCUSTOM-ID.
READTABLEIT_SCUSTOMINTOWA_SCUSTOM
FROMWA_SCUSTOM.
IFSYSUBRC><0.
CLEARWA_SCUSTOM-NAME.
ENDIF.
*Output
WRITE:
/WA_SBOOK-CARRID,
WA_SBOOK-CONNID,
WA_SBOOK-FLDATE,
WA_SBOOK-BOOKID,
WA_SCUSTOM-NAME,
WA_SBOOK-ORDER_DATE.
ENDSELECT.
Unit:
ModularizationandProgramStructure
Topic:
Subroutines
∙Creatingandcallingasubroutine
∙Airlinesmustalwaysbeabletodisplayanoverviewofflightoccupancyandbookings.
REPORTSAPBC400PBS_FORM.
*Selectioncriteria
PARAMETERS:
PA_CARRLIKESFLIGHT-CARRIDDEFAULT'LH'.
*Declarationofinternaltablewithworkarea
DATA:
IT_FLIGHTINFOLIKETABLEOFSBC400FOCC.
DATA:
WA_FLIGHTINFOLIKESBC400FOCC.
*Fillinternaltable
SELECTCARRIDCONNIDFLDATESEATSMAXSEATSOCC
FROMSFLIGHT
INTOCORRESPONDINGFIELDSOFWA_FLIGHTINFO
WHERECARRID=PA_CARR.
PERFORMOCCUPANCY_PERCENTAGE
USINGWA_FLIGHTINFO-SEATSOCC
WA_FLIGHTINFO-SEATSMAX
CHANGINGWA_FLIGHTINFO-PERCENTAGE.
*PERFORMoccupancy_percentage_strucchangingwa_flightinfo.
APPENDWA_FLIGHTINFOTOIT_FLIGHTINFO.
ENDSELECT.
*Sortinternaltable
SORTIT_FLIGHTINFOBYPERCENTAGEDESCENDING.
*Output
LOOPATIT_FLIGHTINFOINTOWA_FLIGHTINFO
FROM1TO5.
WRITE:
/WA_FLIGHTINFO-CARRID,
WA_FLIGHTINFO-CONNID,
WA_FLIGHTINFO-FLDATE,
WA_FLIGHTINFO-SEATSMAX,
WA_FLIGHTINFO-SEATSOCC,
WA_FLIGHTINFO-PERCENTAGE,
'%'.
ENDLOOP.
*&---------------------------------------------------------------------*
*&FormOCCUPANCY_PERCENTAGE
*&---------------------------------------------------------------------*
*text*
*------------------------------------------------------------------------*
*-->P_WA_FLIGHTINFO_SEATSOCCCtext*
*-->P_WA_FLIGHTINFO_SEATSMAXtext*
*<--P_WA_FLIGHTINFO_PERCENTtext*
*------------------------------------------------------------------------*
FORMOCCUPANCY_PERCENTAGE
USING
VALUE(P_WA_FLIGHTINFO_SEATSOCC)TYPESBC400FOCC-SEATSOCC)
VALUE(P_WA_FLIGHTINFO_SEATSMAX)TYPESBC400FOCC-SEATSMAX)
CHANGING
P_WA_FLIGHTINFO_PERCENTAGETYPESBC400FOCC-PERCENTAGE.
IFP_WA_FLIGHTINFO_SEATSMAX=0.
CLEARP_WA_FLIGHTINFO_PERCENTAGE.
ELSE.
P_WA_FLIGHTINFO_PERCENTAGE=100*P_WA_FLIGHTINFO_SEATSOCC
/P_WA_FLIGHTINFO_SEATSMAX.
ENDIF.
ENDFORM."OCCUPANCY_PERCENTAGE
Unit:
ModularizationandProgramStructure
Topic:
FunctionModules
∙Creatingafunctionmodule
∙Airlinesmustalwaysbeabletodisplayanoverviewofflightoccupancyandbookings.
FUNCTIONBC400_PERCENTAGE.
*"----------------------------------------------------------------------
*"*"Localinterface
*"IMPORTING
*"VALUE(SEATSMAX)LIKESFLIGHT-SEATSMAX
*"VALUE(SEATSOCC)LIKESFLIGHT-SEATSOCC
*"EXPORTING
*"VALUE(PERCENTAGE)TYPEBC400_PERCENTAGE
*"EXCEPTIONS
*"DIVISION_BY_ZERO
*"OCC_GT_MAX
*"----------------------------------------------------------------------
IFSEATSMAX=0.
RAISEDIVISION_BY_ZERO.
ELSEIFSEATSOCC>SEATSMAX.
RAISEOCC_GT_MAX.
ENDIF.
PERCENTAGE=SEATSOCC*100/SEATSMAX.
ENDFUNCTION.
Unit:
ModularizationandProgramStructure
Topic:
FunctionModules
∙Callingafunctionmodule
∙Airlinesmustalwaysbeabletodisplayanoverviewofflightoccupancyandbookings..
Version1:
CallingthefunctionmodulewithinaSELECTloop
REPORTSAPBC400PBS_CALL_FUNCTION.
DATAFREESEATSLIKESFLIGHT-SEATSOCC.
*Selectioncriteria
PARAMETERS:
PA_CARRLIKESFLIGHT-CARRIDDEFAULT'LH'.
*Declarationofinternaltablewithworkarea
DATA:
WA_FLIGHTINFOLIKESBC400FOCC.
DATA:
IT_FLIGHTINFOLIKETABLEOFSBC400FOCC.
*Fillinternaltable
SELECTCARRIDCONNIDFLDATESEATSMAXSEATSOCC
FROMSFLIGHT
INTOCORRESPONDINGFIELDSOFWA_FLIGHTINFO
WHERECARRID=PA_CARR.
CALLFUNCTION'BC400_PERCENTAGE'
EXPORTING
SEATSMAX=WA_FLIGHTINFO-SEATSMAX
SEATSOCC=WA_FLIGHTINFO-SEATSOCC
IMPORTING
PERCENTAGE=WA_FLIGHTINFO-PERCENTAGE
EXCEPTIONS
DIVISION_BY_ZERO=1
OCC_GT_MAX=2
OTHERS=3.
CASESY-SUBRC.
WHEN1.
WRITE:
/TEXT-OGM,WA_FLIGHTINFO-CARRID,
WA_FLIGHTINFO-CONNID.
WHEN2.
WRITE:
/TEXT-ME0,WA_FLIGHTINFO-CARRID,
WA_FLIGHTINFO-CONNID.
WHEN3.
WRITE:
/TEXT-OTH,WA_FLIGHTINFO-CARRID,
WA_FLIGHTINFO-CONNID.
WHEN0.
APPENDWA_FLIGHTINFOTOIT_FLIGHTINFO.
ENDCASE.
ENDSELECT.
*Sortinternaltable
SORTIT_FLIGHTINFOBYPERCENTAGEDESCENDING.
*Output
LOOPATIT_FLIGHTINFO
INTOWA_FLIGHTINFO
FROM1TO5.
WRITE:
/WA_FLIGHTINFO-CARRID,
WA_FLIGHTINFO-CONNID,
WA_FLIGHTINFO-FLDATE,
WA_FLIGH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PRINT15