Imports System.Data
Imports System.Data.OleDb
Public Class Form1
Dim cmd As OleDbCommand
Dim SQLstr As String = "SELECT *FROM tabl1"
Dim tbl_ght_table As New DataTable
Dim tbl_kind_table As New DataTable
Dim myDatatable As DataTable
Dim Bn1 As New BindingSource
Friend myPosition As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' قراءة قاعدة البيانات '
ReadDatabase()
btn_Save.Enabled = False
'btn_update.Enabled = False
'1br.Enabled = False
ts.Text = "الصادر والوارد "
'
record_count()
End Sub
' قراءة قاعدة البيانات '
Private Sub ReadDatabase()
Using da As New OleDbDataAdapter("SELECT * FROM [Tabl1] ", con)
myDatatable = New DataTable
da.Fill(myDatatable)
Bn1.DataSource = myDatatable
'Me.DataGridView1.DataSource = Bn1
End Using
End Sub
'مجموع السجلات
Private Sub record_count()
Label14.Text = " عدد السجلات " & Bn1.Position + 1 & _
" من " & Bn1.Count() & " سجل / سجلات "
End Sub
'تنظيف التيكس بوكس
Public Sub cler()
Me.txtid.Text = ""
Me.txt_date.Text = ""
Me.tex1.Text = ""
Me.tex.Text = ""
Me.tex5.Text = ""
Me.tex6.Text = ""
Me.tex3.Text = ""
Me.par.Text = ""
'Me.PictureBox1.Image = Nothing
End Sub
Dim id As Integer
Private Sub btn_Add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Add.Click
' معرفة السنة الهجرية الحالية حسب التقويم الهجري نظام الويندوز '
Dim nowHijriYear As Integer = New System.Globalization.HijriCalendar().GetYear(Now)
' معرفة السنة الهجرية الحالية حسب تقويم أم القرى في نظام الويندوز '
''Dim nowHijriYear As Integer = New System.Globalization.UmAlQuraCalendar().GetYear(Now)
' معرفة أكبر رقم مسجل للسنة الحالية '
Dim maxHijriID As Integer = GetMaxHijriID(nowHijriYear)
If maxHijriID <> -1 Then
'conn.Open()
'========== إضافة البيانات =========='
txtid.Text = maxHijriID + 1
txt_date.Text = Date.Today
tex1.Text = Date.Now
'usr.Text = Login.txt_Username.Text
tme.Text = TimeOfDay
dte.Text = Date.Today
par.Text = maxHijriID + 1
tex3.Focus()
'Using comm As New OleDbCommand(" SELECT MAX([HijriID]) FROM [Tab1] WHERE [HijriYear] = @HijriYear ", conn)
' comm.Parameters.AddWithValue("@HijriYear", nowHijriYear)
' txtid.Text = maxHijriID + 1
'End Using
con.Close()
Me.tex1.Text = ""
Me.tex.Text = ""
Me.tex5.Text = ""
Me.tex6.Text = ""
Me.tex3.Text = ""
btn_Save.Enabled = True
br.Enabled = True
GroupBox1.Enabled = True
Label13.Text = " جاهز لإضافة سجل جديد"
End If
End Sub
Private Function GetMaxHijriID(ByVal hijriYear As Integer) As Integer
Try
con.Open()
'========== معرفة أكبر رقم مسجل للسنة الحالية =========='
' متغير من نوع أوبجكت تحسباً لرجوع قيمة فارغة '
Dim maxHijriID As Object
Using comm As New OleDbCommand(" SELECT MAX([HijriID]) FROM [tabl1] WHERE [HijriYear] = @HijriYear ", con)
comm.Parameters.AddWithValue("@HijriYear", hijriYear)
maxHijriID = comm.ExecuteScalar
End Using
' في حالة القيمة الفارغة يتم تحويلها إلى رقم صفر '
maxHijriID = IIf(maxHijriID.GetType Is GetType(System.DBNull), 0, maxHijriID)
con.Close()
Return maxHijriID
Catch ex As Exception
MsgBox(ex.Message)
Return -1
End Try
End Function
Private Sub txtm_subject_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
Select Case e.KeyChar
Case "ا" To "ي", ControlChars.Back, Chr(Keys.Space)
e.Handled = False
Case Else
e.Handled = True
End Select
End Sub
Private Sub btn_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Close()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'Me.ToolStripLabel1.Text = " مرحبا بك من جديد " + Login.txt_Username.Text
Me.ToolStripLabel2.Text = Format(Now, "dd--MMMM--yyyy")
Me.ToolStripLabel3.Text = " الوقت الان " + TimeOfDay
End Sub
Private Sub tex5_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tex5.KeyPress
If Char.IsControl(e.KeyChar) = False Then
If Char.IsDigit(e.KeyChar) Then
Else
MsgBox(" الحقل لا يقبل الا الارقام فقط ", MessageBoxIcon.Error)
e.Handled = True
End If
End If
End Sub
Private Sub tex10_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
If Char.IsControl(e.KeyChar) = False Then
If Char.IsDigit(e.KeyChar) Then
Else
MsgBox(" الحقل لا يقبل الا الارقام فقط ", MessageBoxIcon.Error)
e.Handled = True
End If
End If
End Sub
Private Sub btn_Save_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Save.Click
'btn_Sav()
'If Not check() Then
' Exit Sub
'End If
Try
' الحقل HijriYear هو فقط لمعرفة الرقم التسلسلي المفترض وضعه '
' الحقل HijriID هو من نوع رقم عادي وليس ترقيم تلقائي لأن الترقيم يتم برمجياً '
' معرفة السنة الهجرية الحالية حسب التقويم الهجري نظام الويندوز '
Dim nowHijriYear As Integer = New System.Globalization.HijriCalendar().GetYear(Now)
' معرفة السنة الهجرية الحالية حسب تقويم أم القرى في نظام الويندوز '
''Dim nowHijriYear As Integer = New System.Globalization.UmAlQuraCalendar().GetYear(Now)
' معرفة أكبر رقم مسجل للسنة الحالية '
Dim maxHijriID As Integer = GetMaxHijriID(nowHijriYear)
If maxHijriID <> -1 Then
con.Open()
'========== إضافة البيانات =========='
Using comm As New OleDbCommand(" INSERT INTO [Tabl1] ( [HijriID],[HijriYear], [b], [b1], [b2],[b3],[b4],[b17],[g1],[g2],[g3] ) VALUES ( @HijriID,@HijriYear,@b,@b1,@b2,@b3,@b4,@b13,@g1,@g2,@g3) ", con)
comm.Parameters.AddWithValue("@HijriID", txtid.Text) ' نضيف واحد '
comm.Parameters.AddWithValue("@HijriYear", nowHijriYear)
comm.Parameters.AddWithValue("@b", tex.Text)
comm.Parameters.AddWithValue("@b1", txt_date.Text)
comm.Parameters.AddWithValue("@b2", tex3.Text)
comm.Parameters.AddWithValue("@b3", tex5.Text)
comm.Parameters.AddWithValue("@b4", tex6.Text)
comm.Parameters.AddWithValue("@b17", par.Text)
comm.Parameters.AddWithValue("@g1", usr.Text)
comm.Parameters.AddWithValue("@g2", dte.Text)
comm.Parameters.AddWithValue("@g3", tme.Text)
'comm.Parameters.AddWithValue("@Pic", PictureBox1.Image)
comm.ExecuteNonQuery()
End Using
con.Close()
MsgBox("تمت عملية الاضافة والحفظ في قاعدة البيانات بنجاح", 64, "حفظ الاضافة")
id = txtid.Text
' قراءة قاعدة البيانات '
ReadDatabase()
'br.Enabled = False
GroupBox1.Enabled = False
cler()
'MyCurrencyManager.Position = MyCurrencyManager.Count - 1
'record_count()
Label13.Text = ""
End If
'Me.DataGridView1.CurrentCell = DataGridView1.Rows(Me.DataGridView1.Rows.Count - 1).Cells(0)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub btn_cancel_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
'If MessageBox.Show("هل تريد حقا الغاء الامر ؟", "تأكيد التراجع ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
' Label13.Text = "تم الغاء الامر"
' Me.txtid.Text = ""
' Me.txt_date.Text = Date.Today
' Me.tex1.Text = ""
' Me.tex.Text = ""
' Me.tex5.Text = ""
' Me.tex6.Text = ""
' Me.tex3.Text = ""
' br.Enabled = False
' btn_Save.Enabled = False
'Else
' Exit Sub
'End If
'Me.Close()
End Sub
Private Sub btn_exit_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_exit.Click
End
End Sub
Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
record_count()
End Sub
Private Sub Form1_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
Dim g As Graphics = Me.CreateGraphics()
Dim startingPoint As Double = (Me.Width / 2) - (g.MeasureString(Me.Text.Trim, Me.Font).Width / 2)
Dim widthOfASpace As Double = g.MeasureString(" ", Me.Font).Width
Dim tmp As String = " "
Dim tmpWidth As Double = 0
Do
tmp += " "
tmpWidth += widthOfASpace
Loop While (tmpWidth + widthOfASpace) < startingPoint
Me.Text = tmp & Me.Text.Trim & tmp
End Sub
Private Sub br_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles br.Click
'Dim myreport As New CrystalReport1
'myreport.SetParameterValue("Amount", TextBox1.Text)
''Sql = "SELECT * FROM [Tbl1] "
''Dim std(1) As String
''Std(0) = DataGridView1.CurrentRow.Cells(1).Value
''Dim Frme As New brcod(std(1))
Dim Report As New CrystalReport1
'da As New OleDbDataAdapter("SELECT * FROM [Tbl1] ", con)
'Report.SetParameterValue("HID", txtid.Text)
Dim q = From x In myDatatable Where x.Item("id") = id
If q.Count > 0 Then
Report.SetDataSource(q.CopyToDataTable)
Form2.CrystalReportViewer1.ReportSource = Report
Form2.CrystalReportViewer1.Zoom(80%)
Form2.CrystalReportViewer1.Refresh()
Form2.Show()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'frmBic.Show()
End Sub
Private Sub txtid_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtid.TextChanged
'Pi.BackgroundImage = Code128(TextBox3.Text, "A")
End Sub
End Class