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

powerbuilder中如何动态设置数据窗口SQL 在PowerBuilder中,你可以动态地设置数据窗口(DataWindow)的SQL查询语句。通过以上步骤,你可以在PowerBuilder中动态设置数据窗口对象。请注意,上述示例仅提供了一个基本的框架,你需要根据你的具体需求进行适当的修改和扩展。首先,在你的PowerBuilder应用程序中创建一个数据窗口控件,例如。方法,将构建的SQL查询语句设置为数据窗口的SQL查询语句。最后,记得在适当的时候销毁动态创建的对象,以释放资源。或者,如果你已经有一个现有的数据窗口对象,你可以使用。 阅读详情

首先建立一个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

执行后的效果如图:


pb9.0连接sql server2008全攻略 pb9不支持sql2000以上版本的数据库直连。因此要连接2000以上的版本必须用odbc。 windows下的odbc管理器打开方式:窗体键+R 调出运行对话框 输入 odbcad32 确定弹出odbc管理器如图: 这里选择用户dsn和系统dsn都可以,点击添加:如图: 选择SQL server Native Client 这一项,如果在你的选项中没有,就要用SQLserv 阅读详情

相关推荐

PowerBuilder动态创建dw,动态添加检索参数

PowerBuilder动态创建dw,

PB-freedom-external格式的数据窗口,使用getitemstatus时需要注意的事情。

在PB中,如果使用的是 freedom external 格式的数据窗口,那么当我们需要获取某一行某一列的编辑状态时。假如我们有这么一个数据窗口 dw_1,他的dataobject的格式是 freedom external 。首先我们需要将需要显示的数据通过其他的dw或者创建新的datastore来提取出来,然后使用setitem将数据赋值到dw_1上。然后使用一下语句将每一列每一行的状态设置成N...

小树苗不知道 1377

PB 使用manifest文件改变标准控件样式

PB的旧版本的控件都是方方正正的样式,比较难看,使用manifest文件可以使这些标准控件编程windows样式

PowerBuilder数据窗口对象(转)

2011-04-29 15:22:54| 分类: 默认分类 | 标签:pb 数据窗口 pb9.0 属性 表达式 |字号 订阅 ////////////////////////////////////////数据窗口对象的数据源----------PB提供5种数据源:Quick Select(快速选择类型)、SQL Select(SQL选择类型)、Query(查询类型)、Exte...

abc7979的博客 611

Android 16(API 36)状态栏颜色适配全攻略:从沉浸式到自定义背景

本文全面解析Android 16(API 36)强制沉浸式状态栏带来的适配挑战,提供了从FrameLayout包裹法到动态修改Window背景色的核心解决方案。针对传统状态栏颜色设置失效问题,详细阐述了如何利用WindowInsets API实现自定义背景,并涵盖全屏模式、Fragment切换及第三方ROM兼容性等实战场景,为开发者提供一站式适配指南。

weixin_29227425的博客 595

SAP交货单增强字段更新实战:手把手教你用BAPI_OUTB_DELIVERY_CHANGE和EXTENSION2参数

本文详细解析了如何使用BAPI_OUTB_DELIVERY_CHANGE和EXTENSION2参数实现SAP交货单增强字段的更新。从增强点SMOD_V50B0001的定位到字段落表的全流程,提供了ABAP代码示例和常见问题排查方法,帮助开发者高效完成交货单自定义字段的集成开发。

weixin_42525637的博客 453

powerbuilder 中插入控件列

在编辑datawindow时,我们经常会遇到需要向dw中插入空间列的情况,下面以插入checkbox控件列为例: 新建一个dw,本例中用的是freeform。 为freeform编辑好数据源后如图: 在comumn Specification 的空白处单击右键,选择Append row选项,在最下面添加一列(虽然是Append row,但其实这里的每一行其实代表dw中的一个列)如图:

wolfalcon的专栏 3804

告别WSL:Ollama Windows原生部署与GPU加速实战

本文详细介绍了Ollama在Windows系统上的原生部署与GPU加速实战指南。告别WSL,通过官方原生应用直接调用NVIDIA和AMD显卡,实现更高效的本地大模型运行。文章涵盖系统准备、三步安装、模型拉取运行、GPU性能优化及高级配置,为Windows AI开发者提供一站式解决方案。

prometheus9mon的博客 534

PB数据窗口对象之数据源

PB提供5种数据源:QuickSelect(快速选择类型)、SQL Select(SQL选择类型)、Query(查询类型)、External(外部类型)和StoredProcedure(存储过程类型) ---------- Quick Select 只能从一个数据表或者视图中选取数据(无关联的表或者视图)?? ---------- SQL Select 1、选择表 可以一次选择多个表

冷寂 3300

CANoe-vTESTstudio之Test Diagram编辑器

总之,CANoe-vTESTstudio的Test Diagram编辑器提供了一个直观且强大的工具,用于创建和管理测试用例。通过图形化的界面和丰富的功能,测试工程师可以更轻松地编写复杂的测试脚本,并有效地进行测试开发。在上面的示例中,我们创建了一个名为"MyTestCase"的测试用例,并定义了两个测试步骤"Step1"和"Step2"。在上面的示例中,我们在执行"Step1"之后使用条件语句来确定是否执行"Step2"。在每次迭代中,我们创建一个新的测试步骤,并根据迭代次数动态生成相应的日志和验证消息。

TcData的博客 249

UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一)

UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一)

m0_46364958的博客 4345

PB datawindows 动态创建数据窗口

在实际应用中,经常需要根据用户需求来动态创建数据窗,一般方法是这样的。   在一个window中加入一个数据窗控件,如dw_new,但是该数据窗没有data object,(空白的)就可以用以下语法来创建:   dw_new.create(ls_syntax,ls_error) // 创建语法,错误信息   ls_syntax可以用以下三种方法来形成:   一、动态由sql语法

生如夏花之灿烂! 7045

FAST-LIVO2 源码精读(十六):接入自定义传感器——多雷达适配与内外参标定

本文是「FAST-LIVO2 激光-惯性-视觉里程计源码精读」专栏第十六篇。上一篇拆解了中每个关键参数的物理含义与调参路径,并反复强调外参RclPcl与时间偏移配错即全局失效;本篇承接这一悬念,回答更前置的工程问题——如何把 FAST-LIVO2 接到一套全新硬件上:新雷达如何通过的类型分支适配、相机内参与畸变模型如何配置、两组外参与时间偏移如何标定出来并填入 YAML,最后给出一份落地检查清单。

PX4-SLAM-PNC 199

PB中object,contral,custom class,custom visual,custom external等概念的区别

pb的5种类: custom class :不可见用户自定义类 ,如实现函数的多态 standard class :标准不可见空间 扩展类  custom visual :用户自定义 可见类  External Visual: 外部可视类,如ocx引入  Standard Visual: PB标准可视空间扩展   “Control”和“Object”的区别: 在PB里,“Contro

a78782295的专栏 4074

[23]-->变长SPI接口

然而,FPGA技术复杂,学习门槛较高,许多人(初学者或学生)在学习过程中面临诸多挑战。(1)模式0:SCK串行时钟线空闲是为低电平,数据在SCK时钟的上升沿被采样,数据在SCK时钟的下降沿切换,CPOL= 0,CPHA=0;(2)模式1:SCK串行时钟线空闲是为低电平,数据在SCK时钟的下降沿被采样,数据在SCK时钟的上升沿切换,CPOL= 0,CPHA=1;(3)模式3:SCK串行时钟线空闲是为高电平,数据在SCK时钟的上升沿被采样,数据在SCK时钟的下降沿切换,CPOL= 1,CPHA=1;

m0_46498597的博客 178

华为od 面试八股文_C++_01_含答案

华为od 面试八股文_C++_01_含答案

MISAYAONE的博客 5595

PB数据窗口难得一见的技巧

PB基础知识1、Datawindow object(数据窗口库对象)   数据源决定了数据窗口对象获取数据的方式。PowerBuild支持五种数据源:A、 快速选择(Quik Select)能够创建简单的SQL Select语句,主要用于从一个表或由外键连接的多个表中选择数据列,不能生成Sql计算列,B、 SQL选择(SQL Selcet)以可视化的方式建立SQL Select语句,SQL Sel

断不了的弦的专栏 6397

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

PowerBuilder 调用C++ DLL方法

PowerBuilder 调用C++ DLL方法。

faithzzf的专栏 7814

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【PB】创建数据窗口时数据源的使用方式

PB提供5种数据源:Quick Select(快速选择类型)、SQL Select(SQL选择类型)、Query(查询类型)、External(外部类型)和Stored Procedure(存储过程类型)。

郑晓东 廊坊师范学院信息技术提高班 十二期 2965

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: powerbuilder中获取dw控件summary中的列值
下一篇: powerbuilder 修改自定义函数声明
wolfalcon
博客等级 码龄18年 54粉丝 64原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wolfalcon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值