Специфический Импорт Из Ёкселя

beloff

Well-known member
24.07.2012
113
1
#1
Всем добрый. Есть такая задача: импортировать регулярно кучу инфы из ёкселя в лотус (дисконтные карты покупателей, список которых постоянно пополняется). Выгружается из другой системы в ексель файл. Реализовать это в лотус знаю как. Как с наименьшими проблемами реализовать постоянное обновление этой базы при выгрузке в Лотус (тоже знаю как но наименьшими проблемами это назвать не могу), т.е. актуализировать БД в ЛОтусе чтобы пополнялась БД только новыми записями, которых в Лотусе нету
 

savl

Lotus team
28.10.2011
2 136
105
#2
А выгружать в Excel только новые нельзя?
Номер карты уникален, как ключ поиска по документам подойдет. Искать можно через DigestSearch.
Описание DigestSearch
Думаю для данной задачи подойдет очень хорошо.
 

beloff

Well-known member
24.07.2012
113
1
#3
savl очень вам большое спсибо, сейчас буду изучать
+ в репу
 

savl

Lotus team
28.10.2011
2 136
105
#4
Спасибо, но опять же... Можно использовать, а можно и вьюхой обойтись.
Но есть идея некого гибрида:
Если база только-только будет заполняться, и никаких записей еще нет.
При создании документов, при первой выгрузке, генерить им UniversalID, как используется в "DS".
Таким образом можно избавиться от базы индекса, по сути сделать хранилище доков и индекс одной базой.
Возможно импорт будет увеличен по времени, но уникальность данных сохраниться.
И вопрос, не понадобиться ли обновлять уже загруженные записи в дальнейшем?
 

beloff

Well-known member
24.07.2012
113
1
#5
в первый раз конечно просто конвертну, это потом уже при подгружении новых поставлю на проверку. Обновлять скорей всего не потребуется, т.к. более 300 000 записей будет, универсал ИД зачем? у них будет уникальный номер карты, по-мойму просто дублирование (хотя может чего то не догоняю). Про вьюху только потом сообразил getdocumentbykey (тоже кста, отличный способ шустрого поиска). Индекс все равно надо будет создавать т.к. у нас очень любят поиском пользоваться пользователи (кста, отличная скороговорка: пользователи поиском пользовались-пользовались да не выпользовались)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 600
277
#6
делал базу для "универсального" импорта/экспорта...
одна из версий здесь есть
http://codeby.net/forum/threads/41201.html?vi...st&p=210192
есть желание - разбирайтесь



Добавлено: коротко - зачем создавалась http://codeby.net/forum/threads/41202.html?vi...st&p=210194
есть уже версия свежее...:
1.0.7b:
-введены доп. константы для конфигурации (маппинга полей):
Const NOTUNIQ_SIGN={NU} 'не обрабатывать массивы на уникальность использовать вместе с опцией APPEND_SIGN
Const DEL_SIGN={D} 'удаляет значение из поля если встретит соответствие в поле (актуально для мультивэлью)
-реализована обработка удаления (в мультивэлью полях)
-обработка коллекции документов (если поиск по ключу выдает > 1 значения)
-обрабатывает все листы XLS файла (раньше был только первый, в будущих конфигурациях необходимо предусмотреть выбор листов)
-добавлено логирование в файл (при соответ. опции, либа ErrorHandling)
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#7
beloff

откуда данные попадают в ексель? может стоит обеденить две системы и откинуть промежуточный етап с екселем?
 

Anatoly

Lotus team
30.03.2007
223
0
#9
Я бы все таки подумал об прямом взаимодействии Лотуса с платформой данных. Что там: MS SQL, ORACLE...
Уйдет "брехучий телефончик" в виде EXCEL, перестаем зависить от пользователей, выборками можешь рулить сам, импорт можно сделать фоновым.
Если работаешь с нарастающим ключом, всегда можно получить значение ключа последней импортированой записи и по SELECT получать уже не все,
а вновь добавленные. Аналогично по ключу можно организовать и синхронизацию уже имеющихся записей.
 

Cleric-Lviv

Lotus team
03.01.2008
600
0
#11
beloff

ну так вот вам задача которая поможет расширить ваши знания в области odbc. Кристал репортс ето имхо mssql . если попробуете поискать по форуму то найдете кучу информации
Вот пример:
 

savl

Lotus team
28.10.2011
2 136
105
#12
Насколько я помню, кристал это система построения отчетов, она сама данные вроде не хранит.
Собирает их из реляционки, значит источник MS SQL скоре всего. Написать свой коннектор к ней не сильно долго, да и лучше, как заметил Anatoly. Лучше потратить чуть больше времени, за то будет прямое соединение.
Да и если покопаться можно найти примеры.
Посмотри Designer Help "Lotus Connector for ODBC", можно воспользоваться LEI Administrator, в Help так же расписано.
 
G

GveinBlade

#14
Данные в какой реляционке хранятся или в файлах?
 

Anatoly

Lotus team
30.03.2007
223
0
#15
Ну, если речь о продукте от «Кристалл Сервис» - то вот с их сайта:
"Одним из преимуществ SET Retail является многоплатформенность. Система обеспечит Вам свободу выбора всех компонентов IT-инфраструктуры. SET Retail поддерживает платформы Windows, Unix и Linux, а также популярные СУБД: MS SQL, MySQL, Oracle, Derby и т. д. "
Так что гадать можно долго :(
 

beloff

Well-known member
24.07.2012
113
1
#16
чего то ругается на fastsearchbykey пишу

strng = xlCells(i,2).Value
Set dsrch = FastSearchByKey(db, strng)

пишет illegal parenthesized reference
 

beloff

Well-known member
24.07.2012
113
1
#18
Dim strng As String

строка и есть строка. фуллтрим же из массивов убрает пустые элементы (из строк пробелы но там пробелов нету). может эту функцию надо как то подключить? я то вписал use digestsearchlib но он ругается на стадии компиляции

ЗЫ %INCLUDE не делал ничего