tefos666
یک شنبه 14 تیر 1394, 14:59 عصر
باسلام
من در حال طراحی یک فرم سفارش خرید هستم
می خواهم کاربر بصورت unbound در گرید اطلاعات وارد کند
تا حدودی کارهایی کردم ولی متاسفانه مشکل زیاد دارم اگر میشه دوستان راهنمایی کنند
1- کلا میخوام وقتی کلید insert رو میزنم 1 سطر اضافه بشه و بره رو سلول اول اون سطر وایسته
2- تا زمانی که کل سلول های سطری که روش هستم خالی هست اجازه ایجاد سطر دوم رو با insert نده
3- بعد از پر کردن هر سلول و فشردن Enter به سلول بعدی بره و همینطور تا وقتی که به آخرین سلول رسید اگر همش پر بود یک سطر جدید ایجاد شه و بره رو اون سلول وایسته
4- با فشردن کلید Delete اون سطر حذف بشه
توضیح اینکه بعضی از سلول های من محاسباتی هستن یعنی مثلا تو سلول اول طرف کد مشتری رو میزنه و من تو سلول دوم از دیتابیس مشخصاتش رو میارم طبیعتا اینجا باید رو سلول سوم فوکوس شه
واقعا گیر کردم اگر کسی میتونه کمک کنه
کارایی رو که خودم صحیح خطا با سرچ تو اینترنت و ... کردم میزارم اگر کسی تونست راهنمایی کنه ، اگر نه هم که شاید تا اینجا که کار انجام دادم بدرد دوستان بخوره
private void GenrateDetailGrid()
{
//set grid for Handy Enter (unbound)
grdBuyDetail.BoundMode = BoundMode.Unbound;
grdBuyDetail.CellSelectionMode = CellSelectionMode.SingleCell;
//Add Row#
grdBuyDetail.RowHeaders = InheritableBoolean.True;
grdBuyDetail.RowHeaderContent = RowHeaderContent.RowIndex;
//Create Root Table for unbounded Mode
GridEXTable gridTable = new GridEXTable();
grdBuyDetail.RootTable = gridTable;
//create Total Row
grdBuyDetail.TotalRow = Janus.Windows.GridEX.InheritableBoolean.True;
grdBuyDetail.TotalRowFormatStyle.Appearance = Janus.Windows.GridEX.Appearance.Flat;
grdBuyDetail.TotalRowFormatStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)) )), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
grdBuyDetail.TotalRowFormatStyle.FontBold = Janus.Windows.GridEX.TriState.True;
grdBuyDetail.TotalRowFormatStyle.ForeColor = System.Drawing.Color.Black;
grdBuyDetail.TotalRowFormatStyle.LineAlignment = Janus.Windows.GridEX.TextAlignment.Center;
grdBuyDetail.TotalRowFormatStyle.TextAlignment = Janus.Windows.GridEX.TextAlignment.Center;
grdBuyDetail.TotalRowPosition = Janus.Windows.GridEX.TotalRowPosition.BottomFixed;
//Update Grid per Row
grdBuyDetail.UpdateMode = UpdateMode.RowUpdate;
//position of new row
grdBuyDetail.NewRowEnterKeyBehavior = NewRowEnterKeyBehavior.AddRowAndMoveToAddedRow;
grdBuyDetail.NewRowPosition = NewRowPosition.BottomRow;
//Select row as single
grdBuyDetail.SelectionMode = Janus.Windows.GridEX.SelectionMode.SingleSelection ;
//allow add and delete
//grdBuyDetail.AllowAddNew = InheritableBoolean.True;
//grdBuyDetail.AllowDelete = InheritableBoolean.True;
GridEXColumn column;
column = gridTable.Columns.Add("CustomerNo", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "کد فروشنده";
column.Key = "CustomerNo";
column = gridTable.Columns.Add("CustomerDesc", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "شرح فروشنده";
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.Key = "CustomerDesc";
column = gridTable.Columns.Add("SaleNo", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "شماره برگه خرید";
column.Key = "SaleNo";
column = gridTable.Columns.Add("TransferType", ColumnType.Text, EditType.DropDownList);
column.DataTypeCode = TypeCode.String;
column.Caption = "نوع حمل";
column.Key = "TransferType";
#region [Fill typeid 18-19]
string strsql = "select [TypeId],[TypeDesc] from Types where TypeID in (18,19)";
OleDbDataReader dr;
DataTable dt = new DataTable();
using (OleDbConnection cn = new OleDbConnection(mydb.CstrّOSM))
{
cn.Open();
using (OleDbCommand cmd = new OleDbCommand(strsql, cn))
{
using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
{
da.Fill(dt);
column.HasValueList = true;
GridEXValueListItemCollection valuelist = column.ValueList;
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
valuelist.Add(new GridEXValueListItem(dr["TypeId"].ToString(), dr["TypeDesc"].ToString()));
}
dr.Close();
column.EditValueList = valuelist;
}
}
}
#endregion
column = gridTable.Columns.Add("OrderType", ColumnType.Text, EditType.DropDownList);
column.DataTypeCode = TypeCode.String;
column.Caption = "روش خرید";
column.Key = "OrderType";
#region [Fill typeid 1-2]
string strsql2 = "select [TypeId],[TypeDesc] from Types where TypeID in (1,2)";
OleDbDataReader dr2;
DataTable dt2 = new DataTable();
using (OleDbConnection cn2 = new OleDbConnection(mydb.CstrّOSM))
{
cn2.Open();
using (OleDbCommand cmd2 = new OleDbCommand(strsql2, cn2))
{
using (OleDbDataAdapter da2 = new OleDbDataAdapter(cmd2))
{
da2.Fill(dt);
column.HasValueList = true;
GridEXValueListItemCollection valuelist = column.ValueList;
dr2 = cmd2.ExecuteReader();
if (dr2.HasRows)
{
while (dr2.Read())
valuelist.Add(new GridEXValueListItem(dr2["TypeId"].ToString(), dr2["TypeDesc"].ToString()));
}
dr2.Close();
column.EditValueList = valuelist;
}
}
}
#endregion
column = gridTable.Columns.Add("Count", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "تعداد";
column.Key = "Count";
column = gridTable.Columns.Add("Weight", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن باظرف";
column.Key = "Weight";
column = gridTable.Columns.Add("WeightWithoutDish", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.Caption = "وزن بدون ظرف";
column.Key = "WeightWithoutDish";
column = gridTable.Columns.Add("Moisture", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "درصد افت رطوبت";
column.Key = "Moisture";
column = gridTable.Columns.Add("MoistureWeight", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن افت رطوبت";
column.Key = "MoistureWeight";
column = gridTable.Columns.Add("Material", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "درصد افت مواد";
column.Key = "Material";
column = gridTable.Columns.Add("MaterialWeight", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن افت مواد";
column.Key = "MaterialWeight";
column = gridTable.Columns.Add("NetWeight", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن خالص";
column.Key = "NetWeight";
column = gridTable.Columns.Add("CalculatedAmount", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "مبلغ قابل محاسبه";
column.Key = "CalculatedAmount";
//column = gridTable.Columns.Add("ID", ColumnType.Text);
//column.DataTypeCode = TypeCode.Double;
//column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
//column.AggregateFunction = AggregateFunction.Sum;
//column.Caption = "ID";
//column.Key = "ID";
//column.Visible = false;
grdBuyDetail.RetrieveStructure();
//وسط چین کردن متن ها
for (int i = 0; i < grdBuyDetail.RootTable.Columns.Count; i++)
{
grdBuyDetail.RootTable.Columns[i].HeaderAlignment = Janus.Windows.GridEX.TextAlignment.Center;
}
//حذف کلیه سطرهای خالی ایجاد شده
GridEXRow[] objGridRows = grdBuyDetail.GetDataRows();
if (objGridRows != null && objGridRows.Count() > 0)
{
foreach (GridEXRow objRow in objGridRows)
{
objRow.Delete();
}
}
grdBuyDetail.ColumnAutoResize = false;
grdBuyDetail.ColumnAutoSizeMode = ColumnAutoSizeMode.AllCellsAndHeader;
grdBuyDetail.Refetch();
//ساخت رنگ دلخواه برای سطرها
//متغیرها تعریف میشوندو در خطوط زیر تعریف میشوند و در ایونت لودینگ رو گرید استفاده میشوند
fBlue = new GridEXFormatStyle() { BackgroundGradientMode = BackgroundGradientMode.Solid, BackColor = Color.LightSkyBlue };
fPink = new GridEXFormatStyle() { BackgroundGradientMode = BackgroundGradientMode.Solid, BackColor = Color.LightPink };
fwhite = new GridEXFormatStyle() { BackgroundGradientMode = BackgroundGradientMode.Solid, BackColor = Color.AliceBlue };
}
private void grdBuyDetail_KeyDown(object sender, KeyEventArgs e)
{
#region [Press insert Key]
bool AllCellsFilled = false;
GridEXRow myrow;
if (e.KeyCode == Keys.Insert)
{
// this.grdBuyDetail.AllowAddNew = InheritableBoolean.True;
if (grdBuyDetail.Row == -3)
{
myrow = this.grdBuyDetail.AddItem();
//grdBuyDetail.GetRow(myrow).Cells[0]
if (grdBuyDetail.RowCount > 0)
{
grdBuyDetail.Row = grdBuyDetail.RowCount - 1;
}
}
else
{
foreach (var gridExRow in grdBuyDetail.GetRows())
{
for (int i = 1; i < gridExRow.Cells.Count; i++)
{
if (gridExRow.Cells[i].Value != "" && gridExRow.Cells[i].Value != null)
{
AllCellsFilled = true;
}
else
{
AllCellsFilled = false;
break;
}
}
}
}
if (AllCellsFilled == true)
{
myrow = this.grdBuyDetail.AddItem();
if (grdBuyDetail.RowCount > 0)
{
grdBuyDetail.Row = grdBuyDetail.RowCount - 1;
}
}
else
{
OSM_frmMessage.Show("لطفا تمامی ستونهای اطلاعاتی را تکمیل نمایید", MSGImageType.imgInfo);
return;
}
}
#endregion
#region [Press Enter Key]
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress = true;
SendKeys.Send("{TAB}");
int iRow = grdBuyDetail.CurrentRow.RowIndex;
int iCol = grdBuyDetail.CurrentColumn.Index;
// if not empty
switch (grdBuyDetail.CurrentColumn.Key)
{
case "CustomerNo":
FetchPersonName(Convert.ToString(grdBuyDetail.GetV alue("CustomerNo")));
break;
case "CustomerDesc":
break;
case "SaleNo":
break;
case "TransferType":
break;
case "OrderType":
break;
case "Count":
break;
case "Weight":
break;
case "WeightWithoutDish":
break;
case "Moisture":
break;
case "MoistureWeight":
break;
case "Material":
break;
case "MaterialWeight":
break;
case "TotalWeightLoss":
break;
case "NetWeight":
break;
case "CalculatedAmount":
break;
default:
break;
}
//GridEXRow item = grdBuyDetail.GetRow();
}
#endregion
#region [Press F3]
if (e.KeyCode == Keys.F3)
{
switch (grdBuyDetail.CurrentColumn.Key)
{
case "CustomerNo":
OSM_frmFindPersons objFrm = new OSM_frmFindPersons();
objFrm.ShowDialog();
if (ClassUtility.OSM_fillBack == "true")
{
grdBuyDetail.SetValue("CustomerNo", ClassUtility.OSM_CustomerLoopBack);
grdBuyDetail.SetValue("CustomerDesc", ClassUtility.OSM_CustomerLoopBackNF);
}
break;
case "SaleNo":
OSM_NumericKeypad objFrmKeypad = new OSM_NumericKeypad();
objFrmKeypad.ShowDialog();
if (ClassUtility.returnFromKeypad != "nothing")
{
bool fnd = false;
for (int i = 1; i < grdBuyDetail.RowCount; i++)
{
if (grdBuyDetail.GetRow(i - 1).Cells[2].Text.ToString() == ClassUtility.returnFromKeypad)
{
fnd = true;
OSM_frmMessage.Show("این شماره برگه خرید در سطرهای قبلی استفاده شده است", MSGImageType.imgInfo);
grdBuyDetail.CurrentRow.Cells[2].Text = "";
break;
}
else
{
continue;
}
}
if (fnd == false)
{
grdBuyDetail.SetValue("SaleNo", ClassUtility.returnFromKeypad);
}
}
break;
case "MaterialWeight":
OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد", MSGImageType.imgInfo);
break;
//case "TotalWeightLoss":
// OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد",MSGImageType.imgInfo);
// break;
case "NetWeight":
OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد", MSGImageType.imgInfo);
break;
case "CalculatedAmount":
OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد", MSGImageType.imgInfo);
break;
default:
break;
}
}
#endregion
#region [Press Del key]
if (e.KeyCode == Keys.Delete)
{
GridEXSelectedItemCollection grdCollectionRow = grdBuyDetail.SelectedItems;
GridEXRow row=null;
foreach (GridEXSelectedItem selectedItem in grdCollectionRow)
{
if (selectedItem!=null)
{
string mystrID="";
row = selectedItem.GetRow();
if (!string.IsNullOrEmpty(row.Cells[2].Value.ToString()))
mystrID = row.Cells[2].Value.ToString();
//DeleteRecords(mystrID);
}else
{
GridEXRow item = grdBuyDetail.GetRow();
if (item != null && item.RowType == RowType.Record)
{
item.Delete();
}
else
{
OSM_frmMessage.Show("هیچ موردی برای حذف وچود ندارد", MSGImageType.imgInfo);
}
}
}
}
#endregion
}
من در حال طراحی یک فرم سفارش خرید هستم
می خواهم کاربر بصورت unbound در گرید اطلاعات وارد کند
تا حدودی کارهایی کردم ولی متاسفانه مشکل زیاد دارم اگر میشه دوستان راهنمایی کنند
1- کلا میخوام وقتی کلید insert رو میزنم 1 سطر اضافه بشه و بره رو سلول اول اون سطر وایسته
2- تا زمانی که کل سلول های سطری که روش هستم خالی هست اجازه ایجاد سطر دوم رو با insert نده
3- بعد از پر کردن هر سلول و فشردن Enter به سلول بعدی بره و همینطور تا وقتی که به آخرین سلول رسید اگر همش پر بود یک سطر جدید ایجاد شه و بره رو اون سلول وایسته
4- با فشردن کلید Delete اون سطر حذف بشه
توضیح اینکه بعضی از سلول های من محاسباتی هستن یعنی مثلا تو سلول اول طرف کد مشتری رو میزنه و من تو سلول دوم از دیتابیس مشخصاتش رو میارم طبیعتا اینجا باید رو سلول سوم فوکوس شه
واقعا گیر کردم اگر کسی میتونه کمک کنه
کارایی رو که خودم صحیح خطا با سرچ تو اینترنت و ... کردم میزارم اگر کسی تونست راهنمایی کنه ، اگر نه هم که شاید تا اینجا که کار انجام دادم بدرد دوستان بخوره
private void GenrateDetailGrid()
{
//set grid for Handy Enter (unbound)
grdBuyDetail.BoundMode = BoundMode.Unbound;
grdBuyDetail.CellSelectionMode = CellSelectionMode.SingleCell;
//Add Row#
grdBuyDetail.RowHeaders = InheritableBoolean.True;
grdBuyDetail.RowHeaderContent = RowHeaderContent.RowIndex;
//Create Root Table for unbounded Mode
GridEXTable gridTable = new GridEXTable();
grdBuyDetail.RootTable = gridTable;
//create Total Row
grdBuyDetail.TotalRow = Janus.Windows.GridEX.InheritableBoolean.True;
grdBuyDetail.TotalRowFormatStyle.Appearance = Janus.Windows.GridEX.Appearance.Flat;
grdBuyDetail.TotalRowFormatStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)) )), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
grdBuyDetail.TotalRowFormatStyle.FontBold = Janus.Windows.GridEX.TriState.True;
grdBuyDetail.TotalRowFormatStyle.ForeColor = System.Drawing.Color.Black;
grdBuyDetail.TotalRowFormatStyle.LineAlignment = Janus.Windows.GridEX.TextAlignment.Center;
grdBuyDetail.TotalRowFormatStyle.TextAlignment = Janus.Windows.GridEX.TextAlignment.Center;
grdBuyDetail.TotalRowPosition = Janus.Windows.GridEX.TotalRowPosition.BottomFixed;
//Update Grid per Row
grdBuyDetail.UpdateMode = UpdateMode.RowUpdate;
//position of new row
grdBuyDetail.NewRowEnterKeyBehavior = NewRowEnterKeyBehavior.AddRowAndMoveToAddedRow;
grdBuyDetail.NewRowPosition = NewRowPosition.BottomRow;
//Select row as single
grdBuyDetail.SelectionMode = Janus.Windows.GridEX.SelectionMode.SingleSelection ;
//allow add and delete
//grdBuyDetail.AllowAddNew = InheritableBoolean.True;
//grdBuyDetail.AllowDelete = InheritableBoolean.True;
GridEXColumn column;
column = gridTable.Columns.Add("CustomerNo", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "کد فروشنده";
column.Key = "CustomerNo";
column = gridTable.Columns.Add("CustomerDesc", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "شرح فروشنده";
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.Key = "CustomerDesc";
column = gridTable.Columns.Add("SaleNo", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "شماره برگه خرید";
column.Key = "SaleNo";
column = gridTable.Columns.Add("TransferType", ColumnType.Text, EditType.DropDownList);
column.DataTypeCode = TypeCode.String;
column.Caption = "نوع حمل";
column.Key = "TransferType";
#region [Fill typeid 18-19]
string strsql = "select [TypeId],[TypeDesc] from Types where TypeID in (18,19)";
OleDbDataReader dr;
DataTable dt = new DataTable();
using (OleDbConnection cn = new OleDbConnection(mydb.CstrّOSM))
{
cn.Open();
using (OleDbCommand cmd = new OleDbCommand(strsql, cn))
{
using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
{
da.Fill(dt);
column.HasValueList = true;
GridEXValueListItemCollection valuelist = column.ValueList;
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
valuelist.Add(new GridEXValueListItem(dr["TypeId"].ToString(), dr["TypeDesc"].ToString()));
}
dr.Close();
column.EditValueList = valuelist;
}
}
}
#endregion
column = gridTable.Columns.Add("OrderType", ColumnType.Text, EditType.DropDownList);
column.DataTypeCode = TypeCode.String;
column.Caption = "روش خرید";
column.Key = "OrderType";
#region [Fill typeid 1-2]
string strsql2 = "select [TypeId],[TypeDesc] from Types where TypeID in (1,2)";
OleDbDataReader dr2;
DataTable dt2 = new DataTable();
using (OleDbConnection cn2 = new OleDbConnection(mydb.CstrّOSM))
{
cn2.Open();
using (OleDbCommand cmd2 = new OleDbCommand(strsql2, cn2))
{
using (OleDbDataAdapter da2 = new OleDbDataAdapter(cmd2))
{
da2.Fill(dt);
column.HasValueList = true;
GridEXValueListItemCollection valuelist = column.ValueList;
dr2 = cmd2.ExecuteReader();
if (dr2.HasRows)
{
while (dr2.Read())
valuelist.Add(new GridEXValueListItem(dr2["TypeId"].ToString(), dr2["TypeDesc"].ToString()));
}
dr2.Close();
column.EditValueList = valuelist;
}
}
}
#endregion
column = gridTable.Columns.Add("Count", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "تعداد";
column.Key = "Count";
column = gridTable.Columns.Add("Weight", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن باظرف";
column.Key = "Weight";
column = gridTable.Columns.Add("WeightWithoutDish", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.Caption = "وزن بدون ظرف";
column.Key = "WeightWithoutDish";
column = gridTable.Columns.Add("Moisture", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "درصد افت رطوبت";
column.Key = "Moisture";
column = gridTable.Columns.Add("MoistureWeight", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن افت رطوبت";
column.Key = "MoistureWeight";
column = gridTable.Columns.Add("Material", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.Caption = "درصد افت مواد";
column.Key = "Material";
column = gridTable.Columns.Add("MaterialWeight", ColumnType.Text);
column.DataTypeCode = TypeCode.String;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن افت مواد";
column.Key = "MaterialWeight";
column = gridTable.Columns.Add("NetWeight", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "وزن خالص";
column.Key = "NetWeight";
column = gridTable.Columns.Add("CalculatedAmount", ColumnType.Text);
column.DataTypeCode = TypeCode.Double;
column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
column.AggregateFunction = AggregateFunction.Sum;
column.Caption = "مبلغ قابل محاسبه";
column.Key = "CalculatedAmount";
//column = gridTable.Columns.Add("ID", ColumnType.Text);
//column.DataTypeCode = TypeCode.Double;
//column.EditType = Janus.Windows.GridEX.EditType.NoEdit;
//column.AggregateFunction = AggregateFunction.Sum;
//column.Caption = "ID";
//column.Key = "ID";
//column.Visible = false;
grdBuyDetail.RetrieveStructure();
//وسط چین کردن متن ها
for (int i = 0; i < grdBuyDetail.RootTable.Columns.Count; i++)
{
grdBuyDetail.RootTable.Columns[i].HeaderAlignment = Janus.Windows.GridEX.TextAlignment.Center;
}
//حذف کلیه سطرهای خالی ایجاد شده
GridEXRow[] objGridRows = grdBuyDetail.GetDataRows();
if (objGridRows != null && objGridRows.Count() > 0)
{
foreach (GridEXRow objRow in objGridRows)
{
objRow.Delete();
}
}
grdBuyDetail.ColumnAutoResize = false;
grdBuyDetail.ColumnAutoSizeMode = ColumnAutoSizeMode.AllCellsAndHeader;
grdBuyDetail.Refetch();
//ساخت رنگ دلخواه برای سطرها
//متغیرها تعریف میشوندو در خطوط زیر تعریف میشوند و در ایونت لودینگ رو گرید استفاده میشوند
fBlue = new GridEXFormatStyle() { BackgroundGradientMode = BackgroundGradientMode.Solid, BackColor = Color.LightSkyBlue };
fPink = new GridEXFormatStyle() { BackgroundGradientMode = BackgroundGradientMode.Solid, BackColor = Color.LightPink };
fwhite = new GridEXFormatStyle() { BackgroundGradientMode = BackgroundGradientMode.Solid, BackColor = Color.AliceBlue };
}
private void grdBuyDetail_KeyDown(object sender, KeyEventArgs e)
{
#region [Press insert Key]
bool AllCellsFilled = false;
GridEXRow myrow;
if (e.KeyCode == Keys.Insert)
{
// this.grdBuyDetail.AllowAddNew = InheritableBoolean.True;
if (grdBuyDetail.Row == -3)
{
myrow = this.grdBuyDetail.AddItem();
//grdBuyDetail.GetRow(myrow).Cells[0]
if (grdBuyDetail.RowCount > 0)
{
grdBuyDetail.Row = grdBuyDetail.RowCount - 1;
}
}
else
{
foreach (var gridExRow in grdBuyDetail.GetRows())
{
for (int i = 1; i < gridExRow.Cells.Count; i++)
{
if (gridExRow.Cells[i].Value != "" && gridExRow.Cells[i].Value != null)
{
AllCellsFilled = true;
}
else
{
AllCellsFilled = false;
break;
}
}
}
}
if (AllCellsFilled == true)
{
myrow = this.grdBuyDetail.AddItem();
if (grdBuyDetail.RowCount > 0)
{
grdBuyDetail.Row = grdBuyDetail.RowCount - 1;
}
}
else
{
OSM_frmMessage.Show("لطفا تمامی ستونهای اطلاعاتی را تکمیل نمایید", MSGImageType.imgInfo);
return;
}
}
#endregion
#region [Press Enter Key]
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress = true;
SendKeys.Send("{TAB}");
int iRow = grdBuyDetail.CurrentRow.RowIndex;
int iCol = grdBuyDetail.CurrentColumn.Index;
// if not empty
switch (grdBuyDetail.CurrentColumn.Key)
{
case "CustomerNo":
FetchPersonName(Convert.ToString(grdBuyDetail.GetV alue("CustomerNo")));
break;
case "CustomerDesc":
break;
case "SaleNo":
break;
case "TransferType":
break;
case "OrderType":
break;
case "Count":
break;
case "Weight":
break;
case "WeightWithoutDish":
break;
case "Moisture":
break;
case "MoistureWeight":
break;
case "Material":
break;
case "MaterialWeight":
break;
case "TotalWeightLoss":
break;
case "NetWeight":
break;
case "CalculatedAmount":
break;
default:
break;
}
//GridEXRow item = grdBuyDetail.GetRow();
}
#endregion
#region [Press F3]
if (e.KeyCode == Keys.F3)
{
switch (grdBuyDetail.CurrentColumn.Key)
{
case "CustomerNo":
OSM_frmFindPersons objFrm = new OSM_frmFindPersons();
objFrm.ShowDialog();
if (ClassUtility.OSM_fillBack == "true")
{
grdBuyDetail.SetValue("CustomerNo", ClassUtility.OSM_CustomerLoopBack);
grdBuyDetail.SetValue("CustomerDesc", ClassUtility.OSM_CustomerLoopBackNF);
}
break;
case "SaleNo":
OSM_NumericKeypad objFrmKeypad = new OSM_NumericKeypad();
objFrmKeypad.ShowDialog();
if (ClassUtility.returnFromKeypad != "nothing")
{
bool fnd = false;
for (int i = 1; i < grdBuyDetail.RowCount; i++)
{
if (grdBuyDetail.GetRow(i - 1).Cells[2].Text.ToString() == ClassUtility.returnFromKeypad)
{
fnd = true;
OSM_frmMessage.Show("این شماره برگه خرید در سطرهای قبلی استفاده شده است", MSGImageType.imgInfo);
grdBuyDetail.CurrentRow.Cells[2].Text = "";
break;
}
else
{
continue;
}
}
if (fnd == false)
{
grdBuyDetail.SetValue("SaleNo", ClassUtility.returnFromKeypad);
}
}
break;
case "MaterialWeight":
OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد", MSGImageType.imgInfo);
break;
//case "TotalWeightLoss":
// OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد",MSGImageType.imgInfo);
// break;
case "NetWeight":
OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد", MSGImageType.imgInfo);
break;
case "CalculatedAmount":
OSM_frmMessage.Show("امکان ویرایش این ستون وجود ندارد", MSGImageType.imgInfo);
break;
default:
break;
}
}
#endregion
#region [Press Del key]
if (e.KeyCode == Keys.Delete)
{
GridEXSelectedItemCollection grdCollectionRow = grdBuyDetail.SelectedItems;
GridEXRow row=null;
foreach (GridEXSelectedItem selectedItem in grdCollectionRow)
{
if (selectedItem!=null)
{
string mystrID="";
row = selectedItem.GetRow();
if (!string.IsNullOrEmpty(row.Cells[2].Value.ToString()))
mystrID = row.Cells[2].Value.ToString();
//DeleteRecords(mystrID);
}else
{
GridEXRow item = grdBuyDetail.GetRow();
if (item != null && item.RowType == RowType.Record)
{
item.Delete();
}
else
{
OSM_frmMessage.Show("هیچ موردی برای حذف وچود ندارد", MSGImageType.imgInfo);
}
}
}
}
#endregion
}