דילוג לתוכן

תכנות

4.8k נושאים 39.2k פוסטים

קטגוריות משנה


  • 22 נושאים
    137 פוסטים
    katzK

    שלום לכולם
    התבקשתי רבות מחברים פיתרון לבעיה הידועה לבצע מיזוג דואר, אך לשמור קובץ PDF נפרד לכל רשומה, עם שם מותאם אישית.

    אפרט כאן במדריך שלב אחר שלב איך לבצע זאת, תהיו איתי עד הסוף מקווה שתהנו...

    נתחיל...

    שלב א:

    ראשית בקובץ ה- Excel של רשימת הנמענים, הוסיפו לטבלת הנתונים ארבעה עמודות בשמות כדלהלן (חשוב שהשמות יהיו מדויקים ללא רווחים מיותרים - לתשומת ליבכם):

    DocFolderPath

    DocFileName

    PdfFolderPath

    PdfFileName

    שלב ב:
    צרו שתי תיקיות נפרדות, אחד לקבצי הפלט בפורמט docx, ואחד לקבצי הקלט בפורמט pdf, העתיקו את נתיב התיקייה של קבצי ה- docx והדביקו אותם עבור כל רשומה בשדה שיצרתם בשם DocFolderPath, לאחמ"כ חזרו על הפעולה והפעם העתיקו את נתיב התיקייה של קובצי ה- PDF והדביקו בשדה PdfFolderPath.
    בשדה DocFileName כתבו את השם של הקובץ עבור הרשומה - ניתן להשתמש בנוסחאות, כמו"כ בשדה PdfFileName כתבו את שם הקובץ כנ"ל.

    שלב ג:
    פתחו את קובץ ה- word והשלימו את פעולת המיזוג כרגיל, עצבו את המסמך כרצונכם.

    שלב ד:
    פתחו את לשונית מפתחים בקובץ ה- word פתחו את עורך הקוד הוסיפו מודל חדש מצו"ב צילום מסך:
    3eb2538f-9ab1-41eb-a1df-452212916da6-image.png

    הדביקו את הקוד הבא:

    Sub MailMergeToPdfBasic() ' Mark the start of the Subroutine (i.e. Macro) and name it "MailMergeToPdf" ' Macro created by Imnoss Ltd ' Please share freely while retaining attribution ' Last Updated 2021-05-03 Dim masterDoc As Document, singleDoc As Document, lastRecordNum As Long ' Create variables ("Post-it Notes") for later use Set masterDoc = ActiveDocument ' Identify the ActiveDocument (foremost doc when Macro run) as "masterDoc" masterDoc.MailMerge.DataSource.ActiveRecord = wdLastRecord ' jump to the last active record (active = ticked in edit recipients) lastRecordNum = masterDoc.MailMerge.DataSource.ActiveRecord ' retrieve the record number of the last active record so we know when to stop masterDoc.MailMerge.DataSource.ActiveRecord = wdFirstRecord ' jump to the first active record (active = ticked in edit recipients) Do While lastRecordNum > 0 ' create a loop, lastRecordNum is used to end the loop by setting to zero (see below) masterDoc.MailMerge.Destination = wdSendToNewDocument ' Identify that we are creating a word docx (and no e.g. an email) masterDoc.MailMerge.DataSource.FirstRecord = masterDoc.MailMerge.DataSource.ActiveRecord ' Limit the selection to just one document by setting the start ... masterDoc.MailMerge.DataSource.LastRecord = masterDoc.MailMerge.DataSource.ActiveRecord ' ... and end points to the active record masterDoc.MailMerge.Execute False ' run the MailMerge based on the above settings (i.e. for one record) Set singleDoc = ActiveDocument ' Identify the ActiveDocument (foremost doc after running the MailMerge) as "singleDoc" singleDoc.SaveAs2 _ FileName:=masterDoc.MailMerge.DataSource.DataFields("DocFolderPath").Value & Application.PathSeparator & _ masterDoc.MailMerge.DataSource.DataFields("DocFileName").Value & ".docx", _ FileFormat:=wdFormatXMLDocument ' Save "singleDoc" as a word docx with the details provided in the DocFolderPath and DocFileName fields in the MailMerge data singleDoc.ExportAsFixedFormat _ OutputFileName:=masterDoc.MailMerge.DataSource.DataFields("PdfFolderPath").Value & Application.PathSeparator & _ masterDoc.MailMerge.DataSource.DataFields("PdfFileName").Value & ".pdf", _ ExportFormat:=wdExportFormatPDF ' Export "singleDoc" as a PDF with the details provided in the PdfFolderPath and PdfFileName fields in the MailMerge data singleDoc.Close False ' Close "singleDoc", the variable "singleDoc" can now be used for the next record when created If masterDoc.MailMerge.DataSource.ActiveRecord >= lastRecordNum Then ' test if we have just created a document for the last record lastRecordNum = 0 ' if so we set lastRecordNum to zero to indicate that the loop should end Else masterDoc.MailMerge.DataSource.ActiveRecord = wdNextRecord ' otherwise go to the next active record End If Loop ' loop back to the Do start End Sub ' Mark the end of the Subroutine

    שלב ה וסיום:
    סגרו את עורך הקוד.
    לחצו על כפתור פקודות מאקרו שבכרטיסיית מפתחים, בחרו את המאקרו בשם MailMergeToPdfBasic ולחצו הפעל מצו"ב צילום מסך
    3890ce69-c0e9-4f30-89ce-3e97b7de750b-image.png

    כעת שבו בנחת והמתינו עד ליצירת כל הקבצים, להנאתכם תפתחו את תיקיות הפלט שיצרתם וגלו שהיא מלאה קבצים קובץ לכל רשומה בשם המתאים שהגדרתם לה.

    מקור

  • ארכיון האתר הקודם והחביב קוד-613

    1k נושאים
    10k פוסטים
    chagoldC

    @אבי אמר בשוב, צילומי הצ'קים בבנקים:

    התעסקתי לאחרונה עם סורקים של חברת MAGTEK, הם ידידותיים ונוחים להתממשקות, אבל כמדומני שהבנקים בישראל מוכנים לקבל סריקות רק מסורקים של חברת PANINI

    @אבי איך יוצרים אתך קשר?

  • 31 נושאים
    133 פוסטים
    Y.Excel.AccessY

    יש כמה נוסחאות חדשות שממש משנות את כללי המשחק בגוגל שיטס:

    CHOOSECOLS לבחירת עמודות ממערך CHOOSEROWS לבחירת שורות ממערך WRAPROWS להמרת מערך חד ממדי לרב ממדי - פריסה לשורות WRAPCOLS כנ"ל - פריסה לעמודות HSTACK ו VSTACK - הפעולה של {} אך בלי סוגריים - לא משמעותי לכאורה

    והעולה על כולנה, סוף סוף:

    LET - ליצירת משתנים.

    כל אלו מצטרפות לפונקציות שנוספו מוקדם יותר -
    https://blog.sheetgo.com/google-sheets-formulas/10-new-google-sheets-functions/

    וכלול בתוכם - LAMBDA, MAP (חלקי - לא עובד לקנן ב MAP ודומיו מערכים אחרים), פונקציות בעלות שם, וכו' ע"ש בקישור.

  • עזרה קטנה באקסס...

    הועבר
    2
    0 הצבעות
    2 פוסטים
    112 צפיות
    אבייא

    היי, הסתדרתי, זה היה איזה בעיה באקסס... (סגרתי את המחשב, ושפתחתי אותו שוב זה הסתדר...)

  • בוטסטראפ לא מכניס את העיצוב לHTML?

    9
    0 הצבעות
    9 פוסטים
    203 צפיות
    A

    @MusiCode שמת לב שגם על התגיות td a אתה חוזר כמה פעמים?

    הכלל שלימדו אותך אומר אל תכתוב פעמיים את הקוד כדי לעשות אותו דבר, תכתוב אותו במקום אחד ותקרא לו מכל המקומות שאתה צריך. ואין לזה קשר לכאן, כי כאן אתה לא מצהיר על הקלאס הרבה פעמים אלא משתמש בו הרבה פעמים.
    בדיוק כמו שאתה מגדיר פעם אחת פונקציה, ומשתמש בה הרבה פעמים.
    למשל, אתה משתמש בפונקציה console.log() הרבה פעמים ואתה לא אומר שזה נמצא פעם אחת יותר מדי..

    העניין הוא ההגדרה של הפונקציה או הקלאס, שאותו כותבים רק במקום אחד, כדי שאח"כ אם תצטרך לתחזק אותו (דהיינו לשנות / לעדכן) תוכל לעשות זאת פעם אחת ודי. אח"כ אתה יכול להשתמש בו איפה שאתה רוצה.

    לגבי חיסכון בכתיב, אתה יכול לשים את הקלאסים המשותפים על ההורה המשותף, למשל על הtd, ובתגית a לשים רק את הקלאסים השונים.

    אין חובה ללמוד sass, אבל זה מומלץ.
    זה נותן לך כל מיני יכולות (קינון של css שחוסך כתיבה מסורבלת של css, שימוש במשתנים, פונקציות לולאות ועוד), אלא שאתה צריך בשביל זה קומפיילר (babel.js) שיקמפל את זה אח"כ לcss רגיל. אם אתה משתמש בפריימוורקים למיניהם בד"כ זה כבר כלול.

  • האזנה לערוץ בתוך כמה פונקציות במקביל

    25
    0 הצבעות
    25 פוסטים
    481 צפיות
    nigunN

    @יוסף-בן-שמעון
    את האמת אני לא מכיר בכלל את הקונספט של קולבקים
    כנראה אני אשב על זה מתי שהוא ללמוד את זה (לא נראה מסובך)

  • שליחת מידע מימות המשיח למסד נתונים חיצוני?

    2
    0 הצבעות
    2 פוסטים
    74 צפיות
    nigunN

    @אבי-203
    הנה מ"מ להתחלה
    https://www.call2all.co.il/f2/viewtopic.php?f=12&t=2844
    https://www.call2all.co.il/f2/viewtopic.php?f=12&t=2780

  • שעון יפייפה, עם SVG וReact (סרטון הסבר +קוד +חומר)

    הועבר
    1
    11 הצבעות
    1 פוסטים
    138 צפיות
    אין תגובות
  • שרת מייל - open source - פרויקטים רלוונטיים

    8
    1 הצבעות
    8 פוסטים
    223 צפיות
    A

    אתמול בדקתי את postal וmailtrain.
    ההתקנה של postal ממש פשוטה, בממשק ניהול יש הדרכה איך להגדיר SPF וDKIM..

    mailtrain - התקנה נוחה, מתחבר לSMTP או API נתמך. יש ניהול קמפיינים, רשימות, עריכה ויזואלית של טמפלטים, טריגרים לשליחה של קמפיין פר משתמש - לדוגמא שליחת קמפיין X ימים לאחר שמשתמש פתח\הקליק על מייל..

  • מחפש מתכנת בדחיפות להקמת קו טלפון

    הועבר
    14
    0 הצבעות
    14 פוסטים
    600 צפיות
    י. מ. פינסי

    נו נו!!!!!👍 👍

  • מתכנתים - מה תרצו ללמוד בעברית?

    הועבר
    3
    0 הצבעות
    3 פוסטים
    249 צפיות
    נתנאלנ

    אתה יכול בבקשה להפנות למקורות טובים בעברית של full stack js?

  • שימוש במודולים בקומפננטה שנייה באותו קובץ

    3
    0 הצבעות
    3 פוסטים
    106 צפיות
    A

    @גמליאל קח עצה, תעתיק את הודעת השגיאה שאתה מקבל, ואם היא ארוכה את ההתחלה או החלק העיקרי שלה, ותדביק בגוגל.
    בד"כ אתה תמצא מיד את התשובה.
    באנגולר ממליץ לך לקרוא את השגיאה (לתרגם אם יש לך צורך..), בד"כ היא מפורטת ומובנית מעצמה.

  • עזרה בשאילתת סכומים באקסס

    3
    0 הצבעות
    3 פוסטים
    65 צפיות
    WWWW

    תודה רבה!
    חבל שלא קבלתי התראה שהגבת.
    בסוף מצאתי את הנ"ל כאן: https://stackoverflow.com/questions/11722852/getting-sum-using-sql-with-multiple-conditions

    לגבי ההערה, אני צריך להציג את הנתון למישהו עם ייצוא לקובץ אקסל בדיוק כך. מה לעשות זו הדרישה.

  • המלצה: התקנת תוכנות הכתובות בGO ללא צורך בקומפיילר

    1
    1 הצבעות
    1 פוסטים
    54 צפיות
    אין תגובות
  • MEDIAWIKI נמחק המסד נתונים

    5
    0 הצבעות
    5 פוסטים
    112 צפיות
    dovidD

    סתם ככה כפרקטיקה טובה, לפני שמוחקים שרת מכבים אותו ליממה או שתיים ככה עולים הבעיות בזמן.

  • ASP CORE אנטיטי - איפה ליצור את המופע של הדאטבייס

    4
    0 הצבעות
    4 פוסטים
    83 צפיות
    dovidD

    המחיקה נחלקת לשניים, א. פינוי שטח זיכרון ששייך אפילו במשתנה, ב. סגירה ופינוי מפורש של משאבים יקרים על ידי המתודה Dispose. מה שכעת אכפת לנו זה לא הזיכרון אלא חיבורים למסד (במקרה שלנו).
    בכתיבת קוד נכון, כל אובייקט שמממש את IDisposable חייבים לכתוב לו בפירוש instance.Dispose() או להשתמש בUsing שעושה זאת עבורינו.
    מפתחי ASP CORE שבנו מחלקה שיוצרת את המופע של הIController בשביל להגיב לבקשה דאגו לקרוא לDispose שלה בסוף מייד אחרי סיום התשובה.
    במקרה של קריאה לDispose התועלת היא מיידית בלי קשר לGC.
    לעמות זאת באובייקטים שלא מממשים IDisposable או שמממשים אבל לא קראו למתודה Dispose אז רק כאשר הGC יגיע אליהם, ויש לו קצב משלו (שקשור אך ורק למצב הזיכרון ולא לבעיות אחרות כמו מס' חיבורים למסד נתונים וכאלה), רק אז ייקרה הDispose.

  • "רענון" טבלה בMYSQL

    4
    0 הצבעות
    4 פוסטים
    122 צפיות
    dovidD

    צריך שיהיה עמודה אחת שהשם שלה למשל batch שזה יהיה מס' או מזהה פעולה.
    בכל הכנסה של מספר יש להכניס מס' אחיד לכלל המספרים שנכנסו יחד איתו בעמודה batch.
    כעת הבעיה נפתרת:

    מבצעים הכנסה של כלל המספרים החדשים
    ביחס למספרים שכבר היו זה שתי אפשרויות:
    א. המספר טלפון הוא מפתח ראשי, במידה כזו אפשר ע"י ON DUPLICATE KEY UPDATE... לעדכן את הbatch בערך הנוכחי
    ב. המספר אינו מפתח ראשי, גם זה מחולק ל2 האם אכפת שיהיה שניים למשך כמה שניות, אם כן אז מצויין שייכנס בינתיים. אם אסור שיהיה כפול, פה כבר צריךIF בשאילתה שמעדכן או מוסיף.

    מוחקים את כלל השורות שהbatch שלהם שונה מהאחרון

  • ערכי screen שלא מתרעננים בVUE

    5
    0 הצבעות
    5 פוסטים
    122 צפיות
    yossizY

    @chagold אמר בערכי screen שלא מתרעננים בVUE:

    זה לא היה אמור להיות בVUE אוטומטית, עם כל שינוי במסך?

    לא. זה בדיוק הנקודה.
    איך VUE מזהה שינויים בדאטה?
    כי כאשר אתה מאתחל מופע של VUE עם מבנה של דאטה, VUE עובר על כל השדות של הדאטה וממיר את המאפיינים לפונקציות get/set. ולכן, בכל שינוי של ערך נקרא פונקציית ה-set שתפקידו להודיע ל-VUE על שינוי הערך.
    אבל איך VUE אמור לזהות שינוי הערך של window.innerWidth שקורה בלי גישה למאפיין אלא על ידי שינוי גודל החלון?
    לכן אני מודיע ל-VUE בכל שינוי גודל החלון על שינוי הערך.

  • שגיאה ב API מול וורדפרס

    הועבר
    7
    0 הצבעות
    7 פוסטים
    322 צפיות
    י

    נכון הבנת

  • כניסה לעולם התיכנות

    13
    1 הצבעות
    13 פוסטים
    366 צפיות
    The shadowT

    @avr416 אמר בכניסה לעולם התיכנות:

    אם יש לך את הספר של ברזיק על JS - לדעתי תתחיל איתו.

    אוקיי
    אני הולך על זה....

  • אפליקציה פשוטה של יצירה/עדכון/מחיקה

    9
    0 הצבעות
    9 פוסטים
    167 צפיות
    MusiCodeM

    מצאתי את הבעיה.
    אעדכן שיהיו לי עוד שאלות.

  • קבלת מיקום נוכחי ממשתמש

    הועבר
    33
    0 הצבעות
    33 פוסטים
    837 צפיות
    T

    @A0533057932
    ברור שלא. אבל זו הבחירה של המשתמש.
    אין לי דרך לבדוק איפה הוא אם הוא לא מוכן.
    אגב כל האפליקציות לא עובדות אם המשתמש לא מאשר בדיקת מיקום.
    בנוסף, אני יכול לאפשר לו פשוט להזין לאפליקציה איפה הוא נמצא - אם הוא לא רוצה שאשתמש לו בנתונים או משהו. מבחינתי אין הבדל, העיקר שאני אדע איפה הוא.
    כלומר: ברגיל אני אבקש אישור ואבדוק לבד איפה הוא. אם הוא לא יאשר, תהיה לו אופציה לכתוב לבד איפה הוא. גם את זה לא מוכן? לא צריך טובות והאפליקציה תיפרד ממנו לשלום

  • קוד PHP להורדת קבצים מרובים מהשרת

    הועבר
    6
    0 הצבעות
    6 פוסטים
    209 צפיות
    י

    תודה,
    עם המענה שלך אכן חיפשתי בלוג
    חיפוש בגוגל אכן הביא לי את הפתרון הזה
    להתקין את ההרחבות ולהפעיל את האפאצ'י מחדש

    sudo apt-get install php-zip sudo phpenmod zip sudo service apache2 restart
בא תתחבר לדף היומי!