AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
CRM
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 10.01.2006, 13:29   #1  
Prof ist offline
Prof
Участник
 
732 / 64 (4) ++++
Registriert seit: 18.10.2002
Ort: Москва
TextBuffer.toClipboard не работает
Т.е. не вставляет в буфер содержимое.
Кто знает почему это может быть? Догадки, предположения?

Axapta 3.0 SP3, AOS
Alt 10.01.2006, 13:36   #2  
mazzy ist offline
mazzy
Участник
Benutzerbild von mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29.472 / 4494 (208) ++++++++++
Registriert seit: 29.11.2001
Ort: Москва
Blog-Einträge: 10
textBuffer - пуст.

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

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

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

причину не смог выяснить.
Code:
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('Не удается скопировать данные в буфер обмена');
    }
}
Alt 03.04.2006, 14:22   #8  
perestoronin ist offline
perestoronin
Разработчик
Benutzerbild von perestoronin
NavAx Club
 
129 / 18 (1) ++
Registriert seit: 06.09.2005
Ort: г. Красногорск
Проблему удалось обойти. В форму, из которой вызывается метод RSheetLedgerEngine, передаем строку из textBuffer.getText(), т.к. оказалось, что нельзя использовать textBuffer инициализированный в RSheetLedgerEngine, далее все просто:
Code:
public void copy()
{
    TextBuffer tb = new TextBuffer();
    ;
    tb.appendText(rLedgerSheetEngine.copy());
    tb.toClipboard(); // теперь работает
}
И таких загадочных мест, где блокируется работа с буфером обмена я предполагаю много. Объяснить их местом выполнения сервер/клиент нельзя, не годятся и версии изложенные ранее.
This post has been rated by: gefr (1).
Alt 03.04.2006, 15:21   #9  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Zitat:
Zitat von 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
Alt 03.04.2006, 15:41   #10  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2494 (89) +++++++++
Registriert seit: 20.08.2005
Zitat:
Zitat von perestoronin
Объяснить их местом выполнения сервер/клиент нельзя, не годятся и версии изложенные ранее.
Почему нельзя? Форма создается на клиенте, соответственно и TextBuf - на клиенте.

А на сервере не работает ни toClipboard() (возвращает true, но данные не сохраняет), ни fromClipboard() (возвращает false)
__________________
Axapta v.3.0 sp5 kr2
Alt 03.04.2006, 16:06   #11  
perestoronin ist offline
perestoronin
Разработчик
Benutzerbild von perestoronin
NavAx Club
 
129 / 18 (1) ++
Registriert seit: 06.09.2005
Ort: г. Красногорск
Согласен с AndyD. Но странность в том, что для возможности работы с буфером обмена, обязательным условием является то, чтобы TextBuffer был создан обязательно на клиенте и что одно переприсвание объектов TextBuffer не помогает избавится от странного "серверного наследия".
Alt 03.04.2006, 16:21   #12  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: 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
Alt 03.04.2006, 16:29   #13  
AndyD ist offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2.560 / 2494 (89) +++++++++
Registriert seit: 20.08.2005
Не забывайте, что TextBuffer на сервере не соответствует TextBuffer на клиенте (это касается любого системного класса). Т.е. интерфейсные методы этих классов одиноковые, но их реализация отличается. На сервере методы toClipboard() и fromClipboard() класса TextBuf являются по сути заглушками, по-этому их использование не дает никаких результатов
__________________
Axapta v.3.0 sp5 kr2
This post has been rated by: Logger (3), perestoronin (1).
Alt 03.04.2006, 18:20   #14  
perestoronin ist offline
perestoronin
Разработчик
Benutzerbild von perestoronin
NavAx Club
 
129 / 18 (1) ++
Registriert seit: 06.09.2005
Ort: г. Красногорск
Спасибо всем. Вывод: имеет значение всего лишь место инициализации TextBuffer оператором new (это нужно делать только на клиенте, в моем случае на форме), затем его можно косвенно передать в engine на сервер, там заполнить и даже использовать операторы методы toClipboard() и fromClipboard() на сервере! Все работает, буфер обмена используется при этом клиента (т.к. TextBuffer инициализирован был на клиенте), проверено лично.

Geändert von perestoronin (03.04.2006 um 18:23 Uhr)
Alt 03.04.2006, 18:38   #15  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Zitat:
Zitat von 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
Alt 04.04.2006, 12:17   #16  
perestoronin ist offline
perestoronin
Разработчик
Benutzerbild von perestoronin
NavAx Club
 
129 / 18 (1) ++
Registriert seit: 06.09.2005
Ort: г. Красногорск
А где у класса (системного) TextBuffer можно увидеть и проставить свойство RunOn
Если бы все так легко было бы, я бы и не спрашивал
Эту ветку можно закрыть. Вопросы исчерпаны.
Alt 04.04.2006, 12:33   #17  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Zitat:
Zitat von perestoronin
А где у класса (системного) TextBuffer можно увидеть и проставить свойство RunOn
Можно. Просто надо внимательно прочитать документацию
Zitat:
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
Alt 04.04.2006, 16:27   #18  
perestoronin ist offline
perestoronin
Разработчик
Benutzerbild von perestoronin
NavAx Club
 
129 / 18 (1) ++
Registriert seit: 06.09.2005
Ort: г. Красногорск
Наследник от TextBuffer мне не нужен... К документации и ... просьба больше меня не посылать. Сюда я обращаюсь только после тщательного и многратного прочтения имеющейся документации, TIP-ов..., книг и просмотра всех существующих форумов

Geändert von perestoronin (04.04.2006 um 16:32 Uhr)
Alt 04.04.2006, 16:46   #19  
Maxim Gorbunov ist offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2.483 / 646 (26) +++++++
Registriert seit: 27.11.2001
Ort: Dubai, UAE
Zitat:
Zitat von perestoronin
Наследник от TextBuffer мне не нужен...
perestoronin, если Вы не хотите читать ответы, зачем задаете вопросы?

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

Zitat:
Zitat von 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
This post has been rated by: perestoronin (1).
Alt 04.04.2006, 19:32   #20  
perestoronin ist offline
perestoronin
Разработчик
Benutzerbild von perestoronin
NavAx Club
 
129 / 18 (1) ++
Registriert seit: 06.09.2005
Ort: г. Красногорск
Можно и так криво (лишнее наследование, новый класс), но тоже работает
Спасибо. В принципе может даже и лучше, чем передавать объект из формы в engine.

Geändert von perestoronin (04.04.2006 um 19:43 Uhr)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Как метод 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

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 10:51 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.