PB DataWindow的3七个技术

图片 1

选用德州仪器的vuforiaSDK

一 使DataWindow列只好扩展不能改改
哪些使DataWindow中的数据只好扩充新记录而无法修改,利用 Column 的 Protect
属性能够很有益的成就那点,方法如下:
将每1列的 Protect 属性设置为:
If( IsRowNew(), 0, 1) )
在 PowerScript 中能够动态修改 Protect 属性:
dw_1.Modify(“column_name_here.Protect=’1~tIf(IsRowNew(),0,1)'”)
如此,DataWindow 中唯有新扩大的记录可修改,而其余记录是只读的。
2 怎样在DataWindow中完成列的全自动折行
我们在PowerBuilder应用程序的付出进度中, 使用DataWindow时, 平日会遇
到某列的数额太长, 不能够而且整个展现的景况. 若使用电动水平滚动, 操作起
来又不够简便. 上边介绍1种方法, 达成列数据多行突显, 即达成列数据的自
动折行.具体步骤如下:
一) 在DataWindow Painter中开拓此DataWindow.
二) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.
3) 选择Position标签, 选中Autosize Height 多选框.
4) 选择Edit标签, 不选中Auto Horz Scroll多选框.
5) 单击OK按钮, 保存所做的修改.
陆) 点中Detail Band (即写有Detail的赤褐长带), 单击鼠标右键, 选用
Properties… 菜单项.
7) 选中Autosize Height多选框.
捌) 单击OK按钮, 保存所做的修改.
9) 保存此DataWindow.
注意:
连在1起的汉字(中间未有标点或空格分隔), 系统将认为是3个单词, 不
会自动实行折行.
三 在多少窗口中贯彻动画
要兑现动画,必要求有定时器,在数额窗口中早已有了二个定时器,双击数据窗口将弹出的对话框,在Timer
Interval中定义大于零的值就有定时器(可以确切到微秒),有了那几个定时器就足以兑现动画了。比如要改变某字段的背景颜色,可设
ackgound.color=RGB(Integer(Right(string(now(),’hhmmssf’),1))*256/10,Integer(Right(string(now(),’hhmmssf’),1))*256/10,0)
  当然,您不仅能够变更背景颜色,而且能够变动字体等等任何性质,使她得以动起来!
四 使数据窗口中的被选中行具有越来越好的外观
世家都知道,在选用数据窗口中的某一行时,借使选拔pb提供的挑选函数SelectRow(),那么的外观真是无法卖好,单调而蠢笨的黄绿背景,大概和您的上佳而生动的应用程序格格不入。有没有方法改变啊?当然有啰,请听自个儿慢慢道来。
  
改变某一行的背景比较不难,改变每1列的背景属性(backgroundcolor)即可,可要依据鼠标选择情况自行改变,并得以回来被选中的行或许还索要肯定的技艺。下面分单行选取和多行选取分辨表明。
单行采取
  单行接纳相比较不难,大家假设将全体字段的背景观的表明式改为:
if(GetRow()=CurrentRow(),RGB(255,126,0),RGB(0,0,0))
  在那之中第3个颜色为被入选的水彩,第二个颜色未被选中的颜色。然后用GetRow()代替GetSelectedRow()函数来收获被入选的行。
多行选取
  多行选取相比较复杂,若是仅仅依靠改变多少窗口的属性无法达成,大家必须选用数据窗口属性和代码结合起来才能达成
  首先,改变多少窗口的SQL语句,扩充一个划算字段:0 as flag,Select
语句改为:
Select col1,col2 ,1 as flag from tablename where …..,
  当重回数据窗口painter时,您就会发现多了四个字段flag,我们即使使用这一个字段保存行被选中的消息。
  其次,修改种种字段的背景颜色属性,设置为:if(flag=一,RubiconGB(25伍,1二6,0),普拉多GB(25伍,255,25伍))
  第三:在数量窗口控件中,扩大对clicked 事件的拍卖,代码如下:
if row<1 then return // setredraw(false)
if this.o b j e c t.flag[row]=一 then
//假诺该行被入选,打消选用,不然选中该行
 this.Object.flag[row]=0
else
 this.Object.flag[row]=1
end if
setredraw(true)
你还足以定制本选中央银行的字体,文本属性等等。原理相同,不再赘述。
五 将日期型字段早先化为当天的日子
   使用 Column Specifications
对话框来安装数据的伊始值是三个相比较好又相比较通用的方法。为了将日期型字段早先化为当天的日子,只要设置开始化值为today,而不是today()即可。同样设置初始值为NUll,能够使用null,而不是
null()。
陆 在DataWindow中调整列顺序
在 Gird 风格的 DataWindow 中,列的排列顺序是循途守辙你接纳 Column
的顺序排列的,并且无法改变.要改变列的逐条则必须重新创设 DataWindow.
新近自个儿发觉2个措施能够变动列的依次: 在 DataWindow 画板中打开要修改的
DataWindow,然后按 ‘Preview’
按钮切换来预览形式下,接纳要活动的列标题并拖动到预订地点,然后返回DataWindow 画板,存盘即可.
七 Retrieve时不拔除原有Datawindow数据
当您调用Retrieve函数,PowerBuilder自动清除原有DataWindow然后Retrieve数据。在Datawindow
RetrieveStart事件中,使用Return
二,那样PowerBuilder不会清除原有数据而是扩张新数据。
八 美化DataWindow的呈现效果
使DataWindow
的单双行突显颜色各异,不仅仅能够使你的应用程序更显专业性,并使数据的可读性增强。先调出你需求转移的DataWindow,在Detail
band按下右键采用Properties,选用Tab页中的Expressions,在color属性中输入下边内容:(注意是在Detail明细展现段按右键,而不是在Column上)
IF(MOD(GETROW(),二)=0,PRADOGB(1玖二, 1玖二, 1九贰), CRUISERGB(255, 25伍, 255))
登时Preview一下,看壹看效果怎样。
九 用Line建立优质的Grid DataWindow的技巧
固然如此PowerBuilder有Grid风格的DataWindow,但不够灵活,若是想打字与印刷一张边框粗线条或双线,内框为细线条的表格直接运用
Grid风
格的DataWindow就无法促成。因而不少人都用Tabular风格的DataWindow,然后本人用Line来兑现Grid。在调动线条地点是一个即伤脑筋又伤眼睛的风浪,而只要需求调动行高,全数工作都得重来,试一试用下边方法,会大大减轻你的工作量:
在vertical lines,改变它的天性,在Expressions
Tab上,y1行上输入0,y二行上输入rowheight() – 一 在horizontal lines, 设置
y一 和 y二 = rowheight() – 五那样PowerBuilder会自动调整线的坐标,你只须求设置横线的长短和x一,x二的坐标即可。
马上Preview一下,看1看效果!你再也不供给因为行的惊人产生变更而再一次调整线条地点。
⑩ 如何创立一个报表,如下方式
Quantity Running Total
5,000 5,000
2,500 7,500
3,000 10,500
12,000 22,500
  对于Running Total列,大家可利用总结列:CumulativeSum(Quantity for
all),即可实现逐步递增求和的功效。
1一数据窗口的多少送缓冲区从前确认的多个步骤判断数据类型是不是科学。如不正确则触发ItemError事件。判断数据是不是符合有效性规则。如不符合有效性规则,同样触发ItemError事件。判断是或不是有数量被转移。判断数据是还是不是经过ItemChanged事件,要是数额和ItemChanged相斥,将触发ItemError事件。
1贰 怎么着在DataWindow中用数据类型为Datetime的列为条件举办检索
  一.当要寻找的日期条件是一常数时利用如下表达式:
   ls_Find = “datetime_col
    = DateTime (‘1/1/1999’)”
  二.当要寻找的日子条件是五个变量时利用如下的表明式:
   ls_Find = “datetime_col = DateTime (‘” + ls_Date + “‘)”
  3.当要寻找的日子条件是贰个DateTime数据类型时选用如下表明式:
   ls_Find = “datetime_col = DateTime (‘” + String (ldt_DateTime)

网址:https://developer.vuforia.com/

  • “‘)”
    壹三 设置数据窗口Boolean型属性的三种办法
      PowerBuilder提供了几种办法设置数据窗口的布尔型属性,分别是True/False,
    1/0, ‘Yes’/’No’。例如:
    dw_1.Object.address.Visible = 0 dw_1.Object.address.Visible = False
    dw_1.Object.address.Visible = ‘No’
      PowerBuilder在处理上以字符串的款式保留属性,而不思量属性值是布尔型、长整型或是字符型。
    为了特别驾驭,能够导出1个数额窗口并查阅它的原码,能够窥见即便是列的水彩属性它也是行使带双引
    号的数字来公布。
    1四 怎么样在DataWindow中火速删除多行
      在付出进度中大概时时有要拓展多行删除的操作,1般都使用循环语句进行操作:
    FOR ll_RowOn = 1 TO dw_1.RowCount() dw_1.DeleteRow(ll_RowOn) NEXT
      四个飞快的去除方法是把要刨除的行从主缓冲区中移到删除缓冲区中。例如,删除缓冲区中全数的行:
    dw_1.RowsMove(dw_1, 1, dw_1.RowCount, Primary!, dw_1, 1, Delete!)
      可是并非忘了过滤的行在差异的缓冲区中。
    一伍 如何在DataWindow的SQL语法中不使用SELECT DISTINCT完结删除重复的行
      起始对你要显得唯1值的列实行排序:”city
    A”,然后扩张如下过滤字符串:” city < > city [-1] or GetRow () =
    1″
    16 如何在分组方式的DataWindow中分别展现各组的行号
      当我们为Datawindow的每一行展现行号时,能够回顾的放三个表达式为GetRow()计算列。可是对于分组的Datawindow,要分头展现各组的行号,则应采纳表明式为
    GetRow() – First(GetRow() for Group 一) + 1的计算列。
    17 怎么着转移列的字体颜色,提醒用户此列已做修改
      在列的Color属性中,输入如下表明式
    IF (column_name < >column_name.Original, RGB(255, 0, 0), RGB(0,
    0, 0))。
      在那些条件中,即使此列已改变,则显得青色字体,否则展现深灰字体。那几个表明式重要用column_name
    < >
    column_name.Original比较当前列的值和原始列的值是还是不是1律来达到判断的目标。
    18 在多少窗口中移走行,但不是去做过滤或删除操作
      RowsDiscard()函数可成功那或多或少,它在数据窗口中进行移除工作,但被移走的行它不可被删去或做此外修改性的保存。
    1九 怎样在多行呈现的DataWindow 中的Footer
    Band中呈现当前数量的首行和终极行的行号
      大家先看多个总结列的表达式: IF (GetRow() = First(GetRow() FOLacrossePage), 一, 0) // 一 为当前页的率先行
    IF (GetRow() < > 1 AND GetRow() = Last(GetRow() FOENCORE Page), 1, 0)
    // 壹 为当前页的末了一行
      由地点可见,在Footer Band中装置如下总结列表明式:
    ‘Rows ‘ + String(First(GetRow() FOR Page)) + ‘ to ‘ +
    String(Last(GetRow() FOR Page)) + ‘ are displayed’。
    即可达成那项功用。
    20 使可编写制定的数码窗口只读
    突发性,你大概要求将2个用于编制程序的数目窗口用作展现指标,能够有以下三种艺术来促成那一供给:
    一.确立多个数据窗口,贰个用于编辑,三个用来显示
    二.将数据窗口中的全部指标的taborder设置为0.
    三.也得以将数据窗口中的列的protect属性设为On或Off,但你不能够使用protect属性进行编写制定操作
    肆.数量窗口有一个将datawindow设为只读的性质(readonly),使用它最便宜。
    2一 数据窗口检查重复行
    dw_1.SetSort (“user_id A”)
    dw_1.Sort()
    dw_1.SetFilter (“user_id = user_id[-1]”)
    dw_1.Filter()
    if dw_1.RowCount() > 0 then
    Messagebox(“注意”, “用户编码重复.”)
    end if
    dw_1.SetFilter (“”)
    dw_1.Filter()
    2二 怎么样在分组格局的DataWindow中分头显示各组的行号

图片 2


小编们想要使用vuforia首先得登记3个账号

当大家为Datawindow的每一行显示行号时,能够回顾的放2个表达式为GetRow()

计算列。不过对于分组的Datawindow,要分头显示各组的行号,则应选拔表明式为
GetRow() – First(GetRow() for Group 一) + 一的计算列。
二三 如何能让多少窗口的某几列在任何列横拉时一向不动
////////////////////////////////////////////////////////////////
// 功用表明:用于冻结左侧的滚动栏
// 变更记录: 变更或版本更新的时候
//
////////////////////////////////////////////////////////////////
int i
if pane = 1 then
i = integer(this.o b j e c t.datawindow.horizontalscrollposition2)
if i < 1 or isnull(i) then return
if scrollpos > 0 then
this.o b j e c t.datawindow.horizontalScrollPosition = 0
end if
else
i = integer(this.Object.DataWindow.HorizontalScrollSplit)
if i < 1 or isnull(i) then return
if i > scrollpos then
this.o b j e c t.datawindow.horizontalScrollPosition2 = i
end if
end if
24在数据窗口中如若要使个中1列的性质为只读,相当于差异意用户修改,那么只需不难地将这一列的Table
Order 设置成0就可。然则,在有点情状下
急需对这一列的一些行修改,而1些行不可能改改,这就要用到那壹列的protect属性了。打开列的性质中的Expressions,在protect中输入条件判别
式。例如:允许用户修改新扩大的记录,而追寻出来的记录则不允许修改。条件判别式可以写成如下:
if(isRowNew(),0,1)
在 PowerScript 中能够动态修改 Protect 属性:
dw_1.Modify(“column_name_here.Protect=’1~tIf(IsRowNew(),0,1)'”)
如此那般,DataWindow 中唯有新增添的笔录可修改,而其它记录是只读的。
25 控制DATAWINDOW里每页展现的行数
壹、在Datawindow中扩展一个计算域,起名称为:ceil_page,此总括域必须放在Detail段中,
Expression中输入 ceiling(getrow()/25)
二5表示每页打字与印刷贰伍行,也足以是五个参数。
二、分组,选取菜单RowsCreate Group,采用ceil_page
按ceil_page分组,并当选New Page On Group
Break(意思是新组起头时换页)。
三、将此总括域设为隐藏(在属性页中的expression页中在visible属性中写0)。
4、补空行:
在窗口的open事件中写如下代码:
long li_count,li_i
li_count=dw_1.retrieve()
if mod(li_count,25)<>0 then
for li_i=1 to 25 – mod(li_count,25)
dw_1.insertrow(0)
next
end if
26 数据窗口的closeQuery事件:提醒保存数据
dw_1.AcceptText()
IF dw_1.ModifiedCount() + dw_1.DeletedCount() > 0 THEN
CHOOSE CASE
MessageBox(“操作提示”,”数据已经发生变化,是不是保存?”,Question!,YesNoCancel!,1)
CASE 1
cb_save.TriggerEvent(clicked!)
CASE 2
Return 0//不做任何操作直接关门窗口
CASE 3
Return 1//不会运维Close 伊芙nt,维持原来的动静
END CHOOSE
END IF
2七 Getchild函数首要被用来收获贰个数量窗口的子数据窗口
该函数在三种情况下得以行使,一、取出数据窗口对象的下拉式数据窗口;
2、取出复合风格(composite)数据窗口对象里所安置的子数据窗口对象。
语法:integer dwcontrol.GetChild (string name, REF DataWindowChild
dwchildvariable )
事例1那段程序取出一个composite数据窗口对象的四个子数据窗口,并对他们进行过滤,和排序的操作。
/*dw_dy是接连3个composite数据窗口对象的三个数量窗口控件。dw_1、dw_2各自是嵌套的数目窗口的NAME*/
String ls_filter
DataWindowChild dwc_czrw,dwc_czx//定义子数据窗口变量
dw_dy.Settranso b j e c t(sqlca)
dw_dy.Retrieve()
dw_dy.GetChild(“dw_2”,dwc_czrw)
dw_dy.Getchild(“dw_1”,dwc_czx)
ls_filter = “czrw_bh =
‘”+dw_3.GetItemString(dw_3.GetRow(),”czrw_bh”)+”‘”//过滤条件
dwc_czrw.SetFilter(ls_filter)
dwc_czrw.Filter()
ls_filter = “czx_rwbh =
‘”+dw_3.GetItemString(dw_3.GetRow(),”czrw_bh”)+”‘”
dwc_czx.SetSort(“czx_sx A”)
dwc_czx.Sort()
dwc_czx.SetFilter(ls_filter)
dwc_czx.filter()
理所当然也足以由此数据共享(ShareData)等艺术操作子数据窗口中的数据。
做客复合数据窗口对象.方法 :dw_dy.o b j e c t.dw_1.o b j e c t.对象
事例二 下拉数码窗口动态过滤
在数量窗口dw_1的ItemFocusChanged事件中写入如下脚本:
Integer rtncode
String ls_nowFld,ls_deptid,ls_sql
DataWindowChild fld_child
rtncode = dw_1.GetChild(“Unit_id”,fld_child)
//获得Unit_id字段名下拉数据窗口的句柄
If rtncode = -1 Then MessageBox(“错误!”, “不是下拉数据窗口!”)
fld_child.SetTransObject(SQLCA) //设置事务对象
ls_sql = Lower(fld_child.GetSQLSelect())// 获得DDDW的SQL语句
// 去除Sql 语句中的Where条件子句, 如原Sql
语句中须有Where条件子句,此处则需举行较
//复杂的处理,应视具体情形而定。
if Pos(ls_sql, ” where “)>0 then ls_sql = Left(ls_sql,Pos(ls_sql,
” where “))
//重新设置Sql 语句中的Where条件子句
ls_deptid=dw_1.Object.dept_id[GetRow()] //取安妥前dept_id选定值
ls_sql = ls_sql + ” Where dept_id = ‘” +Trim(ls_deptid)+”‘”
//重新设置Sql 语句
fld_child.SetSQLSelect(ls_sql)
fld_child.Retrieve()//取得满足条件的数量
28 从数据窗口中获取数据
单条:假使大家要读取dept_id字段的率先笔数目,能够用下列方法表示∶li_id
= dw_1.o b j e c t.dept_id[1]
假定大家要读取第壹行中第3个字段的多少,能够用下列方法表示∶ls_name =
dw_1.o b j e c t.DATA[1,2]
比方大家要读取dept_id字段的保有数据,能够用下列方法表示∶li_array =
dw_1.o b j e c t.dept_id.CURRENT
若果大家要读取过滤缓冲区 (filter buffer)
内dept_id字段的首先笔数目,能够用下列格局表示∶li_id = dw_1.o b j e c
t.dept_id.Filter
[1]
假设大家要读取从第二笔数额的第3个字段到第三笔数额的二个字段之间的数据,表示∶lstr_array
= dw_1.o b j e c t.DATA[2,1,3,2]
固然大家要读取整个第二笔的数码,能够用下列方法表示∶lstr_dept = dw_1.o
b j e c t.DATA[2]
使用GetItemX ( )函数 x为string number等
lstr_name = dw_1.getitemstring (li_count , “emp_name”)
li_count为哪一条
多条:string ls_name[ ]
ls_name = dw_ 1.o b j e c t.emp_name.current
数量的读取 一般格式∶数据窗口控件.Retrieve ( ) 重回个数 ,-一为不当
日增数据 数据窗口控件.InsertRow (行数) 参数为0加到结尾
多少的删除 数据窗口控件.Deleterow (行数)
数码的过滤l 数据窗口控件.SetFilter (条件字符串).
数码窗口控件.Filter ( ) 用法∶将重视缓冲区 (Primary Buffer)
内不合乎过滤条件的数量移到过滤缓冲区 (Filter Buffer)
内。
例子:string ls_exp ls_exp = “dept_id = 100” dw_1.SetFilter
(ls_exp) dw_1.Filter ( )
排序 dw_1.SetSort (“dept_id”) dw_1.Sort ( )
将数据从有着的缓冲区 (Buffer) 中革除 dw_1.ReSet ( )
计量数据数目。例如∶dw_1.Rowcount ( ) 类似: .DeletedCount ( )
.ModifiedCount ( ) .FilteredCount ( )
数量窗口的滚动 数据窗口控件.ScrollToRow (行数)
2九 数据窗口属性改变:
叙述数据窗口对象自作者颜色,能够象征如下∶long ll_color ll_color =
dw_emplist.Describe (“DataWindow.Color”)
讲述数据窗口对象内标题 dept_id_t 的水彩,能够表示如下∶long ll_color
ll_color = dw_emplist.Describe (“dept_id_t.Color”)
修改数据窗口对象自作者颜色,可以表示如下:dw_emplist.Modify
(“DataWindow.Color = 255”)
修改数据窗口对象内标题 dept_id 的水彩,能够代表如下∶dw_emplist.Modify
(“dept_id_t.Color = 255”)
即使当我们意在在程序运维阶段才给予下行条件∶薪酬超过 60000
时显得粉红白,低于 40000 时显得玉米黄。程序的写法如下∶
ls_modstring = “Salary.Color = ‘0~tIf (Salary > 50000,255,0) ‘”
dw_1.modify (ls_modstring)
30 得到当前鼠标所指对象所在的带区
string str_band
str_band=GetBandAtPointer() //获得当前鼠标所指对象所在的带区
str_band=left(str_band,(pos(str_band,’~t’) –
1))//得到”header”、”detail”等
if str_band<>’header’ then return //单击非头区,退出
31 得到鼠标指向的列对象名
str_o b j e c t=GetObjectAtPointer() //获得当前鼠标所指对象名
str_o b j e c t=left(str_o b j e c t,(pos(str_o b j e c t,’~t’) –
1))
//获得列对象名(私下认可为列名_t为列标题)
str_column=left(str_o b j e c t,(len(str_title) – 2))
//判断该名称是不是为列名字
if this.describe(str_column+”.band”)=’!’ then return
//非是列名,即列标题不是按不荒谬规律起名的。
3二 获得当前行、列,总行、列 //this 针对数据窗口而言
li_col = this.GetColumn()
li_ColCount = long(describe(this,”datawindow.column.count”))
ll_row = this.GetRow()
ll_RowCount = this.RowCount()
//设置当前行、列
scrolltorow(this,ll_Row)
setrow(this,ll_Row)
setcolumn(this,li_col)
this.SetFocus()
3三 获得全部列标题
ll_colnum = Long(dw_1.o b j e c t.datawindow.column.count)
for i = 1 to ll_colnum
//得到标题头的名字
ls_colname = dw_1.describe(‘#’ + string(i) + “.name”) + “_t”
ls_value = dw_1.describe(ls_colname + “.text”)
next
3肆 如何用代码取得数据窗口汇总带总括列的值?  
String ls_value
ls_value = dw_1.Describe(“Evaluate(“‘compute_1’,1)”)
设借使数值型,要更换。
3伍 取得单击的列标题、列名、数据库字段名
string ls_dwo
long ll_pos
string ls_type
string ls_title
string ls_column
string ls_dbname
if Not KeyDown(KeyControl!) then return
ls_dwo = dwo.Name
if trim(ls_dwo) = ” or isnull(ls_dwo) then return
ls_type = This.describe(ls_dwo + ‘.type’)
if ls_type = ‘column’ then
ls_title = This.describe(ls_dwo + ‘_t.text’)//标题
ls_column = This.describe(ls_dwo + ‘.Name’) //数据窗口列名
ls_dbname = This.describe(ls_dwo + ‘.dbname’) //数据库中字段名
messagebox(‘信息’, ‘标 题 文 本 :’ + ls_title + &
‘~r~n数据窗口列名 :’ + ls_column + &
‘~r~n数据库中字段名:’ + ls_dbname )
end if
36
窗口为w_gcde内,放入三个DW_一,怎么着获得dw_壹内的某列值yuonghu_id列的剧情
方法:
long lng_column_count
integer i
string str_column[] //列名
string str_column_text[]  //text的名字
  //获得数码窗口的总列数
  lng_column_count =
long(dw_1.Describe(“DataWindow.Column.Count”))
  //循环依次读取
  for i = 1 to lng_column_count
  str_column[i] = dw_1.Describe(“#”+string(i)+”.name”)
   str_column_text[i] = dw_1.Describe(str_column[i] +
“_t.text”)
  next
三柒 在DDDW中贯彻当前高亮行随鼠标移动
DataWindowChild ldwc_Child
String ls_Pointer
Long ll_Row
GetChild( “dept_id”, ldwc_Child ) // Replace the column name
“dept_id” as you needed
IF hwndchild = Handle( ldwc_child ) THEN
if notificationcode = 2311 then //DDDW的mousemove事件
//获得鼠标所在行
ls_Pointer = ldwc_Child.GetObjectAtPointer()
ll_Row=Long( Mid( ls_Pointer, Pos( ls_Pointer, “~t” ) + 1 ))
//移到鼠标所在行
IF ldwc_Child.GetRow() <> ll_Row AND ll_Row > 0 THEN
ldwc_Child.ScrollToRow( ll_Row )
END IF
end if
END IF
3八 达成打字与印刷完二个DataWindow后不换页
率先将datawindow的print输出到3个打字与印刷文件中,把其它的print也输入那一个prn,然后,打字与印刷这几个打字与印刷文件就行了。
如:
datawindow_control1.object.datawindow.print.filename=”c:printfilepathexam_1.prn”
datawindow_control2.object.datawindow.print.filename=”c:printfilepathexam_1.prn”
dw_1.print()
dw_2.print()
run(“print //d:\printservenamesharename “c:printfilepathexam_1.prn”)
//d:\printservenamesharename打字与印刷机名

图片 3

网址会发送邮件给你的信箱

图片 4

点击验证链接,验证邮箱

图片 5

出现此音信代表表明成功,即可登录

图片 6

签到成功后即可下载SDK,能够根据你的内需下载,提议下载最新版,那里本人使用unity三d作为开发工具

图片 7

行使vuforia供给授权的执照,所以那里大家第二创造一个证照

图片 8

那里大家采取开发版,vuforia对开发版免费,其余收取费用可知Pricing

图片 9

起贰个门类的名字

图片 10

允许协商

图片 11

采纳项目名称即可取得执照

图片 12


接下去我们还索要创制识别数据库

图片 13

选择Target Manager

图片 14

始建2个数据库

图片 15

指出数据库起名:项目名_DB

图片 16

创立完毕后,点击数据库名字配置识别图

图片 17

跻身后选用添加目的

图片 18

单图识别,选取上传一张图纸

图片 19

上传实现后,系统会自行依据识别品质打星,品质越高,评星越高,建议大家上传识别度高的图形

图片 20

收到便是下载配置好的鉴定分别数据库

图片 21

本案例选用Unity编辑器,你能够依照本身的供给选用

vuforia官网使用教程甘休,本节下载的材质请保留,下节课将运用这么些素材

原稿由博主 乐智 编撰,版权归博主全体。

原稿地址 http://www.dtblog.cn/1191.html 转发请申明出处!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图