Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
АРМ Администратор :  ИРБИС Irbis
 
Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: YoGee (IP-адрес скрыт)
Дата: 20, September, 2011 09:55

Добрый день Ирбисовцы и Ибрисовчане!
И сразу к делу:
Создал я выходную форму через генератор табличных форм, всё классненько работает, всё вроде здорово ... как позже оказалось - не всё. Выявился один косяк.
Когда я создавал выходную форму, я учитывал что одна запись в базе данных - это есть одна строка в выходной форме (т.е. одна книга). Но затем я вдруг неожиданно для себя узнал что в одной записи может находится несколько книг, где где каждая из книг будет иметь свой инвентарный номер (повторение 910-ого поля). Проблема состоит в том что в выходной форме у меня выводятся все повторения поля 910 в одной строке, а мне надо их разделить, т.е. если в 910 я вижу что у меня 3 книги с одинаковым названием, то в выходной форме у меня должно быть 3 строки.
Пожалуйста, подскажите каким образом мне надо сделать это разделение??

(выходная форма и принтскрины во вложении)

Вложения: Картинка 1.JPG (211.3KB)   Картинка 2.JPG (80.2KB)   reestr.rar (3.2KB)  
Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Gena (IP-адрес скрыт)
Дата: 20, September, 2011 11:07

укажите множественный ключ сортировки.



Редактировано 1 раз. Последний раз 20.09.2011 11:07 пользователем Gena.

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: YoGee (IP-адрес скрыт)
Дата: 20, September, 2011 14:50

в каком месте мне следует указать множественный ключ сортировки?
И что этот ключ из себя представляет?

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Gena (IP-адрес скрыт)
Дата: 20, September, 2011 15:06

В генераторе табличны форм в средней его части есть раздел, отвечающий за создание ключей сортировки. По умолчанию стоит так, что каждый документ генерирует одну строку для ключа, и соответственно представляет одну строку в итоговой таблице. Если необходимо гинерировать больше одной строки с документа, то устанавливается множественный ключ - переключатель из 0 в 1. Но там есть еще некоторые тонкости по настройке формы! Посмотрите стандартные формы инвентарной книги, там как раз реализуется то, что вам нужно.

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: YoGee (IP-адрес скрыт)
Дата: 20, September, 2011 16:32

Gena, ОГРОМНОЕ спасибо вам за точную наводку!!!
Стащил ключ из формы tab4bw ... всё заработало. Ну т.е. почти всё. Показывает он все строки верно (сколько книг столько и строк), сумму считает верно, только вот с инвентарными номерами непонятка какая-то - все скидывает в одну кучу в каждую из строк. (пример на рисунке во вложении)

Подскажите пожалуйста, как мне правильно раскидать (присвоить) инвентарные номера, что бы у каждой книжки был один инвентарный номер (а не три как у меня на картинке в примере)?

p.s. файл сортировки так же вложил в сообщение

Вложения: reestr.srw (959 bytes)   Картинка 3.JPG (81.3KB)  
Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Gena (IP-адрес скрыт)
Дата: 20, September, 2011 16:44

Там есть нюанс, который выполнить в редакторе табличных форм не получится. Посмотрите в tab4bw.srw на секцию [HEADERFORMAT]. Если у вас не получится разобраться самостоятельно, завтра постараюсь описать суть доработки.

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 20, September, 2011 19:24

А если вообще не получится самостоятельно, то милости прошу [irbis.gpntb.ru]

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: YoGee (IP-адрес скрыт)
Дата: 21, September, 2011 10:41

Максим ... жаль что мы не разобрали с вами эту тему на обучении в МУБИНТе месяц назад. Не думал что вот так сразу столкнусь с этим. А по поводу предложения - наш институт за это деньги платить не будет, а из своего кармана я платить не буду.
Да и к тому же выходная форма готова - осталось то всего с инвентарными номерами разобраться.

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 21, September, 2011 12:13

Ну так раз вы прошли обучение на моих курсах администратора, тогда зачем вам платить. У вас уже достаточный уровень начальной подготовки, чтобы самостоятельно сделать эту форму с небольшими наводками :).

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Gena (IP-адрес скрыт)
Дата: 21, September, 2011 12:17

Смотрите, в той форме, которую вы брали за основу (tab4bw), формат выбора ключа выглядит следующим образом:

if s(v215^y)=''then(if p(v910)then if'C U 2 7':v910^a then else'^aB='if v910:'^b'then if v910^b.1='0'or val(v910^b.1)>0 then f(val(v910^b,' 0'),8,0)else v910^b.1,if v910^b*1 <>''then f(val(v910^b*1),7,0)fi fi else f(val(v910^h,' 0'),8,0)fi,'^3'mhl,v910^b,if a(v910^b)then v910^h fi,mpl,'^1'ref(L(|KSU=|v910^u),v88^b*6.2|.|,v88^b*4.2|.|,v88^b.4),'^2'|(|v910^u|)|,'^7'v910^d,'^5'if v910:'^e'then f(val(v910^e,' 0'),0,2)else if val(&unifor('Av10^d#1'))>0 then f(val(&unifor('Av10^d#1'),' 0'),0,2)else &unifor('Av10^d#1')fi fi,'^4'mfn fi fi/)fi

При выполнении его на записи формируются строки такого вида:

^aB= 43^343^1^2(2000/1)^7РФ^5^40000000003
^aB= 3585329^33585329^1^2(2008/001)^7ХР^5100.00^40000000003
^aB= 3585330^33585330^1^2(2008/001)^7ХР^5130.00^40000000003

Эта строка участвует в сортировки записей, а еще через нее можно передавать определенную информацию. Факутически, в момент выполнения этого формата в записи формуется поле 1 с повторениями, которые я показал выше. Далее данные из этого поля можно использовать на этапе формирования заголовков в таблице. Заголовок представляет собой чаще всего объединяющий признак, по которому рассортировываются записи. Но в тех случаях, когда надо организовать таблицу на подобии инвентарного списка, можно убрать из нее формирование строк таблицы, а вместо них формировать заголовки, в которых по мимо всей подробной информации о самой записи, будет возможность использовать отдельные повторения поля 1, в котором указываются отдельные инвентарные номера. Таким образом, вы можете открыть файл <имя_таблицы>.PFT, вырезать все, что в нем находится и перенести в область [HEADERFORMAT] файла <имя_таблицы>.SRW. Но только в [HEADERFORMAT] весь формат должен быть приведен к одной строке! Удалите все переходы на новую строку! Теперь у вас будет формироваться таблица, но строки в самой таблице будет формировать не <имя_таблицы>.PFT, а [HEADERFORMAT] файла <имя_таблицы>.SRW. Для того, что бы в графе инвентарных номеров выводился только один номер, заключите весь формат из [HEADERFORMAT] в логические скобки (if p(v1) then ... fi/), а вместо вывода 910^b в таблице надо указать вывод поля 1 подполя 3 (v1^3). На этом ручная доработка формы окончена.

Писал все по памяти, так что могут быть маленькие огрехи. Если что-то не понятно - спрашивайте. Но для начала попробуйте сравнить структуру файлов вашей формы и формы tab4bw

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: YoGee (IP-адрес скрыт)
Дата: 21, September, 2011 14:04

Gena, сделал как вы сказали, перенёс всё из файла pft в [HEADERFORMAT], переносы строк убрал, вместо 910 поля вписал - v1^3, и инвентарные номера действительно разделились, каждый находится в своей строке, только вот теперь кроме инвентарных номеров ничего не выводится =)
Может быть я в чём то допустил ошибку или чего то не дописал? (все переносы строк убирал аккуратно)

(результат и файл сортировки вложил в сообщение)

Вложения: Картинка 4.JPG (47.7KB)   reestr.srw (3KB)  
Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: YoGee (IP-адрес скрыт)
Дата: 21, September, 2011 14:21

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

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Gena (IP-адрес скрыт)
Дата: 21, September, 2011 14:32

Один момент все таки не учел. Вам надо в [HEADERFORMAT] внимательно просмотреть все и заключить все те форматики, которые выводят данные в столбцы, в такие вот скобки:

ref(val(v1^4), ... )

Разумеется в эти скобки заключается все, что не выводится из поля 1, его заключать ненужно.

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: YoGee (IP-адрес скрыт)
Дата: 21, September, 2011 15:28

Gena, сделал как вы сказали, всё вывелось как надо, за исключением нумерации.
Но нумарицию я сделал следующим образом ... прописал &unifor('S1A') вместо ##. Надеюсь ничего страшного в дальнейшем от этого не произойдёт?
С датами поступил так же как и вы посоветовали с инвентарными, вместо того места где были даты, проставил v1^1, для тог что бы он не только инвентарные присваивал конкретно к книжке, но и дату.

Gena, я очень сильно вам благодарен!!! Сам бы я с этим точно не разобрался. Вроде ездил на курсы, учился, а вот до конца так всё и не разобрал. Ещё раз БОЛЬШУЩЕЕ вам спасибо!

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Gena (IP-адрес скрыт)
Дата: 21, September, 2011 15:43

Все дело в том, что такого рода тонкости стоит осваивать тогда, когда азы уже знаешь досконально. По-этому вам скорее всего на курсах и не рассказывали о таких вещах. На самом деле в вопросе формирования выходных форм есть масса нюансов, которые никак не документированны и не описанны. Если будет интересно, загляните в форму TABSUOP - ее специфика состоит в том, что она формируется из трех отдельных таблиц, которые имеют между собой определенную связь... Все это уже не описывается в документации, потому что так глубоко копают очень не многие, и они чаще узнают все или по форуму, или в личном общении с разработчиками. Мне в свое время очень помогла Дунаевская Светлана Михайловна.

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Lavrinovich (IP-адрес скрыт)
Дата: 01, October, 2011 11:46

Однако, по-моему, ключи сортировки не упоминаются в документации.

Re: Пожалуйста! Помогите с одним моментом (выходная форма) ...
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 05, October, 2011 12:18

Просто читать нужно ее чуть более внимательно, тогда они будут упоминаться в документации.



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.