Exemple #1
0
        public static void BilagsudskriftPDF()
        {
            tblbilag[] Bilag;
            var        qry = from b in Program.dbDataTransSumma.tblbilags
                             where b.udskriv == true &&
                             b.tbltrans.Count() > 0
                             select b;
            int count = qry.Count();
            int iMax  = 99999;

            if (count > iMax)
            {
                Bilag = new tblbilag[iMax];
            }
            else
            {
                Bilag = new tblbilag[count];
            }

            int i = 0;

            foreach (var b in qry)
            {
                UdskrivBilag(b);
                b.udskriv = false;
                if (i >= iMax)
                {
                    break;
                }
            }

            Program.dbDataTransSumma.SubmitChanges();
        }
Exemple #2
0
        public void AddNyKladde(tblbilag recBilag, tblbankkonto recBankkonto)
        {
            var qry = from k in recBilag.tblkladders
                      select new tblwkladder
            {
                tekst            = k.tekst,
                afstemningskonto = k.afstemningskonto,
                belob            = k.belob,
                konto            = k.konto,
                momskode         = k.momskode,
                faktura          = k.faktura,
                sag = k.sag
            };
            int antal = qry.Count();

            int bilagnr = 0;

            try
            {
                bilagnr = (from b in ((IList <tblwbilag>) this.tblwbilagBindingSource.List) select b.bilag).Max();
                bilagnr++;
            }
            catch
            {
                bilagnr = Program.karStatus.BS1_NæsteNr(null);
            }

            DateTime BankDato;

            try
            {
                BankDato = (DateTime)recBankkonto.dato;
            }
            catch
            {
                BankDato = DateTime.Today;
            }

            tblwbilag recwBilag = new tblwbilag
            {
                bilag = bilagnr,
                dato  = BankDato
            };

            if (!ReducerBilag(recwBilag, recBilag, recBankkonto))
            {
                foreach (var k in qry)
                {
                    recwBilag.tblwkladders.Add(k);
                }
                this.tblwbilagBindingSource.Add(recwBilag);
            }
            this.tblwbilagBindingSource.MoveLast();
        }
        public static void Bilagsudskrift(bool bDialog)
        {
            tblbilag[] Bilag;
            var        qry = from b in Program.dbDataTransSumma.tblbilags
                             where b.udskriv == true &&
                             b.tbltrans.Count() > 0
                             select b;
            int count = qry.Count();
            int iMax  = 99999;

            if (count > iMax)
            {
                Bilag = new tblbilag[iMax];
            }
            else
            {
                Bilag = new tblbilag[count];
            }

            int i = 0;

            foreach (var b in qry)
            {
                Bilag[i++] = b;
                b.udskriv  = false;
                if (i >= iMax)
                {
                    break;
                }
            }

            PrintDialog dialog = new PrintDialog();

            if (bDialog)
            {
                if (dialog.ShowDialog() != true)
                {
                    return;
                }
            }
            var paginator = new BilagsudskriftPaginator(Bilag, new Size(dialog.PrintableAreaWidth, dialog.PrintableAreaHeight));

            dialog.PrintDocument(paginator, "Bilagsudskrift");
            Program.dbDataTransSumma.SubmitChanges();
        }
Exemple #4
0
        private void cmdKopier_Click(object sender, EventArgs e)
        {
            FrmMain frmMain = this.ParentForm as FrmMain;
            tblbankkonto recBankkonto = null;
            try
            {
                FrmBankkontoudtog frmBankkontoudtog = frmMain.GetChild("Bank kontoudtog") as FrmBankkontoudtog;
                recBankkonto = frmBankkontoudtog.GetrecBankkonto();
            }
            catch { }

            try
            {
                FrmNyekladder frmNyekladder = frmMain.GetChild("Nye kladder") as FrmNyekladder;
                tblbilag recBilag = this.tblbilagBindingSource.Current as tblbilag;
                frmNyekladder.AddNyKladde(recBilag, recBankkonto);
            }
            catch { }
        }
Exemple #5
0
        private void importerTransaktionerToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int?     lastBilag      = null;
            string   Kontonavn      = null;
            tblbilag recBilag       = null;
            var      qryPosteringer = from p in Program.karPosteringer
                                      join b in Program.dbDataTransSumma.tbltrans on new { p.Regnskabid, p.Id, p.Nr } equals new { Regnskabid = b.regnskabid, Id = b.id, Nr = b.nr } into tbltrans
            from b in tbltrans.DefaultIfEmpty(new tbltran {
                pid = 0, regnskabid = null, id = null, nr = null
            })
            where b.pid == 0
            orderby p.Regnskabid, p.Bilag, p.Id, p.Nr
            select p;
            int antal = qryPosteringer.Count();

            foreach (var p in qryPosteringer)
            {
                if ((!(p.Bilag == null)) && (lastBilag != p.Bilag))
                {
                    try
                    {
                        recBilag = (from b in Program.dbDataTransSumma.tblbilags
                                    where b.regnskabid == p.Regnskabid && b.bilag == p.Bilag
                                    select b).First();
                    }
                    catch
                    {
                        recBilag = new tblbilag
                        {
                            regnskabid = p.Regnskabid,
                            bilag      = p.Bilag,
                            dato       = p.Dato,
                            udskriv    = true,
                        };
                        Program.dbDataTransSumma.tblbilags.InsertOnSubmit(recBilag);
                    }
                }

                try
                {
                    Kontonavn = (from b in Program.karKontoplan where b.Kontonr == p.Konto select b.Kontonavn).First();
                }
                catch
                {
                    Kontonavn = null;
                }

                tbltran recTrans = new tbltran
                {
                    regnskabid = p.Regnskabid,
                    tekst      = p.Tekst,
                    kontonr    = p.Konto,
                    kontonavn  = Kontonavn,
                    id         = p.Id,
                    nr         = p.Nr,
                    belob      = p.Nettobeløb + p.Momsbeløb,
                    moms       = p.Momsbeløb,
                    debet      = (p.Nettobeløb >= 0) ? p.Nettobeløb : (decimal?)null,
                    kredit     = (p.Nettobeløb < 0) ? -p.Nettobeløb : (decimal?)null,
                };
                Program.dbDataTransSumma.tbltrans.InsertOnSubmit(recTrans);
                if (!(p.Bilag == 0))
                {
                    recBilag.tbltrans.Add(recTrans);
                }
                lastBilag = p.Bilag;
            }
            Program.dbDataTransSumma.SubmitChanges();


            lastBilag = 0;
            var qryKladder = from k in Program.karKladder
                             join b in Program.dbDataTransSumma.tblkladders on new { k.Regnskabid, k.Id } equals new { Regnskabid = b.regnskabid, Id = b.id } into tblkladder
            from b in tblkladder.DefaultIfEmpty(new tblkladder {
                pid = 0, regnskabid = null, id = null
            })
            where b.pid == 0
            orderby k.Regnskabid, k.Bilag, k.Id
            select k;

            antal = qryKladder.Count();
            foreach (var k in qryKladder)
            {
                if ((!(k.Bilag == null)) && (lastBilag != k.Bilag))
                {
                    try
                    {
                        recBilag = (from b in Program.dbDataTransSumma.tblbilags
                                    where b.regnskabid == k.Regnskabid && b.bilag == k.Bilag
                                    select b).First();
                    }
                    catch
                    {
                        recBilag = new tblbilag
                        {
                            regnskabid = k.Regnskabid,
                            bilag      = k.Bilag,
                            dato       = k.Dato,
                            udskriv    = true,
                        };
                        Program.dbDataTransSumma.tblbilags.InsertOnSubmit(recBilag);
                    }
                }

                tblkladder recKladder = new tblkladder
                {
                    regnskabid       = k.Regnskabid,
                    tekst            = k.Tekst,
                    afstemningskonto = k.Afstemningskonto,
                    belob            = k.Belob,
                    konto            = k.Konto,
                    momskode         = k.Momskode,
                    faktura          = k.Faktura,
                    id = k.Id,
                };
                Program.dbDataTransSumma.tblkladders.InsertOnSubmit(recKladder);
                if (!(k.Bilag == 0))
                {
                    recBilag.tblkladders.Add(recKladder);
                }
                lastBilag = k.Bilag;
            }
            Program.dbDataTransSumma.SubmitChanges();
        }
        public override DocumentPage GetPage(int pageNumber)
        {
            tblbilag Bilag       = null;
            int      wpageNumber = 0;

            for (int i = 0; i < _BilagPages.Length; i++)
            {
                if ((pageNumber >= wpageNumber) && (pageNumber < wpageNumber + _BilagPages[i]))
                {
                    Bilag = new tblbilag
                    {
                        pid        = _Bilag[i].pid,
                        regnskabid = _Bilag[i].regnskabid,
                        bilag      = _Bilag[i].bilag,
                        dato       = _Bilag[i].dato,
                        udskriv    = _Bilag[i].udskriv
                    };

                    int jMin = (pageNumber - wpageNumber) * _RowsPerPage;
                    int jMax = Math.Min(_Bilag[i].tbltrans.Count(), jMin + _RowsPerPage);
                    Debug.Assert(jMin >= 0);
                    for (int j = jMin; j < jMax; j++)
                    {
                        tbltran Trans = new tbltran
                        {
                            pid        = _Bilag[i].tbltrans[j].pid,
                            regnskabid = _Bilag[i].tbltrans[j].regnskabid,
                            skjul      = _Bilag[i].tbltrans[j].skjul,
                            bilagpid   = _Bilag[i].tbltrans[j].bilagpid,
                            tekst      = _Bilag[i].tbltrans[j].tekst,
                            kontonr    = _Bilag[i].tbltrans[j].kontonr,
                            kontonavn  = _Bilag[i].tbltrans[j].kontonavn,
                            moms       = _Bilag[i].tbltrans[j].moms,
                            debet      = _Bilag[i].tbltrans[j].debet,
                            kredit     = _Bilag[i].tbltrans[j].kredit,
                            id         = _Bilag[i].tbltrans[j].id,
                            nr         = _Bilag[i].tbltrans[j].nr,
                            belob      = _Bilag[i].tbltrans[j].belob,
                            afstem     = _Bilag[i].tbltrans[j].afstem,
                        };
                        Bilag.tbltrans.Add(Trans);
                    }
                    break;
                }
                else
                {
                    wpageNumber += _BilagPages[i];
                }
            }

            var page = new PageElement(Bilag)
            {
                Width  = PageSize.Width,
                Height = PageSize.Height,
            };

            page.Measure(PageSize);
            page.Arrange(new Rect(new Point(0, 0), PageSize));

            return(new DocumentPage(page));
        }
 public PageElement(tblbilag Bilag)
 {
     Margin = new Thickness(PageMargin);
     _Bilag = Bilag;
 }
Exemple #8
0
        private bool ReducerBilag(tblwbilag recwBilag, tblbilag recBilag, tblbankkonto recBankkonto)
        {
            bool    IsFound_BankKontoudtog = (recBankkonto != null);
            decimal BankBelob                  = 0;
            decimal MomsBelob                  = 0;
            decimal AndenKontoBelob            = 0;
            int?    AndenKontoKonto            = null;
            string  AndenKontoTekst            = "";
            string  AndenKontoMomskode         = "";
            string  AndenKontoAfstemningskonto = "";
            string  MK          = "";
            bool    bBankKonto  = false;
            bool    bMomsKonto  = false;
            bool    bAndenKonto = false;
            bool    bAfstem     = false;
            bool    bMomskode   = false;

            var qry = from k in recBilag.tblkladders
                      select new tblwkladder
            {
                tekst            = k.tekst,
                afstemningskonto = k.afstemningskonto,
                belob            = k.belob,
                konto            = k.konto,
                momskode         = k.momskode,
                faktura          = k.faktura
            };

            int AntalLinier = recBilag.tblkladders.Count;


            if ((!IsFound_BankKontoudtog) || (IsFound_BankKontoudtog && ((recBankkonto.bankkontoid == 1) || (recBankkonto.bankkontoid == 3)))) //BANK
            {
                if (AntalLinier <= 3)
                {
                    foreach (tblkladder recKladder in recBilag.tblkladders)
                    {
                        if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != ""))
                        {
                            bAfstem = true;
                        }

                        if (recKladder.konto != null)
                        {
                            switch (recKladder.konto)
                            {
                            case 58000:
                                bBankKonto = true;
                                BankBelob  = (decimal)recKladder.belob;
                                break;

                            case 66100:
                                bMomsKonto = true;
                                MomsBelob  = (decimal)recKladder.belob;
                                MK         = "S25";
                                break;

                            case 66200:
                                bMomsKonto = true;
                                MomsBelob  = (decimal)recKladder.belob;
                                MK         = "K25";
                                break;

                            default:
                                bAndenKonto     = true;
                                AndenKontoBelob = (decimal)recKladder.belob;
                                AndenKontoTekst = recKladder.tekst;
                                AndenKontoKonto = (int)recKladder.konto;
                                if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != ""))
                                {
                                    AndenKontoAfstemningskonto = recKladder.afstemningskonto;
                                }
                                if ((recKladder.momskode != null) && (recKladder.momskode != ""))
                                {
                                    AndenKontoMomskode = recKladder.momskode;
                                }
                                break;
                            }
                        }

                        if ((recKladder.momskode != null) && (recKladder.momskode != ""))
                        {
                            bMomskode = true;
                        }
                    }

                    if ((AntalLinier == 3) &&
                        (bBankKonto) &&
                        (bMomsKonto) &&
                        (bAndenKonto) &&
                        (!bAfstem) &&
                        (!bMomskode))
                    {
                        //decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * decimal.Parse(" 0,25"));
                        decimal momspct      = KarMoms.getMomspct(MK) / 100;
                        decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * momspct);
                        if ((MomsBelobDif > -decimal.Parse(" 0,01")) &&
                            (MomsBelobDif < decimal.Parse(" 0,01")))
                        {
                            tblwkladder recWkladder = new tblwkladder
                            {
                                tekst            = AndenKontoTekst,
                                afstemningskonto = "Bank",
                                belob            = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : BankBelob,
                                konto            = AndenKontoKonto,
                                momskode         = MK
                            };
                            recwBilag.tblwkladders.Add(recWkladder);
                            this.tblwbilagBindingSource.Add(recwBilag);
                            return(true);
                        }
                    }

                    if ((AntalLinier == 2) &&
                        (bBankKonto) &&
                        (!bMomsKonto) &&
                        (bAndenKonto) &&
                        (!bAfstem) &&
                        (!bMomskode))
                    {
                        tblwkladder recWkladder = new tblwkladder
                        {
                            tekst            = AndenKontoTekst,
                            afstemningskonto = "Bank",
                            belob            = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob,
                            konto            = AndenKontoKonto
                        };
                        recwBilag.tblwkladders.Add(recWkladder);
                        this.tblwbilagBindingSource.Add(recwBilag);
                        return(true);
                    }


                    if ((AntalLinier == 2) &&
                        (bBankKonto) &&
                        (bAndenKonto) &&
                        (!bAfstem))
                    {
                        foreach (tblwkladder k in qry)
                        {
                            if (IsFound_BankKontoudtog)
                            {
                                if (k.konto == 58000)
                                {
                                    k.belob = -(decimal)recBankkonto.belob;
                                }
                                else
                                {
                                    k.belob = (decimal)recBankkonto.belob;
                                }
                            }
                            recwBilag.tblwkladders.Add(k);
                        }
                        this.tblwbilagBindingSource.Add(recwBilag);
                        return(true);
                    }

                    if ((AntalLinier == 1) &&
                        (!bBankKonto) &&
                        (bAndenKonto) &&
                        (bAfstem))
                    {
                        string WrkAfstemningskonto;
                        if (AndenKontoAfstemningskonto == "MasterCard")
                        {
                            WrkAfstemningskonto = "Bank";
                        }
                        else
                        {
                            WrkAfstemningskonto = AndenKontoAfstemningskonto;
                        }
                        tblwkladder recWkladder = new tblwkladder
                        {
                            tekst            = AndenKontoTekst,
                            afstemningskonto = WrkAfstemningskonto,
                            belob            = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob,
                            konto            = AndenKontoKonto,
                            momskode         = AndenKontoMomskode
                        };
                        recwBilag.tblwkladders.Add(recWkladder);
                        this.tblwbilagBindingSource.Add(recwBilag);
                        return(true);
                    }
                }
            }

            else if (IsFound_BankKontoudtog && recBankkonto.bankkontoid == 2)  //MASTERCARD
            {
                if (AntalLinier <= 3)
                {
                    foreach (tblkladder recKladder in recBilag.tblkladders)
                    {
                        if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != ""))
                        {
                            bAfstem = true;
                        }

                        if (recKladder.konto != null)
                        {
                            switch (recKladder.konto)
                            {
                            case 58310:
                                bBankKonto = true;
                                BankBelob  = (decimal)recKladder.belob;
                                break;

                            case 66100:
                                bMomsKonto = true;
                                MomsBelob  = (decimal)recKladder.belob;
                                MK         = "S25";
                                break;

                            case 66200:
                                bMomsKonto = true;
                                MomsBelob  = (decimal)recKladder.belob;
                                MK         = "K25";
                                break;

                            default:
                                bAndenKonto     = true;
                                AndenKontoBelob = (decimal)recKladder.belob;
                                AndenKontoTekst = recKladder.tekst;
                                AndenKontoKonto = (int)recKladder.konto;
                                if ((recKladder.afstemningskonto != null) && (recKladder.afstemningskonto != ""))
                                {
                                    AndenKontoAfstemningskonto = recKladder.afstemningskonto;
                                }
                                if ((recKladder.momskode != null) && (recKladder.momskode != ""))
                                {
                                    AndenKontoMomskode = recKladder.momskode;
                                }
                                break;
                            }
                        }

                        if ((recKladder.momskode != null) && (recKladder.momskode != ""))
                        {
                            bMomskode = true;
                        }
                    }

                    if ((AntalLinier == 3) &&
                        (bBankKonto) &&
                        (bMomsKonto) &&
                        (bAndenKonto) &&
                        (!bAfstem) &&
                        (!bMomskode))
                    {
                        //decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * decimal.Parse(" 0,25"));
                        decimal momspct      = KarMoms.getMomspct(MK) / 100;
                        decimal MomsBelobDif = -MomsBelob + (AndenKontoBelob * momspct);
                        if ((MomsBelobDif > -decimal.Parse(" 0,01")) &&
                            (MomsBelobDif < decimal.Parse(" 0,01")))
                        {
                            tblwkladder recWkladder = new tblwkladder
                            {
                                tekst            = AndenKontoTekst,
                                afstemningskonto = "MasterCard",
                                belob            = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : BankBelob,
                                konto            = AndenKontoKonto,
                                momskode         = MK
                            };
                            recwBilag.tblwkladders.Add(recWkladder);
                            this.tblwbilagBindingSource.Add(recwBilag);
                            return(true);
                        }
                    }

                    if ((AntalLinier == 2) &&
                        (bBankKonto) &&
                        (!bMomsKonto) &&
                        (bAndenKonto) &&
                        (!bAfstem) &&
                        (!bMomskode))
                    {
                        tblwkladder recWkladder = new tblwkladder
                        {
                            tekst            = AndenKontoTekst,
                            afstemningskonto = "MasterCard",
                            belob            = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob,
                            konto            = AndenKontoKonto
                        };
                        recwBilag.tblwkladders.Add(recWkladder);
                        this.tblwbilagBindingSource.Add(recwBilag);
                        return(true);
                    }

                    if ((AntalLinier == 2) &&
                        (bBankKonto) &&
                        (bAndenKonto) &&
                        (!bAfstem))
                    {
                        foreach (tblwkladder k in qry)
                        {
                            if (IsFound_BankKontoudtog)
                            {
                                if (k.konto == 58310)
                                {
                                    k.belob = -(decimal)recBankkonto.belob;
                                }
                                else
                                {
                                    k.belob = (decimal)recBankkonto.belob;
                                }
                            }
                            recwBilag.tblwkladders.Add(k);
                        }
                        this.tblwbilagBindingSource.Add(recwBilag);
                        return(true);
                    }
                    if ((AntalLinier == 1) &&
                        (!bBankKonto) &&
                        (bAndenKonto) &&
                        (bAfstem))
                    {
                        string WrkAfstemningskonto;
                        if (AndenKontoAfstemningskonto == "Bank")
                        {
                            WrkAfstemningskonto = "MasterCard";
                        }
                        else
                        {
                            WrkAfstemningskonto = AndenKontoAfstemningskonto;
                        }

                        tblwkladder recWkladder = new tblwkladder
                        {
                            tekst            = AndenKontoTekst,
                            afstemningskonto = WrkAfstemningskonto,
                            belob            = (IsFound_BankKontoudtog) ? (decimal)recBankkonto.belob : AndenKontoBelob,
                            konto            = AndenKontoKonto,
                            momskode         = AndenKontoMomskode
                        };
                        recwBilag.tblwkladders.Add(recWkladder);
                        this.tblwbilagBindingSource.Add(recwBilag);
                        return(true);
                    }
                }
            }
            //*******************************************************************************************
            //*******************************************************************************************

            return(false);
        }
Exemple #9
0
        public static void UdskrivBilag(tblbilag Bilag)
        {
            int            Regnskabid    = (int)Bilag.regnskabid;
            recMemRegnskab rec_regnskab  = (from r in Program.memRegnskab where r.Rid == Regnskabid select r).First();
            string         firma         = rec_regnskab.Firmanavn;
            string         regnskabsnavn = rec_regnskab.Navn;
            DateTime       startdato     = (DateTime)rec_regnskab.Start;
            DateTime       slutdato      = (DateTime)rec_regnskab.S**t;
            DateTime       bilagsdato    = (DateTime)Bilag.dato;

            int startMonth   = startdato.Month;
            int bilagMonth   = bilagsdato.Month;
            int regnskabsaar = slutdato.Year;
            int pnr;

            if (bilagMonth < startMonth)
            {
                pnr = bilagMonth + 12 - startMonth + 1;
            }
            else
            {
                pnr = bilagMonth - startMonth + 1;
            }
            DateTime PeriodeMonthYear = new DateTime(slutdato.Year, pnr, 1);
            string   Periode          = PeriodeMonthYear.ToString("MM");


            //Create a pdf document.
            PdfDocument doc = new PdfDocument();

            doc.DocumentInformation.Author       = "Hafsjold Data Consult";
            doc.DocumentInformation.Title        = String.Format("Bogføringsbilag {0}", regnskabsnavn);
            doc.DocumentInformation.Creator      = "Trans2SummaHDC";
            doc.DocumentInformation.Subject      = String.Format("Bilag {0}", ((int)Bilag.bilag).ToString());
            doc.DocumentInformation.CreationDate = DateTime.Now;

            //margin
            PdfUnitConvertor unitCvtr = new PdfUnitConvertor();
            PdfMargins       margin   = new PdfMargins();

            margin.Top    = unitCvtr.ConvertUnits(2.54f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Bottom = margin.Top;
            margin.Left   = unitCvtr.ConvertUnits(2f, PdfGraphicsUnit.Centimeter, PdfGraphicsUnit.Point);
            margin.Right  = margin.Left;

            // Create one page
            PdfPageBase page  = doc.Pages.Add(PdfPageSize.A4, margin);
            float       width = page.Canvas.ClientSize.Width;

            float y = 10;

            //title
            PdfBrush        brush1  = PdfBrushes.Black;
            PdfTrueTypeFont font1   = new PdfTrueTypeFont(new Font("Arial", 16f, FontStyle.Bold));
            PdfStringFormat format1 = new PdfStringFormat(PdfTextAlignment.Left);
            string          s       = String.Format("Bogføringsbilag {0}", regnskabsnavn);

            page.Canvas.DrawString(s, font1, brush1, 1, y, format1);
            y = y + font1.MeasureString(s, format1).Height;
            y = y + 25;

            PdfBrush        brush2 = PdfBrushes.Black;
            PdfTrueTypeFont font2  = new PdfTrueTypeFont(new Font("Arial", 10f, FontStyle.Bold));

            PdfStringFormat format2 = new PdfStringFormat(PdfTextAlignment.Left);

            s = String.Format("Dato: {0}", ((DateTime)Bilag.dato).ToShortDateString());
            page.Canvas.DrawString(s, font2, brush2, 1, y, format2);

            PdfStringFormat format21 = new PdfStringFormat(PdfTextAlignment.Center);

            s = String.Format("Periode: {0}", Periode);
            page.Canvas.DrawString(s, font2, brush2, width / 2, y, format21);

            PdfStringFormat format22 = new PdfStringFormat(PdfTextAlignment.Right);

            s = String.Format("Bilag: {0}", ((int)Bilag.bilag).ToString());
            page.Canvas.DrawString(s, font2, brush2, width, y, format22);

            y = y + font2.MeasureString(s, format2).Height;
            y = y + 25;

            String[][] dataSource = new String[Bilag.tbltrans.Count + 1][];
            int        i          = 0;

            foreach (tbltran t in Bilag.tbltrans)
            {
                if (i == 0)
                {
                    String[] headings = new String[5];
                    headings[0]     = "Tekst";
                    headings[1]     = "Kontonr";
                    headings[2]     = "Kontonavn";
                    headings[3]     = "Debet";
                    headings[4]     = "Kredit";
                    dataSource[i++] = headings;
                }

                String[] datarow = new String[5];
                datarow[0]      = t.tekst;
                datarow[1]      = t.kontonr.ToString();
                datarow[2]      = t.kontonavn;
                datarow[3]      = t.debet != null ? ((decimal)(t.debet)).ToString("#,0.00;-#,0.00") : "";
                datarow[4]      = t.kredit != null ? ((decimal)(t.kredit)).ToString("#,0.00;-#,0.00") : "";
                dataSource[i++] = datarow;
            }

            PdfTable table = new PdfTable();

            table.Style.CellPadding              = 5; //2;
            table.Style.HeaderSource             = PdfHeaderSource.Rows;
            table.Style.HeaderRowCount           = 1;
            table.Style.HeaderStyle.StringFormat = new PdfStringFormat(PdfTextAlignment.Center);
            table.Style.HeaderStyle.Font         = new PdfTrueTypeFont(new Font("Arial", 9f, FontStyle.Bold));
            table.Style.ShowHeader   = true;
            table.Style.RepeatHeader = true;
            table.DataSource         = dataSource;


            table.Columns[0].Width        = width * 0.30f * width;
            table.Columns[0].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
            table.Columns[1].Width        = width * 0.10f * width;
            table.Columns[1].StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
            table.Columns[2].Width        = width * 0.30f * width;
            table.Columns[2].StringFormat = new PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Middle);
            table.Columns[3].Width        = width * 0.15f * width;
            table.Columns[3].StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);
            table.Columns[4].Width        = width * 0.15f * width;
            table.Columns[4].StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Middle);

            PdfLayoutResult result = table.Draw(page, new PointF(0, y));

            y = y + result.Bounds.Height + 5;

            //Save pdf file.
            string BilagPath = (from r in Program.karTrans2Summa where r.key == "BilagPath" select r.value).First();
            string BilagNavn = String.Format(@"Bilag {0}.pdf", ((int)Bilag.bilag).ToString());
            string filename  = Path.Combine(BilagPath, BilagNavn);

            doc.SaveToFile(filename);
            doc.Close();
        }