PDA

View Full Version : تغيير مقدار dbcross فست ريپورت



سعید صابری
یک شنبه 09 فروردین 1388, 12:06 عصر
سلام دوستان

چطوري ميشه مقدار ستون هاي dbcross عوض كرد مثلا اگه در بانك عدد 1 باشد در گزارش مرد و اگر 0 باشد زن داشته باشيم

ممنون از راهنماييتون

vcldeveloper
دوشنبه 10 فروردین 1388, 01:22 صبح
از طریق اسکریپت نویسی در FastReport میشه این کار را کرد. تا جایی که یادم هست، خودم در همین بخش نمونه کدی هم برای این کار قرار دادم.

سعید صابری
دوشنبه 10 فروردین 1388, 09:40 صبح
از طریق اسکریپت نویسی در FastReport میشه این کار را کرد. تا جایی که یادم هست، خودم در همین بخش نمونه کدی هم برای این کار قرار دادم.


ممنون آقاي كشاورز

كدي كه شما قرار داده بودين براي memo بود من نمي دونم مقدار را در كدوم خاصيت dbcroos بزارم. البته فكر كنم
memo1.text:='مرد'
معادل اين دستور براي dbcross چيه و در كدوم رويداد ان بايد بنويسيم لطفا راهنمايي كنيد.

مرسي

vcldeveloper
دوشنبه 10 فروردین 1388, 12:52 عصر
كدي كه شما قرار داده بودين براي memo بود من نمي دونم مقدار را در كدوم خاصيت dbcroos بزارم. البته فكر كنم
memo1.text:='مرد'
معادل اين دستور براي dbcross چيه و در كدوم رويداد ان بايد بنويسيم لطفا راهنمايي كنيد.

مهم نیست. شما یک متغیر در اسکریپت خودتان تعریف کنید، و مقدار را در آن ذخیره کنید. در کنترل مربوطه بجای نام فیلد جدول، نام آن متغیر را قرار بدید. FastReport خودش مقدار ذخیره شده در متغیر را جایگزین عبارتی که نوشتید می کند. دقت کنید که نام متغیر را باید در داخل [ ] بنویسید.

سعید صابری
سه شنبه 11 فروردین 1388, 12:14 عصر
مهم نیست. شما یک متغیر در اسکریپت خودتان تعریف کنید، و مقدار را در آن ذخیره کنید. در کنترل مربوطه بجای نام فیلد جدول، نام آن متغیر را قرار بدید. FastReport خودش مقدار ذخیره شده در متغیر را جایگزین عبارتی که نوشتید می کند. دقت کنید که نام متغیر را باید در داخل [ ] بنویسید.


سلام آقاي كشاورز شرمنده! من خيلي مبتدي هستم
var
M:String;

procedure DBCross1Row0OnBeforePrint(Sender: TfrxComponent);
var
FData : integer;
begin
FData := <FRXDBDataSet1."a">;

case FData of
0 : M := 'A';
1 : M := 'B';
end;

وقتي m را در dbcroos استفاده مي كنم ارور ميده.

لطف كنيم كمكم كنيم. براي memo ارور نميده ولي در dbcroos ارور ميده .
ممنون از راهنماييتون

vcldeveloper
سه شنبه 11 فروردین 1388, 13:34 عصر
نه، وقتی Designer مربوط به فست ریپورت را باز می کنید، یک صفحه برای Code داره که می تونید درش اسکریپت بنویسید. شما باید کد خودتان را آنجا می نوشتید:


var
MyVariable : string;

procedure Page1OnBeforePrint(Sender: TfrxComponent);
var
FData : integer;
begin
FData := <MyTable."MyField">;
case FData of
0 : MyVariable := 'مرد';
1 : MyVariable := 'زن';
end;
end;

این کد، مقدار فیلد MyField از جدول MyTable را در OnBeforePrint صفحه اول گزارش می خواند، و متناسب با آن، به متغیر MyVariable مقدار می دهد.
در این صورت، اگر بجای متن آن کنترل، بنویسید [MyVariable]، مقدار متغیر MyVariable بجای آن نمایش داده می شود.

اگر میخواید داده ها رکورد به رکورد خوانده بشند، می تونید بجای OnBeforePrint صفحه، از OnBeforePrint باند Data یا جدولی که قصد دارید داده ها را در آن نمایش بدید، استفاده کنید.

سعید صابری
چهارشنبه 12 فروردین 1388, 10:28 صبح
ممنوم آقاي كشاورز

از زحمتاتتون ممنونم

كدي كه زحمتش كشيدين من استفاده كردم ولي همه onbeforeprint باند و هم صفحه و dbcroos در هر سه حالت استفاده كردم (dbcroos تعداد زن و مرد مي خوام براي جمع كنه) فقط تعداد جمع مردها را بهم داد در همه‌ي قسمت‌هاي برنامه نوشتم .....

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