اذهب الي المحتوي
أوفيسنا

طباعة سطر واحد من الجدول


met

الردود الموصى بها

السلام عليكم

كيف استطيع ان اطبع سطر واحد عن طريق ضغط زر F8 على سبيل المثال عن طريق الماكروا ولكن ليس هذا المطلوب المطلوب هو ارسال هذا السطر المراد طبعة من الجدول وطباعته حسب التقرير المعد

اي بيانات هذا السطر لن تكون اثناء الطباعة مجرد سطر وانما حسب التوزيع المعد في التقرير

وانشأ الله يكون طلبي واضح

:rol:

رابط هذا التعليق
شارك

السلام عليكم

لازلت اواجة مشكلة في طريقة طباعة سطر واحد من الجدول

لو أردت أن أطبع السطر الاول فقط لـ Met هل هناك طريقة بضغط زر معين او بكتابة حرف Y في خانه الطباعة على ان تتم الطباعة وفقا للتوزيع الموجود في التقرير

أي باختصار أريد ان أطبع الجدول او جدول الاستعلام سطرأ سطرا وحسب الاختيار

ارفق لكم الملف ليكون سؤالي اكثر وضوحا

:rol:

print.rar

رابط هذا التعليق
شارك

أخي الكريم

تم التعديل على البرنامج المرفق

1- إضافة نموذج جديد فيه يتم إختيار الإسم المراد طبعه ثم الضغط على زر عرض أو طباعة

2- التعديل في الإستعلام

جزاكم الله خيراً

إذا لقي أحدكم أخاه فليسلّم عليه

moh_elspa3y@hotmail.com

Print.rar

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

اشكرك يا أخ محمد على هذا التعدل الجميل للملف وصراحة حاولت ان اطبق تعديلك مره ثانية لكني ماقدرت اتوصل لاخر مرحلة واللي هو ان عرض الطباعة يكون لسطر واحد فقط كل ما اعرض المعلومات تطلع الصفحة بالكامل وفيها جميع الاسطر

اذا تكرمت تشرح لي وللاخوه في المنتدى طريقة اظهار سطر واحد فقط للطباعة

وشكرا

رابط هذا التعليق
شارك

السلام عليكم

شكرا يا اخ yousef على تعديلك للموضوع لكن ما اريدة هو أن يتم عرض جميع البيانات في قائمة واحدة بنفس طريقة مثال الاخ محمد السباعي والمشكلة اني عندما اعدت تنفيذ البرنامج لكي اتمكن واتعلم الطريقة وجدت ان السطور جميعها ترسل للطباعة وليس السطر الذي حددته ولا ادري لماذا ؟؟؟ ماهو الامر الذي يجعل السطر يرسل للطباعة من خلال تقرير معين ؟؟

رابط هذا التعليق
شارك

اخي / met

شكرا لك وانا احاول بقدر المستطاع تقديم ما استطيع لأساعدك

إذا كنت تريد نفس الطريقة التي عملها الاخ محمد جزاه الله خيراً

فقم بعمل الآتي:-

1: - إضافة نموذج جديد ليس له مصدر للسجلات اي تقوم بإلغاء المعالج عند ظهوره.

2: - تقوم بعمل مربع تحرير وسرد وتسميه M وتجعله يبحث عن قيمة محددة في الجدول الوحيد لديك يتم ذلك عن طريق المعالج.

3: - تقوم بتعديل الاستعلام لديك وذلك بوضع العبارة التالية [forms]![form1]![m] في المعايير تحت حقل Name . على اعتبار ان اسم النموذج لديك اسمه form1

4: - تقوم بتغيير مصدر التقرير إلى الاستعلام الذي تم تعديله بالفقرة 3

5: - تعود مرة اخرى للنموذج وتضع زر امر يقوم بمعاينة التقرير وستجده يعرض البيانات للسجل المختار من القائمة.

6:- تقوم بوضع زر امر يقوم بطباعة التقرير وستجده يقوم بطباعة البيانات للسجل المختار من القائمة.

ارجو ان يكون الموضوع واضحاً

رابط هذا التعليق
شارك

السلام عليكم

اخي العزيز yousef ليس لي الا ان اشكرك من اعماق قلبي وجزاك الله كل خيراً في هذا الشهر الفضيل

الحين الفكرة اصبحت واضحة وحلت مشكلتي

شكرا مره اخرى وشكرا لكل الاخوه الذين شاركوا بالرد على سؤالي

رابط هذا التعليق
شارك

  • 3 months later...

:') السلام عليكم ورحمة الله وبركاته

منذ مده طويلة وانا اواجه مشكلة واليوم اكتشفتها لكني لم اكتشف حلا لها

اكتشفت ان البرنامج لايعمل بشكل جيد ويكون الناتج اكثر من سطر في حاله وجود اسماء متشابهة

مثال لو اخترنا على سبيل المثال اسم محمد او ناصر فلن تكون هناك مشكلة اما اذا اخترنا اسم met فسنلاحظ ظهور اكثر من اسم وما اريده هو ظهور السطر الذي تم اختياره للطباعة فقط

اتمنى ان اجد الحل للاهمية وشكرا

Print.rar

رابط هذا التعليق
شارك

السلام عليكم

أعتقد أن إحدى طرق الحل تكون بعمل برنامج بسيط في حدث (بعد التحديث) الخاص بالإسم، وذلك بقراءة السجل الذي تم اختياره في متغيرات اسميتها (t1,t2,t3,t4) والتي ستمكننا من تحديد السجل الذي تم اختياره ، وبعدها نقوم بعمل استعلام اجرائي نبني بواسطته جدول مؤقت اسميته (temp) ، وأخيراً نجعل مصدر السجلات للتقرير الجدول (temp).

لاحظ : أننا في هذه الطريقة قد استغنينا عن استعلام التحديد وهي طريقتك في معالجة المسألة.

Private Sub m_AfterUpdate()
Dim SQL As String
Dim t1 As String, t2 As String, t3 As String, t4 As String

t1 = m.Column(0)
t2 = Str(m.Column(1))
t3 = m.Column(2)
t4 = Str(m.Column(3))

    SQL = "SELECT Table1.name, Table1.Age, Table1.Address, Table1.Telephone INTO temp " & _
          "FROM Table1 " & _
          "WHERE Table1.name             = '" & t1 & "' and " & _
          "      str(Table1.Age)         = '" & t2 & "' and " & _
          "      Table1.address          = '" & t3 & "' and " & _
          "      str(Table1.Telephone)   = '" & t4 & "'"

    DoCmd.RunSQL SQL
End Sub

مثال معدل لبرنامجك : print_update1.rar

مع الاحترام والتقدير

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

استاذي العزيز خضر

رغم محاولتي ولكن لعدم خبرتي بالاكواد عجزت عن تعديل الكود ليتوافق مع برنامجي ليعمل بطريقة سليمة لطباعة السطر المطلوب واتمنى منك مساعدتي اذا امكن بالتعديل على الكود

وتقبل خالص تحياتي

month.rar

رابط هذا التعليق
شارك

السلام عليكم

أخي met :fff: ،

إبتداءاً، أشكرك على رفع الملف الخاص بالمسألة فالآن اتضحت الصورة تماما والحل المطلوب لهذه المسألة يختلف عن اقتراحي السابق.

أرجو أولا أن تتابع الشرح التالي والذي يحل المسألة المطلوبة:

الشرح :

" فرز وتصفية سجلات التقرير حسب ما تم تحديده في النموذج"

سؤال : عندي نموذج وفي التعامل معه أقوم بالتصفية فيظهر لي جزء من السجلات حسب عوامل التصفية التي احددها ثم اقوم بفرز (ترتيب) هذه السجلات تصاعديا أو تنازليا حسب حقل معين ، وما أريده هو أنه عند الضغط على زر الطباعة للتقرير المتعلق بهذا النموذج أن يطبع لي هذه السجلات تماما حسب عوامل التصفية والفرز التي تم تحديدها في النموذج.

الجواب : تلقيت هذا السؤال من عدة أشخاص بأشكال مختلفة فتارة الحديث عن التصفية فقط وتارة عن الفرز (الترتيب) وتارة عن استخدام المعاملات في الحالتين ، والآن أود أن ألقي الضوء على الطريقة النموذجية للتعامل مع هذه المسألة الشيقة والمفيدة للكثيرين.

أولا : نقل عوامل التصفية إلى التقرير

إن ما يتم تصفيته في النموذج يخزن تلقائيا في FILTER النموذج وما عليك عمله حتى تطبع التقرير بنفس طريقة التصفية التي عملت على النموذج هو بإضافة هذه الفلترة في معلمات التقرير عند طلبه كما يلي :

DoCmd.OpenReport "f1", acViewPreview, , Me.Filter

حيث f1 اسم التقرير

acViewPreview للمعاينة قبل الطباعة

ولا تنسى وضع فاصلتين ,, وليس واحدة بعد طريقة العرض acViewPreview

وأخير me.filter هي التصفية التي تم تحديدها في وضع الفتح للنموذج

وتعمل هذا مع كل أوامر فتح التقارير الموجودة في النموذج مع تغيير اسم التقرير فقط

ثانيا : نقل عوامل الفرز إلى التقرير

في النموذج ولز الأمر الخاص بمعاينة التقرير تضع في إجراء حدث عند النقر ما يلي :

stDocName = "test"
    DoCmd.OpenReport stDocName, acPreview, , , , Me.OrderBy
أرجو الانتباه لعدد الفواصل لأنه مهم جدا. في التقرير وفي حدث الفتح تضع ما يلي :
Private Sub Report_Open(Cancel As Integer)
Me.OrderBy = Me.OpenArgs
Me.OrderByOn = True
End Sub
النتيجة هي فرز (ترتيب) التقرير حسب نفس الترتيب الذي تم تحديده في النموذج وهذه الطريقة سأسميها "استخدام OpenArgs في ترتيب التقارير بحسب الترتيب في النموذج" ولا تعارض بين الإثنتين ولنقل الفرز والتصفية معا إلى التقرير يتم طلب التقرير كما يلي :
DoCmd.OpenReport "f1", acViewPreview, , Me.Filter, , Me.OrderBy

مع الإنتباه للفواصل لأنها مهمة جدا .

عودة إلى مسألتك ،

1. يجب أن يكون للنموذج الذي نطلب منه سطر الطباعة مصدر سجلات وهو جدول البيانات.

2. في حدث (بعد التحديث) للمتغير (m) الذي نختار من خلاله السطر المراد طباعته نحدد الفلتر والذي اسميته Gfilter

3. قبل طلب التقرير يتم تحديد فلتر النموذج والذي ينتقل تلقائيا للتقرير لأن مصدر السجلات لكل منهما هو نفس الجدول.

4. لاحظ أن (أولا ) فقط من الدرس السابق تحل المسألة .

المثال المعدل : month_update.rar

مع الاحترام والتقدير

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

اشكرك استاذي على هذا التعديل الجميل واليك ملاحظاتي

بعد تجربة البرنامج لاحظت المشاكل التالية : -

1 - في حالة عدم كتابة اليوم في السطر كما هو الحال في السطر الاخير لايتم تحويل اي من البيانات الى التقرير للطباعة

وهذه المشكلة ليست مشكلة كبيرة بالنسبة لي على عكس المشكلة رقم 2

2 - في حالة تشابة البيانات الموجودة Regno - opr - type يقوم بتحويل جميع الاسطر للطباعة وليس السطر الذي تم اختياره فقط

وكانت البيانات المكرره هي

Regno Opr Type

---------------------------------------------------

AAA QEEE WLCM

ارسل لك نسخة من الملف بالبيانات المكرر

ولكم خالص تحياتي

والسلام عليكم ورحمة الله وبركاته

month_update.rar

رابط هذا التعليق
شارك

السلام عليكم

أخي met ، التعديل يكون فقط بزيادة الحقول التي حددناها لتكون مفتاحا للجدول

يعني المطلوب منك هو زيادة حقل أو اثنين حسب ما تراه مناسبا.

مع الاحترام

رابط هذا التعليق
شارك

السلام عليكم ورحمة الله وبركاته

اخي خضر لم افهم ماتقصده بزياده حقل او اثنين وماهي البيانات التي ساضع فيها الحقول ؟

انا ارى الطريقة القديمة حينما قمت بانشاء ملف Temp كانت تعمل بشكل احسن من الطريقة الحالية

المشكلة هي رغم اختياري سطر واحد الا انني تفاجأت بان اكثر من سطر ظهر في التقرير المفروض طباعته

بسبب تشابه البيانات في بعض الحقول

ولك جزيل الشكر

رابط هذا التعليق
شارك

السلام عليكم

أخي met :fff: ،

المقصود هو أن تختار من الحقول الموجود أصلا في الجدول وليس حقول إضافية جديدة .

القاعدة التي ستمكنك من انجاز العملية كما هو مطلوب : أن تختار مجموعة من الحقول التي تجعل السجل فريدا (أي مجموعة الحقول هذه هي عبارة عن مفتاح رئيسي مركب للجدول).

مع الاحترام والتقدير

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information