通知单的透明表:
VIQMEL 视图,通知单的主要属性
Qmsm 任务表
Qmur 主题
Qmih 故障表
Qmel 主表
Qmfe 项目 (长文本 缺陷定位 等)
T356_t 优先级
Qpgt 代码组文本 qpct 代码文本
目录的定义(KATALOGART):
一,长文本
长文本的存储位置: 抬头:STXH 行项目:STXL
关键字:TDNAME,TDOBJECT, TDID ,TDSPRAS
TDNAME : 号码
TDOBJECT : (同一类对象的 tdobject 都相同)
TDID : ?
TDSPRAS :语言
由于长文本数据保存在 STXL 不能正常读取,所有应该利用一个函数 :
READ_TEXT
我们调用它,并且提供上述的几个参数即刻读取到指定的长文本。由于长文本很长,所以我们读取出来的数据可能是很多条数据。所以我们需要遍历读取到的数据,然后进行拼接。
保存用另一个函数 save_text ,只是用这个函数保存至今还没有保存成功。
例子: 通知单的长文本分为五类:抬头,原因,工序,结果,评估
类别 | Tdname | Tdobject | Tdid | tdspras | 备注 |
抬头 | 通知单号 | QMEL | LTXT | <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> |
|
原因 | 通知单号+qmfe-fenum | QMFE | LTXT |
| Qmfe-fecod = 0010 |
工序 | 通知单号+qmfe-fenum | QMFE | LTXT |
| Qmfe-fecod = 0020 |
结果 | 通知单号+qmfe-fenum | QMFE | LTXT |
| Qmfe-fecod = 0030 |
评估 | 通知单号+qmfe-fenum | QMFE | LTXT |
| Qmfe-fecod = 0040 |
代码实例:
<!--StartFragment --> <style type="text/css"> SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S52 { color: #0000FF; } </style>TYPES:BEGINOFty_text,
qmnumLIKEqmel-qmnum,"通知单号
fenumLIKEqmfe-fenum,
fecodLIKEqmfe-fecod,
kurztext(20)TYPEc,
text(1000)TYPEc,"
ENDOFty_text.
<!--StartFragment --> <style type="text/css"> SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S52 { color: #0000FF; } </style>DATA:gt_textTYPETABLEOFty_text,
gs_textTYPEty_text.
<!--StartFragment --> <style type="text/css"> SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } </style> FORMget_text2USINGv_qmnum.
DATA:td_nameLIKEstxh-tdname,
fenumLIKEqmfe-fenum,
l_qmnum(12)TYPEc,
c_fenum(4)TYPEc
.
DATAitab_lineLIKEtlineOCCURS0WITHHEADERLINE.
CLEAR:gt_text,gs_text.
SELECTa~qmnuma~fenuma~fecodb~kurztext
INTOCORRESPONDINGFIELDSOFTABLEgt_text
FROMqmfeASa
INNERJOINqpctASb
ONa~fekat=b~katalogart
ANDa~fegrp=b~codegruppe
ANDa~fever=b~version
ANDa~fecod=b~code
WHEREa~qmnum=v_qmnum
ANDa~indtx='X'
ANDb~sprache=1
ANDb~katalogart='C'
ANDb~codegruppe='CLM-01'
ANDb~version='000001'
.
CALLFUNCTION'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input=v_qmnum
IMPORTING
output=l_qmnum.
IFsy-subrc=0.
LOOPATgt_textINTOgs_text.
c_fenum=gs_text-fenum.
PERFORMzero_doUSINGc_fenum4.
CONCATENATEl_qmnumc_fenumINTOtd_name.
CLEARitab_line.REFRESHitab_line.
CALLFUNCTION'READ_TEXT'"读取通知内容长文本
EXPORTING
client=sy-mandt
id='LTXT'
language=sy-langu
name=td_name
object='QMFE'
TABLES
lines=itab_line
EXCEPTIONS
not_found=4.
IFsy-subrc=0.
LOOPATitab_line.
CONCATENATEgs_text-textitab_line-tdlineINTOgs_text-text."把多行长文本加在一起
ENDLOOP.
MODIFYgt_textFROMgs_text.
ENDIF.
ENDLOOP.
ENDIF.
td_name=l_qmnum.
CLEARitab_line.REFRESHitab_line.
CALLFUNCTION'READ_TEXT'"读取通知内容长文本
EXPORTING
client=sy-mandt
id='LTXT'
language=sy-langu
name=td_name
object='QMEL'
TABLES
lines=itab_line
EXCEPTIONS
not_found=4.
IFsy-subrc=0.
CLEARgs_text.
LOOPATitab_line.
CONCATENATEgs_text-textitab_line-tdlineINTOgs_text-text."把多行长文本加在一起
ENDLOOP.
gs_text-qmnum=v_qmnum.
gs_text-fecod='0000'.
gs_text-kurztext='抬头长文本'.
APPENDgs_textTOgt_text.
ENDIF.
ENDFORM.
二,合作伙伴
Ihpa 合作伙伴 (QM+通知单号 关联 通知单)
Tpar 合伙人 角色定义(合作伙伴功能及描述,合作伙伴编号类型)
TVPA 合作伙伴编号类型表 (合作伙伴编号类型及描述,对应的数据表格)
tpart 合作伙伴功能定义文本
Objnr = QM+通知单号 objty = QMC
合作伙伴定义如下(PARVW):
读取方法:
首先通过 PM_Partner_get 获得合作伙伴列表
参数:Objnr = QM+qmel-qmnum(12位)
返回:IHPA_TAB (合作伙伴列表)
然后调用 PM_Partner_read 获得 diadrc_wa
参数:parvw = ihpa_tab-pa
Parnr = ihpa_itab-parnr
Objnr = ihpa_itab-objnr
1. 合作伙伴功能 | 1. 名称 | 1. Table | 1. Field1 | 1. Field2 | 1. 备注 |
1. AB | 2. 负责部门 3. | 2. HRP1000 | 2. Objid | 2. Stext | 2. |
1. VW | 4. 负责人 5. | 3. | 3. | 3. | 3. |
1. AU | 6. 创始人 | 4. | 4. | 4. | 4. |
1. HR | 7. 制造厂商 | 5. LFA1 | 5. Lifnr | 5. Name1 | 5. |
1. AG | 8. 售达方 | 6. KNA1 | 6. Kunnr | 6. Name1 | 6. 界面中显示SP |
1. VU | 9. 负责的用户 | 7. | 7. | 7. | 7. |
1. LF | 10. 供应商 | 8. LFA1 | 8. Lifnr | 8. Name1 | 8. 界面中显示VN |
1. KU | 11. 协调者 | 9. | 9. | 9. | 9. |
1. CP | 12. 联系人 | 10. | 10. | 10. | 10. |
2. | 13. | 11. | 11. | 11. | 11. |
代码实例:
<!--StartFragment --> <style type="text/css"> SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S52 { color: #0000FF; } </style>*合作伙伴
TYPES:BEGINOFty_parter,
vtextTYPEtpart-vtext,"功能
parnrTYPEihpa-parnr,"(合作伙伴)
name1TYPEdiadrcpd-name1,"名称
addr(200)TYPEc,"地址
city1TYPEdiadrcpd-city1,"城市
tel_numberTYPEdiadrcpd-tel_number,"电话号码
fax_numberTYPEdiadrcpd-fax_number,"传真
sort1TYPEdiadrcpd-sort1,"排序
ENDOFty_parter.
<!--StartFragment --> <style type="text/css"> SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S52 { color: #0000FF; } </style>DATA:gt_parterTYPETABLEOFty_parter,
gs_parterTYPEty_parter.
<!--StartFragment --> <style type="text/css"> SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF; } .L1S31 { font-style: italic; color: #808080; } .L1S32 { color: #3399FF; } .L1S33 { color: #4DA619; } .L1S52 { color: #0000FF; } </style>FORMget_parterUSINGv_qmnum.
DATA:it_part_hTYPETABLEOFihpavbWITHHEADERLINE.
DATA:wa_dLIKEdiadr.
DATA:v_textTYPEtpart-vtext.
DATAl_objnrTYPEonr00-objnr.
DATAl_qmnum(12)TYPEc.
DATAtabixTYPEsy-tabix.
CLEAR:it_part_h,wa_d,gt_parter,gs_parter.
CALLFUNCTION'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input=v_qmnum
IMPORTING
output=l_qmnum.
CONCATENATE'QM'l_qmnumINTOl_objnr.
READTABLEgt_mainINTOgs_mainWITHKEYqmnum=v_qmnum.
tabix=sy-tabix.
*读取合作伙伴列表
CALLFUNCTION'PM_PARTNER_GET'
EXPORTING
objnr=l_objnr
TABLES
ihpa_tab=it_part_h.
IFsy-subrc=0.
LOOPATit_part_h.
*读取合作伙伴细节
CALLFUNCTION'PM_PARTNER_READ'
EXPORTING
parvw=it_part_h-parvw
parnr=it_part_h-parnr
objnr=it_part_h-objnr
IMPORTING
diadr_wa=wa_d
vtext=v_text.
IFsy-subrc=0.
gs_parter-parnr=it_part_h-parnr.
gs_parter-name1=wa_d-name1.
gs_parter-city1=wa_d-city1.
gs_parter-tel_number=wa_d-tel_number.
gs_parter-fax_number=wa_d-fax_number.
gs_parter-sort1=wa_d-sort1.
gs_parter-vtext=v_text.
CONCATENATEwa_d-name1','wa_d-city1','
wa_d-tel_number','
wa_d-fax_number','
wa_d-sort1
INTOgs_parter-addr.
APPENDgs_parterTOgt_parter.
*把负责人和协调者放到主表中
IFit_part_h-parvw='VW'ANDgs_main-fzrISINITIAL.
gs_main-fzr=wa_d-name1.
MODIFYgt_mainFROMgs_mainINDEXtabix.
ENDIF.
IFit_part_h-parvw