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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.07.2005, 11:59   #1  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
? Блокировка копирования в буфер
Добрый день!

Вопрос касается всего того, что связано с выгрузкой данных в Excel. Можно ли каким либо образом заблокировать лист (от изменений можно) от копирования данных в буфер и сохранения в файл? Так, что бы можно было только смотреть и печатать.

Вообще не понятен смысл защиты Excel документа стандартными средствами. Да, новую информацию добавить нельзя, но всегда можно скопировать в буфер и перенести на новый лист, а там с данными можно делать что угодно.
Старый 20.07.2005, 12:13   #2  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
О чем речь? Об аксапте или ёкселе?

PS. Всегда можно набить данные руками, если они не копируются и извращаться с ними.
Старый 20.07.2005, 12:38   #3  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
Я говорю о выгрузке данных по средством сом соединения в excel. Даные сформированы, выгружены в шаблон

PHP код:
    textBuffer      = new TextBuffer();
    
m_excelDocument = new ComExcelDocument_RU();

    
m_excelDocument.newFile(this.fileName(),false);

    
XLSBook         m_excelDocument.getComDocument();
    
XLSWorkSheet    XLSBook.ActiveSheet();
    
XLScells        XLSWorkSheet.Cells();

    
XLSPrintArea    XLSWorkSheet.PageSetup();

    
// координаты старта вставки
    
XLSrange        XLScells.Range(ComExcelDocument_RU::numToNameCell(1));
    
XLSrange.select();

    
this.costructTxtBuffer();

    
textBuffer.toClipboard();

    if (!
textBuffer.size())
        throw 
warning ("Отчет не содержит данных");
    else
        
XLSWorkSheet.pastespecial(1);

    
m_excelDocument.visible(true);
    
m_excelDocument.finalize(); 
Можно ли вообще защитить excel документ от копирования данных отраженых в нём в буфер обмена, а так же от сохранения в др. файл?
Старый 20.07.2005, 12:59   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Привет, Akiro!

Нет. Юзали для этого PDF, да и из того вытащить можно.

С Уважением,
Георгий.
Старый 20.07.2005, 13:07   #5  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
В общем я так и думал. Грустно однако
Старый 20.07.2005, 13:11   #6  
KSS is offline
KSS
Коллективное бессознательn ое
 
116 / 10 (1) +
Регистрация: 09.12.2002
Адрес: Москва
Цитата:
Изначально опубликовано George Nordic
Привет, Akiro!

Нет. Юзали для этого PDF, да и из того вытащить можно.

С Уважением,
Георгий.
Вытащить, кстати, можно из любого, главое - фантазия.
Как-то нужно было текст и таблицы в электронном виде сохранить из какой-то программы просмотра типа акробата, только там не было функции копирования.

Сделали просто - принтскрин, а потом распознавание в файнридере - работает чисто
__________________
Жизнь такова, какова она есть и больше никакова.
Старый 20.07.2005, 13:39   #7  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
Это несомнено интересное решение, но речь идет об отчете, который выводится в excel документе. Можно конечно поизвращаться и из аксапты открыть excel документ, скопировать его образ и вставить в виде картинки в стандартный паитбраш например, но это как то некрасиво и на мой взгляд не серьезно...
Старый 20.07.2005, 13:43   #8  
KSS is offline
KSS
Коллективное бессознательn ое
 
116 / 10 (1) +
Регистрация: 09.12.2002
Адрес: Москва
Цитата:
Изначально опубликовано Ak!ro
Это несомнено интересное решение, но речь идет об отчете, который выводится в excel документе. Можно конечно поизвращаться и из аксапты открыть excel документ, скопировать его образ и вставить в виде картинки в стандартный паитбраш например, но это как то некрасиво и на мой взгляд не серьезно...
Ну в общем, да. Я не программист, конечно, но уверен, что желаемого результат в Экселе не достичь.
Да и потом, кому нужно - найдут способ.
__________________
Жизнь такова, какова она есть и больше никакова.
Старый 20.07.2005, 14:29   #9  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Надо использовать цифровую подпись, это решит все проблемы.
Старый 20.07.2005, 15:05   #10  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
Использование цифровой подписи - это еще тот гемор...

P.S. прошу прощения за грубое слово
Старый 20.07.2005, 15:32   #11  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Всегда удивлялся тому как люди умеют создавать себе проблемы.
Я понимаю, когда выгружают отчет в Excel, чтобы потом с ними как-то работать, но чтобы выгрузить, а потом запретить менять и копировать... это что-то.
Может лучше воспользоваться стандартным отчетером Аскапты (или еще какой) и там запретить сохранение в файл? Тогда на 100% отчет будет содержать данные из системы.
Старый 20.07.2005, 15:35   #12  
KSS is offline
KSS
Коллективное бессознательn ое
 
116 / 10 (1) +
Регистрация: 09.12.2002
Адрес: Москва
Цитата:
Изначально опубликовано Wamr
Всегда удивлялся тому как люди умеют создавать себе проблемы.
Я понимаю, когда выгружают отчет в Excel, чтобы потом с ними как-то работать, но чтобы выгрузить, а потом запретить менять и копировать... это что-то.
Может лучше воспользоваться стандартным отчетером Аскапты (или еще какой) и там запретить сохранение в файл? Тогда на 100% отчет будет содержать данные из системы.
Не, Вась, стандартные отчеты - это моветон
А чем не устраивает защита ячеек и листов? Их же без пароля не поменяешь.
__________________
Жизнь такова, какова она есть и больше никакова.
Старый 20.07.2005, 16:58   #13  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
Защита не поможет. Я всегда могу скопировать содержимое в буфер и вставить в новый лист, там могу менять данные сколько душе угодно.

Рисовать же отчеты стандартными методами... что ж это Ваше право чем ползоваться .
Старый 20.07.2005, 17:00   #14  
KSS is offline
KSS
Коллективное бессознательn ое
 
116 / 10 (1) +
Регистрация: 09.12.2002
Адрес: Москва
Цитата:
Изначально опубликовано Ak!ro
Защита не поможет. Я всегда могу скопировать содержимое в буфер и вставить в новый лист, там могу менять данные сколько душе угодно.

Рисовать же отчеты стандартными методами... что ж это Ваше право чем ползоваться .
Я вообще смысл шаманства не понимаю.
У них там наверняка на всех документах гриф стоит "Перед прочтением съесть!".
__________________
Жизнь такова, какова она есть и больше никакова.
Старый 20.07.2005, 17:06   #15  
monk is offline
monk
Участник
 
67 / 12 (1) ++
Регистрация: 14.10.2002
Не уверен, но можно попробовать выводить отчет Excel внутри ActiveX (web-browser) в Axapta, а сам файл прятать.
Внутри ActiveX можно попробовать запретить копирование.

Потом после печати удалять спрятанный файл.
Старый 21.07.2005, 10:42   #16  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
Спасибо за идею, соит попробовать
Старый 22.07.2005, 09:46   #17  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Вставьте в класс ComExcelDocument_RU следующий метод и вызывайте его. Этот метод защищает все листы документа от всего, в том числе и от копирования.
PHP код:
void DD_Protect()
{
    
com     appactiveSheetactiveWindowsheets;
    
int     ishCount;
    ;
    
app this.getApplication();
    
sheets app.sheets();
    
shCount sheets.count();
    for (
1<= shCounti++)
    {
        
activeSheet sheets.Item(i);
        
activeSheet.protect(
            
"gh1h5kl9o07df53",  //password
            
true,               //DrawingObjects
            
true,               //Contents
            
true,               //Scenarios
            
true,               //UserInterfaceOnly
            
true,               //AllowFormattingCells
            
true,               //AllowFormattingColumns
            
true,               //AllowFormattingRows
            
true,               //AllowInsertingColumns
            
true,               //AllowInsertingRows
            
true,               //AllowInsertingHyperlinks
            
true,               //AllowDeletingColumns
            
true,               //AllowDeletingRows
            
true,               //AllowSorting
            
true,               //AllowFiltering
            
true                //AllowUsingPivotTables
            
);

        
activeSheet.enableSelection(-4142);  //xlNoSelection
    
}
    
activeWindow app.activeWindow();
    
activeWindow.displayGridLines(false);

За это сообщение автора поблагодарили: kashperuk (5), Logger (3).
Старый 22.07.2005, 09:55   #18  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Да, и еще вставьте в класс COMOfficeDocument_RU такой метод:
PHP код:
COM getApplication()
{
    return 
m_comApplication;

Старый 22.07.2005, 14:23   #19  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
Спасибо! Обязательно попробую.
Старый 22.07.2005, 14:47   #20  
Ak!ro is offline
Ak!ro
Участник
 
17 / 10 (1) +
Регистрация: 10.02.2004
Замечательный метод, но пришлось закоментарить кое что иначе вываливается ошибка, что задано не правильное число аргументов фунции, это раз. Если в появившемся документе скопировать группу ячеек, затем открыть новый документ, то информация вставится успешно, это два. Подрзреваю что это связано как то с тем, что пришлось закоментировать несколько аргументов, это три.

PHP код:
        activeSheet.protect(
            
"gh1h5kl9o07df53",  //password
            
true,               //DrawingObjects
            
true,               //Contents
            
true,               //Scenarios
            
true);             //UserInterfaceOnly
               
//            true,               //AllowFormattingCells
//            true,               //AllowFormattingColumns
//            true,               //AllowFormattingRows
//            true,               //AllowInsertingColumns
//            true,               //AllowInsertingRows
//            true,               //AllowInsertingHyperlinks
//            true,               //AllowDeletingColumns
//            true,               //AllowDeletingRows
//            true,               //AllowSorting
//            true,               //AllowFiltering
//            true                //AllowUsingPivotTables
//            ); 
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
фильтр на копировании в буфер обмена Nikolaich DAX: Программирование 15 26.02.2009 21:10
Блокировка ключа индекса Sequel DAX: Программирование 4 06.07.2006 16:08
Системный буфер обмена LiSA DAX: Программирование 15 01.04.2006 13:00
Буфер обмена novic DAX: Программирование 1 06.06.2005 08:11
Вот - про быстр. Ексель, буфер обмена, и т.д. POS DAX: Программирование 22 01.03.2004 18:42

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:54.