克米亚sap论坛,最好的sap论坛,sap系统,sap培训,kemiya,克米亚,sap账号,sap ides,sap mm,sap hana,sap fico,sap pp

 找回密码
 注册
查看: 1723|回复: 25

将一些Euphoria带给SAP HANA

[复制链接]
kmy 发表于 2013-4-29 13:26:22 | 显示全部楼层 |阅读模式
免责声明:这篇博客是基于我的个人经验,没有经过SAP的认可或支持。通过ODBC连到SAP HANA没有被SAP认可或支持,因此你必须自己承担使用它的风险,没有支持可供。
作为一个技术的传教士,我总是试图创造新的内容,与我的开发者同胞们分享,所以有一天我在学习了一些Node.JS之后,我突然想起了一种我大概十年前用的编程语言……Euphoria……它现在被称之为OpenEuphoria,因为它是开源代码。
为什么有人该关注Euphoria?嗯……根据网站上所述……“它比Basic更加简单,而且比C++更加强大”……我为了这篇博客再次用了它,我必须说,它仍然没有失去这种魔法……Euphoria是一种可爱的编程语言,有巨大的可选。
因此……为什么我们需要开始?
为此博客,我试图用我的Windows7,但是问题是ODBC连接器在64位系统上不工作,所以我用了我的Windows XP虚拟机然后开始玩。
我创建了一个ODBC连接到我的Amazon Web Services名叫SAP_HANA,然后从那开始,只有编程和快乐。
为了让事情简单,我用了跟我的博客SAP HANA和Python?是的,先生!同样的方法,这是个基本方法,通过ODBC连接SAP HANA,显示了CARRIERS和CITY FROM列表,并且执行了一个查询去收集以及显示数据。
Euphoria_HANA.ewx

include wxeud.e as wxeud
include odbc.e as odbc
include std/sequence.e as seq

global atom hconn, hstmt
global sequence dsn_var, user, auth, msg, carrier_key
global object data

carrier_key = {}

constant
main = create( wxFrame, {0, -1, "Euphoria and SAP HANA", -1, -1, 450, 300}),
win = create( wxPanel, main ),
ldsn = create( wxStaticText, {win, -1, "DSN:",120, 60}),
dsn = create( wxTextCtrl, {win, -1, "", 200, 55} ),
lusername = create( wxStaticText, {win, -1, "Username:",120, 90}),
username = create( wxTextCtrl, {win, -1, "", 200, 85} ),
lpassword = create( wxStaticText, {win, -1, "Password:",120, 120}),
password = create( wxTextCtrl, {win, -1, "", 200, 115, -1, -1, wxTE_PASSWORD} ),
connect = create( wxButton, {win, -1,"Connect", 200, 150})

constant
main2 = create( wxFrame, {0, -1, "Euphoria and SAP HANA", -1, -1, 450, 300}),
win2 = create( wxPanel, main2 ),
lcarrier = create( wxStaticText, {win2, -1, "Carrier:",120, 60}),
carrier = create( wxComboBox, {win2, -1, "", 200, 55, -1, -1, {}}),
lcityfrom = create( wxStaticText, {win2, -1, "City From:",120, 90}),
cityfrom = create( wxComboBox, {win2, -1, "", 200, 85, -1, -1, {}}),
show_query = create( wxButton, {win2, -1,"Show Query", 200, 120})

constant
main3 = create( wxFrame, {0, -1, "Euphoria and SAP HANA", -1, -1, 600, 600}),
win3 = create( wxPanel, main3 ),

goback = create( wxButton, {win3, -1,"Go Back", 260, 1}),
grid = create( wxGrid, {win3, -1, 1, 30, -1, -1, 1, 1, 6} )

function getConnected()
          if initODBC() < 0  then
                    abort(0)
          end if
          dsn_var = get_text_value(dsn)
          user = get_text_value(username)
          auth = get_text_value(password)
          hconn = openConnectionODBC( dsn_var, user, auth )
          if not hconn then
                    message_box("Connection error","Error",wxOK)
                    return 0
          elsif hconn < 0 then
                    msg = getErrorODBC( hconn )
                    message_box(msg[2],"Error",wxOK)
                    return 0
          else
                    return 1
          end if
end function

function getQuery(sequence sql)
          hstmt = prepareSQL( hconn, sql )
          data = executeSQL( hstmt )
          if hstmt < 0 then
                    message_box("Query failed","Error",wxOK)
          end if
          if data < 0  then
                    message_box("No data found","Error",wxOK)
                    return 0
          else
                    data = {getColumnHeaders( hstmt )} & odbc:getData( hstmt )
                    return data
          end if
end function

function fillParameters(object data, atom pos, atom combo, atom key)
          sequence value, seq
          seq = {}
          if sequence( data ) then
                    for i = 2 to length( data ) do
                              value = remove_all(0,data[pos])
                              seq = append(seq, value)
                              if key = 1 then
                                        value = remove_all(0,data[1])
                                        carrier_key = append(carrier_key, value)
                              end if
              end for
              wxeud:add_item(combo, seq)
          end if
          return 1
end function

function fillCombos()
          sequence sql
          sql = "SELECT CARRID,CARRNAME FROM SFLIGHT.SCARR WHERE MANDT = 300"
          data = getQuery(sql)
          fillParameters(data, 2, carrier, 1)
          sql = "SELECT DISTINCT CITYFROM FROM SFLIGHT.SPFLI WHERE MANDT = 300"
          data = getQuery(sql)
          fillParameters(data, 1, cityfrom, 0)
          return 1
end function

function initializeGrid()
          set_col_label(grid,0,"Carrier")
          set_col_label(grid,1,"Connection")
          set_col_label(grid,2,"Flight Date")
          set_col_label(grid,3,"Passenger Name")
          set_col_label(grid,4,"City From")
          set_col_label(grid,5,"City To")
          atom carrier_sel, len, row, col
          sequence sql, value
          carrier_sel = get_selection(carrier) + 1
          sql = "SELECT SBOOK.CARRID,SBOOK.CONNID,FLDATE, " &
          "PASSNAME,CITYFROM,CITYTO" &
          " FROM SFLIGHT.SBOOK INNER JOIN SFLIGHT.SPFLI" &
          " ON SBOOK.CONNID = SPFLI.CONNID" &
          " WHERE SBOOK.CARRID = '" & carrier_key[carrier_sel] & "'" &
          " AND CITYFROM = '" & get_string_selection(cityfrom) & "'" &
          " AND PASSNAME <> ''" &
          " AND SBOOK.MANDT = 300" &
          " AND year(FLDATE) = 2012" &
          " ORDER BY FLDATE DESC"
          data = getQuery(sql)
          if sequence( data ) then
                    row = 0
                    len = length( data ) - 2
                    if len > 0 then
                              append_rows(grid,len)
                              for i = 2 to length( data ) do
                                        col = 0
                                        for j = 1 to 6 do
                                                  value = remove_all(0,data[j])
                                                  set_cell_value(grid,value,row,col)
                                                  col = col + 1
                                        end for
                                        row = row + 1
                        end for
              end if
          end if
          set_grid_editable(grid,0)
          autosize_grid(grid)
          return 1
end function

procedure Click_connect(atom this, atom event_type, atom id, atom event )
atom ans
ans = getConnected()
if ans = 1 then
          show_window(main,0)
          fillCombos()
          wxMain( main2 )
end if
end procedure
set_event_handler(connect, get_id(connect), wxEVT_COMMAND_BUTTON_CLICKED, routine_id( "Click_connect" ))

procedure Click_show_query(atom this, atom event_type, atom id, atom event )
          show_window(main2,0)
          initializeGrid()
          wxMain( main3 )
end procedure
set_event_handler(show_query, get_id(show_query), wxEVT_COMMAND_BUTTON_CLICKED, routine_id( "Click_show_query" ))

procedure Click_goback(atom this, atom event_type, atom id, atom event )
          show_window(main3,0)
          clear_grid(grid)
          delete_rows(grid,1,get_number_rows(grid),0)
          show_window(main2,1)
end procedure
set_event_handler(goback, get_id(goback), wxEVT_COMMAND_BUTTON_CLICKED, routine_id( "Click_goback" ))

procedure main3_onClose( atom this, atom event_type, atom id, atom event )
          destroy(main)
          destroy(main2)
          destroy(main3)
end procedure
set_event_handler( main3, get_id(main3), wxEVT_CLOSE_WINDOW, routine_id("main3_onClose") )

wxMain( main )

像人们常说的……无图无真相……
[/url]
[url=http://scn.sap.com/servlet/JiveServlet/downloadImage/38-69832-124026/Euphoria_HANA_002.png]

[/url]
[url=http://scn.sap.com/servlet/JiveServlet/downloadImage/38-69832-124028/Euphoria_HANA_004.png]

[/url]
[url=http://scn.sap.com/servlet/JiveServlet/downloadImage/38-69832-124030/Euphoria_HANA_006.png]

[url=http://scn.sap.com/servlet/JiveServlet/downloadImage/38-69832-124031/Euphoria_HANA_007.png][/url]

你可以看到……SAP HANA非常灵活而且用起来简单……不论什么编程语言,你都会获得额外的速度,而且感觉到事情以正确的方式在进行。      

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
ralf_kemiya 发表于 2017-7-13 22:21:36 | 显示全部楼层
sap hr
ice.xie 发表于 2017-7-13 23:39:47 | 显示全部楼层
SAP学习文档
wq123 发表于 2017-7-13 23:50:45 | 显示全部楼层
SAP公司面试
ahyu 发表于 2017-7-14 06:07:42 | 显示全部楼层
sap s4/hana
hyw945 发表于 2017-7-14 07:08:30 | 显示全部楼层
SAP解决方案
swanpp 发表于 2017-7-14 08:42:51 | 显示全部楼层
sap hana
dacheng0916 发表于 2017-7-14 08:48:06 | 显示全部楼层
SAP论坛
xinzhdow 发表于 2017-7-14 10:30:51 | 显示全部楼层
SAP视频教程下载
KILLUA 发表于 2017-7-14 12:51:09 | 显示全部楼层
sap fico
hehuguang 发表于 2017-7-31 13:47:39 | 显示全部楼层
SAP事务代码查阅
qqhaowan 发表于 2017-7-31 20:16:44 | 显示全部楼层
中国SAP培训零风险高薪就业开创者,就业学员遍布全球SAP系统,世界500强企业定向委培
131452sp 发表于 2017-7-31 20:52:43 | 显示全部楼层
SAP解决方案
skymoon132001 发表于 2017-7-31 22:57:30 | 显示全部楼层
SAP项目案例文档参考等相关SAP系统信息资源分享平台
zhangli19851211 发表于 2017-7-31 23:42:48 | 显示全部楼层
sap账号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|克米亚sap论坛,sap账号,sap系统,sap ides,sap学习机,sap练习环境 ( 渝ICP备18002525号-5 )

GMT+8, 2019-6-26 10:35

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表