Kodi:
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Pushimet
{
public partial class Form1 : Form
{
int currDataRow = 0;
int currDataCol = 0;
int nrPuntorve = 0;
int perqPushim = 20;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
kontrollo_per_daten();
trego_data_grid();
}
private void trego_data_grid()
{
ArrayList aPunetoret = new ArrayList();
ArrayList aDatat = new ArrayList();
merri_emrat_punetoreve(aPunetoret, aDatat);
}
private void merri_emrat_punetoreve(ArrayList aPunetoret, ArrayList aDatat)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\Pushimet.mdb");
con.Open();
DataSet dbDataSet = new DataSet();
string strSQL = "SELECT * FROM Pushimet";
OleDbCommand cmd = new OleDbCommand(strSQL, con);
OleDbDataAdapter dbDataAdapter = new OleDbDataAdapter(cmd);
dbDataAdapter.Fill(dbDataSet, "Pushimet");
DataTable dataTable = new DataTable();
DataColumnCollection drc = dbDataSet.Tables["Pushimet"].Columns;
int i = 0;
foreach (DataColumn dc in drc)
{
if (dc.ColumnName != "ID")
{
dataTable.Columns.Add(dc.ColumnName, typeof(string));
i++;
}
}
nrPuntorve = i-1;
DataRowCollection dra = dbDataSet.Tables["Pushimet"].Rows;
foreach (DataRow dr in dra)
{
ArrayList atmp = new ArrayList();
for (int j = 0; j < i; j++)
{
if (dr[j + 1] != DBNull.Value)
{
atmp.Add(dr[j + 1]);
}
else
{
atmp.Add("");
}
}
DateTime dataT = Convert.ToDateTime(atmp[0]);
String dita = replace_dita(dataT.DayOfWeek.ToString());
switch (i)
{
case 1: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita }); break;
case 2:dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1] });break;
case 3:dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2] });break;
case 4:dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3] });break;
case 5:dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4] });break;
case 6: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5] }); break;
case 7: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6] }); break;
case 8: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7] }); break;
case 9: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8] }); break;
case 10: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9] }); break;
case 11: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10] }); break;
case 12: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11] }); break;
case 13: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12] }); break;
case 14: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12], atmp[13] }); break;
case 15: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12], atmp[13], atmp[14] }); break;
case 16: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12], atmp[13], atmp[14], atmp[15] }); break;
case 17: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12], atmp[13], atmp[14], atmp[15], atmp[16] }); break;
case 18: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12], atmp[13], atmp[14], atmp[15], atmp[16], atmp[17] }); break;
case 19: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12], atmp[13], atmp[14], atmp[15], atmp[16], atmp[17], atmp[18] }); break;
case 20: dataTable.Rows.Add(new object[] { String.Format("{0:dd.MM.yyyy}", dataT) + " - " + dita, atmp[1], atmp[2], atmp[3], atmp[4], atmp[5], atmp[6], atmp[7], atmp[8], atmp[9], atmp[10], atmp[11], atmp[12], atmp[13], atmp[14], atmp[15], atmp[16], atmp[17], atmp[18], atmp[19] }); break;
default: MessageBox.Show("Nuk bon me fut ma shum se 19 punetore!"); Application.Exit(); break;
}
}
dgwPushimet.DataSource = dataTable;
foreach (DataGridViewColumn column in dgwPushimet.Columns)
{
column.SortMode = DataGridViewColumnSortMode.NotSortable;
}
dgwPushimet.Columns[0].Frozen = true;
dgwPushimet.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
dgwPushimet.CurrentCell = dgwPushimet[currDataCol, currDataRow + 12];
dgwPushimet.CurrentCell.Selected = false;
dgwPushimet[currDataCol, currDataRow].Style.BackColor = Color.Green;
con.Close();
}
private string replace_dita(string d)
{
String dT = "";
switch (d)
{
case "Monday":dT = "E hene";break;
case "Tuesday":dT = "E marte";break;
case "Wednesday":dT = "E merkure";break;
case "Thursday":dT = "E enjte";break;
case "Friday":dT = "E premte";break;
case "Saturday":dT = "E shtunde";break;
case "Sunday": dT = "E diel";break;
}
return dT;
}
private string data_fundit_ne_db()
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\Pushimet.mdb");
con.Open();
string strSQL = "SELECT * FROM Pushimet";
OleDbCommand cmd = new OleDbCommand(strSQL, con);
OleDbDataReader dr = cmd.ExecuteReader();
String s = "";
while (dr.Read())
{
if (dr["Data"] != DBNull.Value)
s = dr["Data"].ToString();
}
con.Close();
return s;
}
private void futi_datat_ne_db(DateTime dDataFundit, int dFillimi, int dFundi)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\Pushimet.mdb");
con.Open();
for (int x = dFillimi; x < dFundi; x++)
{
DateTime d = dDataFundit.AddDays(x);
String sDita = d.Day.ToString();
if (sDita.Length == 1)
sDita = "0" + sDita;
String sMuaji = d.Month.ToString();
if (sMuaji.Length == 1)
sMuaji = "0" + sMuaji;
OleDbCommand cmd = new OleDbCommand("INSERT INTO Pushimet (Data) VALUES ('" + sDita + "." + sMuaji + "." + d.Year.ToString() + "')", con);
cmd.ExecuteNonQuery();
}
con.Close();
}
private void kontrollo_per_daten()
{
String sDataFundit = data_fundit_ne_db();
DateTime dDataFundit;
DateTime dDataFillimit = DateTime.Now;
if (sDataFundit != "")
{
dDataFundit = Convert.ToDateTime(sDataFundit.Replace('_', '.'));
TimeSpan tS = dDataFundit - dDataFillimit;
if (tS.Days < 366)
futi_datat_ne_db(dDataFundit, 1, 366 - tS.Days);
}
else
{
dDataFundit = DateTime.Now;
futi_datat_ne_db(dDataFundit, -50, 366);
}
}
private void dgwPushimet_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 1)
{
int colIndex = e.ColumnIndex;
int rowIndex = e.RowIndex;
if (!dgwPushimet.Rows[rowIndex].Cells[0].Value.ToString().Contains("E diel"))
{
if (!dgwPushimet.Rows[rowIndex].Cells[0].Value.ToString().Contains("E shtunde"))
{
int nrPuntPushime = 0;
for (int i = 1; i < (nrPuntorve + 1); i++)
{
if (dgwPushimet.Rows[rowIndex].Cells[i].Value.ToString() == "X")
{
nrPuntPushime++;
}
}
nrPuntPushime++;
int perqPunetoreve = (nrPuntPushime * 100) / nrPuntorve;
if (dgwPushimet.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() == "X")
{
String sMessagge = "Kete dite ke pushim!\n\nme respekt,\nDrejtor Komandant Gjenerall Hajredin Praqka!\n\nA po don me e fshi pushimin?";
DialogResult result = MessageBox.Show(this, sMessagge, "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result.Equals(DialogResult.Yes))
{
dgwPushimet.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "";
heke_pushimin_nga_db(dgwPushimet.Rows[e.RowIndex].Cells[0].Value.ToString(), dgwPushimet.Columns[e.ColumnIndex].Name);
dgwPushimet.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = false;
}
else if (result.Equals(DialogResult.No))
{
MessageBox.Show("Ani qa leshin pom prek!\n\nme respekt,\nDrejtor Komandant Gjenerall Hajredin Praqka!\n\nHajt tash shko puno naj sen te hajrit!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else if (perqPunetoreve > perqPushim)
{
MessageBox.Show("E padiskutueshme dhe nuk bon me marr pushim!\n\nSepse me ty " + perqPunetoreve + "% e punetoreve do te ishin ne pushime!\nNuk lejohen me shume se " + perqPushim + "% e punetoreve ne pushime!\n\nme respekt,\nDrejtor Komandant Gjenerall Hajredin Praqka!", "", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
else
{
String sMessagge = "Bon me marre pushim!\n\nme respekt,\nDrejtor Komandant Gjenerall Hajredin Praqka!\n\nA po don me marre pushim?";
DialogResult result = MessageBox.Show(this, sMessagge, "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result.Equals(DialogResult.Yes))
{
dgwPushimet.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "X";
fute_pushimin_ne_db(dgwPushimet.Rows[e.RowIndex].Cells[0].Value.ToString(), dgwPushimet.Columns[e.ColumnIndex].Name);
dgwPushimet.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = false;
}
else if (result.Equals(DialogResult.No))
{
MessageBox.Show("Ani qa leshin pom prek!\n\nme respekt,\nDrejtor Komandant Gjenerall Hajredin Praqka!\n\nHajt tash shko puno naj sen te hajrit!", "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
else
{
MessageBox.Show("Ski nevoj me marre pushim se \"E shtundja\" nuk eshte dite pune!\n\nme respekt,\nDrejtor Komandant Gjenerall Hajredin Praqka!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
else
{
MessageBox.Show("Ski nevoj me marre pushim se \"E diela\" nuk eshte dite e punes!\n\nme respekt,\nDrejtor Komandant Gjenerall Hajredin Praqka!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
private void fute_pushimin_ne_db(string sKolona, string sRreshti)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\Pushimet.mdb");
con.Open();
String[] sT = sKolona.Split(' ');
OleDbCommand cmd = new OleDbCommand("UPDATE Pushimet SET " + sRreshti + "='X' WHERE Data='" + sT[0] + "'", con);
cmd.ExecuteNonQuery();
con.Close();
}
private void heke_pushimin_nga_db(string sKolona, string sRreshti)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\Pushimet.mdb");
con.Open();
String[] sT = sKolona.Split(' ');
OleDbCommand cmd = new OleDbCommand("UPDATE Pushimet SET " + sRreshti + "='' WHERE Data='" + sT[0] + "'", con);
cmd.ExecuteNonQuery();
con.Close();
}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DateTime t = DateTime.Now;
String sD = String.Format(t.Day.ToString() + "." + t.Month.ToString() + "." + t.Year.ToString());
if (dgwPushimet.Columns[e.ColumnIndex].Name == "Data" && e.Value.ToString().Contains("E diel") == true
|| dgwPushimet.Columns[e.ColumnIndex].Name == "Data" && e.Value.ToString().Contains("E shtunde") == true)
{
dgwPushimet.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.LightGray;
}
else if ((dgwPushimet.Columns[e.ColumnIndex].Name != "Data") && e.Value.ToString().Contains("X") == true)
e.CellStyle.BackColor = Color.Tomato;
if (dgwPushimet.Columns[e.ColumnIndex].Name == "Data" && e.Value.ToString().Contains(sD) == true)
{
currDataCol = e.ColumnIndex;
currDataRow = e.RowIndex;
}
}
void dgwPushimet_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
dgwPushimet.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
}
}
}
Krijoni Kontakt