LGPL page
/ страница бесплатных открытых кодов /


DJF - Desktop Java Forms

Djf is a desktop java forms, the compact and litle master-detail UI library like as FoxBase, but based on Swing. Djf uses Hibernate mapping concepts for data, for component layout - Miglayout and RSyntaxTextArea for text panels.

This library and demo are hosted on git https://github.com/smart-flex/Djf.
Djf - легковесная master-detail библиотека на базе Swing, опирающаяся на концепции ORM Hibernate и использующая Miglayout для компоновки, а также RSyntaxTextArea для подсветки текстовых панелей. В библиотеке сделана реализация на перемещение между UI элементами без использования мыши (как это было в 90-х на FoxBase :)

Библиотека и демо-версия размещена на git https://github.com/smart-flex/Djf.

DbfEngine Java API

DbfEngine - a Java API to read, write xBase(DBASE, Foxpro dbf files).
Also API allows read memory files (.mem) of Foxpro. Samples for both operations you may see at DbfEngine javadoc.

This API is pure lightweight library without memory consumption and any third party libraries (there are no java loggers and etc.)
The DBF Java API is intended as engine for data exchange purposes.

Features

Engine is very small and fast.
API for reading is made as iterator, API for writing is made in manner as JDBC statement. It is allows to write compact Java code. See code samples below.

Also you can look inside your dbf file by invoking it through command line:

java -jar DbfEngine_bin-1.09.jar your.dbf

The result of parsing dbf header and content will be placed into textual file.

Limitations

This version was tested under MS Foxpro 2.6 without memo field support.

Requirements

DbfEngine requires JDK 1.6 or higher.

Licensing

DbfEngine is issued on under the GNU Lesser General Public License. For further information click here.

Download

You may download DbfEngine 1.09 (2019-JUL-10) version binary code here. The source cpde you may get in GitHub repository.

Donation

If this library was useful for your project please publish the link to this page.

If you have any questions or suggestions please do not hesitate to ask me by ask@smart-flex.ru.
DbfEngine - это Java API для чтения, записи xBase (DBASE, Foxpro) файлов. Также это API позволяет выполнять чтение .mem файлов для Foxpro. Примеры операций с .dbf и .mem файлами вы можете просмотреть в DbfEngine javadoc.

API представляет собой легковесную библиотеку без использования сторонних библиотек. Библиотека предназначена для решения задач обмена данными. В частности ее использует РКЦ флекс для чтения реестров платежей из банков и для выгрузки данных в сторону организаций.

Особенности

API очень компактная и быстрая в работе.
В части чтения данных API выполнена как традиционный итератор, в части записи данных API выполнена как jdbc Statement. Все это позволяет писать компактный код. Смотрите примеры ниже.

Также при помощи этой библиотеки вы можете "заглянуть" внутрь вашего dbf файла через вызов командной строки:

java -jar DbfEngine_bin-1.09.jar your.dbf

Результат разбора шапки dbf файла и содержимого будет помещен в выходной текстовый файл.

Ограничения

Данная версия библиотеки проверена на dbf файлах MS Foxpro 2.6 без поддержки memo.

Требования

DbfEngine для своей работы требует JDK 1.6 или выше.

Лицензирование

API выпущена под лицензией LGPL.

Загрузка

Вы можете скачать бинарную библиотеку версии 1.09 (2019-07-10) здесь, исходный код доступен в GitHub репозитории.

Пожертвования

Если библиотека помогла вам, то мы были бы рады увидеть ссылку с вашего ресурса на эту страницу.




public class Fp26Reader {

 

      private static void testRead() {

            DbfIterator dbfIterator = DbfEngine.getReader(

                        Fp26Reader.class.getResourceAsStream("FP_26_SAMPLE.DBF"), null);

           

            while (dbfIterator.hasMoreRecords()) {

                  DbfRecord dbfRecord = dbfIterator.nextRecord();

                  String string = dbfRecord.getString("string");

                  float sumFloat = dbfRecord.getFloat("sum_f");

                  BigDecimal sumNumeric = dbfRecord.getBigDecimal("sum_n");

                  boolean bool = dbfRecord.getBoolean("bool_val");

                  Date date = dbfRecord.getDate("date_val");

                 

                  System.out.println(string + " " + sumFloat + " " + sumNumeric + " "

                              + bool + " " + date);

            }

      }

 

      public static void main(String[] args) {

            Fp26Reader.testRead();

      }

 

}

 

public class Fp26Writer {

 

      private static void testWrite() {

            DbfAppender dbfAppender = DbfEngine.getWriter("WRT_PERSON.DBF", DbfCodePages.Cp866);

            DbfColumn dc01 = new DbfColumn("magic", DbfColumnTypes.Logical, 0, 0);

            DbfColumn dc02 = new DbfColumn("actor", DbfColumnTypes.Character, 60, 0);

            DbfColumn dc03 = new DbfColumn("currdate", DbfColumnTypes.Date, 0, 0);

            DbfColumn dc04 = new DbfColumn("hit", DbfColumnTypes.Numeric, 10, 2);

            DbfColumn dc05 = new DbfColumn("forever", DbfColumnTypes.Logical, 0, 0);

            dbfAppender.defineColumns(dc01,dc02, dc03, dc04, dc05);

           

            DbfStatement statement = dbfAppender.getStatement();

            statement.setString("actor", "Chuck Norris");

            statement.setDate("currdate", new Date());

            statement.setBigDecimal("hit", new BigDecimal("500.5"));

            statement.insertStatement();

 

            statement.setBoolean("magic", Boolean.TRUE);

            statement.setString("actor", "Bruce Lee");

            statement.setBigDecimal("hit", new BigDecimal("1000.10"));

            statement.setBoolean("forever", Boolean.TRUE);

            statement.insertStatement();

           

            dbfAppender.writeDbfAndClose();

      }

      public static void main(String[] args) {

            Fp26Writer.testWrite();

      }

 

}

 
РКЦ-флекс
работает с 1995 года