Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-56065
AM
2002-10-08 12:34
2002.10.17
Вот такой вопросец ... надо ловить события...


1-56188
margol
2002-10-07 16:22
2002.10.17
Ответ


3-55924
korn
2002-09-24 14:25
2002.10.17
Подключение из программы к MS SQL


7-56364
zx
2002-08-09 12:34
2002.10.17
ver. MDAC?


3-55955
Woolen
2002-09-24 16:08
2002.10.17
Кроссплатформенная БД





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский