דילוג לתוכן

תכנות

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

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


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

  • עזרה בהעלאת קבצים לשרת ב node js

    הועבר
    25
    0 הצבעות
    25 פוסטים
    696 צפיות
    yossizY

    @מוטי-אורן תודה רבה 🙂
    לא שמתי לב למה שאני בעצמי ציטטתי 🙂

  • j.s- איך לחכות לפונקציה אסינכרונית שלא מחזירה הבטחה ?

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

    @yossiz אמר בj.s- איך לחכות לפונקציה אסינכרונית שלא מחזירה הבטחה ?:

    ואם כן, מה באמת הסיבה שהקוד שלך לא מחכה לביצוע פונקציית getToken?
    זה קשור להבדל בין mutation ל-action ב-vuex.
    mutation חייב להיות סינכרוני, (וגם אם תעשה את זה אסינכרוני, Vuex יתייחס אליו כאילו הוא סינכרוני)
    לעומת זה, action יכול להיות אסינכרוני, ו-vue יכבד את זה ויחכה לביצועם של פרומיסים בתוך actions.

    תודה רבה על ההסבר המפורט . אכן זה עובד!
    (פשוט עברתי על התיעוד של vuex ממש מלמעלה ולכן הלכתי להמציא כל מיני הסברים למה זה לא עובד..)

  • תכנון מסד - לאחד טבלאות או לפצל?

    6
    0 הצבעות
    6 פוסטים
    185 צפיות
    מנצפךמ

    @יוסף-בן-שמעון
    זה כבר שאלה של יעילות מסד נתונים.

    בעיקרון ENUM עושים עם INT, זה כל העניין שלו. ו ORM טוב יודע לחבר לך את ה ENUM למידע מהטבלה.

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

  • קבצים ב node js

    הועבר
    9
    0 הצבעות
    9 פוסטים
    398 צפיות
    רפאלר

    @yossiz
    ישנם שני סיבות:

    Scalability: הנפח של הנתונים רק הולך וגדל, ניתן להניח שבנקודת זמן כלשהי בעתיד, האפשרות לשמור את הנתונים בצורה מקומית תהיה בלתי אפשרית \ יקרה להחריד. Availability: בעידן של הLoad balancing, אכסון המידע בNodes שונים, לא מאוד יעיל אם יש צורך בשליפתו.
  • בעקבות האשכול תבניות של API - איזה תחליף יש לnode.js ??

    32
    0 הצבעות
    32 פוסטים
    3k צפיות
    D

    ליבת השאלה (זהה לשניהם), אחר קיצוץ הפתיח והסיום:

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

    זה הציב אותי במצב שלא התכוננתי אליו: כדי ליצור לבן אדם אתר אינטרנט, גם אם הוא לא בתבנית קלאסית, עדיין ברוב המקרים לא משתלם לפתח הכל בnodejs מאפס, הרבה יותר קצר ויעיל לעבוד עם משהו מוכן של וורדפרס ולעשות בו התאמות לפי הצורך. יהיה לא הוגן כלפי הלקוח להשקיע עבודה בלייצר בnode רק כי כך נוח לי, ולפעמים גם התוצאה תצא פחות טובה מבחינות מסוימות.
    מאידך, למרות שאני יודע PHP, אין לי שום רצון לעבוד עם השפה המיושנת הזו, ולא עם הטכנולוגיה המסורבלת הזו של מערכת ניהול תוכן כמו וורדפרס. אני מתכנת ורוצה לכתוב קוד, ורוצה לכתוב אותו ב JS. אני גם לא מכיר את וורדפרס מספיק כדי לשפוט מתי מוצדק להשתמש בו.
    בשבועות האחרונים חרשתי את הרשת לנסות להבין אם יש חלופות טובות מספיק בJS, כאלו שמחד יקצרו את הדרך ויספקו לי שלד תוכנה מוכן ויוזילו עלויות ומאידך ישאירו לי את השליטה וכו'. ראיתי שיש כל מיני דברים ברשת בודאי בצד לקוח וגם בצד שרת (ספריות שונות של templates, cms, headless cms ועוד), אבל אף אחד מהם לא באמת עושה מה שאני מצפה, וגם לאף אחד אין את העושר של וורדפרס.

    האם זה אומר שמפתח עצמאי שעובד עם לקוחות קטנים ו-nodejs לא הולך יחד? node מתאים רק לפרוייקטים גדולים כמו אפליקציות אינטרנט? כאלו שההשקעה בבניית השלד ותחזוקו משתלמת?"

  • הרצת כמה גירסאות NODEJS במקביל ע"י PM2

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

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

  • אצווה כמנהל

    הועבר
    14
    0 הצבעות
    14 פוסטים
    311 צפיות
    OdedDvirO

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

  • (php) שגיאה בהכללת קבצים מתיקיית root

    הועבר
    2
    0 הצבעות
    2 פוסטים
    119 צפיות
    ח

    @איש-נחמד אמר ב(php) שגיאה בהכללת קבצים מתיקיית root:

    Permission denied

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

  • ערך רנדומלי בשדה mysql.

    4
    1 הצבעות
    4 פוסטים
    102 צפיות
    OdedDvirO

    @chagold אמר בערך רנדומלי בשדה mysql.:

    מה לא הבנתי טוב?

    תשתמש בקידומת NEW עבור השדה החדש שנוצר, כך:

    CREATE TRIGGER trigger_code BEFORE INSERT ON user FOR EACH ROW SET NEW.token=MD5( RAND ());
  • יצירת והורדת קובץ TXT ב PHP

    הועבר
    8
    0 הצבעות
    8 פוסטים
    459 צפיות
    dovidD

    @WWW יפה!
    למקרים של טקסטים גדולים אפשר להשתמש בblob:

    function download_txt(textToSave, fileName) { var blob = new Blob([textToSave], { type: 'text/plain' }); var hiddenElement = document.createElement('a'); hiddenElement.href = window.URL.createObjectURL(blob); hiddenElement.target = '_blank'; hiddenElement.download = fileName; hiddenElement.click(); } var text = document.getElementById('txt')?.value ?? 'טקסט לדוגמה' download_txt(text ,'myFile.txt');
  • autocomplete רשימת הצעות להשלמה בתוך textarea ולא מחוץ לזה

    הועבר
    8
    0 הצבעות
    8 פוסטים
    257 צפיות
    חגיח

    @ivrtikshoret
    להחליף את הtextarea ב-contenteditable (תוסיף גם name=textarea.name, ופרוקסי לפונקציית ()VAL. כדי שזה יעבוד בצורה שקופה)

  • התקנת גופנים על ידי חילוץ עצמי.

    הועבר
    7
    1 הצבעות
    7 פוסטים
    160 צפיות
    OdedDvirO

    @הללוהו כן, ככה:

    copy /y MyFontName.ttf "%SYSTEMROOT%\Fonts" reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "My Font (TrueType)" /t REG_SZ /d MyFontName.ttf /f copy /y AnotherFontName.ttf "%SYSTEMROOT%\Fonts" reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" /v "Another Font (TrueType)" /t REG_SZ /d AnotherFontName.ttf /f

    וכו'.

  • שרת אישי על המחשב שלי

    13
    0 הצבעות
    13 פוסטים
    352 צפיות
    D

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

  • בירור | שמות קיצורי הדרך לנתיבים בתיקיות

    הועבר
    9
    1 הצבעות
    9 פוסטים
    274 צפיות
    הללוהוה

    @yossiz אמר בבירור | שמות קיצורי הדרך לנתיבים בתיקיות:

    אתה רוצה ספר או סט ספרים? 🙂

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

    @yossiz אמר בבירור | שמות קיצורי הדרך לנתיבים בתיקיות:

    זה לא משהו שאפשר להגיד את הכל על רגל אחת

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

  • איך אני מקבל ערך מספרי בלי עשריות, בלי עיגול.

    5
    0 הצבעות
    5 פוסטים
    104 צפיות
    רפאלר

    @אבי-203 שים לב שמכיוון שTrunc מעגל לכיוון האפס, ההתנהגות עבור מספרים שליליים תהיה זהה לזו של Ceil, כלומר העיגול יתבצע כלפי מעלה.

    לסיכום:

    מתודה תוצאה Floor עיגול כלפי מטה לכיוון האינסופי השלילי (Negative infinity או ∞-) Ceil עיגול כלפי מעלה לכיוון האינסופי החיובי (Positive infinity או ∞) Trunc עיגול כלפי מטה\מעלה לכיוון האפס
  • 22 הצבעות
    24 פוסטים
    1k צפיות
    א

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

    או שמא האינטואציה שלי לא עבדה כרגע ולכן לא הבנתי.
    כי לא הפעלתי כ"כ את ההגיון (באופן לוגי וקוגניטיבי) לפני שכתבתי את הפוסט 👶

  • cmd | סגירה בסיום ההפעלה

    הועבר
    14
    0 הצבעות
    14 פוסטים
    411 צפיות
    yossizY

    @odeddvir אמר בcmd | סגירה בסיום ההפעלה:

    לפי התיעוד של מייקרוסופט

    שנמצא אגב גם במחשב (help start)

  • Caddy Web-Server

    6
    3 הצבעות
    6 פוסטים
    154 צפיות
    nigunN

    @chv
    הסיבה שהוא איטי זה ככל הנראה בגלל שהוא כתוב בGO שבאופן כללי נחשבת שפה יותר איטית בגלל הgc, העניין הוא שאם משמשים בנוד מאחורה זה כנראה לא משנה כל כך.

  • איך בוחרים את הטכנולוגיה המתאימה

    16
    6 הצבעות
    16 פוסטים
    287 צפיות
    clickoneC

    @davidnead אמר באיך בוחרים את הטכנולוגיה המתאימה:

    אגב, דוגמה (מעשית!) נוספת שעומדת לפני.

    מערכת CRM, או ניהול פרוייקטים או ניהול סטודנטים או משהו דומה.

    כלומר לקוח שרוצה מערכת לניהול רבנים ותלמידים ושיעורים ומבחנים וכדומה עם התממשקות עם מערכות אשראי ואקסלים וכדו'.

    אין לי בעיה לבנות מאפס בNODE+VUE. מצד שני לפחות חלק מהפונקציונליות של המערכת הזו היא קלאסית ויש לה כנראה כלים מקובלים. לדידי לפתח אפליקציה ולחפש לשלב בה חלקית כלים קיימים זה לשבור את הראש. מאידך למה לבזבז את זמנו של הלקוח בלבנות מסד נתונים וAPI מאפס?

    מה דעתכם?

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

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

  • קול מחשב באידיש

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

    @ש-ב אמר בקול מחשב באידיש:

    והאם גם במיקרוסופט זה עולה כסף,

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

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