Report - печать детали по координатам

Обсуждение извечных проблем кларионовских (и не только) отчетов

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
ASE
Новичок
Сообщения: 5
Зарегистрирован: 03 Апрель 2008, 6:14

Report - печать детали по координатам

Сообщение ASE »

C 5.5 ШВС

Руками формирую отчет для заполнения бланка.
Сперва - Первая деталь заполняет весь лист одиночными полями.
Затем в середине листа заполняю таблицу.
Т.е. в цикле вывожу вторую деталь по числу строк.
Выставляю координату первой строки таблицы по Y для печати второй
детали - печатаю первую строку
Для последовательной печати остальных строк выставляю Y в 0 для этой
же, второй детали - печатаю остальные строки.
Вывожу отчет и вижу:
первая строка - в начале листа (т.е. Y как бы 0, хотя координату
выставлял)
остальные строки - там где положено в таблице, в центре листа, по
порядку.

Привожу код
report REPORT,AT(0,0,210,292),PAPER(PAPER:A4),PRE(RPT),FONT('Arial Cyr',10,,FONT:regular),MM

page1 DETAIL,AT(,,210,290),USE(?Page1),FONT(,10,COLOR:Black,FONT:bold),ABSOLUTE
....
T_line DETAIL,AT(5,,210,6),USE(?T_line),FONT(,9,,FONT:regular)
STRING(@n2),AT(4,1,4,4),USE(pn_d1v),RIGHT,FONT(,10,COLOR:Black,,CHARSET:ANSI),#ORIG(pn_d1v)
STRING(@s40),AT(17,1,77,4),USE(D1V:NAME),LEFT(2),FONT(,,COLOR:Black,,CHARSET:ANSI),#ORIG(D1V:NAME)
STRING(@s14),AT(140,1,33,5),USE(d1v_dsdn),CENTER,FONT(,,COLOR:Black,,CHARSET:ANSI),#ORIG(d1v_dsdn)
END

code
....
print(rpt:page1)
....
set(d1v:fnp_k,d1v:fnp_k)
pn_d1v = 0
loop
next(d1v)
if errorcode(); break.
pn_d1v += 1
if pn_d1v = 1 !для первой строки
SETTARGET(Report)
?t_line{prop:at,2} = 146
SETTARGET
elsif pn_d1v = 2 !для второй и последующих
SETTARGET(Report)
?t_line{prop:at,2} = 0
SETTARGET
.
print(rpt:t_line)
.
George
Активист
Сообщения: 100
Зарегистрирован: 04 Август 2009, 10:48

Re: Report - печать детали по координатам

Сообщение George »

Clarion 6.3 ШВС
Есть один DETAIL. Надо его размножить на одном листе. Пробовал с SETTARGET - ничего не получается. все печатается только по последним координатам.
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Report - печать детали по координатам

Сообщение BOB »

Код: Выделить всё

elsif pn_d1v = 2 !для второй и последующих
если и последующих то тогда
elsif pn_d1v >= 2

и можно попробовать
Report $ ?t_line{prop:at,2} = 146

Не понятно зачем размножать детайл ? он сам размножается .
George
Активист
Сообщения: 100
Зарегистрирован: 04 Август 2009, 10:48

Re: Report - печать детали по координатам

Сообщение George »

Нужно сначала напечатать еще один правее первого, а потом также внизу, т.е. 4 на листе.
Ответить