Текущее время: Сб, июл 19 2025, 14:04

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 32, 33, 34, 35, 36, 37, 38 ... 161  След.
Автор Сообщение
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, апр 29 2009, 14:13 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
lumer написал:
Господа ABAP-еры! Пока wiki не запущена, несмотря на мое самовыдвижение, скажите пожалуйста - как можно вывести определенную картинку в ворд?

Стоит задача вывода одного из логотипов юрлица. Готов макрос для вывода "картинки1", (2, 3, ...) в зависимости от переданного параметра. Но как его вызвать для DOC-файла?


Я делал так:
Выгружаем сами картинку из smw0 или другого хранилища,
помещаем полное имя файла в ячейку шаблона для картинки,
Code:
SetLine 'Место_вывода' count_loop '[photo]' '' FlName.

вызываем макрос для этой ясейки
Code:
SetLine 'Место_вывода' count_loop '' 'M' 'Photo'.

макрос берет имя файла и подставляет саму картинку,
Code:
Sub Photo(r As Range)
  Dim FlName As String, R2 As Range, T As Range
 
  On Error Resume Next
  Set T = r.Tables.Item(1).Range
  Set R2 = T.Cells(2).Range
  For I = 1 To Len(R2.Text)
    s = Mid(R2.Text, I, 1)
    If s <> Chr(13) And s <> Chr(7) And s <> Chr(10) Then
      FlName = FlName + s
    End If
  Next
  R2.Text = ""
  ActiveDocument.InlineShapes.AddPicture FlName, , , R2
  T.Cells.DistributeHeight
End Sub

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, апр 29 2009, 14:27 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Так у меня единственный вопрос - как "дернуть макрос за веревочку" :)
ZWWW_OPENFORM ведь ничего не возвращает за что можно дергать...

Как мне после вывода остального (или в процессе) вызвать свой макрос?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, апр 29 2009, 14:43 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
а на это Parazit выше ответил
вот это строчка и отвечает за вызов
Code:
SetLine 'Место_вывода' count_loop '' 'M' 'Photo'.

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, май 27 2009, 15:24 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, фев 12 2009, 17:18
Сообщения: 36
Пол: Мужской
Можно ли как-то пользователям 2007-го офиса добиться того, чтобы Эксель закрывался сразу же после создания файла?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, май 27 2009, 15:41 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Sorusat написал:
Можно ли как-то пользователям 2007-го офиса добиться того, чтобы Эксель закрывался сразу же после создания файла?

Конечно
CALL METHOD OF Workbook 'Save'.
CALL METHOD OF App 'Quit'.

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, май 27 2009, 15:49 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, фев 12 2009, 17:18
Сообщения: 36
Пол: Мужской
Я правильно понял, что для этого нужно модифицировать form OpenForm?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, май 28 2009, 00:55 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
Sorusat написал:
Я правильно понял, что для этого нужно модифицировать form OpenForm?

Да верно, я для этих целей в ФМ zwww_openform добавил параметр ONLY_SAVE
передавал его в FORM openform и там в нескольких местах подправил код
Code:
FORM openform
  USING file_name TYPE rlgrap-filename
        filetype  TYPE char30
        it_values TYPE table
        optimize  TYPE n
        protect
        printdialog
        only_save
        debug_mode
        decimal_separator
        return_code TYPE i.

  DATA:
    app        TYPE ole2_object,
    docs       TYPE ole2_object,
    item       TYPE ole2_object,
    dialogs    TYPE ole2_object,
    itemdlg    TYPE ole2_object.

  DATA:
    screenupdating TYPE i,
    res(250),
    BEGIN OF appparam,
      decimalseparator,
      thousandsseparator,
      usesystemseparators(10),
    END OF appparam,
    w_filename TYPE rlgrap-filename.

  DATA: appstr(30).
  CONCATENATE filetype '.Application' INTO appstr.

  CREATE OBJECT app appstr.

  SET PROPERTY OF app 'DisplayAlerts' = 0.
  CALL FUNCTION 'FLUSH'.

  IF debug_mode = 'X'.
    SET PROPERTY OF app 'Visible' = 1.
    screenupdating = 1.
  ELSE.
    SET PROPERTY OF app 'Visible' = 0.
    screenupdating = 0.
  ENDIF.
  SET PROPERTY OF app 'ScreenUpdating' = screenupdating.
  CALL FUNCTION 'FLUSH'.

  CASE filetype.
    WHEN 'EXCEL'.
      DATA: curseparator.
      PERFORM get_excel_decimal_separator
        USING curseparator.
      IF curseparator <> decimal_separator.
        GET PROPERTY OF app
          'DecimalSeparator' = appparam-decimalseparator.
        GET PROPERTY OF app
          'ThousandsSeparator' = appparam-thousandsseparator.
        GET PROPERTY OF app
          'UseSystemSeparators' = appparam-usesystemseparators.
        SET PROPERTY OF app 'UseSystemSeparators' = 0.
        SET PROPERTY OF app 'DecimalSeparator' = decimal_separator.
        SET PROPERTY OF app 'ThousandsSeparator' = ' '.
        CALL FUNCTION 'FLUSH'.
      ENDIF.

      CALL METHOD OF app 'Workbooks' = docs.
      CALL METHOD OF docs 'Open'
        EXPORTING
        #1 = file_name.
      CALL METHOD OF app 'ActiveWorkbook' = item.

      CALL FUNCTION 'ZWWW_FILLFORM'
        EXPORTING
          doc       = docs
          optimize  = optimize
          file_type = filetype
        TABLES
          it_values = it_values.

      IF curseparator <> decimal_separator.
        SET PROPERTY OF app
          'DecimalSeparator' = appparam-decimalseparator.
        SET PROPERTY OF app
          'ThousandsSeparator' = appparam-thousandsseparator.
        SET PROPERTY OF app
          'UseSystemSeparators' = appparam-usesystemseparators.
      ENDIF.
      CALL FUNCTION 'FLUSH'.

      IF NOT protect IS INITIAL.
        DATA: sht    TYPE ole2_object,
              itmsht TYPE ole2_object,
              cntsht TYPE i,
              num TYPE i.
        num = 0.
        CALL METHOD OF item 'Worksheets' = sht.
        GET PROPERTY OF sht 'Count' = cntsht.
        DO cntsht TIMES.
          num = num + 1.
          CALL METHOD OF sht 'Item' = itmsht
            EXPORTING
            #1 = num.
          CALL METHOD OF itmsht 'Protect'
            EXPORTING
              #1 = sy-timlo " Password
              #2 = 1 " DrawingObjects = True
              #3 = 1 " Contents = True
              #4 = 1." Scenarios = True
        ENDDO.
        CALL FUNCTION 'FLUSH'.
      ENDIF.

      CALL METHOD OF item 'Save'.
      IF only_save IS INITIAL.
        CALL FUNCTION 'FLUSH'.
        SET PROPERTY OF app 'DisplayAlerts' = 1.
        SET PROPERTY OF app 'ScreenUpdating' = 1.
        SET PROPERTY OF app 'Visible' = 1.
        CALL FUNCTION 'FLUSH'.
      ENDIF.

      IF NOT printdialog IS INITIAL.
        CALL METHOD OF app 'Dialogs' = dialogs.

        CALL METHOD OF dialogs 'Item' = itemdlg
          EXPORTING
          #1 = '8'. "xlDialogPrint

        CALL METHOD OF itemdlg 'Show' = res.
        CALL FUNCTION 'FLUSH'.

        return_code = 0.
        IF res = 0.
          return_code = 1.
        ENDIF.
*      CALL FUNCTION 'FLUSH'.
      ENDIF.

    WHEN 'WORD'.
      CALL METHOD OF app 'Documents' = docs.
      CALL METHOD OF docs 'Open'
        EXPORTING
        #1 = file_name.
      CALL METHOD OF app 'ActiveDocument' = item.

      CALL FUNCTION 'ZWWW_FILLFORM'
        EXPORTING
          doc       = docs
          optimize  = optimize
          file_type = filetype
        TABLES
          it_values = it_values.

      IF NOT protect IS INITIAL.
        CALL METHOD OF item 'Protect'
          EXPORTING
            #1 = 3  " Type = wdAllowOnlyReading
            #2 = 0  " NoReset = false
            #3 = sy-timlo. " Password
*                    #4 = 0  " UseIRM = False
*                    #5 = 0. " EnforceStyleLock = False
        CALL FUNCTION 'FLUSH'.
      ENDIF.

      CALL METHOD OF item 'Save'.
      CALL FUNCTION 'FLUSH'.

      IF only_save IS INITIAL.
        SET PROPERTY OF app 'ScreenUpdating' = 1.
        CALL FUNCTION 'FLUSH'.

        SET PROPERTY OF app 'DisplayAlerts' = 1.
        CALL FUNCTION 'FLUSH'.

        SET PROPERTY OF app 'Visible' = 1.
        CALL FUNCTION 'FLUSH'.
      ENDIF.

*
      IF NOT printdialog IS INITIAL.
        CALL METHOD OF app 'Dialogs' = dialogs.

        CALL METHOD OF dialogs 'Item' = itemdlg
          EXPORTING
          #1 = '88'. "wdDialogFilePrint

        CALL METHOD OF itemdlg 'Show' = res.
        CALL FUNCTION 'FLUSH'.

        return_code = 0.
        IF res = 0.
          return_code = 1.
        ENDIF.
*      CALL FUNCTION 'FLUSH'.
      ENDIF.
  ENDCASE.

  IF NOT printdialog IS INITIAL OR NOT only_save IS INITIAL.
    CALL METHOD OF app 'Quit'.
  ENDIF.

  FREE OBJECT app.
  CALL FUNCTION 'FLUSH'.

  IF only_save IS INITIAL.
    w_filename = file_name.
    CALL FUNCTION 'GUI_DELETE_FILE'
      EXPORTING
        file_name = w_filename
      EXCEPTIONS
        OTHERS    = 1.
  ENDIF.

ENDFORM.                    " OpenForm

_________________
Изображение Попытка не пытка


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, май 28 2009, 09:33 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Чт, фев 12 2009, 17:18
Сообщения: 36
Пол: Мужской
Спасибо, это то, что нужно!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, май 28 2009, 23:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
DKiyanov написал:
Sorusat написал:
Я правильно понял, что для этого нужно модифицировать form OpenForm?

Да верно, я для этих целей в ФМ zwww_openform добавил параметр ONLY_SAVE
передавал его в FORM openform и там в нескольких местах подправил код


Для совместимости с будущей версией, которая пока в обкатке, лучше параметр назвать CLOSE_FORM и по умолчанию происвоить ему пустое значение.
Для закрытия формы после вывода присваивать 'X'.

Цитата:
FUNCTION ZWWW_OPENFORM.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*" IMPORTING
*" VALUE(FORM_NAME) TYPE WWWDATATAB-OBJID
*" VALUE(FILE_NAME) TYPE RLGRAP-FILENAME OPTIONAL
*" VALUE(PRINTDIALOG) TYPE C DEFAULT 'X'
*" VALUE(PROTECT) TYPE C DEFAULT 'X'
*" VALUE(OPTIMIZE) TYPE N DEFAULT 100
*" VALUE(DEBUG_MODE) TYPE C DEFAULT ''
*" VALUE(DECIMAL_SEPARATOR) TYPE C DEFAULT '.'
*" VALUE(CLOSE_FORM) TYPE C DEFAULT ''
*" VALUE(DELETE_FILE) TYPE C DEFAULT 'X'
*" TABLES
*" IT_VALUES
*" EXCEPTIONS
*" PRINTCANCEL

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, июн 04 2009, 10:13 
Начинающий
Начинающий

Зарегистрирован:
Пн, июн 01 2009, 13:38
Сообщения: 4
Название файла из которого нужно вставить в Word картинку передаю в поле свойств документа, как его можно считать в макросе, чтобы использовать как имя файла?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пт, июн 05 2009, 09:35 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
AlekseyL написал(а):
Название файла из которого нужно вставить в Word картинку передаю в поле свойств документа, как его можно считать в макросе, чтобы использовать как имя файла?

А как вставляешь? Код покажи.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Выложил свежую версию! ZWWW_Vers2
СообщениеДобавлено: Чт, июн 18 2009, 11:47 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Выложил свежую версию!
Ссылка на файлы по прежнему в первом сообщении темы, но адрес размещения изменился.
Файл назвал ZWWW_Vers2.zip, старая версия лежит под именем ZWWW.zip.
Обновить необходимо абсолютно все ФМ, инклуды и макросы. Также появились новые ФМ, см описание.
Версия довольно долго обкатывалась, но траблы не исключены (особенно вырузка в Word, ибо мало юзают), о чем прошу сообщать мне, решу максимальнло оперативно.

О всех изменениях не упомню:
- решены проблемы совместимости в системах от 4.6 до ERP2006, в т.ч. с юникодами и типом string;
- учтены некоторые пожелания форумчан, добавлены новые параметры в модули;
- проведена оптимизация алгоритма выгрузки, в т.ч. и макросов;
- доработана выгрузка в шаблоны MS Office 2007;
- созданы более наглядные примеры;
- исправлены траблы, сделаны кое-какие доработки и т.п.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, июн 18 2009, 15:05 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, мар 03 2009, 12:33
Сообщения: 141
Валера, ты жжошь!!! Спасибо тебе бальшущее, посмотрю на досуге!!!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, июн 30 2009, 16:39 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, дек 25 2008, 17:07
Сообщения: 144
Откуда: Казань
Пол: Мужской
Использую обновлённый ФМ ZBDS_OPENFORM
Форма не печается из-за пустого параметра FILETYPE.
Раньше юзал - всё работало - без проблем. В результате рабочие проги с использованием этого ФМ перестали выводить форму :(

Добавил
Ошибка в программе LZWWWFORMF01
Раньше было
Code:
  Translate Ext to upper case.
  Case Ext.
    when 'XLS'.
      FileType = 'EXCEL'.
    when 'DOC'.
      FileType = 'WORD'.
    when others.
      Exit.
  EndCase.

а теперь
Code:
  CASE Ext.
  WHEN '.XLS' OR '.XLSX'.
    FileType = 'EXCEL'.
  WHEN '.DOC' OR '.DOCX'.
    FileType = 'WORD'.
  WHEN '.RTF'.
    FileType = 'RTF'.
  WHEN '.ODS'.
    FileType = 'SOFFICE.STARCALCDOCUMENT'.
  WHEN '.ODT'.
    FileType = 'SOFFICE.STARWRITERDOCUMENT'.
  WHEN OTHERS.
    Result = 'X'.
    EXIT.
  ENDCASE.

Видимо ошибка из за разницы в '.XLS' и 'XLS'.
Хотя я не уверен :(
Посмотришь Parazit ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, июн 30 2009, 17:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Марик написал:
Использую обновлённый ФМ ZBDS_OPENFORM
Форма не печается из-за пустого параметра FILETYPE.
Раньше юзал - всё работало - без проблем. В результате рабочие проги с использованием этого ФМ перестали выводить форму :(


Пардон, не доглядел, ибо сами BDS не юзаем. :)
Уже исправил и выложил, достаточно обновить инклуд LZWWWFORMF01.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 32, 33, 34, 35, 36, 37, 38 ... 161  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB