ورود

View Full Version : نحوه چینش فیلد



محمد رضا بهبودی
پنج شنبه 13 دی 1397, 12:50 عصر
با سلام و احترام
من در جدول یک فیلد که با متن پر شده ، یک فیلد تاریخ و یک فیلد ساعت دارم . این جدول شرح اقداماتی است که یک کاربر در زمان ورود به برنامه تا زمان خروج از برنامه انجام داده است می باشد. حالا می خواهم در یک گزارش این اقدامات بر اساس تاریخ و ساعت انجام به صورت نموداری پشت سرهم درج گردد منظورم این است که ابتدا کار اول و بعد با یک خط به کار دوم وصل شود مطابق شکل پیوست . لطفا در صورت امکان راهنمائی بفرمائید

محمد رضا بهبودی
یک شنبه 16 دی 1397, 09:48 صبح
سلام
لطفا اساتید محترم راهنمائی فرمایند

Ali_Fallah
یک شنبه 16 دی 1397, 21:57 عصر
سلام
برنامه رو اینجا قرار بده

محمد رضا بهبودی
دوشنبه 17 دی 1397, 08:29 صبح
با سلام و احترام
استاد گرامی ممنون از اینکه به سوال من توجه نمودید
فایل را جهت جنابعالی پیوست کردم . در این فایل می خواهم گزارش گرفته شده شبیه فایل ورد قبلی باشد . ممنون

Ali_Fallah
دوشنبه 17 دی 1397, 21:28 عصر
هرچند ظاهرا نمونه برنامه شما کامل نیست
ولی به نظر میرسه که شما باید برای هر کدام از فعالیتها یک کد تعریف کنید و چینش فیلدها هم براساس کد باشه
علاوه بر 5 فعالیتی که تعریف کردید حذف و ویرایش رو هم میشه اضافه کرد.
در نهایت از طریق کوئری میشه هر کدام از فعالیتها رو فیلتر کرد و بر اساس کد شناسایی کاربر به اون خواسته شما در یک گزارش رسید.

محمد رضا بهبودی
سه شنبه 18 دی 1397, 06:48 صبح
با سلام و احترام
دوست عزیز فکر کنم نتوانسته ام منظورم را درست بیان کنم
من می خواهم هر تعداد فعالیتی که در یک بازه زمانی قابل انتخاب وجود دارد به صورت درختی پشت سرهم نمایش داده شود تا بایک نگاه متوجه شویم کاربر در سیستم چه اقداماتی انجام داده است

mazoolagh
سه شنبه 18 دی 1397, 11:50 صبح
1- حاشیه باکس دور تکسباکس رو روشن کنین
2- یک خط عمودی از پایین تکسباکس به ارتفاع مورد نظر میکشین - فرضا به اسم arrow
3- بخش detail نباید هیچ فاصله اضافی از بالا و پایین داشته باشه (یعنی بالای تکسباکس و پایین خط عمودی باید)
4- تا اینجا اگر ریپورت رو چک کنین پایین آخرین تکسباکس یک خط عمودی اضافی هست که باید حذف بشه.
فرض میکنیم ترتیب رکوردهای گزارش براساس فیلد ID باشه. یک متغیر در سطح گزارش تعریف میکنین به نام maxid

dim maxid as long


وقتی گزارش رو باز میکنین بهش مقدار میدین:

sub form_open
maxid=dmax("id","tablename")
end sub


بازای هر رکورد که چاپ میشه چک میکنیم اگر به آخرین id رسیدیم خط رو چاپ نمیکنیم:

sub detail_print
if me.id=maxid then me.arrow.visible=false
end sub


5- برای زیبایی بیشتر میتونین با کارآکترهای webdings/wingdings شکل مناسب برای سر پیکان رو پیدا کنین و روی arrow بندازین.
و البته با اون هم مثل خود arrow رفتار میکنین

محمد رضا بهبودی
شنبه 22 دی 1397, 11:03 صبح
با سلام و احترام
دوست عزیز ممنون از توجه جنابعالی
ولی متاسفانه متوجه منظور شما نشدم لطفا در صورت امکان نمونه را درست بفرمائید . ممنون

mazoolagh
یک شنبه 23 دی 1397, 13:02 عصر
البته توضیحات کافی بود
ولی چون کاربرد آموزشی داره نمونه میگذارم

محمد رضا بهبودی
دوشنبه 24 دی 1397, 10:23 صبح
با سلام و احترام
ممنون از لطف جنابعالی

محمد رضا بهبودی
سه شنبه 25 دی 1397, 07:41 صبح
با سلام و احترام
استاد گرامی منتظر نمونه جنابعالی هستیم . ممنون

محمد رضا بهبودی
چهارشنبه 26 دی 1397, 07:25 صبح
با سلام و احترام
استاد گرامی همچنان منتظر نمونه هستیم

mazoolagh
پنج شنبه 27 دی 1397, 10:14 صبح
طراحی گزارش:
149630
دقت کنید که خط رابط اسمش ArrowLine هست و سه نمونه هم پیکان(ArrowHead) گذاشتم (از فونتهای webdings/wingdings)

mazoolagh
پنج شنبه 27 دی 1397, 10:15 صبح
کد مورد نیاز در گزارش:

Option Compare Database
Option Explicit
Dim MaxID As Long
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
If Me.ID = MaxID Then
Me.ArrowLine.Visible = False
Me.ArrowHead.Visible = False
Me.ArrowHead2.Visible = False
Me.ArrowHead3.Visible = False
End If
End Sub
Private Sub Report_Open(Cancel As Integer)
MaxID = DMax("id", "table1")
End Sub

mazoolagh
پنج شنبه 27 دی 1397, 10:16 صبح
خروجی گزارش:
149631

mazoolagh
پنج شنبه 27 دی 1397, 10:18 صبح
دیتابیس نمونه

محمد رضا بهبودی
پنج شنبه 27 دی 1397, 16:47 عصر
با سلام و احترام
استاد گرامی ممنون که به سوال من پاسخ دادید . ولی برنامه ارسالی جنابعالی در کامپیوتر من باز نمی شود و پیغام زیر را می دهد . لطفا راهنمائی بفرمائید . ممنون

محمد رضا بهبودی
شنبه 29 دی 1397, 07:44 صبح
با سلام و احترام
دوست عزیز مشکل حل شد . پاسخ جنابعالی دقیقا همان چیزی بود که می خواستم . از شما کمال تشکر را دارم . ممنون