Exemplo n.º 1
0
        /// <summary>
        /// 打印药库入库单汇总表
        /// </summary>
        /// <param name="path">路径</param>
        /// <param name="inMasterDt">入库单头表</param>
        /// <param name="billTime">单据时间</param>
        /// <param name="deptId">部门ID</param>
        /// <param name="printer">打印人员ID</param>
        static public void PringInStoreTotal(string path, DataTable inMasterDt, string billTime, int deptId, int printer)
        {
            try
            {
                decimal xy_RetailFee = 0, zcy_RetailFee = 0, zy_RetailFee = 0, xy_TradeFee = 0,
                        zcy_TradeFee = 0, zy_TradeFee = 0, wz_RetailFee = 0, wz_TradeFee = 0;

                decimal xy_RetailFee1 = 0, zcy_RetailFee1 = 0, zy_RetailFee1 = 0, xy_TradeFee1 = 0,
                        zcy_TradeFee1 = 0, zy_TradeFee1 = 0, wz_RetailFee1 = 0, wz_TradeFee1 = 0;

                int    supportId   = 0;
                string supportName = "";
                report = new grproLib.GridppReport();
                report.LoadFromFile(path);
                report.ParameterByName("HospitalName").AsString = HIS.SYSTEM.BussinessLogicLayer.Classes.BaseData.WorkName
                                                                  + "入库单汇总";
                if (inMasterDt != null)
                {
                    if (inMasterDt.Rows.Count >= 1)
                    {
                        report.ParameterByName("BillTime").AsString = Convert.ToDateTime(inMasterDt.Rows[0]["AUDITTIME"]).ToString()
                                                                      + "到" + Convert.ToDateTime(inMasterDt.Rows[inMasterDt.Rows.Count - 1]["AUDITTIME"]).ToString();
                    }
                    else
                    {
                        report.ParameterByName("BillTime").AsString = billTime;
                    }
                    report.ParameterByName("BillCount").AsString = inMasterDt.Rows.Count.ToString();
                    for (int index = 0; index < inMasterDt.Rows.Count; index++)
                    {
                        DataRow currentRow = inMasterDt.Rows[index];
                        int     masterId   = Convert.ToInt32(currentRow["MASTERINSTORAGEID"]);
                        if (supportId != Convert.ToInt32(currentRow["SUPPORTDICID"]))
                        {
                            supportId = Convert.ToInt32(currentRow["SUPPORTDICID"]);
                            string currentSupporter = BindEntity <HIS.Model.YP_SupportDic> .CreateInstanceDAL(oleDb,
                                                                                                              BLL.Tables.YP_SUPPORTDIC).GetModel(supportId).Name;

                            if (supportName.IndexOf(currentSupporter + ",") == -1)
                            {
                                supportName += currentSupporter + ",";
                            }
                        }
                        //加载类型汇金额总表
                        DataTable typeFeeDt = BillQuery.LoadTotalFeeByInOrder(masterId);

                        DataTable outFeeDt = BillQuery.LoadTotalFeeByOutOrder(masterId);
                        //按类型累加各单据批发金额和零售金额(入库)
                        for (int temp = 0; temp < typeFeeDt.Rows.Count; temp++)
                        {
                            DataRow typeFeeRow = typeFeeDt.Rows[temp];
                            if (typeFeeRow["TypeDicID"] != DBNull.Value)
                            {
                                int typeId = Convert.ToInt32(typeFeeRow["TypeDicID"]);
                                switch (typeId)
                                {
                                case 1:
                                    xy_RetailFee += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    xy_TradeFee  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                case 2:
                                    zcy_RetailFee += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    zcy_TradeFee  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                case 3:
                                    zy_RetailFee += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    zy_TradeFee  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                case 4:
                                    wz_RetailFee += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    wz_TradeFee  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                default:
                                    break;
                                }
                            }
                        }

                        //按类型累加各单据批发金额和零售金额(退库) //update by heyan 增加退库汇总信息
                        for (int temp = 0; temp < outFeeDt.Rows.Count; temp++)
                        {
                            DataRow typeFeeRow = outFeeDt.Rows[temp];
                            if (typeFeeRow["TypeDicID"] != DBNull.Value)
                            {
                                int typeId = Convert.ToInt32(typeFeeRow["TypeDicID"]);
                                switch (typeId)
                                {
                                case 1:
                                    xy_RetailFee1 += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    xy_TradeFee1  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                case 2:
                                    zcy_RetailFee1 += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    zcy_TradeFee1  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                case 3:
                                    zy_RetailFee1 += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    zy_TradeFee1  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                case 4:
                                    wz_RetailFee1 += Convert.ToDecimal(typeFeeRow["RetailFee"]);
                                    wz_TradeFee1  += Convert.ToDecimal(typeFeeRow["TradeFee"]);
                                    break;

                                default:
                                    break;
                                }
                            }
                        }
                    }
                    //报表参数赋值
                    report.ParameterByName("SupportName").AsString = supportName;
                    report.ParameterByName("TradeFee").AsString    = (xy_TradeFee + zcy_TradeFee +
                                                                      zy_TradeFee + wz_TradeFee).ToString("0.00");
                    report.ParameterByName("DiffFee").AsString = (xy_RetailFee + zcy_RetailFee + zy_RetailFee + wz_RetailFee
                                                                  - xy_TradeFee - zcy_TradeFee - zy_TradeFee - wz_TradeFee).ToString("0.00");
                    report.ParameterByName("RetailFee").AsString = (xy_RetailFee + zcy_RetailFee +
                                                                    zy_RetailFee + wz_RetailFee).ToString("0.00");
                    report.ParameterByName("RetailFee_XY").AsString  = xy_RetailFee.ToString("0.00");
                    report.ParameterByName("RetailFee_ZCY").AsString = zcy_RetailFee.ToString("0.00");
                    report.ParameterByName("RetailFee_ZY").AsString  = zy_RetailFee.ToString("0.00");
                    report.ParameterByName("RetailFee_WZ").AsString  = wz_RetailFee.ToString("0.00");
                    report.ParameterByName("TradeFee_XY").AsString   = xy_TradeFee.ToString("0.00");
                    report.ParameterByName("TradeFee_ZCY").AsString  = zcy_TradeFee.ToString("0.00");
                    report.ParameterByName("TradeFee_ZY").AsString   = zy_TradeFee.ToString("0.00");
                    report.ParameterByName("TradeFee_WZ").AsString   = wz_TradeFee.ToString("0.00");
                    report.ParameterByName("DiffFee_XY").AsString    = (xy_RetailFee - xy_TradeFee).ToString("0.00");
                    report.ParameterByName("DiffFee_ZCY").AsString   = (zcy_RetailFee - zcy_TradeFee).ToString("0.00");
                    report.ParameterByName("DiffFee_ZY").AsString    = (zy_RetailFee - zy_TradeFee).ToString("0.00");
                    report.ParameterByName("DiffFee_WZ").AsString    = (wz_RetailFee - wz_TradeFee).ToString("0.00");
                    report.ParameterByName("DeptName").AsString      = BaseData.GetDeptName(deptId.ToString());
                    report.ParameterByName("Printer").AsString       = BaseData.GetUserName(printer);
                    report.ParameterByName("PrintTime").AsDateTime   = HIS.SYSTEM.PubicBaseClasses.XcDate.ServerDateTime;


                    report.ParameterByName("TradeFee1").AsString = (xy_TradeFee1 + zcy_TradeFee1 +
                                                                    zy_TradeFee1 + wz_TradeFee1).ToString("0.00");
                    report.ParameterByName("DiffFee1").AsString = (xy_RetailFee1 + zcy_RetailFee1 + zy_RetailFee1 + wz_RetailFee1
                                                                   - xy_TradeFee1 - zcy_TradeFee1 - zy_TradeFee1 - wz_TradeFee1).ToString("0.00");
                    report.ParameterByName("RetailFee1").AsString = (xy_RetailFee1 + zcy_RetailFee1 +
                                                                     zy_RetailFee1 + wz_RetailFee1).ToString("0.00");
                    report.ParameterByName("RetailFee_XY1").AsString  = xy_RetailFee1.ToString("0.00");
                    report.ParameterByName("RetailFee_ZCY1").AsString = zcy_RetailFee1.ToString("0.00");
                    report.ParameterByName("RetailFee_ZY1").AsString  = zy_RetailFee1.ToString("0.00");
                    report.ParameterByName("RetailFee_WZ1").AsString  = wz_RetailFee1.ToString("0.00");
                    report.ParameterByName("TradeFee_XY1").AsString   = xy_TradeFee1.ToString("0.00");
                    report.ParameterByName("TradeFee_ZCY1").AsString  = zcy_TradeFee1.ToString("0.00");
                    report.ParameterByName("TradeFee_ZY1").AsString   = zy_TradeFee1.ToString("0.00");
                    report.ParameterByName("TradeFee_WZ1").AsString   = wz_TradeFee1.ToString("0.00");
                    report.ParameterByName("DiffFee_XY1").AsString    = (xy_RetailFee1 - xy_TradeFee1).ToString("0.00");
                    report.ParameterByName("DiffFee_ZCY1").AsString   = (zcy_RetailFee1 - zcy_TradeFee1).ToString("0.00");
                    report.ParameterByName("DiffFee_ZY1").AsString    = (zy_RetailFee1 - zy_TradeFee1).ToString("0.00");
                    report.ParameterByName("DiffFee_WZ1").AsString    = (wz_RetailFee1 - wz_TradeFee1).ToString("0.00");


                    report.PrintPreview(false);
                }
            }
            catch (Exception error)
            {
                throw error;
            }
        }