דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. עזרה בטפסי ויזואל סטודיו C#

עזרה בטפסי ויזואל סטודיו C#

מתוזמן נעוץ נעול הועבר תכנות
21 פוסטים 3 כותבים 585 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • Sara RivkaS מנותק
    Sara RivkaS מנותק
    Sara Rivka
    כתב ב נערך לאחרונה על ידי
    #1

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

    תגובה 1 תגובה אחרונה
    0
    • dovidD dovid העביר נושא זה מ-תוכנה ב-
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

      Visual Studio זה הסביבת תכנות, C# זה השפה,
      אבל מה הטכנולוגיה, WinForms או WPF משהו אחר?

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      2
      • Sara RivkaS מנותק
        Sara RivkaS מנותק
        Sara Rivka
        כתב ב נערך לאחרונה על ידי
        #3

        מקווה שאני לא טועה, הטכנולוגיה WinForms.

        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #4

          הטבלאות מוצגות בפקד בשם DataGridView או פקד/ים אחרים?
          האם התוכן (כלומר מספר השורות) עשוי להיות על יותר מעמוד אחד?

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          Sara RivkaS תגובה 1 תגובה אחרונה
          0
          • Sara RivkaS מנותק
            Sara RivkaS מנותק
            Sara Rivka
            השיב לdovid ב נערך לאחרונה על ידי
            #5

            @dovid הטבלאות מוצגות בפקד בשם DataGridView
            ויתכן שמספר השורות יעלה על עמוד אחד

            תגובה 1 תגובה אחרונה
            0
            • Sara RivkaS מנותק
              Sara RivkaS מנותק
              Sara Rivka
              כתב ב נערך לאחרונה על ידי
              #6

              יש כאן משהו שיכול לעזור לי עכשיו?

              תגובה 1 תגובה אחרונה
              0
              • dovidD מנותק
                dovidD מנותק
                dovid ניהול
                כתב ב נערך לאחרונה על ידי
                #7

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

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                תגובה 1 תגובה אחרונה
                3
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  כתב ב נערך לאחרונה על ידי
                  #8

                  דוגמה:

                  private void PrintDgv(DataGridView dgv)
                  {
                      var strB = new StringBuilder();
                          
                      strB.Append("<table>");
                      strB.Append("<thead><tr>");
                  
                      foreach (DataGridViewColumn col in dgv.Columns)
                      {
                          strB.Append("<th>");
                          strB.Append(col.HeaderText);
                          strB.Append("</th>");
                      }
                  
                      strB.Append("</tr></thead>");
                  
                      bool odd = true;
                      foreach (DataGridViewRow row in dgv.Rows)
                      {
                          strB.Append("<tr>");
                          foreach (DataGridViewCell cell in row.Cells)
                          {
                              strB.Append("<td>");
                              strB.Append(cell.Value);
                              strB.Append("</td>");
                          }
                          strB.Append("</tr>");
                      }
                  
                  
                      strB.Append("</table>");
                  
                      var webBrowser1 = new WebBrowser();
                      webBrowser1.Visible = false;
                      webBrowser1.Parent = this;
                      webBrowser1.DocumentText = strB.ToString();
                  
                      webBrowser1.DocumentCompleted += (s, e) => webBrowser1.ShowPrintPreviewDialog();
                  }
                  

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                  Sara RivkaS תגובה 1 תגובה אחרונה
                  2
                  • Aharon 0A מנותק
                    Aharon 0A מנותק
                    Aharon 0
                    כתב ב נערך לאחרונה על ידי Aharon 0
                    #9

                    @dovid למה להפוך ל html אפשר לשמור את הטבלה לאקסל ולהדפיס, או להשתמש בפקד של ההדפסה, לא טרחתי לענות כי השאלה לא היתה מובנת. (מה הצורך)

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי dovid
                      #10

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

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      תגובה 1 תגובה אחרונה
                      3
                      • Sara RivkaS מנותק
                        Sara RivkaS מנותק
                        Sara Rivka
                        השיב לdovid ב נערך לאחרונה על ידי
                        #11

                        @dovid צריך בשביל זה חיבור לאינטרנט?
                        (אני לא מתמצאת בHTML)

                        תגובה 1 תגובה אחרונה
                        0
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          כתב ב נערך לאחרונה על ידי dovid
                          #12

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

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          Sara RivkaS 2 תגובות תגובה אחרונה
                          1
                          • Sara RivkaS מנותק
                            Sara RivkaS מנותק
                            Sara Rivka
                            השיב לdovid ב נערך לאחרונה על ידי
                            #13

                            @dovid כרגע אין לי את התוכנה במחשב.
                            מקווה לעשות את זה מחר בעז"ה.
                            בכ"א תודה רבה!!

                            תגובה 1 תגובה אחרונה
                            1
                            • Sara RivkaS מנותק
                              Sara RivkaS מנותק
                              Sara Rivka
                              השיב לdovid ב נערך לאחרונה על ידי
                              #14

                              @dovid שמתי היום את הקוד, וזה באמת הדפיס לי. תודה רבה!
                              כמה שאלות:

                              1. האם יש אפשרות שזה ידפיס את הטבלה עם קווים בין השורות והטורים?
                              2. ישנן עמודות בטבלאות שהסתרתי, ובהדפסה רואים אותן(מצורפת תמונה, העמודה CITY). האם יש אפשרות שלא יראו את זה?
                              3. האם יש אפשרות לסדרת את הטבלה מימין לשמאל, ולא משמאל לימין כמו שזה מדפיס כיום?
                                f5051b7f-a504-49cc-bec0-d2374402696a-image.png
                              תגובה 1 תגובה אחרונה
                              0
                              • dovidD מנותק
                                dovidD מנותק
                                dovid ניהול
                                כתב ב נערך לאחרונה על ידי dovid
                                #15

                                הנה תיקונים קוד לשלושת הדברים,

                                1. זה הוספת סגנון CSS לטבלה, עשיתי את זה להלן בשורות 6-11
                                2. הוספתי תנאי col.Visible בשורה 16
                                3. הוספתי גוף html עם תכונת rtl (שורה 5)
                                    private void PrintDgv(DataGridView dgv)
                                    {
                                        var strB = new StringBuilder();
                                
                                        strB.Append(@"<html dir='rtl'><head><style>
                                        table {
                                            border-collapse: collapse;
                                        }
                                        td {
                                            border: 1px solid gray;
                                        }
                                
                                </style></head><body><table><thead><tr>");
                                
                                        foreach (DataGridViewColumn col in dgv.Columns)
                                            if (col.Visible)
                                            {
                                                strB.Append("<th>");
                                                strB.Append(col.HeaderText);
                                                strB.Append("</th>");
                                            }
                                
                                        strB.Append("</tr></thead>");
                                
                                        bool odd = true;
                                        foreach (DataGridViewRow row in dgv.Rows)
                                        {
                                            strB.Append("<tr>");
                                            foreach (DataGridViewCell cell in row.Cells)
                                            {
                                                strB.Append("<td>");
                                                strB.Append(cell.Value);
                                                strB.Append("</td>");
                                            }
                                            strB.Append("</tr>");
                                        }
                                
                                
                                        strB.Append("</table></body></html>");
                                
                                        var html = strB.ToString();
                                        File.WriteAllText(@"d:\temp.html",html);
                                
                                        var webBrowser1 = new WebBrowser();
                                        webBrowser1.Visible = false;
                                        webBrowser1.Parent = this;
                                        webBrowser1.DocumentText = strB.ToString();
                                
                                        webBrowser1.DocumentCompleted += (s, e) => webBrowser1.ShowPrintPreviewDialog();
                                    }
                                

                                יש לציין שמציג הhtml של winforms הוא ישן נושן, תואם IE6 אולי עם אפשרות שדורג ל9 שגם הוא כבר ממש לא דפדפן מודרני, וההשלכה של זה היא שהעיצוב מוגבל וקצת מסובך בתאימות. יש שני דרכים אחרות: להשתמש בwebView2 או להפעיל מאחורי הקלעים את כרום אבל זה מחייב שבמחשב המשתמש יש כרום.

                                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                Sara RivkaS תגובה 1 תגובה אחרונה
                                2
                                • Sara RivkaS מנותק
                                  Sara RivkaS מנותק
                                  Sara Rivka
                                  השיב לdovid ב נערך לאחרונה על ידי
                                  #16

                                  @dovid תודה רבה!
                                  סליחה על כל ההטרדה אבל יש לי עוד שאלה.
                                  יש לי ComboBox שמכיל רשימת שמות מטבלה מסוימת.
                                  בטבלה זו ישנם שמות שרשומים כמה פעמים.
                                  ברצוני שב ComboBox יראו כל שם פעם אחת.
                                  האם יש אפשרות לעשות את זה? אם כן איך?
                                  תודה מראש.

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • dovidD מנותק
                                    dovidD מנותק
                                    dovid ניהול
                                    כתב ב נערך לאחרונה על ידי
                                    #17

                                    @Sara-Rivka
                                    א. את צריכה לפתוח על כך נושא חדש
                                    ב. את צריכה לבציג את הקוד שממלא את הקומבובוקס

                                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                    Sara RivkaS תגובה 1 תגובה אחרונה
                                    1
                                    • Sara RivkaS מנותק
                                      Sara RivkaS מנותק
                                      Sara Rivka
                                      השיב לdovid ב נערך לאחרונה על ידי
                                      #18

                                      @dovid שאלות נוספות בקשר לנושא הקודם:
                                      א. שמתי את הקוד שנתת, וזה באמת מציג את הטבלה עם עיצוב של טבלה, והוריד מהכותרת את שמות העמודות המוסתרות. אבל- את העמודה המוסתרת עדיין רואים. (מצורפת תמונה)
                                      איך מבטלים את זה?
                                      7e5a19bb-b1e2-43c9-9478-c2763e1a82f7-image.png
                                      (העמודה המוקפת זו עמודה מוסתרת שאת הכותרת שלה לא רואים בגלל הקוד שהוספתי)

                                      ב. איך ממרכזים את הטקסט?

                                      תגובה 1 תגובה אחרונה
                                      0
                                      • dovidD מנותק
                                        dovidD מנותק
                                        dovid ניהול
                                        כתב ב נערך לאחרונה על ידי
                                        #19

                                        א. אכן פדיחה שלי, אבל כדאי שתצליחו לראות את הבעיה בקוד (זה ממש פשוט) ולתקן בעצמכם, כי ככה לא תשתעבדו לתשובות פה. מה שקורה שיש שתי לולאות, אחת לכותרות ואחת לכלל השורות, ואת התנאי שמתי רק בלולאה של הכותרות.
                                        ב. אם רוצים למרכז בהכל צריך להוסיף הוראת text-align: center; בCSS בסלטור של הtd,
                                        אבל אם רוצים עמודות מסויימות אז צריך להוסיך את זה inline בלולאה. אם זה המקרה, אז אני שואל האם הם כבר ממורכזות גם בDataGridView?

                                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                        Sara RivkaS תגובה 1 תגובה אחרונה
                                        1
                                        • Sara RivkaS מנותק
                                          Sara RivkaS מנותק
                                          Sara Rivka
                                          השיב לdovid ב נערך לאחרונה על ידי Sara Rivka
                                          #20

                                          @dovid כתב בעזרה בטפסי ויזואל סטודיו C#:

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

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

                                          אגב שמתי לב שבשורה הזאת:

                                          @dovid כתב בעזרה בטפסי ויזואל סטודיו C#:

                                              File.WriteAllText(@"d:\temp.html",html);
                                          

                                          הFILE מסומן לי בתלתל אדום, אז העברתי את זה להערה, מה מסמלת המילה הזאת?

                                          תגובה 1 תגובה אחרונה
                                          0

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

                                          • אין לך חשבון עדיין? הרשמה

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