PDA

View Full Version : سوال: سورت دلخواه در گزارش



Rasool-GH
سه شنبه 22 آذر 1390, 22:37 عصر
سلام
من یک فرم گزارش دارم که به وسیله تنظیم پارامترهای موجود در اون انواع گزارشات رو میگیرم ولی شیوه سورت شدن گزارش رو نمیتونم کنترل کنم . در صورت امکان راهنمایی کنید که چطور میتونم مثلا با علامت زدن یک چک باکس به کوئری بگم که بر اساس کدوم فیلد یا فیلدها سورت بشه . ممنون

Abbas Amiri
سه شنبه 22 آذر 1390, 22:54 عصر
شما در خود فرم می توانیددر رخداد Lable ، Click مربوط به فیلد تایپ کنید
"Me.OrderBy="FieldName
Me.OrderByOn=True

Rasool-GH
سه شنبه 22 آذر 1390, 23:10 عصر
اقای امیری این کار باعث میشه که بر اساس یک فیلد سورت انجام بشه یا چند فیلد هم امکان داره ؟؟
من نیاز دارم که به طور مثال در فرم میتونم تعیین کنم که کوئری بر اساس تاریخ ... تا ... و شماره شناسایی و اولویت و ... ایجاد بشه . حالا میخوام یک سری چک باکس داشته باشم که مقابل همین فیلدها در فرم قرار بگیره و اگه من هر کدوم رو زدم گزارش بر اساس اون سورت بشه و اگه دوتاشو زدم گزارشی تهیه بشه که در اون بر اساس دو پارامتر سورت انجام بشه .

الان یه نمونه میزارم

Rasool-GH
دوشنبه 28 آذر 1390, 12:42 عصر
سلام اقاي اميري
در اين ريپورت چطور ميشه كاري كرد كه با انتخاب هر چك ليست سورت هم بر اساس همون انجام بشه

Abbas Amiri
دوشنبه 28 آذر 1390, 20:00 عصر
فایلتان اصلاح شد

Rasool-GH
دوشنبه 28 آذر 1390, 21:16 عصر
بابت اصلاح برنامه و همچنین شروط IF ممنون
ولی مشکلی هست . اگر توجه کنید گزارش درست نیست . یعنی در مورد C1 , C2 اصلا گزارش نتیجه نداره و در C3 هم نتیجه وجود داره ولی سورت انجام نشده .
شرمنده که باعث زحمت میشم

Abbas Amiri
دوشنبه 28 آذر 1390, 22:05 عصر
بجای علامت بزرگتر ، مساوی درج شده بود . سورت ها هم اصلاح شد.

Rasool-GH
سه شنبه 29 آذر 1390, 08:54 صبح
اقا ممنون بابت كمك خوبت

در اين كد فرقي ميكنه كه جاي كد قرمز با ابي عوض بشه ؟

Private Sub list_Click()
Dim strFilter As String, strSort As String
strFilter = "(1)"
If C1 Then
strFilter = "TFL > " & TransFull
strSort = "TFL,"
End If

If C2 Then
strFilter = strFilter & " AND TPFl > " & TransPhasFull
strSort = "TPFl,"
End If
If C3 Then
strFilter = strFilter & " AND TUB > " & transunb
strSort = "TUB,"
End If
DoCmd.OpenReport "GozaresheB", acViewPreview, , strFilter
If strSort <> "" Then
strSort = Left(strSort, Len(strSort) - 1)
Report_GozaresheB.OrderBy = strSort
Report_GozaresheB.OrderByOn = True
End If
DoCmd.Restore
End Sub



DoCmd.OpenReport "GozaresheB", acViewPreview, , strFilter
If strSort <> "" Then
strSort = Left(strSort, Len(strSort) - 1)
Report_GozaresheB.OrderBy = strSort
Report_GozaresheB.OrderByOn = True
End If

Abbas Amiri
سه شنبه 29 آذر 1390, 18:16 عصر
اولا اگر می خواهید تمام سورت ها اعمال شود یک اصلاح در قسمت ذیل انجام دهید و درجواب سوالتان باید گزارشتان باز باشد تا سورت اعمال شود


If C2 Then
strFilter = strFilter & " AND TPFl > " & TransPhasFull
strSort = strSort & "TPFl,"
End If
If C3 Then
strFilter = strFilter & " TUB > " & transunb
strSort = strSort & "TUB,"
End If

Rasool-GH
سه شنبه 29 آذر 1390, 20:17 عصر
ممنون
من متوجه اشکال در سورت اخر شدم ولی متوجه نشدم جرا در یک خط AND استفاده شده ولی در خط بعد استفاده نشده

Abbas Amiri
سه شنبه 29 آذر 1390, 21:20 عصر
همان AND مورد نظر استفاده شود تغییرات فقط شامل رشته سورت می شود.