2023年2月

一般来说,标准的字段都可以用SE11来创建搜索帮助,但是有时候这里的满足不了需求或者,相同的数据元素需要用不同的搜索帮助类型,就需要用别的方式实现

1、用函数:F4IF_INT_TABLE_VALUE_REQUEST 来传递内表显示

    AT SELECTION-SCREEN ON VALUE-REQUEST FORs_kunnr2.PERFORMshow_f4.FORMshow_f4.TYPES: BEGIN OFt_kunnrhelp,
kunnr
TYPE kna1-kunnr,
name1
TYPE kna1-name1,
stras
TYPE kna1-stras,END OFt_kunnrhelp.DATA:wa_kunnrhelp TYPEt_kunnrhelp,
it_kunnrhelp
LIKE TABLE OFwa_kunnrhelp.SELECT kna1~kunnr kna1~name1 kna1~stras INTO CORRESPONDING FIELDS OF TABLEit_kunnrhelpFROM kna1 INNER JOIN knvv ON kna1~kunnr =knvv~kunnrWHERE knvv~vkorg = '1006' AND kna1~name1 LIKE '%湖南省%'.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTINGretfield= 'KUNNR'dynpprog= sy-cprog
dynpnr
= '1000'dynprofield= 'S_KUNNR2'value_org= 'S' TABLESvalue_tab=it_kunnrhelpEXCEPTIONSparameter_error= 1no_values_found= 2OTHERS= 3.IF sy-subrc <> 0.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.CLEARit_kunnrhelp.FREE: it_kunnrhelp.ENDFORM.

原文链接:https://www.591sap.com/thread-953-1-1.html

 

SAP交货单交货数量在lips中直接读取,但是拣配数量lfimg,只存在vbfa中,且如果基本计量单位和销售单位不一样,那么需要数量的转换

一、部分代码:

      SELECT SUM( rfmng ) INTOlv_rfmng
      
FROMvbfa
      
WHERE vbelv = lt_lips-vbeln
        
AND posnv = lt_lips-posnr
        
AND vbtyp_n = 'Q'.
      
IF sy-subrc = 0.
        
CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'  "基本计量单位-->销售单位           EXPORTING            input               =lv_rfmng*           KZMEINH              = ' '             matnr                = lt_lips-matnr
            meinh               
= lt_lips-vrkme  "销售单位             meins                = lt_lips-meins  "基本计量单位           IMPORTING            output               = t_item-pikmg
         
EXCEPTIONS            conversion_not_found= 1            input_invalid        = 2            material_not_found   = 3            meinh_not_found      = 4            meins_missing        = 5            no_meinh            = 6            output_invalid      = 7            overflow            = 8            OTHERS               = 9.
      
ENDIF.
      t_item
-vrkme = lt_lips-vrkme.

 

网上找了查询结果怎么少显示一列,因为数据很多列,结果不是视图就是嵌套,太麻烦,这里用临时表做

exec sp_addlinkedserver   'ITSV ', ' ', 'SQLOLEDB', '192.168.5.61'  --链接远程服务器
exec sp_addlinkedsrvlogin  'ITSV ', 'false ',null, 'sa', 'mima'   --用户名和密码

--insert into dbo.stu select * from ITSV.xph.dbo.stu where a0188 = '792'   --结果提示第一列不能这么改

select * into #stu_01 from ITSV.xph.dbo.a48 where a0188 = '792'   --读取到临时表

ALTER TABLE #stu_01 DROP COLUMN TRANSID    --删掉行:TRANSID