Список форумов Акцент Акцент
официальный форум разработчика программы Акцент
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Вопросы по RepWizard
На страницу 1, 2, 3, 4  След.
 
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0
Предыдущая тема :: Следующая тема  
Автор Сообщение
IceZ



Зарегистрирован: 28.03.2005
Сообщения: 69
Откуда: Киев

СообщениеДобавлено: Пн Июн 26, 2006 4:38 pm    Заголовок сообщения: Вопросы по RepWizard Ответить с цитатой

У меня такой вопрос: чем отличается мастеровой отчет,назовем его "А",построенный пользователем , от того же отчета, только открытого способом
RW.Load(Идентификатор отчета "А")
Set "Б" = RW.MakeSheet

В отчете А" можно менять период, обновлять его. А вот в отчете "Б" -нельзя
Может кто знает почему так?
Rolling Eyes P/S/
Комбинации с EnableButtons не работают
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Вт Июн 27, 2006 7:08 am    Заголовок сообщения: Ответить с цитатой

Отчёты от мастера вобще не генерируют события для своего модуля, там какая-то внутреняя скрытая обработка.
Но ShtBook, полученный методом rep.MakeSheet вероятно имеет ошибку в этом обработчике, на которую до сих пор никто не указал.
Да нет у людей необходимости таким образом отчёты делать, мастер рулит а клиент не ждёт.

Обойти можно, если через копи-пасте перенести такой отчёт в новую книгу и там добавить обработчики, но клипборд засоряется.
Можно сохранить отчёт и снова его открыть, добавив обработчики.
А если уж нормально делать, то заполняется чистая таблица обходом дерева отчёта, потом раскрашивается.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
IceZ



Зарегистрирован: 28.03.2005
Сообщения: 69
Откуда: Киев

СообщениеДобавлено: Вт Июн 27, 2006 8:16 am    Заголовок сообщения: Ответить с цитатой

Мне кажется это вовсе не ошибка.
Добавлять свой обработчик ? Да можно. Но тогда легче написать спец процедуру. Она будет быстрее.
Вся перелесть мастера отчетов и заключается в том, что не надо никаких добавлений со стороны программиста.
Если такие ВАЖНЫЕ события, как обновление необходимо программировать, то мастер отчетов в таких случаях уже не нужен
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Ср Июл 05, 2006 10:28 am    Заголовок сообщения: Re: Вопросы по RepWizard Ответить с цитатой

IceZ писал(а):
У меня такой вопрос: чем отличается мастеровой отчет,назовем его "А",построенный пользователем , от того же отчета, только открытого способом
RW.Load(Идентификатор отчета "А")
Set "Б" = RW.MakeSheet

В отчете А" можно менять период, обновлять его. А вот в отчете "Б" -нельзя
Может кто знает почему так?
Rolling Eyes P/S/
Комбинации с EnableButtons не работают


Нет там никаких ошибок.
Если Sheet создается мастером отчетов из интерфейса, то всю обработку делает С++
Если мастер отчетов создается программно, то результат - объект RW.MakeSheet стандартный, VBS - ный. И разработчик должен сам заботится о том, чтобы написать обработку событий.

Для примера можно посмотреть экспорт в Excel через HTML, который есть в Стандарт7
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Чт Июл 06, 2006 7:55 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Мне кажется это вовсе не ошибка.

Нет конечно, - просто не стояла такая задача.
Дело в том, что в мастеровом отчёте "А" есть одно неудобство.
После изменения отчёта из скрипта (да хотя бы тот же экспорт через HTML) внутренние обработчики "обновить" и смены периода перестают работать, но при этом не работают и соответствующие скриптовые события. А в отчёте RW.MakeSheet решили эту проблему обойти, чтобы программистам была возможность добавлять свои обработчики. И это было мудрое решение - зачем терять часы или дни на проблему, которая неопределённое время никого не заволнует.

Цитата:
Если Sheet создается мастером отчетов из интерфейса, то всю обработку делает С++

Приходилось делать много разных обработчиков для панели управления отчёта, и "невидимые" на VB, и просто на скрипте.
Техническая возможность добавить метод RW.AddEvents наверняка имеется, а вот вопрос об экономической целесообразности решает, конечно, Разработчик. А нам остаётся следить за его реакцией.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Чт Июл 06, 2006 8:16 am    Заголовок сообщения: Ответить с цитатой

Set Wr = Createreport("RepWizard")
.....
Set Sb = Wr.MakeSheet
Sb.SetScriptFromFile("EventsForSheets.avb")

Нужны комментарии ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Чт Июл 06, 2006 8:56 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Sb.SetScriptFromFile("EventsForSheets.avb")
Нужны комментарии ?


Разместите, пожалуйста, файл "EventsForSheets.avb" в "полезных мелочах", можно без комментариев.
Если с этим трудности, я сейчас не очень загружен, мог бы написать - если в цене сойдёмся.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Чт Июл 06, 2006 9:05 am    Заголовок сообщения: Ответить с цитатой

Забыл добавить, "EventsForSheets.avb" для "экспорт в Excel через HTML", ато многие эту функцию отключают в настройках - обновление и смена периода с ним перестают работать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Чт Июл 06, 2006 9:11 am    Заголовок сообщения: Ответить с цитатой

Вопрос не по теме - а обновления стандарной поставки сейчас выкладывается на серевере, не нашёл 16 обновления.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Чт Июл 06, 2006 9:14 am    Заголовок сообщения: Ответить с цитатой

Юров Ю.С. писал(а):
Вопрос не по теме - а обновления стандарной поставки сейчас выкладывается на серевере, не нашёл 16 обновления.


Попробуй установить автоматически.
Диалог приветствия - Проверить обновления
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Vinya



Зарегистрирован: 19.10.2005
Сообщения: 17
Откуда: г. Донецк

СообщениеДобавлено: Чт Июл 06, 2006 9:19 am    Заголовок сообщения: Ответить с цитатой

У меня такие вопросы по RepWizard. Я не знаю закономерности, но время от времени RepWizard выдает неправильные данные (Build 0462). Эти данные отличаются от такого же отчета, построенного мастером. Слышали ли вы когда-нибудь о подобных ошибках? Были ли они исправлены в следующих версиях? И (если обшибка не исправлена, но вы о ней слышали) есть ли какая - нибудь закономерность в появлении оной?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Чт Июл 06, 2006 9:21 am    Заголовок сообщения: Ответить с цитатой

Цитата:
"Если с этим трудности"

Хотел сказать, "если готового нет и со временем трудности", ато ещё подумаете чёрти-что Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
IceZ



Зарегистрирован: 28.03.2005
Сообщения: 69
Откуда: Киев

СообщениеДобавлено: Чт Июл 06, 2006 9:39 am    Заголовок сообщения: Ответить с цитатой

Можно конечно и так исхитриться

Option Explicit
Dim Period
Set Period = CreateLibObject("Period")
Sub ShtBook_OnRequery
Dim RW
Dim Sht
Set RW = Workarea.CreateReport("RepWizard")
RW.Load(ShtBook.MAP.Item("REPID"))
RW.KindID = ShtBook.MAP.Item("KINDID")
RW.Period.Start = PERIOD.START
RW.Period.End = PERIOD.End
RW.BUILD
Set SHT = RW.MakeSheet
SHT.SETSCRIPT ("'#include ""Прометей.Мастер Отчетов.Обработчик.avb""")
SHT.Map.Item("REPID") = ShtBook.MAP.Item("REPID")
SHT.Map.Item("KINDID") = ShtBook.MAP.Item("KINDID")
ShtBook.Close
End Sub

Sub ShtBook_OnPeriodClick(Buttons)
If Period.Browse Then Call ShtBook_OnRequery
End Sub

Sub ShtBook_OnLoad
ShtBook.EnableButtons(1+2+4)
End Sub
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Чт Июл 06, 2006 10:11 am    Заголовок сообщения: Ответить с цитатой

Сперва нужно заставить таблицу отчёта, сформированную скриптом, кричать "Ура" по нажатию кнопки "обновить". (Желательно без создания новой таблицы - мороки много.)

А после можно будет "исхитряться" с обновлением.

Код:

Option Explicit

Sub AddModule(sh)
  Dim s
  s=  "Option Explicit" & vbLf & vbLf
  s=s&"ShtBook.EnableButtons 1 + 4   'Обновить + Сохранить" & vbLf & vbLf
  s=s&"Sub ShtBook_OnRequery" & vbLf & _
      "  MsgBox ""УРА, обработчики работают""" & vbLf & _
      "End Sub" & vbLf
  sh.Parent.SetScript(s)
End Sub

Sub test
  Dim rw : Set rw=workarea.CreateReport("RepWizard")
  rw.Load 889 'любой существующий
  rw.KindID = 489 'правильный
  rw.Build
  Dim sh : Set sh = rw.MakeSheet.ActiveSheet
  AddModule(sh)
End Sub

Call test


Последний раз редактировалось: Юров Ю.С. (Чт Июл 06, 2006 10:23 am), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Чт Июл 06, 2006 10:22 am    Заголовок сообщения: Ответить с цитатой

Я могу, только некогда.

- Изменить период
- Пересчитать отчет
- Создать новую таблицу makeSheet
- напихать его VBS кодом
- закрыть текущий отчет.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0 Часовой пояс: GMT + 2
На страницу 1, 2, 3, 4  След.
Страница 1 из 4

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group