نمایش نتایج 1 تا 8 از 8

نام تاپیک: چگونگی ایجاد گزارش بصورت شناور

  1. #1

    Arrow چگونگی ایجاد گزارش بصورت شناور

    سلام
    چطور میشه گزارشی ایجاد نمود که ستون گزارش ( فیلدها) توسط کاربر انتخاب و از انتخاب کاربر گزارش گرفته شود اگر کسی روش یا نمونه برنامه داره ممنونم که من را راهنمایی کنید

  2. #2
    کاربر جدید
    تاریخ عضویت
    آذر 1384
    محل زندگی
    Tabriz
    پست
    8
    سلام
    ما راه حلی که پیدا کردیم این بود : یک جدول که حاوی نام فیلدها هست رو ایجاد کردیم (برنامه ای نوشتیم که با ایجاد این جدول فیلدها در SQL Server ایجاد میشه) برای ایجاد گزارشی بصورت شناور اول این جدول رو Browse کردیم دادیم در اختیار کاربر هر چند تا فیلد دوست داره انتخاب میکنه بعد اون انتخاب شده ها رو توی یک Recordset می ریزیم داخل loop قرار میدیم. مثال:

    Do Until rs2PYparameter1.EOF
    ,SELECT PYsalary1.FinanceYear, PYsalary1.MonthNo, PYsalary1.EmployeeNo
    .PYsalary1
    (("Trim(rs2PYparameter1.Fields("ParameterLatinNa me

    rs2PYparameter1.MoveNext
    If rs2PYparameter1.EOF = False Then
    Union
    End If
    Loop
    ولی برنامه هایی هست که Report Designer هستند اگه راه حلی پیدا کردین به ما هم بگین

  3. #3
    اگر از ویرایش Developer کریستال رپورت استفاده کنی میتونی این کار رو به راحتی انجام بدی

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1382
    محل زندگی
    gh_fereydonpoor@yahoo.com
    پست
    198
    سلام به Erfan_eng
    می شه خواهش کنم که توضیح بیشتری بدهید که چطوری توی report اون فیلدهارو بصورت خودکار اضافه کردید؟
    من هر کاری کردم نتونستم.
    مرسی ممنون
    یا علی

  5. #5

    Exclamation

    SQLReport گزارش ساز بانکهای اطلاعاتی SQLServer -Oracle -Access

    http://www.developercenter.ir/Forum/...read.php?t=164

  6. #6
    کاربر جدید
    تاریخ عضویت
    آذر 1384
    محل زندگی
    Tabriz
    پست
    8

    Cool

    نقل قول نوشته شده توسط gh_fereydonpoor
    سلام به Erfan_eng
    می شه خواهش کنم که توضیح بیشتری بدهید که چطوری توی report اون فیلدهارو بصورت خودکار اضافه کردید؟
    من هر کاری کردم نتونستم.
    مرسی ممنون
    یا علی
    همونطوری که قبلا هم گفتم یه Table ایجاد کردیم که حاوی فیلدهاست. از ListView هم استفاده کردیم برای نمایش این Table . یعنی Browse کردیم ریختیم تو listView

    Private Function FillSourceListViewParameter() As Boolean
    Dim I As Integer
    Dim itmFound As ListItem

    SourceListViewParameter.ListItems.Clear
    FillSourceListViewParameter = True

    If rs1PYparameter1.BOF = True And rs1PYparameter1.EOF = True Then
    FillSourceListViewParameter = False
    "MsgBox "No Parameter
    Exit Function
    End If

    rs1PYparameter1.MoveFirst
    I = 1

    Do Until rs1PYparameter1.EOF
    Set itmFound = TargetListViewParameter. _
    FindItem("" & rs1PYparameter1.Fields("ParameterLatinName"), lvwText, , lvwPartial)
    If itmFound Is Nothing Then ' If no match, inform user and exit.
    Set ListViewItem = SourceListViewParameter.ListItems.Add()
    ListViewItem.Text = "" & rs1PYparameter1.Fields("ParameterLatinName")
    ListViewItem.ForeColor = vbRed
    ' SourceListView.ListItems(i).ListSubItems.Add , , "" & rsBKaccount4.Fields("AccountLevel3")
    SourceListViewParameter.ListItems(I).ListSubItems. Add , , "" & Trim(rs1PYparameter1.Fields("ParameterFarsiName"))
    SourceListViewParameter.ListItems(I).ListSubItems. Add , , "" & rs1PYparameter1.Fields("ParameterType")
    SourceListViewParameter.ListItems(I).ListSubItems. Add , , "" & rs1PYparameter1.Fields("ParameterSign")
    I = I + 1
    End If

    rs1PYparameter1.MoveNext

    Loop
    SourceListViewParameter.Refresh

    End Function

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1383
    محل زندگی
    تهران
    پست
    62
    با سلام

    دوستان اجازه بدید روشی رو که من ازش استفاده کردم و تقریبا 99% از خواسته های من و کارفرمای من رو جواب داده خدمت شما و سایر دوستانی که تمایل به استفاده از این روش دارن رو عرض کنم.
    اولا من از VB6 و CR10 Advanced Developer Edition استفاده می کنم و نمی دونم که این قابلیت آیا در dot Net هم هست یا نه؟
    درثانی من یه ریپورت جدید طراحی کردم و فقط query خودم رو بهش معرفی کردم و هیچ Object دیگه ای به اون اضافه نکردم. در کدهای فرمی که گزارش رو به کاربر نشون می دم (منظورم همون فرمی هست که ocx کریستال ریپورت توی اون قرار داره) کدهای زیر رو می نویسم:

    Dim rsReport As New ADODB.Recordset
    Dim Report As New CrystalReport

    Private Sub Form_Load()
    rsReport.Open "Select * From query"
    Report. Database.SetDataSource rsReport
    Report. DiscardSavedData

    Report.DetailSection1.AddFieldObject [field],[left],[top]

    Report.ReadRecords
    CRViewer.ReportSource = Report
    Screen.MousePointer = vbHourglass
    CRViewer.ViewReport
    Screen.MousePointer = vbDefault
    End Sub

    در این حالت شما باید بجای عبارت [field] نام فیلدی رو که کاربر انتخاب کرده رو قید کنید و باید از رسم الخط "{query.fieldname}" استفاده کنید.

    نکته دیگه اینه که من یه table تعریف کردم که توی اون در هر رکوردی اسم فیلد query رو نوشتم و یه فیلد هم از نوع Boolean تعریف کردم که وقتی کاربر فیلدی از query رو انتخاب می کنه، من مقدار اون رو True می کنم و در قسمت اضافه کردن Objectها به ریپورتم تمامی فیلدهائی رو که کاربر انتخاب کرده با استفاده از این روش بهش نشون می دم.

    شاید یه کم براتون این روش گیج کننده باشه، ولی اگر ساختار طراحی Tableها و queryهای شما منطقی باشن اون وقت متوجه می شید که خیلی راحت با این روش می تونید از گزارش پویا استفاده کنید. این نکته رو هم یادآوری کنم که من حتی سایز کاغذ رو هم متغیر تعریف کردم. یعنی بصورت پیش فرض کاغذ من A4 عمودی هست و با افزایش طول گزارش اون رو بصورت افقی در میارم و اگر باز هم طول گزارش بیشتر شد از کاغذ A3 استفاده می کنم.

    در پایان باید اضافه کنم که برای استفاده از این روش می تونید از سمپل خود کریستال ریپورت به آدرس Program Files\Crystal Decision\Crystal Reports 10\Samples\En\Code\RDC\Visual Basic\Pro Athlete Salaries هم استفاده کنید. من بعضی از کارهام رو از اینجا ایده گرفتم.

    امیدوارم که این مختصر توضیح جرقه ای برای ذهن دوستان جوان و فعال باشه تا با پشتکار بیشتر (و البته یه کمی هم صبر و حوصله) به آرزوهاشون برسن.

    موفق باشید.

  8. #8
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    MEBAKHSHID FARSI NEMENEVISAM . FONTHAM GATI KARDE . YEK SOAL VAGTE AZ KARBAR ESM FIELD HA RO SOAL KARDIM . KHOB SARBARG ONHA RO CHIKAR KOINM ONHAM BAYAD BA ENTEKHAB AVAZ BESHEH

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •