Genero File Upload

来源:互联网 发布:java编程输入输出 编辑:程序博客网 时间:2024/04/29 18:04

  我们做ERP开发的目的是为了节省企业的人力,节约ERP用户的操作工时。再完美的ERP产品,免不了需要用户手动处理一些数据(ps:表妹很多,好看的没几个)。我们常见的用户需求必然包括数据上传,尤其是excel。Genero对Excel的支持从小编看来真的很差(ps:小编也才学习没几天,毕竟之前做了三年的SAP开发,感觉ABAP支持的还是很完美的),不过不要灰心,和很多ERP产品一样,Genero Client支持Windows一些标准功能的调用(只是操作excel代码会比较繁琐闭嘴)。这里介绍下Genero标准功能upload excel的一个案例。 调用windows标准接口处理excel的案例,下次再贡献给大家。


IMPORT os   
MAIN
  CALL showDir()
END MAIN


FUNCTION showDir()
  DEFINE path STRING


  #上来关窗 开窗
  CLOSE WINDOW SCREEN  
  #FORM 一个lable+一个textedit MENU按钮“Again"允许重新输入textedit  
  OPEN WINDOW W1 AT 1,1 WITH FORM "SelectFile"


#定义一个Label 用于响应窗口多次输入
LABEL _input:
#input事件    
  INPUT BY NAME path
  AFTER INPUT
    CALL path_check(path)
  END INPUT
  
  MENU ""
     ON ACTION AGAIN
        GOTO _input
     ON ACTION QUIT
       EXIT PROGRAM
     ON ACTION CLOSE 
       EXIT PROGRAM
  END MENU
  
CLOSE FORM SelectFile
CLOSE WINDOW w1
END FUNCTION




FUNCTION path_check(path) 
  DEFINE path STRING
  MESSAGE ""    #清除message
  #检查输入的path是否存在,不存在则提示消息
  IF NOT os.Path.exists(path) THEN
     MESSAGE "file path not exist." ATTRIBUTES(RED,STYLE="info")
  ELSE
  #读取path下的文件内容
     CALL read_data(path)
  END IF
END FUNCTION


FUNCTION read_data(path)
  DEFINE data TEXT
  DEFINE path STRING
  DEFINE l_connect STRING
  
 # 定义数据缓存的位置Memory
  LOCATE data IN MEMORY
 #读取数据到data 
  CALL data.readFile(path)


 #连接数据库MYSQL
  LET l_connect = "AnyDBName+driver='dbmmys55x',source = 'mytest@localhost:3306'"
  CONNECT TO l_connect USER "root" USING "123456"
    IF SQLCA.SQLCODE THEN
       EXIT PROGRAM SQLCA.SQLCODE
    END IF


   DISPLAY "upload..........."
 #正式上传path地址的文件数据到数据库
 #这里特别说明下:1.path是包含文件全名的绝对地址 2.如果文件的扩展名是.csv,请保证csv是以","分隔符保存的 3.如果不指定分隔符,默认的好像是‘|'
   LOAD FROM path DELIMITER "," INSERT INTO UPLOAD
   #因为没有返回值,我们抓去insert的结果来验证是否upload成功
    IF SQLCA.SQLCODE == 0 THEN
       DISPLAY  "upload sucess"
    END IF
   #显示下文件里的数据和数据库里的对比下吧 
   DISPLAY data
END FUNCTION



0 0