AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.01.2006, 13:29   #1  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
TextBuffer.toClipboard не работает
Т.е. не вставляет в буфер содержимое.
Кто знает почему это может быть? Догадки, предположения?

Axapta 3.0 SP3, AOS
Старый 10.01.2006, 13:36   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
textBuffer - пуст.

Снова подходит проводница 9го вагона:
- Мой вагон пустой
(С) Задорнов
__________________
полезное на axForum, github, vk, coub.
Старый 10.01.2006, 13:37   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
Такое бывает, при работе через терминал. Либо какая-то сторонняя прога хулиганит.
__________________
Isn't it nice when things just work?
Старый 10.01.2006, 13:39   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
или textbuffer создан на сервере.
соответственно данные попадают в буфер сервера, а не клиента.
__________________
полезное на axForum, github, vk, coub.
Старый 10.01.2006, 13:50   #5  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Или вирусня пожрала буфер обмена - было такое, месяц по всей конторе выковыривали...
Старый 10.01.2006, 14:09   #6  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Больше всего похоже конечно на вставку в буфер сервера, но не могу понять почему, все объекты создаются на клиенте :-/
textbuffer точно не пуст, это видно в дебаггере
Старый 31.03.2006, 20:26   #7  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
? Вставка в буфер обмена из TextBuffer работает не всегда
Помогите пожалуйста, если знаете

Замечено аналогичное.
В тестовом job (приведенном ниже) вставка в буфер отрабатывает,
а тот же код в составе динамического метода класса RSheetLedgerEngine нет.

проверяю - client:thin, не удается скопировать данные в буфер обмена,

причину не смог выяснить.
Код:
static void AB_TestTextBufferClient(Args _args)
{
    TextBuffer          tb;
    tb = new TextBuffer();
    tb.appendText('777');
    info(enum2str(clientKind())+':'+enum2str(clientMode()));
    tb.toClipboard();
    tb = new TextBuffer();
    tb.fromClipboard();
    if(tb.size() == 0)
    {
        info('Не удается скопировать данные в буфер обмена');
    }
}
Старый 03.04.2006, 14:22   #8  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Проблему удалось обойти. В форму, из которой вызывается метод RSheetLedgerEngine, передаем строку из textBuffer.getText(), т.к. оказалось, что нельзя использовать textBuffer инициализированный в RSheetLedgerEngine, далее все просто:
Код:
public void copy()
{
    TextBuffer tb = new TextBuffer();
    ;
    tb.appendText(rLedgerSheetEngine.copy());
    tb.toClipboard(); // теперь работает
}
И таких загадочных мест, где блокируется работа с буфером обмена я предполагаю много. Объяснить их местом выполнения сервер/клиент нельзя, не годятся и версии изложенные ранее.
За это сообщение автора поблагодарили: gefr (1).
Старый 03.04.2006, 15:21   #9  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от perestoronin
Объяснить их местом выполнения сервер/клиент нельзя...
Почему? Какое значение свойства RunOn у RSheetLedgerEngine? Где создается TextBuffer (в каком методе)?
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 03.04.2006, 15:41   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от perestoronin
Объяснить их местом выполнения сервер/клиент нельзя, не годятся и версии изложенные ранее.
Почему нельзя? Форма создается на клиенте, соответственно и TextBuf - на клиенте.

А на сервере не работает ни toClipboard() (возвращает true, но данные не сохраняет), ни fromClipboard() (возвращает false)
__________________
Axapta v.3.0 sp5 kr2
Старый 03.04.2006, 16:06   #11  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Согласен с AndyD. Но странность в том, что для возможности работы с буфером обмена, обязательным условием является то, чтобы TextBuffer был создан обязательно на клиенте и что одно переприсвание объектов TextBuffer не помогает избавится от странного "серверного наследия".
Старый 03.04.2006, 16:21   #12  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
В чем странность-то? ИМХО, все логично. Ну, быть может, кроме того, что RunOn для TextBuffer стоило бы, наверное, сделать Client. С другой стороны, никто не мешает Вам создать наследника TextBuffer и выставить ему нужное значение свойства.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 03.04.2006, 16:29   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Не забывайте, что TextBuffer на сервере не соответствует TextBuffer на клиенте (это касается любого системного класса). Т.е. интерфейсные методы этих классов одиноковые, но их реализация отличается. На сервере методы toClipboard() и fromClipboard() класса TextBuf являются по сути заглушками, по-этому их использование не дает никаких результатов
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: Logger (3), perestoronin (1).
Старый 03.04.2006, 18:20   #14  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Спасибо всем. Вывод: имеет значение всего лишь место инициализации TextBuffer оператором new (это нужно делать только на клиенте, в моем случае на форме), затем его можно косвенно передать в engine на сервер, там заполнить и даже использовать операторы методы toClipboard() и fromClipboard() на сервере! Все работает, буфер обмена используется при этом клиента (т.к. TextBuffer инициализирован был на клиенте), проверено лично.

Последний раз редактировалось perestoronin; 03.04.2006 в 18:23.
Старый 03.04.2006, 18:38   #15  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от perestoronin
Вывод: имеет значение всего лишь место инициализации TextBuffer оператором new (это нужно делать только на клиенте, в моем случае на форме), затем его можно косвенно передать в engine на сервер, там заполнить и даже использовать операторы методы toClipboard() и fromClipboard() на сервере!
Вообще-то это относится не только к TextBuffer, но и к любому классу, у которого RunOn = Called from. Кстати, об этом можно в документации почитать.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 04.04.2006, 12:17   #16  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
А где у класса (системного) TextBuffer можно увидеть и проставить свойство RunOn
Если бы все так легко было бы, я бы и не спрашивал
Эту ветку можно закрыть. Вопросы исчерпаны.
Старый 04.04.2006, 12:33   #17  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от perestoronin
А где у класса (системного) TextBuffer можно увидеть и проставить свойство RunOn
Можно. Просто надо внимательно прочитать документацию
Цитата:
Classes extending other classes will also inherit the RunOn property. You cannot change it if it is Client or Server. If it Called from, you can leave it or change it to Client or Server.
Дальше - дело техники. Создаем класс - наследник TextBuffer и убеждаемся в том, что свойство RunOn у него доступно для редактирования. Следовательно RunOn для TextBuffer равно Called from.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 04.04.2006, 16:27   #18  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Наследник от TextBuffer мне не нужен... К документации и ... просьба больше меня не посылать. Сюда я обращаюсь только после тщательного и многратного прочтения имеющейся документации, TIP-ов..., книг и просмотра всех существующих форумов

Последний раз редактировалось perestoronin; 04.04.2006 в 16:32.
Старый 04.04.2006, 16:46   #19  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Сообщение от perestoronin
Наследник от TextBuffer мне не нужен...
perestoronin, если Вы не хотите читать ответы, зачем задаете вопросы?

Наследник нужен для того, чтобы узнать, какое значение свойства RunOn имеет класс TextBuffer. То есть, если бы свойство RunOn у наследника было фиксировано и недоступно для изменения, можно было бы с уверенностью сказать, что TextBuffer имеет точно такое же значение RunOn (это было бы либо Client, либо Server). Но, так как значение свойства RunOn для наследников TextBuffer вполне себе доступно для редактирования, значит RunOn для самого TextBuffer равно Called from. Вывод этот мы можем сделать на основании приведенного отрывка из документации.

Цитата:
Сообщение от perestoronin
К документации и ... просьба больше меня не посылать. Сюда я обращаюсь только после тщательного и многратного прочтения имеющейся документации, TIP-ов..., книг и просмотра всех существующих форумов
Видимо, недостаточно тщательное прочтение, все-таки. Базовые места пропускаете.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: perestoronin (1).
Старый 04.04.2006, 19:32   #20  
perestoronin is offline
perestoronin
Разработчик
Аватар для perestoronin
NavAx Club
 
129 / 18 (1) ++
Регистрация: 06.09.2005
Адрес: г. Красногорск
Можно и так криво (лишнее наследование, новый класс), но тоже работает
Спасибо. В принципе может даже и лучше, чем передавать объект из формы в engine.

Последний раз редактировалось perestoronin; 04.04.2006 в 19:43.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Как метод TextBuffer.Find работает с регулярными выражениями Lucky13 DAX: Программирование 3 29.02.2008 15:08
TextBuffer: не находит знак переноса строки Arahnid DAX: Программирование 7 17.11.2007 18:35
Axapta виснет на TextBuffer::replace dzeaman DAX: Программирование 3 04.10.2005 09:30
JOIN программно на форме не работает rohlenko DAX: Программирование 2 31.03.2005 15:41
CRM ABC, SWOT анализ Как это работает и работает ли вообще. ShadowFromXZone DAX: Функционал 16 02.03.2004 18:09

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:10.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.