IQC来料检验报表
*****************************************************************
* System : XXXXXXXXX
* Module : QM
* Program ID : ZQMR001
* Program : IQC来料检验报表
* Author : XXXXXX
* Date : 20160224
* Description :
*****************************************************************
* Modified Recorder :
* Date C#NO Author Content
* ----------- ------- ------------------ ---------------
* 修改日期 C票或变更文档ID 修改者 修改内容
REPORT ZQMR004. TABLES:QALS,MAKT,QASE,QAVE,QPCT,QMEL,QMFE,QAMR,MSEG. "structure define
TYPES:BEGIN OF TY_SHOW,
SEL(),
ENSTEHDAT TYPE QALS-ENSTEHDAT,
WERK TYPE QALS-WERK,
ART TYPE QALS-ART,
LIFNR TYPE QALS-LIFNR,
MATNR TYPE QALS-MATNR,
KTEXTMAT TYPE QALS-KTEXTMAT, "检验对象的短文本 物料名称
WRKST TYPE MARA-WRKST, "基本物料
LOSMENGE TYPE QALS-LOSMENGE, "检验批数量
LMENGESCH TYPE QALS-LMENGESCH, "检验数量中的缺陷数量
GESSTICHPR TYPE QALS-GESSTICHPR, "采样大小
VCODE TYPE QAVE-VCODE, "使用决策代码
VTEXT TYPE QPCT-KURZTEXT, "使用决策代码文本
PRUEFER TYPE QASE-PRUEFER, "检验员
BLTXT() TYPE C, "不良描述
BLTYP() TYPE C, "不良分类
PRUEFLOS TYPE QALS-PRUEFLOS, "
EBELN TYPE QALS-EBELN, "
EKGRP TYPE EKKO-EKGRP, "
EKNAM TYPE T024-EKNAM, "
MJAHR TYPE QALS-MJAHR, "
MBLNR TYPE QALS-MBLNR, "
ZEILE TYPE QALS-ZEILE, "
QMNUM TYPE QMEL-QMNUM, "通知编号
PZTXT() TYPE C, "品质异常处理结果
ARTPR TYPE QMEL-ARTPR, "优先级类型
PRIOK TYPE QMEL-PRIOK, "优先级PRIOK
PRIOKX TYPE T356_T-PRIOKX, "优先级PRIOK
SGTXT TYPE MSEG-SGTXT, "机型
KTEXTLOS TYPE QALS-KTEXTLOS, "
VDATUM TYPE QAVE-VDATUM, "使用决定使用的代码日期
PLNTY TYPE QALS-PLNTY,
PLNNR TYPE QALS-PLNNR,
PLNAL TYPE QALS-PLNAL,
ZAEHL TYPE QALS-ZAEHL,
ZNUM() TYPE C,
ZFEI() TYPE C,
END OF TY_SHOW,
BEGIN OF TY_QMEL,
QMNUM TYPE QMEL-QMNUM, "通知编号
PRUEFLOS TYPE QALS-PRUEFLOS, "
ARTPR TYPE QMEL-ARTPR, "优先级类型
PRIOK TYPE QMEL-PRIOK, "优先级PRIOK
END OF TY_QMEL,
BEGIN OF TY_QAVE,
PRUEFLOS TYPE QAVE-PRUEFLOS, "检验批编号
VAUSWAHLMG TYPE QAVE-VAUSWAHLMG, "使用决定的选择集
ZAEHLER TYPE QAVE-ZAEHLER,
VKATART TYPE QAVE-VKATART,
VCODEGRP TYPE QAVE-VCODEGRP, "使用决定的代码组
VCODE TYPE QAVE-VCODE, "使用决定的代码组
VDATUM TYPE QAVE-VDATUM, "使用决定使用的代码日期
VERSIONAM TYPE QAVE-VERSIONAM,
END OF TY_QAVE,
BEGIN OF TY_QASE,"抽样结果
PRUEFLOS TYPE QASE-PRUEFLOS, "检验批编号
VORGLFNR TYPE QASE-VORGLFNR, "当前节点号码
MERKNR TYPE QASE-MERKNR, "检验特性编号
DETAILERG TYPE QASE-DETAILERG, "单个结果编号
PRUEFER TYPE QASE-PRUEFER, "检验员姓名
MBEWERTG TYPE QASE-MBEWERTG, "检验结果评估(A 已接受的 R 拒收的 F 失败)
PRUEFBEMKT TYPE QASE-PRUEFBEMKT, "短文本
PRLTEXTKZ TYPE QASE-PRLTEXTKZ, "检验特性长文本存在
ORIGINAL TYPE QASE-ORIGINAL_INPUT, "记录的检验结果(抽样)
END OF TY_QASE,
BEGIN OF TY_QAMR,"单个抽样结果
PRUEFLOS TYPE QAMR-PRUEFLOS, "检验批编号
VORGLFNR TYPE QAMR-VORGLFNR, "当前节点号码
MERKNR TYPE QAMR-MERKNR, "检验特性编号
SATZSTATUS TYPE QAMR-SATZSTATUS, "结果记录状态 5
KATALGART1 TYPE QAMR-KATALGART1, "结果记录状态 5
GRUPPE1 TYPE QAMR-GRUPPE1, "结果记录状态 5
CODE1 TYPE QAMR-CODE1, "结果记录状态 5
VERSION1 TYPE QAMR-VERSION1, "结果记录状态 5
PRUEFER TYPE QAMR-PRUEFER, "检验员姓名
MBEWERTG TYPE QAMR-MBEWERTG, "检验结果评估
PRUEFBEMKT TYPE QAMR-PRUEFBEMKT, "短文本
PRLTEXTKZ TYPE QAMR-PRLTEXTKZ, "检验特性长文本存在
ORIGINAL TYPE QAMR-ORIGINAL_INPUT, ""记录的检验结果(单检)
END OF TY_QAMR,
BEGIN OF TY_QAMV,
PRUEFLOS TYPE QAMV-PRUEFLOS, "检验批编号
VORGLFNR TYPE QAMV-VORGLFNR, "订单计数器 APLZL 的当前节点号码
MERKNR TYPE QAMV-MERKNR, "检验特性编号
KATAB1 TYPE QAMV-KATAB1, "目录条目是一个选择集
KATALGART1 TYPE QAMV-KATALGART1, "分配的代码组或选择集的目录类型
AUSWMENGE1 TYPE QAMV-AUSWMENGE1, "分配的代码组或选择集
AUSWMGWRK1 TYPE QAMV-AUSWMGWRK1, "分配的选择集的工厂
TOLERANZUN TYPE QAMV-TOLERANZUN, "容差下限
TOLERANZOB TYPE QAMV-TOLERANZOB, "规范上限
KURZTEXT TYPE QAMV-KURZTEXT, "检验特性的短文本
VERWMERKM TYPE QAMV-VERWMERKM, "检验特性
STICHPRVER TYPE QAMV-STICHPRVER, "检验特性中的采样程序
DUMMY40 TYPE QAMV-DUMMY40, "检验特性中的采样程序
END OF TY_QAMV,
BEGIN OF TY_PLMK,
PLNTY TYPE PLMK-PLNTY,
PLNNR TYPE PLMK-PLNNR,
PLNKN TYPE PLMK-PLNKN,
KZEINSTELL TYPE PLMK-KZEINSTELL,
MERKNR TYPE PLMK-MERKNR,
ZAEHL TYPE PLMK-ZAEHL,
PMETHODE TYPE PLMK-PMETHODE,
END OF TY_PLMK,
BEGIN OF TY_QMFE,"质量通知->缺陷记录
QMNUM TYPE QMFE-QMNUM, "通知编号
FENUM TYPE QMFE-FENUM, "项目记录中的项目号
FEKAT TYPE QMFE-FEKAT, "目录类型 - 问题/缺陷
FEGRP TYPE QMFE-FEGRP, "代码组 - 问题
FECOD TYPE QMFE-FECOD, "问题或损坏代码
FEQKLAS TYPE QMFE-FEQKLAS, "缺陷类别
END OF TY_QMFE. DATA:GT_SHOW TYPE TABLE OF TY_SHOW,
GT_QAVE TYPE TABLE OF TY_QAVE,
GT_QASE TYPE TABLE OF TY_QASE,
GT_QPAM TYPE TABLE OF QPAM,
GS_QPAM LIKE LINE OF GT_QPAM,
GT_PLAS TYPE TABLE OF PLAS,
GS_PLAS LIKE LINE OF GT_PLAS,
GT_QDSVT TYPE TABLE OF QDSVT,
GS_QDSVT TYPE QDSVT,
GT_PLMK TYPE TABLE OF TY_PLMK,
GS_PLMK LIKE LINE OF GT_PLMK,
GT_QAMV TYPE TABLE OF TY_QAMV,
GT_QAMV_DX TYPE TABLE OF TY_QAMV,
GS_QAMV LIKE LINE OF GT_QAMV,
GT_QAMR TYPE TABLE OF TY_QAMR,
GT_QAMR_DX TYPE TABLE OF TY_QAMR,
GT_QMEL TYPE TABLE OF TY_QMEL,
GT_QMFE TYPE TABLE OF TY_QMFE.
DATA:LT_SHOW TYPE TABLE OF TY_SHOW.
DATA:GT_QPCT TYPE TABLE OF QPCT WITH HEADER LINE.
DATA:GT_FIELDCAT TYPE LVC_T_FCAT. DATA:GW_SHOW LIKE LINE OF GT_SHOW,
GW_QAVE LIKE LINE OF GT_QAVE,
GW_QASE LIKE LINE OF GT_QASE,
GW_QAMR LIKE LINE OF GT_QAMR,
GW_QMEL LIKE LINE OF GT_QMEL,
GW_QMFE LIKE LINE OF GT_QMFE.
DATA GS_FIELDCAT LIKE LINE OF GT_FIELDCAT.
DATA LS_LAYOUT TYPE LVC_S_LAYO. "define
DEFINE APPEND_FIELDCAT .
clear gs_fieldcat.
gs_fieldcat-fieldname = &.
gs_fieldcat-scrtext_l = &.
gs_fieldcat-outputlen = &.
gs_fieldcat-no_zero = &.
append gs_fieldcat to gt_fieldcat.
END-OF-DEFINITION. SELECTION-SCREEN:BEGIN OF BLOCK BLK01 WITH FRAME TITLE TEXT-.
PARAMETERS:P_WERKS TYPE QALS-WERK OBLIGATORY,
P_ART TYPE QALS-ART NO-DISPLAY DEFAULT ''.
SELECT-OPTIONS:S_MATNR FOR QALS-MATNR,
S_MAKTX FOR MAKT-MAKTX,
S_LIFNR FOR QALS-LIFNR,
S_PRLOT FOR QALS-PRUEFLOS,
S_ENDAT FOR QALS-ENSTEHDAT,
S_PRDAT FOR QALS-PASTRTERM,
S_EBELN FOR QALS-EBELN,
S_MBLNR FOR QALS-MBLNR,
S_PRUER FOR QASE-PRUEFER NO-DISPLAY,
S_VDATUM FOR QAVE-VDATUM,"UD日期
S_VCODE FOR QAVE-VCODE MATCHCODE OBJECT ZSHVCODE. "使用决策代码.
SELECTION-SCREEN END OF BLOCK BLK01. INITIALIZATION.
P_ART = ''. START-OF-SELECTION.
AUTHORITY-CHECK OBJECT 'Q_INSPTYPE'
ID 'WERKS' FIELD P_WERKS.
IF SY-SUBRC <> .
MESSAGE '没有该工厂的查询权限!' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF. PERFORM PRM_GET_MAIN."查询QALS等相关主要数据
PERFORM PRM_GET_DETAIL."检验批的结果,不良描述,
PERFORM PRM_GET_QMFE."缺陷代码 PERFORM PRM_PROCESS. PERFORM PRM_SET_FIELD. PERFORM PRM_SHOW_DATA. *&---------------------------------------------------------------------*
*& Form PRM_GET_MAIN
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_GET_MAIN .
SELECT A~ENSTEHDAT
A~WERK
A~ART
A~LIFNR
A~MATNR
A~KTEXTMAT "检验对象的短文本 物料名称
E~WRKST
A~LOSMENGE "检验批数量
A~LMENGESCH "检验数量中的缺陷数量
A~GESSTICHPR
B~VCODE" TYPE qave-vcode, "使用决策代码
D~KURZTEXT AS VTEXT " TYPE qpct-kurztext, "使用决策代码文本
* pruefer TYPE qase-pruefer, "检验员
* bltxt(100) TYPE c, "不良描述
* bltyp(20) TYPE c, "不良分类
A~PRUEFLOS" TYPE qals-prueflos, "
A~EBELN " TYPE qals-ebeln, "
A~MJAHR
A~MBLNR " TYPE qals-mblnr, "
A~ZEILE
* c~qmnum " TYPE qmel-qmnum, "通知编号
** pztxt(100) TYPE c, "品质异常处理结果
* c~artpr " TYPE qmel-artpr, "优先级类型
* c~priok " TYPE qmel-priok, "优先级
A~KTEXTLOS
A~PLNTY" TYPE qals-plnty,
A~PLNNR " TYPE qals-plnnr,
A~PLNAL " TYPE qals-plnal,
A~ZAEHL " TYPE qals-zaehl,
B~VDATUM
INTO CORRESPONDING FIELDS OF TABLE GT_SHOW
FROM QALS AS A
INNER JOIN QAVE AS B
ON A~PRUEFLOS = B~PRUEFLOS
AND A~WERK = B~VWERKS
AND B~VKATART = ''
AND B~VCODEGRP = 'ZY'
* INNER JOIN qmel AS c
* ON a~prueflos = c~prueflos
INNER JOIN QPCT AS D
ON D~CODE = B~VCODE
AND D~KATALOGART = ''
AND D~CODEGRUPPE = 'ZY'
AND D~SPRACHE = ''
LEFT JOIN MARA AS E
ON A~MATNR = E~MATNR
WHERE A~PRUEFLOS IN S_PRLOT
AND A~WERK = P_WERKS
AND A~ART = P_ART
AND A~STAT35 = 'X'
AND A~MATNR IN S_MATNR
AND A~KTEXTMAT IN S_MAKTX
AND A~LIFNR IN S_LIFNR
AND A~ENSTEHDAT IN S_ENDAT
AND A~PASTRTERM IN S_PRDAT
AND A~EBELN IN S_EBELN
AND A~MBLNR IN S_MBLNR
AND B~VCODE IN S_VCODE
AND B~VDATUM IN S_VDATUM.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PRM_GET_DETAIL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_GET_DETAIL .
* DATA:VT_SHOW TYPE TABLE OF TY_SHOW.
*
* APPEND LINES OF GT_SHOW TO VT_SHOW.
* SORT VT_SHOW[] BY PLNTY PLNNR PLNAL.
* DELETE ADJACENT DUPLICATES FROM VT_SHOW[] COMPARING PLNTY PLNNR PLNAL. * IF VT_SHOW[] IS NOT INITIAL."检验计划
* SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_PLAS
* FROM PLAS
* FOR ALL ENTRIES IN GT_SHOW
* WHERE PLNTY = GT_SHOW-PLNTY
* AND PLNNR = GT_SHOW-PLNNR
* AND PLNAL = GT_SHOW-PLNAL.
*
* IF GT_PLAS[] IS NOT INITIAL.
* SELECT
* PLNTY
* PLNNR
* PLNKN
* KZEINSTELL
* MERKNR
* ZAEHL
* PMETHODE
* INTO CORRESPONDING FIELDS OF TABLE GT_PLMK
* FROM PLMK
* FOR ALL ENTRIES IN GT_PLAS
* WHERE PLNTY = GT_PLAS-PLNTY
* AND PLNNR = GT_PLAS-PLNNR
* AND PLNKN = GT_PLAS-PLNKN
* AND LOEKZ = ''.
* ENDIF.
*
* CLEAR:VT_SHOW[].
* ENDIF. IF GT_SHOW[] IS NOT INITIAL.
"GET 检验处理的特性说明
SELECT PRUEFLOS"检验批编号
VORGLFNR "订单计数器 APLZL 的当前节点号码
MERKNR "检验特性编号
KATAB1 "目录条目是一个选择集
KATALGART1"分配的代码组或选择集的目录类型
AUSWMENGE1"分配的代码组或选择集
AUSWMGWRK1 "分配的选择集的工厂
TOLERANZUN "容差下限
TOLERANZOB "规范上限
KURZTEXT "检验特性的短文本
VERWMERKM
STICHPRVER
DUMMY40
INTO CORRESPONDING FIELDS OF TABLE GT_QAMV
FROM QAMV
FOR ALL ENTRIES IN GT_SHOW
WHERE PRUEFLOS = GT_SHOW-PRUEFLOS. SELECT PRUEFLOS " TYPE qase-prueflos, "检验批编号
VORGLFNR " TYPE qase-vorglfnr, "当前节点号码
MERKNR " TYPE qase-merknr, "检验特性编号
DETAILERG " TYPE qase-detailerg, "单个结果编号
PRUEFER
MBEWERTG " TYPE qase-mbewertg, "检验结果评估(A 已接受的 R 拒收的 F 失败)
PRUEFBEMKT" TYPE qase-pruefbemkt, "短文本
PRLTEXTKZ " TYPE qase-prltextkz, "检验特性长文本存在
ORIGINAL_INPUT AS ORIGINAL " TYPE qase-original_input, "记录的检验结果(抽样)
INTO CORRESPONDING FIELDS OF TABLE GT_QASE
FROM QASE
FOR ALL ENTRIES IN GT_SHOW
WHERE PRUEFLOS = GT_SHOW-PRUEFLOS
AND PRUEFER IN S_PRUER. * "GET 检验处理的特性说明 定性
APPEND LINES OF GT_QAMV TO GT_QAMV_DX.
DELETE GT_QAMV_DX WHERE AUSWMENGE1 IS INITIAL.
IF GT_QAMV_DX[] IS NOT INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_QPAM
FROM QPAM FOR ALL ENTRIES IN GT_QAMV_DX
WHERE WERKS = GT_QAMV_DX-AUSWMGWRK1
AND KATALOGART = GT_QAMV_DX-KATALGART1
AND AUSWAHLMGE = GT_QAMV_DX-AUSWMENGE1. CLEAR:GT_QAMV_DX[].
ENDIF. SELECT PRUEFLOS " TYPE qamr-prueflos, "检验批编号
VORGLFNR " TYPE qamr-vorglfnr, "当前节点号码
MERKNR " TYPE qamr-merknr, "检验特性编号
PRUEFER
SATZSTATUS" TYPE qamr-satzstatus, "结果记录状态 5
KATALGART1" TYPE QAMR-KATALGART1, "结果记录状态 5
GRUPPE1" TYPE QAMR-GRUPPE1, "结果记录状态 5
CODE1 " TYPE QAMR-CODE1, "结果记录状态 5
VERSION1 " TYPE QAMR-VERSION1, "结果记录状态 5
MBEWERTG " TYPE qamr-mbewertg, "检验结果评估
PRUEFBEMKT" TYPE qamr-pruefbemkt, "短文本
PRLTEXTKZ "TYPE qamr-prltextkz, "检验特性长文本存在
ORIGINAL_INPUT AS ORIGINAL "TYPE qamr-original_input, ""记录的检验结果(单检)
INTO CORRESPONDING FIELDS OF TABLE GT_QAMR
FROM QAMR
FOR ALL ENTRIES IN GT_SHOW
WHERE PRUEFLOS = GT_SHOW-PRUEFLOS
AND PRUEFER IN S_PRUER. "处理定性的检验结果文本
APPEND LINES OF GT_QAMR TO GT_QAMR_DX. DELETE GT_QAMR_DX WHERE KATALGART1 IS INITIAL. IF GT_QAMR_DX[] IS NOT INITIAL.
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_QPCT
FROM QPCT FOR ALL ENTRIES IN GT_QAMR_DX
WHERE KATALOGART = GT_QAMR_DX-KATALGART1
AND CODEGRUPPE = GT_QAMR_DX-GRUPPE1
AND CODE = GT_QAMR_DX-CODE1
AND SPRACHE = ''
AND VERSION = GT_QAMR_DX-VERSION1. CLEAR:GT_QAMR_DX[].
ENDIF. * SELECT QMNUM " TYPE qmel-qmnum, "通知编号
* PRUEFLOS "TYPE qals-prueflos, "
* ARTPR "TYPE qmel-artpr, "优先级类型
* PRIOK "TYPE qmel-priok, "优先级PRIOK
* INTO CORRESPONDING FIELDS OF TABLE GT_QMEL
* FROM QMEL
* FOR ALL ENTRIES IN GT_SHOW
* WHERE PRUEFLOS = GT_SHOW-PRUEFLOS
* AND KZLOESCH = ''. "************************************************QAVE
SELECT
PRUEFLOS
KZART
ZAEHLER
VKATART
VCODEGRP
VCODE
VERSIONAM
INTO CORRESPONDING FIELDS OF TABLE GT_QAVE
FROM QAVE
FOR ALL ENTRIES IN GT_SHOW
WHERE PRUEFLOS = GT_SHOW-PRUEFLOS. IF GT_QAVE[] IS NOT INITIAL.
SELECT * APPENDING CORRESPONDING FIELDS OF TABLE GT_QPCT
FROM QPCT FOR ALL ENTRIES IN GT_QAVE
WHERE KATALOGART = GT_QAVE-VKATART
AND CODEGRUPPE = GT_QAVE-VCODEGRP
AND CODE = GT_QAVE-VCODE
AND SPRACHE = ''
AND VERSION = GT_QAVE-VERSIONAM.
ENDIF. SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_QDSVT
FROM QDSVT
WHERE SPRACHE = ''.
ENDIF. ENDFORM.
*&---------------------------------------------------------------------*
*& Form PRM_GET_QMFE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_GET_QMFE . * IF GT_QMEL[] IS NOT INITIAL.
* SELECT QMNUM" TYPE qmfe-qmnum, "通知编号
* FENUM " TYPE qmfe-fenum, "项目记录中的项目号
* FEKAT " TYPE qmfe-fekat, "目录类型 - 问题/缺陷
* FEGRP" TYPE qmfe-fegrp, "代码组 - 问题
* FECOD " TYPE qmfe-fecod, "问题或损坏代码
* FEQKLAS" TYPE qmfe-feqklas, "缺陷类别
* INTO CORRESPONDING FIELDS OF TABLE GT_QMFE
* FROM QMFE
* FOR ALL ENTRIES IN GT_QMEL
* WHERE QMNUM = GT_QMEL-QMNUM
* AND KZLOESCH = ''.
* ENDIF. ENDFORM.
*&---------------------------------------------------------------------*
*& Form PRM_PROCESS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_PROCESS .
DATA:LV_NAME TYPE THEAD-TDNAME,
LT_TLINE TYPE TABLE OF TLINE,
LS_TLINE LIKE LINE OF LT_TLINE.
DATA:LV_FLAG TYPE C.
DATA:LS_NAME TYPE ADRP-NAME_TEXT. SORT GT_QMFE[] BY QMNUM FEQKLAS FEGRP.
DELETE ADJACENT DUPLICATES FROM GT_QMFE[] COMPARING QMNUM FEQKLAS FEGRP. LOOP AT GT_SHOW INTO GW_SHOW.
"不良描述,检验员姓名 抽检
LOOP AT GT_QASE INTO GW_QASE WHERE PRUEFLOS = GW_SHOW-PRUEFLOS.
CLEAR:LS_NAME.
"get neme of the
IF GW_QASE-PRUEFER IS NOT INITIAL AND GW_SHOW-PRUEFER IS INITIAL.
SELECT SINGLE NAME_TEXT INTO LS_NAME FROM ADRP
INNER JOIN USR21 ON ADRP~PERSNUMBER = USR21~PERSNUMBER
WHERE USR21~BNAME = GW_QASE-PRUEFER.
GW_SHOW-PRUEFER = LS_NAME.
ENDIF. * SEARCH gw_show-pruefer FOR ls_name.
* IF sy-subrc = 0.
* ELSE.
* CONCATENATE gw_show-pruefer ls_name INTO gw_show-pruefer SEPARATED BY '/'.
* ENDIF.
* gw_show-pruefer = gw_qase-pruefer.
IF GW_QASE-PRLTEXTKZ = 'X'.
REFRESH:LT_TLINE.
CONCATENATE GW_QASE-PRUEFLOS GW_QASE-VORGLFNR GW_QASE-MERKNR
GW_QASE-DETAILERG INTO LV_NAME.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'QMEP'
LANGUAGE = ''
NAME = LV_NAME
OBJECT = 'QEEMERKMAL'
TABLES
LINES = LT_TLINE
EXCEPTIONS
ID =
LANGUAGE =
NAME =
NOT_FOUND =
OBJECT =
REFERENCE_CHECK =
WRONG_ACCESS_TO_ARCHIVE =
OTHERS = .
IF SY-SUBRC <> .
ENDIF. LOOP AT LT_TLINE INTO LS_TLINE.
CONCATENATE GW_SHOW-BLTXT LS_TLINE-TDLINE INTO GW_SHOW-BLTXT.
ENDLOOP.
ELSE.
* gw_show-bltxt = gw_qase-pruefbemkt.
IF GW_QASE-PRUEFBEMKT <> ''.
CONCATENATE GW_SHOW-BLTXT GW_QASE-PRUEFBEMKT INTO GW_SHOW-BLTXT SEPARATED BY '/'.
ENDIF. ENDIF.
ENDLOOP.
"不良描述,检验员姓名 单检
LOOP AT GT_QAMR INTO GW_QAMR WHERE PRUEFLOS = GW_SHOW-PRUEFLOS.
CLEAR:LS_NAME.
"get neme of the
IF GW_QAMR-PRUEFER IS NOT INITIAL AND GW_SHOW-PRUEFER IS INITIAL.
SELECT SINGLE NAME_TEXT INTO LS_NAME FROM ADRP
INNER JOIN USR21 ON ADRP~PERSNUMBER = USR21~PERSNUMBER
WHERE USR21~BNAME = GW_QAMR-PRUEFER.
GW_SHOW-PRUEFER = LS_NAME.
ENDIF.
* gw_show-pruefer = gw_qamr-pruefer.
* SEARCH gw_show-pruefer FOR ls_name.
** SEARCH gw_show-pruefer FOR gw_qamr-pruefer.
* IF sy-subrc = 0.
* ELSE.
* CONCATENATE gw_show-pruefer ls_name INTO gw_show-pruefer SEPARATED BY '/'.
* ENDIF.
IF GW_QAMR-PRLTEXTKZ = 'X'.
REFRESH:LT_TLINE.
CONCATENATE GW_QAMR-PRUEFLOS GW_QAMR-VORGLFNR GW_QAMR-MERKNR INTO LV_NAME.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = 'QMEP'
LANGUAGE = ''
NAME = LV_NAME
OBJECT = 'QEEMERKMAL'
TABLES
LINES = LT_TLINE
EXCEPTIONS
ID =
LANGUAGE =
NAME =
NOT_FOUND =
OBJECT =
REFERENCE_CHECK =
WRONG_ACCESS_TO_ARCHIVE =
OTHERS = .
IF SY-SUBRC <> .
ENDIF. LOOP AT LT_TLINE INTO LS_TLINE.
CONCATENATE GW_SHOW-BLTXT LS_TLINE-TDLINE INTO GW_SHOW-BLTXT SEPARATED BY ';'.
ENDLOOP.
ELSE.
* gw_show-bltxt = gw_qamr-pruefbemkt.
IF GW_QAMR-PRUEFBEMKT <> ''.
CONCATENATE GW_SHOW-BLTXT GW_QAMR-PRUEFBEMKT INTO GW_SHOW-BLTXT SEPARATED BY ';'.
ENDIF.
ENDIF.
ENDLOOP. * READ TABLE GT_QMEL INTO GW_QMEL WITH KEY PRUEFLOS = GW_SHOW-PRUEFLOS.
* IF SY-SUBRC = 0.
* GW_SHOW-QMNUM = GW_QMEL-QMNUM.
* GW_SHOW-ARTPR = GW_QMEL-ARTPR.
* GW_SHOW-PRIOK = GW_QMEL-PRIOK.
* ENDIF.
"不良分类
* CLEAR:LV_FLAG.
* LOOP AT GT_QMFE INTO GW_QMFE WHERE QMNUM = GW_SHOW-QMNUM.
** IF lv_flag = 'X'.
** ELSE.
* IF GW_QMFE-FEQKLAS = '01' AND GW_SHOW-WERK = '1010'.
* LV_FLAG = 'X'.
* SEARCH GW_SHOW-BLTYP FOR GW_QMFE-FEGRP.
* IF SY-SUBRC = 0.
* ELSE.
* CONCATENATE GW_SHOW-BLTYP GW_QMFE-FEGRP INTO GW_SHOW-BLTYP SEPARATED BY '/'.
* ENDIF.
** gw_show-bltyp = gw_qmfe-fegrp.
* ELSE.
* IF LV_FLAG <> 'X'.
* SEARCH GW_SHOW-BLTYP FOR GW_QMFE-FEGRP.
* IF SY-SUBRC = 0.
* ELSE.
* CONCATENATE GW_SHOW-BLTYP GW_QMFE-FEGRP INTO GW_SHOW-BLTYP SEPARATED BY '/'.
* ENDIF.
* ENDIF.
* ENDIF.
** ENDIF.
* ENDLOOP. * "品质异常处理结果
* IF GW_SHOW-QMNUM IS NOT INITIAL.
* REFRESH:LT_TLINE.
* LV_NAME = GW_SHOW-QMNUM.
* CALL FUNCTION 'READ_TEXT'
* EXPORTING
* ID = 'LTQM'
* LANGUAGE = '1'
* NAME = LV_NAME
* OBJECT = 'QMEL'
* TABLES
* LINES = LT_TLINE
* EXCEPTIONS
* ID = 1
* LANGUAGE = 2
* NAME = 3
* NOT_FOUND = 4
* OBJECT = 5
* REFERENCE_CHECK = 6
* WRONG_ACCESS_TO_ARCHIVE = 7
* OTHERS = 8.
* IF SY-SUBRC <> 0.
* ENDIF.
* LOOP AT LT_TLINE INTO LS_TLINE.
* CONCATENATE GW_SHOW-PZTXT LS_TLINE-TDLINE INTO GW_SHOW-PZTXT.
* ENDLOOP.
* ENDIF. * "处理进度 优先级
* IF GW_SHOW-PRIOK IS NOT INITIAL.
* SELECT SINGLE PRIOKX INTO GW_SHOW-PRIOKX
* FROM T356_T
* WHERE SPRAS = '1'
* AND ARTPR = 'QM'
* AND PRIOK = GW_SHOW-PRIOK.
* ENDIF. "采购组
* IF GW_SHOW-EBELN IS NOT INITIAL.
* SELECT SINGLE A~EKGRP B~EKNAM INTO (GW_SHOW-EKGRP,GW_SHOW-EKNAM)
* FROM EKKO AS A
* INNER JOIN T024 AS B
* ON A~EKGRP = B~EKGRP
* WHERE A~EBELN = GW_SHOW-EBELN.
* ENDIF.
*
* IF GW_SHOW-MBLNR IS NOT INITIAL.
* SELECT SINGLE SGTXT INTO GW_SHOW-SGTXT
* FROM MSEG
* WHERE MBLNR = GW_SHOW-MBLNR
* AND MJAHR = GW_SHOW-MJAHR
* AND ZEILE = GW_SHOW-ZEILE.
* ENDIF. IF GW_SHOW-WERK = ''.
SEARCH GW_SHOW-KTEXTLOS FOR '&'.
IF SY-SUBRC = .
SPLIT GW_SHOW-KTEXTLOS AT '&' INTO GW_SHOW-ZNUM GW_SHOW-ZFEI.
ENDIF.
ENDIF. MODIFY GT_SHOW FROM GW_SHOW.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PRM_SET_FIELD
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_SET_FIELD .
LS_LAYOUT-CWIDTH_OPT = 'X'. "优化列宽选项是否设置
LS_LAYOUT-ZEBRA = 'X'.
LS_LAYOUT-BOX_FNAME = 'SEL'.
APPEND_FIELDCAT:'VDATUM' 'UD代码日期' '',
'WERK' '工厂' '',
'ART' '检验类型' '',
'LIFNR' '供应商代号' 'X',
* 'EKNAM' '采购组' 10 'X',
'MATNR' '物料' 'X',
'KTEXTMAT' '物料描述' '',
'LOSMENGE' '检验批数量' '',
'LMENGESCH' '不合格数量' '',
'GESSTICHPR' '采样大小' '',
'VCODE' '使用决策代码' '',
'VTEXT' '使用决策文本' '',
'PRUEFER' '检验员' '',
'BLTXT' '备注不良描述' '',
* 'BLTYP' '不良分类' 20 '',
'PRUEFLOS' '检验批号' 'X',
'EBELN' '采购凭证' 'X',
'MBLNR' '物料凭证' 'X',
* 'SGTXT' '机型' 50 '',
* 'QMNUM' '通知单编号' 12 'X',
* 'PZTXT' '品质异常处理结果' 100 '',
* 'PRIOKX' '处理进度' 20 '',
* 'ZNUM' '不合格报告编号' 20 'X',
'ZFEI' '复检工时费用' ''.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PRM_SHOW_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM PRM_SHOW_DATA .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IS_LAYOUT_LVC = LS_LAYOUT
IT_FIELDCAT_LVC = GT_FIELDCAT[]
I_CALLBACK_PF_STATUS_SET = 'FRM_SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* i_grid_title = lv_title
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = GT_SHOW[]
EXCEPTIONS
PROGRAM_ERROR =
OTHERS = .
IF SY-SUBRC <> .
ENDIF.
ENDFORM.
FORM FRM_SET_PF_STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ZQMR004'.
ENDFORM.
FORM USER_COMMAND USING P_UCOMM LIKE SY-UCOMM
P_SELFIELD TYPE SLIS_SELFIELD.
DATA:GT_ZQMR004H TYPE TABLE OF ZQMR004H,
GW_ZQMR004H TYPE ZQMR004H,
GT_ZQMR004I TYPE TABLE OF ZQMR004I,
GW_ZQMR004I TYPE ZQMR004I,
GS_ZQMR004I TYPE ZQMR004I. "结果行,单独处理
DATA:LV_INDEX TYPE I.
DATA:LV_INDEX_LINE TYPE I.
DATA:LV_INDEX_LINE2 TYPE I.
DATA:LV_JG() TYPE C.
DATA:LV_FNAME TYPE RS38L_FNAM.
DATA:LV_SFNAME TYPE TDSFNAME VALUE 'ZQMR004'.
DATA:LS_CONTROL TYPE SSFCTRLOP.
DATA:LV_P() TYPE P DECIMALS . CHECK P_UCOMM EQ 'PRNT'. "打印控制参数
LS_CONTROL-NO_OPEN = 'X'.
LS_CONTROL-NO_CLOSE = 'X'.
"获取打印函数
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = LV_SFNAME
IMPORTING
FM_NAME = LV_FNAME
EXCEPTIONS
NO_FORM =
NO_FUNCTION_MODULE =
OTHERS = .
IF SY-SUBRC <> .
ENDIF. CALL FUNCTION 'SSF_OPEN'.
IF SY-SUBRC <> .
ENDIF. SORT GT_QAMV[] BY PRUEFLOS.
SORT GT_QASE[] BY PRUEFLOS VORGLFNR MERKNR.
SORT GT_QAMR[] BY PRUEFLOS VORGLFNR MERKNR. LOOP AT GT_SHOW INTO GW_SHOW WHERE SEL = 'X'.
REFRESH:GT_ZQMR004I.
CLEAR:GW_ZQMR004H,GW_ZQMR004I."head item GW_ZQMR004H-PRUEFLOS = GW_SHOW-PRUEFLOS.
GW_ZQMR004H-WERKS = GW_SHOW-WERK.
GW_ZQMR004H-KTEXTMAT = GW_SHOW-KTEXTMAT.
GW_ZQMR004H-LIFNR = GW_SHOW-LIFNR.
GW_ZQMR004H-MBLNR = GW_SHOW-MBLNR.
GW_ZQMR004H-VDATUM = GW_SHOW-VDATUM.
GW_ZQMR004H-LOSMENGE = GW_SHOW-LOSMENGE.
GW_ZQMR004H-GESSTICHPR = GW_SHOW-GESSTICHPR.
GW_ZQMR004H-ZJCJG = GW_SHOW-VTEXT.
GW_ZQMR004H-PRUEFER = GW_SHOW-PRUEFER.
GW_ZQMR004H-ZBZ = GW_SHOW-BLTXT.
CONCATENATE GW_SHOW-KTEXTMAT GW_SHOW-WRKST INTO GW_ZQMR004H-ZBCMS. SEARCH GW_ZQMR004H-ZBCMS FOR ','.
IF SY-SUBRC = .
SPLIT GW_ZQMR004H-ZBCMS AT ',' INTO GW_ZQMR004H-KTEXTMAT GW_ZQMR004H-ZBCMS.
ELSE.
SEARCH GW_ZQMR004H-ZBCMS FOR ','.
IF SY-SUBRC = .
SPLIT GW_ZQMR004H-ZBCMS AT ',' INTO GW_ZQMR004H-KTEXTMAT GW_ZQMR004H-ZBCMS.
ENDIF.
ENDIF. READ TABLE GT_QAMV INTO GS_QAMV WITH KEY PRUEFLOS = GW_SHOW-PRUEFLOS BINARY SEARCH.
IF SY-SUBRC = .
LV_INDEX_LINE = SY-TABIX.
ELSE.
CONTINUE.
ENDIF. CLEAR:LV_INDEX_LINE.
LOOP AT GT_QAMV INTO GS_QAMV FROM LV_INDEX_LINE WHERE PRUEFLOS = GW_SHOW-PRUEFLOS.
READ TABLE GT_QDSVT INTO GS_QDSVT WITH KEY STICHPRVER = GS_QAMV-STICHPRVER.
IF SY-SUBRC = .
GW_ZQMR004H-ZCYSZ = GS_QDSVT-KURZTEXT.
ENDIF. "line item
GW_ZQMR004I-PRUEFLOS = GW_SHOW-PRUEFLOS.
GW_ZQMR004I-MERKNR = GS_QAMV-MERKNR.
GW_ZQMR004I-KURZTEXT = GS_QAMV-KURZTEXT.
GW_ZQMR004I-KURZTEXT2 = GS_QAMV-DUMMY40. CLEAR:LV_INDEX,LV_INDEX_LINE2.
READ TABLE GT_QASE INTO GW_QASE WITH KEY PRUEFLOS = GS_QAMV-PRUEFLOS
VORGLFNR = GS_QAMV-VORGLFNR
MERKNR = GS_QAMV-MERKNR BINARY SEARCH.
IF SY-SUBRC = .
LV_INDEX_LINE2 = SY-TABIX.
* ELSE.
* CONTINUE.
ENDIF.
LOOP AT GT_QASE INTO GW_QASE FROM LV_INDEX_LINE2 WHERE PRUEFLOS = GS_QAMV-PRUEFLOS AND
VORGLFNR = GS_QAMV-VORGLFNR AND
MERKNR = GS_QAMV-MERKNR.
LV_INDEX = LV_INDEX + .
CLEAR:LV_JG.
CASE GW_QASE-MBEWERTG.
WHEN 'A'.
LV_JG = 'OK'.
WHEN OTHERS.
LV_JG = 'NG'.
ENDCASE.
CASE GW_QASE-DETAILERG.
WHEN ''.
GW_ZQMR004I-ZJCJG01 = LV_JG.
IF GS_ZQMR004I-ZJCJG01 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG01 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG02 = LV_JG.
IF GS_ZQMR004I-ZJCJG02 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG02 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG03 = LV_JG.
IF GS_ZQMR004I-ZJCJG03 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG03 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG04 = LV_JG.
IF GS_ZQMR004I-ZJCJG04 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG04 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG05 = LV_JG.
IF GS_ZQMR004I-ZJCJG05 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG05 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG06 = LV_JG.
IF GS_ZQMR004I-ZJCJG06 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG06 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG07 = LV_JG.
IF GS_ZQMR004I-ZJCJG07 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG07 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG08 = LV_JG.
IF GS_ZQMR004I-ZJCJG08 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG08 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG09 = LV_JG.
IF GS_ZQMR004I-ZJCJG09 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG09 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN ''.
GW_ZQMR004I-ZJCJG10 = LV_JG.
IF GS_ZQMR004I-ZJCJG10 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG10 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
IF SY-SUBRC <> ."非抽样
READ TABLE GT_QAMR INTO GW_QAMR WITH KEY PRUEFLOS = GS_QAMV-PRUEFLOS
VORGLFNR = GS_QAMV-VORGLFNR
MERKNR = GS_QAMV-MERKNR BINARY SEARCH.
IF SY-SUBRC = .
CASE GW_QAMR-MBEWERTG.
WHEN 'A'.
LV_JG = 'OK'.
WHEN OTHERS.
LV_JG = 'NG'.
ENDCASE.
GW_ZQMR004I-ZJCJG01 = LV_JG.
IF GS_ZQMR004I-ZJCJG01 = 'NG'.
ELSE.
GS_ZQMR004I-ZJCJG01 = LV_JG.
IF LV_JG = 'NG'.
GW_ZQMR004H-ZBLSL = GW_ZQMR004H-ZBLSL + .
ENDIF.
ENDIF.
ENDIF.
ENDIF. APPEND GW_ZQMR004I TO GT_ZQMR004I. CLEAR:GW_ZQMR004I.
ENDLOOP. IF GS_ZQMR004I IS NOT INITIAL.
GS_ZQMR004I-PRUEFLOS = GW_SHOW-PRUEFLOS.
GS_ZQMR004I-MERKNR = GS_QAMV-MERKNR.
GS_ZQMR004I-KURZTEXT = '检验结果'.
APPEND GS_ZQMR004I TO GT_ZQMR004I.
CLEAR:GS_ZQMR004I. IF GW_ZQMR004H-LOSMENGE <> .
LV_P = GW_ZQMR004H-ZBLSL / GW_ZQMR004H-LOSMENGE * .
MOVE LV_P TO GW_ZQMR004H-ZBLV.
CONCATENATE GW_ZQMR004H-ZBLV '%' INTO GW_ZQMR004H-ZBLV.
ENDIF.
ENDIF. CALL FUNCTION LV_FNAME
EXPORTING
* ARCHIVE_INDEX =
* ARCHIVE_INDEX_TAB =
* ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS = LS_CONTROL
* MAIL_APPL_OBJ =
* MAIL_RECIPIENT =
* MAIL_SENDER =
* OUTPUT_OPTIONS =
* USER_SETTINGS = 'X'
I_HEAD = GW_ZQMR004H
* IMPORTING
* DOCUMENT_OUTPUT_INFO =
* JOB_OUTPUT_INFO =
* JOB_OUTPUT_OPTIONS =
TABLES
T_ITEM = GT_ZQMR004I[]
EXCEPTIONS
FORMATTING_ERROR =
INTERNAL_ERROR =
SEND_ERROR =
USER_CANCELED = . * APPEND GW_ZQMR004H TO GT_ZQMR004H.
ENDLOOP. CALL FUNCTION 'SSF_CLOSE'.
IF SY-SUBRC <> .
ENDIF. ENDFORM.
IQC来料检验报表的更多相关文章
- 生产制造追溯系统-IQC来料检验
前言 相信大家都知道,任何一家工厂都有自己的仓库,用来存储采购回来的物料,那么在供应商将我们采购的物料送到工厂之后,我们都需要一个检验动作,也就是今天要说的===>IQC来料检验,这个检验动作是 ...
- C# 填充Excel
1.添加引用 Microsoft.Office.Interop.Excel; 2.使用命名空间 using Microsoft.Office.Interop.Excel; 3.填充EXCEL单元格方法 ...
- IQC IPQC FQC OQC QA QE SQE CQS QM 简介区别
IQC Incoming quality control 来料质量控制.是企业产品过程质量的第一关,在这个部门工作的同事最主要的是要注意文件和资料,即:图纸 样品承认书 样板 ***配件检验规范 ,还 ...
- 这些.NET开源项目你知道吗?.NET平台开源文档与报表处理组件集合(三)
在前2篇文章这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧 和这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑)中,大伙热情高涨.再次拿出自己的私货,在.NET平台 ...
- 【从零开始学BPM,Day5】报表配置及自定义功能页面开发
[课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第五天课程] 1.课程概要 Step 1 软件下载:H3 BP ...
- 如何获取url中的参数并传递给iframe中的报表
在使用报表软件时,用户系统左边一般有目录树,点击报表节点就会在右侧网页的iframe中显示出报表,同时点击的时候也会传递一些参数给网页,比如时间和用户信息等.如何使网页中的报表能够获取到传递过来的参数 ...
- 解析大型.NET ERP系统核心组件 查询设计器 报表设计器 窗体设计器 工作流设计器 任务计划设计器
企业管理软件包含一些公共的组件,这些基础的组件在每个新项目立项阶段就必须考虑.核心的稳定不变功能,方便系统开发与维护,也为系统二次开发提供了诸多便利.比如通用权限管理系统,通用附件管理,通用查询等组件 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(31)-MVC使用RDL报表
系列目录 这次我们来演示MVC3怎么显示RDL报表,坑爹的微软把MVC升级到5都木有良好的支持报表,让MVC在某些领域趋于短板 我们只能通过一些方式来使用rdl报表. Razor视图不支持asp.ne ...
- 你真的会玩SQL吗?玩爆你的数据报表之存储过程编写(上)
你真的会玩SQL吗?系列目录 你真的会玩SQL吗?之逻辑查询处理阶段 你真的会玩SQL吗?和平大使 内连接.外连接 你真的会玩SQL吗?三范式.数据完整性 你真的会玩SQL吗?查询指定节点及其所有父节 ...
随机推荐
- 3、使用keepalived高可用LVS实例演示
回顾: keepalived: vrrp协议的实现: 虚拟路由器: MASTER,BACKUP VI:Virtual Instance keepalived.conf GLOBAL VRRP LVS ...
- C#接口的作用详解
.C#接口的作用 : C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认 ...
- pyqt 不规则形状窗口显示
#coding=utf- import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QWidget, QApplicatio ...
- Utunbu常见问题
关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案 https://blog.csdn.net/u011596455/article/details/ ...
- java转义字符处理——“\\”替换为“/”
replaceAll("\\\\", "/"); 例如 //获取项目路径,并将\转换为/ File directory = new File("&qu ...
- 求1000以内的质数c语言
之前在做求1000以内的质数的时候,我们一般能想到的就是从3~(根号)no,逐一和no除,如果存在某个i使得 i|no成立的话,说明no不是质数(“i|no”是i整除除no的意思): 在<明解 ...
- mysql 安装成功以及第一次安装成功初始化密码操作
一 把文件解压到一个目录下 这是解压后的目录 将my.ini文件考进去 双击打开my.ini 找到这两行更改成自己的解压路径保存 右键此电脑属性 找到高级系统设置配置环境变量 环境变量 新建 变量 ...
- P10.3 usestock0.cpp
stock.h #ifndef STOCK_H #define STOCK_H #include <string> class Stock //类声明 { private: std::st ...
- 定时任务redis锁+自定义lambda优化提取冗余代码
功能介绍: 我系统中需要跑三个定时任务,由于是多节点部署,为了防止多个节点的定时任务重复执行.所以在定时任务执行时加个锁,抢到锁的节点才能执行定时任务,没有抢到锁的节点就不执行.从而避免了定时任务重复 ...
- @Scope注解设置创建bean的方式和生命周期
1.1.1 Scope注解创建bean的方式和生命周期 作用 Scope设置对象在spring容器(IOC容器)中的生命周期,也可以理解为对象在spring容器中的创建方式. 取 ...