Для моего примера кода ниже я использовал файл Spotfire со следующим:
Имя источника данных Spotfire = Store
Имя столбца данных, содержащего дату = [Дата]
Данные были загружены из базы демоданных Spotfire.
Если вы просто хотите очистить таблицу перед загрузкой, вы можете использовать это.
from Spotfire.Dxp.Data import RowSelection, IndexSet
table = Document.Data.Tables["Store"]
table.RemoveRows(RowSelection(IndexSet(table.RowCount, True)))
Если вы хотите удалить все старше, чем в прошлом месяце, но сохранить все более новым, это сделает это. Передача None в функцию last_month приведет к его получению в прошлом месяце по состоянию на сегодня.
from datetime import date, timedelta
from Spotfire.Dxp.Data import RowSelection
def last_month(from_date):
if from_date is None:
from_date = date.today()
end_date = from_date.replace(day=1) - timedelta(days=1)
start_date = date(end_date.year, end_date.month, 1)
return (start_date, end_date)
table = Document.Data.Tables["Store"]
(start,end) = last_month(date(1994,12,6))
rows_to_delete = table.Select("[Date] <= Date('{}')".format(end.strftime("%x")))
table.RemoveRows(rows_to_delete)
Вы можете установить фактическую таблицу в качестве входного параметра для сценария ironpython вместо того, чтобы называть ее непосредственно в сценарии, как я это сделал. Вы можете сделать то же самое с именем столбца даты.