Тема: СбросЛистБланк не работает в комплекте

Здравствуйте. Проблема в следующем... Если печатается комплект документов (ТЛ+МК+ОК+КЭ), то в ОК не срабатывает сброс счётчика листов.... Каждая операция выводится с нового (первого) листа, как и должно быть, но в области ВсегоЛистовБланк ставит общее количество листов для всех операций, а в области ЛистБланк порядковый номер листа из этого  общего количества.... А если в отчёте выводить просто  один бланк ОК, то такой проблемы нет... Каждая Операция печатается как нужно, и в области ВсегоЛистовБланк ставится количество листов операционки именно для этой операции,  ЛистБланк заполняется порядковым номером листа ОК внутри операции, а не как в комплекте исходя из числа листов ОК для всех операций...
Надеюсь, что понятно объяснила проблему... И как ее решить? Бланк настроен правильно, раз при его отдельной печати нет ошибок... Может, в комплекте, на этот бланк нужно добавить какой-то дополнительный параметр?


И ещё вопрос. Если мне нужно, чтобы в комплекте, в бланке ОК не выводился класс ОПЕР_Комм (операции-комментарии). Как это сделать? Я сделала параметр для бланка ОК  (по аналогии с ИсключитьВМАТ) ИсключитьОПЕР_Комм и назначила его на ОК в комплекте... Но это не работает... Класс продолжает выводиться.... Нужно ли мне где-то ещё прописать обработку этого нового параметра? И как это сделать?

Re: СбросЛистБланк не работает в комплекте

Мне не удалось смоделировать вашу ситуацию. Посмотрите внимательно, может быть в комплекте у вас другой бланк, не тот, который вы запускаете отдельно. Если в бланке ОК есть именованная область "СбросЛистБланк" и в ней значение  "14" (это номер колонки источника данных с идентификатором операции), то и в комплекте количество листов сбрасывается.

Если мне нужно, чтобы в комплекте, в бланке ОК не выводился класс ОПЕР_Комм (операции-комментарии). Как это сделать?

В области "КлассОбработки" вместо "1", а это тип класса, перечислите в явном виде через запятую классы операций, которые должны выводиться на этом бланке. Например "ОПР,КОПР"   и т.д. Т.е. вы указываете не что исключить, а что включить.

Re: СбросЛистБланк не работает в комплекте

Со вторым вопросом разобралась, только в области КлассОбработки у меня и так стояло ОПР, но это не помогало... Я поставила  ОПР в первом служебном поле шаблона строки, которая выводила  информацию по операциям. Это помогло.

Теперь по первому вопросу... И бланк в комплекте тот, и в поле стоит 14, а результат такой же... Прикладываю файл с выгруженными данными и конечными результатами... Посмотрите, пожалуйста...

Ещё одна загвоздка... на том же бланке МК/ОК (где нарушается нумерация листов) на листе продолжения не выводится обозначение операционки, хотя на первом листе с этим нет проблем.

И несколько слов о пустых строках. Как в этом же бланке МК/ОК сделать так, чтобы данные одного типа печатались не через пустую строку, а подряд... ? Сейчас поясню... Операция, пустая строка, оборудование, пустая строка, переход, пустая строка, а потом нужно, чтобы несколько позиций инструмента к этому переходу (однотипные данные подряд) шли без пустых строк. Можно ли это как-то реализовать? Я пыталась сделать это через ИдентификаторГС и СменаГруппы, но что-то у меня ничего не вышло. Либо я не до конца разобралась в своём источнике данных (он изменён),  и не то поле указывала для ИдентификатораГС, либо ещё что-то.

Post's attachments

??????.rar 355.83 Кб, 3 скачиваний с 2009-05-21 

You don't have the permssions to download the attachments of this post.

Re: СбросЛистБланк не работает в комплекте

1. В бланке титульного листа у вас осталась какими то судьбами древняя указательная область "Связи", вот ее надо удалить. Дело в том, что репортер при наличии этой области формирует комплект несколько по другому, старому алгоритму. В этом алгоритме он игнорирует СбросЛистБланк.
2.

Ещё одна загвоздка... на том же бланке МК/ОК (где нарушается нумерация листов) на листе продолжения не выводится обозначение операционки, хотя на первом листе с этим нет проблем.

В данных полях у вас стоит номер колонки источника данных, а именно "56". Значение в этой колонке присутствует только у строки с операцией. Когда формируется первый лист ОК указатель в источнике данных стоит как раз на операции и все выводится нормально. При формировании содержимого операции на форме 2-го листа, указатель стоит на одной из позиций, привязанной к этой операции (на переходе, инструменте ...). В 56 колонке этих позиций уже пусто. Поэтому данное значение на 2-ом листе надо получать с помощью параметризированного запроса.
Исправленный бланк я выкладываю, там же сделаны поправки относительно пустых строк (выделила желтым цветом)
3. Про пустые строки:

Я пыталась сделать это через ИдентификаторГС и СменаГруппы, но что-то у меня ничего не вышло

Именно этим и надо воспользоваться. В область ПустыеСтроки я вписала "0", в  ИдентификаторГС "12" - это тип класса, для шаблона строки СменаГруппы в 7-ом служебном поле вписала ВклПустые .
Бланк можно просто загрузить из прилагаемого файла.

Post's attachments

MK_OK.rar 11.96 Кб, 2 скачиваний с 2009-05-21 

You don't have the permssions to download the attachments of this post.

Re: СбросЛистБланк не работает в комплекте

Елена, спасибо большое за обстоятельные ответы.
Убрала область "Связи" - СбросЛистБланк в комплекте заработал.
По поводу СменыГруппы... принцип понятен. Попросили технологи сделать им несколько иначе разделение пустыми строками. (Бланк тот-же МК/ОК) Я сделала ИдентификаторГС "14" и ИдентификаторГС1 "15". И два шаблона строки СменаГруппы и СменаГруппы1 с ВклПустые в седьмом поле, как вы  писали выше. Теперь записи группируются подряд в операции и через пустую строку идут подряд в переходе. Всё замечательно... но когда бланк формируется стоя на корне ТП, то сначала листа формируются 2 пустые строки (видимо обрабатываются данные, которые относятся вцелом к ТП (наверное, материал и расцеховка)), а потом уже идут данные как нужно.... А если просто бланк формировать стоя на конкретной операции, то все данные выводятся с первой строки, никаких дополнительных строк вначале нет... Как убрать эти две лишние пустые строки? Посмотрите пожалуйста на примере данных, которые я уже прикрепляла, только изменив бланк МК/ОК так, как я описала выше.

Re: СбросЛистБланк не работает в комплекте

ИдентификаторГС "14" здесь абсолютно лишний (точнее соответствующий шаблон строки СменаГруппы), он вам дает только лишь дополнительную пустую строку в начале ОК. Уберите этот шаблон строки и посмотрите, может вас удовлетворит то, что получилось, одна пустая строка в начале все таки будет (Для СменаГруппы1). Если же ее присутствие категорически не желательно, то нужно для бланка создать индивидуальный источник данных.
Как это сделать:
Создать указательную область ИсточникДанных, в нее занести запрос из поля DataSource таблицы REFERENCE немного его изменив. А именно, вствавив в текст запроса в конце перед ORDER BY условие:

WHERE NOT ISNULL(TP.P14)

Поясню:
почему ИдентификаторГС = "14" здесь лишний: вид шаблона Операционная карта сам отслеживает границы операций, это и так для него группа. Формирование отчета при смене операции начинается с нового листа.
дополнительное условие  WHERE NOT ISNULL(TP.P14) в источнике данных фильтрует записи, оставляя записи операций и все, что к ним привязано, убирая позиции, привязанные к техпроцессу.

Re: СбросЛистБланк не работает в комплекте

Сделала источник данных для бланка и удалила ИдентификаторГС = "14"  и шаблон строки для него. На самом первом листе данные идут с первой строки, а на последующих листах (не важно первый это лист или продолжение) вначале всё равно присутствует одна пустая строка.

Re: СбросЛистБланк не работает в комплекте

15 колонка - это идентификаторы переходов, она не пустая только для переходов и всего, что к ним привязано. Группа - это несколько подряд идущих записей с одинаковым значением в этой колонке, пустое значение - это тоже значение. Поподробнее напишите где нужны пустые строки, возможно это лучше сделать другим способом. Тут видите ли, к сожалению, срабатывет сначала переход на новый лист, а уж затем СменаГруппы. Поэтому пустой строки у вас не оказывается только у ОК первой операции.

Re: СбросЛистБланк не работает в комплекте

Попробуйте вот так: во 2-ом служебном поле шаблона строки СменаГруппы поместите в качестве дополнительного условия вот такой запрос:

SELECT IIF([Par1]=1,FALSE,TRUE)
Par1=НомерСтрокиНаЛисте

это приведет к тому, что пустая строка будет выводится при смене группы, если НомерСтрокиНаЛисте не равен 1.

Спасибо сказали: Парамонова Наталья1

Re: СбросЛистБланк не работает в комплекте

Спасибо, Елена. Всё замечательно получилось!