首页 > 其他分享 >pb datastore的数据如何显示在datawindow上

pb datastore的数据如何显示在datawindow上

时间:2022-11-17 13:26:33浏览次数:52  
标签:cardinfo cardno dataobject pb datawindow dw datastore ds

datastore最常用的用法是

datastore ds

ds = create datastore

ds.dataobject = 'd_XXX'

 

然而问题在于,这样的用法只是给d_XXX找了个一个替身,数据的查询依然执行的是d_XXX的SQL。那么当datastore用自己的SQL查询出来的数据如何赋值给dw并在dw中显示呢?方法如下:

datastore cardinfo //必须声明为全局变量Globle Variables,否则如果在某个事件中直接声明,由于是局部变量,当事件函数执行 完毕后ds会被自动destroy,导致单机按钮dw中的数据为空,双击按钮dw中出现数据,再点一下其他的地方数 据又消失,这种奇怪的现象,其原因就是垃圾回收机制将ds销毁所致。

sqlstr = "SELECT id, cardno, zdr, kzsfz, dqfqbz, yxq, dqhke, mm, yhid, xlk FROM info_card WHERE (cardno NOT IN (SELECT a.cardno FROM hkfa_y a, info_card b WHERE a.cardno <> b.cardno OR (a.cardno = b.cardno AND a.y <> 6))) "


cardinfo = create datastore

cardinfo.dataobject = dw_1.dataobject // 不能写成dw_1.dataobject = cardinfo.dataobject 否则dw将变成空的。因为cardinfo的 dataobject此时为空,也不能放在cardinfo.retrieve()之后,否则dw也为空。

Is_syntax = sqlca.syntaxfromsql(sqlstr,"style(type=grid)",Is_errtext)

if len(Is_errtext) > 0 then
return -1
end if

cardinfo.create(Is_syntax,Is_errtext)

if len(Is_errtext) > 0 then
return -1
end if

cardinfo.settransobject(sqlca)
cardinfo.retrieve()

cardinfo.sharedata(dw_1)

 

注意:

1.需要保证datastore数据列与dw中的dataobject数据列的数据类型,名称,顺序完全一致,注意是dw的datasource中的列顺序,而不是dw显示出来的列顺序。也就是SQL语句中的select列

2.datastore 生存期需要跟dw_1一致,不然datastore被回收后共享的数据也就没了
ds如果是Sub,Fuction等局部变量的话dataShare后数据很快又被清空,一般将ds声明成窗体(实例变量)

原文链接:https://blog.csdn.net/wolfalcon/article/details/91353316

标签:cardinfo,cardno,dataobject,pb,datawindow,dw,datastore,ds
From: https://www.cnblogs.com/djd66/p/16899153.html

相关文章

  • dropbear 2019.78 Installing to target......Running build_buildroot failed!
     使能buildroot的环境变量sourceenvsetup.sh;rv1126一般选择90make dropbear-dircleanmake dropbear./build.sh rootfs./build.sh再不行的话,可以多试两次,再不......
  • Mac开发_NSPopUpButton
    1、基础创建代码//创建NSPopUpButton*pop_btn=[[NSPopUpButtonalloc]init];//位置尺寸pop_btn.frame=CGRectMake(50,150,120,50);//添加[self.windo......
  • pbcopy bug All In One
    pbcopybugAllInOnegarbled/乱码$mantr|pbcopy$manbrew|pbcopyhttps://www.cnblogs.com/xgqfrms/p/16875976.htmlhttps://github.com/xgqfrms/l......
  • 【Raspberry Pi】Scrot截图工具
    平日工作中多多少少会截个图记录一下的,哪怕是写个文档大多数情况下也是需要截个图来增强一下描述的。过往QQ也好WeChat也好自带的截图功能真的非常便利,但是改用了树莓派之后......
  • OpenGL ES EGL eglSwapBuffer
    目录一.EGL前言二.EGL绘制流程简介三.eglSwapBuffer函数简介四.关于多个EGLContext五.共享EGLContext六.猜你喜欢零基础OpenGLES学习路线推荐:OpenG......
  • DeepBurning: automatic generation of FPGA-based learning accelerators for the ne
    TitleDeepBurning:automaticgenerationofFPGA-basedlearningacceleratorsfortheneuralnetworkfamilyProceedingsofthe53rdAnnualDesignAutomationCon......
  • 安装64位PBI报错
        ---------------------------出了点问题---------------------------查询功能无法使用,因为该计算机并非委派操作的受信任计算机或当前用户帐户未配置为允许委......
  • MybatisPlus Lambda表达式 聚合查询 分组查询 COUNT SUM AVG MIN MAX GroupBy
    一、序言众所周知,MybatisPlus在处理单表DAO操作时非常的方便。在处理多表连接连接查询也有优雅的解决方案。今天分享MybatisPlus基于Lambda表达式优雅实现聚合分组查询。......
  • mapbox gl 相机飞行事件 flyTo
    map.flyTo({center:[camera.lon,camera.lat],//相机位置zoom:camera.zoom,//目标层级pitch:camera.pitch,//目标俯仰角......
  • nanopb安装和使用入门
    简介Nanopbisaplain-CimplementationofGoogle's ProtocolBuffers dataformat.Itistargetedat32bitmicrocontrollers,butisalsofitforotherem......