как перенести строку?

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

lehancho
Новичок
Сообщения: 23
Зарегистрирован: 08 сен 2005, 12:25
Контактная информация:

как перенести строку?

Сообщение lehancho »

Ни как не могу перенести строку в том же столбце в отчете
например выводится переменная 0025423
4556739
qwerqw3

а нужно 00254
2345
5667
39qw
erqw3
пробовал chr(10),chr(13) ни чего не помогает, все уносит в лево и мусор получается

помогите пожайлуста
DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение DarkAngel27 »

.fields
substr(var,1,5)
substr(var,6,10)
substr(var,11,15)
substr(var,16,20)
.endfields
Это как вариант
lehancho
Новичок
Сообщения: 23
Зарегистрирован: 08 сен 2005, 12:25
Контактная информация:

Сообщение lehancho »

проблема еще в том, что сколько там выведется не известно, так как в цикле, и нужно после каждой переменной переход делать
DarkAngel27
Местный житель
Сообщения: 228
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Сообщение DarkAngel27 »

Если переменных несколько, то слейте всё в одну, а там уже либо как решали сами делать, либо вырезать по частям...
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

@@@@@ не пробывали?
если не подходит, тогда режте в цикле
.{ while условие

.}
lehancho
Новичок
Сообщения: 23
Зарегистрирован: 08 сен 2005, 12:25
Контактная информация:

Сообщение lehancho »

Все и так в одной переменной, а выводит вот таким образом
fields
str1

.{
str1:=str1+str2+str3 // вот эту переменную вывожу
.}

@@@@@@@@ // вот это вывод
но здесь есть другие переменные, в чем вся сложность
@@@@@@ @@@@@@@ @@@@@@@@ @@@@@@@@@

например:
num1 123 10.01.05 10.02.05
num2
num3
num5/4


а мне мусор вроде выдает

num1num2nu 123 10.01.05 10.02.05
m3num4num

короче после каждой переменной нужно сделать перенос в том же столбце
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

еcли вы хотите
num1num2nu 123 10.01.05 10.02.05
m3num4numпаолпваждпрвалджпвдажповджа
.fields
substr(ss1,1,5) ss2 ss3 ....
substr(ss1,6,200)
.endfields
@@@@@@ @@@@ @@@@@@ @@@@@@@
.{?internal;length(ss1)>5;
@@@@@@@@@@@@@@@@@@@@@@@@
.}
если
num1 123 10.01.05 10.02.05
num2
num3
num5/4
то
.fields
s1 ................
s2
s3
s4
.endfields
@@@@@@@ @@@@@@@@@ @@@@
.{?internal;length(s2)>0;
^
.}
....
.{?internal;length(s4)>0;
^
.}
если же используете массив, то универсальней будет while + internal
lehancho
Новичок
Сообщения: 23
Зарегистрирован: 08 сен 2005, 12:25
Контактная информация:

Сообщение lehancho »

а если переменная равна s1=num1num2num3num4num, то как тут с lenght :)
в переменную в цикле заношу данные нужные, а потом
из переменной надо построить столбец, в котором будет
num1
num2
num3
num5/4
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

если длина каждого куска постояна то режте куски вместо полей через substr.
если разная то оптимальней их разделить черз ";" например и воспользоваться функцией Extractdelimetedword, иначе пишите свою для выкусывания кусков.
lehancho
Новичок
Сообщения: 23
Зарегистрирован: 08 сен 2005, 12:25
Контактная информация:

Сообщение lehancho »

что это за функция и где ее найти, в справке по гале нет такой? :shock:
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

ExtractDelimitedWord(PlPor.Tax,1,';') // 101
ExtractDelimitedWord(PlPor.Tax,2,';') // 104
ExtractDelimitedWord(PlPor.Tax,3,';') // 105
ExtractDelimitedWord(PlPor.Tax,4,';') // 106
ExtractDelimitedWord(PlPor.Tax,5,';') // 107
ExtractDelimitedWord(PlPor.Tax,6,';') // 108
ExtractDelimitedWord(PlPor.Tax,7,';') // 109
ExtractDelimitedWord(PlPor.Tax,8,';') // 110
lehancho
Новичок
Сообщения: 23
Зарегистрирован: 08 сен 2005, 12:25
Контактная информация:

Сообщение lehancho »

немного не понятно, что есть PlPor.Tax (имя таблицы), и где в форме это можно пристроить
далее 1 и ; :eek:
если можно по подробнее
за ранее спасибо :-)
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

это пример использования из настроек банк клиента
вместо plpor.tax пишите ваше поле
2 - разделитель
3 - номер части
lehancho
Новичок
Сообщения: 23
Зарегистрирован: 08 сен 2005, 12:25
Контактная информация:

Сообщение lehancho »

получает, что делит допустим переменную на части. Вопрос тогда на какие части? размерность и сколько частей, если за ранее не известно сколько будет значений в переменной. :-o
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

.var
i:integer
wstr:string ;
wkl:boolean ;
.endvar
.begin
i:=1
wkl:=if(length(ExtractDelimitedWord(s1,1,';'))=0,false,true) ;
end.
.fields
ExtractDelimitedWord(s1,i,';')
.endfields
.{while wkl
@@@@@@@@@@@
.begin
i:=i+1 ;
wkl:=if(length(ExtractDelimitedWord(s1,i,';'))=0,false,true) ;
end.
.}
ну больше уже некуда
Ответить