54 lines
1.6 KiB
C#
54 lines
1.6 KiB
C#
|
|
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();
|
|||
|
|
}
|
|||
|
|
}
|