דילוג לתוכן

תכנות

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

  • אקסל להוריד כפילוית מ2 עמודות

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

    @לעזור-לכולם
    כתוב פונקציה

    =FILTER(G1:G100,ISNA(MATCH(G1:G100,H1:H10,0)))
  • PHP | לדעת על משתנה האם הוא מכיל הודעת שגיאה

    4
    0 הצבעות
    4 פוסטים
    155 צפיות
    ל

    @ש-ב-ח כתב בPHP | לדעת על משתנה האם הוא מכיל הודעת שגיאה:

    תוכל לבדוק אותו עם instanceof

    כך אכן עשיתי

    if ($err instanceof Exception){
  • RTL בVuetify 3 (בטא)

    2
    1 הצבעות
    2 פוסטים
    143 צפיות
    צדיק תמיםצ

    בסופו של דבר הצלחתי להגדיר שפה, הRTL הוא אוטומטי לפי השפה, מצרף כאן לטובת אחרים בעתיד:
    src › plugins > vuetify.js

    ... // Translations provided by Vuetify import { he, en } from 'vuetify/locale' export default createVuetify({ locale: { locale: 'he', fallback: 'en', messages: { he, en } } })
  • python

    3
    0 הצבעות
    3 פוסטים
    167 צפיות
    חגיח

    @שרה-רחל
    א.
    תיקון:

    if __name__=='__main__': print("hello world")

    ב.
    דוגמה פשוטה לדבר:
    נניח שmain.py נמצא בתוך חבילה ששמה example
    9dfb776b-9458-447c-ab0b-bafb5ac6f8fe-image.png
    main.py:

    def example(*args): print(*args) example('hello world'')

    עכשיו כשאני רוצה לייבא את הפונקציה example בקוד אחר אני עושה ככה:
    917aa3f1-85ab-45e6-8cd2-3bab59cdfdd7-image.png

    אוי.. אני רק רציתי את הפונקציה, זה מאוד לא נוח שעכשיו זה גם מריץ לי את הפונקציה example('hello world') אבל אני כן הייתי רוצה לייצא את החבילה שלי בצורה כזאת שיהיה אפשר להריץ אותה בצורה עצמאית, גם לא בשביל לייצא את הפונקציות.

    סתם מעניין אותי לדעת, מה זה __name__?

    אני אשנה את main.py

    def example(*args): print(*args) example(__name__)

    עכשיו כשאני אייבא את הפונקציה, זה ידפיס לי את __name__
    5be115c3-0392-4d95-96c1-d0eb451a83f9-image.png
    אהה.. זה השם של החבילה והמודול שלי, אבל מה יקרה אם אני אריץ את הקובץ ישירות עם פייתון?
    74e8bf0d-82c8-4a9b-a81d-54e38cf3d06a-image.png

    אם כך זה פשוט 🙂 אני רק אבדוק שאני לא מריץ את החבילה ישירות, אני כבר יודע איך עושים את זה:

    def example(*args): print(*args) if __name__ == '__main__': example(__name__)

    ועכשיו אבדוק:
    611123ed-b802-47c6-9f38-2e53ebd17ae6-image.png

    אהה יופי, בדיוק מה שרציתי.

  • w3schools python להורדה חינם

    7
    0 הצבעות
    7 פוסטים
    282 צפיות
    yyyY

    @A0533057932
    הצלחתי בסוף להוריד. תודה רבה.

  • האזנה להיווצרות אלמנט בJavascript

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

    @יוסף-בן-שמעון כתב בהאזנה להיווצרות אלמנט בJavascript:

    https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
    זו הדרך המודרנית

    הנה דוגמה שכתבתי בעבר:
    https://tchumim.com/post/75807,
    במקרה שלנו:

    const config = { attributes: false, childList: true, subtree: true }; const observer = new MutationObserver( function(mutationsList) { for(let mutation of mutationsList) for(let el of mutation.addedNodes) if(el.classList.contains("composer")){ console.log(el); } } ); observer.observe(document, config);
  • שינוי DB לפי DB FIRST והגדרת 2 שדות למפתח ראשע אחד

    9
    0 הצבעות
    9 פוסטים
    233 צפיות
    clickoneC

    @ממ
    עושים טבלה שלישית, שמכילה מזהה רץ, מזהה סטודנט, מזהה קורס
    אפשר לשים אילוץ אינדקס שלא יהיו כפילויות של מזהה סטודנט + מזהה קורס אותו דבר
    והמפתח הראשי של הטבלה יישאר המזהה רץ.

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

    כמובן ייתכן שתרצו לעשות עמודות נוספות בטבלה שלישית זו, כמו סכום לתשלום, או האם שולם וכו'

    נ.ב. אם תוכלו בבקשה לפתוח אשכול נפרד לכל שאלה, זה יותר נח ככה לכולם

  • התחברות מJS ל API של PYTHON

    19
    0 הצבעות
    19 פוסטים
    479 צפיות
    A

    @שרה-רחל יעזור לראות את כל הצד שרת כדי להבין טוב יותר.
    בהנחה ומדובר בflask, אז החזרה של dict/list אמור להחזיר תשובת JSON עם ההדר הנכון.
    https://flask.palletsprojects.com/en/2.2.x/quickstart/#apis-with-json

  • עזרה די בסיסית בJAVA

    7
    0 הצבעות
    7 פוסטים
    292 צפיות
    ShloimyS

    @Mordechay כתב בעזרה די בסיסית בJAVA:

    זה בתכנות לא באפליקציות...

    דיברתי על הקוד שהביאו כאן. לא לאפליקציות.

    @LindoorsOS כתב בעזרה די בסיסית בJAVA:

    לגבי זה, זה בסה"כ חוזר לראש - שולח לקלאס הראשי (כמו go to className() [במקום className, שם הקלאס כמובן] בפייתון)

    זה יוצר מופע חדש של inputOutputBot לא חוזר לראש.

  • התקנת SWAGGER

    4
    0 הצבעות
    4 פוסטים
    162 צפיות
    חגיח

    @ממ
    אני באופן אישי מעדיף .net framework בגלל כמה סיבות.
    אבל net core נותנת לך לרוץ גם על שרתי לינוקס שהם הרבה יותר זולים ומהירים. גם זה נחשב יותר מודרני, אז אצל מעסיקים\בוחנים זה בונוס.

  • בקשת GET I POST ב ASP.NET MVC 4

    12
    0 הצבעות
    12 פוסטים
    287 צפיות
    מ

    @ממ
    טוב....
    מחקירה רצינית בגוגל הגעתי ל2 מסקנות ---
    א. או שזה קשור לבעיה בCORS - זה מה שרשמתי בקונטרולר:
    7ebf757f-7dcf-4d6f-bee0-b8e9946dafbd-image.png
    וזה בקובץ WebApiConfig:
    ef104c78-6de2-411b-be9d-02f732f63c65-image.png
    את הקובץ WebApiConfig יצרתי לבד (העתקתי את התוכן מגוגל..) זה יכול להוות בעיה??
    ב. או שחסר לי משהו בהגדרות של XML כי כשאני מריצה פונקציה ספציפית זה מביא אותי לשגיאה הבאה:
    f7da44d4-9968-4205-8f30-1db0005a4f6d-image.png

    מישהו יכול לעזור לי -- זה ממש ממש דחוף!
    תודה רבה!

  • שגיאה בעת הרצת פרויקט ב C#

    1
    0 הצבעות
    1 פוסטים
    60 צפיות
    אין תגובות
  • הרצת פרוייקט פייתון מnodejs

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

    אני מניח שזה כבר לא רלוונטי, אבל אשים פה קישור מעניין:
    https://pyodide.org/en/stable/usage/index.html#node-js

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

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

  • google maps בתוך ג'ומלה

    2
    0 הצבעות
    2 פוסטים
    99 צפיות
    אין תגובות
  • שגיאה על DbContext.Context.SaveChanges(); ב C#

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

    @dovid
    תודה אבל כבר הסתדר

  • משתנה של אות כונן בקובץ bat

    2
    1 הצבעות
    2 פוסטים
    120 צפיות
    yossizY
    set drive=%~d0 start /b %drive%\anki\anki.exe -b %drive%\ankidata
  • חיבור בין SSMS ל C#

    6
    0 הצבעות
    6 פוסטים
    294 צפיות
    קומפיונטק

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

    השאלה היא: איך מתחברים למסד נתונים של sqlserver מתוך תוכנית ב-#C.

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

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

    עכשיו השאלה היא איך מתחברים לשרת SQL מתוך תוכנית ב-#C?

    אז יש חבילות הרחבה שמוסיפים לפרויקט דרך ה-NugetPackageManager, אם העבודה היא באמצעות EF אז צריך להתקין את החבילה הזאת Microsoft.EntityFrameworkCore.SqlServer ואז להתחיל לבנות את מודל הנתונים של האפליקציה.

    בתקוה שזה יעזור:
    https://www.entityframeworktutorial.net/efcore/create-model-for-existing-database-in-ef-core.aspx

  • קובץ קונפיגורציה

    14
    0 הצבעות
    14 פוסטים
    363 צפיות
    dovidD

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

  • שליחת מייל מאפליקציית דסקטופ

    10
    0 הצבעות
    10 פוסטים
    312 צפיות
    ש

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

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