Текущее время: Чт, июн 19 2025, 17:31

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 161  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 29 2006, 13:20 
Гость
sibrin написал:
К вызову Ofs.TextToColumns надо добавить пару аргументов:
TextQualifier:=xlNone
FieldInfo:=Array(Array(1,2),Array(2,2)...Array(N,2))

В итоге вместо Ofs.TextToColumns предлагается вызывать
SafeTextToColumns Ofs

Спасибо за подсказку!
подкорректировал ZWWW_MACROS.xls и заработало как надо.

теперь бы найти место где он преобразует для поэлементного вывода таблицы, я в предидущем своем постинге ошибся сказав, что для него преобразование работает


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 29 2006, 14:36 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Mousemike написал(а):
теперь бы найти место где он преобразует для поэлементного вывода таблицы
Если сумеешь заставить нормально работать метод Replace объекта типа Range, т.е. без преобразования любого значения типа "01" в число 1, то будет тебе счастье! :)
У меня не получилось, даже параметр ReplaceFormat не помог. Считаю это очередным глюком Excel.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 29 2006, 15:58 
Гость
Parazit написал:
Mousemike написал(а):
теперь бы найти место где он преобразует для поэлементного вывода таблицы
Если сумеешь заставить нормально работать метод Replace объекта типа Range, т.е. без преобразования любого значения типа "01" в число 1, то будет тебе счастье! :)
У меня не получилось, даже параметр ReplaceFormat не помог. Считаю это очередным глюком Excel.

Ты данные выводишь во временный лист, а потом распихиваешь по ячейкам? Или прямо в нужное место все выводится? Если бы во временную ячейку, то можно было после нахождения нужного места сохранить формат а потом его подставить... я только пока не соображу как это реализовать, как то с методом copy? хотя нет гаратии что он корректно работает.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 29 2006, 16:10 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Mousemike написал(а):
Или прямо в нужное место все выводится?

Прямо в нужное.
Mousemike написал(а):
Если бы во временную ячейку, то можно было после нахождения нужного места сохранить формат а потом его подставить... я только пока не соображу как это реализовать, как то с методом copy? хотя нет гаратии что он корректно работает.

Значение может быть записано и в часть ячейки. Да и формат вывода предполагался всегда текстовый, а уж при необходимости можно было задать формат ячейки. Только вот с Replace кривизна какая то.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, май 29 2006, 17:46 
Гость
sibrin написал:
К вызову Ofs.TextToColumns надо добавить пару аргументов:
TextQualifier:=xlNone
FieldInfo:=Array(Array(1,2),Array(2,2)...Array(N,2))

В итоге вместо Ofs.TextToColumns предлагается вызывать
SafeTextToColumns Ofs



А как бы в процедуре SafeTextToColumns считать формат из соответствующей ячейки? (Если это возможно)


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 30 2006, 14:38 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Цитата:
А как бы в процедуре SafeTextToColumns считать формат из соответствующей ячейки? (Если это возможно)


Конечно, возможно:


Code:
Sub SafeTextToColumns(Ofs As Range)
   
  Dim I, J As Integer
  J = 0
  I = 1
  Do While I > 0
    I = InStr(I, Ofs.Value, Chr(9), vbBinaryCompare)
    If I > 0 Then
       J = J + 1
       I = I + 1
    End If
  Loop
  ReDim ArrFieldInfo(J) As Variant
  ReDim ArrNumberFormat(J) As Variant
 
  For I = 0 To J
     ArrNumberFormat(I) = Ofs.Cells(1, I + 1).NumberFormat
     If Ofs.Cells(1, I + 1).NumberFormat = "@" Then
        ArrFieldInfo(I) = Array(I + 1, xlTextFormat)
     Else
        ArrFieldInfo(I) = Array(I + 1, xlGeneralFormat)
     End If
  Next I

  If Ofs.Value <> "" Then
    Ofs.TextToColumns DataType:=xlDelimited, _
          TextQualifier:=xlTextQualifierNone, ConsecutiveDelimiter:=False, Tab:=True, _
          Semicolon:=False, Comma:=False, Space:=False, Other:=False, _
          FieldInfo:=ArrFieldInfo
  End If

  For I = 0 To J
     Ofs.Cells(1, I + 1).NumberFormat = ArrNumberFormat(I)
     'Ofs.Cells(1, I + 1).Value = Ofs.Cells(1, I + 1).Value
  Next I

End Sub



PS. Наверное, вместо Ofs.Cells(1, I + 1).Value = Ofs.Cells(1, I + 1).Value лучше вызвать какой-то метод, типа flush...


Последний раз редактировалось sibrin Ср, авг 08 2007, 13:47, всего редактировалось 4 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, май 30 2006, 14:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Цитата:
Только вот с Replace кривизна какая то.


Судя по всему параметр ReplaceFormat функции Replace должен играть роль. Но не играет.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 31 2006, 14:07 
Гость
Azik написал:
viper написал(а):
Все настроил, но работает только с Word, с Excel открывает только шаблоны без заполнения! В чем может быть проблема?
И еще в INCLUDE LZWWWFORMF01 есть строка

'...Perform DownloadMacros
using it_Bookmarks 'ZWWW_MACROS'
changing File_Macros MacrosName File_Data. ...'

ну и соответственно

'...Perform DownloadMacros
using it_Bookmarks 'ZWWW_MACROS_WORD'
changing File_Macros MacrosName File_Data...'

Это что получаеться я дожден в тр. SMW0 запихнуть шаблоны из примера и те шаблоны которые с макросами?


Да должен, но например у меня этот макрос не отрабатывает, я писал уже об этом выше.
Я просто при вызове ставлю optimize = 10000000 к примеру, но это долго выводит много записей, а Макрос вроде как должен ускорить.
Но повторю, у меня макрос не работает почему-то :(


товарищи-дорогие! помогите разобраться! у меня тоже этот макрос не отрабатывает, VB выдает run-time error 91.
Это при вызове: Call method of App 'Documents' = Doc.
в макросе на строке
Set f = fs.OpenTextFile(FileData, 1, 0)

В smw0 шаблон ZWWW_MACROS_WORD лежит. Положила его коллега со своего компа, она первая эту технологию осваивала. Так вот: запускаю свою программу на ее компе, макрос отрабатывает, большой файл формируется. На моем макрос выдает ошибку. На обоих компах word 2003. Безопасность поставила самую низкую.
В чем может быть проблема? :roll:

flipper написал(а):
в ФМ ZWWW_OPENFORM после создания объекта OLE, временно выставить свойства
Код:
Set property of App 'Visible' = 1.
Set property of App 'ScreenUpdating' = 1.
Set property of App 'DisplayAlerts' = 1.
возможно что-то и прояснится...


Поставила. Не прояснилось. То есть ничего не показалось :cry:

Приходится ставить большой optimize, выгрузка идет медленно.
Хотелось бы знать, что с вордом не так? А если у юзверей тоже будут проблемы?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 31 2006, 16:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 02:02
Сообщения: 188
Откуда: Мирный -> Москва
Пол: Мужской
Тут еще есть вопрос в том что может стоять Антивирус какой-нить и он блокирует выполнение макросов Excel, проверь!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 01 2006, 09:10 
Гость
Azik написал:
Тут еще есть вопрос в том что может стоять Антивирус какой-нить и он блокирует выполнение макросов Excel, проверь!

Azik, спасибо, что откликнулись :)
У меня стоит Касперский. И на соседнем компе, где макрос работает. Отключила у себя Касперского - все равно не работает.
Поэкспериментировала на разных компьютерах с разными системами и версиями ворда.
Макрос работает ТОЛЬКО на том компе, с которого он был изначально загружен на сервер.
В чем причина, пока не нашли. :roll:


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 01 2006, 09:39 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
С какого компьтера загружен шаблон, очевидно, не должно влиять. R/3 знает помнит только имя пользователя, который это сделал.

Маловероятно, конечно, но могут быть какие-то глупые ошибки, связанные с файловой системой:

1) выгрузка осуществляется в директорию, которая отсутствует или права доступа к ней только на чтение;

2) temp-директория windows недоступна или путь к ней содержит пробелы.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 01 2006, 10:26 
Гость
sibrin написал:
С какого компьтера загружен шаблон, очевидно, не должно влиять. R/3 знает помнит только имя пользователя, который это сделал.

Маловероятно, конечно, но могут быть какие-то глупые ошибки, связанные с файловой системой:

1) выгрузка осуществляется в директорию, которая отсутствует или права доступа к ней только на чтение;

2) temp-директория windows недоступна или путь к ней содержит пробелы.


sibrin, спасибо за отклик :)
Выгрузка идет в директорию
C:\Documents and Settings\nina\Local Settings\Temp
Она есть, туда идет запись файлов, того же промежуточного *.txt
Ошибка в макросе на строке
Set f = fs.OpenTextFile(FileData, 1, 0) - т. е. не может открыть этот промежуточный txt-файл. Код ошибки 91 - нет объекта.
Объект fs создается ранее:
Set fs = CreateObject("Scripting.FileSystemObject")
В дебуггере при наведении мышки на эту строку выдается сообщение, что объет не создан.
Вопрос - почему не создается объект? Что-то не настроено в VB ?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 01 2006, 11:23 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Цитата:
Вопрос - почему не создается объект?
Set f = fs.OpenTextFile(FileData, 1, 0)

Файл открыть не может, вот и ошибка.
Проверьте, совпадает ли FileData в Office с file_data в R/3 после выполнения
Code:
PERFORM downloadmacros
   USING it_bookmarks 'ZWWW_MACROS'
   CHANGING file_macros macrosname file_data.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 02 2006, 08:25 
Гость
sibrin написал:
Цитата:
Вопрос - почему не создается объект?
Set f = fs.OpenTextFile(FileData, 1, 0)

Файл открыть не может, вот и ошибка.
Проверьте, совпадает ли FileData в Office с file_data в R/3 после выполнения
Code:
PERFORM downloadmacros
   USING it_bookmarks 'ZWWW_MACROS'
   CHANGING file_macros macrosname file_data.




FileData в Office = file_data в R/3 - проверила
файл ZWWW_DATA_071435.txt, создан во временной папке, лежит там.
пути совпадают


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 02 2006, 09:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Nina написал(а):
Вопрос - почему не создается объект?
А попробуйте описать переменные Dim fs As Object, f As Object, _


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 161  След.

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


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

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


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

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