上传下载的完整例子

上一篇 / 下一篇  2008-08-29 19:55:34 / 个人分类:ABAP

 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; }*&---------------------------------------------------------------------*ITPUB个人空间?,W1j;v%_um
*& Report  ZNCTEST006
dRX'G N9x0*&
Y/cW`3G|1nB0*&---------------------------------------------------------------------*ITPUB个人空间-U)w1] e#}k
*&ITPUB个人空间$s5}"CF$V Y6Go
*&
\C$[U!P*s|e0*&---------------------------------------------------------------------*ITPUB个人空间7D?'GD]0I/a#w

M2zadf/a v \,v$r]0REPORT  ZNCTEST006.ITPUB个人空间^ q{;Ua lKzh
ITPUB个人空间5} s.ze1L$l? r4Z
TABLES: MARA, MAKT.ITPUB个人空间,N\zBE*X:b f%u
ITPUB个人空间t8h(qo6DO9}M
DATABEGIN OF ITAB OCCURS 0,ITPUB个人空间6p0xn J.n\wb`
        MATNR TYPE MARA-MATNR,
%U6Ndj6PWG0        MEINS TYPE MARA-MEINS,ITPUB个人空间tLLhY+g
        MAKTX TYPE MAKT-MAKTX,
+O9[} is$iK#y w0      END OF ITAB.ITPUB个人空间t u8P{^ LO

|lAf,Y\Z J0data:BEGIN OF gt_download_fname OCCURS 1,
Q9GgDY,}e4Ty0       field(40),
3rKq/h9I weZ0     END OF gt_download_fname.
3UH:[ tc0b0
Q B U%LFR^0DATA V_LINE_COUNT TYPE I.ITPUB个人空间QQm)UO
DATA V_OPENFILE_ERROR TYPE FLAG.
L l9ct-Z%L%o,Cri0ITPUB个人空间}[N#X6CaY T2Y
data filename(50)  type c.
%xI6H"o7W0data messages(100type c.
*f^%k LEGER)`Dg0
A|7Ob| m n0PARAMETERS:
]z5Xk/KS'R0  P_UPLOAD RADIOBUTTON GROUP X,ITPUB个人空间+P fQN"G|#zA
  P_DOWNLD RADIOBUTTON GROUP X.
"L/L5lk4Z:kk ~S0ITPUB个人空间'|5v{A,e_w

:Z)Yi;U8A5P;F0START-OF-SELECTION.ITPUB个人空间+|,sF#Qqd
ITPUB个人空间PoO0z$?4u
  PERFORM GET_DATA.ITPUB个人空间c6H6s/s s

2Kj#o*Tx%PY*q`~f0  DESCRIBE TABLE ITAB LINES V_LINE_COUNT.
w$i1G(WN_(J(T0
Hx5Vo]2V$S"d0  IF P_UPLOAD = 'X'.ITPUB个人空间6f'@,o3Z.GHq
    IF V_LINE_COUNT > 0.ITPUB个人空间8V#CHGnA O5U4P
      PERFORM UPLOAD_TO_SERVER.
&Dw G4H~m6bZ5i6X0    ELSE.
]4[8z)S,^b0      MESSAGE 'No data upload to server' TYPE 'E'.ITPUB个人空间b9~eOlFR
    ENDIF.
h ]/`Y q `]T0  ENDIF.
r"M_ m UKp R;W0ITPUB个人空间0c5tq1a$~ `!O
  IF P_DOWNLD = 'X'.
9AC pQr^(hA;vd0    PERFORM DOWNLOAD_FROM_SERVER.ITPUB个人空间ngA~"B9OZ DZ1Z
  ENDIF.ITPUB个人空间$V S3pk7G;n
ITPUB个人空间b5VeK5y*y%o3k/^ m
*&---------------------------------------------------------------------*ITPUB个人空间+})oL&]D
*&      Form  GET_DATAITPUB个人空间U4ABG]9Y qi#fgu
*&---------------------------------------------------------------------*
8hs7T+LmUx&Yu8U0*       textITPUB个人空间V O3R7CV7d(C8tA;c
*----------------------------------------------------------------------*ITPUB个人空间 SR5FOwCZ Ke
FORM GET_DATA.ITPUB个人空间Q2o_kA*?
  CLEAR ITAB.ITPUB个人空间:mU#t6x8x%~eP
  CLEAR ITAB[].
y&F)Mr.lr5N2a7B8r[0  SELECT MATNR MEINSITPUB个人空间6_i.J4XQJ3_
    INTO CORRESPONDING FIELDS OF ITAB
)c JK"q!rp`!G0Z7a0    FROM MARA.
!KN[ \V{8bY6_4Dd w0    SELECT SINGLE MAKTX INTO ITAB-MAKTX
w%n} C4Y\:O0      FROM MAKT WHERE MATNR = ITAB-MATNR.
[7y+pkL0e{7Q#K0
*][8t5ip.z0    APPEND ITAB.
5Q_5@3j6q8G0  ENDSELECT.ITPUB个人空间Q2i"{.`'hC
ENDFORM.                    "GET_DATA
XTr5Am+a1^0ITPUB个人空间Lf;O].cKX}K
*&---------------------------------------------------------------------*ITPUB个人空间 ]7R6ME-N:LB/i{
*&      Form  UPLOAD_TO_SERVER
mK%dr]@Q;A0*&---------------------------------------------------------------------*ITPUB个人空间6ZL:Q,uC"D t!S x
*       text
3iZ2bq c;t`,S0*----------------------------------------------------------------------*ITPUB个人空间(yt QL]7Fxs^3R#h`
FORM UPLOAD_TO_SERVER.
'E}+fxhQ~7^ a V0  data upload_line like line of itab.ITPUB个人空间s{.j(L6|gqa@
ITPUB个人空间'j#vO'w#[7c
  concatenate 'MAT' sy-datum '.TXT' into filename.
4~,?WCR}7r;[0
&yn.S*B?[0  open dataset filename for output
yEn5G\2tZ0              "in TEXT MODE
%g1c#h@*q7R!?0              "ENCODING DEFAULT
0j$zwM hy0aK@0              in binary modeITPUB个人空间ua8Q%Tsx&VFm
              message messages.
8j/?1c} G.r/M0ITPUB个人空间x:n,x Ry5Y v!j|"_F j
  if sy-subrc <> 0.ITPUB个人空间-Aw^ R6B9fX
    write:/ messages.ITPUB个人空间N+_[ \9J&qjH
  else.ITPUB个人空间/`{L3rH P O
    loop at itab into upload_line.ITPUB个人空间bc5Ap8cE1A2s0q|0_
      TRANSFER upload_line TO filename.ITPUB个人空间5X&bn(N ^5D2]
    endloop.ITPUB个人空间P/oJ/F6i]B
  endif.ITPUB个人空间 O`l2|)w6Q M c

4aA NwZT{1wa0  close dataset filename.ITPUB个人空间 S7UL `Z

-C P1_1ll?0ENDFORM.                    "UPLOAD_TO_SERVERITPUB个人空间(y-A.jY G/E1M5Lm

,r*]A Q%I [%y0*&---------------------------------------------------------------------*ITPUB个人空间E9{5D OYFgN)~ p
*&      Form  DOWNLOAD_FROM_SERVERITPUB个人空间3TN KB a u4`-~J
*&---------------------------------------------------------------------*ITPUB个人空间%yn5b$P'yB.L
*       textITPUB个人空间.zs2u$Ea'I
*----------------------------------------------------------------------*
F+u:h%?7f0FORM DOWNLOAD_FROM_SERVER.ITPUB个人空间XaY4D4_.i"gEDj
  PERFORM read_data_from_server.
+G"~NQ i#NI b]0  PERFORM fill_fileldname.ITPUB个人空间6T5^3eUR~Q:h
  PERFORM download_to_pc.
0c_u@lrs}0ENDFORM.                    "DOWNLOAD_FROM_SERVER
#Vw7k T,Bf!B6[G0ITPUB个人空间.lI I2Dp*~R8A#W
*&---------------------------------------------------------------------*
&F3N4Y8b.]o2S0*&      Form  read_data_from_server
j%m*pw |0*&---------------------------------------------------------------------*ITPUB个人空间9gD7_Hi8g?
*       textITPUB个人空间j"h0Eqiw
*----------------------------------------------------------------------*ITPUB个人空间/^t6V+sKCT)p
FORM read_data_from_server.ITPUB个人空间*D%dndk
  data download_line like line of itab.ITPUB个人空间(j#m5P\t/y

8q/j"W.R/~+^0  concatenate 'MAT' sy-datum '.TXT' into filename.
jc B,Lk6i2a6tGe0ITPUB个人空间 |8})SF,k1`
  open dataset filename for input
7{)H.cMY6Yz7|'eU%t0              "in TEXT MODEITPUB个人空间P4P+z1Z7A7n|(}v
              "ENCODING DEFAULTITPUB个人空间0}U^b0T%B.}
              in binary mode
7zN;^;G:nI L0              message messages.
'z*G5z_a~7A y*TX0
T-U5}6qT/tt;D`0  clear v_openfile_error.ITPUB个人空间,Dc&`b'd`
ITPUB个人空间(oKa+Jv4I_
  if sy-subrc <> 0.
#k3S9~9~6[,P\*l2s Al0    write:/ messages.
0fPVbz0F0    v_openfile_error = 'x'.ITPUB个人空间v?b0z~4D*cf)_
  else.ITPUB个人空间Ot#}q c,~#x,Y}U
    clear itab.
]um~:jtG0    clear itab[].ITPUB个人空间$YIt5[N a$l|5]
    DO.ITPUB个人空间C)Z+A\/|Y1XR
      read dataset filename into download_line.ITPUB个人空间rj.F.d;D;B&M
      if sy-subrc = 0.
8{/r*fLb{0        append download_line to itab.
bL"g` n6dl9Uqx0      else.ITPUB个人空间/NK}.fCB7BA
        EXIT.ITPUB个人空间LSl1N [n
      endif.ITPUB个人空间 f#Y1A0fgPa
    ENDDO.
HI&] i5K*J)b;C0  endif.ITPUB个人空间/iE ^zU)B

RM8kQ{2U;m3j@0  close dataset filename.ITPUB个人空间T Zs ])? Df j
ENDFORM.                    "read_data_from_server
yH@$tfOQ:k0
*{ ENz,X0*&---------------------------------------------------------------------*
ADa%x)X.a0*&      Form  fill_fileldnameITPUB个人空间HB G,x7E1U6j
*&---------------------------------------------------------------------*ITPUB个人空间v |*n*?e1Ibx
*       textITPUB个人空间Y?:`0Rg:L-KT
*----------------------------------------------------------------------*ITPUB个人空间!g+ZiX3{
FORM fill_fileldname.
q#{"LIz0  if v_openfile_error = ''.
7E*h6E;pr8Y3yB0    gt_download_fname-field = 'Material Number'.ITPUB个人空间0AR`+f|!t^ o
    append gt_download_fname.
s#i3y-Q'D2?0
z9Q3F5K0z3]3[ q0    gt_download_fname-field = 'Base Unit'.
gDJ b2n0    append gt_download_fname.
l%L'T!skO1]0
a'qt1`cy;d1kv9H0    gt_download_fname-field = 'Description'.
qo)Ta%g2Ku/o|0    append gt_download_fname.ITPUB个人空间]0x+H]zKaK
  endif.ITPUB个人空间"M*Z0r!zGm6\Z*L
ENDFORM.                    "fill_fileldname
2AT5XO R+W4a5Q0
c|-yv#z$g8Wwb8u![0*&---------------------------------------------------------------------*
'k1r9qc N\o#P0*&      Form  download_to_pcITPUB个人空间U5J }Qcb
*&---------------------------------------------------------------------*ITPUB个人空间9NY-}1Q(q"U&v)e
*       text
(xF9M d ]y1D:N1]0*----------------------------------------------------------------------*
{[6f uYGvR+e0FORM download_to_pc.ITPUB个人空间 Q|%pX'e F Z5y
  data v_local_filename type string.ITPUB个人空间p+_+R2k/cu q
ITPUB个人空间 e|%qs/lL6m"^]
  concatenate 'C:\' filename into v_local_filename.
0X5c+R v {|0ITPUB个人空间8z^ w8|i7u5G
  if v_openfile_error = ''.ITPUB个人空间,b#F pyY
    CALL FUNCTION 'GUI_DOWNLOAD'ITPUB个人空间$CDI q^ l
      EXPORTING
`Z7Q)\Dx0        FILENAME                        = v_local_filename
X[(]#I|N0        FILETYPE                        = 'DAT'ITPUB个人空间^:f%?${C9A e0BI|
*   APPEND                          = ' '
!e(G};y9r1bwE0*   WRITE_FIELD_SEPARATOR           = ' 'ITPUB个人空间x5hh[OY
*   HEADER                          = '00'
mIEk,b"shq%H0*   TRUNC_TRAILING_BLANKS           = ' '
LVb1|"Mg(Z0*   WRITE_LF                        = 'X'
f5rp qi g%J j0*   COL_SELECT                      = ' '
Ihm-r_0*   COL_SELECT_MASK                 = ' '
.m0C/{;f5Gh&sHAD'p0*   DAT_MODE                        = ' 'ITPUB个人空间\ U` uy e0H }
*   CONFIRM_OVERWRITE               = ' 'ITPUB个人空间 c[,Z|N ~)P
*   NO_AUTH_CHECK                   = ' 'ITPUB个人空间'T#bE`$M-[7}
*   CODEPAGE                        = ' '
i _iX(Ue~0*   IGNORE_CERR                     = ABAP_TRUEITPUB个人空间0LQ`t+@'Ub5Vn a
*   REPLACEMENT                     = '#'ITPUB个人空间S\t t4R
*   WRITE_BOM                       = ' 'ITPUB个人空间c&t x)C8o&C`8EE
*   TRUNC_TRAILING_BLANKS_EOL       = 'X'ITPUB个人空间dv~Xh lv
*   WK1_N_FORMAT                    = ' '
WAgr.o*W w7q0*   WK1_N_SIZE                      = ' 'ITPUB个人空间$h0z3e/Q)y r
*   WK1_T_FORMAT                    = ' 'ITPUB个人空间,H6g-P[ q
*   WK1_T_SIZE                      = ' 'ITPUB个人空间,f cZ,N.N!XjD+a{
*   WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
Z&I x8P[0*   SHOW_TRANSFER_STATUS            = ABAP_TRUE
YS4R0en#LS|0* IMPORTING
,W vwM@Z%S.yA0*   FILELENGTH                      =ITPUB个人空间Td m1g,BM-M
      TABLES
Tf9k5zy'eI0        DATA_TAB                        = ITABITPUB个人空间3@p4M` _
        FIELDNAMES                      = gt_download_fname
O8Nv.j!gZRj)Pv0     EXCEPTIONS
_ z7t.e4P2M0       FILE_WRITE_ERROR                = 1
2~e%o `.hi(^%|.m0       NO_BATCH                        = 2
)}FC&?;S1qv3ha0       GUI_REFUSE_FILETRANSFER         = 3
RR4m_/P U4T0       INVALID_TYPE                    = 4ITPUB个人空间x5d9z"I0|p!t
       NO_AUTHORITY                    = 5ITPUB个人空间h6CRu LH Y?
       UNKNOWN_ERROR                   = 6
/k#a8[qM%dt\W:T0       HEADER_NOT_ALLOWED              = 7
_,YU4i-g1pw0       SEPARATOR_NOT_ALLOWED           = 8ITPUB个人空间+u C5a'[u^"XEN
       FILESIZE_NOT_ALLOWED            = 9ITPUB个人空间t6f0e+Yj]o a*v4K
       HEADER_TOO_LONG                 = 10ITPUB个人空间b8C N!Y$Ce
       DP_ERROR_CREATE                 = 11ITPUB个人空间7H$b&UX x@.?h
       DP_ERROR_SEND                   = 12
(eV},v1EM)P5g0       DP_ERROR_WRITE                  = 13ITPUB个人空间| D2J,qB)xve
       UNKNOWN_DP_ERROR                = 14ITPUB个人空间@3dt#S9S
       ACCESS_DENIED                   = 15
{H9fu2R)NJK0       DP_OUT_OF_MEMORY                = 16ITPUB个人空间g6q'E#|(e
       DISK_FULL                       = 17
e/O#c2\2f0       DP_TIMEOUT                      = 18
JAe u4l Xu0       FILE_NOT_FOUND                  = 19
9gQ%v lOZG$V+P0       DATAPROVIDER_EXCEPTION          = 20
'ilc*^-uI!L0       CONTROL_FLUSH_ERROR             = 21
PIY)Q j dB0       OTHERS                          = 22ITPUB个人空间1F0h)\ LC'na Ci
              .ITPUB个人空间)\.U5O&HR
    IF SY-SUBRC <> 0.
g&a2H/AO,Pe0      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
@.Mt.YONx0              WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
[u1dfM@0    ENDIF.ITPUB个人空间O*OaEl Ya)X
ITPUB个人空间7N+f;~7q8x~q
  endif.ITPUB个人空间6CQ4v!Pc3n${

+x0I6bS\XI,R]0ENDFORM.                    "download_to_pc

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-09  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 11077
  • 日志数: 771
  • 文件数: 1
  • 书签数: 4
  • 建立时间: 2008-01-17
  • 更新时间: 2008-11-14

RSS订阅

Open Toolbar