PB DW中如何添加一个可编辑的列,此列在原DW的源表中是没有的,得根据条件决定是否要生成,求助啊

撸过才知道 2009-04-09 12:08:43
如题,求助
相关的TEXT控件已经能添加了.
...全文
579 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
cao447214075 2012-05-03
  • 打赏
  • 举报
回复
column(band=detail id=11 alignment="0" tabsequence=32766 border="0" color="33554432" x="1248" y="1199" height="57" width="1260" format="[general]" html.valueishtml="0" name=cb_torihikicosizai_torihikico_address1 visible="1~t0" edit.limit=0 edit.case=any edit.autoselect=yes edit.imemode=0 font.face="élér û╛Æ⌐" font.height="-9" font.weight="400" font.family="0" font.pitch="0" font.charset="128" background.mode="1" background.color="536870912" )

有谁知道那个visible的值表示什么意思吗?
wzh2021 2011-07-26
  • 打赏
  • 举报
回复
不知道楼主是怎么做的
我也有这方面的需求
请问如何
用拼语法完成的??

谢谢
WorldMobile 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 apei2003 的回复:]
这个如果是说在DW设计时就加好的话就不要说了,这个我也知道的
但是因为这个动态列有可能是7列(整型),也有可能是14列或者更多,所以总不能一下子就自己先做上几十列,然后在代码里设置可见不可见吧,万一哪天客户要是需求变了,根据需求动态列得有一百列,那我还不得累死啊。。。
所以才想在事件里生成,根据检索出来的数据自动生成相应的列数。

用create我试过了,不知道是怎么回事,我可以创建一个text,但是却创建…
[/Quote]

我已经说了,text可以create,但列不能直接create,只能想办法把语法拼出来,然后数据窗口再create
撸过才知道 2009-04-17
  • 打赏
  • 举报
回复
...聪明
但我现在不是从赚钱的角度去想
是从技术的角度去做,有没有可能去实现动态的显示出来
而不是事先设计好固定的列数,如果这样的话,就不够灵活,呵呵
撸过才知道 2009-04-17
  • 打赏
  • 举报
回复
呵,楼上有相关资料吗?可以发给我一份吗?
我没有接触过,想看看,呵
zwxzj1118 2009-04-17
  • 打赏
  • 举报
回复
按楼主描述,如果楼主不满意当前的DW动态处理方式,可以考虑用EXECL控件去做,比如F1Book6控件,可以自定义输入模板,然后设置模板的存取条件,这样可以随便改.

我们类似这样的Input都是采用这种方式制作的,优点就是实现起来,要比用DW简单.格式可以随时改变或定义
撸过才知道 2009-04-17
  • 打赏
  • 举报
回复
哦,这样啊
原以为列也可以CREATE的
那看来只有你说的拼语法这个办法了
我现在就是用拼语法完成的,感觉挺麻烦的,呵呵


好了,那看来就是没有办法了
周一结贴,呵呵
singsongs 2009-04-16
  • 打赏
  • 举报
回复
如果要增加列的话,只有动态改变数据窗口的sql语句了。比如动态增加诸如''as col_name这样的语句,思路可以是先获取原来的sql语句,然后修改以后重新赋给dw。
撸过才知道 2009-04-16
  • 打赏
  • 举报
回复
这个如果是说在DW设计时就加好的话就不要说了,这个我也知道的
但是因为这个动态列有可能是7列(整型),也有可能是14列或者更多,所以总不能一下子就自己先做上几十列,然后在代码里设置可见不可见吧,万一哪天客户要是需求变了,根据需求动态列得有一百列,那我还不得累死啊。。。
所以才想在事件里生成,根据检索出来的数据自动生成相应的列数。

用create我试过了,不知道是怎么回事,我可以创建一个text,但是却创建不了列,可能是语法不对,楼上做过吗?如果有的话,把创建列的语法贴一下,我看一下是不是我哪里做的不对,呵呵,谢谢了
WorldMobile 2009-04-16
  • 打赏
  • 举报
回复
在事件里创建一个列比较麻烦,你不直接用create来创建这个列,因为还有一些其它属性

如果你想方便些的话,你可以这么来做

建数据窗口里就加上这个可编辑列,然后动态改变visible属性
sun1976 2009-04-16
  • 打赏
  • 举报
回复
还是把可能需要的都一次弄出来藏着,动态设置visible好
以后如果又要增加,也好升级啊
如果一次做完10年不改,哪里去收升级维护费用啊
我们的原则是第一版能用不好用
第二版好用但是勾引出新需求
第三版加了新需求但是有点点问题
第四版……
总之,总有收钱的理由
撸过才知道 2009-04-16
  • 打赏
  • 举报
回复
这样你试过吗?
我这边试过,直接用setsqlselect设置新的SQL语句是不行的,因为DW原有的列数和你设置新SQL语句的列数是不等的
应该是根据这个新SQL语句生成新的DW语法然后生成吧?如果是这样的话,原来的格式就都没有了.
sun1976 2009-04-15
  • 打赏
  • 举报
回复
问题描述不清楚,不知道你要加什么字段
如果是正数列
你可以在生成数据窗口的sql的from前增加 , 0 as xxxx
如果是字符串列 from前增加 , space(250) as xxxx
等,其他类型的类似,如果不定类型可以多加几个这样的列,每个类型一个
调整好宽度、标题后,都设置visible不可见
然后在运行时动态根据条件把需要的显示出来,
dw_1.object.xxxx.visible=1即可

撸过才知道 2009-04-15
  • 打赏
  • 举报
回复
谢谢大家来给建议,最后解决了,呵呵,方法比较笨
就是利用原来那DW的源代码在事件里合成,然后生成的DW,就相当于自己合成了一个syntax,然后用它生成了一个DW,还好,呵呵

先不结贴的,如果大家有什么其它的方便的方法也可以发上来,大家一起探讨一下,呵
下个星期或者半月结贴,呵呵
撸过才知道 2009-04-14
  • 打赏
  • 举报
回复
哦,这样也可以生成,但它不是按我原来排好的样子生成的啊,有什么办法能让它生成的版面和我原来的相似吗?
(原来那个DW是设计好的,列数是固定的,现在应客户要求要做成变动的)
li_willian114 2009-04-13
  • 打赏
  • 举报
回复
不可以再数据窗口的sql语句地方添加你所要的字段
'' as column,
这样不就增加了一个字段吗
WorldMobile 2009-04-13
  • 打赏
  • 举报
回复
在事件里创建一个列比较麻烦

你需要动态创建数据窗口(直接创建一个文本或者计算列不能满足你的要求,因为你要编辑)

string ls_sql,ls_syntax,ls_error
ls_sql = 'select a, b, 0 as new_col from 表名' //这里你的SQL,把列需要多加一个
ls_syntax = sqlca.SyntaxFromSQL(ls_sql,'style(type=grid)',ls_error)
if len(ls_error) >0 then
messagebox('Error','SyntaxFromSQL Error:~r'+ls_error)
else
dw_new.create(ls_syntax,ls_error)
if len(ls_error) >0 then
MessageBox("Error", "Create have these errors: ~r" + ls_error)
else
dw_new.settransobject(sqlca)
dw_new.retrieve()
end if
end if
撸过才知道 2009-04-13
  • 打赏
  • 举报
回复
有人能指教一下吗?
撸过才知道 2009-04-13
  • 打赏
  • 举报
回复
是要在事件里写的,不是在DW的设计界面里加上的。。。
撸过才知道 2009-04-10
  • 打赏
  • 举报
回复
呵呵,那样比较麻烦,还得要自己一个一个来画

能用代码来添加吗?在freeform的DW里生成也行
因为DW里面的标题已经用代码生成好了,现在就差列了,呵呵,有十几列呢,而且有可能以后还要增加,总不能以后增加的时候我再自己画吧,不如这样一劳永逸,呵呵
求助大家了,呵呵
加载更多回复(8)

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧