Что нового

Как получить значение XTPReport

wer_wolf

Новичок
Сообщения
8
Репутация
0
Есть программа с которой надо спарсить содержимое при просмотре через Window Info получаю такое

>>>> Control <<<<
Class: XTPReport
Instance: 2
ClassnameNN: XTPReport2
Name:
Advanced (Class): [CLASS:XTPReport; INSTANCE:2]
ID: 100
Text:
Position: 233, 138
Size: 1440, 367
ControlClick Coords: 359, 144
Style: 0x50210000
ExStyle: 0x00000000
Handle: 0x001512CA
либо такое
>>>> Control <<<<
Class: XTPReport
Instance: 4
ClassnameNN: XTPReport4
Name:
Advanced (Class): [CLASS:XTPReport; INSTANCE:4]
ID: 100
Text:
Position: 11, 154
Size: 1658, 716
ControlClick Coords: 326, 145
Style: 0x50010000
ExStyle: 0x00000000
Handle: 0x000E14EE
При это в первом случае это окно в виде таблицы и Window Info на вкладке Visible text нет нужного текста, во втором случаем это выбор одного из элементов предыдущей таблицы и в Window Info на вкладке Visible text есть нужный текст.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
wer_wolf,
А можно скриншот этого окна увидеть?
 
Автор
W

wer_wolf

Новичок
Сообщения
8
Репутация
0
Да конечно
1402749040-clip-137kb.png
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
wer_wolf,
Что напишет в консоли этот код?
Код:
#include <GuiListView.au3>
#include <GuiComboBox.au3>

$sTitle = 'Catalog - [Поиск в Прайс-Листе]'
$hWin = WinWait($sTitle, '', 5)
If Not $hWin Then Exit ConsoleWrite('no Catalog - [Поиск в Прайс-Листе]' & @LF)
$hXTPReport2 = ControlGetHandle($hWin, '', '[CLASS:XTPReport; INSTANCE:2]');как таблица
If Not $hXTPReport2 Then Exit ConsoleWrite('no [CLASS:XTPReport; INSTANCE:2]' & @LF)
$hXTPReport4 = ControlGetHandle($hWin, '', '[CLASS:XTPReport; INSTANCE:4]');как комбобокс
If Not $hXTPReport4 Then Exit ConsoleWrite('no  [CLASS:XTPReport; INSTANCE:4]' & @LF)
$iCountXTPReport2 = _GUICtrlListView_GetItemCount($hXTPReport2)
ConsoleWrite('$iCountXTPReport2: ' & $iCountXTPReport2 & @LF)
$iCountXTPReport4 = _GUICtrlComboBox_GetCount($hXTPReport4)
ConsoleWrite('$iCountXTPReport4: ' & $iCountXTPReport4 & @LF)
 
Автор
W

wer_wolf

Новичок
Сообщения
8
Репутация
0
Код:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\wer_wolf\Desktop\test.au3"    
no  [CLASS:XTPReport; INSTANCE:4]
>Exit code: 34    Time: 1.128
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
wer_wolf,
А сейчас? В коде был лишний пробел.
 
Автор
W

wer_wolf

Новичок
Сообщения
8
Репутация
0
А сейчас в первом варианте когда элемент [CLASS:XTPReport; INSTANCE:2]
Код:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\wer_wolf\Desktop\test.au3"    
no  [CLASS:XTPReport; INSTANCE:4]
>Exit code: 34    Time: 0.729

А во втором когда элемент
[CLASS:XTPReport; INSTANCE:4]

Код:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\wer_wolf\Desktop\test.au3"    
$iCountXTPReport2: 0
$iCountXTPReport4: 0
>Exit code: 0    Time: 0.9199
Но это если в том скриншоте что я приводил выше кликнуть правой кнопкой по одной из строк и в контекстном меню выбрать показ данных о одной записи при этом еще и заголовок окна меняется

Окно вот такое становиться

1402755531-clip-48kb.png
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
wer_wolf [?]
Но это если в том скриншоте что я приводил выше кликнуть правой кнопкой по одной из строк и в контекстном меню выбрать показ данных о одной записи при этом еще и заголовок окна меняется
Об этом я должен был догадаться?
 
Автор
W

wer_wolf

Новичок
Сообщения
8
Репутация
0
Каюсь виновен забыл сказать про изменение заголовка.
Просто во втором случаем заголовок зависит от того какой элемент выбран часть 'Catalog - ' постоянна, а вот продолжение зависит от того с чем работаешь
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
wer_wolf,
Попробуйте заменить на
Код:
Opt('WinTitleMatchMode', 1); можно убрать, если Вы не меняли эту опцию
;~ ...
$hWin = WinWait('[Title:Catalog;Class:Класс Вашего окна]', '', 5)
 
Автор
W

wer_wolf

Новичок
Сообщения
8
Репутация
0
Тоже самое при таблице
Код:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\wer_wolf\Desktop\test.au3"    
no  [CLASS:XTPReport; INSTANCE:4]
>Exit code: 34    Time: 0.9115

Подробно

Код:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\wer_wolf\Desktop\test.au3"    
$iCountXTPReport2: 0
$iCountXTPReport4: 0
>Exit code: 0    Time: 1.016
 
Верх