اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

مشكله في امر الطباعه


co2002co

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

في امر الطباعه للتقرير ( الوصفه )

فان جميع الادويه المسجله ب اسم المريض طووووول اليوم تطبع دفعه واحده

مثلا اذا المريض زار اكثر من طبيب في نفس اليوم فان الناتج هو

ان الطبيب رقم 1 راح يطبع صح

الطبيب رقم 2 راح يطبع وصفته + وصفة الطبيب رقم 1

الطبيب رقم 3 راح يطبع وصفته + وصفة الطبيب رقم 2 + وصفة الطبيب رقم 1

 

كيف اخلي امر الطباعه فقط للوصفة الان او الحالي من غير طباعه باقي الوصفات

 

غالبا تحدث هذه المشكله مع الوصفه رقم 3

Medication.rar

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

السلام عليكم :rol:

 

عندي اقتراحين لحل الموضوع:

 

1. بما انه هناك اكثر من دكتور ، فتستطيع ان تربط الطباعة بإسم الدكتور كذلك ،

يعني التقرير سيُطبع على اساس المعايير التالية:

اسم المريض ، تاريخ الزيارة ، واسم المريض.

2. وهذا ما اقترحته لك في الموضوع السابق ، وسأعمل عليه الآن:

جعفر

 

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

السلام عليكم :rol:

 

هذه هي الطريقة رقم 2 ، والتي قلت لك في الرابط السابق (وانا لا انصحك بهذا) ، وعادة انا لا اقدم حل انا غير مقتنع فيه ، ولكنك مُصر عليه :blink::

 

وللعلم ، فقد عملت التغييرات التالية على البرنامج (حتى تستطيع ان تنقل هذه التغييرات الى برنامجك النهائي):

1. إضافة الحقل Print_This

345.Clipboard02.jpg

.

2. إضافة الحقل Print_This ، في الاستعلامين qry_Patient_Drugs و qry_Patient_Drugs_rpt وعمل معيار للطباعة وهو Print_This=-1 ،

3. إضافة السطر التالي في الكود:

345.Clipboard01.jpg

.

4. وتغيير هذا الكود بالكامل:


Private Sub cmd_Report_1_Click()
On Error GoTo err_cmd_Report_1_Click

    'subform Recordset
    Dim rst As DAO.Recordset
    Set rst = Me.sfrm_Patient_Drugs.Form.RecordsetClone
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    
    If RC = 0 Then
        MsgBox "Nothing to Print"
        rst.Close: Set rst = Nothing
        Exit Sub
    End If
    
    
    'print Report
    DoCmd.OpenReport "rpt_Patient_Drugs", acViewPreview
    
    
    'Reset Print_This
    For i = 1 To RC
        
        If rst!Print_This = -1 Then
            rst.Edit
                rst!Print_This = 0
            rst.Update
        End If
        
    rst.MoveNext
    Next i
    
    rst.Close: Set rst = Nothing
    
    
Exit Sub
err_cmd_Report_1_Click:

    If Err.Number = 3021 Then
        'ignor
        Exit Sub
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

 

والطريقة التي يعمل فيها البرنامج:

عند إضافة دواء ، فالسجل سيكون جاهز للطباعة (Print_This=-1) ،

واذا اردت طباعة ادوية قديمة ، فضع علامة صح على الحقل Print_This (ستجد هذا الحقل في اقصى يمين النموذج الفرعي) ،

وعند الضغط على زر الطباعة ، سترى السجلات المطلوبة في التقرير ، ولكن عند اغلاقك للتقرير لن يمكنك طباعة هذه السجلات مرة اخرى ، لأننا جعلنا Print_This=0 . لذا يجب عليك ان تغير امر طباعة التقرير ، فلا يكون معاينة ، وإنما يكون طباعة مباشرة.

 

جعفر

345.Medication.accdb.zip

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

19 دقائق مضت, co2002co said:

 ممكن نوضح لي مدلولات كلمتي

True

False

في اللغه البرمجيه

True = -1

False = 0

هذا بالنسبة الى حقل نعم/لا ، وتقدر تستخدم اي طريقة منهم :rol:

 

43 دقائق مضت, co2002co said:

انت في نظرك

ايش هو الحل الامثل لهاذي المشكله تحديدا

اذا كان كل دكتور له اسم مستخدم ، فتستطيع:

تدمج بين الطريقة اعلاه ، واسم الدكتور في معيار استعلام التقرير ، ويدويا الصيدلي يختار الدواء ، اذا تم صرفه سابقا.

 

47 دقائق مضت, co2002co said:

كلام حلو وجميل

جربته الان وممتاز جدا

حياك الله :rol:

 

جعفر

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

12 دقائق مضت, co2002co said:

ممكن ايضاح اكثر

اعيد نفس خطوات print_This ل اسم المستخدم ( الطبيب المعالج )

نعم في استعلام التقرير فقط ،

بهذه الحالة ، استعلام التقرير سيكون فيه 4 معايير:

اسم المريض ، التاريخ ، Print_This ، واسم الدكتور.

 

واذا عملت هذه الطريقة ، فيجب ان يكون نموذج الصيدلي يحتوي على مربع سرد فيه اسماء الدكاترة ، بحيث يستطيع طباعة التقرير باسم كل دكتور على حده ، او كل الدكاترة مع بعض :rol:

 

 

جعفر

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information