using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Data.OleDb;
using System.Windows.Forms;
namespace AdvertsingProfitControl
{
public partial class frmMain : Form
{
private AutoCompleteStringCollection dateSuggestions = new AutoCompleteStringCollection();
//private string connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=apcDatabase.accdb;Persist Security Info=False";
public frmMain()
{
InitializeComponent();
}
private void frmMain_Load(object sender, EventArgs e)
{
//connect to the database on form load | eh?
BuildUITables();
addRecordToolStripMenuItem.PerformClick();
}
///
/// This function re-orders the DataGridView to fit the
/// column scheme of the Advertising Profit Control sheet,
/// because SQL doesn't appear to return the columns in
/// the desired order.
///
///
private void ReorderDataGridView(DataGridView dataGrid)
{
foreach (DataGridViewColumn column in dataGrid.Columns)
{
if (!column.Name.Contains("ID"))
{
switch (column.Name.ToLower())
{
//---Begin AdItem Table check-------------------
case "aditem":
column.DisplayIndex = 0;
column.HeaderText = "Ad Item";
break;
//---End AdItem Table check---------------------
//---Begin Projected Sales Table check----------
case "prsold":
column.DisplayIndex = 1;
column.HeaderText = "Sold";
break;
case "prsaleprice":
column.DisplayIndex = 2;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Sale Price";
break;
case "prtotalsales":
column.DisplayIndex = 3;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Total Sales";
break;
case "prcost":
column.DisplayIndex = 4;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Cost";
break;
case "prprofitreturn":
column.DisplayIndex = 5;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Profit Return";
break;
case "prtotalprofitreturn":
column.DisplayIndex = 6;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Total Profit Return";
break;
//---End Projected Sales Table check------------
//---Begin Inventory Table check----------------
case "invbegininginventory":
column.DisplayIndex = 1;
column.HeaderText = "Beginning inventory";
break;
case "invrecieved":
column.DisplayIndex = 2;
column.HeaderText = "Received";
break;
case "invtotal":
column.DisplayIndex = 3;
column.HeaderText = "Total";
break;
case "invending":
column.DisplayIndex = 4;
column.HeaderText = "Ending Inventory";
break;
//---End Inventory Table check------------------
//---Begin Actual Sales Table check-------------
case "acsold":
column.DisplayIndex = 8;
column.HeaderText = "Sold";
break;
case "acsaleprice":
column.DisplayIndex = 9;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Sale Price";
break;
case "actotalsales":
column.DisplayIndex = 10;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Total Sales";
break;
case "accost":
column.DisplayIndex = 11;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Cost";
break;
case "acprofitreturn":
column.DisplayIndex = 12;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Profit Return";
break;
case "actotalprofitreturn":
column.DisplayIndex = 13;
column.DefaultCellStyle.Format = "c";
column.HeaderText = "Total Profit Return";
break;
//---End Actual Table check---------------------
default:
MessageBox.Show("This message box should never appear but if it does record this information:\n" + "Column Name: " + column.Name + "\nColumn Type: " + column.ValueType, "Unknown Column Detected", MessageBoxButtons.OK, MessageBoxIcon.Information);
break;
}
}
else
{
//The column was an ID field therefore we won't bother showing it to the user.
column.Visible = false;
}
}
}//End of ReorderDataGridView() function
private void BuildUITables()
{
RetrieveTables tableData = new RetrieveTables();
DataGridView finalWICTable = new DataGridView();
string[] comments;
projectedSalesMainDataGrid.DataSource = tableData.APCProjectionSaleTable();
ReorderDataGridView(projectedSalesMainDataGrid);
actualSalesInvMainDataGidView.DataSource = tableData.APCActualSalesTable();
ReorderDataGridView(actualSalesInvMainDataGidView);
finalWICTable.DataSource = tableData.WICTable();
comments = tableData.Comment();
foreach (string comment in comments)
{
commentsMainLabel.Text = comment + "\n";
}
}
private void addRecordToolStripMenuItem_Click(object sender, EventArgs e)
{
frmAddRecord recordForm = new frmAddRecord();
recordForm.ShowDialog();
BuildUITables();
}
}
}