|
|
|
|
|
// <copyright file="FrmDataFormula.cs" company="jindongfang">
|
|
|
|
|
|
// Copyright (c) jindongfang. All rights reserved.
|
|
|
|
|
|
// </copyright>
|
|
|
|
|
|
|
|
|
|
|
|
using DevExpress.XtraEditors;
|
|
|
|
|
|
using DevExpress.XtraEditors.Controls;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
using static WellWorkDataUI.FrmDataViewer;
|
|
|
|
|
|
|
|
|
|
|
|
namespace WellWorkDataUI
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// FrmDataFormula
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public partial class FrmDataFormula : DevExpress.XtraEditors.XtraForm
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// FormulaData
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public FormulaData FormulaData { get; private set; }
|
|
|
|
|
|
private TextEdit currentEdit;
|
|
|
|
|
|
private int selectionStart = 0;
|
|
|
|
|
|
|
|
|
|
|
|
private TextEdit CurrentEdit => this.currentEdit ?? this.textFormula1;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Initializes a new instance of the <see cref="FrmDataFormula"/> class.
|
|
|
|
|
|
/// FrmDataFormula
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="formulaData">formulaData</param>
|
|
|
|
|
|
public FrmDataFormula(FormulaData formulaData)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.InitializeComponent();
|
|
|
|
|
|
this.FormulaData = formulaData;
|
|
|
|
|
|
|
|
|
|
|
|
this.listBoxVariable.DataSource = formulaData.ColumnList;
|
|
|
|
|
|
|
|
|
|
|
|
foreach (var item in formulaData.ColumnList)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.comboFormula1.Properties.Items.Add(new ImageComboBoxItem(item.Caption, item));
|
|
|
|
|
|
this.comboFormula2.Properties.Items.Add(new ImageComboBoxItem(item.Caption, item));
|
|
|
|
|
|
this.comboFormula3.Properties.Items.Add(new ImageComboBoxItem(item.Caption, item));
|
|
|
|
|
|
this.comboFormula4.Properties.Items.Add(new ImageComboBoxItem(item.Caption, item));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
this.FormulaData = formulaData;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void textEdit_Enter(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.currentEdit = sender as TextEdit;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void textEdit_Leave(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.selectionStart = (sender as TextEdit).SelectionStart;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void listBoxOp_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.listBoxOp.HotItemIndex >= 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
var op = this.listBoxOp.Items[this.listBoxOp.HotItemIndex].ToString();
|
|
|
|
|
|
this.CurrentEdit.Text = this.CurrentEdit.Text.Insert(this.selectionStart, op);
|
|
|
|
|
|
this.CurrentEdit.Focus();
|
|
|
|
|
|
this.selectionStart += op.Length;
|
|
|
|
|
|
this.CurrentEdit.SelectionStart = this.selectionStart;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void listBoxVariable_CustomItemDisplayText(object sender, CustomItemDisplayTextEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (e.Item is ColumnData cd)
|
|
|
|
|
|
{
|
|
|
|
|
|
e.DisplayText = $"{cd.Variable}: {cd.Caption}";
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void listBoxVariable_MouseDoubleClick(object sender, MouseEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (this.listBoxVariable.HotItemIndex >= 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
var cd = this.listBoxVariable.GetItem(this.listBoxVariable.HotItemIndex) as ColumnData;
|
|
|
|
|
|
this.CurrentEdit.Text = this.CurrentEdit.Text.Insert(this.selectionStart, cd.Variable);
|
|
|
|
|
|
this.CurrentEdit.Focus();
|
|
|
|
|
|
this.selectionStart += cd.Variable.Length;
|
|
|
|
|
|
this.CurrentEdit.SelectionStart = this.selectionStart;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void comboFormula_ButtonClick(object sender, ButtonPressedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (e.Button.Kind == ButtonPredefines.Delete)
|
|
|
|
|
|
{
|
|
|
|
|
|
(sender as ImageComboBoxEdit).EditValue = null;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void btnCancel_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Close();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void btnOK_Click(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.CaclFormula(this.comboFormula1, this.textFormula1);
|
|
|
|
|
|
this.CaclFormula(this.comboFormula2, this.textFormula2);
|
|
|
|
|
|
this.CaclFormula(this.comboFormula3, this.textFormula3);
|
|
|
|
|
|
this.CaclFormula(this.comboFormula4, this.textFormula4);
|
|
|
|
|
|
|
|
|
|
|
|
this.FormulaData.RefreshView();
|
|
|
|
|
|
|
|
|
|
|
|
MessageBox.Show("计算完成!");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void CaclFormula(ImageComboBoxEdit combo, TextEdit text)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (combo.EditValue is ColumnData cd)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.FormulaData.CalcFormula(cd, text.Text, this.FormulaData.ColumnList);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|