开发者

using Single class for different types of combobox

开发者 https://www.devze.com 2023-03-25 19:07 出处:网络
I have a combobox cbpaymenttype have values like(DD , CASH ,CARD) I have list viewNamed as listviewcashmembers

I have a combobox cbpaymenttype have values like(DD , CASH ,CARD)

    I have list view  Named as listviewcashmembers

 with items lastname(xxxx),
           firstname(xxx),
           postcode(xxx),
           ddrerefernce(xxxx),
          ddprovider(xxx)
          Monthlyamount(xxx)
          MembershipType(xxxx),
           Status (xxxx)
          Enddate (xxxx)
          paymenttype(DD , CASH , CARD)

I have done like this for generating pdf when we click on the print button and appropriate selection of Combo box(cbpaymenttype.Text)

code in main form is like this and this code will calling another class also

      private void btnPrint_Click(object sender, EventArgs e)
      {
                private const string DDPROVIDERMEMBERS_PATH = @"xxxxxxxxxx_{0}";

              if (cbpaymentty开发者_如何学编程pe.Text == "DD ")
              {
                string path = string.Format(DDMEMBERSREPORT_PATH, DateTime.Now.ToString("ddMMyyyyHHmm"));
                List<DDmembersmonthlyreport> ddmembersreportmembers = new List<DDmembersmonthlyreport>();
                if (lstviewcashmembers.Items.Count != 0)
                {
                    foreach (ListViewItem item in lstviewcashmembers.Items)
                    {
                        DDmembersmonthlyreport ddmembers = new DDmembersmonthlyreport();
                        ddmembers.member_Lastname = item.SubItems[1].Text;
                        ddmembers.member_Firstname = item.SubItems[2].Text;
                        ddmembers.Postcode = item.SubItems[3].Text;
                        ddmembers.ddReference = item.SubItems[4].Text;
                        ddmembers.ddprovider = item.SubItems[5].Text;
                        ddmembers.Monthlyamount = Convert.ToDecimal(item.SubItems[6].Text);
                        ddmembers.MembershipType = item.SubItems[7].Text;
                        ddmembers.Status = item.SubItems[8].Text;
                        ddmembers.Enddate = Convert.ToDateTime(item.SubItems[9].Text);
                        ddmembers.paymenttype = item.SubItems[10].Text;

                        ddmembersreportmembers.Add(ddmembers);

                    }

                    new PdfDDMembersMonthlyValueReport(ddmembersreportmembers, new Company(mf.gBaseUrl).GetSingleLineCompanyDetails(), path);
                    System.Diagnostics.Process.Start("explorer.exe", path);
                }


          if (cbpaymenttype.Text == "cash")
          {   

                   xxxxxxxxxx
              new PdfCashMembersMonthlyValueReport(ddmembersreportmembers, new                 Company(mf.gBaseUrl).GetSingleLineCompanyDetails(), path);
                    System.Diagnostics.Process.Start("explorer.exe", path);



         }
}

like this i have done for all options in combobox (cbpaymenttype)

I have created class like this

  public class DDmembersmonthlyreport
  {
    public string member_Lastname;
    public string member_Firstname;
    public string Postcode;
    public string ddReference;
    public string ddprovider;
    public decimal Monthlyamount;
    public string MembershipType;
    public string Status;
    public DateTime Enddate;
    public string paymenttype;

}
public class "PdfDDMembersMonthlyValueReport"
{
    private Document _document;
    private Table _table;
    private List<DDmembersmonthlyreport> _array;
    private string _address;

    public PdfDDMembersMonthlyValueReport(List<DDmembersmonthlyreport> array, string address, string exportpath)
    {
        _array = array;
        _address = address;

        Document ddreportdoc = CreateDocument();
        PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true);

        pdfRenderer.Document = ddreportdoc;

        if (!Directory.Exists(exportpath))
            Directory.CreateDirectory(exportpath);


        pdfRenderer.RenderDocument();

        pdfRenderer.Save(String.Format(@"{0}\DD members.pdf", exportpath));

    }
    public Document CreateDocument()
    {

        _document = new Document();
        _document.Info.Title = "DD MEMBERS REPORT";
        _document.Info.Author = "xxxxx";

        DefineStyles();
        CreatePage();
        FillContent();

        return _document;

    }

    private void DefineStyles()
    {
        Style style = _document.Styles["Normal"];
        style.Font.Name = "Verdana";

        style = _document.Styles[StyleNames.Header];
        style.ParagraphFormat.AddTabStop("8cm", TabAlignment.Right);

        style = _document.Styles[StyleNames.Footer];
        style.ParagraphFormat.AddTabStop("7cm", TabAlignment.Center);

        // Create a new style called Table based on style Normal
        style = _document.Styles.AddStyle("Table", "Normal");
        style.Font.Name = "Verdana";
        style.Font.Size = 6;

        // Create a new style called Reference based on style Normal
        style = _document.Styles.AddStyle("Reference", "Normal");
        style.ParagraphFormat.SpaceBefore = "6mm";
        style.ParagraphFormat.SpaceAfter = "6mm";
        style.ParagraphFormat.TabStops.AddTabStop("6cm", TabAlignment.Right);


    }

    private void CreatePage()
    {
        Section section = _document.AddSection();

        // Create footer
        Paragraph paragraph = section.Footers.Primary.AddParagraph();
        paragraph.AddText(_address);
        paragraph.Format.Font.Size = 8;
        paragraph.Format.Alignment = ParagraphAlignment.Center;



        paragraph = section.AddParagraph();
        paragraph.Format.SpaceBefore = "1.5cm";
        paragraph.Style = "Reference";
        paragraph.AddFormattedText("DD MEMBERS MONTHLY VALUE REPORT", TextFormat.Bold);
        paragraph.AddTab();
        paragraph.AddDateField("dd MMM yyyy");

        _table = section.AddTable();
        _table.Style = "Table";
        _table.Borders.Color = new Color(0, 0, 0);

        //Defining the columns

        Column column = _table.AddColumn("1.7cm"); //Lastname
        column.Format.Alignment = ParagraphAlignment.Center;

        column = _table.AddColumn("1.7cm"); // first name
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); // postcode
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); // DD ref
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); //DD provider Name
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); // Monthly Amount
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); // mship type
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); // status
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); // Expiry date
        column.Format.Alignment = ParagraphAlignment.Left;

        column = _table.AddColumn("1.7cm"); // payment type
        column.Format.Alignment = ParagraphAlignment.Right;


        // Create the header of the _table
        Row row = _table.AddRow();
        row.HeadingFormat = row.Format.Font.Bold = true;
        row.Format.Alignment = ParagraphAlignment.Center;

       row.Cells[0].AddParagraph("Last Name");
        row.Cells[0].Format.Alignment = ParagraphAlignment.Left;

        row.Cells[1].AddParagraph("First Name");
        row.Cells[1].Format.Alignment = ParagraphAlignment.Left;


        row.Cells[2].AddParagraph("Post Code");
        row.Cells[2].Format.Alignment = ParagraphAlignment.Left;

        row.Cells[3].AddParagraph("DD Reference");
        row.Cells[3].Format.Alignment = ParagraphAlignment.Left;

        row.Cells[4].AddParagraph("DDProvider Name");
        row.Cells[4].Format.Alignment = ParagraphAlignment.Left;

        row.Cells[5].AddParagraph("Monthly Amount");
        row.Cells[5].Format.Alignment = ParagraphAlignment.Left;


        row.Cells[6].AddParagraph("Memebrship Type");
        row.Cells[6].Format.Alignment = ParagraphAlignment.Left;


        row.Cells[7].AddParagraph("Status");
        row.Cells[7].Format.Alignment = ParagraphAlignment.Left;

        row.Cells[8].AddParagraph("ExpiryDate");
        row.Cells[8].Format.Alignment = ParagraphAlignment.Left;


        row.Cells[9].AddParagraph("payment type");
        row.Cells[9].Format.Alignment = ParagraphAlignment.Left;

    }

    private void FillContent()
    {
        foreach (var item in _array)
        {
            // Each item fills two rows
            Row row1 = _table.AddRow();
            row1.TopPadding = 1.0;
            Paragraph paragraph;

            row1.Cells[0].VerticalAlignment = VerticalAlignment.Center;
            row1.Cells[0].Format.Alignment = ParagraphAlignment.Left;
            row1.Cells[0].AddParagraph(item.member_Lastname);

            row1.Cells[1].Format.Alignment = ParagraphAlignment.Right;
            paragraph = row1.Cells[1].AddParagraph(item.member_Firstname);


            row1.Cells[2].Format.Alignment = ParagraphAlignment.Left;
            paragraph = row1.Cells[2].AddParagraph(item.Postcode);

            row1.Cells[3].Format.Alignment = ParagraphAlignment.Right;
            paragraph = row1.Cells[3].AddParagraph(item.ddReference);



            row1.Cells[4].Format.Alignment = ParagraphAlignment.Left;
            paragraph = row1.Cells[4].AddParagraph(item.ddprovider);

            row1.Cells[5].Format.Alignment = ParagraphAlignment.Right;
            paragraph = row1.Cells[5].AddParagraph(item.Monthlyamount.ToString("F2"));


            row1.Cells[6].Format.Alignment = ParagraphAlignment.Left;
            paragraph = row1.Cells[6].AddParagraph(item.MembershipType);

            row1.Cells[7].Format.Alignment = ParagraphAlignment.Right;
            paragraph = row1.Cells[7].AddParagraph(item.Status);

            row1.Cells[8].Format.Alignment = ParagraphAlignment.Left;
            paragraph = row1.Cells[8].AddParagraph(item.Enddate.ToString("dd MMM yyyy"));

            row1.Cells[9].Format.Alignment = ParagraphAlignment.Right;
            paragraph = row1.Cells[9].AddParagraph(item.paymenttype);

        }

    }
}

I have created this classes for diffrent combobox options(cbpaymenttype) for printing listviewitems for selection of combobxitems

My problem is i want to use the only single class for different types of options in "cbpaymenttype"

would any one pls give idea about this using single class for different type of options for cbpaymenttype

is it possible to pass the value of cbpaymenttype to this "ddmembers.paymenttype"

Many Thanks


With the information give, this is the best I can offer...

public enum PaymentType { Other, DD, Cash, Card }

public class DDmembersmonthlyreport
{
    ...
    public PaymentType paymenttype;
    // Edit
    public void UpdatePaymentType(string fromCombobox)
    {
        paymenttype = (PaymentType)Enum.Parse(typeof(PaymentType), fromCombobox);
    }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消