//获取分组字段的排序信息 private bool getSortInfo() { bool b = checkedSortInfo(); if (!b) { return(false); } foreach (RptFieldInfo rpt in _FieldList) { rpt.SetSort = false; } int orderIndex = 0; for (int i = 0; i < MAX_SORT_FIELD; i++) { ComboBox box = _CobSort[i] as ComboBox; if (box.SelectedIndex > 0) { RptFieldInfo info = box.SelectedItem as RptFieldInfo; if (info.IsGroup) { Button but = _ButSort[i] as Button; info.SetSort = true; info.IsAscending = but.Text == ASC_TEXT; info.OrderIndex = orderIndex++; } } } return(true); }
//获取组级分隔设置的信息 private void getDivideInfo() { foreach (ComboBox box in _CobDivides) { if (box.Tag != null) { RptFieldInfo info = box.Tag as RptFieldInfo; info.DivideName = box.Text; } } }
private void moveFromGroup() { int seIndex = lstGroupFields.SelectedIndex; if (seIndex > -1) { RptFieldInfo field = lstGroupFields.SelectedItem as RptFieldInfo; field.IsGroup = false; lstGroupFields.Items.Remove(field); lstFields.Items.Add(field); setSelectedIndex(seIndex, lstGroupFields); } }
// 升序较器 int IComparer.Compare(Object x, Object y) { RptFieldInfo xObj = x as RptFieldInfo; RptFieldInfo yObj = y as RptFieldInfo; if (xObj != null && yObj != null) { return((new CaseInsensitiveComparer()).Compare(xObj.OrderIndex, yObj.OrderIndex)); } else { return(0); } }
//先后顺序的调整 private void sortItem(bool pIsNext) { int selIndex = lstGroupFields.SelectedIndex; if ((!pIsNext & selIndex < 1) || (pIsNext & selIndex == lstGroupFields.Items.Count - 1)) { return; } int insert = pIsNext == false?selIndex - 1:selIndex + 1; RptFieldInfo info = lstGroupFields.SelectedItem as RptFieldInfo; lstGroupFields.Items.RemoveAt(selIndex); lstGroupFields.Items.Insert(insert, info); lstGroupFields.SelectedIndex = insert; }
//增加间隔的描述信息到下拉列表框中 private void addToCobDivides(ComboBox pBox, RptFieldInfo pFieldInfo) { string[] vals = GroupDivide.GetDivideTextByType(pFieldInfo.DataType); pBox.Items.Clear(); foreach (string val in vals) { pBox.Items.Add(val); } if (pFieldInfo.DivideName != null && pFieldInfo.DivideName != "") { pBox.Text = pFieldInfo.DivideName; } else { pBox.SelectedIndex = 0; } }
//分组字段选择控制 private void moveToGroup() { int seIndex = lstFields.SelectedIndex; if (seIndex > -1) { RptFieldInfo field = lstFields.SelectedItem as RptFieldInfo; field.IsGroup = true; field.OrderIndex = lstGroupFields.Items.Count; lstFields.Items.Remove(field); lstGroupFields.Items.Add(field); setSelectedIndex(seIndex, lstFields); field.DivideName = ""; field.IsAscending = true; } }