FCOM
Модераторы: m0p3e, edward_K, Модераторы
FCOM
Опишу вопрос в общем виде: Пусть vip передает поток данных в форму:
.Fields
SomeField1
SomeField2
.EndFields
Пример Потока, отсортированного по SomeField1:
a 1
b 2
c 2
....
Необходимо, сделать группировку по SomeField1, те:
Поток:
a 1
b 2
b 3
b 1
c 2
Требуемый Результат:
a 1
b 2
b 3
b 1
Итог по b: 6
c 2
Итог должен писатьтся только тогда, когда есть повторяющиеся записи SomeField1.
Или такой:
a 1
b 6
c 2
.Fields
SomeField1
SomeField2
.EndFields
Пример Потока, отсортированного по SomeField1:
a 1
b 2
c 2
....
Необходимо, сделать группировку по SomeField1, те:
Поток:
a 1
b 2
b 3
b 1
c 2
Требуемый Результат:
a 1
b 2
b 3
b 1
Итог по b: 6
c 2
Итог должен писатьтся только тогда, когда есть повторяющиеся записи SomeField1.
Или такой:
a 1
b 6
c 2
-
- Постоянный гость
- Сообщения: 86
- Зарегистрирован: 28 апр 2005, 12:15
- Откуда: Москва
Что-нибудь типа (общая идея):
.var
mm : string
sum : integer
.endvar
.begin
mm := ''
sum := 0
end.
.
.
.
.
.begin
mm := SomeField1
sum := sum + SomeField2
end.
.{?internal; (SomeField1<> mm and mm <> '');
.Fields
mm //SomeField1
sum //SomeField2
.EndFields
^ ^
.begin
mm := SomeField1
sum := SomeField2
end.
.}
и где-то в конце, когда поток кончается - вывести остаток
.Fields
mm //SomeField1
sum //SomeField2
.EndFields
^ ^
.var
mm : string
sum : integer
.endvar
.begin
mm := ''
sum := 0
end.
.
.
.
.
.begin
mm := SomeField1
sum := sum + SomeField2
end.
.{?internal; (SomeField1<> mm and mm <> '');
.Fields
mm //SomeField1
sum //SomeField2
.EndFields
^ ^
.begin
mm := SomeField1
sum := SomeField2
end.
.}
и где-то в конце, когда поток кончается - вывести остаток
.Fields
mm //SomeField1
sum //SomeField2
.EndFields
^ ^
Код: Выделить всё
.Form 'TEST_FRM'
.NameInList 'test_form'
.var
prev:string;
s:double;
.endvar
.fields
s
.endfields
.begin
s:=1;
end.
s=^
.EndForm
В чем ошибка???
-
- Постоянный гость
- Сообщения: 86
- Зарегистрирован: 28 апр 2005, 12:15
- Откуда: Москва