Страница 1 из 1

Выгрузка из Галактики в DBF файл

Добавлено: 23 ноя 2004, 12:56
tatyanka_
как из галактики данные отчета закачать сразу в DBF.....
нужно например данные из ведомости наличия по выбранному складу выгружать не в excel, а сразу в определенную DBF
хотелось бы посмотреть саму форму, где такое есть...
если это возможно , плиз....
заранее благодарна

Re: Выгрузка из Галактики в DBF файл

Добавлено: 23 ноя 2004, 13:05
m0p3e
6.3.13. Функция DBFOpen (String, Integer) : LongInt
Назначение
Открыть или создать DBF файл.
Описание
function DBFOpen (Name : String, Mode : Integer) : LongInt;
Параметры
Name : String - имя DBF файла.
Mode : Integer - режим создания, открытия DBF файла:
- stCreate = $3C00;
- stOpenWrite = $3D01;
- stOpen = $3D02;
- stOpenRead = $3D20.
Возвращаемое значение
Функция возвращает дескриптор файла или 0 в случае ошибки.

6.3.1. Функция DBFAddField (LongInt, String, Integer, Integer, Integer) : Integer
Назначение
Добавить поле в заголовок DBF.
Описание
function DBFAddField (Handle : LongInt; FName : String; CField, LField, Quant : Integer) : Integer;
Параметры
Handle : LongInt - результат, возвращаемый DBFOpenFile
FName : String - имя поля (8 символов без пробелов).
CField: Integer - тип поля (константы с префиксом Db):
- DbChar;
- DbNum;
- DbLog;
- DbDate;
- DbMemo.
LField : Integer - длина поля.
Quant : Integer - кол-во знаков после запятой.
Возвращаемое значение
Если операция прошла успешно, то функция возвращает 0.
Замечания
Если применить для существующего DBF, то данные будут уничтожены.

6.3.14. Функция DBFPutFieldValue (LongInt, String, String) : Integer
Назначение
Установить значение поля текущей записи.
Описание
function DBFPutFieldValue (Handle : LongInt; FName, Str : String) : Integer;
Параметры
Handle : LongInt - результат, возвращаемый DBFOpenFile.
FName : String - имя поля (8 символов без пробелов).
Str : String - строка со значением.
Возвращаемое значение
Если операция прошла успешно, то функция возвращает 0.

6.3.16. Функция DBFUpDateRecord (LongInt) : Integer
Назначение
Обновляет текущую запись в DBF.
Описание
function DBFUpDateRecord (Handle : LongInt) : Integer;
Параметры
Handle : LongInt - результат, возвращаемый DBFOpenFile.
Возвращаемое значение
Если операция прошла успешно, то функция возвращает 0.

6.3.2. Процедура DBFClose (LongInt)
Назначение
Закрыть DBF файл.
Описание
procedure DBFClose (Handle : LongInt);
Параметры
Handle : LongInt - результат, возвращаемый DBFOpenFile.

Все что нужно.

Re: Выгрузка из Галактики в DBF файл

Добавлено: 23 ноя 2004, 14:58
Grom
Пример формирования DBF-файла из формы печати накладной на внутренне перемещение для выгрузки его на кассу розничной торговли (только существенное):
.linkform 'movnac_to_DBF' prototype is 'printinmovnak'
.nameinlist 'Формирование файла для касс'
.Group 'Vnut'
.var
hDBFh : LongInt;
.endvar
.begin
hDBFh:=DBFOpen('update.dbf', stCreate)
DBFAddField(hDBFh,'OPER' ,dbChar, 1 ,0);
DBFAddField(hDBFh,'KOD_K' ,dbChar,13 ,0);
DBFAddField(hDBFh,'Artikul',dbChar, 5 ,0);
DBFAddField(hDBFh,'Stock' ,dbChar,30 ,0);
DBFAddField(hDBFh,'Price' ,dbNum, 12 ,2);
DBFAddField(hDBFh,'QTY1' ,dbNum, 12 ,3);
DBFAddField(hDBFh,'QTY2' ,dbNum, 12 ,3);
DBFAddField(hDBFh,'QTY3' ,dbNum, 12 ,3);
end.
...
...
...

// В цикле по спецификации
.begin
DBFPutFieldValue(hDBFh,'OPER' ,'+');
DBFPutFieldValue(hDBFh,'KOD_K' ,RBarKod);
DBFPutFieldValue(hDBFh,'Artikul',RBarKod);
DBFPutFieldValue(hDBFh,'Stock' ,NameMC);
DBFPutFieldValue(hDBFh,'Price' ,Price);
DBFPutFieldValue(hDBFh,'QTY1' ,kol );
DBFPutFieldValue(hDBFh,'QTY2' ,kol);
DBFPutFieldValue(hDBFh,'QTY3' ,kol);
DBFInsertRecord(hDBFh);
end.
...
...
...

.begin DBFClose(hDBFh) end.
.endform

Примечание:
Необходимы приведения типов некоторых переменных.
ИМЯ переменной дескриптора файла может быть ТОЛЬКО hDBFh, не знаю с чем это связано но произвольнле имя не работало :(

Re: Выгрузка из Галактики в DBF файл

Добавлено: 24 ноя 2004, 11:16
edward_K
да ладно только такое
я по 10 дбф открываю на разные хандлеры и ниче - пащет

Re: Выгрузка из Галактики в DBF файл

Добавлено: 24 ноя 2004, 14:25
blackoff
Подтверждаю слова Edward_K - имя нэндла любое. Все ок работает