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

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

قام بنشر

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

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

حاولت تعديل هذا الكود ولكن للاسف لم ينجح التعديل

DoCmd.OutputTo acReport, "waled", acFormatPDF, "C:\ww\waled.pdf", False
 

قام بنشر
24 دقائق مضت, waledstar said:

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

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

حاولت تعديل هذا الكود ولكن للاسف لم ينجح التعديل

DoCmd.OutputTo acReport, "waled", acFormatPDF, "C:\ww\waled.pdf", False
 

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

الطريقة :::

اولا : تصدير التقارير الى pdf كل تقرير على حدا .

ثانيا : دمج التقارير المصدرة في تقرير واحد .

ثالثا : بقي التنفيذ ............ لو كان هناك مثال

قام بنشر
30 دقائق مضت, waledstar said:

اخى الكريم هل يوجد كود فى الاكسس يقوم بدمج ملفات ال  pdf

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

قام بنشر

هذه هي الطريقة ..

في 30‏/10‏/2019 at 15:30, jjafferr said:

السلام عليكم 🙂

 

بالاضافة الى ميزات الاكسس الشخصية ، فيه امكانية مخاطبة البرامج الاخرى بعدة طرق ، احدها عن طريق Command line ،

بحيث يمكننا ان نرسل اوامر من الاكسس الى هذا البرنامج الذي يقبل الاوامر من Command line .

 

البرنامج pdftk (في المرفق) احد هذه البرامج https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

 

المرفق فيه برنامج اكسس وملف a.pdf و b.pdf ، وبزر من الاكسس ، سيتم دمج الملفين الى ملف ab.pdf ،

وفي المرفق ملف الاوامر التي يقبلها برنامج pdftk .

 

البرنامج يستطيع التعامل مع ملفات pdf بعدة طرق ، لذلك وجب قراءة ملف الاوامر 🙂

وهذا هو الكود:

Private Sub cmd_combine_Click()

'Merge Two or More PDFs into a New Document
'pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf

    Dim pdftk_File As String
    Dim a_FILE As String
    Dim b_FILE As String
    Dim ab_FILE As String
    Dim Command_Line As String
    
    
    pdftk_File = Chr(34) & Application.CurrentProject.Path & "\" & "pdftk" & Chr(34)
    a_FILE = Chr(34) & Application.CurrentProject.Path & "\" & "a.pdf" & Chr(34)
    b_FILE = Chr(34) & Application.CurrentProject.Path & "\" & "b.pdf" & Chr(34)
    ab_FILE = Chr(34) & Application.CurrentProject.Path & "\" & "ab.pdf" & Chr(34)
    
    Command_Line = pdftk_File & " "
    Command_Line = Command_Line & a_FILE & " "
    Command_Line = Command_Line & b_FILE & " "
    Command_Line = Command_Line & "cat output" & " "
    Command_Line = Command_Line & ab_FILE
    'Debug.Print Command_Line
    
    Shell_n_Wait Command_Line, vbHide
    
End Sub

 

جعفر

اعتقد عندي هذا الملف من سنة 2009 :biggrin2:

 

تعديل 31-10-2019 :

- استخدام الوحدة النمطية Shell_n_Wait والتي تقبل حروف unicode - utf-8 ، من

https://github.com/xxdoc/vb6-Shell-Wait/blob/master/Shell %26 Wait v2/modShellWait.bas
http://www.vbforums.com/showthread.php?700373-VB6-Shell-amp-Wait&p=4288285&viewfull=1#post4288285

- تم تغليف مسار الملفات بالاشارة " ، وذلك لحل مشكلة وجود مسافات في اسم المسار او الملف ،

- تم تفكيك خط الامر الى مكونات اصغر ، لسهولة تغيير اي جزء منه.

 

 

Combine_PDF_Files_2.zip 2.73 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 299 downloads

pdftk_2.02.zip 2.52 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 169 downloads

 

قام بنشر (معدل)
الان, Lamyaa said:

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

https://www.cmd2pdf.com/

انا فعلا نزلت البرنامج ممتاز جدا ونفذت الكود على سطر CMD وبالفعل تم عمل دمج لاكثر من ملف PDf
https://drive.google.com/file/d/1EM6IQUr0I8ugusnlC48OZWNE7YUzOsdf/view?usp=sharing

 

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

تم تعديل بواسطه waledstar
قام بنشر

هناك حيلة صغيرة يا أخي @waledstar سأعلمك إياها بدون الحاجة لبرامج خارجية 🙂 

بعد أن تقوم بتصميم جميع التقارير قم بتصميم تقرير تجميعي .. بحيث تجمع فيه كل التقارير على شكل تقارير فرعية ..

وثم تفصل بينها بأداة فاصل الصفحات (image.png.a6c0d661c21983789471012d0605d910.png) .. فيظهر لك الشكل النهائي بهذه الطريقة :

image.png.f7ff792da734a7c42ba27ad1f56541a2.png

بعدها تقوم بتصدير التقرير التجميعي على صيغة PDF فيحصل المطلوب ☺️

وهذا مثال للطريقة :

Many Reports in 1 PDF.accdb

  • Like 4
قام بنشر
في 28‏/6‏/2022 at 03:28, waledstar said:

انا فعلا نزلت البرنامج ممتاز جدا ونفذت الكود على سطر CMD وبالفعل تم عمل دمج لاكثر من ملف PDf
https://drive.google.com/file/d/1EM6IQUr0I8ugusnlC48OZWNE7YUzOsdf/view?usp=sharing

 

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

عن طريق الشل

 

أنا أستخدمه بهذه الطريقة:

Dim wsh As Object
Dim str2PDF As String
Set wsh = VBA.CreateObject("WScript.Shell")
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1

str2PDF = "cmd.exe /C 2PDF.exe -src " & Chr$(34) & " C:\Temp4\*.pdf" & Chr$(34) & " -dst " & Chr$(34) & "c:\temp5" & Chr$(34) & " -pdf multipage:append combine:" & Chr$(34) &  "اسم الملف التجميعي.pdf" & Chr$(34) & " , windowStyle, waitOnReturn"
txtCMD = str2PDF

wsh.Run str2PDF

بحيث الملفات التي أود دمجها تم حفظها مسبقا في مجلد c:\temp4

ويتم حفظ الملف الناتج في مجلد c:\temp5

قام بنشر
23 ساعات مضت, Moosak said:

هناك حيلة صغيرة يا أخي @waledstar سأعلمك إياها بدون الحاجة لبرامج خارجية 🙂 

بعد أن تقوم بتصميم جميع التقارير قم بتصميم تقرير تجميعي .. بحيث تجمع فيه كل التقارير على شكل تقارير فرعية ..

وثم تفصل بينها بأداة فاصل الصفحات (image.png.a6c0d661c21983789471012d0605d910.png) .. فيظهر لك الشكل النهائي بهذه الطريقة :

image.png.f7ff792da734a7c42ba27ad1f56541a2.png

بعدها تقوم بتصدير التقرير التجميعي على صيغة PDF فيحصل المطلوب ☺️

وهذا مثال للطريقة :

Many Reports in 1 PDF.accdb 520 kB · 16 downloads

الفكرة جميلة وجديدة علي..  ولكن لاحظت أن هناك صفحة فارغة بين كل تقرير!

قام بنشر (معدل)
31 دقائق مضت, Lamyaa said:

ولكن لاحظت أن هناك صفحة فارغة بين كل تقرير!

عندي لم تظهر صفحات فارغة ..

وسبب ظهورها على ما أعتقد هو عملية نقل البرنامج بين الأجهزة واختلاف إعدادات الطابعة الافتراضية ..

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

وإما أن يتم ضبط إعدادات التقرير على طابعة محددة فتبقى الإعدادات نفسها في كل الأجهزة .. 🙂 

تم تعديل بواسطه Moosak
  • 2 weeks later...
قام بنشر

أخي يوجد حل بسيط وأنا أستخدمه منذ فترة ليست بالقصيرة

قم بتنزيل برنامج   PDF Factory Pro  من موقعه 

https://fineprint.com/pdfp/

بعد تنصيبه وترخيصه واختياره كطابعة افتراضية

تقوم بطباعة التقرير الأول والذي سيظهر كتقرير pdf

نبقي البرنامج مفتوحاً ولا نغلقه (وهنا جمال البرنامج)

وكلما نطبع تقرير جديد يضاف إلى أسفل المطبوع سابقاً

وبعد الانتهاء نقوم بحفظ PDF كملف واحد وفيه كل ما أردناه

البرنامج صغير الحجم ويعمل كطابعة وهمية

ويقدم خدمات أخرى قد يسعفني الوقت لشرحها مستقبلاً

 

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