PDA

View Full Version : حرفه ای: راهنمایی برای ویرایش اطلاعات فاکتور از نوع خاص



mahdad sepah
دوشنبه 20 آذر 1391, 14:59 عصر
سلام دوستان من به یک مشکل اساسی بر خوردم
من در حال نوشتن یک نرم افزار مدیریت فاکتور هستم،برای ثبت فاکتور ها ابتدا هر قلم جنس را به صورت موقت در یک گرید نمایش میدهد پس از اطمینان از اجناس وارد شده با استفاده از foreach اطلاعات گرید را در دیتا بیس ذخیره میکنم تا اینجا مشکلی نیست ولی برای ویرایش فاکتور ها وقتی میخوام اطلاعات یک فاکتور را در همون گرید نمایش بدهم تا تغییرات را انجام دهم به مشکل میخورم چون در گرید coloumn اد کردم دیگه از دیتابیس نمیتونه بخونه
ممنون میشم کمکم کنید چون واقعا همه چی گیره همین ویرایش فاکتوره
ممنون

mahdad sepah
دوشنبه 20 آذر 1391, 17:08 عصر
کسی نیست دوستان؟؟؟؟؟؟؟؟؟؟؟؟

Arash_janusV3
دوشنبه 20 آذر 1391, 17:59 عصر
درود بر شما
چرا به گرید ستون اضافه می کنید؟
خوب اول به دیتابیس بایند بشید بعد ستون اضافه کنید

مهدی هادیان2
دوشنبه 20 آذر 1391, 18:15 عصر
بسم الله الرحمن الرحیم
با سلام
بنده به شکل زیر دیتا گرید رو ست کردم.
dataGridView.ColumnHeadersDefaultCellStyle.Alignme nt =
DataGridViewContentAlignment.MiddleCenter;
dataGridView.Columns[0].HeaderText = "شماره فاکتور";
//dataGridView.Columns[0].Visible = false;

dataGridView.Columns[1].HeaderText = "تاریخ";
dataGridView.Columns[1].Width = 120;


dataGridView.Columns[2].HeaderText = "کد مشتری";
dataGridView.Columns[2].Width = 120;

dataGridView.Columns[3].HeaderText = "نام مشتری";
dataGridView.Columns[3].Width = 120;


dataGridView.Columns[4].HeaderText = "کد پرسنل";
dataGridView.Columns[4].Width = 120;


dataGridView.Columns[5].HeaderText = "نام پرسنل";
dataGridView.Columns[5].Width = 120;


dataGridView.Columns[6].HeaderText = "توضیحات";
dataGridView.Columns[6].Width = 200;

dataGridView.Columns[7].Name = "StoreCode";
dataGridView.Columns[7].Visible = false;



dataGridView.EditMode = DataGridViewEditMode.EditProgrammatically;
dataGridView.AllowUserToAddRows = false;
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView.MultiSelect = false;
dataGridView.AllowUserToDeleteRows = false;
موفق باشید.

mahdad sepah
دوشنبه 20 آذر 1391, 18:33 عصر
درود بر شما
چرا به گرید ستون اضافه می کنید؟
خوب اول به دیتابیس بایند بشید بعد ستون اضافه کنید
چون باید فاکتور را نمایش بدم تا کاربر از همه چی مطمئن باشه بعد وارد دیتا بشه ولی حالا میخوام دیتا بهش بایند کنم به مشکل میخورم

mahdad sepah
دوشنبه 20 آذر 1391, 18:34 عصر
بسم الله الرحمن الرحیم
با سلام
بنده به شکل زیر دیتا گرید رو ست کردم.
dataGridView.ColumnHeadersDefaultCellStyle.Alignme nt =
DataGridViewContentAlignment.MiddleCenter;
dataGridView.Columns[0].HeaderText = "شماره فاکتور";
//dataGridView.Columns[0].Visible = false;

dataGridView.Columns[1].HeaderText = "تاریخ";
dataGridView.Columns[1].Width = 120;


dataGridView.Columns[2].HeaderText = "کد مشتری";
dataGridView.Columns[2].Width = 120;

dataGridView.Columns[3].HeaderText = "نام مشتری";
dataGridView.Columns[3].Width = 120;


dataGridView.Columns[4].HeaderText = "کد پرسنل";
dataGridView.Columns[4].Width = 120;


dataGridView.Columns[5].HeaderText = "نام پرسنل";
dataGridView.Columns[5].Width = 120;


dataGridView.Columns[6].HeaderText = "توضیحات";
dataGridView.Columns[6].Width = 200;

dataGridView.Columns[7].Name = "StoreCode";
dataGridView.Columns[7].Visible = false;



dataGridView.EditMode = DataGridViewEditMode.EditProgrammatically;
dataGridView.AllowUserToAddRows = false;
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView.MultiSelect = false;
dataGridView.AllowUserToDeleteRows = false;
موفق باشید.
دوست عزیز من مشکلم با ست کردن نیست مشکلم با بایند کردن به گریدی است که براش coloumnتعریف شده است

Arash_janusV3
دوشنبه 20 آذر 1391, 18:37 عصر
بهترین روش اینه که به همون Data که به گرید بایند می شه را ستون اضافه کنید و داده هاش را پر کنید
و بعد به گرید بایند کنید

mahdad sepah
دوشنبه 20 آذر 1391, 18:43 عصر
بهترین روش اینه که به همون Data که به گرید بایند می شه را ستون اضافه کنید و داده هاش را پر کنید
و بعد به گرید بایند کنید
خب منم سوالم اینه که چه جوری این کارو کنم؟؟؟؟؟

Arash_janusV3
دوشنبه 20 آذر 1391, 18:47 عصر
بستگی به جداولتون داره
اگر در هر جدول شناسه ها اون را ذخیره می کنید
می بایست در یک حلقه از اون Data مقدارها را بخونید بریزی در یک data اصلی و همین را بایند کنید

roolinjax
دوشنبه 20 آذر 1391, 18:51 عصر
یه راه هم استفاده از دو تاگریده ، که یکیش برای همون ستون داره باشه و دیگری بدون ستون و آماده برای بایند شدن.
هر وقت نیاز به هرکدوم داشتین اونو نمایش بدین و دیگری رو مخفی کنید.
غیراصولیه اما کار راه بندازه !!!!!
ضمنا این پست فقط درحد یه پیشنهاد بوده و فاقد بار فنی می باشد !!!!!

mahdad sepah
دوشنبه 20 آذر 1391, 18:56 عصر
بستگی به جداولتون داره
اگر در هر جدول شناسه ها اون را ذخیره می کنید
می بایست در یک حلقه از اون Data مقدارها را بخونید بریزی در یک data اصلی و همین را بایند کنید
آره شناسه ذخیره میشه
ببینید اطلاعات وارد گرید میشن ولی میره بعد از colomn هایی که هستش addمیشه یعنی عملا گرید واسه ویرایش از کار میفته
میگم راهی هست اطلاعات از دیتابیس مستقیم بایند نشه و مثه coloumn هایی که واسه ثبت کالا ازش استفاده میکنم کار کنه؟

Arash_janusV3
دوشنبه 20 آذر 1391, 19:23 عصر
من هم همین راه را پیشنهاد کردم
شما ابتدا جداول را select میکنید و هر کدام در data table خودش وجود داره
فرض می کنیم یکی اصلی و دیگری فرعی
حالا به صورت کد نویسی به جدول اصلی ستون اضافه کنید و در یک حلقه اطلاعات را از جدول فرعی بخونید بریزید داخل جذول فرعی
بعد از اتمام حلقه ستونهایی همنام با ستونهای اضافه شده در جدول اصلی به گرید اضافه کنید
و سپس بایند کنید

mahdad sepah
دوشنبه 20 آذر 1391, 23:17 عصر
دوستان کسی راه حلی نداره؟؟؟؟؟؟

cccccccccc
دوشنبه 20 آذر 1391, 23:32 عصر
سلام
خب یا اول ستون ها رو حذف کن بعد بایند کن
یا در یک حلقه سطر به سطر داده هارو به جدولت اضافه کن
البته این دستور هم موقع بایند به بانک ستون نمیسازه
dataGridView1.AutoGenerateColumns = false;

mahdad sepah
دوشنبه 20 آذر 1391, 23:48 عصر
سلام
خب یا اول ستون ها رو حذف کن بعد بایند کن
یا در یک حلقه سطر به سطر داده هارو به جدولت اضافه کن
البته این دستور هم موقع بایند به بانک ستون نمیسازه
dataGridView1.AutoGenerateColumns = false;
خب اگر حذف کنم چه جوری ویرایش انجام بدم؟شاید نیاز به اضافه نمودن باشه

cccccccccc
سه شنبه 21 آذر 1391, 00:06 صبح
برای ویرایش فاکتور ها وقتی میخوام اطلاعات یک فاکتور را در همون گرید نمایش بدهم تا تغییرات را انجام دهم به مشکل میخورم
شما فاکتور رو صادر میکنین بعداً بنا به هر دلیلی میخواین محتویات فاکتور رو اصلاح کنین
ستون ها رو دارین میخواین سطر ها اضافه شن، خب مگه چند سطره همش؟ با یک دستور for سطر ها رو اضافه کن، مشکلی داره؟

خب اگر حذف کنم چه جوری ویرایش انجام بدم؟شاید نیاز به اضافه نمودن باشه
ستون ها رو حذف کردی بعد بایند میکنی هم ستون برات ساخته میشه هم سطرها اضافه میشن

mahdad sepah
سه شنبه 21 آذر 1391, 00:17 صبح
شما فاکتور رو صادر میکنین بعداً بنا به هر دلیلی میخواین محتویات فاکتور رو اصلاح کنین
ستون ها رو دارین میخواین سطر ها اضافه شن، خب مگه چند سطره همش؟ با یک دستور for سطر ها رو اضافه کن، مشکلی داره؟

خب اگه بخوام اون فاکتوری که نیاز به تغییر داره را بندازم در گرید باید بایند کنم دیگه بالاخره اون موقع چی؟

mahdad sepah
سه شنبه 21 آذر 1391, 00:20 صبح
چون اون فاکتور در دیتابیس ذخیره شده است دیگه...

danialafshari
سه شنبه 21 آذر 1391, 00:21 صبح
سلام دوست عزیز
فکر می کنم شما چیزی مثل این بسازید خیلی بهتر باشه

cccccccccc
سه شنبه 21 آذر 1391, 00:42 صبح
خب اگه بخوام اون فاکتوری که نیاز به تغییر داره را بندازم در گرید باید بایند کنم دیگه بالاخره اون موقع چی؟
خب قبلش ستون هارو حذف کن dgv.Columns.Clear(); بعد بایند کن برات هم ستون میسازه هم سطر هارو اضافه میکنه
یا به ستون ها کاری نداشته باش، بایند هم نکن، در یک حلقه سطر هارو دونه دونه به جدولت add کن

mahdad sepah
سه شنبه 21 آذر 1391, 00:47 صبح
سلام دوست عزیز
فکر می کنم شما چیزی مثل این بسازید خیلی بهتر باشه
ببینید دوست عزیز من دوتا جدول دارم که باهم در ارتباط هستند تو یکی شماره فاکتوره اون یکی اجناس مربوط به اون فاکتوره من میخوام مثلا واسه فاکتور شماره 100 5تا سیب و 6 تا پرتقال هستش پس باید اینارو واسه ویرایش باید اینارو در یک گرید بندازم تا کاربر بتونه تغییرش بدم

mahdad sepah
سه شنبه 21 آذر 1391, 00:56 صبح
خب قبلش ستون هارو حذف کن dgv.Columns.Clear(); بعد بایند کن برات هم ستون میسازه هم سطر هارو اضافه میکنه
یا به ستون ها کاری نداشته باش، بایند هم نکن، در یک حلقه سطر هارو دونه دونه به جدولت add کن
شما درست میگین الان بایند هم شد، ولی حالا بخوام ویرایش کنم یا یک محصول اضافه کنم ارور میده میگه باید ستون ها باشند
حالا چیکار کنم به نظرت؟

cccccccccc
سه شنبه 21 آذر 1391, 01:15 صبح
اگه میشه تصویری از پیغام خطا و ظاهر برنامت بذارین

mahdad sepah
سه شنبه 21 آذر 1391, 01:34 صبح
با کلیک بر روی گرید نام میوفته در تکست باکس سپس بعداز وارد نمودن تعداد و >> وارد گرید میشود

cccccccccc
سه شنبه 21 آذر 1391, 01:40 صبح
حالا بخوام ویرایش کنم یا یک محصول اضافه کنم ارور میده میگه باید ستون ها باشند
حالا چیکار کنم به نظرت؟
متوجه نمیشم، (باید ستون ها باشند) خب هستند، یا کجا باشند؟
اضافه کردن توی بانک خطا میده یا توی جدول؟
متن خطا رو هم بذارین:گیج:

mahdad sepah
سه شنبه 21 آذر 1391, 01:47 صبح
من در یک فرم دیگه فاکتور هارا نمایش میدم
وقتی کاربر بخواد یک فاکتور را ویرایش کند روی فاکتور مورد نظر کلیک میکنه بعد میاد دوباره در این فرم در همین گرید اجناس مربوط به این فاکتور را میبینه حالا میواد حذف کن تعدادو درست کنه جنسی اضافه کنه باید این راهو انجام بده دیگه

mahdad sepah
سه شنبه 21 آذر 1391, 01:50 صبح
متن خطا رو هم بذارین:گیج:


Rows cannot be programmatically added to the DataGridView's rows collection when the control is data-bound.

mahdad sepah
سه شنبه 21 آذر 1391, 02:22 صبح
مشکل حل شد ممنون