Files
BeWoPlaner/BeWo/Office/TableModels/AbstractTableModel.cs

54 lines
1.6 KiB
C#
Raw Permalink Normal View History

2016-06-27 01:45:38 +02:00
using System;
using BeWo.Office.Types;
namespace BeWo.Office.TableModels
{
public abstract class AbstractTableModel : ITableModel
{
private String[] _FieldNames;
public virtual int Count { get; private set; }
public abstract bool DataAvailable { get; }
public string[] GetFieldNames()
{
return _FieldNames ?? (_FieldNames = CreateFieldNames());
}
public string[] GetVariableNames()
{
return GetFieldNames();
}
protected string CleanFieldName(string name)
{
String fieldName = name.TrimStart(' ').TrimEnd(' ')
.Replace(" ", "_")
.Replace(".", "")
.Replace("!", "")
.Replace("?", "")
.Replace(":", "")
.Replace("(", "")
.Replace(")", "")
.Replace("/", "")
.Replace("-", "")
.Replace("+", "")
.Replace("&", "");
if (fieldName.Length > 40)
fieldName = fieldName.Substring(0, 40); //HACK: Wordserienbrieffelder dürfen max.40 Zeichen lang sein. Weiss gerade noch nicht, wo das richtigerweise gemacht werden soll
return fieldName;
}
public abstract object GetPropertyValue(string propertyName);
protected abstract string[] CreateFieldNames();
public abstract void MoveFirst();
public abstract void MoveLast();
public abstract void MoveNext();
public abstract void MovePrevious();
}
}