爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • FastERP-1帮助主页
  • 学习手册

    • 基本入门

    • 功能介绍

    • 控件说明

    • 功能用法

    • 专用模板

    • 开发流程

      • 列表
      • 可编辑列表
      • 树形列表
      • 分组统计报表
      • 存储过程报表
      • 交叉报表
      • 编辑窗体
      • 导入窗体
      • 主页窗体
      • 进销存模板开发说明

        • 简介
        • 计量单位
        • 客户分类
        • 客户资料
        • 客户资料编辑
          • 1. 数据表结构
          • 2. 模块设计
            • 2.1. 客户资料模块设计
            • 2.2. 客户收货地址设计
            • 2.3. 客户关系模块设计
            • 2.4. 客户产品模块设计
          • 3. 设计布局
          • 4. 设计脚本
        • 物料生产领用汇总表
        • 物料收发存汇总表
        • 物料领用分析表
        • 导入库存
        • 进销存主页
    • 函数程序

目录

客户资料编辑

# FastERP 进销存模板开发 客户资料编辑

  客户资料编辑模块位于菜单栏中的 [基础资料]-[客户资料]。通过 [新建] 或 [编辑] 按钮进入。使用的模块类型为编辑窗体,关于编辑窗体的创建模式请参考 编辑窗体。

# 1. 数据表结构

  计量单位使用的数据表名称为 Basic_Cust。表结构已于 客户资料 的开发说明中创建,此处不需要重复创建。除上述之外,还需要再创建以下表结构。

  • Basic_CustAddrs:客户地址。
CREATE TABLE [dbo].[Basic_CustAddrs](
	[FInterID] [int] NOT NULL,
	[FEntryID] [int] NOT NULL,
	[FCompany] [varchar](100) NULL,
	[FAddress] [varchar](200) NULL,
	[FPerson] [varchar](100) NULL,
	[FEMail] [varchar](100) NULL,
	[FPhone] [varchar](20) NULL,
	[FFax] [varchar](20) NULL,
 CONSTRAINT [PK_Basic_CustAddrs_1] PRIMARY KEY CLUSTERED 
(
	[FInterID] ASC,
	[FEntryID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  • Basic_CustRelation:客户关系管理。
CREATE TABLE [dbo].[Basic_CustRelation](
	[FInterID] [int] NOT NULL,
	[FEntryID] [int] NOT NULL,
	[FEmpName] [varchar](100) NULL,
	[FDeptName] [varchar](100) NULL,
	[FPosition] [varchar](100) NULL,
	[FCharacter] [varchar](100) NULL,
	[FInfluence] [varchar](100) NULL,
	[FSex] [varchar](50) NULL,
	[FBirthDate] [datetime] NULL,
	[FWeddingDate] [datetime] NULL,
	[FNativePlace] [varchar](100) NULL,
	[FEMail] [varchar](100) NULL,
	[FPhone] [varchar](20) NULL,
	[FTel] [varchar](20) NULL,
	[FFax] [varchar](20) NULL,
	[FNote] [varchar](100) NULL,
 CONSTRAINT [PK_Basic_CustRelation] PRIMARY KEY CLUSTERED 
(
	[FInterID] ASC,
	[FEntryID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  • Basic_CustMaterial:客户物料信息。
CREATE TABLE [dbo].[Basic_CustMaterial](
	[FInterID] [int] NOT NULL,
	[FEntryID] [int] NOT NULL,
	[FCustID] [int] NULL,
	[FCustItemCode] [nvarchar](50) NULL,
	[FCustItemName] [nvarchar](100) NULL,
	[FItemCode] [nvarchar](50) NULL,
	[FItemName] [nvarchar](100) NULL,
	[FItemSpec] [nvarchar](100) NULL,
	[FPackMethod] [nvarchar](50) NULL,
	[FPackQty] [decimal](28, 6) NULL,
	[FPackUnit] [nvarchar](10) NULL,
	[FWeightUnit] [nvarchar](10) NULL,
	[FWhUnit] [nvarchar](10) NULL,
	[FStandPrice] [decimal](28, 6) NULL,
	[FSalePrice] [decimal](28, 6) NULL,
	[FNote] [nvarchar](100) NULL,
 CONSTRAINT [PK_Basic_CustMaterial] PRIMARY KEY CLUSTERED 
(
	[FInterID] ASC,
	[FEntryID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

# 2. 模块设计

  登陆FastERP,打开[主页]->[平台设计]->[系统设计]->[模块设计]。在模块设计列表左侧中找到 进销存-基础资料-客户资料-客户资料编辑,单击选择,点击菜单栏中的 [编辑] 按钮。打开 模块设计 界面。

  在基本信息界面中保持上述内容设置。

  切换至 窗体设计 界面,选择 数据集信息标签页,此处需创建四个数据集。

# 2.1. 客户资料模块设计

  客户资料模块界面根据上述内容进行设计。主控件需设置为 dbStand,其中SQL脚本设计如下。

select A.*
from Basic_Cust A
where A.FInterID=:FInterID
1
2
3

  其中的 :FInterID 来源于上文窗口客户资料 通过鼠标双击或选择 [编辑] 按钮传递过来的记录的主键ID。

  点击 字段信息按钮,点击 [加载字段] 按钮,界面中会显示选择的SQL生成的数据集字段信息。修改字段标签信息。

  其中部分字段需要特别设置。

  • FInterID:主键字段,字段提交模式需设置为 pfInKey,默认值类型为 VAR_NODEID。
  • FCustCode:客户代码,需检查是否有重复,检验重复 项目需设置 数据强制。且不能为空,设置 保存检空模式 为 逐条强制。
  • FCustName:客户名称,需检查是否有重复,检验重复 项目需设置 数据强制。且不能为空,设置 保存检空模式 为 逐条强制。
  • FGroupID:分组ID,需要从上文窗口中获取,默认值类型 项目需设置VAR_CONTEXDATA。默认值 项目需设置为 0.FInterID。控件类型需设置为 dbImgBox。设置 保存检空模式 为 逐条强制。参照类型 需设置为 SQL。参照内容 需设置为 Select FGroupName,FInterID from Basic_CustGroup。
  • FShortName:客户简称,不能为空,设置 保存检空模式 为 逐条强制。
  • FforzenFor:是否冻结,需设置一个默认值,默认值类型 为 VAR_DEFAULT,默认值设置为 0。
  • FCreateDate:建档日期,需自动设置创建的时间点,默认值类型 为 VAR_DATETIME。
  • FCreater:创建人,需自动设置创建的用户名称。默认值类型 为 VAR_USERNAME。
  • FLstModDate:最后修改日期,设置 默认值类型 为 VAR_DATETIME,默认值为 -1。用于在每次更新保存时自动更新。日期。
  • FSaleType:销售类型。设置 控件类型 为 dbcomboBox。设置 参照类型 为 参照,设置 参照内容 为 REF_SALETYPE。
  • FInvoiceType:发票类型。设置 控件类型 为 dbcomboBox。设置 参照类型 为 参照,设置 参照内容 为 REF_INVOICETYPE。
  • FEmpName:业务员。设置控件类型为 dbLookUp,设置 控件选项 为 EditList,设置 保存检空模式 为 逐条强制,设置 参照类型 为 参照,设置 参照内容 为 LKUP_EMPLOYEE。
  • FDeptName:部门名称。设置控件类型为 dbLookUp,设置 控件选项 为 EditList,设置 保存检空模式 为 逐条强制,设置 参照类型 为 参照,设置 参照内容 为 LKUP_DEPT。
  • FInvoiceCustName:结账客户。设置控件类型为 dbLookUp,设置 控件选项 为 EditList,设置 参照类型 为 参照,设置 参照内容 为 LKUP_INVOICECUST。
  • FCurrency:币别。设置控件类型为 dbLookUp,设置 控件选项 为 EditList,设置 参照类型 为 参照,设置 参照内容 为 LKUP_CURRENCY。
  • FDistrict:区域。设置 控件类型 为 dbcomboBox,设置 参照类型 为 参照,设置 参照内容 为 REF_DISTRICT。
  • FCustomerType:客户类型。设置 默认值类型 为 VAR_DEFAULT,设置 默认值 为 1,设置 控件类型 为 dbRadioGroup,设置 参照内容 为 国内客户=1 国外客户=2。
  • FPayItem:付款方式。设置控件类型为 dbLookUp,设置 参照类型 为 参照,设置 参照内容 为 LKUP_PAYITME。
  • FSettleName:结算方式。设置 控件类型 为 dbLookUp,设置 参照类型 为 参照,设置 参照内容 为 LKUP_SETTLE。

  在扩展控件-工具栏菜单标签页中,新增四项按钮项目,按照图中所示进行设置。其中 SUBBUTTON 类型显示的是按钮组,用于容纳其它按钮。

# 2.2. 客户收货地址设计

  客户收获地址的数据集信息根据图中所示进行设计。其中主控件需设置为 dbGrid,SQL设置如下:

select * from Basic_CustAddrs 
where FInterID =:FInterID
1
2

  字段信息界面中,点击 [加载字段] 按钮,可将SQL语句构造的数据集的字段提取并显示在表格中。修改各字段的字段标签,修改字段的属性设置。

  • FInterID:单据ID,与 FEntryID 联合组成唯一ID,设置 字段提交模式 为 pfInKey,设置 默认值类型 为 VAR_DATA,设置 默认值 为 0.FInterID,表示默认值来源于数据集0的 FInterID 字段。
  • FEntryID:序号ID,与 FInterID 联合组成唯一ID,设置 字段提交模式 为 pfInKey,设置 默认值类型 为 VAR_NO。
  • FCompany:收货公司。 副控件 设置为 dbedit。
  • FAddress:收货地址。副控件 设置为 dbedit。
  • FPerson:收货人。副控件 设置为 dbedit。
  • FEMail:邮箱。副控件 设置为 dbedit。
  • FPhone:电话号码。副控件 设置为 dbedit。
  • FFax:传真号码。副控件 设置为 dbedit。

  在扩展控件-其它控件界面中,在表格空白处单击,按下↓方向按键,新增空白行,新增两行,分别设置为 添加行 与 删除行的按钮,根据图中所示内容进行设置。

# 2.3. 客户关系模块设计

  客户关系的数据集信息根据上图所示进行设置,主控件设置为 dbGrid,SQL设置如下:

select * from Basic_CustRelation
where FInterID =:FInterID
order by FEntryID
1
2
3

  在字段信息标签页中,点击 [加载字段] 按钮,SQL生成的数据集中的字段信息显示在列表中。修改各字段的字段标签如图所示。

  • FInterID:单据ID,与 FEntryID 联合组成唯一ID,设置 字段提交模式 为 pfInKey,设置 默认值类型 为 VAR_DATA,设置 默认值 为 0.FInterID,表示默认值来源于数据集0的 FInterID 字段。
  • FEntryID:序号ID,与 FInterID 联合组成唯一ID,设置 字段提交模式 为 pfInKey,设置 默认值类型 为 VAR_NO。
  • FEmpName:姓名,设置 副控件 为 dbedit。
  • FDeptName:部门,设置 副控件 为 dbedit。
  • FPosition:位置,设置 副控件 为 dbedit。
  • FCharacter:性格,设置 副控件 为 dbedit。
  • FInfluence:影响力,设置 副控件 为 dbedit。
  • FSex:性别,设置 副控件 为 dbedit。
  • FBirthDate:出生日期,设置 副控件 为 dbDateTime。
  • FWedding:结婚纪念日,设置 副控件 为 dbDateTime。
  • FNativePlace:籍贯,设置 副控件 为 dbedit。
  • FEmail:邮箱,设置 副控件 为 dbedit。
  • FPhone:电话号码,设置 副控件 为 dbedit。
  • FTel:移动电话,设置 副控件 为 dbedit。
  • FFax:传真号码,设置 副控件 为 dbedit。
  • FNote:注意事项,设置 副控件 为 dbedit。

  在扩展控件-其它控件界面中,在表格空白处单击,按下↓方向按键,新增空白行,新增两行,分别设置为 添加行 与 删除行的按钮,根据图中所示内容进行设置。

# 2.4. 客户产品模块设计

  数据集设计界面根据图中所示进行设置,主控件名称需设置为 dbGrid,SQL设置如下:

select * from Basic_CustMaterial 
where FInterID =:FInterID
Order By FEntryID
1
2
3

  在字段信息标签页中,点击 [加载字段] 按钮,SQL生成的数据集中的字段信息显示在列表中。修改各字段的字段标签如图所示。

  • FInterID:单据ID,与 FEntryID 联合组成唯一ID,设置 字段提交模式 为 pfInKey,设置 默认值类型 为 VAR_DATA,设置 默认值 为 0.FInterID,表示默认值来源于数据集0的 FInterID 字段。
  • FEntryID:序号ID,与 FInterID 联合组成唯一ID,设置 字段提交模式 为 pfInKey,设置 默认值类型 为 VAR_NO。
  • FCustItemCode:客户物料代码,设置 副控件 为 dbedit。
  • FCustItem:客户物料名称,设置 副控件 为 dbedit。
  • FItemCode:物料代码,设置 控件选项 为 dbLookUp,设置 副控件 为 dbLookUp,设置 参照类型 为 参照,设置 参照内容 为 LKUP_ITEMFABRIC。
  • FItemName:物料名称,设置 副控件 为 dbedit。
  • FItemSpec:规格,设置 副控件 为 dbedit。
  • FPackMet:包装方式,设置 副控件 为 dbedit。
  • FPackQty:包装数量,设置 副控件 为 dbedit。
  • FPackUnit:包装单位,设置 副控件 为 dbcomboBox,设置 参照类型 为 参照,设置 参照内容 为 REF_UNITPIECE。
  • FWeightUnit:重量单位,设置 副控件 为 dbcomboBox,设置 参照类型 为 参照,设置 参照内容 为 REF_UNIT。
  • FStandPrice:标准价,设置 副控件 为 dbedit。
  • FSalePrice:销售价,设置 副控件 为 dbedit。
  • FNote:备注,设置 副控件 为 dbmemo。
  • FWhUnit:库存单位,设置 副控件 为 dbcomboBox,设置 参照类型 为 参照,设置 参照内容 为 LKUP_ITEMFABRIC。

  在扩展控件-其它控件界面中,在表格空白处单击,按下↓方向按键,新增空白行,新增两行,分别设置为 添加行 与 删除行的按钮,根据图中所示内容进行设置。

  以上信息设置完成后,点击 [保存] 按钮保存设置。有必要时可关闭并重新打开编辑界面,在第二个数据集数据集信息中设置快捷查询的条件代码。设置完成后重新点击 [保存] 按钮保存。

# 3. 设计布局

  点击模块设计菜单栏中的 设计布局-编辑窗体,在FastERP的主窗口中会显示一个新创建的标签页,点击菜单栏中的 设计-设计布局,会打开自定义窗口,其中会显示可使用的组件,首先在自定义窗口中 可用项目 处使用鼠标右键点击,创建一个分组,命名为 基本信息、概览,客户收货地址、关系人员、客户产品,拖动置于标签页面中,将使用鼠标右键,选择分组,创建概览、客户收货地址、关系人员、客户产品 分组标签,将可用项目中的字段拖动放入界面中,最终显示界面如下:

  在菜单栏中使用鼠标右键,点击选择自定义 选项,点击至 命令 选项卡,选择命令 业务操作,拖动至界面中。将 更新客户资料 拖动至 业务操作 菜单栏中。

  设置完成后,点击菜单栏中的 [设计]-[保存布局],在弹出的确认保存布局窗口中选择 [确认] 按钮,等待保存完成时弹出 保存成功 的提示,至此完成布局的保存。

# 4. 设计脚本

  点击模块中的 [设计]-[脚本设计],分别在组件栏位中选择 菜单按钮 - [删除],菜单按钮-[更新客户资料],下方的事件中双击 OnClick 事件,右侧的脚本编辑区域将自动生成关联的代码。

procedure TMyHandler.tbDelOnClick(Sender: TObject);
var
  FStatus:integer;
  tempVar:array of string;
  vResult:string;
begin
  //处理过程
  if not DBFUN.ShowConfirmDialogue('提示','确定删除客户资料吗?',295) then Abort();
  
  FStatus := FThis.dts0.FieldByName('FStatus').Asinteger;
  if FStatus = 1 then 
  begin
    DBFUN.ShowConfirmDialogue('提示','已审核,不能删除!',295);
    Abort();
  end
  else
  begin
    setLength(tempVar,4);
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Delete';
    tempVar[2] := FThis.dts0.FieldByName('FCreater').AsString;
    tempVar[3] := '';
    DM.ExecProcedure('sp_Basic_Cust',tempVar);
    FThis.CurrID := FThis.FCurrID;
    FThis.Close;
  end;
end;

procedure TMyHandler.tb0updateOnClick(Sender: TObject);
var
  FStatus:integer;
  tempVar:array of string;
  vResult:string;
begin
  //处理过程
  if not DBFUN.ShowConfirmDialogue('提示','确定更新客户资料吗?',295) then Abort();
    setLength(tempVar,4);
    tempVar[0] := FThis.dts0.FieldByName('FInterID').AsString;
    tempVar[1] := 'Update';
    tempVar[2] := FThis.dts0.FieldByName('FCreater').AsString;
    tempVar[3] := '';
    DM.ExecProcedure('sp_Basic_Cust',tempVar);
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

  其它控件列表中包含了 OtherCustAddrsAddRow、OtherCustAddrsDelRow、OtherCustRelationAddRow、OtherCustRelationDelRow、OtherCustMaterialAddRow、OtherCustMaterialDelRow,分别设置 OnClick事件。

procedure TMyHandler.OtherCustAddrsAddRowOnClick(Sender: TObject);
begin
   FThis.dts1.Append;
   FThis.dts1.Post;
end;
procedure TMyHandler.OtherCustAddrsDelRowOnClick(Sender: TObject);
begin
   if FThis.dts1.RecordCount = 0 then exit;
   FThis.dts1.Delete;
end;
procedure TMyHandler.OtherCustRelationAddRowOnClick(Sender: TObject);
begin
   FThis.dts2.Append;
   FThis.dts2.Post;
end;
procedure TMyHandler.OtherCustRelationDelRowOnClick(Sender: TObject);
begin
   if FThis.dts2.RecordCount = 0 then exit;
   FThis.dts2.Delete;
end;
procedure TMyHandler.OtherCustMaterialAddRowOnClick(Sender: TObject);
begin
   FThis.dts3.Append;
   FThis.dts3.Post;
end;
procedure TMyHandler.OtherCustMaterialDelRowOnClick(Sender: TObject);
begin
   if FThis.dts3.RecordCount = 0 then exit;
   FThis.dts3.Delete;
end;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

  在数据控件中找到 dts0,设置 BeforeEdit 与 BeforeOpen 事件。

procedure TMyHandler.dts0BeforeEdit(DataSet: TDataSet);
begin
  if not FbEdit  then Abort;
end;
procedure TMyHandler.dts0AfterOpen(DataSet: TDataSet);
begin
  if FThis.dts0.FieldByName('FStatus').asinteger = 0 then
     FbEdit :=true
  else
     FbEdit :=false;
  FThis.OpenDataDetail;
end;
1
2
3
4
5
6
7
8
9
10
11
12
客户资料
物料生产领用汇总表

← 客户资料 物料生产领用汇总表→

Copyright © 2021-2025 爱招飞IsoFace | ALL Rights Reserved
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式