PDA

View Full Version : درخواست يك نوع Gridview خاص



l7i7l7
سه شنبه 13 بهمن 1388, 12:34 عصر
با سلام خدمت دوستان عزيز

يك نوع Gridview ميخوام كه بتونم هر سطر خاصي رو كه خواستم به رنگ دلخواهي در بيارم

فرض كنيد يك فيلد دارم تو جدولم با نام نمره اگه اين نمره ما بين 0 تا 5 باشه كل سطر هايي كه توي گريد نماش ميدن به رنگ قرمز دربيان

اگه نمره ما بين 6 تا 10 باشه به رنگ زرد و ......

حالا اگه كسي همچين گريدي سراغ داره ... منو راهنمايي بكنه

Arash_janusV3
سه شنبه 13 بهمن 1388, 12:39 عصر
سلام
janus v3
باي

l7i7l7
سه شنبه 13 بهمن 1388, 13:37 عصر
سلام
janus v3
بای

سلام دوست عزيز

نسخه كاملش رو داري بذاري واسه دانلود ؟

Arash_janusV3
سه شنبه 13 بهمن 1388, 14:22 عصر
سلام دوست عزیز

نسخه کاملش رو داری بذاری واسه دانلود ؟

دارم ولی دسترسی بهش ندارم
تو گوگل ديدم سرچ کن با 4 5 تومن گیرت میاد من تا 6 ماه ديگه دسترسی بهش ندارم

l7i7l7
سه شنبه 13 بهمن 1388, 16:16 عصر
آيا كسي با XtraGrid كار كرده

آيا XtraGrid هم اين امكان رو داره ؟؟؟

debugger
سه شنبه 13 بهمن 1388, 22:12 عصر
نوشتن کد این که خیلی راحتتر از استفاده از کامپوننت است .

حتما وقت نوشتنشو ندارین ؟

کد تغییر رنگ توی تالار هست. جستجو کنید

شما میایید id رکورد های دلخواهتون را پیدا می کنید

و در یک تابع همه انها را فراخوانی می کنید تا رنگ اون سط را تغییر بدین

به مثال ساده زیر هم توجه کنید

یه گرید داریم با سه ستون که یکیشون کلیده و دیگری از نوع صحیح و اخری هم از نوع datatime



(0)IdLeggiSeriale <Is Primary key>
(1)ValoreSeriale <Is Integer>
(2)DataAcquisizione <Is DateTime>
حالا میخوام رنگ سطر هایی که ValoreSeriale بزرگتر از 50 هست را عوض کنم

private void dataGridView1_CellFormatting(object sender,DataGridViewCellFormattingEventArgs e)

{
if(dataGridView1.Columns[e.ColumnIndex].Name.Equals("ValoreSeriale"))

{
Int32 intValue;
if (Int32.TryParse((String)e.Value, out intValue) && (intValue 50))
{
e.CellStyle.BackColor = Color.Yellow;
e.CellStyle.SelectionBackColor = Color.DarkRed;
}

}
}

l7i7l7
چهارشنبه 14 بهمن 1388, 07:07 صبح
نوشتن کد این که خیلی راحتتر از استفاده از کامپوننت است .

حتما وقت نوشتنشو ندارین ؟

کد تغییر رنگ توی تالار هست. جستجو کنید

شما میایید id رکورد های دلخواهتون را پیدا می کنید

و در یک تابع همه انها را فراخوانی می کنید تا رنگ اون سط را تغییر بدین



با تشكر از شما

ببينين اين سيستم هر روز حدود 1000 ركورد ورودي داره و حدود 7 نفر هم بصورت همزمان دارن باهاش كار مي كنن
خوب اگه الان ما بخوايم همچين تعداد ركوردي رو هر بار با اين طور كد نويسي ..... مطمئنن سيستم بعد از يكسال ديگه اونقدر سنگين ميشه كه نميشه باهاش كار كرد

--- آیا کسی با XtraGrid کار کرده

آیا XtraGrid هم این امکان رو داره ؟؟؟

يا اصلا روش ديگه اي هست كه راحتر باشه ... ممنون ميشم راهنمايي كنين

shifteh_67
چهارشنبه 14 بهمن 1388, 07:13 صبح
با سلام به همگی

من به کمک فوری احتیاج دارم...
من برنامه ی ضرب ماتریسها را به زبان C می خوام به اضافه ی اینکه مشخص کنه بزرگترین عضو در کدام درایه قرارداره. با توضیحات کامل وفنی!
لطفا یکی کمکم کنه.هرچه زودترلازم دارم مثلا همین امروز:گریه:

debugger
چهارشنبه 14 بهمن 1388, 09:13 صبح
با تشکر از شما

ببینین این سیستم هر روز حدود 1000 رکورد ورودی داره و حدود 7 نفر هم بصورت همزمان دارن باهاش کار می کنن
خوب اگه الان ما بخوایم همچین تعداد رکوردی رو هر بار با این طور کد نویسی ..... مطمئنن سیستم بعد از یکسال دیگه اونقدر سنگین میشه که نمیشه باهاش کار کرد

مطمئن باشید اگر هم از کامپوننت استفاده کنید باز هم زمان زیادی طول خواهد کشید.حتی بیشتر از روش کد نویسی زمان بر خواهد بود.

شما فرض کنید بالای یک میلیون رکورد دارید . و میخواهید سطر های خاصی را از گزید رنگشون را تغییر بدین. بالفرض که تغییر دادین کاربر چطوری میخواهد رکورد های رنگی را از بین اون همه رکورد بررسی کند. شاید از این 1 میلیون تا 300 هزار تاش در جاهای مختلف رنگی شد کار شما نتیجه ای گزارش مانند دارد . که بررسی این روش برای کاربر بسیار وقت گیر است. (یعنی اینکه در صورتیکه تعداد رکورد ها زیاد است استفاده از این روش مناسب نیست)

در مورد زمان هم باید بگم شما اول میایید رکورد های مورد نظرتون را جستجو می کنید.
که این کار در هر صورت باید انجام شود . پس یک زمان برای جستجو صرف میشود+یک زمان هم برای رنگی کردن کد ها

درمورد کامپوننت هم به sample هاش توجه کنید

l7i7l7
چهارشنبه 14 بهمن 1388, 13:01 عصر
شما فرض کنید بالای یک میلیون رکورد دارید . و میخواهید سطر های خاصی را از گزید رنگشون را تغییر بدین. بالفرض که تغییر دادین کاربر چطوری میخواهد رکورد های رنگی را از بین اون همه رکورد بررسی کند. شاید از این 1 میلیون تا 300 هزار تاش در جاهای مختلف رنگی شد کار شما نتیجه ای گزارش مانند دارد . که بررسی این روش برای کاربر بسیار وقت گیر است. (یعنی اینکه در صورتیکه تعداد رکورد ها زیاد است استفاده از این روش مناسب نیست)

در مورد زمان هم باید بگم شما اول میایید رکورد های مورد نظرتون را جستجو می کنید.
که این کار در هر صورت باید انجام شود . پس یک زمان برای جستجو صرف میشود+یک زمان هم برای رنگی کردن کد ها

درمورد کامپوننت هم به sample هاش توجه کنید


لطفا يك Sample از مطلبي رو كه فرمودين رو اينجا up كنيد

متشكرم

debugger
چهارشنبه 14 بهمن 1388, 13:43 عصر
کد های زیر را نگاه کنید با کمی تغییرات می توانید کل row را رنگی کنید



using System.Drawing.Drawing2D;
ColorBlend colorBlend = null;
private void frmMain_Load(object sender, System.EventArgs e) {
colorBlend = new ColorBlend();
colorBlend.Colors = new Color[] {Color.Orchid, Color.White, Color.Orchid};
colorBlend.Positions = new float[] {0.0f, 0.5f, 1.0f};
}
private void gridView1_CustomDrawCell(object sender,
DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEv entArgs e) {
if(e.Column.FieldName != "RequiredDate") return;
//Get the cell's value
DateTime reqDate = (DateTime)e.CellValue;
if(reqDate < DateTime.Today) return;
//Calculate the text to display in the cell
string dispText;
if(reqDate > DateTime.Today)
dispText = ((TimeSpan)(reqDate - DateTime.Today)).Days.ToString() + " day(s) left";
else
dispText = e.DisplayText;
//Create the gradient brush
LinearGradientBrush brush = new LinearGradientBrush(e.Bounds,
Color.White, Color.Black, LinearGradientMode.ForwardDiagonal);
//Provide custom color blending
brush.InterpolationColors = colorBlend;
//Fill the cell's background
using(brush) {
e.Graphics.FillRectangle(brush, e.Bounds);
}
//Draw the cell's text
e.Graphics.DrawString(dispText, e.Appearance.Font, Brushes.Black, e.Bounds);
//Prohibit the default painting
e.Handled = true;
}

نتیجه کد بالا تصویر زیر است

http://www.devexpress.com/Help/XtraGrid/img/CD_CustomDraw_SamplesDrawCell.png

l7i7l7
چهارشنبه 14 بهمن 1388, 13:56 عصر
عزيز من اين كه از DevExpress.XtraGrid استفاده كرده خوب منم همينو دارم ميگم

روشي كه شما تو پست قبلي اشاره كرده (روش كد نويسي) روش خوبيه اما استفاده از DevExpress.XtraGrid و gridEX Janus خيلي امكانات بيشتري داره -

فقط من الان دارم تست ميكنم ببينم كدوم يك سريعتر جوا ميده

دوستان اگه از اين دو كامپوننت استفاده كردن لطفا راهنمايي بكنن

l7i7l7
سه شنبه 27 بهمن 1388, 15:18 عصر
با سلام خدمت دوستان عزيز

من gridEX Janus رو تست كردم خيلي عاليه فقط تنظيم پارامتراش يكم زياده

البته دنبال يه آموزش يا Help جالب برا gridEX Janus هستم .

كه اينجا قرار بدم تا دوستان هم بتونن از اين ابزار پر قدرت بصورت كامل استفاده كنن

البته اگر هم نتونستم پيدا كنم چيزايي رو كه خودم ازش ياد گرفتم رو مينويسم ...

از دوستان كسي كه تونسته بصورت كامل از اين ابزار استفاده كنه لطفا مطالبش رو براي استفاده من و ساير دوستان قرار بده ... متشكرم

اميدوارم كه مفيد باشه