PDA

View Full Version : عوض کردن جای ستون و سطر در dbgrid ؟



V60
شنبه 14 مهر 1386, 07:48 صبح
سلام
چطور می تونم جای سطر و ستون را در dbgrid تغییر بدهم. یعنی رکوردها به جای اینکه به صورت افقی نمایش داده شوند به صورت عمودی نمایش داده شوند و هر رکورد یک ستون را تشکیل بدهد.
متشکر

farhad110
شنبه 14 مهر 1386, 11:15 صبح
سلام، چرا میخوای همچین کاری رو انجام بدی؟ شکل جالبی نداره
ولی اگر نیاز هست میتونی بوسیله DbCtrlGrid در همون تب data control این کار رو انجام بدی
موفق باشی

farhad110
شنبه 14 مهر 1386, 17:14 عصر
با سلام
برای جابجایی ستونها می توانی از دستور زیر را استفاده کنید.


DBGrid_ListGroup.Columns[0].Index := 1;
برای جابجایی سطرها هم می توانی Sort کنید.
موفق باشید

فکر نمیکنم منظور v60 این باشه. چون اینطوری فقط ترتین ستوانها عوض میشه

V60
شنبه 14 مهر 1386, 23:06 عصر
سلام
فرهاد من کامپوننت را گذاشتم وصلش هم کردم ولی رکوردی را نشون نمی ده
توی راهنمای دلفی هم رفتم ولی چیزی متوجه نشدم چه تنظیماتی را باید انجام بدهم
راستی در مورد سوالی که پرسیده بودی که چه مزیتی داره: بعضی وقتها شما نیاز دارید که در صورتهای مالی روند بررسی بشه یعنی یک عددی را نسبت به سالهای گذشته اش بررسی کنند . حالا اگر بخواهند به همان صورت عادی از dbgrid استفاده کنم به علت اینکه این صورتهای مالی ممکن است بعضا تا 50 فیلد هم داشته باشد فرد برای بررسی کردن این روند باید نوار را به سمت راست بکشد و در هر دفعه کشیدن ( به علت بلندی نام فیلد) فقط چند تا را ببینه که اینجوری سرش گیج می ره و قاطی می کنه ولی اگر جابه جایی اتفاق بیافته خیلی راحت با بالا و پایین کردن در دو صفحه کل اطلاعات ر ا خواهد دید.

farhad110
شنبه 14 مهر 1386, 23:21 عصر
سلام
فرهاد من کامپوننت را گذاشتم وصلش هم کردم ولی رکوردی را نشون نمی ده
توی راهنمای دلفی هم رفتم ولی چیزی متوجه نشدم چه تنظیماتی را باید انجام بدهم


برای هر فیلدی که میخوای نمایش بدی، DbText رو از تب data control روی CtrlGrid قرار بده و خاصیت datafield رو تنظیم کن.



راستی در مورد سوالی که پرسیده بودی که چه مزیتی داره: بعضی وقتها شما نیاز دارید که در صورتهای مالی روند بررسی بشه یعنی یک عددی را نسبت به سالهای گذشته اش بررسی کنند
.
.
.


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

hedayat
دوشنبه 16 مهر 1386, 10:04 صبح
چیزی که شما می خواین بهش میگن Pivot و می تونی به صورت کامل اونو با SQL 2005 درست کنی و ضمنا EXcel و Acsess نیز چنین چیزی رو پشتیبانی میکنن که معمولا هم برای صورت های مالی و کاربرگ ها استفاده می شه
اما در دلفی در تب Decision Cube کامپاننتی به نام DecisionQuery1 و DecisionGrid1 وجود داره که می تونه کار PIVOt رو انجام بده .
با تب Decision Cube کار کنین فقط برای این جور موارده.

V60
دوشنبه 16 مهر 1386, 22:51 عصر
سلام
آقا فرهاد اینو که شما گفتی من امتحان کردم ولی اون چیزی که می خواستم این نیست.
ببینید وقتی dbgrid عادی را روی یک صفحه می ذاریم ردیف اول این دبی گرید می شه اسم خود فیلد ها را می بینیم درسته ؟ و زیر هر کدام از این فیلدها هم مقدار مربوط به هر رکورد از همان فیلد مشاهده می شود . این کامپوننتی که شما معرفی کردید ( البته از اینکه به این واسطه با این کامپوننت و شما آشنا شدم خوشحالم) هم همان نحوه عملکرد dbgrid را دارد یعنی همانجوری نشان می دهد .
چیزی که من می خواهم این است که به جای اینکه در ردیف اول اسم فیلدها نوشته شود در ستون اول این اسمها نوشته شود و به جای اینکه زیر هر فیلد مقدار همان فیلد از رکوردها نشان داده شود ، جلوی هر ستون و هر فیلد مقدار مربوطه از هر رکورد نشان داده شود ( امیدوارم گیجتان نکرده باشم با این انشاء بد)

جناب هدایت
از لطفتان و این کامپوننت متشکرم ، ولی من یک مشکل اساسی در استفاده کردن از این کامپوننت دارم من از ado ها استفاده می کنم و استفاده از آنها برای دیتابیس های اکسس خیلی راحت است و از درون خود کامپوننت آدرس دقیق دیتابیس اکسس را انتخاب می کنیم ولی در این کامپوننتی که شما معرفی کردید من این قسمت را پیدا نمی کنم و نتوانستم اصلا ببینم این کامپوننت همان چیزی هست که من می خواهم یا نه ، البته در پروپرتی قسمتی دارد که نوشته databasename و در آن ms access database وجود دارد ولی فکر کنم اگر بخواهم از این استفاده کنم باید بروم در bde کامپیوتر و دیتابیس خود را تعریف کنم که من بلد نیستم و البته ممکن است که اصلا اینگونه نباشد و من اشتباه می کنم که شما می توانید من را از اشتباه در آورید . متشکرم

farhad110
سه شنبه 17 مهر 1386, 07:38 صبح
چیزی که من می خواهم این است که به جای اینکه در ردیف اول اسم فیلدها نوشته شود در ستون اول این اسمها نوشته شود و به جای اینکه زیر هر فیلد مقدار همان فیلد از رکوردها نشان داده شود ، جلوی هر ستون و هر فیلد مقدار مربوطه از هر رکورد نشان داده شود

شما باید خصوصیات CtrlGrid رو به صورت زیر تغییر بدی تا به چیزی که میخوای تبدیل شه:


ColCount=6
Orientation=goHorizontal
RowCount=1

البته مقدار ColCount رو با توجه به نیاز میتونی تغییر بدی. برای نمایش title ها هم باید از Label ها در کنار کامپوننت استفاده کنی.
موفق باشی

V60
سه شنبه 17 مهر 1386, 21:59 عصر
سلام آقا فرهاد
متشکر از راهنماییتون
فقط یک مشکل، با اضافه کردن ردیف مشکل حل نمی شه
ولی یک جوری فقط می شه مشکل را حل کند ، اینکه برای هر فیلد یکی از این کامپوننت ها گذاشت ، به جز این کاری می شه کرد؟

farhad110
چهارشنبه 18 مهر 1386, 07:17 صبح
سلام آقا فرهاد
متشکر از راهنماییتون
فقط یک مشکل، با اضافه کردن ردیف مشکل حل نمی شه
ولی یک جوری فقط می شه مشکل را حل کند ، اینکه برای هر فیلد یکی از این کامپوننت ها گذاشت ، به جز این کاری می شه کرد؟

لطفا واضح تر توضیح بده! منظورتو نفهمیدم

V60
سه شنبه 24 مهر 1386, 19:20 عصر
سلام
ببخشید من چند روز نبودم
ببینید ، اگر بخواهیم بر فرض 6 ردیف داشته باشیم ، باید شش تا کامپوننت بذاریم وگرنه قاطی می شه ، یعنی فقط کامپوننت dbtext را می شه تو ردیفه اول قرار داد و اگر سه ردیف و سه ستون باشه در هر 9 خانه به وجود آمده ، اطلاعات همان یک فیلد را در 9 خانه می ریزه ، البته مربوط به 9 رکورد.
ولی من اطلاعات 3 فیلد را می خواهم مربوط به 3 رکورد
امیدوارم منظورم را درست رسانده باشم.
امتحان بکنید !

farhad110
چهارشنبه 25 مهر 1386, 14:13 عصر
سلام
باز هم نگرفتم چی شد، یه سورس از کاری که انجام دادی آماده کن و اینجا بذار