powerbuild 外部数据源(external)的datawindow赋值

来源:互联网 发布:java单例模式和同步 编辑:程序博客网 时间:2024/06/05 18:36

首先建立一个exteranl类型的freeform,并在窗体中dw控件引用它。

这里用一个自定义的长字符串作为它的数据源。

freeform中各列的列名情况如图:

赋值代码:

string rtnStr  //注意pb中不能声明的同时赋值

 rtnStr = '0123456789012012345678901234567于学波                        01234567890123456711970-01-01孙子关系            01234567890123456789012345678901234567王忠诚                        01234567890123456711970-01-01孙子关系            01234567890123456789012345678901234567王圣武                        01234567890123456711970-01-01孙子关系            01234567890123456789012345678901234567武保栋                        01234567890123456711970-01-01孙子关系            01234567890123456789' 

int strlen, n

strlen = Len(rtnStr)

n = strlen/117    //117为每一行各列的长度综合 得出总行数

//必须先插入空行,否则会赋值失败,差一行赋一行似乎也不可行,必须一次性插入足够的空行,再赋值

for i = 1 to n 
famdw.insertrow(0)
end for

string personNo, name, id, sex, bir, relation, personType

for i=1 to n

personInfo = mid(rtnStr , (i - 1)*117+1, 117)
//从个人信息字符串中截取各类信息并为各对应变量赋值
personNo = mid(rtnStr , 1, 18)
name = mid(rtnStr , 19, 30)
id = mid(rtnStr , 49, 18)
sex = mid(rtnStr , 67, 1)
bir = mid(personInfo, 68, 10)
relation = mid(personInfo, 78, 20)
personType = mid(personInfo, 98, 20)

//在famdw中对应的列中赋值。
famdw.setitem(i, 1, personNo)
famdw.setitem(i, 2, name)
famdw.setitem(i, 3, id)
famdw.setitem(i, 4, sex)
famdw.setitem(i, 5, bir)
famdw.setitem(i, 6, relation)
famdw.setitem(i, 8, personType)
end for

执行后的效果如图: