ورود

View Full Version : سوال: رسم خط ( Line ) با استفاده از کد نویسی ( FastReport )



sara.mahdavi
پنج شنبه 24 مرداد 1392, 10:46 صبح
با سلام

چطوری میتونم با کد نویسی توی فست ریپورت خط رسم کنم؟؟؟

یوسف زالی
پنج شنبه 24 مرداد 1392, 19:38 عصر
سلام.
برای رسم یا استفاده از هر چیزی در فست ریپورت، بهترین کار اینه که در زمان طراحی روی کامپوننت دابل کلیک کنید و اونجا همون کامپوننت رو بگذارید، بعد روی فرمی که کامپونننت فست روشه، View as Text کنید ببینید چطور اون چیز استفاده می شه، همون کار رو در زمان ران تایم انجام بدید. (ماهیگیری!)

نکته ی مهم:
--------------
همه ی تست های شما در زمان طراحی، در شی فست ریپورتی که روش کلیک کردید، باقی می مونه.

مثال:
روی یک فرم یک کامپوننت TfrxReport و یک TfrxDesigner بگذارید.
دوبار روی TfrxReport کلیک کنید تا باز شه.
یک خط روی صفحه بگذارید.
تنظیم چاپ باز شده رو ببندید.
روی فرم راست کلیک کنید و View as Text کنید.
یک چیزی مثل این باید ببینید:


object Form1: TForm1
Left = 192
Top = 124
Width = 870
Height = 500
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 312
Top = 280
Width = 225
Height = 129
Caption = 'Button1'
TabOrder = 0
OnClick = Button1Click
end
object frxReport1: TfrxReport
Version = '4.6.8'
DotMatrixReport = False
IniFile = '\Software\Fast Reports'
PreviewOptions.Buttons = [pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline, pbPageSetup, pbTools, pbEdit, pbNavigator, pbExportQuick]
PreviewOptions.Zoom = 1.000000000000000000
PrintOptions.Printer = 'Default'
PrintOptions.PrintOnSheet = 0
ReportOptions.CreateDate = 41501.837644895830000000
ReportOptions.LastChange = 41501.837644895830000000
ScriptLanguage = 'PascalScript'
ScriptText.Strings = (
'begin'
''
'end.')
Left = 24
Top = 24
Datasets = <>
Variables = <>
Style = <>
object Data: TfrxDataPage
Height = 1000.000000000000000000
Width = 1000.000000000000000000
end
object Page1: TfrxReportPage
PaperWidth = 210.000000000000000000
PaperHeight = 297.000000000000000000
PaperSize = 9
object Line1: TfrxLineView
Left = 79.370130000000000000
Top = 52.913420000000000000
Width = 461.102660000000000000
Height = 71.811070000000000000
ShowHint = False
Diagonal = True
end
end
end
object frxDesigner1: TfrxDesigner
DefaultScriptLanguage = 'PascalScript'
DefaultFont.Charset = DEFAULT_CHARSET
DefaultFont.Color = clWindowText
DefaultFont.Height = -13
DefaultFont.Name = 'Arial'
DefaultFont.Style = []
DefaultLeftMargin = 10.000000000000000000
DefaultRightMargin = 10.000000000000000000
DefaultTopMargin = 10.000000000000000000
DefaultBottomMargin = 10.000000000000000000
DefaultPaperSize = 9
DefaultOrientation = poPortrait
TemplatesExt = 'fr3'
Restrictions = []
RTLLanguage = False
Left = 56
Top = 24
end
end

همون طور که می بینید اولین سطح frxReport1 هست. در frxReport1 یک Page1 هست و در Page1 همون خطی هست که گذاشتیم: Line1

همین کار رو ران تایم انجام می دیم:


procedure TForm1.Button1Click(Sender: TObject);
var
Line1: TfrxLineView;
begin
Line1 := TfrxLineView.Create(frxReport1);
with Line1 do
begin
Parent := frxReport1.Pages[1];
Left := 79.370130000000000000;
Top := 52.913420000000000000;
Width := 461.102660000000000000;
Height := 71.811070000000000000;
ShowHint := False;
Diagonal := True;
end;

frxReport1.DesignReport;
end;



این متد رو می تونید برای تمام کارهایی که در فست انجام می دید اشاعه بدید.
به سادگی هر کاری رو که در زمان طراحی می تونید کنید در زمان اجرا هم می تونید انجام بدید.
فقط باید حواستون باشه که کامپوننت های مربوطه رو روی فرم قرار بدید و یونیت های لازم رو هم یوز کنید و حواستون به تو رفتگی های View as Text یا همون DFM فرم باشه.
موفق باشید.

sara.mahdavi
جمعه 25 مرداد 1392, 07:25 صبح
خیلی ممنون :چشمک:

توی این روش چطوری میتونم بعنوان مثال:
مقدار خاصیت Top شئ Line رو از یکجا دیگه پاس بدم ؟؟(مثلا برابر با یک فیلد در جدول بانک اطلاعاتی)

یوسف زالی
جمعه 25 مرداد 1392, 10:54 صبح
اشیایی که در فست درست می کنید دقیقا مثل اشیایی مثل دکمه و این چیز ها هست.
با داشتن Instance اون (در اینجا Line1) در هر جای برنامه می نویسید:
Line1.Top := 100
حالا این صد رو از هر جا خواستید بیارید.

sara.mahdavi
جمعه 25 مرداد 1392, 17:11 عصر
ممنون

من داشتم یک کار دیگه میکردم :گیج:

من این تغییرات رو داشتم توی قسمت View as Text انجام میدادم بخاطر همون نمیشد به جای دیگه پاس بدم

با تشکر:چشمک: