13.09.2006, 16:33 | #1 |
Участник
|
Вызов edit метода через callObject
Привет
Вызываю через dictClass.callObject(formControlObject.dataMethod(), ds, cursor)); метод на DS, но вот если данный метод -edit, то нужно передавать другие параметры(set передавать) ! Как понять является ли метод edit-методом? пробую через dictMethod.displayType() но возвращает None. |
|
13.09.2006, 19:44 | #2 |
Участник
|
PHP код:
Пробовала заменить на PHP код:
Что делаю не так? |
|
13.09.2006, 23:47 | #3 |
Administrator
|
Думаю, что вряд ли данные классы сообщат о методе на датасорсе. Ведь тот факт, что переменная ds имеет какие-либо методы знает только форма. Т.е. вызвать метод можно, но заранее зная что он там есть и заранее зная сколько параметров нужно передать. Т.е. в поставленной задаче в лоб решение вряд ли будет.
Наверняка есть "обходной" маневр - и несложный. Если не получится "обойти" - расскажите подробнее - какие данные есть на входе и что хочется получить на выходе. Думаю, что решение будет
__________________
Возможно сделать все. Вопрос времени |
|
14.09.2006, 10:14 | #4 |
Участник
|
Судя по кускам кода в аксапте dictMethod.displayType должен вернуть тип Edit/display так что моя загвоздка в том, что я неправильно получаю dictMethod и MethodInfo(все равно что из этого брать).
Поэтому вопрос свелся к получению dictMethod для методода на DS. Приведенными путями он почему-то не берется. Но вот как правильно его получить? |
|
14.09.2006, 10:32 | #5 |
Moderator
|
А никак. Собственно, sukhanchik все уже изложил как есть - для datasource нельзя получить описание метода.
Хотя, может быть можно что-то через TreeNode вытащить...
__________________
Андрей. |
|
14.09.2006, 12:07 | #6 |
Участник
|
1. Находим TreeNode, который соответствует методу
2. Берем ParserClass и выдираем параметры |
|
14.09.2006, 14:58 | #7 |
Участник
|
Товарищи! Свершилось!
Решение найдено! Спасибо всем! Кому интересно: подсмотрено вот тут xRefNamesSpecial метод fetchUnusedMethods(): PHP код:
И еще хочу добавить, по ходу решения нашла, что можно написать вот так: PHP код:
Но вот желаемый метод displayType работает неверно, почему-то. Последний раз редактировалось kitty; 14.09.2006 в 15:03. |
|
14.09.2006, 15:18 | #8 |
Участник
|
X++: static void Job33(Args _args) { boolean hasDisplay(str _s) { #TokenTypes ScannerClass s=new ScannerClass(_s); int token; ; token=s.firstSymbol(); while(token) { if(token==#DISPLAY_SYM) return true; token=s.nextSymbol(); } return false; } ; info(hasDisplay('display int test(){}')?'Y':'N'); info(hasDisplay('displayTable test(){}')?'Y':'N'); } |
|
14.09.2006, 15:28 | #9 |
Участник
|
интересно!
|
|
14.09.2006, 16:29 | #10 |
Участник
|
|
|