proc GenerateViewAttributeLoad(TYPE, VALUE) switch (ToLower([TYPE])) case "integer": return "Convert.ToInt32(" [VALUE] ")"; case "string": return "Convert.ToString(" [VALUE] ")"; case "datetime": return "Convert.ToDateTime(" [VALUE] ")"; case "boolean": return "(" [VALUE] ".ToString() == \"T\")"; case "char": return "Convert.ToString(" [VALUE] ")"; case "double": return "Convert.ToDouble(" [VALUE] ")"; case "float": return "Convert.ToDouble(" [VALUE] ")"; case "id": return "Convert.ToInt32(" [VALUE] ")"; case "dictionaryitem": return "Convert.ToInt32(" [VALUE] ")"; case "binary": return "(byte[])(" [VALUE] ")"; case "longstring": return "Convert.ToString(" [VALUE] ")"; end switch end proc template GenerateViewBase(MClass as VIEW) [BOM]using System; using System.Collections; using System.Data; using Kreta.Framework; namespace SDA.[ProjectName].Entities { [GenerateViewCollection([VIEW])] public class [VIEW.name] : ViewBase { [loop (VIEW -> MAttribute as ATTRIBUTE)] protected [GetCSharpType([ATTRIBUTE.type])] m_[ATTRIBUTE.name] = [GetCSharpDefaultValueOfAttribute([ATTRIBUTE])]; protected bool m_Is[ATTRIBUTE.name]Null = true; [end loop] #region Tulajdonságok [loop (VIEW -> MAttribute as ATTRIBUTE)] public virtual [GetCSharpType([ATTRIBUTE.type])] [ATTRIBUTE.name] { get { return m_[ATTRIBUTE.name]; } } public virtual bool Is[ATTRIBUTE.name]Null { get { return m_Is[ATTRIBUTE.name]Null; } } [end loop] #endregion #region Betöltés internal void InternalLoadFromReader([GetCSharpSQLDataReaderType()] reader) { LoadFromReader(reader); } protected override void LoadFromReader([GetCSharpSQLDataReaderType()] reader) { [loop (VIEW -> MAttribute as ATTRIBUTE)] int [ToLower([ATTRIBUTE.name])]ordinal = reader.GetOrdinal("[ATTRIBUTE.name]"); [end loop] [loop (VIEW -> MAttribute as ATTRIBUTE)] if (reader.IsDBNull([ToLower([ATTRIBUTE.name])]ordinal) == false) { m_Is[ATTRIBUTE.name]Null = false; m_[ATTRIBUTE.name] = [GenerateViewAttributeLoad([ATTRIBUTE.type], "reader.GetValue(" ToLower([ATTRIBUTE.name]) "ordinal" ")")]; } else { m_Is[ATTRIBUTE.name]Null = true; } [end loop] } #endregion } } end template template GenerateViewCollection(MClass as VIEW) public class [VIEW.name]Collection : ViewCollectionBase { protected override void LoadFromReader([GetCSharpSQLDataReaderType()] reader) { while (reader.Read()) { [VIEW.name] item = new [VIEW.name](); item.InternalLoadFromReader(reader); Add(item); } } protected void Add([VIEW.name] item) { m_Items.Add(item); } public [VIEW.name] this\[int index\] { get { return ([VIEW.name])m_Items\[index\]; } } } end template