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