תכנות

4.6k נושאים 37.8k פוסטים

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


  • 22 נושאים
    137 פוסטים

    שלום לכולם
    התבקשתי רבות מחברים פיתרון לבעיה הידועה לבצע מיזוג דואר, אך לשמור קובץ 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 פוסטים

    @אבי אמר בשוב, צילומי הצ'קים בבנקים:

    התעסקתי לאחרונה עם סורקים של חברת MAGTEK, הם ידידותיים ונוחים להתממשקות, אבל כמדומני שהבנקים בישראל מוכנים לקבל סריקות רק מסורקים של חברת PANINI

    @אבי איך יוצרים אתך קשר?

  • 31 נושאים
    133 פוסטים

    יש כמה נוסחאות חדשות שממש משנות את כללי המשחק בגוגל שיטס:

    CHOOSECOLS לבחירת עמודות ממערך CHOOSEROWS לבחירת שורות ממערך WRAPROWS להמרת מערך חד ממדי לרב ממדי - פריסה לשורות WRAPCOLS כנ"ל - פריסה לעמודות HSTACK ו VSTACK - הפעולה של {} אך בלי סוגריים - לא משמעותי לכאורה

    והעולה על כולנה, סוף סוף:

    LET - ליצירת משתנים.

    כל אלו מצטרפות לפונקציות שנוספו מוקדם יותר -
    https://blog.sheetgo.com/google-sheets-formulas/10-new-google-sheets-functions/

    וכלול בתוכם - LAMBDA, MAP (חלקי - לא עובד לקנן ב MAP ודומיו מערכים אחרים), פונקציות בעלות שם, וכו' ע"ש בקישור.

  • תמחור תחזוקה ללקוח

    14
    6 הצבעות
    14 פוסטים
    356 צפיות

    @nigun אמר בתמחור תחזוקה ללקוח:

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

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

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

  • עזרה: Google maps JS Api

    נעול הועבר
    9
    2 הצבעות
    9 פוסטים
    467 צפיות

    @davidnead אנא פתח נושא חדש אלא"כ בריא לך שאהיה מרוצה גם בהמשך הנושא הקיים.

  • הסתברות ברצף מספרים רנדומלי

    הועבר
    48
    0 הצבעות
    48 פוסטים
    758 צפיות

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

  • איך כדאי למספר עמודה משנית בpostgresql?

    22
    0 הצבעות
    22 פוסטים
    269 צפיות

    @nigun אני חושב שהוא התכוון למפתח מרוכב Composite-Key

  • תבניות של API

    52
    3 הצבעות
    52 פוסטים
    1k צפיות

    @davidnead
    לא!

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

    הSAILS משתמש בכל מיני ספריות לא מעודכנות. כמו waterLine שזה ה ORM הכי מזעזע שפגשתי.

    אני לא מדבר על בעיות של זליגות זכרון שכמעט גרמו לי להתקף לב.
    וחוץ מזה, זה JS ישן שלא תומך באמת ב CLASS וכל זה, הוא מייבא את הcontrollers שלך ע"י חיפוש כל ה *.JS בתיקיה...

    לאחר מעשה, זה היה לי טוב בשביל להעלות מהר (ובלי ניסיון) פרוייקט.
    היום אני מצטער שאני שם.
    אני ממליץ לך בחום, קח תבנית מוכנה, שזה אומר מבחינתי, מבנה תיקיות ברור.
    controllers
    models
    DAL
    ועוד. אני בעצמי לא מומחה גדול למבנה פרוייקטים.
    תחליט על איזה ORM שאתה רוצה (objectiveJS או sequlizeJS)
    וצא לדרך.
    מסד נתונים, זה לא קשור לכאן. אני אישית אוהב PG.
    תשמור על הפרדה בין ה ORM לבין בcontrollers ע"י ה DAL (אני לא סגור שזה מה שה DAL אמור לעשות. אבל תעשה שכבה כזאת).
    ואז תהיה חופשי מבחינת ORM.

    שרת תשתמש ב EXPRESS

    אל תבנה על איזה CLI שיבנה לך. זה סתם מסרבל ולא נותן כלום בהיקפים של צוות קטן. (1 +-...)

    תפריד את הצד לקוח (SPA) לפרוייקט נפרד. לדעתי. וודאי שירוץ על שרת (סטטי) נפרד על Port אחר.

    בהצלחה.

  • שליחת ערכי טופס לאחר אימות

    הועבר
    2
  • עזרה עם הרצת פרוייקט פייתון

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

    @chv אמר בעזרה עם הרצת פרוייקט פייתון:

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

    +3.9.2' אבל חלק מהענין אמור להיות שאם אני משתמש בסביבה וירטואלית זה משתמש בגרסה שמי שיצר את הסביבה השתמש, לא?

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

    נכון, בינתיים גיליתי את זה והתקנתי בדרך המומלצת לWIN (אגב לא מסובכת כ"כ)

    אני מנחש שזה django + GIS. אני טועה?

    סינית בשבילי.

    למעשה, תכל'ס בינתיים הסתדרתי. המשכתי באותה דרך של להתקין את כל החבילות מחדש אחד אחד, ועל כחבילה שנתקלתי עשיתי גוגל ועוד קצת רמזים. בסוף נראה שהצליח והפרוייקט עלה. אז PIP כנראה זה חיים קשים יותר מNPM, ויש לי גם הרגשה שזה שנתן לי את הפרוייקט לא יצר נכון את הסביבה שלו ולא הכניס את התלויות וכו' כמו שצריך. וגם עשה את זה בלינוקס ואני בWIN.
    העיקר למדתי משהו.

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

    @איש-ימיני
    אני בניתי פרוייקט ממש דומה.
    תוכל לראות את השירשור כאן.

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

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

  • getTime אינו פונקציה

    הועבר
    23
    0 הצבעות
    23 פוסטים
    570 צפיות

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

    אני מצרף את הDesign Goals מתוך הWIki של TypeScript (שים לב להדגשות):
     

    המטרות Statically identify constructs that are likely to be errors Provide a structuring mechanism for larger pieces of code Impose no runtime overhead on emitted programs

    Emit clean, idiomatic, recognizable JavaScript code

    Produce a language that is composable and easy to reason about

    Align with current and future ECMAScript proposals

    Preserve runtime behavior of all JavaScript code

    Avoid adding expression-level syntax

    Use a consistent, fully erasable, structural type system

    Be a cross-platform development tool

    Do not cause substantial breaking changes from TypeScript 1.0
     

    אינן המטרות

    Exactly mimic the design of existing languages. Instead, use the behavior of JavaScript and the intentions of program authors as a guide for what makes the most sense in the language.

    Aggressively optimize the runtime performance of programs. Instead, emit idiomatic JavaScript code that plays well with the performance characteristics of runtime platforms.

    Apply a sound or "provably correct" type system. Instead, strike a balance between correctness and productivity.

    Provide an end-to-end build pipeline. Instead, make the system extensible so that external tools can use the compiler for more complex build workflows.

    Add or rely on run-time type information in programs, or emit different code based on the results of the type system. Instead, encourage programming patterns that do not require run-time metadata.

    Provide additional runtime functionality or libraries. Instead, use TypeScript to describe existing libraries.

    Introduce behavior that is likely to surprise users. Instead have due consideration for patterns adopted by other commonly-used languages.

  • קוד מקור ב PHP סגור

    הועבר
    18
    0 הצבעות
    18 פוסטים
    465 צפיות

    @nigun אמר בקוד מקור ב PHP סגור:

    @sh774
    אין לי כח להפוך את השרשור לדיון על וירטאליזציה

    רק לצורך סגירת הנושא

    ותבדוק האם אפשר להריץ דוקר על VPS (אני יחסוך לך ויגלה לך שכן אפילו שאי אפשר להריץ VM)

    טעות שלי ההבדל ככל הנראה היה בגלל docker.io ו docker ce

  • חיפוש ( {{טקסט}} ) במחרוזת והחלפתם.

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

    @ש-ב-ח אמר בחיפוש ( {{טקסט}} ) במחרוזת והחלפתם.:

    היינו הך.

    כנראה הושפעתי מתשובתו החדה של @dovid

  • יצירת תווים/צלילים בC#

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

    @נ-נח

    DryWetMIDI NAudio MIDI Toolkiti

    הספרייה DryWetMIDI לדוגמא חושפת Fluent Api עם יכולות מדהימות:

    var pattern = new PatternBuilder() .Note(MusicTheory.Octave.Get(3).ASharp, length: MusicalTimeSpan.Quarter) .Note(MusicTheory.Octave.Get(3).C, length: MusicalTimeSpan.Eighth) .Build(); using (var outputDevice = OutputDevice.GetByName("Microsoft GS Wavetable Synth")) { pattern.Play(TempoMap.Default, (FourBitNumber)10, outputDevice); }

    עוד על הספרייה DryWetMIDI: Working with MIDI Devices

  • קו SIP זול בישראל

    הועבר
    22
    2 הצבעות
    22 פוסטים
    781 צפיות
  • אסימון רענון ב API של יוטיוב ב PHP

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

    @ass לא צריך

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

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

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

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

    20
    1 הצבעות
    20 פוסטים
    240 צפיות

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

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

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

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

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

  • 0 הצבעות
    5 פוסטים
    114 צפיות

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

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

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

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

    10
    15 הצבעות
    10 פוסטים
    291 צפיות

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

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

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

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

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

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

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

  • 5 הצבעות
    26 פוסטים
    347 צפיות

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

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

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

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