powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / доступ к xls и bdf из своей утилитки?
21 сообщений из 46, страница 2 из 2
доступ к xls и bdf из своей утилитки?
    #35576812
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем вам определять тип данных источника? Важен ведь тип данных в таблице получателя...

Примеры:

В столбце листа таблицы экзеля хранятся числовые значения. Есть и числа, записанные как текст,
тем не менее, полностью соответствующие числовому формату. Тем не менее, применение Val() или CLong()
вам поможет преобразовать все данные в числа и записать в конечную таблицу поле типа Numeric.

Даты - отдельная песня. В экзеле тип дата - числовой, тем не менее, в ячейках могут быть и даты,
представленные строками, например, вида "дд.мм.гггг" или "мм/дд/гг". Юзайте CDate() и получайте
дату для последующей записи.

---------------
Еще раз повторюсь - старайтесь не использовать "третьи" варианты языков для работы с
форматами хранения данных, написанными на других языках.
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35577256
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMА зачем вам определять тип данных источника? Важен ведь тип данных в таблице получателя...

Примеры:

В столбце листа таблицы экзеля хранятся числовые значения. Есть и числа, записанные как текст,
тем не менее, полностью соответствующие числовому формату. Тем не менее, применение Val() или CLong()
вам поможет преобразовать все данные в числа и записать в конечную таблицу поле типа Numeric.

Даты - отдельная песня. В экзеле тип дата - числовой, тем не менее, в ячейках могут быть и даты,
представленные строками, например, вида "дд.мм.гггг" или "мм/дд/гг". Юзайте CDate() и получайте
дату для последующей записи.

---------------
Еще раз повторюсь - старайтесь не использовать "третьи" варианты языков для работы с
форматами хранения данных, написанными на других языках.

Дело в том, что нужно проверить корректность данных в эксел файле, прежде, чем отправлять в базу. Например, в поле ИНН пользователь поставил букву (случайно или нет). Можно сделать так: брать все ячейки как строки, а затем пробовать каждую на StrTo.., а чтобы не словить ошибку - все это дело запихнуть в try catch?
По поводу даты: она в формате дд.мм.гггг.
Про "третьи" языки. Какой язык подходит для такой задачи? Фокспро? VC? CDate(), CLong() - это вроде VC.
з.ы. Все таки не могу понять. Ведь чтобы поместить в переменную значение, нужно сначала выделить под нее место, а чтобы выделить место, нужно знать, какого она типа. В итоге тип ячейки должен быть известен. Или эксел это интерпретатор?
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35577435
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BananasКак определить тип ячейки эксел файла? у Varianta есть методы Type() и AsType(), почитай на него хэлп. Ориентироваться на "NumberFormat" в Экселе я бы не советовал, потому как он (эксель) сам его не очень-то соблюдает, а формат "@" - вообще может содержать всё, что угодно. Так что считывай из ячейки Value и проверяй какой у него тип. Типа как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
// подключил эксел в Variant p;
//загрузил в него файл
Variant value = Excel.OlePropertyGet( "Item",  1 ,  1  ).OlePropertyGet( "Value" );
int something =  0 ;
if( value.Type() == varInteger ) {
  something = value.AsType( varInteger );
}
else {
  // обрабатываем ошибку
}
ну и т.д.
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35578755
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Variant f=myCell.OlePropertyGet("Item",x,y);
Edit1->Text=f;
int som= 0 ;
if(f.Type()==varInteger) {
                     som=f.AsType(varInteger);
                     Edit2->Text=f;
                     }
else Edit2->Text="Это не целый тип";
2 ячейки:
1. цифры и текст
2. только цифры

В обоих случаях выводит ""Это не целый тип".
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35578989
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BananasПо поводу даты: она в формате дд.мм.гггг.

Про "третьи" языки. Какой язык подходит для такой задачи? Фокспро? VC? CDate(), CLong() - это вроде VC.
з.ы. Все таки не могу понять. Ведь чтобы поместить в переменную значение, нужно сначала выделить под нее место, а чтобы выделить место, нужно знать, какого она типа. В итоге тип ячейки должен быть известен. Или эксел это интерпретатор?
VBA - интерпретатор. Кстати, как и FoxPro. У них все явно не типизированные переменные -
динамические. А в фоксе так вообще - всегда динамические.
CDate(), CLong() и т.д. есть в VB, означают перевод результата некоего выражения в указанный тип данных.

По поводу языков - если считать, что в DBF данные корректны полностью, а исходные
данные берутся из XLS, я бы написал приложение на VB или VBA. Другое дело, что
могут настать такие тормоза на большом количестве записей (в исходниках).
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35580437
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM
CDate(), CLong() и т.д. есть в VB, означают перевод результата некоего выражения в указанный тип данных.

По поводу языков - если считать, что в DBF данные корректны полностью, а исходные
данные берутся из XLS, я бы написал приложение на VB или VBA. Другое дело, что
могут настать такие тормоза на большом количестве записей (в исходниках).
А если все таки в в ячейке, где должны стоять одни цифры, поставили букву или символ (-=, они рядом). Эксел поставит, что в этой ячейке текст...
Записей будет много - я в этом уверен.

Если в ячейке цифры и текст - эксел их метит так же как и текст или по-другому? Похоже придется читать ячейку посимвольно и сравнивать на типы, вылавливая исключения (если не удастся преобразовать). Тогда, зная какие данные в ячейке (цифры/текст) и определив, какой тип присвоил ей эксел, можно сразу установить, что в ячейке ошибка. Чтобы сэкономить время на проверках. Как вариант? Или можно проще?
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35580721
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если формат ячейки - текстовый, то эксель всё будет считать текстом, вне зависимости от того, что там конкретно написано. если формат ячейки - общий, то тогда цифры станут цифрами, даты - датами, а слова - словами. Упрощённо. читай из ячейки, преобразуй в строку, потом пытайся преобразовать в число.
как-то так попробуй:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Variant f=myCell.OlePropertyGet("Item",x,y);
Edit1->Text=f;
int som= 0 ;
AnsiString data = f.AsType( varString );
try {
  som = data.ToInt();
  Edit2->Text = som;
}
catch( ... ) {
  Edit2->Text = "Это не целый тип";
}
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35581073
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychесли формат ячейки - текстовый, то эксель всё будет считать текстом, вне зависимости от того, что там конкретно написано. если формат ячейки - общий, то тогда цифры станут цифрами, даты - датами, а слова - словами. Упрощённо. читай из ячейки, преобразуй в строку, потом пытайся преобразовать в число.
как-то так попробуй:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Variant f=myCell.OlePropertyGet("Item",x,y);
Edit1->Text=f;
int som= 0 ;
AnsiString data = f.AsType( varString );
try {
  som = data.ToInt();
  Edit2->Text = som;
}
catch( ... ) {
  Edit2->Text = "Это не целый тип";
}

По справке: взяли значение f и поменяли ему тип на varString, затем преобразовали в ToInt() и присвоили int som.
В f скормил ячейку: 7707083895, а дебагер вывалил ошибку is not a valid integer value.:(

egorychесли формат ячейки - текстовый, то эксель всё будет считать текстом, вне зависимости от того, что там конкретно написано. если формат ячейки - общий, то тогда цифры станут цифрами, даты - датами, а слова - словами.
Я наверно жутко туплю, но у меня уже выражение "тип ячейки эксел" вызывает бурную реакцию. На Type внимания вообще не обращать? Т.е. предпроверку смысла делать не имеет?
А как же Variant? Это не интерперетаторная переменая, а может получать что угодно. Или он это что угодно всегда в String ложет? (или там завернуты варианты всех типов... ?).
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35581082
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bananas(или там завернуты варианты всех типов... ?).
чтоб без недопонимания: имел ввиду переменные всех типов.
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35581318
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам мучаюсь с экселем этим, сочувствую. полного понимания так до сих пор и нет, как он там с Variant'ом этим обходится, по возможности стараюсь пользовать строки, остальные типы уж больно не стабильно работают. или оставляю всё в Variant, в запросы пихаю его.
кстати, 7707083895 он в вариант запихивает как Double.
З.Ы. в строку всегда можно запихнуть всё, ну или почти всё.
З.Ы.Ы. Эксель - зло )))
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35581939
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BananasА как же Variant? Это не интерперетаторная переменая, а может получать что угодно. Или он это что угодно всегда в String ложет? (или там завернуты варианты всех типов... ?).
Variant - это Variant :) Динамический тип. Естественно, передается по ссылке. Память
распределяется из кучи.

В чем проблема-то? Если данные в Экзель, с отображением ячеек ничего не намудрено,
нигде в ячейках не выдает ошибку - то данные либо нужного вам типа, либо Variant/String.
Если уверены, что есть проблемы (юзер вписал 1ОО3 вместо 1003) - ну так перед выгрузкой
включите свой обработчик ошибок и пройдитесь по всем столбцам, пытаясь использовать
преобразование типов - как уже говорилось - CBool(expression), CByte(expression),
CCur(expression), CDate(expression), CDbl(expression), CDec(expression), CInt(expression),
CLng(expression), CSng(expression), CStr(expression), CVar(expression).
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35581986
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* по ссылке - только что заметил, конечно, через указатель...
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35582246
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMВ чем проблема-то? Если данные в Экзель, с отображением ячеек ничего не намудрено,
нигде в ячейках не выдает ошибку - то данные либо нужного вам типа, либо Variant/String.
Если уверены, что есть проблемы (юзер вписал 1ОО3 вместо 1003) - ну так перед выгрузкой
включите свой обработчик ошибок и пройдитесь по всем столбцам, пытаясь использовать
преобразование типов - как уже говорилось - CBool(expression), CByte(expression),
CCur(expression), CDate(expression), CDbl(expression), CDec(expression), CInt(expression),
CLng(expression), CSng(expression), CStr(expression), CVar(expression).

Проблема в том, что у меня не преобразовывается. По коды выше (даже в ToDouble()) вываливает raised exception class EVariantOverflowError with message 'Overflow while converting variant of type (String) into type (Integer).

---чуть позже:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
double som= 0 ;

try {  AnsiString data = f.AsType(varDouble);
  som = data.ToDouble();
  Edit2->Text = som;
}
catch( ... ) {
  Edit2->Text = "это не целый тип";
};
дебагер молчит. по проверке:
Код: plaintext
if(som==varDouble) Edit2->Text = som; else Edit2->Text="Это тип дабл";
выводит "Это тип дабл"! Частично проблему решили. Остается определить тип дату. У String такого метода нет. Что какие есть варианты?
Как происходит помещение в базу? Если поле одного типа, а положить в него пытаешься значение другого типа? Может таким образом можно проверять тип?
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35582269
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переклинило. Это не тип дабл.
:( Вот с**а. Я уже не знаю. неужели в билдере проверку нельзя сделать? Либо придется пересаживаться, либо читать все как строку, а затем ее тупо брутфорсить на каждый символ.
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35582915
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я скоро начну выражаться непечатно... Тема продолжается уже месяц - работы было - на час.
--------------------

2moderators - флейм будет по теме раздела.


Рассказываю притчу.

В некоем году (ближе к концу девяностых) некая контора (ближе к государственным)
возжелала (а, вернее, в приказном порядке по пилот-проекту) все-таки перейти на
единый программный комплекс, соответственно, с единой БД, написанный на ФоксПро.
До этого, хотя и были вполне нормальные БД, многое (если не все) являлось самописным.
Построено было на FPD2.x, Клиппере, даже QuattroPro имелся. Имелся уже и незабвенный
Офис. В полный рост встала задача - перенести как можно больше данных. На новый-то
комплекс документация имелась вплоть до описания схемы данных, а вот на "своё" - ну,
вы сами знаете, как программисты пишут документацию.

"Специалисты" озаботились автоматизировать процесс переноса. Конечно, много было
попорчено крови и зрения при разборе исходных схем хранения, но настал и тот самый
момент, когда можно было приступить к главному - пробовать переносить данные. И тут
выяснилось, что спецы отнюдь не едины во мнении, какими средствами это делать. Кто-то
предлагал Бэйсик... Кто-то - Дельфи... Предпринимались попытки что-то писать... Время
утекало. Когда же предложения достигли апогея (был предложен Форт, а также Си в
качестве альтернативы) - я решил вмешаться в процесс, ибо писать операционку-СУБД
как-то не было желания...

При ближайшем рассмотрении оказалось, что все схемы данных укладываются в модель
РБД (с некоторыми натяжками), и хранятся в форматах, поддерживаемых СУБД. Эрго:
надо пользовать СУБД. Я уже достаточно знал возможности FP, чтобы выбрать его (хотя
мог бы написать и на TPas, но смысл?). В результате всего через две недели появился даже
не тупой конвертер, а оболочка для переноса схем. "Спецам" оставлена была "нетворческая"
работа - забить соответствие баз-таблиц-полей...

Слава Пану, когда спустя несколько лет потребовалось переводить все на SQL, "специалистов
по паскалю" уже не оставалось...

-------------
Не в обиду будь сказано, но с тех пор я со снисхождением отношусь к попыткам писать
управление базами на Дельфи или Си. Конечно, ООП - это круто, конечно, все знают,
что все серьезные системы пишутся на С. Правда, при этом не надо забывать, что вы
не второй Вирт и не владеете фирмой в Силиконовой долине... Вот как только кто-нибудь
сумеет мне доказать, что для работы с пятью таблицами и тремя запросами необходимо
написание собственной системы управления базами данных - первым вольюсь в ряды.
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35583077
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
------------------------
Вопрос по существу: Вы пишете о том, что при совпадении исходных данных со "справочниками"
необходимо что-то дописать в "справочники". Но ведь по сути "справочники" нужны для того,
чтобы только контролировать эти исходные данные. Пример: взяли ИНН, Наименование. В
"справочнике" тот же ИНН соответствует тому же Наименованию. Что дописывать-то еще?

Опять же, вы получаете некие исходные данные, они не совпадают со "справочниками" и
необходимо "исправить". Что? Исходные данные? Справочник?

Судя по всему, либо вы изначально неправильно сформулировали техпроцессы, либо
умалчиваете ключевые особенности предметной области.
------------------------
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35583292
AndreTM
Не в обиду будь сказано, но с тех пор я со снисхождением отношусь к попыткам писать
управление базами на Дельфи или Си. Конечно, ООП - это круто, конечно, все знают,
что все серьезные системы пишутся на С. Правда, при этом не надо забывать, что вы
не второй Вирт и не владеете фирмой в Силиконовой долине... Вот как только кто-нибудь
сумеет мне доказать, что для работы с пятью таблицами и тремя запросами необходимо
написание собственной системы управления базами данных - первым вольюсь в ряды.
Кстати, о FoxPro:
FoxPro написан на С++, развивается тремя программистами и успешно реализует управление небольшими базами данных... Для больших баз данных на нем можно написать клиента и работать, например, через ODBC...

З.Ы. В остальном согласен с AndreTM...
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35583407
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM
Не в обиду будь сказано, но с тех пор я со снисхождением отношусь к попыткам писать
управление базами на Дельфи или Си. Конечно, ООП - это круто, конечно, все знают,
что все серьезные системы пишутся на С. Правда, при этом не надо забывать, что вы
не второй Вирт и не владеете фирмой в Силиконовой долине... Вот как только кто-нибудь
сумеет мне доказать, что для работы с пятью таблицами и тремя запросами необходимо
написание собственной системы управления базами данных - первым вольюсь в ряды.
Задачи баз как вы и написали:
1. Считать из эксела словарну ячейку.
2. Проверить их по словарям dbf
if(они совпадают)
then взять соответствующую запись из эксела и поместить в dbf
else
вывести предупреждение и предложить исправить либо эксел либо добавить в словарь

Относительно алгоритма проверки на тип. Обернуть его в функцию с аргументами (& ячейка, * тип_проверки), возвращает bool: 1 - ошибка, 0 - нормально. Указатель же может содержать любой тип? Проверкой новой ячейки инициализировать его типом, на который нужно проверить. Что скажут опытные программиты?

З.Ы.Спасибо за снисхождение:) Реального опыта у меня мало, так что правило Питера в моем случае работает на полную катушку - стараюсь писать на том, что более-менее усвоил в универе.Знаю пару ребят, с кем учился. Оба пишут к базам на дельфи. Правда один пару лет назад в Москрву уехал.
На чем правильнее писать к дбф? Про оракл тут читал про яву, про мс - полагаю их нет. Просто у нас реалий не знаю.
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35584658
Bananas AndreTM
Не в обиду будь сказано, но с тех пор я со снисхождением отношусь к попыткам писать
управление базами на Дельфи или Си. Конечно, ООП - это круто, конечно, все знают,
что все серьезные системы пишутся на С. Правда, при этом не надо забывать, что вы
не второй Вирт и не владеете фирмой в Силиконовой долине... Вот как только кто-нибудь
сумеет мне доказать, что для работы с пятью таблицами и тремя запросами необходимо
написание собственной системы управления базами данных - первым вольюсь в ряды.
Задачи баз как вы и написали:
1. Считать из эксела словарну ячейку.
2. Проверить их по словарям dbf
if(они совпадают)
then взять соответствующую запись из эксела и поместить в dbf
else
вывести предупреждение и предложить исправить либо эксел либо добавить в словарь

Относительно алгоритма проверки на тип. Обернуть его в функцию с аргументами (& ячейка, * тип_проверки), возвращает bool: 1 - ошибка, 0 - нормально. Указатель же может содержать любой тип? Проверкой новой ячейки инициализировать его типом, на который нужно проверить. Что скажут опытные программиты?

З.Ы.Спасибо за снисхождение:) Реального опыта у меня мало, так что правило Питера в моем случае работает на полную катушку - стараюсь писать на том, что более-менее усвоил в универе.Знаю пару ребят, с кем учился. Оба пишут к базам на дельфи. Правда один пару лет назад в Москрву уехал.
На чем правильнее писать к дбф? Про оракл тут читал про яву, про мс - полагаю их нет. Просто у нас реалий не знаю.
Для работы с dbf как правило используют языки семейства xBase (FoxPro, разные клоны Clipper'a, dBase и т.д.). Из всего этого разнообразия, самая заметная популярность у FoxPro. К тому же он интерпретатор и примерно 50% программы можно выполнить/отладить в командном окне... В Visual FoxPro есть возможность через интерфейс СОМ обратиться к Excel и заставлять выполнять его некоторые команды (например, открыть файл, прочитать значение из ячейки и т.д.)...
Вместе с тем, Excel тоже позволяет работать в файлами dbf как с "родными" (можно их загружать и в них сохранять). Поэтому, можно написать макросы на Excel-VBA...

Насчет указателей. В принципе, это правда. Указатель лишь указывает на некоторую область памяти. А вот уже ТИП (например,через длину данных (в байтах)) определяет как эти данные интерпретировать. Поэтому, есть особый указатель (void *), в который может быть преобразован любой указатель... Однако, здесь возможны различные трудноуловимые ошибки...
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35584828
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bananas , головушку бы вы нам не морочили :)
Задачи нужно уметь ставить. И вообще, вашу задачу пора перенести либо в VFP, либо в VB.

Рассказываю, как должно было быть поставлено задание:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Здравствуйте, уважаемые.
Столкнулся с проблемой. Нам поступают из разных организаций (или из казначейства, неважно)
списки платежных документов с реквизитами (дата, плательщик, получатель, счет, сумма и т.п.).
Исходные файлы в виде экзелевских таблиц, структура всегда одна и та же. И необходимо
собрать эти документы в общую базу (для последующего анализа, поиска). Все бы ничего, но
начальник поставил задачу - база данных должна быть в виде таблиц DBF.
Сам я пишу на С++, правда, с синтаксисом SQL знаком, но не знаком с ФоксПро :) Вот сижу и
думаю - на чем лучше написать обработку для добавления данных в базу. На VFP (есть девятка)?
На VBA или VB? Может, попробовать в Билдере все сделать (вроде видел классы для работы с
базами, или через ODBC)?
Данные надо будет при поступлении проверять на правильность (ну там по ИНН/КПП проверить
Название плательщика в нашей наполняемой базе, потом могут быть проблемы с форматом
данных в исходных таблицах, вроде записи числа в виде строки), причем в случае "нормальности"
сразу добавлять их в базу, а если проблемы - выдавать оператору для проверки, исправления-
подтверждения-отказа. Лог, наверное, нужен по приему данных.
И еще - (это уже мои рассуждения - прим. AndreTM) базу надо будет делать реляционной (вроде
так сказали), чтобы были там справочники (плательщиков, получателей и т.п.), ну и, естественно,
список принятых документов.
Извините, если что не объяснил - хотя бы скажите, в каком направлении нужно начинать копать.

Образцы файла-источника и базы DBF приложены (вот с DBF может чего напутал?)

---------------------------
Посмотрел ваш файлик, со структурой примерно определился.
Вопросы такие: действительно ли нужна реляционная база (то есть несколько связанных таблиц),
или достаточно одной, куда помещаются документы? Плательщики-получатели у вас разные,
или Плательщик может выступать и Получателем? Глубинные контрольные соотношения собираетесь
проверять (типа контрольного разряда в ИНН или правильности заполнения ОКАТО)?
---------------------------
В общем, обе ваших темы можно закрывать, ибо с Билдером можете завязывать, особенно
если под базу будет потом еще писаться приложение на VFP. Свяжитесь со мной мэйлом
или асей, проблемы будем решать, не разводя флейм.
...
Рейтинг: 0 / 0
доступ к xls и bdf из своей утилитки?
    #35597539
Bananas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM
Посмотрел ваш файлик, со структурой примерно определился.
Вопросы такие: действительно ли нужна реляционная база (то есть несколько связанных таблиц),
или достаточно одной, куда помещаются документы? Плательщики-получатели у вас разные,
или Плательщик может выступать и Получателем? Глубинные контрольные соотношения собираетесь
проверять (типа контрольного разряда в ИНН или правильности заполнения ОКАТО)?
---------------------------
В общем, обе ваших темы можно закрывать, ибо с Билдером можете завязывать, особенно
если под базу будет потом еще писаться приложение на VFP. Свяжитесь со мной мэйлом
или асей, проблемы будем решать, не разводя флейм.
По вопросам:
1. Нужны dbf;
2. Dbf, который я выложил - зеркальная копия эксел-файла, из которого будет идти выгрузка.
3. Никакого деления на сущности не будет - начальник это особо оговорил - чтобы отчеты из кристала удобно было делать.
4. Так же будут dbf-словари "Плательщик" и "Наименование платежа". По ним будет вестись проверки.
5. "Плательщик может быть Получателем". Такая проверка не нужна. Единственные проверки - сверка со словарями, чтобы в таблицу не проскочил неизвестный Плательщик..

Про "Глубинные контрольные соотношения собираетесь
проверять (типа контрольного разряда в ИНН или правильности заполнения ОКАТО)?". Не уверен, что понял. Буду проверять только, чтобы не затесались буквы или другие нецифровые символы. У ИНН и ОКАТО коды стандартной длины?
В ветке про фокс смотрел, там похоже действительно легко типы эксела перегонять... К сожалению переходить на фокс времени почти нет.
Про мейл. На работе закрыт, так что выхожу по вечерам с домашнего. И то не часто.
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / доступ к xls и bdf из своей утилитки?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]