PDA

View Full Version : مبتدی: نمایش تعداد سطر های یک جدول در یک تکست باکس در فرم



alinux031
جمعه 18 مرداد 1392, 14:09 عصر
سلام دوستان من می خواهم در هنگام ثبت نامه در یک نرم افزار دبیرخانه هنگام انتخاب تاریخ ثبت سیستم بصورت خودکار نامهایی که برای آن تاریخ ثبت شده است جستجو شود و تعداد آن بدست آید و در یک تکست باکس قرار گیرد مثلا کاربر در هنگام ثبت نامه جدید تاریخ نامه را 1392/5/12 انتخاب میکند و در یکی از تکست باکس های موجود در فرم این رشته قرار میگیرد "110-90" که 110 تعداد نامه های که از قبل برای سال 90 ثبت شده است بعلاوه یک می باشد چطور باید اینکار را کرد؟
برای جدول اینجو پروسیجری نوشتنم
ALTER PROCEDURE dbo.StoredProcedure13
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
@letter_filter nvarchar(20)
AS
/* SET NOCOUNT ON */
select count(*) as expr1
from letter1
where (letter_sabt like '@letter-filter')
RETURN

ولی هنگام فراخوانی در فرم خروجی ندارد و ایراد می گیرد(خط 162 تا 166)
Imports System.IO
Imports bal
Imports business_entity
Public Class sabt_letter
#Region "Variables"
Dim obj_member As letterbal
Dim Member As New entsabt
#End Region
#Region "Function"
Sub clearAll()
txtradif.Clear()

txtsader.Clear()
txtgirande.Clear()
txtdastor.Clear()

txtsabt.Clear()

txttabaghe.Text = ""
txtpeyvast.Clear()

End Sub
#End Region

#Region "FORM_LOAD"
Private Sub sabt_letter_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
obj_member = New letterbal(My.Settings("conasli"))
DataGridView1.DataSource = obj_member.fill



End Sub
#End Region

#Region "TEXTBOXS_KEYDOWN"
Private Sub txtradif_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtradif.KeyDown
If e.KeyData = Keys.Enter Then
txtparvande.Focus()
End If
End Sub

Private Sub txtparvande_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyData = Keys.Enter Then
txtsader.Focus()
End If
End Sub
Private Sub txtsader_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtsader.KeyDown
If e.KeyData = Keys.Enter Then
txtgirande.Focus()
End If
End Sub
Private Sub txtgirande_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtgirande.KeyDown
If e.KeyData = Keys.Enter Then
txtdastor.Focus()
End If
End Sub
Private Sub txtdastor_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtdastor.KeyDown
If e.KeyData = Keys.Enter Then
txttarikhn.Focus()
End If

End Sub

Private Sub txttarikhn_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyData = Keys.Enter Then
txtsabt.Focus()

End If
End Sub

Private Sub txtsabt_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtsabt.KeyDown
If e.KeyData = Keys.Enter Then
txttarikhs.Focus()
End If
End Sub

Private Sub txttarikhs_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyData = Keys.Enter Then
txttabaghe.Focus()
End If
End Sub

Private Sub txttabaghe_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txttabaghe.KeyDown
If e.KeyData = Keys.Enter Then
txtpeyvast.Focus()
End If
End Sub

Private Sub txtpeyvast_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtpeyvast.KeyDown
If e.KeyData = Keys.Enter Then
insert.Focus()
End If
End Sub


#End Region

#Region "BUTTONS"
Private Sub leave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles leave.Click
Close()
End Sub

Private Sub insert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles insert.Click



Try
ErrorProvider1.Clear()
If txtradif.Text = "" Then
ErrorProvider1.SetError(txtradif, "ردیف را وارد کنید")
ElseIf txtparvande.Text = "" Then
ErrorProvider1.SetError(txtparvande, "شماره پرونده را وارد کنید")
ElseIf txtsader.Text = "" Then
ErrorProvider1.SetError(txtsader, "صادر کننده را وارد کنید")
ElseIf txtgirande.Text = "" Then
ErrorProvider1.SetError(txtgirande, "گیرنده را وارد کنید")
ElseIf txtdastor.Text = "" Then
ErrorProvider1.SetError(txtdastor, "دستور را وارد کنید")


ElseIf txtsabt.Text = "" Then
ErrorProvider1.SetError(txtsabt, "شماره ثبت را وارد کنید")

ElseIf txtpeyvast.Text = "" Then
ErrorProvider1.SetError(txtpeyvast, "پیوست را وارد کنید")

Else


'''''''entesabe maghadir member'''''''''''
Member.letter_id = txtradif.Text
Member.letter_by = txtsader.Text
Member.letter_to = txtgirande.Text
Member.letter_time = txttarikhn.Text
Member.letter_state = txtdastor.Text
Member.letter_parvande = txtparvande.Text
Member.letter_sabt = txtsabt.Text
Member.letter_tsabt = txttarikhs.Text
Member.letter_peyvast = txtpeyvast.Text
Member.letter_tabaghe = txttabaghe.Text

''''''''''''''''''''''''''''''''''''''''''''
obj_member.insert(Member)
DataGridView1.DataSource = obj_member.fill()
clearAll()
MsgBox(" اطلاعات نامه جدید با موفقبت اضافه شد", MsgBoxStyle.Information, "")

End If

Catch ex As Exception
MsgBox("خطا در ثبت اطلاعات:اطلاعات نامه را به درستی وارد نمایید", MsgBoxStyle.Critical, "هشدار")
End Try
End Sub

#End Region
Private Sub MaskedTextBoxAdv2_MaskInputRejected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs)

End Sub



Private Sub txttarikhs_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles txttarikhs.Leave

txtsabt.Text = "ali"
txtradif.Text = obj_member.filter("90")
End Sub



Private Sub txttarikhs_ValueChanged(ByVal sender As System.Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Handles txttarikhs.ValueChanged

End Sub

Private Sub Label9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label9.Click

End Sub

Private Sub txtsabt_MaskInputRejected(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MaskInputRejectedEventArgs) Handles txtsabt.MaskInputRejected

End Sub

Private Sub GroupPanel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupPanel1.Click

End Sub
End Class

parvizwpf
جمعه 18 مرداد 1392, 20:59 عصر
میتونید چه اروری میده؟ چی میگه؟

alinux031
جمعه 18 مرداد 1392, 23:04 عصر
میتونید چه اروری میده؟ چی میگه؟
تابعی که نوشتم خروجی ای (که همان تعداد سطر می باشد)نمی دهد ارور را در زیر نوشتم:
expression does not produce a value

parvizwpf
جمعه 18 مرداد 1392, 23:09 عصر
الان واقعا نمیتونم تصمیمی بگیرم بهتره کد اون فیلتر رو هم بزاری آخه به کدوم کد این ارور رو میده؟
این چیه: obj_member.filter("90")
کدش چیه؟

alinux031
شنبه 19 مرداد 1392, 07:52 صبح
الان واقعا نمیتونم تصمیمی بگیرم بهتره کد اون فیلتر رو هم بزاری آخه به کدوم کد این ارور رو میده؟
این چیه: obj_member.filter("90")
کدش چیه؟
حق باشماست!
خطوط 35 تا 38 را نگاه کنید Getfilteredsabt همون sql ای است که در پست اول گذاشتم و یکی از پروسیجر های table می باشد که از طریق برنامه نویسی سه لایه اینجا استفاده کردم.

Imports business_entity
Public Class LETTERdal

Dim letterta As New DataSet1TableAdapters.letter1TableAdapter
Dim letterdt As New DataSet1.letter1DataTable
Dim ds As New DataSet1
Dim letter As New entsabt

Sub New(ByVal pconstr As String)
letterta.Connection.ConnectionString = pconstr


End Sub

Function get_letter() As DataSet1.letter1DataTable
letterta.ClearBeforeFill = True
Return letterta.GetData
End Function
Function fill_dataset_letter() As DataSet1
letterta.Fill(ds.letter1)
Return ds
End Function
Sub insert_letter(ByVal pletter As entsabt)
letterta.insertnewletter(pletter.letter_id, pletter.letter_by, pletter.letter_to, pletter.letter_time, pletter.letter_state, pletter.letter_parvande, pletter.letter_sabt, pletter.letter_tsabt, pletter.letter_tabaghe, pletter.letter_peyvast)


End Sub
Sub update_letter(ByVal pletter As entsabt)
letterta.update1(pletter.letter_id, pletter.letter_by, pletter.letter_to, pletter.letter_parvande, pletter.letter_time, pletter.letter_state,
pletter.letter_sabt, pletter.letter_tsabt, pletter.letter_tabaghe, pletter.letter_peyvast)
End Sub
Sub delete_letter(ByVal pm_code As String)
letterta.deletebycode(pm_code)
End Sub
Sub filter_letter(ByVal f_code As String)
letterta.Getfilteredsabt(f_code)
Return
End Sub




End Class


خطوط 19تا 21
Imports classlibrary1
Imports business_entity

Public Class letterbal
Dim obj_letterdal As LETTERdal
Dim letter As New entsabt
Sub New(ByVal pconstr As String)
obj_letterdal = New LETTERdal(pconstr)
End Sub
Sub insert(ByVal pletter As entsabt)
obj_letterdal.insert_letter(pletter)
End Sub
Sub update(ByVal pletter As entsabt)
obj_letterdal.update_letter(pletter)
End Sub
Sub delete(ByVal pdelcode As String)
obj_letterdal.delete_letter(pdelcode)
End Sub
Sub filter(ByVal pfcode As String)
obj_letterdal.filter_letter(pfcode)

End Sub
Function fill()
Dim queryfill = From letter In obj_letterdal.get_letter() Select New _
With {.ردیف = letter.letter_id, .صادرکننده = letter.letter_by, .گیرنده = letter.letter_to,
.پرونده = letter.letter_parvande, .تاریخ = letter.letter_time, .دستور = letter.letter_state,
.شماره = letter.letter_sabt, .ثبت = letter.letter_tsabt, .بندی = letter.letter_tabaghe, .پیوست = letter.letter_peyvast}
Return queryfill.tolist
End Function
Function filldatatable() As DataSet1.letter1DataTable
Return obj_letterdal.get_letter


End Function
Function filldataset() As DataSet1
Return obj_letterdal.fill_dataset_letter
End Function

End Class

parvizwpf
شنبه 19 مرداد 1392, 13:27 عصر
خب یه بریک پوینت بزارید ببینید هنگامی که اون تابع getfilter صدا زده میشه آیا دیتایی برگشت میخوره؟

alinux031
شنبه 19 مرداد 1392, 13:39 عصر
فکر نکنم ؟چطوری؟ میشه مثال بزنید؟

parvizwpf
شنبه 19 مرداد 1392, 13:43 عصر
یه بریک پوینت رو اون خط بزارید بعد برنامه رو پس از رسیدن به اون خط با f11 جلو ببرید ببینید اصلا استور شما داره دیتا برمیگردونه یا نه.

alinux031
شنبه 19 مرداد 1392, 20:30 عصر
چک کردم کدها رو به ترتیب رویدادهایی که در فرم اتفاق می افتاد جلو رفت فقط دستور
Sub filter_letter(ByVal f_code As String) letterta.Getfilteredsabt(f_code)
Return
End Sub
رو چک کرد مقداری بازگشت نمی ده


سورس برنامه رو گذاشتم

دانلود سورس (http://www.4shared.com/rar/GTFQdbEy/dabirkhane.html)

alinux031
یک شنبه 20 مرداد 1392, 16:39 عصر
کسی نیست کمک کنه فقط یه تابع می خوام که سطر های جدول رو بشماره و تعدادش رو در خروجی بده تا در تکست باکس قرار بدم؟

alinux031
جمعه 01 شهریور 1392, 19:23 عصر
.
...
.......:اشتباه::اشتباه::اشتباه:

کماکان منتظر پاسخ هستم:متفکر::متفکر:

لطفا راهنمایم کنید اگه توضیحاتم واضح نبوده بگید تا بگم.:تشویق: