(изменено: iui, 4 марта 2015г. 17:50:26)

Тема: работа с таблицей

Подскажите пожалуйста, почему, когда я записываю скриптом значение в атрибут таблицы (TDMS 4), строки этой таблицы меняются местами!! Код такой:
Set rtable = ThisObject.Attributes("ORD_APPROVAL_TABLE")
...
rtable.Rows(i).Attributes("ORD_APPROVAL_RESULT")= "Согласовано"
          rtable.Rows(i).Attributes("ORD_DATE")= Date

В свойствах таблицы стоит флаг "сортировка запрещена", впрочем без него было то же самое! согласование последовательное поэтому порядок мне важен!

Re: работа с таблицей

iui пишет:

Подскажите пожалуйста, почему, когда я записываю скриптом значение в атрибут таблицы (TDMS 4), строки этой таблицы меняются местами!! Код такой:
Set rtable = ThisObject.Attributes("ORD_APPROVAL_TABLE")
...
rtable.Rows(i).Attributes("ORD_APPROVAL_RESULT")= "Согласовано"
          rtable.Rows(i).Attributes("ORD_DATE")= Date

В свойствах таблицы стоит флаг "сортировка запрещена", впрочем без него было то же самое! согласование последовательное поэтому порядок мне важен!

Это такая фича TDMS 4. Лечится только сортировкой. Проблема будет исправлена, но уже в новых TDMs

Re: работа с таблицей

Сталкивался, вроде вот это мне помогло

' *************************************
' Функция вставяет строку в таблицу мониторинга на позицию следующую за pRow
Sub AppendMonitoringDate(oRows, pRow, nRow)
iPosition = 0
  With oRows
    For i = 0 To .Count -1
      iPosition = iPosition + 1
      If .Item(i).Handle = pRow.Handle Then 
        iIndex = i
      Else
       .Move .Item(i), i
      End If
    Next
    .Move .Item(nRow.Handle), iIndex +1
    .Update
  End With
End Sub

' *************************************
' Функция обновляет значение поля таблицы сохраняя существующую сортировку
Sub UpdMonitoringDate(oRows, oRow,sAttrName, vValue)
  With oRows
    .Item(oRow).Attributes(sAttrName) = vValue
    For i = 0 To .Count -1
      .Move .Item(i), i
    Next
    .Update
  End With
End Sub