Compute() public méthode

Computes the given expression on the current rows that pass the filter criteria.
public Compute ( string expression, string filter ) : object
expression string
filter string
Résultat object
        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);
        }
Exemple #4
0
 // 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;
 }
Exemple #5
0
 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));
 }
Exemple #6
0
    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"));
        }
Exemple #8
0
 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;
     }
 }
Exemple #9
0
    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;
            }
        }
    }
Exemple #10
0
        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;
        }
Exemple #15
0
 /// <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;
 }
Exemple #16
0
        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;
        }
Exemple #18
0
        /// <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);
        }
Exemple #19
0
        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("");
     }
 }
Exemple #22
0
        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;
                }
            }
        }
Exemple #26
0
    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);
    }
Exemple #27
0
 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");
     }
 }
Exemple #28
0
        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);
        }
Exemple #29
0
        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);
        }
Exemple #33
0
        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);
        }
Exemple #34
0
        /// <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());
        }
Exemple #35
0
        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);
            }
        }
Exemple #38
0
        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);
            }
        }
Exemple #39
0
        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);
        }
Exemple #40
0
    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();
        }
    }
Exemple #43
0
        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( );
            }
        }
Exemple #44
0
        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;
        }
Exemple #45
0
 static Double Eval(String expression)
 {
     System.Data.DataTable table = new System.Data.DataTable();
     return(Convert.ToDouble(table.Compute(expression, String.Empty)));
 }
Exemple #46
0
 private void updateCount(int activeCell)
 {
     selectedStores    = Convert.ToInt32(grdShipToTable.Compute("COUNT(Selected)", "Selected='true'")) + activeCell;
     sbStoreCount.Text = "Selected Stores: " + selectedStores.ToString();
 }
Exemple #47
0
        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;
                }
            }
        }
Exemple #48
0
        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 = "";
                });
            }
        }
Exemple #51
0
        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();
        }
Exemple #52
0
        /// <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);
        }
Exemple #53
0
        /// <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);
                }
            }
        }
Exemple #54
0
        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();
        }
Exemple #55
0
        /// <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;
            }
        }
Exemple #56
0
        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;
            }
        }
Exemple #57
0
        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);
        }
Exemple #58
0
            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);
            }
Exemple #59
0
        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();
        }
Exemple #60
-15
        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);
            }
        }