private static void fillRow(SvodDdr.DdrDataContext dc, int rowIndex, Worksheet ws, List<SourceData> sqlData, List<SourceData> usedData)
        {
            var row = (Range)ws.Rows[rowIndex];
            string mkbRange = ((Range)row.Cells[1, 52]).Value2;

            var rowData = new RowData();
            rowData.SelectData(sqlData, mkbRange, usedData, false);
            rowData.Fill(ws, rowIndex);
        }
        private static void fillRow(SvodDdr.DdrDataContext dc, int rowIndex, Worksheet ws, 
                List<SourceData> sqlData)
        {
            var row = (Range)ws.Rows[rowIndex];
            string propValidValue = ((Range)row.Cells[1, propNameColumn]).Value2;
            propValidValue = propValidValue.Split('=')[1];
            int propTypeId = (int)((Range)row.Cells[1, serviceCodeColumn]).Value2;

            var rowData = new RowData();
            rowData.SelectData(sqlData, propTypeId, propValidValue);
            rowData.Fill(ws, rowIndex);
        }
        public static void Fill6000(SvodDdr.DdrDataContext dc)
        {
            dc.context.ReportProgress(@"Заполняем форму 6000 ...");

            var ws = ((Worksheet)dc.newDoc.Worksheets[@"стр.10_12"]);
            ws.Activate();

            var sqlText = string.Format(@"SELECT
                {2} - YEAR(Client.birthDate) as ClientAge,
                Diagnosis.`MKB` AS Mkb,
                Client.`sex` AS Sex,
                COUNT(DISTINCT Event.id) as Kol
                FROM Client
                INNER JOIN EventType ON (EventType.`code` IN ('dd2013_1','dd2013_2'))
                    AND (EventType.`deleted` = 0) AND (Client.`deleted` = 0)
                INNER JOIN Event ON (Event.`eventType_id` = EventType.`id`) AND (Event.`deleted` = 0)
                    AND (Event.`client_id` = Client.`id`)
                INNER JOIN Diagnostic ON (Diagnostic.`event_id` = Event.`id`)
                    AND (Diagnostic.`deleted` = 0)
                INNER JOIN Diagnosis ON (Diagnosis.`id` = Diagnostic.`diagnosis_id`)
                    AND (Diagnosis.`deleted` = 0)
                INNER JOIN rbDiseaseCharacter ON (rbDiseaseCharacter.`id` = Diagnostic.`character_id`)
                    AND (rbDiseaseCharacter.`code` = '5')
                WHERE (Event.`execDate` >= '{0}') AND (Event.`execDate` < '{1}')
                AND COALESCE(Diagnosis.`MKB`, '') <> ''
                AND Diagnosis.`MKB` NOT LIKE 'Z%'
                GROUP BY 1,2,3",
                               dc.dateEnd.BeginOfYear().SqlStr(),
                                dc.dateEnd.AddDays(1).SqlStr(),
                                dc.dateEnd.Year);

            var sqlData = selectSqlData<SourceData>(dc, sqlText);

            var usedData = new List<SourceData>();

            fillSection(dc, ws, sqlData, usedData, 8, 25);
            fillSection(dc, ws, sqlData, usedData, 31, 46);
            fillSection(dc, ws, sqlData, usedData, 52, 68);

            var totalRowData = new RowData();
            totalRowData.SelectData(sqlData, "", usedData, true);
            totalRowData.Fill(ws, 69);

            dc.context.ProgressSeparator();
        }