Страница 1 из 1

Горизонтальные циклы

Добавлено: 27 сен 2007, 14:17
Vik
Вот фрагмент из формы журнала-ордера:

.fields

.....

ColumnTitle1
ColumnTitle2

.....

.endfields
......

-----------.{.?JOHDR01; ----------------------------------.}
.{.?JOHDR02; @~@@@@@@@@@@@@@@@.}
.{.?JOHDR03; @~@@@@@@@@@@@@@@@.}
-----------.{.?JOHDR04; ----------------------------------.}

........

Так вот, можно ли как-то из таких горизонтальных циклов вытащить и запомнить, например, в массив переменные ColumnTitle1, ColumnTitle2 ?

Добавлено: 27 сен 2007, 15:55
edward_K
.Function v(w :string) : string ;
begin
v:=w ;
i:=i+1
col := w ;
end.
.fields
v(field1)
.endfields
.begin i:=i+1 ; end.
.{.?......}

Добавлено: 27 сен 2007, 16:12
Vik
Огромное спасибо! Все отлично работает :)

Добавлено: 15 окт 2009, 10:28
sildae
Гениальная функция работает и у меня . :) Однако, функция употряебяется внути fields.
.fields
v(field1)
.endfields
то есть непременно долны быть поля вывода и печать. А как сделать, чтобы значения не выводились в отчет, или хотя бы не печатались, а только собирались в массив?

Добавлено: 15 окт 2009, 11:31
edward_K
xl функцмм(Excel.doc) вам помогут 8)

Добавлено: 15 окт 2009, 11:35
edward_K
для того чтобы погасить полностью
.{.?JornAnalH11;;false;.}
ну еще видел skl со скрытыми столбцами(можно куда нибудь в конец цикл угнать) - но excel да еще на основе шаблона красивей.

Добавлено: 29 окт 2009, 14:44
Ksenia
а все функции выплнять внутри этого цикела?
Т.е. если я хочу в ехсель на основе шаблона все выгнать, мне нужно покасить все .{.?JornAnalH11;;false;.}
а потом там же внутри вывод в эксель сделать?

Добавлено: 30 окт 2009, 01:09
edward_K
когда в excel нмчего гасить не нужно. В нужных местах делаете вывод
если простая форма то хоть в fields, ну и где то нужно задавать строки и столбцы. Для горизонтальных функций подойдет вся та же функция.
текстовую форму погасите потом по
.F "NUL"

Добавлено: 30 окт 2009, 14:42
Ksenia
:sad: Бьюсь с формой уже второй день, никак не могу понять, КАК она работает
у меня есть:
.fields
d01
TblGfiDouble(TblPeriods,IterNext(Ind),fdp3z)
d3z
.endfields
и соответственно вывод
&&&&&&&&&&&.&&│.{.?j510;&&&&&&&&&&&.&&│.}&'&&&&&&&&&&&&&.&&
То, что первая и последняя циферки-суммы - понятно, функцию TblGfiDouble нашла, что она рисует таблицу(так я поняла), но где сумма, которая выводится в горизонтальном цикле, как её отловить, никак не пойму :( Подскажите, пожалуйста.
А я хочу получить эту сумму в матрицу
xlDoWriteToMatrix(iMatCurR, 1,d01);
...???
xlDoWriteToMatrix(iMatCurR, 3,d3z);

Добавлено: 30 окт 2009, 15:02
edward_K
читаем все сначала :). то что в fields выводим через свою функцию, а там уже все что хотите.

Добавлено: 30 окт 2009, 15:26
Ksenia
Так я про функция поняла, а вот что в неё передавать?
TblGfiDouble(TblPeriods,IterNext(Ind),fdp3z)
Галактика валится без предупреждения :(

Добавлено: 30 окт 2009, 16:06
edward_K
logstrtofile, когда галка валится смотрим протокол.
дело врядли в функции. а вообще TblGfiDouble возвращает double а не string - может дело в этом. Ну еще важен момент когда в fields вы это описываете - там перед гор.циклом наверняка еще чего то вызывается - если допустили сдвижку в полях, то неверное упадет.