דילוג לתוכן

תכנות

4.7k נושאים 38.7k פוסטים

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


  • 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 ודומיו מערכים אחרים), פונקציות בעלות שם, וכו' ע"ש בקישור.

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

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

    נו נו!!!!!👍 👍

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    נכון הבנת

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    sudo apt-get install php-zip sudo phpenmod zip sudo service apache2 restart
  • המרת מיקום מפורמט קו אורך-רוחב, למחרוזת טקסט

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

    אגב, בתחום המפות תמיד כדאי לבדוק גם את OpenStreetMap.
    למשל בשביל מה שאתה מציע - יש את nominatim.org

    דוגמא

  • התקנת DB בקובץ התקנה inno setup

    2
    0 הצבעות
    2 פוסטים
    51 צפיות
    dovidD

    חיפשת בגוגל
    inno setup install mongo
    ?

    אני רואה בגיט קובץ כזה מוכן:
    https://github.com/rexzhang/mongodb-win-install-script/blob/master/mongodb-win-install-script.iss

  • איך פונציית change תזהה גם שינוי בקוד?

    2
    0 הצבעות
    2 פוסטים
    44 צפיות
    yossizY

    https://stackoverflow.com/a/4200383

  • שינוי רכיב אחד לאחר שינוי ברכיב אחר - vue

    7
    0 הצבעות
    7 פוסטים
    118 צפיות
    chagoldC

    תודות ל@yossiz שהוסיף לעזור לי באישי

    יש נקודה חשובה בVUE שצריך להכריז על מתודות (וערכיהם), ורק ככה כשהם ישתנו אח"כ הערכים יחושבו.

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

    מקור
    @yossiz תודה רבה!!

  • שכחתי את הסיסמה ב Ubuntu 18.04

    הועבר
    2
    0 הצבעות
    2 פוסטים
    120 צפיות
    yossizY

    קיבלת תשובה נכונה פה
    (או אפשר קל יותר: wsl -u root)

  • Docker עזרה הבנה

    4
    0 הצבעות
    4 פוסטים
    149 צפיות
    A

    @dovid
    כמו ש @yossiz אמר, CMD מיועד להגדיר איזה פקודה תרוץ בעת הרצת הדוקר.
    פעמים שמשלבים את זה עם ENTRYPOINT כך שאפשר לשנות פרמטרים לפקודת הרצה בקלות בלי לשנות את הפקודה עצמה

    אם תהית למה מבצעים COPY מספר פעמים במקום להעתיק את הכל כבר בהתחלה,
    התשובה היא בגלל המבנה של השכבות, זאת אומרת שכל ועוד לא היה שינוי בקבצי המקור של שכבה מסוימת - למשל במקרה שלך package.json - אז רק השכבות העליונות יותר יבנו מחדש - אלו שהיה בהם שינוי.
    כך, ברגע שרק באחת השכבות העליונות מוסיפים את כל קבצי האפליקציה - תהליך הbuild רוב הפעמים יהיה קצר יותר ולא יכלול התקנה של תלויות מחדש..

בא תתחבר לדף היומי!