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

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 26.02.2009, 15:20   #1  
Nikolaich ist offline
Nikolaich
Участник
 
238 / 10 (1) +
Registriert seit: 15.12.2004
фильтр на копировании в буфер обмена
добрый день, коллеги - у меня стоит такая задача.
При копировании через буфер обмена содержимого грида в EXCEL надо в момент копирования в буфер отсечь определенные записи, скажите какой метод на форме или датасорсе мне надо перекрыть, пробовал многие - толку нет никакого
Alt 26.02.2009, 16:22   #2  
Weez ist offline
Weez
Участник
Axapta Retail User
 
250 / 89 (3) ++++
Registriert seit: 18.01.2006
Ort: Moscow city
ИМХО - нереально. Разве что ставить фильтр на грид перед копированием.
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет.
Alt 26.02.2009, 16:55   #3  
Nikolaich ist offline
Nikolaich
Участник
 
238 / 10 (1) +
Registriert seit: 15.12.2004
я тоже прихожу к такому выводу , фильтр я бы поставил но там зависимость попадания в буфер обмена от сложного дисплей метода
Alt 26.02.2009, 17:05   #4  
Sada ist offline
Sada
Программатор
Benutzerbild von Sada
 
1.450 / 153 (8) ++++++
Registriert seit: 29.03.2005
Ort: Толи Барнаул, толи Москва
Сделайте кнопку для выгрузки в Эксель. Меньше гемора, но и помедленнее правда.
Alt 26.02.2009, 17:28   #5  
Nikolaich ist offline
Nikolaich
Участник
 
238 / 10 (1) +
Registriert seit: 15.12.2004
намного медленнее - поэтому пришлось через буфер обмена
Alt 26.02.2009, 17:55   #6  
ivas ist offline
ivas
Участник
Benutzerbild von ivas
 
252 / 68 (3) ++++
Registriert seit: 22.12.2005
Перехватите в мтетоде task() формы событие копирования в буфер, скопируйте буфер в свою переменную, отредактируйте её и запихните в буфер обмена


зы
X++:
#define.taskCopy(771)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy

Geändert von ivas (26.02.2009 um 17:59 Uhr)
Alt 26.02.2009, 18:07   #7  
DSPIC ist offline
DSPIC
Боец
 
1.077 / 1243 (44) ++++++++
Registriert seit: 11.04.2008
Чуть опоздал, но как пример к предыдущему посту.
перед super() в методе task() формы делаем вставку
X++:
    //EVO -->
    #task
    if (_taskId == #taskCopy)
    {
        //TODO: track selected records and copy to clipboard manually (use class TextBuffer)
        
        return _taskId;
    }
    //EVO <--

Geändert von DSPIC (26.02.2009 um 18:09 Uhr)
Alt 26.02.2009, 18:11   #8  
ivas ist offline
ivas
Участник
Benutzerbild von ivas
 
252 / 68 (3) ++++
Registriert seit: 22.12.2005
вот набросал примерчик)
X++:
#define.taskCopy(771)
public int task(int _taskId)
{
    TextBuffer txtBuffer;
    str text;
    int ret;

    if (_taskId != #taskCopy)
        ret = super(_taskId);
    else
    {
        ret = super(_taskId);

        txtBuffer = new TextBuffer();
        txtBuffer.fromClipboard();
        text = txtBuffer.getText();

        //крячим буфер)

        txtBuffer.setText(text);
        txtBuffer.toClipboard();
    }

    return ret;
}
имхо лучше сделать как сказал Sada
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Alt 26.02.2009, 18:13   #9  
oip ist offline
oip
Axapta
Лучший по профессии 2014
 
2.564 / 1416 (53) ++++++++
Registriert seit: 28.11.2005
Blog-Einträge: 1
А если пойти от обратного немного. То есть сделать кнопку, по которой выделять только нужные записи. А их уже копировать в эксель. Должно быть существенно проще.

Про выделение строк тут: Как пометить на grid_е несколько строк ?
Alt 26.02.2009, 18:15   #10  
ivas ist offline
ivas
Участник
Benutzerbild von ivas
 
252 / 68 (3) ++++
Registriert seit: 22.12.2005
Zitat:
Zitat von oip Beitrag anzeigen
А если пойти от обратного немного. То есть сделать кнопку, по которой выделять только нужные записи. А их уже копировать в эксель. Должно быть существенно проще.
или в таске с ненужных просто убрать выделение) так наверно ещё проще
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Alt 26.02.2009, 18:19   #11  
oip ist offline
oip
Axapta
Лучший по профессии 2014
 
2.564 / 1416 (53) ++++++++
Registriert seit: 28.11.2005
Blog-Einträge: 1
Нет. Я бы делал именно так, как написал выше. Это позволит пользователю увидеть, какие строки попадут в отчет и, при необходимости, подкорректировать что-то. И не будет вопросов, почему какая-то строка не выгрузилась в эксель. А все эти перехваты тасков без особой необходимости от лукавого, имхо.
Alt 26.02.2009, 18:24   #12  
ivas ist offline
ivas
Участник
Benutzerbild von ivas
 
252 / 68 (3) ++++
Registriert seit: 22.12.2005
Zitat:
Zitat von oip Beitrag anzeigen
Нет. Я бы делал именно так, как написал выше. Это позволит пользователю увидеть, какие строки попадут в отчет и, при необходимости, подкорректировать что-то. И не будет вопросов, почему какая-то строка не выгрузилась в эксель. А все эти перехваты тасков без особой необходимости от лукавого, имхо.
В любом случае придеться так или иначе прекрывать task() чтоб запретить копирование всех строк.
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Alt 26.02.2009, 18:30   #13  
oip ist offline
oip
Axapta
Лучший по профессии 2014
 
2.564 / 1416 (53) ++++++++
Registriert seit: 28.11.2005
Blog-Einträge: 1
Зачем запрещать? Я не вижу в постановке задачи, почему копировать все запрещено. Захотел пользователь скопировать все, скопировал все. Захотел только то, что надо, скопировал то, что надо. Может я неправильно понимаю задачу, но сейчас я ее вижу так: нужно дать пользователю возможность быстро выгрузить в эксель строки, отобранные по определенному критерию. И все, больше ничего.
This post has been rated by: ZVV (1).
Alt 26.02.2009, 18:33   #14  
ivas ist offline
ivas
Участник
Benutzerbild von ivas
 
252 / 68 (3) ++++
Registriert seit: 22.12.2005
Zitat:
Zitat von oip Beitrag anzeigen
Зачем запрещать? Я не вижу в постановке задачи, почему копировать все запрещено. Захотел пользователь скопировать все, скопировал все. Захотел только то, что надо, скопировал то, что надо.
Судя по всему это для защиты данных от "дурака") т.к. есть куча софта позволяющего грабить текст прямо с экрана)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
Alt 26.02.2009, 18:38   #15  
oip ist offline
oip
Axapta
Лучший по профессии 2014
 
2.564 / 1416 (53) ++++++++
Registriert seit: 28.11.2005
Blog-Einträge: 1
Во-первых, про это нигде не написано. Во-вторых, безопасность данных должна достигаться совсем другими средствами, а не перехватом метода task. Не забывайте про обычный скриншот, например. Или пользователь может ручками просто создать в экселе "ненужную" строку.
Alt 26.02.2009, 21:10   #16  
Nikolaich ist offline
Nikolaich
Участник
 
238 / 10 (1) +
Registriert seit: 15.12.2004
коллеги - огромное спасибо за ответы ! Помогло. Воспользовался методом markRecord, во время перебора строк и определяю нужно ли выделять для последующего копирования или нет
Stichworte
buffer, clipboard, copy, excel, grid, буфер обмена, грид, сеть, копирование

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Системный буфер обмена LiSA DAX: Программирование 15 01.04.2006 13:00
Не копирует из display-метода в буфер обмена akvi DAX: Программирование 6 08.12.2005 13:14
Буфер обмена novic DAX: Программирование 1 06.06.2005 08:11
Крякозяблики при копировании через буфер обмена kalex DAX: Администрирование 1 13.10.2004 12:36
Вот - про быстр. Ексель, буфер обмена, и т.д. POS DAX: Программирование 22 01.03.2004 18:42

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 05:10 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.