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

Фотография

Error: Internal error in agent - Function never returned a value


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

#1 niko1312

niko1312

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

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

Отправлено 16 января 2009 - 13:16

F1!!!
Никак не могу понять чего не хватает Силку... Выводит сообщение об ошибке при вызове функции GetColumnName() для таблицы AxaptaTable: Table. Вроде бы все методы должны наследоваться от парента. Но ни в какую. Тоже самое и с GetRowCount ().

Если кто-то сталкивался с подобной проблемой и знает решение, плиз хэлп.
  • 0

#2 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 16 января 2009 - 16:30

а точно они у вас не перегружены в AxaptaTable или в конкретном экземпляре класса?
  • 0

#3 niko1312

niko1312

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

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

Отправлено 17 января 2009 - 17:18

Да, они и вправду повторяются и в AxaptaTable. А это плохо?
  • 0

#4 niko1312

niko1312

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

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

Отправлено 19 января 2009 - 07:25

Да, они и вправду повторяются и в AxaptaTable. А это плохо?


Сорри по поводу этого ответа... погорячился :) Дело в том, что данный метод встречается только в классе Table, от которого собственно и наследуется класс AxaptaTable. Больше нигде нема.. за исключением пожалуй классов TreeViewEx и ListView, которые также наследуются от класса Table.

У кого то появились хоть какие-нить соображения по данной проблеме?
  • 0

#5 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 19 января 2009 - 17:16

А может всю строчку кода покажете (ну хотя бы с примерными именами), а то вдруг проблема не в AxaptaTable ?
  • 0

#6 niko1312

niko1312

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

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

Отправлено 20 января 2009 - 08:34

Место вызова метода:

[] print(wndSalesOrder.SalesTable.AxPaneWnd1.PageList1.AxPaneWnd1.AxPaneWnd1.GetColumnName(2))

Объявление окна wndSalesOrder

AxaptaTable AxPaneWnd1 // Сам грид Силк определил его как CustomWin 
[ ] msw tag "{sContainer}#1"
[+] CustomWin AxComboBoxEx2 // Added on 29 May 2008 for SO Claim tab to get the text from IS status section
[ ] msw tag "#2"
[+] PopupList PopupList1
[ ] tag "#1"
[+] TextField txtGrid
[ ] tag "#1"
[+] Header Header1
[ ] tag "#1" _linenums:0'>[-] window ChildWin wndSalesOrder [ ] tag "*Sales order *" [ ] parent MBSAxapta [-] CustomWin SalesTable [ ] msw tag "[AxPaneWnd]SalesTable|{sContainer}#1" [-] CustomWin AxPaneWnd1 [ ] msw tag "{sContainer}#1" [-] PageList PageList1 [ ] tag "#1" [-] CustomWin AxPaneWnd1 [ ] msw tag "{sContainer}#1" [-] AxaptaTable AxPaneWnd1 // Сам грид Силк определил его как CustomWin [ ] msw tag "{sContainer}#1" [+] CustomWin AxComboBoxEx2 // Added on 29 May 2008 for SO Claim tab to get the text from IS status section [ ] msw tag "#2" [+] PopupList PopupList1 [ ] tag "#1" [+] TextField txtGrid [ ] tag "#1" [+] Header Header1 [ ] tag "#1"
public winclass AxaptaTable:Table // AxaptaTable наследуется от класса Table
  • 0

#7 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 21 января 2009 - 12:52

ясно... действительно, тут таких сообщений быть не должно.
(в фрейме упоминается sContainer - это точно константа, а не свойство ?)

.. еще тогда попытка уточнить : а как выглядит текст ошибки ?
т.е. пишет "ошибка Х произошла в Y, вызвана из Z и т.д."
может там есть ответ - что именно вызывается и падает ?
  • 0

#8 niko1312

niko1312

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

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

Отправлено 21 января 2009 - 13:52

Вот что пишет:

[-] Testcase SilkTestColumn - 1 error	[ ] Machine: (local)	[ ] Started: 03:34:50PM on 21-Jan-2009	[ ] Elapsed: 0:00:02	[ ] Totals:  1 error, 0 warnings	[ ] 	[ ] 	[ ] Start Time : 03:34:50 PM	[ ] 	[ ] *** Error: Internal error in agent - Function never returned a value	[ ] Occurred in GetColumnName	[ ] Called from mainSilkTestColumn at JustTesting.t(35)	[ ] Called from SilkTestColumn at JustTesting.t(17)

А вот что выдал через дебаггер:

Start Time : 03:47:30 PM

*** Error: Internal error in agent - Function never returned a value
Occurred in GetColumnName
Called from mainSilkTestColumn at JustTesting.t(35)
Called from SilkTestColumn at JustTesting.t(17)

Через дебаг я дошел до defaults.inc, где он споткнулся

SetBaseState () // ТУТ
[ ] _linenums:0'>[-] DefaultTestCaseEnter () [ ] SetAppState ()[ ] [ ] //**************************************************************************[ ] [-] DefaultTestCaseExit (BOOLEAN bException) [-] if (bException) [ ] ExceptLog () [ ] [ ] SetBaseState () // ТУТ[ ]

А насчет sContainer, то это объявлено тут так:

[ ] STRING sCurrentFormName="", sDataFilePath = currentpath +'\..\DataSheets', sResultFolder, sContainer = "[AxPaneWnd]",DSN_NAME="Segue DDA Excel"

  • 0

#9 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 21 января 2009 - 15:25

а! я понял! у вас нет return NNN в методе GetColumnName :sorry:
  • 0

#10 niko1312

niko1312

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

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

Отправлено 21 января 2009 - 15:41

А как это добавить если метод встроенный? При Ф12 посылает сюда:

[ ] supported_ca builtin STRING GetColumnName (INTEGER iCol, BOOLEAN bRawMode optional)
  • 0

#11 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 21 января 2009 - 17:28

ну это уже проще :sorry:

попробуйте вот так :
в public winclass AxaptaTable:Table добавляете перегрузку этого метода примерно так
[-] STRING GetColumnName (INTEGER iCol, BOOLEAN bRawMode optional)
		[-] do
			[ ] return derived::GetColumnName (iCol, bRawMode)
		[-] except
			[-] if ExceptNum () == E_NO_RETVAL
				[ ] return "" // или по вкусу;)
			[-] else
				[ ] reraise
теперь должно работать и не падать :dirol:
  • 0

#12 niko1312

niko1312

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

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

Отправлено 22 января 2009 - 08:42

Я попробовал как было предложено, но никак.

Все тоже сообщение... У меня такое ощущение, что файлы не правильно подключаются. У меня класс AxaptaTable записан во файле Frame.inc, который включен во фрейм для окна .inc и в файл тесткейса .t, но видимо, чего-то не хватает. Если есть возможность можем связаться по аське или скайпу..(468234373, niko1312)
  • 0

#13 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 22 января 2009 - 13:30

тогда проще
[-] STRING GetColumnName (INTEGER iCol, BOOLEAN bRawMode optional)
		[-] do
			[ ] return derived::GetColumnName (iCol, bRawMode)
		[-] except
			[ ] return ""

  • 0

#14 niko1312

niko1312

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

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

Отправлено 22 января 2009 - 14:35

:( При вход в метод через дебаггер, переменная, которой я присваиваю название колонки почему-то говорит, что переменная не объявленна. Хотя шагом ранне в переменной было "" (т.е. она инициализированна)

...

[codebox] [-] AxaptaTable AxPaneWnd1//Change for Claim CustomWin to AxaptaTable
[ ] msw tag "{sContainer}#1"
[+] TextField txtGrid
[ ] tag "#1"
[+] Header Header1
[ ] tag "#1"
[/codebox]

То есть, Header и TextField - это все элементы, которые увидил силк.. может собака тут?
  • 0

#15 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 23 января 2009 - 16:54

врядли. я конечно, не знаю - что на самом деле внутри этого метода, однако я уверен, что дело вне в хедере и текстовом поле...
а что, (после изменений) пишет этот код ?
[] print(wndSalesOrder.SalesTable.AxPaneWnd1.PageList1.AxPaneWnd1.AxPaneWnd1.GetColumnName(2))
  • 0

#16 niko1312

niko1312

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

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

Отправлено 26 января 2009 - 07:13

Как ни странно, но после изменений в коде, никаких изменений в результате не было... Т.е. то же самое сообщение.
  • 0

#17 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 26 января 2009 - 14:40

... интересный случай ....
а если просто написать
main ()
  wndSalesOrder.SalesTable.AxPaneWnd1.PageList1.AxPaneWnd1.AxPaneWnd1.GetColumnName(2)
Нормально выполнится ? :focus:
(Если нет - то пришлите, пожалуйста, что напишет в сообщении об ошибке)
  • 0

#18 niko1312

niko1312

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

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

Отправлено 27 января 2009 - 11:38

Вообще-то пока ничего нового, пишет:

[-] Testcase ReportTesting - 1 error
[ ] *** Error: Internal error in agent - Function never returned a value
[ ] Occurred in GetColumnName
[ ] Called from mainSilkTestColumn at JustTesting.t(175)
[ ] Called from ReportTesting at JustTesting.t(154)

А не может ли быть так что проблема в отсутствующих Extensions? Может для этого нужны мпециальные .dll?
  • 0

#19 vass

vass

    Опытный участник

  • Members
  • PipPipPipPip
  • 298 сообщений
  • ФИО:Василий

Отправлено 27 января 2009 - 12:45

Конечно, возможно, проблема в dll/экстеншенах... Только, скорее не в их отстутствии, а в тех, что уже есть %)

Однако, меня сейчас больше волнует то, что эта ошибка возникает не в main() а где-то, непонятно где ...
1) что такое ReportTesting и mainSilkTestColumn ? Чем они у вас занимаются ? как выглядят строчки 154 и 175 файла JustTesting.t ?
2) перепроверьте меня :
если вызвать
main ()
  Print ("main called!")
  wndSalesOrder.SalesTable.AxPaneWnd1.PageList1.AxPaneWnd1.AxPaneWnd1.GetColumnName(2)
, то "main called" не видно %)
(либо еще вариант - пустой main() выведет ту же самую ошибку :focus: )
  • 0

#20 niko1312

niko1312

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

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

Отправлено 27 января 2009 - 15:44

ReportTesting - это название тесткейса
mainSilkTestColumn - это название функции, которая и вызывается из тесткейса (ReportTesting).

Строка 175: wndSalesOrder.SalesTable.AxPaneWnd1.PageList1.AxPaneWnd1.AxPaneWnd1.GetColumnName(2)

Строка 154: [-] testcase ReportTesting() appstate none
[ ]
[ ] mainSilkTestColumn() //вот она
[ ]

При обработке такой комбинации:
[ ] Print("Main!!")
[ ] wndSalesOrder.SalesTable.AxPaneWnd1.PageList1.AxPaneWnd1.AxPaneWnd1.GetColumnName(2)

результат буде таким:

[ ] Main!!
[ ] *** Error: Internal error in agent - Function never returned a value
[ ] Occurred in GetColumnName
...
  • 0


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

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