תכנות

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

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

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

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

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

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

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

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

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

  • התקנת SWAGGER

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

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

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

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

    @ממ
    טוב....
    מחקירה רצינית בגוגל הגעתי ל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 פוסטים
    54 צפיות
    אין תגובות
  • הרצת פרוייקט פייתון מnodejs

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

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

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

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

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

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

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

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

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

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

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

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

    השאלה היא: איך מתחברים למסד נתונים של 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 פוסטים
    321 צפיות

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

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

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

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

  • SQL SERVER

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

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

  • מודל שלושת השכבות

    1
    0 הצבעות
    1 פוסטים
    280 צפיות
    אין תגובות
  • עזרה בספריית KosherJava Zmanim

    1
    0 הצבעות
    1 פוסטים
    78 צפיות
    אין תגובות
  • עזרה בקוד פייתון

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

    @aaron היו בקוד הזה כמה וכמה בעיות, זה הקוד הסופי

    #imports required libraries import feedparser import requests import os #get user inputs pod_link = input("rss feed link : ") max_loop = input("The maximum number of podcasts to download : ") #parsing the rss file print("parsing the rss file...") feed = feedparser.parse(pod_link) #validating the feed if feed['feed'] == {}: raise RuntimeError("Something bad happened") #initialize the counter loop = 0 #preparing the log file if not os.path.exists("pod_list.lst"): f = open("pod_list.lst", 'w') f.close() pod_list = open("pod_list.lst", 'r+') pod_list.write("new session" + '\n') content = pod_list.read() current_pods = [] #starts working for entry in feed.entries: link = entry.links[0] link1 = link["href"] pod_title = entry.title if not loop == int(max_loop): if link1 in content: print("skipping podcast number" + str(loop+1)) loop += 1 continue else: print("downloading podcast number " + str(loop+1)) podcast = requests.get(link1) open(pod_title + ".mp3", 'wb').write(podcast.content) current_pods += link1+'\n' else: break loop += 1 with open("pod_list.lst", 'a') as f: for line in current_pods: f.write(f"{line}")
  • חילוץ ערכים מjson בjs

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

    @meir-lamdan כתב בחילוץ ערכים מjson בjs:

    אגב. אתה צריך קודם להמיר את הjson לאובייקט ע"י JSON.parse

    כן, את זה כבר עשיתי.

    תודה רבה!!

  • שליטה על אתר

    11
    0 הצבעות
    11 פוסטים
    342 צפיות

    @EMG כתב בשליטה על אתר:

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

    רעיון נפלא הוא הציע לך, אה?

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

  • עזרה בהמרת בקשת CURL לבקשת פוסט בJS

    5
    1 הצבעות
    5 פוסטים
    152 צפיות

    @5566brs עדיין חוזר שגיאה, אפשר רגע באישי, כי יש בזה פרטים רגישים..

  • 0 הצבעות
    4 פוסטים
    172 צפיות

    @שקוע-בלימוד זה אמור להיות אפשרי כיוון שTask Scheduler תומך ביצירת משימות משורת הפקודה.
    תוכל לשרשר תנאים (IF), ובאמצעות הפקודה uname בלינוקס וVer לווינדוס לקבוע באיזה מערכת הפעלה נמצא המשתמש.
    לאחר מכן, אחרי שקיבלת את המערכת הפעלה, תשרשר תנאי שיפעיל את המשימה בכלי שתואם את המערכת הפעלה.
    בגדול לווינדוס תשתמש בקוד דומה לזה (כאן הוא מוגדר ל11:00 בבוקר..)

    CHTASKS /CREATE /SC DAILY /TN "MyTasks\TestTask" /TR "C:\Windows\System32\test123.bat" /ST 11:00

    ובלינוקס משהו כזה:

    קוד

    בהצלחה!

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