⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 一个通用数据库管理系统,超多实用的类
💻 TXT
📖 第 1 页 / 共 5 页
字号:
First:           将记录指针移至第一个记录。
Next:            将记录指针移至下一个记录。
Prior:           将记录指针移至前一个记录。
Last:            将记录指针移至最后一个记录。
这四个方法均进行以下操作:
    1. 调用表单的自定义方法 DataChanged() 检查修改情况。
    2. 调用表单的自定义方法  AskToSave() 提示用户保存任何修改。
Save:            保存当前记录。
Delete:          删除当前记录。
AddNew:          添加一个新记录。
Restore:         恢复字段的原有值(取消所做修改)。
AddToMenu:       将表单的标题添加到“窗口”菜单。
RemoveFromMenu:  从“窗口”菜单中移去表单标题。
AskToSave:       提示用户保存修改, 不保存修改, 或取消最近一次操作。
DataChanged:     只要对当前表单有任何修改,  即返回.T.。
WriteBuffer:     将当前控制的值写至记录缓冲的代码。
RefreshForm:     自定义刷新过程。
SaveWindowPos:   将表单的 Top 和 Left 属性写入应用程序的 INI 文件。
RestoreWindowPos:从应用程序的INI 文件中读入表单的Top 和 Left 属性并设置。
WaitMode:        将表单中所有控制的鼠标光标改变为沙漏标。
    每次表单被激活时,命令 SELECT 设置别名为存贮在此表单数据环境的 InitialSelectedAlias 属性中的值,当数据环境最初为一个表单打开此表时,此选定表就是由属性 InitialSelectedAlias 指定的表。
    任何基于 itBaseForm 的表单都有一个 cToolBar 属性,用来存贮显示此表单时要显示的工具栏的名称。此表单的 Init 事件代码将 cToolBar 的值传给应用程序对象方法 ShowNavToolBar()。 SgowNavToolBar() 方法维护需要此工具栏的表单,并创建显示工具栏本身。此工具栏在表单显示之前显示,因为工具栏首次出现时放在停放位置,这样就改变了 VFP 主窗口中的客户区大小,这就是说,如果工具栏显示之前,表单已经显示,那么显示工具栏之后此表单就需要重新定位。 您可以在 IT 中查看这种影响效果:先显示一个表单,然后停放工具栏或从停放位置移出工具栏。
    为确保 VFP 重新计算菜单中的 SKIP FOR 子句,表单的 Activate 事件代码包含了以下命令:
        ACTIVATE MENU _MSYSMENU NOWAIT
    通过调用表单的 SaveWindowPos() 方法,再由它调用Windows API 函数 WritePrivateProfileString() ,此表单的 Top 和 Left 属性被保存到应用程序的 INI 文件中。这一个 API 函数在 MAIN.PRG 中声明, 并给出别名WritePrivStr。
下面列出了这个函数所需要的参数和从 SaveWinmdowPos()传来的值:
1. 要查找的节名:
    "WindowPositions"
2. 要保存的入口标识:
    THISFORM.Caption
3. 要保存的入口值:
    ALLTRIM(STR(THISFORM.Top)) + "," +ALLTRIM(STR(THISFORM.Left))
4. INI 文件名:
    CURDIR() + INIFILE
注意:INIFILE 是一个在MYAPP.H 中用 #DEFINE 声明的常量。如果此 INI 文件不存在, 则创建一个;如果指定节中不存在此入口项, 也将创建一个。 
    每次表单关闭时,它的 Top 和 Left 属性保存到应用程序的 INI 文件中,当表单运行时,可以恢复它们,这是通过表单的 Init 事件代码调用 RestoreWindowPos()方法实现的。
RestoreWindowPos() 方法使用 Windows API 函数GetPrivateProfileString() 从应用程序的 INI 文件中读取 Top 和 Left 属性。

GetPrivateProfileString()函数在 MAIN.PRG 中声明,并被赋与别名 GetPrivStr。
以下是这个函数所需要的参数和从 RestoreWindowPos()传来的值:
1. 要查找的节名:    "WindowPositions"
2. 要查找的入口:    THISFORM.Caption
3. 没找到此入口时的返回值:    ""
4. 保存此次查找结果的场所:    @lcBuffer
5. 读入的字节数:    LEN(lcBuffer)
6. INI 文件名:    CURDIR() + INIFILE
注意: INIFILE 是一个在 Myapp.H 中用#DEFINE 声明的常量此函数返回读到的字节数,并将入口的值存贮到变量IcBuffer中,然后分析此变量,提取表单的Top和Left属性设置,分析时如果没出错,则将此值赋给表单的相应属性。
    每当用户试图做一些引起表单关闭或显示不同记录的操作时, 此代码需对所做修改进行检查。DataChanged() 方法代码调用 GETFLDSTATE() 函数,并向其传递参数 -1, 使它返回表示当前记录中所有字段当前姿态的一个字符串。如果此字符串含有值 '2' 或'4', 则此行中的数据已被修改, 方法 DataChanged()返回 .T.。在特定的表单中可以创建一个自定义方法代替对GETFLDSTATE()的直接调用,从而忽略这种检查。
    另一个例子是当一个指定表单的非联系型控制的值已被修改时, 要返回 .T.。
    每当表单被刷新时,相应的工具栏都需要进行更新,以确保正确反映当前表单的状态。例如,如果一个表单不允许编辑,则其属性 IAllowEdits 将为 .F. ,并且工具栏中的“保存” 和 “恢复”按钮将废止。表单的 Activate 事件代码首先检查此表单的自定义属性cToolBar 是否为空,如果不为空,就将检查工具栏对象(全局应用程序对象 oApp 的成员)是否存在; 如果为空,便调用工具栏的 Refresh() 方法刷新此工具栏。
    有时, 一个用户在没有明确保存所做的修改之前就试图关闭一个表单, 这时表单的 QueryUnload 事件代码调用DataChanged() 方法查看是否已修改了数据。如果确实修改了, 则调用方法 AskToSave(), 如果 AskToSave()返回 2, 则发布 NODEFAULT 命令, 以防止关闭此表单。即使在用户退出应用程序时, 以上过程也要进行。由于用 RELEASE 命令或 Release() 方法关闭一个表单时, 不触发 QueryUnload 事件, 因此工具栏中“关闭”命令按钮的相关代码就在释放当前活动表单之前显式地调用 QueryUnload 事件代码。
    如果用户试图关闭表单或移到不同的记录,并且已经对当前记录做过修改但没有保存,则用户会得到提示:保存、放弃或取消修改,这是由表单的自定义方法 AskToSave()完成的。此方法用函数 MESSADEBOX() 显示一个消息框, 并允许用户从以下三个选项中选择:
1. 保存修改: 调用表单的自定义方法 Save()
2. 不保存修改:调用表单的自定义方法 Restore()
3. 取消: 用户回到编辑状态
AskToSave() 方法返回由 MESSAGEBOX() 函数返回的值(6 - IDYES , 7 - IDNO, 或 2 - IDCANCEL)。
    利用联系型控制和缓冲记录,控制值可一直到此控制失去焦点时再写入到记录缓冲区。如果表单只有一个控制,或用户修改一个控制后立即选择一个工具栏按钮,这种滞后的写入就会出问题。
  自定义方法 WriteBuffer() 按下列方法处理当前控制内容传送时的这种问题:
  1. 确保当前活动控制是一个对象,且不是一个表格。(表格常常是表缓冲的,需要单独处理)。
  2. 确保活动控制的 ControlSource 属性非空,如果为空,则意味着此控制没有与表的一个字段建立联系。
  3. 对字段的内容(也就是缓冲区中的值)与此控制的值进行比较, 如果不相等,则控制中的值已被修改。
  4. 如果数据已修改,则发布 REPLACE 语句用当前控制中的内容更新 ControlSource 属性中所指定字段的内容。
    改变鼠标光标的自定义方法 WaitMode()中实现的。将.T. 值传给这个方法可设置表单中所有控制的MousePointer 属性为 11 (砂漏) 值,如果传递的参数是 .F.,则所有控制的 MousePointer 属性设置为0(默认值)。设置一个表单中所有控制的MousePointer 属性可确保不论用户将鼠标移到何处,鼠标光标都能正确显示。
    自定义方法 AddNew() 首先确保当前控制的内容已通过调用自定义方法 WriteBufer() 保存到缓冲区中,然后检查用户是否正在添加一个新记录,如果是,则调用 AskToSave 方法允许用户保存或放弃修改。最后,在当前表中追加一个空白记录,并刷新表单。
    自定义方法Save()首先调用WriteBuffer()自定义方法确保当前控制的值已写入缓冲区,然后调用TABLEUPDATE() 函数更新修改。
    每当用户从“文件”菜单中选择“还原”命令或单击工具栏中的“还原”按钮时, 自定义方法 Restore() 都将被调用。由于在整个 IT 中都使用了行缓冲和表缓冲, 因此需调用 TABLEREVERT() 函数,用当前记录中的值更新表单中的联系型控制,然后刷新表单并显示这些值。
    有四个自定义方法允许用户在当前表或视图中定位:
    First(),Prior(),Next()和 Last()。每一个方法都由调用自定义方法 WriteBuffer() 开始, 以确保当前控制的值写入缓冲器,然后,用DataChanged()方法检查用户是否已对当前记录进行修改,如果是,则用skToSave()方法提示用户保存修改, 最后, 用SKIP 和 GO 命令将记录指针移到恰当的记录。
*************************************
itCheckBox
itCheckBox 是应用程序中所有复选框的类             
属性设置:
--------------------------
BackStyle = 0-Transparent
FontSize = 8
*************************************
itComboBox
itComboBox 是应用程序中所有组合框的类             
属性设置:
--------------------------
DisabledBackColor = 192,192,192 (亮灰) 
FontBold = .F.
FontSize = 8
Height = 21
Width = 100
*************************************
itCommandButton itCommandButton 是应用程序中所有命令按钮的类。    
属性设置
-----------------------
FontSize = 8
*************************************
itEditBox
itEditBox 是应用程序中所有编辑框的类。            
属性设置:
-------------------------
DisabledBackColor = 192,192,192 (亮灰)
FontBold = .F.
FontSize = 8
*************************************
itFormRetVal
itFormRetVal 是应用程序中所有有返回值的表单的类。
属性设置:
-------------------------
AutoCenter = .T.
BackColor = 192,192,192 亮灰
BorderStyle = 2-Double wide
FontSize = 8
MaxButton = .F.
MinButton = .F.
WindowType = 1-Modal
自定义属性:
---------------------------
uRetVal: 存储表单的返回值, 可以是任何数据类型; 前辍 “u” 表示“unknown(不能确定)”。  uRetVal 默认值为 .T. 。
*************************************
itGrid
itGrid 是应用程序中所有表格的类 。
属性设置:
--------------------------
DeleteMark = .F.
FontBold = .F.
FontSize = 8
Highlight = .F.
RecordMark = .F.
RowHeight = 17
自定义属性:
----------------------------
nColumnSum:存储 cFieldToSum  属性指定的字段值之和
cFieldToSum:指定要求和的字段名
与事件相关联的功能:
--------------------------------------------------
Refresh:调用新的自定义方法SumColumn。
自定义方法:
-------------------------
SumColumn:如果自定义属性 cFieldToSum 非空,则此方法将对 cFieldToSum 中指定的字段值求和。
*************************************
itifCombo
    itifCombo 是一个自定义组合框控制,此控制用于在每键入一个字符时,进行表的增量式搜寻,如果找到一个匹配项,则在此组合框的文本框中放入找到的字段的文本。此控制取决于组合框的多列的能力,此控制中用到的概念代表着数据库开发中一种共同的情况,开发人员常常要允许一个用户从一串名称中选择,却要在引用此名称的相关表中存贮一个外部关键字。VFP 中的组合框直接支持这种行为。做这一设置的最简单的方法是用一个 SQL SELECT 语句填充此组合框,SQL SELECT 语句典型的作法是从备查表中提取两个字段,第一个是要显示的名称或描述,第二个则是那个表中的主关键字。简单地设此组合框的BoundColumn 属性为 2 ,设 ControlSource 为表中用来存储外部关键字的字段,即可完成这一设置。Value 属性就将引用第二列,而 DisplayValue 属性则引用控制中显示的任何内容。这个组合框还扩展了这些概念,它允许用户键入列表中没有的值,当找到部分匹配时,则以增量方式搜寻备查表,并填充 DisplayValue 属性。
属性设置:
--------------------------
DisabledBackColor = 192,192,192 (亮灰)
DisplayValue = ""
FontBold = .F.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -