Code: Alles auswählen.
data: lv_AdressTyp type AD_ADRTYPE,
LS_IT_ORG like line of IS_DLV_DELNOTE-it_ORG,
LS_HD_ADR LIKE LINE OF IS_DLV_DELNOTE-HD_ADR,
LS_HD_ADR2 LIKE LINE OF IS_DLV_DELNOTE-HD_ADR,
it_tel type table of adtel with header line,
it_fax type table of adfax WITH HEADER LINE,
is_name type BAPIADDR3,
lt_print_name type TABLE OF TY_SZADR_PRINTFORM_LINE,
it_TEL2 TYPE STANDARD TABLE OF BAPIADTEL WITH HEADER LINE,
it_FAX2 type STANDARD TABLE OF BAPIADfax WITH HEADER LINE,
ls_it_GEN type STANDARD TABLE OF LEDLV_IT_GEN with HEADER LINE,
it_RETURN type STANDARD TABLE OF BAPIRET2,
ls_vhilm type ty_vhilm,
ls_betreff type sadr,
ls_salesorg_adr type ADDR1_SEL,
ls_firma type sadr,
ls_lips TYPE lips,
lv_menge type EKPO-MENGE,
ls_t001w type t001w.
break joma.
lv_AdressTyp = '1'.
** Werk aus der ersten Lieferposition lesen
LOOP AT IS_DLV_DELNOTE-IT_ORG
INTO LS_IT_ORG.
exit.
ENDLOOP.
SELECT single * FROM T001W
into ls_t001w
WHERE WERKS = LS_IT_ORG-plant.
gv_AdressNummer = ls_t001w-adrnr.
gv_name = ls_t001w-name1.
LOOP AT IS_DLV_DELNOTE-HD_ADR
into LS_HD_ADR
where partn_role = 'ZT'.
ENDLOOP.
IF sy-subrc <> 0.
LOOP AT IS_DLV_DELNOTE-HD_ADR
INTO LS_HD_ADR
where Partn_role = 'SP'.
ENDLOOP.
ENDIF.
*Prüfung ob in partnerrolle 'sp' steht wenn nicht wird
*die Spediteuraddresse nicht gedruckt.
IF ls_hd_adr-partn_role = SPACE.
GV_DRUCK = ''.
else.
*addressdaten auslesen
CALL FUNCTION 'ADDRESS_INTO_PRINTFORM'
EXPORTING
* ADRSWA_IN =
* ADDRESS_1 =
* ADDRESS_2 =
* ADDRESS_3 =
ADDRESS_TYPE = lv_AdressTyp
ADDRESS_NUMBER = LS_HD_ADR-ADDR_NO
* ADDRESS_HANDLE = ' '
* PERSON_NUMBER = ' '
* PERSON_HANDLE = ' '
* SENDER_COUNTRY = ' '
* RECEIVER_LANGUAGE = ' '
NUMBER_OF_LINES = 1
* STREET_HAS_PRIORITY = ' '
* LINE_PRIORITY = ' '
* COUNTRY_NAME_IN_RECEIVER_LANGU = ' '
* LANGUAGE_FOR_COUNTRY_NAME = ' '
* NO_UPPER_CASE_FOR_CITY = ' '
* IV_NATION = ' '
* IV_NATION_SPACE = ' '
* IV_PERSON_ABOVE_ORGANIZATION = ' '
* IS_BUPA_TIME_DEPENDENCY = ' '
* IV_COUNTRY_NAME_SEPARATE_LINE = ' '
* IV_LANGU_CREA = ' '
* IV_DISPLAY_COUNTRY_IN_SHRTFORM = ' '
IMPORTING
* ADRSWA_OUT =
* ADDRESS_PRINTFORM =
* ADDRESS_SHORT_FORM =
* ADDRESS_SHORT_FORM_S =
* ADDRESS_DATA_CARRIER =
* ADDRESS_DATA_CARRIER_0 =
* NUMBER_OF_USED_LINES =
* NAME_IS_EMPTY =
* ADDRESS_NOT_FOUND =
ADDRESS_PRINTFORM_TABLE = lt_print_name
* ADDRESS_SHORT_FORM_WO_NAME =
* EV_NATION =
.
* Zugriff auf 1. zeile
READ TABLE lt_print_name INTO GS_PRINT_NAME INDEX 1.
*TEL auslesen Kunde
CALL FUNCTION 'ADDR_COMM_GET'
EXPORTING
* ADDRESS_HANDLE = ' '
ADDRESS_NUMBER = LS_HD_ADR-ADDR_NO
* DATE_FROM = '00010101'
* LANGUAGE = SY-LANGU
TABLE_TYPE = 'ADTEL'
* IV_CURRENT_STATE = 'X'
* IV_FILL_EMPTY_COUNTRY = 'X'
* IMPORTING
* RETURNCODE =
TABLES
COMM_TABLE = IT_TEL
* ERROR_TABLE =
* ET_USAGE =
* ET_USAGE_UUID =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* ADDRESS_NOT_EXIST = 2
* INTERNAL_ERROR = 3
* OTHERS = 4
.
lv_telNR = it_tel-Telnr_long.
*FAX auslesen Kunde
CALL FUNCTION 'ADDR_COMM_GET'
EXPORTING
* ADDRESS_HANDLE = ' '
ADDRESS_NUMBER = LS_HD_ADR-ADDR_NO
* DATE_FROM = '00010101'
* LANGUAGE = SY-LANGU
TABLE_TYPE = 'ADFAX'
* IV_CURRENT_STATE = 'X'
* IV_FILL_EMPTY_COUNTRY = 'X'
* IMPORTING
* RETURNCODE =
TABLES
COMM_TABLE = IT_fax.
* ERROR_TABLE =
* ET_USAGE =
* ET_USAGE_UUID =
* EXCEPTIONS
* PARAMETER_ERROR = 1
* ADDRESS_NOT_EXIST = 2
* INTERNAL_ERROR = 3
* OTHERS = 4
lv_fax = it_fax-faxnr_long.
ENDIF.
*Tel und Fax des internen users auslesen
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
EXPORTING
USERNAME = sy-uname
* CACHE_RESULTS = 'X'
*
IMPORTING
* LOGONDATA =
* DEFAULTS =
ADDRESS = is_name
* COMPANY =
* SNC =
* REF_USER =
* ALIAS =
* UCLASS =
* LASTMODIFIED =
* ISLOCKED =
* IDENTITY =
* ADMINDATA =
TABLES
* PARAMETER =
* PROFILES =
* ACTIVITYGROUPS =
RETURN = it_Return
ADDTEL = it_TEL2
ADDFAX = it_FAX2
* ADDTTX =
* ADDTLX =
* ADDSMTP =
* ADDRML =
* ADDX400 =
* ADDRFC =
* ADDPRT =
* ADDSSF =
* ADDURI =
* ADDPAG =
* ADDCOMREM =
* PARAMETER1 =
* GROUPS =
* UCLASSSYS =
* EXTIDHEAD =
* EXTIDPART =
* SYSTEMS =
.
gv_Vorname = is_name-firstname.
gv_Nachname = is_name-lastname.
gv_tel2 = it_tel2-tel_no.
gv_fax2 = it_fax2-fax.
*brutto auslesen und deliv numb.
gv_deliv = is_dlv_delnote-hd_gen-deliv_numb.
CALL FUNCTION 'Z_SD_GET_WEIGHT'
EXPORTING
VBELN = gv_deliv
BEL_TYPE = 'L'
IMPORTING
BRUTTO_GEW = gv_brutto.
*Brutto wert in c feld speichern und aufbereiten um
*eine richtige formation zu erreichen
write gv_brutto to gv_brutto_char LEFT-JUSTIFIED.
* Bruttoeinheit auslesen
GV_BRUTTO_UNIT = IS_DLV_DELNOTE-HD_GEN-UNIT_OF_WEIGHT.
*Bestellnummer auslesen
GV_BESTELLNR = IS_DLV_DELNOTE-HD_REF-purch_no.
*Anlieferung auslesen
GV_ANLIEFERUNG = IS_DLV_DELNOTE-HD_GEN-DLV_DATE.
*Entladestelle auselesen
LOOP AT IS_DLV_DELNOTE-HD_ADR
INTO LS_HD_ADR2
where Partn_role = 'WE'.
ENDLOOP.
gv_adr_we = LS_HD_ADR2-Addr_no.
LOOP AT is_dlv_delnote-it_gen
INTO ls_it_gen
where matl_type = 'GEBI'
or matl_type = 'FERT'.
ls_vhilm-palbez = ls_it_gen-SHORT_TEXT.
ls_vhilm-palmng = ls_it_gen-DLV_QTY_STOCK.
ls_vhilm-palmeinh = ls_it_gen-BASE_UOM.
append ls_vhilm to gt_vhilm.
ENDLOOP.
GV_ADR_WE2-ADDRNUMBER = GV_ADR_we.
CALL FUNCTION 'ADDR_GET'
EXPORTING
ADDRESS_SELECTION = GV_ADR_WE2
* ADDRESS_GROUP =
* READ_SADR_ONLY = ' '
* READ_TEXTS = ' '
* IV_CURRENT_COMM_DATA = ' '
IMPORTING
* ADDRESS_VALUE =
* ADDRESS_ADDITIONAL_INFO =
* RETURNCODE =
* ADDRESS_TEXT =
SADR = ls_betreff
* TABLES
* ADDRESS_GROUPS =
* ERROR_TABLE =
* VERSIONS =
EXCEPTIONS
PARAMETER_ERROR = 1
ADDRESS_NOT_EXIST = 2
VERSION_NOT_EXIST = 3
INTERNAL_ERROR = 4
OTHERS = 5
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
gv_betreff = ls_betreff-ort01.
IF IS_DLV_DELNOTE-HD_ORG-SHIP_POINT = '0915'.
gv_abholung = 'Abholung mit Zufall besprechen'.
ls_salesorg_adr-ADDRNUMBER = IS_DLV_DELNOTE-HD_ORG-salesorg_adr.
CALL FUNCTION 'ADDR_GET'
EXPORTING
ADDRESS_SELECTION = ls_salesorg_adr
* ADDRESS_GROUP =
* READ_SADR_ONLY = ' '
* READ_TEXTS = ' '
* IV_CURRENT_COMM_DATA = ' '
IMPORTING
* ADDRESS_VALUE =
* ADDRESS_ADDITIONAL_INFO =
* RETURNCODE =
* ADDRESS_TEXT =
SADR = ls_firma
* TABLES
* ADDRESS_GROUPS =
* ERROR_TABLE =
* VERSIONS =
EXCEPTIONS
PARAMETER_ERROR = 1
ADDRESS_NOT_EXIST = 2
VERSION_NOT_EXIST = 3
INTERNAL_ERROR = 4
OTHERS = 5
.
gv_name = ls_firma-name1.
ENDIF.
SELECT * from lips
INTO ls_lips
where bwart <> SPACE
and lfimg <> 0
and vbeln = GV_DELIV.
break joma.
if LS_LIPS-VRKME <> 'LU'.
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr = ls_lips-matnr
i_in_me = ls_lips-vrkme
i_out_me = 'LU'
i_menge = ls_lips-lfimg
IMPORTING
e_menge = lv_menge
EXCEPTIONS
error_in_application = 1
error = 2
OTHERS = 3.
gv_anzlu = gv_anzlu + lv_menge.
ELSE.
gv_anzlu = gv_anzlu + ls_lips-lfimg.
ENDIF.
ENDSELECT.
*Wenn Verkaufsorganisation Apolda ist LDDAT lesen und in gv speichern
SELECT * from likp
into ls_likp
where vbeln = gv_deliv
and vkorg = '4000'.
gv_abholung = ls_likp-lddat.
ENDSELECT.
CONCATENATE gv_abholung+6 gv_abholung+4(2) gv_abholung(4) into gv_abholung SEPARATED BY '.' .