Просмотр исходного кода

工单类型试剂仪器 导出 第一层标题不能合并问题

machenyang лет назад: 8
Родитель
Сommit
02e1cfb0c6

+ 46 - 23
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/GDLXSJController.cs

@@ -256,25 +256,62 @@ namespace CallCenterApi.Interface.Controllers.report
256 256
                 var dtGDLY1 = DbHelperSQL.Query(sqlGDLY1).Tables[0];
257 257
                 int dtGDLY1rowcount = dtGDLY1.Rows.Count;
258 258
                 //每块占的列数
259
-                int[] colpos = new int[dtGDLY1rowcount + 1];
260
-                colpos[0] = 1;
259
+                var sqlcolpos = "select count(*) from T_RepositoryCategory where 1=1 and F_CategoryType=1 and F_ParentId in (select F_CategoryId from T_RepositoryCategory where F_CategoryType = 1 and F_ParentId in (select F_CategoryId from T_RepositoryCategory where F_CategoryType = 1 and F_DeleteFlag = 0 and F_CategoryName = '试剂') and F_DeleteFlag = 0) and F_DeleteFlag = 0";
260
+                var dtcolpos = Int32.Parse(DbHelperSQL.GetSingle(sqlcolpos).ToString());
261
+                List<int> colpos = new List<int>();
262
+                //colpos[0] = 0;
261 263
                 //列名
262
-                string[] dtGDLY1_name = new string[dtGDLY1rowcount + 2];
263
-                dtGDLY1_name[0] = "";
264
+                List<string> dtGDLY1_name = new List<string>();
265
+                dtGDLY1_name.Add("");
264 266
                 //列数
265 267
                 int[] dtGDLY1_count = new int[dtGDLY1rowcount + 2];
266 268
                 dtGDLY1_count[0] = 1;
267
-
269
+                dtGDLY1_count[dtGDLY1rowcount + 1] = 1;
270
+                int x = 0;
271
+                int p = 2;
272
+                int sum = 1;
268 273
                 for (int v = 0; v < dtGDLY1rowcount; v++)
269 274
                 {
270 275
                     string catename = dtGDLY1.Rows[v]["F_CategoryName"].ToString();
271 276
                     var count_sub = int.Parse(DbHelperSQL.GetSingle("select count(*) from T_RepositoryCategory where 1=1 and F_DeleteFlag = 0 and F_CategoryType = 1 and F_ParentId=" + int.Parse(dtGDLY1.Rows[v]["F_CategoryId"].ToString()) + "").ToString());
272
-                    dtGDLY1_name[v + 1] = catename;
277
+
278
+                    for (int m = 0; m < count_sub; m++)
279
+                    {
280
+                        dtGDLY1_name.Add(catename);
281
+                    }
282
+                    //dtGDLY1_name[v + 1] = catename;
283
+                    //if (count_sub == 1)
284
+                    //{ count_sub = 2; }
285
+                    ////p = p + count_sub;
286
+                    //for (x = p; x < count_sub + p; x++)
287
+                    //{
288
+                    //    dtGDLY1_name[x] = catename;
289
+                    //}
290
+                    //p = x;
291
+
292
+
293
+                    //dtGDLY1_name[v + 1] = catename;
273 294
                     dtGDLY1_count[v + 1] = count_sub;
274
-                    colpos[v + 1] = count_sub;
295
+                    //if ((v + 1) % 2 == 1)
296
+                    //    colpos[v + 1] = count_sub + colpos[v] - 1;
297
+                    //else
298
+                    //    colpos[v + 1] = colpos[v] + 1;
299
+
300
+                    if (count_sub > 1)
301
+                    {
302
+                        //colpos[v * 2] = colpos[v * 2 - 1] + 1;
303
+                        //colpos[v * 2 + 1] = colpos[v * 2] + dtGDLY1_count[v] - 1;
304
+                        colpos.Add(sum);
305
+                        colpos.Add(sum + count_sub - 1);
306
+                    }
307
+                    sum += count_sub;
275 308
                 }
276
-                dtGDLY1_name[dtGDLY1rowcount + 1] = "总计";
277
-                dtGDLY1_count[dtGDLY1rowcount + 1] = 1;
309
+                //colpos[dtGDLY1rowcount * 2] = colpos[dtGDLY1rowcount * 2 - 1] + 1;
310
+                //colpos[dtGDLY1rowcount * 2 + 1] = colpos[dtGDLY1rowcount * 2] + dtGDLY1_count[dtGDLY1rowcount] - 1;
311
+                dtGDLY1_name.Add("总计");
312
+                ////dtGDLY1_count[dtGDLY1rowcount + 1] = 1;
313
+                //colpos[dtcolpos + 2] = 1;
314
+                //colpos[dtcolpos + 3] = 1;
278 315
 
279 316
                 NPOIHelper npoi = new NPOIHelper();
280 317
                 DataTable dt = getData(stime, endtime);
@@ -295,19 +332,5 @@ namespace CallCenterApi.Interface.Controllers.report
295 332
             }
296 333
             return res;
297 334
         }
298
-
299
-        ///// <summary>
300
-        ///// 合并单元格
301
-        ///// </summary>
302
-        ///// <param name="sheet">要合并单元格所在的sheet</param>
303
-        ///// <param name="rowstart">开始行的索引</param>
304
-        ///// <param name="rowend">结束行的索引</param>
305
-        ///// <param name="colstart">开始列的索引</param>
306
-        ///// <param name="colend">结束列的索引</param>
307
-        //public static void SetCellRangeAddress(ISheet sheet, int rowstart, int rowend, int colstart, int colend)
308
-        //{
309
-        //    CellRangeAddress cellRangeAddress = new CellRangeAddress(rowstart, rowend, colstart, colend);
310
-        //    sheet.AddMergedRegion(cellRangeAddress);
311
-        //}
312 335
     }
313 336
 }

+ 48 - 9
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/GDLXYQController.cs

@@ -259,25 +259,64 @@ namespace CallCenterApi.Interface.Controllers.report
259 259
                 var dtGDLY1 = DbHelperSQL.Query(sqlGDLY1).Tables[0];
260 260
                 int dtGDLY1rowcount = dtGDLY1.Rows.Count;
261 261
                 //每块占的列数
262
-                int[] colpos = new int[dtGDLY1rowcount + 1];
263
-                colpos[0] = 1;
262
+                var sqlcolpos = "select count(*) from T_RepositoryCategory where 1=1 and F_CategoryType=1 and F_ParentId in (select F_CategoryId from T_RepositoryCategory where F_CategoryType = 1 and F_ParentId in (select F_CategoryId from T_RepositoryCategory where F_CategoryType = 1 and F_DeleteFlag = 0 and F_CategoryName = '仪器') and F_DeleteFlag = 0) and F_DeleteFlag = 0";
263
+                var dtcolpos = Int32.Parse(DbHelperSQL.GetSingle(sqlcolpos).ToString());
264
+                List<int> colpos = new List<int>();
265
+                //colpos[0] = 0;
264 266
                 //列名
265
-                string[] dtGDLY1_name = new string[dtGDLY1rowcount + 2];
266
-                dtGDLY1_name[0] = "";
267
+                List<string> dtGDLY1_name = new List<string>();
268
+                dtGDLY1_name.Add("");
267 269
                 //列数
268 270
                 int[] dtGDLY1_count = new int[dtGDLY1rowcount + 2];
269 271
                 dtGDLY1_count[0] = 1;
270
-
272
+                dtGDLY1_count[dtGDLY1rowcount + 1] = 1;
273
+                int x = 0;
274
+                int p = 2;
275
+                int sum = 1;
271 276
                 for (int v = 0; v < dtGDLY1rowcount; v++)
272 277
                 {
273 278
                     string catename = dtGDLY1.Rows[v]["F_CategoryName"].ToString();
274 279
                     var count_sub = int.Parse(DbHelperSQL.GetSingle("select count(*) from T_RepositoryCategory where 1=1 and F_DeleteFlag = 0 and F_CategoryType = 1 and F_ParentId=" + int.Parse(dtGDLY1.Rows[v]["F_CategoryId"].ToString()) + "").ToString());
275
-                    dtGDLY1_name[v + 1] = catename;
280
+
281
+                    for (int m = 0; m < count_sub; m++)
282
+                    {
283
+                        dtGDLY1_name.Add(catename);
284
+                    }
285
+                    //dtGDLY1_name[v + 1] = catename;
286
+                    //if (count_sub == 1)
287
+                    //{ count_sub = 2; }
288
+                    ////p = p + count_sub;
289
+                    //for (x = p; x < count_sub + p; x++)
290
+                    //{
291
+                    //    dtGDLY1_name[x] = catename;
292
+                    //}
293
+                    //p = x;
294
+
295
+
296
+                    //dtGDLY1_name[v + 1] = catename;
276 297
                     dtGDLY1_count[v + 1] = count_sub;
277
-                    colpos[v + 1] = count_sub;
298
+                    //if ((v + 1) % 2 == 1)
299
+                    //    colpos[v + 1] = count_sub + colpos[v] - 1;
300
+                    //else
301
+                    //    colpos[v + 1] = colpos[v] + 1;
302
+
303
+                    if (count_sub > 1)
304
+                    {
305
+                        //colpos[v * 2] = colpos[v * 2 - 1] + 1;
306
+                        //colpos[v * 2 + 1] = colpos[v * 2] + dtGDLY1_count[v] - 1;
307
+                        colpos.Add(sum);
308
+                        colpos.Add(sum + count_sub - 1);
309
+                    }
310
+                    sum += count_sub;
278 311
                 }
279
-                dtGDLY1_name[dtGDLY1rowcount + 1] = "总计";
280
-                dtGDLY1_count[dtGDLY1rowcount + 1] = 1;
312
+                //colpos[dtGDLY1rowcount * 2] = colpos[dtGDLY1rowcount * 2 - 1] + 1;
313
+                //colpos[dtGDLY1rowcount * 2 + 1] = colpos[dtGDLY1rowcount * 2] + dtGDLY1_count[dtGDLY1rowcount] - 1;
314
+                dtGDLY1_name.Add("总计");
315
+                ////dtGDLY1_count[dtGDLY1rowcount + 1] = 1;
316
+                //colpos[dtcolpos + 2] = 1;
317
+                //colpos[dtcolpos + 3] = 1;
318
+
319
+
281 320
 
282 321
                 NPOIHelper npoi = new NPOIHelper();
283 322
                 DataTable dt = getData(stime, endtime);