public WMB.TableContentDefinition [] GetConnectorEntries (String TableName)
			{
			List<String> ConnectorEntryColumns = new List<String> ();
			foreach (DataRow Definition in GetSchemaDataTable (TableName).Rows)
				{
				if ((Definition ["name"].ToString () == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_CONNECTOR_ID)
					|| (Definition ["name"].ToString () == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_IMAGE_LINK_ID))
					ConnectorEntryColumns.Add (Definition ["name"].ToString ());
				}
			WMB.TableContentDefinition [] ConnectorEntries = new WMB.TableContentDefinition [ConnectorEntryColumns.Count];
			int Index = 0;
			foreach (String NewEntry in ConnectorEntryColumns)
				{
				ConnectorEntries [Index++] = GetColumnDefinition (null, TableName, NewEntry, true);
				}
			return ConnectorEntries;
			}
Beispiel #2
0
		string StandardTableWindow_ProcessModifyKeyTableCall (TableContentDefinition SpecialFieldProcessing)
			{
			IntelliSenseAutoCompletionControl ControlFactory = new IntelliSenseAutoCompletionControl ();
			ControlFactory.m_Factory = new IntelliSenseAutoCompletionFactoryRoutines (m_DataBase);

			DataSet ChangedEntries = ControlFactory.StartKeyTableModifyDialog (SpecialFieldProcessing.m_ForeignTableName,
								   SpecialFieldProcessing.m_ForeignTableKeyFieldName);
			if (ChangedEntries == null)
				return String.Empty;
			if (ChangedEntries.Tables [SpecialFieldProcessing.m_ForeignTableName].Rows.Count != 1)
				return String.Empty;
			return ChangedEntries.Tables [SpecialFieldProcessing.m_ForeignTableName].Rows [0]
				[SpecialFieldProcessing.m_ForeignTableKeyFieldName].ToString ();
			}
		public WMB.TableContentDefinition GetColumnDefinition(ItemDescription ItemDesc,
			String TableName, String ColumnName, bool UpdateAble)
			{
			DataTable SchemaDataTable = SchemaDataSet.Tables["ExProp_" + TableName];
			if (SchemaDataTable == null)
				{
				String TableType = GetDataBaseTableType(TableName);
				DataSet HelpDS = null;
				if (TableType == "BASE TABLE")
					{
					HelpDS = GetCommonDataSet
						(String.Format(SQL_GET_EXTENDED_COLUMN_PROPERTIES_FOR_TABLE, TableName));
					}
				if (TableType == "VIEW")
					{
					HelpDS = GetCommonDataSet
						(String.Format(SQL_GET_EXTENDED_COLUMN_PROPERTIES_FOR_VIEW, TableName));
					ReformatViewExtendedPropertiesToTableExtendedProperties(HelpDS.Tables[0]);
					}
				SchemaDataTable = HelpDS.Tables[0];
				HelpDS.Tables.Remove(SchemaDataTable);
				SchemaDataTable.TableName = "ExProp_" + TableName;
				SchemaDataSet.Tables.Add(SchemaDataTable);
				}
			DataRow[] ColoumnAttributes = SchemaDataTable.Select("objname = '" + ColumnName + "'");
			if (ColoumnAttributes.Length < 1)
				return DefaultColumnDefinition;
			WMB.TableContentDefinition ProcessableColumnDefinition = null;
			foreach (DataRow AttributeRow in ColoumnAttributes)
				{
				String ExtendedAtttributeName = AttributeRow["name"].ToString();
				String[] Values = AttributeRow["value"].ToString().Split(';');
				WMB.TableContentDefinition NextProcessableColumnDefinition = null;
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_CONNECTOR_ID)
					{
					if (Values.Length == 1)
						{
						NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values[0], UpdateAble);
						}
					else
						{
						String[] AdditionalValues = new String[Values.Length - 1];
						int Index = 0;
						while (Index < (Values.Length - 1))
							{
							AdditionalValues[Index] = Values[Index + 1];
							Index++;
							}
						NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values[0], UpdateAble, AdditionalValues);
						}
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_ALLOWED_VALUES)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values);
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_TABLE_COLUMNS)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values);
					NextProcessableColumnDefinition.m_TypeOfSpecialFieldProcessing =
						WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_TABLE_COLUMNS;
					NextProcessableColumnDefinition.m_AllowNewKeysInForeignTable = false;
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_ALLOWED_TEMPLATES)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName,
						WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_ALLOWED_TEMPLATES) { m_FieldNameWithAllowedValues = ColumnName };
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_IMAGE_LINK_ID)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName,
						WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_IMAGE_LINK_ID)
					{
						m_ForeignConnectionStringName = Values[0],
						m_ForeignTableName = Values[1],
					};
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_COLOR)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName,
						WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_COLOR);
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_IS_LAYOUT_SELECTOR)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName,
						WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_IS_LAYOUT_SELECTOR);
					NextProcessableColumnDefinition.m_IsLayoutSelector = true;
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_ALLOWED_KEYS)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values[0], Values[1], UpdateAble);
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_PARENT_ID)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values[0],
						Values[1], Values[2], Values[3]);
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_DATE_TIME)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values);
					NextProcessableColumnDefinition.m_TypeOfSpecialFieldProcessing =
						WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_DATE_TIME;
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_CONNECTED_VALUE)
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName, Values[0], Values[1], UpdateAble);
					NextProcessableColumnDefinition.m_TypeOfSpecialFieldProcessing =
						WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_CONNECTED_VALUE;
					NextProcessableColumnDefinition.m_ConnectedValueControllingTable = Values[2];
					NextProcessableColumnDefinition.m_ConnectedValueControllingItem = Values[3];
					}

				if ((ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_DEFAULT_GENERATE_CONTENT)
					|| (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_DO_LOCAL_FILE_SELECTION))
					{
					NextProcessableColumnDefinition = new WMB.TableContentDefinition(TableName, ColumnName,
						ExtendedAtttributeName);
					NextProcessableColumnDefinition.m_DefaultFillingMethode = Values[0].Replace(',', ';');
					}


				if (ProcessableColumnDefinition != null)
					ProcessableColumnDefinition.m_Next = NextProcessableColumnDefinition;
				else
					{
					ProcessableColumnDefinition = NextProcessableColumnDefinition;
					}
				}

			if (ProcessableColumnDefinition == null)
				ProcessableColumnDefinition = new WMB.TableContentDefinition(ColumnName);
			foreach (DataRow AttributeRow in ColoumnAttributes)
				{
				String ExtendedAtttributeName = AttributeRow["name"].ToString();
				String[] Values = AttributeRow["value"].ToString().Split(';');

				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_HELP)
					{
					ProcessableColumnDefinition.m_Help = Values[0];
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_TOOL_TIP)
					{
					ProcessableColumnDefinition.m_ToolTip = Values[0];
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_READABLE_NAME)
					{
					ProcessableColumnDefinition.m_ReadableName = Values[0];
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_DEFAULT_CONTENT)
					{
					ProcessableColumnDefinition.m_DefaultContentRules = Values;
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_COLOR)
					{
					ProcessableColumnDefinition.m_DefaultContentRules = new String[] { "Color" };
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_IS_LAYOUT_SELECTOR)
					{
					ProcessableColumnDefinition.m_IsLayoutSelector = true;
					if (ItemDesc != null)
						ItemDesc.IsLayoutSelector = true;
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_MAX_LENGTH)
					{
					ProcessableColumnDefinition.m_MaxLength = Convert.ToInt32(Values[0]);
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_PREDFINED_CONTENT)
					{
					ProcessableColumnDefinition.m_PredefinedContentGroupKeys = String.Join(";", Values);
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_ALLOW_FOREIGN_KEY_ADD)
					{
					ProcessableColumnDefinition.m_AllowNewKeysInForeignTable = true;
					}
				if (ExtendedAtttributeName == WMB.TableContentDefinition.SQL_COLUMN_PROPERTY_DO_CONNECTED_VALUE_PROCESSING)
					{
					ProcessableColumnDefinition.m_ConnectedValueControllerItem = true;
					}

				}
			return ProcessableColumnDefinition;
			
			}