דילוג לתוכן

תכנות

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

  • קובץ cURL מותאם אישית.

    הועבר
    16
    0 הצבעות
    16 פוסטים
    299 צפיות
    yossizY

    @ass מ-PHP גירסה 7.2 ומעלה לא צריך שם הקובץ המלא.
    בכל מקרה, קובץ ה-ini שמגיע עם ההתקנה מכיל את השורה הנכונה.

  • החלפת הקלדה לעברית.

    20
    1 הצבעות
    20 פוסטים
    292 צפיות
    רפאלר

    @אבי-203 ניתן להשתמש בביטוי רגולרי התואם לתווים בUnicode שאינם כלולים בASCII, על מנת לקבוע האם מחרוזת טקסט כלשהיא מכילה תווים שאינם לטיניים:

    /[^\x00-\x7F]+/.test("א") true /[^\x00-\x7F]+/.test("a") false

    לחלופין ביכולתך לציין בצורה מפורשת את התווים הרצויים:

    /[א-ת]+/.test("א") true /[א-ת]+/.test("a") false

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

  • לחסום הודעת שגיאה בקודPHP|או פיתרון אחר...

    הועבר
    5
    0 הצבעות
    5 פוסטים
    134 צפיות
    WWWW

    @mgm-ivr אמר בלחסום הודעת שגיאה בקודPHP|או פיתרון אחר...:

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

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

  • אמיתי... מצאתי את זה בקוד שלי.

    10
    16 הצבעות
    10 פוסטים
    343 צפיות
    א

    @nigun אמר באמיתי... מצאתי את זה בקוד שלי.:

    @ארכיטקט
    אין כמויות
    אז הAI קצת יסתבך או שהוא יבין לבד מה יצא הכי טעים.

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

  • יצירת ברקוד בתוך vue

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

    @chagold
    https://jsfiddle.net/1706kgzL
    בהשראת: https://vuejsdevelopers.com/2017/05/20/vue-js-safely-jquery-plugin/

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

  • קוד חמוד/רע/איום ליצירת רשימת מספרים ב-JS

    26
    5 הצבעות
    26 פוסטים
    418 צפיות
    D

    @dovid אמר בקוד חמוד/רע/איום ליצירת רשימת מספרים ב-JS:

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

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

  • התקנת PHP ב- nginx

    הועבר
    8
    0 הצבעות
    8 פוסטים
    174 צפיות
    ASSA

    @ass
    הסתדרתי!!!
    היה חסר לי קובץ php.ini
    אז פשוט יצרתי אחד כזה ריק והכל הסתדר.
    (זה עבד גם בלי השורות שאצלך).

  • date ב-input, ו-ngModel אנגולרי

    הועבר
    4
    0 הצבעות
    4 פוסטים
    343 צפיות
    רפאלר

    @yyy הevent$ מייצג את הערך שנשלח ע"י הOutput של הComponent\Directive הפנימי.

  • ASP.NET vs ...

    6
    2 הצבעות
    6 פוסטים
    178 צפיות
    nigunN

    @ש-ב-ח
    לבדיקה הזאת קוראים benchmark
    נהוג לתת תרגילים שונים כי לשכל שפה יש חולשות בפינה אחרת
    הרשת מלאה בbenchmarkים הנה אתר שנראה שהוא עושה את זה על מגוון שפות עם מגוון אלגוריתמים, ואתה יכול לראות למשל במקרה של GO VS .NET
    שכל אחד מנצח במבחן אחר לרוב בפערים קטנים
    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-csharpcore.html

  • מחפש מעצב לדף נחיתה ותבנית דוא"ל

    הועבר
    9
    0 הצבעות
    9 פוסטים
    370 צפיות
    ג'מייקהג

    @זלמן אמר במחפש מעצב לדף נחיתה ותבנית דוא"ל:

    @ג-מייקה אמר במחפש מעצב לדף נחיתה ותבנית דוא"ל:

    @זלמן מוזמן לפנות דרך ה"צור קשר" של מקצועות.

    מה הבעיה לרשום כאן מייל או לפנות אלי למייל שציינתי?

    פשוט לא שמתי לב...
    כבר פונה

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

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

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

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

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

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

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

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

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

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

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

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

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

  • קבצים ב node js

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

    @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 פוסטים
    95 צפיות
    רפאלר

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

  • אצווה כמנהל

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

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

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

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

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

    Permission denied

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

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

    4
    1 הצבעות
    4 פוסטים
    87 צפיות
    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 פוסטים
    433 צפיות
    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');
בא תתחבר לדף היומי!