Tabs PowerBuilder在选项卡式数据窗口中的粘贴
我最近在一家公司开始了一份新工作,我的第一项任务是为他们更新一些非常旧的软件 有一个很大的背景故事,但基本上该软件是用PB8编写的(大约在1997年),公司内没有人(包括我)在使用PowerBuilder之前有过任何经验,作为一名新手,我的任务是更新和维护它,直到更换件获得批准并可以开发 我们有PowerBuilder 12.5的许可证,所以我使用PB12.5 Classic来做所有事情。无法联系原始开发人员以获得支持,并且不存在任何文档 我想了解的一件事是,如何确定函数的定义位置和变量的取值位置,这将对未来有很大帮助 我目前正在处理的示例是以下场景。 有一个带有选项卡的数据窗口,名为Tabs PowerBuilder在选项卡式数据窗口中的粘贴,tabs,powerbuilder,Tabs,Powerbuilder,我最近在一家公司开始了一份新工作,我的第一项任务是为他们更新一些非常旧的软件 有一个很大的背景故事,但基本上该软件是用PB8编写的(大约在1997年),公司内没有人(包括我)在使用PowerBuilder之前有过任何经验,作为一名新手,我的任务是更新和维护它,直到更换件获得批准并可以开发 我们有PowerBuilder 12.5的许可证,所以我使用PB12.5 Classic来做所有事情。无法联系原始开发人员以获得支持,并且不存在任何文档 我想了解的一件事是,如何确定函数的定义位置和变量的取值位
tab\u detail
每个选项卡显示树列表中不同的橙色小人物
其中一个称为dw_detail
,它允许粘贴数据。其他选项卡都不允许粘贴数据,但我希望它们可以dw_detail
有一个事件rbuttondown()
,其中包含以下代码:
Window w_parentwin
If ib_add_mode Or ib_chg_mode Then
w_parentwin = Parent.GetParent().GetParent()
m_dwpaste m_pop_paste
m_pop_paste = CREATE m_dwpaste
m_pop_paste.idw_data = This
If ii_agent_code > 0 And Not IsNull(id_period) And Clipboard() <> "" Then
m_pop_paste.m_popup.m_paste.Enabled = TRUE
Else
m_pop_paste.m_popup.m_paste.Enabled = FALSE
End If
m_pop_paste.m_popup.PopMenu(w_parentwin.PointerX(), w_parentwin.PointerY())
DESTROY(m_pop_paste)
End If
我修改了函数以使用windowsSelectedTab
属性。数据现在将粘贴到选项卡中,但粘贴到错误的输入字段中。我进一步查看,发现ImportClipboard
函数的数据列没有对齐
更改所选数据库列顺序的最佳方法是什么
以下是我所说的选项卡的屏幕截图:
因此,在主程序窗口中,有上面的选项卡,在每个选项卡(输入字段所在的位置)中有一个标有dw\uu
前缀的数据窗口
非常感谢您的帮助。我认为您首先应该做一些简短的教程。请查看以下内容: 这些都是简短而有用的 另一方面,您可以在自己的“监视变量”列表中选择特定变量,因此不必搜索多个变量。您可以右键单击变量名并进行快速监视,也可以在监视窗口中插入变量名
比尔。Gábor带有上下文菜单的操作分为两次:
- 处理鼠标右键单击以显示上下文菜单
- 在弹出菜单提供的一个或多个操作中执行一个操作
clipboard()“”
)中有内容,则显示了使用PopMenu()
显示菜单的pbscript,但您可能没有注意到粘贴操作在其他地方
查看m_弹出窗口
:其中必须有一些代码可能是硬编码的,以便粘贴到dw_详细信息
。如果是这样,您可以在窗口实例变量中存储对上下文菜单当前处理的dw的引用
比如:
- 实例变量中的数据窗口idw\U当前
- 然后在
事件rbuttondown()
(这是idw\u current=this
rbuttondown()事件所属的数据窗口)
- 最后,在菜单中重新使用当前的
而不是硬编码的id\u
dw\u细节
- “粘贴”类似于将文本从记事本复制到浏览器表单中;只是将文本放入当前字段
- “粘贴”与另一个数据窗口完全相同,包括脚本中提到的所有相同列都在两个数据窗口中的假设
- “粘贴”类似于此脚本,但为新数据窗口中的数据集定制
- 在脚本中向前或向后搜索
- 在左侧的树中搜索对象名称(当您看到它时会更有意义)
- 搜索对象的其余部分或应用程序的其余部分
// assigns a value on instantiation
int i = 1
// assigns a value when executed
i = 1
// does not assign a value
IF i = 1 THEN
// assigns a value possibly if the parameter is passed by reference (kind of like a pointer to the variable)
f_foo (i)
了解变量范围有助于找到变量的设置。如果变量为
// assigns a value on instantiation
int i = 1
// assigns a value when executed
i = 1
// does not assign a value
IF i = 1 THEN
// assigns a value possibly if the parameter is passed by reference (kind of like a pointer to the variable)
f_foo (i)