Properties Tibco spotfire;使用ironpython在条件下刷新表
为了在特定条件下刷新表,我编写了以下脚本 我已经创建了一个名为“lob”的文档属性 一些表将根据lob的值进行刷新,而其他表将根据lob的值进行刷新 请注意,某些表可能根本不会刷新。这就是我请求脚本从每个表中删除数据然后刷新的原因 此外,我还创建了一个名为“PiReadyToDisplay”的文档属性。刷新表时,此属性等于“否”。当表的刷新完成时,文档属性等于“是” 表似乎正在根据我的需要进行刷新,但文档属性“pireadytodisplay”并不能正常工作 你发现我的剧本有什么错误吗 提前感谢您的回复Properties Tibco spotfire;使用ironpython在条件下刷新表,properties,refresh,ironpython,spotfire,tibco,Properties,Refresh,Ironpython,Spotfire,Tibco,为了在特定条件下刷新表,我编写了以下脚本 我已经创建了一个名为“lob”的文档属性 一些表将根据lob的值进行刷新,而其他表将根据lob的值进行刷新 请注意,某些表可能根本不会刷新。这就是我请求脚本从每个表中删除数据然后刷新的原因 此外,我还创建了一个名为“PiReadyToDisplay”的文档属性。刷新表时,此属性等于“否”。当表的刷新完成时,文档属性等于“是” 表似乎正在根据我的需要进行刷新,但文档属性“pireadytodisplay”并不能正常工作 你发现我的剧本有什么错误吗 提前感谢
**Script**
Document.Properties["PIAreadyToDisplay"] = "No"
import clr
from Spotfire.Dxp.Data import RowSelection, IndexSet
MyTable = Document.Data.Tables["In Force"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["ACP_IF"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["NAYO_IF"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["In Force"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["pol_start_dt"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["Policy_Info_Fire_append_non_fire"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["policy_info_covers_mani"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["Intermediaries"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["Policy_Info_HH _with_Descriptions"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["Policy_info_Companies_with_descriptions"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
MyTable = Document.Data.Tables["policy_multiple_Usages"]
MyTable.RemoveRows(RowSelection(IndexSet(MyTable.RowCount,True)))
import clr
from System.Collections.Generic import List, Dictionary
from Spotfire.Dxp.Data import DataTable
from Spotfire.Dxp.Framework.ApplicationModel import NotificationService
--- Empty list to hold DataTables
Tbls = List[DataTable]()
str1 = Document.Properties["lob"] ;
str2 = "5049242";
if (str2 in str1)==True:
Tbls.Add(ACP)
str3 = "5049234";
if (str3 in str1)==True:
Tbls.Add(NAYO_IF)
str4 = "Πυρός";
if (str4 in str1)==True:
Tbls.Add(house)
Tbls.Add(companies)
Tbls.Add(use)
Tbls.Add(polstart)
Tbls.Add(interm)
Tbls.Add(covers)
--- Notification service
notify = Application.GetService[NotificationService]();
--- Execute something after tables are loaded
def afterLoad(exception, Document=Document, notify=notify):
if not exception:
Document.Properties["PIAreadyToDisplay"] = "Yes"
else:
notify.AddErrorNotification("Error refreshing table(s)","Error details",str(exception))
--- Refresh table(s)
Document.Data.Tables.RefreshAsync(Tbls, afterLoad)
已解决 要显示文档属性“PiReadyToDisplay”的值: