动态修改ddw的数据源,把一个栏位的数值作过滤参数传进去

JANEWS 2009-12-23 02:20:32
数据窗口中两个栏位,前面一个栏位输入数值作为后面一个栏位的DDW参数过滤显示出相应的资料来?不知道如何操作,请各位大虾帮帮忙
...全文
200 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangshiqing 2009-12-28
  • 打赏
  • 举报
回复
我的是两个下拉数据窗口,A与B ,,B随着A的值变化而变化
在A 的Itemchanged中加入代码

//A有Cardbank一个字段,B有cardbank和pici两个字段,但只显示Pici一个字段,B根据A的Cardbank的内容变化,通过过滤条件,也相关的变化,A和B用Cardbank来关联
this.AcceptText()

String ls_filter,ls_bankname,ls_pici

ls_bankname = this.GetItemString(row,"cardbank")
If ls_bankname = '全部' Then
ls_filter = ''
Else
ls_filter = " (cardbank = '" + ls_bankname + "' or pici = '全部') "
End If


//对 B 下拉数据窗口进行过滤
Long ll_insert,ll_code
DataWindowChild ldwc_pici
ll_code = dw_pici.GetChild('pici',ldwc_pici)
IF ll_code = -1 THEN MessageBox("Error", "Not a DataWindowChild")
ldwc_pici.SetFilter(ls_filter)
ldwc_pici.Filter()

ldwc_pici.AcceptText()
永生天地 2009-12-24
  • 打赏
  • 举报
回复
最近的程序刚好就这样情况,我是这么写的
//
string ls_itemcode,ls_costname
string ls_dwcsql,ls_tempsql
datawindowchild ldwc
ls_itemcode = tab_1.tabpage_2.dw_2.object.图号[tab_1.tabpage_2.dw_2.getrow()]
this.getchild( dwo.name, ldwc)

choose case dwo.name
case "费用名称"
ldwc.settransobject(sqlca)
ls_dwcsql=ldwc.getsqlselect()
ls_tempsql=ls_dwcsql+" and 客户报价单产品.图号='"+ls_itemcode+"'"
ldwc.setsqlselect(ls_tempsql)
ldwc.retrieve()
ldwc.setsqlselect(ls_dwcsql)
case "费用值"
ls_costname = this.object.费用名称[row]
ldwc.settransobject(sqlca)
ls_dwcsql=ldwc.getsqlselect()
ls_tempsql=ls_dwcsql+" and 客户报价单产品.图号='"+ls_itemcode+"' and 费用名称='"+ls_costname+"'"
ldwc.setsqlselect(ls_tempsql)
ldwc.retrieve()
ldwc.setsqlselect(ls_dwcsql)
end choose
xiaobn_cn 2009-12-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 janews 的回复:]
数据窗口中两个栏位,前面一个栏位输入数值作为后面一个栏位的DDW参数过滤显示出相应的资料来?不知道如何操作,请各位大虾帮帮忙
[/Quote]
在PB数据窗口中,下拉数据窗口的内容根据其它列的值变更是不可取的,这样会导致非当前行的下拉数据窗口显示错误.
sjlion 2009-12-23
  • 打赏
  • 举报
回复
自己改下吧,代码有些拖沓,而且不是非常通用。
fuxiaoyang13 2009-12-23
  • 打赏
  • 举报
回复
学习!
sjlion 2009-12-23
  • 打赏
  • 举报
回复
//====================================================================
// 事件: w_pms_room_change.wf_linkage()
//--------------------------------------------------------------------
// 描述:下拉数据窗口联动,以一下拉数据窗口的数据,过滤另一下拉数据窗口
//--------------------------------------------------------------------
// 参数:
// string s_column 源下拉数据窗口所在列
// string d_column 被过滤下拉数据窗口所在列
// datawindow adw_ini 下拉数据窗口所在数据窗口
// integer add_condition 1 为自己设定过滤列名和运算符,0 为以s_column的列名为过滤列名,运算符为=
// string as_condition 自己设定的过滤列名和运算符
//--------------------------------------------------------------------
// 返回: integer
//--------------------------------------------------------------------
// 作者: sj 日期: 2006年07月22日
//--------------------------------------------------------------------
// Copyright (c) 2002-2016 SJEMPIRE, All rights reserved.
//--------------------------------------------------------------------
// 修改历史:
//
//====================================================================

DataWindowChild d_child

integer rtncode,li_row
string ls_datatype,ls_data,ls_filter

adw_ini.accepttext()

rtncode = adw_ini.GetChild(d_column,d_child)

IF rtncode = -1 THEN MessageBox("Error", "Not a DataWindowChild")

ls_datatype = Left(adw_ini.Describe(s_column+".ColType"),5)
li_row = adw_ini.getrow()
choose case ls_datatype
case 'int'
ls_data = string(adw_ini.getitemnumber(li_row,s_column))
case 'char'
ls_data = adw_ini.getitemstring(li_row,s_column)
case 'date'
ls_data = string(adw_ini.getitemdate(li_row,s_column),'yyyy-mm-dd')
case 'long'
ls_data = string(adw_ini.getitemnumber(li_row,s_column))
case 'numb'
ls_data = string(adw_ini.getitemnumber(li_row,s_column))
case 'real'
ls_data = string(adw_ini.getitemnumber(li_row,s_column))
end choose


if add_condition = 1 then
ls_filter = as_condition + "'"+ls_data+"'"
else
ls_filter = s_column + "='"+ ls_data+"'"
end if

d_child.setfilter(ls_filter)
d_child.filter()

return 1
JANEWS 2009-12-23
  • 打赏
  • 举报
回复
两个栏位数据窗口用外部数据源做的,后一个栏位的DDW是用数据库的表做的
楼上的大虾,能不能说具体一点,怎么操作?谢谢
jlwei888 2009-12-23
  • 打赏
  • 举报
回复
取消ddw的自动检索功能


在itemchanged事件:

DataWindowChild dwc_orders
this.GetChild("后一列", dwc_orders)
dwc_orders.SetTransObject(SQLCA)
//上面定义实例变量,放在open事件中
if dwo.name = '前一列' then
dwc_orders.Retrieve(data)
end if
内容概要:LTK8319是一款单通道H桥有刷直流电机驱动器,工电压范围为2.5V至12V,支持最高3.9A的峰值电流和2.5A的平均电流驱动能力,适用于小家电、玩具、电子锁、机器人等小型电动设备。该芯片通过两个逻辑输入(INA和INB)控制电机的正转、反转、停止与刹车,并支持PWM调速控制。集成欠压锁定(UVLO)、过温保护(TSD)及自动故障恢复功能,确保系统安全可靠运行。当INA和INB持续为低电平时,芯片进入低功耗休眠模式,显著降低静态功耗。采用ESOP-8封装,符合环保无铅标准。; 适合人群:电子工程师、嵌入式系统开发者、电机控制技术人员,以及从事小型机电产品研发的设计人员;具备基本电路知识和电机控制经验者更佳。; 使用场景及目标:①用于驱动小型有刷直流电机或步进电机的一个绕组,实现精确的方向与速度控制;②适用于电池供电设备中对功耗敏感的应用,利用休眠模式延长续航时间;③在电机启停频繁、负载波动大的场合,发挥其电流控制与保护机制优势,提升系统稳定性。; 阅读建议:此文档提供了详细的电气特性、功能逻辑表、保护机制与时序参数,建议结合典型应用电路进行硬件设计,并重点关注电源去耦电容选型、散热布局及PWM频率设置(不超过100kHz),以确保系统可靠运行。
内容概要:本文研究了一种基于遗算法(GA)与粒子群优化算法(PSO)融合的无人机三维路径规划方法,旨在解决复杂环境中无人机避障与路径优化的问题。通过构建三维空间环境模型,提出一种结合GA全局搜索能力强与PSO收敛速度快优势的混合优化策略,并利用Matlab平台完成算法仿真与路径可视化。研究不仅实现了无人机在存在多个障碍物场景下的安全、高效飞行路径规划,还对GA与PSO两种算法在路径长度、计算耗时、收敛稳定性等方面进行了对比分析,评估其性能差异,为实际应用中算法选型提供依据。; 适合人群:具备一定算法设计基础和Matlab编程能力的科研人员、自动化与人工智能方向的研究生,以及从事无人机导航、智能控制等相关领域的工程技术人员。; 使用场景及目标:①应用于城市密集建筑区、山地森林等复杂地形中的无人机自主巡检与应急救援任务;②为智能交通、地理测绘、灾害监测等需要自主路径决策的无人系统提供算法支持与仿真验证;③通过对比不同智能优化算法的表现,辅助研究人员在特定应用场景下选择最优路径规划方案。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,调整种群规模、迭代次数、障碍物分布等参数,深入理解算法运行机制与性能表现,并可进一步拓展至动态环境更新、多无人机协同避障等更复杂的研究方向。

611

社区成员

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

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