服务器控件
# FastWeb服务器控件
- 适用平台: APP(移动端)
该分组下包含了TARS提供的连接组件。Flying网络打印服务器,发送微信、短信等相关的控件及功能。
# 1. TUgRFConnection
该组件用于建立与TARS服务端的连接。通常用于一些窗体内的临时连接。如果程序中多个窗体需要使用同一个连接设置,可以使用公共单元中的TARSLink
来定义。
# 1.1. 属性
属性 | 功能说明 |
---|---|
Active | 是否激活该组件 |
ConnectionDefName | 连接的帐套(TARS连接设置)名称 |
ForceEncryption | 是否开启加密连接 |
LoginOptions | 连接选项设置 MD5Salt: MD5盐值,如在TARS中有设置则该处需与TARS中的设置相同 Password: TARS连接设置中使用的连接用户的密码 UserName: TARS连接设置中使用的连接的用户名 |
ModuleFileName | 连接功能使用的模块名称 |
SecureKey | 保证连接安全使用的安全码,此处需与TARS中设置的安全码一致 |
ServerAddr | TARS服务器的IP地址 |
ServerPort | TARS服务器的连接端口 |
# 2. TUgRFDataSet
该组件用于从数据库中获取数据形成数据集信息。数据集组件是数据感知组中组件的数据来源,也是数据图表等的数据来源。
# 2.1. 属性
属性 | 功能说明 |
---|---|
Active | 是否激活该组件 |
Connection | 指定数据集连接的来源 |
SQL | 生成数据集的构造SQL语句 |
# 2.1.1. Connection
指定数据集连接的来源。连接的来源有两种,一种来自TUgRFConnection组件,另一种来自于公共单元 tarslink
中关于帐套的设置项目。
//JScript
//连接来源可以来自同一窗体中的TRFConnection组件
UgRFDataSet01.Connection = UgRFConnection01;
//连接来源也可以来自公共单元pub_js_tarslink的帐套设置
UgRFDataSet01.Connection = GetRFERP;
2
3
4
5
//PasScript
//连接来源可以来自同一窗体中的TRFConnection组件
UgRFDataSet01.Connection := UgRFConnection01;
//连接来源也可以来自公共单元pub_pas_traslink的帐套设置
UgRFDataSet01.Connection := GetRFERP;
2
3
4
5
// Make sure to add code blocks to your code group
# 2.1.2. SQL
该属性是构造数据集使用的SQL语句。
//JScript
UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Unit";
2
//PasScript
UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Unit';
2
// Make sure to add code blocks to your code group
# 2.1.3. RecordCount
该属性用于显示当前数据集中包含的记录的数目。
//JScript
UgLabel01.Text = "Record Count:" + IntToStr(UgRFDataSet01.RecordCount);
2
//PasScript
UgLabel01.Text := 'Record Count:' + IntToStr(UgRFDataSet01.RecordCount);
2
// Make sure to add code blocks to your code group
# 2.2. 方法
# 2.2.1. Open
该方法用于在SQL属性中包含SQL语句时打开数据集。
UgRFDataSet01.Open;
# 2.2.2. Edit
使数据集对应选择的记录处于编辑状态。
UgRFDataSet01.Edit;
# 2.2.3. Append
使数据集处于新增记录的状态。
UgRFDataSet01.Append;
# 2.2.4. FieldByName
获取数据集中的字段的方法。
//JScript
//为数据集中当前指向的记录中的字段赋值,需要注意数据类型要一致
UgRFDataSet01.FieldByName("FBillID").AsInteger = 23020001;
UgRFDataSet01.FieldByName("FCreateDate").AsDateTime = Now();
2
3
4
//PasScript
//为数据集中当前指向的记录中的字段赋值,需要注意数据类型要一致
UgRFDataSet01.FieldByName('FBillID').AsInteger := 23020001;
UgRFDataSet01.FieldByName('FCreateDate').AsDateTime := Now();
2
3
4
// Make sure to add code blocks to your code group
# 2.2.5. Next
将数据集指向下一条记录。
UgRFDataSet01.Next;
# 2.2.6. EmptyDataSet
清空数据集中的内容。
# 2.2.7. ApplyUpdates
将当前数据集的更改信息保存至数据库中。
UgRFDataSet01.ApplyUpdates(-1);
# 2.2.8. Locate
根据参数信息定位包含对应信息的数据集记录。
//JScript
UgRFDataSet01.Locate("FInterID",UgRFDataSet01.FieldByName("FInterID").AsString,nil);
2
//PasScript
UgRFDataSet01.Locate('FInterID',UgRFDataSet01.FieldByName('FInterID').AsString,nil);
2
// Make sure to add code blocks to your code group
# 3. TUgRFStoredProc
该组件用于执行数据库中的存储过程。
该组件用于执行数据库中的存储过程。
# 3.1. 属性
名称 | 说明 |
---|---|
Active | 数据集是否开启 |
Aggregrates | 为数据集定义的客户端汇总的集合 |
AggregratesActive | 是否自动计算汇总值 |
AutoCalcFields | 确定何时触发OnCalcFields事件以及何时计算查找字段值 |
Connection | 指定控件使用的连接控件 |
Filter | 设置过滤条件 |
Filtered | 是否开启过滤器 |
Params | 设置存储过程使用的参数 |
StoredProcName | 指定在服务器端调用的存储过程的名称 |
# 3.1.1. ExecProc
procedure ExecProc;
function ExecProc(const AProcName: String): LongInt;
function ExecProc(const AProcName: String; const AParams: array of Variant): LongInt;
function ExecProc(const AProcName: String; const AParams: array of Variant; const ATypes: array of TFieldType): LongInt;
2
3
4
执行存储过程。
//JScript
//1
UgRFStoredProc01.StoredProcName = "myproc";
UgRFStoredProc01.Prepare;
UgRFStoredProc01.ParamByName("inval").Value = 100;
UgRFStoredProc01.ExecProc;
ShowMessage(UgRFStoredProc01.ParamByName("outval").AsString);
//2
UgRFStoredProc01.ExecProc("myproc");
//3
UgRFStoredProc01.ExecProc("myproc;2", [100, "qweqwe"]);
//4
UgRFStoredProc01.ExecProc("myproc", [100, "qweqwe"], [ftInteger, ftWideString]);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//PasScript
//1
UgRFStoredProc01.StoredProcName := 'myproc';
UgRFStoredProc01.Prepare;
UgRFStoredProc01.ParamByName('inval').Value := 100;
UgRFStoredProc01.ExecProc;
ShowMessage(UgRFStoredProc01.ParamByName('outval').AsString);
//2
UgRFStoredProc01.ExecProc('myproc');
//3
UgRFStoredProc01.ExecProc('myproc;2', [100, 'qweqwe']);
//4
UgRFStoredProc01.ExecProc('myproc', [100, 'qweqwe'], [ftInteger, ftWideString]);
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Make sure to add code blocks to your code group
# 4. TRFWechatMP
该组件可实现与微信公众平台对接实现微信公众号模板消息推送的功能。
# 4.1. 属性
属性 | 功能说明 |
---|---|
AccountName | 微信公众号的名称,在TARS中有相关设置 |
Connection | 设置连接方式,可选方式有TUgRFConnection组件/公共单元TARSLink 设置 |
# 4.2. 方法
# 4.2.1. SendCustomMessage
function SendCustomMessage(const AOpenID, AContent: string): Boolean;
发送文本消息。
- 示例
//JScript
//调用方式
UgRFWeChatMP01.SendCustomMessage("oxCHX6X4rjxj-TEStyhPmkNILNp9A","Hello!");
2
3
//PasScript
Begin
//调用方式
UgRFWeChatMP01.SendCustomMessage('oxCHX6X4rjxj-TEStyhPmkNILNp9A','Hello!');
End;
2
3
4
5
// Make sure to add code blocks to your code group
# 4.2.2. SendTemplateMessage
function SendTemplateMessage(const AJsonContent: string): Boolean;
发送模板消息。
部分 | 说明 |
---|---|
AccountName | 微信公众号 |
AJsonContent | Json格式化字符串,格式请参考https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html (opens new window) |
- 示例
//JScript
//调用方式
UgRFWeChatMP01.SendTemplateMessage("JsonContent");
2
3
//PasScript
Begin
//调用方式
UgRFWeChatMP01.SendTemplateMessage('JsonContent');
End;
2
3
4
5
// Make sure to add code blocks to your code group
# 5. TRFSMSSender
该组件可用于对接短信平台实现在TARS上使用短信发送的功能。
# 5.1. 属性
属性 | 功能说明 |
---|---|
AccessKeyId | 短信服务提供商的AccessKeyId |
AcessKeySecret | 短信服务提供商的AccessKeySecret |
Connection | 指定连接的来源 |
PhoneNumbers | 接收短信的手机号码,如有多个号码请用; 分隔 |
Provider | 短信服务提供商选择,有阿里云和阿里大于可选 |
SigName | 短信签名显示 |
TemplateCode | 短信模板名称 |
TemplateParam | 短信模板参数 |
以上参数的详细说明请参考阿里云短信服务文档 (opens new window)。
# 5.2. 方法
# 5.2.1. Execute
执行短信发送的操作。
//JScript
if (UgRFSMSSender01.Execute){
Showmessage("Messsage Send Success!");
}
2
3
4
//PasScript
if UgRFSMSSender01.Execute then
Showmessage('Messsage Send Success!');
2
3
// Make sure to add code blocks to your code group
# 6. TUgFlying
TUgFlying组件是配合Flying使用的组件,将必要的打印配置传递给该组件的属性,执行组件的方法即可将数据传递至打印服务器进行打印操作。在使用该组件前请先阅读Flying使用手册。
# 6.1. 属性
# 6.1.1. HTTPOptions
使用 HTTP 打印模式时使用的属性选项。其中的相关属性项目说明如下:
属性 | 说明 |
---|---|
Host | Flying打印服务端地址 |
Port | Flying HTTP/WebSocket 打印服务监听的端口号 |
# 6.1.2. MailOptions
邮件相关设置选项。
属性 | 说明 |
---|---|
Addr | 接收邮箱的地址 |
Body | 邮件的正文内容 |
Enable | 是否启用邮件发送的功能 |
Subject | 邮件的标题 |
# 6.1.3. MQTTOptions
使用 MQTT 打印模式时使用的属性选项。其中的相关属性项目说明如下:
属性 | 说明 |
---|---|
BrokerHost | MQTT 服务端的地址 |
BrokerPort | MQTT 服务端服务监听的端口号 |
Enabled | 设置是否启用 MQTT 连接 |
PrintPwd | 打印的密码 |
PrintTopic | 打印服务订阅的主题名称 |
UserName | MQTT 服务的用户名 |
UserPwd | MQTT 服务的密码 |
# 6.1.4. PrintOptions
打印服务的相关设置项。
属性 | 说明 |
---|---|
Data | 输入的打印数据,可通过 AddPrintData 方法自动生成 |
ExportFileType | 设置导出的文件类型 |
ExportFileUrl | 导出文件的URL |
Preview | 设置是否启用文件预览 |
PrintCopies | 设置文件的打印份数 |
PrinterList | 打印机列表的信息,可通过调用 GetPrinterList 方法来更新 |
PrinterName | 设置打印机的名称,可通过 GetPrinerList 方法获取打印机名称 |
PrintOffsetX | 打印偏移 X |
PrintOffsetY | 打印偏移 Y |
PrintType | 设置打印模式,可选 HTTP 、MQTT 、WebSocket |
ReportName | 设置打印的报表模板的名称,可指定报表模板的文件名(*.fr3 )或者报表模板的别名 |
ReportUrl | 设置打印的报表的输出地址 |
ReportVersion | 报表版本号 |
TaskID | 打印的任务ID,设置此项可用于区分不同打印客户端的打印请求 |
Token | 令牌,可用于打印客户端的身份认证 |
# 6.1.5. WebSocketOptions
使用 WebSocket 进行打印时的设置项。
属性 | 说明 |
---|---|
Authentication | 是否启用 WebSocket 身份认证 |
Compressed | 是否启用数据压缩 |
Enabled | 是否启用 WebSocket 通讯连接 |
Host | WebSocket 连接的主机的地址(Flying 服务端的地址) |
Password | WebSocket 使用身份认证连接时使用的密码 |
Port | WebSocket 服务监听的端口号 |
SSL | 是否启用 SSL 连接 |
SSLPort | 启用SSL 连接时监听的 WebSocket 服务端口号 |
URL | WebSocket 服务路径 |
UserName | WebSocket 使用身份认证连接时使用的用户名称 |
# 6.2. 方法
方法 | 功能说明 |
---|---|
GetPrintList | 获取Flying中间件的打印机列表 |
打印报表 | |
ReportPrint | 直接打印 |
ReportPreview | 报表预览 |
AddPrintData | 打印数据组装 |
# 6.2.1. GetPrinterList
procedure GetPrinterList;
该组件用户获取当前Flying打印服务器中可用的打印机列表。可通过如下方式来获取打印机列表,获取的打印机列表
//JScript
function UgButton02OnClick(sender)
//加载打印机
{
UgFlying01.GetPrinterList;
}
2
3
4
5
6
//PasScript
procedure UgButton02OnClick(sender: tobject);
//加载打印机
begin
UgFlying01.GetPrinterList;
end;
2
3
4
5
6
// Make sure to add code blocks to your code group
# 6.2.2. ReportPrint
procedure ReportPrint;
ReportPrint方法是呼叫Flying中间件,进行报表打印。
//JScript
//Pirnt
function UgButton02OnClick(sender){
if (UgComboBox02.Items.Text == "") {exit;}
UgFlying01.PrinterName = UgComboBox02.Items.Strings[UgComboBox02.ItemIndex];
UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Unit";
UgRFDataSet01.Open;
UgFlying01.AddPrintData(UgRFDataSet01,"A");
UgFlying01.ReportPrint;
}
2
3
4
5
6
7
8
9
10
//PasScript
//Pirnt
procedure UgButton02OnClick(sender: tobject);
//点击图片传输打印
begin
if UgComboBox02.Items.Text = '' then exit;
UgFlying01.PrinterName := UgComboBox02.Items.Strings[UgComboBox02.ItemIndex];
UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Unit';
UgRFDataSet01.Open;
UgFlying01.AddPrintData(UgRFDataSet01,'A');
UgFlying01.ReportPrint;
end;
2
3
4
5
6
7
8
9
10
11
12
// Make sure to add code blocks to your code group
# 6.2.3. ReportPreview
procedure ReportPreview;
ReportPreview方法是呼叫Flying中间件,进行报表输出,并回传到客户端显示。
//JScript
//Pirnt
function btnPrintOnClick(Sender)
{
if (Ugcombobox01.Count == 0) exit;
UgFlying01.PrintOptions.PrinterName = Ugcombobox01.Items[Ugcombobox01.ItemIndex];//读取打印机名称
UgRFDataSet01.openData;//打开数据
UgFlying01.AddPrintData(UhRFDataSet01,"A");//数据集转Json
UgFlying01.ReportPreview;//报表预览
}
2
3
4
5
6
7
8
9
10
//PasScript
//Pirnt
Procedure btnPrintOnClick(Sender: TObject);
Begin
if Ugcombobox01.Count = 0 Then exit;
UgFlying01.PrintOptions.PrinterName := Ugcombobox01.Items[Ugcombobox01.ItemIndex];//读取打印机名称
UgRFDataSet01.openData;//打开数据
UgFlying01.AddPrintData(UhRFDataSet01,'A');//数据集转Json
UgFlying01.ReportPreview;//报表预览
End;
2
3
4
5
6
7
8
9
10
// Make sure to add code blocks to your code group
# 6.2.4. PrintPdf方法
procedure PrintPdf(AUrl: String);
从网络地址获取 PDF 文件并发送至 Flying 服务端执行打印。
# 6.2.5. PrintPic方法
procedure PrintPic(AUrl: String);
从网络地址获取图片文件并发送至 Flying 服务端执行打印。