Текущее время: Вс, июл 20 2025, 18:17

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: Google [Bot]


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

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