| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393 | using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using PTMedicalInsurance.Common;using PTMedicalInsurance.Helper;using Newtonsoft.Json.Linq;using PTMedicalInsurance.FormSetter;using System.IO;using System.IO.Compression;using PTMedicalInsurance.Business;using Sunny.UI;using Newtonsoft.Json;using System.Collections;using PTMedicalInsurance.Variables;using System.Threading;using FastReport.DevComponents.DotNetBar.Controls;namespace PTMedicalInsurance.Forms{    public partial class Clearing : Form    {        private string txtPath;        private string txtName;        private string finalAchPath;        private UIDataGridViewFooter dgvHisSettlRecFooter = new Sunny.UI.UIDataGridViewFooter();        JObject jo9102Rtn = new JObject();        public Clearing()        {            InitializeComponent();            this.StartPosition = FormStartPosition.CenterParent;        }        private void Clearing_Load(object sender, EventArgs e)        {            ComboxSetter cbxSetter = new ComboxSetter();            cbxSetter.setCbxInterfaceDataSource(cbxInterface);            cbxSetter.setCbxInterfaceDataSource(cbInterface_2);            cbxSetter.setCbxInterfaceDataSource(cbInterface_3);            cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "insutype", cbxInsuType);            cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_type", cbxClrType);            cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_type", cbClrType_2);            cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_way", cbClrWay_2);            cbxSetter.setCbxDictionaryDataSource("1", "clr_type", cbxClrType_O);            cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "med_type", cbxYllb);            cbxInterface.SelectedValueChanged += new EventHandler(cbxInterface_SelectedValueChanged);            cbInterface_2.SelectedValueChanged += new EventHandler(cbInterface_2_SelectedValueChanged);            cbInterface_3.SelectedValueChanged += new EventHandler(cbInterface_3_SelectedValueChanged);            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfCheck(dgvSettlSummary);                        grdSetter.SetHeaderTextOfClearingData(dgvClearingData);            grdSetter.SetHeaderTextOfOthPlcCheck(dgvOthCheck);                       cbgGroupSet.SelectAll();            cbgGroupSet.SetItemCheckState(4, false);            cbxValid.SelectedIndex = 0;            cbValid_2.SelectedIndex = 1;            cbValid_3.SelectedIndex = 0;            rbgTimeWay.SelectedIndex = 0;            dpST.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");            dpED.Value = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1);            dpST_2.Text = DateTime.Now.ToString("yyyy-MM-01 00:00:00");            dpED_2.Text = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).AddDays(-1).ToString("yyyy-MM-01 23:59:59");            dpED_3.Value = DateTime.Now;            WindowState = FormWindowState.Maximized;            tbTmp.Text= Global.currentDirectory + "\\Download";            tc_Main.SelectedIndex = 2;            rg_ClearType.SelectedIndex = 0;            rg_querType.SelectedIndex = 0;                                  }        private void cbxInterface_SelectedValueChanged(object sender, EventArgs e)        {            DataTable dtInteface = (DataTable)cbxInterface.DataSource;            int i = cbxInterface.SelectedIndex;            if (i != 2)            {                Global.pat.insuplc_admdvs = "";            }            else            {                Global.pat.insuplc_admdvs = "530199";            }            Global.inf.hospitalNO = dtInteface.Rows[i]["HospitalNO"].ToString();            Global.inf.hospitalName = dtInteface.Rows[i]["HospitalName"].ToString();            Global.inf.centerURL = dtInteface.Rows[i]["CenterURL"].ToString();            Global.inf.areaCode = dtInteface.Rows[i]["AreaCode"].ToString();            Global.user.name = "0";            Global.user.ID = "0";            Global.inf.operatoType = "3";            Global.inf.version = "v1.0";            Global.inf.recivedSystem = "SY";            Global.inf.interfaceDr = int.Parse(dtInteface.Rows[i]["ID"].ToString());            ComboxSetter cbxSetter = new ComboxSetter();            cbxSetter.setCbxDictionaryDataSource(dtInteface.Rows[i]["ID"].ToString(), "insutype", cbxInsuType);            cbxSetter.setCbxDictionaryDataSource(dtInteface.Rows[i]["ID"].ToString(), "clr_type", cbxClrType);        }        private void cbInterface_2_SelectedValueChanged(object sender, EventArgs e)        {            DataTable dtInteface = (DataTable)cbInterface_2.DataSource;            int i = cbInterface_2.SelectedIndex;            if (i != 2)            {                Global.inf.areaCode = "";            }            else            {                Global.pat.insuplc_admdvs = "530100";            }            Global.inf.hospitalNO = dtInteface.Rows[i]["HospitalNO"].ToString();            Global.inf.hospitalName = dtInteface.Rows[i]["HospitalName"].ToString();            Global.inf.centerURL = dtInteface.Rows[i]["CenterURL"].ToString();            Global.inf.areaCode = dtInteface.Rows[i]["AreaCode"].ToString();            Global.user.name = "0";            Global.user.ID = "0";            Global.inf.operatoType = "3";            Global.inf.version = "v1.0";            Global.inf.recivedSystem = "SY";            Global.inf.interfaceDr = int.Parse(dtInteface.Rows[i]["ID"].ToString());            ComboxSetter cbxSetter = new ComboxSetter();            cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_type", cbClrType_2);            cbxSetter.setCbxDictionaryDataSource(Global.inf.interfaceDr.ToString(), "clr_way", cbClrWay_2);        }        private void cbInterface_3_SelectedValueChanged(object sender, EventArgs e)        {            DataTable dtInteface = (DataTable)cbInterface_2.DataSource;            int i = cbInterface_2.SelectedIndex;            if (i != 2)            {                Global.inf.areaCode = "";            }            else            {                Global.pat.insuplc_admdvs = "530100";            }            Global.inf.hospitalNO = dtInteface.Rows[i]["HospitalNO"].ToString();            Global.inf.hospitalName = dtInteface.Rows[i]["HospitalName"].ToString();            Global.inf.centerURL = dtInteface.Rows[i]["CenterURL"].ToString();            Global.inf.areaCode = dtInteface.Rows[i]["AreaCode"].ToString();            Global.user.name = "0";            Global.user.ID = "0";            Global.inf.operatoType = "3";            Global.inf.version = "v1.0";            Global.inf.recivedSystem = "SY";        }        private void cmsCheck_Opening(object sender, CancelEventArgs e)        {        }        /// <summary>        /// 单条对总账事件        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void tsmCheck_Single_Click(object sender, EventArgs e)        {            string error = "";            if (Check_Single(out error) != 0)            {                MessageBox.Show("对总账失败:" + error);            }            else            {                MessageBox.Show("对总账成功");            }        }        /// <summary>        /// 单条对总账【本地】        /// </summary>        /// <param name="error"></param>        /// <returns></returns>        private int Check_Single(out string error)        {            error = "";            DataTable dt = (DataTable)dgvSettlSummary.DataSource;            int i = dgvSettlSummary.CurrentRow.Index;            dynamic joCheck = new JObject();            joCheck.insutype = dt.Rows[i]["insutype"].ToString();                       //险种类型            joCheck.clr_type = dt.Rows[i]["clr_type"].ToString();                       //清算类别                        if (tbSettlOption.Text != "")            {                joCheck.setl_optins = tbSettlOption.Text; //dt.Rows[i]["setl_optins"].ToString();  //结算经办机构            }            else            {                joCheck.setl_optins = dt.Rows[i]["setl_optins"].ToString();                 //结算经办机构            }                        joCheck.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();             //医疗费总额            joCheck.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString();         //基金支付总额            joCheck.acct_pay = dt.Rows[i]["acct_pay"].ToString();                       //个人账户支付金额            joCheck.fixmedins_setl_cnt = dt.Rows[i]["fixmedins_setl_cnt"].ToString();   //定点医药机构结算笔数            joCheck.stmt_begndate = dpST.Value.ToString("yyyy-MM-dd HH:mm:ss");         //对账开始日期            joCheck.stmt_enddate = dpED.Value.ToString("yyyy-MM-dd HH:mm:ss");          //对账结束日期            JObject joData = new JObject();            joData.Add("data", joCheck);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("3201", JsonHelper.setCenterInpar("3201", joData.ToString()));             if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                return -1;            }            else            {                if (JsonHelper.getDestValue(joRtn, "output.stmtinfo.stmt_rslt") != "0")                {                    error = JsonHelper.getDestValue(joRtn, "output.stmtinfo.stmt_rslt_dscr");                    return -1;                }                else                {                    return 0;                }            }        }        private int OthPlcCheck_Single(out string error)        {            error = "";            DataTable dt = (DataTable)dgvOthCheck.DataSource;            int i = dgvOthCheck.CurrentRow.Index;            Global.inf.areaCode = dt.Rows[i]["insuplc_admdvs"].ToString();            int billType = int.Parse(dt.Rows[i]["BillType"].ToString());            dynamic joCheck = new JObject();            joCheck.psn_no = dt.Rows[i]["PersonnelNO"].ToString();            joCheck.medfee_sumamt = billType * Convert.ToDecimal(dt.Rows[i]["Sumamt"].ToString());            joCheck.optins_pay_sumamt = billType * (Convert.ToDecimal(dt.Rows[i]["FundPaySumamt"].ToString()) + Convert.ToDecimal(dt.Rows[i]["AccountPaySumamt"].ToString()));            joCheck.mdtrt_setl_time = Convert.ToDateTime(dt.Rows[i]["SettlementTime"].ToString()).ToString("yyyyMMddHHmmss");            joCheck.trns_type = dt.Rows[i]["BillType"].ToString();            joCheck.mdtrt_id = dt.Rows[i]["MdtrtID"].ToString();            joCheck.setl_id = dt.Rows[i]["SettlementID"].ToString();            JArray jaCheck = new JArray();            jaCheck.Add(joCheck);            JObject joData = new JObject();            joData.Add("data", jaCheck);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("S3501", joData.ToString());            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                return -1;            }            else            {                if (JsonHelper.getDestValue(joRtn, "output.result[0].succ_flag") != "0")                {                    error = JsonHelper.getDestValue(joRtn, "output.result[0].prmmsg");                    return -1;                }                else                    return 0;            }        }        private int Clearing_Single(out string error)        {            error = "";            DataTable dt = (DataTable)dgvClearingSum.DataSource;            int i = dgvClearingSum.CurrentRow.Index;            dynamic joClearing = new JObject();            joClearing.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString().Trim('"');            joClearing.acct_pay = dt.Rows[i]["acct_pay"].ToString().Trim('"');            joClearing.setl_optins = dt.Rows[i]["setl_optins"].ToString();            joClearing.stmt_begndate = dpST_2.Value.ToString("yyyyMMdd");            joClearing.stmt_enddate = dpED_2.Value.ToString("yyyyMMdd");            joClearing.insutype = dt.Rows[i]["insutype"].ToString();            joClearing.med_type = dt.Rows[i]["med_type"].ToString();            joClearing.clr_type = dt.Rows[i]["clr_type"].ToString();            JArray clr1= new JArray();            clr1.Add(joClearing);            JObject joData = new JObject();            joData.Add("clrdata", clr1);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);                        InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("3202a", JsonHelper.setCenterInpar("3202a", joData.ToString()));            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                MessageBox.Show("清算失败!医保返回:" + joRtn.ToString());                return -1;            }            else            {                //保存到医保平台                JObject joTmp = new JObject();                joTmp.Add("HospitalDr", Global.inf.hospitalDr);                joTmp.Add("InterfaceDr", Global.inf.interfaceDr);                joTmp.Add("ApplyID", Global.curEvt.msgid);  //湖北3202a本地清算成功没有返回值,这里就传报文里的msgid                joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));                joTmp.Add("ClrWay", ""); //dt.Rows[i]["med_type"].ToString()                joTmp.Add("ClrType", dt.Rows[i]["clr_type"].ToString());                joTmp.Add("ClearYearMonth", dpST_2.Value.ToString("yyyyMM"));                joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());                joTmp.Add("Sumamt", dt.Rows[i]["medfee_sumamt"].ToString());                joTmp.Add("MedAcceptSumamt", dt.Rows[i]["med_sumfee"].ToString());                joTmp.Add("FundPay", dt.Rows[i]["fund_pay_sumamt"].ToString().Trim('"'));                joTmp.Add("CashPay", dt.Rows[i]["cash_payamt"].ToString());                joTmp.Add("AccountPay", dt.Rows[i]["acct_pay"].ToString().Trim('"'));                joTmp.Add("InsuranceType", dt.Rows[i]["insutype"].ToString());                joTmp.Add("MedType", dt.Rows[i]["med_type"].ToString());                joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));                joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));                joTmp.Add("OthPlcFlag", 0);                joTmp.Add("ValidFlag", 1);                joTmp.Add("Operator", "0");                joTmp.Add("InsuBusinessID", "3202a");                JArray jaParam = new JArray();                jaParam.Add(joTmp);                JObject joUpdate = new JObject();                joUpdate.Add("params", jaParam);                joUpdate.Add("updateUserID", "0");                joUpdate.Add("HospitalDr", Global.inf.hospitalDr);                joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);                joUpdate.Add("code", "09010067");                invoker = new InvokeHelper();                joRtn = invoker.invokeInsuService(joUpdate.ToString(), "插入清算记录");                MessageBox.Show("清算成功!医保返回:" + joRtn.ToString());                if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)                {                    return -1;                }                else                    return 0;            }        }        private int ClearingBack_Single(out string error)        {            error = "";            DataTable dt = (DataTable)dgvClearingSum.DataSource;            int i = dgvClearingSum.CurrentRow.Index;            dynamic joClBacking = new JObject();            joClBacking.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString().Trim('"');            joClBacking.acct_pay = dt.Rows[i]["acct_pay"].ToString().Trim('"');            joClBacking.setl_optins = dt.Rows[i]["setl_optins"].ToString();            joClBacking.stmt_begndate = dpST_2.Value.ToString("yyyyMMdd");            joClBacking.stmt_enddate = dpED_2.Value.ToString("yyyyMMdd");            joClBacking.insutype = dt.Rows[i]["insutype"].ToString();            joClBacking.med_type = dt.Rows[i]["med_type"].ToString();            joClBacking.clr_type = dt.Rows[i]["clr_type"].ToString();            JArray clr1 = new JArray();            clr1.Add(joClBacking);            JObject joData = new JObject();            joData.Add("clrdata", clr1);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("3204a", JsonHelper.setCenterInpar("3204a", joData.ToString()));            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                MessageBox.Show("清算撤销失败!医保返回:" + joRtn.ToString());                return -1;            }            else            {                return 0;            }        }            private int OthPlcClearing_Single(out string error)        {            if (tbInsuPlc.Text != "")                Global.inf.areaCode = tbInsuPlc.Text;            error = "";            DataTable dt = (DataTable)dgvClearingSum.DataSource;            int i = dgvClearingSum.CurrentRow.Index;                       string sInputXML;            sInputXML = " <DATA><INPUTS><INPUT> "                      + " <MON_SETL_APPY_ID>"+ dpED_2.Value.ToString("yyyyMMdd") + "</MON_SETL_APPY_ID> "                      + " <FIXMEDINS_NO>" + dt.Rows[i]["FIXMEDINS_NO"].ToString() + "</FIXMEDINS_NO>"                      + " <CLR_CNT>" + dt.Rows[i]["psntime"].ToString() + "</CLR_CNT> "                      + " <MEDFEE_SUMAMT>"+ dt.Rows[i]["medfee_sumamt"].ToString().Trim('"') + "</MEDFEE_SUMAMT>"                      + " <OPTINS_PAY_SUMAMT>" + dt.Rows[i]["optins_pay_sumamt"].ToString().Trim('"') + "</OPTINS_PAY_SUMAMT> "                      + " <BEGNDATE>" + dpST_2.Value.ToString("yyyyMMdd") + "</BEGNDATE>"                      + " <ENDDATE>" + dpED_2.Value.ToString("yyyyMMdd") + "</ENDDATE>"                      + " <OPTER_NAME>" + dt.Rows[i]["OPTER_NAME"].ToString() + "</OPTER_NAME> "                      + " </INPUT></INPUTS></DATA>";            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("1608", JsonHelper.setCenterInpar("1608", sInputXML));            MessageBox.Show("异地清算返参" + joRtn.ToString());            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                MessageBox.Show("清算失败!医保返回:" + joRtn.ToString());                return -1;            }            else            {                //保存到医保平台                JObject joTmp = new JObject();                joTmp.Add("HospitalDr", Global.inf.hospitalDr);                joTmp.Add("InterfaceDr", Global.inf.interfaceDr);                joTmp.Add("ApplyID", Global.curEvt.msgid);   //1608交易没有反参 这里存入参报文里的msgid                 joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));                joTmp.Add("ClrWay", "1");//异地无该项默认1                joTmp.Add("ClrType", "111");//异地无该项默认111                joTmp.Add("ClearYearMonth", dpED_2.Value.ToString("yyyyMM"));                joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());                joTmp.Add("Sumamt", dt.Rows[i]["medfee_sumamt"].ToString().Trim('"'));                joTmp.Add("MedAcceptSumamt", dt.Rows[i]["medfee_sumamt"].ToString().Trim('"'));                joTmp.Add("FundPay", dt.Rows[i]["optins_pay_sumamt"].ToString().Trim('"'));                joTmp.Add("CashPay", 0);                joTmp.Add("AccountPay", 0);                joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));                joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));                joTmp.Add("OthPlcFlag", 1);                joTmp.Add("ValidFlag", 1);                joTmp.Add("Operator", "0");                joTmp.Add("InsuBusinessID", "1608");                JArray jaParam = new JArray();                jaParam.Add(joTmp);                JObject joUpdate = new JObject();                joUpdate.Add("params", jaParam);                joUpdate.Add("updateUserID", "0");                joUpdate.Add("HospitalDr", Global.inf.hospitalDr);                joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);                joUpdate.Add("code", "09010067");                invoker = new InvokeHelper();                joRtn = invoker.invokeInsuService(joUpdate.ToString(), "插入清算记录");                MessageBox.Show("清算成功!医保返回:" + joRtn.ToString());                if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)                {                    return -1;                }                else                    return 0;            }        }        private int OthPlcClearingBack_Single(out string error)        {            if (tbInsuPlc.Text != "")                Global.inf.areaCode = tbInsuPlc.Text;            error = "";            DataTable dt = (DataTable)dgvClearingSum.DataSource;            int i = dgvClearingSum.CurrentRow.Index;            string sInputXML;            sInputXML = "<DATA><INPUTS><INPUT> "                     + " <MON_SETL_APPY_ID>" + dpED_2.Value.ToString("yyyyMMdd") + "</MON_SETL_APPY_ID> "                     + " <FIXMEDINS_NO>" + dt.Rows[i]["FIXMEDINS_NO"].ToString() + "</FIXMEDINS_NO>"                     + " <DATA_YM>" + dpED_2.Value.AddMonths(1).ToString("yyyyMM") + "</DATA_YM> "                     + " <OPTER_NAME>" + dt.Rows[i]["OPTER_NAME"].ToString() + "</OPTER_NAME> "                     + " </INPUT></INPUTS></DATA>";            MessageBox.Show("撤销入参:" + sInputXML);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            MessageBox.Show("撤销入参:" + JsonHelper.setCenterInpar("1618", sInputXML).ToString());            JObject joRtn = invoker.invokeCenterService("1618", JsonHelper.setCenterInpar("1618", sInputXML));            MessageBox.Show("异地清算撤销返参" + joRtn.ToString());            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                MessageBox.Show("异地清算撤销失败!医保返回:" + joRtn.ToString());                return -1;            }            else            {                return 0;            }        }            private int CancleClearing_Single(out string error)        {            error = "";            DataTable dt = (DataTable)dgvClearingData.DataSource;            int i = dgvClearingData.CurrentRow.Index;            dynamic joCancleClearing = new JObject();            joCancleClearing.fund_pay_sumamt = dt.Rows[i]["FundPay"].ToString();            joCancleClearing.acct_pay = dt.Rows[i]["AccountPay"].ToString();            joCancleClearing.setl_optins = dt.Rows[i]["setl_optins"].ToString();            joCancleClearing.stmt_begndate = dt.Rows[i]["Begndate"].ToString();            joCancleClearing.stmt_enddate = dt.Rows[i]["Enddate"].ToString();            joCancleClearing.insutype = dt.Rows[i]["InsuranceType"].ToString();            joCancleClearing.med_type = dt.Rows[i]["MedType"].ToString();            joCancleClearing.clr_type = dt.Rows[i]["ClrType"].ToString();            Global.pat.insuplc_admdvs = dt.Rows[i]["setl_optins"].ToString();            JObject joData = new JObject();            joData.Add("clrdata", joCancleClearing);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("3204a", JsonHelper.setCenterInpar("3204a", joData.ToString()));            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                return -1;            }            else            {                //保存到医保平台                JObject joTmp = new JObject();                joTmp.Add("HospitalDr", Global.inf.hospitalDr);                joTmp.Add("InterfaceDr", Global.inf.interfaceDr);                joTmp.Add("ApplyID", dt.Rows[i]["ApplyID"].ToString());                //joTmp.Add("CancleOccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));                //joTmp.Add("ClrWay", dt.Rows[i]["clr_way"].ToString());                joTmp.Add("ClrType", dt.Rows[i]["ClrType"].ToString());                //joTmp.Add("ClearYearMonth", dpST_2.Value.ToString("yyyyMM"));                //joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());                //joTmp.Add("Sumamt", dt.Rows[i]["med_sumfee"].ToString());                //joTmp.Add("MedAcceptSumamt", dt.Rows[i]["med_sumfee"].ToString());                //joTmp.Add("FundPay", dt.Rows[i]["fund_appy_sum"].ToString());                //joTmp.Add("CashPay", dt.Rows[i]["cash_payamt"].ToString());                //joTmp.Add("AccountPay", dt.Rows[i]["acct_pay"].ToString());                //joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));                //joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));                joTmp.Add("ValidFlag", -1);                joTmp.Add("updateUserID", "0");                //joTmp.Add("Operator", "0");                joTmp.Add("InsuBusinessID", "3204a");                JArray jaParam = new JArray();                jaParam.Add(joTmp);                JObject joUpdate = new JObject();                joUpdate.Add("params", jaParam);                joUpdate.Add("updateUserID", "0");                joUpdate.Add("HospitalDr", Global.inf.hospitalDr);                joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);                joUpdate.Add("code", "09010067");                invoker = new InvokeHelper();                joRtn = invoker.invokeInsuService(joUpdate.ToString(), "更新清算记录");                if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)                {                    return -1;                }                else                    return 0;            }        }        private int CancleOthPlcClearing_Single(out string error)        {            error = "";            DataTable dt = (DataTable)dgvClearingData.DataSource;            int i = dgvClearingData.CurrentRow.Index;            dynamic joCancleClearing = new JObject();            joCancleClearing.clr_appy_evt_id = dt.Rows[i]["ApplyID"].ToString();            joCancleClearing.data_ym = dt.Rows[i]["ClearYearMonth"].ToString();            JObject joData = new JObject();            joData.Add("data", joCancleClearing);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("1618", JsonHelper.setCenterInpar("1618", joData.ToString()));            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                return -1;            }            else            {                //保存到医保平台                JObject joTmp = new JObject();                joTmp.Add("HospitalDr", Global.inf.hospitalDr);                joTmp.Add("InterfaceDr", Global.inf.interfaceDr);                joTmp.Add("ApplyID", dt.Rows[i]["ApplyID"].ToString());                //joTmp.Add("CancleOccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));                //joTmp.Add("ClrWay", dt.Rows[i]["clr_way"].ToString());                joTmp.Add("ClrType", dt.Rows[i]["ClrType"].ToString());                //joTmp.Add("ClearYearMonth", dpST_2.Value.ToString("yyyyMM"));                //joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());                //joTmp.Add("Sumamt", dt.Rows[i]["med_sumfee"].ToString());                //joTmp.Add("MedAcceptSumamt", dt.Rows[i]["med_sumfee"].ToString());                //joTmp.Add("FundPay", dt.Rows[i]["fund_appy_sum"].ToString());                //joTmp.Add("CashPay", dt.Rows[i]["cash_payamt"].ToString());                //joTmp.Add("AccountPay", dt.Rows[i]["acct_pay"].ToString());                //joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));                //joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));                joTmp.Add("ValidFlag", -1);                joTmp.Add("updateUserID", "0");                joTmp.Add("InsuBusinessID", "1618");                JArray jaParam = new JArray();                jaParam.Add(joTmp);                JObject joUpdate = new JObject();                joUpdate.Add("params", jaParam);                joUpdate.Add("updateUserID", "0");                joUpdate.Add("HospitalDr", Global.inf.hospitalDr);                joUpdate.Add("InterfaceDr", Global.inf.interfaceDr);                joUpdate.Add("code", "09010067");                invoker = new InvokeHelper();                joRtn = invoker.invokeInsuService(joUpdate.ToString(), "更新清算记录");                if (JsonHelper.parseIrisRtnValue(joRtn, out error) != 0)                {                    return -1;                }                else                    return 0;            }        }        private int queryHisSettlementInfo(out string error)        {            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfHisSettlRec(dgvHisSettlRec);            error = "";            try            {                DataTable dtInteface = (DataTable)cbxInterface.DataSource;                int i = cbxInterface.SelectedIndex;                string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt, ";                sqlStr = sqlStr + " SUM(BillType*AccountPaySumamt) AS acct_pay,SUM(BillType*HealthInsurancePay) AS fund_pay_sumamt ";                //sqlStr = sqlStr + " Interface_dr,clearingWay AS clr_way,clearingType AS clr_type ";                string conditionStr = " ";                DataTable dtSettlSummary = (DataTable)dgvSettlSummary.DataSource;                int iCurRow = dgvSettlSummary.CurrentRow.Index;                //DataTable dtInteface = (DataTable)cbxInterface.DataSource;                if (cbgGroupSet.GetItemCheckState(0))                {                    conditionStr = conditionStr + " and Interface_Dr ='" + dtSettlSummary.Rows[iCurRow]["Interface_dr"].ToString() + "'";                }                if (cbgGroupSet.GetItemCheckState(1))                {                    conditionStr = conditionStr + " and InsuranceType ='" + dtSettlSummary.Rows[iCurRow]["insutype"].ToString() + "'";                }                if (cbgGroupSet.GetItemCheckState(2))                {                    conditionStr = conditionStr + " and ClearingType ='" + dtSettlSummary.Rows[iCurRow]["clr_type"].ToString() + "'";                }                if (cbgGroupSet.GetItemCheckState(3))                {                    conditionStr = conditionStr + " and ClearingOrgan ='" + dtSettlSummary.Rows[iCurRow]["setl_optins"].ToString() + "'";                }                if (cbgGroupSet.GetItemCheckState(4))                {                    sqlStr = sqlStr + ",BillType";                    conditionStr = conditionStr + " and BillType ='" + dtSettlSummary.Rows[iCurRow]["BillType"].ToString() + "'";                }                sqlStr = "select *  FROM  BS_MedInsuSettlement WHERE Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();                sqlStr = sqlStr + " and OccurTime>'" + dpST.Text + "'";                sqlStr = sqlStr + " and OccurTime<'" + dpED.Text + "'";                //ValidFlag=1 and BillType=1 表示正常结算记录   ValidFlag=0 and BillType=-1 表示退费记录  ValidFlag=0表示无效记录                 if (cbxValid.SelectedIndex != 0)                {                    if (cbxValid.SelectedIndex == 1)                        sqlStr = sqlStr + " and ValidFlag =1 and BillType=1";                    else                        sqlStr = sqlStr + " and ValidFlag =0 and BillType=-1";                }                //省医保和市医保对账一样,异地对账需要用到另外的对账交易                if (Global.inf.interfaceDr == 1)                {                    sqlStr = sqlStr + " and (InsuranceAreaCode='539900' or InsuranceAreaCode='530100')";                }                //conditionStr = conditionStr.Substring(0,conditionStr.Length -1 );                //conditionStr = conditionStr.Remove(conditionStr.Length - 1, 1);                sqlStr = sqlStr + conditionStr;                JObject joSqlstr = new JObject();                joSqlstr.Add("sqlStr", sqlStr);                JArray jaParam = new JArray();                jaParam.Add(joSqlstr);                JObject joSettlQuery = new JObject();                joSettlQuery.Add("params", jaParam);                joSettlQuery.Add("code", "09010059");                InvokeHelper invoker = new InvokeHelper();                JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");                //DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));                JArray ja = JArray.Parse(JsonHelper.getDestValue(joRtn, "result.data"));                DataTable dt = (DataTable)JsonConvert.DeserializeObject(JsonHelper.getDestValue(joRtn, "result.data"), (typeof(DataTable)));                dgvHisSettlRec.DataSource = dt;                //dt.Columns[7].DataType = typeof(float);//不允许                //dgvHisSettlRecFooter.DataGridView = dgvHisSettlRec;                //dgvHisSettlRecFooter.Dock = System.Windows.Forms.DockStyle.Bottom;                //dgvHisSettlRecFooter.Clear();                //dgvHisSettlRecFooter["AdmID"] = "合计";                //dgvHisSettlRecFooter["OverLimitAmount"] = "测试";                return 0;            }            catch (Exception ex)            {                error = "queryHisSettlementInfo:" + ex.Message;                return -1;            }        }        private void tsmCheckDetail_Single_Click(object sender, EventArgs e)        {            //HIS明细            string error;            if (queryHisSettlementInfo(out error) != 0)            {                MessageBox.Show(error);            }            //中心明细            if (CheckDetail_Single(out error) != 0)            {                MessageBox.Show(error);            }        }        /// <summary>        /// 查询HIS结算明细记录        /// </summary>        /// <param name="sender"></param>        /// <param name="e"></param>        private void tsmHisRecord_Click(object sender, EventArgs e)        {            string error;            if (queryHisSettlementInfo(out error) != 0)            {                MessageBox.Show(error);            }        }        public static void writeToTxt(string content, string filePath, string fileName)        {            //创建文件夹,文件夹名称与TXT同名            string finalPath = filePath + "\\" + fileName;            if (!Directory.Exists(finalPath))            {                DirectoryInfo dirInfo = Directory.CreateDirectory(finalPath);            }            //判断文件夹中是否存在txt            string finalFileName = finalPath + "\\" + fileName + ".txt";            if (!File.Exists(finalFileName))            {                FileStream fs1 = File.Create(finalFileName);                fs1.Close();            }            FileStream fs = new FileStream(finalFileName, FileMode.Append, FileAccess.Write);            StreamWriter sw = new StreamWriter(fs);            sw.WriteLine(content);            sw.Close();            fs.Close();        }        /// <summary>        /// 读文件到byte[]        /// </summary>        /// <param name="fileName">硬盘文件路径</param>        /// <returns></returns>        public static byte[] ReadFileToByte(string fileName)        {            FileStream pFileStream = null;            byte[] pReadByte = new byte[0];            try            {                pFileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);                BinaryReader r = new BinaryReader(pFileStream);                r.BaseStream.Seek(0, SeekOrigin.Begin);    //将文件指针设置到文件开                pReadByte = r.ReadBytes((int)r.BaseStream.Length);                return pReadByte;            }            catch            {                return pReadByte;            }            finally            {                if (pFileStream != null)                    pFileStream.Close();            }        }        /// <summary>        ///单字节转有符号整数        /// </summary>        /// <param name="data"></param>        /// <returns></returns>        public string byteArrayToDecString(byte[] data)        {            StringBuilder builder = new StringBuilder();            for (int i = 0; i < data.Length; i++)            {                builder.Append((sbyte)data[i] + ",");            }            return builder.ToString().Trim();        }        private int HISDetailDataExport(string filePath, string fileName)        {            try            {                DataTable dt = (DataTable)dgvHisSettlRec.DataSource;                string content = "";                for (int i = 0; i < dt.Rows.Count; i++)                {                    string flag = "";                    if (dt.Rows[i]["ValidFlag"].ToString() == "-1")                    {                        flag = "1";                    }                    else                    {                        flag = "0";                    }                    content = "\r\n"                            + dt.Rows[i]["SettlementID"].ToString() + "\t"                            + dt.Rows[i]["MdtrtID"].ToString() + "\t"                            + dt.Rows[i]["PersonnelNO"].ToString() + "\t"                            + dt.Rows[i]["Sumamt"].ToString() + "\t"                            + dt.Rows[i]["FundPaySumamt"].ToString() + "\t"                            + dt.Rows[i]["AccountPaySumamt"].ToString() + "\t"                            + flag                            + content;                }                string finalContent = content.Remove(0, 2);                writeToTxt(finalContent, filePath, fileName);                return 0;            }            catch (Exception ex)            {                MessageBox.Show(ex.Message);                return -1;            }        }        private void tsmExport_Click(object sender, EventArgs e)        {            txtName = DateTime.Now.ToString("yyyyMMddHHmmssffff");            txtPath = Global.currentDirectory + "\\Download";            if (HISDetailDataExport(txtPath, txtName) != 0)            {                MessageBox.Show("导出TXT失败!");            }            else            {                MessageBox.Show("导出TXT成功!");            }                        //System.IO.Compression.ZipFile.CreateFromDirectory(txtPath + "\\" + "2022ceshi", txtPath + "\\" + "111.zip");        }        private void tsmCompress_Click(object sender, EventArgs e)        {            string path = @"C:\ProgramData\prykNT\prBrowser\bin\service\plugins\INSUNew\DownLoad\111";            string name = @"1121.zip";            string finalDirPath = txtPath + "\\" + txtName;            finalAchPath = finalDirPath + ".zip";            System.IO.Compression.ZipFile.CreateFromDirectory(finalDirPath, finalAchPath);            //System.IO.Compression.ZipFile.CreateFromDirectory(path, name);            //System.IO.Compression.ZipFile.CreateFromDirectory(path, name, 0, true);            MessageBox.Show("将TXT压缩为ZIP成功!");        }        private void tsmZIPToSDec_Click(object sender, EventArgs e)        {            byte[] bArray = ReadFileToByte(finalAchPath);            string str = byteArrayToDecString(bArray);            Global.writeLog(str);            MessageBox.Show("ZIP转为有符号整数成功!");        }        private void tsmUploadZIP_Click(object sender, EventArgs e)        {            string outParam = "";            byte[] bArray = ReadFileToByte(finalAchPath);            string str = "[" + byteArrayToDecString(bArray) + "]";            JObject joTmp = new JObject();            joTmp.Add("in", JArray.Parse(str));            joTmp.Add("filename", txtName + ".zip");            Global.inf.fileName = txtName + ".zip";            //joTmp.Add("filename", finalAchPath.Replace("\\",@"\"));            joTmp.Add("fixmedins_code", Global.inf.hospitalNO);            JObject joFsUploadIn = new JObject();            joFsUploadIn.Add("fsUploadIn", joTmp);            InvokeHelper invoker = new InvokeHelper();            JObject jo9101Rtn= invoker.invokeCenterService("9101", JsonHelper.setCenterInpar("9101", joFsUploadIn.ToString()));            if (JsonHelper.parseCenterRtnValue(jo9101Rtn, out outParam) != 0)            {                                outParam = JsonHelper.setExceptionJson(-1, "【9101】文件上传失败", outParam).ToString();                                return;            }            else            {                MessageBox.Show("【9101】文件上传成功");            }        }        private void tsm3202_Click(object sender, EventArgs e)        {            string outParam = "";            DataTable dt = (DataTable)dgvSettlSummary.DataSource;            int i = dgvSettlSummary.CurrentRow.Index;            MessageBox.Show(dt.Rows[i]["clr_type"].ToString());            dynamic joCheck = new JObject();            joCheck.file_qury_no = JObject.Parse(tbTmp.Text);            joCheck.clr_type = dt.Rows[i]["clr_type"].ToString();            joCheck.setl_optins = dt.Rows[i]["setl_optins"].ToString();            joCheck.stmt_begndate = dpST.Value.ToString("yyyy-MM-dd HH:mm:ss");            joCheck.stmt_enddate = dpED.Value.ToString("yyyy-MM-dd HH:mm:ss");            joCheck.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();            joCheck.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString();            joCheck.cash_payamt = dt.Rows[i]["cash_payamt"].ToString();            joCheck.fixmedins_setl_cnt = dt.Rows[i]["fixmedins_setl_cnt"].ToString();            JObject joData = new JObject();            joData.Add("data", joCheck);            InvokeHelper invoker = new InvokeHelper();                       JObject jo3202Rtn= invoker.invokeCenterService("3202", JsonHelper.setCenterInpar("3202", joData.ToString()));            if (JsonHelper.parseCenterRtnValue(jo3202Rtn, out outParam) != 0)            {                outParam = JsonHelper.setExceptionJson(-1, "【3202】医保明细对账失败", outParam).ToString();                MessageBox.Show(outParam);                return;            }            else            {                MessageBox.Show("【3202】医保明细对账成功");            }        }        private void tsmDownload_Click(object sender, EventArgs e)        {            string outParam = "";            JObject joTmp = new JObject();            joTmp.Add("file_qury_no", JObject.Parse(tbTmp.Text.Replace(@"\\", @"\")));            joTmp.Add("filename", txtName + ".zip");            joTmp.Add("fixmedins_code", Global.inf.hospitalNO);            JObject joFsDownloadIn = new JObject();            joFsDownloadIn.Add("fsDownloadIn", joTmp);            InvokeHelper invoker = new InvokeHelper();            jo9102Rtn = invoker.invokeCenterService("9102", JsonHelper.setCenterInpar("9102", joFsDownloadIn).ToString());            if (JsonHelper.parseCenterRtnValue(jo9102Rtn, out outParam) != 0)            {                outParam = JsonHelper.setExceptionJson(-1, "【9102】文件下载失败", outParam).ToString();                MessageBox.Show(outParam);                return;            }            else            {                MessageBox.Show("【9102】文件下载成功");            }        }        private void tsmUnCompress_Click(object sender, EventArgs e)        {            //解压缩            string zipFilePath = jo9102Rtn["filePath"].ToString();            string txtFileDir = System.Environment.CurrentDirectory + "\\Download";            //string txtFilePath = txtFileDir + "\\" + filename.Substring(0, filename.Length - 4);            string txtFilePath = txtFileDir;            if (File.Exists(txtFilePath))            {                File.Delete(txtFilePath);            }            ZipFile.ExtractToDirectory(zipFilePath, txtFileDir);        }        private void tsmImport_Click(object sender, EventArgs e)        {            GridViewSetter grd = new GridViewSetter();            grd.SetHeaderTextOfDgvCenterSetlRec(dgvCenterSettlRec);            string txtFileDir = tbTmp.Text;//E:\GHSF\SCYBDownLoad\result.txt            string[] lines = System.IO.File.ReadAllLines(txtFileDir);            Global.writeLog(lines.ToString());            DataTable dt = new DataTable();            dt.Columns.Add("sn", typeof(int));            dt.Columns.Add("psn_no", typeof(string));            dt.Columns.Add("mdtrt_id", typeof(string));            dt.Columns.Add("setl_id", typeof(string));            dt.Columns.Add("msgid", typeof(string));            dt.Columns.Add("stmt_rslt", typeof(string));            dt.Columns.Add("refd_setl_flag", typeof(string));            dt.Columns.Add("memo", typeof(string));            dt.Columns.Add("medfee_sumamt", typeof(string));            dt.Columns.Add("fund_pay_sumamt", typeof(string));            dt.Columns.Add("acct_pay", typeof(string));            //foreach (string line in lines)            for (int i = 0; i < lines.Length; i++)            {                string[] strs = (lines[i] + "\t").Split('\t');                DataRow dr = dt.NewRow();                //Global.inf.writeLog(lines[i].ToString());                //Global.inf.writeLog(strs.Length.ToString());                dr["sn"] = i;                dr["psn_no"] = strs[0];                dr["mdtrt_id"] = strs[1];                dr["setl_id"] = strs[2];                dr["msgid"] = strs[3];                dr["stmt_rslt"] = strs[4];                dr["refd_setl_flag"] = strs[5];                dr["memo"] = strs[6];                dr["medfee_sumamt"] = strs[7];                dr["fund_pay_sumamt"] = strs[8];                dr["acct_pay"] = strs[9];                //dr["Field2"] = strs[2];                dt.Rows.Add(dr);            }            dgvCenterSettlRec.DataSource = dt;        }        private int exportAndCompress(out string zipPath)        {            zipPath = "";            try            {                //导出TXT                string fileName = DateTime.Now.ToString("yyyyMMddHHmmssffff");                string filePath = Global.currentDirectory + "\\Download";                HISDetailDataExport(filePath, fileName);                //压缩                string finalDirPath = filePath + "\\" + fileName;//同名文件夹                zipPath = finalDirPath + ".zip";                System.IO.Compression.ZipFile.CreateFromDirectory(finalDirPath, zipPath);                return 0;            }            catch (Exception ex)            {                zipPath = "exportAndCompress:" + ex.Message;                return -1;            }        }        /// <summary>        /// 上传ZIP文件转字节流再转换为有符号10进制数组后上传        /// </summary>        /// <param name="zipPath"></param>        /// <param name="file_qury_no"></param>        /// <returns></returns>        private int uploadFileToCenter(string zipPath, out string file_qury_no)        {            string outParam = "";            try            {                byte[] bArray = ReadFileToByte(zipPath);                string str = "[" + byteArrayToDecString(bArray) + "]";                JObject joTmp = new JObject();                joTmp.Add("in", JArray.Parse(str));                joTmp.Add("filename", txtName + ".zip");                joTmp.Add("fixmedins_code", Global.inf.hospitalNO);                JObject joFsUploadIn = new JObject();                joFsUploadIn.Add("fsUploadIn", joTmp);                InvokeHelper invoker = new InvokeHelper();                 JObject jo9101Rtn = invoker.invokeCenterService("9101", JsonHelper.setCenterInpar("9101", joFsUploadIn.ToString()));                if (JsonHelper.parseCenterReturnJson(jo9101Rtn, out outParam) != 0)                {                    file_qury_no = outParam;                    return -1;                }                else                {                    file_qury_no = JsonHelper.getDestValue(jo9101Rtn, "output.file_qury_no");                    return 0;                }            }            catch (Exception ex)            {                file_qury_no = "uploadFileToCenter:" + ex.Message;                return -1;            }        }        private int checkDetail(string file_qury_no, out string outParam, out string fileName)        {            fileName = "";            try            {                DataTable dt = (DataTable)dgvSettlSummary.DataSource;                int i = dgvSettlSummary.CurrentRow.Index;                Global.inf.areaCode = "";                dynamic joCheck = new JObject();                joCheck.file_qury_no = file_qury_no.Replace(@"\\", @"\");                joCheck.clr_type = dt.Rows[i]["clr_type"].ToString();                joCheck.setl_optins = dt.Rows[i]["setl_optins"].ToString();                joCheck.stmt_begndate = dpST.Value.ToString("yyyy-MM-dd HH:mm:ss");                joCheck.stmt_enddate = dpED.Value.ToString("yyyy-MM-dd HH:mm:ss");                joCheck.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();                joCheck.fund_pay_sumamt = dt.Rows[i]["fund_pay_sumamt"].ToString();                joCheck.cash_payamt = dt.Rows[i]["cash_payamt"].ToString();                joCheck.fixmedins_setl_cnt = dt.Rows[i]["fixmedins_setl_cnt"].ToString();                JObject joData = new JObject();                joData.Add("data", joCheck);                InvokeHelper invoker = new InvokeHelper();                 JObject jo3202Rtn = invoker.invokeCenterService("3202", JsonHelper.setCenterInpar("3202", joData.ToString()));                if (JsonHelper.parseCenterReturnJson(jo3202Rtn, out outParam) != 0)                {                    return -1;                }                else                {                    outParam = JsonHelper.getDestValue(jo3202Rtn, "output.fileinfo.file_qury_no");                    fileName = JsonHelper.getDestValue(jo3202Rtn, "output.fileinfo.filename");                    return 0;                }            }            catch (Exception ex)            {                outParam = "checkDetail:" + ex.Message;                return -1;            }        }        private int downloadZIP(string file_qury_no, string fileName, out string outParam)        {            outParam = "";            try            {                JObject joTmp = new JObject();                joTmp = new JObject();                joTmp.Add("file_qury_no", file_qury_no.Replace(@"\\", @"\"));                joTmp.Add("filename", fileName);                joTmp.Add("fixmedins_code", Global.inf.hospitalNO);                JObject joFsDownloadIn = new JObject();                joFsDownloadIn.Add("fsDownloadIn", joTmp);                InvokeHelper invoker = new InvokeHelper();                JObject jo9102Rtn = invoker.DownloadCenterFile(JsonHelper.setCenterInpar("9102", joFsDownloadIn).ToString());                string error = "";                if (JsonHelper.parseIrisRtnValue(jo9102Rtn, out error) != 0)                {                    outParam = error;                    return -1;                }                else                {                    outParam = JsonHelper.getDestValue(jo9102Rtn, "filePath");                    return 0;                }            }            catch (Exception ex)            {                outParam = "downloadZIP:" + ex.Message;                return -1;            }        }        private int importToDgvCenterSetlRec(string fileName, string zipFilePath, out string outParam)        {            outParam = "";            try            {                string dir = fileName.Substring(1, fileName.Length - 4);                //解压缩                string txtFileDir = System.Environment.CurrentDirectory + "\\Download\\" + dir;                string txtFilePath = zipFilePath.Substring(0, zipFilePath.Length - 4);                if (File.Exists(txtFilePath))                {                    File.Delete(txtFilePath);                }                if (!Directory.Exists(txtFileDir))                {                    Directory.CreateDirectory(txtFileDir);                }                ZipFile.ExtractToDirectory(zipFilePath, txtFileDir);                //导入文件                GridViewSetter grd = new GridViewSetter();                grd.SetHeaderTextOfDgvCenterSetlRec(dgvCenterSettlRec);                //txtFileDir = txtFileDir;//E:\GHSF\SCYBDownLoad\result.txt                string[] lines = System.IO.File.ReadAllLines(txtFileDir + "\\result.txt");                DataTable dt = new DataTable();                dt.Columns.Add("sn", typeof(int));                dt.Columns.Add("psn_no", typeof(string));                dt.Columns.Add("mdtrt_id", typeof(string));                dt.Columns.Add("setl_id", typeof(string));                dt.Columns.Add("msgid", typeof(string));                dt.Columns.Add("stmt_rslt", typeof(string));                dt.Columns.Add("refd_setl_flag", typeof(string));                dt.Columns.Add("memo", typeof(string));                dt.Columns.Add("medfee_sumamt", typeof(string));                dt.Columns.Add("fund_pay_sumamt", typeof(string));                dt.Columns.Add("acct_pay", typeof(string));                //foreach (string line in lines)                for (int i = 0; i < lines.Length; i++)                {                    string[] strs = (lines[i] + "\t").Split('\t');                    DataRow dr = dt.NewRow();                    //Global.inf.writeLog(lines[i].ToString());                    //Global.inf.writeLog(strs.Length.ToString());                    dr["sn"] = i + 1;                    dr["psn_no"] = strs[0];                    dr["mdtrt_id"] = strs[1];                    dr["setl_id"] = strs[2];                    dr["msgid"] = strs[3];                    dr["stmt_rslt"] = strs[4];                    dr["refd_setl_flag"] = strs[5];                    dr["memo"] = strs[6];                    dr["medfee_sumamt"] = strs[7];                    dr["fund_pay_sumamt"] = strs[8];                    dr["acct_pay"] = strs[9];                    //dr["Field2"] = strs[2];                    dt.Rows.Add(dr);                }                dgvCenterSettlRec.DataSource = dt;                return 0;            }            catch (Exception ex)            {                outParam = "importToDgvCenterSetlRec:" + ex.Message;                return -1;            }        }        private int CheckDetail_Single(out string outParam)        {            outParam = "";            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            try            {                //导出并压缩                if (exportAndCompress(out outParam) != 0)                {                    return -1;                }                string zipPath = outParam;                Global.writeLog("exportAndCompress:" + zipPath);                //上传给中心,                if (uploadFileToCenter(zipPath, out outParam) != 0)                {                    return -1;                }                Global.writeLog("uploadFileToCenter:" + outParam);                string file_query_no = outParam;                string fileName = "";                //3202明细对账  输出查询号和文件名                if (checkDetail(file_query_no, out outParam, out fileName) != 0)                {                    return -1;                }                file_query_no = outParam;                Global.writeLog("checkDetail:" + outParam + "///" + fileName);                //下载  获取 查询号和文件名后 下载                if (downloadZIP(file_query_no, fileName, out outParam) != 0)                {                    return -1;                }                zipPath = outParam;                Global.writeLog("downloadZIP:" + outParam);                //导入DGV                if (importToDgvCenterSetlRec(fileName, zipPath, out outParam) != 0)                {                    return -1;                }                Global.writeLog("importToDgvCenterSetlRec:" + outParam);                return 0;            }            catch (Exception ex)            {                outParam = "CheckDetail_Single:" + ex.Message;                return -1;            }        }        private void dgvRowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)        {            DataGridView dgv = (DataGridView)sender;            dgv.RowHeadersWidth = 60;            if (dgv.Rows.Count > 1)                e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);        }        private void dgvSettlSummary_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)        {            if (dgvSettlSummary.Rows.Count > 1)                e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);        }        private void dgvHisSettlRec_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)        {            if (dgvHisSettlRec.Rows.Count > 1)                e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);        }        private int compareDataGridView(string value, string colName, Sunny.UI.UIDataGridView dgv)        {            try            {                for (int i = 0; i < dgv.RowCount; i++)                {                    if (dgv.Rows[i].Cells[colName].Value.ToString() == value)                    {                        return 0;                    }                }                return -1;            }            catch (Exception ex)            {                MessageBox.Show("compareDataGridView" + ex.Message);                return -1;            }        }        private void tsmAICheck_Click(object sender, EventArgs e)        {            for (int i = 0; i < dgvHisSettlRec.RowCount; i++)            {                string value = dgvHisSettlRec.Rows[i].Cells["SettlementID"].Value.ToString();                string colName = "setl_id";                if (compareDataGridView(value, colName, dgvCenterSettlRec) != 0)                {                    dgvHisSettlRec.Rows[i].DefaultCellStyle.BackColor = Color.Red;                    rtbCheckDetailLog.AppendText("HIS结算ID:" + value + "在中心明细中未找到数据!" + "\r\n");                }            }            for (int i = 0; i < dgvCenterSettlRec.RowCount; i++)            {                string value = dgvCenterSettlRec.Rows[i].Cells["setl_id"].Value.ToString();                string colName = "SettlementID";                if (compareDataGridView(value, colName, dgvHisSettlRec) != 0)                {                    dgvCenterSettlRec.Rows[i].DefaultCellStyle.BackColor = Color.Red;                    rtbCheckDetailLog.AppendText("中心结算ID:" + value + "在HIS明细中未找到数据!" + "\r\n");                }            }        }        private void tsmCheckDetail_Batch_Click(object sender, EventArgs e)        {        }        private void toolStripMenuItem1_Click(object sender, EventArgs e)        {            int i = dgvHisSettlRec.CurrentRow.Index;            DataTable dt = (DataTable)dgvHisSettlRec.DataSource;            MessageBox.Show(dt.Rows[i]["AccountPaySumamt"].ToString());        }        private void btnAddOneDay_Click(object sender, EventArgs e)        {            dpST.Value = dpST.Value.AddDays(1);            dpED.Value = dpED.Value.AddDays(1);        }        private void btnReduceOndDay_Click(object sender, EventArgs e)        {            dpST.Value = dpST.Value.AddDays(-1);            dpED.Value = dpED.Value.AddDays(-1);        }        private void Clearing1()        {            //组织入参,进行中心清算            int i = dgvSettlSummary.CurrentRow.Index;            DataTable dt = (DataTable)dgvSettlSummary.DataSource;            JObject joData = new JObject();            joData.Add("", dgvSettlSummary.CurrentRow.Cells[""].Value.ToString());            //存到医保平台        }        private void btnQueryClrSum_Click(object sender, EventArgs e)        {            DataTable dtInteface = (DataTable)cbInterface_2.DataSource;            int i = cbInterface_2.SelectedIndex;            GridViewSetter grdSetter = new GridViewSetter();                                   string sqlStr = "";            switch (rg_ClearType.SelectedIndex)            {                case 0:                     {                        grdSetter.SetHeaderTextOfClearing(dgvClearingSum);                        sqlStr = " SELECT count(*) AS psntime, "                               + " SUM(Billtype*Sumamt) AS medfee_sumamt, "                               + " SUM(Billtype*(0.00+FundPaySumamt+AccountPaySumamt+PersonCashPay)) AS med_sumfee, "                               + " SUM(billtype*PersonCashPay) AS cash_payamt, "                               + " SUM(billtype*(0.00+AccountPaySumamt)) AS acct_pay,"                               + " SUM(Convert(NUMERIC(16,2),billtype*(0.00+FundPaySumamt))) AS fund_pay_sumamt, "                               + " ClearingOrgan as setl_optins,"                               + "Case ClearingOrgan when '420100' then '武汉市' when '420102' then '江岸区'"                               + " when '420103' then '江汉区' when '420104' then '硚口区' when '420105' then '汉阳区' when '420106' then '武昌区' when '420107' then '青山区' "                                + "when '420111' then '洪山区' when '420112' then '东西湖区' when '420113' then '汉南区' when '420114' then '蔡甸区' when '420115' then '江夏区'"                               + " when '420116' then '黄陂区' when '420117' then '新洲区' when '420140' then '东湖高新开发区' when '420141' then '武汉经济开发区'" +                               " when '420199' then  '武汉市市本级' else ClearingOrgan  end as setl_optins_name ,"                               +  "InsuranceType as insutype,MedicalType as med_type,"                                + "Case MedicalType when '11' then '普通门诊' when '21' then '普通住院' when '110104' then '门诊统筹' else MedicalType end    as med_type_name,ClearingType as clr_type ";                        sqlStr = sqlStr + " FROM BS_MedInsuSettlement WHERE left(ClearingOrgan,4)='4201' and BillType<>9 ";                                                break;                    }                case 1:                     {                        grdSetter.SetHeaderTextOfClearingAllopatry(dgvClearingSum);                        sqlStr = " SELECT count(*) AS psntime, "                               + " SUM(Billtype*(0.00+Sumamt)) AS medfee_sumamt, "                               + " SUM(Billtype*(0.00+FundPaySumamt+AccountPaySumamt)) AS optins_pay_sumamt, "                               //+ " SUM(billtype*AccountPaySumamt) AS acct_pay, "                               //+ " SUM(billtype*FundPaySumamt) AS fund_appy_sum, "                               +  "'"+ dpST_2.Text + "' as BEGNDATE, "                               + "'" + dpED_2.Text + "' as ENDDATE, "                               + " '管理员' as OPTER_NAME, '" + Global.inf.hospitalNO.ToString()+"'"                               +" as FIXMEDINS_NO, '' as MON_SETL_APPY_ID ";                        sqlStr = sqlStr + "FROM BS_MedInsuSettlement WHERE left(InsuranceAreaCode,4)<>'4201' and BillType<>9 ";                        break;                    }            }            sqlStr = sqlStr + " And Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();            sqlStr = sqlStr + " And OccurTime>'" + dpST_2.Text + "'";            sqlStr = sqlStr + " And OccurTime<'" + dpED_2.Text + "'";            if (cbInterface_2.Text != "")            {                sqlStr = sqlStr + " And Interface_dr =" + dtInteface.Rows[i]["ID"].ToString();            }            if (cbInsutype_2.Text != "")            {                sqlStr = sqlStr + " And InsuranceType ='" + cbInsutype_2.SelectedValue + "'";            }            if (cbClrType_2.Text != "")            {                sqlStr = sqlStr + " And ClearingType ='" + cbClrType_2.SelectedValue + "'";            }            if (tbSettlOption_2.Text != "")            {                sqlStr = sqlStr + " And ClearingOrgan ='" + tbSettlOption_2.Text + "'";            }            if (cbClrWay_2.Text != "")            {                sqlStr = sqlStr + " And ClearingWay ='" + cbClrWay_2.SelectedValue + "'";            }            sqlStr = sqlStr + " and ReversalFlag <>1 ";            if (cbValid_2.SelectedIndex != 0)            {                if (cbValid_2.SelectedIndex == 1)                { sqlStr = sqlStr + " and ValidFlag =1"; }                else                    sqlStr = sqlStr + " and ValidFlag =-1";            }            if (rg_ClearType.SelectedIndex == 0)            { sqlStr = sqlStr + " Group By ClearingOrgan, InsuranceType, MedicalType, ClearingType "; }            JObject joSqlstr = new JObject();            joSqlstr.Add("sqlStr", sqlStr);            JArray jaParam = new JArray();            jaParam.Add(joSqlstr);            JObject joSettlQuery = new JObject();            joSettlQuery.Add("params", jaParam);            joSettlQuery.Add("code", "09010081");            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询汇总结算信息(清算)");            if (rg_ClearType.SelectedIndex == 0)            {                joRtn["result"]["data"][0]["fund_pay_sumamt"] = joRtn["result"]["data"][0]["fund_pay_sumamt"].ToString(0.00);                joRtn["result"]["data"][0]["acct_pay"] = joRtn["result"]["data"][0]["acct_pay"].ToString(0.00);            }            else            {                joRtn["result"]["data"][0]["medfee_sumamt"] = joRtn["result"]["data"][0]["medfee_sumamt"].ToString(0.00);                joRtn["result"]["data"][0]["optins_pay_sumamt"] = joRtn["result"]["data"][0]["optins_pay_sumamt"].ToString(0.00);            }                        DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));                        dgvClearingSum.DataSource = dt;        }        private void tmsClearing_2_Click(object sender, EventArgs e)        {            string error = "";            switch (rg_ClearType.SelectedIndex)            {                case 0:                     {                        if (Clearing_Single(out error) != 0)                        {                            MessageBox.Show("本地清算失败:" + error);                        }                        else                        {                            MessageBox.Show("本地清算成功");                        }                        break;                    }                case 1:                    {                        if (OthPlcClearing_Single(out error) != 0)                        {                            MessageBox.Show("异地清算失败:" + error);                        }                        else                        {                            MessageBox.Show("异地清算成功");                        }                        break;                    }            }        }        private void btnQueryClearing_Click(object sender, EventArgs e)        {            DataTable dtInteface = (DataTable)cbInterface_3.DataSource;            int i = cbInterface_3.SelectedIndex;            //            string sqlStr = "SELECT * from  BS_MedInsuClearingRecord where Hosp_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString(); ;            sqlStr = sqlStr + " and Interface_Dr =" + dtInteface.Rows[i]["ID"].ToString();            if (rbgTimeWay.SelectedIndex == 0)            {                sqlStr = sqlStr + " and OccurTime>'" + dpST_3.Value.ToString("yyyy-MM-dd 00:00:00") + "'";                sqlStr = sqlStr + " and OccurTime<'" + dpED_3.Value.ToString("yyyy-MM-dd 23:59:59") + "'";            }            else            {                sqlStr = sqlStr + " and Begndate>='" + dpST_3.Value.ToString("yyyy-MM-dd 00:00:00") + "'";                sqlStr = sqlStr + " and Enddate<='" + dpED_3.Value.ToString("yyyy-MM-dd 23:59:59") + "'";            }            if (cbValid_3.SelectedIndex != 0)            {                if (cbValid_3.SelectedIndex == 1)                { sqlStr = sqlStr + " and ValidFlag =1"; }                else                    sqlStr = sqlStr + " and ValidFlag =-1";            }            switch (rg_querType.SelectedIndex)            {                case 0:                     {                        sqlStr = sqlStr + " And InsuBusinessID='3202a' ";                        break;                    }                case 1:                    {                        sqlStr = sqlStr + " And InsuBusinessID='1608' ";                        break;                    }            }            JObject joSqlstr = new JObject();            joSqlstr.Add("sqlStr", sqlStr);            JArray jaParam = new JArray();            jaParam.Add(joSqlstr);            JObject joSettlQuery = new JObject();            joSettlQuery.Add("params", jaParam);            joSettlQuery.Add("code", "09010069");            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询清算信息");            DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));            dgvClearingData.DataSource = dt;        }        private void btnCancleClearing_Click(object sender, EventArgs e)        {            string error = "";            if (rg_querType.SelectedIndex == 0)                        {                if (CancleClearing_Single(out error) != 0)                {                    MessageBox.Show("撤销清算失败:" + error);                }                else                {                    MessageBox.Show("撤销清算成功");                }            }            else            {                if (CancleOthPlcClearing_Single(out error) != 0)                {                    MessageBox.Show("异地撤销清算失败:" + error);                }                else                {                    MessageBox.Show("异地撤销清算成功");                }            }        }        private void btnAddMonth_Click(object sender, EventArgs e)        {            dpST_2.Value = dpST_2.Value.AddMonths(1);            dpED_2.Value = dpST_2.Value.AddDays(1 - dpST_2.Value.Day).AddMonths(1).AddMinutes(-1);        }        private void btnReduceMonth_Click(object sender, EventArgs e)        {            dpST_2.Value = dpST_2.Value.AddMonths(-1);            dpED_2.Value = dpST_2.Value.AddDays(1 - dpST_2.Value.Day).AddMonths(1).AddMinutes(-1);        }        private void uiButton3_Click(object sender, EventArgs e)        {            string sqlStr = "SELECT * ";            sqlStr = sqlStr + " FROM  BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.interfaceDr;            sqlStr = sqlStr + " and OccurTime>'" + dpST_O.Text + "'";            sqlStr = sqlStr + " and OccurTime<'" + dpED_O.Text + "'";            sqlStr = sqlStr + " and Interface_dr =1";            sqlStr = sqlStr + " and (InsuranceAreaCode<>'539900' and InsuranceAreaCode<>'530100')";            //if (cbxInsuType.Text != "")            //{            //    sqlStr = sqlStr + " and insutype ='" + cbxInsuType.SelectedValue + "'";            //}            if (cbxClrType_O.Text != "")            {                sqlStr = sqlStr + " and ClearingType ='" + cbxClrType_O.SelectedValue + "'";            }            //if (tbSettlOption.Text != "")            //{            //    sqlStr = sqlStr + " and ClearingOrgan ='" + tbSettlOption.Text + "'";            //}            if (cbxValid_O.SelectedIndex != 0)            {                if (cbxValid_O.SelectedIndex == 1)                { sqlStr = sqlStr + " and ValidFlag =1"; }                else                    sqlStr = sqlStr + " and ValidFlag =-1";            }            JObject joSqlstr = new JObject();            joSqlstr.Add("sqlStr", sqlStr);            JArray jaParam = new JArray();            jaParam.Add(joSqlstr);            JObject joSettlQuery = new JObject();            joSettlQuery.Add("params", jaParam);            joSettlQuery.Add("code", "09010059");            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");            //DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));            DataTable dt = (DataTable)JsonConvert.DeserializeObject(joRtn["result"]["data"].ToString(), (typeof(DataTable)));            //DataTable dtResult = new DataTable();            ////克隆表结构            //dtResult = dt.Clone();            //foreach (DataColumn col in dtResult.Columns)            //{            //    if (col.ColumnName == "BillID")            //    {            //        //修改列类型            //        col.DataType = typeof(string);            //    }            //    if (col.ColumnName == "RecordID")            //    {            //        //修改列类型            //        col.DataType = typeof(string);            //    }            //}            //foreach (DataRow row in dt.Rows)            //{            //    DataRow newDtRow = dtResult.NewRow();            //    foreach (DataColumn column in dt.Columns)            //    {            //        if (column.ColumnName == "BillID")            //        {            //            MessageBox.Show("cs1:" + column.ColumnName + row[column.ColumnName].ToString());            //            newDtRow[column.ColumnName] = Convert.ToString(row[column.ColumnName]);            //        }            //        else            //        {            //            newDtRow[column.ColumnName] = row[column.ColumnName];            //        }            //    }            //    dtResult.Rows.Add(newDtRow);            //}            dgvOthCheck.DataSource = dt;        }        private void tsmOthPlcCheck_Click(object sender, EventArgs e)        {            string error = "";            if (OthPlcCheck_Single(out error) != 0)            {                MessageBox.Show("对账失败:" + error);            }            else            {                MessageBox.Show("对账成功");            }        }        private void uiSymbolButton2_Click(object sender, EventArgs e)        {            dpST_O.Value = dpST_O.Value.AddDays(1);            dpED_O.Value = dpED_O.Value.AddDays(1);        }        private ArrayList getIndexArray(String inputStr, String findStr)        {            ArrayList list = new ArrayList();            int start = 0;            while (start < inputStr.Length)            {                int index = inputStr.IndexOf(findStr, start);                if (index >= 0)                {                    list.Add(index);                    start = index + findStr.Length;                }                else                {                    break;                }            }            return list;        }        private void uiButton2_Click(object sender, EventArgs e)        {            DataTable dt = (DataTable)dgvOthCheck.DataSource;            string error = "";            int failRows = 0;            for (int i = 0; i < dt.Rows.Count; i++)            {                //dgvOthCheck.Rows[i].Selected = true;                dgvOthCheck.CurrentCell = dgvOthCheck.Rows[i].Cells[0];                if (OthPlcCheck_Single(out error) != 0)                {                    string str = "【当前人员】:";                    //Graphics g = this.CreateGraphics();                    //Font font = new Font("宋体", 14, FontStyle.Bold);                    //SolidBrush brush = new SolidBrush(Color.Red);                    //g.DrawString(str, font, brush, 20, 50);                    string patInfo = str + dt.Rows[i]["PatientName"].ToString()                                   + ",结算编号:" + dt.Rows[i]["SettlementID"].ToString()                                   + ",清算类别:" + dt.Rows[i]["ClearingType"].ToString()                                   + ",就诊类别(1门诊2住院):" + dt.Rows[i]["admType"].ToString();                    rtbOthCheckResultRecord.AppendText(patInfo + ";对账失败:" + error + "\r\n");                    failRows++;                }                else                {                    //rtbOthCheckResultRecord.AppendText("当前人员:" + dt.Rows[i]["PatientName"].ToString() + ";对账成功!"  + "\r\n");                }            }            if (failRows == 0)            {                rtbOthCheckResultRecord.AppendText("当前所有人员对账成功!" + "\r\n");            }            else            {                string str = "【当前人员】";                ArrayList list = getIndexArray(rtbOthCheckResultRecord.Text, str);                for (int i = 0; i < list.Count; i++)                {                    int index = (int)list[i];                    rtbOthCheckResultRecord.Select(index, str.Length);                    rtbOthCheckResultRecord.SelectionColor = Color.Red;                    Font oldFont = rtbOthCheckResultRecord.SelectionFont;                    Font font = new Font(oldFont, oldFont.Style | FontStyle.Bold);                    rtbOthCheckResultRecord.SelectionFont = font;                }            }        }        private void tsmHandCheck_Click(object sender, EventArgs e)        {            JObject joData = JObject.Parse(rtbCheckDetailLog.Text);            InvokeHelper invoker = new InvokeHelper();             JObject joRtn = invoker.invokeCenterService("3201", JsonHelper.setCenterInpar("3202", joData.ToString()));        }        private void btnClose_Click(object sender, EventArgs e)        {            Close();        }        private void Btn_Query_Click(object sender, EventArgs e)        {            DataTable dtInteface = (DataTable)cbxInterface.DataSource;            int i = cbxInterface.SelectedIndex;            //乘以单据类型后,IRIS会返回整数,关键不知道SQL里咋转换为浮点数            //string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt,SUM(BillType*PersonCashPay) AS cash_payamt, ";            //sqlStr = sqlStr + " SUM(BillType*AccountPaySumamt) AS acct_pay,SUM(BillType*FundPaySumamt) AS fund_pay_sumamt ";            string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt,SUM(BillType*PersonCashPay) AS cash_payamt,  ";            sqlStr = sqlStr + " SUM(billType*AccountPaySumamt) AS acct_pay,SUM(BillType*FundPaySumamt) AS fund_pay_sumamt ";            //sqlStr = sqlStr + " Interface_dr,clearingWay AS clr_way,clearingType AS clr_type ";            string conditionStr = " Group By";            if (cbgGroupSet.GetItemCheckState(0))            {                sqlStr = sqlStr + ",Interface_Dr";                conditionStr = conditionStr + " Interface_Dr,";            }            if (cbgGroupSet.GetItemCheckState(1))            {                sqlStr = sqlStr + ",InsuranceType as insutype";                conditionStr = conditionStr + " InsuranceType,";             }            if (cbgGroupSet.GetItemCheckState(2))            {                                       sqlStr = sqlStr + ",ClearingType as clr_type";                conditionStr = conditionStr + " ClearingType,";            }            if (cbgGroupSet.GetItemCheckState(3))            {                sqlStr = sqlStr + ",ClearingOrgan as setl_optins";                conditionStr = conditionStr + " ClearingOrgan,";            }            if (cbgGroupSet.GetItemCheckState(4))            {                sqlStr = sqlStr + ",BillType";                conditionStr = conditionStr + " BillType,";            }            sqlStr = sqlStr + " FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();            sqlStr = sqlStr + " and OccurTime>'" + dpST.Text + "'";            sqlStr = sqlStr + " and OccurTime<'" + dpED.Text + "'";            if (cbxInterface.Text != "")            {                sqlStr = sqlStr + " and Interface_Dr =" + dtInteface.Rows[i]["ID"].ToString();            }            if (cbxInsuType.Text != "")            {                sqlStr = sqlStr + " and InsuranceType ='" + cbxInsuType.SelectedValue + "'";            }            if (cbxClrType.Text != "")            {                sqlStr = sqlStr + " and ClearingType ='" + cbxClrType.SelectedValue + "'";            }            if (tbSettlOption.Text != "")            {                sqlStr = sqlStr + " and ClearingOrgan ='" + tbSettlOption.Text + "'";            }            //ValidFlag=1 and BillType=1 表示正常结算记录   ValidFlag=0 and BillType=-1 表示退费记录  ValidFlag=0表示无效记录             if (cbxValid.SelectedIndex != 0)            {                if (cbxValid.SelectedIndex == 1)                    sqlStr = sqlStr + " and ValidFlag =1 and BillType=1";                else                    sqlStr = sqlStr + " and ValidFlag =0 and BillType=-1";            }            if (Global.inf.interfaceDr == 1)            {                sqlStr = sqlStr + " and (InsuranceAreaCode='539900' or InsuranceAreaCode='530100')";            }            //conditionStr = conditionStr.Substring(0,conditionStr.Length -1 );            conditionStr = conditionStr.Remove(conditionStr.Length - 1, 1);            sqlStr = sqlStr + conditionStr;            JObject joSqlstr = new JObject();            //MessageBox.Show(sqlStr);            joSqlstr.Add("sqlStr", sqlStr);            JArray jaParam = new JArray();            jaParam.Add(joSqlstr);            JObject joSettlQuery = new JObject();            joSettlQuery.Add("params", jaParam);            joSettlQuery.Add("code", "09010061");            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询汇总结算信息");            DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));            dgvSettlSummary.DataSource = dt;            //初始化HIS结算明细View数据            dgvHisSettlRec.DataSource = null;        }        private void btnBatchCheck_Click(object sender, EventArgs e)        {        }        private void btnPatchClr_Click(object sender, EventArgs e)        {        }        private void cmsClearing_Opening(object sender, CancelEventArgs e)        {        }        private void dgvSettlSummary_CellDoubleClick(object sender, DataGridViewCellEventArgs e)        {            string error;            if (queryHisSettlementInfo(out error) != 0)            {                MessageBox.Show(error);            }        }        private void uiButton6_Click(object sender, EventArgs e)        {            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfSetlSelectRec(dgv_Query);            string inNum = "";            string SetlFlag = "0";//退结算标志            if (chbg_BusinessType.GetItemCheckState(0) == true)            {                inNum = "5262";//选中本地5262结算查询            }            if (chbg_BusinessType.GetItemCheckState(1) == true)            {                inNum = "5267";//选中异地5267结算查询            }            MessageBox.Show("选择交易号" + inNum);            if (Chk_RefdSetlFlag.Checked)            {                SetlFlag = "1";            }            else {                 SetlFlag = "0";            }                       if ((dt_ST.Text == "") || (dt_ET.Text == "") || (tb_PageNum.Text == "") || (tb_PageSize.Text == ""))            {                MessageBox.Show("红色必填项不能为空!");                return;            }                string error;            dynamic joData = new JObject();            //joData.refd_setl_flag = SetlFlag;            joData.q_begntime = dt_ST.Value.ToString("yyyy-MM-dd 00:00:00");            joData.q_endtime = dt_ET.Value.ToString("yyyy-MM-dd 00:00:00");            joData.med_type = cbxYllb.SelectedValue;            joData.page_num = tb_PageNum.Text;            joData.page_size = tb_PageSize.Text;            if (inNum== "5262"){                                joData.psn_no = tb_PsnNo.Text;                joData.is_clr_flag = "0";                joData.certno = tb_Certno.Text;            }//5262本地结算信息查询可查单个患者结算信息                        JObject joData2562 = new JObject();            joData2562.Add("data", joData);            //上传给中心            //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            //JObject joRtn = invoker.invokeCenterService("5262", JsonHelper.setCenterInpar("5262", joData.ToString            JObject joRtn = invoker.invokeCenterService(inNum, JsonHelper.setCenterInpar(inNum, joData2562.ToString()));//根据动态选中获取交易号5262、5267            if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)            {                MessageBox.Show("【"+inNum +"】结算信息按时间段查询失败:" + error);                return;            }            else            {                //获取页数和当前页大小                ////DataTable dt_pageInfo=new DataTable();                ////DataRow  newRow = dt_pageInfo.NewRow();                ////dt_pageInfo.Columns.Add("size", Type.GetType("System.String"));                ////dt_pageInfo.Columns.Add("record_counts", Type.GetType("System.String"));                ////newRow["size"] = joRtn["output"]["page_info"]["size"].ToString();                 ////newRow["record_counts"] = joRtn["output"]["page_info"]["record_counts"].ToString();                ////dt_pageInfo.Rows.Add(newRow);                ////// DataTable dt_pageInfo = (DataTable)joRtn["output"]["page_info"].ToObject(typeof(DataTable));                string pages = joRtn["output"]["page_info"]["size"].ToString();                 //当前页大小                string recordCounts = joRtn["output"]["page_info"]["record_counts"].ToString();   //总记录条数                DataTable dt_result = (DataTable)joRtn["output"]["result"].ToObject(typeof(DataTable));                if ((recordCounts == "")|| (recordCounts == "0"))                {                    MessageBox.Show("查询成功,但返回结果集为空!请检查当前时间是否存在医保结算信息或查询条件是否正确!");                    return;                }               // dgv_Query_Page.DataSource = dt_pageInfo;                dgv_Query.DataSource = dt_result;                dgv_Query.RowStateChanged += Dgv_Query_RowStateChanged;            }        }        private void Dgv_Query_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)        {            e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);        }        private void chbg_BusinessType_ValueChanged(object sender, int index, string text, bool isChecked)        {        }        private void dgv_Query_CellContentClick(object sender, DataGridViewCellEventArgs e)        {        }        private void cbxInsuType_SelectedIndexChanged(object sender, EventArgs e)        {        }        private void gbConditionSet_Click(object sender, EventArgs e)        {        }        private void uiButton8_Click(object sender, EventArgs e)        {            GridViewSetter grdSetter = new GridViewSetter();            grdSetter.SetHeaderTextOfSetlSelectPageRec(dgv_Query_Page);            string inNum = "";            string hisSetlFlag = "1";//退结算标志            if (chbg_BusinessType.GetItemCheckState(0) == true)            {                inNum = "5262";//选中本地5262结算查询            }            if (chbg_BusinessType.GetItemCheckState(1) == true)            {                inNum = "5267";//选中异地5267结算查询            }            MessageBox.Show("选择交易号" + inNum);            if (Chk_RefdSetlFlag.Checked)//HIS 无效标志为0,有效标志为1            {                hisSetlFlag = "0";            }            else            {                hisSetlFlag = "1";            }                        if ((dt_ST.Text == "") || (dt_ET.Text == "") )            {                MessageBox.Show("开始结束时间必填项不能为空!");                return;            }            string Sqlstr = "";            if(inNum == "5262")            {//查询武汉本地结算记录             //Sqlstr = "SELECT MSGID,MdtrtID,SettlementID,PersonnelNO,PatientName,CertificateNO,Gender,InsuranceType,SettlementDateTime,MedicalType,Sumamt,FundPaySumamt," +             //   " AccountPaySumamt,PersonCashPay,ClearingOrgan,ClearingType,ValidFlag,BillType  FROM  BS_MedInsuSettlement WHERE  Hospital_Dr='18'  " +                Sqlstr = "SELECT *  FROM BS_MedInsuSettlement WHERE Hospital_Dr='" +Global.inf.hospitalDr+"'"+                   " AND Interface_Dr= '" + Global.inf.interfaceDr + "'" +                   " AND LEFT(InsuranceAreaCode,4)='4201' " +                   " AND ValidFlag<>'-1'"+                   " AND MedicalType='" + cbxYllb.SelectedValue + "'"+                   " AND SettlementDateTime>='" + dt_ST.Value.ToString("yyyy-MM-dd HH:mm:ss") +"'"+                   " AND SettlementDateTime<='" + dt_ET.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'" ;             }            else if (inNum == "5267")            {                //查询武汉异地结算记录含省本级                //Sqlstr = "SELECT MSGID,MdtrtID,SettlementID,PersonnelNO,PatientName,CertificateNO,Gender,InsuranceType,SettlementDateTime,MedicalType,Sumamt,FundPaySumamt," +                //   "AccountPaySumamt,PersonCashPay,ClearingOrgan,ClearingType,ValidFlag,BillType FROM BS_MedInsuSettlement WHERE  Hospital_Dr='18' " +                Sqlstr = "SELECT *  FROM BS_MedInsuSettlement WHERE  Hospital_Dr='" + Global.inf.hospitalDr + "'" +                           " AND Interface_Dr= '" + Global.inf.interfaceDr + "'" +                   "AND LEFT(InsuranceAreaCode,4)<>'4201' " +                  " AND ValidFlag<>'-1'" +                    " AND MedicalType='" + cbxYllb.SelectedValue + "'" +                    "AND SettlementDateTime>='" + dt_ST.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'" +                    " AND SettlementDateTime<='" + dt_ET.Value.ToString("yyyy-MM-dd HH:mm:ss") + "'";            }                        //查HIS结算信息            JObject joSqlstr = new JObject();            joSqlstr.Add("sqlStr", Sqlstr);            JArray jaParam = new JArray();            jaParam.Add(joSqlstr);            JObject joSettlQuery = new JObject();            joSettlQuery.Add("params", jaParam);            joSettlQuery.Add("code", "09010059");            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");            JArray ja = JArray.Parse(JsonHelper.getDestValue(joRtn, "result.data"));            DataTable His_result = (DataTable)JsonConvert.DeserializeObject(JsonHelper.getDestValue(joRtn, "result.data"), (typeof(DataTable)));            dgv_Query_Page.DataSource = His_result;            dgv_Query_Page.RowStateChanged += Dgv_Query_Page_RowStateChanged2;        }        private void Dgv_Query_Page_RowStateChanged2(object sender, DataGridViewRowStateChangedEventArgs e)        {            e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);            //throw new NotImplementedException();        }        //e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);        private void Bdhisyb_Click(object sender, EventArgs e)        {            for (int i = 0; i < dgv_Query_Page.RowCount; i++)            {                string value = dgv_Query_Page.Rows[i].Cells["SettlementID"].Value.ToString();                string colName = "setl_id";                if (compareDataGridView(value, colName, dgv_Query) != 0)                {                    dgv_Query_Page.Rows[i].DefaultCellStyle.BackColor = Color.Red;                    rtbCheckDetailLog.AppendText("HIS结算ID:" + value + "在中心明细中未找到数据!" + "\r\n");                }            }            for (int i = 0; i < dgv_Query.RowCount; i++)            {                string value = dgv_Query.Rows[i].Cells["setl_id"].Value.ToString();                string colName = "SettlementID";                if (compareDataGridView(value, colName, dgv_Query_Page) != 0)                {                    dgv_Query.Rows[i].DefaultCellStyle.BackColor = Color.Red;                    rtbCheckDetailLog.AppendText("中心结算ID:" + value + "在HIS明细中未找到数据!" + "\r\n");                }            }        }        private void uiButton5_Click(object sender, EventArgs e)        {        }        private void uiButton9_Click(object sender, EventArgs e)        {                        //先签到            CenterBusiness cBus = new CenterBusiness();            JObject jo9001Rtn = new JObject();            cBus.signIn(out jo9001Rtn);            InvokeHelper invoker = new InvokeHelper();            JObject joRtn = invoker.invokeCenterService("3205a", JsonHelper.setCenterInpar("3205a", ""));        }        private void tmsClearingBack2_Click(object sender, EventArgs e)        {            string error = "";            switch (rg_ClearType.SelectedIndex)            {                case 0:                    {                        if (ClearingBack_Single(out error) != 0)                        {                            MessageBox.Show("本地清算撤销失败:" + error);                        }                        else                        {                            MessageBox.Show("本地清算撤销成功");                        }                        break;                    }                case 1:                    {                        if (OthPlcClearingBack_Single(out error) != 0)                        {                            MessageBox.Show("异地清算撤销失败:" + error);                        }                        else                        {                            MessageBox.Show("异地清算撤销成功");                        }                        break;                    }            }        }        private void uiButton10_Click(object sender, EventArgs e)        {            Thread t = new Thread(DataToExcel);            t.IsBackground = true;            //t.ApartmentState = ApartmentState.STA;//缺少这句话,就会出错误。            //不过以上这句在Vs 2010中显示是被微软否决的,过时的,虽然还能用。但是为了更好的兼容版本,微软推出以下方法:            t.SetApartmentState(ApartmentState.STA);  //即是在线程启动时设置它的单元状态,这里设置它的状态为单线程单元            t.Start();               }        private void DataToExcel()        {            string fileName = "";            string saveFileName = "";            SaveFileDialog saveDialog = new SaveFileDialog();            saveDialog.DefaultExt = "xlsx";            saveDialog.Filter = "Excel文件|*.xlsx";            saveDialog.FileName = fileName;            saveDialog.ShowDialog();            saveFileName = saveDialog.FileName;            if (saveFileName.IndexOf(":") < 0) return; //被点了取消            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();            if (xlApp == null)            {                MessageBox.Show("无法创建Excel对象,您的电脑可能未安装Excel");                return;            }            Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;            Microsoft.Office.Interop.Excel.Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);            Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1             //写入标题                         for (int i = 0; i < dgv_Query.ColumnCount; i++)            { worksheet.Cells[1, i + 1] = dgv_Query.Columns[i].HeaderText; }            //写入数值            for (int r = 0; r < dgv_Query.Rows.Count; r++)            {                for (int i = 0; i < dgv_Query.ColumnCount; i++)                {                    //if (i == 3)//将这一列有前导零的加上一个单引号                    //{                    //    worksheet.Cells[r + 2, i + 1] = "'" + dgv_Query.Rows[r].Cells[i].Value;                    //    string temp = "'" + dgv_Query.Rows[r].Cells[i].Value;//看下值                    //}                    //else                    //{                    //    worksheet.Cells[r + 2, i + 1] = dgv_Query.Rows[r].Cells[i].Value;                    //}                    worksheet.Cells[r + 2, i + 1] = "'" + dgv_Query.Rows[r].Cells[i].Value;                }                System.Windows.Forms.Application.DoEvents();            }            worksheet.Columns.EntireColumn.AutoFit();//列宽自适应            MessageBox.Show(fileName + "资料保存成功", "提示", MessageBoxButtons.OK);            if (saveFileName != "")            {                try                {                    workbook.Saved = true;                    workbook.SaveCopyAs(saveFileName);  //fileSaved = true;                                 }                catch (Exception ex)                {//fileSaved = false;                                          MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);                }            }            xlApp.Quit();            GC.Collect();//强行销毁                                 }    }}
 |