Blog信息 |
blog名称:注册会计师(注会)练习软件 日志总数:398 评论数量:116 留言数量:27 访问次数:3271776 建立时间:2005年6月6日 |

| |
[borland eco 技术]ECO数据在GRIDCONTROL中的动态加列显示 软件技术
吕向阳 发表于 2008/2/26 8:39:11 |
下面代码解决了三个问题,主要目的是动态建立数据列,并在XTRAGIRD(GRIDCONTROL)中动态加相应显示列,并不显示0值(不显示零值)
procedure formcxbmin.getdatacolumn; type TArrayOfBorland_Eco_Handles_OclVariable = array of Borland.Eco.Handles.OclVariable; TArrayOfSystem_Windows_Forms_MenuItem = array of System.Windows.Forms.MenuItem; TArrayOfDevExpress_XtraGrid_Views_Base_BaseView = array of DevExpress.XtraGrid.Views.Base.BaseView; TArrayOfDevExpress_XtraGrid_Columns_GridColumn = array of DevExpress |
|
[borland eco 技术]ECO中经常遇到的几个错误 软件技术
吕向阳 发表于 2008/2/12 17:08:18 |
1.Object reference not set to an instance of an object.
这种情况通常出现在存在关联关系的类,比如一对多,一对一等,比如A类与B类,A类与B类是一对多的关系,我们能常使用这样的语句建立两类之间的关联
b.a:=(a的实例)
如果B类的一个实例没有相对应的A类关联,那么我们使用B.A调用时就会出现这种错误,此时在使用前在一个assigned判定,判定其是否存在
2.出现类似的SQL错误
Borland.Eco.Persistence.Connection.DatabaseOperationFailedException: ExecSQL error: INSERT INTO ECOModelR |
|
[borland eco 技术]有关ECO中一对一关系的测试 软件技术
吕向阳 发表于 2008/2/10 16:03:57 |
项目中有一个一对一的关系,不是原来常用的一对多的关系,只好先测试一下,环境BDS2006,首选加入两个类,AAA 和BBB,并设置其为一对一的关系,在一对一关系中,在关系中BBB这一端的聚合里设置为COMPOSITE,那么删除AAA时,其拥有的BBB也被删除.
测试在一个按钮中进行,测试利用下面代码:
var a:aaa; b:bbb; begin a:=aaa.Create(fecospace); a.name:='a01';
b:=BBB.Create(FECOSPACE); B.name:='B01'; A.bbb:=B;
b:=BBB.Create(FECOSPACE); B.name:='B02'; A.bbb:=B;
FECOSPACE.UpdateDatabase;
最 |
|
[borland eco 技术]ECO中利用OclVariables将一个自定义对象作为可在expression中使用的变量 软件技术
吕向阳 发表于 2008/1/19 8:40:38 |
增加referenceHandle, 设置 EcoSpaceType 和StaticTypeName
在代码中作如下设置,将referenceHandle 有element设为你的对象 myRefHandle.SetElement(myObject.AsIObject());
增加一个 OclVariables元件 并进入Variables-collection,增加一行指向你的 referencehandle并给出一个你定义的变量名,比如 "myVar"
在你的 Expressionhandle,设置 Variables属性到你的 OclVariable元件
最后你就在你的 expression可以使用 "myVar" 了
//vhXX.Element.Assign(aPerson.AsIObject), |
|
[borland eco 技术]variableHandle在处理数据集的BUG,开发者解决方案 软件技术
吕向阳 发表于 2008/1/19 8:26:57 |
从开发者论坛搜索出来的,
a bug in the handling of collections in the variableHandle.
rhObjects should be configured as:
EcoSpaceType = VariableHandleDemo.VariableHandleDemoEcoSpace)StaticValueTypeName = "Collection(Test)
and the following code added to the constructor (which does exactly what the variablehandle should be doing):
|
|
[borland eco 技术]delphi.net中关于datagrid网格的回车键跳到下一列处理 软件技术
吕向阳 发表于 2008/1/15 12:38:58 |
网上全是C#资料,转到DELPHI中也大费周章,还好,反复测试还是做出来了.
选给当前表定重载覆盖原有的ProcessCmdKey方法,并且要比原方法的公开方式要高,用PUBLIC,
public function ProcessCmdKey(var msg:Message ;keyData:Keys ):boolean;override;
在这里从C#转换到这里时,VAR这个查了很多相关资料才得来
函数过程如下
function formsale.Pr
ocessCmdKey(var msg: Message; keyData: Keys): boolean; begin
if ( (not (ActiveControl is Button)) and ((keyDat |
|
|