PDA

View Full Version : مشکل فست با چند masterdata



matinebi
جمعه 19 آذر 1389, 16:05 عصر
با سلام
چطور صفحه ای که clumns آن مساوی با 3 هست در هر ستون یک masterdata قرار داد??

{میخواهم هر masterdata را به یک جدول مجزا متصل کنم}

با تشکر

یک ستون ساعات غیبت
یک ستون ساعات تاخیر
یک ستون مشکلات انظباطی

matinebi
جمعه 19 آذر 1389, 22:16 عصر
63433
میخوام غیبت کنار تاخیر قرار گیرد نه زیر آن

vcldeveloper
شنبه 20 آذر 1389, 00:22 صبح
چطور صفحه ای که clumns آن مساوی با 3 هست در هر ستون یک masterdata قرار داد??
وقتی سه ستون تعریف می کنید، منظور از آن سه صفحه کنار هم نیست؛ بلکه سه ستون در یک صفحه هست که در صورتی که مجموع داده ها بیش از اندازه هر ستون باشد، مابقی داده در ستون بعدی درج می شود؛ یعنی اگر تعداد گزینه های شما بیش از طول ستون اول بود، بعد از پر شدن ستون اول، داده در ستون دوم درج می شود، و بعد از پر شدن ستون دوم، در ستون سوم، و الی آخر. پس برداشت شما از ستون ها اشتباه هست.

شما که میخواید به به ازاء هر سطر، هم ساعت غیبت، هم ساعت تاخیر، و هم مشکلات انظباطی را داشته باشید، می تونید همه اینها را با یک کوئری به دست بیارید، و یک master band برای همان یک کوئری ایجاد کنید، و کل ستون ها را روی آن باند طراحی کنید؛ یا اینکه از cross-tab object برای ایجاد جدول با شکل و شمایل دلخواه خودتان استفاده کنید.

matinebi
شنبه 20 آذر 1389, 08:15 صبح
همه اینها را با یک کوئری به دست بیارید، و یک master band برای همان یک کوئری ایجاد کنید، و کل ستون ها را روی آن باند طراحی کنید؛


چطور میتونم کل ستون ها را روی یک باند طراحی کنم لطفا بیشتر راهنمایی کنید
چون باید data set آن master band را به به یک جدول وصل کرد و فقط محتویات آن جدول را به درستی نمایش میدهد اگر frxDBDataset ای که به جدول دیگری متصل است در آن قرار دهم داده ها را به صورت تکراری نمایش میدهد
در صورت امکان مثالی بزنید

hossein_h62
شنبه 20 آذر 1389, 08:47 صبح
چطور میتونم کل ستون ها را روی یک باند طراحی کنم لطفا بیشتر راهنمایی کنید
چون باید data set آن master band را به به یک جدول وصل کرد و فقط محتویات آن جدول را به درستی نمایش میدهد اگر frxDBDataset ای که به جدول دیگری متصل است در آن قرار دهم داده ها را به صورت تکراری نمایش میدهد
در صورت امکان مثالی بزنید
دوست عزیز از view استفاده کنید.جدولهای مورد نظرتون رو join کنید و بعد هم بوسیله یک frxDBDataset از اونها در فست استفاده کنید.

matinebi
یک شنبه 21 آذر 1389, 17:43 عصر
دوست عزیز چطور باید از join و frxdbdataset استفاده کرد لطفا مشکل کد زیر را که مقدار تکراری از جدول تاخیر برمیگرداند را بگویید

DataModule2.ADOQuery3.SQL.Clear;
DataModule2.ADOQuery3.SQL.Add('select time_stick.date1,time_stick.time1,time_absent.date 2,time_absent.time2');
DataModule2.ADOQuery3.SQL.Add('from time_stick');
DataModule2.ADOQuery3.SQL.Add('inner join time_absent');
DataModule2.ADOQuery3.SQL.Add('on time_stick.id=time_absent.id');
DataModule2.ADOQuery3.SQL.Add('where((time_stick.d ate1 between '''+ComboBox28.Text+'/'+ComboBox27.Text+'/'+ComboBox26.Text+''' and '''+ComboBox31.Text+'/'+ComboBox29.Text+'/'+ComboBox30.Text+''')and time_stick.id ='''+sLabel30.Caption+''')');
DataModule2.ADOQuery3.Open;

DataModule2.frxReport1.ShowReport;

hossein_h62
یک شنبه 21 آذر 1389, 19:45 عصر
دوست عزیز چطور باید از join و frxdbdataset استفاده کرد لطفا مشکل کد زیر را که مقدار تکراری از جدول تاخیر برمیگرداند را بگویید

DataModule2.ADOQuery3.SQL.Clear;
DataModule2.ADOQuery3.SQL.Add('select time_stick.date1,time_stick.time1,time_absent.date 2,time_absent.time2');
DataModule2.ADOQuery3.SQL.Add('from time_stick');
DataModule2.ADOQuery3.SQL.Add('inner join time_absent');
DataModule2.ADOQuery3.SQL.Add('on time_stick.id=time_absent.id');
DataModule2.ADOQuery3.SQL.Add('where((time_stick.d ate1 between '''+ComboBox28.Text+'/'+ComboBox27.Text+'/'+ComboBox26.Text+''' and '''+ComboBox31.Text+'/'+ComboBox29.Text+'/'+ComboBox30.Text+''')and time_stick.id ='''+sLabel30.Caption+''')');
DataModule2.ADOQuery3.Open;

DataModule2.frxReport1.ShowReport;

ساختار جدولاتون رو ذکر کنید. در ضمن با اکسس کار میکنید یا sql server و یا چیز دیگه ؟

matinebi
یک شنبه 21 آذر 1389, 22:35 عصر
بانک sql server 2000 جداول:time_stick و time_absent و problem و ...

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

with DataModule2.ADOQuery3 do
begin
SQL.Clear;
SQL.Add('select time_stick.date1,time_stick.time1,time_absent.date 2,time_absent.time2,problem.date3,problem.problem' );
SQL.Add('from time_stick');
SQL.Add('inner join time_absent');
SQL.Add('on time_stick.id=time_absent.id');
SQL.Add('inner join problem');
SQL.Add('on time_absent.id=problem.id');
SQL.Add('where((time_stick.date1 between '''+ComboBox28.Text+'/'+ComboBox27.Text+'/'+ComboBox26.Text+''' and '''+ComboBox31.Text+'/'+ComboBox29.Text+'/'+ComboBox30.Text+''')and time_stick.id ='''+sLabel30.Caption+''')');
Open;
end;
DataModule2.frxReport1.ShowReport;

63517

که باید به صورت شکل زیر نمایش دهد
http://matinebi.persiangig.com/3.JPG

vcldeveloper
دوشنبه 22 آذر 1389, 00:35 صبح
اما طبق شکلی که میبینید داده های تکراری نمایش داده میشود
می تونید از باند Group Header استفاده کنید

matinebi
جمعه 03 دی 1389, 17:48 عصر
می تونید از باند Group Header استفاده کنید

لطفا در مورد طریقه استفاده از باند Group Header توضیح دهید هر چی سرچ کردم طریقه استفاده از اون رو ندیدم
ضمنا قسمت main سمپل خود فست ریپورت هم دیدم مطلبی که در مورد باند Group Header نداشت

با تشکر

hossein_h62
یک شنبه 05 دی 1389, 15:51 عصر
چطور صفحه ای که clumns آن مساوی با 3 هست در هر ستون یک masterdata قرار داد?
سلام دوست عزیز
در تب Other Option قسمت Page Option ، میتونی حداکثر تا 100 Columns اضافه کنی و روی هر ستون هم یک masterdata قرار بدی.

vcldeveloper
یک شنبه 05 دی 1389, 16:58 عصر
در تب Other Option قسمت Page Option ، میتونی حداکثر تا 100 Columns اضافه کنی و روی هر ستون هم یک masterdata قرار بدی.
اون حالت امکان تعریف محتوای مختلف در ستون ها را فراهم نمیکنه، بلکه طراحی فقط در یک ستون انجام میشه، و هر زمان فضای آن ستون پر شد، داده ها در ستون بعدی نوشته میشند.

matinebi
یک شنبه 05 دی 1389, 22:56 عصر
اون حالت امکان تعریف محتوای مختلف در ستون ها را فراهم نمیکنه، بلکه طراحی فقط در یک ستون انجام میشه، و هر زمان فضای آن ستون پر شد، داده ها در ستون بعدی نوشته میشند

فکر نمیکنم group header که شما پیشنهاد دادین بتونه مشکل منو حل کنه(با توجه به تصویری که قرار دادم)
اگه امکان داره نمونه مشابهی مثال بزنید که با group header چنین کاری انجام شده است

با تشکر

matinebi
سه شنبه 07 دی 1389, 13:42 عصر
چون frxDBDataset به ازای هر رکورد موجود در دیتاست متصل به باند،‏ یک بار چاپ میشود داده های تکراری ایجاد میگردد.
چون میخام از یک master data استفاده کنم و با دستور join از ۳ تا جدول داده بگیرم و تعداد فیلدهای موجود در هر جدول با هم متفاوت است مشکل داده های تکراری طبق شکل پیش میاد.
با Group Header هم نتونستم مشکل رو حل کنم(شاید روشم اشتباه بوده)
لطفا راهنمایی کنید

bootshow
پنج شنبه 07 بهمن 1389, 00:38 صبح
از union و ... استفاده کن.
http://sql.persianblog.ir/post/18
در این سایت (http://www.macromediax.com/learn/archive.asp?id=84) مقالات پایین صفحه را هم حتما بخون.

matinebi
شنبه 16 بهمن 1389, 12:43 عصر
با union نیز مشکل حل نشد

اینم لینک بانک:
http://www.persiangig.com/pages/download/?dl=http://matinebi.persiangig.com/bank.zip