private void toolDayCheck_Click(object sender, EventArgs e)
        {
            try
            {
                string strFilter = " AND ISNULL(CHARGECANCEL,'0')='0' ";
                if (txtFilter.Text == "")
                {
                    strFilter += " AND CHARGEWORKERID='" + cmbChargerWorkName.SelectedValue.ToString() + "'";
                }
                else
                {
                    strFilter += txtFilter.Text;
                }

                MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                MODELWATERFEECHARGE.DAYCHECKSTATE      = "1";
                MODELWATERFEECHARGE.DAYCHECKWORKERNAME = strUserName;
                MODELWATERFEECHARGE.DAYCHECKDATETIME   = mes.GetDatetimeNow();
                int intCount = BLLWATERFEECHARGE.UpdateDayCheckState(MODELWATERFEECHARGE, strFilter);
                mes.Show("成功审核:" + intCount + "条收费单据");
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
        private void 反月结ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dgHistoryWaterFee.CurrentRow == null)
            {
                return;
            }
            object objChargeID = dgHistoryWaterFee.CurrentRow.Cells["CHARGEID"].Value;

            if (objChargeID != null && objChargeID != DBNull.Value)
            {
                if (mes.ShowQ("确定要将单号为'" + objChargeID.ToString() + "'的收费单据反月结吗?") == DialogResult.OK)
                {
                    MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                    MODELWATERFEECHARGE.CHARGEID = objChargeID.ToString();
                    //MODELWATERFEECHARGE.SETTLEACCOUNTSSSID = null;
                    MODELWATERFEECHARGE.MONTHCHECKSTATE = "0";
                    if (BLLWATERFEECHARGE.UpdateMonthCheckState(MODELWATERFEECHARGE, " AND CHARGEID='" + objChargeID.ToString() + "'") > 0)
                    {
                        dgHistoryWaterFee.CurrentRow.Cells["SETTLEACCOUNTSSSID"].Value = DBNull.Value;
                        mes.Show("反月结成功!");
                    }
                    else
                    {
                        mes.Show("反月结失败,请重新选择单据后重试!");
                    }
                }
            }
            else
            {
                mes.Show("获取单号失败,请重新选择要操作的单号!");
                return;
            }
        }
        private void btModify_Click(object sender, EventArgs e)
        {
            if (cmbChargeTypeNew.SelectedValue == null || cmbChargeTypeNew.SelectedValue == DBNull.Value)
            {
                mes.Show("新的收款方式不能为空!");
                return;
            }
            if (dgHistoryWaterFee.CurrentRow == null)
            {
                return;
            }

            string strID = cmbChargeTypeNew.SelectedValue.ToString();

            if (strID == "2" || strID == "3")
            {
                if (txtJYLSH.Text.Trim() == "")
                {
                    mes.Show("请输入交易凭证号!");
                    return;
                }
            }
            try
            {
                object objChargeID = dgHistoryWaterFee.CurrentRow.Cells["CHARGEID"].Value;
                if (objChargeID != null && objChargeID != DBNull.Value)
                {
                    MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                    MODELWATERFEECHARGE.CHARGEID     = objChargeID.ToString();
                    MODELWATERFEECHARGE.CHARGETYPEID = strID;
                    if (strID == "2" || strID == "3")
                    {
                        MODELWATERFEECHARGE.POSRUNNINGNO = txtJYLSH.Text;
                    }

                    if (BLLWATERFEECHARGE.UpdateChargeType(MODELWATERFEECHARGE))
                    {
                        dgHistoryWaterFee.CurrentRow.Cells["CHARGETYPEID"].Value   = MODELWATERFEECHARGE.CHARGETYPEID;
                        dgHistoryWaterFee.CurrentRow.Cells["CHARGETYPENAME"].Value = cmbChargeTypeNew.Text;
                        dgHistoryWaterFee.CurrentRow.Cells["POSRUNNINGNO"].Value   = MODELWATERFEECHARGE.POSRUNNINGNO;
                        mes.Show("修改成功!");
                    }
                    else
                    {
                        mes.Show("修改失败!");
                    }
                }
            }
            catch (Exception ex)
            {
                mes.Show("修改收款方式失败,原因:" + ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
                return;
            }
        }
        private void 反日结ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (dgHistoryWaterFee.CurrentRow == null)
            {
                return;
            }

            object objJZ = dgHistoryWaterFee.CurrentRow.Cells["SETTLEACCOUNTSSSID"].Value;

            if (objJZ != null && objJZ != DBNull.Value && objJZ.ToString() != "")
            {
                mes.Show("该单据已月账,无法执行此操作!");
                return;
            }
            object objChargeID = dgHistoryWaterFee.CurrentRow.Cells["CHARGEID"].Value;

            if (objChargeID != null && objChargeID != DBNull.Value)
            {
                if (mes.ShowQ("确定要将单号为'" + objChargeID.ToString() + "'的收费单据反日结吗?") == DialogResult.OK)
                {
                    MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                    MODELWATERFEECHARGE.CHARGEID      = objChargeID.ToString();
                    MODELWATERFEECHARGE.DAYCHECKSTATE = "0";
                    if (BLLWATERFEECHARGE.UpdateDayCheckState(MODELWATERFEECHARGE, " AND CHARGEID='" + objChargeID.ToString() + "'") > 0)
                    {
                        dgHistoryWaterFee.CurrentRow.Cells["DAYCHECKSTATES"].Value = "否";
                        mes.Show("反日结成功!");
                    }
                    else
                    {
                        mes.Show("反日结失败,请重新选择单据后重试!");
                    }
                }
            }
            else
            {
                mes.Show("获取单号失败,请重新选择要操作的单号!");
                return;
            }
        }
        private void btCharge_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgWaterUser.Rows.Count == 0)
                {
                    mes.Show("未找到预交水费的用户信息!");
                    return;
                }

                if (cmbChargeType.SelectedValue == null || cmbChargeType.SelectedValue == DBNull.Value)
                {
                    mes.Show("收费方式不能为空!");
                    cmbChargeType.Focus();
                    return;
                }
                if (!Information.IsNumeric(txtBCYC.Text))
                {
                    return;
                }
                else
                if (Convert.ToDecimal(txtBCYC.Text) <= 0)
                {
                    mes.Show("预存金额不能为'0'");
                    txtBCYC.Focus();
                    return;
                }

                for (int i = 0; i < dgWaterUser.SelectedRows.Count; i++)
                {
                    try
                    {
                        string strWaterUserID = "", strWaterUserNO = "", strWaterUserName = "", strWaterUserNameCode = "", strTelNO = "", strWaterUserPhone = "", strWaterUserAddress = "",
                               strAreaNO = "", strPianNO = "", strDuanNO = "", strCommunityID = "", strCommunityName = "", strBuildingNO = "", strUnitNO = "", strMeterReaderID = "",
                               strMeterReaderName = "", strMeterReaderTel = "", strChargeID = "", strChargerName = "", strWaterUserTypeID = "", strWaterUserTypeName = "", strWaterUserHouseType = "",
                               strCreateType = "", strWaterMeterTypeID = "", strWaterMeterTypeName = "", strWaterMeterTypeClassID = "", strWaterMeterTypeClassName = "";
                        int intPepleCount = 1, intOrderNumber = 0;

                        object objWaterUserID = dgWaterUser.SelectedRows[i].Cells["waterUserId"].Value;
                        if (objWaterUserID == null || objWaterUserID == DBNull.Value)
                        {
                            mes.Show("第'" + (i + 1).ToString() + "行用户ID获取失败,批量收费终止!");
                            return;
                        }

                        //计算结算余额
                        decimal decQQYE = 0, decJSYE = 0;
                        object  objPrestore = dgWaterUser.SelectedRows[i].Cells["prestore"].Value;
                        if (Information.IsNumeric(objPrestore))
                        {
                            decQQYE = Convert.ToDecimal(objPrestore);
                        }

                        decJSYE = decQQYE + Convert.ToDecimal(txtBCYC.Text);

                        #region 生成用户信息
                        strWaterUserID = objWaterUserID.ToString();
                        object objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserNO"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserNO = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserName"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserTelphoneNO"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strTelNO = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterPhone"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserPhone = objWaterUserMes.ToString();
                        }

                        object objWaterUser = dgWaterUser.SelectedRows[i].Cells["areaNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strAreaNO = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["pianNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strPianNO = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["DuanNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strDuanNO = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["COMMUNITYID"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strCommunityID = objWaterUser.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["COMMUNITYNAME"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strCommunityName = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["buildingNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strBuildingNO = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["unitNO"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strUnitNO = objWaterUser.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERUSERTYPEID"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserTypeID = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserTypeName"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserTypeName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPEID"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeID = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPEVALUE"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPECLASSID"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeClassID = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERMETERTYPECLASSNAME"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterMeterTypeClassName = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserAddress"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserAddress = objWaterUserMes.ToString();
                        }
                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["createType"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strCreateType = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["METERREADERID"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strMeterReaderID = objWaterUser.ToString();

                            DataRow[] drMeterReader     = dtMeterReader.Select("LOGINID='" + strMeterReaderID + "'");
                            object    objMeterReaderTel = drMeterReader[0]["TELEPHONENO"];
                            if (objMeterReaderTel != null && objMeterReaderTel != DBNull.Value)
                            {
                                strMeterReaderTel = objMeterReaderTel.ToString();
                            }
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["meterReaderName"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strMeterReaderName = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["chargerName"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strChargerName = objWaterUser.ToString();
                        }

                        objWaterUser = dgWaterUser.SelectedRows[i].Cells["CHARGERID"].Value;
                        if (objWaterUser != null && objWaterUser != DBNull.Value)
                        {
                            strChargeID = objWaterUser.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["waterUserHouseTypeS"].Value;
                        if (objWaterUserMes != null && objWaterUserMes != DBNull.Value)
                        {
                            strWaterUserHouseType = objWaterUserMes.ToString();
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["ordernumber"].Value;
                        if (Information.IsNumeric(objWaterUserMes))
                        {
                            intOrderNumber = Convert.ToInt16(objWaterUserMes);
                        }

                        objWaterUserMes = dgWaterUser.SelectedRows[i].Cells["WATERUSERPEOPLECOUNT"].Value;
                        if (Information.IsNumeric(objWaterUserMes))
                        {
                            intPepleCount = Convert.ToInt16(objWaterUserMes);
                        }
                        #endregion

                        MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                        MODELWATERFEECHARGE.CHARGEID     = GETTABLEID.GetTableID(strLoginID, "WATERFEECHARGE");
                        MODELWATERFEECHARGE.CHARGETYPEID = cmbChargeType.SelectedValue.ToString();
                        if (cmbChargeType.SelectedValue.ToString() == "2")
                        {
                            MODELWATERFEECHARGE.POSRUNNINGNO = txtJYLSH.Text;
                        }
                        MODELWATERFEECHARGE.CHARGEClASS      = "2";//收费类型是水费预收
                        MODELWATERFEECHARGE.CHARGEBCSS       = Convert.ToDecimal(txtBCYC.Text);
                        MODELWATERFEECHARGE.CHARGEYSQQYE     = decQQYE;
                        MODELWATERFEECHARGE.CHARGEYSBCSZ     = Convert.ToDecimal(txtBCYC.Text);
                        MODELWATERFEECHARGE.CHARGEYSJSYE     = decJSYE;
                        MODELWATERFEECHARGE.CHARGEWORKERID   = strLoginID;
                        MODELWATERFEECHARGE.CHARGEWORKERNAME = strLoginName;
                        MODELWATERFEECHARGE.CHARGEDATETIME   = mes.GetDatetimeNow();
                        MODELWATERFEECHARGE.INVOICEPRINTSIGN = "0";
                        if (chkReceipt.Checked)
                        {
                            MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 1;
                            MODELWATERFEECHARGE.RECEIPTNO         = txtReceiptNO.Text;
                        }
                        if (BLLWATERFEECHARGE.Insert(MODELWATERFEECHARGE))
                        {
                            try
                            {
                                MODELPRESTORERUNNINGACCOUNT MODELPRESTORERUNNINGACCOUNT = new MODELPRESTORERUNNINGACCOUNT();
                                MODELPRESTORERUNNINGACCOUNT.PRESTORERUNNINGACCOUNTID = GETTABLEID.GetTableID(strLoginID, "PRESTORERUNNINGACCOUNT");
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERID       = strWaterUserID;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERNO       = strWaterUserNO;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERNAME     = strWaterUserName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERNAMECODE = strWaterUserNameCode;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE    = strTelNO;
                                if (strWaterUserPhone != "")
                                {
                                    if (strTelNO != "")
                                    {
                                        MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE = strTelNO + ";" + strWaterUserPhone;
                                    }
                                    else
                                    {
                                        MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE = strWaterUserPhone;
                                    }
                                }

                                MODELPRESTORERUNNINGACCOUNT.WATERUSERADDRESS     = strWaterUserAddress;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERPEOPLECOUNT = intPepleCount;
                                MODELPRESTORERUNNINGACCOUNT.AREANO        = strAreaNO;
                                MODELPRESTORERUNNINGACCOUNT.PIANNO        = strPianNO;
                                MODELPRESTORERUNNINGACCOUNT.DUANNO        = strDuanNO;
                                MODELPRESTORERUNNINGACCOUNT.COMMUNITYID   = strCommunityID;
                                MODELPRESTORERUNNINGACCOUNT.COMMUNITYNAME = strCommunityName;

                                MODELPRESTORERUNNINGACCOUNT.ORDERNUMBER             = intOrderNumber;
                                MODELPRESTORERUNNINGACCOUNT.BUILDINGNO              = strBuildingNO;
                                MODELPRESTORERUNNINGACCOUNT.UNITNO                  = strUnitNO;
                                MODELPRESTORERUNNINGACCOUNT.METERREADERID           = strMeterReaderID;
                                MODELPRESTORERUNNINGACCOUNT.METERREADERNAME         = strMeterReaderName;
                                MODELPRESTORERUNNINGACCOUNT.CHARGERID               = strLoginID;
                                MODELPRESTORERUNNINGACCOUNT.CHARGERNAME             = strLoginName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPEID         = strWaterUserTypeID;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = strWaterUserTypeName;
                                MODELPRESTORERUNNINGACCOUNT.waterMeterTypeId        = strWaterMeterTypeID;
                                MODELPRESTORERUNNINGACCOUNT.waterMeterTypeValue     = strWaterMeterTypeName;
                                MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSID   = strWaterMeterTypeClassID;
                                MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSNAME = strWaterMeterTypeClassName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = strWaterUserTypeName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = strWaterUserTypeName;
                                MODELPRESTORERUNNINGACCOUNT.WATERUSERHOUSETYPE      = strWaterUserHouseType;
                                MODELPRESTORERUNNINGACCOUNT.CREATETYPE              = strCreateType;
                                MODELPRESTORERUNNINGACCOUNT.MEMO     = txtMemo.Text;
                                MODELPRESTORERUNNINGACCOUNT.CHARGEID = MODELWATERFEECHARGE.CHARGEID;
                                if (BLLPRESTORERUNNINGACCOUNT.Insert(MODELPRESTORERUNNINGACCOUNT))
                                {
                                    //txtYSQQYE.Text = txtJSYE.Text;
                                    //txtWaterFeeReal.Text =( Convert.ToDecimal(txtWaterFee.Text) - Convert.ToDecimal(txtYSQQYE.Text)).ToString();
                                    //txtBCYC.Text = "0";

                                    //更新余额
                                    string strUpdatePrestore = "UPDATE waterUser SET prestore=" + MODELWATERFEECHARGE.CHARGEYSJSYE + " WHERE waterUserId='" + strWaterUserID + "'";
                                    if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                                    {
                                        string strError = "更新用户编号为'" + strWaterUserNO + "'的余额失败,请重新收费!";
                                        mes.Show(strError);
                                        log.Write(strError, MsgType.Error);
                                        //回滚预存流水表
                                        BLLPRESTORERUNNINGACCOUNT.Delete(MODELPRESTORERUNNINGACCOUNT.PRESTORERUNNINGACCOUNTID);
                                        //回滚收费记录表
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                    }
                                    else
                                    {
                                        decimal decUserArearage = 0, decWaterUserPrestore = 0;
                                        object  objUserArearage = dgWaterUser.SelectedRows[i].Cells["USERAREARAGE"].Value;
                                        if (Information.IsNumeric(objUserArearage))
                                        {
                                            decUserArearage = Convert.ToDecimal(objUserArearage);
                                        }
                                        object objUserPrestore = dgWaterUser.SelectedRows[i].Cells["prestore"].Value;
                                        if (Information.IsNumeric(objUserPrestore))
                                        {
                                            decWaterUserPrestore = Convert.ToDecimal(objUserPrestore);
                                        }
                                        decWaterUserPrestore = decWaterUserPrestore + MODELWATERFEECHARGE.CHARGEBCSS;
                                        decUserArearage      = decUserArearage + MODELWATERFEECHARGE.CHARGEBCSS;
                                        dgWaterUser.SelectedRows[i].Cells["USERAREARAGE"].Value = decUserArearage.ToString("F2");
                                        dgWaterUser.SelectedRows[i].Cells["prestore"].Value     = decWaterUserPrestore.ToString("F2");
                                    }
                                    //如果勾选了打收据,打印收据
                                    if (chkReceipt.Checked)
                                    {
                                        //--打印收据
                                        #region
                                        FastReport.Report report1 = new FastReport.Report();
                                        try
                                        {
                                            DataTable dtLastRecord = BLLwaterUser.QuerySQL("SELECT TOP 1 readMeterRecordId,readMeterRecordYearAndMonth,waterMeterLastNumber," +
                                                                                           "(CASE chargeState WHEN 0  THEN waterMeterLastNumber " +
                                                                                           "ELSE waterMeterEndNumber END) AS waterMeterEndNumber " +
                                                                                           "FROM readMeterRecord " +
                                                                                           "WHERE WATERUSERID='" +
                                                                                           strWaterUserID + "' ORDER BY readMeterRecordYearAndMonth DESC,readMeterRecordDate DESC");
                                            DataTable dtTemp = dtLastRecord.Clone();
                                            dtTemp.Columns["readMeterRecordYearAndMonth"].DataType = typeof(string);
                                            if (dtLastRecord.Rows.Count > 0)
                                            {
                                                dtTemp.ImportRow(dtLastRecord.Rows[0]);
                                                object objReadMeterRecordYearAndMonth = dtTemp.Rows[0]["readMeterRecordYearAndMonth"];
                                                if (Information.IsDate(objReadMeterRecordYearAndMonth))
                                                {
                                                    dtTemp.Rows[0]["readMeterRecordYearAndMonth"] = Convert.ToDateTime(objReadMeterRecordYearAndMonth).ToString("yyyy-MM");
                                                }
                                            }
                                            //DataTable dtTemp = dtLastRecord.Copy();
                                            DataSet ds = new DataSet();
                                            dtTemp.TableName = "营业坐收收据模板";
                                            ds.Tables.Add(dtTemp);
                                            // load the existing report
                                            report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\预存收费收据模板.frx");

                                            (report1.FindObject("txtDateTime") as FastReport.TextObject).Text = MODELWATERFEECHARGE.CHARGEDATETIME.ToString("yyyy-MM-dd HH:mm:ss");
                                            //if (cmbChargeType.SelectedValue.ToString() == "2")
                                            //{
                                            //    (report1.FindObject("Cell45") as FastReport.Table.TableCell).Text = txtWaterUserNO.Text + "   交易流水号:" + txtJYLSH.Text;
                                            //}
                                            //else
                                            (report1.FindObject("CellWaterUserNO") as FastReport.Table.TableCell).Text      = strWaterUserNO;
                                            (report1.FindObject("CellWaterUserName") as FastReport.Table.TableCell).Text    = strWaterUserName;
                                            (report1.FindObject("CellWaterUserAddress") as FastReport.Table.TableCell).Text = strWaterUserAddress;

                                            (report1.FindObject("txtQQYE") as FastReport.TextObject).Text = "前期余额: " + MODELWATERFEECHARGE.CHARGEYSQQYE.ToString("F2");
                                            string strBCSS = MODELWATERFEECHARGE.CHARGEBCSS.ToString("F2");
                                            (report1.FindObject("txtBCJF") as FastReport.TextObject).Text = "本次预存:         " + strBCSS;
                                            (report1.FindObject("txtJSYE") as FastReport.TextObject).Text = "结算余额: " + MODELWATERFEECHARGE.CHARGEYSJSYE.ToString("F2");

                                            //if (cmbChargeType.SelectedValue.ToString() == "2")
                                            //{
                                            //    (report1.FindObject("txtPOSRUNNINGNO") as FastReport.TextObject).Text = "交易流水号: " + MODELWATERFEECHARGE.POSRUNNINGNO;
                                            //}
                                            (report1.FindObject("txtChargeWorkerName") as FastReport.TextObject).Text = strLoginName;
                                            (report1.FindObject("txtReceiptNO") as FastReport.TextObject).Text        = "NO." + txtReceiptNO.Text;

                                            (report1.FindObject("txtMeterReader") as FastReport.TextObject).Text    = strMeterReaderName;
                                            (report1.FindObject("txtMeterReaderTel") as FastReport.TextObject).Text = strMeterReaderTel;

                                            string strCapMoney = RMBToCapMoney.CmycurD(strBCSS);
                                            if (cmbChargeType.SelectedValue.ToString() == "2")
                                            {
                                                (report1.FindObject("txtCapMoney") as FastReport.TextObject).Text = "金额大写:" + strCapMoney + Environment.NewLine + "交易流水号:" + txtJYLSH.Text;
                                            }
                                            else
                                            {
                                                (report1.FindObject("txtCapMoney") as FastReport.TextObject).Text = "金额大写:" + strCapMoney;
                                            }

                                            // register the dataset
                                            report1.RegisterData(ds);
                                            report1.GetDataSource("营业坐收收据模板").Enabled = true;
                                            report1.PrintSettings.ShowDialog          = false;
                                            report1.Prepare();
                                            report1.Print();

                                            //获取新的收据号码,8位收据号
                                            if (Information.IsNumeric(txtReceiptNO.Text))
                                            {
                                                txtReceiptNO.Text = (Convert.ToInt64(txtReceiptNO.Text) + 1).ToString().PadLeft(8, '0');
                                            }
                                        }
                                        catch (Exception exx)
                                        {
                                            MessageBox.Show(exx.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                            return;
                                        }
                                        finally
                                        {
                                            // free resources used by report
                                            report1.Dispose();
                                        }
                                        #endregion
                                    }
                                }
                            }
                            catch (Exception exx)
                            {
                                mes.Show("插入预收流水表失败!原因:" + exx.Message);
                                log.Write(exx.ToString(), MsgType.Error);
                                return;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show("预收失败!原因:" + ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        return;
                    }
                }
                btCharge.Enabled = false;
                //dgWaterList.DataSource = null;
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
                return;
            }
        }
Esempio n. 6
0
        private void btCancel_Click(object sender, EventArgs e)
        {
            try
            {
                if (labID.Text != "")
                {
                    if (mes.ShowQ("确定要冲销单号为'" + labID.Text + "'的预存记录吗?") != DialogResult.OK)
                    {
                        return;
                    }

                    bool isReCharge = false;//是否将实收金额退还到用户余额标志
                    if (mes.ShowQ("是否将预存金额'" + labBCSZ.Text + "'从用户余额中扣除?") == DialogResult.OK)
                    {
                        isReCharge = true;
                    }
                    else
                    {
                        isReCharge = false;
                    }
                    #region 生成退费记录
                    MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                    MODELWATERFEECHARGE.CHARGEID    = GETTABLEID.GetTableID(strLogID, "WATERFEECHARGE");
                    MODELWATERFEECHARGE.CHARGEClASS = "5";//收费类型是冲销预存

                    if (Information.IsNumeric(labYE.Text))
                    {
                        MODELWATERFEECHARGE.CHARGEYSQQYE = Convert.ToDecimal(labYE.Text);
                    }

                    if (isReCharge)
                    {
                        if (Information.IsNumeric(labBCSZ.Text))
                        {
                            MODELWATERFEECHARGE.CHARGEYSBCSZ = 0 - Convert.ToDecimal(labBCSZ.Text);
                        }

                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                        if (MODELWATERFEECHARGE.CHARGEYSJSYE < 0)
                        {
                            mes.Show("用户余额不足,无法冲销此单号,请先冲销生成的水费后重试!");
                            return;
                        }
                    }
                    else
                    {
                        MODELWATERFEECHARGE.CHARGEYSBCSZ = 0;
                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE;
                    }
                    MODELWATERFEECHARGE.CHARGEWORKERID    = strLogID;
                    MODELWATERFEECHARGE.CHARGEWORKERNAME  = strUserName;
                    MODELWATERFEECHARGE.CHARGEDATETIME    = mes.GetDatetimeNow();
                    MODELWATERFEECHARGE.INVOICEPRINTSIGN  = "0";
                    MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 0;
                    MODELWATERFEECHARGE.MEMO = "红冲单号:" + labID.Text;
                    try
                    {
                        //插入收费记录
                        string strInserChargeSQL = "INSERT INTO WATERFEECHARGE(CHARGEID,TOTALNUMBERCHARGE,EXTRACHARGECHARGE1,EXTRACHARGECHARGE2," +
                                                   "WATERTOTALCHARGE,EXTRATOTALCHARGE,TOTALCHARGE,OVERDUEMONEY,CHARGETYPEID,CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE," +
                                                   "CHARGEYSBCSZ,CHARGEYSJSYE,CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME,INVOICEPRINTSIGN,RECEIPTPRINTCOUNT,MEMO) " +
                                                   "SELECT '" + MODELWATERFEECHARGE.CHARGEID + "',0-TOTALNUMBERCHARGE,0-EXTRACHARGECHARGE1,0-EXTRACHARGECHARGE2," +
                                                   "0-WATERTOTALCHARGE,0-EXTRATOTALCHARGE,0-TOTALCHARGE,0-OVERDUEMONEY,CHARGETYPEID,CHARGEClASS,0,0-CHARGEBCSS," +
                                                   MODELWATERFEECHARGE.CHARGEYSQQYE + "," + MODELWATERFEECHARGE.CHARGEYSBCSZ + "," +
                                                   MODELWATERFEECHARGE.CHARGEYSJSYE + ",CHARGEWORKERID,CHARGEWORKERNAME,'" + MODELWATERFEECHARGE.CHARGEDATETIME + "',0,0,'" +
                                                   MODELWATERFEECHARGE.MEMO + "' FROM WATERFEECHARGE WHERE CHARGEID='" + labID.Text + "'";

                        if (BLLreadMeterRecord.Excute(strInserChargeSQL) > 0)
                        {
                            try
                            {
                                object objPrestoreID = dtList.Rows[0]["PRESTORERUNNINGACCOUNTID"];
                                if (objPrestoreID != null && objPrestoreID != DBNull.Value)
                                {
                                    string strPrestoreID    = GETTABLEID.GetTableID("", "PRESTORERUNNINGACCOUNT");
                                    string strInserPrestore = "INSERT INTO [PRESTORERUNNINGACCOUNT]([PRESTORERUNNINGACCOUNTID],[CHARGEID],[WATERUSERID],[WATERUSERNO]" +
                                                              ",[WATERUSERNAME],[WATERUSERPHONE],[WATERUSERADDRESS],[AREANO],[PIANNO],DUANNO,ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,BUILDINGNO,UNITNO," +
                                                              "METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,[WATERUSERTYPEID],[WATERUSERTYPENAME],WATERMETERTYPEID," +
                                                              "WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,WATERMETERTYPECLASSNAME,[WATERUSERHOUSETYPE],[MEMO]) " +
                                                              "SELECT '" + strPrestoreID + "','" + MODELWATERFEECHARGE.CHARGEID + "'," + "[WATERUSERID],[WATERUSERNO]" +
                                                              ",[WATERUSERNAME],[WATERUSERPHONE],[WATERUSERADDRESS],[AREANO],[PIANNO],DUANNO,ORDERNUMBER,COMMUNITYID,COMMUNITYNAME,BUILDINGNO,UNITNO," +
                                                              "METERREADERID,METERREADERNAME,CHARGERID,CHARGERNAME,[WATERUSERTYPEID],[WATERUSERTYPENAME],WATERMETERTYPEID," +
                                                              "WATERMETERTYPEVALUE,WATERMETERTYPECLASSID,WATERMETERTYPECLASSNAME,[WATERUSERHOUSETYPE],'红冲单号:" + objPrestoreID.ToString() + "'" +
                                                              " FROM PRESTORERUNNINGACCOUNT WHERE PRESTORERUNNINGACCOUNTID='" + objPrestoreID.ToString() + "'";
                                    if (BLLreadMeterRecord.Excute(strInserPrestore) > 0)
                                    {
                                        if (isReCharge)
                                        {
                                            try
                                            {
                                                if (labWaterUserID.Text != "")
                                                {
                                                    //更新余额
                                                    string strUpdatePrestore = "UPDATE waterUser SET prestore+=" + MODELWATERFEECHARGE.CHARGEYSBCSZ + " WHERE waterUserId='" + labWaterUserID.Text + "'";
                                                    if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                                                    {
                                                        string strError = "更新用户编号为'" + labWaterUserID.Text + "'的余额失败,请重新操作!";
                                                        mes.Show(strError);
                                                        log.Write(strError, MsgType.Error);
                                                        return;
                                                    }
                                                }
                                                else
                                                {
                                                    //如果余额无法更新,需要回滚已经插入成功的预存流水记录
                                                    BLLPRESTORERUNNINGACCOUNT.Delete(strPrestoreID);

                                                    //回滚收费记录
                                                    BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                                    return;
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                //如果余额无法更新,需要回滚已经插入成功的预存流水记录
                                                BLLPRESTORERUNNINGACCOUNT.Delete(strPrestoreID);

                                                //回滚收费记录
                                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                                mes.Show(ex.Message);
                                                log.Write(ex.ToString(), MsgType.Error);
                                                return;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        //回滚收费记录
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                        mes.Show("插入预存流水记录失败,请重新操作!");
                                        return;
                                    }
                                }
                                else
                                {
                                    //回滚收费记录
                                    BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                    mes.Show("获取预存流水记录ID失败,请重新操作!");
                                    return;
                                }
                            }
                            catch (Exception ex)
                            {
                                mes.Show(ex.Message);
                                log.Write(ex.ToString(), MsgType.Error);
                                //回滚收费记录
                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                return;
                            }
                            btCancel.Enabled = false;
                            labTip.Visible   = true;
                        }
                        else
                        {
                            mes.Show("生成冲销单据失败,请重新操作!");
                            return;
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show(ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        return;
                    }
                    #endregion
                }
                else
                {
                    mes.Show("系统检测到单据ID为空,请重新打开此窗体!");
                    return;
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
Esempio n. 7
0
        private void toolDayCheck_Click(object sender, EventArgs e)
        {
            try
            {
                if (cmbChargerWorkName.SelectedValue == null || cmbChargerWorkName.SelectedValue == DBNull.Value)
                {
                    mes.Show("请选择收款员查询收款数据后再执行日结操作!");
                    return;
                }

                string    strFilterCheck = " AND DAYCHECKSTATE='1' " + txtFilter.Text;
                DataTable dtDaychecked   = BLLWATERFEECHARGE.QueryWaterFeeAndPrestoreCharge(strFilterCheck);
                if (dtDaychecked.Rows.Count > 0)
                {
                    mes.Show("本次查询含有已日结的数据,请删除历史日结信息或重新查询未日结信息后再日结!");
                    return;
                }

                //string strFilter = " AND DAYCHECKSTATE<>'1' ";

                string strFilter = txtFilter.Text;

                DataTable dtDayUnchecked = BLLWATERFEECHARGE.QueryWaterFeeAndPrestoreCharge(strFilter);
                if (dtDayUnchecked.Rows.Count == 0)
                {
                    mes.Show("未找到未日结的收费数据!");
                    return;
                }
                DateTime dtNow = mes.GetDatetimeNow();
                MODELDAYCHECKPERSONAL MODELDAYCHECKPERSONAL = new MODELDAYCHECKPERSONAL();
                MODELDAYCHECKPERSONAL.DAYCHECKID         = GETTABLEID.GetTableID(strLogID, "DAYCHECKPERSONAL");
                MODELDAYCHECKPERSONAL.DAYCHECKWORKERID   = cmbChargerWorkName.SelectedValue.ToString();
                MODELDAYCHECKPERSONAL.DAYCHECKWORKERNAME = cmbChargerWorkName.Text;
                MODELDAYCHECKPERSONAL.DAYCHECKDATEIME    = dtNow;
                MODELDAYCHECKPERSONAL.DAYCHECKSUMMONEY   = decBCSS;
                MODELDAYCHECKPERSONAL.DAYCHECKMONEY      = decYSBCSSXJ + decYCBCSZXJ;
                MODELDAYCHECKPERSONAL.DAYCHECKPOS        = decYSBCSSPOS + decYCBCSZPOS;
                MODELDAYCHECKPERSONAL.DAYCHECKZHUANZHANG = decYSBCSSZHUANZHANG + decYCBCSZZHUANZHANG;
                MODELDAYCHECKPERSONAL.RECEIPTNOCOUNT     = intYSRECEIPRNOCOUNT + intYCCount;
                MODELDAYCHECKPERSONAL.INVOICENOCOUNT     = intYSCount;
                MODELDAYCHECKPERSONAL.MEMO = null;
                if (BLLDAYCHECKPERSONAL.Insert(MODELDAYCHECKPERSONAL))
                {
                    try
                    {
                        string strFilterCanDayCheck = " AND CHARGEID IN (SELECT CHARGEID FROM V_WATERFEEANDPRESTORECHARGE WHERE 1=1 " + strFilter + ")";

                        MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                        MODELWATERFEECHARGE.DAYCHECKSTATE      = "1";
                        MODELWATERFEECHARGE.DAYCHECKWORKERNAME = MODELDAYCHECKPERSONAL.DAYCHECKWORKERNAME;
                        MODELWATERFEECHARGE.DAYCHECKDATETIME   = dtNow;
                        MODELWATERFEECHARGE.DAYCHECKID         = MODELDAYCHECKPERSONAL.DAYCHECKID;
                        int intCount = BLLWATERFEECHARGE.UpdateDayCheckState(MODELWATERFEECHARGE, strFilterCanDayCheck);
                        mes.Show("生成日结报表成功!");
                    }
                    catch (Exception ex)
                    {
                        mes.Show("更新日结标志失败,原因:" + ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        BLLDAYCHECKPERSONAL.Delete(MODELDAYCHECKPERSONAL.DAYCHECKID);
                    }
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
Esempio n. 8
0
        private void btCancel_Click(object sender, EventArgs e)
        {
            try
            {
                if (labID.Text != "")
                {
                    if (!(rbWaterFee.Checked || rbMoney.Checked))
                    {
                        mes.Show("请选择红冲类型!");
                        //rbWaterFee.Focus();
                        return;
                    }
                    if (mes.ShowQ("确定要红冲单号为'" + labID.Text + "'的收费记录吗?") != DialogResult.OK)
                    {
                        return;
                    }
                    #region 生成退费记录
                    MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                    MODELWATERFEECHARGE.CHARGEID    = GETTABLEID.GetTableID(strLogID, "WATERFEECHARGE");
                    MODELWATERFEECHARGE.CHARGEClASS = "4";//收费类型是水费冲减
                    if (Information.IsNumeric(labYE.Text))
                    {
                        MODELWATERFEECHARGE.CHARGEYSQQYE = Convert.ToDecimal(labYE.Text);
                    }

                    //存储本次应收和本次实收
                    decimal decBCYS = 0, decBCSS = 0;
                    if (Information.IsNumeric(labBCYS.Text))
                    {
                        decBCYS = Convert.ToDecimal(labBCYS.Text);
                    }

                    if (Information.IsNumeric(labBCSS.Text))
                    {
                        decBCSS = Convert.ToDecimal(labBCSS.Text);
                    }

                    if (rbWaterFee.Checked)
                    {
                        MODELWATERFEECHARGE.CHARGEBCSS   = 0;
                        MODELWATERFEECHARGE.CHARGEYSBCSZ = decBCYS;
                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                    }
                    else
                    {
                        MODELWATERFEECHARGE.CHARGEBCSS   = 0 - decBCSS;
                        MODELWATERFEECHARGE.CHARGEYSBCSZ = 0 - Convert.ToDecimal(labBCSZ.Text);
                        if ((MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ) < 0)
                        {
                            mes.Show("用户余额不足,无法红冲!用户余额:" + MODELWATERFEECHARGE.CHARGEYSQQYE + "元,本次收支:" + MODELWATERFEECHARGE.CHARGEYSBCSZ + "元");
                            return;
                        }

                        MODELWATERFEECHARGE.CHARGEYSJSYE = MODELWATERFEECHARGE.CHARGEYSQQYE + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                    }

                    MODELWATERFEECHARGE.CHARGEWORKERID    = strLogID;
                    MODELWATERFEECHARGE.CHARGEWORKERNAME  = strUserName;
                    MODELWATERFEECHARGE.CHARGEDATETIME    = mes.GetDatetimeNow();
                    MODELWATERFEECHARGE.INVOICEPRINTSIGN  = "0";
                    MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 0;
                    MODELWATERFEECHARGE.MEMO = "红冲收费单号:" + labID.Text;
                    try
                    {
                        //插入收费记录,本次实收=0-本次应收,本次实收包含实际收到的现金和前期余额之和
                        string strInserChargeSQL = "INSERT INTO WATERFEECHARGE(CHARGEID,TOTALNUMBERCHARGE,EXTRACHARGECHARGE1,EXTRACHARGECHARGE2," +
                                                   "WATERTOTALCHARGE,EXTRATOTALCHARGE,TOTALCHARGE,OVERDUEMONEY,CHARGETYPEID,CHARGEClASS,CHARGEBCYS,CHARGEBCSS,CHARGEYSQQYE," +
                                                   "CHARGEYSBCSZ,CHARGEYSJSYE,CHARGEWORKERID,CHARGEWORKERNAME,CHARGEDATETIME,INVOICEPRINTSIGN,RECEIPTPRINTCOUNT,MEMO) " +
                                                   "SELECT '" + MODELWATERFEECHARGE.CHARGEID + "',0-TOTALNUMBERCHARGE,0-EXTRACHARGECHARGE1,0-EXTRACHARGECHARGE2," +
                                                   "0-WATERTOTALCHARGE,0-EXTRATOTALCHARGE,0-TOTALCHARGE,0-OVERDUEMONEY,CHARGETYPEID,'" + MODELWATERFEECHARGE.CHARGEClASS +
                                                   "',0-CHARGEBCYS," + MODELWATERFEECHARGE.CHARGEBCSS + "," + MODELWATERFEECHARGE.CHARGEYSQQYE + "," + MODELWATERFEECHARGE.CHARGEYSBCSZ + "," +
                                                   MODELWATERFEECHARGE.CHARGEYSJSYE + ",CHARGEWORKERID,CHARGEWORKERNAME,'" + MODELWATERFEECHARGE.CHARGEDATETIME + "',0,0,'" +
                                                   MODELWATERFEECHARGE.MEMO + "' FROM WATERFEECHARGE WHERE CHARGEID='" + labID.Text + "'";

                        if (BLLreadMeterRecord.Excute(strInserChargeSQL) > 0)
                        {
                            string strIDS = "";
                            try
                            {
                                for (int i = 0; i < dtList.Rows.Count; i++)
                                {
                                    object objRecordID = dtList.Rows[0]["readMeterRecordId"];
                                    if (objRecordID != null && objRecordID != DBNull.Value)
                                    {
                                        //插入抄表记录 chargeState=4代表红冲 readMeterRecordDate设置为空,否则影响抄表初始化
                                        string strRecordID        = GETTABLEID.GetTableID(strLogID, "READMETERRECORD");
                                        string strInsertRecordSQL = "INSERT INTO [readMeterRecord]([readMeterRecordId],[readMeterRecordIdLast],[waterMeterId],[waterMeterNo]" +
                                                                    ",[lastNumberYearMonth],[waterMeterLastNumber],[waterMeterEndNumber],SUBMETERNUMBER,[totalNumber],[totalNumberDescribe],[avePrice]" +
                                                                    ",[avePriceDescribe],[waterTotalCharge],[extraChargePrice1],[extraCharge1],[extraChargePrice2],[extraCharge2],[extraChargePrice3]" +
                                                                    ",[extraCharge3],[extraChargePrice4],[extraCharge4],[extraChargePrice5],[extraCharge5],[extraChargePrice6],[extraCharge6]" +
                                                                    ",[extraChargePrice7],[extraCharge7],[extraChargePrice8],[extraCharge8],[extraTotalCharge],[trapezoidPrice],[extraCharge]" +
                                                                    ",[totalCharge],[OVERDUEMONEY],[WATERFIXVALUE],[readMeterRecordYear],[readMeterRecordMonth]," +
                                                                    "readMeterRecordYearAndMonth,initialReadMeterMesDateTime,[readMeterRecordDate],[waterMeterPositionName]" +
                                                                    ",[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName],[waterMeterProduct],[waterMeterSerialNumber]" +
                                                                    ",[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName],[checkState],[checkDateTime]" +
                                                                    ",[checker],[chargeState],[chargeID],[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode,[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,waterPhone,[waterUserAddress],[waterUserPeopleCount]" +
                                                                    ",[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]" +
                                                                    ",[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],[isSummaryMeter],[waterMeterParentId],[ordernumber] ,[memo]) " +

                                                                    "SELECT '" + strRecordID + "','" + objRecordID.ToString() + "',[waterMeterId],[waterMeterNo]" +
                                                                    ",[lastNumberYearMonth],[waterMeterEndNumber],[waterMeterLastNumber],0-SUBMETERNUMBER,0-[totalNumber],[totalNumberDescribe],[avePrice]" +
                                                                    ",[avePriceDescribe],0-[waterTotalCharge],[extraChargePrice1],0-[extraCharge1],[extraChargePrice2],0-[extraCharge2],[extraChargePrice3]" +
                                                                    ",0-[extraCharge3],[extraChargePrice4],0-[extraCharge4],[extraChargePrice5],0-[extraCharge5],[extraChargePrice6],0-[extraCharge6]" +
                                                                    ",[extraChargePrice7],0-[extraCharge7],[extraChargePrice8],0-[extraCharge8],0-[extraTotalCharge],[trapezoidPrice],[extraCharge]" +
                                                                    ",0-[totalCharge],0-[OVERDUEMONEY],[WATERFIXVALUE]," + MODELWATERFEECHARGE.CHARGEDATETIME.Year + "," + MODELWATERFEECHARGE.CHARGEDATETIME.Month + ",'" +
                                                                    MODELWATERFEECHARGE.CHARGEDATETIME + "',NULL,'" + MODELWATERFEECHARGE.CHARGEDATETIME + "',[waterMeterPositionName]" +
                                                                    ",[waterMeterSizeId],[waterMeterSizeValue],waterMeterTypeClassID,waterMeterTypeClassName,[waterMeterTypeId],[waterMeterTypeName]," +
                                                                    "[waterMeterProduct],[waterMeterSerialNumber]" + ",[waterMeterMode],[waterMeterMagnification],[waterMeterMaxRange],IsReverse,[chargerID],[chargerName],[meterReaderID],[meterReaderName]," +
                                                                    "[checkState],'" + MODELWATERFEECHARGE.CHARGEDATETIME + "','" + strUserName + "','3','" + MODELWATERFEECHARGE.CHARGEID + "',[waterUserId],[waterUserNO],[waterUserName],waterUserNameCode," +
                                                                    "[waterUserTelphoneNO],areaNO,pianNO,duanNO,communityID,COMMUNITYNAME,buildingNO,unitNO,createType,[waterPhone],[waterUserAddress],[waterUserPeopleCount]" +
                                                                    ",[meterReadingID],[meterReadingNO],[meterReadingPageNo],[waterUserTypeId],[waterUserTypeName],[waterUserCreateDate]" +
                                                                    ",[waterUserHouseType],[waterUserchargeType],[agentsign],[waterUserState],[bankId],[bankName],[BankAcountNumber],[isSummaryMeter],[waterMeterParentId],[ordernumber] ,'红冲台账:" + objRecordID.ToString() +
                                                                    "' FROM readMeterRecord WHERE readMeterRecordId='" + objRecordID.ToString() + "'";
                                        if (BLLreadMeterRecord.Excute(strInsertRecordSQL) > 0)
                                        {
                                            if (strIDS == "")
                                            {
                                                strIDS = strRecordID;
                                            }
                                            else
                                            {
                                                strIDS = "," + strRecordID;
                                            }
                                        }
                                        else
                                        {
                                            //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                            string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                            BLLreadMeterRecord.Excute(strSQLDelete);

                                            //回滚收费记录
                                            BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                            mes.Show("插入抄表记录表失败,请重新操作!");
                                            return;
                                        }
                                    }
                                    else
                                    {
                                        //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                        string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                        BLLreadMeterRecord.Excute(strSQLDelete);

                                        //回滚收费记录
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                        mes.Show("获取抄表记录ID失败,请重新操作!");
                                        return;
                                    }

                                    //if (isReCharge)
                                    //{
                                    try
                                    {
                                        if (labWaterUserID.Text != "")
                                        {
                                            //更新余额
                                            string strUpdatePrestore = "UPDATE waterUser SET prestore=" + MODELWATERFEECHARGE.CHARGEYSJSYE + " WHERE waterUserId='" + labWaterUserID.Text + "'";
                                            if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                                            {
                                                string strError = "更新用户编号为'" + labWaterUserID.Text + "'的余额失败,请重新操作!";
                                                mes.Show(strError);
                                                log.Write(strError, MsgType.Error);

                                                //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                                string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId='" + objRecordID.ToString() + "'";
                                                BLLreadMeterRecord.Excute(strSQLDelete);

                                                //回滚收费记录
                                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                                return;

                                                return;
                                            }
                                        }
                                        else
                                        {
                                            //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                            string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                            BLLreadMeterRecord.Excute(strSQLDelete);

                                            //回滚收费记录
                                            BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                            return;
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        //如果有一条未插入成功,需要回滚已经插入成功的抄表记录
                                        string strSQLDelete = "DELETE FROM readMeterRecord WHERE readMeterRecordId IN (" + strIDS + ")";
                                        BLLreadMeterRecord.Excute(strSQLDelete);

                                        //回滚收费记录
                                        BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                        return;
                                    }
                                }
                                //}
                                btCancel.Enabled = false;
                                labTip.Visible   = true;
                            }
                            catch (Exception ex)
                            {
                                //回滚收费记录
                                BLLWATERFEECHARGE.Delete(MODELWATERFEECHARGE.CHARGEID);
                                mes.Show(ex.Message);
                                log.Write(ex.ToString(), MsgType.Error);
                                return;
                            }
                        }
                        else
                        {
                            mes.Show("生成红冲单据失败,请重新操作!");
                            return;
                        }
                    }
                    catch (Exception ex)
                    {
                        mes.Show(ex.Message);
                        log.Write(ex.ToString(), MsgType.Error);
                        return;
                    }
                    #endregion
                }
                else
                {
                    mes.Show("系统检测到单据ID为空,请重新打开此窗体!");
                    return;
                }
            }
            catch (Exception ex)
            {
                mes.Show(ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
            }
        }
        private void btSetNoOnAccount_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgHistoryWaterFee.SelectedRows.Count > 0)
                {
                    if (mes.ShowQ("确定要将所有选择的行解除挂账处理吗?") != DialogResult.OK)
                    {
                        return;
                    }
                }

                DateTime dtNow = mes.GetDatetimeNow();

                for (int i = 0; i < dgHistoryWaterFee.SelectedRows.Count; i++)
                {
                    string strWaterUserName = "", strWaterUserID = "", strChargeState = "";

                    dtNow = dtNow.AddSeconds(1);

                    object objWaterUserID = dgHistoryWaterFee.SelectedRows[i].Cells["waterUserId"].Value;
                    if (objWaterUserID != null && objWaterUserID != DBNull.Value)
                    {
                        strWaterUserID = objWaterUserID.ToString();
                    }

                    object objWaterUserName = dgHistoryWaterFee.SelectedRows[i].Cells["waterUserName"].Value;
                    if (objWaterUserName != null && objWaterUserName != DBNull.Value)
                    {
                        strWaterUserName = objWaterUserName.ToString();
                    }

                    //如果已收费状态不允许再次解挂
                    object objChargeState = dgHistoryWaterFee.SelectedRows[i].Cells["chargestate"].FormattedValue;
                    if (objChargeState != null && objChargeState != DBNull.Value)
                    {
                        if (objChargeState.ToString() == "已收费")
                        {
                            continue;
                        }
                    }

                    object objReadMeterRecordID = dgHistoryWaterFee.SelectedRows[i].Cells["readMeterRecordId"].Value;
                    if (objReadMeterRecordID != null && objReadMeterRecordID != DBNull.Value)
                    {
                        string strSQL       = "UPDATE readMeterRecord SET chargeState='3' WHERE readMeterRecordId='" + objReadMeterRecordID.ToString() + "'";
                        int    intExcuteRow = 0;
                        try
                        {
                            intExcuteRow = BLLreadMeterRecord.Excute(strSQL);
                        }
                        catch (Exception ex)
                        {
                            log.Write(ex.ToString(), MsgType.Error);
                            mes.Show("更新收费状态失败:" + ex.Message);
                        }
                        if (intExcuteRow > 0)
                        {
                            decimal   decPrestore = 0, decJSYE = 0;//挂账时更新前期余额和结算余额
                            DataTable dtPrestore = BLLwaterUser.QueryUserPrestore(" AND WATERUSERID='" + strWaterUserID + "'");
                            if (dtPrestore.Rows.Count > 0)
                            {
                                object objPrestore = dtPrestore.Rows[0]["prestore"];
                                if (Information.IsNumeric(objPrestore))
                                {
                                    decPrestore = Convert.ToDecimal(objPrestore);
                                }

                                object objJSYE = dtPrestore.Rows[0]["USERAREARAGE"];
                                if (Information.IsNumeric(objJSYE))
                                {
                                    decJSYE = Convert.ToDecimal(objJSYE);
                                }
                            }

                            object objChargeID = dgHistoryWaterFee.SelectedRows[i].Cells["CHARGEID"].Value;
                            if (objChargeID != null && objChargeID != DBNull.Value)
                            {
                                MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                                MODELWATERFEECHARGE.CHARGEDATETIME = dtNow;
                                MODELWATERFEECHARGE.CHARGEYSQQYE   = decPrestore;
                                MODELWATERFEECHARGE.CHARGEYSJSYE   = decJSYE;
                                MODELWATERFEECHARGE.CHARGEID       = objChargeID.ToString();
                                bool isSuccess = false;
                                try
                                {
                                    isSuccess = BLLWATERFEECHARGE.UpdateChargeDateTime(MODELWATERFEECHARGE);
                                }
                                catch (Exception ex)
                                {
                                    log.Write(ex.ToString(), MsgType.Error);
                                    mes.Show("更新收费单号'" + MODELWATERFEECHARGE.CHARGEID + "'收费时间失败!\r\n原因:" + ex.Message + "\r\n单据解除挂账失败,请重试!");

                                    //回滚抄表状态
                                    strSQL = "UPDATE readMeterRecord SET chargeState='2' WHERE readMeterRecordId='" + objReadMeterRecordID.ToString() + "'";
                                    BLLreadMeterRecord.Excute(strSQL);
                                    return;
                                }
                                if (isSuccess)
                                {
                                    dgHistoryWaterFee.SelectedRows[i].Cells["CHARGEDATETIME"].Value = MODELWATERFEECHARGE.CHARGEDATETIME.ToString();
                                    dgHistoryWaterFee.SelectedRows[i].Cells["chargeState"].Value    = "已收费";
                                }
                                else
                                {
                                    mes.Show("更新收费单号'" + MODELWATERFEECHARGE.CHARGEID + "'收费时间失败!单据解除挂账失败,请重试!");
                                    //回滚抄表状态
                                    strSQL = "UPDATE readMeterRecord SET chargeState='2' WHERE readMeterRecordId='" + objReadMeterRecordID.ToString() + "'";
                                    BLLreadMeterRecord.Excute(strSQL);
                                    return;
                                }
                            }
                        }
                        else
                        {
                            mes.Show("用户'" + strWaterUserName + "'收费单据解除挂账失败,请重试!");
                            return;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                log.Write(ex.ToString(), MsgType.Error);
                mes.Show("错误:" + ex.Message);
            }
        }
        private void btCharge_Click(object sender, EventArgs e)
        {
            if (txtWaterUserID.Text.Trim() == "")
            {
                mes.Show("未找到用户ID信息,请重新查询后重试!");
                txtWaterUserNOSearch.Focus();
                return;
            }

            //如果用户存在欠费金额,则不允退费
            object objWaterUserQF = BLLreadMeterRecord.QueryQFByWaterUser(txtWaterUserID.Text.Trim());

            if (Information.IsNumeric(objWaterUserQF))
            {
                txtWaterFee.Text = Convert.ToDecimal(objWaterUserQF).ToString("F2");
                if (Convert.ToDecimal(objWaterUserQF) > 0)
                {
                    mes.Show("当前用户存在欠费余额,无法执行退费操作!");
                    return;
                }
            }
            else
            {
                txtWaterFee.Text = "0";
            }

            if (Convert.ToDecimal(txtYSQQYE.Text) <= 0)
            {
                mes.Show("用户预存余额为0,无需退费!");
                txtYSQQYE.Focus();
                return;
            }

            if (chkReceipt.Checked)
            {
                if (txtReceiptNO.Text.Trim() == "")
                {
                    mes.Show("请输入收据号!");
                    txtReceiptNO.Focus();
                    return;
                }
                if (!Information.IsNumeric(txtReceiptNO.Text))
                {
                    mes.Show("收据号只能由数字组成!");
                    txtReceiptNO.SelectAll();
                    return;
                }
                txtReceiptNO.Text = txtReceiptNO.Text.PadLeft(8, '0');
                if (BLLWATERFEECHARGE.IsExistReceiptNO(txtReceiptNO.Text))
                {
                    if (mes.ShowQ("系统检测到号码为'" + txtReceiptNO.Text + "'的收据已使用,确定使用此号码吗?") != DialogResult.OK)
                    {
                        txtReceiptNO.SelectAll();
                        return;
                    }
                }
            }

            try
            {
                MODELWATERFEECHARGE MODELWATERFEECHARGE = new MODELWATERFEECHARGE();
                MODELWATERFEECHARGE.CHARGEID         = GETTABLEID.GetTableID(strLoginID, "WATERFEECHARGE");
                MODELWATERFEECHARGE.CHARGETYPEID     = "1";
                MODELWATERFEECHARGE.CHARGEClASS      = "6";//收费类型是用户余额退费
                MODELWATERFEECHARGE.CHARGEYSQQYE     = Convert.ToDecimal(txtYSQQYE.Text);
                MODELWATERFEECHARGE.CHARGEBCSS       = 0 - MODELWATERFEECHARGE.CHARGEYSQQYE;
                MODELWATERFEECHARGE.CHARGEYSBCSZ     = 0 - MODELWATERFEECHARGE.CHARGEYSQQYE;
                MODELWATERFEECHARGE.CHARGEYSJSYE     = 0;
                MODELWATERFEECHARGE.CHARGEWORKERID   = strLoginID;
                MODELWATERFEECHARGE.CHARGEWORKERNAME = strLoginName;
                MODELWATERFEECHARGE.CHARGEDATETIME   = mes.GetDatetimeNow();
                MODELWATERFEECHARGE.INVOICEPRINTSIGN = "0";
                if (chkReceipt.Checked)
                {
                    MODELWATERFEECHARGE.RECEIPTPRINTCOUNT = 1;
                    MODELWATERFEECHARGE.RECEIPTNO         = txtReceiptNO.Text;
                }
                MODELWATERFEECHARGE.INVOICEPRINTSIGN = "0";
                MODELWATERFEECHARGE.MEMO             = txtMemo.Text;
                if (BLLWATERFEECHARGE.Insert(MODELWATERFEECHARGE))
                {
                    try
                    {
                        MODELPRESTORERUNNINGACCOUNT MODELPRESTORERUNNINGACCOUNT = new MODELPRESTORERUNNINGACCOUNT();
                        MODELPRESTORERUNNINGACCOUNT.PRESTORERUNNINGACCOUNTID = GETTABLEID.GetTableID(strLoginID, "PRESTORERUNNINGACCOUNT");
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERID       = txtWaterUserID.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERNO       = txtWaterUserNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERNAME     = txtWaterUserName.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERNAMECODE = txtNameCode.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERPHONE    = txtWaterUserPhone.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERADDRESS  = txtWaterUserAddress.Text;
                        if (Information.IsNumeric(txtWaterUserPeopleCount.Text))
                        {
                            MODELPRESTORERUNNINGACCOUNT.WATERUSERPEOPLECOUNT = Convert.ToInt16(txtWaterUserPeopleCount.Text);
                        }
                        MODELPRESTORERUNNINGACCOUNT.AREANO        = txtAreaNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.PIANNO        = txtPianNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.DUANNO        = txtDuanNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.COMMUNITYID   = txtCommunityID.Text;
                        MODELPRESTORERUNNINGACCOUNT.COMMUNITYNAME = txtCommunity.Text;
                        if (Information.IsNumeric(txtOrderNumber.Text))
                        {
                            MODELPRESTORERUNNINGACCOUNT.ORDERNUMBER = Convert.ToInt16(txtOrderNumber.Text);
                        }
                        //MODELPRESTORERUNNINGACCOUNT.BUILDINGNO = txtBuildingNO.Text;
                        //MODELPRESTORERUNNINGACCOUNT.UNITNO = txtUnitNO.Text;
                        MODELPRESTORERUNNINGACCOUNT.METERREADERID           = txtMeterReaderID.Text;
                        MODELPRESTORERUNNINGACCOUNT.METERREADERNAME         = txtMeterReader.Text;
                        MODELPRESTORERUNNINGACCOUNT.CHARGERID               = txtChargerID.Text;
                        MODELPRESTORERUNNINGACCOUNT.CHARGERNAME             = txtCharger.Text;
                        MODELPRESTORERUNNINGACCOUNT.waterMeterTypeId        = txtWaterMeterTypeID.Text;
                        MODELPRESTORERUNNINGACCOUNT.waterMeterTypeValue     = txtWaterMeterTypeValue.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSID   = txtWaterMeterTypeClassID.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERMETERTYPECLASSNAME = txtWaterMeterTypeClassName.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPEID         = txtWaterUserTypeID.Text;
                        MODELPRESTORERUNNINGACCOUNT.WATERUSERTYPENAME       = txtWaterUserType.Text;
                        //MODELPRESTORERUNNINGACCOUNT.WATERUSERHOUSETYPE = txtWaterUserHouseType.Text;
                        //MODELPRESTORERUNNINGACCOUNT.CREATETYPE = txtCreateType.Text;
                        //MODELPRESTORERUNNINGACCOUNT.MEMO = txtMemo.Text;
                        MODELPRESTORERUNNINGACCOUNT.CHARGEID = MODELWATERFEECHARGE.CHARGEID;
                        if (BLLPRESTORERUNNINGACCOUNT.Insert(MODELPRESTORERUNNINGACCOUNT))
                        {
                            //txtYSQQYE.Text = txtJSYE.Text;
                            //txtWaterFeeReal.Text =( Convert.ToDecimal(txtWaterFee.Text) - Convert.ToDecimal(txtYSQQYE.Text)).ToString();
                            //txtBCYC.Text = "0";
                            btCharge.Enabled = false;
                            btSearchLS_Click(null, null);

                            //更新余额
                            string strUpdatePrestore = "UPDATE waterUser SET prestore=" + MODELWATERFEECHARGE.CHARGEYSJSYE + " WHERE waterUserId='" + txtWaterUserID.Text + "'";
                            if (!BLLwaterUser.UpdateSQL(strUpdatePrestore))
                            {
                                string strError = "更新用户编号为'" + txtWaterUserID.Text + "'的余额失败,请手动添加预收余额!";
                                mes.Show(strError);
                                log.Write(strError, MsgType.Error);
                            }
                            //如果勾选了打收据,打印收据
                            else if (chkReceipt.Checked)
                            {
                                //--打印收据
                                #region
                                FastReport.Report report1 = new FastReport.Report();
                                try
                                {
                                    report1.Load(Application.StartupPath + @"\PRINTModel\收据模板\退费收据模板.frx");

                                    (report1.FindObject("txtDateTime") as FastReport.TextObject).Text = MODELWATERFEECHARGE.CHARGEDATETIME.ToString("yyyy-MM-dd HH:mm:ss");
                                    //if (cmbChargeType.SelectedValue.ToString() == "2")
                                    //{
                                    //    (report1.FindObject("Cell45") as FastReport.Table.TableCell).Text = txtWaterUserNO.Text + "   交易流水号:" + txtJYLSH.Text;
                                    //}
                                    //else
                                    (report1.FindObject("CellWaterUserNO") as FastReport.Table.TableCell).Text      = txtWaterUserNO.Text;
                                    (report1.FindObject("CellWaterUserName") as FastReport.Table.TableCell).Text    = txtWaterUserName.Text;
                                    (report1.FindObject("CellWaterUserAddress") as FastReport.Table.TableCell).Text = txtWaterUserAddress.Text;

                                    (report1.FindObject("txtQQYE") as FastReport.TextObject).Text = "前期余额: " + MODELWATERFEECHARGE.CHARGEYSQQYE.ToString("F2");
                                    (report1.FindObject("txtBCTF") as FastReport.TextObject).Text = "本次退费:         " + MODELWATERFEECHARGE.CHARGEYSBCSZ;
                                    (report1.FindObject("txtJSYE") as FastReport.TextObject).Text = "结算余额: " + MODELWATERFEECHARGE.CHARGEYSJSYE.ToString("F2");

                                    //if (cmbChargeType.SelectedValue.ToString() == "2")
                                    //{
                                    //    (report1.FindObject("txtPOSRUNNINGNO") as FastReport.TextObject).Text = "交易流水号: " + MODELWATERFEECHARGE.POSRUNNINGNO;
                                    //}
                                    (report1.FindObject("txtChargeWorkerName") as FastReport.TextObject).Text = strLoginName;
                                    (report1.FindObject("txtReceiptNO") as FastReport.TextObject).Text        = "NO." + txtReceiptNO.Text;

                                    (report1.FindObject("txtMeterReader") as FastReport.TextObject).Text    = txtMeterReader.Text;
                                    (report1.FindObject("txtMeterReaderTel") as FastReport.TextObject).Text = txtMeterReaderTel.Text;

                                    report1.PrintSettings.ShowDialog = false;
                                    report1.Prepare();
                                    report1.Print();

                                    //获取新的收据号码,8位收据号
                                    if (Information.IsNumeric(txtReceiptNO.Text))
                                    {
                                        txtReceiptNO.Text = (Convert.ToInt64(txtReceiptNO.Text) + 1).ToString().PadLeft(8, '0');
                                    }
                                }
                                catch (Exception exx)
                                {
                                    MessageBox.Show(exx.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                                finally
                                {
                                    // free resources used by report
                                    report1.Dispose();
                                }
                                #endregion
                            }
                        }
                    }
                    catch (Exception exx)
                    {
                        mes.Show("插入预收流水表失败!原因:" + exx.Message);
                        log.Write(exx.ToString(), MsgType.Error);
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                mes.Show("预收失败!原因:" + ex.Message);
                log.Write(ex.ToString(), MsgType.Error);
                return;
            }
        }