קבועי מערכת - Constants


ענף Types & Const שבעץ האובייקטים של עורך התסריטים מרכז טיפוסים וקבועי מערכת שנדרשים בעת כתיבת קוד מול רכיבי הייפר.

קבוע מערכת הוא שם קבוע מראש, בדרך כלל כזה שמתחיל ב־ he_ או hv_, ומייצג אפשרות בחירה מתוך רשימה מוגדרת.
במקום לזכור מספרים פנימיים או ערכים טכניים, כותבים בתסריט שם קריא כגון he_AND, he_Integer או he_Preview_Document.

לדוגמה, הפונקציה הבאה מקבלת פרמטר מסוג Thds_Logic:
Server.Where_SameVal(FieldName: String; SameVal: ThNumeric; LogicGate: Thds_Logic);
בפרמטר LogicGate נשתמש באחד הקבועים:
he_AND, he_OR, he_AND_NOT או he_OR_NOT.

איך משתמשים בקבועים בעורך התסריטים

בעץ הניווט, פתיחת הענף Types & Const מציגה את שמות הטיפוסים והקבועים הזמינים לתסריט.
לחיצה על פריט בעץ מציגה בתיבת ההסבר את ההצהרה או הערך הרלוונטי.
לחיצה כפולה על קבוע מעתיקה את שם הקבוע לשימוש בקוד.

מונח הסבר
Type שם של טיפוס המגדיר רשימת אפשרויות, לדוגמה ThDataType.
Const ערך אחד מתוך רשימת האפשרויות של הטיפוס, לדוגמה he_Integer.
Optional Values רשימת הקבועים שניתן להציב בפרמטר או במאפיין שמקבל את אותו טיפוס.

בדוגמת הקוד הבאה, he_Integer הוא קבוע מסוג ThDataType, ו־ he_Edit הוא קבוע מסוג ThEditorType:
Clients_Found.Add_Field('ID as Int', 'מספר זהות נומרי', he_Integer, False, 0, he_Edit);

רשימת קבועים מרכזיים

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

Name Optional Values שימוש נפוץ
ThTranslation_Language he_English, he_Hebrew, he_Russian, he_Arabic, he_Spanish, he_Chinese, he_French, he_Hindi, he_German, he_Unknown בחירת שפה בתרגום כותרות, ערכי רשימות, טקסטים קבועים ופעולות תצוגה.
ThDataType he_String, he_Serial, he_Name, he_Phone, he_Integer, he_Real, he_Money, he_Bool, he_Date, he_Hour, he_FixDT, he_Status, he_Month, he_Week הגדרת סוג הנתון של שדה בטבלה פרטית או ברכיב קלט.
ThEditorType he_Edit, he_Select, he_Memo, he_PopupList, he_SelectEdit, he_GroupSelect, he_TextMemo, he_PopupEdit בחירת אופן העריכה הוויזואלי של שדה: תיבת טקסט, בחירה מרשימה, Memo, בחירה מרובה וכדומה.
ThDateMask he_AutoDetect, he_MM_DD_YYYY, he_DD_MM_YYYY, he_YYYY_MM_DD, he_YYYYMMDD פענוח תאריך מטקסט בפונקציות כגון Save_Date_Filter או Save_FixDT_Filter.
ThPhoneMask he_As_Is, he_Remove_Country_Code, he_Add_Country_Code עיצוב מספרי טלפון באמצעות Phone_Num_Mask.
ThFormat_Component_Name_Case he_Lowercase, he_CamelCase, he_Keep_AsIs קביעת אופן תיקון שם רכיב באמצעות Format_Component_Name.

קבועים לשאילתות ופעולות טבלה

קבועים אלה משמשים בעיקר מול ThDB_Client, טבלאות ThTable ו־ ThPrvTable.
הם קובעים כיצד לחבר תנאי שאילתה, כיצד להשוות בין שדות, ואיזו רמת גישה תינתן לטבלה.
Name Optional Values שימוש נפוץ
ThTableAccess he_Standard, he_ReadOnly, he_Fixing_Data_Interface, he_ReadOnly_No_Hidden, he_Data_Interface קביעת מצב העבודה של טבלה: קריאה בלבד, עבודה רגילה, או שימוש פנימי לממשקי נתונים.
Thds_Logic he_AND, he_OR, he_AND_NOT, he_OR_NOT חיבור תנאי שאילתה בפקודות Where_*.
Thds_Equation he_Equal_To, he_Different_Then, he_Less_Then, he_More_Then, he_Less_Then_Equal_To, he_More_Then_Equal_To השוואה בין שני שדות באותה רשומה באמצעות Where_Compare_Between.
ThReplaceMethod he_WholeValue, he_ContString, he_Override, he_GroupItem קביעת אופן החלפה של ערכים בטבלה באמצעות Replace.
ThDuplicity_ToDo he_Check_IF_Dup_Exist, he_Remove_Dups_From_2nd_Row, he_Leave_All_Dups_Rows בדיקה או טיפול בכפילויות באמצעות Duplicity.
GUTS_Action he_Just_New_Records, he_Override_Column, he_Fix_Millisec_All_Rows יצירת ערכי timestamp ייחודיים בעמודה באמצעות Set_Column_Unique_TS.
ThBuild_Index_Tree he_CreateAnyway, he_Create_IfNotExist, he_Free_RAM, he_Check_IF_Index_Exist ניהול אינדקס RAM פנימי לחיפוש מהיר בעמודה.
ThSaveToAnsiFile he_Ansi_INI, he_UTF8_INI, he_Ansi_CSV, he_Ansi_CSV_With_Header, he_UTF8_CSV, he_UTF8_CSV_With_Header, he_Ansi_TXT, he_CSV_For_SQL_Import, he_CSV_Linux בחירת פורמט שמירה בעת יצוא טבלה לקובץ טקסט או CSV.

דוגמה לשימוש בקבועי שאילתה:
DBconn.Reset;
DBconn.Query(ClientsTb, True);
DBconn.Where_SameVal('Handling Status', 1, he_AND);
DBconn.Where_Above('Client Number', 1000, he_AND);
DBconn.Close_Query;
DBconn.Execute;

דוגמה להשוואה בין שדות:
DBconn.Where_Compare_Between('Actual Price', he_Less_Then, 'Cost Price', he_AND);

קבועים לרכיבי ממשק

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

Name Optional Values שימוש נפוץ
ThButtonType he_Button, he_UpDown, he_Checkbox, he_RadioBtn, he_Spacer סוג כפתור ב־ ThButtonsArea.
ThButtonLocation he_FromStart, he_FromEnd, he_Popup מיקום הכפתור באזור הכפתורים או בתפריט popup.
ThButtonsArea_Layout he_Horizonal, he_Vertical, he_HorizIconsBar, he_VertIconsBar, he_Matrix, he_PopupMenu, he_Tiles קביעת פריסת כפתורים ב־ ThButtonsArea.
ThGrid_Options he_GAdd, he_GDelete, he_GSort, he_GSelectRange, he_GPaste, he_GSwitch, he_GSearchDelete, he_GCopyMoveCol, he_GKeepRecordOnSort, he_Export_Wizard, he_Single_Column_Width, he_NO_Clipboard, he_NO_Rules, he_NO_Layout, he_NO_Popup קביעת אפשרויות עבודה של ThDataGrid.
Thtb_Style he_Simple, he_Title1, he_Title2, he_Title3, he_GridHeader, he_Help, he_Help2, he_Fixed קביעת סגנון כותרת ב־ ThTitleBar.
ThDialog_Response he_Dialog_Cancel, he_Dialog_Select, he_Dialog_Clear תוצאה מדיאלוג בחירה/ניקוי.

דוגמה ליצירת כפתור דינמי:
Main_BA.Buttons.AddNew('refresh_data', 'refresh', 'Refresh', he_Button, False, he_FromStart);
Main_BA.GlobalInit;

דוגמה להוספת אפשרות מיון לגריד:
Items_DG.Options:= Items_DG.Options + [he_GSort, he_GSelectRange];

קבועי צבע

בעץ Types & Const מופיעים גם קבועי צבע מסוג TColor.
קבועים אלה משמשים בכל מקום שבו פונקציה, אירוע או מאפיין מצפים לקבל צבע: צבע טקסט, צבע רקע, צבע סימון, צבע הדפסה וכדומה.

חשוב לזכור כי צבעים מספריים בדלפי נכתבים בדרך כלל בפורמט
$BBGGRR

ולא בפורמט HTML/CSS של
#RRGGBB
.
לכן, במידת האפשר עדיף להשתמש בשם קבוע צבע מוכן במקום מספר צבע ידני.

Name Optional Values שימוש נפוץ
Standard TColor clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple, clTeal, clGray, clSilver, clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clLtGray, clDkGray, clWhite צבעי בסיס של Delphi/VCL לשימוש ברכיבי UI, אירועי ציור, הדפסה והדגשות.
Printer background colors hv_PrnBk_Green, hv_PrnBk_Red, hv_PrnBk_Yellow, hv_PrnBk_Silver, hv_PrnBk_Purple, hv_PrnBk_Aqua צבעי רקע מותאמים להדפסה ודוחות.
Data grid background colors hv_DG_Bk_Green, hv_DG_Bk_Red צבעי רקע מותאמים לגרידים ולסימון מצב ברשומות.


דוגמה לשימוש בצבעים באירוע ציור של גריד:
Procedure Items_DGCell_Drawing(FldCol, DsRow: Cardinal; VAR FontColor, BgColor: TColor;
                               VAR FontStyle: TFontStyles; VAR Halign, Valign: Byte);
Begin
  IF ItemsTb.RField['Balance', DsRow] < 0 Then
    FontColor:= clRed
        Else
    FontColor:= clGreen;
End;

דוגמה לשימוש בצבעי רקע ייעודיים:
IF ItemsTb.BField['Approved', DsRow] Then
  BgColor:= hv_DG_Bk_Green
      Else
  BgColor:= hv_DG_Bk_Red;

קבועים לעץ ויזואלי ולהדפסה

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

Name Optional Values שימוש נפוץ
ThTreeNodeFindAlgo he_SameString, he_ContString, he_StartingWith, he_FastCompare אופן חיפוש Node בעץ לפי כותרת או תג טקסט.
ThTreeNodeSortAlgo he_CaptionString, he_ExtEvent, he_Node_ITag1, he_Type_Then_Caption אופן מיון ילדים תחת Node.
ThVisualTreeCheckbox he_No_Selection, he_Parent_Select_Children, he_Stand_Alone מצב סימון checkbox בעץ ויזואלי.
ThDocs_Printer_Orientation he_Default_Orientation, he_Portrait, he_Landscape כיוון דף בהדפסה.
ThDocs_Printer_Action he_Preview_Document, he_Print_Directly, he_Print_Directly_No_Dialog, he_EMail_Directly, he_ConfirmDialog פעולת סיום למסמך: תצוגה מקדימה, הדפסה, שליחה במייל או דיאלוג אישור.

טיפוסים ציבוריים שנרשמים לאפליקציה

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

Name Optional Values שימוש נפוץ
THyper_Entity HY_Unknown, HY_Client, HY_Supplier, HY_Account, HY_Project, HY_User זיהוי סוג ישות בהייפר, לדוגמה בתוצאה של Get_Entity_Type.
TPM_Feed_Price hv_BID, hv_ASK, hv_MID בחירת סוג מחיר בפיד שערים, לדוגמה בפונקציה ConvertCcy_Live_Feed.

דוגמה:
IF Get_Entity_Type(Client_Number) = HY_Client Then
  Rate:= ConvertCcy_Live_Feed(Server.NOW, 'USD', hv_Bookkeeping_Currency, hv_MID);

הערות חשובות

  • שם הקבוע נכתב בקוד כפי שהוא מופיע בעץ הניווט. אין לעטוף אותו בגרשיים.
  • כאשר פרמטר מוגדר כ־ String, מעבירים טקסט בגרשיים. כאשר הוא מוגדר כטיפוס קבוע, מעבירים את שם הקבוע עצמו.
  • אם לפונקציה יש ערך ברירת מחדל לפרמטר, אין חובה להעביר את הקבוע בכל קריאה.
  • קבועים מסוג SET OF, כמו אפשרויות גריד, נכתבים בתוך סוגריים מרובעים כאשר מציבים כמה אפשרויות יחד.
// Correct
DBconn.Where_SameVal('Status', 1, he_AND);

// Correct - SET OF values
Items_DG.Options:= Items_DG.Options + [he_GSort, he_Export_Wizard];

// Incorrect - he_AND is not a string
DBconn.Where_SameVal('Status', 1, 'he_AND');