обработка данных из двух дбф файлов

Новая тема
Показывать по 10 20 40 сообщений
"Ты еще через временные таблицы и запрос сделай! ;)"
А как сделать более оптимально используя только два этих ДБФ?
попробую
у меня в дбф одна строка с ID, а в дбфс их может быть очень много
"Пишет не найден ID...я вообще не правильно делаю? или все же в том направлении?

ДБФ = Новый XBase;
ДБФС = Новый XBase;

ДБФ.ОткрытьФайл(ВыбФайлНакл,,Истина);
ДБФС.ОткрытьФайл(ВыбФайлСостав, , Истина);

СтарНомер = """";
ПервыйРаз = 1;
Записать = Ложь;

Для НК = 1 По ДБФС.КоличествоЗаписей() Цикл
ДБФС.Перейти(НК);
Сообщить("Обрабатываем НК");
ДБФ.ТекущийИндекс = ДБФ.индексы.ID;
ДБФ.ключ.ID = ДБФС.NI_ID;


ЗаписьНайдена = ДБФ.НайтиПоКлючу("=");
Сообщить(ЗаписьНайдена);

Кол = ДБФ.ID;


Если   Кол = ДБФС.NI_ID Тогда
Сообщить(ДБФС.AMOUNT + " нашли!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
Иначе  
Сообщить(ДБФС.NI_ID);
КонецЕсли;"
Ну ты вообще делаешь ни как я тебе предложил.
Да все правильно ты сказал, просто еще есть метод, все поместить во временные и сделать запрос с группировкой по строке одной таблицы и выводом строк другой. Про множественность строк во второй таблицы я не учел.
"ДБФ = Новый XBase;
ДБФС = Новый XBase;

ДБФ.ОткрытьФайл(ВыбФайлНакл,,Истина);
ДБФС.ОткрытьФайл(ВыбФайлСостав, , Истина);

ДБФС.ДобавитьИндекс("NI_ID","NI_ID",0,0,"""");
ДБФС.СоздатьИндексныйФайл("NI_ID.CDX");
ДБФС.ТекущийИндекс("NI_ID");

ДБФ.Первая();
Пока ДБФ.ВКонце()=0 Цикл
     ДБФ_ID = ДБФ.ID;
     ДБФС.Найти(ДБФ_ID,1);
     Пока (ДБФС.NI_ID = ДБФ_ID) Цикл
          Сообщить(ДБФС.AMOUNT + " нашли!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
          ДБФС.Следующая();
     КонецЦикла;
     ДБФ.Следующая();
КонецЦикла;"
"Выдает ошибку.
{Форма.Форма1.Форма(291)}: Поле объекта не обнаружено (AMOUNT)
НС.Количество = Формат(ДБФС.AMOUNT, "ЧГ=0");


ДБФС = Новый XBase;

ДБФС.Кодировка = КодировкаXBase.OEM;
ТЗНакл = Новый ТаблицаЗначений;
ТЗНакл.Колонки.Добавить("НомерСтроки", Новый ОписаниеТипов("Число"));
ТЗНакл.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
ТЗНакл.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
ТЗНакл.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
ТЗНакл.Колонки.Добавить("Договор", Новый ОписаниеТипов("Строка"));
ТЗНакл.Колонки.Добавить("Код",                    Новый ОписаниеТипов("Строка"));

ДБФС.ОткрытьФайл(ВыбФайлНакл, ,Истина);
НК = ДБФС.КоличествоЗаписей();


Для НК = 1 По 5  Цикл
ДБФС.Перейти(НК);

НС = ТЗНакл.Добавить();
НС.НомерСтроки = НК;
НС.Количество = Формат(ДБФС.AMOUNT, "ЧГ=0");
НС.Сумма = Формат(ДБФС.SUMMA, "ЧГ=0");
НС.Цена = Формат(ДБФС.PRICE, "ЧГ=0");
НС.Договор = Формат(ДБФС.NI_ID, "ЧГ=0");
ДБФС.ТекущийИндекс = ДБФС.индексы.NI_ID;

Индексы я правильно сделала?"
"исправила путь, но ошибка  теперь такая

{Форма.Форма1.Форма(295)}: Поле объекта не обнаружено (NI_ID)
ДБФС.ТекущийИндекс = ДБФС.индексы.NI_ID;"
Читают тему
(гостей: 1)

Быстрый переход