PDA

View Full Version : سوال: چاپ رسید ثبت نام بر روی کاغذ چاپ شده



jaykob
یک شنبه 26 اردیبهشت 1395, 16:38 عصر
سلام

من می خوام رسید ثبت نام رو در ثبت نام خودم چاپ کنم ولی مشکل اینجاست که این رسید ها با ابعاد حدود A5 از قبل چاپ شدن و من باید روی این برگه ها چاپ بزنم و جاهای خالی رو پر کنم . ممنون می شم راهنمایی کنید چطور این کار رو بکنم . به نظر خودم استفاده از HTML ایده خوبی نبود چون روی سیستم ها و مرورگر های مختلف مشکل به وجود می آد

با تشکر

Roia_del
یک شنبه 26 اردیبهشت 1395, 20:57 عصر
بهتره از یکی از گزارش سازهای Telerik یا StimulSoft یا FastReport استفاده کنید.

و یا اینکه میتونید با iTextSharp استفاده کنید که بصورت Manual ، Pdf درست کنید و نشون بدید کاربر چاپ کنه.

من خودم گزارشاتم رو با Telerik Reporting کار میکنم که راحت تره برام.

تو Telerik عکس کاغذ رو میندازم رو گزارش و گزینه ها رو بهش اضافه میکنم. در نهایت عکس رو حذف یا نامرئی میکنم و تموم.

jaykob
دوشنبه 27 اردیبهشت 1395, 08:12 صبح
بهتره از یکی از گزارش سازهای Telerik یا StimulSoft یا FastReport استفاده کنید.

و یا اینکه میتونید با iTextSharp استفاده کنید که بصورت Manual ، Pdf درست کنید و نشون بدید کاربر چاپ کنه.

من خودم گزارشاتم رو با Telerik Reporting کار میکنم که راحت تره برام.

تو Telerik عکس کاغذ رو میندازم رو گزارش و گزینه ها رو بهش اضافه میکنم. در نهایت عکس رو حذف یا نامرئی میکنم و تموم.


سلام

ممنون از شما . آموزش همین یک تیکه رو شما می تونید بدید یا اینکه لینکی چیزی بدید این کار سریعتر بتونم انجام بدم ...

تشکر

Roia_del
دوشنبه 27 اردیبهشت 1395, 08:36 صبح
اول از همه باید Telerik Reporting رو نصب کنی من نسخه 2016 Q1 رو استفاده میکنم. بعد دوم اینکه از EntityFramework استفاده میکنی برای گزارشات یا نه از Ado.NET ?

jaykob
دوشنبه 27 اردیبهشت 1395, 10:06 صبح
اول از همه باید Telerik Reporting رو نصب کنی من نسخه 2016 Q1 رو استفاده میکنم. بعد دوم اینکه از EntityFramework استفاده میکنی برای گزارشات یا نه از Ado.NET ?

سلام مجدد

بله اون رو می گیرم . آره از EF Code First استفاده می کنم

تشکر

Roia_del
دوشنبه 27 اردیبهشت 1395, 10:33 صبح
در هر دو حالت این مورد استفاده میشود . ولی برای اینکه از کلاس ها و ویو مدل های برنامه ات تو گزارش استفاده کنی کارش فرق میکنه که من توضیح ندادم.

این گزارش مستقیم اطلاعات رو از دیتابیس واکشی میکنه .


من فرض میکنم که شما یه ConnectionString با نام TelerikSample در Web.Config اضافه کردید.

همون ConnectionString رو باید در فایلهای Telerik.ReportDesigner.exe.config و Telerik.ReportDesigner.x86.exe.config جا گذاری کنی . که تو مسیر زیر هستند
C:\Program Files (x86)\Telerik\Reporting Q1 2016\Report Designer البته تو سیستم من که اونجا نصب کردم.

این فایلها یه قسمت ConnectionStrings دارند که مثل web.config فقط کافیه connectionString رو اونجا کپی کنی.



<add name="TelerikSample"
connectionString="Data Source=.;Initial Catalog=TelerikSample;User Id=sa;Password=xxxxxx"
providerName="System.Data.SqlClient" />


من فرض میکنم شما یه دیتابیس دارید با همون نام و یه جدول مثل Persons . خوب یکی از اون فایلهای Exe رو تو مسیر بالا اجرا کن.

توی پروژه MVC ، رفرنس هاتون رو به پروژه اضافه کنید :


Telerik.Reporting.dll
Telerik.Reporting.Services.WebApi.dll
Telerik.Reporting.XpsRendering.dll
Telerik.ReportViewer.Mvc.dll


کد نمونه در http://hamed-maleki.ir/TelerikSamMvc.rar

ساخت گزارش در تلریک : http://www.aparat.com/v/FsVXh
(http://www.aparat.com/v/FsVXh)


مواردی که باید در پروژه مد نظر داشته باشید :

1) یک apiController به نام ReportController هست که همیشه همینجوری باشه. چون توی ویو ازش استفاده کردیم تو سطر سوم.



@(Html.TelerikReporting().ReportViewer()
.Id("reportViewer1")
.ServiceUrl(Url.Content("~/api/reports/"))
.ReportSource(Model)
.ViewMode(ViewMode.Interactive)
.ScaleMode(ScaleMode.Specific)
.Scale(1.0)
.PersistSession(false)
.PrintMode(PrintMode.AutoSelect)
.TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate.html")
.Deferred())


2- فایل گزارش رو در مسیر Content/Reports گذاشتم
3- فولدرهای ReportViewer و Resources برای گزارشات ضروری می باشند.
4- در فایل web.config در مسیر Views/web.config فضاهای نام را اضافه نمایید .
<add namespace="Telerik.Reporting" />
<add namespace="Telerik.ReportViewer.Mvc" />

که الان مال من این شکلیه




<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
<add namespace="TelerikSamMvc" />
<add namespace="Telerik.Reporting" />
<add namespace="Telerik.ReportViewer.Mvc" />
</namespaces>
</pages>
</system.web.webPages.razor>



در فایل App_Start/WebApiConfig.cs خط زیر را در آخر تابع Register قراردهید



Telerik.Reporting.Services.WebApi.ReportsControlle rConfiguration.RegisterRoutes(config);



کد اکشن برای گزارش موجود با پارامتر PersonId مساوی 2 ست شده است که به شکل زیر است



var reportGeneral = new UriReportSource() { Uri = Server.MapPath("~/Content/Reports/TelerikSampleReport.trdx") };

reportGeneral.Parameters.Add("PersonId", 2);

return View(reportGeneral);



کد ویو برا نماش گزارش




@model Telerik.Reporting.UriReportSource

@{
ViewBag.Title = "نمایش گزارش";
}

@section styles
{
<link href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.common.min.css" rel="stylesheet" />
<link href="http://kendo.cdn.telerik.com/2015.3.930/styles/kendo.blueopal.min.css" rel="stylesheet" />

<style>
#reportViewer1 {
position: absolute;
left: 5px;
right: 5px;
top: 60px;
bottom: 5px;
overflow: hidden;
font-family: Verdana, Arial;
}
</style>
}

@(Html.TelerikReporting().ReportViewer()
.Id("reportViewer1")
.ServiceUrl(Url.Content("~/api/reports/"))
.ReportSource(Model)
.ViewMode(ViewMode.Interactive)
.ScaleMode(ScaleMode.Specific)
.Scale(1.0)
.PersistSession(false)
.PrintMode(PrintMode.AutoSelect)
.TemplateUrl("/ReportViewer/templates/telerikReportViewerTemplate.html")
.Deferred())



@section scripts
{
<!--kendo.all.min.js can be used as well kendo.web.min.js and kendo.mobile.min.js-->
<script src="@Url.Content("~/ReportViewer/js/kendo.subset.2015.3.930.min.js")"></script>

<script src="@Url.Content("~/ReportViewer/js/telerikReportViewer-10.0.16.113.js")"></script>

@(

// All deferred initialization statements will be rendered here
Html.TelerikReporting().DeferredScripts()
)
}



البته در فایل Layout برای Section های scripts و styles ضروری بودن رو false کنید.

رشته اتصال هم در فایل web.config روت به شکل زیره




<add name="TelerikSample" connectionString="Data Source=.;Initial Catalog=TelerikSample;User Id=sa;Password=*****#" providerName="System.Data.SqlClient" />