/**
* @content 字段功能组件
* @author 2019-09-16
*/
import { NativeModules } from 'react-native';
let FLD = NativeModules.JSField;
import ExtField from './ExtField.js';
/**
* @class Field
* @description 字段
*/
export default class Field {
/**
* 构造一个新的 Field 对象。
* @memberOf Field
* @returns {Promise.<Field>}
*/
async createObj() {
try {
var { FieldId } = await FLD.createObj();
var field = new Field();
field._MGFieldId = FieldId;
return field;
} catch (e) {
console.error(e);
}
}
/**
* 获取字段名称
* @memberOf Field
* @return {String}字段名称
*/
async getFieldName() {
try {
return await FLD.getFieldName(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置字段名称
* @memberOf Field
* @param {String} name 字段名称
* @return {Promise<void>}
*/
async setFieldName(name) {
try {
await FLD.setFieldName(this._MGFieldId, name);
} catch (e) {
console.error(e);
}
}
/**
* 获取字段类型
* @memberOf Field
* @return {Number}字段类型 (int类型的Number)
*/
async getFieldType() {
try {
return await FLD.getFieldType(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置字段类型
* @memberOf Field
* @param {Number} type 字段类型(int类型的Number)
* @return {Promise<void>}
*/
async setFieldType(type) {
try {
await FLD.setFieldType(this._MGFieldId, type);
} catch (e) {
console.error(e);
}
}
/**
* 获取字段偏移
* @memberOf Field
* @return {Number}偏移值 (int类型的Number)
*/
async getFieldOffset() {
try {
return await FLD.getFieldOffset(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置字段偏移
* @memberOf Field
* @param {Number} offset 偏移值(int类型的Number)
* @return {Promise<void>}
*/
async setFieldOffset(offset) {
try {
await FLD.setFieldOffset(this._MGFieldId, offset);
} catch (e) {
console.error(e);
}
}
/**
* 获取字段字节长度
* @memberOf Field
* @return {Number}字节长度 (int类型的Number)
*/
async getFieldLength() {
try {
return await FLD.getFieldLength(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置字段字节长度
* @memberOf Field
* @param {Number} length 字节长度(int类型的Number)
* @return {Promise<void>}
*/
async setFieldLength(length) {
try {
await FLD.setFieldLength(this._MGFieldId, length);
} catch (e) {
console.error(e);
}
}
/**
* 获取字段字符长度
* @memberOf Field
* @return {Number}字段字符长度
*/
async getMskLength() {
try {
return await FLD.getMskLength(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置字段字符长度
* @memberOf Field
* @param {Number} length 字段字符长度
* @return {Promise<void>}
*/
async setMskLength(length) {
try {
await FLD.setMskLength(this._MGFieldId, length);
} catch (e) {
console.error(e);
}
}
/**
* 获取小数位数
* @memberOf Field
* @return {Number}小数位数
*/
async getPointLength() {
try {
return await FLD.getPointLength(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置小数位数
* @memberOf Field
* @param {Number} length 小数位数
* @return {Promise<void>}
*/
async setPointLength(length) {
try {
await FLD.setPointLength(this._MGFieldId, length);
} catch (e) {
console.error(e);
}
}
/**
* 获取编辑使能标志
* @memberOf Field
* @return {Number}使能标志
*/
async getEditable() {
try {
return await FLD.getEditable(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置编辑使能标志
* @memberOf Field
* @param {Number} value 使能标志
* @return {Promise<void>}
*/
async setEditable(value) {
try {
await FLD.setEditable(this._MGFieldId, value);
} catch (e) {
console.error(e);
}
}
/**
* 获取打印标志
* @memberOf Field
* @return {Number}标志值
*/
async getPtFlag() {
try {
return await FLD.getPtFlag(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置打印标志
* @memberOf Field
* @param {Number} flag 标志值
* @return {Promise<void>}
*/
async setPtFlag(flag) {
try {
await FLD.setPtFlag(this._MGFieldId, flag);
} catch (e) {
console.error(e);
}
}
/**
* 获取字段序号
* @memberOf Field
* @return {Number}字段序号值
*/
async getPtcPosition() {
try {
return await FLD.getPtcPosition(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置字段序号
* @memberOf Field
* @param {Number} position 字段序号值
* @return {Promise<void>}
*/
async setPtcPosition(position) {
try {
await FLD.setPtcPosition(this._MGFieldId, position);
} catch (e) {
console.error(e);
}
}
/**
* 获取字段是否继承标志
* @memberOf Field
* @return {Number}继承标志值
*/
async getIsInherited() {
try {
return await FLD.getIsInherited(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 设置字段是否继承标志
* @memberOf Field
* @param {Number} value 继承标志值
* @return {Promise<void>}
*/
async setIsInherited(value) {
try {
await FLD.setIsInherited(this._MGFieldId, value);
} catch (e) {
console.error(e);
}
}
/**
* 计算字段头需要占用的存储空间
* @memberOf Field
* @return {Number}占用空间值
*/
async CalculateSize() {
try {
return await FLD.CalculateSize(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 取扩展字段信息
* @memberOf Field
* @return {Promise<ExtField>}扩展字段对象
*/
async getExtField() {
try {
let { ExtFieldId } = await FLD.getExtField(this._MGFieldId);
var extField = new ExtField();
extField._MGExtFieldId = ExtFieldId;
return extField;
} catch (e) {
console.error(e);
}
}
/**
* 设置扩展字段信息
* @memberOf Field
* @param fieldEx 扩展字段对象
* @return {Promise<void>}
*/
async setExtField(fieldEx) {
try {
await FLD.setExtField(this._MGFieldId, fieldEx._MGExtFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 是否有扩展字段
* @memberOf Field
* @return {Number} 非0/0 :是/否
*/
async hasExtField() {
try {
return await FLD.hasExtField(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
/**
* 删除扩展字段
* @memberOf Field
* @return {Number} 大于0成功,否则失败
*/
async deleteExtField() {
try {
return await FLD.deleteExtField(this._MGFieldId);
} catch (e) {
console.error(e);
}
}
}