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

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


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

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


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

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