PDA

View Full Version : رسم نمودار



hamid67fathi
چهارشنبه 17 مهر 1387, 11:40 صبح
سلام
من ميخوام يه سری داده مشخص رو از کاربر بگيرم مثلاً چند تا عدد
بعد طبق اونها يه نمودار رسم کنم.
حالا مشکلم اينه که اصلاً نميدونم ميشه با asp.net نمودار رسم کرد
يا نه !؟!؟
اگه ميشه چه جوری ؟؟

nazaninam
چهارشنبه 17 مهر 1387, 11:44 صبح
بله میشه !
یک کامپاننت سورس باز و رایگان :
http://www.codeproject.com/KB/custom-controls/webchart.aspx

Saber_Fatholahi
چهارشنبه 17 مهر 1387, 11:47 صبح
فکر کنم این بکارت بیاد لینک (http://aspcode.ir/Article.aspx?id=28)

hamid67fathi
چهارشنبه 17 مهر 1387, 12:46 عصر
دستت درد نکنه مهندس کارم راه افتاد

hamid67fathi
چهارشنبه 17 مهر 1387, 14:27 عصر
بازم سلام
توابع کامل OWC رو از کجا ميتونم فارسيشو پيدا کنم ؟؟

nazaninam
پنج شنبه 18 مهر 1387, 08:55 صبح
فکر کنم این بکارت بیاد لینک (http://aspcode.ir/Article.aspx?id=28)

البته این روش برای وقتیه که Office Web Components روی سرور نصب باشه !

hamid67fathi
پنج شنبه 18 مهر 1387, 17:27 عصر
بازم سلام
توابع کامل OWC رو از کجا ميتونم فارسيشو پيدا کنم ؟؟

sasan123
یک شنبه 21 مهر 1387, 09:49 صبح
فکر کنم این بکارت بیاد لینک (http://aspcode.ir/Article.aspx?id=28)

دوستان اگه بخواهیم که اطلاعات را از جدول در پایگاه بیرون کشد چه کار باید کرد من ان لینک کار کردم ولی الان نمی دانم که چه جوری با اطلاعات پایگاه را بریزم در ان دو ارایه فکر کنم باید این کار را بکنم ولی چه جوری نمی دونم

sasan123
دوشنبه 22 مهر 1387, 07:05 صبح
دوستان کسی نمی تونه کمک کنه

tc1000
دوشنبه 22 مهر 1387, 08:15 صبح
نمودار های نظیر اکسل رو چطور میشه کشید

Saber_Fatholahi
دوشنبه 22 مهر 1387, 12:03 عصر
دوستان کسی نمی تونه کمک کنه

ببین دوست من شما باید بیای از طریق یک دیتا اداپتر داده هارو سطر به سطر بخونی بعد اونهارو توی یه لیست یا یک آرایه ذخیره کنی

sasan123
دوشنبه 22 مهر 1387, 12:18 عصر
دوست من یعنی با پایگاه ارتباط برقرار کنم و داده ها را بخوانم و یعنی داده ها را بگذارم در یک dataset حالا شروع کنم به سطر به سطر ریختن در ارایه من چه جوری سطر به سطر بریزم توی یک ارایه یا یک list

Saber_Fatholahi
دوشنبه 22 مهر 1387, 12:30 عصر
While (recordset.read())}
i = i +1;
arr[i] = recordset["id].tostring();

}
البته این یه شبه کده به زبان خاصی نیست اما قالبش اینجوری که توی حلقه می تونین فیلد های دیگرو هم بخونین

sasan123
دوشنبه 22 مهر 1387, 18:47 عصر
:خجالت::خجالت::خجالت::خجالت:: جالت::خجالت:
دوستان من هنوز مشکل دارم کسی نمی تونه منو بیشتر راهنمایی کند :افسرده::افسرده::افسرده::افس ده:

sasan123
سه شنبه 23 مهر 1387, 17:47 عصر
دوستان کمک

Saber_Fatholahi
سه شنبه 23 مهر 1387, 17:54 عصر
با این روش مشکلت حل نشد مگه می شه دیکه می خوای چطور باشه؟

sasan123
سه شنبه 23 مهر 1387, 18:04 عصر
نه دوست من نمی دانم که چی کار می کنم که نمی تونم بخونم و بریزم در ارایه

Saber_Fatholahi
سه شنبه 23 مهر 1387, 18:16 عصر
اگه وقت کنم این کار واست انجام می دم و میذارم توی همین پست واست

milade
چهارشنبه 24 مهر 1387, 04:46 صبح
سلام
من حوصله استفاده از کامپوننت رو ندارم و دوست دارم تا جایی که می تونم خود کفا باشم!!!!!!!!
اگه لطف کنید بگید کدوم کلاس(ها) برای رسم نمودار استفاده می شن یه دنیا(-+.5%)ممنون می شم!!!!!!!

Saber_Fatholahi
چهارشنبه 24 مهر 1387, 09:59 صبح
اگه می خوای خود کفا باشی و بشنی از نو ساعت اختراع کنی فکر کنم کار با گرافیک و عکس براتون بهترین گزینه باشه

kiosksoft
شنبه 27 مهر 1387, 16:52 عصر
سلام.

دوست عزیز یه مثال برات آوردم که :

1- ساده ترین حالته .
2-استاتیک هست باید خودت داینامیکش کنی .

Saber_Fatholahi
یک شنبه 28 مهر 1387, 15:30 عصر
نه دوست من نمی دانم که چی کار می کنم که نمی تونم بخونم و بریزم در ارایه
دوست من نمونه کد زیر گذاشتم قصد فقط آموزش بود خطاهاش چک نکردم به بزرگواری خودتان ببخشید



using System.Data.Sql;
using System.Data.SqlClient;
using System.Collections.Generic;
.
.
.
//یک نوع ساختار برای نگهداری مقادیر نام ستون و مقدار آن
public struct ChartArr
{
public string X;
public string Y;
}


public ChartArr[] GetInformation()
{
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);
SqlCommand command = new SqlCommand("SELECT caption,value from tbltest", connection);
connection.Open();
SqlDataReader recordset = command.ExecuteReader();
//لیستی از داده های خروجی
List<ChartArr> templist = new List<ChartArr>();
if (recordset.HasRows)
{
//خواندن دادها از بانک
//یک فیلد برچسب ستون
//یک فیلد مقدار آن ستون برای رسم نمودار
while (recordset.Read())
{
ChartArr item = new ChartArr();
item.X = recordset["caption"].ToString();
item.Y = recordset["value"].ToString();
templist.Add(item);
}
}
//خروجی به صورت آرایه ای از نوع CharArr
return templist.ToArray();
{

sasan123
دوشنبه 29 مهر 1387, 07:51 صبح
دوست من من ان کد های شما را در صفحه ام قرار دادم و این گونه فراخوانی کردم


string[] chartCategoriesArr = new string[] {Convert .ToString( GetInformation()) };

و حال صفحه ای که برای من نشان می دهد فکر کنم که همهی داده ها را با هم در یک سطر نشان می دهد در این قسمت چه باید قرار دهم که فاصله را رعایت کند

string chartCategoriesStr = String.Join("\t", chartCategoriesArr);

به جای \t چی قرار دهم چگونه داده ها را که می ریزم در ارایه از هم جدا کنم با تشکر

Saber_Fatholahi
دوشنبه 29 مهر 1387, 14:01 عصر
سلام.

دوست عزیز یه مثال برات آوردم که :

1- ساده ترین حالته .
2-استاتیک هست باید خودت داینامیکش کنی .

دوست من اگه از لیبل استفاده می کردی بهتر نبود آخه با کلیک روی دکمه های ستون های نمودار کل نمودار پاک می شه سید

Saber_Fatholahi
دوشنبه 29 مهر 1387, 14:04 عصر
دوست من من ان کد های شما را در صفحه ام قرار دادم و این گونه فراخوانی کردم


string[] chartCategoriesArr = newstring[] {Convert .ToString( GetInformation()) };

و حال صفحه ای که برای من نشان می دهد فکر کنم که همهی داده ها را با هم در یک سطر نشان می دهد در این قسمت چه باید قرار دهم که فاصله را رعایت کند

string chartCategoriesStr = String.Join("\t", chartCategoriesArr);

به جای \t چی قرار دهم چگونه داده ها را که می ریزم در ارایه از هم جدا کنم با تشکر

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

kiosksoft
چهارشنبه 01 آبان 1387, 17:42 عصر
این هم مثال داینامیک که نمودار هر آرایه ای رو رسم میکنه . قابل توجه
"sasan123 (http://barnamenevis.org/forum/member.php?u=73595)"

sasan123
چهارشنبه 01 آبان 1387, 18:18 عصر
دوست من یعنی من الان می تونم اطلاعات را از پایگاه بخونم و بریزم در ارایه شما می شه یکم توضیح بدهید
با تشکر

kiosksoft
چهارشنبه 01 آبان 1387, 18:37 عصر
بله , دیگه الان میتونید هر آرایه ای رو رسم کنید. اونم از دیتابیس ...

sasan123
چهارشنبه 01 آبان 1387, 18:41 عصر
دوست من به روشی که اقا صابر گفته بودن بخونم و بریزم در ارایه

kiosksoft
چهارشنبه 01 آبان 1387, 19:04 عصر
از روش ذیل استفاده کنید . اگه نمی تونید DataTable رو از دیتابیس پر کنید بگید تابعش رو برات بنویسم.

روش ریختن اطلاعات از DataTable به آرایه :



DataTable dt = newDataTable();
int[] ArrayFromDB = newint[dt.Rows.Count];

for (int j = 0; j < dt.Rows.Count; j++)
{
ArrayFromDB[j] =int.Parse(dt.Rows[j]["Value"].ToString());
}


Value نام فیلدی است که مقادیر آن از DataTable به آرایه انتقال داده میشود.و نمودار بر اساس آن رسم میشود.

sasan123
چهارشنبه 01 آبان 1387, 19:13 عصر
دوست من من نمی تونم می شه تابعش را بنویسید.با تشکر

kiosksoft
چهارشنبه 01 آبان 1387, 19:23 عصر
این هم تابعش , فقط کافیه یه دستور sql بهش بدی :

بجای تابع GetSqlConnection میتونی از رشته ارتباط با دیتابیس خودت استفاده کنی :



SqlConnection myConnection = new SqlConnection("Connection String"));





public DataTable GetDTWithSql(string sql)
{
SqlConnection myConnection = new SqlConnection(GetSqlConnection("ConnStr"));
SqlCommand cmd = new SqlCommand(sql, myConnection);
cmd.CommandType = CommandType.Text;
//-------------------------------------------------------------------
SqlDataAdapter myCommand = new SqlDataAdapter(cmd);
myCommand.SelectCommand = cmd;
DataTable DT = new DataTable();
myCommand.Fill(DT);

myConnection.Close();
return DT;
}

sasan123
چهارشنبه 22 آبان 1387, 00:05 صبح
دوست من می بخشیدasp.net.csharp.ir من با ان روشی که گفتین شما توانستم نمودار رسم کنم ولی من می خواهم که یک label داشته باشم که بر اساس ان label که بر اساس فرم های کوچک انتخاب می شود یا بر اساس query string مقدار به ان وارد می شود حالا می خواهم بر اساس ان label دستور sql من اجرا شود یعنی در شرط where ان صدق کنم ولی مشکلی که دارم این که buttom ,refresh می شود و label من مقداری نخواهد داشت چی کار کنم ممنون

kiosksoft
چهارشنبه 22 آبان 1387, 14:33 عصر
دوست من می بخشیدasp.net.csharp.ir من با ان روشی که گفتین شما توانستم نمودار رسم کنم ولی من می خواهم که یک label داشته باشم که بر اساس ان label که بر اساس فرم های کوچک انتخاب می شود یا بر اساس query string مقدار به ان وارد می شود حالا می خواهم بر اساس ان label دستور sql من اجرا شود یعنی در شرط where ان صدق کنم ولی مشکلی که دارم این که buttom ,refresh می شود و label من مقداری نخواهد داشت چی کار کنم ممنون


میتونی برای نگه داری مقداری که نیاز داری به جای این label از session استفاده کنید .

sasan123
چهارشنبه 22 آبان 1387, 14:39 عصر
دوست من می شه بگی session کجا قرار دهم اخه قرار دادم ولی نشد نمی دانم چرا ممنون

kiosksoft
چهارشنبه 22 آبان 1387, 15:46 عصر
دوست من می شه بگی session کجا قرار دهم اخه قرار دادم ولی نشد نمی دانم چرا ممنون


همون جایی که label رو مقدار میدی session رو مقدار بده ,همون جایی که label رو استفاده میکنی ,session رو استفاده کنید.. باید کار کنه نشد , سورسش رو بزار اینجا..