public frmBetalingenBestand(DataAdapters da)
        {
            InitializeComponent();
            param       = new tblParameters();
            betalingen  = da.VulBetalingRecords();
            dataAdaptor = da;

            _windowState = new PersistWindowState(this, @"Leden\BetalingenBestand");

            PersistControlValue.ReadControlValue(txtFilePrefixB);
            PersistControlValue.ReadControlValue(txtFileSeqnrB);
            PersistControlValue.ReadControlValue(txtMsgIDB);
            PersistControlValue.ReadControlValue(txtOutputLocationIncB);
            PersistControlValue.ReadControlValue(chkPrintVerslagB);

            int     nbrBetalingen = 0;
            decimal sumBetalingen = 0;

            foreach (tblBetaling betaling in betalingen)
            {
                if (betaling.Verstuurd)
                {
                    continue;
                }
                sumBetalingen += betaling.TotaalBedrag;
                nbrBetalingen++;
            }
            lblMessage.Text = "Aantal: " + nbrBetalingen.ToString() + " - Bedrag: " + sumBetalingen.ToEuroString();
        }
Пример #2
0
        public tblBetaling(BetalingenLijst Betalingen)
        {
            try
            {
                for (int i = 0; i < Betalingen.Count; i++)
                {
                    if (Betalingen[i].BetalingsSeqNr > _BetalingsSeqNr)
                    {
                        _BetalingsSeqNr = Betalingen[i].BetalingsSeqNr;
                    }
                }
                _BetalingsSeqNr++;
            }
            catch (Exception ex)
            {
                GuiRoutines.ShowMessage(ex);
            }

            _IBAN_Creditor            = string.Empty;
            _BIC_Creditor             = string.Empty;
            _Omschrijving             = string.Empty;
            _EndToEndId               = string.Empty;
            _TotaalBedrag             = 0;
            _TypeBetaling             = 0;
            _AanmaakDatum             = DateTime.Now;
            _Verstuurd                = false;
            _VerstuurdDatum           = DateTime.Now;
            _GewensteVerwerkingsDatum = DateTime.Now;
            _Extra1    = 0;
            _Extra2    = 0;
            _Extra3    = 0;
            _Crediteur = string.Empty;
            _ExtraB    = string.Empty;
            _ExtraC    = string.Empty;

            _isDirty = true;
            Betalingen.Add(this);
        }
        public frmEenmaligeBetaling(DataAdapters da)
        {
            InitializeComponent();
            param       = new tblParameters();
            dataAdaptor = da;
            betalingen  = da.VulBetalingRecords();

            _windowState = new PersistWindowState(this, @"Leden\EenmaligeBetaling");
            PersistControlValue.ReadControlValue(chkFilter);
            SetChangeMode(false);


            cboTypeRekening.Items.AddRange(tblBetaling.BetalingTypeDescriptions);

            InitializeDataListView(olvBetalingen);

            #region Create Columns
            OLVColumn colNaam             = new OLVColumn("Naam", "Crediteur");
            OLVColumn colDatum            = new OLVColumn("Datum", "AanmaakDatum");
            OLVColumn dlvc03              = new OLVColumn("Omschrijving", "Omschrijving");
            OLVColumn dlvc04              = new OLVColumn("End To End Id", "EndToEndId");
            OLVColumn colBedrag           = new OLVColumn("Bedrag", "TotaalBedrag");
            OLVColumn colType             = new OLVColumn("Type", "TypeBetaling");
            OLVColumn colVerwerkingsDatum = new OLVColumn("Verw, Datun", "GewensteVerwerkingsDatum");

            colNaam.Width             = 140;
            colDatum.Width            = 90;
            dlvc03.Width              = 200;
            dlvc04.Width              = 130;
            colBedrag.Width           = 70;
            colType.Width             = 70;
            colVerwerkingsDatum.Width = 90;

            colNaam.UseInitialLetterForGroup   = true;
            colBedrag.UseInitialLetterForGroup = true;
            colBedrag.AspectToStringFormat     = "{0:C}";
            colBedrag.TextAlign = HorizontalAlignment.Right;
            // dlvc03.UseInitialLetterForGroup = true;
            colDatum.Sortable  = true;
            colDatum.TextAlign = HorizontalAlignment.Right;
            colDatum.UseInitialLetterForGroup            = true;
            colVerwerkingsDatum.Sortable                 = true;
            colVerwerkingsDatum.TextAlign                = HorizontalAlignment.Right;
            colVerwerkingsDatum.UseInitialLetterForGroup = true;
            colType.UseInitialLetterForGroup             = true;

            olvBetalingen.Columns.Add(colType);
            olvBetalingen.Columns.Add(colNaam);
            olvBetalingen.Columns.Add(dlvc03);
            olvBetalingen.Columns.Add(dlvc04);
            olvBetalingen.Columns.Add(colBedrag);
            olvBetalingen.Columns.Add(colDatum);
            olvBetalingen.Columns.Add(colVerwerkingsDatum);

            colType.AspectGetter = delegate(object row)
            {
                if (((tblBetaling)row).TypeBetaling == 0)
                {
                    return("Overig");
                }
                return("Overig");  // Voor het geval er nog meer komen :o)
            };

            colDatum.AspectGetter = delegate(object row)
            {
                return(((tblBetaling)row).AanmaakDatum.ToShortDateString());
            };

            colVerwerkingsDatum.AspectGetter = delegate(object row)
            {
                return(((tblBetaling)row).GewensteVerwerkingsDatum.ToShortDateString());
            };

            dlvc04.AspectGetter = delegate(object row)
            {
                return(((tblBetaling)row).FormattedEndToEndId);
            };
            #endregion

            olvBetalingen.SetObjects(betalingen);

            #region Vul Crediteuren
            LedenLijst leden = da.VulLedenLijst();

            CrediteurenLijst crediteuren = da.VulCrediteurenRecords();

            foreach (tblCrediteur cred in crediteuren)
            {
                cboCrediteur.AddRecord(cred.Naam, cred);
            }
            foreach (tblLid lid in leden)
            {
                if (lid.IsIncasso)
                {
                    cboCrediteur.AddRecord(lid.VolledigeNaam, lid);
                }
            }
            cboCrediteur.First();

            #endregion

            // Show the first
            //if (betalingen.Count > 0)
            //    olvBetalingen.Items[0].Selected = true;
            //else
            //    CmdNew_Click(this, null);  // Waarom werkt dit niet:  CmdNew.PerformClick();
        }
        /// <summary>
        /// Het aanmaken van het betaling bestand.
        /// De list selectedInc moet gesorteed zijn op 'geincasseerd' omdat we hierop batchen
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmdMaakbestand_Click(object sender, EventArgs e)
        {
            try
            {
                if (betalingen.Count == 0)
                {
                    MessageBox.Show("Geen betalingen", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
                //dit fileSeqnr gebruiken we om in de db terug te schrijven zodat we weten in welk bestand een betaling zit
                // dit verder niet gebruikt maar miscchien later handig voor het nazoeken.
                fileSeqnr = txtFileSeqnrB.Text.IsNumeric() ? Convert.ToInt32(txtFileSeqnrB.Text) : 0;
                string outputfile = txtOutputLocationIncB.Text + @"\" + txtFilePrefixB.Text + fileSeqnr.ToString("000") + ".xml";

                #region BetalingVerslag init
                outputverslag = txtOutputLocationIncB.Text + @"\" + txtFilePrefixB.Text + fileSeqnr.ToString("000") + "_OutputVerslag.txt";
                betalingVerslag.AppendLine("Betalingverslag: " + outputfile);
                betalingVerslag.AppendLine();
                #endregion

                #region Template voor betaling
                //Ik maak hier eerst de template voor de credit's.
                StringBuilder templateBetaling = new StringBuilder();
                templateBetaling.AppendLine("      <CdtTrfTxInf>");
                templateBetaling.AppendLine("        <PmtId>");
                templateBetaling.AppendLine("          <EndToEndId>***EndToEndId***</EndToEndId>");
                templateBetaling.AppendLine("        </PmtId>");
                templateBetaling.AppendLine("        <Amt>");
                templateBetaling.AppendLine(@"        <InstdAmt Ccy=""EUR"">***InstdAmt***</InstdAmt>");
                templateBetaling.AppendLine("        </Amt>");
                templateBetaling.AppendLine("        <CdtrAgt>");
                templateBetaling.AppendLine("          <FinInstnId>");
                templateBetaling.AppendLine("            <BIC>***BIC***</BIC>");
                templateBetaling.AppendLine("          </FinInstnId>");
                templateBetaling.AppendLine("        </CdtrAgt>");
                templateBetaling.AppendLine("        <Cdtr>");
                templateBetaling.AppendLine("          <Nm>***Nm***</Nm>");
                templateBetaling.AppendLine("        </Cdtr>");
                templateBetaling.AppendLine("        <CdtrAcct>");
                templateBetaling.AppendLine("          <Id>");
                templateBetaling.AppendLine("            <IBAN>***IBAN***</IBAN>");
                templateBetaling.AppendLine("          </Id>");
                templateBetaling.AppendLine("        </CdtrAcct>");
                templateBetaling.AppendLine("        <RmtInf>");
                templateBetaling.Append("           ***RmtInf***");
                templateBetaling.AppendLine("        </RmtInf>");
                templateBetaling.AppendLine("      </CdtTrfTxInf>");
                #endregion

                #region Template on batchlevel for Payment Info
                // Ik maak hier de template voor de  batches.
                StringBuilder templateBatch = new StringBuilder();

                templateBatch.AppendLine("    <PmtInf>");
                templateBatch.AppendLine("      <PmtInfId>***PmtInfId***</PmtInfId> ");
                templateBatch.AppendLine("      <PmtMtd>TRF</PmtMtd>");
                templateBatch.AppendLine("      <BtchBookg>true</BtchBookg>");
                templateBatch.AppendLine("      <NbOfTxs>***NbOfTxs***</NbOfTxs>");
                templateBatch.AppendLine("      <CtrlSum>***InstdAmt***</CtrlSum>");
                templateBatch.AppendLine("      <PmtTpInf>");
                templateBatch.AppendLine("        <SvcLvl>");
                templateBatch.AppendLine("          <Cd>SEPA</Cd>");
                templateBatch.AppendLine("        </SvcLvl>");
                templateBatch.AppendLine("       <CtgyPurp>");
                templateBatch.AppendLine("          <Cd>OTHR</Cd>");
                templateBatch.AppendLine("       </CtgyPurp>");
                templateBatch.AppendLine("      </PmtTpInf>");
                templateBatch.AppendLine("      <ReqdExctnDt>***ReqdExctnDt***</ReqdExctnDt>");
                templateBatch.AppendLine("      <Dbtr>");
                templateBatch.AppendLine("        <Nm>***Nm***</Nm>");
                templateBatch.AppendLine("      </Dbtr>");
                templateBatch.AppendLine("      <DbtrAcct>");
                templateBatch.AppendLine("        <Id>");
                templateBatch.AppendLine("          <IBAN>***IBAN***</IBAN>");
                templateBatch.AppendLine("        </Id>");
                templateBatch.AppendLine("        <Ccy>EUR</Ccy>");
                templateBatch.AppendLine("      </DbtrAcct>");
                templateBatch.AppendLine("      <DbtrAgt>");
                templateBatch.AppendLine("        <FinInstnId>");
                templateBatch.AppendLine("          <BIC>***BIC***</BIC>");
                templateBatch.AppendLine("        </FinInstnId>");
                templateBatch.AppendLine("      </DbtrAgt>");
                templateBatch.AppendLine("      <ChrgBr>SLEV</ChrgBr>");
                templateBatch.Append("***insertCred****");
                templateBatch.AppendLine("    </PmtInf>");
                #endregion

                #region Template on file level
                StringBuilder templateFile = new StringBuilder();

                templateFile.AppendLine(@"<Document xmlns=""urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">");
                templateFile.AppendLine("  <CstmrCdtTrfInitn>");
                templateFile.AppendLine("    <GrpHdr>");
                templateFile.AppendLine("      <MsgId>***MsgId***</MsgId>");
                templateFile.AppendLine("      <CreDtTm>***CreDtTm***</CreDtTm>");
                templateFile.AppendLine("      <NbOfTxs>***NbOfTxs***</NbOfTxs>");
                templateFile.AppendLine("      <InitgPty>");
                templateFile.AppendLine("        <Nm>***InitgPtyNm***</Nm>");
                templateFile.AppendLine("        <Id>");
                templateFile.AppendLine("          <OrgId>");
                templateFile.AppendLine("            <Othr>");
                templateFile.AppendLine("              <Id>***InitgPtyId***</Id>");
                templateFile.AppendLine("            </Othr>");
                templateFile.AppendLine("          </OrgId>");
                templateFile.AppendLine("        </Id>");
                templateFile.AppendLine("      </InitgPty>");
                templateFile.AppendLine("    </GrpHdr>");
                templateFile.Append("***insertBET***");
                templateFile.AppendLine("  </CstmrCdtTrfInitn>");
                templateFile.AppendLine("</Document>");
                #endregion

                decimal  amtBetalingenInBatch = 0M;
                int      nbrBetalingenInBatch = 0;
                int      nbrBetalingenInFile  = 0;
                string   batchName            = string.Empty;
                DateTime batchDatum           = new DateTime().Date;

                //Sorteren op gewenste uitvoer datum en selecteerd alleen niet verstuurde
                IEnumerable <tblBetaling> OnverstuurdeBetalingen = from betaling in betalingen where !betaling.Verstuurd orderby betaling.GewensteVerwerkingsDatum select betaling;

                //Sorteren op gewenste uitvoer datum
                //betalingen.Sort(new BetalingenComparer("GewensteDatum"));

                BetalingenLijst        betalingenPerDatum    = new BetalingenLijst();
                List <BetalingenLijst> betalingPerDatumLijst = new List <BetalingenLijst>();
                foreach (tblBetaling bet in OnverstuurdeBetalingen)
                {
                    if (bet.GewensteVerwerkingsDatum.Date == batchDatum.Date)
                    {
                        betalingenPerDatum.Add(bet);
                    }
                    else
                    {
                        if (betalingenPerDatum.Count > 0)
                        {
                            betalingPerDatumLijst.Add(betalingenPerDatum);
                        }
                        betalingenPerDatum = new BetalingenLijst();
                        betalingenPerDatum.Add(bet);
                        batchDatum = bet.GewensteVerwerkingsDatum.Date;
                    }
                }
                betalingPerDatumLijst.Add(betalingenPerDatum);

                StringBuilder sbrBatches = new StringBuilder();

                foreach (BetalingenLijst bl in betalingPerDatumLijst)
                {
                    StringBuilder sbrBetalingenInABatch = new StringBuilder();

                    foreach (tblBetaling betaling in bl)
                    {
                        #region Create betaling from template replacing placeholders
                        StringBuilder sbrBetaling = new StringBuilder(templateBetaling.ToString());

                        sbrBetaling.Replace("***EndToEndId***", "Ref: " + betaling.EndToEndId);
                        sbrBetaling.Replace("***InstdAmt***", betaling.TotaalBedrag.ToXMLString());
                        sbrBetaling.Replace("***BIC***", betaling.BIC_Creditor);
                        sbrBetaling.Replace("***Nm***", betaling.Crediteur);
                        sbrBetaling.Replace("***IBAN***", betaling.IBAN_Creditor);
                        StringBuilder RmtInf = new StringBuilder();
                        if (betaling.Omschrijving == string.Empty)
                        {
                            RmtInf.AppendLine("<Strd>");
                            RmtInf.AppendLine("                <CdtrRefInf>");
                            RmtInf.AppendLine("                  <Tp>");
                            RmtInf.AppendLine("                    <CdOrPrtry>");
                            RmtInf.AppendLine("                      <Cd>SCOR</Cd>");
                            RmtInf.AppendLine("                    </CdOrPrtry>");
                            RmtInf.AppendLine("                  </Tp>");
                            RmtInf.AppendLine("                  <Ref>" + betaling.EndToEndId + "</Ref>");
                            RmtInf.AppendLine("                </CdtrRefInf>");
                            RmtInf.AppendLine("              </Strd>");
                        }
                        else
                        {
                            RmtInf.AppendLine("<Ustrd>" + betaling.Omschrijving + "</Ustrd>");
                        }
                        sbrBetaling.Replace("***RmtInf***", RmtInf.ToString());
                        #endregion

                        sbrBetalingenInABatch.Append(sbrBetaling.ToString());
                        nbrBetalingenInBatch++;
                        nbrBetalingenInFile++;
                        amtBetalingenInBatch += betaling.TotaalBedrag;

                        regelVerslag.Append(betaling.Crediteur.PadRight(30));
                        regelVerslag.Append(betaling.GewensteVerwerkingsDatum.ToShortDateString().PadRight(15));
                        regelVerslag.Append(betaling.TotaalBedrag.ToEuroString().PadRight(12));
                        if (betaling.Omschrijving == string.Empty)
                        {
                            regelVerslag.Append(betaling.FormattedEndToEndId.PadRight(30));
                        }
                        else
                        {
                            regelVerslag.Append(betaling.Omschrijving.PadRight(30));
                        }
                        regelVerslag.AppendLine();

                        betaling.Verstuurd      = true;
                        betaling.VerstuurdDatum = DateTime.Now;
                        betaling.ExtraB         = txtFilePrefixB.Text + fileSeqnr.ToString("000");
                    }
                    StringBuilder B = CreateBatchHeader(templateBatch, sbrBetalingenInABatch, nbrBetalingenInBatch, amtBetalingenInBatch, batchDatum);
                    sbrBatches.Append(B.ToString());
                }

                // batch (mits gevuld) worden hier in de body geplaatst
                templateFile.Replace("***MsgId***", param.ClubNameShort + " betaling " + fileSeqnr.ToString("000"));
                templateFile.Replace("***CreDtTm***", DateTime.Now.ToString("s"));
                templateFile.Replace("***NbOfTxs***", nbrBetalingenInFile.ToString());
                templateFile.Replace("***InitgPtyNm***", param.ClubNameLong);
                templateFile.Replace("***InitgPtyId***", param.KvK);
                templateFile.Replace("***insertBET***", sbrBatches.ToString());

                #region replace unwanted characters
                // We vervangen niet toegestane tekens.
                // Wie weet een mooiere methode?
                templateFile.Replace("À", "A");
                templateFile.Replace("Á", "A");
                templateFile.Replace("Â", "A");
                templateFile.Replace("Ã", "A");
                templateFile.Replace("Ä", "A");
                templateFile.Replace("Å", "A");
                templateFile.Replace("Æ", "AE");
                templateFile.Replace("Ç", "C");
                templateFile.Replace("È", "E");
                templateFile.Replace("É", "E");
                templateFile.Replace("Ê", "E");
                templateFile.Replace("Ë", "E");
                templateFile.Replace("Ì", "I");
                templateFile.Replace("Í", "I");
                templateFile.Replace("Î", "I");
                templateFile.Replace("Ï", "I");
                templateFile.Replace("Ð", "D");
                templateFile.Replace("Ñ", "N");
                templateFile.Replace("Ò", "O");
                templateFile.Replace("Ó", "O");
                templateFile.Replace("Ô", "O");
                templateFile.Replace("Õ", "O");
                templateFile.Replace("Ö", "O");
                templateFile.Replace("Ø", "O");
                templateFile.Replace("Ù", "U");
                templateFile.Replace("Ú", "U");
                templateFile.Replace("Û", "U");
                templateFile.Replace("Ü", "U");
                templateFile.Replace("ß", "ss");
                templateFile.Replace("à", "a");
                templateFile.Replace("á", "a");
                templateFile.Replace("â", "a");
                templateFile.Replace("ã", "a");
                templateFile.Replace("ä", "a");
                templateFile.Replace("å", "a");
                templateFile.Replace("æ", "ae");
                templateFile.Replace("ç", "c");
                templateFile.Replace("è", "e");
                templateFile.Replace("é", "e");
                templateFile.Replace("ê", "e");
                templateFile.Replace("ë", "e");
                templateFile.Replace("ì", "i");
                templateFile.Replace("í", "i");
                templateFile.Replace("î", "i");
                templateFile.Replace("ï", "i");
                templateFile.Replace("ð", "o");
                templateFile.Replace("ñ", "n");
                templateFile.Replace("ò", "o");
                templateFile.Replace("ó", "o");
                templateFile.Replace("ô", "o");
                templateFile.Replace("õ", "o");
                templateFile.Replace("ö", "o");
                templateFile.Replace("ø", "o");
                templateFile.Replace("ù", "u");
                templateFile.Replace("ú", "u");
                templateFile.Replace("û", "u");
                templateFile.Replace("ü", "u");
                templateFile.Replace("ý", "u");
                templateFile.Replace("ÿ", "y");
                templateFile.Replace("ÿ", "y");
                templateFile.Replace("€", "E");
                #endregion

                // En klaar is kees. Nu het bestand inschrijven.
                StreamWriter swOutput = new StreamWriter(outputfile);

                swOutput.WriteLine(templateFile.ToString());
                swOutput.Flush();
                swOutput.Close();
                swOutput.Dispose();


                StreamWriter swVerslag = new StreamWriter(outputverslag);
                swVerslag.WriteLine(betalingVerslag.ToString());
                swVerslag.Flush();
                swVerslag.Close();
                swVerslag.Dispose();

                if (chkPrintVerslagB.Checked)
                {
                    fileToPrint = new System.IO.StreamReader(outputverslag);
                    printFont   = new System.Drawing.Font("Courier New", 8);
                    printDocument1.DocumentName = "Betaling Verslag";
                    printDocument1.Print();
                    fileToPrint.Close();
                }
                #endregion

                // We controleren nog even of het bestand aan het schema voldoet.
                CheckPain(outputfile);

                fileSeqnr++;
                txtFileSeqnrB.Text = fileSeqnr.ToString();

                dataAdaptor.UpdateBetalingen(betalingen);
                dataAdaptor.CommitTransaction(true);
                MessageBox.Show("Bestand aangemaakt: " + outputfile + "\nAantal betaling's: " + nbrBetalingenInFile.ToString(), "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cmdMaakbestand.Enabled = false;
            }
            catch (Exception ex)
            {
                GuiRoutines.ExceptionMessageBox(this, ex);
            }
        }
Пример #5
0
        public frmBetalingInhoud(DataAdapters da)
        {
            #region Initialize
            InitializeComponent();
            _windowState    = new PersistWindowState(this, @"Leden\BetalingInhoud");
            localRekeningen = da.VulBetalingRecords();

            param = new tblParameters();

            var reks = from rek in localRekeningen where !rek.Verstuurd orderby rek.AanmaakDatum select rek;
            // het gebruik van rekeningen geeft een cast error! Daarom maar reks
            //  weer een mooie Linq. Alleen de OrderBy heeft waarschijnlijk ruzie met grouping van OLV

            InitializeDataListView(olvVCard);

            #endregion

            #region Create Columns
            OLVColumn colNaam             = new OLVColumn("Naam", "IBAN_Creditor");
            OLVColumn colDatum            = new OLVColumn("Datum", "AanmaakDatum");
            OLVColumn dlvc03              = new OLVColumn("Omschrijving", "Omschrijving");
            OLVColumn dlvc04              = new OLVColumn("End To End Id", "EndToEndId");
            OLVColumn colBedrag           = new OLVColumn("Bedrag", "TotaalBedrag");
            OLVColumn colType             = new OLVColumn("Type", "TypeBetaling");
            OLVColumn colVerwerkingsDatum = new OLVColumn("Verw, Datun", "GewensteVerwerkingsDatum");

            colNaam.Width             = 170;
            colDatum.Width            = 90;
            dlvc03.Width              = 210;
            dlvc04.Width              = 150;
            colBedrag.Width           = 70;
            colType.Width             = 90;
            colVerwerkingsDatum.Width = 90;

            colNaam.UseInitialLetterForGroup   = true;
            colBedrag.UseInitialLetterForGroup = true;
            colBedrag.AspectToStringFormat     = "{0:C}";
            colBedrag.TextAlign = HorizontalAlignment.Right;
            // dlvc03.UseInitialLetterForGroup = true;
            colDatum.Sortable  = true;
            colDatum.TextAlign = HorizontalAlignment.Right;
            colDatum.UseInitialLetterForGroup            = true;
            colVerwerkingsDatum.Sortable                 = true;
            colVerwerkingsDatum.TextAlign                = HorizontalAlignment.Right;
            colVerwerkingsDatum.UseInitialLetterForGroup = true;
            colType.UseInitialLetterForGroup             = true;

            olvVCard.Columns.Add(colType);
            olvVCard.Columns.Add(colNaam);
            olvVCard.Columns.Add(dlvc03);
            olvVCard.Columns.Add(dlvc04);
            olvVCard.Columns.Add(colBedrag);
            olvVCard.Columns.Add(colDatum);
            olvVCard.Columns.Add(colVerwerkingsDatum);

            colType.AspectGetter = delegate(object row)
            {
                if (((tblBetaling)row).TypeBetaling == 0)
                {
                    return("Overig");
                }
                return("Overig");  // Voor het geval er nog meer komen :o)
            };

            colDatum.AspectGetter = delegate(object row)
            {
                return(((tblBetaling)row).AanmaakDatum.ToShortDateString());
            };

            colVerwerkingsDatum.AspectGetter = delegate(object row)
            {
                return(((tblBetaling)row).GewensteVerwerkingsDatum.ToShortDateString());
            };

            #endregion
            olvVCard.SecondarySortColumn = colDatum;
            olvVCard.SetObjects(reks);
        }