Перейти к содержимому


Добро пожаловать на Форум неформального общения сотрудников УИС

Добро пожаловать на Форум неформального общения сотрудников УИС. Без регистрации вам доступна вся информация на форуме только для чтения. Создание новых тем и ответы в существующие будут доступны после регистрации:
  • Данный форум не является официальным форумом и не имеет никакого отношения к ФСИН России. Разъяснения здесь каких-либо вопросов юридической силы не имеют и являются личным мнением участников форума. За официальными разъяснениями просим обращаться непосредственно в ФСИН России и территориальные органы ФСИН.
Регистрация.
Локализация от IP-Board.Ru
 

* * * * - 6 Голосов

АКУС ИК(КП), СИЗО - вопросы, поиск решений

АКУС

Сообщений в теме: 1698

#781 Гость_RabbitXL_*


  • НЕ В СЕТИ
  • Гости
  • Спасибо!

Репутация: 0

Отправлено 24 Февраль 2015 - 18:02

Просмотр сообщенияUzbek (24 Февраль 2015 - 17:26) писал:

Как поменять символ разметки на станции, либо присвоить символ/символы станции?
присоединяюсь к вопросу, есть еще один.

Как отсортировать результаты запроса по определенному полю перед печатью?
Например есть запрос "Прибыли за сутки", как их отсортировать по времени прибытия перед печатью?
PS. Пробывал вручную редактировать запрос и подставлять функцию ORDER BY "нужное поле", толку ноль :) сортируется по ФИО

#782 Гость_Тринитротуллуол_*


  • НЕ В СЕТИ
  • Гости
  • Спасибо!

Репутация: 0

Отправлено 25 Февраль 2015 - 18:24

Просмотр сообщенияIskanderMax (22 Февраль 2015 - 20:13) писал:

Вот БЕСЕДКА, но она была сделана под более старую версию АКУСа, так что, я не советую ее использовать на рабочей базе!!! Протестируйте вначале на ПУСТОЙ картотеке!!!
спасибо!Главное скелет, а там переделаем)

#783 IskanderMax

    Зауряд-прапорщик


  • НЕ В СЕТИ
  • Активные участники

  • 386 сообщений
  • Время: 15:28
  • 74 Спасибо!
  • Служба:Пенсионер
  • Место службы:пенсионер
  • Интересы:IT

Текущее настроение: Пивасик
Репутация: 32

Отправлено 27 Февраль 2015 - 08:02

Просмотр сообщенияТринитротуллуол (25 Февраль 2015 - 18:24) писал:

спасибо!Главное скелет, а там переделаем)
Сообщите о результатах?

#784 warrior2007xxl

    Младший унтер-офицер


  • НЕ В СЕТИ
  • Участники

  • 45 сообщений
  • Время: 16:28
  • 3 Спасибо!
  • Служба:инженер 2 разряда группы автоматизации
  • Место службы:ИК (КП,ВК)

Репутация: 4

Отправлено 27 Февраль 2015 - 23:35

Уважаемые господа, у кого нибудь есть файл шаблон для АКУС ИК(КП) версия 1.42 - шаблон REPORT250.DOT
находиться он в папке REPORTS
Сегодня воспитатель стал формировать какаю то аналитику и выдало ошибку об отстутствии этого шаблона, причём 249 есть 251 тоже, а 250 нет. Если есть у кого нибудь скинте плиз на мою почту warrior2007xxl@rambler.ru

#785 Deadushka

    Инженер


  • НЕ В СЕТИ
  • VIP

  • 782 сообщений
  • Время: 15:28
  • 586 Спасибо!
  • Служба:Техническая служба
  • Место службы:пенсионер

Текущее настроение: В гармонии
Репутация: 493

Отправлено 28 Февраль 2015 - 08:48

Глянул ради помощи, но у меня в базе тоже нет такого шаблона 250...Можно поконкретней какую аналитику делали?

#786 warrior2007xxl

    Младший унтер-офицер


  • НЕ В СЕТИ
  • Участники

  • 45 сообщений
  • Время: 16:28
  • 3 Спасибо!
  • Служба:инженер 2 разряда группы автоматизации
  • Место службы:ИК (КП,ВК)

Репутация: 4

Отправлено 28 Февраль 2015 - 11:36

В понедельник попробую посмотреть как он её делает, мне он показал, как нажимает на пиктограмму word на панели в ПТК АКУС и начинает формаровать, потом выскакивает ошибка (файл шаблон z:REPORTSREPORT250.DOT не существует).

Сообщение отредактировал warrior2007xxl: 28 Февраль 2015 - 11:37


#787 Madzhar

    Ефрейтор


  • НЕ В СЕТИ
  • Участники

  • 26 сообщений
  • Время: 16:28
  • 8 Спасибо!
  • Служба:ГА ОАО

Репутация: 9

Отправлено 02 Март 2015 - 09:47

После обновления до 1.43 из папки отчеты-документы по социальной работе исчезла Социальная карта(лиц. Сторона). Сталкивался кто с этим? сякого рода ревизии не помогают.

И подскажите есть ли смысл писать в Тверь? Помогли они кому нибудь?

Прикрепленные файлы



#788 лоер

    Зауряд-прапорщик


  • НЕ В СЕТИ
  • Активные участники

  • 319 сообщений
  • Время: 15:28
  • 134 Спасибо!
  • Служба:космодесант на пенсии
  • Место службы:пенсионер

Текущее настроение: В гармонии
Репутация: 40

Отправлено 02 Март 2015 - 19:05

Просмотр сообщенияMadzhar (02 Март 2015 - 09:47) писал:

И подскажите есть ли смысл писать в Тверь? Помогли они кому нибудь?
пишите, звоните - помогут. у них на поддержку клиентов отдел целый был. сам звонил - помогли. правда не с 1-го (и не с 3-го) раза попал куда нужно. но не отказали)

#789 hot1986

    Стажер


  • НЕ В СЕТИ
  • Стажеры

  • 3 сообщений
  • Время: 19:28
  • 0 Спасибо!

Репутация: 0

Отправлено 03 Март 2015 - 08:05

Просмотр сообщенияMadzhar (02 Март 2015 - 09:47) писал:

После обновления до 1.43 из папки отчеты-документы по социальной работе исчезла Социальная карта(лиц. Сторона). Сталкивался кто с этим? сякого рода ревизии не помогают.

И подскажите есть ли смысл писать в Тверь? Помогли они кому нибудь?
Если сохранилась база до обновления, то можно из нее вытащить отчет.

Сообщение отредактировал hot1986: 03 Март 2015 - 08:05


#790 Deadushka

    Инженер


  • НЕ В СЕТИ
  • VIP

  • 782 сообщений
  • Время: 15:28
  • 586 Спасибо!
  • Служба:Техническая служба
  • Место службы:пенсионер

Текущее настроение: В гармонии
Репутация: 493

Отправлено 03 Март 2015 - 10:11

@Madzhar отправил в личку шаблон

#791 Madzhar

    Ефрейтор


  • НЕ В СЕТИ
  • Участники

  • 26 сообщений
  • Время: 16:28
  • 8 Спасибо!
  • Служба:ГА ОАО

Репутация: 9

Отправлено 03 Март 2015 - 11:20

пробовал из старой базы тащить. Пишет заменить. Получается он есть в базе, а в отчетах не отображается

#792 TwoFace

    Младший унтер-офицер


  • НЕ В СЕТИ
  • Участники

  • 66 сообщений
  • Время: 18:28
  • 25 Спасибо!
  • Служба:Группа автоматизации
  • Место службы:ИК (КП,ВК)
  • Интересы:Аниме, Мотоциклы, Компьютеры, Программирование, Рисование

Репутация: 7

Отправлено 03 Март 2015 - 17:09

Просмотр сообщенияRabbitXL (24 Февраль 2015 - 18:02) писал:

присоединяюсь к вопросу, есть еще один.

Как отсортировать результаты запроса по определенному полю перед печатью?
Например есть запрос "Прибыли за сутки", как их отсортировать по времени прибытия перед печатью?
PS. Пробывал вручную редактировать запрос и подставлять функцию ORDER BY "нужное поле", толку ноль :) сортируется по ФИО
Если вопрос еще актуален - с утра на работе напишу как я делаю такие отчеты...

Сообщение отредактировал TwoFace: 03 Март 2015 - 17:09


#793 TwoFace

    Младший унтер-офицер


  • НЕ В СЕТИ
  • Участники

  • 66 сообщений
  • Время: 18:28
  • 25 Спасибо!
  • Служба:Группа автоматизации
  • Место службы:ИК (КП,ВК)
  • Интересы:Аниме, Мотоциклы, Компьютеры, Программирование, Рисование

Репутация: 7

Отправлено 04 Март 2015 - 05:41

Вот список осужденных, упорядоченных по концу срока.

Копируем "form1.sct" и "form1.scx" в папку Form базы данных.

Копируем "Конец срока.dot" в папку Reports базы данных.
Прикрепленный файл Documents.zip 31,29К 16 Количество загрузок:

Создаем новый макрос "Конец срока" в режиме администрирования:

*===================================================================
* Макрос формирует список осужденных с концом срока
* указанного интервала
*-------------------------------------------------------------------

LOCAL loWord, loDoc, lnRowNum
LOCAL lMyRetVal, loDate1, loDate2, lcMestoP
LOCAL path, lcBuffer
LOCAL lcI

do form (_Form + "form1.scx") to lMyRetVal

loDate1 = substr(lMyRetVal, 1, 10)
loDate2 = substr(lMyRetVal, 12, 10)

DECLARE INTEGER GetPrivateProfileString IN Win32API;
STRING cSection, STRING cKey, STRING cDefault, STRING @cBuffer, ;
INTEGER nBufferSize, STRING cINIFile

path = addbs(_prg) + gcstationinifile

lcBuffer = space(1024)

GetPrivateProfileString("System", "Reports", "", @lcBuffer, len(lcBuffer), path)

for lcI = 1024 to 1 step -1
if substr(lcBuffer, lcI, 1) = ""
exit
endif
next

loWord = createobject('Word.Application')

loDoc = m.loWord.Documents.Add(substr(lcBuffer, 1, lcI) + 'Конец срока.dot')
m.loWord.Visible = .T.

select cast(iif(empty(vkonecsrok), evl(vkonecsrok,NULL), ctod(vkonecsrok)) as date) ;
as vkonecsrok1,vfamily,vname,vlastname,vlichndelo,vnomotr,vmestopgos,vmestopobl,;
vmestopgor,vmestopadr from card where ctod(vkonecsrok) >= ctod(loDate1) ;
and ctod(vkonecsrok) <= ctod(loDate2) ;
and vpr_osv=0 and vpobeg=0 and vubylpost=0 and vumer=0 into cursor ;
buf_cursor order by vkonecsrok1

m.loWord.Selection.Find.ClearFormatting
m.loWord.Selection.Find.Replacement.ClearFormatting
m.loWord.Selection.Find.Execute('[КС1]', .F., .F., .F., .F., .F., .T., .F., .F., loDate1, 2)

m.loWord.Selection.Find.ClearFormatting
m.loWord.Selection.Find.Replacement.ClearFormatting
m.loWord.Selection.Find.Execute('[КС2]', .F., .F., .F., .F., .F., .T., .F., .F., loDate2, 2)

loTable = m.loDoc.Tables(1)

lnRowNum = 2

select buf_cursor
scan
m.loTable.Rows.Add()

m.loTable.Cell(m.lnRowNum, 1).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 1).Range.Text = alltrim(str(lnRowNum - 1)) + "."

m.loTable.Cell(m.lnRowNum, 2).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 2).Range.Text = buf_cursor.vkonecsrok1

m.loTable.Cell(m.lnRowNum, 3).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 3).Range.Text = alltrim(buf_cursor.vfamily)

m.loTable.Cell(m.lnRowNum, 4).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 4).Range.Text = alltrim(buf_cursor.vname)

m.loTable.Cell(m.lnRowNum, 5).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 5).Range.Text = alltrim(buf_cursor.vlastname)

m.loTable.Cell(m.lnRowNum, 6).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 6).Range.Text = alltrim(buf_cursor.vlichndelo)

lnRowNum = lnRowNum + 1
endscan

ОТЧЕТ ВЫЗЫВАЕТСЯ ЧЕРЕЗ МАКРОСЫ (!)

Прикрепленные файлы

  • Прикрепленный файл  Documents.zip   31,29К   16 Количество загрузок:

Сообщение отредактировал TwoFace: 04 Март 2015 - 05:47


Поблагодарил (и): 2 пользователи:

#794 Гость_RabbitXL_*


  • НЕ В СЕТИ
  • Гости
  • Спасибо!

Репутация: 0

Отправлено 05 Март 2015 - 13:14

Спасибо TwoFace. Думал будет достаточно знаний SQL, а тут еще и FoxPro знать нужно... Коментарии бы к коду :)
Или порекомендуйте литературу чтобы научится писать похожие макросы

#795 TwoFace

    Младший унтер-офицер


  • НЕ В СЕТИ
  • Участники

  • 66 сообщений
  • Время: 18:28
  • 25 Спасибо!
  • Служба:Группа автоматизации
  • Место службы:ИК (КП,ВК)
  • Интересы:Аниме, Мотоциклы, Компьютеры, Программирование, Рисование

Репутация: 7

Отправлено 05 Март 2015 - 16:30

Просмотр сообщенияRabbitXL (05 Март 2015 - 13:14) писал:

Спасибо TwoFace. Думал будет достаточно знаний SQL, а тут еще и FoxPro знать нужно... Коментарии бы к коду :)
Или порекомендуйте литературу чтобы научится писать похожие макросы

Да тут как бы ничего сложного нету. На основе этого макроса у меня написано большинство отчетов.
Мне нравится использовать макросы, т.к. они комбинируют запрос+отчет+можно делать вычисления.

Здесь определены переменные:
LOCAL loWord, loDoc, lnRowNum
LOCAL lMyRetVal, loDate1, loDate2, lcMestoP
LOCAL path, lcBuffer
LOCAL lcI

do form (_Form + "form1.scx") to lMyRetVal Вызываем форму и возвращаем значение в переменную lMyRetVal = ДД.ММ.ГГГГ + ' ' + ДД.ММ.ГГГГ

loDate1 = substr(lMyRetVal, 1, 10) Берем первые десть символов строки. Это дата в формате ДД.ММ.ГГГГ
loDate2 = substr(lMyRetVal, 12, 10) Берем еще десять символов строки

В этом блоке определяем путь к папке Reports базы данных.
DECLARE INTEGER GetPrivateProfileString IN Win32API;
STRING cSection, STRING cKey, STRING cDefault, STRING @cBuffer, ;
INTEGER nBufferSize, STRING cINIFile

path = addbs(_prg) + gcstationinifile

lcBuffer = space(1024)

GetPrivateProfileString("System", "Reports", "", @lcBuffer, len(lcBuffer), path)

for lcI = 1024 to 1 step -1
if substr(lcBuffer, lcI, 1) = ""
exit
endif
next

loWord = createobject('Word.Application') Создание приложения Word

loDoc = m.loWord.Documents.Add(substr(lcBuffer, 1, lcI) + 'Конец срока.dot')
m.loWord.Visible = .T. Создаем документ на основе шаблона и делаем его видимым. Эту строку можно ставить как здесь, так и в конце макроса. Чтобы сразу показать готовый документ.

Здесь SQL запрос. Выбираем нужные поля из базы
select cast(iif(empty(vkonecsrok), evl(vkonecsrok,NULL), ctod(vkonecsrok)) as date) ;
as vkonecsrok1,vfamily,vname,vlastname,vlichndelo,vnomotr,vmestopgos,vmestopobl,;
vmestopgor,vmestopadr from card where ctod(vkonecsrok) >= ctod(loDate1) ;
and ctod(vkonecsrok) <= ctod(loDate2) ;
and vpr_osv=0 and vpobeg=0 and vubylpost=0 and vumer=0 into cursor ;
buf_cursor order by vkonecsrok1

Ищем строку в документе и заменяем.
m.loWord.Selection.Find.ClearFormatting
m.loWord.Selection.Find.Replacement.ClearFormatting
m.loWord.Selection.Find.Execute('[КС1]', .F., .F., .F., .F., .F., .T., .F., .F., loDate1, 2)

m.loWord.Selection.Find.ClearFormatting
m.loWord.Selection.Find.Replacement.ClearFormatting
m.loWord.Selection.Find.Execute('[КС2]', .F., .F., .F., .F., .F., .T., .F., .F., loDate2, 2)

loTable = m.loDoc.Tables(1) Обращаемся к нужному номеру таблицы. Их может быть в документе несколько

lnRowNum = 2

Берем данные из курсора и создаем новые строки в таблице. В нужную ячейку (строка, столбец) записываем данные
select buf_cursor
scan
m.loTable.Rows.Add()

m.loTable.Cell(m.lnRowNum, 1).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 1).Range.Text = alltrim(str(lnRowNum - 1)) + "."

m.loTable.Cell(m.lnRowNum, 2).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 2).Range.Text = buf_cursor.vkonecsrok1

m.loTable.Cell(m.lnRowNum, 3).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 3).Range.Text = alltrim(buf_cursor.vfamily)

m.loTable.Cell(m.lnRowNum, 4).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 4).Range.Text = alltrim(buf_cursor.vname)

m.loTable.Cell(m.lnRowNum, 5).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 5).Range.Text = alltrim(buf_cursor.vlastname)

m.loTable.Cell(m.lnRowNum, 6).Range.Font.Bold = .F.
m.loTable.Cell(m.lnRowNum, 6).Range.Text = alltrim(buf_cursor.vlichndelo)

lnRowNum = lnRowNum + 1
endscan

Вообще набери в интернете "FoxPro Работа с Word".Аналогично можно работать с Excel.

Сообщение отредактировал TwoFace: 05 Март 2015 - 17:34


Поблагодарил (и): 2 пользователи:


Яндекс.Метрика