愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • 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
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式