ECO Ⅳ 新功能抢先看,一个简单的开发实列

OK,ECO 4中新鲜的东西,在我看来并不是很多。BDS 2007的第三个update后,仍然有些小bug使得我今天的BDS已经被我强制从进程中关掉4次了。

不过这些,都抵挡不住我的热情,嘿嘿。下面,为大家 讲述新功能,主要还是围绕着新的EcoDataSource for Asp.net,附带一个小例子。

首先在Newitems中,选择Eco中的Eco Delphi .net Wizard。在精灵中选择要建立的是WebForm App,如果你需要将Eco的UML的定义图在一个单独的Dll中可以被复用,那就要选中Model中的In separate assembly,我们这里不选。在Asp .net中,可以提供新的EcoDataSource模式或者老的利用RootHandle,ExpressHandle,PsHandle这样的模式。我们这里选择新的EcoDataSource模式。另外说下,我到现在还不是很清楚Remote的工作模式,所以没有去选择。

选取到模型中,在Package下添加一张Class视图

画以下的UML图,其中Employ的FullName是一个Derived=true的字段,Derived OCL被定义为:“self.FistName+self.LastName”。其中还定义了DropFile等3个trigger,一个叫HireState的State属性,将被用在State图中。

State图:在入点和出点随意的使用了些ECO Action Language来操作Task属性,没有设置任何的Guard,因为这部分功能在Eco3的文章中已经讲过了。

先跳过EcoSpace和EcoSpaceProvider的设置了,那些请参考李维老师的Eco书籍。

我们直接来到Asp.net的第一个页面,放入下面这些控件。其中edsCompany的Express(对应与传统开发的SQL的CommandText)为“Company.allInstances”,把所有公司都列出来。BDS 2007的控件中默认是没有DataGrid的,因为新的GridView比DataGrid更好用,但是GridView有个小bug,无法处理应用在Format数据字段为1:1这样字符串,所以为了能建立一个HyperLink列,只能去Compnent中去把DataGrid重新叫出来。

下面就是这个连接到公司明细的列的属性,类似与URL Format这样东西,GridView会在碰到1:1这样的ExternalId的独特字符的时候出错。

新增的按钮中的代码如下(BDS 2007不支持c#,有点遗憾):

var
  c: Company;
begin
  c := Company.Create(EcoSpace);
  c.Name := edtCompanyName.Text ;
  EcoSpace.UpdateDatabase;
  self.DataBind;
end;

运行结果:

点选连接到公司明细,会打开一个超连接,连接中的姓名=姓+名,这个是通过ocl定义过的,自动实现:

下面着重开始讲Company.aspx是如何自动接受这个CompanyId的QueryString的。在Company的EcoDataSource中,首先定义一个Parameters,来源是QueryString,Field名称是CompanyId,另外这个QueryString的来源还可以是表单提交的,cookies的,session的,control(这个后面讲),none(无自动来源,自己写代码设置)

然后给这个EcoDataSource的Expression设置为:“Company.objectfromExternalId(CompanyId)”用来显示被要求显示的Company对象,再同样建立另一个EcoDataSource,Expression设置为:“Company.objectfromExternalId(CompanyId).Employs”,显示选则的company下的所有employ.这样,前面一个页面传递过来的CompanyId参数就被自动处理并找出数据来了。

下面是新增被选中的Company的Employ的代码,直接从EcoDataSource的查询结果中获取Company对象或者通过QueryString中的参数来获取都可以。

Control参数主要功能是用来做同一个页面中的主从表关系的,在主Grid上点下,立即就能把参数传到EcoDataSource上查询出子表的数据,具体做法很简单,大家看下就会了,呵呵

 

Enjoy ECO 4

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值