
这个应该不难吧?
你的窗口上的两个数据窗口,虽然说项目和科目有对应,但是从两个数据窗口上看,应该是各自显示各自的数据吧?更像是一个基础数据的显示,对吧?
然后,你要左右各选择一行,通过一个按钮对应,来实现二者的对应并存储到后台表中,是这个意思么?
那就在对应这个按钮的点击事件中写代码就差不多了。
比如科目的数据窗口是dw_1,项目的数据窗口是dw_2
对应的点击事件:
if dw_1GetRow() <= 0 then return //dw_1没有选择行
if dw_2GetRow() <= 0 then return //dw_2没有选择行
string ls_acct, ls_project //定义变量
ls_acct = dw_1objectacct_no[dw_1GetRow()] //获取当前点击的科目值
ls_project = dw_2objectproject_no[dw_2GetRow()]//获取当前点击的项目值
insert into 对应关系表(科目编号, 项目编号) values (:ls_acct, :ls_project); //插入表
if sqlcasqlcode = 0 then //插入成功
commit; //提交确认
else
rollback; //插入失败,回滚事务
end if
这样你的对照关系就插入成功了,如果你的窗口上还有一个现实对应关系的数据窗口,在这之后直接做retrieve,就能刷新对应的关系在数据窗口显示了。
PB是市净率,等于股价除以每股净资产,
PE是市盈率,等于股价除以每股收益,分动态PE和静态PE,静态PE是股价除以上年(年报)每股收益,动态PE是股价除以目前(季报或者半年报)折算出来的每股年收益。
在不同的软件上显示的位置不一样,但是都可以自己算。
PB,股价看得见,每股净资产在软件右边有显示,找不到的话按F10,基本面资料里面有。
PE,通常软件显示的都是动态PE,就是按最近一次报表数据,比如目前的F10资料里面都是半年报资料,每股收益是半年的每股收益,乘以2就是目前的动态年每股收益,拿目前股价除以这个数就是动态PB。
投资者进入股市之前最好对股市有些初步的了解。前期可用个牛股宝模拟炒股去看看,里面有一些股票的基本知识资料值得学习,也可以通过上面相关知识来建立自己的一套成熟的炒股知识经验。希望可以帮助到您,祝投资愉快!
messagebox('错误','无法取得程序运行路径')haltelseif ll_apphandler<0 then//编译模式
ls_apppath=ls_appname
ls_strtmp=reverse(ls_apppath)
li_pos=pos(ls_strtmp,'\',1)
ls_strtmp=mid(ls_strtmp,li_pos+1)
ls_apppath=reverse(ls_strtmp)
else //PB环境下运行
ls_apppath='D:\ScaleWinInterface'//据实际情况改变
ls_appname=ls_apppath+'\mainexe'//同上lb_c=falseend ifend if其中声明PUBLIC FUNCTION uLong GetModuleFileName(ulong hModule,ref string lpFileName,ulong nSize) LIBRARY "kernel32dll" ALIAS FOR "GetModuleFileNameA"
这样ls_apppath即为执行程序的路径。
ls_appname为路径(包括文件名)
以上是得到当前运行程序的路径,如果要得到其他文件的路径,如果知道这个文件名,也就知道它的路径了,不必再找,如果想查找符合某个文件名的所有文件的路径,就要做目录遍历了。这个可以到网站找例子。
可以用datawindow , datastore获取
也可以直接使用sql into语句获取
例如:
SELECT emp_name, emp_salary
INTO :emp_name_var, :emp_salary_var
FROM employee WHERE emp_id = :emp_id_var;
对于sql语句,如果返回多行,你得使用指针
按F1,HELP会告诉你怎么做,:)
1、得到当前鼠标所指对象所在的带区
string str_band
str_band=GetBandAtPointer() //得到当前鼠标所指对象所在的带区
str_band=left(str_band,(pos(str_band,'~t') - 1))//得到"header"、"detail"等
if str_band<>'header' then return //单击非头区,退出
2、得到鼠标指向的列对象名
str_object=GetObjectAtPointer() //得到当前鼠标所指对象名
str_object=left(str_object,(pos(str_object,'~t') - 1))
//得到列对象名(默认为列名_t为列标题)
str_column=left(str_object,(len(str_title) - 2))
//判断该名称是否为列名字
if thisdescribe(str_column+"band")='!' then return //非是列名,即列标题不是按正常规律起名的。
3、得到当前行、列,总行、列 //this 针对数据窗口而言
li_col = thisGetColumn()
li_ColCount = long(describe(this,"datawindowcolumncount"))
ll_row = thisGetRow()
ll_RowCount = thisRowCount()
//设置当前行、列
scrolltorow(this,ll_Row)
setrow(this,ll_Row)
setcolumn(this,li_col)
thisSetFocus()
4、得到所有列标题
ll_colnum = Long(dw_1objectdatawindowcolumncount)
for i = 1 to ll_colnum
//得到标题头的名字
ls_colname = dw_1describe('#' + string(i) + "name") + "_t"
ls_value = dw_1describe(ls_colname + "text")
next
5、如何用代码取得数据窗口汇总带计算列的值
String ls_value
ls_value = dw_1Describe("Evaluate("'compute_1',1)")
//如果是数值型,要转换。
GraphicObject which_control
DataWindow ldw_object
which_control = GetFocus()
If TypeOf(which_control) = datawindow! Then
ldw_object = which_control
ldw_objectInsertRow(0)
End If
以上就是关于PB中两个数据窗口中的数据相关联,一一对应。全部的内容,包括:PB中两个数据窗口中的数据相关联,一一对应。、如何查询或者获取一支股票的pe,pb、PB怎样获取文件路径用什么函数谢谢!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)