דילוג לתוכן

תכנות

4.6k נושאים 38.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 הצבעות
    7 פוסטים
    145 צפיות
    ל

    @dovid
    כדאי גם למען הסדר הטוב לשנות את הנושא

  • הקמת שרת מתווך - פרוקסי

    נעול
    20
    0 הצבעות
    20 פוסטים
    379 צפיות
    dovidD

    @WWW כתב בהקמת שרת מתווך - פרוקסי:

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

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

    @שמחה-זו-הסיסמא כתב בהקמת שרת מתווך - פרוקסי:

    לגבי בקשות ב GET מישהו כתב לי בינתיים לציין את זה ככה (עדיין לא הספקתי לבדוק את זה)

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

  • טופס HTML באקסס

    10
    1 הצבעות
    10 פוסטים
    213 צפיות
    dovidD

    @Y-Excel-Access אתה הבאת לינקים מלפני 15 שנה בערך.
    אפשר לפתח בכל שפה של צד שרת (שזה כולל את asp הקלאסית העתיקה, לא מומלץ)
    וזה אומר שאפשר בphp או בנוד או בasp.net שמאפשרת כתיבה בVB.NET.
    אבל כל אלו לא עובדים רק ע"י דף עם סיומת אלא הם צריכים שרת שיגיש אותם. נוד וasp (המודרני הנקרא core ואילך) יכולים להיות עם תוכנה קטנה ניידת שמפעילים אותה ונפתח שרת מקומי (localhost) ואז אפשר להתחבר לאקסס או לכל מסד אחר.

  • 0 הצבעות
    14 פוסטים
    360 צפיות
    ח

    @yossiz כתב בJS מחרוזת טקסט עברית הפוך עבור מדפסת קופה:

    @חוקר זה לא גופן שכל התווים ברוחב זהה? אם כן תוכל לדעת מראש איפה הוא יגלוש לשורה הבאה, ולחפש אחורה לרווח ושם לשבור שורה

    בסוף הגענו לזה..
    אכן במדפסת זו (80mm) ניתן להכניס בגופן הרגיל 48 תווים
    לקחתי מכאן פונקציה לפיצול מילים
    וב"ה זה התוצאה

    await printer.text(typeof row.value === 'string' ? row.value.split('\n').map((line) => { return line.match(/\S.{1,48}(?=\s|$)/g).map(reverseRTLchars).join('\n'); }).join('\n') : row.value);

    7da2565c-84ce-482a-88a8-88473223c77d-image.png
    3f1b0133-0f94-4e04-ac78-a5e380bc7cb5-image.png

  • PyCharm לא מצליח להגדיר את ה- Interpreter

    5
    0 הצבעות
    5 פוסטים
    165 צפיות
    ZUNDELZ

    @yossiz כתב בPyCharm לא מצליח להגדיר את ה- Interpreter:

    @ZUNDEL כנראה שבחרת את קובץ ההתקנה של פייתון במקום סביבת הפייתון עצמה (מן הסתם זה איפשהו ב-program files)

    👍 (עדיין לא יכול לתת לייקים)
    עריכה הצלחתי תודה זה באמת היה הטעות שלי

  • 0 הצבעות
    8 פוסטים
    278 צפיות
    יעקב ישראלי

    @יוס תחפש בגוגל software omr יש שם תוכנות מעולות
    זה נראה מדהים

  • 0 הצבעות
    18 פוסטים
    276 צפיות
    מ

    @dovid כתב בטופס - HTML - הצגת ערך בתיבה שלא יהיה ניתן לשינוי:

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

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

  • 0 הצבעות
    12 פוסטים
    202 צפיות
    A

    @aaron כתב במשתנים יציבים שעלולים להשתנות מידי פעם. איך הדרך הנכונה להגדיר אותם?:

    @clickone כתב במשתנים יציבים שעלולים להשתנות מידי פעם. איך הדרך הנכונה להגדיר אותם?:

    (או מכל מקור אחר)

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

    תשתמש ב gunicorn כדי שיטפל ב graceful shutdown. וLB כדי שישאר סרוויס זמין בזמן הזה, אבל באמת לא חושב שזה חשוב לך עד כדי כך..

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

    @צבי-ש כתב במשתנים יציבים שעלולים להשתנות מידי פעם. איך הדרך הנכונה להגדיר אותם?:

    העניין הוא שאני רוצה לערוך שינויים באמצע דרך אתר חיצוני.

    ככל שזה הסיבה, אז ודאי שלשמור בDB. אתה תחשוף API כדי לעדכן את המידע ובאותו קריאה גם לטעון את המידע החדש.

  • איך הדרך הנכונה יותר לתזמן משימות?

    5
    0 הצבעות
    5 פוסטים
    214 צפיות
    צבי-שצ

    @aaron כתב באיך הדרך הנכונה יותר לתזמן משימות?:

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

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

  • מדריך VBA בעברית

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

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

  • 0 הצבעות
    12 פוסטים
    291 צפיות
    ל

    @יוסף-בן-שמעון כתב במה הדרך הנכונה לארגון מסד נתונים לרכישת אותיות בספר תורה?:

    מסתמא לא תרצה להציג את האותיות ברצף בלי רווחים, אז תצטרך לשמור גם רווחים בטבלה

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

  • 1 הצבעות
    6 פוסטים
    169 צפיות
    צבי-שצ

    @dovid כתב בזיהוי של ״בני ברק״ גם אם שולחים אליי ״בניי ברק״ או בני ברכ״:

    @צבי-ש לא הבנתי מה הבאת מjaro-winkler,
    אתה מתלונן שזה לא טוב או אתה משבח אותו?
    זה לכאורה פותר לך את הבעיה, לא?

    פותר לי, כתבתי את זה להראות את הפיתרון , בשביל הבאים שיבואו ויתקעו עם השאלה הזאת.

  • אוטומציה של Edge

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

    @yossiz תודה.
    אני אכן משתמש בVBA באקסס, סורי על השמטת המידע הזה.
    תודה על הקישורים, אבל לא הצלחתי להבין איך להשתמש בספרייה לצורך זה. וכן מהקוד Python כמובן שלא הצלחתי להבין מה קורה שם.
    האם מישהו ניסה דבר כזה באקסס? או שיכול קצת להדריך אותי בשימוש בספרייה הנ"ל?
    שוב תודה.

  • עיצוב אלמנט pre לתצוגת הדפסה

    16
    0 הצבעות
    16 פוסטים
    249 צפיות
    dovidD

    @ivrtikshoret כתב בעיצוב אלמנט pre לתצוגת הדפסה:

    זה בתשלום יש הרבה חינמיים

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

  • Typescript - החזרת סוג מותנה

    7
    1 הצבעות
    7 פוסטים
    177 צפיות
    yossizY

    @ש-ב-ח כתב בTypescript - החזרת סוג מותנה:

    לא מכוון לאמת...

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

    type OnChangeValue<Option, SelectProps> = SelectProps extends { isMulti: true } ? MultiValue<Option> : SingleValue<Option>;
  • 0 הצבעות
    25 פוסטים
    275 צפיות
    dovidD

    @mekev לא שמת לב שכבר הקדמתי אותך.

    אנחנו לא היחידים ששמנו לב לזה:
    הבעיה ב2008:
    https://www.pcreview.co.uk/threads/3551798/

    פה מוזכר הפתרון
    https://stackoverflow.com/a/38883973/1271037

  • JS- עזרה בחלוקת אלמנט לפי סימון עכבר

    20
    0 הצבעות
    20 פוסטים
    442 צפיות
    ה

    זאת הצעה אחרת שבכל תרחיש שבדקתי היא נותנת תוצאה טובה גם במקרים שהאפשרויות שלעיל לא עבדו(אולי אתם תמצאו תרחישים חדשים).
    https://plnkr.co/edit/PIwBjbyENxpHtscc
    יש בה שני באגים:
    א. הבחירה לא תופסת רווח לבן שנמצא לפני/אחיר מילה כך שאם המשתמש מסמן מילים מבלי לחשבן את הרווחים השורה תשאר גבוהה. צריך תמיד שהבחירה "תספח" את כל הרווחים הסמוכים מקדימה ומאחורה.
    ב. נותרות תגיות ריקות ללא תוכן. זה גם גורם להגבהת השורה אם כי לזה מן הסתם הפתרון פשוט- להריץ קוד שעובר על העמוד ומוחק תגיות ריקות.
    אשמח לעזרה בשתי הנקודות הנ"ל כיון שזה פותר גם מקרים שעד עכשיו לא נפתרו.

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

  • מיזוג דואר מאקסס

    7
    0 הצבעות
    7 פוסטים
    140 צפיות
    א

    @clickone אנסה.
    תודה.

  • תוכנה לסוחר סת"ם

    6
    0 הצבעות
    6 פוסטים
    258 צפיות
    Y.Excel.AccessY

    @מלא כתב בתוכנה לסוחר סת"ם:

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

    האמת שבניתי תוכנה כזו לסוחר סתם באקסס.

    הדגש שם היה על הנוחות של שימוש במקלדת והבהירות.

    אם יש עניין עדיין - אפשר להפנות אלי. (כתובת המייל בחתימה)
    תודה!

  • תיכנות ללא קוד

    6
    0 הצבעות
    6 פוסטים
    252 צפיות
    nigunN

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

    גם אם הכלי לא מתאים לפרוייקט X זה לא אומר שהוא גרוע, פשוט צריך לבדוק האם כלי Y מתאים לפרוייקט X.

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

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