parsdarab
شنبه 29 خرداد 1395, 19:36 عصر
سلام
چند روز پیش برای یکی از دوستانم یه گزارش طراحی کردم که گفتم این طراحی رو توی سایت بزارم ممکنه به درد کسی بخوره
گزارشات به صورت زیر بودند که برای چاپ می بایست به صورت حروف جدا جدا چاپ بشوند و دور هر کاراکتر هم یک چهار خونه باشد
140914
اول به ذهنم رسید یه فونتی پیدا کنم که دور هر کاراکترش یک خونه باشه آخرش به فونت B Kidnap رسیدم که فایده ای نداشت
بعد گفتم به تعداد کاراکتر مجاز، خونه مربعی بسازم بعد یک متغیر روی اون ست کنم. با توجه به شکل زیر چهار خونه ها رو ساختم و یه تکس باکس هم روی اون کشیدم.
بعد نوبت رسید به تنظیم مقدار تکس باکس که باید کاراکترهای جدا از باشند برای انجام این کار با استفاده از تکه کد زیر این کار رو انجام دادم
string input = "تست";
string outString;
outString = string.Join(" ", input.ToCharArray());
MessageBox.Show(outString);
که به ازای هر کاراکتر یه فاصله ایجاد میکنه
مشکل بعدی که به وجود امد مشکل فونت بود هر فونتی را نمی شد به این متغیر اختصاص داد. در زمان های قدیم می خوندم که فونت ها انواع مختلفی داشتند از لحاظ در نظر گرفتن فضا به ازای هر کاراکتر بعضی از فونتها به ازای کارکتر الف و ی یه به یک اندازه فضا اختصاص میدهند و بهضی هاشونم این طور نیستند بالاخره رسیدم به فونت Courier New که به ازای هر کاراکتر فضای یکسانی در نظر می گیرد.
بعد برای طراحی گزارش بعدی یه فرم داشتیم به شکل زیر به ازای انتخاب هر گزینه باید به صورت چهار گزینه ای گزارش نمایش داده شود
140915
ابتدا فرمی به شکل زیر طراحی شد و برای نمایش گزارش هم چند shape گذاشتم روی صفحه و جلو هر شکل هم مطابق تصویر گزینه ها رو گذاشتم
140916
در بخش کد نویسی هم کد زیر گذاشته شد که کاربر به انتخاب هر گزینه تیک مورد نظر در قسمت گزارش خورده می شود
StiReport stiRpt = new StiReport();
stiRpt.Load("Report.mrt");
string select = "";
if (radioButton1.Checked == true) select = "Shape1";
if (radioButton2.Checked == true) select = "Shape2";
if (radioButton3.Checked == true) select = "Shape3";
if (radioButton4.Checked == true) select = "Shape4";
if (!string.IsNullOrWhiteSpace(select))
{
var Shape1 = stiRpt.GetComponentByName(select);
(Shape1 as StiShape).Brush = new Stimulsoft.Base.Drawing.StiSolidBrush(System.Drawi ng.Color.Black);
(Shape1 as StiShape).ShapeType = new Stimulsoft.Report.Components.ShapeTypes.StiOvalSha peType();
}
stiRpt.Compile();
stiRpt["Var1"] = string.Join(" ", "به نام خدا".ToCharArray());
stiRpt.Show();
در این قسمت نام shape ها به صورت shape1 در برنامه استیمول در نظر گرفته شده است.
140917
چند روز پیش برای یکی از دوستانم یه گزارش طراحی کردم که گفتم این طراحی رو توی سایت بزارم ممکنه به درد کسی بخوره
گزارشات به صورت زیر بودند که برای چاپ می بایست به صورت حروف جدا جدا چاپ بشوند و دور هر کاراکتر هم یک چهار خونه باشد
140914
اول به ذهنم رسید یه فونتی پیدا کنم که دور هر کاراکترش یک خونه باشه آخرش به فونت B Kidnap رسیدم که فایده ای نداشت
بعد گفتم به تعداد کاراکتر مجاز، خونه مربعی بسازم بعد یک متغیر روی اون ست کنم. با توجه به شکل زیر چهار خونه ها رو ساختم و یه تکس باکس هم روی اون کشیدم.
بعد نوبت رسید به تنظیم مقدار تکس باکس که باید کاراکترهای جدا از باشند برای انجام این کار با استفاده از تکه کد زیر این کار رو انجام دادم
string input = "تست";
string outString;
outString = string.Join(" ", input.ToCharArray());
MessageBox.Show(outString);
که به ازای هر کاراکتر یه فاصله ایجاد میکنه
مشکل بعدی که به وجود امد مشکل فونت بود هر فونتی را نمی شد به این متغیر اختصاص داد. در زمان های قدیم می خوندم که فونت ها انواع مختلفی داشتند از لحاظ در نظر گرفتن فضا به ازای هر کاراکتر بعضی از فونتها به ازای کارکتر الف و ی یه به یک اندازه فضا اختصاص میدهند و بهضی هاشونم این طور نیستند بالاخره رسیدم به فونت Courier New که به ازای هر کاراکتر فضای یکسانی در نظر می گیرد.
بعد برای طراحی گزارش بعدی یه فرم داشتیم به شکل زیر به ازای انتخاب هر گزینه باید به صورت چهار گزینه ای گزارش نمایش داده شود
140915
ابتدا فرمی به شکل زیر طراحی شد و برای نمایش گزارش هم چند shape گذاشتم روی صفحه و جلو هر شکل هم مطابق تصویر گزینه ها رو گذاشتم
140916
در بخش کد نویسی هم کد زیر گذاشته شد که کاربر به انتخاب هر گزینه تیک مورد نظر در قسمت گزارش خورده می شود
StiReport stiRpt = new StiReport();
stiRpt.Load("Report.mrt");
string select = "";
if (radioButton1.Checked == true) select = "Shape1";
if (radioButton2.Checked == true) select = "Shape2";
if (radioButton3.Checked == true) select = "Shape3";
if (radioButton4.Checked == true) select = "Shape4";
if (!string.IsNullOrWhiteSpace(select))
{
var Shape1 = stiRpt.GetComponentByName(select);
(Shape1 as StiShape).Brush = new Stimulsoft.Base.Drawing.StiSolidBrush(System.Drawi ng.Color.Black);
(Shape1 as StiShape).ShapeType = new Stimulsoft.Report.Components.ShapeTypes.StiOvalSha peType();
}
stiRpt.Compile();
stiRpt["Var1"] = string.Join(" ", "به نام خدا".ToCharArray());
stiRpt.Show();
در این قسمت نام shape ها به صورت shape1 در برنامه استیمول در نظر گرفته شده است.
140917