• T100——按xls格式批量导入数据


     弹出File Browser窗口

     1 PRIVATE FUNCTION cxrt020_open_file()
     2 DEFINE l_dir        LIKE type_t.chr500
     3 DEFINE r_success   LIKE type_t.num5
     4     #
     5     LET r_success = FALSE
     6     CALL cl_client_browse_file() RETURNING l_dir
     7     IF NOT cl_null(l_dir) THEN
     8         CALL cxrt020_ins_excel(l_dir) RETURNING r_success
     9     END IF
    10     RETURN r_success
    11     
    12 END FUNCTION

    ######按路径,把xls的数据按格式顺序ins到数据表,注意xls的文件名不能有中文或特殊符号,最好全英文文件名;

     1 PRIVATE FUNCTION cxrt020_ins_excel(p_excelname)
     2 DEFINE p_excelname LIKE type_t.chr1000  #excel档名
     3 DEFINE r_success   LIKE type_t.num5
     4 DEFINE l_excelname STRING               #excel档名
     5 DEFINE l_count     LIKE type_t.num10
     6 DEFINE li_i        LIKE type_t.num10
     7 DEFINE li_j        LIKE type_t.num10
     8 DEFINE xlapp,iRes,iRow    LIKE type_t.num5
     9 DEFINE l_xrsguc    RECORD LIKE xrsguc_t.*
    10 DEFINE l_today     LIKE type_t.dat       
    11 DEFINE l_n         LIKE type_t.num5
    12 
    13    WHENEVER ERROR CONTINUE
    14    LET r_success = TRUE
    15 
    16    LET l_today= cl_get_current()
    17    LET l_count = LENGTH(p_excelname CLIPPED)
    18    #转换路径分隔符
    19    FOR li_i = 1 TO l_count
    20        IF p_excelname[li_i,li_i] ="/" THEN
    21           LET l_excelname = l_excelname CLIPPED,'\'
    22        ELSE
    23           LET l_excelname = l_excelname CLIPPED,p_excelname[li_i,li_i]
    24        END IF
    25    END FOR
    26 
    27    CALL ui.interface.frontCall('WinCOM','CreateInstance',
    28                                ['Excel.Application'],[xlApp])
    29    IF xlApp <> -1 THEN
    30       CALL ui.interface.frontCall('WinCOM','CallMethod',
    31                                   [xlApp,'WorkBooks.Open',l_excelname],[iRes])
    32       IF iRes <> -1 THEN
    33          CALL ui.interface.frontCall('WinCOM','GetProperty',
    34               [xlApp,'ActiveSheet.UsedRange.Rows.Count'],[iRow])
    35          IF iRow > 1 THEN
    36             FOR li_i = 2 TO iRow
    37                 INITIALIZE l_xrsguc.* TO NULL
    38                 LET l_xrsguc.xrsgucent = g_enterprise 
    39                 LET l_xrsguc.xrsgucsite = g_site 
    40                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',1).Value'],[l_xrsguc.xrsgucdocno])              
    41                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',2).Value'],[l_xrsguc.xrsguc001])
    42                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',3).Value'],[l_xrsguc.xrsguc002])
    43                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',4).Value'],[l_xrsguc.xrsguc003])
    44                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',5).Value'],[l_xrsguc.xrsguc004])
    45                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',6).Value'],[l_xrsguc.xrsguc005])
    46                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',7).Value'],[l_xrsguc.xrsguc006])
    47                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',8).Value'],[l_xrsguc.xrsguc007])
    48                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',9).Value'],[l_xrsguc.xrsguc008])
    49                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',10).Value'],[l_xrsguc.xrsguc009])
    50                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',11).Value'],[l_xrsguc.xrsguc010])
    51                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',12).Value'],[l_xrsguc.xrsguc011])
    52                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',13).Value'],[l_xrsguc.xrsguc012])
    53                 CALL ui.interface.frontCall('WinCOM','GetProperty',[xlApp,'ActiveSheet.Cells('||li_i||',14).Value'],[l_xrsguc.xrsguc013])
    54                 #
    55                 INSERT INTO xrsguc_t VALUES l_xrsguc.*
    56                 IF SQLCA.sqlcode THEN
    57                    INITIALIZE g_errparam TO NULL
    58                    LET g_errparam.code = SQLCA.sqlcode
    59                    LET g_errparam.extend = 'INSERT INTO xrsguc_t'
    60                    LET g_errparam.popup = FALSE
    61                    CALL cl_err()
    62                    LET r_success = FALSE
    63                    EXIT FOR
    64                 END IF
    65             END FOR
    66          END IF
    67       ELSE
    68          INITIALIZE g_errparam TO NULL
    69          LET g_errparam.code = 'axc-00387'
    70          LET g_errparam.extend = ''   #NO FILE
    71          LET g_errparam.popup = TRUE
    72          CALL cl_err()
    73          LET r_success = FALSE
    74       END IF
    75    ELSE
    76       INITIALIZE g_errparam TO NULL
    77       LET g_errparam.code = 'axc-00387'
    78       LET g_errparam.extend = ''  #NO EXCEL
    79       LET g_errparam.popup = TRUE
    80       CALL cl_err()
    81       LET r_success = FALSE
    82    END IF
    83 
    84    CALL ui.interface.frontCall('WinCOM','CallMethod',[xlApp,'Quit'],[iRes])
    85    CALL ui.interface.frontCall('WinCOM','ReleaseInstance',[xlApp],[iRes])
    86 
    87    RETURN r_success
    88 
    89 END FUNCTION
  • 相关阅读:
    Android H5混合开发(5):封装Cordova View, 让Fragment、弹框、Activity自由使用Cordova
    机器学习 AI 谷歌ML Kit 与苹果Core ML
    Android 设备唯一标识(多种实现方案)
    Android自定义控件:图形报表的实现(折线图、曲线图、动态曲线图)(View与SurfaceView分别实现图表控件)
    Android 禁止截屏、录屏 — 解决PopupWindow无法禁止录屏问题
    Android原生PDF功能实现:PDF阅读、PDF页面跳转、PDF手势伸缩、PDF目录树、PDF预览缩略图
    某助手验证码通信交互包分析
    IOS弓箭传说的插件开发
    微店APP协议简要分析
    Owhat sign参数分析
  • 原文地址:https://www.cnblogs.com/xiaoli9627/p/10530737.html
Copyright © 2020-2023  润新知