Подскажите пожалуйста как сделать следующее:
если дбфка, у неё куча записей, мне надо выбрать записи в которых одинаковая дата и одинаковый код, некоторые поля из этой выборки просуммировать и получить конечный результат: дата-код-сумма.
Не могу придумать алгоритм для выборки и суммирования полей дбфки
Кто знает, подскажите пожалуйста
если дбфка, у неё куча записей, мне надо выбрать записи в которых одинаковая дата и одинаковый код, некоторые поля из этой выборки просуммировать и получить конечный результат: дата-код-сумма.
Не могу придумать алгоритм для выборки и суммирования полей дбфки
Кто знает, подскажите пожалуйста
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
выглядеть будет примерно так:
Код |
---|
БазаДБФ=новый XBase;
БазаДБФ.ОткрытьФайл(ФайлБазыДанных);
КоличествоЗаписейДБФ=БазаДБФ.КоличествоЗаписей();
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Имя колонки");
Если БазаДБФ.Первая() Тогда
Пока Истина Цикл
НоваяСтрока = ТЗ.Добавить;
// = БазаДБФ.FIELDNAM ;
Если НЕ БазаДБФ.Следующая() Тогда Прервать;
Конецесли;
//ОбработкаПрерыванияПользователя();
КонецЦикла; //обхода ДБФ
//Сообщить("Итого : "+КоличествоЗаписейДБФ);
Иначе //База пустая
Конецесли;
БазаДБФ.ЗакрытьФайл();
// Дальше делаете что хотите с таблицей значений
// Типа ТЗ.Свернуть("Код,Дата","Сумма");
Показать полностью |
Вот с ТЗ.Свернуть, у меня это выглядит так (по дате решила условие поставить, их там вего несколько штук)(это уже тело цикла):
Но оно выбирает первое вхождение кода, и не суммирует деньги, что не так?
Сотрудники=ТЗ.Добавить();
Сотрудники.Номер=СокрЛП(Начисления.TNUM);
Сотрудники.Деньги=Число(Начисления.ENDSUM);
ТЗ.Свернуть("Номер", "Деньги");
НоваяСтрока=Документ.СписокСотрудников.Добавить();
НоваяСтрока.ВидРасчета=ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням;
Попытка
НоваяСтрока.ФизЛицо=Справочники.ФизическиеЛица.НайтиПоКоду(Сотрудники.Номер);
НоваяСтрока.Сумма=Сотрудники.Деньги;
ПоказатьНо оно выбирает первое вхождение кода, и не суммирует деньги, что не так?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот