fukuwala 发表于 2021-5-6 17:18:03

N-UP分栏式数据窗口如何动态修改列数?

数据窗口设计时rows per detail的值是2,但是想根据ini文件控制程序在运行时这个数据窗口显示的数据的列数,比如运行时显示10列,求教怎么实现,网上有说通过dw_1.modify("DataWindow.Rows_Per_Detail=10")这样的语法来实现,但是这个不起作用。

frcly 发表于 2021-5-12 10:59:42

其实你可以参照Edit source语法,按照要求修改,然后用语法生成数据窗口。

swimchen 发表于 2023-9-25 06:33:16

//得到分栏数
STRING ls_Count
ls_Count=dw_Data.Describe("DataWindow.Rows_Per_Detail")
IF ls_Count="!" OR ls_Count="?" OR ls_Count="" THEN RETURN

//获得数据源语法
STRING ls_Syntax
ls_Syntax=dw_Data.Describe("DataWindow.Syntax")

//查找,仔细看,这是我的厉害之处,代码纯手敲,网上没有的
STRING ls_Sparse="",ls_Sparses[]
ls_Sparses="Rows_Per_Detail = "+ls_Count //DW自己的生成的语法等号左右有空格
ls_Sparses="Rows_Per_Detail="+ls_Count //我自己创建的语法一般不保留空格
ls_Sparses="Rows_Per_Detail ="+ls_Count //这个少打了个空格
ls_Sparses="Rows_Per_Detail= "+ls_Count //也是少打了个空格,以上四种最常见,特殊的不考虑
LONG ll_Loop,ll_Position
FOR ll_Loop=UpperBound(ls_Sparses[]) TO 1 STEP -1
        ll_Position=PosW(ls_Syntax,ls_Sparses)
        IF ll_Position<1 THEN CONTINUE
        ls_Sparse=ls_Sparses
        EXIT
NEXT
IF ls_Sparse="" THEN RETURN

//拆出前后
STRING ls_Part[]
ls_Part=MidW(ls_Syntax,1,ll_Position - 1)
ls_Part=MidW(ls_Syntax,ll_Position + LenW(ls_Sparse))

//重新组合,这次是分100列,以下那种都可以
ls_Syntax=ls_Part + "Rows_Per_Detail = 100" + ls_Part
ls_Syntax=ls_Part + "Rows_Per_Detail=100" + ls_Part
ls_Syntax=ls_Part + "Rows_Per_Detail =100" + ls_Part
ls_Syntax=ls_Part + "Rows_Per_Detail= 100" + ls_Part
dw_Data.Create(ls_Syntax)

fukuwala 发表于 2024-8-13 16:31:54

swimchen 发表于 2023-9-25 06:33
//得到分栏数
STRING ls_Count
ls_Count=dw_Data.Describe("DataWindow.Rows_Per_Detail")


学习了!谢谢大佬!:handshake
页: [1]
查看完整版本: N-UP分栏式数据窗口如何动态修改列数?

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com