private void Btn_Enter_Click(object sender, RoutedEventArgs e) { String[] infix; infix = TBK_display.Text.Split(' '); TBK_Postorder.Text = String.Join("", InfixToPostfix(infix)); TBK_Preorder.Text = String.Join("", InfixToPrefix(infix)); //rev_postfix = InfixToPostfix(infix); //Array.Reverse(rev_postfix); System.Data.DataTable dt = new System.Data.DataTable(); var v = dt.Compute(TBK_display.Text, " "); TBK_Sol_Dec.Text = v.ToString(); TBK_Sol_Bin.Text = Convert.ToString(Convert.ToInt32(v), 2); //TBK_Preorder.Text = String.Join("", InfixToPrefix(infix)); //TBK_Preorder.Text = String.Join("", TBK_display.Text.Split(' ')); }
protected override DataTable UpdateDatasource(DataTable dtSource) { dtSource.DefaultView.RowFilter = "timeband='Average CPP'"; var dtAvgView = dtSource.DefaultView.ToTable().DefaultView; dtAvgView.Sort = "cpp desc"; DataTable dtKenhPhat = dtAvgView.ToTable(true, "kenh_phat","kenh_phat_name"); dtSource.DefaultView.RowFilter = ""; var dtRpt = dtSource.DefaultView.ToTable(true,ColGroupType, ColTimeband); dtRpt.PrimaryKey = new[] {dtRpt.Columns[ColGroupType], dtRpt.Columns[ColTimeband] }; var minDate = (DateTime)dtSource.Compute("min(ngay_phat)", ""); var maxDate = (DateTime)dtSource.Compute("max(ngay_phat)", ""); var isSameYear = minDate.Year == maxDate.Year; foreach (DataRow rowKenhPhat in dtKenhPhat.Rows) { var idKenh = rowKenhPhat["kenh_phat"]; dtAvgView.RowFilter = "kenh_phat=" + idKenh; dtAvgView.Sort = "ngay_phat asc"; var band = AddBand(rowKenhPhat["kenh_phat_name"].ToString(), idKenh); var dtThu = dtAvgView.ToTable(true, "ngay_phat"); int index = 1; foreach (DataRow row in dtThu.Rows) { var date = (DateTime) row["ngay_phat"]; dtSource.DefaultView.RowFilter = string.Format("KENH_PHAT={0} and ngay_phat='{1}'", idKenh, date); var dtByKenhAndMonth = dtSource.DefaultView.ToTable(true,ColGroupType,ColTimeband, "CPP"); var fiedName = string.Format("CPP_{0}_{1}_{2}", idKenh, date.Year, date.Month); dtByKenhAndMonth.Columns["CPP"].ColumnName = fiedName; dtRpt.Merge(dtByKenhAndMonth); var col = new BandedGridColumn() { Name = string.Format("Col{0}",fiedName), Caption =string.Format("Tháng {0}{1}", date.Month, (isSameYear?"":"/"+date.Year)), Visible = true, VisibleIndex = index }; col.OptionsColumn.AllowMove = false; col.OptionsColumn.AllowSort = DefaultBoolean.False; GridViewDetail.Columns.Add(col); band.Columns.Add(col); HelpGridColumn.CotCalcEdit(col, fiedName, 0); index++; } } var dss = new DataSet(); dss.Tables.Add(dtRpt); return dtRpt; }
protected void Page_Load(object sender, EventArgs e) { #region Initialize Values CheckSchoolAdminSession(); strSchoolID = AdminInfo["SchoolID"].ToString(); GetCPSchoolInfo(strSchoolID); StrictNoCache = false; HelpQueryStringVars = "&HelpSHID=52&CP=true"; #endregion Initialize Values #region Properties For The School Base Class TitleBar = CareerCruisingWeb.CCLib.Common.CP.TitleMain; SubTitleBar = TextCode(8538); AddSubNavBarLink("Course Planner Reports", "CP_Reports.aspx"); AddSubNavBarLink("College Course Forecast Summary", ""); HasLeftButtons = true; HelpQueryStringVars = "&HelpSHID=52&CP=true"; #endregion Properties For The School Base Class intYear = (DateTime.Now.Month > 8) ? DateTime.Now.Year + 1 : DateTime.Now.Year; #region Initiate repeater string strSQL = String.Format(@" DECLARE @CurrentYear INT SET @CurrentYear = CASE WHEN MONTH(GETDATE()) > 8 THEN YEAR(GETDATE()) ELSE YEAR(GETDATE()) - 1 END SELECT CollegeID, College, CourseCode, CourseName, SUM(CASE WHEN @CurrentYear + 1 = [Year] THEN TotalCourses ELSE 0 END) AS '1', SUM(CASE WHEN @CurrentYear + 2 = [Year] THEN TotalCourses ELSE 0 END) AS '2', SUM(CASE WHEN @CurrentYear + 3 = [Year] THEN TotalCourses ELSE 0 END) AS '3', SUM(CASE WHEN @CurrentYear + 4 = [Year] THEN TotalCourses ELSE 0 END) AS '4' FROM CP_CollegeCourseSummary WHERE HighSchoolID={0} GROUP BY CollegeID, College, CourseCode, CourseName ORDER BY College, CourseName ", strSchoolID); //Response.Write(strSQL); //Response.End(); dt = CareerCruisingWeb.CCLib.Common.DataAccess.GetDataTable(strSQL); rptData.DataSource = dt; rptData.DataBind(); #endregion str01 = dt.Compute("Sum([1])", "").ToString(); str02 = dt.Compute("Sum([2])", "").ToString(); str03 = dt.Compute("Sum([3])", "").ToString(); str04 = dt.Compute("Sum([4])", "").ToString(); strChartData = String.Format(@" ['{0}', {1}], ['{2}', {3}], ['{4}', {5}], ['{6}', {7}] ", intYear, str01, intYear + 1, str02, intYear + 2, str03, intYear + 3, str04); }
// alternate constructor of revenue report, sets the given information to the report public revenueReport(string companyName, string contactName, string phoneNumber, string email, DataTable testTable, DataTable productsTable) { InitializeComponent(); companyNameBox.Text = companyName; contactNameBox.Text = contactName; phoneNumberBox.Text = phoneNumber; emailbox.Text = email; // sums the revenue grandTotalBox.Text = string.Format("{0:C2}", testTable.Compute("SUM(TOTAL)", "")); if (testTable.Columns.Contains("PREV_TOTAL")) { grandTotalPrevBox.Text = string.Format("{0:C2}", testTable.Compute("SUM(PREV_TOTAL)", "")); } testsGrid.ItemsSource = testTable.DefaultView; productsGrid.ItemsSource = productsTable.DefaultView; }
public static void GetMins(DataTable dataTable, ref Stats stats) { if (dataTable == null || stats == null) return; foreach (DataColumn dataColumn in dataTable.Columns) stats.Firsts.AddData(dataTable.Compute( String.Format("Min({0})", dataColumn.ColumnName), String.Empty)); }
public static bool Eval(this string ins, out string res) // true, res = eval. false, res = error { System.Data.DataTable dt = new System.Data.DataTable(); res = ""; try { var v = dt.Compute(ins, ""); System.Type t = v.GetType(); //System.Diagnostics.Debug.WriteLine("Type return is " + t.ToString()); if (v is double) res = ((double)v).ToString(System.Globalization.CultureInfo.InvariantCulture); else if (v is System.Decimal) res = ((System.Decimal)v).ToString(System.Globalization.CultureInfo.InvariantCulture); else if (v is int) res = ((int)v).ToString(System.Globalization.CultureInfo.InvariantCulture); else { res = "Expression is Not A Number"; return false; } return true; } catch { res = "Expression does not evaluate"; return false; } }
private string CaculateColumn(HttpContext context) { string RuleFieldName = context.Request.Params["RuleFieldName"]; string FieldValue = context.Request.Params["FieldValue"]; string RuleDetail = context.Request.Params["RuleDetail"]; string RuleFieldDBType = context.Request.Params["RuleFieldDBType"]; string[] splitStr=new string[1]; splitStr[0]="|"; DataTable dt = new DataTable(); if (RuleFieldDBType.ToUpper() == "INT") dt.Columns.Add(RuleFieldName,typeof(System.Int32)); else if (RuleFieldDBType.ToUpper() == "FLOAT") dt.Columns.Add(RuleFieldName,typeof(System.Double)); else if (RuleFieldDBType.ToUpper() == "DOUBLE") dt.Columns.Add(RuleFieldName,typeof(System.Double)); else if (RuleFieldDBType.ToUpper() == "NUMRIC") dt.Columns.Add(RuleFieldName,typeof(System.Double)); else dt.Columns.Add(RuleFieldName, typeof(System.String)); string[] FieldValueArray=FieldValue.Split(splitStr, StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < FieldValueArray.Length; i++) { DataRow row = dt.NewRow(); row[RuleFieldName] = FieldValueArray[i]; dt.Rows.Add(row); } return Convert.ToString(dt.Compute(RuleDetail,"1=1")); }
private void btnQuery_Click(object sender, EventArgs e) { string id = ""; if (cmbType.SelectedValue.ToString() != null) { id += " and c.typecode='" + cmbType.SelectedValue.ToString() + "'"; } if (cmbBatch.Items.Count > 0) { if (cmbBatch.SelectedValue.ToString() != null) { id += " and b.batchid='" + cmbBatch.SelectedValue.ToString() + "'"; } } else { MessageBox.Show("请选择批次!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } dtInfo = B_btdj.Find(id).Tables[0]; if (dtInfo.Rows.Count == 0) { MessageBox.Show("未找到数据"); return; } else { label11.Text = dtInfo.Rows.Count.ToString(); label13.Text = Convert.ToDouble(dtInfo.Compute("Sum(btje)", null)).ToString(); dgvbtdj.DataSource = dtInfo; } }
private object Eval(List <Token> tokens) { if (tokens.Count <= 1) { return(Parse(tokens[0].content)); } else { List <string> expressions = new List <string>(); foreach (var token in tokens) { expressions.Add(GetExpression(token)); } string expression = String.Join(" ", expressions); var table = new System.Data.DataTable(); try { var value = table.Compute(expression, string.Empty); return(value); } catch (SyntaxErrorException e) { Debug.Log($"-- expression: {expression}"); throw e; } } }
private static object Comput() { var table = new DataTable(); var colId = new DataColumn("id", typeof(System.String)); table.Columns.Add(colId); var colPrice = new DataColumn("price", typeof(System.Decimal)); table.Columns.Add(colPrice); var colQuantity = new DataColumn("quantity", typeof(System.Int32)); table.Columns.Add(colQuantity); var tr = table.NewRow(); tr["id"] = "n001"; tr["price"] = 1.5M; tr["quantity"] = 2; table.Rows.Add(tr); Object value = null; try { value = table.Compute("Max(price)", "id='n001'"); } catch (Exception ex) { } return value; }
public static string Canhbaotamung(KcbLuotkham objLuotkham, DataSet dsData, DataTable dtTamung) { try { decimal Tong_CLS = Utility.DecimaltoDbnull(dsData.Tables[0].Compute("SUM(TT_BN)", "1=1")); decimal Tong_Thuoc = Utility.DecimaltoDbnull(dsData.Tables[1].Compute("SUM(TT_BN)", "1=1")); decimal Tong_VTTH = Utility.DecimaltoDbnull(dsData.Tables[2].Compute("SUM(TT_BN)", "1=1")); decimal Tong_Giuong = Utility.DecimaltoDbnull(dsData.Tables[3].Compute("SUM(TT_BN)", "1=1")); decimal Tong_Goi = Utility.DecimaltoDbnull(dsData.Tables[4].Compute("SUM(TT_BN)", "1=1")); decimal Tong_Tamung = Utility.DecimaltoDbnull(dtTamung.Compute("SUM(so_tien)", "1=1")); decimal Tong_chiphi = Tong_CLS + Tong_Thuoc + Tong_Giuong + Tong_Goi + Tong_VTTH; Decimal Gioihancanhbao = Utility.DecimaltoDbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("NOITRU_GIOIHAN_NOPTIENTAMUNG", "0", true), 0); if (Tong_Tamung - Tong_chiphi > Gioihancanhbao)//OK { return ""; } string s1 = String.Format(Utility.FormatDecimal(), Gioihancanhbao); string s2 = String.Format(Utility.FormatDecimal(), String.Format(Utility.FormatDecimal(), Convert.ToDecimal((Tong_Tamung - Tong_chiphi).ToString()))); string s3 = String.Format(Utility.FormatDecimal(), Gioihancanhbao - (Tong_Tamung - Tong_chiphi)); string result = string.Format("Giới hạn cảnh báo <={0}. Hiện tại, Tổng tạm ứng - Tổng chi phí = {1}(Cần đóng thêm: {2})", s1, s2,s3); return result; } catch (Exception ex) { return ex.Message; } }
public DataTable Normalize(DataTable table) { foreach(DataColumn col in table.Columns) { double max = (double)table.Compute("MAX(" + col.ColumnName + ")",""); double min = (double)table.Compute("MIN(" + col.ColumnName + ")", ""); foreach (DataRow row in table.Rows) { double a = double.Parse(row[col].ToString()) - min; double b = max - min; if (b != 0 ) row[col] = Math.Round(a/b,3); } } return table; }
//Hàm dùng để tính phương sai của một cột public static decimal TinhDoLechChuan(DataTable dt, String colName) { Double phuongSai = 0; Double doLechChuan = 0; Double tienPhuongSai = 0; Double soLuongDuLieu = Convert.ToDouble(dt.Compute("count(" + colName + ")", string.Empty)); Double giaTriTrungTinh = Convert.ToDouble(dt.Compute("avg(" + colName + ")", string.Empty)); giaTriTrungTinh = Math.Round(giaTriTrungTinh, 3); int colIndex = dt.Columns.IndexOf(colName); foreach (DataRow dtRow in dt.Rows) { tienPhuongSai = tienPhuongSai + Math.Round(Math.Pow((Convert.ToDouble(dtRow[colIndex]) - giaTriTrungTinh), 2), 3); } phuongSai = tienPhuongSai / (soLuongDuLieu - 1); doLechChuan = Math.Round(Math.Sqrt(phuongSai), 2); return Convert.ToDecimal(doLechChuan); }
public static DataTable Calculate(DataTable source, DataTable template, string formulaColumn, string[] calculateColumns) { //构造目的表 DataTable result = template.Copy(); foreach (string item in calculateColumns) { DataColumn column = new DataColumn(item, source.Columns[item].DataType); result.Columns.Add(column); } //END foreach (DataRow dr in result.Rows) { //公式 string formula = dr[formulaColumn].ToString().Trim(); //拆分公式 variableList中存储各个因式 IEnumerable<string> factorList = Regex.Split(formula, @"[+\-*/()]+") .Except((IEnumerable<string>)new string[] { "" }) .Select(p => p = Regex.Replace(p, @"^([0-9]+)([\.]([0-9]+))?$", "")) .Except((IEnumerable<string>)new string[] { "" }); //m_dictionary存储各个因式及其对应的行记录 IDictionary<string, DataRow> m_dictionary = new Dictionary<string, DataRow>(); foreach (string item in factorList) { //因式(factor) string factor = item.TrimStart('[').TrimEnd(']'); DataRow[] rows = source.Select("VariableId='" + factor + "'"); if (1 == rows.Count()) { m_dictionary.Add(factor, rows[0]); } else if (0 == rows.Count()) { m_dictionary.Add(factor, source.NewRow());//没有找到则添加一个空行 } else { throw new Exception(item + "对应" + rows.Count() + "条数据!"); } } ///item当前要计算的列名 foreach (string item in calculateColumns) { try { string tempFormulaValue = formula; foreach (string node in m_dictionary.Keys.ToArray()) { tempFormulaValue = tempFormulaValue.Replace("[" + node + "]", m_dictionary[node][item].ToString()); } dr[item] = Convert.ToDecimal(source.Compute(tempFormulaValue, "true")); } catch { dr[item] = 0; }; } } return result; }
/// <summary> /// Calc from string /// </summary> /// <param name="input">Input</param> /// <returns>Returns math calc or Nan if fails</returns> public static double Calc(string input) { using (DataTable dt = new DataTable()) { try { return Convert.ToDouble(dt.Compute(input, "")); } catch { } } return double.NaN; }
private int GetSumField(DataTable dt, string field) { object result = dt.Compute("SUM(" + field + ")", ""); if (result == System.DBNull.Value) return 0; return Convert.ToInt32(result); }
public DataTable SummaryTotal(DataTable summary) { DataTable total = new DataTable(); total.Rows.Add(); total.Columns.Add("name", typeof(string)); total.Columns.Add("next_payment", typeof(decimal)); total.Rows[0]["next_payment"] = summary.Compute(string.Format("SUM({0})", "next_payment"), null); return total; }
/// <summary> /// 统计变形词汇表中的各级词汇数量 /// </summary> /// <param name="dt"></param> /// <param name="maxIndex"></param> /// <returns></returns> public static int[] WordProfiles(DataTable dt, int maxIndex) { int[] profileNo = new int[maxIndex + 2]; //各类词汇数目统计 int n1 = int.Parse(dt.Compute("Count(level)", "level = '-1'").ToString()); profileNo[0] = n1; int k = 0; for (int i = 0; i <= maxIndex; i++) { profileNo[i] = int.Parse(dt.Compute("Count(level)", "level= '" + i.ToString() + "'").ToString());//选定级别内的词汇//level<=maxIndex } for (int i = 3; i > maxIndex; i--) { k = k + int.Parse(dt.Compute("Count(level)", "level= '" + i.ToString() + "'").ToString()); } profileNo[0] = profileNo[0] + k; //超纲词汇数 profileNo[maxIndex + 1] = int.Parse(dt.Compute("Count(level)", "level = '-1'").ToString()); //未处理词汇数 return(profileNo); }
public System.Data.DataTable GenrateDesignBOQDatatableSummary(System.Data.DataTable dtSourceBOQ) { DataTable tblSummary = new DataTable(); try { foreach (DataColumn col in dtSourceBOQ.Columns) { tblSummary.Columns.Add(new DataColumn() { ColumnName = col.ColumnName, DataType = col.DataType }); } DataRow dr = tblSummary.NewRow(); dr[COL_ITEM_DESCRIPTION] = string.Format("Summary/Total: ({0}) items", dtSourceBOQ.Rows.Count); foreach (DataColumn col in dtSourceBOQ.Columns) { if (col.DataType == typeof(int)) { if (col.ColumnName != COL_ITEM_ID && col.ColumnName != COL_UOM_ID) { string strExpression = string.Format("SUM({0})", col.ColumnName); string strFilter = string.Format(" {0} Is Not Null", col.ColumnName); if (dtSourceBOQ.Compute(strExpression, strFilter) != DBNull.Value) { int sum = Convert.ToInt32(dtSourceBOQ.Compute(strExpression, strFilter)); dr[col.ColumnName] = sum; } } } } tblSummary.Rows.Add(dr); } catch (Exception ex) { MessageBox.Show(ex.Message, "ServiceSalesEnquiryBOQ::GenrateDesignBOQDatatableSummary", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(tblSummary); }
private void load_data() { if (Session["GioHang"] == null || (Session["GioHang"] as DataTable).Rows.Count==0) { Response.Redirect("GioHangRong.aspx"); } tbGioHang = (DataTable)Session["GioHang"]; string strnumber = tbGioHang.Compute("Sum(TongTien)", "").ToString(); rpGioHang.DataSource = tbGioHang; rpGioHang.DataBind(); }
String Eval(String expression) { try { System.Data.DataTable table = new System.Data.DataTable(); return(Convert.ToString(table.Compute(expression, String.Empty))); } catch (Exception) { return(""); } }
private void BindGrid() { string Bindsql = sql + " group by dpone.Name,es.SubjectName,DATENAME(year,pe.ExamEndDate)"; //数据加载及绑定 System.Data.DataSet ds = ZAJCZN.MIS.Helpers.DbHelperSQL.Query(Bindsql); System.Data.DataTable data = ds.Tables[0]; System.Data.DataRow dr = data.NewRow(); dr["CityName"] = "合计"; dr["SubjectName"] = ""; dr["TopAvgScore"] = data.Compute("AVG(TopAvgScore)", "true"); dr["NowAvgScore"] = data.Compute("AVG(NowAvgScore)", "true"); data.Rows.Add(dr); Grid1.RecordCount = 0; //int pageIndexMax = (Grid1.PageIndex + 1) * Grid1.PageSize; //int pageIndexmin = pageIndexMax - Grid1.PageSize; Grid1.DataSource = data;//data.Select("" + pageIndexmin + " < RowNum and RowNum <=" + pageIndexMax + ""); Grid1.DataBind(); }
public Statistics(DataTable dt, string col) { if (dt.Rows.Count == 0) return; //overall statistic try { _sum = Convert.ToDouble(dt.Compute(string.Format("Sum({0})", col), "")); _avg = Convert.ToDouble(dt.Compute(string.Format("Avg({0})", col), "")); _min = Convert.ToDouble(dt.Compute(string.Format("Min({0})", col), "")); _max = Convert.ToDouble(dt.Compute(string.Format("Max({0})", col), "")); //get number of years DateTime startDay = Convert.ToDateTime(dt.Compute(string.Format("Min({0})", SWATUnitResult.COLUMN_NAME_DATE), "")); DateTime endDay = Convert.ToDateTime(dt.Compute(string.Format("Max({0})", SWATUnitResult.COLUMN_NAME_DATE), "")); int years = endDay.Year - startDay.Year + 1; if (years > 0) _annualAverage = _sum / years; } catch { } _col = col; }
private void btnInquiry_Click(object sender, EventArgs e) { SqlConnection CmsConnection = new SqlConnection("server=TCP:192.168.1.3;database=CMS;uid=sa;pwd=Magical9070"); CmsConnection.Open(); string Cmscomm = "select ano,cno,cust,count(*) as 'repeat' into #TT from paylist group by ano,cno,cust having count(*) > 1" + "select custom.ano, custom.cno, custom.cust, comm.cname, custom.name, contract.price, custom.setdate, custom.startdate, custom.enddate, " + "convert(char(10),paylist.p_date,20) as p_date from comm,contract,custom,paylist,#TT where custom.ano=paylist.ano and custom.cno=paylist.cno and custom.cust=paylist.cust " + "and comm.ano=custom.ano and comm.cno=custom.cno and custom.ano=#TT.ano and custom.cno=#TT.cno and custom.cust=#TT.cust and custom.con_no=contract.con_no " + "and paylist.v_date is null and paylist.ps is null and custom.use_kind=1 and paylist.p_date between '" + dtpStart.Value.ToString("yyyy-MM-dd 00:00:00") + "' and '" + dtpEnd.Value.ToString("yyyy-MM-dd 23:59:59") + "' and " + "custom.setdate not between '" + dtpStart.Value.ToString("yyyy-MM-dd 00:00:00") + "' and '" + dtpEnd.Value.ToString("yyyy-MM-dd 23:59:59") + "'"; SqlCommand comm = new SqlCommand(Cmscomm, CmsConnection); SqlDataAdapter dataadapter = new SqlDataAdapter(Cmscomm, CmsConnection); DataTable dtTable = new DataTable(); dtTable.Locale = System.Globalization.CultureInfo.InvariantCulture; dataadapter.Fill(dtTable); lblDataListNum.Text = "共" + dtTable.Rows.Count + "筆"; dtTable.DefaultView.Sort = "p_date asc"; if(dtTable.Rows.Count==0) { MessageBox.Show("查詢的日期區間,無復機用戶!", "注意", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //先將price欄位加總並指定給PriceTotal,再建一個double PriceTotalNum //然後再把PriceTotalNum轉成字串貨幣格式並指定給lblTotalPriceShow string PriceTotal = dtTable.Compute("Sum(price)", null).ToString(); double PriceTotalNum = Convert.ToDouble(PriceTotal); lblTotalPriceShow.Text = PriceTotalNum.ToString("C0"); dgvShowData.Columns.Clear(); dgvShowData.DataSource = dtTable; dgvShowData.Columns[0].HeaderText = "區碼"; dgvShowData.Columns[1].HeaderText = "社區碼"; dgvShowData.Columns[2].HeaderText = "用戶碼"; dgvShowData.Columns[3].HeaderText = "社區名稱"; dgvShowData.Columns[4].HeaderText = "姓名"; dgvShowData.Columns[5].HeaderText = "金額"; dgvShowData.Columns[6].HeaderText = "裝機日"; dgvShowData.Columns[7].HeaderText = "起算日"; dgvShowData.Columns[8].HeaderText = "到期日"; dgvShowData.Columns[9].HeaderText = "繳費日"; dgvShowData.Columns[0].Width = 40; dgvShowData.Columns[1].Width = 70; dgvShowData.Columns[2].Width = 70; dgvShowData.Columns[3].Width = 120; dgvShowData.Columns[4].Width = 100; dgvShowData.Columns[5].Width = 40; dgvShowData.Columns[6].Width = 80; dgvShowData.Columns[7].Width = 80; dgvShowData.Columns[8].Width = 80; dgvShowData.Columns[9].Width = 80; CmsConnection.Close(); }
public void Optimize(DataTable orderTable, DataTable lineOrderTable, DataTable channelTable, DataTable deviceTable, Dictionary<string, string> param) { //允许占用2个通道机的品牌数量 int ocupyCount = Convert.ToInt32(param["OcupyCount"]); int ocupyCount1 = Convert.ToInt32(param["OcupyCount1"]); List<string> splitProduct = new List<string>(); DataTable tmpTable = GenerateTmpTable(); //查找占用两个通道机的品牌 if (ocupyCount != 0) { foreach (DataRow channelRow in channelTable.Rows) { string productCode = channelRow["CIGARETTECODE"].ToString(); if (productCode != "") { string filter = string.Format("STATUS = '1' AND CHANNELTYPE = '3' AND CIGARETTECODE = '{0}'", productCode); int count = Convert.ToInt32(channelTable.Compute("COUNT(CIGARETTECODE)", filter)); if (count >= 2 && !splitProduct.Contains(productCode)) { ocupyCount--; splitProduct.Add(productCode); } } } } //固定烟道分配 foreach (DataRow deviceRow in deviceTable.Rows) { string channelType = deviceRow["CHANNELTYPE"].ToString(); SetFixedChannel(lineOrderTable, channelTable, channelType); } //非固定烟道分配 foreach (DataRow deviceRow in deviceTable.Rows) { string channelType = deviceRow["CHANNELTYPE"].ToString(); switch (channelType) { case "2": //立式机 SetTowerChannel(lineOrderTable, channelTable, tmpTable, channelType, ocupyCount1); break; case "3": //通道机 SetChannel(orderTable,lineOrderTable,channelTable, tmpTable, channelType, ocupyCount); break; } } }
public void kakezan_Calculate_maketen() { string exp = Showing_Formula.converted_str; System.Data.DataTable dt = new System.Data.DataTable(); int result = (int)dt.Compute(exp, ""); //結果を表示 //Debug.Log("answer:" + result); //Debug.Log(Showing_Formula.converted_str); CheckAnswer(result, exp); }
public static void GetStDevs(DataTable dataTable, ref Stats stats) { if (dataTable == null || stats == null) return; foreach (DataColumn dataColumn in dataTable.Columns) { if (dataColumn.DataType != Type.GetType("System.String") && dataColumn.DataType != Type.GetType("System.DateTime")) stats.StDevs.AddData(dataTable.Compute( String.Format("StDev({0})", dataColumn.ColumnName), String.Empty)); else stats.StDevs.AddData("N/A"); } }
public static dynamic EvaluateExpression(string eqn, dynamic valor) { var result = new object(); try { System.Data.DataTable dt = new System.Data.DataTable(); result = dt.Compute(eqn, string.Empty); } catch { result = valor; } return(result); }
public void ColumnNameReservedWord() { var psql = GetPGServer(); if (psql.TableExists("test_column_name_reserved_word")) psql.RunSqlCommand(" drop table test_column_name_reserved_word"); string sql = "CREATE TABLE test_column_name_reserved_word " + "( " + " index integer NOT NULL primary key, " + " year integer, " + " sortindex integer, " + " \"group\" integer," // group is a reserved word.. + " cbtt character varying(10), " + " cropcurvenumber integer, " + " cropname character varying(40), " + " startdate timestamp without time zone, " + " fullcoverdate timestamp without time zone, " + " terminatedate timestamp without time zone " + ")"; psql.RunSqlCommand(sql); var table = new DataTable(); table.TableName = "test_column_name_reserved_word"; table = psql.Table("test_column_name_reserved_word"); int id = 1; if( table.Rows.Count >0) id = ((int)table.Compute("Max(index)", "") + 1); var newRow = table.NewRow(); newRow["index"] = id; newRow["year"] = DateTime.Now.Year; newRow["group"] = 99; // insert a row. table.Rows.Add(newRow); psql.SaveTable(table); table.Clear(); table.AcceptChanges(); psql.FillTable(table); // update a row table.Rows[0]["group"] = 1; psql.SaveTable(table); }
protected override void WriteContent() { DataTable linesTable = DataTableHelper.SelectDistinct(_table, "產線"); //建立寫入前置作業 int writeRow = 4; PasteDataRowsOptions options = new PasteDataRowsOptions(); options.IncludeSummary = true; options.SummaryColumns.AddRange(new string[] { "退驗數量", "待驗數量", "數量", "標準工時", "單位人工成本", "總標準工時", "內部工時", "內部工資", "外包工資", "外包工時", "已生產數量", "尚需工時" }); //對每個產線 foreach (DataRow lineRow in linesTable.Rows) { DataRow[] rows = _table.Select("產線 = '" + lineRow["產線"] + "'", "工作單號,序號"); //寫入內容 options.Row = writeRow; options.SummaryPrefix = lineRow["產線"] + "產線小計"; writeRow = this.SheetAdapter.PasteDataRows(rows, options); } //寫入總計 DataTable tmpTable = _table.Clone(); DataRow totalRow = tmpTable.NewRow(); totalRow[0] = "總計"; foreach (string sumCol in options.SummaryColumns) { if (!string.IsNullOrEmpty(tmpTable.Columns[sumCol].Expression)) { tmpTable.Columns[sumCol].Expression = string.Empty; } object o; o = _table.Compute("SUM(" + sumCol + ")", "產線<>'F'"); totalRow[sumCol] = Convert.IsDBNull(o) ? 0 : (decimal)o; } tmpTable.Rows.Add(totalRow); writeRow = this.SheetAdapter.PasteDataRow(totalRow, writeRow, 1); base.WriteContent(); }
public static DataTable GroupBy(DataTable i_dSourceTable, String[] i_sGroupByColumns, string i_sComputeColumn, string i_sComputeFunction) { string sComputeOperation = string.Format("{0}({1})", i_sComputeFunction, i_sComputeColumn); string sComputeCondition = null; DataView dv = new DataView(i_dSourceTable); DataTable dtGroup = dv.ToTable(true, i_sGroupByColumns); dtGroup.Columns.Add(new DataColumn("TOTAL", typeof(int))); foreach (DataRow dr in dtGroup.Rows) { sComputeCondition = getFilterCondition(i_sGroupByColumns, dr); dr["TOTAL"] = i_dSourceTable.Compute(sComputeOperation, sComputeCondition); } return dtGroup; }
public void Execute() { var table = new DataTable(); table.Columns.Add("Val", typeof(decimal)); for (var i = 0; i < 10; i++) { table.LoadDataRow(new object[] {i*0.1}, true); } // // 列は[]付きでも無しでも構わないが、付けておいた方が無難. // var result = table.Compute("SUM([Val])", "[Val] >= 0.5"); Output.WriteLine("{0}:{1}", result, result.GetType().FullName); }
private DataTable CrearDatosGrafico(DataTable data, GraficasModel model) { var groupdata = data.DefaultView.ToTable("group", true, new[] { model.Agruparpor }); var result = new DataTable(); result.Columns.Add(model.Agruparpor); result.Columns.Add(model.Valores, data.Columns[model.Valores].DataType); foreach (DataRow item in groupdata.Rows) { var row = result.NewRow(); row[model.Agruparpor] = item[model.Agruparpor]; row[model.Valores] = data.Compute("sum([" + model.Valores + "])", "[" + model.Agruparpor + "] = " + GetValorSql(data.Columns[model.Agruparpor], item[model.Agruparpor])); result.Rows.Add(row); } result.DefaultView.Sort = string.Format("{0} asc", model.Agruparpor); return(result); }
/// <summary> /// /// </summary> /// <param name="tbl"></param> /// <param name="beginColumn"></param> /// <param name="preValues"></param> /// <param name="expressionFormat"></param> public static void AddCalcRow(DataTable tbl, int beginColumn, object[] preValues, string expressionFormat) { ArrayList list = new ArrayList(); if (preValues != null && preValues.Length > 0) { list.AddRange(preValues); } for (int i = beginColumn; i < tbl.Columns.Count; i++) { string c = tbl.Columns[i].ColumnName; //string s = string.Format("avg({0})", c); string s = string.Format(expressionFormat, c); object obj = tbl.Compute(s, string.Empty); list.Add(obj); } tbl.Rows.Add(list.ToArray()); }
public void ShowGioHang() { if (Session["Giohang"] == null) { Response.Write("<script language='JavaScript'> alert('Chưa có món hàng nào trong giỏ hàng của bạn!!'); </script>"); //Response.Redirect("sanpham.aspx"); } else { tbGiohang = (DataTable)Session["Giohang"]; gridGioHang.DataSource = tbGiohang; gridGioHang.DataBind(); string tong = tbGiohang.Compute("Sum(tong)", "").ToString(); lbtongtien.Text = tong; } //if (Request.QueryString["ma_sp"] != null) //{ // int ma_sp = int.Parse(Request.QueryString["ma_sp"]); // DataTable dt = sanpham.SanPham_GetByID(ma_sp); // //data.get("Select ProName,Price From Products where ProID=" + idSP).Tables[0]; // String ten_sp = dt.Rows[0]["ten_sp"].ToString(); // int gia = int.Parse(dt.Rows[0]["gia"].ToString()); // int soluong = 1; // ThemVaoGioHang(ma_sp, ten_sp, gia, soluong); //} //if (Session["Giohang"] == null) //{ // Response.Write("<script language='JavaScript'> alert('Chưa có món hàng nào trong giỏ hàng của bạn!!'); </script>"); // Response.Redirect("Product.aspx"); //} //else //{ // //DataTable tb_Khachhang = (DataTable)Session["KhachHang_DN"]; // //DataTable tb_Giohang = donhang.DonHang_GetByCustomer(int.Parse(tb_Khachhang.Rows[0]["ma_kh"].ToString())); // //Session["KhachHang_DN"] = tb_KhachHang; // //gridGioHang.DataSource = tb_Giohang; // tbGiohang = (DataTable)Session["Giohang"]; // string strnumber = tbGiohang.Compute("Sum(TongTien)", "").ToString(); // lbtongtien.Text = strnumber; // gridGioHang.DataSource = tbGiohang; // gridGioHang.DataBind(); //} }
/// <summary> /// The method which does the actual calculations for the X and Y estimators, a and b parameters and r-squared. /// </summary> private static double[] OrdinaryLeastSquares(DataTable dt, string xField, string yField, RegressionType regressionType) { List<string> auxiliaryFields = new List<string>(); //Calculate a and b parameters if (regressionType == RegressionType.Logarithmic) { dt.Columns.Add("__LnX", typeof(double)); dt.Rows.Cast<DataRow>().ToList().ForEach(r => r.SetField("__LnX", Math.Log((double)r[xField]))); xField = "__LnX"; //auxiliaryFields.Add("__LnX"); } dt.Columns.Add("__XY", typeof(double), string.Format("{0} * {1}", xField, yField)); dt.Columns.Add("__X2", typeof(double), string.Format("{0} * {0}", xField)); dt.Columns.Add("__Y2", typeof(double), string.Format("{0} * {0}", yField)); auxiliaryFields.AddRange(new string[] { "__XY", "__X2", "__Y2" }); double xSum = (double)dt.Compute(string.Format("SUM([{0}])", xField), ""); double ySum = (double)dt.Compute(string.Format("SUM([{0}])", yField), ""); double xAvg = (double)dt.Compute(string.Format("AVG([{0}])", xField), ""); double yAvg = (double)dt.Compute(string.Format("AVG([{0}])", yField), ""); double xySum = (double)dt.Compute("SUM([__XY])", ""); double x2Sum = (double)dt.Compute("SUM([__X2])", ""); double y2Sum = (double)dt.Compute("SUM([__Y2])", ""); int n = dt.Rows.Count; double slope = (n * xySum - xSum * ySum) / (n * x2Sum - xSum * xSum); double intercept = yAvg - slope * xAvg; //Calculate r-squared dt.Columns.Add("__SSTField", typeof(double), string.Format("({0} - {1}) * ({0} - {1})", yField, yAvg)); dt.Columns.Add("__Yest_Orig", typeof(double), string.Format("{0} * {1} + {2}", slope, xField, intercept)); dt.Columns.Add("__SSEField", typeof(double), string.Format("({0} - __Yest_Orig) * ({0} - __Yest_Orig)", yField)); double SST = (double)dt.Compute("SUM([__SSTField])", ""); double SSE = (double)dt.Compute("SUM([__SSEField])", ""); auxiliaryFields.AddRange(new string[] { "__SSTField", "__SSEField" }); double rSquarred = 1 - SSE / SST; RemoveAuxiliaryFields(dt, auxiliaryFields); return new double[] { slope, intercept, rSquarred }; }
protected void CheckBoxAbate_CheckedChanged(object sender, EventArgs e) { moudelCode = Request.QueryString["modulecode"].ToString(); this.UltraWebTreeData.Nodes.Clear(); SortedList allTreeNodes = new SortedList(); hrmEmpOtherMoveBll.GetDepCodeTable(CurrentUserInfo.Personcode, moudelCode, CurrentUserInfo.CompanyId, "", chkAbate.Checked ? "Y" : "N",logmodel); dt = hrmEmpOtherMoveBll.GetAuthorizedTreeDept(CurrentUserInfo.Personcode, CurrentUserInfo.CompanyId, moudelCode); string strDepName = ""; foreach (DataRow row in dt.Rows) { strDepName = Convert.ToString(row["depname"]) + "[" + Convert.ToString(row["depcode"]) + "]"; if (Convert.ToString(row["costcode"]).Trim().Length > 0) { strDepName = strDepName + "-" + Convert.ToString(row["costcode"]); } Node node = base.CreateNode(Convert.ToString(row["depcode"]), strDepName, false, Convert.ToDecimal(dt.Compute("count(depcode)", "parentdepcode='" + row["depcode"] + "'")) == 0M); if (Convert.ToString(row["deleted"]).Equals("Y")) { node.Style.ForeColor = Color.Red; } allTreeNodes.Add(Convert.ToString(row["depcode"]), node); if (row["parentdepcode"].ToString().Trim().Length > 0) { if (allTreeNodes.IndexOfKey(row["parentdepcode"]) >= 0) { ((Node)allTreeNodes.GetByIndex(allTreeNodes.IndexOfKey(row["parentdepcode"]))).Nodes.Add((Node)allTreeNodes.GetByIndex(allTreeNodes.IndexOfKey(row["depcode"]))); } else { this.UltraWebTreeData.Nodes.Add((Node)allTreeNodes.GetByIndex(allTreeNodes.IndexOfKey(Convert.ToString(row["depcode"])))); } } else { this.UltraWebTreeData.Nodes.Add((Node)allTreeNodes.GetByIndex(allTreeNodes.IndexOfKey(Convert.ToString(row["depcode"])))); } } foreach (Node node in this.UltraWebTreeData.Nodes) { node.Expand(false); } }
private Int32 getLfdNr(string ArtNr) { Int32 LfdNr = 0; try { // ArtikelNr suchen DataRow[] rows = dtNr.Select("ArtikelNr='" + ArtNr + "'"); // ArtikelNr existiert in der Liste: dessen laufende Nummer zurückgeben. if (rows.Length > 0) { LfdNr = (Int32)rows[0][1]; } // Artikelnummer fehlt in der Liste: neuen Artikel einfügen mit der nächste freien laufenden Nummer. else { // Höchste laufende Nummer ermitteln int maxLfdNr = 0; if (dtNr.Rows.Count > 0) { maxLfdNr = (int)dtNr.Compute("MAX([LfdNr])", ""); } LfdNr = maxLfdNr + 1; // Neuen Eintrag einfügen DataRow newRow = dtNr.NewRow(); newRow[0] = ArtNr; newRow[1] = LfdNr; dtNr.Rows.Add(newRow); } return(LfdNr); } catch (Exception theException) { string errorMessage = String.Concat(theException.Message, theException.Source); MessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(LfdNr); } }
int[] ScrollGraphs(int precision, string field) { //read_aquire will say if the data source is from file or from Xbee int count = 0; DataRow[] datarw; datarw = dtb_String.Select(); count = Convert.ToInt16(dtb_String.Compute("Count(ID)", string.Empty)); int[] numbers = new int[count]; int i = 0; foreach (DataRow datagrd in datarw) { numbers[i] = Convert.ToInt16(datagrd[field]) / precision; i++; } return(numbers); }
protected void Page_Load(object sender, EventArgs e) { tblMoney = moneyOBJ.DBConnection("SP_LIST_MONEY", Convert.ToInt32(Session["logedUser"])); if (tblMoney.Rows.Count > 0) { sumOBJ = tblMoney.Compute("sum(Tiền)", ""); dgrMoney.DataSource = tblMoney; dgrMoney.DataBind(); txtTotal.Text = Convert.ToDecimal(sumOBJ.ToString()).ToString("#,##0.00"); } else { } }
internal void cargarGridCanjesDelDNI(string dni) { txtDNI.Text = dni; lblTotalCanjes.Text = "0"; if (!txtDNI.Text.Equals("")) { using (SqlConnection conn = Common.conectar()) try { //"mes, importe, puntos, canjes, total_puntos"; SqlCommand cmd = new SqlCommand( "SELECT datepart(year,prem_fcanje) Año, DATENAME(month,prem_fcanje) Mes, SUM(stoc_puntos*prem_id_cantidad) Puntos " + "FROM PRIVILEGIOS_INSUFICIENTES.Clientes, PRIVILEGIOS_INSUFICIENTES.Stock_premios, PRIVILEGIOS_INSUFICIENTES.Premios_canjeados " + "WHERE clie_dni =" + txtDNI.Text + " AND " + "DATEDIFF(DAY,prem_fcanje,'"+Common.fechaFuncion+"')<365 AND " + "prem_cliente = clie_id AND " + "prem_id_premio = stoc_id_premio " + "GROUP BY datepart(year,prem_fcanje), DATENAME(month,prem_fcanje),datepart(month,prem_fcanje) " + "ORDER BY 1,datepart(month,prem_fcanje)", conn); SqlDataAdapter adapter = new SqlDataAdapter(cmd); DataTable table = new DataTable(); adapter.Fill(table); grdCanjes.DataSource = table; lblTotalCanjes.Text = table.Compute("SUM(Puntos)", "").ToString(); if (lblTotalCanjes.Text.Equals("")) lblTotalCanjes.Text = "0"; } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { if (conn != null) conn.Close(); } } }
protected void Page_Load(object sender, EventArgs e) { //////////////////////////////////////////////////////////////////////////// // This is capturing the variables passed from the AJAX call // TEST LOCAL: https://localhost/Admin/SLX_DistrictSummarySpringboard.aspx?AccountID=A6UJ9A0094SH ///////////////////////////////////////////////////////////////////////////// if (strAccountID != "") { strSQL = String.Format(@" --create a table to store all AccountID's DECLARE @Sites TABLE(AccountID CHAR(12)) --insert all AccountID's from common sproc INSERT INTO @Sites EXEC DistrictAssociatedAccounts '{0}', 1 SELECT sysdba.ACCOUNT.ACCOUNTID, sysdba.ACCOUNT.ACCOUNT, sysdba.ACCOUNT.TYPE, sysdba.ACCWEBACCESS.LICENSETYPE, sysdba.ACCOUNTPRODUCT.QUANTITY, convert(varchar, sysdba.ACCOUNTPRODUCT.EXPIRYDATE, 101) AS ExpiryDate FROM @Sites INNER JOIN sysdba.ACCOUNT ON [@Sites].AccountID = ACCOUNT.ACCOUNTID INNER JOIN sysdba.ACCWEBACCESS ON sysdba.ACCOUNT.ACCOUNTID = sysdba.ACCWEBACCESS.ACCOUNTID INNER JOIN sysdba.ACCOUNTPRODUCT ON sysdba.ACCOUNT.ACCOUNTID = sysdba.ACCOUNTPRODUCT.ACCOUNTID WHERE ( sysdba.ACCOUNTPRODUCT.PRODUCTID = 'Y6UJ9A000007' ) ORDER BY sysdba.ACCOUNT.TYPE ", strAccountID); dt = CareerCruisingWeb.CCLib.SqlHelper.GetDataTable(ConfigurationManager.AppSettings["strDirConSLX"], strSQL); rptAccounts.DataSource = dt; rptAccounts.DataBind(); lblTotalSchools.Text = dt.Rows.Count.ToString(); if (dt.Rows.Count > 0) lblTotalQuantity.Text = Convert.ToInt32(dt.Compute("Sum(QUANTITY)", "")).ToString(); } }
public void AdvancedCalculator() { DataTable dt = new DataTable(); string s1 = "**"; try { Console.WriteLine("Enter a formula to calculate"); Console.WriteLine("Operator Reminder:\r\nAdd: + , Subtract: -, Multiply: *, Divide: / "); double answer = (double)dt.Compute(Console.ReadLine(), ""); Console.WriteLine("Calculating..."); Thread.Sleep(3000); Console.WriteLine(answer.ToString()); } catch (FormatException e) { Console.WriteLine(e.Message); } finally { Console.ReadLine( ); } }
public DataTable SummaryTotal(DataTable summary) { DataTable total = new DataTable(); total.Rows.Add(); foreach (DataColumn column in summary.Columns) { string columnName = column.ColumnName; total.Columns.Add(columnName, column.DataType); if (columnName == "name") { total.Rows[0][columnName] = "Grand Total"; } else if (column.DataType.IsValueType) { total.Rows[0][columnName] = summary.Compute(string.Format("SUM({0})", columnName), null); } else { total.Rows[0][columnName] = 0; } } return total; }
static Double Eval(String expression) { System.Data.DataTable table = new System.Data.DataTable(); return(Convert.ToDouble(table.Compute(expression, String.Empty))); }
private void updateCount(int activeCell) { selectedStores = Convert.ToInt32(grdShipToTable.Compute("COUNT(Selected)", "Selected='true'")) + activeCell; sbStoreCount.Text = "Selected Stores: " + selectedStores.ToString(); }
private void button3_Click(object sender, EventArgs e) { var selection = Globals.ThisWorkbook.Application.Selection; int a = selection.Rows.Count + 1; Globals.Sheet1.get_Range("H" + selection.Rows[1].Row + ":H" + selection.Rows[selection.Rows.Count].Row).Value2 = ""; string pydq = Globals.Sheet4.get_Range("D13").Value2; string yfjs = Globals.Sheet4.get_Range("B10").Value2; string cpqd = Globals.Sheet4.get_Range("B8").Value2; System.Data.DataTable yftable = ImportExcelFile(yfjs, 1, 1, 2); System.Data.DataTable emstable = ImportExcelFile(yfjs, 2, 3, 4); System.Data.DataTable drtable = ImportExcelFile(cpqd, 0, 1, 2); string emsqy = Globals.Sheet4.get_Range("D12").Value2; string emsqyc = Globals.Sheet4.get_Range("E12").Value2; string yunfei = "0"; string yunfeix = "0"; System.Data.DataTable sametable = samenum(a, 3, yftable); for (int i = 1; i < a; i++) { if (selection.Cells.SpecialCells(XlCellType.xlCellTypeVisible, 12).Rows[i].Hidden == false) { int num = selection.Rows[i].Row; if (Globals.Sheet1.get_Range("L" + num).Value2 == null) { continue; } int snum = Convert.ToInt32(Globals.Sheet1.get_Range("C" + num).Value2); string bnum = Globals.Sheet1.get_Range("D" + num).Value2.ToString(); string shuliang = Globals.Sheet1.get_Range("C" + num).Value2.ToString(); string province = Globals.Sheet1.get_Range("K" + num).Value2 == null ? " " : Globals.Sheet1.get_Range("K" + num).Value2; string city = Globals.Sheet1.get_Range("L" + num).Value2; string xian = Globals.Sheet1.get_Range("M" + num).Value2; string address = Globals.Sheet1.get_Range("N" + num).Value2; string size = GetStrName(drtable, bnum, "编码", "=", "规格"); object maxnum = sametable.Compute("Min(优先级)", "地址='" + address + "'"); string hanghao = GetStrName(sametable, address, "优先级='" + maxnum + "'and 地址", "=", "行号"); int byf = 0; int jiage = 0; if (emsqy.Contains(province.Substring(0, 2)) && !emsqyc.Contains(xian.Substring(0, 2))) { decimal sizenum = GetNumber(size); if (sizenum != 0) { decimal xiangshu = snum / Convert.ToInt32(sizenum); decimal jianshu = snum % sizenum; string emssz = GetStrName(emstable, "%" + province.Substring(0, 2) + "%", "地点", " like", "EMS首重1"); string emssz2 = GetStrName(emstable, "%" + province.Substring(0, 2) + "%", "地点", " like", "EMS首重2"); string emsxz = GetStrName(emstable, "%" + province.Substring(0, 2) + "%", "地点", " like", "EMS续重"); string xiangzhong = GetStrName(drtable, bnum, "编码", "=", "每箱重量(kg)"); string jianzhong = GetStrName(drtable, bnum, "编码", "=", "单件重量(kg)"); decimal zhongliangb = xiangshu * Convert.ToDecimal((xiangzhong != "") ? xiangzhong : "0"); decimal zhongliangs = jianshu * Convert.ToDecimal((jianzhong != "") ? jianzhong : "0"); decimal zhongliangt = zhongliangb + zhongliangs; double syzl = Convert.ToDouble(zhongliangt); if (syzl > 0.5) { syzl = syzl - 1; int time = 0; for (int k = 0; syzl > 0.5; k++) { time++; syzl = syzl - 0.5; } if (syzl > 0 && syzl < 0.5) { time++; } jiage = Convert.ToInt32(emssz2) + 1 + (time * Convert.ToInt32(emsxz)); } else { jiage = Convert.ToInt32(emssz) + 1; } byf = jiage; } } else { if (pydq.Contains(province.Substring(0, 2))) { if (num == Convert.ToInt32(hanghao)) { yunfei = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "偏远首件"); yunfeix = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "偏远续件"); } else { yunfei = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "偏远续件"); } } else if (province.Substring(0, 2) == "广东") { yunfei = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "省内"); yunfeix = yunfei; } else if (province.Substring(0, 2) == "香港" || province.Substring(0, 2) == "台湾") { yunfei = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "首件"); } else { if (num == Convert.ToInt32(hanghao)) { yunfei = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "省外首件"); yunfeix = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "省外续件"); } else { yunfei = GetStrName(yftable, "%" + bnum + "%", "类型", " like", "省外续件"); } } byf = (Convert.ToInt32(yunfei) + Convert.ToInt32(yunfeix) * (Convert.ToInt32(shuliang) - 1)) + Convert.ToInt32(Globals.Sheet1.get_Range("H" + hanghao).Value2); } Globals.Sheet1.get_Range("H" + hanghao).Value2 = byf; } } }
protected override void WriteContent() { DataTable linesTable = DataTableHelper.SelectDistinct(_table, "產線"); //建立寫入前置作業 int writeRow = 4; PasteDataRowsOptions options = new PasteDataRowsOptions(); options.IncludeSummary = true; /* 1.08.4 * options.SummaryColumns.AddRange(new string[] { "生產工時", "外包工時" }); */ options.SummaryColumns.AddRange(new string[] { "生產工時" }); options.ExcludeColumns.Add("借入"); //string[] npCols = new string[NpDic.Count]; //NpDic.Values.CopyTo(npCols, 0); List <string> npColList = new List <string>(NpDic.Values); //npColList.Remove("np請假"); options.SummaryColumns.AddRange(npColList); //對每個產線 foreach (DataRow lineRow in linesTable.Rows) { DataRow[] rows = _table.Select("產線 = '" + lineRow["產線"] + "'", "員工名稱"); //寫入內容 options.Row = writeRow; options.SummaryPrefix = lineRow["產線"] + "產線小計"; foreach (DataRow row in rows) { if (!row.IsNull("借入")) { row["產線"] = "由" + row["借入"] + "借入"; } } writeRow = this.SheetAdapter.PasteDataRows(rows, options); } //寫入總計 DataRow totalRow = _table.NewRow(); totalRow[0] = "總計"; foreach (string sumCol in options.SummaryColumns) { object o; o = _table.Compute("SUM([" + sumCol + "])", string.Empty); totalRow[sumCol] = Convert.IsDBNull(o) ? 0 : (decimal)o; } _table.Rows.Add(totalRow); writeRow = this.SheetAdapter.PasteDataRow(totalRow, writeRow, 1); //設定顯示格式 foreach (string npCol in NpDic.Values) { this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf(npCol) + 1, "G/通用格式;G/通用格式;* \"-\"_-"); } this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("生產工時") + 1, "G/通用格式;G/通用格式;* \"-\"_-"); this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("非生產TTL") + 1, "G/通用格式;G/通用格式;* \"-\"_-"); this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("生產%") + 1, "0.00%"); this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("非生產%") + 1, "0.00%"); //this.SheetAdapter.SetFormat(4, _table.Columns.IndexOf("外包工時") + 1, "#,##0.00;#,##0.00;* \"-\"_-"); base.WriteContent(); }
protected void Button1_Click(object sender, EventArgs e) { try { if (Convert.ToInt32(Fee.Text.Trim()) > 0) { WX.Model.Sell.MODEL sell; sell = WX.Model.Sell.NewDataModel(); sell.Fee.value = Fee.Text; sell.TypeID.value = DropDownList1.SelectedValue; string valuestr2; valuestr2 = "<td></td><td>" + DropDownList1.SelectedItem.Text + "</td><td>" + sell.Fee.ToString() + "</td>"; System.Data.DataTable dt = ULCode.QDA.XSql.GetDataTable("SELECT * FROM [Count_TypeColum] where TypeID=" + sell.TypeID.ToString() + " order by OrderNo asc"); System.Data.DataTable dataone = new System.Data.DataTable(); object[] objs = new Object[dt.Rows.Count]; for (int i = 0; i < dt.Rows.Count; i++) { dataone.Columns.Add(dt.Rows[i]["Mark"].ToString()); objs[i] = ""; } dataone.Rows.Add(objs); for (int i = 0; i < dt.Rows.Count; i++) { dataone.Rows[0][dt.Rows[i]["Mark"].ToString()] = Convert.ToDouble(dataone.Compute(WX.Model.TypeColum.GetFormula(this, dt.Rows[i]["Formula"].ToString(), dataone), "")).ToString("0.00"); if (dt.Rows[i]["Visible2"].ToString() == "1") { valuestr2 += "<td>" + dataone.Rows[0][dt.Rows[i]["Mark"].ToString()] + "</td>"; } } Literal1.Text = ULCode.QDA.XSql.GetDataTable("Select ColumStr2 from Count_Type where ID=" + DropDownList1.SelectedValue).Rows[0][0].ToString().Replace("<td>", "<td><div style='width:100px;'>").Replace("</td>", "</div></td>"); Literal2.Text = valuestr2; WX.Main.AddLog(WX.LogType.Default, "计算事业部提成!", String.Format("{0}", DropDownList1.SelectedItem.Text + ":" + Fee.Text)); } } catch { } }
private void generarconsulta() { tblserprec = getprec(); // var query = from row in tblserprec.AsEnumerable() // group row by new { Codigo = row.Field<string>("Codigo_De_Articulo"), Descripcion = row.Field<string>("TipoServicio") } into z // orderby z.Key.Descripcion // select new // { // Codigo = z.Key.Codigo, // Descripcion = z.Key.Descripcion, // Cantidad = z.Sum(s => s.Field<decimal>("Importe")) // } // ; //tblserprec = ConvertToDataTable(query); if (tblserprec.Rows.Count > 0) { tblserprec.Columns.Add("Com", Type.GetType("System.String"), "(1 * 0.16)"); tblserprec.Columns.Add("Incentivo", Type.GetType("System.Double"), "(Cantidad * 0.16)"); tblserprec.Columns.Add("ComM", Type.GetType("System.String"), "(1 * 0.22)"); tblserprec.Columns.Add("IncentivoM", Type.GetType("System.Double"), "(Cantidad * 0.22)"); var data = tblserprec.AsEnumerable().Select(row => new { Codigo_De_Empleado = row["Codigo_De_Empleado"].ToString(), Factura = row["Factura"].ToString(), NombreEmpleado = row["NombreEmpleado"].ToString(), Codigo_De_Articulo = row["Codigo_De_Articulo"].ToString(), TipoServicio = row["TipoServicio"].ToString(), Cantidad = Convert.ToDecimal(row["Cantidad"].ToString()), Importe = row["Importe"].ToString(), Com = row["Com"].ToString(), Incentivo = Convert.ToDecimal(row["Incentivo"].ToString()), ComM = row["ComM"].ToString(), IncentivoM = Convert.ToDecimal(row["IncentivoM"].ToString()) } ).ToList(); InvoiceRemision.ItemsSource = data; //InvoiceRemision.GroupHeaderTemplate// // InvoiceRemision.MasterTemplate.AutoExpandGroups = True; // Declare an object variable. object sumObject; sumObject = tblserprec.Compute("Sum(Cantidad)", string.Empty); //string osos = sumObject.ToString(); //string ose = string.Format("{0:#,0.#}", float.Parse(osos)); object sumObjecta; sumObjecta = tblserprec.Compute("Sum(Incentivo)", "[Com] IS NOT NULL"); string ososa = sumObjecta.ToString(); string osea = string.Format("{0:#,0.#}", float.Parse(ososa)); object sumObjectx; sumObjectx = tblserprec.Compute("Sum(IncentivoM)", string.Empty); string ososx = sumObjectx.ToString(); string osex = string.Format("{0:#,0.#}", float.Parse(ososx)); //Style style = new Style(typeof(GroupHeaderRow)); //style.Setters.Add(new Setter(GroupHeaderRow.ShowHeaderAggregatesProperty,"False")); //Resources.Add(typeof(GroupHeaderRow), style); } else { RadWindow radWindow = new RadWindow(); RadWindow.Alert(new DialogParameters() { Content = "No hay filas que mostrar.", Header = "BIG", DialogStartupLocation = WindowStartupLocation.CenterOwner // IconContent = ""; }); } }
protected override void WriteContent() { //this.SheetAdapter.PasteDataTable(_table, 3, 1); int write = _columnHdrRow + 1; //List<string> sortElements = new List<string>(); //if (!string.IsNullOrEmpty(_form.QCN)) // sortElements.Add("QCN"); //if (!string.IsNullOrEmpty(_form.PartNumber)) // sortElements.Add("品號"); //if (!string.IsNullOrEmpty(_form.WorksheetFrom) || !string.IsNullOrEmpty(_form.WorksheetTo)) // sortElements.Add("工作單號"); //sortElements.Add("檢驗日期"); //DataRow[] rows = _table.Select(null, string.Join(",", sortElements.ToArray())); DataRow[] rows; int resultCol; if (_form.InspeceMode == InspeceMode.ByPn) { rows = _groupTable.Select(null, _form.SortString); foreach (DataRow row in rows) { write = this.SheetAdapters[0].PasteDataRow(row, write, 1); } } else { rows = _table.Select(null, _form.SortString); resultCol = this.SheetAdapters[0].ReportProfile.IndexOf("檢驗狀態") + 1; foreach (DataRow row in rows) { write = this.SheetAdapters[0].PasteDataRow(row, write, 1); string result = row["檢驗狀態"].ToString(); int color = 65280; int fontColor = -16777216; if (result == "NG") { color = 255; fontColor = 16316664; //fontColor = -1; } else if (result == "Concession") { color = 65535; } Range range = this.SheetAdapters[0].GetRange(write - 1, resultCol); range.Interior.Color = color; range.Font.Color = fontColor; range.Font.Bold = true; range.HorizontalAlignment = XlHAlign.xlHAlignCenter; } } //統計資料 if (_form.OutputStatistic) { DataView view = _table.DefaultView; view.Sort = "產線 ASC"; DataTable disLineTable = view.ToTable(true, "產線"); foreach (DataRow lineRow in disLineTable.Rows) { DataRow newRow = _statisticTable.NewRow(); string line = lineRow[0].ToString(); int count, num; count = (int)_table.Compute("COUNT(產線)", "產線 = '" + line + "' AND 最後檢驗紀錄=True AND 檢驗狀態 <> 'NG'"); num = Convert.ToInt32(_table.Compute("SUM(送檢次數)", "產線 = '" + line + "' AND 最後檢驗紀錄=True")); newRow["產線"] = line; newRow["入庫總批數"] = count; newRow["送檢總次數"] = num; _statisticTable.Rows.Add(newRow); } write = _columnHdrRow + 1; PasteDataRowsOptions option = new PasteDataRowsOptions(); option.IncludeSummary = true; option.SummaryPrefix = "Total"; option.SummaryColumns.AddRange(new string[] { "入庫總批數", "送檢總次數" }); option.Row = write; this.SheetAdapters[1].PasteDataRows(_statisticTable.Select(), option); } base.WriteContent(); }
/// <summary> /// 通过指定条件获取单元格数据 /// </summary> /// <param name="striTittleList"></param> /// <returns></returns> public object[] GetData(TongJiDataGrid.TJGridView dataGridd, System.Data.DataTable dataTable, string[] listRealRow, int rowPosition) { object[] data = new object[dataGridd.dataGrid.Columns.Count]; try { for (int columnPosition = 0; columnPosition < data.Count(); columnPosition++) { object count = 0; string expression = string.Empty; #region 获取表达式 if (columnPosition < data.Count() - 1) { for (int i = 0; i < listRealRow.Count(); i++) { var item = listRealRow[i]; if (item.Contains("月")) { expression += GetMonthExpression(listRealRow[i - 1] + item, i, this.rowItemTagList); } else if (!item.Equals("小计") && !item.Contains("月") && !item.Contains("年")) { expression += this.rowItemTagList[i] + "=" + "'" + item + "'" + " And "; } else if (listRealRow.Contains("小计") && item.Contains("年")) { expression += GetYearExpression(item, i, this.rowItemTagList); } } for (int i = 0; i < dataGridd.tongjiC.GetRangeTittle(columnPosition).Count(); i++) { var range = dataGridd.tongjiC.GetRangeTittle(columnPosition); var item = range[i]; if (item.Contains("月")) { expression += GetMonthExpression(dataGridd.tongjiC.GetRangeTittle(columnPosition)[i - 1] + item, i, this.columnItemTagList); } else if (!item.Equals("小计") && !item.Contains("月") && !item.Contains("年")) { expression += this.columnItemTagList[i] + "=" + "'" + item + "'" + " And "; } else if (range.Contains("小计") && item.Contains("年")) { expression += GetYearExpression(item, i, this.columnItemTagList); } } } else { for (int i = 0; i < listRealRow.Count(); i++) { var item = listRealRow[i]; if (item.Contains("月")) { expression += GetMonthExpression(listRealRow[i - 1] + item, i, this.rowItemTagList); } else if (!item.Equals("小计") && !item.Contains("月") && !item.Contains("年")) { expression += this.rowItemTagList[i] + "=" + "'" + item + "'" + " And "; } else if (listRealRow.Contains("小计") && item.Contains("年")) { expression += GetYearExpression(item, i, this.rowItemTagList); } } } #endregion string realExpression = string.Empty; if (expression.Contains(" And ")) { realExpression = expression.Substring(0, expression.LastIndexOf(" And ")); } var result = dataTable.Compute("Count(ID)", realExpression); if (result == DBNull.Value) { count = "0"; } else { //统计结果 var cc = Convert.ToInt32(result); if (cc == 0) { count = "0"; } else { count = cc; } } data[columnPosition] = count; } } catch (Exception ex) { MethodLb.CreateLog(this.GetType().FullName, "GetData", ex.ToString(), dataTable, listRealRow, rowPosition); } return(data); }
/// <summary> /// 打印住院摆药单据 /// </summary> /// <param name="billMaster">单据表头</param> /// <param name="billOrder">单据明细</param> /// <param name="path">报表文件路径</param> /// <param name="Printer">打印人员</param> public override void PrintBill(HIS.Model.BillMaster billMaster, System.Data.DataTable billOrder, string path, int Printer) { //if (billMaster == null) //{ // return; //} //HIS.Model.YP_DRMaster printMaster = (HIS.Model.YP_DRMaster)billMaster; //billOrder = BillFactory.GetQuery(ConfigManager.OP_YF_DISPENSE).LoadOrder(billMaster); //HIS.Interface.IZY_Data zyInterFace = new HIS.Interface.ZY_Data(); //billOrder=zyInterFace //if (billOrder.Rows.Count > 0) //{ // _printOrder = billOrder; // report = new grproLib.GridppReport(); // report.LoadFromFile(path); // report.FetchRecord += new grproLib._IGridppReportEvents_FetchRecordEventHandler(report_FetchRecord); // report.ParameterByName("CureNo").AsString = printMaster.InpatientID.ToString(); // report.ParameterByName("UserName").AsString = BaseData.GetUserName(printMaster.OPPeopleID); // report.ParameterByName("ExeTime").AsDateTime = printMaster.OPTime; // report.ParameterByName("PatientName").AsString = printMaster.PatientName; // report.ParameterByName("HospitalName").AsString = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName; // report.ParameterByName("PrintTime").AsDateTime = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime; // report.ParameterByName("Printer").AsString = BaseData.GetUserName(Printer); // report.PrintPreview(false); //} if (billMaster == null) { if (billOrder == null) { return; } if (billOrder.Rows.Count > 0) { HIS.Model.ZY_PatList patlist = HIS.SYSTEM.Core.BindEntity <HIS.Model.ZY_PatList> .CreateInstanceDAL(oleDb).GetModel(Convert.ToInt32(billOrder.Rows[0]["patlistid"])); _printOrder = billOrder; //for (int i = 0; i < _printOrder.Rows.Count; i++) //{ // decimal presamount =( _printOrder.Rows[i]["presamount"] == null || _printOrder.Rows[i]["presamount"].ToString() == "0" ? 1 : Convert.ToDecimal(_printOrder.Rows[i]["presamount"].ToString())); // _printOrder.Rows[i]["amount"] = Convert.ToDecimal(_printOrder.Rows[i]["amount"].ToString()) / presamount; //} report = new grproLib.GridppReport(); report.LoadFromFile(path); report.FetchRecord += new grproLib._IGridppReportEvents_FetchRecordEventHandler(report_FetchRecord); report.ParameterByName("CureNo").AsString = patlist.CureNo; report.ParameterByName("UserName").AsString = BaseData.GetUserName(Printer); //report.ParameterByName("ExeTime").AsDateTime = printMaster.OPTime; report.ParameterByName("PatientName").AsString = patlist.PatientInfo.PatName; report.ParameterByName("HospitalName").AsString = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName; report.ParameterByName("PrintTime").AsDateTime = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime; report.ParameterByName("Printer").AsString = BaseData.GetUserName(Printer); report.ParameterByName("总金额").AsString = Convert.ToDecimal(_printOrder.Compute("sum(tolal_fee)", "")).ToString("0.00") + " 元"; report.ParameterByName("病人科室").AsString = BaseData.GetDeptName(patlist.CurrDeptCode); report.ParameterByName("开方医生").AsString = billOrder.Rows[0]["presdocname"].ToString(); report.PrintPreview(false); } } else { HIS.Model.YP_DRMaster printMaster = (HIS.Model.YP_DRMaster)billMaster; billOrder = BillFactory.GetQuery(ConfigManager.OP_YF_DISPENSE).LoadOrder(billMaster); if (billOrder.Rows.Count > 0) { _printOrder = billOrder; for (int i = 0; i < _printOrder.Rows.Count; i++) { decimal presamount = (_printOrder.Rows[i]["recipenum"] == null || _printOrder.Rows[i]["recipenum"].ToString() == "0" ? 1 : Convert.ToDecimal(_printOrder.Rows[i]["recipenum"].ToString())); _printOrder.Rows[i]["drugocnum"] = Convert.ToDecimal(_printOrder.Rows[i]["drugocnum"].ToString()) / presamount; } report = new grproLib.GridppReport(); report.LoadFromFile(path); report.FetchRecord += new grproLib._IGridppReportEvents_FetchRecordEventHandler(report_FetchRecord); report.ParameterByName("CureNo").AsString = printMaster.InpatientID.ToString(); report.ParameterByName("UserName").AsString = BaseData.GetUserName(printMaster.OPPeopleID); report.ParameterByName("ExeTime").AsDateTime = printMaster.OPTime; report.ParameterByName("PatientName").AsString = printMaster.PatientName; report.ParameterByName("HospitalName").AsString = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName; report.ParameterByName("PrintTime").AsDateTime = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime; report.ParameterByName("Printer").AsString = BaseData.GetUserName(Printer); report.ParameterByName("总金额").AsString = Convert.ToDecimal(_printOrder.Compute("sum(retailfee)", "")).ToString("0.00") + " 元"; report.PrintPreview(false); } } }
private void getReport() { if (cbbType.SelectedIndex < 0) { MessageBox.Show("Bạn chưa chọn loại báo cáo!", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //check valid period time if (DateTime.Parse(dtpFrom.Text) > DateTime.Parse(dtpTo.Text)) { MessageBox.Show("Khoảng thời gian không hợp lệ", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } pgbExport.Visible = true; pgbExport.Style = ProgressBarStyle.Marquee; pgbExport.Left = this.Width / 2; pgbExport.Top = this.Height / 2; this.Enabled = false; //get data report string from = new DateTime(dtpFrom.Value.Year, dtpFrom.Value.Month, dtpFrom.Value.Day, 0, 0, 0).ToString("yyyy-MM-dd HH:mm:ss"); string to = new DateTime(dtpTo.Value.Year, dtpTo.Value.Month, dtpTo.Value.Day, 23, 59, 59).ToString("yyyy-MM-dd HH:mm:ss"); string productStepCode; string productGroupCode; if (cbbProductStepCode.SelectedIndex != 0) { productStepCode = cbbProductStepCode.Text; } else { productStepCode = string.Empty; } if (cbbGroupProductCode.SelectedIndex != 0) { productGroupCode = cbbGroupProductCode.SelectedValue.ToString(); } else { productGroupCode = string.Empty; } int Type = cbbType.SelectedIndex; System.Data.DataTable dtReport = LibIE.GetDataTableFromSP("spGetAndonReport", new string[] { "@StartDate", "@EndDate", "@ProductStepCode", "@ProductGroupCode", "@Type" }, new object[] { from, to, productStepCode, productGroupCode, Type }); int totalDelay = 0; int totalRisk = 0; int totalTimeDelay = 0; int totalTimeRisk = 0; totalRisk = TextUtils.ToInt(dtReport.Compute("Count(Type)", "Type = 2")); totalDelay = TextUtils.ToInt(dtReport.Compute("Count(Type)", "Type = 1"));; totalTimeDelay = TextUtils.ToInt(dtReport.Compute("Sum(DelayTime)", "Type = 1"));; totalTimeRisk = TextUtils.ToInt(dtReport.Compute("Sum(RiskTime)", "Type = 2"));; grdReport.DataSource = dtReport; txtTotalDelay.Text = totalDelay.ToString(); txtTotalRisk.Text = totalRisk.ToString(); txtTimeDelay.Text = totalTimeDelay.ToString(); txtTimeRisk.Text = totalTimeRisk.ToString(); }
/// <summary> /// 打印盘点汇总单据 /// </summary> /// <param name="billMaster">单据表头</param> /// <param name="billOrder">单据明细</param> /// <param name="path">报表文件路径</param> /// <param name="Printer">打印人员</param> public override void PrintBill(HIS.Model.BillMaster billMaster, System.Data.DataTable billOrder, string path, int Printer) { try { if (billMaster == null) { return; } HIS.Model.YP_CheckMaster printMaster = (HIS.Model.YP_CheckMaster)billMaster; string strWhere = BLL.Tables.yk_checkmaster.AUDITNUM + oleDb.EuqalTo() + printMaster.AuditNum + oleDb.And() + BLL.Tables.yk_checkmaster.DEL_FLAG + oleDb.EuqalTo() + "0" + oleDb.And() + BLL.Tables.yk_checkmaster.DEPTID + oleDb.EuqalTo() + printMaster.DeptID; List <YP_CheckMaster> masterList = new List <YP_CheckMaster>(); DataTable orderDt = null; #region 合并药房盘点单 if (printMaster.OpType == ConfigManager.OP_YF_CHECK) { masterList = BindEntity <YP_CheckMaster> .CreateInstanceDAL(oleDb, BLL.Tables.YF_CHECKMASTER).GetListArray(strWhere); if (masterList.Count <= 0) { return; } foreach (YP_CheckMaster master in masterList) { if (orderDt == null) { orderDt = BillFactory.GetQuery(ConfigManager.OP_YF_CHECK).LoadOrder(master); orderDt.PrimaryKey = new DataColumn[] { orderDt.Columns["MAKERDICID"] }; continue; } else { DataTable newDt = BillFactory.GetQuery(ConfigManager.OP_YF_CHECK).LoadOrder(master); for (int index = 0; index < newDt.Rows.Count; index++) { DataRow currentRow = newDt.Rows[index]; DataRow findRow = orderDt.Rows.Find(Convert.ToInt32(currentRow["MAKERDICID"])); if (findRow == null) { orderDt.Rows.Add(currentRow.ItemArray); } else { findRow["CPACKNUM"] = Convert.ToDecimal(findRow["CPACKNUM"]) + Convert.ToDecimal(currentRow["CPACKNUM"]); findRow["CKRETAILFEE"] = Convert.ToDecimal(findRow["CKRETAILFEE"]) + Convert.ToDecimal(currentRow["CKRETAILFEE"]); findRow["CKTRADEFEE"] = Convert.ToDecimal(findRow["CKTRADEFEE"]) + Convert.ToDecimal(currentRow["CKTRADEFEE"]); findRow["CBASENUM"] = Convert.ToDecimal(findRow["CBASENUM"]) + Convert.ToDecimal(currentRow["CBASENUM"]); } } } } } #endregion #region 合并药库盘点单 if (printMaster.OpType == ConfigManager.OP_YK_CHECK) { masterList = BindEntity <YP_CheckMaster> .CreateInstanceDAL(oleDb, BLL.Tables.YK_CHECKMASTER).GetListArray(strWhere); if (masterList.Count <= 0) { return; } foreach (YP_CheckMaster master in masterList) { if (orderDt == null) { orderDt = BillFactory.GetQuery(ConfigManager.OP_YK_CHECK).LoadOrder(master); orderDt.PrimaryKey = new DataColumn[] { orderDt.Columns["MAKERDICID"], orderDt.Columns["BATCHNUM"] }; continue; } else { DataTable newDt = BillFactory.GetQuery(ConfigManager.OP_YK_CHECK).LoadOrder(master); for (int index = 0; index < newDt.Rows.Count; index++) { DataRow currentRow = newDt.Rows[index]; DataRow findRow = orderDt.Rows.Find(new object[] { Convert.ToInt32(currentRow["MAKERDICID"]), currentRow["BATCHNUM"].ToString() }); if (findRow == null) { orderDt.Rows.Add(currentRow.ItemArray); } else { findRow["CPACKNUM"] = Convert.ToDecimal(findRow["CPACKNUM"]) + Convert.ToDecimal(currentRow["CPACKNUM"]); findRow["CKRETAILFEE"] = Convert.ToDecimal(findRow["CKRETAILFEE"]) + Convert.ToDecimal(currentRow["CKRETAILFEE"]); findRow["CKTRADEFEE"] = Convert.ToDecimal(findRow["CKTRADEFEE"]) + Convert.ToDecimal(currentRow["CKTRADEFEE"]); } } } } } #endregion #region 生成盘点单汇总数据 billOrder = orderDt.Clone(); DataRow[] dRows = orderDt.Select("", "typename,chemname asc"); foreach (DataRow dRow in dRows) { billOrder.Rows.Add(dRow.ItemArray); } billOrder.Columns.Add("DIFFFEE", System.Type.GetType("System.Decimal")); billOrder.Columns.Add("DIFFTRADEFEE", System.Type.GetType("System.Decimal")); for (int index = 0; index < billOrder.Rows.Count; index++) { decimal diffRetailFee = Convert.ToDecimal(billOrder.Rows[index]["CKRETAILFEE"]) - Convert.ToDecimal(billOrder.Rows[index]["FTRETAILFEE"]); decimal diffTradeFee = Convert.ToDecimal(billOrder.Rows[index]["CKTRADEFEE"]) - Convert.ToDecimal(billOrder.Rows[index]["FTTRADEFEE"]); billOrder.Rows[index]["DIFFFEE"] = diffRetailFee; billOrder.Rows[index]["DIFFTRADEFEE"] = diffTradeFee; //盘盈 if (diffRetailFee > 0) { printMaster.MoreRetailFee += diffRetailFee; printMaster.MoreTradeFee += diffTradeFee; } //盘亏 else { printMaster.LessRetailFee -= diffRetailFee; printMaster.LessTradeFee -= diffTradeFee; } } printMaster.AuditNum = masterList[0].AuditNum; printMaster.AuditPeopleID = masterList[0].AuditPeopleID; printMaster.AuditTime = masterList[0].AuditTime; printMaster.DeptID = masterList[0].DeptID; #endregion #region 参数赋值 if (billOrder.Rows.Count > 0) { _printOrder = billOrder; report = new grproLib.GridppReport(); report.LoadFromFile(path); report.FetchRecord += new grproLib._IGridppReportEvents_FetchRecordEventHandler(report_FetchRecord); report.ParameterByName("CheckDate").AsDateTime = printMaster.AuditTime; report.ParameterByName("BillNo").AsString = printMaster.AuditNum.ToString(); report.ParameterByName("HospitalName").AsString = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName; report.ParameterByName("Printer").AsString = BaseData.GetUserName(Printer); report.ParameterByName("PrintTime").AsDateTime = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime; report.ParameterByName("AuditPeople").AsString = BaseData.GetUserName(printMaster.AuditPeopleID); report.ParameterByName("AuditDept").AsString = BaseData.GetDeptName(printMaster.DeptID.ToString()) + "盘点单据"; report.ParameterByName("FtTradeFee").AsString = billOrder.Compute("sum(CKTRADEFEE)", "").ToString(); report.ParameterByName("FtRetailFee").AsString = billOrder.Compute("sum(CKRETAILFEE)", "").ToString(); report.ParameterByName("XYFtTradeFee").AsString = billOrder.Compute("sum(CKTRADEFEE)", "typedicid=1").ToString(); report.ParameterByName("XYFtRetailFee").AsString = billOrder.Compute("sum(CKRETAILFEE)", "typedicid=1").ToString(); report.ParameterByName("ZCYFtTradeFee").AsString = billOrder.Compute("sum(CKTRADEFEE)", "typedicid=2").ToString(); report.ParameterByName("ZCYFtRetailFee").AsString = billOrder.Compute("sum(CKRETAILFEE)", "typedicid=2").ToString(); report.ParameterByName("ZYFtTradeFee").AsString = billOrder.Compute("sum(CKTRADEFEE)", "typedicid=3").ToString(); report.ParameterByName("ZYFtRetailFee").AsString = billOrder.Compute("sum(CKRETAILFEE)", "typedicid=3").ToString(); report.ParameterByName("WZFtTradeFee").AsString = billOrder.Compute("sum(CKTRADEFEE)", "typedicid=4").ToString(); report.ParameterByName("WZFtRetailFee").AsString = billOrder.Compute("sum(CKRETAILFEE)", "typedicid=4").ToString(); report.ParameterByName("CkTradeFee").AsString = billOrder.Compute("sum(FTTRADEFEE)", "").ToString(); report.ParameterByName("CkRetailFee").AsString = billOrder.Compute("sum(FTRETAILFEE)", "").ToString(); report.ParameterByName("XYCkTradeFee").AsString = billOrder.Compute("sum(FTTRADEFEE)", "typedicid=1").ToString(); report.ParameterByName("XYCkRetailFee").AsString = billOrder.Compute("sum(FTRETAILFEE)", "typedicid=1").ToString(); report.ParameterByName("ZCYCkTradeFee").AsString = billOrder.Compute("sum(FTTRADEFEE)", "typedicid=2").ToString(); report.ParameterByName("ZCYCkRetailFee").AsString = billOrder.Compute("sum(FTRETAILFEE)", "typedicid=2").ToString(); report.ParameterByName("ZYCkTradeFee").AsString = billOrder.Compute("sum(FTTRADEFEE)", "typedicid=3").ToString(); report.ParameterByName("ZYCkRetailFee").AsString = billOrder.Compute("sum(FTRETAILFEE)", "typedicid=3").ToString(); report.ParameterByName("WZCkTradeFee").AsString = billOrder.Compute("sum(FTTRADEFEE)", "typedicid=4").ToString(); report.ParameterByName("WZCkRetailFee").AsString = billOrder.Compute("sum(FTRETAILFEE)", "typedicid=4").ToString(); report.ParameterByName("MoreRetailFee").AsString = printMaster.MoreRetailFee.ToString(); report.ParameterByName("MoreTradeFee").AsString = printMaster.MoreTradeFee.ToString(); report.ParameterByName("XYMoreRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=1 and difffee>0").ToString(); report.ParameterByName("XYMoreTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=1 and difftradefee>0").ToString(); report.ParameterByName("ZCYMoreRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=2 and difffee>0").ToString(); report.ParameterByName("ZCYMoreTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=2 and difftradefee>0").ToString(); report.ParameterByName("ZYMoreRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=3 and difffee>0").ToString(); report.ParameterByName("ZYMoreTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=3 and difftradefee>0").ToString(); report.ParameterByName("WZMoreRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=4 and difffee>0").ToString(); report.ParameterByName("WZMoreTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=4 and difftradefee>0").ToString(); report.ParameterByName("LessRetailFee").AsString = (-printMaster.LessRetailFee).ToString(); report.ParameterByName("LessTradeFee").AsString = (-printMaster.LessTradeFee).ToString(); report.ParameterByName("XYLessRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=1 and difffee<0").ToString(); report.ParameterByName("XYLessTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=1 and difftradefee<0").ToString(); report.ParameterByName("ZCYLessRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=2 and difffee<0").ToString(); report.ParameterByName("ZCYLessTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=2 and difftradefee<0").ToString(); report.ParameterByName("ZYLessRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=3 and difffee<0").ToString(); report.ParameterByName("ZYLessTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=3 and difftradefee<0").ToString(); report.ParameterByName("WZLessRetailFee").AsString = billOrder.Compute("sum(DIFFFEE)", "typedicid=4 and difffee<0").ToString(); report.ParameterByName("WZLessTradeFee").AsString = billOrder.Compute("sum(DIFFTRADEFEE)", "typedicid=4 and difftradefee<0").ToString(); report.PrintPreview(false); } #endregion } catch (Exception error) { throw error; } }
public DataTable getReportData(string invoiceid) { try { string id = invoiceid.ToString(); string Query = @" select item.item_name , item.quantity , item.price_per_unit,item.unit, case when(item.discount isnull) then 0 else item.discount end as item_discount , item.item_total as item_total , invoice.line_total as line_total , invoice.discount as invoice_discount, invoice.basis_amount as basis_amount , invoice.tax_total as tax_total, invoice.grand_total as grand_total , invoice.invoice_name , invoice.purpose , invoice.purpose_code , invoice.tax_code, invoice.tax_rate, ""false"" as charge_indicator , invoice.service_charge, item.unit_xml , item.item_code, item.item_code_inter, invoice.original, invoice.difference, invoice.issue_date, invoice.remark, case when(invoice.invoice_name like ""%ภาษี%"") then 'Y' else 'N' end as invoice_debit_flag, case when(invoice.purpose = """") then 'Y' else 'N' end as purpose_flag, (item.item_total+(item.item_total * (tax_rate/100))) as item_total_including_tax from invoice_item item left join invoice invoice on (invoice.invoice_id = item.invoice_id) where invoice.invoice_id = ""*id"" "; Query = Query.Replace("*id", id); DataTable dt = new System.Data.DataTable(); dt = sqlite.ExecuteDataTable(Query); dt_item_raw = dt.Copy(); int limit = 19; int group = 0; int seq = 0; int total_seq = 0; dt.Columns.Add("seq"); dt.Columns.Add("grouping"); dt.Columns.Add("Appearance"); DataRow[] Editrows = dt.Select(); //Run Sequence for (int i = 0; i < Editrows.Length; i++) { if (seq < limit) { Editrows[i]["grouping"] = group; Editrows[i]["seq"] = seq; } else { seq = 0; } seq++; if (seq == limit) { seq = 0; group++; } total_seq++; } dt.AcceptChanges(); //Add Rows Dummy for full Table if ((dt.Rows.Count % limit) != 0) { DataRow[] Rows_count = dt.Select(" grouping =" + group); while (total_seq < (group + 1) * limit) { dt.Rows.Add(); DataRow[] Addrow = dt.Select(); Addrow[total_seq]["grouping"] = group; dt.AcceptChanges(); total_seq++; } } // Assign Flag Y fro appearance var max = dt.Compute("max(grouping)", string.Empty); DataRow[] Appearance = dt.Select("grouping =" + max); foreach (var dr in Appearance) { dr["Appearance"] = "Y"; } dt.AcceptChanges(); DataSet ds = new DataSet(); ds.Tables.Add(dt); return(dt); } catch (Exception ex) { throw ex; } }
public System.Data.DataTable GenerateDesignBOQDataTableWithServices(System.Data.DataTable dt, BindingList <EnquiryBOQService> listServices, BindingList <EnquiryBOQItem> listItems) { try { // INSERT SERVICES COLUMN IN DATATABLE int stIndex = dt.Columns[COL_UOM_NAME].Ordinal; string strExpr = string.Empty; foreach (EnquiryBOQService item in listServices) { stIndex++; if (!dt.Columns.Contains(item.Description)) { dt.Columns.Add(new DataColumn() { ColumnName = item.Description, DataType = typeof(decimal), DefaultValue = 0 }); dt.Columns[item.Description].SetOrdinal(stIndex); } } dt.Columns[COL_TOTAL_QTY].SetOrdinal(dt.Columns.Count - 1); // INSERT ITEMS ROW IN DATATABLE foreach (EnquiryBOQItem item in listItems) { strExpr = string.Format("[{0}]=0 AND [{1}]={2}", COL_PARENT_ITEM_ID, COL_ITEM_ID, item.ID); DataRow[] result = dt.Select(strExpr); if (result.Count() == 0) { TBL_MP_Master_Item dbItem = (new ServiceInventoryItems()).GetItemDBRecord(item.ID); if (dbItem != null) { int newIndex = 0; if (dt.Rows.Count > 0) { newIndex = int.Parse(dt.AsEnumerable().Max(row => row[COL_INDEX]).ToString()); } newIndex++; string str = string.Format("MAX([{0}])", COL_SERIAL_NO_SYS); decimal newSerial = 0; if (dt.Rows.Count > 0) { newSerial = decimal.Parse((dt.Compute(str, string.Empty)).ToString()); } newSerial++; DataRow dtrow = dt.NewRow(); dtrow[COL_DEFAULT_QTY] = 0; dtrow[COL_INDEX] = newIndex; dtrow[COL_SERIAL_NO_SYS] = (int)newSerial; dtrow[COL_PARENT_ITEM_ID] = 0; dtrow[COL_HAS_SERVICES] = false; dtrow[COL_ITEM_ID] = item.ID; dtrow[COL_ITEM_CODE] = dbItem.ItemCode; dtrow[COL_HSN_CODE] = dbItem.HSNCode; dtrow[COL_ITEM_DESCRIPTION] = string.Format("{0}\n{1}", dbItem.Item_Name, dbItem.Long_Description); dtrow[COL_IS_ASSEMBLY] = dbItem.IsAssembly; //SET UOM ID & NAME if (dbItem.Fk_UserList_BaseUOM_ID != null) { List <SelectListItem> UOMs = (new ServiceMASTERS()).GetAllUOMs(); SelectListItem selUOM = UOMs.Where(x => x.ID == dbItem.Fk_UserList_BaseUOM_ID).FirstOrDefault(); if (selUOM != null) { dtrow[COL_UOM_ID] = selUOM.ID; dtrow[COL_UOM_NAME] = selUOM.Description; } } //SET SERCVICS COLUMNS QTY VALUE TO 0 foreach (EnquiryBOQService selService in listServices) { dtrow[selService.Description] = 0; } dtrow[COL_TOTAL_QTY] = 0; dt.Rows.Add(dtrow); } } } // REMOVE COLUMNS NOT FOUND IN SERVICES LIST string colsToRemove = string.Empty; stIndex = (dt.Columns[COL_UOM_NAME].Ordinal); stIndex++; for (int i = stIndex; i < dt.Columns.Count; i++) { string colName = dt.Columns[i].ColumnName; if (colName != COL_TOTAL_QTY) { EnquiryBOQService found = listServices.Where(x => x.Description == colName).FirstOrDefault(); if (found == null) { colsToRemove += colName + DefaultStringSeperator; } } } if (colsToRemove.EndsWith(DefaultStringSeperator.ToString())) { colsToRemove = colsToRemove.TrimEnd(DefaultStringSeperator); } if (colsToRemove != string.Empty) { string[] arrCols = colsToRemove.Split(DefaultStringSeperator); foreach (string s in arrCols) { dt.Columns.Remove(s); } } //// REMOVE ROWS NOT FOUND IN ITEMS LIST //string rowsToRemove = string.Empty; //foreach (DataRow dr in dt.Rows) //{ // int itemID = int.Parse(dr[COL_ITEM_ID].ToString()); // EnquiryBOQItem found = listItems.Where(x => x.ID == itemID).FirstOrDefault(); // if (found == null) // { // rowsToRemove += itemID.ToString() + DefaultStringSeperator; // } //} //if (rowsToRemove.EndsWith(DefaultStringSeperator.ToString())) //{ // rowsToRemove = rowsToRemove.TrimEnd(DefaultStringSeperator); //} //if (rowsToRemove != string.Empty) //{ // string[] arrRows = rowsToRemove.Split(DefaultStringSeperator); // foreach (string s in arrRows) // { // strExpr = string.Format("[{0}]=0 AND [{1}]={2}", COL_PARENT_ITEM_ID, COL_ITEM_ID, s); // DataRow delRow = dt.Select(strExpr).FirstOrDefault(); // if (delRow != null) // { // if ((bool)delRow[COL_IS_ASSEMBLY] == true) // { // strExpr = string.Format("[{0}]={1}", COL_PARENT_ITEM_ID, s); // DataRow[] childRows= dt.Select(strExpr); // for(int i=0;i<= childRows.GetUpperBound(0);i++) // dt.Rows.Remove(childRows[i]); // } // dt.Rows.Remove(delRow); // dt.AcceptChanges(); // } // } //} ////dt.Columns["TotalQty"].SetOrdinal(stIndex++); ////dt.Columns["UnitPrice"].SetOrdinal(stIndex++); ////dt.Columns["TotalPrice"].SetOrdinal(stIndex++); } catch (Exception ex) { MessageBox.Show(ex.Message, "ServiceSalesEnquiryBOQ::GenerateBOQDataTableWithServices", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(dt); }
public double deal() { List <int> lefts; List <int> rights; lefts = new List <int>(); rights = new List <int>(); List <string> expressionTemp = new List <string>(); if (str.IndexOf('*') >= 0 || str.IndexOf('^') >= 0) { int stackCount = 0; lefts = new List <int>(); rights = new List <int>(); for (int i = 0; i < str.Length; i++) { if (str[i] == '(') { if (stackCount == 0) { lefts.Add(i); } stackCount++; } if (str[i] == ')') { stackCount--; if (stackCount == 0) { rights.Add(i); } } } List <int> cut = new List <int>(); cut.Add(-1); for (int i = 0; i < str.Length; i++) { if (str[i] == '*') { bool flag = false; for (int j = 0; j < lefts.Count; j++) { if (i > lefts[j] && i < rights[j]) { flag = true; } } if (flag == false) { cut.Add(i); } } } if (cut.Count != 1) { int left = 0; int right = 0; cut.Add(str.Length); for (int i = 0; i < cut.Count; i++) { Console.WriteLine("1111111111111111111111 " + cut[i]); } for (int i = 1; i < cut.Count; i++) { left = cut[i - 1]; right = cut[i]; expressionTemp.Add(str.Substring(left + 1, right - left - 1)); } } else { expressionTemp.Add(str); } } else { expressionTemp.Add(str); } Console.WriteLine(expressionTemp.Count + "*分割数"); for (int i = 0; i < expressionTemp.Count; i++) { Console.WriteLine(expressionTemp[i] + " "); } Console.WriteLine("*end"); for (int i = 0; i < expressionTemp.Count; i++) { bool flag = true; if (flag) { for (int j = 0; j < tool.Function.Length; j++)//函数 { if (tool.Function[j].Length - 1 < expressionTemp[i].Length && expressionTemp[i].Substring(0, tool.Function[j].Length) == tool.Function[j]) { Console.WriteLine("exp"); flag = false; //expression[i].sub(tool.Function[j].Length+1,expression.Length-2)表达式求值,求值后函数 divStringExp dse1 = new divStringExp(expressionTemp[i].Substring(tool.Function[j].Length + 1, expressionTemp[i].Length - tool.Function[j].Length - 2), VC); double va = dse1.deal(); switch (j) { case 0: coefficient.Add(Math.Sin(va)); break; case 1: coefficient.Add(Math.Cos(va)); break; case 2: coefficient.Add(Math.Tan(va)); break; case 3: coefficient.Add(Math.Abs(va)); break; case 4: coefficient.Add(Math.Sqrt(va)); break; case 5: coefficient.Add(Math.Exp(va)); break; case 6: coefficient.Add(Math.Floor(va)); break; case 7: { Random r = new Random(); coefficient.Add(r.NextDouble() * Math.Floor(va)); break; } } } } for (int j = 0; j < tool.BinaryFunction.Length; j++)//函数 { if (tool.BinaryFunction[j].Length - 1 < expressionTemp[i].Length && expressionTemp[i].Substring(0, tool.BinaryFunction[j].Length) == tool.BinaryFunction[j]) { Console.WriteLine("exp2"); flag = false; for (int k = tool.BinaryFunction[j].Length + 1; k < expressionTemp[i].Length - 2; k++) { if (expressionTemp[i][k] == ',') { bool flag1 = false; for (int h = 0; h < lefts.Count; h++) { if (k > lefts[h] && k < rights[h]) { flag1 = true; } } if (flag1 == false)//log(2,3) k=5 8 3 { divStringExp dse1 = new divStringExp(expressionTemp[i].Substring(tool.BinaryFunction[j].Length + 1, k - tool.BinaryFunction[j].Length - 1), VC); divStringExp dse2 = new divStringExp(expressionTemp[i].Substring(k + 1, expressionTemp[i].Length - k - 2), VC); double n1 = dse1.deal(); double n2 = dse2.deal(); if (n1 < 0 || n1 == 1) { Console.WriteLine("log1"); if (n1 < 0) { throw new UserException("底数不能小于0"); } else { throw new UserException("底数不能等于1"); } } else { switch (j) { case 0: coefficient.Add(Math.Log(n2) / Math.Log(n1)); Console.WriteLine(Math.Log(n1) / Math.Log(n2)); break; } } } } } } } } if (expressionTemp[i].IndexOf('^') > 0 && flag) //次方 ((2)^(2+3))^(a1+9) (2^3)^(3^2) { flag = false; List <string> t = new List <string>(); int count = 0; if (expressionTemp[i].IndexOf('(') >= 0) { for (int j = 0, start = 0; j < expressionTemp[i].Length; j++) { if (j == expressionTemp[i].Length - 1 || expressionTemp[i][j] == '^') { if (j == expressionTemp[i].Length - 1) { t.Add(expressionTemp[i].Substring(start, j - start + 1)); } else { bool flag1 = false; for (int i1 = 0; i1 < lefts.Count; i1++) { if (lefts[i1] < j && rights[i1] > j) { flag1 = true; } } if (!flag1) { t.Add(expressionTemp[i].Substring(start, j - start)); start = j + 1; } } } } if (t.Count == 1) //说明不能拆开但有阶乘 ,防止拆开项有括号 { flag = true; } } else { foreach (string s1 in expressionTemp[i].Split('^')) { t.Add(s1); } } if (flag == false) { for (int j = 0; j < t.Count; j++) { Console.WriteLine(t[j]); } double tempResult = 0; divStringExp dse1 = new divStringExp(t[0], VC); tempResult = dse1.deal(); for (int j = 1; j < t.Count; j++) { divStringExp dse = new divStringExp(t[j], VC); //t[j]表达式求值后阶乘 tempResult = Math.Pow(tempResult, dse.deal()); } coefficient.Add(tempResult); Console.WriteLine("^^"); } } if (expressionTemp[i][0] == '(' && expressionTemp[i][expressionTemp[i].Length - 1] == ')' && flag) { flag = false; expressionTemp[i] = expressionTemp[i].Substring(1, expressionTemp[i].Length - 2); divStringExp dse1 = new divStringExp(expressionTemp[i], VC); coefficient.Add(dse1.deal()); } if (flag) { if (VC.vlist != null) { for (int j = 0; j < VC.vlist.Length; j++) { if (VC.vlist[j].name == expressionTemp[i]) { Console.WriteLine("var"); flag = false; coefficient.Add(VC.vlist[j].value); } } } } if (flag) { DataTable table = new System.Data.DataTable(); Console.WriteLine("num:" + expressionTemp[i]); string s1 = table.Compute(expressionTemp[i], "").ToString(); coefficient.Add(Convert.ToDouble(s1)); Console.WriteLine("numconvert:" + Convert.ToDouble(s1)); } } double result = 1; for (int i = 0; i < coefficient.Count; i++) { result = result * coefficient[i]; } return(result); }
protected override void WriteContent() { System.Data.DataTable linesTable = DataTableHelper.SelectDistinct(_table, "產線"); //建立寫入前置作業 int writeRow = 4; PasteDataRowsOptions options = new PasteDataRowsOptions(); options.IncludeSummary = false; //手動控制Summary Row options.SummaryColumns.AddRange(new string[] { /*"退驗數量", */ "數量" /*, "標準工時", "單位人工成本"*/, "內部工時", "內部工資", "外包工資", "外包工時", "標準總工資", "標準總工時", "實際總工時" /*"單位標準工資", "實際工時", "實際工資"*/ }); options.NoSummaryColumns.AddRange(new string[] { "標準工時", "單位人工成本", "單位標準工資", "實際工時", "實際工資" }); PasteDataRowEventHandler beforeSummary = new PasteDataRowEventHandler(BeforePasteDataRowSummary); //this.SheetAdapter.BeforePasteDataRowSummary += beforeSummary; DataTableHelper dtHelper = new DataTableHelper(); DataTable nonNormalHourTable = dtHelper.SelectGroupByInto("ReportTable", _srcTable, "產線, Sum(內部工時) 內部工時, 工時類型", null, "產線,實際完成日,工作單號,品號,品名,數量,標準工時,單位人工成本,單位標準工資,工品編號,工時類型"); //對每個產線 foreach (DataRow lineRow in linesTable.Rows) { //NOTICE: 當Select條件修改時也必須修改BeforePasteDataRowSummary內容 DataRow[] rows = _table.Select("產線 = '" + lineRow["產線"] + "'", "工作單號,序號"); foreach (DataRow row in rows) { string worksheet = (string)row["工作單號"]; int serialNumber = (int)row["序號"]; //減去異常+包裝 object abnormalResult = _srcTable.Compute("SUM(內部工時)", "工作單號='" + worksheet + "' AND 工品編號 = " + serialNumber + " AND 產線 = '" + lineRow["產線"] + "' AND (工時類型=" + (int)HourType.異常生產工時 + " OR 工時類型=" + (int)HourType.包裝 + ")"); if (abnormalResult != DBNull.Value) { row["實際總工時"] = (decimal)row["實際總工時"] - (decimal)abnormalResult; } } //寫入內容 options.IncludeSummary = false; options.Row = writeRow; options.SummaryPrefix = lineRow["產線"] + "產線小計"; writeRow = this.SheetAdapter.PasteDataRows(rows, options); //寫入異常生產工時,包裝工時 decimal unusual = 0; decimal package = 0; // 取得異常生產工時 object result = nonNormalHourTable.Compute("SUM(內部工時)", "產線 = '" + lineRow["產線"] + "' AND 工時類型=" + (int)HourType.異常生產工時); if (result != null && result != DBNull.Value) { unusual = (decimal)result; } // 取得包裝工時 result = nonNormalHourTable.Compute("SUM(內部工時)", "產線 = '" + lineRow["產線"] + "' AND 工時類型=" + (int)HourType.包裝); if (result != null && result != DBNull.Value) { package = (decimal)result; } DataRow tmpRow = _table.NewRow(); tmpRow["單位"] = null; tmpRow[0] = "異常生產工時"; tmpRow["實際總工時"] = unusual; writeRow = this.SheetAdapter.PasteDataRow(tmpRow, writeRow, options.Column); tmpRow[0] = "包裝"; tmpRow["實際總工時"] = package; writeRow = this.SheetAdapter.PasteDataRow(tmpRow, writeRow, options.Column); //寫入小計 options.Row = writeRow; _subttlRows.Add(writeRow); writeRow = this.SheetAdapter.PasteSummaryRow(rows, options); } //this.SheetAdapter.BeforePasteDataRowSummary -= beforeSummary; decimal ttlUnusual = 0; decimal ttlPackage = 0; // 取得異常生產工時 object tmpResult = nonNormalHourTable.Compute("SUM(內部工時)", "工時類型=" + (int)HourType.異常生產工時); if (tmpResult != null && tmpResult != DBNull.Value) { ttlUnusual = (decimal)tmpResult; } // 取得包裝工時 tmpResult = nonNormalHourTable.Compute("SUM(內部工時)", "工時類型=" + (int)HourType.包裝); if (tmpResult != null && tmpResult != DBNull.Value) { ttlPackage = (decimal)tmpResult; } //寫入總計(不包括異常,包裝) DataTable tmpTable = _table.Clone(); tmpTable.Columns["實際總工時"].Expression = string.Empty; //實際總工時自己計算 DataRow totalRow = tmpTable.NewRow(); foreach (string sumCol in options.SummaryColumns) { if (!string.IsNullOrEmpty(tmpTable.Columns[sumCol].Expression)) { tmpTable.Columns[sumCol].Expression = string.Empty; } object o; o = _table.Compute("SUM(" + sumCol + ")", string.Empty); totalRow[sumCol] = Convert.IsDBNull(o) ? 0 : (decimal)o; } foreach (string noSumCol in options.NoSummaryColumns) { tmpTable.Columns[noSumCol].Expression = string.Empty; totalRow[noSumCol] = DBNull.Value; } ////實際總工時 - (異常生產工時+包裝) 前面減過了 //object ttlHourObj = _table.Compute("SUM(實際總工時)", string.Empty); //decimal ttlHour = Convert.IsDBNull(ttlHourObj) ? 0 : (decimal)ttlHourObj; ////totalRow["實際總工時"] = ttlHour - (ttlUnusual + ttlPackage); totalRow[0] = "總計"; _ttlRow = writeRow; tmpTable.Rows.Add(totalRow); writeRow = this.SheetAdapter.PasteDataRow(totalRow, writeRow, 1); //tmpTable = _table.Clone(); ////寫入異常,包裝總計 //tmpTable.Columns[tmpTable.Columns["外包工資"].Ordinal].DataType = typeof(object); //DataRow abnormalTotalRow = tmpTable.NewRow(); //abnormalTotalRow["單位"] = null; //abnormalTotalRow[tmpTable.Columns["外包工資"].Ordinal] = "異常生產工時"; //abnormalTotalRow["實際總工時"] = ttlUnusual; //writeRow = this.SheetAdapter.PasteDataRow(abnormalTotalRow, writeRow, options.Column); //abnormalTotalRow[tmpTable.Columns["外包工資"].Ordinal] = "包裝"; //abnormalTotalRow["實際總工時"] = ttlPackage; //writeRow = this.SheetAdapter.PasteDataRow(abnormalTotalRow, writeRow, options.Column); ////寫入總計(+異常,包裝) //totalRow = tmpTable.NewRow(); //options.SummaryColumns = new List<string>(new string[] { "實際總工時", "標準總工時" }); //options.NoSummaryColumns = new List<string>(new string[] { "數量", "內部工時", "內部工資", "外包工資", "外包工時", "標準工時", "單位人工成本", "單位標準工資", "實際工時", "實際工資", "標準總工資" }); //foreach (string sumCol in options.SummaryColumns) //{ // if (!string.IsNullOrEmpty(tmpTable.Columns[sumCol].Expression)) // tmpTable.Columns[sumCol].Expression = string.Empty; // object o; // o = _table.Compute("SUM(" + sumCol + ")", string.Empty); // totalRow[sumCol] = Convert.IsDBNull(o) ? 0 : (decimal)o; //} //foreach (string noSumCol in options.NoSummaryColumns) //{ // tmpTable.Columns[noSumCol].Expression = string.Empty; // totalRow[noSumCol] = DBNull.Value; //} //totalRow[tmpTable.Columns["外包工資"].Ordinal] = "Total"; //totalRow["單位"] = null; //tmpTable.Rows.Add(totalRow); //_ttlRow = writeRow; //writeRow = this.SheetAdapter.PasteDataRow(totalRow, writeRow, 1); base.WriteContent(); }
void BeforePasteDataRowSummary(object sender, DataRow[] rows, PasteDataRowsOptions options, ref int writeRow, int col, object args) { decimal unusual = 0; decimal package = 0; if (rows.Length > 0) { DataTable table = rows[0].Table; string line = rows[0]["產線"].ToString(); // 取得異常生產工時 object result = table.Compute("SUM(內部工時)", "產線 = '" + line + "' AND 工時類型=" + (int)HourType.異常生產工時); if (result != null && result != DBNull.Value) { unusual = (decimal)result; } // 取得包裝工時 result = table.Compute("SUM(內部工時)", "產線 = '" + line + "' AND 工時類型=" + (int)HourType.包裝); if (result != null && result != DBNull.Value) { package = (decimal)result; } DataRow tmpRow = table.NewRow(); tmpRow["單位"] = null; tmpRow[0] = "異常生產工時"; tmpRow["實際總工時"] = unusual; writeRow = ((WorksheetAdapter)sender).PasteDataRow(tmpRow, writeRow, col); tmpRow[0] = "包裝"; tmpRow["實際總工時"] = package; writeRow = ((WorksheetAdapter)sender).PasteDataRow(tmpRow, writeRow, col); } }