将所看到的唯一 prg 文件重命名为 Main.prg。因为在对 X# 完全陌生的状态下,潜意识里就认为它应该是所谓的项目主文件。然后将其内容更改如下(当你真正或虚假的理解了所生成的代码之后):
USING System
USING System.Collections.Generic
USING System.Linq
USING System.Text
Using Static System.Console
Function Start() As Void Strict
Private lcReturn As String
SqlSetProp(0, [DispLogin], 3)
PutHeader()
Do While .t.
PutMenu()
? [请键入菜单序号:]
lcReturn = ReadLine()
Do Case
Case lcReturn = [1]
Register()
Case lcReturn = [2]
Nop
Case lcReturn = [3]
Nop
Case lcReturn = [4]
Nop
Case lcReturn = [5]
Nop
Case lcReturn = [6]
Nop
Case lcReturn = [7]
Nop
Case lcReturn = [8]
Nop
Case lcReturn = [9]
Exit
Otherwise
? [菜单选择错误,返回主菜单]
Endcase
Enddo
Return
Function PutHeader
Private lcHeader = [] As String
Text To lcHeader Noshow Pretext 1
__ __ _ _ _ _____ _ _
| \/ | __ _ _ __ | |__ __ _ | |_ | |_ __ _ _ __ |_ _| ___ ___ | | | |__ ___ __ __
| |\/| | / _` | | '_ \ | '_ \ / _` | | __| | __| / _` | | '_ \ | | / _ \ / _ \ | | | '_ \ / _ \ \ \/ /
| | | | | (_| | | | | | | | | | | (_| | | |_ | |_ | (_| | | | | | | | | (_) | | (_) | | | | |_) | | (_) | > <
|_| |_| \__,_| |_| |_| |_| |_| \__,_| \__| \__| \__,_| |_| |_| |_| \___/ \___/ |_| |_.__/ \___/ /_/\_\
Endtext
? lcHeader
?
? [******************************************************]
? [作者: xinjie(QQ 411618689)]
? [Github: https://github.com/vfp9]
? [TQ开发框架(Manhattan)工具箱 Ver:1.0.0]
? [******************************************************]
?
Return
Function PutMenu
? "[1] > 注册客户端(框架/应用程序)"
? "[2] > 待定"
? "[3] > 待定"
? "[4] > 待定"
? "[5] > 待定"
? "[6] > 待定"
? "[7] > 待定"
? "[8] > 待定"
? "[9] > 退出"
?
Return
Function Register
Public lnStatementHandle As Int
Private lcReturn As String , ;
lcDatabase As String , ;
lcIP As String , ;
lcPort As String , ;
lcUser As String , ;
lcPassWord As String , ;
lcStringConnect As String
? [请输入数据库类型(1 SQL Server; 3 MySQL):]
lcReturn = ReadLine()
Do Case
Case lcReturn = [1]
? [指定需要连接的数据库名:]
lcDatabase = ReadLine()
? [IP地址:]
lcIP = ReadLine()
? [端口:]
lcPort = ReadLine()
? [用户名:]
lcUser = ReadLine()
? [密码:]
lcPassWord = ReadLine()
Text To lcStringConnect Noshow Textmerge Pretext 1
Driver={SQL Server};
UID = <<lcUser>> ;
PWD = <<lcPassWord>>;
Server = <<lcIP>>,<<lcPort>>;
Database = <<lcDatabase>>
Endtext
lnStatementHandle = Sqlstringconnect(lcStringConnect, .t.)
If lnStatementHandle > 0
? [连接成功,返回主菜单]
Else
? [连接失败,返回主菜单]
Endif
Case lcReturn = [3]
? [未完成...返回主菜单]
Endcase
Return
这段代码的原型就是我在《使用 VFP 创建控制台应用程序的一些思考》提到的 MagicMenu 的另一个控制台应用程序的“Demo”
按序号计算,一百多行的程序,完全不明白意思的不会超过十行。
而且,请注意,代码风格是自己在 VFP 中书写代码的风格,除了在变量前省略了“m.”前缀。
这是一段值得好好琢磨琢磨的代码,对第一次接触 X# 的 VFP 程序员来说。