إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - نورالايمان - 15-03-13
وفقك الله لعمل الخير أخي ربيع عجزت الكلمات عن اعطائك حقك من الاطراء والشكر فبارك الله لك في علمك ونفعنا بك وجعله في ميزان حسناتك
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - ربيع - 16-03-13
نورالايمان كتب :وفقك الله لعمل الخير أخي ربيع عجزت الكلمات عن اعطائك حقك من الاطراء والشكر فبارك الله لك في علمك ونفعنا بك وجعله في ميزان حسناتك
اللهم آمين، وأنت كذلك
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - ربيع - 16-03-13
نضع في تبويب (إدخال)، أداتي GroupBox وأداة Button، داخل الـ groupBox1 نضع 3 Label و3 textBox، داخل الـ groupBox2 نضع أداة Panel وداخل الـ Panel نضع TextBox.
نضبطه ليكون هكذا:
بما أن رقم الهاتف قد يكون غير محدود، سوف نجعل الـ textbox المخصص لإدخال الرقم والذي اسميناه pbox يتضاعف عند كتابة رقم جديد، ومن ثم نحفظ البيانات دفعة واحدة في القاعدة، نذهب لحدث TextChanged التابع لمربع نص الرقم لنكتب فيه::#C
كود :
[align=left]if (plist.Controls[plist.Controls.Count - 1].Focused && plist.Controls[plist.Controls.Count - 1].Text.Length == 1)
{
TextBox tb = new TextBox();
tb.Width = pbox.Width;
tb.Location = new Point(pbox.Location.X, (pbox.Top + pbox.Height + 5) * plist.Controls.Count);
tb.TextChanged += new EventHandler(pbox_TextChanged);
tb.KeyPress += new KeyPressEventHandler(pbox_KeyPress);
plist.Controls.Add(tb);
}[/align]
:VB
كود :
[align=left]If plist.Controls(plist.Controls.Count - 1).Focused AndAlso plist.Controls(plist.Controls.Count - 1).Text.Length = 1 Then
Dim tb As New TextBox()
tb.Width = pbox.Width
tb.Location = New Point(pbox.Location.X, (pbox.Top + pbox.Height + 5) * plist.Controls.Count)
AddHandler tb.TextChanged, AddressOf pbox_TextChanged
AddHandler tb.KeyPress, AddressOf pbox_KeyPress
plist.Controls.Add(tb)
End If[/align]
قمنا بإنشاء مربع نص جديد، ووضعه في الـ plist، بعد ضبط خصائصه ومكانه، ثم أضفناه له أحداث كي نستطيع إضافة مربع نص آخر عند كل إضافة رقم جديد.
نريد تحديد الإدخال في مربع نص الرقم، ليقبل أرقام فقط، ولذلك نذهب لحدث الـ KeyPress التابع له لنكتب::#C
كود :
[align=left]e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);[/align]
:VB
كود :
[align=left]e.Handled = Not Char.IsDigit(e.KeyChar) AndAlso Not Char.IsControl(e.KeyChar)
[/align]
الآن أصبحنا جاهزين لإدخال البيانات، في حدث ضغط زر حفظ نكتب:
كود :
[align=left]if (string.IsNullOrEmpty(nbox.Text.Trim()) || string.IsNullOrEmpty(abox.Text.Trim()))
{ MessageBox.Show("يجب اكمال البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); return; }
DB.Persons person = new DB.Persons();
person.Name = nbox.Text.Trim();
person.Address = abox.Text.Trim();
person.Note = tbox.Text.Trim();
try { db.Persons.InsertOnSubmit(person); db.SubmitChanges(); }
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
foreach (Control tb in plist.Controls)
if (tb is TextBox && !string.IsNullOrEmpty(tb.Text))
{
DB.PhoneNumbers pn = new DB.PhoneNumbers();
pn.PersonID = person.ID;
pn.Phone = tb.Text;
db.PhoneNumbers.InsertOnSubmit(pn);
}
try { db.SubmitChanges(); } catch { }
MessageBox.Show("تمت الاضافة بنجاح!", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
nbox.Text = string.Empty;
abox.Text = string.Empty;
tbox.Text = string.Empty;
pbox.Text = string.Empty;
for (int i = 1; i <= 2; ++i)
foreach (Control ctrl in plist.Controls)
if (ctrl.Name != "pbox") plist.Controls.Remove(ctrl);
GetData();[/align]
:VB
كود :
[align=left]If String.IsNullOrEmpty(nbox.Text.Trim()) OrElse String.IsNullOrEmpty(abox.Text.Trim()) Then
MessageBox.Show("يجب اكمال البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning)
Return
End If
Dim person As New DB.Persons()
person.Name = nbox.Text.Trim()
person.Address = abox.Text.Trim()
person.Note = tbox.Text.Trim()
Try
db.Persons.InsertOnSubmit(person)
db.SubmitChanges()
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
For Each tb As Control In plist.Controls
If TypeOf (tb) Is TextBox AndAlso Not String.IsNullOrEmpty(tb.Text) Then
Dim pn As New DB.PhoneNumbers()
pn.PersonID = person.ID
pn.Phone = tb.Text
db.PhoneNumbers.InsertOnSubmit(pn)
End If
Next
Try
db.SubmitChanges()
Catch
End Try
MessageBox.Show("تمت الاضافة بنجاح!", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
nbox.Text = String.Empty
abox.Text = String.Empty
tbox.Text = String.Empty
pbox.Text = String.Empty
For i As Integer = 1 To 2
For Each ctrl As Control In plist.Controls
If (ctrl.Name <> "pbox") Then plist.Controls.Remove(ctrl)
Next
Next
GetData()[/align]
GetData() إجراء سوف نضيفه فيما بعد إن شاء الله.
نذهب لتبويب (تعديل)، ونجعله كهذا الشكل:
في حدث الـ SelectedIndexChanged التابع للأداة nflist، نكتب:
كود :
[align=left]try
{
DB.Persons person = (DB.Persons)nflist.SelectedValue;
enbox.Text = person.Name;
eabox.Text = person.Address;
etbox.Text = person.Note;
pflist_SelectedIndexChanged(sender, e);
}
catch { }[/align]
:VB
كود :
[align=left]Try
Dim person As DB.Persons = CType(nflist.SelectedValue, DB.Persons)
enbox.Text = person.Name
eabox.Text = person.Address
etbox.Text = person.Note
pflist_SelectedIndexChanged(sender, e)
Catch
End Try
[/align]
في حدث زر (حفظ)، نكتب::#C
كود :
[/align]
try
{
DB.Persons person = (DB.Persons)nflist.SelectedValue;
person.Name = enbox.Text;
person.Address = eabox.Text;
person.Note = etbox.Text;
db.SubmitChanges();
MessageBox.Show("تم تحديث البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }[align=right]
:VB
كود :
[/align]
Try
Dim person As DB.Persons = CType(nflist.SelectedValue, DB.Persons)
person.Name = enbox.Text
person.Address = eabox.Text
person.Note = etbox.Text
db.SubmitChanges()
MessageBox.Show("تم تحديث البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try[align=right]
في حدث الـ SelectedIndexChanged التابع للأداة pflist، نكتب:
:#C
كود :
[/align]
epbox.Text = pflist.Text;[align=right]
:VB
كود :
[/align]
epbox.Text = pflist.Text[align=right]
الآن نأتي للـ LinkLabel، في (تحديث) نكتب:
:#C
كود :
[align=left]try
{
DB.PhoneNumbers pn = (DB.PhoneNumbers)pflist.SelectedValue;
pn.Phone = epbox.Text.Trim();
db.SubmitChanges();
MessageBox.Show("تم تحديث الرقم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }
[/align]
:VB
كود :
[align=left]Try
Dim pn As DB.PhoneNumbers = CType(pflist.SelectedValue, DB.PhoneNumbers)
pn.Phone = epbox.Text.Trim()
db.SubmitChanges()
MessageBox.Show("تم تحديث الرقم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
[/align]
في (إضافة)، نكتب::#C
كود :
[align=left]try
{
DB.PhoneNumbers pn = new DB.PhoneNumbers();
pn.PersonID = ((DB.Persons)nflist.SelectedValue).ID;
pn.Phone = epbox.Text.Trim();
db.PhoneNumbers.InsertOnSubmit(pn);
db.SubmitChanges();
MessageBox.Show("تمت إضافة الرقم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }[/align]
:VB
كود :
[align=left]Try
Dim pn As New DB.PhoneNumbers()
pn.PersonID = CType(nflist.SelectedValue, DB.Persons).ID
pn.Phone = epbox.Text.Trim()
db.PhoneNumbers.InsertOnSubmit(pn)
db.SubmitChanges()
MessageBox.Show("تمت إضافة الرقم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
[/align]
في (حذف) نكتب::#C
كود :
[align=left]if (MessageBox.Show("هل أنت متأكد", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return;
try
{
db.PhoneNumbers.DeleteOnSubmit((DB.PhoneNumbers)pflist.SelectedValue);
db.SubmitChanges();
MessageBox.Show("تم حذف الرقم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }
[/align]
:VB
كود :
[align=left]If MessageBox.Show("هل أنت متأكد", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then Exit Sub
Try
db.PhoneNumbers.DeleteOnSubmit(CType(pflist.SelectedValue, DB.PhoneNumbers))
db.SubmitChanges()
MessageBox.Show("تم حذف الرقم", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
[/align]
هكذا انتهينا من (إدخال وتعديل)، نتوجه لتبويب (حذف)، سوف يكون كهذا:
في حدث زر حذف، نكتب:
كود :
[align=left]if (MessageBox.Show("هل أنت متأكد", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return;
try
{
var pn = from d in db.PhoneNumbers
where d.PersonID == ((DB.Persons)dnflist.SelectedValue).ID
select d;
foreach (var p in pn) db.PhoneNumbers.DeleteOnSubmit(p);
db.Persons.DeleteOnSubmit((DB.Persons)dnflist.SelectedValue);
db.SubmitChanges();
MessageBox.Show("تم حذف البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
GetData();
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }[/align]
:VB
كود :
[align=left]If MessageBox.Show("هل أنت متأكد", Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.No Then Exit Sub
Try
Dim pn = From d In db.PhoneNumbers
Where d.PersonID = CType(nflist.SelectedValue, DB.Persons).ID
Select d
For Each p In pn
db.PhoneNumbers.DeleteOnSubmit(p)
Next
db.Persons.DeleteOnSubmit(CType(nflist.SelectedValue, DB.Persons))
db.SubmitChanges()
MessageBox.Show("تم حذف البيانات", Text, MessageBoxButtons.OK, MessageBoxIcon.Information)
GetData()
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try[/align]
نذهب لتبويب (استعراض)، سيكون كما يلي:
بقي أن نضيف إجراء GetData، فقط:
كود :
[align=left]private void GetData()
{
try
{
var persons = from d in db.Persons
select d;
BindingSource bsn = new BindingSource();
bsn.DataSource = persons;
BindingSource bsp = new BindingSource();
bsp.DataSource = bsn;
bsp.DataMember = "PhoneNumbers";
//
// تعديل البيانات
//
nflist.DataSource = bsn;
nflist.DisplayMember = "Name";
pflist.DataSource = bsp;
pflist.DisplayMember = "Phone";
//
// حذف البيانات
//
dnflist.DataSource = bsn;
dnflist.DisplayMember = "Name";
//
// استعراض البيانات
//
ndata.DataSource = null;
ndata.Columns.Clear();
ndata.AutoGenerateColumns = false;
ndata.ColumnCount = 3;
ndata.DataSource = bsn;
ndata.Columns[0].HeaderText = "الاسم";
ndata.Columns[1].HeaderText = "العنوان";
ndata.Columns[2].HeaderText = "ملاحظات";
ndata.Columns[0].DataPropertyName = "Name";
ndata.Columns[1].DataPropertyName = "Address";
ndata.Columns[2].DataPropertyName = "Note";
pdata.DataSource = null;
pdata.Columns.Clear();
pdata.AutoGenerateColumns = false;
pdata.ColumnCount = 1;
pdata.DataSource = bsp;
pdata.Columns[0].HeaderText = "رقم الهاتف";
pdata.Columns[0].DataPropertyName = "Phone";
}
catch { }
}[/align]
:VB
كود :
[align=left]Private Sub GetData()
Try
Dim persons = From d In db.Persons
Select d
Dim bsn As New BindingSource()
bsn.DataSource = persons
Dim bsp As New BindingSource()
bsp.DataSource = bsn
bsp.DataMember = "PhoneNumbers"
'
' تعديل البيانات
'
nflist.DataSource = bsn
nflist.DisplayMember = "Name"
pflist.DataSource = bsp
pflist.DisplayMember = "Phone"
'
' حذف البيانات
'
dnflist.DataSource = bsn
dnflist.DisplayMember = "Name"
'
' استعراض البيانات
'
ndata.DataSource = Nothing
ndata.Columns.Clear()
ndata.AutoGenerateColumns = False
ndata.ColumnCount = 3
ndata.DataSource = bsn
ndata.Columns(0).HeaderText = "الاسم"
ndata.Columns(1).HeaderText = "العنوان"
ndata.Columns(2).HeaderText = "ملاحظات"
ndata.Columns(0).DataPropertyName = "Name"
ndata.Columns(1).DataPropertyName = "Address"
ndata.Columns(2).DataPropertyName = "Note"
pdata.DataSource = Nothing
pdata.Columns.Clear()
pdata.AutoGenerateColumns = False
pdata.ColumnCount = 1
pdata.DataSource = bsp
pdata.Columns(0).HeaderText = "رقم الهاتف"
pdata.Columns(0).DataPropertyName = "Phone"
Catch
End Try
End Sub
[/align]
في حدث التحميل للنموذج، في آخر الكود تحت سطر Login() نكتب::#C
كود :
[align=left]GetData();
[/align]
:VB
كود :
[align=left]GetData
[/align]
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - محمود رغمان - 16-03-13
لقد ابهرتنا الفكرة والطريقة وعلمكم الغزير
نرجوا ان تتحمل اسئلتنا
نحن نتعرف علي هذا العمل من جديد
لا يتم التحديث فى تاب الاستعراض الا بعد غلق البرنامج وفتحه
كيف نعدل قاعدة البيانات دون فقد البيانات القديمة
مطلوب مفتاح جديد فى موضوع الاضافة
مطلوب بحث حر بكتابة اسم فى التيكست وضغط زر بحث
اخير (سؤال مكرر)امكانية عمل نسخة من قاعدة البيانات
اخيرا نشكر صبرك علينا ونقر ونعترف بقدراتك فى هذا الموضوع
بارك الله فيك
ملحوظة هامة حتى الان عمل غير عادى
نرجو ان يكون هناك شرح مفصل فى كتاب يكتب بمزاج رايق
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - ربيع - 17-03-13
نحمده ونصلي على رسوله الكريم
إقتباس :لا يتم التحديث فى تاب الاستعراض الا بعد غلق البرنامج وفتحه
قمنا بإنشاء إجراء منفصل اسمه GetData لتحديث البيانات، يمكننا استخدامه وقتما شئنا، بعد إدخال بيانات أو تعديل بيانات الخ....
إقتباس : كيف نعدل قاعدة البيانات دون فقد البيانات القديمة
من خلال SQL Server Management Studio، قم بتعديل الجداول والحقول كيفما تشاء، ثم من داخل الفجوال ستوديو، قم بسحب الجداول (بعد حذف القديم منها) إلى محتوى البيانات من Server Explorer.
إقتباس : مطلوب مفتاح جديد فى موضوع الاضافة
لم أفهم السؤال....
إقتباس : مطلوب بحث حر بكتابة اسم فى التيكست وضغط زر بحث
سوف نأتي لها إن شاء الله في التقارير.
إقتباس : اخير (سؤال مكرر)امكانية عمل نسخة من قاعدة البيانات
سوف نأتي لها في آخر المشروع إن شا الله. أوشكنا على الإنتهاء، بقي التقارير ومن ثم النسخ الإحتياطي.
إقتباس : اخيرا نشكر صبرك علينا ونقر ونعترف بقدراتك فى هذا الموضوع
بارك الله فيك
ملحوظة هامة حتى الان عمل غير عادى
نرجو ان يكون هناك شرح مفصل فى كتاب يكتب بمزاج رايق
بارك الله فيك، سوف أعمل على ذلك إن شا الله.
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - biloo.vb - 18-03-13
مشكل ما حب يفتح عندي وللأسف الفجاول بزيك
هذا الخطأ
a project with an output type library can not be started directly.
debugger for this project, add a project to this fa solution librarian library. Set the executable project as the startup project
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - ربيع - 18-03-13
biloo.vb كتب :مشكل ما حب يفتح عندي وللأسف الفجاول بزيك
هذا الخطأ
a project with an output type library can not be started directly.
debugger for this project, add a project to this fa solution librarian library. Set the executable project as the startup project
الظاهر انك تعمل على مشروع من نوع class library، قم بإنشاء مشروع جديد من نوع windows forms application.
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - ربيع - 18-03-13
سوف نضيف خيارات جديدة على القائمة MenuStip كالتالي:
- تقرير
- قاعدة البيانات
- نسخ احتياطي
- استرجاع
- تصفير قاعدة البيانات
قبل أن نشرع في عمل التقرير، هنالك إعدادات للمشروع يجب أن نعدلها.
نذهب لخصائص المشروع، ثم نتبع الصورة:
:#C
:VB
ثم نذهب لملف app.config، من Solution Explorer، سوف نضيف هذا الكود عليه:
* إذا وجدنا الكود نقوم بالتعديل عليه فقط.[HTML]
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
[/HTML]
الآن نبدأ بإضافة التقرير للمشروع، من Solution Explorer نضغط على المشروع، ثم نختار:
نضيف Crystal Report، ليكن اسمه Report، ثم نتبع الصور التالية:
هكذا يظهر التقرير، بعد القليل من التنسيقات:
نضيف نموذج جديد للمشروع، سيكون اسمه All:
في حدث التحميل للنموذج، نكتب::#C
كود :
[align=left]try
{
DB.PhoneBookDB db = new DB.PhoneBookDB();
var data = from d in db.Persons select d;
Report report = new Report();
report.SetDataSource(data);
viewer.ReportSource = report;
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }[/align]
:VB
كود :
[align=left]Try
Dim db As New DB.PhoneBookDB()
Dim data = From d In db.Persons Select d
Dim report As New Report()
report.SetDataSource(data)
viewer.ReportSource = report
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try[/align]
نضيف نموذج جديد للمشروع، اسمه Custom:
في حدث ضغط زر البحث::#C
كود :
[align=left]DB.PhoneBookDB db = new DB.PhoneBookDB();
Report report = new Report();
try
{
if (byname.Checked)
{
var data = from d in db.Persons
where match.Checked ? d.Name == fbox.Text.Trim() : d.Name.Contains(fbox.Text.Trim())
select d;
report.SetDataSource(data);
}
else
{
var data = from d in db.Persons
where d.PhoneNumbers.Any(p => match.Checked ? p.Phone == fbox.Text.Trim() : p.Phone.Contains(fbox.Text.Trim()))
select d;
report.SetDataSource(data);
}
viewer.ReportSource = report;
}
catch (Exception ex) { MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error); }
[/align]
:VB
كود :
[align=left]Dim db As New DB.PhoneBookDB()
Dim report As New Report()
Try
If byname.Checked Then
Dim data = From d In db.Persons
Where IIf(match.Checked, d.Name = fbox.Text.Trim(), d.Name.Contains(fbox.Text.Trim()))
Select d
report.SetDataSource(data)
Else
Dim data = From d In db.Persons
Where d.PhoneNumbers.Any(Function(p) IIf(match.Checked, p.Phone = fbox.Text.Trim(), p.Phone.Contains(fbox.Text.Trim())))
Select d
report.SetDataSource(data)
End If
viewer.ReportSource = report
Catch ex As Exception
MessageBox.Show(ex.Message, "خطأ", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
[/align]
نعود للنموذج الرئيسي، نختار من قائمة تقرير (كل الأسماء) ثم نكتب::#C
كود :
[align=left]All all = new All();
all.Show(this);[/align]
:VB
كود :
[align=left]All.Show(Me)[/align]
ثم نختار (محدد)، لنكتب::#C
كود :
[align=left]Custom custom = new Custom();
custom.Show(this);
[/align]
:VB
كود :
[align=left]Custom.Show(Me)[/align]
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - learning.net - 19-03-13
اخى ربيع
اصبعى تعبنى من كتر الشكر والاعجاب بهذا الموضوع 
هذا الموضوع سيكون ضمن افضل المواضيع فى المنتدى
يكفى مجهودك فيه
بارك الله فيك وجازاك خيرا وذادك من علمه
إنشاء مشروع باستخدام sql server و linq وتقارير crystal report - ربيع - 19-03-13
learning.net كتب :اخى ربيع
اصبعى تعبنى من كتر الشكر والاعجاب بهذا الموضوع 
هذا الموضوع سيكون ضمن افضل المواضيع فى المنتدى
يكفى مجهودك فيه
بارك الله فيك وجازاك خيرا وذادك من علمه
هههههه بارك الله فيك 
ان شا الله يكون الشرح واضح
وجزاك بالمثل وزادك من العلم ان شا الله
|