דילוג לתוכן

תכנות

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

  • 0 הצבעות
    4 פוסטים
    109 צפיות
    מנצפךמ

    יש לך שרת עם GUI? (בלינוקס??)
    או רק טרמינל?
    אתה מתחבר דרך SSH?

  • מעצב CSS מקצועי

    4
    0 הצבעות
    4 פוסטים
    92 צפיות
    nigunN

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

  • השמעת קבצים מהמחשב לWEBRTC

    3
    0 הצבעות
    3 פוסטים
    70 צפיות
    nigunN

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

  • JS: איך עובד this binding?

    12
    2 הצבעות
    12 פוסטים
    191 צפיות
    yossizY

    @dovid אחרי העיון, (ואם תרשה לי לתרגם את הדברים שלך מהזווית שלי), אני מסכים לגמרי למה שאתה טוען, ועוד יותר, נראה לי שזה פחות או יותר אותו דבר כמו שאני אמרתי

    ובהקדם,
    צריך להבחין בין ערך, מצביע, ו-identifier.

    ערך הוא הערך הגולמי. לדוגמה המספר 5, או התו 'a'. זה אובייקט שקיים בזכרון בזמן ריצה. מצביע (pointer) ג"כ הוא אובייקט פיזי שקיים בזמן ריצה. כלומר, מדובר על ערך שקיים בזכרון שערכו הוא כתובת זכרון של אובייקט אחר. בשונה מזה, identifier הוא מושג שקיים רק ברמת השפה/מפרסר. מדובר על "ידית" לכתובת זכרון, כלומר, דרך להזכיר את הכתובת של ערך בלי לייצר "מצביע" רגיל.
    (למי שמכיר, ההבדל בין pointer ל-identifier הוא ההבדל ב-++C בין pointer ל-reference variable, נוסח אחר לאותו מושג זה lvalue ו-rvalue)

    ברמת השפה/מפרסר הפעולה של ++ חלה רק על identifier ולא על ערך.
    אמנם ברמת ההרצה, תמיד הפעולה יתבצע על ערך גולמי ולא דרך identifier. המושג identifier לא קיים עבור סביבת הריצה. הכל מתבצע ישירות על ערכים.

    אם כן, אפשר לתרגם מה ש@dovid אמר בצורה כזאת:
    התוצאה של ביטוי לוגי עם אופרטור || היא "ערך" ולא identifier. והמפרסר חייב identifier עבור פעולת ++.

    אותו דבר, ב-this binding.
    המפרסר עושה את איגוד ה-this בכפוף לצורה שבה הזכרת את הפונקציה. אם הזכרת אותו על ידי identifier שהוא חלק מביטוי שהוא בתבנית MemberExpression אז יתבצע איגוד לאובייקט הבסיס של ה-MemberExpression. אחרת זה לא יתבצע.
    הביטוי logger.log || console.log הוא לא MemberExpression
    ויותר מזה הוא לא identifier בכלל אלא ערך גולמי של פונקציה. וזה מה שדוד מוסיף.

    הכל ברור? 🙂

    עריכה: ושכחתי להגיד תודה ל @dovid על העזרה שלו בליבון הנושא. תודה רבה.

  • הקמת אתר ויקי - איך מתחילים?

    הועבר
    2
    0 הצבעות
    2 פוסטים
    246 צפיות
    chagoldC

    מדיה ויקי היא התוכנה הכי ותיקה והכי פופלרית
    אבל יש עוד תוכנות, אני מצרף כאן כמה קישורים למאמרי השוואות

    https://www.whoishostingthis.com/compare/applications/wiki/
    https://blog.capterra.com/popular-wiki-software-products/
    https://www.siteground.com/compare_best_wiki.htm

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

  • 0 הצבעות
    1 פוסטים
    34 צפיות
    אין תגובות
  • שדרוג שרת לינוקס אבונטו 18.04 ל 20.04

    9
    1 הצבעות
    9 פוסטים
    134 צפיות
    ח

    משום מה לא קיבלתי התראות של הודעות חדשות בנושא זה, אז בכל מקרה התקדמתי לבד בבדיקת עניין המעבר, בציעתי התקנה של מה שאני צריך בשרת חדש נקי
    lemp node pm2 וכו'.
    מחיפוש ברשת לגבי העברת ד"ב היה נראה שהפתרון הוא לבצע יצוא וגיבוי על ידי mysqldump.
    בהתחלה ניסיתי לבצע יצוא מלא ושחזור מלא של כל הטבלאות אבל אז נתקע לי טבלת היוזרים, ולא ניתן היה לשנות ולהוסיף יוזרים, אז לבסוף עבדתי לפי ההנחיות כאן https://dev.mysql.com/doc/refman/8.0/en/mysqldump-upgrade-testing.html אך ציינתי במפורש רק את הטבלאות שלי ולא כל הטבלאות, ואז ב"ה עבר ללא בעיה.
    את העברת הקבצים (קובץ היצוא של הד"ב כמעט 3G) ואת כל קבצי הPHP וNODEJS העברתי בין השרתים על ידי scp וזה עבר ממש מהר ובקלות.
    ובתכלית נראה שהכל תקין וכמעט מוכן לבצע את העברה.
    נותר רק להתקין את תעודת האבטחה לדומיינים (קצת בעיה, היות וכעת הדומיינים מפנים לIP של השרת הקודם, וברגע שיהיה מוכן אני סך הכל מעביר את הIP לשרת החדש, ולכן בינתיים זה בעיה ליצור אימות..)
    ובנוסף להעביר מחדש את הד"ב ברגע שהכל מוכן.
    הייצוא + העברה + פריסה מחדש, אמור לקחת לכאורה 45 דקות בערך.
    שבינתיים הכל מחובר לשרת הישן, אך אצטרך לחסום את אפשרות הכתיבה לד"ב כדי שמשעת הייצוא ועד סיום היבוא והחיבור לחדש ובדיקה שהכל תקין לא יהיה אפשרות לבצע שום פעולה.
    (אשמח להמלצה איך לבצע את הנעילה)
    מקוה מאוד שלא פיספסתי משהו

  • ממשק WEB לניהול שרת VPS, האם קיים?

    הועבר
    18
    0 הצבעות
    18 פוסטים
    447 צפיות
    איש נחמדא

    @שואף אמר בממשק WEB לניהול שרת VPS, האם קיים?:

    @איש-נחמד אמר בממשק WEB לניהול שרת VPS, האם קיים?:

    יש מי שהתנסה ב-http://web-console.org ?

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

    קודם כל, אתה מחליף את הסיסמה בקובץ שלך ברגע שאתה מסיים
    ב' כל, לא הסתדרתי לעבוד עם זה גם אחרי שהגדרתי כתובת IP וסיסמה, יש מי שהצליח ?
    (כלומר, יש מי שמוכן לנסות ?...)

  • הכנסת קופוננטים בראוטר VUE

    2
    0 הצבעות
    2 פוסטים
    41 צפיות
    A

    @chagold
    מאמין שהדרך הנכונה לעשות את זה היא עם layouts שונים, וnested router.
    כלומר layout אחד לadmin, שני לuser, בתוכו כל layout יש את התפריט היחודי, ובנוסף אתה מגדיר איפה בתצוגה לרנדר את הקומפוננטה "האמיתית", שבעצם מוגדרת לפי הnested router.
    https://router.vuejs.org/guide/essentials/nested-routes.html

    ההיכרות שלי עם vue מינמלית, אז לצערי לא יכול לכוון אותך יותר מזה

  • פרוקסי ל WebSocket ב NodeJS

    3
    0 הצבעות
    3 פוסטים
    82 צפיות
    dovidD

    תשתמש בnginx ותרויח גם פתרון קל וגם ביצועים טובים יותר.

  • דימוי לcron בוינדוס

    3
    0 הצבעות
    3 פוסטים
    68 צפיות
    dovidD

    מתזמן המשימות. התוכנית היא php.exe מאיפה שהיא נמצאת והארגומנט הוא הקובץ.

  • נושא זה נמחק!

    הועבר
    1
    0 הצבעות
    1 פוסטים
    7 צפיות
    אין תגובות
  • נושא זה נמחק!

    1
    0 הצבעות
    1 פוסטים
    1 צפיות
    אין תגובות
  • נושא זה נמחק!

    1
    0 הצבעות
    1 פוסטים
    1 צפיות
    אין תגובות
  • נושא זה נמחק!

    1
    0 הצבעות
    1 פוסטים
    1 צפיות
    אין תגובות
  • עזרה בAPI של ימות המשיח

    הועבר
    3
    0 הצבעות
    3 פוסטים
    191 צפיות
    איש נחמדא

    רלוונטי עדיין?

  • הפצת לינוקס כשרה

    הועבר
    8
    5 הצבעות
    8 פוסטים
    520 צפיות
    ח

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

  • אקסס | יצירת רשימה לפקד משולב

    16
    0 הצבעות
    16 פוסטים
    410 צפיות
    ליבלל

    @אביי פשוט מאוד תבנה במקור שורה שאילתא טור א' ID טור ב' ערים
    וברוחב עמודות תגדיר 0ס"מ;3ס"מ התחביר פשוט 0ס"מ לטור א' 3ס"מ לטור ב'
    שים לב: טור א' מחזיר למקור הפקד

  • פתיחת מסד נתונים בכל קריאה

    27
    1 הצבעות
    27 פוסטים
    348 צפיות
    nigunN

    @dovid
    אני לא יודע למה אבל כשהרצי מאות בקשות בלי לזרוק סגירה בכל מקום נתקעתי עם Too Many Connection
    ועכשיו זה כבר לא קורה

  • האם יש הגבלות בהגדלת שרתים בOVH?

    15
    0 הצבעות
    15 פוסטים
    206 צפיות
    nigunN

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

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