PRINT15.docx

上传人:b****7 文档编号:16389950 上传时间:2023-07-13 格式:DOCX 页数:35 大小:37.80KB
下载 相关 举报
PRINT15.docx_第1页
第1页 / 共35页
PRINT15.docx_第2页
第2页 / 共35页
PRINT15.docx_第3页
第3页 / 共35页
PRINT15.docx_第4页
第4页 / 共35页
PRINT15.docx_第5页
第5页 / 共35页
PRINT15.docx_第6页
第6页 / 共35页
PRINT15.docx_第7页
第7页 / 共35页
PRINT15.docx_第8页
第8页 / 共35页
PRINT15.docx_第9页
第9页 / 共35页
PRINT15.docx_第10页
第10页 / 共35页
PRINT15.docx_第11页
第11页 / 共35页
PRINT15.docx_第12页
第12页 / 共35页
PRINT15.docx_第13页
第13页 / 共35页
PRINT15.docx_第14页
第14页 / 共35页
PRINT15.docx_第15页
第15页 / 共35页
PRINT15.docx_第16页
第16页 / 共35页
PRINT15.docx_第17页
第17页 / 共35页
PRINT15.docx_第18页
第18页 / 共35页
PRINT15.docx_第19页
第19页 / 共35页
PRINT15.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

PRINT15.docx

《PRINT15.docx》由会员分享,可在线阅读,更多相关《PRINT15.docx(35页珍藏版)》请在冰点文库上搜索。

PRINT15.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2