как из галактики данные отчета закачать сразу в DBF.....
нужно например данные из ведомости наличия по выбранному складу выгружать не в excel, а сразу в определенную DBF
хотелось бы посмотреть саму форму, где такое есть...
если это возможно , плиз....
заранее благодарна
Выгрузка из Галактики в DBF файл
Модераторы: m0p3e, edward_K, Модераторы
Re: Выгрузка из Галактики в DBF файл
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.
Все что нужно.
Назначение
Открыть или создать 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 файл
Пример формирования 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, не знаю с чем это связано но произвольнле имя не работало
.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, не знаю с чем это связано но произвольнле имя не работало
Подход к делу: СДЕЛАЛ и ... ЗАБЫЛ, а ОНО пусть САМО работает (не люблю возвращаться и повторяться).
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Выгрузка из Галактики в DBF файл
да ладно только такое
я по 10 дбф открываю на разные хандлеры и ниче - пащет
я по 10 дбф открываю на разные хандлеры и ниче - пащет
-
- Постоянный гость
- Сообщения: 55
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Тверь/Москва
- Контактная информация:
Re: Выгрузка из Галактики в DBF файл
Подтверждаю слова Edward_K - имя нэндла любое. Все ок работает