Categories

Links

ActiveContent 3.5.57 著作权转让声明

activecontent 3.5.57 版本已经将著作权转让给厦门易事软件开发有限公司。从即日,本人将不再从事activecontent 的开发和销售。本网站上有关activecontent 有关内容也将陆续删除。以后有关activecontent事宜,请联系厦门易事软件开发有限公司。

网址:www.easything.net
地址:厦门湖里区金山西里49号902 ,电话:0592-5222200,13850009090

[2006-12-28 12:24:59 | Author:jiangjianxiao ] [] 2 comments

转变思维,调整思路

我的口头禅是什么?居然是 “知道吗?”,晕,今天打电话时才发现,大概是总是说别人的缘故吧,立志改正中。

一天,儿子在玩一个flash的打飞机游戏,突然说:爸爸,这个迎面炮弹好厉害啊。仔细一想,炮弹迎面打过来,不就是迎面炮弹吗?

近来打算转变一下思维习惯,放弃自己在通用软件领域的一些开发,像crm,erp之类的通用软件,因为一个人维护和开发这些通用软件实在是没有精力了。打算考察一些开源和free 的软件,转而为这些软件提供技术支持和服务,当然,增值开发是少不了的。java/.net 不限,因为两者都是我喜欢的类型,而php,就不考虑了,哈哈。目前正寻找中。大家有好的推荐请告诉我。目前正在考察 splenidcrm和Compiere 。当然,这些软件的设计并不完美,主要还是求个折衷。完美的软件,哦,它只存在我们的构想当中。

 

 

 

 

[2006-07-21 12:17:12 | Author:jiangjianxiao ] [] 1 comments

关于DotNetTools Workflow中AdoWorkflowStore中的查询

AdoWorkflowStore提供了两个查询方法

一个是根据WorkflowQuery对象进行查询,一个是根据WorkflowExpressionQuery对象进行查询。

根据WorkflowExpressionQuery对象进行查询,实际上是作用于当前步骤表,预定义的,即os_currentstep。

WorkflowExpressionQuery接受一个Expression对象,Expression可以是单一条件的FieldExpression,或是嵌套条件的NestedExpression。

FieldExpression有四个参数,依次是字段名,表名,比较方式,值,前三个均以静态常量表示。

例子:单一条件的查询,查询在当前步骤中,工作流名为/samples/auto-split.xml的工作流编号列表
 IApplicationContext context = ContextRegistry.GetContext();
            IWorkflowStore store = (IWorkflowStore)context.GetObject("workflowStore");

            Expression exp = new FieldExpression(FieldExpression.NAME, FieldExpression.ENTRY, FieldExpression.EQUALS, "/samples/auto-split.xml");

            WorkflowExpressionQuery query = new WorkflowExpressionQuery(exp);
IList list= store.Query(query)


例子:嵌套条件的查询,查询在当前步骤中,工作流名为/samples/auto-split.xml ,当前步骤编号为11的工作流编号列表
    IApplicationContext context = ContextRegistry.GetContext();
            IWorkflowStore store = (IWorkflowStore)context.GetObject("workflowStore");

            Expression exp = new FieldExpression(FieldExpression.NAME, FieldExpression.ENTRY, FieldExpression.EQUALS, "/samples/auto-split.xml");
            Expression exp2 = new FieldExpression(FieldExpression.STEP, FieldExpression.CURRENT_STEPS, FieldExpression.EQUALS,11);

           NestedExpression expression = new NestedExpression(new Expression[] { exp, exp2 }, NestedExpression.AND);

            WorkflowExpressionQuery query = new WorkflowExpressionQuery(expression);

            IList list=store.Query(query);

注:列表中返回的字段,当在嵌套条件查询时,总是返回stepEntryId 通常就是os_currentstp.entry_id字段,当在简单条件查询时,返回查询的列名

根据WorkflowQuery对象查询时,可以query对象的Type,可查询当前表和历史表,这里列表总是返回工作流编号

WorkflowQuery可有四个参数,它们是查询的字段名,表名,条件和值,下面两个例子分别查询历史步骤表和当前步骤表
  IApplicationContext context = ContextRegistry.GetContext();
            IWorkflowStore store = (IWorkflowStore)context.GetObject("workflowStore");

            WorkflowQuery query = new WorkflowQuery(WorkflowQuery.ACTION, WorkflowQuery.HISTORY, WorkflowQuery.EQUALS, 1101);

            IList list = store.Query(query);

            query = new WorkflowQuery(WorkflowQuery.ACTION, WorkflowQuery.CURRENT, WorkflowQuery.EQUALS, 1101);
            list = store.Query(query);


在实际运用中,我个人实际上从不用这两个查询api,因为这两个查询相对的没有效率,返回的数据也有限,因此所有的查询组合也未被完全测试

[2006-07-17 11:14:54 | Author:jiangjianxiao ] [] 1 comments

又发现两个互操作陷阱

第一个陷阱是在asp中,当你定义了一个有可选参数的方法,如

        void Append(String s,[Optional] bool newLine,[Optional] bool encode);
这个方法,在vb中一切正常,可选参数可以被正常忽略,但在asp中,如果你忽略可选参数,则会引发 type ismatch错误,你必须写全全部可选参数。

注意,只是vbs 过程不支持可选参数,如果在vb中定义的可选参数是被支持,因此,这很难说不是bug!

 

 

下面说说昨天发现的第二个问题,请看下面的代码(col是一个.net 对象)

Implements ISerialize

Private Property Let ISerialize_Serialize(RHS() As Byte)
   Call col.DeSerialize(RHS)
  
End Property
Private Property Get ISerialize_Serialize() As Byte()
    ISerialize_Serialize = col.Serialize
End Property

为了方便asp使用,再构造一个显式的属性

Public Property Get Serialize() As Byte()
    Serialize = col.Serialize
End Property
Public Property Let Serialize(b() As Byte)

'    ISerialize_Serialize=b
  Call col.DeSerialize(b)
   
End Property

请注意注释掉的代码,看起来没什么问题,但实际运行时,却会出现

error '80131538'

SafeArray of rank 832(这个数字会变化) has been passed to a method expecting an array of rank 1.

显然,字节数组在vb方法中多传递了一次发生了改变,修改直接调用.net对象的代码正常。

 

关于互操作的其它一些陷井,我发在 .net 评测网上,可惜无人回复,不知道具体做这个的人到底有多少?

[2006-06-21 11:40:29 | Author:jiangjianxiao ] [] 1 comments

世上最恶心的两种职业

首先是老师

其次是程序员

老师总是不能培养出家长需要的人才,几乎每天,我看着自己或别人的孩子在所谓的教育机构被伤害。

而程序员,从来不开发客户满意的产品,从来就会推诿责任,说是这个那个的问题。

纯属牢骚,我本来是老师,现在是程序员。不幸的,我成为了天下最恶心的人,还有的救吗?呵呵

[2006-06-20 08:10:09 | Author:jiangjianxiao ] [] 0 comments

Total 91 Display 41 of 45
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Powered by Google App Engine