تم النشر منذ 27 May 2013 السلام عليكم ورحمة الله وبركاتهصممت تقرير كريستال في فيجول بيسك 10 بروفيشنال ... وشغال تمام المشكلة عند نقل البرنامج إلى جهاز آخر سيكون اسم السيرفر مختلف عن اسم السيرفر لديوهنا لم يعمل التقرير وطلب السيرفر على الإسم الذي في جهازي وطلب إسم المستخدم وكلمة المرور .. وفي جهازي يفتح السيرفر بحساب الويندوزالسؤال هو :كيف أجعل عبارة الإتصال في الريبورت مأخوذة من عبارة الإتصال في البرنامج عبارة الإتصال في البرنامج لدي موضوعة في موديل أستدعيه في الفورمات ... وهذا كود الموديل Public con As New SqlClient.SqlConnection("data source=SERVERNAME;Initial Catalog=dbname;integrated security=SSPI;timeout=10") 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 27 May 2013 لابد من تخزين سلسلة الاتصال داخل ملف نصي مشفر حتي تستطيع تغيير معلومات الدخول بسهولة عندما تقوم بنقل البرنامج علي جهاز آخر ارجو الاطلاع علي هذه الموضوعات مشاكل تشغيل المشروع عند العميل تشفير Connection Stringمشكلة الارفاق القاعدهطريقه عمل project setup بأفضل طريقه !الاتصال بقاعدة بيانات sql على الشبكةاريط ان ادخل قاعدة بيانات Sel Serverبتاعتى فى موقعىDatabase Publishing WizardConnection strings for SQL Server 2005برنامج اساسى و عميل على شبكة محليةحل مشكلة TableLogOnInfo أثناء فتح تقرير الكريستال ريبورت "التقرير لا يستطيع تحديد مسار القاعده"طباعة معلومات على شكل بطاقة دفعة واحدة 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 27 May 2013 قد يفيدك هذا الكود try { ReportDocument crRep = new ReportDocument(); crRep.Load("c:\aa.rep"); SqlConnectionStringBuilder csbDb = new SqlConnectionStringBuilder(ConfigurationManager.ConnectionStrings["ConnectionString1"].ToString()); Tables crTables; TableLogOnInfo crTableLogOnInfo; ConnectionInfo crConnectionInfo = new ConnectionInfo(); crConnectionInfo.ServerName = csbDb.DataSource.ToString(); crConnectionInfo.DatabaseName = csbDb.InitialCatalog.ToString(); crConnectionInfo.UserID = csbDb.UserID.ToString(); crConnectionInfo.Password = csbDb.Password.ToString(); crTables = crRep.Database.Tables; foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crTables) { string x = crTable.Name; crTableLogOnInfo = crTable.LogOnInfo; crTableLogOnInfo.ConnectionInfo = crConnectionInfo; crTable.ApplyLogOnInfo(crTableLogOnInfo); } crRep.SetParameterValue("@nSoicalGovCode", "1"); crRep.SetParameterValue("@nSocialDeptCode","30"); CrystalReportViewer1.ReportSource = crRep; } catch (Exception EX) { Label1.Text = EX.Message.ToString(); } 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 30 May 2013 أستاذي محمد جزاك الله خيراً على هذه الروابط ... ومما كنت أبحث عنه هذه المشاركةhttp://arabteam2000-forum.com/index.php/topic/242026-%D8%A7%D9%84%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%82%D8%A7%D8%B9%D8%AF%D8%A9-%D8%A8%D9%8A%D8%A7%D9%86%D8%A7%D8%AA-sql-%D8%B9%D9%84%D9%89-%D8%A7%D9%84%D8%B4%D8%A8%D9%83%D8%A9/#entry1197689ولكن المشكلة أنني لم أستطع استخدامها فعلياً في عبارة الإتصالففي برنامجي قمت بعمل موديل وعرفت متغير عام عبار عن جملة الإتصال حيث يمكنني استدعائها من أي فورم والعبارة هي كالتالي Public con As New SqlClient.SqlConnection("data source=" + My.Computer.Name & "\SQLEXPRESS;Initial Catalog=’Mydbname;integrated security=sspi;timeout=10")تعبت وأنا أحاول تغييرها إلى أن تأخذ عبارة الإتصال من ذلك الملف .. حولت نتيجة ملف Configuration.vb إلى أن تظهر الآيبي فقط بدون فائدة ... قرأت كافة الردود وطبقت مافيها بدون فائدة ...من ضمن تجاربيdim con As New SqlClient.SqlConnection("data source=" + Configuration.GetConnectionString & "\SQLEXPRESS;Initial Catalog=Mydbname;IntegratedSecurity=sspi;timeout=10") 'Dim ConnStr = String.Format("data source={0};Initial Catalog=Mydbname;IntegratedSecurity=sspi", File.ReadAllText("Configuration.txt")) 'Dim con As New SqlClient.SqlConnection(ConnStr)هاتين الطريقتين وغيرها لم يفلحواهذا كله بالنسبة لاتصال البرنامج ككل بقاعدة البيانات ... ثم بعد ذلك تأتي مشكلة التقارير بالكريستال حيث أنني لم أستطع القيام بذلك رغم عدة محاولاتي له===========================وبالنسبة للأستاذ كريمحولت الكود إلى كود vb ولكني لم أفهمه ... وماهي العبارات التي أغيرها بما يتناسب مع برنامجي وقاعدة بياناتي ...هل تتفضل بشرح بسيط عن هذا الكوداعذروني أساتذتي 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 30 May 2013 أخي الفاضلالمسألة كلها تكمن في مكان وضع سلسلة الاتصالفعند تعريف سلسلة الاتصال كمتغير عام لكي تستخدمة في كافة فورم المشروع فلابد من وضعها في Module جديد مثال لتعريف السلسلة في module 1- قم بانشاء موديول جديد وضع بداخلة سلسلة الاتصال Imports System.Data.SqlClientImports System.DataModule MYConn Public sqlcon As New SqlConnection("Server=.\MSSSQLSERVER;Database=MYBD;user id=sa;password=******;Trusted_connection=yes;")End Moduleبعد ذلك يمكنك استخدام الاتصال في باقي الفورم عادي بما فيم الكريستال ريبورت عن طريق فتح وغلق الاتصال مثالsqlcon.openstatments............sqlcon.close وكما وضحت لك سابقا اذا اردت ان تكون سلسلة الاتصال طرفك سهل تغييرها في أي وقت بدون فتح البرنامج في نمط التصميم ومن ثم تغيير سلسلة الاتصال لكي تتفق مع جهاز العميل يمكنك تخزينها داخل ملف نصي مشفر ثم يقرأ بعد ذلك البرنامج من خلال هذه السلسلة الموجوده داخل ملف نصي وفي حالة تغييرها يمكنك تغييرها من خلال هذا الملف وهذا موجود من ضمن الروابط التي ارفقتها لك بالتوفيق 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 30 May 2013 أستاذ محمدجزاك الله خير على تفاعلكذكرت في الرد السابق لي أنني أستخدم سلسلة اتصال كمتغير عام ( داخل موديل ) وجربت بع ردك بدون فائدةهذا الموديلImports System.Data.SqlClientImports System.DataImports System.IOModule Module2 Public ConnStr As String = String.Format("data source={0};Initial Catalog=Mydbname;IntegratedSecurity=sspi", File.ReadAllText("Configuration.txt")) Public con As New SqlConnection(coonstr) Public SQLDataAdapter1 As New SqlClient.SqlDataAdapter Public sqldataset1 As DataSetEnd Moduleوهذه صورة الخطأ كان الموديل قبل انشاء ملف التكستPublic con As New SqlClient.SqlConnection("data source=" + My.Computer.Name & "\SQLEXPRESS;Initial Catalog=Mydbname;integrated security=sspi;timeout=10") 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 30 May 2013 أخي الفاضللقد بتصميم لك مثال يوضح وضع سلسلة الاتصال داخل Module واستخدامها في جميع الفورمفقط المطلوب منك ضبط معلومات الاتصال طرفك واسم الجداول وما الي ذلك حتي يعمل المثال طرفكWindowsApplication1.rar 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 30 May 2013 شكراً وعفواً أستاذيلقد وضحت في ردي السابق أنني أستخدم سلسلة اتصال داخل الموديل وهي شغالة 100% حتى بعد نقل البرنامج ...ما أريده الآن شيئين : ( الثاني أهم - لأن البرنامج شغال كما ذكرت عدا الكريستال ) * تعديل السلسلة لتقبل المتغير ( أخذ الآيبي من التكست ) .* كود تعديل مصدر التقرير ( كريستال ريبورت ) ليأخذ بياناته من هذا الاتصال . 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 30 May 2013 ممكن يا أخي ترفق لنا مثال لكي يساعدني في فهم المطلوب ومحاولة مساعدتك فيه 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 31 May 2013 عفواً على التأخير والإزعاجفي المرفق - أعتقد - لن يعمل عندك الكريستال لأنه مربوط بالسيرفر عندي ...كيف أجعله يعمل عند المستخدم من دون تدخل منه .. ( في مثالنا كيف تجعله يعمل عندك لو لم يكن عندك السورس - بافتراض أنك مستخدم عادي - ) وكذلك موجود فيه موديل الإتصال ... وبداخله الشرح ( افتراضياً لن يعمل البرنامج لأن السلسلة الصحيحة غير مفعلة - الشرح بداخل الموديل ) كذلك أستاذيّ ( محمد وكريم ) أجدها فرصة لأرفق ما كنت أبحث عنه في الموضوعhttp://arabteam2000-forum.com/index.php/topic/278041-%D8%A7%D9%84%D8%A8%D8%AD%D8%AB-%D9%81%D9%8A-%D8%A3%D8%B9%D9%85%D8%AF%D8%A9-%D9%85%D8%AA%D8%B9%D8%AF%D8%AF%D8%A9-%D8%AA%D8%B9%D8%B1%D8%B6-%D8%B9%D9%84%D9%89-%D8%B4%D9%83%D9%84-checkbox/ففي الفورم الأول ( كود الخيار الثاني ) توضيح ومثال لما أريده ..rohiem1.rar 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 1 Jun 2013 أخي الفاضلالسلام عليكم ورحمة الله وبركاتة المثال الذي ارفقتة يوجد بداخلة أخطاء كثيرة هذا بالاضافة الي انه مصمم علي الاصدار 2010 وانا استخدم 2008 وعلي اي حالة عملت لك مثال آخر سريعايحتوي علي التالي 1- كما تشاهد في الصورة الاولي هي عبارة عن شاشة يتم تسجيل فيها معلومات السيرفر الذي ستتصل به بعد ذلك ستقوم بحفظ هذه الاعدادات في ملف نصيمشفر داخل ملفات المشروع 2 - بعد الانتهاء تسجيل بيانات الدخول علي السيرفر ستقوم بالضغط علي زر Open Report ليتم فتح جريد فيو وبها البيانات المراد طباعتهاواذا لم يفتح معك البرنامج بعد حفظ الاعدادات قم بغلق البرنامج وفتحة مرة اخري 3- والان كما تشاهد في الصورة المرفقة البرنامج فتح بناء علي معلومات السيرفر التي قد سجلناها سابقا والبيانات ظهرت امامك كما تشاهد 4- بعد مشاهد البيانات كل المطلوب منك الضغط علي زر طباعة لتشاهد البيانات داخل تقرير Crystal Report 5- وأخيرا يمكنك عمل الخطوات عندما تريد الاتصال مع سيرفر آخر بمعلومات مختلفة عن المعلومات التي قد ادخلناها سابقا والعمل معها بدون مشاكل وسيقوم التقرير بالعمل علي سيرفر ستقوم بالاتصال به لكن لابد طبعا ان يكون السيرفر الذي ستتصل به موجود بداخلة قاعده البيانات التي ستعمل عليها والموجود بدخلهاالجداول التي سيتصل بها التقرير لان مصدر التقرير طبعا مبني علي جداول موجوده علي جهازي وكل المطلوب من حضرتك اضافة مصادر البيانات الجديده بمسميات الجداول الموجود طرفك مرفق المشروع الذي قمت بعمل المثال عليه بالتوفيقEncrypt-Decrypt-connection string.rar 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 2 Jun 2013 السلام عليكم احب اضيف معلومة ليك اخى وهى بعد استخدمي الكثير وصلت الى افضل حلول طباعة التقارير بدون مشاكل الاتصال وكل هذا وهو تصميم تقرير مبني على Connection string وطبعا ال DATA SET وهى بتعمل بتاخد معلومات الاتصال من Connection string وبكدا يكون التقرير مفيش فيه اى مشكلة اتصال لانه مبنى على داتا سيت وجرب وشوف طبعا هتسالنى ازاى اعمل ده هفيدك فى الويب والديسك توب اكيد مش هيختلف كتير طبعا بس بقالى كتير مشتغلتش ديسك توب ابحث وهتلاقي بس انا قلت ليك الفكره وعن تجربة افضل طرق الحفظ والحذف والتعديل و الطباعه استخدم strongly typed data set وبعدان صمم التقرير وابنيه على داتا سيت واعمل كل جمل استعلامك ومررها لدتا ست واعرض فى التقرير النتيجة بدون اى مشاكل وكل ده بسهوله وسرعة وقوة كمان جرب وابحث وبجد الطريقة ديه مريحنى جدا فى الشغل وده مثال على الويب لاستخدام طباعة تقرير زى ما بقولك http://arabteam2000-forum.com/index.php?app=core&module=attach§ion=attach&attach_id=141864 وبالتوفيق جميعا ان شاء الله 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
0 قام بالرد منذ 4 Jun 2013 شكراً لكم جميعاًلقد جربت طريقتك أستاذي محمد .. واشتغلت .. ولكن مشكلتها أنها تفتح كل مرة نافذة التسجيل ولم أتعب نفسي في أن أجعلها تظهر عند عدم وجود السيرفر فقط ... وقد استغربت من عمل الطريقتين في أمثلتهما ولكن في برنامجي لا تعملان ...فراجعت كود سلسلة الإتصال فوجد أنني نسيت المسافة بين الكلمتين Integrated Security وهذا كود الكونفقريشن الذي فيه الخطأ ... فلما عدلته اشتغل البرنامج صحImports System.IOPublic Class Configuration Shared Function GetConnectionString() As String Dim ConnStr As String = String.Format("data source={0};Initial Catalog=Mydataname;Integrated Security=sspi", File.ReadAllText("Configuration.txt")) Return ConnStr End FunctionEnd Class وبالنسبة لتقارير الكريستال فهذا آخر كود توصلت إليه من مثال أستاذي محمد ( بس حولت بدل الداتاتيبل سويت داتا سيت - لأن عندي أكثر من جدول ) وجعلت كل الكود في حدث زر الفتح ليعمل البارامتر الذي وضعته في التقرير ( لأنه يأخذ قيمته من الفورم الذي فيه الزر )وهذا كود زر فتح التقرير con.Open() Dim cmd As New SqlCommand("Select * from table1", con) Dim cmd1 As New SqlCommand("Select * from table2", con) Dim cmd2 As New SqlCommand("Select * from table3", con) Dim dt As New DataSet Dim da = New SqlDataAdapter(cmd) Dim da1 = New SqlDataAdapter(cmd1) Dim da2 = New SqlDataAdapter(cmd2) da.Fill(dt, "table1") da1.Fill(dt, " table2") da2.Fill(dt, " table3") Dim rpt As New CrystalReport1 rpt.Load(Application.StartupPath & "\CrystalReport1.rpt") rpt.SetDataSource(dt) rpt.SetParameterValue(0, ComboBox1.Text) Dim newviewre As New viewre1 newviewre.CrystalReportViewer1.ReportSource = rpt newviewre.Text = " كشف " newviewre.CrystalReportViewer1.Refresh() newviewre.Show() con.Close()جزاكم الله خيراًوبقيت مشكلة البحث أرفقت الملف في موضوعها http://arabteam2000-forum.com/index.php/topic/278041-%D8%A7%D9%84%D8%A8%D8%AD%D8%AB-%D9%81%D9%8A-%D8%A3%D8%B9%D9%85%D8%AF%D8%A9-%D9%85%D8%AA%D8%B9%D8%AF%D8%AF%D8%A9-%D8%AA%D8%B9%D8%B1%D8%B6-%D8%B9%D9%84%D9%89-%D8%B4%D9%83%D9%84-checkbox/ 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
تم النشر منذ
السلام عليكم ورحمة الله وبركاته
صممت تقرير كريستال في فيجول بيسك 10 بروفيشنال ... وشغال تمام
المشكلة عند نقل البرنامج إلى جهاز آخر سيكون اسم السيرفر مختلف عن اسم السيرفر لدي
وهنا لم يعمل التقرير وطلب السيرفر على الإسم الذي في جهازي وطلب إسم المستخدم وكلمة المرور .. وفي جهازي يفتح السيرفر بحساب الويندوز
السؤال هو :
كيف أجعل عبارة الإتصال في الريبورت مأخوذة من عبارة الإتصال في البرنامج
عبارة الإتصال في البرنامج لدي موضوعة في موديل أستدعيه في الفورمات ... وهذا كود الموديل
شارك هذا الرد
رابط المشاركة
شارك الرد من خلال المواقع ادناه