private void dataGridViewX1_SelectionChanged(object sender, EventArgs e) { if (dataGridViewX1.SelectedRows.Count == 0) { return; } var selectedRow = dataGridViewX1.SelectedRows[0]; if (selectedRow == null) { return; } var matchId = selectedRow.Cells[0].Value.ToString(); var initialed = AthletesDAL.IsMatchInitialed(matchId); if (initialed) { this.lbImportRegForm.Text = "重新导入报名表(已导入)"; this.lbImportRegForm.ForeColor = Color.FromArgb(21, 66, 139); } else { this.lbImportRegForm.Text = "导入报名表"; this.lbImportRegForm.ForeColor = Color.FromArgb(21, 66, 139); } }
// 生成决赛竞赛 private void lbGenerateFinalMatchGroupTable_Click(object sender, EventArgs e) { // 决赛的时候,取出成绩的前几名显示,前几名在创建比赛的时候设定 var showNum = MatchInfo.FinalNum; var sexName = SwitchProjectNamesToSex(this.cbProjectNames.Text); var groupName = this.cbGroupNames.Text; var preRound = MatchInfo.PreRounds; var athletesScore = AthletesDAL.GetAthletesScore(MatchId, groupName, sexName, preRound); athletesScore = athletesScore.Where(x => x.ScoresWithRound.Count > 0 && x.ScoresWithRound.ContainsKey(x.ScoresWithRound.Count)) .OrderBy(x => x.SumSocre) .ThenBy(x => x.ScoresWithRound[x.ScoresWithRound.Count].Sum()) .Take(showNum) .ToList(); GenerateFinalMatchGroup form = new GenerateFinalMatchGroup(); form.MatchId = MatchInfo.Id; form.MatchName = MatchInfo.Name; form.GroupName = groupName; form.SexName = sexName; form.Project = this.cbProjectNames.Text; form.Athletes = athletesScore; form.ShowDialog(); }
private void btnOK_Click(object sender, EventArgs e) { var name = this.tbName.Text; var teamShortName = this.tbTeamShortName.Text; AthletesDAL.Delete(MatchId, teamShortName, name); MessageBox.Show("删除成功"); this.DialogResult = DialogResult.OK; this.Close(); }
private void lbImportRegForm_Click(object sender, EventArgs e) { var selectedRow = dataGridViewX1.SelectedRows[0]; if (selectedRow == null) { return; } var matchId = selectedRow.Cells[0].Value.ToString(); var selectedFolder = string.Empty; FolderBrowserDialog folderBrowser = new FolderBrowserDialog(); folderBrowser.Description = "请选择一个文件夹,确认后会将文件夹内所有报名文件导入系统"; if (folderBrowser.ShowDialog() == DialogResult.OK) { selectedFolder = folderBrowser.SelectedPath; } if (string.IsNullOrWhiteSpace(selectedFolder)) { return; } var root = new DirectoryInfo(selectedFolder); var files = root.GetFiles(); var filesCount = files.Count(); // 获取文件数量 // 读取文件,将数据写入到数据库中 var allAthletes = new List <AthleteModel>(); var allOthers = new List <OthersModel>(); foreach (var file in files) { try { var result = ExcelHelperImport.GetFileInfo(file, matchId); allAthletes.AddRange(result.Athletes); allOthers.AddRange(result.Others); } catch (Exception ex) { MessageBox.Show($"{file.FullName} \n 文件异常,请检查是否被打开或者文件是否符合导入格式。 Exception:{ex}"); return; } } // 将所有的运动员信息存入到数据库中 AthletesDAL.InsertBatch(allAthletes); OthersDAL.InsertBatch(allOthers); this.lbImportRegForm.Text = "重新导入报名表(已导入)"; MessageBox.Show($"所有报名表已经导入成功!共{filesCount}个文件。"); }
private static int PrintWomenGroupScore(IWorkbook workbook, ISheet sheet, int startRowNum, string matchId, string matchName) { var rowNum = startRowNum; // 获取所有分组 var allGroupNames = AthletesDAL.GetAllGroupNames(matchId); // 遍历每组人员,获取所有运动员成绩 foreach (var groupName in allGroupNames.OrderBy(x => x)) { var allPartInGroupMatchScore = AthletesDAL.GetTeamMatchAthletesScore(matchId, groupName, "女", 2); // 分别挑出4人成绩最少杆数一轮,二轮和对team进行排序 var sortedTeamShortName = SortTeamShortNameByTeamScore(allPartInGroupMatchScore); // 遍历每个team, 对运动员按照总分数进行排序 var sortedAllPartInGroupMatchScore = new List <AthleteSocreModel>(); for (var i = 0; i < sortedTeamShortName.Count; i++) { var sortedTeamAthletesScore = allPartInGroupMatchScore.Where(x => x.TeamShortName == sortedTeamShortName[i] && x.SumSocre > 0).OrderBy(x => x.SumSocre).ToList(); if (sortedTeamAthletesScore.Count >= 4) // 当团体赛人数少于4时,不计入团体赛成绩 { sortedAllPartInGroupMatchScore.AddRange(sortedTeamAthletesScore); } } // 写入文件 sheet.AddMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, 4)); var headRow = ExcelHelper.GetRow(sheet, rowNum); var headCell = ExcelHelper.SetCellStringValue(headRow, 0, $"女子团体成绩公告({groupName})(前八名)"); headCell.CellStyle = ExcelHelper.SetCellStyle(workbook, sheet, rowNum, true, 300); rowNum++; var tbheadRow = ExcelHelper.GetRow(sheet, rowNum); ExcelHelper.SetCellStringValue(tbheadRow, 0, "代表队"); ExcelHelper.SetCellStringValue(tbheadRow, 1, "运动员"); ExcelHelper.SetCellStringValue(tbheadRow, 2, "成绩"); ExcelHelper.SetCellStringValue(tbheadRow, 3, "名次"); rowNum++; // 写入每队人员成绩 var allTeamShortNames = sortedAllPartInGroupMatchScore.Select(x => x.TeamShortName).Distinct().ToList(); for (var i = 0; i < allTeamShortNames.Count && i < 8; i++) { rowNum = SetTeamAthletes(sortedAllPartInGroupMatchScore.Where(x => x.TeamShortName == allTeamShortNames[i]).ToList(), rowNum, sheet, i + 1); } rowNum++; } return(rowNum); }
private void lbPrintAthleteFinalScore_Click(object sender, EventArgs e) { // 决赛的时候,取出成绩的前几名显示,前几名在创建比赛的时候设定 var showNum = MatchInfo.FinalNum; var sexName = SwitchProjectNamesToSex(this.cbProjectNames.Text); var groupName = this.cbGroupNames.Text; // 获取决赛两轮成绩 var athletesScore = AthletesDAL.GetAthletesFinalScore(MatchId, groupName, sexName, 2); athletesScore = athletesScore.Where(x => x.ScoresWithRound.Count > 0 && x.SumSocre > 0).OrderBy(x => x.SumSocre).ThenBy(x => x.ScoresWithRound[x.ScoresWithRound.Count].Sum()).ToList(); var fileName = $"{MatchInfo.Name}-{groupName}-{this.cbProjectNames.Text}-决赛成绩-{DateTime.Now.ToString("yyyyMMddHHmmss")}"; ExcelHelperPrintFinalMatch.GenerateFinalScoreTwoRound(fileName, athletesScore, MatchInfo.Name, groupName, this.cbProjectNames.Text); }
// 各代表队参赛信息汇总表 private void lbTeamInfoAll_Click(object sender, EventArgs e) { var selectedRow = dataGridViewX1.SelectedRows[0]; if (selectedRow == null) { return; } var matchId = selectedRow.Cells[0].Value.ToString(); var matchName = selectedRow.Cells[1].Value.ToString(); var allTeamMemberProjectInfo = AthletesDAL.GetTeamMemberProjectInfo(matchId); // 生成报表 var fileName = $"{matchName}-各参赛队信息汇总表-{DateTime.Now.ToString("yyyyMMddHHmmss")}"; ExcelGenerateTeamMemeberProject.GenerateTeamMemberProjectInfo(allTeamMemberProjectInfo.OrderBy(x => x.GroupName).ThenBy(x => x.TeamName).ToList(), fileName); }
// 各代表队人数统计表 private void lbTeamMemberCount_Click(object sender, EventArgs e) { var selectedRow = dataGridViewX1.SelectedRows[0]; if (selectedRow == null) { return; } var matchId = selectedRow.Cells[0].Value.ToString(); var matchName = selectedRow.Cells[1].Value.ToString(); var allTeamMembersCount = AthletesDAL.GetTeamMemberCount(matchId); // 生成报表 var fileName = $"{matchName}-各代表队人数统计表-{DateTime.Now.ToString("yyyyMMddHHmmss")}"; ExcelHelperGenerateEveryTeamCount.GenerateEveyTeamCountInfo(allTeamMembersCount.OrderBy(x => x.GroupName).ToList(), fileName); }
private void lbGenerateWomenWomenImport_Click(object sender, EventArgs e) { var selectedRow = dataGridViewX1.SelectedRows[0]; if (selectedRow == null) { return; } var matchId = selectedRow.Cells[0].Value.ToString(); var matchName = selectedRow.Cells[1].Value.ToString(); var allWayPerson = AthletesDAL.GetWayPersonInfo(matchId); var individualPerson = allWayPerson.Where(x => x.Sex == "女女").OrderBy(x => x.GroupName).ThenBy(x => x.Sex).ThenBy(x => x.TeamName).ToList(); // 生成报表 var fileName = $"{matchName}-球道赛女双导出名单-{DateTime.Now.ToString("yyyyMMddHHmmss")}"; ExcelHelperExportWayGamePersonInfo.GenerateWayGamePersonInfo(individualPerson, fileName); }
private void btnOK_Click(object sender, EventArgs e) { var name = this.tbName.Text; var teamName = this.tbTeamName.Text; var teamShortName = this.tbTeamShortName.Text; var athlete = new AthleteModel(); athlete.Id = Guid.NewGuid().ToString(); athlete.GroupName = GroupName; athlete.MatchId = MatchId; athlete.Name = name; athlete.Sex = Sex; athlete.TeamName = teamName; athlete.TeamShortName = teamShortName; athlete.BarIndividualGamesStatus = this.cbBarIndividualStatus.Text.Trim(); athlete.BarGroupGamesStatus = this.cbBarGroupStatus.Text.Trim(); AthletesDAL.Insert(athlete); MessageBox.Show("添加成功"); this.DialogResult = DialogResult.OK; this.Close(); }
private static int PrintMenWomenScore(IWorkbook workbook, ISheet sheet, int startRowNum, string matchId, string matchName) { var rowNum = startRowNum; // 获取所有分组 var allGroupNames = AthletesDAL.GetAllGroupNames(matchId); // 遍历每组人员,获取所有运动员成绩 foreach (var groupName in allGroupNames.OrderBy(x => x)) { var allPartInGroupMatchScore = AthletesDAL.GetAthletesScore(matchId, groupName, "男女", 2); if (allPartInGroupMatchScore.Count == 0) { continue; } var athletes = allPartInGroupMatchScore.Select(x => new AthleteScore() { Name = x.Name, TeamName = x.TeamName, TeamShortName = x.TeamShortName, PreSumSocre = x.SumSocre }).ToList(); athletes = athletes.Where(x => x.PreSumSocre > 0).OrderBy(x => x.PreSumSocre).ToList(); // 写入文件 sheet.AddMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, 4)); var headRow = ExcelHelper.GetRow(sheet, rowNum); var headCell = ExcelHelper.SetCellStringValue(headRow, 0, $"杆数赛混双({groupName})"); headCell.CellStyle = ExcelHelper.SetCellStyle(workbook, sheet, rowNum, true, 300); rowNum++; rowNum = SetAtheleScore(workbook, sheet, rowNum, athletes); rowNum++; } return(rowNum); }
/// <summary> /// 打印女子团体成绩 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void lbWomenTeamScoreSummaryTable_Click(object sender, EventArgs e) { var selectedRow = dataGridViewX1.SelectedRows[0]; if (selectedRow == null) { return; } var matchId = selectedRow.Cells[0].Value.ToString(); var matchName = selectedRow.Cells[1].Value.ToString(); var matchInfo = MatchDAL.GetMatchInfoById(matchId); // 总合计 if (matchInfo.ScoringMethod == "总合计") { // 获取所有分组 var allGroupNames = AthletesDAL.GetAllGroupNames(matchId); // 遍历每组人员,获取所有运动员成绩 foreach (var groupName in allGroupNames.OrderBy(x => x)) { var allPartInGroupMatchScore = AthletesDAL.GetTeamMatchAthletesScore(matchId, groupName, "女", 2); // 分别挑出4人成绩最少杆数个人对team进行排序 var sortedTeamShortName = SortTeamShortNameByTeamPersonScore(allPartInGroupMatchScore); // 遍历每个team, 对运动员按照总分数进行排序 var sortedAllPartInGroupMatchScore = new List <AthleteSocreModel>(); for (var i = 0; i < sortedTeamShortName.Count; i++) { var sortedTeamAthletesScore = allPartInGroupMatchScore .Where(x => x.TeamShortName == sortedTeamShortName[i] && x.SumSocre > 0) .OrderBy(x => x.SumSocre) .ToList(); if (sortedTeamAthletesScore.Count >= 4) // 当团体赛人数少于4时,不计入团体赛成绩 { sortedAllPartInGroupMatchScore.AddRange(sortedTeamAthletesScore); } } // 导出文件 var fileName = $"{matchName}-{groupName}-女子团体成绩-{DateTime.Now.ToString("yyyyMMddHHmmss")}"; ExcelHelperPrintTeamScoreSummaryTable.GenerateTeamScoreSummaryPersonalTable(sortedAllPartInGroupMatchScore, matchName, groupName, "女", fileName); } } // 分开合计 else { // 获取所有分组 var allGroupNames = AthletesDAL.GetAllGroupNames(matchId); // 遍历每组人员,获取所有运动员成绩 foreach (var groupName in allGroupNames.OrderBy(x => x)) { var allPartInGroupMatchScore = AthletesDAL.GetTeamMatchAthletesScore(matchId, groupName, "女", 2); // 分别挑出4人成绩最少杆数一轮,二轮和对team进行排序 var sortedTeamShortName = SortTeamShortNameByTeamScore(allPartInGroupMatchScore); // 遍历每个team, 对运动员按照总分数进行排序 var sortedAllPartInGroupMatchScore = new List <AthleteSocreModel>(); for (var i = 0; i < sortedTeamShortName.Count; i++) { var sortedTeamAthletesScore = allPartInGroupMatchScore.Where(x => x.TeamShortName == sortedTeamShortName[i] && x.SumSocre > 0).OrderBy(x => x.SumSocre).ToList(); if (sortedTeamAthletesScore.Count >= 4) // 当团体赛人数少于4时,不计入团体赛成绩 { sortedAllPartInGroupMatchScore.AddRange(sortedTeamAthletesScore); } } // 导出文件 var fileName = $"{matchName}-{groupName}-女子团体成绩-{DateTime.Now.ToString("yyyyMMddHHmmss")}"; ExcelHelperPrintTeamScoreSummaryTable.GenerateTeamScoreSummaryTable(sortedAllPartInGroupMatchScore, matchName, groupName, "女", fileName); } } }
private static int PrintWomenScore(IWorkbook workbook, ISheet sheet, int startRowNum, string matchId, string matchName) { var rowNum = startRowNum; // 获取所有分组 var allGroupNames = AthletesDAL.GetAllGroupNames(matchId); // 遍历每组人员,获取所有运动员成绩 foreach (var groupName in allGroupNames.OrderBy(x => x)) { var allPartInGroupMatchScore = AthletesDAL.GetTeamMatchAthletesScore(matchId, groupName, "女", 2); var allPartInGroupFinalMatchScore = AthletesDAL.GetAthletesFinalScore(matchId, groupName, "女", 2); var athletes = allPartInGroupMatchScore.Select(x => new AthleteScore() { Name = x.Name, TeamName = x.TeamName, TeamShortName = x.TeamShortName, PreSumSocre = x.SumSocre }).ToList(); foreach (var allPart in allPartInGroupFinalMatchScore) { var athlete = athletes.Where(x => x.Name == allPart.Name).FirstOrDefault(); if (athlete != null) { athlete.FinalSumSocre = allPart.SumSocre; } } var sortedAthlete = new List <AthleteScore>(); var finalAths = athletes.Where(x => x.FinalSumSocre > 0).OrderBy(x => x.FinalSumSocre).ToList(); sortedAthlete.AddRange(finalAths); var preAths = athletes.Where(x => x.FinalSumSocre == 0 && x.PreSumSocre > 0).OrderBy(x => x.PreSumSocre).ToList(); sortedAthlete.AddRange(preAths); // 写入文件 sheet.AddMergedRegion(new CellRangeAddress(rowNum, rowNum, 0, 4)); var headRow = ExcelHelper.GetRow(sheet, rowNum); var headCell = ExcelHelper.SetCellStringValue(headRow, 0, $"杆数赛女子个人({groupName})"); headCell.CellStyle = ExcelHelper.SetCellStyle(workbook, sheet, rowNum, true, 300); rowNum++; var tbheadRow = ExcelHelper.GetRow(sheet, rowNum); ExcelHelper.SetCellStringValue(tbheadRow, 0, "代表队"); ExcelHelper.SetCellStringValue(tbheadRow, 1, "运动员"); ExcelHelper.SetCellStringValue(tbheadRow, 2, "预赛"); ExcelHelper.SetCellStringValue(tbheadRow, 3, "决赛"); ExcelHelper.SetCellStringValue(tbheadRow, 4, "名次"); rowNum++; for (var i = 0; i < sortedAthlete.Count; i++) { var cellRow = ExcelHelper.GetRow(sheet, rowNum); ExcelHelper.SetCellStringValue(cellRow, 0, sortedAthlete[i].TeamShortName); ExcelHelper.SetCellStringValue(cellRow, 1, sortedAthlete[i].Name); ExcelHelper.SetCellStringValue(cellRow, 2, sortedAthlete[i].PreSumSocre.ToString()); ExcelHelper.SetCellStringValue(cellRow, 3, sortedAthlete[i].FinalSumSocre == 0 ? "" : sortedAthlete[i].FinalSumSocre.ToString()); ExcelHelper.SetCellStringValue(cellRow, 4, i < 8 ? $"{i + 1}" : ""); ++rowNum; } rowNum++; } return(rowNum); }
private void dataGridViewX1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { var row = e.RowIndex; if (row < 0) { return; } var column = e.ColumnIndex; // 如果输入的是1,背景变红色 var editValue = this.dataGridViewX1.Rows[row].Cells[column]?.Value.ToString().Trim(); if (editValue == "1") { this.dataGridViewX1.Rows[row].Cells[column].Style.BackColor = Color.Red; } // 如果值的范围不在1~10提示 var editNumValue = 0.0; double.TryParse(editValue, out editNumValue); if (editNumValue < 1 || editNumValue > 10) { MessageBox.Show("请输入正确的分数(1~10)"); this.dataGridViewX1.Rows[row].Cells[column].Value = ""; return; } var sexName = SwitchProjectNamesToSex(this.cbProjectNames.Text); int round = Convert.ToInt32(this.cbRounds.Text); var roundField = string.Empty; if (IsFinal) { roundField = ConvertRoundToDBField(round, true); } else { roundField = ConvertRoundToDBField(round); } var groupName = this.cbGroupNames.Text; var matchId = MatchId; if (RecordByGroup) { var teamShortName = dataGridViewX1.Rows[row].Cells[1].Value.ToString(); var name = dataGridViewX1.Rows[row].Cells[2].Value.ToString(); var scores = new List <string>(); var columnsCount = dataGridViewX1.Rows[row].Cells.Count; var sum = 0.0; for (int i = 0; i < MatchInfo.NumberOneRound; i++) { scores.Add(dataGridViewX1.Rows[row].Cells[i + 3].Value.ToString()); } // 统计所有分数 for (var i = 0; i < columnsCount - 1; i++) { var cellValue = dataGridViewX1.Rows[row].Cells[i].Value.ToString(); var num = 0.0; double.TryParse(cellValue, out num); sum += num; } dataGridViewX1.Rows[row].Cells[columnsCount - 1].Value = sum; if (scores.Count > 0) { AthletesDAL.UpdateScore(matchId, groupName, sexName, roundField, teamShortName, name, string.Join(";", scores)); } } else { var teamShortName = dataGridViewX1.Rows[row].Cells[0].Value.ToString(); var name = dataGridViewX1.Rows[row].Cells[1].Value.ToString(); var scores = new List <string>(); var columnsCount = dataGridViewX1.Rows[row].Cells.Count; var sum = 0.0; for (int i = 0; i < MatchInfo.NumberOneRound; i++) { scores.Add(dataGridViewX1.Rows[row].Cells[i + 2].Value.ToString()); } // 统计所有分数 for (var i = 0; i < columnsCount - 1; i++) { var cellValue = dataGridViewX1.Rows[row].Cells[i].Value.ToString(); var num = 0.0; double.TryParse(cellValue, out num); sum += num; } dataGridViewX1.Rows[row].Cells[columnsCount - 1].Value = sum; if (scores.Count > 0) { AthletesDAL.UpdateScore(matchId, groupName, sexName, roundField, teamShortName, name, string.Join(";", scores)); } } }
private void LoadAthletes(DataTable table, string matchId, string groupName, string sexName, int round, bool isFinal) { // 决赛 if (isFinal) { // 决赛的时候,取出成绩的前几名显示,前几名在创建比赛的时候设定 var showNum = MatchInfo.FinalNum; // 获取几轮杆数的排序 var preRound = MatchInfo.PreRounds; var athletesScore1 = AthletesDAL.GetAthletesScore(matchId, groupName, sexName, preRound); athletesScore1 = athletesScore1.Where(x => x.ScoresWithRound.Count > 0).OrderBy(x => x.SumSocre).Take(showNum).ToList(); if (RecordByGroup) { // 判断是否已经生成分组表,如果没有则提示先生成分组表 var finalMatchGroupGenerate = MatchGroupTableDAL.FinalMatchGroupGenerated(matchId, groupName, sexName); if (!finalMatchGroupGenerate) { MessageBox.Show($"{groupName}-{sexName}-决赛分组表还未生成,请先生成决赛分组表后再通过分组表录入分数"); return; } var roundField = ConvertRoundToDBField(round, isFinal); var athletesScore = AthletesDAL.GetAthletesScore(matchId, groupName, sexName, roundField); // 更新每条数据在group table的位置 MatchGroupTableDAL.UpdateFinalGroupTableInfo(matchId, groupName, sexName, athletesScore); athletesScore = athletesScore.OrderBy(x => x.Row).ThenBy(x => x.Column).ToList(); for (var i = 0; i < athletesScore.Count; i++) { var row = table.NewRow(); row[0] = $"第{athletesScore[i].Row + 1}组"; row[1] = athletesScore[i].TeamShortName; row[2] = athletesScore[i].Name; var sum = 0.0; if (athletesScore1.Select(x => x.TeamShortName).Contains(athletesScore[i].TeamShortName) && athletesScore1.Select(x => x.Name).Contains(athletesScore[i].Name)) { if (athletesScore[i].Score.Count > 1) { var j = 3; foreach (var s in athletesScore[i].Score) { row[j] = s.Value; var value = 0.0; Double.TryParse(s.Value, out value); sum += value; j++; } row[3 + athletesScore[i].Score.Count] = sum; } table.Rows.Add(row); } } } else { var roundField = ConvertRoundToDBField(round, isFinal); var athletesScore = AthletesDAL.GetAthletesScore(matchId, groupName, sexName, roundField); athletesScore = athletesScore.OrderBy(x => x.TeamName).ThenBy(x => x.Name).ToList(); for (var i = 0; i < athletesScore.Count; i++) { var row = table.NewRow(); row[0] = athletesScore[i].TeamShortName; row[1] = athletesScore[i].Name; var sum = 0.0; if (athletesScore1.Select(x => x.TeamShortName).Contains(athletesScore[i].TeamShortName) && athletesScore1.Select(x => x.Name).Contains(athletesScore[i].Name)) { if (athletesScore[i].Score.Count > 1) { var j = 2; foreach (var s in athletesScore[i].Score) { row[j] = s.Value; var value = 0.0; Double.TryParse(s.Value, out value); sum += value; j++; } row[2 + athletesScore[i].Score.Count] = sum; } table.Rows.Add(row); } } } } else // 预赛 { var roundField = ConvertRoundToDBField(round, isFinal); var athletesScore = AthletesDAL.GetAthletesScore(matchId, groupName, sexName, roundField); if (RecordByGroup) { // 更新每条数据在group table的位置 MatchGroupTableDAL.UpdateGroupTableInfo(matchId, groupName, sexName, athletesScore); athletesScore = athletesScore.OrderBy(x => x.Row).ThenBy(x => x.Column).ToList(); } else { athletesScore = athletesScore.OrderBy(x => x.TeamShortName).ThenBy(x => x.Name).ToList(); } for (var i = 0; i < athletesScore.Count; i++) { var row = table.NewRow(); if (RecordByGroup) { row[0] = $"第{athletesScore[i].Row + 1}组"; row[1] = athletesScore[i].TeamShortName; row[2] = athletesScore[i].Name; var sum = 0.0; if (athletesScore[i].Score.Count > 1) { var j = 3; foreach (var s in athletesScore[i].Score) { row[j] = s.Value; var value = 0.0; Double.TryParse(s.Value, out value); sum += value; j++; } row[3 + athletesScore[i].Score.Count] = sum; } } else { row[0] = athletesScore[i].TeamShortName; row[1] = athletesScore[i].Name; var sum = 0.0; if (athletesScore[i].Score.Count > 1) { var j = 2; foreach (var s in athletesScore[i].Score) { row[j] = s.Value; var value = 0.0; Double.TryParse(s.Value, out value); sum += value; j++; } row[2 + athletesScore[i].Score.Count] = sum; } } table.Rows.Add(row); } } }