/// <summary> /// 初始化ComboBox控件 ComboBox /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="isReadonly"></param> /// <returns></returns> private Field IniParamComboBox(string paramField_Start, ParamField field, bool isReadonly) { if (field.Type != ParamFieldType.ComboBox) { return(null); } ComboBox result = new ComboBox(); result.Editable = false; DataTable dt = manager.GetComboBoxData(uiHelper.Name, field.FieldName); // .GetDataTableByStatement("GetComboBoxData@Select@" + uiHelper.Name + "@" + field.FieldName, null); foreach (DataRow row in dt.Rows) { Ext.Net.ListItem item = new Ext.Net.ListItem(); item.Text = row["ssValue"].ToString(); item.Value = row["ssKey"].ToString(); result.Items.Add(item); } if ((!field.Nullable) && (result.Items.Count > 0)) { result.Value = result.Items[0].Value; } if (field.Nullable) { result.Triggers.Add(new FieldTrigger() { Icon = TriggerIcon.Clear, HideTrigger = false }); result.Listeners.TriggerClick.Handler = "this.clearValue();"; } return(result); }
/// <summary> /// 初始化SearchBox控件 TriggerField /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="isReadonly"></param> /// <returns></returns> private Field IniParamSearchBox(string paramField_Start, ParamField field, bool isReadonly) { if (field.Type != ParamFieldType.SearchBox) { return(null); } TriggerField result = new TriggerField(); result.ID = paramField_Start + field.FieldName + "_TriggerField"; result.Name = paramField_Start + field.FieldName + "_TriggerField"; result.Editable = false; result.Triggers.Add(new FieldTrigger() { Icon = TriggerIcon.Clear, HideTrigger = true }); result.Triggers.Add(new FieldTrigger() { Icon = TriggerIcon.Search, HideTrigger = false }); result.Listeners.TriggerClick.Fn = "get_" + field.FieldName + "_TriggerField"; if (field.Nullable) { result.Triggers[0].HideTrigger = false; } return(result); }
/// <summary> /// 初始化TestBox控件 TextField /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="isReadonly"></param> /// <returns></returns> private Field IniParamTextBox(string paramField_Start, ParamField field, bool isReadonly) { if (field.Type != ParamFieldType.TextBox) { return(null); } TextFieldBase result = null; if (!field.IsMult) { result = new TextField(); } else { // 多行文本框 result = new TextArea(); } if (!string.IsNullOrWhiteSpace(field.DefaultValue)) { result.Text = field.DefaultValue; } return(result); }
/// <summary> /// 初始化控件基本信息 /// </summary> /// <param name="field"></param> /// <param name="paramField_Start"></param> /// <param name="param"></param> /// <param name="container"></param> /// <param name="isReadonly"></param> private void IniField(Field field, string paramField_Start, ParamField param, Container container, bool isReadonly) { if (field == null) { return; } string fieldName = paramField_Start + param.FieldName; Caption caption = uiHelper.UiData.GetCaption(param.Caption, param.FieldName); if (string.IsNullOrWhiteSpace(field.ID)) { field.ID = fieldName; } if (string.IsNullOrWhiteSpace(field.Name)) { field.Name = fieldName; } this.IniAllParamField(fieldName, param); field.FieldLabel = caption.Value; field.LabelWidth = 80; field.LabelAlign = LabelAlign.Right; if (isReadonly || param.ReadOnly) { field.ReadOnly = true; } container.Add(field); }
/// <summary> /// 初始化添加项 /// </summary> /// <param name="panel"></param> private void IniInsertPanel(Container panel) { string prefix = UiControlNamePrefix.InsertParam + "c_"; int paramFieldsCount = uiHelper.Insert.Panel.ParamFields.Count; int columncount = uiHelper.Insert.Panel.ColumnCount; if (columncount == 0) { columncount = 1; } int rowcount = paramFieldsCount; double dColumnWidth = 1.0 / columncount; rowcount = rowcount / columncount + 1; for (int i = 0; i < columncount; i++) { Container container = new Container(); container.ID = prefix + i.ToString(); container.Layout = "FormLayout"; container.Padding = 5; container.ColumnWidth = dColumnWidth; for (int j = 0; j < rowcount; j++) { int idx = j * columncount + i; if (idx >= paramFieldsCount) { continue; } ParamField field = uiHelper.Insert.Panel.ParamFields[idx]; IniParamField(UiControlNamePrefix.InsertParam, field, container); } panel.Add(container); } }
/// <summary> /// 初始化 BeginEndDateBox 控件 FieldContainer=DateField+DateField /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="container"></param> /// <param name="isReadonly"></param> private void IniParamBeginEndDateBox(string paramField_Start, ParamField field, Container container, bool isReadonly) { if (field.Type != ParamFieldType.BeginEndDateBox) { return; } Caption caption = uiHelper.UiData.GetCaption(field.Caption, field.FieldName); FieldContainer result = new FieldContainer(); string fieldName = paramField_Start + field.FieldName; this.IniAllParamField(fieldName, field); result.ID = fieldName; result.FieldLabel = caption.Value; result.LabelWidth = 80; result.LabelAlign = LabelAlign.Right; result.Layout = LayoutType.HBox.ToString(); result.Flex = 1; var defaultValue = field.DefaultValue; if (string.IsNullOrWhiteSpace(defaultValue)) { defaultValue = string.Empty; } var values = defaultValue.Split('|'); var dateFields = new List <DateField>(); dateFields.Add(new DateField() { ID = result.ID + UiHelper.BEGIN_DATE_STATE_END, FieldLabel = "起" }); dateFields.Add(new DateField() { ID = result.ID + UiHelper.END_DATE_STATE_END, FieldLabel = "止" }); for (int i = 0; i < dateFields.Count; i++) { var dateField = dateFields[i]; dateField.LabelWidth = 20; dateField.LabelSeparator = string.Empty; dateField.LabelAlign = LabelAlign.Right; dateField.Format = "yyyy-MM-dd"; dateField.Flex = 1; DateTime?dateFieldValue = DateTime.Now; if (values.Length > i) { dateFieldValue = getDefaultDateTime(values[i]); } if (dateFieldValue != null) { dateField.Text = ((DateTime)dateFieldValue).ToString(dateField.Format); } if (isReadonly || field.ReadOnly) { dateField.ReadOnly = true; } result.Items.Add(dateField); } container.Add(result); }
private void IniAllParamField(string fieldName, ParamField field) { var dic = uiHelper.AllParamField; if (dic.ContainsKey(fieldName)) { return; } dic.Add(fieldName, field); }
/// <summary> /// 初始化 BeginEndTextBox 控件 FieldContainer=TextField+TextField /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="container"></param> /// <param name="isReadonly"></param> private void IniParamBeginEndTextBox(string paramField_Start, ParamField field, Container container, bool isReadonly) { if (field.Type != ParamFieldType.BeginEndTextBox) { return; } Caption caption = uiHelper.UiData.GetCaption(field.Caption, field.FieldName); FieldContainer result = new FieldContainer(); string fieldName = paramField_Start + field.FieldName; this.IniAllParamField(fieldName, field); result.ID = fieldName; result.FieldLabel = caption.Value; result.LabelWidth = 80; result.LabelAlign = LabelAlign.Right; result.Layout = LayoutType.HBox.ToString(); result.Flex = 1; var defaultValue = field.DefaultValue; if (string.IsNullOrWhiteSpace(defaultValue)) { defaultValue = string.Empty; } var values = defaultValue.Split('|'); var textFields = new List <TextField>(); textFields.Add(new TextField() { ID = result.ID + UiHelper.BEGIN_TEXT_STATE_END, FieldLabel = "起" }); textFields.Add(new TextField() { ID = result.ID + UiHelper.END_TEXT_STATE_END, FieldLabel = "止" }); for (int i = 0; i < textFields.Count; i++) { var textField = textFields[i]; textField.LabelWidth = 16; textField.LabelSeparator = string.Empty; textField.LabelAlign = LabelAlign.Right; textField.Flex = 1; if ((values.Length > i) && (!string.IsNullOrWhiteSpace(values[i]))) { textField.Text = values[i]; } if (isReadonly || field.ReadOnly) { textField.ReadOnly = true; } result.Items.Add(textField); } container.Add(result); }
/// <summary> /// 初始化Hidden控件 Hidden /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="isReadonly"></param> /// <returns></returns> private Field IniParamHidden(string paramField_Start, ParamField field, bool isReadonly) { if ((field.Type != ParamFieldType.SearchBox) && (field.IsShow)) { return(null); } Hidden result = new Hidden(); if (!string.IsNullOrWhiteSpace(field.DefaultValue)) { result.Text = field.DefaultValue; } return(result); }
/// <summary> /// 初始化修改项 /// </summary> /// <param name="panel"></param> private void IniUpdatePanel(Container panel) { string prefix = UiControlNamePrefix.UpdateParam + "c_"; bool hasPrimarykey = false; foreach (var param in uiHelper.Update.Panel.ParamFields) { if (param.FieldName.Equals(uiHelper.UiData.Crud.Primarykey.FieldName, StringComparison.CurrentCultureIgnoreCase)) { hasPrimarykey = true; break; } } if (!hasPrimarykey) { panel.Add(IniUpdatePrimarykey()); } int paramFieldsCount = uiHelper.Update.Panel.ParamFields.Count; int columncount = uiHelper.Update.Panel.ColumnCount; if (columncount == 0) { columncount = 1; } int rowcount = paramFieldsCount; double dColumnWidth = 1.0 / columncount; rowcount = rowcount / columncount + 1; for (int i = 0; i < columncount; i++) { Container container = new Container(); container.ID = prefix + i.ToString(); container.Layout = "FormLayout"; container.Padding = 5; container.ColumnWidth = dColumnWidth; for (int j = 0; j < rowcount; j++) { int idx = j * columncount + i; if (idx >= paramFieldsCount) { continue; } ParamField field = uiHelper.Update.Panel.ParamFields[idx]; IniParamField(UiControlNamePrefix.UpdateParam, field, container); } panel.Add(container); } }
/// <summary> /// 初始化NumberBox控件 NumberField /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="isReadonly"></param> /// <returns></returns> private Field IniParamNumberBox(string paramField_Start, ParamField field, bool isReadonly) { if (field.Type != ParamFieldType.NumberBox) { return(null); } NumberField result = new NumberField(); if (!string.IsNullOrWhiteSpace(field.DefaultValue)) { int _int = 0; if (int.TryParse(field.DefaultValue, out _int)) { result.Text = _int.ToString(); } } return(result); }
/// <summary> /// 初始化查询项 /// </summary> /// <param name="panel"></param> private void IniSeleteParamPanel(Container panel) { string prefix = UiControlNamePrefix.SelectParam + "c_"; int paramFieldsCount = 3; if (uiHelper.Select.ParamPanel.ColumnCount > 0) { paramFieldsCount = uiHelper.Select.ParamPanel.ColumnCount; } else { if (uiHelper.UiType == UiType.SearchBox) { paramFieldsCount = 1; } } double dColumnWidth = 1.0 / paramFieldsCount; int count = uiHelper.Select.ParamPanel.ParamFields.Count; int rowscount = count / paramFieldsCount + 1; for (int iCol = 0; iCol < paramFieldsCount; iCol++) { Container container = new Container(); container.ID = prefix + iCol.ToString(); container.Layout = "FormLayout"; container.Padding = 5; container.ColumnWidth = dColumnWidth; for (int iRow = 0; iRow < rowscount; iRow++) { int i = iRow * paramFieldsCount + iCol; if (i >= uiHelper.Select.ParamPanel.ParamFields.Count) { continue; } ParamField field = uiHelper.Select.ParamPanel.ParamFields[i]; IniParamField(UiControlNamePrefix.SelectParam, field, container); } if (container.Items.Count > 0) { panel.Add(container); } } }
/// <summary> /// 初始化DateField控件 DateField /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="isReadonly"></param> /// <returns></returns> private Field IniParamDateField(string paramField_Start, ParamField field, bool isReadonly) { if (field.Type != ParamFieldType.DateBox) { return(null); } DateField result = new DateField(); var date = getDefaultDateTime(field.DefaultValue); if (date != null) { result.Text = ((DateTime)date).ToString("yyyy-MM-dd"); } result.Format = "yyyy-MM-dd"; if (isReadonly || field.ReadOnly) { result.ReadOnly = true; } return(result); }
private object getValue(string key, string value) { if (string.IsNullOrWhiteSpace(value)) { return(value); } object result = value; ParamField field = null; if (this.uiHelper.AllParamField.TryGetValue(key, out field)) { #region ParamFieldType.DateBox if (field.Type == ParamFieldType.DateBox) { DateTime dtResult = new DateTime(); if (DateTime.TryParse(value, out dtResult)) { return(dtResult); } else { return(null); } } #endregion #region ParamField.IsMult if (field.IsMult) { if (field.Type == ParamFieldType.TextBox) { result = result.ToString().Replace("\r\n", "<br />").Replace("\r", "<br />").Replace("\n", "<br />"); } } #endregion } return(result); }
/// <summary> /// 初始化查询 主详细信息 /// </summary> /// <param name="grid"></param> /// <param name="model"></param> public void IniSelectMainDetailContainer(Container panel) { #region 初始化显示字段 string prefix = UiControlNamePrefix.SelectMainDetail; int columncount = 1; if (uiHelper.Select.MainDetail.ColumnCount > 0) { columncount = uiHelper.Select.MainDetail.ColumnCount; } double dColumnWidth = 1.0 / columncount; int count = uiHelper.Select.MainDetail.ParamFields.Count; int rowscount = count / columncount + 1; for (int iCol = 0; iCol < columncount; iCol++) { Container container = new Container(); container.ID = prefix + "Container_" + iCol.ToString(); container.Layout = "FormLayout"; container.Padding = 5; container.ColumnWidth = dColumnWidth; for (int iRow = 0; iRow < rowscount; iRow++) { int i = iRow * columncount + iCol; if (i >= uiHelper.Select.MainDetail.ParamFields.Count) { continue; } ParamField field = uiHelper.Select.MainDetail.ParamFields[i]; IniParamField(prefix, field, container, true); } if (container.Items.Count > 0) { panel.Add(container); } } #endregion }
/// <summary> /// 初始化控件 /// </summary> /// <param name="prefix"></param> /// <param name="field"></param> /// <param name="container"></param> /// <param name="isReadonly"></param> private void IniParamField(string prefix, ParamField field, Container container, bool isReadonly) { if (!field.IsShow) { IniField(IniParamHidden(prefix, field, isReadonly), prefix, field, container, isReadonly); return; } IniField(IniParamTextBox(prefix, field, isReadonly), prefix, field, container, isReadonly); IniField(IniParamComboBox(prefix, field, isReadonly), prefix, field, container, isReadonly); IniField(IniParamSearchBox(prefix, field, isReadonly), prefix, field, container, isReadonly); IniField(IniParamHidden(prefix, field, isReadonly), prefix, field, container, isReadonly); IniField(IniParamNumberBox(prefix, field, isReadonly), prefix, field, container, isReadonly); IniField(IniParamDateField(prefix, field, isReadonly), prefix, field, container, isReadonly); IniParamDateTimeBox(prefix, field, container, isReadonly); IniParamBeginEndDateBox(prefix, field, container, isReadonly); IniParamBeginEndTextBox(prefix, field, container, isReadonly); }
private void RefreshParamFieldData(string paramField_Start, ParamField field, Dictionary <string, string> values) { StringBuilder js = new StringBuilder(); string value = getParamFieldDataValue(field.FieldName, values); switch (field.Type) { case ParamFieldType.TextBox: { if (!field.IsMult) { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"" + value + "\");"); } else { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"" + value.Replace("\r", "\\r").Replace("\n", "\\n") + "\");"); } break; } case ParamFieldType.ComboBox: { if (!string.IsNullOrWhiteSpace(value)) { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"" + value + "\");"); } else if (field.Nullable) { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"\");"); } break; } case ParamFieldType.SearchBox: { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"" + value + "\");"); value = getParamFieldDataValue(field.FieldName + "_TriggerField", values); js.Append("App.").Append(paramField_Start + field.FieldName + "_TriggerField.setValue(\"" + value + "\");"); break; } case ParamFieldType.DateBox: { DateTime dtValue = DateTime.Now; if (DateTime.TryParse(value, out dtValue)) { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"" + dtValue.ToString("yyyy-MM-dd") + "\");"); } else { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"\");"); } break; } case ParamFieldType.DateTimeBox: { DateTime dtValue = DateTime.Now; if (DateTime.TryParse(value, out dtValue)) { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.DATE_DATETIME_STATE_END + ".setValue(\"" + dtValue.ToString("yyyy-MM-dd") + "\");"); js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.TIME_DATETIME_STATE_END + ".setValue(\"" + dtValue.ToString("HH:mm:ss") + "\");"); } else { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.DATE_DATETIME_STATE_END + ".setValue(\"\");"); js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.TIME_DATETIME_STATE_END + ".setValue(\"\");"); } break; } case ParamFieldType.BeginEndDateBox: { var strValue = getParamFieldDataValue(field.FieldName + UiHelper.BEGIN_DATE_STATE_END, values); DateTime dtValue = DateTime.Now; if (DateTime.TryParse(strValue, out dtValue)) { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.BEGIN_DATE_STATE_END + ".setValue(\"" + dtValue.ToString("yyyy-MM-dd") + "\");"); } else { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.BEGIN_DATE_STATE_END + ".setValue(\"\");"); } strValue = getParamFieldDataValue(field.FieldName + UiHelper.END_DATE_STATE_END, values); dtValue = DateTime.Now; if (DateTime.TryParse(strValue, out dtValue)) { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.END_DATE_STATE_END + ".setValue(\"" + dtValue.ToString("yyyy-MM-dd") + "\");"); } else { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.END_DATE_STATE_END + ".setValue(\"\");"); } break; } case ParamFieldType.BeginEndTextBox: { var strValue = getParamFieldDataValue(field.FieldName + UiHelper.BEGIN_TEXT_STATE_END, values); if (string.IsNullOrWhiteSpace(strValue)) { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.BEGIN_TEXT_STATE_END + ".setValue(\"\");"); } else { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.BEGIN_TEXT_STATE_END + ".setValue(\"" + strValue + "\");"); } strValue = getParamFieldDataValue(field.FieldName + UiHelper.END_TEXT_STATE_END, values); if (string.IsNullOrWhiteSpace(strValue)) { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.END_TEXT_STATE_END + ".setValue(\"\");"); } else { js.Append("App.").Append(paramField_Start + field.FieldName + UiHelper.END_TEXT_STATE_END + ".setValue(\"" + strValue + "\");"); } break; } default: { js.Append("App.").Append(paramField_Start + field.FieldName + ".setValue(\"" + value + "\");"); break; } } X.Js.AddScript(js.ToString()); }
/// <summary> /// 初始化 DateTimeBox 控件 FieldContainer=DateField+TimeField /// </summary> /// <param name="paramField_Start"></param> /// <param name="field"></param> /// <param name="container"></param> /// <param name="isReadonly"></param> private void IniParamDateTimeBox(string paramField_Start, ParamField field, Container container, bool isReadonly) { if (field.Type != ParamFieldType.DateTimeBox) { return; } Caption caption = uiHelper.UiData.GetCaption(field.Caption, field.FieldName); FieldContainer result = new FieldContainer(); string fieldName = paramField_Start + field.FieldName; this.IniAllParamField(fieldName, field); result.ID = fieldName; result.FieldLabel = caption.Value; result.LabelWidth = 80; result.LabelAlign = LabelAlign.Right; result.Layout = LayoutType.HBox.ToString(); result.Flex = 1; var defaultValue = field.DefaultValue; if (string.IsNullOrWhiteSpace(defaultValue)) { defaultValue = DateTime.Now.ToString("yyyy-MM-dd"); } DateTime?date = DateTime.Now; var values = defaultValue.Split('|'); if (values.Length > 0) { date = getDefaultDateTime(values[0]); } string dtDate = string.Empty; if (date != null) { dtDate = ((DateTime)date).ToString("yyyy-MM-dd"); } string dtTime = string.Empty; if (values.Length > 1) { dtTime = values[1]; } if (string.IsNullOrWhiteSpace(dtTime)) { dtTime = "08:00:00"; } DateField dateField = new DateField(); dateField.ID = result.ID + UiHelper.DATE_DATETIME_STATE_END; dateField.Format = "yyyy-MM-dd"; if (!string.IsNullOrWhiteSpace(dtDate)) { dateField.Text = dtDate; } dateField.Flex = 1; TimeField timeField = new TimeField(); timeField.ID = result.ID + UiHelper.TIME_DATETIME_STATE_END; if (!string.IsNullOrWhiteSpace(dtDate)) { timeField.Text = dtTime; } timeField.Increment = 30; timeField.Format = "HH:mm:ss"; timeField.Flex = 1; if (isReadonly || field.ReadOnly) { dateField.ReadOnly = true; timeField.ReadOnly = true; } result.Items.Add(dateField); result.Items.Add(timeField); container.Add(result); }
private void IniParamField(string prefix, ParamField field, Container container) { IniParamField(prefix, field, container, false); }