Вам бы только посмеяться. У людей горе...
Выгрузка из Clarion в Excel
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Выгрузка из Clarion в Excel
Это я только кажусь дураком! На самом деле я полный идиот!
Выгрузка из Clarion в Excel
Первая форма допуска устроит?Ал писал(а):Родина, которая ...на, всегда помнит своих героев, и визу лет XX - ни-ни?Губин Игорь писал(а):Да плюнь ты на секретность, договорись с кем-нибудь и всё тебе будет.для начала в хелпе по языку CLARION про MEMO поля посмотри..., ну и если всё сам - придется ручками и писать-писать, лучше сразу в какой-ниб из сред CW6-CW10, только про галочку OEM в словаре не забыватьiBorman писал(а): ... *.mem. Кто подскажет, как вытащить информацию из него?
- Губин Игорь
- ✯ Ветеран ✯
- Сообщения: 2329
- Зарегистрирован: 16 Сентябрь 2005, 16:35
- Откуда: Москва
- Поблагодарили: 18 раз
Выгрузка из Clarion в Excel
Первой формы будь достоин!
Враг не дремлет!
Майор Пронин
Там коммерческая, как я понял, а это куда страшнее
Это я только кажусь дураком! На самом деле я полный идиот!
- ingasoftplus
- Ветеран
- Сообщения: 426
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 90 раз
- Поблагодарили: 5 раз
Выгрузка из Clarion в Excel
а нельзя попробовать это?
http://www.scalabium.com/clarion/
http://www.processtext.com/abcclarion.html
там и триалы есть - да и стоит оно недорого ?
http://www.scalabium.com/clarion/
http://www.processtext.com/abcclarion.html
там и триалы есть - да и стоит оно недорого ?
Выгрузка из Clarion в Excel
Товарищи!
Я начал этот форум, ничерта не понимая ни в Кларион, ни в программировании. Сейчас я его заканчиваю, понимая что не знаю в этом действительно сложном деле совсем ничего. Но, благодаря вашей помощи, я решил свою проблему! Спасибо всем огромное! Особенно я благодарен человеку под ником Kreator, чьи отзывчивость и дельные советы в итоге помогли мне справиться (отдельное спасибо за SQL сервер ).
Всех с наступающим праздником великой ПОБЕДЫ! СЧАСТЬЯ И УСПЕХОВ! УРА!
С благодарностью и уважением, iBorman.
Я начал этот форум, ничерта не понимая ни в Кларион, ни в программировании. Сейчас я его заканчиваю, понимая что не знаю в этом действительно сложном деле совсем ничего. Но, благодаря вашей помощи, я решил свою проблему! Спасибо всем огромное! Особенно я благодарен человеку под ником Kreator, чьи отзывчивость и дельные советы в итоге помогли мне справиться (отдельное спасибо за SQL сервер ).
Всех с наступающим праздником великой ПОБЕДЫ! СЧАСТЬЯ И УСПЕХОВ! УРА!
С благодарностью и уважением, iBorman.
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Выгрузка из Clarion в Excel
Ну раз так удачно получилось с FireBird, считаю, есть смысл остаться на FB, не перегонять в Excel. А клиентскую часть переписать на современный лад.
We are hard at work… for you.
Выгрузка из Clarion в Excel
Огромное Вам спасибо! Специально регистрировался ради этого. Я очень долго искал как можно вытащить данные из клариона и Ваше сообщение очень сильно помогло.kreator писал(а): ↑05 Май 2015, 16:58 Вам бы только посмеяться. У людей горе...
Ещё вариант для не боящихся работы.
Качаешь бесплатный SQL сервак Firebird с сайта http://firebirdsql.org/ (думаю, любую версию). Находишь средство для работы с ним IBExpert (есть бесплатные, для пользователей СССР). Создаёшь в IBExpert'е новую БД без таблиц. И там есть импорт из DAT (проверил memo подхватывает, во всяком случае IBExpert 2011), и есть экспорт во что хочешь, в том числе сразу в Excel. Дерзай!
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Выгрузка из Clarion в Excel
Спасибо тебе, добрый человек!
Это ж надо ж!
Это ж надо ж!
We are hard at work… for you.
Выгрузка из Clarion в Excel
выгрузку надо делать в транзитный формат. Например CSV. Дабы потом уж -куда надо. Либо Импорт файлов в словарь БД и написание уже выгрузки непосредственно в Excel
-
- ✯ Ветеран ✯
- Сообщения: 4984
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 20 раз
Выгрузка из Clarion в Excel
В данном топике ситуация другая. Программиста нет, а данные перетащить надо. Какой csv? Если программист есть, то вариантов куча. И в этом случае csv не самый лучший вариант.
We are hard at work… for you.
Выгрузка из Clarion в Excel
Код: Выделить всё
DECLARE @ClarionDate INT = 47563
DECLARE @SqlDateTime DATETIME
-- Convert the clarion DATE into and SQL DateTime
SET @SqlDateTime = DateAdd(day, @ClarionDate - 4, '1801-01-01')
SELECT @SqlDateTime AS 'SQL Date Time'
-- Now convert it back from and SQL DateTime to a Clarion Date
SET @ClarionDate = DateDiff(day, DateAdd(day, -4, '1801-01-01'), @SqlDateTime)
SELECT @ClarionDate AS 'Clarion Date'
/*
A Clarion standard date is the number of days that have elapsed since
December 28, 1800. The range of accessible dates is from January 1, 1801
(standard date 4) to December 31, 9999 (standard date 2,994,626). Date
procedures will not return correct values outside the limits of this range.
The standard date calendar also adjusts for each leap year within the range of
accessible dates. Dividing a standard date by modulo 7 gives you the day of the
week: zero = Sunday, one = Monday, etc.
The LONG data type with a date format (@D) display picture is normally used for
a standard date. Data entry into any date format picture with a two-digit year
defaults to the century of next 20 or previous 80 years. For example, entering
01/01/01 results in 01/01/2001 if the current year (per the system clock) is
greater than 1980, and 01/01/1901 if the current year is 1980 or earlier.
The DATE data type is a data format used in the Btrieve Record Manager and some
other file systems. A DATE field is internally converted to LONG containing the
Clarion standard date before any mathematical or date procedure operation is
performed. Therefore, DATE should be used for external file compatibility, and
LONG is normally used for other dates.
*/
Код: Выделить всё
import json
import datetime
def parser_for_clarion_date(clarion_value):
# если вместо значения попадается Null, то выводим его.
if clarion_value == None:
return 'null'
else:
# Значение = кол-во дней прошедших с даты отсчета - 4 дня
value = clarion_value - 4
# Дата с которой идет отсчет в кларионе 01-01-1801, к ней будем добавлять кол-во дней (значение)
time = datetime.date(1801, 1, 1)
# получаем дату. Количество дней + дата отсчета клариона
new_value = time + datetime.timedelta(days=value)
# переводим формат даты из Год.месяц.день в День.месяц.год
return new_value.strftime("%d.%m.%Y")
# К имени файла добавляем маску "_исправленный". Буду использовать для сохранения в новый файл.
def rename_file(file, mask='_исправленный'):
splitter = file.split('.')
return splitter[0] + mask + '.' + splitter[1]
def clarion_json_parser(file):
file = file.replace('"','')
with open(file, 'r', encoding='utf-8') as json_file:
data = json.load(json_file)
data2 = {}
data2['VLAD_CENTR'] = []
for element in data["RecordSet"]:
data2['VLAD_CENTR'].append({
'N_REC_VL': element['N_REC_VL'],
'F': element['F'],
'I': element['I'],
'O': element['O'],
# для полей с датами применяем функцию преобразования значения клариона в ДАТУ
'DATA_RV': parser_for_clarion_date(element['DATA_RV']),
'DATA_CH': parser_for_clarion_date(element['DATA_CH'])
})
with open(rename_file(file), 'w', encoding='utf-8') as outfile:
# при записи в файл слетала кодировка у кириллицы, помогло добвавление ensure_ascii=False
json.dump(data2, outfile, indent=4, ensure_ascii=False)
# вместо file указываем путь к JSON файлу, рядом будет создан новый файл с исправленными датами
clarion_json_parser(file)