Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

12 Май 2021, 16:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Адаптация кода ООСCalc с Windows на Linux  (Прочитано 4144 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Стартовое сообщение: 28 Июль 2014, 15:43 »

Доброго Всем время дня!
Уважаемые форумчане, помогите плз. переделать код макроса ООCalc.
Исторически этот код был написан в VBA (OS Windows), затем адаптирован
под VB (OS Windows), а теперь следующая беда, поменялась OS, стала Linux!
А я мои познания в Linux только в том, что знаю: "Есть такая OS на свете!"
  
Как видно из кода, макрос при открытии файла создает директорию на диске С: "Архив Отчетов", затем
создает на рабочем столе ярлык для этой директории и ярлык "Учет входящих"
для запуска файла.
Код:
Rem Attribute VBA_ModuleType=VBADocumentModule
Option VBASupport 1
Option Explicit

Sub Auto_Open()

MsgBox vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & vbTab & "ВСЕМ ПРИВЕТ!" & vbCrLf & _
vbTab & vbTab & vbTab & vbTab & vbTab & "Сегодня " & Now & vbCrLf & _
"Сейчас все настроим, проверем и начнем работать!!!", vbInformation, "Информационное сообщение"

Dim X As String, strPath As String

    strPath = "C:/АРХИВ ОТЧЕТОВ"
    On Error Resume Next
    X = GetAttr(strPath) And 0
      
 If Err = 0 Then 'если путь существует быстро все настраиваем
        
    If Sheets(3).Range("a16") <> "" Then

      MsgBox vbTab & vbTab & vbTab & "Сегодня истекает срок исполнения" & vbCrLf & _
      "обращений, согласно сформированному отчету!" & vbCrLf & _
      vbTab & vbTab &  vbTab & vbTab & vbTab &  vbTab & "ВПЕРЕД ЗА РАБОТКУ!", vbInformation, "Важное сообщение!"
 
Else

     MsgBox vbTab & "Сегодня обращений с истекающим" & vbCrLf & vbTab & vbTab & vbTab & "сроком исполнения нет!" & vbCrLf & _
     "Можно расслабиться и поставить чайник!", vbInformation, "Важное сообщение!"
  
    End if

  Else
    
MkDir("C:\АРХИВ ОТЧЕТОВ")

Set WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop") 'записываем в переменную путь до рабочего стола
       Set oShellLink = WshShell.CreateShortcut(strDesktop & "\УЧЕТ ВХОДЯЩИХ.lnk")   'создаем путь до ярлыка файла на рабстоле
Set oShellLink2 = WshShell.CreateShortcut(strDesktop & "\АРХИВ ОТЧЕТОВ.lnk")   'создаем путь до ярлыка ПАПКИ на рабстоле  
oShellLink.TargetPath =  "C:\РАСЧЕТЫ АЛИМЕНТОВ\Учет v.1.0.ods"  'создаем путь от ярлыка до файла
oShellLink2.TargetPath =  "C:\АРХИВ ОТЧЕТОВ"    'создаем путь от ярлыка до папки
oShellLink.WindowStyle = 1
oShellLink2.WindowStyle = 1
'oShellLink.IconLocation = "путь к картинке которая будет на ярлыке"
oShellLink.Description = "Программа для учета входящих обращений"     'всплывающий комментарий файла
oShellLink2.Description = "Вход в АРХИВ ОТЧЕТОВ программы для учета входящих обращений"      'всплывающий комментарий ПАПКИ
oShellLink.WorkingDirectory = "C:\РАСЧЕТЫ АЛИМЕНТОВ"   'создаем путь до ПАПКИ файла
oShellLink2.WorkingDirectory = "C:\АРХИВ ОТЧЕТОВ"   'создаем путь до созданной ПАПКИ
oShellLink.Save   'создаем ярлык на рабстоле
oShellLink2.Save    'создаем ярлык2 рабстоле
 
    MsgBox "Созданы папка для хранения АРХИВА ОТЧЕТОВ" & vbCrLf & vbTab & vbTab & "и ЯРЛЫКИ на рабочем столе для запуска" & vbCrLf & _
    vbTab & vbTab &  vbTab & vbTab & "программы и входа в АРХИВ!" & vbCrLf & vbCrLf & _
    vbTab & vbTab & "Подговка к работе успешно завершена!", vbInformation, "Важное сообщение!"

 End If
 
End sub
« Последнее редактирование: 28 Июль 2014, 15:46 от Helen » Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
Yakov
Администратор
**
Offline Offline

Сообщений: 2 578


WWW
« Ответ #1: 29 Июль 2014, 10:43 »

Этот макрос использует WScript, а это компонент операционной системы Windows.
Можно написать макрос для Linux, но в нём не должен использоваться  WScript.
И некоторые действия, которые в этом скрипте исполняются WScript, спокойно можно реализовать через стандартные функции OO Basic.
И ещё важный момент:
какой дистрибутив Linux?
какой DE (менеджер рабочего стола) используется?
Записан
sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #2: 29 Июль 2014, 11:12 »

Цитата:
Можно написать макрос для Linux, но в нём не должен использоваться  WScript.
Главное, чтобы выполнялся алгоритм, а уж
какими методами разницы нет!

Цитата:
какой DE (менеджер рабочего стола) используется?

Где это может посмотреть человек, совершенно далекий от программирования?
Дело в том, что Linux поставили на работе моей приятельнице, а она обычный
пользователь! Плачущий
« Последнее редактирование: 29 Июль 2014, 11:14 от sofi » Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
Yakov
Администратор
**
Offline Offline

Сообщений: 2 578


WWW
« Ответ #3: 30 Июль 2014, 16:28 »

Где это может посмотреть человек, совершенно далекий от программирования?
Можно посмотреть на окно ввода пароля. На нём обычно указывается название ОС и можно выбрать менеджер рабочего стола из списка установленных (обычно устанавливается один менеджер).
Но есть и хорошие новости - у 2 самых распространённых менеджеров KDE и GNOME "ярлыки" сохраняются в .desktop файлах.
http://life-warrior.org/programs/gui-deb/manual/desktopfiles.html
То есть программе надо для создания ярлыка определить адрес папки рабочего стола (это можно взять из переменных окружения), и сформировать там необходимые текстовые файлы с расширением  .desktop
Записан
sofi
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Ижевск
Сообщений: 63

Глядя на мир, нельзя не удивляться!


« Ответ #4: 30 Июль 2014, 16:46 »

Спасибо!  Всё хорошо
Почитаю.
Записан

Правильно поставленный вопрос, на 50% предполагает правильный ответ!
А, если автоматизировать бардак, то получится автоматизированный бардак!
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!