Перейти к содержимому

Фотография

Rational Robot


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 Cortes

Cortes

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 01 октября 2009 - 12:50

Всем доброго времени суток.
Есть такая проблема есть TreeView , нужно открыть все доки содержащиеся в этом дереве.
Как это вообще делается ??
А то в Robote новичок
  • 0

#2 Pryanik

Pryanik

    Постоянный участник

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 02 октября 2009 - 06:58

Всем доброго времени суток.
Есть такая проблема есть TreeView , нужно открыть все доки содержащиеся в этом дереве.
Как это вообще делается ??
А то в Robote новичок


Предлагаю след. вариант.
1) Получите элементы вашего дерева использую функцию SQAGetChildren.
2) Для всех элементов из п.1 получите их свойства. SQAGetProperty
3) Вызовите метод Click для всех элементов с нужными вам свойствами.

Описание функций с примерами можно посмотреть в документации.
  • 0

#3 Cortes

Cortes

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 05 октября 2009 - 07:33

тут дело в том что нужно сначала раскрыть все дерево. Вот как это сделать просто пройти по всем элементам и отркыть их.
  • 0

#4 Pryanik

Pryanik

    Постоянный участник

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 05 октября 2009 - 07:50

тут дело в том что нужно сначала раскрыть все дерево. Вот как это сделать просто пройти по всем элементам и отркыть их.

Что вы понимаете под словом раскрыть? Зачем это нужно делать? Функция робота найдет все дочерние объекта, а далее в цикле по всем объектам открывайте их.
  • 0

#5 Cortes

Cortes

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 05 октября 2009 - 08:10

Просто не очень понятно как то есть сделать так
Можно так сделать? И он вложенные т.е дочерние элементы откроет ?
For I = 1 To (?Количество нодов в дереве?)
   TreeView DblClick "Name=Tree;\;ItemText=" + Nodes(i).Text, """
 Next I

(?Количество нодов в дереве?) - Как их получить
  • 0

#6 Pryanik

Pryanik

    Постоянный участник

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 05 октября 2009 - 09:16

(?Количество нодов в дереве?) - Как их получить

Я ж вам писал "Получите элементы вашего дерева использую функцию SQAGetChildren."
Эта функция вовращает массив элементов. Кол-во элементов в массиве определяет (?Количество нодов в дереве?).
Цикл следующий:
For n = 0 to UBound(ChildRec) -- где ChildRec ваш массив который вернет SQAGetChildren
  • 0

#7 Cortes

Cortes

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 05 октября 2009 - 09:27

Просто дело в тотм что SqaGetChildren или я тупой или что то не так происходит, но он всегда возращает 1.
Сделал как написано в справке вернул все равно 1 . Пробовал делать так
Dim Result As VAriant 
Dim ChildRec() As String
 Result = SqagetChildren ("Form1.Tree",ChildRec)

Может я его как то не так вызываю ??
  • 0

#8 Pryanik

Pryanik

    Постоянный участник

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 05 октября 2009 - 09:35

Просто дело в тотм что SqaGetChildren или я тупой или что то не так происходит, но он всегда возращает 1.
Сделал как написано в справке вернул все равно 1 . Пробовал делать так

Dim Result As VAriant 
Dim ChildRec() As String
 Result = SqagetChildren ("Form1.Tree",ChildRec)

Может я его как то не так вызываю ??


Это result = 1 - оэначает что функция отработа без ошибок.
Массив возвращаемых дочерних объектов(out параметр) = ChildRec, с ним и работайте;)
Что возвращает UBound(ChildRec)?
  • 0

#9 Cortes

Cortes

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 05 октября 2009 - 09:48

Так уже хорошо
For n = 0 to UBound(ChildRec)
 TreeView DblClick , "Name=Tree;\;Itemtext=" , ""
Next

А как теперь получить текущий элемент и надо его проверять что он вложенный или нет ?
  • 0

#10 Pryanik

Pryanik

    Постоянный участник

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 05 октября 2009 - 09:59

Так уже хорошо

For n = 0 to UBound(ChildRec)
 TreeView DblClick , "Name=Tree;\;Itemtext=" , ""
Next

А как теперь получить текущий элемент и надо его проверять что он вложенный или нет ?


Получайте св-ва элемента массива:
SQAGetProperty ChildRec(n), "св-во", property (в приведенном вами примере, я так понимаю что вам нужно св-во="Itemtext")

Зачем проверять если он итак вложенный?
  • 0

#11 Cortes

Cortes

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 05 октября 2009 - 10:12

То есть, как я понимаю, должно получиться что то вроде
For n = 0 to UBound(ChildRec)
SQAGetProperty  (ChildRec(n),"Itemtext", Value)
TreeView DblClick , "Name=Tree;\;Itemtext=" & Value, ""
Next

  • 0

#12 Pryanik

Pryanik

    Постоянный участник

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 05 октября 2009 - 11:05

То есть, как я понимаю, должно получиться что то вроде

For n = 0 to UBound(ChildRec)
SQAGetProperty  (ChildRec(n),"Itemtext", Value)
TreeView DblClick , "Name=Tree;\;Itemtext=" & Value, ""
Next

Что-то вроде
  • 0

#13 Cortes

Cortes

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 08 октября 2009 - 07:41

А еще такой момент если получить FullPath Вложенного элемента ...и потом написать
TreeView DblClick , "Name=Tree;\;Itemtext=" & Value, ""

То он говорит что не может найти элемент дело в том что
в строке присутсвуют символы "\" , которые разделяют корневой элемент и вложенный , а надо что бы было Корень -> Вложение -> Вложение.
Как заменить \ на -> ??
  • 0

#14 Pryanik

Pryanik

    Постоянный участник

  • Members
  • PipPipPip
  • 214 сообщений
  • Город:МОСКВА

Отправлено 09 октября 2009 - 11:16

А еще такой момент если получить FullPath Вложенного элемента ...и потом написать
TreeView DblClick , "Name=Tree;\;Itemtext=" & Value, ""

То он говорит что не может найти элемент дело в том что
в строке присутсвуют символы "\" , которые разделяют корневой элемент и вложенный , а надо что бы было Корень -> Вложение -> Вложение.
Как заменить \ на -> ??


Попробуйте получить и записать в Value св-во FullRecognition.
И потом вызвать
TreeView DblClick , Value, ""

Сложно просто так говорить надо пробовать разные методы:)
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных