Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
ВнизВставка строки в таблицу формата DBF Найти похожие ветки
← →
helga (2002-09-25 14:23) [0]Я сегодня уже задавала этот вопрос,но он куда-то пропал из форума.Попытаюсь задать его еще раз.
Мне необходимо вставить строку в таблицу формата DBF.Именно вставить,а не записать в конец.В таблице формата DBF у меня Insert работает как Append.Вставка с помощью SQL-запроса(INSERT) дает такой же результат-запись заносится в конец набора данных.
У меня вопрос-можно ли с помощью методов и свойств компонентов Delphi6 вставить запись в таблицу формата DBF(что б не мучится со всякими temp-овыми файлами и не писать код) или это в корне невозможно?Если все-таки можно это сделать,то как?
На форме у меня DBGrid и навигатор.Но после вставки пользователем записи она оказывается в конце набора.(Использую компоненту Table.)
← →
Anatoly Podgoretsky (2002-09-25 14:33) [1]Зачем тебе это нужно, попробуй рассказать, наверняка есть другое нормальное решение
← →
helga (2002-09-25 15:16) [2]Другое решение я уже придумала.Но хотелось бы по-проще.
Попробую рассказать суть проблемы.Тебе о чем-нибудь говорит форма 8ДР?
Там DBF-формат.В последних 3-х записях в таблице в поле TIN должны быть значения 99991,99992,99993.В других полях тоже различная информация.Но это не важно.Важно то,что после этих записей по требованию заполнения файла(файл сдается в налоговую) не должно быть больше никаких записей.Самый простой путь для меня как для программиста,чтоб пользователь сам делал вставку, т.е.он вставил запись,которую забыл занести, в нужное место.
Почему у меня пользователь корректирует именно готовый файл-долго объяснять,да и навряд ли это будет кому-нибудь интересно.Просто передо мной возникла такая вот проблема.
Конечно можно убрать последние 3 записи,заносить информацию в конец,а затем формировать заново файл с последними 3-мя записями.(Что я и сделаю,если никто на форуме мне не подскажет.)
Посудите сами,есть разница - то ли я спомощью методов (или даже каких-то установок свойств-не знаю, правда,каких) добьюсь вставки в набор данных,то ли я буду все это дело программировать-заполнять temp-овый файл,формировать строки и т.д.
Это все не от лени.Я просто исходила из того-а вдруг все это можно сделать проще...
← →
MsGuns (2002-09-25 16:30) [3]Лучше всего (ИМХО) сделать ключом поле <Табельный номер> или <ИНД> (инд.налоговый номер), а итоговые записи "забивать" девятками с младшим разрядом=коду строки (9999999901,9999999902,9999999903). Тогда при вставке - удалении все будет стоять на местах, да и итоговые строки не надо искать спец.образом для того, чтобы изменить там суммы,- Locate и все !
По крайней мере, у нас так реализовано (вернее, почти так). И юзеры (ьолее 20 организаций) не жалуются. А 8ДР, конечно же, редактируется ! Не видел еще в природе ни одной программы, которая бы считала ее без ошибок для нормального предприятия (чел.не менее 50 и с реальными, а не фиктивными начислениями и выплатами).
PS. Не знаю более дурного отчета во всех бухгалтерии !!!
← →
MsGuns (2002-09-25 16:32) [4]Забыл сказать ! Для передачи в налоговую из НАШЕГО файла данные просто сбрасываются в формат налоговой
← →
helga (2002-09-25 17:29) [5]MsGuns
Спасибо,что ответили.
Все дело в том,что у меня этот файл идет без индексов,но в отсортированном виде(сортировка получается при выгрузке из нашей старенькой программы по з/п).Пользователи работают с уже готовым файлом (с 3-мя последними итоговыми записями) ,его-то и надо сдавать в налоговую .Откорректировать что-либо при выгрузке данных для формы 8ДР я не могу-программа старая и без исходников.
Т.е.-имеем то,что имеем.Короче говоря,я беру уже готовый файл и с ним работаю.Вот и пришлось дописывать мне небольшой проект в Delphi6.Я понимаю,что для интерфейса с пользователем можно создать индекс,но в самом файле(который сдавать в налоговую) физически вставленные записи будут стоять в конце.Получается,что мне без временного файла не обойтись...
И все-таки вопрос остается-можно или нет вставить запись в файл формата DBF?
P.S.Я прошу прощенья,не поле TIN забивается 99991,99992,99999,а поле NP(номер по-порядку) - оно цифровое и всего 5 знаков.В самой последней записи подбиваются итоги.Для нашей налоговой файл должен быть определенной структуры и заполнен по всем правилам(я имею в виду 3 последние строки).При выгрузке НАШЕГО файла налоговики проверяют правильность заполнения и физический порядок всех записей(конечно программным путем)-что б N п/п был правильно заполнен,что б суммы сходились,что б записи с 9-ми были в конце и т.д.
На счет "дурного отчета" я с Вами полностью согласна.
← →
Андрей Прокофьев (2002-09-25 17:35) [6]Вставить, конечно, можно и ручками,... открыв файл на низком уровне, но это, похоже сложнее, чем редактировать его с учетом индекса NPP, а потом просто скопировать записи в нужном порядке.
← →
helga (2002-09-25 18:04) [7]Спасибо всем,кто мне ответил.
Прийдется все-таки копировать записи в нужном порядке.
← →
Hawk2 (2002-09-25 19:04) [8]Я конечно извиняюсь, но я думаю проще всего будет сделать так, сначала отредактировать DBF-файл (вставить нужные записи и т.д.), а потом создать таблицу точь в точь такую же как DBF-файл и с помощью SQL-запроса перебросить туда данные отсортировав их по уникальному полю.
← →
MsGuns (2002-09-25 19:25) [9]>Hawk2 (25.09.02 19:04)
Бухгалтеры скажут Вам "Большое спасибо !" 8)))
← →
Hawk2 (2002-09-26 10:06) [10]TO MsGuns: А зачем иронизировать?
← →
MsGuns (2002-09-26 11:16) [11]Дело в том, что особенность 8ДР в том, что отображаемый порядок строк таблицы должен соответствовать печатному виду (формат dbf, сдаваемый в налоговую - это фактически та же опись, но в электронном виде), поэтому если это не соблюдается, то бухгалтеру просто неудобно работать с такой "неупорядоченной" сеткой.
Ирония не злорадство, обижаться ИМХО не стоит
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c