//protected override void SetLines(Worksheet ws, string sSelItems, string sSelTypeIDs, long lGxID, int nStartYear, int nEndYear) //{ // ArrayList arrNames = new ArrayList(); ArrayList arrValues = new ArrayList(); ArrayList arrSigns = new ArrayList(); // arrNames.Add("bmk.DelFlag"); arrValues.Add(false); arrSigns.Add(SIGN.Equal); // arrNames.Add("bmk.YearCode"); arrValues.Add(nStartYear); arrSigns.Add(SIGN.GreaterThanOrEqual); // arrNames.Add("bmk.YearCode"); arrValues.Add(nEndYear); arrSigns.Add(SIGN.LessThanOrEqual); // arrNames.Add("bmk.GxID"); arrValues.Add(lGxID); arrSigns.Add(SIGN.Equal); // int nItemPos; // int nRowNumX; // int nRowNumY; // ArrayList ItemKeys; // ArrayList arrItems; // SetLinesPre(ws, sSelItems, sSelTypeIDs,out nItemPos,out nRowNumX,out nRowNumY,out ItemKeys,out arrItems); // var tempMan = new zykTableManage(); // _DFSSetLine(nItemPos, nRowNumX, nRowNumY, ws, ItemKeys, arrItems, arrNames, arrValues, arrSigns,tempMan); //} //protected override int _DFSSetLine(int nItemPos, int nRowNumX, int nRowNumY, Worksheet ws, ArrayList ItemKeys, ArrayList arrItems, ArrayList arrNames, ArrayList arrValues, ArrayList arrSigns, object tempMan) //{ // return _DFSSetLine1(nItemPos, nRowNumX, nRowNumY, ws, ItemKeys, arrItems, arrNames, arrValues, arrSigns, tempMan); //} protected override int _SetLineCore(int nItemPos, int nRowNumX, Worksheet ws, ArrayList ItemKeys, ArrayList arrItems, ArrayList arrNowNames, ArrayList arrNowValues, ArrayList arrNowSigns, int nRowNowNumY, long ReportTypeID) { zykTableManage zykMan = new zykTableManage(); if (nItemPos == ItemKeys.Count - 1) { clsExcelApp.SetCellValue(ws, nRowNumX, 1, nRowNumX - 3); //序号 Expression <Func <T_zyk, bool> > where = GetAndLambdaExpression <T_zyk>(arrNowNames, arrNowValues, arrNowSigns); List <T_zyk> listModels = zykMan.GetRecord(where); if (listModels.Count > 0) { int count = 0; for (int i = 0; i < listModels.Count; i++) { long lNowRelationID = listModels[i].RelationID1; Expression <Func <T_zyk, bool> > where1 = (c => c.RelationID1 == lNowRelationID); List <T_zyk> listNow = zykMan.GetRecord(where1).OrderBy(c => c.Zyxh).ToList(); if (listNow[0].ID == listModels[i].ID) { count++; } } clsExcelApp.SetCellValue(ws, nRowNumX, nRowNowNumY, count); nRowNowNumY++; //第一志愿报考人数 clsExcelApp.SetCellValue(ws, nRowNumX, nRowNowNumY, listModels[0].jhk.Jhrs); nRowNowNumY++; //招生计划 string bili = string.Format("{0:P}", count * 1.0 / listModels[0].jhk.Jhrs); clsExcelApp.SetCellValue(ws, nRowNumX, nRowNowNumY, bili); //报考人数占招生计划比例 } else { clsExcelApp.SetCellValue(ws, nRowNumX, nRowNowNumY, 0); nRowNowNumY++; //第一志愿报考人数 clsExcelApp.SetCellValue(ws, nRowNumX, nRowNowNumY, 0); nRowNowNumY++; //招生计划 clsExcelApp.SetCellValue(ws, nRowNumX, nRowNowNumY, "无法计算"); //报考人数占招生计划比例 } nRowNumX++; if (nItemPos == 0) { nUnitRow1 = nRowNumX; } else if (nItemPos == 1) { nUnitRow2 = nRowNumX; } else if (nItemPos == 2) { nUnitRow3 = nRowNumX; } } else { nRowNumX = DFSSetLine(nItemPos + 1, nRowNumX, nRowNowNumY, ws, ItemKeys, arrItems, arrNowNames, arrNowValues, arrNowSigns, ReportTypeID); } UnitCellCore(nItemPos, nRowNumX, ws, ItemKeys); return(nRowNumX); }
protected override int _SetLineCore(int nItemPos, int nRowNumX, Worksheet ws, ArrayList ItemKeys, ArrayList arrItems, ArrayList arrNowNames, ArrayList arrNowValues, ArrayList arrNowSigns, int nRowNowNumY, long ReportTypeID) { zykTableManage zykMan = new zykTableManage(); if (nItemPos == ItemKeys.Count - 2) { arrNowNames.Add("jhk.tddw.Pcdm"); arrNowValues.Add(0); arrNowSigns.Add(SIGN.Equal); clsExcelApp.SetCellValue(ws, nRowNumX, 1, nRowNumX - 3); //序号 for (int i = 0; i < ((ArrayList)arrItems[arrItems.Count - 1]).Count; i++) { arrNowValues[arrNowValues.Count - 1] = ((ArrayList)arrItems[arrItems.Count - 1])[i]; Expression <Func <T_zyk, bool> > where = GetAndLambdaExpression <T_zyk>(arrNowNames, arrNowValues, arrNowSigns); List <T_zyk> listModels = zykMan.GetRecord(where); var ssss = listModels.Select(c => c.RelationID1).Distinct(); clsExcelApp.SetCellValue(ws, nRowNumX, nRowNowNumY, ssss.Count()); //录取人数 nRowNowNumY++; } nRowNumX++; if (nItemPos == 0) { nUnitRow1 = nRowNumX; } else if (nItemPos == 1) { nUnitRow2 = nRowNumX; } else if (nItemPos == 2) { nUnitRow3 = nRowNumX; } } else { nRowNumX = DFSSetLine(nItemPos + 1, nRowNumX, nRowNowNumY, ws, ItemKeys, arrItems, arrNowNames, arrNowValues, arrNowSigns, ReportTypeID); } UnitCellCore(nItemPos, nRowNumX, ws, ItemKeys); return(nRowNumX); }