using System;
using System.Linq;
using System.Xml;

using BS.Shared;

using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BeWo.Report.ReportObjects;

namespace PURReports
{
    public partial class PSBServicesOverview : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<QueryRO>
    {
        private DevExpress.XtraReports.UI.TopMarginBand topMarginBand1;
        private DevExpress.XtraReports.UI.DetailBand detailBand1;
        private DevExpress.XtraReports.UI.BottomMarginBand bottomMarginBand1;

        public PSBServicesOverview()
        {
            InitializeComponent();
        }

        public void SetReportDataSource(QueryRO pRO)
        {
            var reportDate = DateTime.Parse(pRO.Rows[0].Field1.ToString());

            #region RowVariables
            int anzMaennlich = 0;
            int anzWeiblich = 0;
            const int anzGeschlUnbekannt = 0;


            int anzAlterbis14 = 0;
            int anzAlter15bis19 = 0;
            int anzAlter19bis24 = 0;
            int anzAlter25bis29 = 0;
            int anzAlter30bis39 = 0;
            int anzAlter40bis49 = 0;
            int anzAlter50bis59 = 0;
            int anzAlter60bis69 = 0;
            int anzAlter70bis79 = 0;
            int anzAlterAb80 = 0;
            int anzAlterUnb = 0;


            int anzInnenstadtOst44135 = 0;
            int anzInnenstadtOst44139 = 0;
            int anzInnenstadtOst44141 = 0;
            int anzInnenstadtWest44137 = 0;
            int anzInnenstadtNord44145 = 0;
            int anzInnenstadtNord44147 = 0;
            int anzLütgendortmund44149 = 0;
            int anzLütgendortmund44379 = 0;
            int anzLütgendortmund44388 = 0;
            int anzHombruch44225 = 0;
            int anzHombruch44227 = 0;
            int anzHombruch44229 = 0;
            int anzHoerde44263 = 0;
            int anzHoerde44265 = 0;
            int anzHoerde44267 = 0;
            int anzAplerbeck44269 = 0;
            int anzAplerbeck44287 = 0;
            int anzAplerbeck44289 = 0;
            int anzBrackel44309 = 0;
            int anzBrackel44319 = 0;
            int anzBrackel44143 = 0;
            int anzScharnhorst44328 = 0;
            int anzScharnhorst44329 = 0;
            int anzEving44339 = 0;
            int anzMengede44357 = 0;
            int anzMengede44359 = 0;
            int anzHuckarde44369 = 0;
            int anzWohnortAusserhalbDortmunds = 0;
            int anzWohnortUnbekannt = 0;


            int anzF0 = 0;
            int anzF10 = 0;
            int anzF13F15 = 0;
            int anzF11F12F14F16F18 = 0;
            int anzF19 = 0;
            int anzF2 = 0;
            int anzF3 = 0;
            int anzF4 = 0;
            int anzF5 = 0;
            int anzF50 = 0;
            int anzF6 = 0;
            int anzF63 = 0;
            int anzF7 = 0;
            int anzF8 = 0;
            int anzF9 = 0;
            int anzKeinePsychischeErkrankung = 0;
            int anzDiagnoseUnbekannt = 0;
            int anzF1922 = 0;


            int anzBetreuungsendeRegulaer = 0;
            int anzAbbruchDurchKlient = 0;
            int anzAbbruchDurchEinrichtung = 0;
            int anzKlientInAndereBetreuungseinrichtungGewechselt = 0;
            int anzKlientInJVAForensik = 0;
            int anzKlientVerstorben = 0;
            int anzBetreuungsendeNichtAusgefuellt = 0;


            int anzLedig = 0;
            int anzVerheiratetZusammen = 0;
            int anzVerheiratetGetrennt = 0;
            int anzGeschieden = 0;
            int anzVerwitwet = 0;
            int anzFamilienstandUnbekannt = 0;


            int anzAlleinstehen = 0;
            int anzZeitweiligeBeziehung = 0;
            int anzFesteBeziehung = 0;
            int anzBeziehungUnbekannt = 0;


            int anzSelbststaendigesWohnen = 0;
            int anzBeiAngehoerigenEltern = 0;
            int anzBeWo = 0;
            int anzHeimKlinik = 0;
            int anzJVA = 0;
            int anzOhneWohnung = 0;
            int anzWohnsituationSonstiges = 0;
            int anzWohnsituationUnbekannt = 0;


            int anzAlleinLebend = 0;
            int anzMitElternteil = 0;
            int anzMitKindern = 0;
            int anzMitPartner = 0;
            int anzMitPartnerUndKindern = 0;
            int anzMitFreundenBekannten = 0;
            int anzMitSonstigenPersonen = 0;
            int anzLebtZusammenMitUnbekannt = 0;


            int anzDeutsch = 0;
            int anzEUBuerger = 0;
            int anzSonstigeNationalitaet = 0;
            int anzNationalitaetUnbekannt = 0;


            int anzOhneSchulabschluss = 0;
            int anzSonderabschluss = 0;
            int anzHauptschulVolksabschluss = 0;
            int anzRealschulabschlussPolytechnischeOberschule = 0;
            int anzFachAbitur = 0;
            int anzHochschulabschluss = 0;
            int anzAndererSchulabschluss = 0;
            int anzSchulabschlussUnbekannt = 0;


            int anzErwerbsBerufstaetigkeit = 0;
            int anzLebenspartnerAngehoerige = 0;
            int anzRente = 0;
            int anzKrankengeldUebergangsgeld = 0;
            int anzArbeitslosenGeldI = 0;
            int anzArbeitslosenGeldII = 0;
            int anzSozialHilfeGrundischerung = 0;
            int anzUnterhaltSonstiges = 0;
            int anzUnterhaltUnbekannt = 0;


            int anzEntzugsbehandlung = 0;
            int anzVorgeschichteSubstitutionsbehandlung = 0;
            int anzambulanteEntwoehungsbehandlung = 0;
            int anzstationaereEntwoehnungsbehandlung = 0;
            int anzteilstationaereEntwoehnungsbehandlung = 0;


            int anzOhneVermittlung = 0;
            int anzFamilieFreunde = 0;
            int anzArbeitgeberBetriebSchule = 0;
            int anzNiedergelassenerArztPsychotherapeut = 0;
            int anzKrankenhaus = 0;
            int anzStationaereSuchteinrichtung = 0;
            int anzSuchtberatung = 0;
            int anzAndereBeratungsdienste = 0;
            int anzJustizBehoerdeSozialeVerwaltung = 0;
            int anzDavonARGE = 0;
            int anzAbstinenzSelbsthilfegruppe = 0;
            int anzKostenLeistungstraeger = 0;
            int anzKlientVermitteltDurchSonstiges = 0;
            int anzKlientVermitteltDurchUnbekannt = 0;


            int anzAmbulanteEntgiftungEntzug = 0;
            int anzStationaereEntgiftungEntzug = 0;
            int anzAmbulanteBeratung = 0;
            int anzAmbulanteBehandlung = 0;
            int anzMotivationsbehandlung = 0;
            int anzAmbulanteReha = 0;
            int anzStationaereReha = 0;
            int anzTeilstationaereReha = 0;
            int anzSubstitutionsbehandlung = 0;
            int anzKrankenhausbehandlungChronischMehrfachgeschaedigterAbhaengiger = 0;
            int anzAmbulantBeWo = 0;
            int anzStationaerBewo = 0;
            int anzArbeitsUndBeschaeftigungsprojekte = 0;
            int anzWeitervermittlungSonstiges = 0;
            int anzPsychosozialeBegleitung = 0;
            int anzWeitervermittlungNichtAusgefuellt = 0;


            int anzDavonAbstinent = 0;
            int anzDavonGebessert = 0;
            int anzDavonUnveraendert = 0;
            int anzDavonVerschlechtert = 0;
            #endregion

            var customerList = DAOFactory.GenericDAO.GetAll<Customer>().Where(c => c.SupportConcepts.Count > 0 && c.SupportConcepts.Any(sc => sc.StartDate.Value.Year == reportDate.Year));

            var varFieldDefs = DAOFactory.GenericDAO.GetAllActive<VarFieldDef>();
            var oid2VarfieldDef = varFieldDefs.ToDictionary(varFieldDef => varFieldDef.Oid.Value);

            foreach (var customer in customerList)
            {
                //if () Abfragen ob PSB?
                #region Geschlecht
                if (customer.Person.Sex == Sex.Male)
                    anzMaennlich++;
                else
                    anzWeiblich++;

                #endregion


                #region Alter

                if (!customer.Person.DateOfBirth.HasValue)
                {
                    anzAlterUnb++;
                }
                else
                {
                    int alter = (DateTime.Now - customer.Person.DateOfBirth.Value).Days / 365;

                    if (alter <= 14)
                        anzAlterbis14++;
                    else if (alter <= 19)
                        anzAlter15bis19++;
                    else if (alter <= 24)
                        anzAlter19bis24++;
                    else if (alter <= 29)
                        anzAlter25bis29++;
                    else if (alter <= 39)
                        anzAlter30bis39++;
                    else if (alter <= 49)
                        anzAlter40bis49++;
                    else if (alter <= 59)
                        anzAlter50bis59++;
                    else if (alter <= 69)
                        anzAlter60bis69++;
                    else if (alter <= 79)
                        anzAlter70bis79++;
                    else if (alter >= 80)
                        anzAlterAb80++;
                }

                #endregion


                #region Wohnort

                if (customer.Person.Address != null)
                {
                    String plz = customer.Person.Address.PostalCode;
                    switch (plz)
                    {
                        case "44135":
                            anzInnenstadtOst44135++;
                            break;
                        case "44139":
                            anzInnenstadtOst44139++;
                            break;
                        case "44141":
                            anzInnenstadtOst44141++;
                            break;
                        case "44137":
                            anzInnenstadtWest44137++;
                            break;
                        case "44145":
                            anzInnenstadtNord44145++;
                            break;
                        case "44147":
                            anzInnenstadtNord44147++;
                            break;
                        case "44149":
                            anzLütgendortmund44149++;
                            break;
                        case "44379":
                            anzLütgendortmund44379++;
                            break;
                        case "44388":
                            anzLütgendortmund44388++;
                            break;
                        case "44225":
                            anzHombruch44225++;
                            break;
                        case "44227":
                            anzHombruch44227++;
                            break;
                        case "44229":
                            anzHombruch44229++;
                            break;
                        case "44263":
                            anzHoerde44263++;
                            break;
                        case "44265":
                            anzHoerde44265++;
                            break;
                        case "44267":
                            anzHoerde44267++;
                            break;
                        case "44269":
                            anzAplerbeck44269++;
                            break;
                        case "44287":
                            anzAplerbeck44287++;
                            break;
                        case "44289":
                            anzAplerbeck44289++;
                            break;
                        case "44309":
                            anzBrackel44309++;
                            break;
                        case "44319":
                            anzBrackel44319++;
                            break;
                        case "44143":
                            anzBrackel44143++;
                            break;
                        case "44328":
                            anzScharnhorst44328++;
                            break;
                        case "44329":
                            anzScharnhorst44329++;
                            break;
                        case "44339":
                            anzEving44339++;
                            break;
                        case "44357":
                            anzMengede44357++;
                            break;
                        case "44359":
                            anzMengede44359++;
                            break;
                        case "44369":
                            anzHuckarde44369++;
                            break;
                        default:
                            if (string.IsNullOrWhiteSpace(plz))
                            {
                                anzWohnortUnbekannt++;
                            }
                            else
                            {
                                anzWohnortAusserhalbDortmunds++;
                            }
                            break;
                    }
                }

                #endregion


                #region Diagnosen

                foreach (var d2c in customer.Diagnosis2CustomerList)
                {
                    if (d2c.ICD10DiagnosisCode == null)
                    {
                        anzDiagnoseUnbekannt++;
                        continue;
                    }
                    switch (d2c.ICD10DiagnosisCode)
                    {
                        case "F0":
                            anzF0++;
                            break;
                        case "F2":
                            anzF2++;
                            break;
                        case "F3":
                            anzF3++;
                            break;
                        case "F4":
                            anzF4++;
                            break;
                        case "F5":
                            anzF5++;
                            break;
                        case "F6":
                            anzF6++;
                            break;
                        case "F7":
                            anzF7++;
                            break;
                        case "F8":
                            anzF8++;
                            break;
                        case "F9":
                            anzF9++;
                            break;
                        case "F10":
                            anzF10++;
                            break;
                        case "F11":
                            anzF11F12F14F16F18++;
                            break;
                        case "F12":
                            anzF11F12F14F16F18++;
                            break;
                        case "F13":
                            anzF13F15++;
                            break;
                        case "F14":
                            anzF11F12F14F16F18++;
                            break;
                        case "F15":
                            anzF13F15++;
                            break;
                        case "F16":
                            anzF11F12F14F16F18++;
                            break;
                        case "F18":
                            anzF11F12F14F16F18++;
                            break;
                        case "F19":
                            anzF19++;
                            break;
                        case "F19.22":
                            anzF1922++;
                            break;
                        case "F50":
                            anzF50++;
                            break;
                        case "F63":
                            anzF63++;
                            break;
                        default:
                            anzKeinePsychischeErkrankung++;
                            break;
                    }
                }

                #endregion


                #region Mögliche Begründung zum Betreuungsende

                if (customer.TerminationReason != null && customer.TerminationDate.HasValue
                    && customer.TerminationDate.Value >= reportDate &&
                    customer.TerminationDate.Value < reportDate.AddYears(1))
                {
                    switch (customer.TerminationReason.Value)
                    {
                        case "Betreuungsende regulär":
                            anzBetreuungsendeRegulaer++;
                            break;
                        case "Abbruch durch Klienten":
                            anzAbbruchDurchKlient++;
                            break;
                        case "Abbruch durch Einrichtung":
                            anzAbbruchDurchEinrichtung++;
                            break;
                        case "Klient in andere Betreuungseinrichtung gewechselt":
                            anzKlientInAndereBetreuungseinrichtungGewechselt++;
                            break;
                        case "Klient in JVA / Forensik":
                            anzKlientInJVAForensik++;
                            break;
                        case "Klient verstorben":
                            anzKlientVerstorben++;
                            break;
                        case "":
                            anzBetreuungsendeNichtAusgefuellt++;
                            break;
                    }
                }

                #endregion


                #region Weitervermittlung

                foreach (var placement in customer.PlacementList)
                {
                    if (placement.PlacementDate.HasValue && placement.PlacementDate.Value >= reportDate &&
                        placement.PlacementDate.Value < reportDate.AddYears(1))
                    {
                        if (placement.Objective == null) continue;
                        switch (placement.Objective.Value)
                        {
                            case "ambulante Entgiftung / Entzug":
                                anzAmbulanteEntgiftungEntzug++;
                                break;
                            case "stationäre Entgiftung / Entzug":
                                anzStationaereEntgiftungEntzug++;
                                break;
                            case "ambulante Beratung":
                                anzAmbulanteBeratung++;
                                break;
                            case "ambulante Behandlung":
                                anzAmbulanteBehandlung++;
                                break;
                            case "Motivationsbehandlung":
                                anzMotivationsbehandlung++;
                                break;
                            case "Ambulante Reha":
                                anzAmbulanteReha++;
                                break;
                            case "stationäre Reha":
                                anzStationaereReha++;
                                break;
                            case "teilstationäre Reha":
                                anzTeilstationaereReha++;
                                break;
                            case "Substitutionsbehandlung":
                                anzSubstitutionsbehandlung++;
                                break;
                            case "Krankenhausbehandlung chronisch mehrfachgeschädigter Abhängiger":
                                anzKrankenhausbehandlungChronischMehrfachgeschaedigterAbhaengiger++;
                                break;
                            case "Ambulant Betreutes Wohnen":
                                anzAmbulantBeWo++;
                                break;
                            case "Stationär Betreutes Wohnen":
                                anzStationaerBewo++;
                                break;
                            case "Arbeits- und Beschäftigungsprojekte":
                                anzArbeitsUndBeschaeftigungsprojekte++;
                                break;
                            case "psychosoziale Begleitung":
                                anzPsychosozialeBegleitung++;
                                break;
                            case "":
                                anzWeitervermittlungNichtAusgefuellt++;
                                break;
                            default:
                                anzWeitervermittlungSonstiges++;
                                break;
                        }
                    }
                }

                #endregion


                #region Familienstand

                switch (customer.Person.FamilyStatus)
                {
                    case FamilyStatus.Divorced:
                        anzGeschieden++;
                        break;
                    case FamilyStatus.Married:
                        anzVerheiratetZusammen++;
                        break;
                    case FamilyStatus.PartnerDivorced:
                        anzGeschieden++;
                        break;
                    case FamilyStatus.Single:
                        anzLedig++;
                        break;
                    case FamilyStatus.Widowed:
                        anzVerwitwet++;
                        break;
                    default:
                        anzFamilienstandUnbekannt++;
                        break;
                }

                foreach (var varfield in customer.VarFieldValueList)
                {
                    if (oid2VarfieldDef.ContainsKey(varfield.VarFieldDefOid.Value))
                    {
                        VarFieldDef def = oid2VarfieldDef[varfield.VarFieldDefOid.Value];
                        if (!String.IsNullOrEmpty(def.Label))
                        {
                            if (def.Label.Equals("Überwiegender finanzieller Unterhalt") ||
                                def.Label.Equals("Höchster erreichter Schulabschluß") ||
                                def.Label.Equals("Wohnsituation") ||
                                def.Label.Equals("Lebt zusammen mit") ||
                                def.Label.Equals("Staatsangehörigkeit") ||
                                def.Label.Equals("Partnerbeziehung") ||
                                def.Label.Equals("Vorgeschichte (Mehrfachnennung)") ||
                                def.Label.Equals("Kontakt zum Klienten vermittelt durch"))
                            {
                                var doc = new XmlDocument();
                                doc.LoadXml(varfield.SerializedValue);

                                var desirializedValue = doc.SelectSingleNode("string").InnerText;
                                switch (desirializedValue)
                                {
                                    #region Überwiegender finanzieller Unterhalt
                                    case "Erwerbs- / Berufstätigkeit":
                                        anzErwerbsBerufstaetigkeit++;
                                        break;
                                    case "Lebenspartner / Angehörige":
                                        anzLebenspartnerAngehoerige++;
                                        break;
                                    case "Rente":
                                        anzRente++;
                                        break;
                                    case "Krankengeld / Übergangsgeld":
                                        anzKrankengeldUebergangsgeld++;
                                        break;
                                    case "Arbeitslosengeld I":
                                        anzArbeitslosenGeldI++;
                                        break;
                                    case "Arbeitslosengeld II":
                                        anzArbeitslosenGeldII++;
                                        break;
                                    case "Sozialhilfe / Grundsicherung":
                                        anzSozialHilfeGrundischerung++;
                                        break;
                                    case "sonstiges":
                                        switch (def.Label)
                                        {
                                            case "Staatsangehörigkeit":
                                                anzSonstigeNationalitaet++;
                                                break;
                                            case "Überwiegender finanzieller Unterhalt":
                                                anzUnterhaltSonstiges++;
                                                break;
                                            case "Kontakt zum Klienten vermittelt durch":
                                                anzKlientVermitteltDurchSonstiges++;
                                                break;
                                        }
                                        break;
                                    case "unbekannt / unklar":
                                        anzUnterhaltUnbekannt++;
                                        break;
                                    #endregion
                                    #region Höchster erreichter Schulabschluß
                                    case "(Fach-)Abitur":
                                        anzFachAbitur++;
                                        break;
                                    case "Hochschulabschluß":
                                        anzHochschulabschluss++;
                                        break;
                                    case "anderer Schulabschluß":
                                        anzAndererSchulabschluss++;
                                        break;
                                    case "Hauptschul-/ Volksabschluß":
                                        anzHauptschulVolksabschluss++;
                                        break;
                                    case "ohne Schulabschluß":
                                        anzOhneSchulabschluss++;
                                        break;
                                    case "Realschulabschluß/ Polytechnische Oberschule":
                                        anzRealschulabschlussPolytechnischeOberschule++;
                                        break;
                                    case "Sonderschulabschluß":
                                        anzSonderabschluss++;
                                        break;
                                    case "unbekannt":
                                        switch (def.Label)
                                        {
                                            case "Höchster erreichter Schulabschluß":
                                                anzSchulabschlussUnbekannt++;
                                                break;
                                            case "Wohnsituation":
                                                anzWohnsituationUnbekannt++;
                                                break;
                                            case "Lebt zusammen mit":
                                                anzLebtZusammenMitUnbekannt++;
                                                break;
                                            case "Staatsangehörigkeit":
                                                anzSonstigeNationalitaet++;
                                                break;
                                            case "Kontakt zum Klienten vermittelt durch":
                                                anzKlientVermitteltDurchUnbekannt++;
                                                break;
                                            case "Partnerbeziehung":
                                                anzBeziehungUnbekannt++;
                                                break;
                                        }
                                        break;
                                    #endregion
                                    #region Wohnsituation
                                    case "Bei Angehörigen / bei Eltern":
                                        anzBeiAngehoerigenEltern++;
                                        break;
                                    case "Betreutes Wohnen":
                                        anzBeWo++;
                                        break;
                                    case "Heim / Klinik":
                                        anzHeimKlinik++;
                                        break;
                                    case "JVA":
                                        anzJVA++;
                                        break;
                                    case "ohne Wohnung":
                                        anzOhneWohnung++;
                                        break;
                                    case "selbständiges Wohnen":
                                        anzSelbststaendigesWohnen++;
                                        break;
                                    case "Sonstiges":
                                        anzWohnsituationSonstiges++;
                                        break;
                                    #endregion
                                    #region Lebt zusammen mit
                                    case "alleinlebend":
                                        anzAlleinLebend++;
                                        break;
                                    case "mit Elternteil":
                                        anzMitElternteil++;
                                        break;
                                    case "mit Kindern":
                                        anzMitKindern++;
                                        break;
                                    case "mit Partner/ -in und Kindern":
                                        anzMitPartnerUndKindern++;
                                        break;
                                    case "mit Partner/ -in":
                                        anzMitPartner++;
                                        break;
                                    case "mit sonstigen Personen":
                                        anzMitSonstigenPersonen++;
                                        break;
                                    #endregion
                                    #region Staatsangehörigkeit
                                    case "Bürger(in) eines EU-Landes":
                                        anzEUBuerger++;
                                        break;
                                    case "Deutsche":
                                        anzDeutsch++;
                                        break;
                                    #endregion
                                    #region Partnerbeziehung
                                    case "alleinstehend":
                                        anzAlleinstehen++;
                                        break;
                                    case "zeitweilige Beziehung(en)":
                                        anzZeitweiligeBeziehung++;
                                        break;
                                    case "feste Beziehungen":
                                        anzFesteBeziehung++;
                                        break;
                                    #endregion
                                    #region Vorgeschichte (Mehrfachnennung)
                                    case "ambulante Entwöhnungsbehandlung":
                                        anzambulanteEntwoehungsbehandlung++;
                                        break;
                                    case "Entzugsbehandlung":
                                        anzEntzugsbehandlung++;
                                        break;
                                    case "stationäre Entwöhnungsbehandlung":
                                        anzstationaereEntwoehnungsbehandlung++;
                                        break;
                                    case "Substitutionsbehandlung":
                                        anzVorgeschichteSubstitutionsbehandlung++;
                                        break;
                                    case "teilstationäre Entwöhnungsbehandlung":
                                        anzteilstationaereEntwoehnungsbehandlung++;
                                        break;
                                    #endregion
                                    #region Kontakt zum Klienten vermittelt durch
                                    case "Ohne Vermittlung":
                                        anzOhneVermittlung++;
                                        break;
                                    case "Familie / Freunde":
                                        anzFamilieFreunde++;
                                        break;
                                    case "Arbeitgeber/ Betrieb/ Schule":
                                        anzArbeitgeberBetriebSchule++;
                                        break;
                                    case "Niedergelassener Arzt / Psychotherapeut":
                                        anzNiedergelassenerArztPsychotherapeut++;
                                        break;
                                    case "Krankenhaus":
                                        anzKrankenhaus++;
                                        break;
                                    case "Stationäre Suchteinrichtung":
                                        anzStationaereSuchteinrichtung++;
                                        break;
                                    case "Suchtberatung":
                                        anzSuchtberatung++;
                                        break;
                                    case "Andere Beratungsdienste":
                                        anzAndereBeratungsdienste++;
                                        break;
                                    case "Justizbehörde / soziale Verwaltung":
                                        anzJustizBehoerdeSozialeVerwaltung++;
                                        break;
                                    case "Abstinenz / Selbsthilfegruppe":
                                        anzAbstinenzSelbsthilfegruppe++;
                                        break;
                                    case "Kosten- / Leistungsträger":
                                        anzKostenLeistungstraeger++;
                                        break;
                                    #endregion
                                }
                            }
                        }
                    }
                }

                #endregion
            }

            // ------------------------------------------------------------------------------------------------------------------ //

            berichtsJahr.Text = reportDate.Year.ToString();

            #region Geschlecht

            anzahlMaennlich.Text = String.Format("{0}", anzMaennlich);
            summeAnzahlMaennlich.Text = String.Format("{0}", anzMaennlich);

            anzahlWeiblich.Text = String.Format("{0}", anzWeiblich);
            summeAnzahlWeiblich.Text = String.Format("{0}", anzWeiblich);

            anzahlGeschlechtUnbekannt.Text = String.Format("{0}", anzGeschlUnbekannt);
            summeAnzahlGeschlechtUnbekannt.Text = String.Format("{0}", anzGeschlUnbekannt);

            anzahlGeschlechtGesamt.Text = String.Format("{0}", anzMaennlich + anzWeiblich + anzGeschlUnbekannt);
            summeAnzahlGeschlechtGesamt.Text = String.Format("{0}", anzMaennlich + anzWeiblich + anzGeschlUnbekannt);

            #endregion

            #region Alter

            alterMax14.Text = string.Format("{0}", anzAlterbis14);
            alter15bis19.Text = string.Format("{0}", anzAlter15bis19);
            alter19bis24.Text = string.Format("{0}", anzAlter19bis24);
            alter25bis29.Text = string.Format("{0}", anzAlter25bis29);
            alter30bis39.Text = string.Format("{0}", anzAlter30bis39);
            alter40bis49.Text = string.Format("{0}", anzAlter40bis49);
            alter50bis59.Text = string.Format("{0}", anzAlter50bis59);
            alter60bis69.Text = string.Format("{0}", anzAlter60bis69);
            alter70bis79.Text = string.Format("{0}", anzAlter70bis79);
            alterMin80.Text = string.Format("{0}", anzAlterAb80);
            alterUnbekannt.Text = string.Format("{0}", anzAlterUnb);
            alterGesamt.Text = string.Format("{0}",
                                                anzAlterbis14 + anzAlter15bis19 + anzAlter19bis24 + anzAlter25bis29 +
                                                anzAlter30bis39 + anzAlter40bis49 + anzAlter50bis59 + anzAlter60bis69 +
                                                anzAlter70bis79 + anzAlterAb80 + anzAlterUnb);
            summeAlterMax14.Text = string.Format("{0}", anzAlterbis14);
            summeAlter15bis19.Text = string.Format("{0}", anzAlter15bis19);
            summeAlter19bis24.Text = string.Format("{0}", anzAlter19bis24);
            summeAlter25bis29.Text = string.Format("{0}", anzAlter25bis29);
            summeAlter30bis39.Text = string.Format("{0}", anzAlter30bis39);
            summeAlter40bis49.Text = string.Format("{0}", anzAlter40bis49);
            summeAlter50bis59.Text = string.Format("{0}", anzAlter50bis59);
            summeAlter60bis69.Text = string.Format("{0}", anzAlter60bis69);
            summeAlter70bis79.Text = string.Format("{0}", anzAlter70bis79);
            summeAlterMin80.Text = string.Format("{0}", anzAlterAb80);
            summeAlterUnbekannt.Text = string.Format("{0}", anzAlterUnb);
            summeAlterGesamt.Text = string.Format("{0}",
                                                    anzAlterbis14 + anzAlter15bis19 + anzAlter19bis24 +
                                                    anzAlter25bis29 +
                                                    anzAlter30bis39 + anzAlter40bis49 + anzAlter50bis59 +
                                                    anzAlter60bis69 +
                                                    anzAlter70bis79 + anzAlterAb80 + anzAlterUnb);

            #endregion

            #region Wohnort

            #region InnenstadtOst

            innenstadtOst44135.Text = string.Format("{0}", anzInnenstadtOst44135);
            innenstadtOst44139.Text = string.Format("{0}", anzInnenstadtOst44139);
            innenstadtOst44141.Text = string.Format("{0}", anzInnenstadtOst44141);
            innenstadtOstGesamt.Text = string.Format("{0}",
                                                        anzInnenstadtOst44139 + anzInnenstadtOst44135 +
                                                        anzInnenstadtOst44141);
            summeInnenstadtOst44135.Text = string.Format("{0}", anzInnenstadtOst44135);
            summeInnenstadtOst44139.Text = string.Format("{0}", anzInnenstadtOst44139);
            summeInnenstadtOst44141.Text = string.Format("{0}", anzInnenstadtOst44141);
            summeInnenstadtOst.Text = string.Format("{0}",
                                                    anzInnenstadtOst44139 + anzInnenstadtOst44135 +
                                                    anzInnenstadtOst44141);

            #endregion

            #region InnenstadtWest

            innenstadtWest44137.Text = string.Format("{0}", anzInnenstadtWest44137);
            innenstadtWestGesamt.Text = string.Format("{0}", anzInnenstadtWest44137);
            summeInnenstadtWest44137.Text = string.Format("{0}", anzInnenstadtWest44137);
            summeInnenstadtWest.Text = string.Format("{0}", anzInnenstadtWest44137);

            #endregion

            #region InnenstadtNord

            innenstadtNord44145.Text = string.Format("{0}", anzInnenstadtNord44145);
            innenstadtNord44147.Text = string.Format("{0}", anzInnenstadtNord44147);
            innenstadtNordGesamt.Text = string.Format("{0}", anzInnenstadtNord44145 + anzInnenstadtNord44147);
            summeInnenstadtNord44145.Text = string.Format("{0}", anzInnenstadtNord44145);
            summeInnenstadtNord44147.Text = string.Format("{0}", anzInnenstadtNord44147);
            summeInnenstadtNord.Text = string.Format("{0}", anzInnenstadtNord44145 + anzInnenstadtNord44147);

            #endregion

            #region Lütgendortmund

            lütgendortmund44149.Text = string.Format("{0}", anzLütgendortmund44149);
            lütgendortmund44379.Text = string.Format("{0}", anzLütgendortmund44379);
            lütgendortmund44388.Text = string.Format("{0}", anzLütgendortmund44388);
            lütgendortmundGesamt.Text = string.Format("{0}",
                                                        anzLütgendortmund44149 + anzLütgendortmund44379 +
                                                        anzLütgendortmund44388);
            summeLütgendortmund44149.Text = string.Format("{0}", anzLütgendortmund44149);
            summeLütgendortmund44379.Text = string.Format("{0}", anzLütgendortmund44379);
            summeLütgendortmund44388.Text = string.Format("{0}", anzLütgendortmund44388);
            summeLütgendortmund.Text = string.Format("{0}",
                                                        anzLütgendortmund44149 + anzLütgendortmund44379 +
                                                        anzLütgendortmund44388);

            #endregion

            #region Hombruch

            hombruch44225.Text = string.Format("{0}", anzHombruch44225);
            hombruch44227.Text = string.Format("{0}", anzHombruch44227);
            hombruch44229.Text = string.Format("{0}", anzHombruch44229);
            hombruchGesamt.Text = string.Format("{0}", anzHombruch44225 + anzHombruch44227 + anzHombruch44229);
            summeHombruch44225.Text = string.Format("{0}", anzHombruch44225);
            summeHombruch44227.Text = string.Format("{0}", anzHombruch44227);
            summeHombruch44229.Text = string.Format("{0}", anzHombruch44229);
            summeHombruch44229.Text = string.Format("{0}", anzHombruch44225 + anzHombruch44227 + anzHombruch44229);
            summeHombruch.Text = string.Format("{0}", anzHombruch44225 + anzHombruch44227 + anzHombruch44229);

            #endregion

            #region Hörde

            hoerde44263.Text = string.Format("{0}", anzHoerde44263);
            hoerde44265.Text = string.Format("{0}", anzHoerde44265);
            hoerde44267.Text = string.Format("{0}", anzHoerde44267);
            hoerdeGesamt.Text = string.Format("{0}", anzHoerde44263 + anzHoerde44265 + anzHoerde44267);
            summeHoerde44263.Text = string.Format("{0}", anzHoerde44263);
            summeHoerde44265.Text = string.Format("{0}", anzHoerde44265);
            summeHoerde44267.Text = string.Format("{0}", anzHoerde44267);
            summeHoerde.Text = string.Format("{0}", anzHoerde44263 + anzHoerde44265 + anzHoerde44267);

            #endregion

            #region Aplerbeck

            aplerbeck44269.Text = string.Format("{0}", anzAplerbeck44269);
            aplerbeck44287.Text = string.Format("{0}", anzAplerbeck44287);
            aplerbeck44289.Text = string.Format("{0}", anzAplerbeck44289);
            aplerbeckGesamt.Text = string.Format("{0}", anzAplerbeck44269 + anzAplerbeck44287 + anzAplerbeck44289);
            summeAplerbeck44269.Text = string.Format("{0}", anzAplerbeck44269);
            summeAplerbeck44287.Text = string.Format("{0}", anzAplerbeck44287);
            summeAplerbeck44289.Text = string.Format("{0}", anzAplerbeck44289);
            summeAplerbeck.Text = string.Format("{0}", anzAplerbeck44269 + anzAplerbeck44287 + anzAplerbeck44289);

            #endregion

            #region Brackel

            brackel44309.Text = string.Format("{0}", anzBrackel44309);
            brackel44319.Text = string.Format("{0}", anzBrackel44319);
            brackel44143.Text = string.Format("{0}", anzBrackel44143);
            brackelGesamt.Text = string.Format("{0}", anzBrackel44309 + anzBrackel44319 + anzBrackel44143);
            summeBrackel44309.Text = string.Format("{0}", anzBrackel44309);
            summeBrackel44319.Text = string.Format("{0}", anzBrackel44319);
            summeBrackel44143.Text = string.Format("{0}", anzBrackel44143);
            summeBrackel.Text = string.Format("{0}", anzBrackel44309 + anzBrackel44319 + anzBrackel44143);

            #endregion

            #region Scharnhorst

            scharnhorst44328.Text = string.Format("{0}", anzScharnhorst44328);
            scharnhorst44329.Text = string.Format("{0}", anzScharnhorst44329);
            scharnhorstGesamt.Text = string.Format("{0}", anzScharnhorst44329 + anzScharnhorst44328);
            summeScharnhorst44328.Text = string.Format("{0}", anzScharnhorst44328);
            summeScharnhorst44329.Text = string.Format("{0}", anzScharnhorst44329);
            summeScharnhorst.Text = string.Format("{0}", anzScharnhorst44329 + anzScharnhorst44328);

            #endregion

            #region Eving

            eving44339.Text = string.Format("{0}", anzEving44339);
            evingGesamt.Text = string.Format("{0}", anzEving44339);
            summeEving44339.Text = string.Format("{0}", anzEving44339);
            summeEving.Text = string.Format("{0}", anzEving44339);

            #endregion

            #region Mengede

            mengede44357.Text = string.Format("{0}", anzMengede44357);
            mengede44359.Text = string.Format("{0}", anzMengede44359);
            mengedeGesamt.Text = string.Format("{0}", anzMengede44357 + anzMengede44359);
            summeMengede44357.Text = string.Format("{0}", anzMengede44357);
            summeMengede44359.Text = string.Format("{0}", anzMengede44359);
            summeMengede.Text = string.Format("{0}", anzMengede44357 + anzMengede44359);

            #endregion

            #region Huckarde

            huckarde44369.Text = string.Format("{0}", anzHuckarde44369);
            huckardeGesamt.Text = string.Format("{0}", anzHuckarde44369);
            summeHuckarde44369.Text = string.Format("{0}", anzHuckarde44369);
            summeHuckarde.Text = string.Format("{0}", anzHuckarde44369);

            #endregion

            #region Gesamt-Dortmund

            dortmundGesamt.Text = string.Format("{0}", anzInnenstadtOst44135 +
                                                       anzInnenstadtOst44139 +
                                                       anzInnenstadtOst44141 +
                                                       anzInnenstadtWest44137 +
                                                       anzInnenstadtNord44145 +
                                                       anzInnenstadtNord44147 +
                                                       anzLütgendortmund44149 +
                                                       anzLütgendortmund44379 +
                                                       anzLütgendortmund44388 +
                                                       anzHombruch44225 +
                                                       anzHombruch44227 +
                                                       anzHombruch44229 +
                                                       anzHoerde44263 +
                                                       anzHoerde44265 +
                                                       anzHoerde44267 +
                                                       anzAplerbeck44269 +
                                                       anzAplerbeck44287 +
                                                       anzAplerbeck44289 +
                                                       anzBrackel44309 +
                                                       anzBrackel44319 +
                                                       anzBrackel44143 +
                                                       anzScharnhorst44328 +
                                                       anzScharnhorst44329 +
                                                       anzEving44339 +
                                                       anzMengede44357 +
                                                       anzMengede44359 +
                                                       anzHuckarde44369);

            summeDortmundGesamt.Text = string.Format("{0}", anzInnenstadtOst44135 +
                                                            anzInnenstadtOst44139 +
                                                            anzInnenstadtOst44141 +
                                                            anzInnenstadtWest44137 +
                                                            anzInnenstadtNord44145 +
                                                            anzInnenstadtNord44147 +
                                                            anzLütgendortmund44149 +
                                                            anzLütgendortmund44379 +
                                                            anzLütgendortmund44388 +
                                                            anzHombruch44225 +
                                                            anzHombruch44227 +
                                                            anzHombruch44229 +
                                                            anzHoerde44263 +
                                                            anzHoerde44265 +
                                                            anzHoerde44267 +
                                                            anzAplerbeck44269 +
                                                            anzAplerbeck44287 +
                                                            anzAplerbeck44289 +
                                                            anzBrackel44309 +
                                                            anzBrackel44319 +
                                                            anzBrackel44143 +
                                                            anzScharnhorst44328 +
                                                            anzScharnhorst44329 +
                                                            anzEving44339 +
                                                            anzMengede44357 +
                                                            anzMengede44359 +
                                                            anzHuckarde44369);

            #endregion

            ausserhalbDortmunds.Text = string.Format("{0}", anzWohnortAusserhalbDortmunds);
            summeAusserhalbDortmunds.Text = string.Format("{0}", anzWohnortAusserhalbDortmunds);

            wohnortUnbekannt.Text = string.Format("{0}", anzWohnortUnbekannt);
            summeWohnortUnbekannt.Text = string.Format("{0}", anzWohnortUnbekannt);

            #endregion

            #region Mögliche Begründung zum Betreuungsende

            betreuungsendeRegulaer.Text = string.Format("{0}", anzBetreuungsendeRegulaer);
            abbruchDurchKlienten.Text = string.Format("{0}", anzAbbruchDurchKlient);
            abbruchDurchEinrichtung.Text = string.Format("{0}", anzAbbruchDurchEinrichtung);
            klientBetreuungseinrichtungsWechsel.Text = string.Format("{0}",
                                                                        anzKlientInAndereBetreuungseinrichtungGewechselt);
            klientInJVA.Text = string.Format("{0}", anzKlientInJVAForensik);
            klientVerstorben.Text = string.Format("{0}", anzKlientVerstorben);
            nichtAusgefuellt.Text = string.Format("{0}", anzBetreuungsendeNichtAusgefuellt);
            summeBetreuungsende.Text = string.Format("{0}", anzBetreuungsendeRegulaer +
                                                            anzAbbruchDurchKlient +
                                                            anzAbbruchDurchEinrichtung +
                                                            anzKlientInAndereBetreuungseinrichtungGewechselt +
                                                            anzKlientInJVAForensik +
                                                            anzKlientVerstorben);

            summeBetreuungsendeRegulaer.Text = string.Format("{0}", anzBetreuungsendeRegulaer);
            summeAbbruchDurchKlienten.Text = string.Format("{0}", anzAbbruchDurchKlient);
            summeAbbruchDurchEinrichtung.Text = string.Format("{0}", anzAbbruchDurchEinrichtung);
            summeKlientBetreuungseinrichtungsWechsel.Text = string.Format("{0}",
                                                                            anzKlientInAndereBetreuungseinrichtungGewechselt);
            summeKlientInJVA.Text = string.Format("{0}", anzKlientInJVAForensik);
            summeKlientVerstorben.Text = string.Format("{0}", anzKlientVerstorben);
            summeNichtAusgefuellt.Text = string.Format("{0}", anzBetreuungsendeNichtAusgefuellt);
            summeSummeBetreuungsende.Text = string.Format("{0}", anzBetreuungsendeRegulaer +
                                                                    anzAbbruchDurchKlient +
                                                                    anzAbbruchDurchEinrichtung +
                                                                    anzKlientInAndereBetreuungseinrichtungGewechselt +
                                                                    anzKlientInJVAForensik +
                                                                    anzKlientVerstorben);

            davonAbstinent.Text = string.Format("{0}", anzDavonAbstinent);
            davonGebessert.Text = string.Format("{0}", anzDavonGebessert);
            davonUnveraendert.Text = string.Format("{0}", anzDavonUnveraendert);
            davonVerschlechtert.Text = string.Format("{0}", anzDavonVerschlechtert);
            summeDavonAbstinent.Text = string.Format("{0}", anzDavonAbstinent);
            summeDavonGebessert.Text = string.Format("{0}", anzDavonGebessert);
            summeDavonUnveraendert.Text = string.Format("{0}", anzDavonUnveraendert);
            summeDavonVerschlechtert.Text = string.Format("{0}", anzDavonVerschlechtert);

            #endregion

            #region Familienstand

            ledig.Text = string.Format("{0}", anzLedig);
            verheiratetPartnerschaftZsm.Text = string.Format("{0}", anzVerheiratetZusammen);
            verheiratetPartnerschaftGetrennt.Text = string.Format("{0}", anzVerheiratetGetrennt);
            geschieden.Text = string.Format("{0}", anzGeschieden);
            verwitwet.Text = string.Format("{0}", anzVerwitwet);
            familienstandUnbekannt.Text = string.Format("{0}", anzFamilienstandUnbekannt);
            familienstandGesamt.Text = string.Format("{0}", anzLedig +
                                                            anzVerheiratetZusammen +
                                                            anzVerheiratetGetrennt +
                                                            anzGeschieden +
                                                            anzVerwitwet +
                                                            anzFamilienstandUnbekannt);
            summeLedig.Text = string.Format("{0}", anzLedig);
            summeVerheiratetPartnerschaftZsm.Text = string.Format("{0}", anzVerheiratetZusammen);
            summeVerheiratetPartnerschaftGetrennt.Text = string.Format("{0}", anzVerheiratetGetrennt);
            summeGeschieden.Text = string.Format("{0}", anzGeschieden);
            summeVerwitwet.Text = string.Format("{0}", anzVerwitwet);
            summeFamilienstandUnbekannt.Text = string.Format("{0}", anzFamilienstandUnbekannt);
            summeFamilienstandGesamt.Text = string.Format("{0}", anzLedig +
                                                            anzVerheiratetZusammen +
                                                            anzVerheiratetGetrennt +
                                                            anzGeschieden +
                                                            anzVerwitwet +
                                                            anzFamilienstandUnbekannt);

            #endregion

            #region Partnerbeziehung

            alleinstehend.Text = string.Format("{0}", anzAlleinstehen);
            zeitweiligeBeziehungen.Text = string.Format("{0}", anzZeitweiligeBeziehung);
            festeBeziehungen.Text = string.Format("{0}", anzFesteBeziehung);
            partnerBeziehungUnbekannt.Text = string.Format("{0}", anzBeziehungUnbekannt);
            partnerBeziehungGesamt.Text = string.Format("{0}", anzAlleinstehen +
                                                                anzZeitweiligeBeziehung +
                                                                anzFesteBeziehung +
                                                                anzBeziehungUnbekannt);
            summeAlleinstehend.Text = string.Format("{0}", anzAlleinstehen);
            summeZeitweiligeBeziehungen.Text = string.Format("{0}", anzZeitweiligeBeziehung);
            summeFesteBeziehungen.Text = string.Format("{0}", anzFesteBeziehung);
            summePartnerBeziehungUnbekannt.Text = string.Format("{0}", anzBeziehungUnbekannt);
            summePartnerBeziehungGesamt.Text = string.Format("{0}", anzAlleinstehen +
                                                                    anzZeitweiligeBeziehung +
                                                                    anzFesteBeziehung +
                                                                    anzBeziehungUnbekannt);

            #endregion

            #region Wohnsituation

            selbststaendigesWohnen.Text = string.Format("{0}", anzSelbststaendigesWohnen);
            beiAngehoerigenEltern.Text = string.Format("{0}", anzBeiAngehoerigenEltern);
            beWo.Text = string.Format("{0}", anzBeWo);
            heimKlinik.Text = string.Format("{0}", anzHeimKlinik);
            jva.Text = string.Format("{0}", anzJVA);
            ohneWohnung.Text = string.Format("{0}", anzOhneWohnung);
            wohnsituationSonstiges.Text = string.Format("{0}", anzWohnsituationSonstiges);
            wohnsituationUnbekannt.Text = string.Format("{0}", anzWohnsituationUnbekannt);
            wohnsituationGesamt.Text = string.Format("{0}", anzSelbststaendigesWohnen +
                                                            anzBeiAngehoerigenEltern +
                                                            anzBeWo +
                                                            anzHeimKlinik +
                                                            anzJVA +
                                                            anzOhneWohnung +
                                                            anzWohnsituationSonstiges +
                                                            anzWohnsituationUnbekannt);
            summeSelbststaendigesWohnen.Text = string.Format("{0}", anzSelbststaendigesWohnen);
            summeBeiAngehoerigenEltern.Text = string.Format("{0}", anzBeiAngehoerigenEltern);
            summeBeWo.Text = string.Format("{0}", anzBeWo);
            summeHeimKlinik.Text = string.Format("{0}", anzHeimKlinik);
            summeJVA.Text = string.Format("{0}", anzJVA);
            summeOhneWohnung.Text = string.Format("{0}", anzOhneWohnung);
            summeWohnsituationSonstiges.Text = string.Format("{0}", anzWohnsituationSonstiges);
            summeWohnsituationUnbekannt.Text = string.Format("{0}", anzWohnsituationUnbekannt);
            summeWohnsituationGesamt.Text = string.Format("{0}", anzSelbststaendigesWohnen +
                                                                    anzBeiAngehoerigenEltern +
                                                                    anzBeWo +
                                                                    anzHeimKlinik +
                                                                    anzJVA +
                                                                    anzOhneWohnung +
                                                                    anzWohnsituationSonstiges +
                                                                    anzWohnsituationUnbekannt);

            #endregion

            #region Lebt zusammen mit

            alleinlebend.Text = string.Format("{0}", anzAlleinLebend);
            mitElternteil.Text = string.Format("{0}", anzMitElternteil);
            mitKindern.Text = string.Format("{0}", anzMitKindern);
            mitPartner.Text = string.Format("{0}", anzMitPartner);
            mitPartnerUndKindern.Text = string.Format("{0}", anzMitPartnerUndKindern);
            mitFreundenBekannten.Text = string.Format("{0}", anzMitFreundenBekannten);
            mitSonstigenPersonen.Text = string.Format("{0}", anzMitSonstigenPersonen);
            lebtZsmMitUnbekannt.Text = string.Format("{0}", anzLebtZusammenMitUnbekannt);
            lebtZsmMitGesamt.Text = string.Format("{0}", anzAlleinLebend +
                                                            anzMitElternteil +
                                                            anzMitKindern +
                                                            anzMitPartner +
                                                            anzHeimKlinik +
                                                            anzMitPartnerUndKindern +
                                                            anzMitFreundenBekannten +
                                                            anzMitSonstigenPersonen +
                                                            anzLebtZusammenMitUnbekannt);
            summeAlleinlebend.Text = string.Format("{0}", anzAlleinLebend);
            summeMitElternteil.Text = string.Format("{0}", anzMitElternteil);
            summeMitKindern.Text = string.Format("{0}", anzMitKindern);
            summeMitPartner.Text = string.Format("{0}", anzMitPartner);
            summeMitPartnerUndKindern.Text = string.Format("{0}", anzMitPartnerUndKindern);
            summeMitFreundenBekannten.Text = string.Format("{0}", anzMitFreundenBekannten);
            summeMitSonstigenPersonen.Text = string.Format("{0}", anzMitSonstigenPersonen);
            summeLebtZsmMitUnbekannt.Text = string.Format("{0}", anzLebtZusammenMitUnbekannt);
            summeLebtZsmMitGesamt.Text = string.Format("{0}", anzAlleinLebend +
                                                                anzMitElternteil +
                                                                anzMitKindern +
                                                                anzMitPartner +
                                                                anzHeimKlinik +
                                                                anzMitPartnerUndKindern +
                                                                anzMitFreundenBekannten +
                                                                anzMitSonstigenPersonen +
                                                                anzLebtZusammenMitUnbekannt);

            #endregion

            #region Staatsangehörigkeit

            deutsche.Text = string.Format("{0}", anzDeutsch);
            euBuerger.Text = string.Format("{0}", anzEUBuerger);
            staatsangehoerigkeitSonstiges.Text = string.Format("{0}", anzSonstigeNationalitaet);
            staatsangehoerigkeitUnbekannt.Text = string.Format("{0}", anzNationalitaetUnbekannt);
            staatsangehoerigkeitGesamt.Text = string.Format("{0}", anzDeutsch +
                                                                    anzEUBuerger +
                                                                    anzSonstigeNationalitaet +
                                                                    anzNationalitaetUnbekannt);
            summeDeutsche.Text = string.Format("{0}", anzDeutsch);
            summeEuBuerger.Text = string.Format("{0}", anzEUBuerger);
            summeStaatsangehoerigkeitSonstiges.Text = string.Format("{0}", anzSonstigeNationalitaet);
            summeStaatsangehoerigkeitUnbekannt.Text = string.Format("{0}", anzNationalitaetUnbekannt);
            summeStaatsangehoerigkeitGesamt.Text = string.Format("{0}", anzDeutsch +
                                                                        anzEUBuerger +
                                                                        anzSonstigeNationalitaet +
                                                                        anzNationalitaetUnbekannt);

            #endregion

            #region Höchster erreichter Schulabschluss

            ohneSchulabschluss.Text = string.Format("{0}", anzOhneSchulabschluss);
            sonderschulabschluss.Text = string.Format("{0}", anzSonderabschluss);
            hauptschulVoklsAbschluss.Text = string.Format("{0}", anzHauptschulVolksabschluss);
            realschulabschlussPolytechOberschule.Text = string.Format("{0}",
                                                                        anzRealschulabschlussPolytechnischeOberschule);
            fachAbitur.Text = string.Format("{0}", anzFachAbitur);
            hochschulabschluss.Text = string.Format("{0}", anzHochschulabschluss);
            andererSchulabschluss.Text = string.Format("{0}", anzAndererSchulabschluss);
            schulabschlussUnbekannt.Text = string.Format("{0}", anzSchulabschlussUnbekannt);
            schulabschlussGesamt.Text = string.Format("{0}", anzOhneSchulabschluss +
                                                                anzSonderabschluss +
                                                                anzHauptschulVolksabschluss +
                                                                anzFachAbitur +
                                                                anzHochschulabschluss +
                                                                anzSchulabschlussUnbekannt +
                                                                anzAndererSchulabschluss +
                                                                anzRealschulabschlussPolytechnischeOberschule);
            summeOhneSchulabschluss.Text = string.Format("{0}", anzOhneSchulabschluss);
            summeSonderschulabschluss.Text = string.Format("{0}", anzSonderabschluss);
            summeHauptschulVoklsAbschluss.Text = string.Format("{0}", anzHauptschulVolksabschluss);
            summeRealschulabschlussPolytechOberschule.Text = string.Format("{0}",
                                                                            anzRealschulabschlussPolytechnischeOberschule);
            summeFachAbitur.Text = string.Format("{0}", anzFachAbitur);
            summeHochschulabschluss.Text = string.Format("{0}", anzHochschulabschluss);
            summeAndererSchulabschluss.Text = string.Format("{0}", anzAndererSchulabschluss);
            summeSchulabschlussUnbekannt.Text = string.Format("{0}", anzSchulabschlussUnbekannt);
            summeSchulabschlussGesamt.Text = string.Format("{0}", anzOhneSchulabschluss +
                                                                    anzSonderabschluss +
                                                                    anzHauptschulVolksabschluss +
                                                                    anzFachAbitur +
                                                                    anzHochschulabschluss +
                                                                    anzSchulabschlussUnbekannt +
                                                                    anzAndererSchulabschluss +
                                                                    anzRealschulabschlussPolytechnischeOberschule);

            #endregion

            #region Überwiegender finanzieller Unterhalt

            erwerbsBerufstaetigkeit.Text = string.Format("{0}", anzErwerbsBerufstaetigkeit);
            lebenspartnerAngehoerige.Text = string.Format("{0}", anzLebenspartnerAngehoerige);
            rente.Text = string.Format("{0}", anzRente);
            krankengeldUebergangsgeld.Text = string.Format("{0}", anzKrankengeldUebergangsgeld);
            alg1.Text = string.Format("{0}", anzArbeitslosenGeldI);
            alg2.Text = string.Format("{0}", anzArbeitslosenGeldII);
            soziahilfeGrundischerung.Text = string.Format("{0}", anzSozialHilfeGrundischerung);
            unterhaltSonstiges.Text = string.Format("{0}", anzUnterhaltSonstiges);
            unterhaltUnbekanntUnklar.Text = string.Format("{0}", anzUnterhaltUnbekannt);
            unterhaltGesamt.Text = string.Format("{0}", anzErwerbsBerufstaetigkeit +
                                                        anzLebenspartnerAngehoerige +
                                                        anzRente +
                                                        anzKrankengeldUebergangsgeld +
                                                        anzArbeitslosenGeldI +
                                                        anzArbeitslosenGeldII +
                                                        anzSozialHilfeGrundischerung +
                                                        anzUnterhaltSonstiges +
                                                        anzUnterhaltUnbekannt);
            summeErwerbsBerufstaetigkeit.Text = string.Format("{0}", anzErwerbsBerufstaetigkeit);
            summeLebenspartnerAngehoerige.Text = string.Format("{0}", anzLebenspartnerAngehoerige);
            summeRente.Text = string.Format("{0}", anzRente);
            summeKrankengeldUebergangsgeld.Text = string.Format("{0}", anzKrankengeldUebergangsgeld);
            summeAlg1.Text = string.Format("{0}", anzArbeitslosenGeldI);
            summeAlg2.Text = string.Format("{0}", anzArbeitslosenGeldII);
            summeSoziahilfeGrundischerung.Text = string.Format("{0}", anzSozialHilfeGrundischerung);
            summeUnterhaltSonstiges.Text = string.Format("{0}", anzUnterhaltSonstiges);
            summeUnterhaltUnbekanntUnklar.Text = string.Format("{0}", anzUnterhaltUnbekannt);
            summeUnterhaltGesamt.Text = string.Format("{0}", anzErwerbsBerufstaetigkeit +
                                                                anzLebenspartnerAngehoerige +
                                                                anzRente +
                                                                anzKrankengeldUebergangsgeld +
                                                                anzArbeitslosenGeldI +
                                                                anzArbeitslosenGeldII +
                                                                anzSozialHilfeGrundischerung +
                                                                anzUnterhaltSonstiges +
                                                                anzUnterhaltUnbekannt);

            #endregion

            #region Vorgeschichte (Mehrfachnennung)

            entzugsbehandlung.Text = string.Format("{0}", anzEntzugsbehandlung);
            substitutionsbehandlung.Text = string.Format("{0}", anzVorgeschichteSubstitutionsbehandlung);
            ambulanteEntwoehnungsbehandlung.Text = string.Format("{0}", anzambulanteEntwoehungsbehandlung);
            stationaereEnwoehnungsbehandlung.Text = string.Format("{0}", anzstationaereEntwoehnungsbehandlung);
            teilstationaereEntwoehnungsbehandlung.Text = string.Format("{0}",
                                                                        anzteilstationaereEntwoehnungsbehandlung);
            vorgeschichteGesamt.Text = string.Format("{0}", anzEntzugsbehandlung +
                                                            anzVorgeschichteSubstitutionsbehandlung +
                                                            anzambulanteEntwoehungsbehandlung +
                                                            anzstationaereEntwoehnungsbehandlung +
                                                            anzteilstationaereEntwoehnungsbehandlung);
            summeEntzugsbehandlung.Text = string.Format("{0}", anzEntzugsbehandlung);
            summeSubstitutionsbehandlung.Text = string.Format("{0}", anzVorgeschichteSubstitutionsbehandlung);
            summeAmbulanteEntwoehnungsbehandlung.Text = string.Format("{0}", anzambulanteEntwoehungsbehandlung);
            summeStationaereEnwoehnungsbehandlung.Text = string.Format("{0}", anzstationaereEntwoehnungsbehandlung);
            summeTeilstationaereEntwoehnungsbehandlung.Text = string.Format("{0}",
                                                                            anzteilstationaereEntwoehnungsbehandlung);
            summeVorgeschichteGesamt.Text = string.Format("{0}", anzEntzugsbehandlung +
                                                                    anzVorgeschichteSubstitutionsbehandlung +
                                                                    anzambulanteEntwoehungsbehandlung +
                                                                    anzstationaereEntwoehnungsbehandlung +
                                                                    anzteilstationaereEntwoehnungsbehandlung);

            #endregion

            #region Hauptdiagnose (keine Mehrfachnennung)

            diangnoseF0.Text = string.Format("{0}", anzF0);
            diagnoseF10.Text = string.Format("{0}", anzF10);
            diagnoseF13uF15.Text = string.Format("{0}", anzF13F15);
            diagnoseF11F12F14F16F18.Text = string.Format("{0}", anzF11F12F14F16F18);
            diagnoseF19.Text = string.Format("{0}", anzF19);
            diagnoseF2.Text = string.Format("{0}", anzF2);
            diagnoseF3.Text = string.Format("{0}", anzF3);
            diagnoseF4.Text = string.Format("{0}", anzF4);
            diagnoseF5ohneF50.Text = string.Format("{0}", anzF5);
            diagnoseF50.Text = string.Format("{0}", anzF50);
            diagnoseF6ohneF63.Text = string.Format("{0}", anzF6);
            diagnoseF63.Text = string.Format("{0}", anzF63);
            diagnoseF7.Text = string.Format("{0}", anzF7);
            diagnoseF8.Text = string.Format("{0}", anzF8);
            diagnoseF9.Text = string.Format("{0}", anzF9);
            diagnoseKeinePsychischeErkrankung.Text = string.Format("{0}", anzKeinePsychischeErkrankung);
            diagnoseUnbekannt.Text = string.Format("{0}", anzDiagnoseUnbekannt);
            diagnoseGesamt.Text = string.Format("{0}", anzF0 +
                                                        anzF10 +
                                                        anzF13F15 +
                                                        anzF11F12F14F16F18 +
                                                        anzF19 +
                                                        anzF2 +
                                                        anzF3 +
                                                        anzF4 +
                                                        anzF5 +
                                                        anzF50 +
                                                        anzF6 +
                                                        anzF63 +
                                                        anzF7 +
                                                        anzF8 +
                                                        anzF9 +
                                                        anzKeinePsychischeErkrankung +
                                                        anzDiagnoseUnbekannt +
                                                        anzF19);
            diagnoseF1922.Text = string.Format("{0}", anzF1922);

            summeDiangnoseF0.Text = string.Format("{0}", anzF0);
            summeDiagnoseF10.Text = string.Format("{0}", anzF10);
            summeDiagnoseF13uF15.Text = string.Format("{0}", anzF13F15);
            summeDiagnoseF11F12F14F16F18.Text = string.Format("{0}", anzF11F12F14F16F18);
            summeDiagnoseF19.Text = string.Format("{0}", anzF19);
            summeDiagnoseF2.Text = string.Format("{0}", anzF2);
            summeDiagnoseF3.Text = string.Format("{0}", anzF3);
            summeDiagnoseF4.Text = string.Format("{0}", anzF4);
            summeDiagnoseF5ohneF50.Text = string.Format("{0}", anzF5);
            summeDiagnoseF50.Text = string.Format("{0}", anzF50);
            summeDiagnoseF6ohneF63.Text = string.Format("{0}", anzF6);
            summeDiagnoseF63.Text = string.Format("{0}", anzF63);
            summeDiagnoseF7.Text = string.Format("{0}", anzF7);
            summeDiagnoseF8.Text = string.Format("{0}", anzF8);
            summeDiagnoseF9.Text = string.Format("{0}", anzF9);
            summeDiagnoseKeinePsychischeErkrankung.Text = string.Format("{0}", anzKeinePsychischeErkrankung);
            summeDiagnoseUnbekannt.Text = string.Format("{0}", anzDiagnoseUnbekannt);
            summeDiagnoseGesamt.Text = string.Format("{0}", anzF0 +
                                                            anzF10 +
                                                            anzF13F15 +
                                                            anzF11F12F14F16F18 +
                                                            anzF19 +
                                                            anzF2 +
                                                            anzF3 +
                                                            anzF4 +
                                                            anzF5 +
                                                            anzF50 +
                                                            anzF6 +
                                                            anzF63 +
                                                            anzF7 +
                                                            anzF8 +
                                                            anzF9 +
                                                            anzKeinePsychischeErkrankung +
                                                            anzDiagnoseUnbekannt +
                                                            anzF19);
            summeDiagnoseF1922.Text = string.Format("{0}", anzF1922);

            #endregion

            #region Kontakt zum Klienten vermittelt durch

            ohneVermittlung.Text = string.Format("{0}", anzOhneVermittlung);
            familieFreunde.Text = string.Format("{0}", anzFamilieFreunde);
            arbeitgeberBetriebSchule.Text = string.Format("{0}", anzArbeitgeberBetriebSchule);
            niedergelassenerArztPsychotherapeut.Text = string.Format("{0}", anzNiedergelassenerArztPsychotherapeut);
            krankenhaus.Text = string.Format("{0}", anzKrankenhaus);
            stationaereSuchteinrichtung.Text = string.Format("{0}", anzStationaereSuchteinrichtung);
            suchtberatung.Text = string.Format("{0}", anzSuchtberatung);
            andereBeratungsdienste.Text = string.Format("{0}", anzAndereBeratungsdienste);
            justizbehoerdeSozialeVerwaltung.Text = string.Format("{0}", anzJustizBehoerdeSozialeVerwaltung);
            davonARGE.Text = string.Format("{0}", anzDavonARGE);
            abstinenzSelbsthilfegruppe.Text = string.Format("{0}", anzAbstinenzSelbsthilfegruppe);
            kostenLeistungsTraeger.Text = string.Format("{0}", anzKostenLeistungstraeger);
            kontaktVermitteltSonstiges.Text = string.Format("{0}", anzKlientVermitteltDurchSonstiges);
            kontaktVermitteltUnbekannt.Text = string.Format("{0}", anzKlientVermitteltDurchUnbekannt);
            kontaktVermittelGesamt.Text = string.Format("{0}", anzOhneVermittlung +
                                                                anzFamilieFreunde +
                                                                anzArbeitgeberBetriebSchule +
                                                                anzNiedergelassenerArztPsychotherapeut +
                                                                anzKrankenhaus +
                                                                anzStationaereSuchteinrichtung +
                                                                anzSuchtberatung +
                                                                anzAndereBeratungsdienste +
                                                                anzJustizBehoerdeSozialeVerwaltung +
                                                                anzDavonARGE +
                                                                anzAbstinenzSelbsthilfegruppe +
                                                                anzKostenLeistungstraeger +
                                                                anzKlientVermitteltDurchSonstiges +
                                                                anzKlientVermitteltDurchUnbekannt);
            summeOhneVermittlung.Text = string.Format("{0}", anzOhneVermittlung);
            summeFamilieFreunde.Text = string.Format("{0}", anzFamilieFreunde);
            summeArbeitgeberBetriebSchule.Text = string.Format("{0}", anzArbeitgeberBetriebSchule);
            summeNiedergelassenerArztPsychotherapeut.Text = string.Format("{0}",
                                                                            anzNiedergelassenerArztPsychotherapeut);
            summeKrankenhaus.Text = string.Format("{0}", anzKrankenhaus);
            summeStationaereSuchteinrichtung.Text = string.Format("{0}", anzStationaereSuchteinrichtung);
            summeSuchtberatung.Text = string.Format("{0}", anzSuchtberatung);
            summeAndereBeratungsdienste.Text = string.Format("{0}", anzAndereBeratungsdienste);
            summeJustizbehoerdeSozialeVerwaltung.Text = string.Format("{0}", anzJustizBehoerdeSozialeVerwaltung);
            summeDavonARGE.Text = string.Format("{0}", anzDavonARGE);
            summeAbstinenzSelbsthilfegruppe.Text = string.Format("{0}", anzAbstinenzSelbsthilfegruppe);
            summeKostenLeistungsTraeger.Text = string.Format("{0}", anzKostenLeistungstraeger);
            summeKontaktVermitteltSonstiges.Text = string.Format("{0}", anzKlientVermitteltDurchSonstiges);
            summeKontaktVermitteltUnbekannt.Text = string.Format("{0}", anzKlientVermitteltDurchUnbekannt);
            summeKontaktVermittelGesamt.Text = string.Format("{0}", anzOhneVermittlung +
                                                                    anzFamilieFreunde +
                                                                    anzArbeitgeberBetriebSchule +
                                                                    anzNiedergelassenerArztPsychotherapeut +
                                                                    anzKrankenhaus +
                                                                    anzStationaereSuchteinrichtung +
                                                                    anzSuchtberatung +
                                                                    anzAndereBeratungsdienste +
                                                                    anzJustizBehoerdeSozialeVerwaltung +
                                                                    anzDavonARGE +
                                                                    anzAbstinenzSelbsthilfegruppe +
                                                                    anzKostenLeistungstraeger +
                                                                    anzKlientVermitteltDurchSonstiges +
                                                                    anzKlientVermitteltDurchUnbekannt);
            #endregion

            #region Weitervermittlung/Verlegung/Wechsel zu:

            ambulanteEntgiftungEntzug.Text = string.Format("{0}", anzAmbulanteEntgiftungEntzug);
            stationaereEntgiftungEntzug.Text = string.Format("{0}", anzStationaereEntgiftungEntzug);
            ambulanteBeratung.Text = string.Format("{0}", anzAmbulanteBeratung);
            ambulanteBehandlung.Text = string.Format("{0}", anzAmbulanteBehandlung);
            motivationsbehandlung.Text = string.Format("{0}", anzMotivationsbehandlung);
            ambulanteReha.Text = string.Format("{0}", anzAmbulanteReha);
            stationaereReha.Text = string.Format("{0}", anzStationaereReha);
            teilStationaereReha.Text = string.Format("{0}", anzTeilstationaereReha);
            vermittlungSubstitutionsbehandlung.Text = string.Format("{0}", anzSubstitutionsbehandlung);
            khchronischmehrfachgeschaedigterAbhaengiger.Text = string.Format("{0}",
                                                                                anzKrankenhausbehandlungChronischMehrfachgeschaedigterAbhaengiger);
            ambulantBeWo.Text = string.Format("{0}", anzAmbulantBeWo);
            stationaerBeWo.Text = string.Format("{0}", anzStationaerBewo);
            arbeitsBeschaeftigungsprojekte.Text = string.Format("{0}", anzArbeitsUndBeschaeftigungsprojekte);
            vermittlungSonstiges.Text = string.Format("{0}", anzWeitervermittlungSonstiges);
            psychosozialeBegleitung.Text = string.Format("{0}", anzPsychosozialeBegleitung);
            vermittlungNichtAusgefuellt.Text = string.Format("{0}", anzWeitervermittlungNichtAusgefuellt);
            vermittlungGesamt.Text = string.Format("{0}", anzAmbulanteEntgiftungEntzug +
                                                                anzStationaereEntgiftungEntzug +
                                                                anzAmbulanteBeratung +
                                                                anzAmbulanteBehandlung +
                                                                anzMotivationsbehandlung +
                                                                anzStationaereSuchteinrichtung +
                                                                anzAmbulanteReha +
                                                                anzStationaereReha +
                                                                anzTeilstationaereReha +
                                                                anzSubstitutionsbehandlung +
                                                                anzKrankenhausbehandlungChronischMehrfachgeschaedigterAbhaengiger +
                                                                anzAmbulantBeWo +
                                                                anzStationaerBewo +
                                                                anzArbeitsUndBeschaeftigungsprojekte +
                                                                anzWeitervermittlungSonstiges +
                                                                anzPsychosozialeBegleitung +
                                                                anzWeitervermittlungNichtAusgefuellt);
            summeAmbulanteEntgiftungEntzug.Text = string.Format("{0}", anzAmbulanteEntgiftungEntzug);
            summeStationaereEntgiftungEntzug.Text = string.Format("{0}", anzStationaereEntgiftungEntzug);
            summeAmbulanteBeratung.Text = string.Format("{0}", anzAmbulanteBeratung);
            summeAmbulanteBehandlung.Text = string.Format("{0}", anzAmbulanteBehandlung);
            summeMotivationsbehandlung.Text = string.Format("{0}", anzMotivationsbehandlung);
            summeAmbulanteReha.Text = string.Format("{0}", anzAmbulanteReha);
            summeStationaereReha.Text = string.Format("{0}", anzStationaereReha);
            summeTeilStationaereReha.Text = string.Format("{0}", anzTeilstationaereReha);
            summeVermittlungSubstitutionsbehandlung.Text = string.Format("{0}", anzSubstitutionsbehandlung);
            summeKHChronischmehrfachgeschaedigterAbhaengiger.Text = string.Format("{0}",
                                                                                    anzKrankenhausbehandlungChronischMehrfachgeschaedigterAbhaengiger);
            summeAmbulantBeWo.Text = string.Format("{0}", anzAmbulantBeWo);
            summeStationaerBeWo.Text = string.Format("{0}", anzStationaerBewo);
            summeArbeitsBeschaeftigungsprojekte.Text = string.Format("{0}", anzArbeitsUndBeschaeftigungsprojekte);
            summeVermittlungSonstiges.Text = string.Format("{0}", anzWeitervermittlungSonstiges);
            summePsychosozialeBegleitung.Text = string.Format("{0}", anzPsychosozialeBegleitung);
            summeVermittlungNichtAusgefuellt.Text = string.Format("{0}", anzWeitervermittlungNichtAusgefuellt);
            summeVermittlungGesamt.Text = string.Format("{0}", anzAmbulanteEntgiftungEntzug +
                                                                anzStationaereEntgiftungEntzug +
                                                                anzAmbulanteBeratung +
                                                                anzAmbulanteBehandlung +
                                                                anzMotivationsbehandlung +
                                                                anzStationaereSuchteinrichtung +
                                                                anzAmbulanteReha +
                                                                anzStationaereReha +
                                                                anzTeilstationaereReha +
                                                                anzSubstitutionsbehandlung +
                                                                anzKrankenhausbehandlungChronischMehrfachgeschaedigterAbhaengiger +
                                                                anzAmbulantBeWo +
                                                                anzStationaerBewo +
                                                                anzArbeitsUndBeschaeftigungsprojekte +
                                                                anzWeitervermittlungSonstiges +
                                                                anzPsychosozialeBegleitung +
                                                                anzWeitervermittlungNichtAusgefuellt);

            #endregion
        }
    }
}
