如有转载请注明出处:http://blog.csdn.net/donkey2004112103/archive/2009/03/19/4004901.aspx和署名。
之前真没有做过表单的程序,今天接到一个需求需要用到smartforms,学习了下smartforms。细节的东西没有注意但是觉得sap的设计还是不错的。有如下优点:
- 1.逻辑和显示层分离
- 用tcode:smartforms进入界面开始还以为需要在这里写代码,但是这里只做了两件事情一是画出表样,二是定义接口。只是定了表现层的东西,但是表样的设计感觉并不是很方便,展现层似乎一直是sap不太擅长的东西。接口的定义在smartforms里定义还是很方便,可以定义单独的变量或者一个内表变量。还可以用se78上传logo,直接在表单里显示,如图:
- 左上角的当然是我的玉照,下面的是定义一个接口类型为内表,如果有数据的话接在里面显示了。
- 那取数的逻辑是杂那里实现的了?还是通过abap程序,一个smartforms在激活之后会自动生成一个function module,如果定义了接口的话那个function参数会随之改变,我们只需要取到我们想要的数据然后把参数传进去function module即可。这样运行abap程序的时候自然有数据了,表样也在smartforms里定义好了。
- 2.表样定义有层级关系
- smartforms里的对象都是有层级的关系,这一点让人觉得设计的很好。我做了一个page之后在往里面添加对象的话,它都属于这个节点之下,而且执行的顺序也是按照这种节点的先后顺序来执行的。有了这种层级关系制作复杂的表样的时候,也不会觉得太混乱。
- 3.两个错误
- 刚开始弄smartforms就遇见了两个错误,记录下来应该有代表性。第一个错误是创建text的时候发现里面输入的是中文但是是乱码!原来必须要用中文登陆才能正常显示中文。另外一个错误是在定义接口的时候,我定义了一个变量i_sflight 类型为sflight用type一直编译不过!后来把type改为like才可以,想想应该是这个道理,毕竟一个内表不是一个类型所以要用like而非type。