accepttext,PB中,在数据窗口的一行输入字符(并没有保存到数据库
本文目录索引
- 1,PB中,在数据窗口的一行输入字符(并没有保存到数据库),那么,字符是存储在哪个缓冲区
- 2,pb删除数据表里的记录怎么更新不了
- 3,pb怎样从数据窗口向数据库中插入数据
- 4,pb怎么保存数据窗口中添加的数据,保存到数据库表中!请给详细的思路!和代码参考!重谢
- 5,PB中如何编程将光标定位在DataWindow控件的某行某列数据上?
- 6,PB数据窗口取值问题
- 7,如何用函数公式在EXCEL表格中将中文变成助记码
- 8,电子表格中如何生成助记码
- 9,PB 怎么实现动态更改数据窗口中的内容
- 10,powerbuilder 中FIND方法 求举例 各个字符的意思 求解释
1,PB中,在数据窗口的一行输入字符(并没有保存到数据库),那么,字符是存储在哪个缓冲区
用getitemstring这个函数
这个值在primary缓冲区,这个函数有几个主要参数。
dw_1.GetItemString(row, '字段', [缓冲区])
其中缓冲区可以不写,默认是primary!
row是你要获取的行的行号,字段是你要获取的列名。
但是如果你输入了,没有移开焦点,需要写dw_1.accepttext(),是数据窗口接受你输入的值才能得到。
2,pb删除数据表里的记录怎么更新不了
两种删除
1、if dw.update() = 1 then
commit;
messagebox('','成功')
else
rollback;
messagebox('','失败')
end if
这种方法,要设置DW的更新属性,指定更新列。
2、SQL脚本更新。
delete from table where id =:xx;
commit;
if sqlca.sqlcode = 0 then
messagebox('','成功')
else
back;
messagebox('','失败')
end if
3,pb怎样从数据窗口向数据库中插入数据
数据窗口的tab键值为0了,点一下工具栏中的tab order键,然后为列按输入顺序设置10的倍数的值;
新增行函数dwcontrol.InsertRow ( long row ) ,详细资料参考PB帮助文档;
然后输入数据,最后保存数据窗口:(要设置好数据窗口的更新属性,否则无法保存数据)
If dwcontrol.Update (false, true) = 1 Then
Commit;
Else
RollBack;
End If
4,pb怎么保存数据窗口中添加的数据,保存到数据库表中!请给详细的思路!和代码参考!重谢
①首先要在窗口的open事件中写如下一句.dw_1.settransobject(sqlca)//譬如您要保存的数据窗口名字为dw_1;这计划的意义在于时刻保持与数据窗口月数据库表的连接. 亦或者双击Dw_1对象。选择 constructor事件 写下以上语句即可. ②然后在数据窗口中修改 或者添加数据.随后创建一个按钮或者事件 都行.用于保存.当然可以对应您的相应需要的校验都通过后才可保存.写如下代码进行保存数据. if dw_1.update() >o then//更新保存数据; 1 -成功;-1-失败 commit;//提交数据 else rollback;//回滚数据 end if 同时要注意 在数据窗口对象控件 即在 dw_1所用到的数据窗口对象编辑画板中的update properties 设置正常(即更新属性). 具体查看 打开rows选单-update properties-Allow updates挑对勾!-upateable columns 选中要可以提交更新保存的字段.随后点击ok保存配置 即可
5,PB中如何编程将光标定位在DataWindow控件的某行某列数据上?
使用rowscopy是可以实现的最简单的方法。 但是要求两个数据窗口的字段顺序相同才可以使用这个语法。 如果你所说的复制是两个数据窗口字段顺序或者个数不同,都是不可以直接使用rowscopy的。因为rowscopy要根据字段顺序逐个的复制到对应的上面。 dw_1.rowscopy(1,dw_1.rowcount(),Primary!,dw_2,1,primary) 以上语句实现dw_1的数据复制到dw_2中去,从dw_2的第一行开始。 另外的方法,就是笨方法了,使用for循环配合着getitem和setitem来实现。 dw_1逐行逐列的取值,dw_2逐行逐列的赋值。 把当前行和当前列设置为您想得到光标的那个"单元格",同时程序里面加一句dw_1.setfocus()以便启动后就可得到,这里必须满足一个要求:即dw_1的tab值一定要大于0。
6,PB数据窗口取值问题
如果要从DataWindow的指定行和列中获取数据,就要使用GetItem系列的函数。这个系列的函数共有五个,分别是对字符串、数字、日期、日期时间和小数。
语法格式:
dw_control.GetItemString(rownumber,column)
dw_control.GetItemNumber(rownumber,column)
dw_control.GetItemDate(rownumber,column)
dw_control.GetItemDateTime(rownumber,column)
dw_control.GetItemDecimal(rownumber,column)
其中,rownumber参数表示行号,column可以是列号或列名。
设置DataWindow内指定行列处的数据只要使用一个SetItem()函数就可以了。
语法格式:
dw_control.SetItem(rownumber, column, value)
其中rownumber表示行号,column可以是列号,也可以是列名,value表示要设置的值。但是该必须与DataWindow中指定的行列处的数据类型一致,不然PowerBuilder会报错。
SetItem()函数返回1时表示成功,返回-1时表示失败。
7,如何用函数公式在EXCEL表格中将中文变成助记码
使用方法: 1、 打开要生成的EXCEL文件,选择工具--宏---Visual Basic编辑器(快捷键:alt+f11) 2、 选择:插入--模块--把下方的代码粘贴到里面,保存 3、 代码部分: Function PinYin(Hz As String) Dim PinMa As String Dim MyPinMa As Variant Dim Temp As Integer, i As Integer, j As Integer PinMa = "a,20319," PinMa = PinMa & "b,20283," PinMa = PinMa & "c,19775," PinMa = PinMa & "d,19218," PinMa = PinMa & "e,18710," PinMa = PinMa & "f,18526," PinMa = PinMa & "g,18239," PinMa = PinMa & "h,17922," PinMa = PinMa & "j,17417," PinMa = PinMa & "k,16474," PinMa = PinMa & "l,16212," PinMa = PinMa & "m,15640," PinMa = PinMa & "n,15165," PinMa = PinMa & "o,14922," PinMa = PinMa & "p,14914," PinMa = PinMa & "q,14630," PinMa = PinMa & "r,14149," PinMa = PinMa & "s,14090," PinMa = PinMa & "t,13318," PinMa = PinMa & "w,12838," PinMa = PinMa & "x,12556," PinMa = PinMa & "y,11847," PinMa = PinMa & "z,11055," MyPinMa = Split(PinMa, ",") For i = 1 To Len(Hz) Temp = Asc(Mid(Hz, i, 1)) If Temp < 0 Then Temp = Abs(Temp) For j = 45 To 1 Step -2 If Temp <= Val(MyPinMa(j)) Then PinYin = PinYin & MyPinMa(j - 1) Exit For End If Next Else ' 保留非汉字字符 PinYin = PinYin & Mid(Hz, i, 1) End If Next PinYin = Trim(PinYin)End Function4、 保存后,回到EXCEL内容编辑界面 5、 在需要生成助记码的地方。输入公式 =pinyin(相应的汉字单元格)
8,电子表格中如何生成助记码
用宏自定义函数吧。在Excel中同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:
Function SZPY(tmpStr As String) As String
Dim i, j As Integer
j = Len(tmpStr)
For i = 1 To j
SZPY = SZPY & WorksheetFunction.VLookup(Mid(tmpStr, i, 1), _
[{"吖","a";"八","b";"嚓","c";"咑","d";"鵽","e";"发","f";"猤","g";"铪","h";" 夻","j";"咔","k";"垃","l";"呒","m";"旀","n";"噢","o";"妑","p";"七","q";"囕","r";" 仨","s";"他","t";"屲","w";"夕","x";"丫","y";"帀","z"}], 2)
Next i
End Function
回到Excel,在B1输入 =SZPY(A1)
缺点,一些多音字不识别。
9,PB 怎么实现动态更改数据窗口中的内容
PB 怎么实现动态更改数据窗口中的内容
没有指定转换类型:
String[] strs = (String[])areaNames1.values().toArray(new String[0]);
map里有键和值,你不要键了么
List list = new ArrayList(areaNames1.values());
String[] arr = areaNames1.values().toArray(new String[0]);
List fundShopDaos = fundShopService.find1(spin);
List> data = new ArrayList>();
int x=1;
for (FundShopDao fundShopDao : fundShopDaos) {
HashMap item = new HashMap();
item.put("xuhao", x++);
10,powerbuilder 中FIND方法 求举例 各个字符的意思 求解释
long ll_find
ll_find = dw_1.find("emp_id = '1'", 1, dw_1.rowcount())
例子是这样的。
find函数是针对数据窗口控件的函数,也就是查找的主体是数据窗口,所以前边的dw_1是你要查找的数据窗口名字。
find函数中,第一个参数是查找的条件,这个例子,是emp_id字段等于'1'的数据。1使用单引号引起来,说明资格字段是字符型,这个地方根据类型而定。如果是数字,那么就不需要单引号了。
这个地方的条件我们在应用中一般都是动态使用的,举个例子,还是emp_id字段,查找emp_id字段等于用户在sle_1控件中输入的内容,并返回行。
string ls_emp
long ll_find
ls_emp = sle_1.text
ll_find = dw_1.find("emp_id = '" +ls_emp+ "'",1,dw_1.rowcount())
这个例子,emp_id仍然是字符型,如果是数字型,写法如下:
ll_find = dw_1.find("emp_id = " + ls_emp, 1, dw_1.rowcount())
这个条件是拼出来的,所以字符型的字段查找,一定别忘记了单引号。
第三个,也就是例子中的1,是表示查找的起始行,从数据窗口的哪一行开始查找。
最后一个,dw_1.rowcount(),是查找的终止行,最后两个参数合在一起,就是查找的范围。
返回值是long型,返回第一个符合查找条件的行。
如果说要查找最后一个,或者查找所有符合条件的行,需要使用do while循环,不断改变查找的起始行来做。
比如查找第一个符合条件的行是ll_find,循环下一次,就从ll_find + 1开始就可以了。