愛招飛幫助手冊 愛招飛幫助手冊
  • 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
  • FastWeb幫助主頁
  • 學習手冊

    • 基本入門

    • 功能介紹

    • 控制元件說明

    • 系統工具

    • 系統管理

    • 云服務工具

    • 資料庫工具

    • 專用模板

    • 外部功能

    • 開發流程

      • 開發案例
      • 紡織印染業ERP設計實務
        • 1. 系統組成
        • 2. 基礎資料頁面設定
          • 2.1. 公司資料編輯-單筆數據表單
          • 2.1.1. 功能簡述
          • 2.1.2. 窗體設定
          • 2.1.3. 控制元件設定
          • 2.1.4. 程式設計
          • 2.1.5. 多語言設定
          • 2.1.6. 運行效果
          • 2.2. 客戶資料查詢-多筆數據表單
          • 2.2.1. 功能簡述
          • 2.2.2. 窗體設定
          • 2.2.3. 控制元件設定
          • 2.2.4. 程式設計
          • 2.2.5. 多語言設定
          • 2.2.6. 運行效果
          • 2.3. 客戶資料編輯-多筆數據表單
          • 2.3.1. 功能簡述
          • 2.3.2. 窗體設定
          • 2.3.3. 控制元件設定
          • 2.3.4. 程式設計
          • 2.3.5. 多語言設定
          • 2.3.6. 運行效果
        • 3. 業務單據頁面設定
          • 3.1. 銷售訂單-多筆數據主從表單
          • 3.1.1. 功能簡述
          • 3.1.2. 窗體設定
          • 3.1.3. 控制元件設定
          • 3.1.4. 程式設計
          • 3.1.5. 多語言設定
          • 3.1.6. 運行效果
          • 3.2. 銷售訂單編輯-多筆數據主從表單
          • 3.2.1. 功能簡述
          • 3.2.2. 窗體設定
          • 3.2.3. 控制元件設定
          • 3.2.4. 程式設計
          • 3.2.5. 多語言設定
          • 3.2.6. 報表設定
          • 3.2.7. 運行效果
          • 3.3. 圖表-銷售訂單排名分析
          • 3.3.1. 功能簡述
          • 3.3.2. 窗體設定
          • 3.3.3. 控制元件設定
          • 3.3.4. 程式設計
          • 3.3.5. 多語言設定
          • 3.3.6. 運行效果
        • 4. 匯入窗體
          • 4.1. 匯入布種資料-多筆數據表單
          • 4.1.1. 功能簡述
          • 4.1.2. 窗體設定
          • 4.1.3. 控制元件設定
          • 4.1.4. 程式設計
          • 4.1.5. 多語言設定
          • 4.1.6. 運行效果
          • 4.2. PDF檢視
          • 4.2.1. 功能簡述
          • 4.2.2. 窗體設定
          • 4.2.3. 控制元件設定
          • 4.2.4. 程式設計
          • 4.2.5. 多語言設定
          • 4.2.6. 運行效果
      • 頁面佈局
      • URLFrame與JS的互動
      • 自定控制元件擴充套件

      • RestAPI擴充套件

      • IsoBean開發

    • 函式程式

  • 開發手冊

目录

紡織印染業ERP設計實務

# FastWeb 紡織印染業ERP設計實務

  • 適用平臺: WEB(桌面)

  該文件將指導實現在FastWeb中的單據相關功能。本次我們將在FastWeb中實現業務系統的功能。

# 1. 系統組成

  以下圖片描述本系統的模組組成,其中公司資料、客戶資料以及布種資料、廠商資料等為對應的基礎資料,銷售訂單、採購訂單、生產訂單為引用以上基礎資料產生的單據。除公司資料外,其他的每個模組均包含查詢頁面以及編輯頁面。銷售訂單、採購訂單與生產訂單中還包括列印的相關設定內容。圖片以銷售訂單,採購訂單與生產訂單為主線分為以下三個流程圖。

# 2. 基礎資料頁面設定

# 2.1. 公司資料編輯-單筆數據表單

  點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為公司資料的模組,新增的內容樣式如下,主要填寫組別、編號、標題、開發使用者等內容,使用PasScript的使用者編號請填寫為 W-EQ-MOD-2129-1,使用JScript的使用者編號請填寫 W-EQ-MOD-2129-2。填寫完成後,點選儲存按鈕。

  選擇剛才建立的標題為公司資料的模組,點選上方的模組設計按鈕,進入模組設計界面。

  公司資料的頁面設定如下圖。

# 2.1.1. 功能簡述

  公司資料用於對公司資料的內容進行編輯,此頁面中包含了單筆數據的表單設計模式,資料庫圖片的展示與引用,圖片的對話方塊引入模式的設計說明。

# 2.1.2. 窗體設定

屬性 取值 說明
Height 600 主窗體的高度(畫素)
Width 800 主窗體的寬度(畫素)

# 2.1.3. 控制元件設定

  • 控制元件說明
控制元件名稱 控制元件型別 說明
UgContainerPanel01 TUgContainerPanel 頂部佈局控制元件,作為按鈕容器
UgGroupBox01 TUgGroupBox 分組佈局控制元件,用於放置影象顯示控制元件
Align:alRight
Caption:公司圖示(雙擊影象處以上傳)
UgGroupBox02 TUgGroupBox 分組佈局控制元件,用於放置數據感知控制元件
Align:alClient
UgPanel01 TUgPanel 面板控制元件,用於放置圖片控制元件
btSave TUgButton 儲存按鈕
Caption:儲存
btEdit TUgButton 修改按鈕
Caption:修改
btExit TUgButton 退出按鈕
Caption:退出
UgSweetAlertClose TUgSweetAlert 對話方塊控制元件
UgFileUpload TUgFileUpload 圖片上傳控制元件
dtsData TUgRFDataSet 數據集控制元件公司資料
dsData TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsData
  • 數據感知控制元件說明

  以下數據感知控制元件需修改每一個控制元件的以下屬性。TUgDBImage控制元件型別的除外。

屬性 取值 說明
FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
FieldLabelWidth 80 設定標籤顯示欄位的寬度
數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
FCompanyID 公司編號 TUgDBEdit edtFCompanyID
FCompanyCode 公司代號 TUgDBEdit edtFCompanyCode
FComanyName 簡體名稱 TUgDBEdit edtFCompanyName
FComanyNameTW 繁體名稱 TUgDBEdit edtFCompanyNameTW
FCompanyNameEn 英文名稱 TUgDBEdit edtFCompanyNameEn
FContact 負責人 TUgDBEdit edtFContact
FCurrenty 本位幣 TUgDBComboBox cbFCurrenty
FPhone1 電話1 TUgDBEdit edtFPhone1
FRemovedDate 結帳日期 TUgDBFormattedNumberEdit edtFRemovedDate
FPhone2 電話2 TUgDBEdit edtFPhone2
FTaxType 稅率類別 TUgDBComboBox cbFTaxType
FFax 傳真號碼 TUgDBEdit edtFFax
FTaxRate 稅率 TUgDBFormattedNumberEdit edtFTaxRate
FEmail 郵箱 TUgDBEdit edtFEmail
FCompanyAddr 簡體地址 TUgDBEdit edtFCompanyAddr
FCompanyAddrTW 繁體地址 TUgDBEdit edtFCompanyAddrTW
FCompanyAddrEn 英文地址 TUgDBEdit edtFCompanyAddrEn
FUrl 公司主頁 TUgDBEdit edtFUrl
FBank 開戶銀行 TUgDBEdit edtFBank
FAccountNo 開戶帳號 TUgDBEdit edtFAccountNo
FZip 郵編號碼 TUgDBEdit edtFZip
FTaxID 稅號 TUgDBEdit edtFTaxID
FCompanyLogo 公司圖示 TUgDBImage imgCompanyLogo

# 2.1.4. 程式設計

  在初始設定程式時,使用JScript使用者需勾選pub_js_tarslink與pub_js_messageinfo單元,使用PasScript的使用者請勾選pub_pas_tarslink與pub_pas_messageinfo單元。

  • 初始設定:設定顯示數據集的初始化內容。(僅限PascaScript使用)。
Begin
  //初始化設定,SQL賦值以及覈取方塊預設選項的設定
  dtsData.SQL.Text := 'select * from Basic_Company';
  dtsData.Connection := GetRFERP;
  dtsData.Open;
  
  cbFCurrenty.Items.CommaText := UGMM.LT('人民幣') + ',' + UGMM.LT('美元') + ',' + UGMM.LT('新臺幣') + ',' + UGMM.LT('港幣');
  cbFTaxType.Items.CommaText := UGMM.LT('增值稅') + ',' + UGMM.LT('營業稅') + ',' + UGMM.LT('免稅');
End.
1
2
3
4
5
6
7
8
9
  • UgWebRunFrameOnAfterRunScript:UgWebRunFrame的OnAfterRunScript事件,執行初始運行狀態下的設定。
    //JScript
    function UgWebRunFrameOnAfterRunScript(sender)
    {
    //翻譯界面
      UGMM.LC(Self);
    //驗證模組許可權
      UGMM.VerifyRunFramePerm(Self);
      RefState(False);
      //初始化設定,SQL賦值以及覈取方塊預設選項的設定
      dtsData.SQL.Text = "select * from Basic_Company";
      dtsData.Connection = GetRFERP;
      dtsData.Open;
      
      cbFCurrenty.Items.CommaText = UGMM.LT("人民幣") + "," + UGMM.LT("美元") + "," + UGMM.LT("新臺幣") + "," + UGMM.LT("港幣");
      cbFTaxType.Items.CommaText = UGMM.LT("增值稅") + "," + UGMM.LT("營業稅") + "," + UGMM.LT("免稅");
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //PasScript
    procedure UgWebRunFrameOnAfterRunScript(const sender: tobject);
    begin
    //翻譯界面
      UGMM.LC(Self);
    //驗證模組許可權
      UGMM.VerifyRunFramePerm(Self);
      RefState(False);
    end;
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Make sure to add code blocks to your code group
    • btExitOnClick:btnExit的OnClick事件,用於退出視窗,如單據處於編輯狀態則會出現提示。
      //JScript
      function btExitOnClick(sender)
      //退出視窗,如單據處於編輯狀態則會出現提示
      {
        var p = Self.Parent;
        if (dsData.AutoEdit)
        {
            UgSweetAlertClose.CancelButtonText = UGMM.LT("取消");
            UgSweetAlertClose.ConfirmButtonText = UGMM.LT("確定");
            UgSweetAlertClose.Title = UGMM.LT("提示");
            UgSweetAlertClose.Text = UGMM.LT("修改尚未儲存,是否退出?");
            UgSweetAlertClose.Show;
        }
        else{
          TUgWebForm(p).Close;
        }
        if (p is TUniTabSheet)
          UniSession.AddJS("document.getElementById(\"" + TUniTabSheet(p).jsid + "_tab-closeEl\").click();");
      }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      //PasScript
      procedure btExitOnClick(sender: tobject);
      //退出視窗,如單據處於編輯狀態則會出現提示
      Var
        p:TComponent;
      Begin
        p:=Self.Parent;
        if dsData.AutoEdit then
        begin
            UgSweetAlertClose.CancelButtonText := UGMM.LT('取消');
            UgSweetAlertClose.ConfirmButtonText := UGMM.LT('確定');
            UgSweetAlertClose.Title := UGMM.LT('提示');
            UgSweetAlertClose.Text := UGMM.LT('修改尚未儲存,是否退出?');
            UgSweetAlertClose.Show;
        end
        else
          TUgWebForm(p).Close;
        if p is TUniTabSheet then
          UniSession.AddJS('document.getElementById("' + TUniTabSheet(p).jsid + '_tab-closeEl").click();');
      End;
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      // Make sure to add code blocks to your code group
      • RefState:重新整理單據編輯狀態的顯示。
        //JScript
        function RefState(bool)
        //重新整理編輯狀態,處於不同的編輯狀態時將啟用或禁用部分按鈕。
        {
          if (bool)
          //編輯狀態
          {
            cbFCurrenty.AutoEdit = True;
            cbFTaxType.AutoEdit = True;
            btSave.Enabled = True;
            btEdit.Enabled = False;
            dsData.AutoEdit = True;
            dtsData.Edit;
          }
          else
          //儲存狀態
          {
            cbFCurrenty.AutoEdit = False;
            cbFTaxType.AutoEdit = False;
            btSave.Enabled = False;
            btEdit.Enabled = True;  
            dsData.AutoEdit = False;
          }
        }
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        //PasScript
        procedure RefState(bool:Boolean;);
        //重新整理編輯狀態,處於不同的編輯狀態時將啟用或禁用部分按鈕。
        Begin
          if bool Then
          //編輯狀態
          Begin
            cbFCurrenty.AutoEdit := True;
            cbFTaxType.AutoEdit := True;
            btSave.Enabled := True;
            btEdit.Enabled := False;
            dsData.AutoEdit := True;
            dtsData.Edit;
          End
          Else
          //儲存狀態
          Begin
            cbFCurrenty.AutoEdit := False;
            cbFTaxType.AutoEdit := False;
            btSave.Enabled := False;
            btEdit.Enabled := True;  
            dsData.AutoEdit := False;
          End;
        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
        // Make sure to add code blocks to your code group
        • btEditOnClick:btnEdit的OnClick事件,修改後,頁面切換為修改模式。
          //JScript
          function btEditOnClick(sender)
          //修改
          {
            RefState(True);
          }
          
          1
          2
          3
          4
          5
          6
          //PasScript
          procedure btEditOnClick(sender: tobject);
          //修改
          begin
            RefState(True);
          end;
          
          1
          2
          3
          4
          5
          6
          // Make sure to add code blocks to your code group
          • btSaveOnClick:btnSave的OnClick事件,儲存按鈕,儲存修改。
            //JScript
            function btSaveOnClick(sender)
            //儲存
            {
              dtsData.Post;
              dtsData.ApplyUpdates(-1);
              RefState(False);
            }
            
            1
            2
            3
            4
            5
            6
            7
            8
            //PasScript
            procedure btSaveOnClick(sender: tobject);
            //儲存
            begin
              dtsData.Post;
              dtsData.ApplyUpdates(-1);
              RefState(False);
            end;
            
            1
            2
            3
            4
            5
            6
            7
            8
            // Make sure to add code blocks to your code group

            # 2.1.5. 多語言設定

              點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

              收集此頁面視窗中所有需要進行翻譯的詞條(包括程式中設定的多語言專案),點選新增按鈕,根據提示填寫維護。

            # 2.1.6. 運行效果

            # 2.2. 客戶資料查詢-多筆數據表單

              點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為客戶資料的模組,新增的內容樣式如下,主要填寫組別、編號、標題、開發使用者等內容,使用PasScript的使用者編號請填寫為 W-EQ-MOD-2130-1,使用JScript的使用者編號請填寫 W-EQ-MOD-2130-2。填寫完成後,點選儲存按鈕。

              選擇剛才建立的標題為客戶資料的模組,點選上方的模組設計按鈕,進入模組設計界面。

              客戶資料的頁面設定如下圖。

            # 2.2.1. 功能簡述

              客戶資料的頁面按照客戶分類進行客戶資訊的分類展示,此頁面包含分組顯示錶單的模式設計,表格查詢等相關的模組設計內容。

            # 2.2.2. 窗體設定

            屬性 取值 說明
            Align alClient 佈局填滿整個客戶端

            # 2.2.3. 控制元件設定

            • 控制元件說明
            控制元件名稱 控制元件型別 說明
            UgContainerPanel01 TUgContainerPanel 容器面板控制元件,用於放置查詢內容,按鈕控制元件
            Align:alTop
            edQuery TUgEdit 用於輸入查詢條件
            EmptyText:輸入客戶程式碼或名稱
            FieldLabel:客戶程式碼或名稱
            FieldLabelAlign:laTop
            btnQuery TUgButton 查詢按鈕
            Caption:查詢
            btnClear TUgButton 清除按鈕
            Caption:清除
            UgVerticalLine01 TUgVerticalLine 佈局按鈕,用於區隔不同功能型別的按鈕
            btnAppend TUgButton 新建按鈕
            Caption:新建
            btnDelete TUgButton 刪除按鈕
            Caption:刪除
            btnEditor TUgButton 編輯按鈕
            Caption:編輯
            UgVerticalLine02 TUgVerticalLine 佈局按鈕,用於區隔不同功能型別的按鈕
            btnRefresh TUgButton 重新整理按鈕
            Caption:重新整理
            btnShowAll TUgButton 顯示全部按鈕
            Caption:顯示全部
            btnExit TUgButton 退出按鈕
            Caption:退出
            UgRFDataSet01 TUgRFDataSet 客戶數據集
            UgDataSource01 TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為UgRFDataSet01
            UgRFDataSet02 TUgRFDataSet 客戶分組數據集
            UgDataSource02 TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為UgRFDataSet02
            UgDBTreeGrid01 TUgDBTreeGrid 樹形表格數據集
            Align:alLeft
            DataSource:UgDataSource02
            IdField:FTreeKeyID
            IdParentField:FTreeParentID
            UgDBGrid01 TUgDBGrid 表格數據集
            Align:alClient
            DataSource:UgDataSource01
            UgSweetAlert TUgSweetAlert 訊息提示控制元件
            • UgDBTreeGrid01欄位設定

              選擇並雙擊UgDBTreeGrid01控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

            • UgDBGrid01欄位設定

              選擇並雙擊UgDBGrid01控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

            # 2.2.4. 程式設計

              在初始設定程式時,使用JScript使用者需勾選pub_js_tarslink與pub_js_messageinfo單元,使用PasScript的使用者請勾選pub_pas_tarslink與pub_pas_messageinfo單元。

            • 初始設定:設定顯示數據集的初始化內容(僅限PasScript)。
            Begin
              //數據集資訊顯示
              UgRFDataSet01.Connection := GetRFERP;
              UgRFDataSet02.Connection := GetRFERP;
              UgRFDataSet02.SQL.Text := 'Select FInterID,FGroupCode,FGroupName,FNote,FTreeKeyID,FTreeParenteID,FAbsoluteIndex ' + 
              ' From Basic_CustGroup Order by FGroupCode';
              UgRFDataSet02.Open;
              UgRFDataSet02.First;
              UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Cust';
              UgRFDataSet01.Open;
            End.
            
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            • UgWebRunFrameOnAfterRunScript:UgWebRunFram的OnAfterRunScript事件,用於界面初始設定,設定翻譯和模組許可權。
              //JScript
              function UgWebRunFrameOnAfterRunScript(sender)
              {
                //翻譯界面
                UGMM.LC(Self);
                //驗證模組許可權
                UGMM.VerifyRunFramePerm(Self);
                //數據集資訊顯示
                UgRFDataSet01.Connection = GetRFERP;
                UgRFDataSet02.Connection = GetRFERP;
                UgRFDataSet02.SQL.Text = "Select FInterID,FGroupCode,FGroupName,FNote,FTreeKeyID,FTreeParenteID,FAbsoluteIndex " + 
                " From Basic_CustGroup Order by FGroupCode";
                UgRFDataSet02.Open;
                UgRFDataSet02.First;
                UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Cust";
                UgRFDataSet01.Open;
              }
              
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              17
              //PasScript
              procedure UgWebRunFrameOnAfterRunScript(const sender: tobject);
              begin
              //翻譯界面
                UGMM.LC(Self);
              //驗證模組許可權
                UGMM.VerifyRunFramePerm(Self);
              end;
              
              1
              2
              3
              4
              5
              6
              7
              8
              // Make sure to add code blocks to your code group
              • UgDBTreeGrid01OnCellClick:UgDBTreeGrid01的OnCellClick事件,分組按鈕點選切換目前分組顯示。
                //JScript
                function UgDBTreeGrid01OnCellClick(column)
                //分組按鈕點選切換目前分組顯示
                {
                	UgRFDataSet01.Filtered = False;
                  UgRFDataSet01.Filter = "FGroupID = " + UgRFDataSet02.FieldByName("FInterID").AsString;
                  UgRFDataSet01.Filtered = True;
                }
                
                
                1
                2
                3
                4
                5
                6
                7
                8
                9
                //PasScript
                procedure UgDBTreeGrid01OnCellClick(column: tunidbgridcolumn);
                //分組按鈕點選切換目前分組顯示
                begin
                	UgRFDataSet01.Filtered := False;
                  UgRFDataSet01.Filter := 'FGroupID = ' + UgRFDataSet02.FieldByName('FInterID').AsString;
                  UgRFDataSet01.Filtered := True;
                end;
                
                1
                2
                3
                4
                5
                6
                7
                8
                // Make sure to add code blocks to your code group
                • btnQueryOnClick:btnQuery的OnClick事件,點選查詢按鈕,根據查詢編輯框中的內容進行查詢。
                  //JScript
                  //查詢
                  function btnQueryOnClick(sender)
                  {
                    UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Cust WHERE FCustCode LIKE  '%" + edQuery.Text + 
                    "%' or FCustName LIKE '%" + edQuery.Text + "%' Order by FCustCode";
                    UgRFDataSet01.Open;
                  }
                  
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  //PasScript
                  //查詢
                  procedure btnQueryOnClick(sender: tobject);
                  begin
                    UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Cust WHERE FCustCode LIKE  ''%' + edQuery.Text + 
                    '%'' or FCustName LIKE ''%' + edQuery.Text + '%'' Order by FCustCode';
                    UgRFDataSet01.Open;
                  end;
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  // Make sure to add code blocks to your code group
                  • btnClearOnClick:btnClear的OnClick事件,清除按鈕的點選事件,清除查詢條件編輯框中的內容。
                    //JScript
                    //清除
                    function btnClearOnClick(sender)
                    {
                      edQuery.Text = "";
                      UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Cust";
                      UgRFDataSet01.Open;
                    }
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    //PasScript
                    //清除
                    procedure btnClearOnClick(sender: tobject);
                    begin
                      edQuery.Text := '';
                      UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Cust';
                      UgRFDataSet01.Open;
                    end;
                    
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    // Make sure to add code blocks to your code group
                    • btnAppendOnClick:btnAppend的OnClick事件,新增按鈕,打開客戶資料編輯頁面,新增單據資訊。
                      //JScript
                      //新增
                      function btnAppendOnClick(sender)
                      {
                        var F,t;
                        //打開客戶資料編輯界面W-EQ-MOD-2131-2
                        F = UGMM.GetWebSubForm("W-EQ-MOD-2131-2");
                        F.Caption = UGMM.LT("編輯客戶資料");
                        UGMM.LC(F);
                        //主數據集連線
                        t = now;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Connection = GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Close;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).SQL.Text = "SELECT * FROM Basic_Cust";
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Open;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Append;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsInteger = GetNodeID;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FGroupID").AsString = UgRFDataSet02.FieldByName("FInterID").AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FCreater").AsString = UGMM.Informations.Values["UserFullName"];
                        
                        //客戶收貨地址
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).Connection = GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).Close;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).SQL.Text = "SELECT * FROM Basic_CustAddrs WHERE FInterID = " 
                        + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).Open;
                        //客戶關係人員
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).Connection = GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).Close; 
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).SQL.Text = "SELECT * FROM Basic_CustRelation WHERE FInterID = " 
                        + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).Open; 
                        //客戶產品
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).Connection = GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).Close;   
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).SQL.Text = "SELECT * FROM Basic_CustMaterial WHERE FInterID = " 
                        + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).Open;   
                        if (F.ShowModal == mrOK) 
                        {
                        
                        }
                        //關閉視窗后從記憶體釋放視窗W-EQ-MOD-2131-2
                        UGMM.DelWebSubForm("W-EQ-MOD-2131-2");
                        btnQueryOnClick(sender);
                      }
                      
                      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
                      44
                      45
                      46
                      //PasScript
                      //新增
                      procedure btnAppendOnClick(sender: tobject);
                      Var
                        F:TUniForm;
                        D:TUgRFDataSet;
                        t:TDateTime;
                      begin
                        //打開客戶資料編輯界面W-EQ-MOD-2131-1
                        F := UGMM.GetWebSubForm('W-EQ-MOD-2131-1');
                        F.Caption := UGMM.LT('編輯客戶資料');
                        UGMM.LC(F);
                        //主數據集連線
                        t := now;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Connection := GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Close;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).SQL.Text := 'SELECT * FROM Basic_Cust';
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Open;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Append;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsInteger := GetNodeID;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FGroupID').AsString := UgRFDataSet02.FieldByName('FInterID').AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FCreater').AsString := UGMM.Informations.Values['UserFullName'];
                        
                        //客戶收貨地址
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).Connection := GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).Close;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).SQL.Text := 'SELECT * FROM Basic_CustAddrs WHERE FInterID = ' 
                        + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).Open;
                        //客戶關係人員
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).Connection := GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).Close; 
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).SQL.Text := 'SELECT * FROM Basic_CustRelation WHERE FInterID = ' 
                        + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).Open; 
                        //客戶產品
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).Connection := GetRFERP;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).Close;   
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).SQL.Text := 'SELECT * FROM Basic_CustMaterial WHERE FInterID = ' 
                        + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsString;
                        TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).Open;   
                        if F.ShowModal = mrOK then 
                        Begin
                      
                        End;
                        //關閉視窗后從記憶體釋放視窗W-EQ-MOD-2131-1
                        UGMM.DelWebSubForm('W-EQ-MOD-2131-1');
                        btnQueryOnClick(sender);
                      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
                      44
                      45
                      46
                      47
                      48
                      49
                      // Make sure to add code blocks to your code group
                      • btnDeleteOnClick:btnDelete的OnClick事件,打開刪除確認對話方塊。
                        //JScript
                        //刪除,確認對話方塊
                        function btnDeleteOnClick(sender)
                        {
                          UgSweetAlert.CancelButtonText = UGMM.LT("取消");
                          UgSweetAlert.ConfirmButtonText = UGMM.LT("確定");
                          UgSweetAlert.Title = UGMM.LT("提示");
                          UgSweetAlert.Text = UGMM.LT("是否刪除該客戶?");
                          UgSweetAlert.Show;
                        }
                        
                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        8
                        9
                        10
                        //PasScript
                        //刪除,確認對話方塊
                        procedure btnDeleteOnClick(sender: tobject);
                        Begin
                          UgSweetAlert.CancelButtonText := UGMM.LT('取消');
                          UgSweetAlert.ConfirmButtonText := UGMM.LT('確定');
                          UgSweetAlert.Title := UGMM.LT('提示');
                          UgSweetAlert.Text := UGMM.LT('是否刪除該客戶?');
                          UgSweetAlert.Show;
                        End;
                        
                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        8
                        9
                        10
                        // Make sure to add code blocks to your code group
                        • btnEditorOnClick:btnEditor的OnClick事件,用於打開客戶資料編輯頁面,編輯客戶基礎資料資訊。
                          //JScript
                          //修改編輯
                          function btnEditorOnClick(sender)
                          {
                            var F,t;
                            //打開客戶資料編輯界面W-EQ-MOD-2131-2
                            F = UGMM.GetWebSubForm("W-EQ-MOD-2131-2");   
                            F.Caption = UGMM.LT("編輯客戶資料");
                            UGMM.LC(F);
                            //主數據集連線
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Connection = GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Close;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).SQL.Text = "SELECT * FROM Basic_Cust";
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Open;
                            while (TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsString !=
                            UgRFDataSet01.FieldByName("FInterID").AsString) 
                            {
                               TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Next;
                            }
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).Edit;
                            //客戶收貨地址
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).Connection = GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).Close;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).SQL.Text = "SELECT * FROM Basic_CustAddrs WHERE FInterID = " 
                            + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsString;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustAddrs")).Open;
                            //客戶關係人員
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).Connection = GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).Close;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).SQL.Text = "SELECT * FROM Basic_CustRelation WHERE FInterID = " 
                            + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsString;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustRelation")).Open;  
                            //客戶產品
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).Connection = GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).Close;   
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).SQL.Text = "SELECT * FROM Basic_CustMaterial WHERE FInterID = " 
                            + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsGeneral")).FieldByName("FInterID").AsString;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsCustMaterial")).Open;  
                            if (F.ShowModal == mrOK) 
                            {
                            
                            }
                            //關閉視窗后釋放視窗W-EQ-MOD-2131-2
                            UGMM.DelWebSubForm("W-EQ-MOD-2131-2");
                            btnQueryOnClick(sender);
                          }
                          
                          
                          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
                          44
                          45
                          46
                          47
                          //PasScript
                          //修改編輯
                          procedure btnEditorOnClick(sender: tobject);
                          Var
                            F:TUniForm;
                          begin
                            //打開客戶資料編輯界面W-EQ-MOD-2131-1
                            F := UGMM.GetWebSubForm('W-EQ-MOD-2131-1');   
                            F.Caption := UGMM.LT('編輯客戶資料');
                            UGMM.LC(F);
                            //主數據集連線
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Connection := GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Close;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).SQL.Text := 'SELECT * FROM Basic_Cust';
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Open;
                            while (TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsString <> 
                            UgRFDataSet01.FieldByName('FInterID').AsString) do
                            begin
                               TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Next;
                            end;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).Edit;
                            //客戶收貨地址
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).Connection := GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).Close;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).SQL.Text := 'SELECT * FROM Basic_CustAddrs WHERE FInterID = ' 
                            + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsString;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustAddrs')).Open;
                            //客戶關係人員
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).Connection := GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).Close;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).SQL.Text := 'SELECT * FROM Basic_CustRelation WHERE FInterID = ' 
                            + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsString;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustRelation')).Open;  
                            //客戶產品
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).Connection := GetRFERP;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).Close;   
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).SQL.Text := 'SELECT * FROM Basic_CustMaterial WHERE FInterID = ' 
                            + TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsGeneral')).FieldByName('FInterID').AsString;
                            TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsCustMaterial')).Open;  
                            if F.ShowModal = mrOK then 
                            Begin
                          
                            End;
                            //關閉視窗后釋放視窗W-EQ-MOD-2131-1
                            UGMM.DelWebSubForm('W-EQ-MOD-2131-1');
                            btnQueryOnClick(sender);
                          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
                          44
                          45
                          46
                          47
                          // Make sure to add code blocks to your code group
                          • btnExitOnClick:btnExit的OnClick事件,退出目前視窗。
                            //JScript
                            //退出
                            function btnExitOnClick(sender)
                            {
                              var p = Self.Parent;
                              if (p is TUgWebForm)
                              {
                                TUgWebForm(p).Close;
                              }
                              if (p is TUniTabSheet)
                                UniSession.AddJS("document.getElementById(\"" + TUniTabSheet(p).jsid + "_tab-closeEl\").click();");
                            }
                            
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            //PasScript
                            //退出
                            procedure btnExitOnClick(sender: tobject);
                            Var
                              p:TComponent;
                            Begin
                              p:=Self.Parent;
                              if p is TUgWebForm then
                              Begin
                                TUgWebForm(p).Close;
                              End;
                              if p is TUniTabSheet then
                                UniSession.AddJS('document.getElementById("' + TUniTabSheet(p).jsid + '_tab-closeEl").click();');
                            End;
                            
                            1
                            2
                            3
                            4
                            5
                            6
                            7
                            8
                            9
                            10
                            11
                            12
                            13
                            14
                            // Make sure to add code blocks to your code group
                            • btnRefreshOnClick:btnRefresh的OnClick事件,重新整理頁面顯示。
                              //JScript
                              //重新整理頁面顯示
                              function btnRefreshOnClick(sender)
                              {
                                //重新更新數據集
                                UgRFDataSet01.Connection = GetRFERP;
                                UgRFDataSet02.Connection = GetRFERP;
                                UgRFDataSet02.SQL.Text = "Select FInterID,FGroupCode,FGroupName,FNote,FTreeKeyID,FTreeParenteID,FAbsoluteIndex From  " + 
                                " Basic_CustGroup Order by FGroupCode";
                                UgRFDataSet02.Open;
                                UgRFDataSet02.First;
                                UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Cust";
                                UgRFDataSet01.Open;
                                //UgDBGrid01.Refresh;
                              }
                              
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              //PasScript
                              //重新整理頁面顯示
                              procedure btnRefreshOnClick(sender: tobject);
                              begin
                                //重新更新數據集
                                UgRFDataSet01.Connection := GetRFERP;
                                UgRFDataSet02.Connection := GetRFERP;
                                UgRFDataSet02.SQL.Text := 'Select FInterID,FGroupCode,FGroupName,FNote,FTreeKeyID,FTreeParenteID,FAbsoluteIndex From  ' + 
                                ' Basic_CustGroup Order by FGroupCode';
                                UgRFDataSet02.Open;
                                UgRFDataSet02.First;
                                UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Cust';
                                UgRFDataSet01.Open;
                                //UgDBGrid01.Refresh;
                              end;
                              
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              // Make sure to add code blocks to your code group
                              • btnShowAllOnClick:btnShowAll的OnClick事件,顯示全部記錄。
                                //JScript
                                //顯示全部
                                function btnShowAllOnClick(sender)
                                {
                                	UgRFDataSet01.Filtered = False;
                                }
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                //PasScript
                                //顯示全部
                                procedure btnShowAllOnClick(sender: tobject);
                                begin
                                	UgRFDataSet01.Filtered := False;
                                end;
                                
                                1
                                2
                                3
                                4
                                5
                                6
                                // Make sure to add code blocks to your code group
                                • UgSweetAlertOnConfirm:UgSweetAlert的OnConfirm事件,用於確認執行刪除客戶資料的操作。
                                  //JScript
                                  function UgSweetAlertOnConfirm(sender)
                                  //刪除客戶資料
                                  {
                                    var AStoredProc,vRAISEMSG,vMSG,i,j;
                                    //預存程序獲取,準備參數
                                    AStoredProc = new TUgRFStroedProc(nil);
                                    AStoredProc.Connection = GETRFERP;
                                    try{
                                      AStoredProc.StoredProcName = "sp_Basic_Cust";
                                      AStoredProc.Prepare;
                                      if (AStoredProc.Prepared)
                                      {
                                        //參數賦值
                                        AStoredProc.ParamByName("FDataID").AsString = UgRFDataSet01.FieldByName("FInterID").AsString;
                                        AStoredProc.ParamByName("Flag").AsString = "Delete";
                                        AStoredProc.ParamByName("FUserCode").AsString = UGMM.Informations.Values["UserFullName"];
                                        if (AStoredProc.FindParam("FMsg") != nil)
                                          AStoredProc.ParamByName("FMsg").AsString = "";
                                        try{
                                          //執行預存程序
                                          AStoredProc.ExecProc;
                                          }
                                         Except{
                                            vRAISEMSG=ExceptionMessage;
                                            //資訊顯示
                                            i = Pos("SQMESSAGE", vRAISEMSG);
                                            j = Pos("[SQL Server]", vRAISEMSG);
                                            vMSG = Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                      
                                  
                                            // 非格式化訊息提示
                                            if (i == 0)
                                            {
                                              ShowSweetAlert(atError,UGMM.LT("提示"),Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                              //Exit;
                                              return;
                                            }
                                          }
                                          btnQueryOnClick(sender);
                                        }
                                      }
                                    finally{
                                      AStoredProc.Free;
                                    }
                                  }
                                  
                                  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
                                  44
                                  45
                                  46
                                  //PasScript
                                  procedure UgSweetAlertOnConfirm(sender: tobject);
                                  //刪除客戶資料
                                  Var
                                    AStoredProc: TUgRFStroedProc;
                                    vRAISEMSG,vMSG: String;
                                    i, j: Integer;
                                  begin
                                    //預存程序獲取,準備參數
                                    AStoredProc := TUgRFStroedProc.Create(nil);
                                    AStoredProc.Connection := GETRFERP;
                                    try
                                      AStoredProc.StoredProcName := 'sp_Basic_Cust';
                                      AStoredProc.Prepare;
                                      if AStoredProc.Prepared then
                                      begin
                                        //參數賦值
                                        AStoredProc.ParamByName('FDataID').AsString := UgRFDataSet01.FieldByName('FInterID').AsString;
                                        AStoredProc.ParamByName('Flag').AsString := 'Delete';
                                        AStoredProc.ParamByName('FUserCode').AsString := UGMM.Informations.Values['UserFullName'];
                                        if AStoredProc.FindParam('FMsg') <> nil then
                                          AStoredProc.ParamByName('FMsg').AsString := '';
                                        try
                                          //執行預存程序
                                          AStoredProc.ExecProc;
                                         Except{ExceptionMessage}
                                            vRAISEMSG:=ExceptionMessage;
                                            //資訊顯示
                                            i := Pos('SQMESSAGE', vRAISEMSG);
                                            j := Pos('[SQL Server]', vRAISEMSG);
                                            vMSG := Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                      
                                  
                                            // 非格式化訊息提示
                                            if i = 0 then
                                            begin
                                              ShowSweetAlert(atError,UGMM.LT('提示'),Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                              Exit;
                                            end;
                                          end;
                                          btnQueryOnClick(sender);
                                      end;
                                    finally
                                      AStoredProc.Free;
                                    end;
                                  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
                                  44
                                  45
                                  46
                                  // Make sure to add code blocks to your code group

                                  # 2.2.5. 多語言設定

                                    點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

                                    收集此頁面視窗中所有需要進行翻譯的詞條(包括程式中設定的多語言專案),點選新增按鈕,根據提示填寫維護。

                                  # 2.2.6. 運行效果

                                  # 2.3. 客戶資料編輯-多筆數據表單

                                    點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為客戶資料編輯的模組,新增的內容樣式如下,主要填寫組別、編號、標題、開發使用者等內容,使用PasScript的使用者編號請填寫為 W-EQ-MOD-2131-1,使用JScript的使用者編號請填寫 W-EQ-MOD-2131-2。填寫完成後,點選儲存按鈕。

                                    選擇剛才建立的標題為客戶資料編輯的模組,點選上方的模組設計按鈕,進入模組設計界面。

                                    客戶資料編輯的頁面設定如下圖。

                                  # 2.3.1. 功能簡述

                                    客戶資料編輯用於對客戶資料的資訊進行詳細設定,其中引用了部分查詢表需要使用的業務員資料、幣種資料、客戶分組、布種資料等數據集資訊,也包括了資料庫圖片的上傳與修改,清除等設定方式。

                                  # 2.3.2. 窗體設定

                                  屬性 取值 說明
                                  Height 607 主窗體的高度(畫素)
                                  Width 850 主窗體的寬度(畫素)

                                  # 2.3.3. 控制元件設定

                                  • 非數據感知控制元件說明

                                    頁面中注意TUgPanel型別的控制元件需要清除Caption屬性中原有的字元內容。

                                  控制元件名稱 控制元件型別 說明
                                  UgPanel01 TUgPanel 面板控制元件,作為佈局容器使用,位於頂部位置
                                  UgGroupBox01 TUgGroupBox 分組框控制元件,作為佈局容器使用,位於Panel下方的置頂位置
                                  Caption:基本資訊
                                  PageControl01 TUgPageControl 頁面控制元件,佔據除頂部空間外所有的位置
                                  在窗體結構與檢視器中單擊選擇UgPageControl01,點選檢視器上方的新增按鈕新增標籤頁TUniabSheet新增四個標籤頁面
                                  tsGeneral TUniTabSheet UgPageControl01中的標籤頁面1
                                  Caption:概覽
                                  tsCustAddrs TUniTabSheet UgPageControl01中的標籤頁面2
                                  Caption:客戶收貨地址
                                  tsCustRelation TUniTabSheet UgPageControl01中的標籤頁面3
                                  Caption:關係人員
                                  tsCustMaterial TUniTabSheet UgPageControl01中的標籤頁面3
                                  Caption:客戶產品
                                  btnFirst TUgBitBtn 首項按鈕,點選跳轉至記錄的首頁
                                  Caption:首項
                                  btnPrior TUgBitBtn 前項按鈕,點選跳轉至記錄的前項
                                  Caption:前項
                                  btnNext TUgBitBtn 後項按鈕,點選跳轉至記錄的後項
                                  Caption:後項
                                  btnLast TUgBitBtn 末項按鈕,點選跳轉至記錄的末項
                                  Caption:末項
                                  btnNew TUgBitBtn 新建按鈕,點選以新建客戶資料
                                  Caption:新建
                                  btnSave TUgBitBtn 儲存按鈕,點選以儲存資料的更改
                                  Caption:儲存
                                  btnDelete TUgBitBtn 刪除按鈕,點選以刪除目前的客戶資料
                                  Caption:刪除
                                  btnUpdate TUgBitBtn 更新按鈕,點選以更新單據中的客戶資料
                                  Caption:更新
                                  btnExit TUgBitBtn 退出按鈕,點選以退出視窗
                                  Caption:退出
                                  UgFileUpload01 TUgUgFileUpload 打開上傳對話方塊
                                  dtsGeneral TUgRFDataSet 客戶資料資訊數據集
                                  dsGeneral TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsGeneral
                                  dtsCustGroup TUgRFDataSet 客戶分組資訊數據集
                                  dsCustGroup TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsCustGroup
                                  dtsInvoiceCust TUgRFDataSet 結帳客戶資訊數據集
                                  dsInvoiceCust TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsInvoiceCust
                                  dtsFDistrict TUgRFDataSet 區域資訊數據集
                                  dsFDistrict TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFDistrict
                                  UgSweetAlert TUgSweetAlert 提示控制元件,根據實際情況使用
                                  UgSweetAlert1 TUgSweetAlert 提示控制元件,根據實際情況使用
                                  UgSweetAlert2 TUgSweetAlert 提示控制元件,根據實際情況使用
                                  • UgGroupBox01數據感知控制元件說明

                                    此頁面中首頁繫結的數據源DataSource為dsGeneral。以下數據感知控制元件需修改每一個控制元件的以下屬性。TUgDBImage、TUgDBCheckBox控制元件型別的除外。

                                  屬性 取值 說明
                                  FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
                                  FieldLabelWidth 60 設定標籤顯示欄位的寬度
                                  數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                  FGroupID 分組 TUgDBLookupComboBox lkupGroupID 列表繫結的數據源
                                  ListSource:dsCustGroup
                                  列表顯示的欄位名
                                  ListField:FGroupName
                                  列表對應返回的欄位值
                                  KeyField: FGroupID
                                  FCustCode 客戶程式碼 TUgDBEdit edFCustCode
                                  FShortName 客戶簡稱 TUgDBEdit edFShortName
                                  FCustName 客戶簡稱 TUgDBEdit edFCustName
                                  FCorporation 法人代表 TUgDBEdit edFCorporation
                                  FInvoiceCustName 結帳客戶 TUgDBLookupComboBox lkupFInvoiceCustName 列表繫結的數據源
                                  ListSource:dsInvoiceCust
                                  列表顯示的欄位名
                                  ListField:FInvoiceCustName
                                  列表對應返回的欄位值
                                  KeyField: FInvoiceCustName
                                  FDistrict 區域 TUgDBLookupComboBox lkupFDistrict 列表繫結的數據源
                                  ListSource:dsFDistrict
                                  列表顯示的欄位名
                                  ListField:FName
                                  列表對應返回的欄位值
                                  KeyField: FName
                                  FForeignName 外語描述 TUgDBEdit edFForeignName
                                  FCustLogo 公司圖示 TUgDBImage CustLogo
                                  FCustomerType 客戶型別 TUgDBRadioGroup rgFCustomerType 設定選項Items.CommaText := '國內客戶,國外客戶'
                                  FfrozenFor 凍結 TUgDBCheckBox chkFforzenFor Caption:凍結
                                  • tsGeneral非數據感知控制元件說明
                                  控制元件名稱 控制元件型別 說明
                                  dtsFCurrency TUgRFDataSet 貨幣資料資訊數據集
                                  dsFCurrency TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFCurrency
                                  dtsEmp TUgRFDataSet 員工資料資訊數據集
                                  dsEmp TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsEmp
                                  dtsInvoiceType TUgRFDataSet 發票型別資訊數據集
                                  dsInvoiceType TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsInvoiceType
                                  dtsSaleType TUgRFDataSet 發票型別資訊數據集
                                  dsSaleType TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsSaleType
                                  dtsPayItem TUgRFDataSet 付款方式資訊數據集
                                  dsPayItem TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsPayItem
                                  dtsSettleName TUgRFDataSet 結算方式資訊數據集
                                  dsSettleName TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsSettleName
                                  • tsGeneral數據感知控制元件說明

                                    此頁面中首頁繫結的數據源DataSource為dsGeneral,以下數據感知控制元件需修改每一個控制元件的以下屬性。TUgDBImage、TUgDBCheckBox控制元件型別的除外。

                                  屬性 取值 說明
                                  FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
                                  FieldLabelWidth 60 設定標籤顯示欄位的寬度
                                  數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                  FCurrencyID 幣別 TUgDBLookupComboBox lkupFCurrencyID 列表繫結的數據源
                                  ListSource:dsFCurrency
                                  列表顯示的欄位名
                                  ListField:FCurrencyName
                                  列表對應返回的欄位值
                                  KeyField: FCurrencyID
                                  FExchangeRate 匯率 TUgDBEdit edFExchangeRate
                                  FEmpName 業務員 TUgDBLookupComboBox lkupFEmpName 列表繫結的數據源
                                  ListSource:dsEmp
                                  列表顯示的欄位名
                                  ListField:FEmpName
                                  列表對應返回的欄位值
                                  KeyField: FEmpName
                                  FDeptName 部門名稱 TUgDBEdit edFDeptName 設定此控制元件為只讀
                                  ReadOnly:True
                                  FPhone1 電話1 TUgDBEdit edFPhone1
                                  FPhone2 電話2 TUgDBEdit edFPhone2
                                  FContacts 聯繫人 TUgDBEdit edFContacts
                                  FFax 傳真 TUgDBEdit edFFax
                                  FTel 行動電話 TUgDBEdit edFTel
                                  FZipCode 郵政編碼 TUgDBEdit edFZipCode
                                  FEmail 電子郵箱 TUgDBEdit edFEmail
                                  FSaleType 銷售型別 TUgDBLookupComboBox lkupFSaleType 列表繫結的數據源
                                  ListSource:dsSaleType
                                  列表顯示的欄位名
                                  ListField:FName
                                  列表對應返回的欄位值
                                  KeyField: FName
                                  FInvoiceType 發票型別 TUgDBLookupComboBox lkupFInvoiceType 列表繫結的數據源
                                  ListSource:dsInvoiceType
                                  列表顯示的欄位名
                                  ListField:FName
                                  列表對應返回的欄位值
                                  KeyField: FName
                                  FCreditLine 信用額度 TUgDBEdit edFCreditLine
                                  FCreditLineDay 信用天數 TUgDBEdit edFCreditLineDay
                                  FAddress 地址 TUgDBEdit edFAddress
                                  FHouseBank 開戶銀行 TUgDBEdit edFHouseBank
                                  FHouseBnkAct 開戶帳號 TUgDBEdit edFHouseBnkAct
                                  FTaxCode 稅號 TUgDBEdit edFTaxCode
                                  FPayItemName 付款方式 TUgDBLookupComboBox lkupFPayItemName 列表繫結的數據源
                                  ListSource:dsPayItem
                                  列表顯示的欄位名
                                  ListField:FName
                                  列表對應返回的欄位值
                                  KeyField: FName
                                  FSettleName 結算方式 TUgDBLookupComboBox lkupFPayItemName 列表繫結的數據源
                                  ListSource:dsSettle
                                  列表顯示的欄位名
                                  ListField:FName
                                  列表對應返回的欄位值
                                  KeyField: FName
                                  FNote 備註 TUgDBMemo mmFNote
                                  FCreater 建立使用者 TUgDBEdit edCreater
                                  FLstModDate 最後修改日期 TUgDBEdit edLstModDate 此控制元件需設定FieldLabelWidth請保持預設值100,如改為60文字顯示內容狹小
                                  • tsCustAddrs控制元件說明
                                  控制元件名稱 控制元件型別 說明
                                  dtsCustAddrs TUgRFDataSet 客戶收貨地址資料資訊數據集
                                  dsCustAddrs TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsCustAddrs
                                  UgContainerPanel01 TUgContainerPanel 頁面中置頂的佈局控制元件容器,用於放置按鈕
                                  UgPanel02 TUgPanel 頁面中置右的佈局控制元件容器,用於放置數據感知控制元件
                                  btnCustAddrsAppendRow TUgBitBtn 新增行按鈕
                                  Caption:新增行
                                  btnCustAddrsDelRow TUgBitBtn 刪除行按鈕
                                  Caption:刪除行
                                  dgCustAddress TUgDBGrid 客戶收貨地址表格
                                  DataSource:dsCustAddrs
                                  • tsCutsAddrs數據控制元件說明

                                    此頁面中首頁繫結的數據源DataSource為dsCustAddrs,以下數據感知控制元件需修改每一個控制元件的以下屬性。

                                  屬性 取值 說明
                                  FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
                                  FieldLabelWidth 60 設定標籤顯示欄位的寬度
                                  數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                  FCompany 收貨公司 TUgDBEdit edCustAddressFCompany
                                  FAddress 公司地址 TUgDBEdit edCustAddressFAddress
                                  FPerson 收貨人 TUgDBEdit edFPerson
                                  FFax 傳真 TUgDBEdit edCustAddressFFax
                                  FPhone 電話 TUgDBEdit edCustAddressFPhone
                                  FEMail 郵箱 TUgDBEdit edCustAddressFEMail
                                  • dgCustAddress欄位設定

                                    選擇並雙擊dgCustAddress控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                  • tsCustRelation控制元件說明
                                  控制元件名稱 控制元件型別 說明
                                  dtsCustRelation TUgRFDataSet 關係人員資訊數據集
                                  dsCustRelation TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsCustRelation
                                  UgContainerPanel03 TUgPanel 頁面中置頂的佈局控制元件容器,用於放置按鈕
                                  btnCustRelationAppendRow TUgBitBtn 新增行按鈕
                                  Caption:新增行
                                  btnCustRelationDelRow TUgBitBtn 刪除行按鈕
                                  Caption:刪除行
                                  dgCustRelation TUgDBGrid 關係人員表格
                                  DataSource:dsCustRelation
                                  • tsCustRelation數據控制元件說明

                                    此頁面中首頁繫結的數據源DataSource為dsCustRelation,以下數據感知控制元件需修改每一個控制元件的以下屬性。

                                  屬性 取值 說明
                                  FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
                                  FieldLabelWidth 60 設定標籤顯示欄位的寬度
                                  數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                  FEmpName 姓名 TUgDBEdit edCustRelationFEmpName
                                  FSex 性別 TUgDBComboBox cbCustRealtionFSex
                                  FBirthDate 出生日期 TUgDBDateTimePicker dtpCustRelationFBirthdate
                                  FWeddingDate 結婚日期 TUgDBDateTimePicker dtpCustRelationFWeddingDate
                                  FNativePlace 籍貫 TUgDBEdit edCustRelationFNativePlace
                                  FDeptName 部門 TUgDBEdit edCustRelationFDeptName
                                  FPosition 部門 TUgDBEdit edCustRelationFPosition
                                  FInfluence 影響力 TUgDBEdit edCustRelationFInfluence
                                  FTel 行動電話 TUgDBEdit edCustRelationFTel
                                  FFax 傳真號碼 TUgDBEdit edCustRelationFFax
                                  FPhone 電話號碼 TUgDBEdit edCustRelationFPhone
                                  FEMail 郵箱 TUgDBEdit edCustRelationFEMail
                                  FCharacter 性格 TUgDBEdit edCustRelationFCharacter
                                  • dgCustRelation欄位設定

                                    選擇並雙擊dgCustRelation控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                  • tsCustMaterial控制元件說明

                                    頁面中注意修改TBitBtn型別的控制元件的文字大小Font.Size屬性為12,TPanel型別的控制元件需要清除Caption屬性中原有的字元內容。

                                  控制元件名稱 控制元件型別 說明
                                  dtsCustMaterial TUgRFDataSet 客戶產品資訊數據集
                                  dsCustMaterial TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsCustMaterial
                                  UgContainerPanel04 TUgPanel 頁面中置頂的佈局控制元件容器,用於放置按鈕
                                  UgContainerPanel05 TUgPanel 頁面中置右的佈局控制元件容器,用於放置數據感知控制元件
                                  btnCustMaterialAppendRow TUgBitBtn 新增行按鈕
                                  Caption:新增行
                                  btnCustMaterialDelRow TUgBitBtn 刪除行按鈕
                                  Caption:刪除行
                                  dgCustMaterial TUgDBGrid 關係人員表格
                                  DataSource:dsCustMaterial
                                  dtsItem TUgRFDataSet 物料資訊數據集
                                  dsItem TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsItem
                                  • tsCustRelation數據控制元件說明

                                    此頁面中首頁繫結的數據源DataSource為dsCustMaterial,以下數據感知控制元件需修改每一個控制元件的以下屬性。

                                  屬性 取值 說明
                                  FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
                                  FieldLabelWidth 85 設定標籤顯示欄位的寬度
                                  數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                  FCustItemCode 客戶物料程式碼 TUgDBEdit edCustMaterialFCustItemCode
                                  FCustItemName 客戶物料名稱 TUgDBEdit edCustMaterialFCustItemName
                                  FItemCode 物料程式碼 TUgDBLookupComboBox lkupCustMaterialFItemCode 列表繫結的數據源
                                  ListSource:dsItem
                                  列表顯示的欄位名
                                  ListField:FItemCode
                                  列表對應返回的欄位值
                                  KeyField: FItemCode
                                  FItemName 物料名稱 TUgDBLookupComboBox lkupCustMaterialFItemName 列表繫結的數據源
                                  ListSource:dsItem
                                  列表顯示的欄位名
                                  ListField:FItemName
                                  列表對應返回的欄位值
                                  KeyField: FItemName
                                  FItemSpec 規格 TUgDBEdit edCustMaterialFItemSpec
                                  FStandPrice 標準價 TUgDBEdit edCustMaterialFStandPrice
                                  FSalePrice 銷售價 TUgDBEdit edCustMaterialFSalePrice
                                  FWhUnit 庫存單位 TUgDBEdit edCustMaterialFWhUnit
                                  FPackMethod 包裝方式 TUgEdit edMaterialCustFPackMethod
                                  FPackQty 包裝數量 TUgEdit edCustMaterialFPackQty
                                  FPackUnit 包裝單位 TUgEdit edCustMaterialFPackUnit
                                  FNote 備註 TMemo edCustMaterialFPackUnit
                                  • dgCustMaterial欄位設定

                                    選擇並雙擊dgCustMaterial控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                  # 2.3.4. 程式設計

                                    在初始設定程式時,使用JScript使用者需勾選pub_js_tarslink與pub_js_messageinfo單元,使用PasScript的使用者請勾選pub_pas_tarslink與pub_pas_messageinfo單元。

                                  • 初始設定:設定顯示數據集的初始化內容。(僅限PasScript)
                                  Begin
                                    //客戶分類查詢表
                                    dtsCustGroup.Connection := GetRFERP;
                                    dtsCustGroup.SQL.Text := 'SELECT FInterID AS FGroupID,FGroupName FROM Basic_CustGroup';
                                    dtsCustGroup.Open;
                                    
                                    //結帳客戶查詢表
                                    dtsInvoiceCust.Connection := GetRFERP;
                                    dtsInvoiceCust.SQL.Text := 'SELECT FInterID AS FInVoiceCustID,FCustCode AS FInvoiceCustCode,FCustName AS ' + 
                                    'FInvoiceCustName FROM Basic_Cust';
                                    dtsInvoiceCust.Open; 
                                    
                                    //區域
                                    dtsFDistrict.Connection := GetRFERP;
                                    dtsFDistrict.SQL.Text := 'SELECT a.FName,a.FCode '
                                  	+ 'FROM dbo.Basic_CommonData A '
                                  	+ 'INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID '
                                  	+ 'WHERE b.FDataName = ''' + UGMM.LT('地區') + '''';
                                    dtsFDistrict.Open; 
                                    
                                    //業務員
                                    dtsEmp.Connection := GetRFERP;
                                    dtsEmp.SQL.Text := 'SELECT FInterID AS FEmpID,FEmpCode,FEmpName,FDeptID,FDeptCode,FDeptName FROM Basic_Employee';
                                    dtsEmp.Open;
                                    
                                    //幣種資料
                                    dtsCurrency.Connection := GetRFERP;
                                    dtsCurrency.SQL.Text := 'SELECT FCode as FCurrencyCode,FName as FCurrencyName,FInterID AS FCurrencyID,FExRate AS '+ 
                                    'FExchangeRate FROM Basic_Currency';
                                    dtsCurrency.Open;
                                    
                                    //銷售型別
                                    dtsSaleType.Connection := GetRFERP;
                                    dtsSaleType.SQL.Text := 'SELECT a.FName,a.FInterID '
                                  	+ 'FROM dbo.Basic_CommonData A '
                                  	+ 'INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID '
                                  	+ 'WHERE b.FDataName = ''' + UGMM.LT('銷售型別') + '''';
                                    dtsSaleType.Open;
                                    
                                    //發票型別
                                    dtsInvoiceType.Connection := GetRFERP;
                                    dtsInvoiceType.SQL.Text := 'SELECT a.FName,a.FInterID '
                                  	+ 'FROM dbo.Basic_CommonData A '
                                  	+ 'INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID '
                                  	+ 'WHERE b.FDataName = ''' + UGMM.LT('發票型別') + '''';
                                    dtsInvoiceType.Open;
                                    
                                    //付款方式
                                    dtsPayItem.Connection := GetRFERP;
                                    dtsPayItem.SQL.Text := 'SELECT a.FName,a.FInterID '
                                  	+ 'FROM dbo.Basic_CommonData A '
                                  	+ 'INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID '
                                  	+ 'WHERE b.FDataName = ''' + UGMM.LT('付款方式') + '''';
                                    dtsPayItem.Open;
                                    
                                    //結算方式
                                    dtsSettle.Connection := GetRFERP;
                                    dtsSettle.SQL.Text := 'SELECT a.FName,a.FInterID '
                                  	+ 'FROM dbo.Basic_CommonData A '
                                  	+ 'INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID '
                                  	+ 'WHERE b.FDataName = ''' + UGMM.LT('結算方式') + '''';
                                    dtsSettle.Open;
                                    
                                    //物料資訊
                                    dtsItem.Connection := GetRFERP;
                                    dtsItem.SQL.Text := 'select A.FInterID as FItemID,A.FItemCode,A.FItemName,A.FItemSpec,A.FUnitID,A.FUnitCode,A.FUnitName, '
                                  	+ 'b.FCoefficient,dbo.fun_GetPY(A.FItemName) as PY from Basic_Item A  '
                                  	+ 'left join basic_Unit B on a.FUnitID = b.FInterID '
                                  	+ 'left join Basic_ItemGroup c on a.FGroupID = c.FInterID '
                                  	+ 'where A.FTypeID=1  and isnull(FfrozenFor,0) = 0 '
                                  	+ 'Order by FItemCode';
                                    dtsItem.Open;
                                    //分組型別的初始化設定
                                    rgFCustomerType.Items.CommaText := UGMM.LT('國內客戶,國外客戶');
                                  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
                                  44
                                  45
                                  46
                                  47
                                  48
                                  49
                                  50
                                  51
                                  52
                                  53
                                  54
                                  55
                                  56
                                  57
                                  58
                                  59
                                  60
                                  61
                                  62
                                  63
                                  64
                                  65
                                  66
                                  67
                                  68
                                  69
                                  70
                                  71
                                  72
                                  73
                                  74
                                  75
                                  • UpdateCustDetail:用於更新客戶資料的明細資訊。
                                    //JScript
                                    //更新客戶資料的其他明細資訊
                                    function UpdateCustDetail()
                                    {
                                      //客戶收貨地址更新
                                    	if (dtsCustAddrs.RowCount > 0)
                                      {
                                          dtsCustAddrs.Edit;
                                        	dtsCustAddrs.Post;
                                         	dtsCustAddrs.ApplyUpdates(-1);      
                                      }
                                      //客戶關係更新    
                                    	if (dtsCustRelation.RowCount > 0)
                                      {
                                        dtsCustRelation.Edit;
                                        dtsCustRelation.Post;
                                        dtsCustRelation.ApplyUpdates(-1);
                                      }
                                      //客產品更新    
                                    	if (dtsCustMaterial.RowCount > 0)
                                      {
                                        dtsCustMaterial.Edit;
                                        dtsCustMaterial.Post;
                                        dtsCustMaterial.ApplyUpdates(-1);
                                      }
                                    }
                                    
                                    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
                                    //PasScript
                                    //更新客戶資料的其他明細資訊
                                    Procedure UpdateCustDetail;
                                    Begin
                                      //客戶收貨地址更新
                                    	if dtsCustAddrs.RowCount > 0 Then
                                      Begin
                                          dtsCustAddrs.Edit;
                                        	dtsCustAddrs.Post;
                                         	dtsCustAddrs.ApplyUpdates(-1);      
                                    	End;
                                      //客戶關係更新    
                                    	if dtsCustRelation.RowCount > 0 Then
                                      Begin
                                        dtsCustRelation.Edit;
                                        dtsCustRelation.Post;
                                        dtsCustRelation.ApplyUpdates(-1);
                                    	End;
                                      //客產品更新    
                                    	if dtsCustMaterial.RowCount > 0 Then
                                      Begin
                                        dtsCustMaterial.Edit;
                                        dtsCustMaterial.Post;
                                        dtsCustMaterial.ApplyUpdates(-1);
                                    	End;
                                    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
                                    // Make sure to add code blocks to your code group
                                    • GetVarNo:用於更新序號計數資訊。
                                      //JScript
                                      //更新序號計數
                                      function GetvarNo(AUgRFDataSet)
                                      {
                                        if (AUgRFDataSet.IsEmpty)
                                        {
                                        	Result = 0;
                                          return;
                                          //Exit;
                                        }
                                      	AUgRFDataSet.Last;
                                        Result = AUgRFDataSet.FieldByName("FEntryID").AsInteger;
                                      }
                                      
                                      1
                                      2
                                      3
                                      4
                                      5
                                      6
                                      7
                                      8
                                      9
                                      10
                                      11
                                      12
                                      13
                                      //PasScript
                                      //更新序號計數
                                      Function GetVarNo(AUgRFDataSet: TUgRFDataSet):Integer;
                                      Begin
                                        if AUgRFDataSet.IsEmpty Then
                                        Begin
                                        	Result := 0;
                                          Exit;
                                        End;
                                      	AUgRFDataSet.Last;
                                        Result := AUgRFDataSet.FieldByName('FEntryID').AsInteger;
                                      End;
                                      
                                      1
                                      2
                                      3
                                      4
                                      5
                                      6
                                      7
                                      8
                                      9
                                      10
                                      11
                                      12
                                      // Make sure to add code blocks to your code group
                                      • btnCloseOnClick:btnClose的OnClick事件,點選以關閉目前視窗頁面。
                                        //JScript
                                        //關閉視窗
                                        function btnCloseOnClick(sender)
                                        {
                                          var p;
                                          p = Self.Parent;
                                          if (p is TUgWebForm){
                                            TUgWebForm(p).Close;
                                            }
                                          if (p is TUniTabSheet)
                                            UniSession.AddJS("document.getElementById(\"" + TUniTabSheet(p).jsid + "_tab-closeEl\").click();");
                                        }
                                        
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        //PasScript
                                        //關閉視窗
                                        procedure btnCloseOnClick(sender: tobject);
                                        Var
                                          p:TComponent;
                                        Begin
                                          p:=Self.Parent;
                                          if p is TUgWebForm then
                                          TUgWebForm(p).Close;
                                          if p is TUniTabSheet then
                                          UniSession.AddJS('document.getElementById("' + TUniTabSheet(p).jsid + '_tab-closeEl").click();');
                                        End;
                                        
                                        1
                                        2
                                        3
                                        4
                                        5
                                        6
                                        7
                                        8
                                        9
                                        10
                                        11
                                        12
                                        // Make sure to add code blocks to your code group
                                        • lkupFInvoiceCustNameOnChange:lkupFInvoiceCustName的OnChange事件,修改結帳客戶名稱的時候變更對應關聯的欄位。
                                          //JScript
                                          //修改結帳客戶名稱時同時更新結帳客戶的ID與代號
                                          function lkupFInvoiceCustNameOnChange(sender)
                                          {
                                            dtsGeneral.Edit;  
                                            dtsGeneral.FieldByName("FInvoiceCustID").AsString = dtsInvoiceCust.FieldByName("FInVoiceCustID").AsString;
                                            dtsGeneral.FieldByName("FInvoiceCustCode").AsString = dtsInvoiceCust.FieldByName("FInVoiceCustCode").AsString;
                                          }
                                          
                                          1
                                          2
                                          3
                                          4
                                          5
                                          6
                                          7
                                          8
                                          //PasScript
                                          //修改結帳客戶名稱時同時更新結帳客戶的ID與代號
                                          procedure lkupFInvoiceCustNameOnChange(sender: tobject);
                                          begin
                                            dtsGeneral.Edit;  
                                            dtsGeneral.FieldByName('FInvoiceCustID').AsString := dtsInvoiceCust.FieldByName('FInVoiceCustID').AsString;
                                            dtsGeneral.FieldByName('FInvoiceCustCode').AsString := dtsInvoiceCust.FieldByName('FInVoiceCustCode').AsString;
                                          end;
                                          
                                          1
                                          2
                                          3
                                          4
                                          5
                                          6
                                          7
                                          8
                                          // Make sure to add code blocks to your code group
                                          • lkupFEmpNameOnChange:lkupFEmpName的OnChange事件,修改業務員同時更新ID,程式碼,部門ID,程式碼與名稱。
                                            //JScript
                                            //修改業務員同時更新ID,程式碼,部門ID,程式碼與名稱
                                            function lkupFEmpNameOnChange(sender)
                                            {
                                              dtsGeneral.Edit;
                                              dtsGeneral.FieldByName("FEmpID").AsString = dtsEmp.FieldByName("FEmpID").AsString;
                                              dtsGeneral.FieldByName("FEmpCode").AsString = dtsEmp.FieldByName("FEmpCode").AsString; 
                                              dtsGeneral.FieldByName("FDeptID").AsString = dtsEmp.FieldByName("FDeptID").AsString;
                                              dtsGeneral.FieldByName("FDeptCode").AsString = dtsEmp.FieldByName("FDeptCode").AsString;
                                              dtsGeneral.FieldByName("FDeptName").AsString = dtsEmp.FieldByName("FDeptName").AsString;
                                            }
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            6
                                            7
                                            8
                                            9
                                            10
                                            11
                                            //PasScript
                                            //修改業務員同時更新ID,程式碼,部門ID,程式碼與名稱
                                            procedure lkupFEmpNameOnChange(sender: tobject);
                                            begin
                                              dtsGeneral.Edit;
                                              dtsGeneral.FieldByName('FEmpID').AsString := dtsEmp.FieldByName('FEmpID').AsString;
                                              dtsGeneral.FieldByName('FEmpCode').AsString := dtsEmp.FieldByName('FEmpCode').AsString; 
                                              dtsGeneral.FieldByName('FDeptID').AsString := dtsEmp.FieldByName('FDeptID').AsString;
                                              dtsGeneral.FieldByName('FDeptCode').AsString := dtsEmp.FieldByName('FDeptCode').AsString;
                                              dtsGeneral.FieldByName('FDeptName').AsString := dtsEmp.FieldByName('FDeptName').AsString;
                                            end;
                                            
                                            1
                                            2
                                            3
                                            4
                                            5
                                            6
                                            7
                                            8
                                            9
                                            10
                                            11
                                            // Make sure to add code blocks to your code group
                                            • lkupFExchangeRateOnChange:lkupFExchangeRate的OnChange事件,修改幣種時更新對應的ID與程式碼。
                                              //JScript
                                              //修改幣種時更新對應的ID與程式碼
                                              function lkupFExchangeRateOnChange(sender)
                                              {
                                                dtsGeneral.Edit;
                                                dtsGeneral.FieldByName("FCurrencyCode").AsString = dtsEmp.FieldByName("FEmpID").AsString;
                                                dtsGeneral.FieldByName("FCurrencyName").AsString = dtsEmp.FieldByName("FEmpCode").AsString; 
                                              }
                                              
                                              1
                                              2
                                              3
                                              4
                                              5
                                              6
                                              7
                                              8
                                              //PasScript
                                              //修改幣種時更新對應的ID與程式碼
                                              procedure lkupFExchangeRateOnChange(sender: tobject);
                                              begin
                                                dtsGeneral.Edit;
                                                dtsGeneral.FieldByName('FCurrencyCode').AsString := dtsEmp.FieldByName('FEmpID').AsString;
                                                dtsGeneral.FieldByName('FCurrencyName').AsString := dtsEmp.FieldByName('FEmpCode').AsString; 
                                              end;
                                              
                                              1
                                              2
                                              3
                                              4
                                              5
                                              6
                                              7
                                              8
                                              // Make sure to add code blocks to your code group
                                              • lkupCustMaterialFItemCodeOnChange:lkupCustMaterialFItemCode的OnChange事件,用於選擇布種時更新對應的布種資料資訊。
                                                //JScript
                                                //更新布種資料
                                                function lkupCustMaterialFItemCodeOnChange(sender)
                                                {
                                                  dtsCustMaterial.Edit;
                                                  dtsCustMaterial.FieldByName("FItemID").AsString = dtsItem.FieldByName("FItemID").AsString;
                                                  dtsCustMaterial.FieldByName("FItemCode").AsString = dtsItem.FieldByName("FItemCode").AsString; 
                                                  dtsCustMaterial.FieldByName("FItemName").AsString = dtsItem.FieldByName("FItemName").AsString;
                                                }
                                                
                                                1
                                                2
                                                3
                                                4
                                                5
                                                6
                                                7
                                                8
                                                9
                                                //PasScript
                                                //更新布種資料
                                                procedure lkupCustMaterialFItemCodeOnChange(sender: tobject);
                                                begin
                                                  dtsCustMaterial.Edit;
                                                  dtsCustMaterial.FieldByName('FItemID').AsString := dtsItem.FieldByName('FItemID').AsString;
                                                  dtsCustMaterial.FieldByName('FItemCode').AsString := dtsItem.FieldByName('FItemCode').AsString; 
                                                  dtsCustMaterial.FieldByName('FItemName').AsString := dtsItem.FieldByName('FItemName').AsString;
                                                end;
                                                
                                                1
                                                2
                                                3
                                                4
                                                5
                                                6
                                                7
                                                8
                                                9
                                                // Make sure to add code blocks to your code group
                                                • lkupCustMaterialFItemNameOnChange:lkupCustMaterialFItemName的OnChange事件,用於選擇時更新布種資料。
                                                  //JScript
                                                  //更新布種資料
                                                  function lkupCustMaterialFItemNameOnChange(sender)
                                                  {
                                                    dtsCustMaterial.Edit;
                                                    dtsCustMaterial.FieldByName("FItemID").AsString = dtsItem.FieldByName("FItemID").AsString;
                                                    dtsCustMaterial.FieldByName("FItemCode").AsString = dtsItem.FieldByName("FItemCode").AsString; 
                                                    dtsCustMaterial.FieldByName("FItemName").AsString = dtsItem.FieldByName("FItemName").AsString;
                                                  }
                                                  
                                                  1
                                                  2
                                                  3
                                                  4
                                                  5
                                                  6
                                                  7
                                                  8
                                                  9
                                                  //PasScript
                                                  //更新布種資料
                                                  procedure lkupCustMaterialFItemNameOnChange(sender: tobject);
                                                  begin
                                                    dtsCustMaterial.Edit;
                                                    dtsCustMaterial.FieldByName('FItemID').AsString := dtsItem.FieldByName('FItemID').AsString;
                                                    dtsCustMaterial.FieldByName('FItemCode').AsString := dtsItem.FieldByName('FItemCode').AsString; 
                                                    dtsCustMaterial.FieldByName('FItemName').AsString := dtsItem.FieldByName('FItemName').AsString;
                                                  end;
                                                  
                                                  1
                                                  2
                                                  3
                                                  4
                                                  5
                                                  6
                                                  7
                                                  8
                                                  9
                                                  // Make sure to add code blocks to your code group
                                                  • btnCustAddressAppendRowOnClick:btnCustAddressAppendRow的OnClick事件,客戶地址新增,產生ID。
                                                    //JScript
                                                    //客戶地址新增,產生ID
                                                    function btnCustAddressAppendRowOnClick(sender)
                                                    {
                                                      var vcount;
                                                    	vcount = GetvarNo(dtsCustAddrs);
                                                      dtsCustAddrs.Append;
                                                      dtsCustAddrs.FieldByName("FInterID").AsString = dtsGeneral.FieldByName("FInterID").AsString;
                                                      dtsCustAddrs.FieldByName("FEntryID").AsInteger = vcount + 1;
                                                    }
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    //PasScript
                                                    //客戶地址新增,產生ID
                                                    procedure btnCustAddressAppendRowOnClick(sender: tobject);
                                                    var 
                                                    	vcount: Integer;
                                                    begin	
                                                    	vcount := GetVarNo(dtsCustAddrs);
                                                      dtsCustAddrs.Append;
                                                      dtsCustAddrs.FieldByName('FInterID').AsString := dtsGeneral.FieldByName('FInterID').AsString;
                                                      dtsCustAddrs.FieldByName('FEntryID').AsInteger := vcount + 1;
                                                    end;
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    // Make sure to add code blocks to your code group
                                                    • btnCustAddressDeleteRowOnClick:btnCustAddressDeleteRow的OnClick事件,設定時客戶地址會被刪除。
                                                      //JScript
                                                      //客戶地址刪除
                                                      function btnCustAddressDeleteRowOnClick(sender)
                                                      {
                                                        dtsCustAddrs.Delete;
                                                      }
                                                      
                                                      1
                                                      2
                                                      3
                                                      4
                                                      5
                                                      6
                                                      //PasScript
                                                      //客戶地址刪除
                                                      procedure btnCustAddressDeleteRowOnClick(sender: tobject);
                                                      begin
                                                        dtsCustAddrs.Delete;
                                                      end;
                                                      
                                                      1
                                                      2
                                                      3
                                                      4
                                                      5
                                                      6
                                                      // Make sure to add code blocks to your code group
                                                      • btnCustRelationAppendRowOnClick:btnCustRelationAppendRow的OnClick事件,客戶關係新增,產生ID。
                                                        //JScript
                                                        //客戶關係新增,產生ID
                                                        function btnCustRelationAppendRowOnClick(sender)
                                                        {
                                                          var vcount;
                                                        	vcount = GetvarNo(dtsCustRelation);
                                                          dtsCustRelation.Append;
                                                          dtsCustRelation.Edit;
                                                          dtsCustRelation.FieldByName("FInterID").AsString = dtsGeneral.FieldByName("FInterID").AsString;
                                                          dtsCustRelation.FieldByName("FEntryID").AsInteger = vcount + 1;  
                                                        }
                                                        
                                                        1
                                                        2
                                                        3
                                                        4
                                                        5
                                                        6
                                                        7
                                                        8
                                                        9
                                                        10
                                                        11
                                                        //PasScript
                                                        //客戶關係新增,產生ID
                                                        procedure btnCustRelationAppendRowOnClick(sender: tobject);
                                                        Var
                                                        	vcount: Integer;
                                                        begin
                                                        	vcount := GetVarNo(dtsCustRelation);
                                                          dtsCustRelation.Append;
                                                          dtsCustRelation.Edit;
                                                          dtsCustRelation.FieldByName('FInterID').AsString := dtsGeneral.FieldByName('FInterID').AsString;
                                                          dtsCustRelation.FieldByName('FEntryID').AsInteger := vcount + 1;  
                                                        end;
                                                        
                                                        1
                                                        2
                                                        3
                                                        4
                                                        5
                                                        6
                                                        7
                                                        8
                                                        9
                                                        10
                                                        11
                                                        12
                                                        // Make sure to add code blocks to your code group
                                                        • btnCustRelationDeleteRowOnClick:btnCustRelationDeleteRow的OnClick事件,客戶關係的刪除。
                                                          //JScript
                                                          //客戶關係刪除
                                                          function btnCustRelationDeleteRowOnClick(sender)
                                                          {
                                                            dtsCustRelation.Delete;
                                                          }
                                                          
                                                          
                                                          1
                                                          2
                                                          3
                                                          4
                                                          5
                                                          6
                                                          7
                                                          //PasScript
                                                          //客戶關係刪除
                                                          procedure btnCustRelationDeleteRowOnClick(sender: tobject);
                                                          begin
                                                            dtsCustRelation.Delete;
                                                          end;
                                                          
                                                          1
                                                          2
                                                          3
                                                          4
                                                          5
                                                          6
                                                          // Make sure to add code blocks to your code group
                                                          • btnCustMaterialAppendRowOnClick:btnCustMaterialAppendRow的OnClick事件,客戶產品新增,產生ID。
                                                            //JScript
                                                            //客戶產品新增,產生ID
                                                            function btnCustMaterialAppendRowOnClick(sender)
                                                            {
                                                              var vcount;
                                                            	vcount = GetvarNo(dtsCustMaterial);
                                                              dtsCustMaterial.Append;
                                                              dtsCustMaterial.FieldByName("FInterID").AsString = dtsGeneral.FieldByName("FInterID").AsString;
                                                              dtsCustMaterial.FieldByName("FEntryID").AsInteger = vcount + 1;
                                                            }
                                                            
                                                            1
                                                            2
                                                            3
                                                            4
                                                            5
                                                            6
                                                            7
                                                            8
                                                            9
                                                            10
                                                            //PasScript
                                                            //客戶產品新增,產生ID
                                                            procedure btnCustMaterialAppendRowOnClick(sender: tobject);
                                                            var
                                                            	vcount: Integer;
                                                            begin
                                                            	vcount := GetVarNo(dtsCustMaterial);
                                                              dtsCustMaterial.Append;
                                                              dtsCustMaterial.FieldByName('FInterID').AsString := dtsGeneral.FieldByName('FInterID').AsString;
                                                              dtsCustMaterial.FieldByName('FEntryID').AsInteger := vcount + 1;
                                                            end;
                                                            
                                                            1
                                                            2
                                                            3
                                                            4
                                                            5
                                                            6
                                                            7
                                                            8
                                                            9
                                                            10
                                                            11
                                                            // Make sure to add code blocks to your code group
                                                            • btnCustMaterialDeletRowOnClick:btnCustMaterialDeletRow的OnClick事件,客戶產品刪除。
                                                              //JScript
                                                              //客戶產品刪除
                                                              function btnCustMaterialDeletRowOnClick(sender)
                                                              {
                                                                dtsCustMaterial.Delete;
                                                              }
                                                              
                                                              
                                                              1
                                                              2
                                                              3
                                                              4
                                                              5
                                                              6
                                                              7
                                                              //PasScript
                                                              //客戶產品刪除
                                                              procedure btnCustMaterialDeletRowOnClick(sender: tobject);
                                                              begin
                                                                dtsCustMaterial.Delete;
                                                              end;
                                                              
                                                              1
                                                              2
                                                              3
                                                              4
                                                              5
                                                              6
                                                              // Make sure to add code blocks to your code group
                                                              • btnFirstOnClick:btnFirst的OnClick事件,記錄定位至首條。
                                                                //JScript
                                                                //顯示首條記錄
                                                                function btnFirstOnClick(sender)
                                                                {
                                                                  //主數據集更新,同步更新明細數據集
                                                                  dtsGeneral.First;
                                                                  dtsCustAddrs.Close;
                                                                  dtsCustRelation.Close;
                                                                  dtsCustMaterial.Close;
                                                                  dtsCustAddrs.SQL.Text = "SELECT * FROM Basic_CustAddrs WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                  dtsCustRelation.SQL.Text = "SELECT * FROM Basic_CustRelation WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                  dtsCustMaterial.SQL.Text = "SELECT * FROM Basic_CustMaterial WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                  dtsCustAddrs.Open;
                                                                  dtsCustRelation.Open;
                                                                  dtsCustMaterial.Open;
                                                                }
                                                                
                                                                1
                                                                2
                                                                3
                                                                4
                                                                5
                                                                6
                                                                7
                                                                8
                                                                9
                                                                10
                                                                11
                                                                12
                                                                13
                                                                14
                                                                15
                                                                16
                                                                //PasScript
                                                                //顯示首條記錄
                                                                procedure btnFirstOnClick(sender: tobject);
                                                                begin
                                                                  //主數據集更新,同步更新明細數據集
                                                                  dtsGeneral.First;
                                                                  dtsCustAddrs.Close;
                                                                  dtsCustRelation.Close;
                                                                  dtsCustMaterial.Close;
                                                                  dtsCustAddrs.SQL.Text := 'SELECT * FROM Basic_CustAddrs WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                  dtsCustRelation.SQL.Text := 'SELECT * FROM Basic_CustRelation WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                  dtsCustMaterial.SQL.Text := 'SELECT * FROM Basic_CustMaterial WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                  dtsCustAddrs.Open;
                                                                  dtsCustRelation.Open;
                                                                  dtsCustMaterial.Open;
                                                                end;
                                                                
                                                                1
                                                                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
                                                                • btnPriorOnClick:btnPrior的OnClick事件,記錄定位至上一條。
                                                                  //JScript
                                                                  //顯示上一條記錄
                                                                  function btnPriorOnClick(sender)
                                                                  {
                                                                    dtsGeneral.Prior;
                                                                    dtsCustAddrs.Close;
                                                                    dtsCustRelation.Close;
                                                                    dtsCustMaterial.Close;
                                                                    dtsCustAddrs.SQL.Text = "SELECT * FROM Basic_CustAddrs WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                    dtsCustRelation.SQL.Text = "SELECT * FROM Basic_CustRelation WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                    dtsCustMaterial.SQL.Text = "SELECT * FROM Basic_CustMaterial WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                    dtsCustAddrs.Open;
                                                                    dtsCustRelation.Open;
                                                                    dtsCustMaterial.Open;
                                                                  }
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8
                                                                  9
                                                                  10
                                                                  11
                                                                  12
                                                                  13
                                                                  14
                                                                  15
                                                                  //PasScript
                                                                  //顯示上一條記錄
                                                                  procedure btnPriorOnClick(sender: tobject);
                                                                  begin
                                                                    dtsGeneral.Prior;
                                                                    dtsCustAddrs.Close;
                                                                    dtsCustRelation.Close;
                                                                    dtsCustMaterial.Close;
                                                                    dtsCustAddrs.SQL.Text := 'SELECT * FROM Basic_CustAddrs WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                    dtsCustRelation.SQL.Text := 'SELECT * FROM Basic_CustRelation WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                    dtsCustMaterial.SQL.Text := 'SELECT * FROM Basic_CustMaterial WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                    dtsCustAddrs.Open;
                                                                    dtsCustRelation.Open;
                                                                    dtsCustMaterial.Open;
                                                                  end;
                                                                  
                                                                  1
                                                                  2
                                                                  3
                                                                  4
                                                                  5
                                                                  6
                                                                  7
                                                                  8
                                                                  9
                                                                  10
                                                                  11
                                                                  12
                                                                  13
                                                                  14
                                                                  15
                                                                  // Make sure to add code blocks to your code group
                                                                  • btnNextOnClick:btnNext的OnClick事件,記錄定位至下一條。
                                                                    //JScript
                                                                    //顯示下一條記錄
                                                                    function btnNextOnClick(sender)
                                                                    {
                                                                      dtsGeneral.Next;
                                                                      dtsCustAddrs.Close;
                                                                      dtsCustRelation.Close;
                                                                      dtsCustMaterial.Close;
                                                                      dtsCustAddrs.SQL.Text = "SELECT * FROM Basic_CustAddrs WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                      dtsCustRelation.SQL.Text = "SELECT * FROM Basic_CustRelation WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                      dtsCustMaterial.SQL.Text = "SELECT * FROM Basic_CustMaterial WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                      dtsCustAddrs.Open;
                                                                      dtsCustRelation.Open;
                                                                      dtsCustMaterial.Open;
                                                                    }
                                                                    
                                                                    1
                                                                    2
                                                                    3
                                                                    4
                                                                    5
                                                                    6
                                                                    7
                                                                    8
                                                                    9
                                                                    10
                                                                    11
                                                                    12
                                                                    13
                                                                    14
                                                                    15
                                                                    //PasScript
                                                                    //顯示下一條記錄
                                                                    procedure btnNextOnClick(sender: tobject);
                                                                    begin
                                                                      dtsGeneral.Next;
                                                                      dtsCustAddrs.Close;
                                                                      dtsCustRelation.Close;
                                                                      dtsCustMaterial.Close;
                                                                      dtsCustAddrs.SQL.Text := 'SELECT * FROM Basic_CustAddrs WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                      dtsCustRelation.SQL.Text := 'SELECT * FROM Basic_CustRelation WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                      dtsCustMaterial.SQL.Text := 'SELECT * FROM Basic_CustMaterial WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                      dtsCustAddrs.Open;
                                                                      dtsCustRelation.Open;
                                                                      dtsCustMaterial.Open;
                                                                    end;
                                                                    
                                                                    1
                                                                    2
                                                                    3
                                                                    4
                                                                    5
                                                                    6
                                                                    7
                                                                    8
                                                                    9
                                                                    10
                                                                    11
                                                                    12
                                                                    13
                                                                    14
                                                                    15
                                                                    // Make sure to add code blocks to your code group
                                                                    • btnLastOnClick:btnLast的OnClick事件,記錄定位至最後一條。
                                                                      //JScript
                                                                      //顯示最後一條記錄
                                                                      function btnLastOnClick(sender)
                                                                      {
                                                                        dtsGeneral.Last;
                                                                        dtsCustAddrs.Close;
                                                                        dtsCustRelation.Close;
                                                                        dtsCustMaterial.Close;
                                                                        dtsCustAddrs.SQL.Text = "SELECT * FROM Basic_CustAddrs WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                        dtsCustRelation.SQL.Text = "SELECT * FROM Basic_CustRelation WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                        dtsCustMaterial.SQL.Text = "SELECT * FROM Basic_CustMaterial WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                        dtsCustAddrs.Open;
                                                                        dtsCustRelation.Open;
                                                                        dtsCustMaterial.Open;
                                                                      }
                                                                      
                                                                      1
                                                                      2
                                                                      3
                                                                      4
                                                                      5
                                                                      6
                                                                      7
                                                                      8
                                                                      9
                                                                      10
                                                                      11
                                                                      12
                                                                      13
                                                                      14
                                                                      15
                                                                      //PasScript
                                                                      //顯示最後一條記錄
                                                                      procedure btnLastOnClick(sender: tobject);
                                                                      begin
                                                                        dtsGeneral.Last;
                                                                        dtsCustAddrs.Close;
                                                                        dtsCustRelation.Close;
                                                                        dtsCustMaterial.Close;
                                                                        dtsCustAddrs.SQL.Text := 'SELECT * FROM Basic_CustAddrs WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                        dtsCustRelation.SQL.Text := 'SELECT * FROM Basic_CustRelation WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                        dtsCustMaterial.SQL.Text := 'SELECT * FROM Basic_CustMaterial WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                        dtsCustAddrs.Open;
                                                                        dtsCustRelation.Open;
                                                                        dtsCustMaterial.Open;
                                                                      end;
                                                                      
                                                                      1
                                                                      2
                                                                      3
                                                                      4
                                                                      5
                                                                      6
                                                                      7
                                                                      8
                                                                      9
                                                                      10
                                                                      11
                                                                      12
                                                                      13
                                                                      14
                                                                      15
                                                                      // Make sure to add code blocks to your code group
                                                                      • btnAppendOnClick:btnAppend的OnClick事件。
                                                                        //JScript
                                                                        //新增記錄
                                                                        function btnAppendOnClick(sender)
                                                                        {
                                                                          //獲取目前分組資訊,分給新記錄的分組資訊中
                                                                          var vGroupID = dtsGeneral.FieldByName("FGroupID").AsString;
                                                                          dtsGeneral.Append;
                                                                          dtsGeneral.FieldByName("FInterID").AsInteger = GetNodeID;
                                                                          dtsGeneral.FieldByName("FGroupID").AsString = vGroupID;
                                                                          dtsGeneral.FieldByName("FCreater").AsString = UGMM.Informations.Values["UserName"];
                                                                        
                                                                          dtsCustAddrs.Close;
                                                                          dtsCustRelation.Close;
                                                                          dtsCustMaterial.Close;
                                                                          dtsCustAddrs.SQL.Text = "SELECT * FROM Basic_CustAddrs WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                          dtsCustRelation.SQL.Text = "SELECT * FROM Basic_CustRelation WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                          dtsCustMaterial.SQL.Text = "SELECT * FROM Basic_CustMaterial WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                          dtsCustAddrs.Open;
                                                                          dtsCustRelation.Open;
                                                                          dtsCustMaterial.Open;
                                                                        }
                                                                        
                                                                        1
                                                                        2
                                                                        3
                                                                        4
                                                                        5
                                                                        6
                                                                        7
                                                                        8
                                                                        9
                                                                        10
                                                                        11
                                                                        12
                                                                        13
                                                                        14
                                                                        15
                                                                        16
                                                                        17
                                                                        18
                                                                        19
                                                                        20
                                                                        21
                                                                        //PasScript
                                                                        //新增記錄
                                                                        procedure btnAppendOnClick(sender: tobject);
                                                                        var
                                                                          vGroupID: String;
                                                                        begin
                                                                          //獲取目前分組資訊,分給新記錄的分組資訊中
                                                                          vGroupID := dtsGeneral.FieldByName('FGroupID').AsString;
                                                                          dtsGeneral.Append;
                                                                          dtsGeneral.FieldByName('FInterID').AsInteger := GetNodeID;
                                                                          dtsGeneral.FieldByName('FGroupID').AsString := vGroupID;
                                                                          dtsGeneral.FieldByName('FCreater').AsString := UGMM.Informations.Values['UserName'];
                                                                        
                                                                          dtsCustAddrs.Close;
                                                                          dtsCustRelation.Close;
                                                                          dtsCustMaterial.Close;
                                                                          dtsCustAddrs.SQL.Text := 'SELECT * FROM Basic_CustAddrs WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                          dtsCustRelation.SQL.Text := 'SELECT * FROM Basic_CustRelation WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                          dtsCustMaterial.SQL.Text := 'SELECT * FROM Basic_CustMaterial WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                          dtsCustAddrs.Open;
                                                                          dtsCustRelation.Open;
                                                                          dtsCustMaterial.Open;
                                                                        end;
                                                                        
                                                                        1
                                                                        2
                                                                        3
                                                                        4
                                                                        5
                                                                        6
                                                                        7
                                                                        8
                                                                        9
                                                                        10
                                                                        11
                                                                        12
                                                                        13
                                                                        14
                                                                        15
                                                                        16
                                                                        17
                                                                        18
                                                                        19
                                                                        20
                                                                        21
                                                                        22
                                                                        23
                                                                        // Make sure to add code blocks to your code group
                                                                        • btnSaveOnClick:btnSave的OnClick事件,點選儲存單據。
                                                                          //JScript
                                                                          //儲存
                                                                          function btnSaveOnClick(sender)
                                                                          {
                                                                            var t,vdts;
                                                                            t = now;
                                                                            vdts = new TUgRFDataSet(Nil);
                                                                            vdts.Connection = GetRFERP;
                                                                            try{
                                                                               //檢查客戶資料是否為空
                                                                          		if ((dtsGeneral.FieldByName("FCustCode").AsString == "")
                                                                            	|| (dtsGeneral.FieldByName("FCustName").AsString == ""))
                                                                              {
                                                                              	ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("客戶程式碼或者客戶名稱不能為空!"));
                                                                                return;
                                                                              	//exit;
                                                                              }
                                                                              //檢查業務員,銷售型別是否為空
                                                                            	if ((dtsGeneral.FieldByName("FEmpName").AsString == "")
                                                                            	|| (dtsGeneral.FieldByName("FSaleType").AsString == ""))
                                                                              {
                                                                              	ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("業務員名稱或銷售型別不能為空!"));
                                                                                return;
                                                                              	//exit;  
                                                                              }
                                                                              //檢查新增客戶的客戶程式碼是否與表中已有的程式碼重複
                                                                                vdts.Close;
                                                                                vdts.SQL.Text = "SELECT FInterID FROM Basic_Cust WHERE FCustCode = '" + dtsGeneral.FieldByName("FCustCode").AsString + "'";
                                                                                vdts.Open;
                                                                                if ((vdts.RecordCount > 0) && (vdts.FieldByName("FInterID").AsString != dtsGeneral.FieldByName("FInterID").AsString))
                                                                                {
                                                                                  ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("客戶程式碼重複,請重新選擇客戶程式碼輸入!"));
                                                                                  return;
                                                                                  //Exit;
                                                                                }
                                                                            
                                                                            	//檢查主表是否有進行修改,被修改的主表客戶是否已經在系統內產生了單據,如有則不允許修改
                                                                              vdts.Close;
                                                                              vdts.SQL.Text = "SELECT 1 FROM Basic_Cust WHERE FInterID = " + dtsGeneral.FieldByName("FInterID").AsString;
                                                                              vdts.Open;
                                                                              if (vdts.RecordCount > 0)
                                                                              {
                                                                              	vdts.Close;
                                                                              	vdts.SQL.Text = " if exists(select 1 from Sal_Order where FCustID = " + dtsGeneral.FieldByName("FInterID").AsString +") "
                                                                             		+" select 1 as FInterID "
                                                                              	+" else if exists(select 1 from Inv_CLstockBill where FCustID = " + dtsGeneral.FieldByName("FInterID").AsString +") "
                                                                              	+" select 1 as FInterID "
                                                                              	+" else if exists(select 1 from Inv_CLInvBal where FCustID = " + dtsGeneral.FieldByName("FInterID").AsString +") "
                                                                              	+" select 1 as FInterID "
                                                                              	+" else if exists(select 1 from Man_Mo where FCustID = " + dtsGeneral.FieldByName("FInterID").AsString +") "
                                                                              	+" select 1 as FInterID "
                                                                              	+" else if exists(select 1 from Man_Contact where FCustID = " + dtsGeneral.FieldByName("FInterID").AsString +") "
                                                                              	+" select 1 as FInterID "
                                                                              	+"else "
                                                                              	+" select 0 as FInterID ";
                                                                              	vdts.Open;
                                                                              	if (vdts.FieldByName("FInterID").AsInteger > 0)
                                                                                {
                                                                                	//不儲存客戶資料,彈出視窗提示
                                                                                  UgSweetAlert1.CancelButtonText = UGMM.LT("取消");
                                                                                  UgSweetAlert1.ConfirmButtonText = UGMM.LT("確定");
                                                                                  UgSweetAlert1.Title = UGMM.LT("提示");
                                                                                  UgSweetAlert1.Text = UGMM.LT("檢測到該客戶資料概覽部分已被單據引用,是否僅更新收貨地址,關係和產品資訊?");
                                                                                  UgSweetAlert1.Show;
                                                                                }
                                                                                else
                                                                                {
                                                                                //未被引用的直接儲存
                                                                              		dtsGeneral.Edit;
                                                                              		dtsGeneral.FieldByName("FLstModDate").AsDateTime = t;
                                                                              		
                                                                                  if (dtsGeneral.State is dsEdit)
                                                                                	  dtsGeneral.Post;
                                                                                    
                                                                          				dtsGeneral.ApplyUpdates(-1);
                                                                                  UpdateCustDetail;
                                                                              		ShowSweetAlert(atSuccess,UGMM.LT("提示"),UGMM.LT("數據儲存成功!"));       
                                                                                 }
                                                                              }
                                                                          		else
                                                                              //新增的直接進行儲存
                                                                              {
                                                                              	dtsGeneral.Edit;
                                                                              	dtsGeneral.FieldByName("FLstModDate").AsDateTime = t;
                                                                              	dtsGeneral.Post;
                                                                          			dtsGeneral.ApplyUpdates(-1);
                                                                                UpdateCustDetail;
                                                                              	ShowSweetAlert(atSuccess,UGMM.LT("提示"),UGMM.LT("數據儲存成功!"));
                                                                               }			
                                                                              //btnAppend.Enabled = True;
                                                                              //btnSave.Enabled = False;
                                                                              }
                                                                            Finally{
                                                                            	vdts.Free;
                                                                            }
                                                                          }
                                                                          
                                                                          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
                                                                          44
                                                                          45
                                                                          46
                                                                          47
                                                                          48
                                                                          49
                                                                          50
                                                                          51
                                                                          52
                                                                          53
                                                                          54
                                                                          55
                                                                          56
                                                                          57
                                                                          58
                                                                          59
                                                                          60
                                                                          61
                                                                          62
                                                                          63
                                                                          64
                                                                          65
                                                                          66
                                                                          67
                                                                          68
                                                                          69
                                                                          70
                                                                          71
                                                                          72
                                                                          73
                                                                          74
                                                                          75
                                                                          76
                                                                          77
                                                                          78
                                                                          79
                                                                          80
                                                                          81
                                                                          82
                                                                          83
                                                                          84
                                                                          85
                                                                          86
                                                                          87
                                                                          88
                                                                          89
                                                                          90
                                                                          91
                                                                          92
                                                                          93
                                                                          94
                                                                          95
                                                                          96
                                                                          //PasScript
                                                                          //儲存
                                                                          procedure btnSaveOnClick(sender: tobject);
                                                                          Var
                                                                            vdts: TUgRFDataSet;
                                                                            t: TDateTime;
                                                                          begin
                                                                            t := now;
                                                                            vdts := TUgRFDataSet.Create(Nil);
                                                                            vdts.Connection := GetRFERP;
                                                                            try
                                                                               //檢查客戶資料是否為空
                                                                          		if (dtsGeneral.FieldByName('FCustCode').AsString = '')
                                                                            	or (dtsGeneral.FieldByName('FCustName').AsString = '')
                                                                            	Then
                                                                            	Begin
                                                                              	ShowSweetAlert(atError,UGMM.LT('提示'),UGMM.LT('客戶程式碼或者客戶名稱不能為空!'));
                                                                              	exit;
                                                                            	end;
                                                                              //檢查業務員,銷售型別是否為空
                                                                            	if (dtsGeneral.FieldByName('FEmpName').AsString = '')
                                                                            	or (dtsGeneral.FieldByName('FSaleType').AsString = '')
                                                                            	Then
                                                                            	Begin
                                                                              	ShowSweetAlert(atError,UGMM.LT('提示'),UGMM.LT('業務員名稱或銷售型別不能為空!'));
                                                                              	exit;  
                                                                            	End;
                                                                              //檢查新增客戶的客戶程式碼是否與表中已有的程式碼重複
                                                                                vdts.Close;
                                                                                vdts.SQL.Text := 'SELECT FInterID FROM Basic_Cust WHERE FCustCode = ''' + dtsGeneral.FieldByName('FCustCode').AsString + '''';
                                                                                vdts.Open;
                                                                                if (vdts.RecordCount > 0) and (vdts.FieldByName('FInterID').AsString <> dtsGeneral.FieldByName('FInterID').AsString) Then
                                                                                Begin
                                                                                  ShowSweetAlert(atError,UGMM.LT('提示'),UGMM.LT('客戶程式碼重複,請重新選擇客戶程式碼輸入!'));
                                                                                  Exit;
                                                                                end;
                                                                            
                                                                            	//檢查主表是否有進行修改,被修改的主表客戶是否已經在系統內產生了單據,如有則不允許修改
                                                                              vdts.Close;
                                                                              vdts.SQL.Text := 'SELECT 1 FROM Basic_Cust WHERE FInterID = ' + dtsGeneral.FieldByName('FInterID').AsString;
                                                                              vdts.Open;
                                                                              if vdts.RecordCount > 0 Then
                                                                              Begin
                                                                              	vdts.Close;
                                                                              	vdts.SQL.Text := ' if exists(select 1 from Sal_Order where FCustID = ' + dtsGeneral.FieldByName('FInterID').AsString +') '
                                                                             		+' select 1 as FInterID '
                                                                              	+' else if exists(select 1 from Inv_CLstockBill where FCustID = ' + dtsGeneral.FieldByName('FInterID').AsString +') '
                                                                              	+' select 1 as FInterID '
                                                                              	+' else if exists(select 1 from Inv_CLInvBal where FCustID = ' + dtsGeneral.FieldByName('FInterID').AsString +') '
                                                                              	+' select 1 as FInterID '
                                                                              	+' else if exists(select 1 from Man_Mo where FCustID = ' + dtsGeneral.FieldByName('FInterID').AsString +') '
                                                                              	+' select 1 as FInterID '
                                                                              	+' else if exists(select 1 from Man_Contact where FCustID = ' + dtsGeneral.FieldByName('FInterID').AsString +') '
                                                                              	+' select 1 as FInterID '
                                                                              	+'else '
                                                                              	+' select 0 as FInterID ';
                                                                              	vdts.Open;
                                                                              	IF vdts.FieldByName('FInterID').AsInteger > 0 Then
                                                                              	Begin
                                                                                	//不儲存客戶資料,彈出視窗提示
                                                                                  UgSweetAlert1.CancelButtonText := UGMM.LT('取消');
                                                                                  UgSweetAlert1.ConfirmButtonText := UGMM.LT('確定');
                                                                                  UgSweetAlert1.Title := UGMM.LT('提示');
                                                                                  UgSweetAlert1.Text := UGMM.LT('檢測到該客戶資料概覽部分已被單據引用,是否僅更新收貨地址,關係和產品資訊?');
                                                                                  UgSweetAlert1.Show;
                                                                              	End
                                                                                Else
                                                                                Begin
                                                                                //未被引用的直接儲存
                                                                              		dtsGeneral.Edit;
                                                                              		dtsGeneral.FieldByName('FLstModDate').AsDateTime := t;
                                                                              		
                                                                                  if dtsGeneral.State is dsEdit Then
                                                                                	  dtsGeneral.Post;
                                                                                    
                                                                          				dtsGeneral.ApplyUpdates(-1);
                                                                                  UpdateCustDetail;
                                                                              		ShowSweetAlert(atSuccess,UGMM.LT('提示'),UGMM.LT('數據儲存成功!'));       
                                                                                End;
                                                                              End
                                                                          		Else
                                                                              //新增的直接進行儲存
                                                                              Begin
                                                                              	dtsGeneral.Edit;
                                                                              	dtsGeneral.FieldByName('FLstModDate').AsDateTime := t;
                                                                              	dtsGeneral.Post;
                                                                          			dtsGeneral.ApplyUpdates(-1);
                                                                                UpdateCustDetail;
                                                                              	ShowSweetAlert(atSuccess,UGMM.LT('提示'),UGMM.LT('數據儲存成功!'));
                                                                              End;			
                                                                              //btnAppend.Enabled := True;
                                                                              //btnSave.Enabled := False;
                                                                          	Finally
                                                                            	vdts.Free;
                                                                            end;
                                                                          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
                                                                          44
                                                                          45
                                                                          46
                                                                          47
                                                                          48
                                                                          49
                                                                          50
                                                                          51
                                                                          52
                                                                          53
                                                                          54
                                                                          55
                                                                          56
                                                                          57
                                                                          58
                                                                          59
                                                                          60
                                                                          61
                                                                          62
                                                                          63
                                                                          64
                                                                          65
                                                                          66
                                                                          67
                                                                          68
                                                                          69
                                                                          70
                                                                          71
                                                                          72
                                                                          73
                                                                          74
                                                                          75
                                                                          76
                                                                          77
                                                                          78
                                                                          79
                                                                          80
                                                                          81
                                                                          82
                                                                          83
                                                                          84
                                                                          85
                                                                          86
                                                                          87
                                                                          88
                                                                          89
                                                                          90
                                                                          91
                                                                          92
                                                                          93
                                                                          94
                                                                          95
                                                                          96
                                                                          // Make sure to add code blocks to your code group
                                                                          • btnDeleteOnClick:btnDelete的OnClick事件,點選以開啟刪除對話方塊提示。
                                                                            //JScript
                                                                            //刪除
                                                                            function btnDeleteOnClick(sender)
                                                                            {
                                                                                UgSweetAlert.CancelButtonText = UGMM.LT("取消");
                                                                                UgSweetAlert.ConfirmButtonText = UGMM.LT("確定");
                                                                                UgSweetAlert.Title = UGMM.LT("提示");
                                                                                UgSweetAlert.Text = UGMM.LT("確認要刪除此客戶資料嗎?");
                                                                                UgSweetAlert.Show;
                                                                            }
                                                                            
                                                                            
                                                                            1
                                                                            2
                                                                            3
                                                                            4
                                                                            5
                                                                            6
                                                                            7
                                                                            8
                                                                            9
                                                                            10
                                                                            11
                                                                            //PasScript
                                                                            //刪除
                                                                            procedure btnDeleteOnClick(sender: tobject);
                                                                            begin
                                                                                UgSweetAlert.CancelButtonText := UGMM.LT('取消');
                                                                                UgSweetAlert.ConfirmButtonText := UGMM.LT('確定');
                                                                                UgSweetAlert.Title := UGMM.LT('提示');
                                                                                UgSweetAlert.Text := UGMM.LT('確認要刪除此客戶資料嗎?');
                                                                                UgSweetAlert.Show;
                                                                            end;
                                                                            
                                                                            1
                                                                            2
                                                                            3
                                                                            4
                                                                            5
                                                                            6
                                                                            7
                                                                            8
                                                                            9
                                                                            10
                                                                            // Make sure to add code blocks to your code group
                                                                            • btnUpdateOnClick:btnUpdate的OnClick事件,點選以更新客戶資料。
                                                                              //JScript
                                                                              //更新客戶資料
                                                                              function btnUpdateOnClick(sender)
                                                                              {
                                                                                  UgSweetAlert2.CancelButtonText = UGMM.LT("取消");
                                                                                  UgSweetAlert2.ConfirmButtonText = UGMM.LT("確定");
                                                                                  UgSweetAlert2.Title = UGMM.LT("提示");
                                                                                  UgSweetAlert2.Text = UGMM.LT("確認要更新此客戶資料嗎?");
                                                                                  UgSweetAlert2.Show;
                                                                              }
                                                                              
                                                                              
                                                                              1
                                                                              2
                                                                              3
                                                                              4
                                                                              5
                                                                              6
                                                                              7
                                                                              8
                                                                              9
                                                                              10
                                                                              11
                                                                              //PasScript
                                                                              //更新客戶資料
                                                                              procedure btnUpdateOnClick(sender: tobject);
                                                                              Var
                                                                                vdts : TUgRFDataSet;
                                                                              begin
                                                                              
                                                                                  UgSweetAlert2.CancelButtonText := UGMM.LT('取消');
                                                                                  UgSweetAlert2.ConfirmButtonText := UGMM.LT('確定');
                                                                                  UgSweetAlert2.Title := UGMM.LT('提示');
                                                                                  UgSweetAlert2.Text := UGMM.LT('確認要更新此客戶資料嗎?');
                                                                                  UgSweetAlert2.Show;
                                                                              end;
                                                                              
                                                                              1
                                                                              2
                                                                              3
                                                                              4
                                                                              5
                                                                              6
                                                                              7
                                                                              8
                                                                              9
                                                                              10
                                                                              11
                                                                              12
                                                                              13
                                                                              // Make sure to add code blocks to your code group
                                                                              • imFCustLogoOnDblClick:imFCustLogo的OnDblClick事件,雙擊打開檔案上傳對話方塊。
                                                                                //JScript
                                                                                function imFCustLogoOnDblClick(sender)
                                                                                //客戶資料圖片處雙擊打開檔案上傳對話方塊
                                                                                {
                                                                                  UgFileUpload01.Execute;
                                                                                }
                                                                                
                                                                                
                                                                                1
                                                                                2
                                                                                3
                                                                                4
                                                                                5
                                                                                6
                                                                                7
                                                                                //PasScript
                                                                                procedure imFCustLogoOnDblClick(sender: tobject);
                                                                                //客戶資料圖片處雙擊打開檔案上傳對話方塊
                                                                                begin
                                                                                  UgFileUpload01.Execute;
                                                                                end;
                                                                                
                                                                                1
                                                                                2
                                                                                3
                                                                                4
                                                                                5
                                                                                6
                                                                                // Make sure to add code blocks to your code group
                                                                                • UgFileUpload01OnCompleted: UgFileUpload01的OnCompleted事件,圖片上傳後傳送至數據集中。
                                                                                  //JScript
                                                                                  function UgFileUpload01OnCompleted(sender,astrea)
                                                                                  //圖片檔案上傳後傳送至數據集中
                                                                                  {
                                                                                     TBlobField(imFCustLogo.DataSource.DataSet.FieldByName(imFCustLogo.DataField)).LoadFromStream(astream);
                                                                                  }
                                                                                  
                                                                                  1
                                                                                  2
                                                                                  3
                                                                                  4
                                                                                  5
                                                                                  6
                                                                                  //PasScript
                                                                                  procedure UgFileUpload01OnCompleted(sender: tobject;astream: tfilestream);
                                                                                  //圖片檔案上傳後傳送至數據集中
                                                                                  begin
                                                                                     TBlobField(imFCustLogo.DataSource.DataSet.FieldByName(imFCustLogo.DataField)).LoadFromStream(astream);
                                                                                  end;
                                                                                  
                                                                                  1
                                                                                  2
                                                                                  3
                                                                                  4
                                                                                  5
                                                                                  6
                                                                                  // Make sure to add code blocks to your code group
                                                                                  • UgSweetAlert1OnConfirm:UgSweetAlert1的OnConfirm事件,用於僅更新客戶的明細資料資訊。
                                                                                    //JScript
                                                                                    function UgSweetAlert1OnConfirm(sender)
                                                                                    //僅更新客戶明細資訊
                                                                                    {
                                                                                       UpdateCustDetail;
                                                                                       ShowSweetAlert(atSuccess,UGMM.LT("提示"),UGMM.LT("僅更新送貨地址,關係和產品資訊成功。"));
                                                                                    }
                                                                                    
                                                                                    1
                                                                                    2
                                                                                    3
                                                                                    4
                                                                                    5
                                                                                    6
                                                                                    7
                                                                                    //PasScript
                                                                                    procedure UgSweetAlert1OnConfirm(sender: tobject);
                                                                                    //僅更新客戶明細資訊
                                                                                    begin
                                                                                       UpdateCustDetail;
                                                                                       ShowSweetAlert(atSuccess,UGMM.LT('提示'),UGMM.LT('僅更新送貨地址,關係和產品資訊成功。'));
                                                                                    end;
                                                                                    
                                                                                    1
                                                                                    2
                                                                                    3
                                                                                    4
                                                                                    5
                                                                                    6
                                                                                    7
                                                                                    // Make sure to add code blocks to your code group
                                                                                    • UgSweetAlertOnConfirm:UgSweetAlert的OnConfirm事件,用於刪除客戶資料的操作。
                                                                                      //JScript
                                                                                      function UgSweetAlertOnConfirm(sender)
                                                                                      //客戶資料刪除的執行操作
                                                                                      {
                                                                                        var AStoredProc,vRAISEMSG,vMSG,i,j;
                                                                                        //初始化預存程序,獲取需要賦值的參數
                                                                                        AStoredProc = new TUgRFStroedProc(nil);
                                                                                        AStoredProc.Connection = GETRFERP;
                                                                                        try{
                                                                                          AStoredProc.StoredProcName = "sp_Basic_Cust";
                                                                                          AStoredProc.Prepare;
                                                                                          if (AStoredProc.Prepared)
                                                                                          {
                                                                                            //參數賦值
                                                                                            AStoredProc.ParamByName("FDataID").AsString = dtsGeneral.FieldByName("FInterID").AsString;
                                                                                            AStoredProc.ParamByName("Flag").AsString = "Delete";
                                                                                            AStoredProc.ParamByName("FUserCode").AsString = UGMM.Informations.Values["UserFullName"];
                                                                                            if (AStoredProc.FindParam("FMsg") != nil)
                                                                                              AStoredProc.ParamByName("FMsg").AsString = "";
                                                                                            try{
                                                                                              AStoredProc.ExecProc;
                                                                                             }
                                                                                             Except{
                                                                                                vRAISEMSG=ExceptionMessage;
                                                                                                //意外情況字串處理
                                                                                                i = Pos("SQMESSAGE", vRAISEMSG);
                                                                                                j = Pos("[SQL Server]", vRAISEMSG);
                                                                                                vMSG = Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                                                                          
                                                                                                // 非格式化訊息提示
                                                                                                if (i == 0)
                                                                                                {
                                                                                                  ShowSweetAlert(atError,UGMM.LT("提示"),Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                                                                                  return;
                                                                                                  //Exit;
                                                                                                }
                                                                                              }
                                                                                            }
                                                                                          }
                                                                                        finally{
                                                                                          AStoredProc.Free;
                                                                                        }
                                                                                        dtsGeneral.Open;
                                                                                        dtsCustAddrs.Open;
                                                                                        dtsCustRelation.Open;
                                                                                        dtsCustMaterial.Open;
                                                                                      }
                                                                                      
                                                                                      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
                                                                                      44
                                                                                      45
                                                                                      46
                                                                                      47
                                                                                      //PasScript
                                                                                      procedure UgSweetAlertOnConfirm(sender: tobject);
                                                                                      //客戶資料刪除的執行操作
                                                                                      Var
                                                                                        AStoredProc: TUgRFStroedProc;
                                                                                        vRAISEMSG,vMSG: String;
                                                                                        i, j: Integer;
                                                                                      begin
                                                                                        //初始化預存程序,獲取需要賦值的參數
                                                                                        AStoredProc := TUgRFStroedProc.Create(nil);
                                                                                        AStoredProc.Connection := GETRFERP;
                                                                                        try
                                                                                          AStoredProc.StoredProcName := 'sp_Basic_Cust';
                                                                                          AStoredProc.Prepare;
                                                                                          if AStoredProc.Prepared then
                                                                                          begin
                                                                                            //參數賦值
                                                                                            AStoredProc.ParamByName('FDataID').AsString := dtsGeneral.FieldByName('FInterID').AsString;
                                                                                            AStoredProc.ParamByName('Flag').AsString := 'Delete';
                                                                                            AStoredProc.ParamByName('FUserCode').AsString := UGMM.Informations.Values['UserFullName'];
                                                                                            if AStoredProc.FindParam('FMsg') <> nil then
                                                                                              AStoredProc.ParamByName('FMsg').AsString := '';
                                                                                            try
                                                                                              AStoredProc.ExecProc;
                                                                                             Except{ExceptionMessage}
                                                                                                vRAISEMSG:=ExceptionMessage;
                                                                                                //意外情況字串處理
                                                                                                i := Pos('SQMESSAGE', vRAISEMSG);
                                                                                                j := Pos('[SQL Server]', vRAISEMSG);
                                                                                                vMSG := Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                                                                          
                                                                                                // 非格式化訊息提示
                                                                                                if i = 0 then
                                                                                                begin
                                                                                                  ShowSweetAlert(atError,UGMM.LT('提示'),Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                                                                                  Exit;
                                                                                                end;
                                                                                              end;
                                                                                          end;
                                                                                        finally
                                                                                          AStoredProc.Free;
                                                                                        end;
                                                                                        dtsGeneral.Open;
                                                                                        dtsCustAddrs.Open;
                                                                                        dtsCustRelation.Open;
                                                                                        dtsCustMaterial.Open;
                                                                                      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
                                                                                      44
                                                                                      45
                                                                                      46
                                                                                      47
                                                                                      // Make sure to add code blocks to your code group
                                                                                      • UgSweetAlert2OnConfirm:UgSweetAlert2的OnConfirm事件,更新客戶資料。
                                                                                        //JScript
                                                                                        function UgSweetAlert2OnConfirm(sender)
                                                                                        //更新客戶資料
                                                                                        {
                                                                                          var AStoredProc,vRAISEMSG,vMSG,i,j;
                                                                                          //初始化預存程序,獲取參數資訊
                                                                                          AStoredProc = new TUgRFStroedProc(nil);
                                                                                          AStoredProc.Connection = GETRFERP;
                                                                                          try{
                                                                                            AStoredProc.StoredProcName = "sp_Basic_Cust";
                                                                                            AStoredProc.Prepare;
                                                                                            if (AStoredProc.Prepared)
                                                                                            {
                                                                                              //參數賦值
                                                                                              AStoredProc.ParamByName("FDataID").AsString = dtsGeneral.FieldByName("FInterID").AsString;
                                                                                              AStoredProc.ParamByName("Flag").AsString = "Update";
                                                                                              AStoredProc.ParamByName("FUserCode").AsString = UGMM.Informations.Values["UserFullName"];
                                                                                              if (AStoredProc.FindParam("FMsg") != nil)
                                                                                                AStoredProc.ParamByName("FMsg").AsString = "";
                                                                                              try{
                                                                                                AStoredProc.ExecProc;
                                                                                               }
                                                                                               Except{
                                                                                                  vRAISEMSG=ExceptionMessage;
                                                                                                  //異常資訊處理
                                                                                             
                                                                                                  i = Pos("SQMESSAGE", vRAISEMSG);
                                                                                                  j = Pos("[SQL Server]", vRAISEMSG);
                                                                                                  vMSG = Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                                                                            
                                                                                                  // 非格式化訊息提示
                                                                                                  if (i == 0)
                                                                                                  {
                                                                                                    ShowSweetAlert(atError,UGMM.LT("提示"),Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                                                                                    return;
                                                                                                    //Exit;
                                                                                                  }
                                                                                                }
                                                                                              }
                                                                                            }
                                                                                          finally{
                                                                                            AStoredProc.Free;
                                                                                          }
                                                                                        }
                                                                                        
                                                                                        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
                                                                                        44
                                                                                        //PasScript
                                                                                        procedure UgSweetAlert2OnConfirm(sender: tobject);
                                                                                        //更新客戶資料
                                                                                        Var
                                                                                          AStoredProc: TUgRFStroedProc;
                                                                                          vRAISEMSG,vMSG: String;
                                                                                          i, j: Integer;
                                                                                        begin
                                                                                          //初始化預存程序,獲取參數資訊
                                                                                          AStoredProc := TUgRFStroedProc.Create(nil);
                                                                                          AStoredProc.Connection := GETRFERP;
                                                                                          try
                                                                                            AStoredProc.StoredProcName := 'sp_Basic_Cust';
                                                                                            AStoredProc.Prepare;
                                                                                            if AStoredProc.Prepared then
                                                                                            begin
                                                                                              //參數賦值
                                                                                              AStoredProc.ParamByName('FDataID').AsString := dtsGeneral.FieldByName('FInterID').AsString;
                                                                                              AStoredProc.ParamByName('Flag').AsString := 'Update';
                                                                                              AStoredProc.ParamByName('FUserCode').AsString := UGMM.Informations.Values['UserFullName'];
                                                                                              if AStoredProc.FindParam('FMsg') <> nil then
                                                                                                AStoredProc.ParamByName('FMsg').AsString := '';
                                                                                              try
                                                                                                AStoredProc.ExecProc;
                                                                                               Except{ExceptionMessage}
                                                                                                  vRAISEMSG:=ExceptionMessage;
                                                                                                  //異常資訊處理
                                                                                             
                                                                                                  i := Pos('SQMESSAGE', vRAISEMSG);
                                                                                                  j := Pos('[SQL Server]', vRAISEMSG);
                                                                                                  vMSG := Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                                                                            
                                                                                                  // 非格式化訊息提示
                                                                                                  if i = 0 then
                                                                                                  begin
                                                                                                    ShowSweetAlert(atError,UGMM.LT('提示'),Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                                                                                    Exit;
                                                                                                  end;
                                                                                                end;
                                                                                            end;
                                                                                          finally
                                                                                            AStoredProc.Free;
                                                                                          end;
                                                                                        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
                                                                                        44
                                                                                        // Make sure to add code blocks to your code group
                                                                                        • UgWebRunFrameOnAfterRunScript:UgWebRunFrame的OnAfterRunScript事件,初始化。
                                                                                          //JScript
                                                                                          function UgWebRunFrameOnAfterRunScript(sender)
                                                                                          {
                                                                                            UGMM.LC(Self);
                                                                                            //客戶分類查詢表
                                                                                            dtsCustGroup.Connection = GetRFERP;
                                                                                            dtsCustGroup.SQL.Text = "SELECT FInterID AS FGroupID,FGroupName FROM Basic_CustGroup";
                                                                                            dtsCustGroup.Open;
                                                                                            
                                                                                            //結帳客戶查詢表
                                                                                            dtsInvoiceCust.Connection = GetRFERP;
                                                                                            dtsInvoiceCust.SQL.Text = "SELECT FInterID AS FInVoiceCustID,FCustCode AS FInvoiceCustCode,FCustName AS " + 
                                                                                            "FInvoiceCustName FROM Basic_Cust";
                                                                                            dtsInvoiceCust.Open; 
                                                                                            
                                                                                            //區域
                                                                                            dtsFDistrict.Connection = GetRFERP;
                                                                                            dtsFDistrict.SQL.Text = "SELECT a.FName,a.FCode "
                                                                                          	+ "FROM dbo.Basic_CommonData A "
                                                                                          	+ "INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID "
                                                                                          	+ "WHERE b.FDataName = '" + UGMM.LT("地區") + "'";
                                                                                            dtsFDistrict.Open; 
                                                                                            
                                                                                            //業務員
                                                                                            dtsEmp.Connection = GetRFERP;
                                                                                            dtsEmp.SQL.Text = "SELECT FInterID AS FEmpID,FEmpCode,FEmpName,FDeptID,FDeptCode,FDeptName FROM Basic_Employee";
                                                                                            dtsEmp.Open;
                                                                                            
                                                                                            //幣種資料
                                                                                            dtsCurrency.Connection = GetRFERP;
                                                                                            dtsCurrency.SQL.Text = "SELECT FCode as FCurrencyCode,FName as FCurrencyName,FInterID AS FCurrencyID,FExRate AS "+ 
                                                                                            "FExchangeRate FROM Basic_Currency";
                                                                                            dtsCurrency.Open;
                                                                                            
                                                                                            //銷售型別
                                                                                            dtsSaleType.Connection = GetRFERP;
                                                                                            dtsSaleType.SQL.Text = "SELECT a.FName,a.FInterID "
                                                                                          	+ "FROM dbo.Basic_CommonData A "
                                                                                          	+ "INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID "
                                                                                          	+ "WHERE b.FDataName = '" + UGMM.LT("銷售型別") + "'";
                                                                                            dtsSaleType.Open;
                                                                                            
                                                                                            //發票型別
                                                                                            dtsInvoiceType.Connection = GetRFERP;
                                                                                            dtsInvoiceType.SQL.Text = "SELECT a.FName,a.FInterID "
                                                                                          	+ "FROM dbo.Basic_CommonData A "
                                                                                          	+ "INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID "
                                                                                          	+ "WHERE b.FDataName = '" + UGMM.LT("發票型別") + "'";
                                                                                            dtsInvoiceType.Open;
                                                                                            
                                                                                            //付款方式
                                                                                            dtsPayItem.Connection = GetRFERP;
                                                                                            dtsPayItem.SQL.Text = "SELECT a.FName,a.FInterID "
                                                                                          	+ "FROM dbo.Basic_CommonData A "
                                                                                          	+ "INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID "
                                                                                          	+ "WHERE b.FDataName = '" + UGMM.LT("付款方式") + "'";
                                                                                            dtsPayItem.Open;
                                                                                            
                                                                                            //結算方式
                                                                                            dtsSettle.Connection = GetRFERP;
                                                                                            dtsSettle.SQL.Text = "SELECT a.FName,a.FInterID "
                                                                                          	+ "FROM dbo.Basic_CommonData A "
                                                                                          	+ "INNER JOIN Basic_CommonDataType b ON a.FTypeID = b.FInterID "
                                                                                          	+ "WHERE b.FDataName = '" + UGMM.LT("結算方式") + "'";
                                                                                            dtsSettle.Open;
                                                                                            
                                                                                            //物料資訊
                                                                                            dtsItem.Connection = GetRFERP;
                                                                                            dtsItem.SQL.Text = "select A.FInterID as FItemID,A.FItemCode,A.FItemName,A.FItemSpec,A.FUnitID,A.FUnitCode,A.FUnitName, "
                                                                                          	+ "b.FCoefficient,dbo.fun_GetPY(A.FItemName) as PY from Basic_Item A  "
                                                                                          	+ "left join basic_Unit B on a.FUnitID = b.FInterID "
                                                                                          	+ "left join Basic_ItemGroup c on a.FGroupID = c.FInterID "
                                                                                          	+ "where A.FTypeID=1  and isnull(FfrozenFor,0) = 0 "
                                                                                          	+ "Order by FItemCode";
                                                                                            dtsItem.Open;
                                                                                            //分組型別的初始化設定
                                                                                            rgFCustomerType.Items.CommaText = UGMM.LT("國內客戶,國外客戶");
                                                                                          }
                                                                                          
                                                                                          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
                                                                                          44
                                                                                          45
                                                                                          46
                                                                                          47
                                                                                          48
                                                                                          49
                                                                                          50
                                                                                          51
                                                                                          52
                                                                                          53
                                                                                          54
                                                                                          55
                                                                                          56
                                                                                          57
                                                                                          58
                                                                                          59
                                                                                          60
                                                                                          61
                                                                                          62
                                                                                          63
                                                                                          64
                                                                                          65
                                                                                          66
                                                                                          67
                                                                                          68
                                                                                          69
                                                                                          70
                                                                                          71
                                                                                          72
                                                                                          73
                                                                                          74
                                                                                          75
                                                                                          76
                                                                                          77
                                                                                          78
                                                                                          //PasScript
                                                                                          no PasScript
                                                                                          
                                                                                          1
                                                                                          2
                                                                                          // Make sure to add code blocks to your code group

                                                                                          # 2.3.5. 多語言設定

                                                                                            點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

                                                                                            收集此頁面視窗中所有需要進行翻譯的詞條(包括程式中設定的多語言專案),點選新增按鈕,根據提示填寫維護。

                                                                                          # 2.3.6. 運行效果

                                                                                          # 3. 業務單據頁面設定

                                                                                          # 3.1. 銷售訂單-多筆數據主從表單

                                                                                            點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為銷售訂單的模組,新增的內容樣式如下,主要填寫組別、編號、標題、開發使用者等內容,使用PasScript的使用者編號請填寫為 W-EQ-MOD-2134-1,使用JScript的使用者編號請填寫 W-EQ-MOD-2134-2。填寫完成後,點選儲存按鈕。

                                                                                            選擇剛才建立的標題為銷售訂單的模組,點選上方的模組設計按鈕,進入模組設計界面。

                                                                                            銷售訂單的頁面設定如下圖。

                                                                                          # 3.1.1. 功能簡述

                                                                                            此頁面用於查詢銷售訂單資訊,功能涉及到查詢條件的引入,初始化單據等。

                                                                                          # 3.1.2. 窗體設定

                                                                                          屬性 取值 說明
                                                                                          Align alClient 佈局填滿整個客戶端

                                                                                          # 3.1.3. 控制元件設定

                                                                                          • 控制元件說明

                                                                                          TUgPanel型別的控制元件在運行

                                                                                          控制元件名稱 控制元件型別 說明
                                                                                          UgPanel01 TUgPanel 佈局控制元件,放置於左側位置
                                                                                          Title:查詢條件
                                                                                          TitleAlign:taLeftJustify
                                                                                          TitlePosition:tpLeft
                                                                                          Collapsible:True
                                                                                          UgContainerPanel01 TUgContainerPanel 佈局控制元件,在UgPanel01中放置,用於放置查詢條件及按鈕等控制元件
                                                                                          dtpBegin TUgDateTimePicker 用於設定起始時間
                                                                                          DateTime:2021-01-01
                                                                                          FieldLabel:訂單日期
                                                                                          FieldLabelAlign:laTop
                                                                                          dtpEnd TUgDateTimePicker 用於設定截止時間
                                                                                          DateTime:2021-03-01
                                                                                          FieldLabel:訂單日期
                                                                                          FieldLabelAlign:laTop
                                                                                          edQuery TUgEdit 用於設定輸入的內容
                                                                                          FieldLabel:客戶程式碼或名稱
                                                                                          FieldLabelAlign:laTop
                                                                                          EmptyText:輸入客戶程式碼或名稱
                                                                                          edFBillNo TUgEdit 用於設定輸入的單據編號
                                                                                          FieldLabel:單據編號
                                                                                          FieldLabelAlign:laTop
                                                                                          UgComboBox01 TUgComboBox 用於設定查詢的單據狀態
                                                                                          FieldLabel:單據狀態
                                                                                          FieldLabelAlign:laTop
                                                                                          btnQuery TUgBitBtn 設定查詢按鈕
                                                                                          Caption:查詢
                                                                                          IconCls:Search
                                                                                          btnClear TUgBitBtn 設定清除按鈕
                                                                                          Caption:清除
                                                                                          btnAppend TUgBitBtn 設定新建按鈕
                                                                                          Caption:新建
                                                                                          dts1 TUgRFDataSet 銷售訂單數據集
                                                                                          ds1 TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dts1。
                                                                                          UgHiddenPanel01 TUgHiddenPanel 隱藏面板,用於隱藏一些用於定義類的控制元件。
                                                                                          btnWidgeEdit TUgButtonWidget 按鈕佈局控制元件,用於在表格中設定按鈕
                                                                                          Caption:檢視
                                                                                          UgDBGrid01 TUgDBGrid 表格
                                                                                          DataSource:ds1
                                                                                          WebOptions.Paged:False
                                                                                          btnEditor TUgBitBtn 設定編輯按鈕
                                                                                          Caption:編輯
                                                                                          Visible:False
                                                                                          btnChart TUgButton 設定排名分析按鈕
                                                                                          Caption: 排名分析
                                                                                          • UgDBGrid01欄位設定

                                                                                            選擇並雙擊UgDBGrid01控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                                                                            設定完成後,在窗體結構與檢視器中選擇剛才建立的欄位FOperation,修改WidgetColumn.Enabled為True,指定Widget為btnWidget。

                                                                                          # 3.1.4. 程式設計

                                                                                            在初始設定程式時,使用JScript使用者需勾選pub_js_tarslink與pub_js_messageinfo單元,使用PasScript的使用者請勾選pub_pas_tarslink與pub_pas_messageinfo單元。

                                                                                          • 初始設定:設定顯示數據集的初始化內容。(僅限PasScript)。
                                                                                          Begin
                                                                                              //打開頁面顯示,初始化控制元件顯示
                                                                                              dts1.Close;
                                                                                              dts1.Connection := GetRFERP;
                                                                                              resume;
                                                                                              UgComboBox01.Items.CommaText := UGMM.LT('全部,已審覈,草稿,作廢');
                                                                                              UgComboBox01.ItemIndex := 0;
                                                                                              UgComboBoxSelect;
                                                                                              dts1.Open;
                                                                                          End.
                                                                                          
                                                                                          1
                                                                                          2
                                                                                          3
                                                                                          4
                                                                                          5
                                                                                          6
                                                                                          7
                                                                                          8
                                                                                          9
                                                                                          10
                                                                                          • btnQueryOnClick:btnQuery的OnClick時間,點選查詢資訊,將查詢條件中的內容引入至查詢SQL中。
                                                                                            //JScript
                                                                                            function btnQueryOnClick(sender)
                                                                                            //查詢資訊,將查詢條件中的內容引入至查詢SQL中
                                                                                            {
                                                                                              dts1.Close;
                                                                                              resume;
                                                                                              if (edQuery.Text != "")
                                                                                                dts1.AddWhere("a.FCustCode LIKE '%" + edQuery.Text + "%' or a.FCustName LIKE '%" + edQuery.Text + "%'");
                                                                                              if (edFBillNo.Text != "")
                                                                                                dts1.AddWhere("a.FBillNo LIKE '%" + edFBillNo.Text + "%'");
                                                                                              UgComboBoxSelect;
                                                                                              dts1.Open;
                                                                                            } 
                                                                                            
                                                                                            1
                                                                                            2
                                                                                            3
                                                                                            4
                                                                                            5
                                                                                            6
                                                                                            7
                                                                                            8
                                                                                            9
                                                                                            10
                                                                                            11
                                                                                            12
                                                                                            13
                                                                                            //PasScript
                                                                                            procedure btnQueryOnClick(sender: tobject);
                                                                                            //查詢資訊,將查詢條件中的內容引入至查詢SQL中
                                                                                            begin
                                                                                              dts1.Close;
                                                                                              resume;
                                                                                              if edQuery.Text <> '' Then
                                                                                                dts1.AddWhere('a.FCustCode LIKE ''%' + edQuery.Text + '%'' or a.FCustName LIKE ''%' + edQuery.Text + '%''');
                                                                                              if edFBillNo.Text <> '' Then
                                                                                                dts1.AddWhere('a.FBillNo LIKE ''%' + edFBillNo.Text + '%''');
                                                                                              UgComboBoxSelect;
                                                                                              dts1.Open;
                                                                                            end;  
                                                                                            
                                                                                            1
                                                                                            2
                                                                                            3
                                                                                            4
                                                                                            5
                                                                                            6
                                                                                            7
                                                                                            8
                                                                                            9
                                                                                            10
                                                                                            11
                                                                                            12
                                                                                            13
                                                                                            // Make sure to add code blocks to your code group
                                                                                            • btnClearOnClick:btnClear的OnClick時間,點選清除查詢條件,初始化查詢條件設定。
                                                                                              //JScript
                                                                                              function btnClearOnClick(sender)
                                                                                              //清除查詢條件,初始化查詢條件設定
                                                                                              {
                                                                                                edQuery.Text =  "";
                                                                                                edFBillNo.Text = "";
                                                                                                dts1.Close;
                                                                                                resume;
                                                                                                UgComboBoxSelect;
                                                                                                dts1.Open;  
                                                                                              }
                                                                                              
                                                                                              1
                                                                                              2
                                                                                              3
                                                                                              4
                                                                                              5
                                                                                              6
                                                                                              7
                                                                                              8
                                                                                              9
                                                                                              10
                                                                                              11
                                                                                              //PasScript
                                                                                              procedure btnClearOnClick(sender: tobject);
                                                                                              //清除查詢條件,初始化查詢條件設定
                                                                                              begin
                                                                                                edQuery.Text :=  '';
                                                                                                edFBillNo.Text := '';
                                                                                                dts1.Close;
                                                                                                resume;
                                                                                                UgComboBoxSelect;
                                                                                                dts1.Open;  
                                                                                              end;
                                                                                              
                                                                                              1
                                                                                              2
                                                                                              3
                                                                                              4
                                                                                              5
                                                                                              6
                                                                                              7
                                                                                              8
                                                                                              9
                                                                                              10
                                                                                              11
                                                                                              // Make sure to add code blocks to your code group
                                                                                              • UgComboBoxSelect:覈取方塊的設定,確認查詢狀態條件。
                                                                                                //JScript
                                                                                                function UgComboBoxSelect()
                                                                                                //覈取方塊設定
                                                                                                {
                                                                                                  if (UgComboBox01.ItemIndex == 0)
                                                                                                    dts1.AddWhere("a.FStatus IN (0,1,2)");
                                                                                                  if (UgComboBox01.ItemIndex == 1)
                                                                                                    dts1.AddWhere("a.FStatus = 2" );
                                                                                                  if (UgComboBox01.ItemIndex == 2)
                                                                                                    dts1.AddWhere("a.FStatus = 1");
                                                                                                  if (UgComboBox01.ItemIndex == 3)
                                                                                                    dts1.AddWhere("a.FStatus = 0");
                                                                                                }
                                                                                                
                                                                                                
                                                                                                1
                                                                                                2
                                                                                                3
                                                                                                4
                                                                                                5
                                                                                                6
                                                                                                7
                                                                                                8
                                                                                                9
                                                                                                10
                                                                                                11
                                                                                                12
                                                                                                13
                                                                                                14
                                                                                                //PasScript
                                                                                                Procedure UgComboBoxSelect;
                                                                                                //覈取方塊設定
                                                                                                Begin
                                                                                                  if UgComboBox01.ItemIndex = 0 then
                                                                                                    dts1.AddWhere('a.FStatus IN (0,1,2)');
                                                                                                  IF UgComboBox01.ItemIndex = 1 Then
                                                                                                    dts1.AddWhere('a.FStatus = 2' );
                                                                                                  If UgComboBox01.ItemIndex = 2 Then
                                                                                                    dts1.AddWhere('a.FStatus = 1');
                                                                                                  If UgComboBox01.ItemIndex = 3 Then
                                                                                                    dts1.AddWhere('a.FStatus = 0');
                                                                                                End;
                                                                                                
                                                                                                1
                                                                                                2
                                                                                                3
                                                                                                4
                                                                                                5
                                                                                                6
                                                                                                7
                                                                                                8
                                                                                                9
                                                                                                10
                                                                                                11
                                                                                                12
                                                                                                13
                                                                                                // Make sure to add code blocks to your code group
                                                                                                • resume:設定恢復初始查詢條件。
                                                                                                  //JScript
                                                                                                  function resume()
                                                                                                  //恢復初始查詢條件的設定
                                                                                                  {
                                                                                                      dts1.SQL.Text = "select b.FID,b.FInterID,a.FBillID,a.FBillNo,a.FDate,a.FSignDate," + 
                                                                                                      "a.FCustCode,a.FCustName,a.FDeptName,a.FEmpName,FProductItemCode,FProductItemName," + 
                                                                                                      "b.FItemCode,b.FItemName,b.FItemSpec,b.FUnitName,b.FAuxQty,a.FContractNo,FSeason," + 
                                                                                                      "a.FBiller,a.FCreateDate,a.FChecker,a.FCheckDate, case a.FStatus WHEN 0 THEN '" + 
                                                                                                      UGMM.LT("已作廢") + "' WHEN 1 THEN '" + UGMM.LT("草 稿") + "' WHEN 2 THEN '" + 
                                                                                                      UGMM.LT("已審覈") + "' END AS FStatus,a.FClosed," + 
                                                                                                      "b.FAuxPrice,b.FAmount,FDeliverRemark as FDeliverDate,c.FPrintCount " + 
                                                                                                      "from SAL_Order a(NOLOCK) " + 
                                                                                                      "inner join SAL_OrderEntry b(NOLOCK)  on a.FInterID = b.FInterID " + 
                                                                                                      "Left join (select FDataID,isnull(COUNT(1),0) as FPrintCount from Dict_PrintRecord Group By FDataID) C " + 
                                                                                                      "on b.FInterID = c.FDataID " + 
                                                                                                      "Where 1 = 1  " +
                                                                                                      "Order by a.FDate desc";
                                                                                                      dts1.AddWhere("a.FDate between '" + DateToStr(dtpBegin.DateTime) +  "' and '" + DateToStr(dtpEnd.DateTime) + "'");
                                                                                                  }
                                                                                                  
                                                                                                  1
                                                                                                  2
                                                                                                  3
                                                                                                  4
                                                                                                  5
                                                                                                  6
                                                                                                  7
                                                                                                  8
                                                                                                  9
                                                                                                  10
                                                                                                  11
                                                                                                  12
                                                                                                  13
                                                                                                  14
                                                                                                  15
                                                                                                  16
                                                                                                  17
                                                                                                  18
                                                                                                  19
                                                                                                  //PasScript
                                                                                                  procedure resume;
                                                                                                  //恢復初始查詢條件的設定
                                                                                                  Begin
                                                                                                      dts1.SQL.Text := 'select b.FID,b.FInterID,a.FBillID,a.FBillNo,a.FDate,a.FSignDate,' + 
                                                                                                      'a.FCustCode,a.FCustName,a.FDeptName,a.FEmpName,FProductItemCode,FProductItemName,' + 
                                                                                                      'b.FItemCode,b.FItemName,b.FItemSpec,b.FUnitName,b.FAuxQty,a.FContractNo,FSeason,' + 
                                                                                                      'a.FBiller,a.FCreateDate,a.FChecker,a.FCheckDate, case a.FStatus WHEN 0 THEN ''' + 
                                                                                                      UGMM.LT('已作廢') + ''' WHEN 1 THEN ''' + UGMM.LT('草 稿') + ''' WHEN 2 THEN ''' + 
                                                                                                      UGMM.LT('已審覈') + ''' END AS FStatus,a.FClosed,' + 
                                                                                                      'b.FAuxPrice,b.FAmount,FDeliverRemark as FDeliverDate,c.FPrintCount ' + 
                                                                                                      'from SAL_Order a(NOLOCK) ' + 
                                                                                                      'inner join SAL_OrderEntry b(NOLOCK)  on a.FInterID = b.FInterID ' + 
                                                                                                      'Left join (select FDataID,isnull(COUNT(1),0) as FPrintCount from Dict_PrintRecord Group By FDataID) C ' + 
                                                                                                      'on b.FInterID = c.FDataID ' + 
                                                                                                      'Where 1 = 1  ' +
                                                                                                      'Order by a.FDate desc';
                                                                                                      dts1.AddWhere('a.FDate between ''' + DateToStr(dtpBegin.DateTime) +  ''' and ''' + DateToStr(dtpEnd.DateTime) + '''');
                                                                                                  End;
                                                                                                  
                                                                                                  1
                                                                                                  2
                                                                                                  3
                                                                                                  4
                                                                                                  5
                                                                                                  6
                                                                                                  7
                                                                                                  8
                                                                                                  9
                                                                                                  10
                                                                                                  11
                                                                                                  12
                                                                                                  13
                                                                                                  14
                                                                                                  15
                                                                                                  16
                                                                                                  17
                                                                                                  18
                                                                                                  19
                                                                                                  // Make sure to add code blocks to your code group
                                                                                                  • btnAppendOnClick:btnAppend的OnClick時間,點選以新增銷售訂單。
                                                                                                    //JScript
                                                                                                    function btnAppendOnClick(sender)
                                                                                                    //新增銷售訂單
                                                                                                    {
                                                                                                      var F,D,DA,DList,i,FInterID;
                                                                                                      //明細數據集為空空時退出
                                                                                                      if (dts1.IsEmpty) {return;}
                                                                                                      //打開視窗W-EQ-MOD-2135-2
                                                                                                      F = UGMM.GetWebSubForm("W-EQ-MOD-2135-2");
                                                                                                      F.Caption = UGMM.LT("編輯銷售訂單");
                                                                                                      //翻譯
                                                                                                      UGMM.LC(F);
                                                                                                      //產生單據ID
                                                                                                      FInterID = GetNodeID;
                                                                                                      D = TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dts0"));
                                                                                                      //D.SQL.Text = "select a.* from Sal_Order a(NOLOCK) where a.FInterID =:FInterID";
                                                                                                      D.ParamByName("FInterID").AsInteger = FInterID;
                                                                                                      D.Open;
                                                                                                      D.Append;
                                                                                                      //產生單據號及關聯資訊
                                                                                                      D.FieldByName("FInterID").AsInteger = FInterID;
                                                                                                      D.FieldByName("FBillID").AsInteger = 12020002;
                                                                                                      D.FieldByName("FBillNo").AsString = GetBillNo("12020002",now,True);
                                                                                                      D.FieldByName("FDate").AsDateTime = Date;
                                                                                                      D.FieldByName("FSignDate").AsDateTime = Date;
                                                                                                      D.FieldByName("FContractNo").AsString = D.FieldByName("FBillNo").AsString;
                                                                                                      D.FieldByName("FExchangeRate").AsInteger = 1;
                                                                                                      D.FieldByName("FStatus").AsInteger = 1;
                                                                                                      D.FieldByName("FClosed").AsInteger = 0;  
                                                                                                      D.FieldByName("FBiller").AsString = UGMM.Informations.Values["UserFullName"];
                                                                                                      D.FieldByName("FCreateDate").AsDateTime = now; 
                                                                                                      //明細數據集更新
                                                                                                      DA = TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dts1"));
                                                                                                      DA.ParamByName("FInterID").AsString = D.FieldByName("FInterID").AsString;
                                                                                                      DA.Open;
                                                                                                      //數據列表更新
                                                                                                      DList = TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsList"));
                                                                                                      DList.Locate("FInterID",dts1.FieldByName("FInterID").AsString,nil);
                                                                                                      TUgWebRunFrame(TUgWebForm(F).RunFrame).ExecuteCode("RefState(-1);");
                                                                                                      if (F.ShowModal == mrOK) 
                                                                                                      {
                                                                                                      
                                                                                                      }
                                                                                                      //關閉釋放視窗W-EQ-MOD-2135-2
                                                                                                      UGMM.DelWebSubForm("W-EQ-MOD-2135-2");
                                                                                                      btnQueryOnClick(sender);
                                                                                                    }
                                                                                                    
                                                                                                    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
                                                                                                    44
                                                                                                    45
                                                                                                    46
                                                                                                    47
                                                                                                    //PasScript
                                                                                                    procedure btnAppendOnClick(sender: tobject);
                                                                                                    //新增銷售訂單
                                                                                                    Var
                                                                                                      F:TUniForm;
                                                                                                      D:TUgRFDataSet;
                                                                                                      DA: TUgRFDataSet;
                                                                                                      DList: TUgRFDataSet;
                                                                                                      i:String;
                                                                                                      FInterID: Integer;
                                                                                                    begin
                                                                                                      //明細數據集為空空時退出
                                                                                                      if dts1.IsEmpty then Exit;
                                                                                                      //銷售訂單編輯W-EQ-MOD-2135-1
                                                                                                      F := UGMM.GetWebSubForm('W-EQ-MOD-2135-1');
                                                                                                      F.Caption := UGMM.LT('編輯銷售訂單');
                                                                                                      //翻譯
                                                                                                      UGMM.LC(F);
                                                                                                      //產生單據ID
                                                                                                      FInterID := GetNodeID;
                                                                                                      D := TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dts0'));
                                                                                                      //D.SQL.Text := 'select a.* from Sal_Order a(NOLOCK) where a.FInterID =:FInterID';
                                                                                                      D.ParamByName('FInterID').AsInteger := FInterID;
                                                                                                      D.Open;
                                                                                                      D.Append;
                                                                                                      //產生單據號及關聯資訊
                                                                                                      D.FieldByName('FInterID').AsInteger := FInterID;
                                                                                                      D.FieldByName('FBillID').AsInteger := 12020002;
                                                                                                      D.FieldByName('FBillNo').AsString := GetBillNo('12020002',now,True);
                                                                                                      D.FieldByName('FDate').AsDateTime := Date;
                                                                                                      D.FieldByName('FSignDate').AsDateTime := Date;
                                                                                                      D.FieldByName('FContractNo').AsString := D.FieldByName('FBillNo').AsString;
                                                                                                      D.FieldByName('FExchangeRate').AsInteger := 1;
                                                                                                      D.FieldByName('FStatus').AsInteger := 1;
                                                                                                      D.FieldByName('FClosed').AsInteger := 0;  
                                                                                                      D.FieldByName('FBiller').AsString := UGMM.Informations.Values['UserFullName'];
                                                                                                      D.FieldByName('FCreateDate').AsDateTime := now; 
                                                                                                      //明細數據集更新
                                                                                                      DA := TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dts1'));
                                                                                                      DA.ParamByName('FInterID').AsString := D.FieldByName('FInterID').AsString;
                                                                                                      DA.Open;
                                                                                                      //數據列表更新
                                                                                                      DList := TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsList'));
                                                                                                      DList.Locate('FInterID',dts1.FieldByName('FInterID').AsString,nil);
                                                                                                      TUgWebRunFrame(TUgWebForm(F).RunFrame).ExecuteCode('RefState(-1);');
                                                                                                      if F.ShowModal = mrOK then 
                                                                                                      Begin
                                                                                                    
                                                                                                      End;
                                                                                                      //關閉釋放視窗W-EQ-MOD-2135-1
                                                                                                      UGMM.DelWebSubForm('W-EQ-MOD-2135-1');
                                                                                                      btnQueryOnClick(sender);
                                                                                                    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
                                                                                                    44
                                                                                                    45
                                                                                                    46
                                                                                                    47
                                                                                                    48
                                                                                                    49
                                                                                                    50
                                                                                                    51
                                                                                                    52
                                                                                                    53
                                                                                                    // Make sure to add code blocks to your code group
                                                                                                    • btnEditorOnClick:btnEditor的OnClick事件,點選打開新視窗以編輯銷售訂單。btnEditor在頁面中不可見。
                                                                                                      //JScript
                                                                                                      function btnEditorOnClick(sender)
                                                                                                      //編輯銷售訂單
                                                                                                      {
                                                                                                        var F,D,DA,DList,i;
                                                                                                        //無明細選擇時退出
                                                                                                        if (dts1.IsEmpty) {return;}
                                                                                                        //打開視窗頁面W-EQ-MOD-2135-2
                                                                                                        F = UGMM.GetWebSubForm("W-EQ-MOD-2135-2");
                                                                                                        F.Caption = UGMM.LT("編輯銷售訂單");
                                                                                                        //翻譯
                                                                                                        UGMM.LC(F);
                                                                                                        //主數據集打開
                                                                                                        D = TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dts0"));
                                                                                                        D.ParamByName("FInterID").AsString = dts1.FieldByName("FInterID").AsString;
                                                                                                        D.Open;
                                                                                                        //明細數據集打開
                                                                                                        DA = TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dts1"));
                                                                                                        DA.ParamByName("FInterID").AsString = dts1.FieldByName("FInterID").AsString;
                                                                                                        DA.Open;
                                                                                                        //列表數據集打開
                                                                                                        DList = TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsList"));
                                                                                                        DList.Locate("FInterID",dts1.FieldByName("FInterID").AsString,nil);
                                                                                                        //重新整理頁面編輯狀態
                                                                                                        TUgWebRunFrame(TUgWebForm(F).RunFrame).ExecuteCode("RefState(" + D.FieldByName("FStatus").AsString + ");"); 
                                                                                                        if (F.ShowModal == mrOK) 
                                                                                                        {
                                                                                                        
                                                                                                        }
                                                                                                        //關閉釋放視窗W-EQ-MOD-2135-2
                                                                                                        UGMM.DelWebSubForm("W-EQ-MOD-2135-2");
                                                                                                        btnQueryOnClick(sender);
                                                                                                      }
                                                                                                      
                                                                                                      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
                                                                                                      //PasScript
                                                                                                      procedure btnEditorOnClick(sender: tobject);
                                                                                                      //編輯銷售訂單
                                                                                                      Var
                                                                                                        F:TUniForm;
                                                                                                        D:TUgRFDataSet;
                                                                                                        DA: TUgRFDataSet;
                                                                                                        DList: TUgRFDataSet;
                                                                                                        i:String;
                                                                                                      begin
                                                                                                        //無明細選擇時退出
                                                                                                        if dts1.IsEmpty then Exit;
                                                                                                        //打開視窗頁面W-EQ-MOD-2135-1
                                                                                                        F := UGMM.GetWebSubForm('W-EQ-MOD-2135-1');
                                                                                                        F.Caption := UGMM.LT('編輯銷售訂單');
                                                                                                        //翻譯
                                                                                                        UGMM.LC(F);
                                                                                                        //主數據集打開
                                                                                                        D := TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dts0'));
                                                                                                        D.ParamByName('FInterID').AsString := dts1.FieldByName('FInterID').AsString;
                                                                                                        D.Open;
                                                                                                        //明細數據集打開
                                                                                                        DA := TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dts1'));
                                                                                                        DA.ParamByName('FInterID').AsString := dts1.FieldByName('FInterID').AsString;
                                                                                                        DA.Open;
                                                                                                        //列表數據集打開
                                                                                                        DList := TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsList'));
                                                                                                        DList.Locate('FInterID',dts1.FieldByName('FInterID').AsString,nil);
                                                                                                        //重新整理頁面編輯狀態
                                                                                                        TUgWebRunFrame(TUgWebForm(F).RunFrame).ExecuteCode('RefState(' + D.FieldByName('FStatus').AsString + ');'); 
                                                                                                        if F.ShowModal = mrOK then 
                                                                                                        Begin
                                                                                                           
                                                                                                        End;
                                                                                                        //關閉釋放視窗
                                                                                                        UGMM.DelWebSubForm('W-EQ-MOD-2135-1');
                                                                                                        btnQueryOnClick(sender);
                                                                                                      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
                                                                                                      // Make sure to add code blocks to your code group
                                                                                                      • btnRefreshOnClick:btnRefresh的OnClick事件,點選以重新整理顯示。
                                                                                                        //JScript
                                                                                                        function btnRefreshOnClick(sender)
                                                                                                        //重新整理
                                                                                                        {
                                                                                                          dts1.Close;
                                                                                                          resume;
                                                                                                          dts1.Open;    
                                                                                                        }
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        //PasScript
                                                                                                        procedure btnRefreshOnClick(sender: tobject);
                                                                                                        //重新整理
                                                                                                        begin
                                                                                                          dts1.Close;
                                                                                                          resume;
                                                                                                          dts1.Open;    
                                                                                                        end;
                                                                                                        
                                                                                                        1
                                                                                                        2
                                                                                                        3
                                                                                                        4
                                                                                                        5
                                                                                                        6
                                                                                                        7
                                                                                                        8
                                                                                                        // Make sure to add code blocks to your code group
                                                                                                        • btnChartOnClick:btnChart的OnClick事件,點選以打開銷售訂單排名分析視窗。
                                                                                                          //JScript
                                                                                                          function btnChartOnClick(sender)
                                                                                                          {
                                                                                                            //打開視窗銷售訂單排名分析
                                                                                                            var F = UGMM.GetWebSubForm("W-EQ-MOD-2136-2");
                                                                                                            F.Caption = UGMM.LT("銷售訂單排名分析");
                                                                                                            //翻譯
                                                                                                            UGMM.LC(F);
                                                                                                            //關閉釋放視窗
                                                                                                            if (F.ShowModal == mrOK) 
                                                                                                            {
                                                                                                            
                                                                                                            }
                                                                                                            UGMM.DelWebSubForm("W-EQ-MOD-2136-2");
                                                                                                          }
                                                                                                          
                                                                                                          1
                                                                                                          2
                                                                                                          3
                                                                                                          4
                                                                                                          5
                                                                                                          6
                                                                                                          7
                                                                                                          8
                                                                                                          9
                                                                                                          10
                                                                                                          11
                                                                                                          12
                                                                                                          13
                                                                                                          14
                                                                                                          15
                                                                                                          //PasScript
                                                                                                          procedure btnChartOnClick(sender: tobject);
                                                                                                          Var
                                                                                                            F:TUniForm;
                                                                                                          begin
                                                                                                            //打開銷售訂單排名分析W-EQ-MOD-2136-1
                                                                                                            F := UGMM.GetWebSubForm('W-EQ-MOD-2136-1');
                                                                                                            F.Caption := UGMM.LT('銷售訂單排名分析');
                                                                                                            //翻譯
                                                                                                            UGMM.LC(F);
                                                                                                            //關閉釋放視窗
                                                                                                            if F.ShowModal = mrOK then 
                                                                                                            Begin
                                                                                                          
                                                                                                            End;
                                                                                                            UGMM.DelWebSubForm('W-EQ-MOD-2136-1');
                                                                                                          end;
                                                                                                          
                                                                                                          1
                                                                                                          2
                                                                                                          3
                                                                                                          4
                                                                                                          5
                                                                                                          6
                                                                                                          7
                                                                                                          8
                                                                                                          9
                                                                                                          10
                                                                                                          11
                                                                                                          12
                                                                                                          13
                                                                                                          14
                                                                                                          15
                                                                                                          16
                                                                                                          17
                                                                                                          // Make sure to add code blocks to your code group
                                                                                                          • UgWebRunFrameOnAfterRunScript:UgWebRunFrame的OnAfterRunScript事件,啟用翻譯功能。
                                                                                                            //JScript
                                                                                                            function UgWebRunFrameOnAfterRunScript(sender)
                                                                                                            //翻譯及許可權驗證
                                                                                                            {
                                                                                                              UGMM.LC(Self);
                                                                                                                //打開頁面顯示,初始化控制元件顯示
                                                                                                                dts1.Close;
                                                                                                                dts1.Connection = GetRFERP;
                                                                                                                resume;
                                                                                                                UgComboBox01.Items.CommaText = UGMM.LT("全部,已審覈,草稿,作廢");
                                                                                                                UgComboBox01.ItemIndex = 0;
                                                                                                                UgComboBoxSelect;
                                                                                                                dts1.Open;
                                                                                                            }
                                                                                                            
                                                                                                            1
                                                                                                            2
                                                                                                            3
                                                                                                            4
                                                                                                            5
                                                                                                            6
                                                                                                            7
                                                                                                            8
                                                                                                            9
                                                                                                            10
                                                                                                            11
                                                                                                            12
                                                                                                            13
                                                                                                            14
                                                                                                            //PasScript
                                                                                                            procedure UgWebRunFrameOnAfterRunScript(const sender: tobject);
                                                                                                            //翻譯及許可權驗證
                                                                                                            begin
                                                                                                              UGMM.LC(Self);
                                                                                                            end;
                                                                                                            
                                                                                                            1
                                                                                                            2
                                                                                                            3
                                                                                                            4
                                                                                                            5
                                                                                                            6
                                                                                                            // Make sure to add code blocks to your code group
                                                                                                            • btnShowAllOnClick:btnShowAll的OnClick事件,顯示全部內容。
                                                                                                              //JScript
                                                                                                              function btnShowAllOnClick(sender)
                                                                                                              //顯示全部
                                                                                                              {
                                                                                                                UgDBGrid01.WebOptions.Paged = False;
                                                                                                                UgDBGrid01.Refresh;
                                                                                                              }
                                                                                                              
                                                                                                              1
                                                                                                              2
                                                                                                              3
                                                                                                              4
                                                                                                              5
                                                                                                              6
                                                                                                              7
                                                                                                              //PasScript
                                                                                                              procedure btnShowAllOnClick(sender: tobject);
                                                                                                              //顯示全部
                                                                                                              begin
                                                                                                                UgDBGrid01.WebOptions.Paged := False;
                                                                                                                UgDBGrid01.Refresh;
                                                                                                              end;
                                                                                                              
                                                                                                              1
                                                                                                              2
                                                                                                              3
                                                                                                              4
                                                                                                              5
                                                                                                              6
                                                                                                              7
                                                                                                              // Make sure to add code blocks to your code group
                                                                                                              • btnExitOnClick:btnExit的OnClick事件,點選以退出。
                                                                                                                //JScript
                                                                                                                function btnExitOnClick(sender)
                                                                                                                //退出
                                                                                                                {
                                                                                                                  var p = Self.Parent;
                                                                                                                  if (p is TUgWebForm)
                                                                                                                  {
                                                                                                                    TUgWebForm(p).Close;
                                                                                                                  }
                                                                                                                  if (p is TUniTabSheet)
                                                                                                                    UniSession.AddJS("document.getElementById(\"" + TUniTabSheet(p).jsid + "_tab-closeEl\").click();");
                                                                                                                }
                                                                                                                
                                                                                                                1
                                                                                                                2
                                                                                                                3
                                                                                                                4
                                                                                                                5
                                                                                                                6
                                                                                                                7
                                                                                                                8
                                                                                                                9
                                                                                                                10
                                                                                                                11
                                                                                                                12
                                                                                                                //PasScript
                                                                                                                procedure btnExitOnClick(sender: tobject);
                                                                                                                //退出
                                                                                                                Var
                                                                                                                  p:TComponent;
                                                                                                                Begin
                                                                                                                  p:=Self.Parent;
                                                                                                                  if p is TUgWebForm then
                                                                                                                  Begin
                                                                                                                    TUgWebForm(p).Close;
                                                                                                                  End;
                                                                                                                  if p is TUniTabSheet then
                                                                                                                    UniSession.AddJS('document.getElementById("' + TUniTabSheet(p).jsid + '_tab-closeEl").click();');
                                                                                                                End;
                                                                                                                
                                                                                                                1
                                                                                                                2
                                                                                                                3
                                                                                                                4
                                                                                                                5
                                                                                                                6
                                                                                                                7
                                                                                                                8
                                                                                                                9
                                                                                                                10
                                                                                                                11
                                                                                                                12
                                                                                                                13
                                                                                                                14
                                                                                                                // Make sure to add code blocks to your code group
                                                                                                                • btnWidgetEditOnClick:btnWidgetEdit的OnClick事件,按鈕位於表格中,點選以打開對應的編輯頁面。
                                                                                                                  //JScript
                                                                                                                  function btnWidgetEditOnClick(sender)
                                                                                                                  //編輯功能
                                                                                                                  {
                                                                                                                    btnEditorOnClick(Sender);
                                                                                                                  }
                                                                                                                  
                                                                                                                  1
                                                                                                                  2
                                                                                                                  3
                                                                                                                  4
                                                                                                                  5
                                                                                                                  6
                                                                                                                  //PasScript
                                                                                                                  procedure btnWidgetEditOnClick(sender: tobject);
                                                                                                                  //編輯功能
                                                                                                                  begin
                                                                                                                    btnEditorOnClick(Sender);
                                                                                                                  end;
                                                                                                                  
                                                                                                                  1
                                                                                                                  2
                                                                                                                  3
                                                                                                                  4
                                                                                                                  5
                                                                                                                  6
                                                                                                                  // Make sure to add code blocks to your code group
                                                                                                                  • UgComboBox01OnChange:UgComboBox01的OnChange事件,切換時更新查詢條件,設定顯示不同單據狀態的單據。
                                                                                                                    //JScript
                                                                                                                    function UgComboBox01OnChange(sender)
                                                                                                                    //切換時更新單據頁面顯示
                                                                                                                    {
                                                                                                                      dts1.Close;
                                                                                                                      resume;
                                                                                                                      UgComboBoxSelect;
                                                                                                                      dts1.Open;
                                                                                                                    }
                                                                                                                    
                                                                                                                    1
                                                                                                                    2
                                                                                                                    3
                                                                                                                    4
                                                                                                                    5
                                                                                                                    6
                                                                                                                    7
                                                                                                                    8
                                                                                                                    9
                                                                                                                    //PasScript
                                                                                                                    procedure UgComboBox01OnChange(sender: tobject);
                                                                                                                    //切換時更新單據頁面顯示
                                                                                                                    begin
                                                                                                                      dts1.Close;
                                                                                                                      resume;
                                                                                                                      UgComboBoxSelect;
                                                                                                                      dts1.Open;
                                                                                                                    end;
                                                                                                                    
                                                                                                                    1
                                                                                                                    2
                                                                                                                    3
                                                                                                                    4
                                                                                                                    5
                                                                                                                    6
                                                                                                                    7
                                                                                                                    8
                                                                                                                    9
                                                                                                                    // Make sure to add code blocks to your code group

                                                                                                                    # 3.1.5. 多語言設定

                                                                                                                      點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

                                                                                                                      收集此頁面視窗中所有需要進行翻譯的詞條(包括程式中設定的多語言專案),點選新增按鈕,根據提示填寫維護。

                                                                                                                    # 3.1.6. 運行效果

                                                                                                                    # 3.2. 銷售訂單編輯-多筆數據主從表單

                                                                                                                      點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為銷售訂單編輯的模組,新增的內容樣式如下,主要填寫組別、編號、標題、開發使用者等內容,使用PasScript的使用者編號請填寫為 W-EQ-MOD-2135-1,使用JScript的使用者編號請填寫 W-EQ-MOD-2135-2。填寫完成後,點選儲存按鈕。

                                                                                                                      選擇剛才建立的標題為銷售訂單編輯的模組,點選上方的模組設計按鈕,進入模組設計界面。

                                                                                                                      銷售訂單編輯的頁面設定如下圖。

                                                                                                                    # 3.2.1. 功能簡述

                                                                                                                      此頁面用於編輯銷售訂單的資訊,執行審覈、列印等操作,功能涉及到視窗數據集的數據匯入、查詢表數據的引入、審覈、消審功能的預存程序的引入、視窗列印與Flying列印的引入。

                                                                                                                    # 3.2.2. 窗體設定

                                                                                                                    屬性 取值 說明
                                                                                                                    Height 607 主窗體的高度(畫素)
                                                                                                                    Width 850 主窗體的寬度(畫素)

                                                                                                                    # 3.2.3. 控制元件設定

                                                                                                                    • 控制元件說明

                                                                                                                      修改控制元件設定時注意TUgPanel型別的控制元件需要清除Caption屬性中原有的字元內容。

                                                                                                                    控制元件名稱 控制元件型別 說明
                                                                                                                    UgPanel01 TUgPanel 面板控制元件,頂部按鈕佈局容器
                                                                                                                    UgContainerPanel01 TUgContainerPanel 面板控制元件,頂部佈局,顯示訂單日期,狀態資訊等控制元件的佈局容器
                                                                                                                    UgGroupBox01 TUgGroupBox 分組框控制元件,設定顯示訂單資訊的數據感知控制元件,
                                                                                                                    Caption:訂單資訊
                                                                                                                    UgPageControl01 TUgPageControl 標籤頁面分組控制元件,在窗體結構與檢視器中單擊選擇UgPageControl01,點選檢視器上方的新增按鈕新增標籤頁TUniabSheet新增四個標籤頁面
                                                                                                                    UniTabSheet1 TUniTabSheet PageControl1中的標籤頁面1
                                                                                                                    Caption:訂單明細
                                                                                                                    UniTabSheet2 TUniTabSheet PageControl1中的標籤頁面2
                                                                                                                    Caption:訂單要求
                                                                                                                    UniTabSheet3 TUniTabSheet PageControl1中的標籤頁面3
                                                                                                                    Caption:裝運及包裝要求
                                                                                                                    UniTabSheet4 TUniTabSheet PageControl1中的標籤頁面4
                                                                                                                    Caption:附件
                                                                                                                    btnAppend TUgBitBtn 新建按鈕,點選以新建銷售訂單
                                                                                                                    Caption:新建
                                                                                                                    btnFirst TUgBitBtn 首項按鈕,點選跳轉至記錄的首頁
                                                                                                                    Caption:首項
                                                                                                                    btnPrior TUgBitBtn 前項按鈕,點選跳轉至記錄的前項
                                                                                                                    Caption:前項
                                                                                                                    btnNext TUgBitBtn 後項按鈕,點選跳轉至記錄的後項
                                                                                                                    Caption:後項
                                                                                                                    btnLast TUgBitBtn 末項按鈕,點選跳轉至記錄的末項
                                                                                                                    Caption:末項
                                                                                                                    btnSave TUgBitBtn 儲存按鈕,點選以儲存單據的更改
                                                                                                                    Caption:儲存
                                                                                                                    btnExit TUgBitBtn 退出按鈕,點選以退出視窗
                                                                                                                    Caption:退出
                                                                                                                    btnMenu TUgMenuButton 功能表按鈕,用於放置特定的功能表專案
                                                                                                                    btnPrint TUgBitBtn Flying列印按鈕
                                                                                                                    Caption:Flying列印
                                                                                                                    btnPrintMenu TUgMenuButton 功能表按鈕,用於放置列印相關的功能表專案
                                                                                                                    UgPopupMenu01 TUgPopupMenu 設定功能表項的控制元件,在其中的Item專案中點選新增新增4個專案,分別命名為審覈、消審、作廢、還原、刪除
                                                                                                                    PopupCompoment:btnMenu
                                                                                                                    ComboBoxPrinter TUgComboBox 用於顯示印表機列表
                                                                                                                    Visible:控制元件是否可見,設定為False
                                                                                                                    dts0 TUgRFDataSet 銷售訂單主表數據集
                                                                                                                    ds0 TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dts0
                                                                                                                    dtsFStatus TUgRFDataSet 狀態表數據集
                                                                                                                    dsFStatus TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFStatus
                                                                                                                    dtsFStatus TUgRFDataSet 狀態表數據集
                                                                                                                    dsFStatus TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFStatus
                                                                                                                    dtsFSaleType TUgRFDataSet 銷售型別數據集
                                                                                                                    dsFSaleType TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFSaleType
                                                                                                                    dtsFCustID TUgRFDataSet 客戶名稱數據集
                                                                                                                    dsFCustID TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFCustID
                                                                                                                    dtsFCurrencyID TUgRFDataSet 幣種資料數據集
                                                                                                                    dsFCurrencyID TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFCurrencyID
                                                                                                                    dtsFDeptID TUgRFDataSet 部門名稱數據集
                                                                                                                    dsFDpetID TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFDeptID
                                                                                                                    dtsFEmpID TUgRFDataSet 業務員名稱數據集
                                                                                                                    dsFEmpID TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsFDeptEmpID
                                                                                                                    dtsList TUgRFDataSet 銷售訂單單據資訊數據集
                                                                                                                    dtsCust TUgRFDataSet 客戶資料數據集資訊
                                                                                                                    dtsCompany TUgRFDataSet 公司資料數據集資訊
                                                                                                                    UgTimer01 TUgTimer 定時器
                                                                                                                    UgSweetAlertClose TUgSweetAlert 在關閉時使用的訊息提示對話方塊。
                                                                                                                    UgFlying TUgFlying HttpPort:8808
                                                                                                                    ReportName:Sal_Order.fr3
                                                                                                                    • 主數據集數據感知控制元件說明

                                                                                                                      此頁面中首頁繫結的數據源DataSource為ds0,以下數據感知控制元件需修改每一個控制元件的以下屬性。TUgDBImage、TUgDBCheckBox控制元件型別的除外。

                                                                                                                    屬性 取值 說明
                                                                                                                    FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
                                                                                                                    FieldLabelWidth 60 設定標籤顯示欄位的寬度
                                                                                                                    數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                                                                                                    FDate 訂單日期 TUgDBDateTimePicker dts0FDate
                                                                                                                    FSaleType 銷售型別 TUgDBLookupComboBox lkupdts0FSaleType 列表繫結的數據源
                                                                                                                    ListSource:dsFSaleType
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField: FName
                                                                                                                    FStatus 狀態 TUgDBLookupComboBox lkupdts0FSaleType 列表繫結的數據源
                                                                                                                    ListSource:dsFStatus
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField: FID
                                                                                                                    Font.Size:20
                                                                                                                    Font.Name:標楷體
                                                                                                                    Font.Style.fsBold:True
                                                                                                                    FieldLabel預設為空
                                                                                                                    FBillNo 單據編號 TUgDBEdit eddts0FBillNo ReadOnly:False
                                                                                                                    FCustID 客戶名稱 TUgDBLookupComboBox lkupdts0FCustID 列表繫結的數據源
                                                                                                                    ListSource:dsFCustID
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FCustName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField:FCustID
                                                                                                                    FContractNo 合同號 TUgDBEdit eddts0FContractNo
                                                                                                                    FCurrencyID 幣種 TUgDBLookupComboBox lkupdts0FCurrencyID 列表繫結的數據源
                                                                                                                    ListSource:dsFCurrencyID
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FCurrencyName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField:FCurrencyID
                                                                                                                    FDeptID 部門名稱 TUgDBLookupComboBox lkupdts0FDeptID 列表繫結的數據源
                                                                                                                    ListSource:dsFDeptID
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FDeptName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField:FDeptID
                                                                                                                    FEmpID 業務員 TUgDBLookupComboBox lkupdts0FEmpID 列表繫結的數據源
                                                                                                                    ListSource:dsFEmpID
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FEmpName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField:FEmpID
                                                                                                                    FExchangeRate 匯率 TUgDBNumberEdit eddts0FExchangeRate
                                                                                                                    FNote 備註 TUgDBMemo mmdts0FNote
                                                                                                                    • UniTabSheet01控制元件說明

                                                                                                                    TPanel型別的控制元件需要清除Caption屬性中原有的字元內容。

                                                                                                                    控制元件名稱 控制元件型別 說明
                                                                                                                    UgPanel02 TUgPanel 佈局控制元件,佈局于頂部位置,放置按鈕
                                                                                                                    btnDelRow TBitBtn 刪除行按鈕
                                                                                                                    Caption:刪除行
                                                                                                                    btnCopyRow TBitBtn 複製行
                                                                                                                    Caption:複製行
                                                                                                                    btnImportItem TBitBtn 匯入物料
                                                                                                                    Caption:匯入物料
                                                                                                                    dts1 TRFDataSet 銷售訂單明細數據集
                                                                                                                    ds1 TDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dts1
                                                                                                                    UgDBGrid01 TUgDBGrid 銷售訂單明細數據表格
                                                                                                                    DataSource:ds1
                                                                                                                    • UgDBGrid01欄位設定

                                                                                                                      選擇並雙擊UgDBGrid01控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                                                                                                    • TUniabSheet2數據感知控制元件說明

                                                                                                                      此頁面中首頁繫結的數據源DataSource為ds0,

                                                                                                                    數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                                                                                                    FOrderRequest 訂單要求 TUgDBMemo memodts0FOrderRequest Align:alClient
                                                                                                                    FieldLabel:訂單要求
                                                                                                                    FieldLabelWidth:60
                                                                                                                    • UniTabSheet3控制元件說明

                                                                                                                    控制元件名稱 控制元件型別 說明
                                                                                                                    dtsPort TUgRFDataSet 港口資訊數據集
                                                                                                                    dsPort TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為dtsPort
                                                                                                                    • UniTabSheet3數據感知控制元件說明

                                                                                                                      此頁面中首頁繫結的數據源DataSource為ds0,以下數據感知控制元件需修改每一個控制元件的以下屬性。TUgDBImage、TUgDBCheckBox控制元件型別的除外。

                                                                                                                    屬性 取值 說明
                                                                                                                    FieldLabel 取值對應為數據欄位的中文名稱,作為控制元件顯示的標籤
                                                                                                                    FieldLabelWidth 60 設定標籤顯示欄位的寬度
                                                                                                                    數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                                                                                                    FSignDate 簽訂日期 TUgDBDateTimePicker dtpdts0FSignDate
                                                                                                                    FSignAddr 簽訂地點 TUgDBEdit eddts0FSignAddr
                                                                                                                    FBeginPort 出發港口 TUgDBLookupComboBox lkupdtts0FBeginPort 列表繫結的數據源
                                                                                                                    ListSource:dsPort
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField:FName
                                                                                                                    FEndPort 目的港口 TUgDBLookupComboBox lkupdts0FEndPort 列表繫結的數據源
                                                                                                                    ListSource:dsPort
                                                                                                                    列表顯示的欄位名
                                                                                                                    ListField:FName
                                                                                                                    列表對應返回的欄位值
                                                                                                                    KeyField:FName
                                                                                                                    FTrafficType 運輸方式 TUgDBEdit eddts0FTrafficType
                                                                                                                    FPacket 包裝方式 TUgDBMemo mmFPacket
                                                                                                                    • UniTabSheet4控制元件說明
                                                                                                                    控制元件名稱 控制元件型別 說明
                                                                                                                    btnUpload TUgBitBtn 上傳按鈕
                                                                                                                    Caption:上傳圖片
                                                                                                                    • UniTabSheet4數據感知控制元件說明

                                                                                                                      此頁面中首頁繫結的數據源DataSource為ds0。

                                                                                                                    數據欄位名稱 中文名稱 對應控制元件型別 控制元件名稱 備註
                                                                                                                    FImage 訂單圖片 TUgDBImage imgdts0FImage

                                                                                                                    # 3.2.4. 程式設計

                                                                                                                      在初始設定程式時,使用JScript使用者需勾選pub_js_tarslink與pub_js_messageinfo單元,使用PasScript的使用者請勾選pub_pas_tarslink與pub_pas_messageinfo單元。

                                                                                                                    • 初始設定:設定顯示數據集的初始化內容。
                                                                                                                      //JScript
                                                                                                                      //定義銷售訂單
                                                                                                                      var FBillID = 12020002;
                                                                                                                      
                                                                                                                      1
                                                                                                                      2
                                                                                                                      3
                                                                                                                      //PasScript
                                                                                                                      Const 
                                                                                                                      //定義銷售訂單
                                                                                                                      FBillID = 12020002;
                                                                                                                      
                                                                                                                      //......
                                                                                                                      
                                                                                                                      
                                                                                                                      Begin
                                                                                                                        //數據集初始設定
                                                                                                                        dts0.Connection := GETRFERP;
                                                                                                                        dts0.SQL.Text := 'select a.*,b.FCustName as FCustFullName,b.FAddress,b.FPhone1,b.FHousebank,b.FHouseBnkAct '+ 
                                                                                                                        ' from Sal_Order a(NOLOCK) LEFT JOIN Basic_Cust B ON A.FCustID = B.FInterID where a.FInterID =:FInterID';
                                                                                                                        
                                                                                                                        dts1.Connection := GETRFERP;
                                                                                                                        dts1.SQL.Text := 'select a.*,b.FBillNo as FTechnicsNo from Sal_OrderEntry a(NOLOCK) left join Tex_Technics ' + 
                                                                                                                        ' B on a.FTechnicsID = b.FInterID where a.FInterID =:FInterID order by a.FEntryID';
                                                                                                                        //單據列表(從主視窗中獲取)
                                                                                                                        dtsList.Connection := GETRFERP;
                                                                                                                        dtsList.SQL.Text := 'select FInterID FROM Sal_Order where 1=1';
                                                                                                                        dtsList.Open;
                                                                                                                        
                                                                                                                        //銷售型別
                                                                                                                        dtsFSaleType.Connection := GETRFERP;
                                                                                                                        dtsFSaleType.SQL.Text := 'SELECT a.FName,a.FInterID FROM dbo.Basic_CommonData A INNER JOIN Basic_CommonDataType '+ 
                                                                                                                        ' b ON a.FTypeID = b.FInterID WHERE b.FDataName = ''' + UGMM.LT('銷售型別') + '''';
                                                                                                                        dtsFSaleType.Open;
                                                                                                                        //狀態
                                                                                                                        dtsFStatus.Connection := GETRFERP;
                                                                                                                        dtsFStatus.SQL.Text := 'Select FName=''' + UGMM.LT('已作廢') + ''',FID = 0 union Select FName=''' + UGMM.LT('草 稿') + 
                                                                                                                        ''',FID = 1 union  Select FName=''' + UGMM.LT('已審覈') + ''',FID = 2 ORDER  BY FID desc';
                                                                                                                        dtsFStatus.Open;
                                                                                                                        //客戶資料
                                                                                                                        dtsFCustID.Connection := GETRFERP;
                                                                                                                        dtsFCustID.SQL.Text := 'select a.FCustCode,a.FShortName as FCustName,a.FCustName as FCustFullName,a.FEmpCode,a.FEmpName,' + 
                                                                                                                        'a.FAddress,a.FPhone1,a.FPhone2,a.FTel,a.FContacts,a.FHouseBank,a.FHouseBnkAct,A.FDeptCode,A.FDeptName,a.FInterID as ' + 
                                                                                                                        'FCustID,a.FEmpID,a.FDeptID,A.FSettleID,A.FSettleName,A.FPayItemID,A.FPayItemName,A.FSaleType, a.FSaleType as FOrderType ' + 
                                                                                                                        'from Basic_Cust A left join Basic_employee b on a.FEmpID = b.FInterID where isnull(a.FfrozenFor,0) = 0 order by FCustCode';
                                                                                                                        dtsFCustID.Open;
                                                                                                                        
                                                                                                                        //部門
                                                                                                                        dtsFDeptID.Connection := GETRFERP;
                                                                                                                        dtsFDeptID.SQL.Text := 'SELECT FGroupID as FDeptID,FGroupCode as FDeptCode,FGroupName as FDeptName FROM Dict_GroupInfo';
                                                                                                                        dtsFDeptID.Open;
                                                                                                                        
                                                                                                                        //業務員
                                                                                                                        dtsFEmpID.Connection := GETRFERP;
                                                                                                                        dtsFEmpID.SQL.Text := 'SELECT FInterID as FEmpID,FEmpCode,FEmpName FROM Basic_Employee';
                                                                                                                        dtsFEmpID.Open;
                                                                                                                        
                                                                                                                        //幣種
                                                                                                                        dtsFCurrencyID.Connection := GETRFERP;
                                                                                                                        dtsFCurrencyID.SQL.Text := 'SELECT FCode as FCurrencyCode,FName as FCurrencyName,FInterID AS FCurrencyID,FExRate AS ' + 
                                                                                                                        'FExchangeRate FROM Basic_Currency';
                                                                                                                        dtsFCurrencyID.Open;  
                                                                                                                        
                                                                                                                        //港口
                                                                                                                        dtsPort.Connection := GETRFERP;
                                                                                                                        dtsPort.SQL.Text := 'SELECT a.FName,a.FInterID FROM dbo.Basic_CommonData A INNER JOIN Basic_CommonDataType b ON ' + 
                                                                                                                        'a.FTypeID = b.FInterID WHERE b.FDataName = ''' + UGMM.LT('港口') + '''';
                                                                                                                        dtsPort.Open; 
                                                                                                                        
                                                                                                                        //物料
                                                                                                                        dtsFItemCode.Connection := GETRFERP;
                                                                                                                        dtsFItemCode.SQL.Text := 'select A.FInterID as FItemID,A.FItemCode,A.FItemName,A.FItemSpec,A.FUnitID,A.FUnitCode,A.FUnitName,' + 
                                                                                                                        'b.FCoefficient,dbo.fun_GetPY(A.FItemName) as PY '+
                                                                                                                       	'from Basic_Item A left join basic_Unit B on a.FUnitID = b.FInterID ' +
                                                                                                                      	'left join Basic_ItemGroup c on a.FGroupID = c.FInterID ' +
                                                                                                                        'where A.FTypeID=1  and isnull(FfrozenFor,0) = 0 ' +
                                                                                                                        'Order by FItemCode';
                                                                                                                        dtsFItemCode.Open;
                                                                                                                        
                                                                                                                        //公司資料
                                                                                                                        dtsCompany.Connection := GETRFERP;
                                                                                                                        dtsCompany.SQL.Text := 'select top 1 * FROM Basic_Company';
                                                                                                                        dtsCompany.Open;
                                                                                                                      
                                                                                                                        //新增列印報表
                                                                                                                        UGMM.AddReport(btnPrintMenu,//報表功能附加到哪個按鈕下,名稱為對應的控制元件名稱,此處僅為示例,實際使用修改爲你使用的名稱,比如UgMenuButton01
                                                                                                                                       UGMM.ReportDesignPermission(Self),//報表設計許可權【動態模組:目前登陸使用者等於模組開發者時】
                                                                                                                                       self.Guid);
                                                                                                                      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
                                                                                                                      44
                                                                                                                      45
                                                                                                                      46
                                                                                                                      47
                                                                                                                      48
                                                                                                                      49
                                                                                                                      50
                                                                                                                      51
                                                                                                                      52
                                                                                                                      53
                                                                                                                      54
                                                                                                                      55
                                                                                                                      56
                                                                                                                      57
                                                                                                                      58
                                                                                                                      59
                                                                                                                      60
                                                                                                                      61
                                                                                                                      62
                                                                                                                      63
                                                                                                                      64
                                                                                                                      65
                                                                                                                      66
                                                                                                                      67
                                                                                                                      68
                                                                                                                      69
                                                                                                                      70
                                                                                                                      71
                                                                                                                      72
                                                                                                                      73
                                                                                                                      74
                                                                                                                      75
                                                                                                                      76
                                                                                                                      77
                                                                                                                      78
                                                                                                                      79
                                                                                                                      80
                                                                                                                      81
                                                                                                                      82
                                                                                                                      // Make sure to add code blocks to your code group
                                                                                                                      • RefState:設定按鈕編輯狀態的子程式。
                                                                                                                        //JScript
                                                                                                                        function RefState(aState)
                                                                                                                        //按鈕及控制元件狀態定義
                                                                                                                        {
                                                                                                                          Self.Tag = aState;
                                                                                                                          if (aState == -1)
                                                                                                                          //草稿編輯狀態
                                                                                                                          {
                                                                                                                            btnFirst.Enabled = False;
                                                                                                                            btnPrior.Enabled = False;
                                                                                                                            btnNext.Enabled = False;
                                                                                                                            btnLast.Enabled = False;
                                                                                                                            btnAppend.Enabled = False;
                                                                                                                            btnPrint.Enabled = False;
                                                                                                                            btnSave.Enabled = True;
                                                                                                                            btnUploadImage.Enabled = True;
                                                                                                                            btnNewRow.Enabled = True;
                                                                                                                            btnDelRow.Enabled = True;
                                                                                                                            btnCopyRow.Enabled = True;
                                                                                                                            btnRowUp.Enabled = True;
                                                                                                                            btnRowDown.Enabled = True;
                                                                                                                            btnImportItem.Enabled = True;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit = True;
                                                                                                                            ds1.AutoEdit = True;
                                                                                                                            lkupdts0FSalType.AutoEdit = True;
                                                                                                                            lkupdts0FCustID.AutoEdit = True;
                                                                                                                            lkupdts0FDeptID.AutoEdit = True;
                                                                                                                            lkupdts0FEmpID.AutoEdit = True;
                                                                                                                            lkupdts0FOrderType.AutoEdit = True;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit = True;
                                                                                                                            UgDBGrid01.ReadOnly = False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit = True;
                                                                                                                            lkupdts0FEndPort.AutoEdit = True;
                                                                                                                            lkupdts0FTrafficType.AutoEdit = True;
                                                                                                                          }
                                                                                                                          if (aState == 1)
                                                                                                                          //草稿儲存狀態
                                                                                                                          {
                                                                                                                            btnFirst.Enabled = True;
                                                                                                                            btnPrior.Enabled = True;
                                                                                                                            btnNext.Enabled = True;
                                                                                                                            btnLast.Enabled = True;
                                                                                                                            btnAppend.Enabled = True;
                                                                                                                            btnPrint.Enabled = True;
                                                                                                                            btnSave.Enabled = False;
                                                                                                                            btnUploadImage.Enabled = True;
                                                                                                                            btnNewRow.Enabled = True;
                                                                                                                            btnDelRow.Enabled = True;
                                                                                                                            btnCopyRow.Enabled = True;
                                                                                                                            btnRowUp.Enabled = True;
                                                                                                                            btnRowDown.Enabled = True;
                                                                                                                            btnImportItem.Enabled = True;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit = True;
                                                                                                                            ds1.AutoEdit = True;
                                                                                                                            lkupdts0FSalType.AutoEdit = True;
                                                                                                                            lkupdts0FCustID.AutoEdit = True;
                                                                                                                            lkupdts0FDeptID.AutoEdit = True;
                                                                                                                            lkupdts0FEmpID.AutoEdit = True;
                                                                                                                            lkupdts0FOrderType.AutoEdit = True;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit = True;
                                                                                                                            UgDBGrid01.ReadOnly = False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit = True;
                                                                                                                            lkupdts0FEndPort.AutoEdit = True;
                                                                                                                            lkupdts0FTrafficType.AutoEdit = True;  
                                                                                                                          }
                                                                                                                            
                                                                                                                          if (aState == 2)
                                                                                                                          //審覈狀態
                                                                                                                          {
                                                                                                                            btnFirst.Enabled = True;
                                                                                                                            btnPrior.Enabled = True;
                                                                                                                            btnNext.Enabled = True;
                                                                                                                            btnLast.Enabled = True;
                                                                                                                            btnAppend.Enabled = True;
                                                                                                                            btnPrint.Enabled = True;
                                                                                                                            btnSave.Enabled = False;
                                                                                                                            btnUploadImage.Enabled = False;
                                                                                                                            btnNewRow.Enabled = False;
                                                                                                                            btnDelRow.Enabled = False;
                                                                                                                            btnCopyRow.Enabled = False;
                                                                                                                            btnRowUp.Enabled = False;
                                                                                                                            btnRowDown.Enabled = False;
                                                                                                                            btnImportItem.Enabled = False;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit = False;
                                                                                                                            ds1.AutoEdit = False;
                                                                                                                            lkupdts0FSalType.AutoEdit = False;
                                                                                                                            lkupdts0FCustID.AutoEdit = False;
                                                                                                                            lkupdts0FDeptID.AutoEdit = False;
                                                                                                                            lkupdts0FEmpID.AutoEdit = False;
                                                                                                                            lkupdts0FOrderType.AutoEdit = False;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit = False;
                                                                                                                            UgDBGrid01.ReadOnly = False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit = False;
                                                                                                                            lkupdts0FEndPort.AutoEdit = False;
                                                                                                                            lkupdts0FTrafficType.AutoEdit = False;
                                                                                                                          }
                                                                                                                        
                                                                                                                          if (aState == 0)
                                                                                                                          //作廢狀態
                                                                                                                          {
                                                                                                                            btnFirst.Enabled = True;
                                                                                                                            btnPrior.Enabled = True;
                                                                                                                            btnNext.Enabled = True;
                                                                                                                            btnLast.Enabled = True;
                                                                                                                            btnAppend.Enabled = True;
                                                                                                                            btnPrint.Enabled = False; 
                                                                                                                            btnSave.Enabled = False;
                                                                                                                            btnUploadImage.Enabled = False;
                                                                                                                            btnNewRow.Enabled = False;
                                                                                                                            btnDelRow.Enabled = False;
                                                                                                                            btnCopyRow.Enabled = False;
                                                                                                                            btnRowUp.Enabled = False;
                                                                                                                            btnRowDown.Enabled = False;
                                                                                                                            btnImportItem.Enabled = False;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit = False;
                                                                                                                            ds1.AutoEdit = False;
                                                                                                                            lkupdts0FSalType.AutoEdit = False;
                                                                                                                            lkupdts0FCustID.AutoEdit = False;
                                                                                                                            lkupdts0FDeptID.AutoEdit = False;
                                                                                                                            lkupdts0FEmpID.AutoEdit = False;
                                                                                                                            lkupdts0FOrderType.AutoEdit = False;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit = False;
                                                                                                                            UgDBGrid01.ReadOnly = False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit = False;
                                                                                                                            lkupdts0FEndPort.AutoEdit = False;
                                                                                                                            lkupdts0FTrafficType.AutoEdit = False;     
                                                                                                                          }
                                                                                                                        }
                                                                                                                        
                                                                                                                        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
                                                                                                                        44
                                                                                                                        45
                                                                                                                        46
                                                                                                                        47
                                                                                                                        48
                                                                                                                        49
                                                                                                                        50
                                                                                                                        51
                                                                                                                        52
                                                                                                                        53
                                                                                                                        54
                                                                                                                        55
                                                                                                                        56
                                                                                                                        57
                                                                                                                        58
                                                                                                                        59
                                                                                                                        60
                                                                                                                        61
                                                                                                                        62
                                                                                                                        63
                                                                                                                        64
                                                                                                                        65
                                                                                                                        66
                                                                                                                        67
                                                                                                                        68
                                                                                                                        69
                                                                                                                        70
                                                                                                                        71
                                                                                                                        72
                                                                                                                        73
                                                                                                                        74
                                                                                                                        75
                                                                                                                        76
                                                                                                                        77
                                                                                                                        78
                                                                                                                        79
                                                                                                                        80
                                                                                                                        81
                                                                                                                        82
                                                                                                                        83
                                                                                                                        84
                                                                                                                        85
                                                                                                                        86
                                                                                                                        87
                                                                                                                        88
                                                                                                                        89
                                                                                                                        90
                                                                                                                        91
                                                                                                                        92
                                                                                                                        93
                                                                                                                        94
                                                                                                                        95
                                                                                                                        96
                                                                                                                        97
                                                                                                                        98
                                                                                                                        99
                                                                                                                        100
                                                                                                                        101
                                                                                                                        102
                                                                                                                        103
                                                                                                                        104
                                                                                                                        105
                                                                                                                        106
                                                                                                                        107
                                                                                                                        108
                                                                                                                        109
                                                                                                                        110
                                                                                                                        111
                                                                                                                        112
                                                                                                                        113
                                                                                                                        114
                                                                                                                        115
                                                                                                                        116
                                                                                                                        117
                                                                                                                        118
                                                                                                                        119
                                                                                                                        120
                                                                                                                        121
                                                                                                                        122
                                                                                                                        123
                                                                                                                        124
                                                                                                                        125
                                                                                                                        126
                                                                                                                        127
                                                                                                                        128
                                                                                                                        129
                                                                                                                        130
                                                                                                                        131
                                                                                                                        132
                                                                                                                        133
                                                                                                                        134
                                                                                                                        135
                                                                                                                        136
                                                                                                                        //PasScript
                                                                                                                        procedure RefState(aState: Integer);
                                                                                                                        //按鈕及控制元件狀態定義
                                                                                                                        Begin
                                                                                                                          Self.Tag := aState;
                                                                                                                          if aState = -1 then
                                                                                                                          //草稿編輯狀態
                                                                                                                          begin
                                                                                                                            btnFirst.Enabled := False;
                                                                                                                            btnPrior.Enabled := False;
                                                                                                                            btnNext.Enabled := False;
                                                                                                                            btnLast.Enabled := False;
                                                                                                                            btnAppend.Enabled := False;
                                                                                                                            btnPrint.Enabled := False;
                                                                                                                            btnSave.Enabled := True;
                                                                                                                            btnUploadImage.Enabled := True;
                                                                                                                            btnNewRow.Enabled := True;
                                                                                                                            btnDelRow.Enabled := True;
                                                                                                                            btnCopyRow.Enabled := True;
                                                                                                                            btnRowUp.Enabled := True;
                                                                                                                            btnRowDown.Enabled := True;
                                                                                                                            btnImportItem.Enabled := True;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit := True;
                                                                                                                            ds1.AutoEdit := True;
                                                                                                                            lkupdts0FSalType.AutoEdit := True;
                                                                                                                            lkupdts0FCustID.AutoEdit := True;
                                                                                                                            lkupdts0FDeptID.AutoEdit := True;
                                                                                                                            lkupdts0FEmpID.AutoEdit := True;
                                                                                                                            lkupdts0FOrderType.AutoEdit := True;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit := True;
                                                                                                                            UgDBGrid01.ReadOnly := False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit := True;
                                                                                                                            lkupdts0FEndPort.AutoEdit := True;
                                                                                                                            lkupdts0FTrafficType.AutoEdit := True;
                                                                                                                          end;
                                                                                                                          if aState = 1 Then
                                                                                                                          //草稿儲存狀態
                                                                                                                          begin
                                                                                                                            btnFirst.Enabled := True;
                                                                                                                            btnPrior.Enabled := True;
                                                                                                                            btnNext.Enabled := True;
                                                                                                                            btnLast.Enabled := True;
                                                                                                                            btnAppend.Enabled := True;
                                                                                                                            btnPrint.Enabled := True;
                                                                                                                            btnSave.Enabled := False;
                                                                                                                            btnUploadImage.Enabled := True;
                                                                                                                            btnNewRow.Enabled := True;
                                                                                                                            btnDelRow.Enabled := True;
                                                                                                                            btnCopyRow.Enabled := True;
                                                                                                                            btnRowUp.Enabled := True;
                                                                                                                            btnRowDown.Enabled := True;
                                                                                                                            btnImportItem.Enabled := True;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit := True;
                                                                                                                            ds1.AutoEdit := True;
                                                                                                                            lkupdts0FSalType.AutoEdit := True;
                                                                                                                            lkupdts0FCustID.AutoEdit := True;
                                                                                                                            lkupdts0FDeptID.AutoEdit := True;
                                                                                                                            lkupdts0FEmpID.AutoEdit := True;
                                                                                                                            lkupdts0FOrderType.AutoEdit := True;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit := True;
                                                                                                                            UgDBGrid01.ReadOnly := False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit := True;
                                                                                                                            lkupdts0FEndPort.AutoEdit := True;
                                                                                                                            lkupdts0FTrafficType.AutoEdit := True;  
                                                                                                                          end;
                                                                                                                          
                                                                                                                          if aState = 2 Then
                                                                                                                          //審覈狀態
                                                                                                                          begin
                                                                                                                            btnFirst.Enabled := True;
                                                                                                                            btnPrior.Enabled := True;
                                                                                                                            btnNext.Enabled := True;
                                                                                                                            btnLast.Enabled := True;
                                                                                                                            btnAppend.Enabled := True;
                                                                                                                            btnPrint.Enabled := True;
                                                                                                                            btnSave.Enabled := False;
                                                                                                                            btnUploadImage.Enabled := False;
                                                                                                                            btnNewRow.Enabled := False;
                                                                                                                            btnDelRow.Enabled := False;
                                                                                                                            btnCopyRow.Enabled := False;
                                                                                                                            btnRowUp.Enabled := False;
                                                                                                                            btnRowDown.Enabled := False;
                                                                                                                            btnImportItem.Enabled := False;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit := False;
                                                                                                                            ds1.AutoEdit := False;
                                                                                                                            lkupdts0FSalType.AutoEdit := False;
                                                                                                                            lkupdts0FCustID.AutoEdit := False;
                                                                                                                            lkupdts0FDeptID.AutoEdit := False;
                                                                                                                            lkupdts0FEmpID.AutoEdit := False;
                                                                                                                            lkupdts0FOrderType.AutoEdit := False;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit := False;
                                                                                                                            UgDBGrid01.ReadOnly := False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit := False;
                                                                                                                            lkupdts0FEndPort.AutoEdit := False;
                                                                                                                            lkupdts0FTrafficType.AutoEdit := False;
                                                                                                                          End;
                                                                                                                        
                                                                                                                          if aState = 0 Then
                                                                                                                          //作廢狀態
                                                                                                                          Begin
                                                                                                                            btnFirst.Enabled := True;
                                                                                                                            btnPrior.Enabled := True;
                                                                                                                            btnNext.Enabled := True;
                                                                                                                            btnLast.Enabled := True;
                                                                                                                            btnAppend.Enabled := True;
                                                                                                                            btnPrint.Enabled := False; 
                                                                                                                            btnSave.Enabled := False;
                                                                                                                            btnUploadImage.Enabled := False;
                                                                                                                            btnNewRow.Enabled := False;
                                                                                                                            btnDelRow.Enabled := False;
                                                                                                                            btnCopyRow.Enabled := False;
                                                                                                                            btnRowUp.Enabled := False;
                                                                                                                            btnRowDown.Enabled := False;
                                                                                                                            btnImportItem.Enabled := False;
                                                                                                                            
                                                                                                                            //控制元件控制
                                                                                                                            ds0.AutoEdit := False;
                                                                                                                            ds1.AutoEdit := False;
                                                                                                                            lkupdts0FSalType.AutoEdit := False;
                                                                                                                            lkupdts0FCustID.AutoEdit := False;
                                                                                                                            lkupdts0FDeptID.AutoEdit := False;
                                                                                                                            lkupdts0FEmpID.AutoEdit := False;
                                                                                                                            lkupdts0FOrderType.AutoEdit := False;
                                                                                                                            lkupdts0FCurrencyID.AutoEdit := False;
                                                                                                                            UgDBGrid01.ReadOnly := False;
                                                                                                                            lkupdts0FBeginPort.AutoEdit := False;
                                                                                                                            lkupdts0FEndPort.AutoEdit := False;
                                                                                                                            lkupdts0FTrafficType.AutoEdit := False;     
                                                                                                                          End;
                                                                                                                        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
                                                                                                                        44
                                                                                                                        45
                                                                                                                        46
                                                                                                                        47
                                                                                                                        48
                                                                                                                        49
                                                                                                                        50
                                                                                                                        51
                                                                                                                        52
                                                                                                                        53
                                                                                                                        54
                                                                                                                        55
                                                                                                                        56
                                                                                                                        57
                                                                                                                        58
                                                                                                                        59
                                                                                                                        60
                                                                                                                        61
                                                                                                                        62
                                                                                                                        63
                                                                                                                        64
                                                                                                                        65
                                                                                                                        66
                                                                                                                        67
                                                                                                                        68
                                                                                                                        69
                                                                                                                        70
                                                                                                                        71
                                                                                                                        72
                                                                                                                        73
                                                                                                                        74
                                                                                                                        75
                                                                                                                        76
                                                                                                                        77
                                                                                                                        78
                                                                                                                        79
                                                                                                                        80
                                                                                                                        81
                                                                                                                        82
                                                                                                                        83
                                                                                                                        84
                                                                                                                        85
                                                                                                                        86
                                                                                                                        87
                                                                                                                        88
                                                                                                                        89
                                                                                                                        90
                                                                                                                        91
                                                                                                                        92
                                                                                                                        93
                                                                                                                        94
                                                                                                                        95
                                                                                                                        96
                                                                                                                        97
                                                                                                                        98
                                                                                                                        99
                                                                                                                        100
                                                                                                                        101
                                                                                                                        102
                                                                                                                        103
                                                                                                                        104
                                                                                                                        105
                                                                                                                        106
                                                                                                                        107
                                                                                                                        108
                                                                                                                        109
                                                                                                                        110
                                                                                                                        111
                                                                                                                        112
                                                                                                                        113
                                                                                                                        114
                                                                                                                        115
                                                                                                                        116
                                                                                                                        117
                                                                                                                        118
                                                                                                                        119
                                                                                                                        120
                                                                                                                        121
                                                                                                                        122
                                                                                                                        123
                                                                                                                        124
                                                                                                                        125
                                                                                                                        126
                                                                                                                        127
                                                                                                                        128
                                                                                                                        129
                                                                                                                        130
                                                                                                                        131
                                                                                                                        132
                                                                                                                        133
                                                                                                                        134
                                                                                                                        135
                                                                                                                        136
                                                                                                                        // Make sure to add code blocks to your code group
                                                                                                                        • UgWebRunFrameOnAfterRunScript:UgWebRunFrame的OnAfterRunScript事件,翻譯頁面。
                                                                                                                          //JScript
                                                                                                                          function UgWebRunFrameOnAfterRunScript(sender)
                                                                                                                          //翻譯頁面
                                                                                                                          {
                                                                                                                            UGMM.LC(Self);
                                                                                                                            //數據集初始設定
                                                                                                                            dts0.Connection = GETRFERP;
                                                                                                                            dts0.SQL.Text = "select a.*,b.FCustName as FCustFullName,b.FAddress,b.FPhone1,b.FHousebank,b.FHouseBnkAct "+ 
                                                                                                                            " from Sal_Order a(NOLOCK) LEFT JOIN Basic_Cust B ON A.FCustID = B.FInterID where a.FInterID = :FInterID";
                                                                                                                            
                                                                                                                            dts1.Connection = GETRFERP;
                                                                                                                            dts1.SQL.Text = "select a.*,b.FBillNo as FTechnicsNo from Sal_OrderEntry a(NOLOCK) left join Tex_Technics " + 
                                                                                                                            " B on a.FTechnicsID = b.FInterID where a.FInterID =:FInterID order by a.FEntryID";
                                                                                                                            //單據列表(從主視窗中獲取)
                                                                                                                            dtsList.Connection = GETRFERP;
                                                                                                                            dtsList.SQL.Text = "select FInterID FROM Sal_Order where 1=1";
                                                                                                                            dtsList.Open;
                                                                                                                            
                                                                                                                            //銷售型別
                                                                                                                            dtsFSaleType.Connection = GETRFERP;
                                                                                                                            dtsFSaleType.SQL.Text = "SELECT a.FName,a.FInterID FROM dbo.Basic_CommonData A INNER JOIN Basic_CommonDataType "+ 
                                                                                                                            " b ON a.FTypeID = b.FInterID WHERE b.FDataName = '" + UGMM.LT("銷售型別") + "'";
                                                                                                                            dtsFSaleType.Open;
                                                                                                                            //狀態
                                                                                                                            dtsFStatus.Connection = GETRFERP;
                                                                                                                            dtsFStatus.SQL.Text = "Select FName= '" + UGMM.LT("已作廢") + "',FID = 0 union Select FName= '" + UGMM.LT("草 稿") + 
                                                                                                                            "',FID = 1 union  Select FName='" + UGMM.LT("已審覈") + "',FID = 2 ORDER  BY FID desc";
                                                                                                                            dtsFStatus.Open;
                                                                                                                            //客戶資料
                                                                                                                            dtsFCustID.Connection = GETRFERP;
                                                                                                                            dtsFCustID.SQL.Text = "select a.FCustCode,a.FShortName as FCustName,a.FCustName as FCustFullName,a.FEmpCode,a.FEmpName," + 
                                                                                                                            "a.FAddress,a.FPhone1,a.FPhone2,a.FTel,a.FContacts,a.FHouseBank,a.FHouseBnkAct,A.FDeptCode,A.FDeptName,a.FInterID as " + 
                                                                                                                            "FCustID,a.FEmpID,a.FDeptID,A.FSettleID,A.FSettleName,A.FPayItemID,A.FPayItemName,A.FSaleType, a.FSaleType as FOrderType " + 
                                                                                                                            "from Basic_Cust A left join Basic_employee b on a.FEmpID = b.FInterID where isnull(a.FfrozenFor,0) = 0 order by FCustCode";
                                                                                                                            dtsFCustID.Open;
                                                                                                                            
                                                                                                                            //部門
                                                                                                                            dtsFDeptID.Connection = GETRFERP;
                                                                                                                            dtsFDeptID.SQL.Text = "SELECT FGroupID as FDeptID,FGroupCode as FDeptCode,FGroupName as FDeptName FROM Dict_GroupInfo";
                                                                                                                            dtsFDeptID.Open;
                                                                                                                            
                                                                                                                            //業務員
                                                                                                                            dtsFEmpID.Connection = GETRFERP;
                                                                                                                            dtsFEmpID.SQL.Text = "SELECT FInterID as FEmpID,FEmpCode,FEmpName FROM Basic_Employee";
                                                                                                                            dtsFEmpID.Open;
                                                                                                                            
                                                                                                                            //幣種
                                                                                                                            dtsFCurrencyID.Connection = GETRFERP;
                                                                                                                            dtsFCurrencyID.SQL.Text = "SELECT FCode as FCurrencyCode,FName as FCurrencyName,FInterID AS FCurrencyID,FExRate AS " + 
                                                                                                                            "FExchangeRate FROM Basic_Currency";
                                                                                                                            dtsFCurrencyID.Open;  
                                                                                                                            
                                                                                                                            //港口
                                                                                                                            dtsPort.Connection = GETRFERP;
                                                                                                                            dtsPort.SQL.Text = "SELECT a.FName,a.FInterID FROM dbo.Basic_CommonData A INNER JOIN Basic_CommonDataType b ON " + 
                                                                                                                            "a.FTypeID = b.FInterID WHERE b.FDataName = '" + UGMM.LT("港口") + "'";
                                                                                                                            dtsPort.Open; 
                                                                                                                            
                                                                                                                            //物料
                                                                                                                            dtsFItemCode.Connection = GETRFERP;
                                                                                                                            dtsFItemCode.SQL.Text = "select A.FInterID as FItemID,A.FItemCode,A.FItemName,A.FItemSpec,A.FUnitID,A.FUnitCode,A.FUnitName," + 
                                                                                                                            "b.FCoefficient,dbo.fun_GetPY(A.FItemName) as PY "+
                                                                                                                           	"from Basic_Item A left join basic_Unit B on a.FUnitID = b.FInterID " +
                                                                                                                          	"left join Basic_ItemGroup c on a.FGroupID = c.FInterID " +
                                                                                                                            "where A.FTypeID=1  and isnull(FfrozenFor,0) = 0 " +
                                                                                                                            "Order by FItemCode";
                                                                                                                            dtsFItemCode.Open;
                                                                                                                            
                                                                                                                            //公司資料
                                                                                                                            dtsCompany.Connection = GETRFERP;
                                                                                                                            dtsCompany.SQL.Text = "select top 1 * FROM Basic_Company";
                                                                                                                            dtsCompany.Open;
                                                                                                                          
                                                                                                                            //新增列印報表
                                                                                                                            UGMM.AddReport(btnPrintMenu,//報表功能附加到哪個按鈕下,名稱為對應的控制元件名稱,此處僅為示例,實際使用修改爲你使用的名稱,比如UgMenuButton01
                                                                                                                                           UGMM.ReportDesignPermission(Self),//報表設計許可權【動態模組:目前登陸使用者等於模組開發者時】
                                                                                                                                           self.Guid);
                                                                                                                          }
                                                                                                                          
                                                                                                                          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
                                                                                                                          44
                                                                                                                          45
                                                                                                                          46
                                                                                                                          47
                                                                                                                          48
                                                                                                                          49
                                                                                                                          50
                                                                                                                          51
                                                                                                                          52
                                                                                                                          53
                                                                                                                          54
                                                                                                                          55
                                                                                                                          56
                                                                                                                          57
                                                                                                                          58
                                                                                                                          59
                                                                                                                          60
                                                                                                                          61
                                                                                                                          62
                                                                                                                          63
                                                                                                                          64
                                                                                                                          65
                                                                                                                          66
                                                                                                                          67
                                                                                                                          68
                                                                                                                          69
                                                                                                                          70
                                                                                                                          71
                                                                                                                          72
                                                                                                                          73
                                                                                                                          74
                                                                                                                          75
                                                                                                                          76
                                                                                                                          77
                                                                                                                          78
                                                                                                                          //PasScript
                                                                                                                          procedure UgWebRunFrameOnAfterRunScript(const sender: tobject);
                                                                                                                          //翻譯頁面
                                                                                                                          begin
                                                                                                                            UGMM.LC(Self);
                                                                                                                          end;
                                                                                                                          
                                                                                                                          1
                                                                                                                          2
                                                                                                                          3
                                                                                                                          4
                                                                                                                          5
                                                                                                                          6
                                                                                                                          // Make sure to add code blocks to your code group
                                                                                                                          • btnCloseOnClick:btnClose的OnClick事件,當關閉視窗時檢查是否處於編輯狀態,並彈窗提示。
                                                                                                                            //JScript
                                                                                                                            function btnCloseOnClick(sender)
                                                                                                                            //關閉視窗時檢查,是否處於編輯狀態,並彈窗提示
                                                                                                                            {
                                                                                                                              var p = Self.Parent;
                                                                                                                              if (p is TUgWebForm)
                                                                                                                              {
                                                                                                                                if (Self.tag == -1)
                                                                                                                                {
                                                                                                                                    UgSweetAlertClose.CancelButtonText = UGMM.LT("取消");
                                                                                                                                    UgSweetAlertClose.ConfirmButtonText = UGMM.LT("確定");
                                                                                                                                    UgSweetAlertClose.Title = UGMM.LT("提示");
                                                                                                                                    UgSweetAlertClose.Text = UGMM.LT("窗體處於編輯狀態,是否放棄儲存並關閉窗體?");
                                                                                                                                    UgSweetAlertClose.Show;
                                                                                                                                }
                                                                                                                                Else{
                                                                                                                                  TUgWebForm(p).Close;
                                                                                                                                }
                                                                                                                              }
                                                                                                                              if (p is TUniTabSheet)
                                                                                                                                UniSession.AddJS("document.getElementById(\"" + TUniTabSheet(p).jsid + "_tab-closeEl\").click();");
                                                                                                                            }
                                                                                                                            
                                                                                                                            1
                                                                                                                            2
                                                                                                                            3
                                                                                                                            4
                                                                                                                            5
                                                                                                                            6
                                                                                                                            7
                                                                                                                            8
                                                                                                                            9
                                                                                                                            10
                                                                                                                            11
                                                                                                                            12
                                                                                                                            13
                                                                                                                            14
                                                                                                                            15
                                                                                                                            16
                                                                                                                            17
                                                                                                                            18
                                                                                                                            19
                                                                                                                            20
                                                                                                                            21
                                                                                                                            22
                                                                                                                            //PasScript
                                                                                                                            procedure btnCloseOnClick(sender: tobject);
                                                                                                                            //關閉視窗時檢查,是否處於編輯狀態,並彈窗提示
                                                                                                                            Var
                                                                                                                              p:TComponent;
                                                                                                                            Begin
                                                                                                                              p:=Self.Parent;
                                                                                                                              if p is TUgWebForm then
                                                                                                                              Begin
                                                                                                                                if (Self.tag = -1) then
                                                                                                                                begin 
                                                                                                                                    UgSweetAlertClose.CancelButtonText := UGMM.LT('取消');
                                                                                                                                    UgSweetAlertClose.ConfirmButtonText := UGMM.LT('確定');
                                                                                                                                    UgSweetAlertClose.Title := UGMM.LT('提示');
                                                                                                                                    UgSweetAlertClose.Text := UGMM.LT('窗體處於編輯狀態,是否放棄儲存並關閉窗體?');
                                                                                                                                    UgSweetAlertClose.Show;
                                                                                                                                end
                                                                                                                                Else
                                                                                                                                  TUgWebForm(p).Close;
                                                                                                                              End;
                                                                                                                              if p is TUniTabSheet then
                                                                                                                                UniSession.AddJS('document.getElementById("' + TUniTabSheet(p).jsid + '_tab-closeEl").click();');
                                                                                                                            End;
                                                                                                                            
                                                                                                                            1
                                                                                                                            2
                                                                                                                            3
                                                                                                                            4
                                                                                                                            5
                                                                                                                            6
                                                                                                                            7
                                                                                                                            8
                                                                                                                            9
                                                                                                                            10
                                                                                                                            11
                                                                                                                            12
                                                                                                                            13
                                                                                                                            14
                                                                                                                            15
                                                                                                                            16
                                                                                                                            17
                                                                                                                            18
                                                                                                                            19
                                                                                                                            20
                                                                                                                            21
                                                                                                                            22
                                                                                                                            23
                                                                                                                            // Make sure to add code blocks to your code group
                                                                                                                            • lkupdts1FItemCodeOnChange:lkupdts1FItemCode的OnChange事件,更新物料程式碼選擇時對應更新顯示的內容。
                                                                                                                              //JScript
                                                                                                                              function lkupdts1FItemCodeOnChange(sender)
                                                                                                                              //更新物料程式碼選擇時對應更新顯示的內容
                                                                                                                              {
                                                                                                                                dts1.Edit;
                                                                                                                                dts1.FieldByName("FItemID").AsString = dtsFItemCode.FieldByName("FItemID").AsString;
                                                                                                                                dts1.FieldByName("FItemCode").AsString = dtsFItemCode.FieldByName("FItemCode").AsString;  
                                                                                                                                dts1.FieldByName("FItemName").AsString = dtsFItemCode.FieldByName("FItemName").AsString; 
                                                                                                                                dts1.FieldByName("FItemSpec").AsString = dtsFItemCode.FieldByName("FItemSpec").AsString; 
                                                                                                                                dts1.FieldByName("FUnitID").AsString = dtsFItemCode.FieldByName("FUnitID").AsString; 
                                                                                                                                dts1.FieldByName("FUnitCode").AsString = dtsFItemCode.FieldByName("FUnitCode").AsString; 
                                                                                                                                dts1.FieldByName("FUnitName").AsString = dtsFItemCode.FieldByName("FUnitName").AsString; 
                                                                                                                              }
                                                                                                                              
                                                                                                                              1
                                                                                                                              2
                                                                                                                              3
                                                                                                                              4
                                                                                                                              5
                                                                                                                              6
                                                                                                                              7
                                                                                                                              8
                                                                                                                              9
                                                                                                                              10
                                                                                                                              11
                                                                                                                              12
                                                                                                                              13
                                                                                                                              //PasScript
                                                                                                                              procedure lkupdts1FItemCodeOnChange(sender: tobject);
                                                                                                                              //更新物料程式碼選擇時對應更新顯示的內容
                                                                                                                              begin
                                                                                                                                dts1.Edit;
                                                                                                                                dts1.FieldByName('FItemID').AsString := dtsFItemCode.FieldByName('FItemID').AsString;
                                                                                                                                dts1.FieldByName('FItemCode').AsString := dtsFItemCode.FieldByName('FItemCode').AsString;  
                                                                                                                                dts1.FieldByName('FItemName').AsString := dtsFItemCode.FieldByName('FItemName').AsString; 
                                                                                                                                dts1.FieldByName('FItemSpec').AsString := dtsFItemCode.FieldByName('FItemSpec').AsString; 
                                                                                                                                dts1.FieldByName('FUnitID').AsString := dtsFItemCode.FieldByName('FUnitID').AsString; 
                                                                                                                                dts1.FieldByName('FUnitCode').AsString := dtsFItemCode.FieldByName('FUnitCode').AsString; 
                                                                                                                                dts1.FieldByName('FUnitName').AsString := dtsFItemCode.FieldByName('FUnitName').AsString; 
                                                                                                                              end;
                                                                                                                              
                                                                                                                              1
                                                                                                                              2
                                                                                                                              3
                                                                                                                              4
                                                                                                                              5
                                                                                                                              6
                                                                                                                              7
                                                                                                                              8
                                                                                                                              9
                                                                                                                              10
                                                                                                                              11
                                                                                                                              12
                                                                                                                              13
                                                                                                                              // Make sure to add code blocks to your code group
                                                                                                                              • PageSwitch:頁面切換時顯示的內容,配合首頁,末頁等使用。
                                                                                                                                //JScript
                                                                                                                                function PageSwitch()
                                                                                                                                //頁面切換時顯示的內容,配合首頁,末頁等使用
                                                                                                                                {
                                                                                                                                  dts0.Close;
                                                                                                                                  dts0.ParamByName("FInterID").AsString = dtsList.FieldByName("FInterID").AsString;
                                                                                                                                  dts0.Open;
                                                                                                                                  dts1.Close;
                                                                                                                                  dts1.ParamByName("FInterID").AsString = dtsList.FieldByName("FInterID").AsString;
                                                                                                                                  dts1.Open;
                                                                                                                                  RefState(dts0.FieldByName("FStatus").AsInteger);
                                                                                                                                }
                                                                                                                                
                                                                                                                                1
                                                                                                                                2
                                                                                                                                3
                                                                                                                                4
                                                                                                                                5
                                                                                                                                6
                                                                                                                                7
                                                                                                                                8
                                                                                                                                9
                                                                                                                                10
                                                                                                                                11
                                                                                                                                12
                                                                                                                                //PasScript
                                                                                                                                Procedure PageSwitch;
                                                                                                                                //頁面切換時顯示的內容,配合首頁,末頁等使用
                                                                                                                                Begin
                                                                                                                                  dts0.Close;
                                                                                                                                  dts0.ParamByName('FInterID').AsString := dtsList.FieldByName('FInterID').AsString;
                                                                                                                                  dts0.Open;
                                                                                                                                  dts1.Close;
                                                                                                                                  dts1.ParamByName('FInterID').AsString := dtsList.FieldByName('FInterID').AsString;
                                                                                                                                  dts1.Open;
                                                                                                                                  RefState(dts0.FieldByName('FStatus').AsInteger);
                                                                                                                                End;
                                                                                                                                
                                                                                                                                1
                                                                                                                                2
                                                                                                                                3
                                                                                                                                4
                                                                                                                                5
                                                                                                                                6
                                                                                                                                7
                                                                                                                                8
                                                                                                                                9
                                                                                                                                10
                                                                                                                                11
                                                                                                                                12
                                                                                                                                // Make sure to add code blocks to your code group
                                                                                                                                • btnFirstOnClick:btnFirst的OnClick事件,定位至首項。
                                                                                                                                  //JScript
                                                                                                                                  function btnFirstOnClick(sender)
                                                                                                                                  //首項
                                                                                                                                  {
                                                                                                                                    dtsList.First;
                                                                                                                                    PageSwitch;
                                                                                                                                  }
                                                                                                                                  
                                                                                                                                  1
                                                                                                                                  2
                                                                                                                                  3
                                                                                                                                  4
                                                                                                                                  5
                                                                                                                                  6
                                                                                                                                  7
                                                                                                                                  //PasScript
                                                                                                                                  procedure btnFirstOnClick(sender: tobject);
                                                                                                                                  //首項
                                                                                                                                  begin
                                                                                                                                    dtsList.First;
                                                                                                                                    PageSwitch;
                                                                                                                                  end;
                                                                                                                                  
                                                                                                                                  1
                                                                                                                                  2
                                                                                                                                  3
                                                                                                                                  4
                                                                                                                                  5
                                                                                                                                  6
                                                                                                                                  7
                                                                                                                                  // Make sure to add code blocks to your code group
                                                                                                                                  • btnPriorOnClick:btnPrior的OnClick事件,定位至前項。
                                                                                                                                    //JScript
                                                                                                                                    function btnPriorOnClick(sender)
                                                                                                                                    //前項
                                                                                                                                    {
                                                                                                                                      dtsList.Prior;
                                                                                                                                      PageSwitch;
                                                                                                                                    }
                                                                                                                                    
                                                                                                                                    1
                                                                                                                                    2
                                                                                                                                    3
                                                                                                                                    4
                                                                                                                                    5
                                                                                                                                    6
                                                                                                                                    7
                                                                                                                                    //PasScript
                                                                                                                                    procedure btnPriorOnClick(sender: tobject);
                                                                                                                                    //前項
                                                                                                                                    begin
                                                                                                                                      dtsList.Prior;
                                                                                                                                      PageSwitch;
                                                                                                                                    end;
                                                                                                                                    
                                                                                                                                    1
                                                                                                                                    2
                                                                                                                                    3
                                                                                                                                    4
                                                                                                                                    5
                                                                                                                                    6
                                                                                                                                    7
                                                                                                                                    // Make sure to add code blocks to your code group
                                                                                                                                    • btnNextOnClick:btnNext的OnClick事件,定位至後項。
                                                                                                                                      //JScript
                                                                                                                                      function btnNextOnClick(sender)
                                                                                                                                      //後項
                                                                                                                                      {
                                                                                                                                        dtsList.Next;
                                                                                                                                        PageSwitch;
                                                                                                                                      }
                                                                                                                                      
                                                                                                                                      1
                                                                                                                                      2
                                                                                                                                      3
                                                                                                                                      4
                                                                                                                                      5
                                                                                                                                      6
                                                                                                                                      7
                                                                                                                                      //PasScript
                                                                                                                                      procedure btnNextOnClick(sender: tobject);
                                                                                                                                      //後項
                                                                                                                                      begin
                                                                                                                                        dtsList.Next;
                                                                                                                                        PageSwitch;
                                                                                                                                      end;
                                                                                                                                      
                                                                                                                                      1
                                                                                                                                      2
                                                                                                                                      3
                                                                                                                                      4
                                                                                                                                      5
                                                                                                                                      6
                                                                                                                                      7
                                                                                                                                      // Make sure to add code blocks to your code group
                                                                                                                                      • btnLastOnClick:btnLast的OnClick事件,定位至末項。
                                                                                                                                        //JScript
                                                                                                                                        function btnLastOnClick(sender)
                                                                                                                                        //末項
                                                                                                                                        {
                                                                                                                                          dtsList.Last;
                                                                                                                                          PageSwitch;
                                                                                                                                        }
                                                                                                                                        
                                                                                                                                        1
                                                                                                                                        2
                                                                                                                                        3
                                                                                                                                        4
                                                                                                                                        5
                                                                                                                                        6
                                                                                                                                        7
                                                                                                                                        //PasScript
                                                                                                                                        procedure btnLastOnClick(sender: tobject);
                                                                                                                                        //末項
                                                                                                                                        begin
                                                                                                                                          dtsList.Last;
                                                                                                                                          PageSwitch;
                                                                                                                                        end;
                                                                                                                                        
                                                                                                                                        1
                                                                                                                                        2
                                                                                                                                        3
                                                                                                                                        4
                                                                                                                                        5
                                                                                                                                        6
                                                                                                                                        7
                                                                                                                                        // Make sure to add code blocks to your code group
                                                                                                                                        • btnAppendOnClick:btnAppend的OnClick事件,點選以打開視窗新建單據。
                                                                                                                                          //JScript
                                                                                                                                          function btnAppendOnClick(sender)
                                                                                                                                          //新建單據
                                                                                                                                          {
                                                                                                                                            var FInterID;
                                                                                                                                            //預留區,如果單據處於編輯狀態,新建按鈕會變成灰色
                                                                                                                                            FInterID = GetNodeID;
                                                                                                                                            dts0.Close;
                                                                                                                                            dts0.ParamByName("FInterID").AsInteger = FInterID;
                                                                                                                                            dts0.Open;
                                                                                                                                            dts0.Append;
                                                                                                                                            //產生單據號及相關資訊
                                                                                                                                            dts0.FieldByName("FInterID").AsInteger = FInterID;
                                                                                                                                            dts0.FieldByName("FBillID").AsInteger = FBillID;
                                                                                                                                            dts0.FieldByName("FBillNo").AsString = GetBillNo(IntToStr(FBillID),now,True);
                                                                                                                                            dts0.FieldByName("FDate").AsDateTime = Date;
                                                                                                                                            dts0.FieldByName("FSignDate").AsDateTime = Date;
                                                                                                                                            dts0.FieldByName("FContractNo").AsString = dts0.FieldByName("FBillNo").AsString;
                                                                                                                                            dts0.FieldByName("FExchangeRate").AsInteger = 1;
                                                                                                                                            dts0.FieldByName("FStatus").AsInteger = 1;
                                                                                                                                            dts0.FieldByName("FClosed").AsInteger = 0;
                                                                                                                                            dts0.FieldByName("FBiller").AsString = UGMM.Informations.Values["UserFullName"];
                                                                                                                                            dts0.FieldByName("FCreateDate").AsDateTime = now; 
                                                                                                                                            //明細單據更新
                                                                                                                                            dts1.Close;
                                                                                                                                            dts1.ParamByName("FInterID").AsString = dts0.FieldByName("FInterID").AsString;
                                                                                                                                            dts1.Open;
                                                                                                                                            //狀態重新整理
                                                                                                                                            RefState(-1);
                                                                                                                                          }
                                                                                                                                          
                                                                                                                                          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
                                                                                                                                          //PasScript
                                                                                                                                          procedure btnAppendOnClick(sender: tobject);
                                                                                                                                          //新建單據
                                                                                                                                          Var
                                                                                                                                            FInterID: Integer;
                                                                                                                                          begin
                                                                                                                                            //預留區,如果單據處於編輯狀態,新建按鈕會變成灰色
                                                                                                                                            FInterID := GetNodeID;
                                                                                                                                            dts0.Close;
                                                                                                                                            dts0.ParamByName('FInterID').AsInteger := FInterID;
                                                                                                                                            dts0.Open;
                                                                                                                                            dts0.Append;
                                                                                                                                            //產生單據號及相關資訊
                                                                                                                                            dts0.FieldByName('FInterID').AsInteger := FInterID;
                                                                                                                                            dts0.FieldByName('FBillID').AsInteger := FBillID;
                                                                                                                                            dts0.FieldByName('FBillNo').AsString := GetBillNo(IntToStr(FBillID),now,True);
                                                                                                                                            dts0.FieldByName('FDate').AsDateTime := Date;
                                                                                                                                            dts0.FieldByName('FSignDate').AsDateTime := Date;
                                                                                                                                            dts0.FieldByName('FContractNo').AsString := dts0.FieldByName('FBillNo').AsString;
                                                                                                                                            dts0.FieldByName('FExchangeRate').AsInteger := 1;
                                                                                                                                            dts0.FieldByName('FStatus').AsInteger := 1;
                                                                                                                                            dts0.FieldByName('FClosed').AsInteger := 0;
                                                                                                                                            dts0.FieldByName('FBiller').AsString := UGMM.Informations.Values['UserFullName'];
                                                                                                                                            dts0.FieldByName('FCreateDate').AsDateTime := now; 
                                                                                                                                            //明細單據更新
                                                                                                                                            dts1.Close;
                                                                                                                                            dts1.ParamByName('FInterID').AsString := dts0.FieldByName('FInterID').AsString;
                                                                                                                                            dts1.Open;
                                                                                                                                            //狀態重新整理
                                                                                                                                            RefState(-1);
                                                                                                                                          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
                                                                                                                                          // Make sure to add code blocks to your code group
                                                                                                                                          • btnSaveOnClick:btnSave的OnClick事件,點選以儲存單據。
                                                                                                                                            //JScript
                                                                                                                                            function btnSaveOnClick(sender)
                                                                                                                                            //儲存
                                                                                                                                            {
                                                                                                                                                var vdts,vSQL;
                                                                                                                                               	//檢查是否為空
                                                                                                                                                dts1.Edit;
                                                                                                                                                dts1.Post;
                                                                                                                                                if (dts1.RecordCount == 0)
                                                                                                                                                {
                                                                                                                                                  ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("明細數據不能為空!"));
                                                                                                                                                  return;
                                                                                                                                                  //Exit;
                                                                                                                                                }
                                                                                                                                                //客戶資料,部門資料更新
                                                                                                                                                if ((Trim(dts0.FieldByName("FCustID").AsString) == "")
                                                                                                                                                || (Trim(dts0.FieldByName("FDeptID").AsString) == "")){
                                                                                                                                                	ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("客戶名稱不能為空!"));
                                                                                                                                                  return;
                                                                                                                                                	//exit;
                                                                                                                                                }
                                                                                                                                                dts1.First;
                                                                                                                                                While (!(dts1.Eof))
                                                                                                                                                //物料資訊檢查是否為空
                                                                                                                                                {
                                                                                                                                                  if ((Trim(dts1.FieldByName("FItemID").AsString)=="")
                                                                                                                                                  || (Trim(dts1.FieldByName("FAmount").AsString)=="")){
                                                                                                                                                    ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("物料資訊不能為空!"));
                                                                                                                                                    return;
                                                                                                                                                    //Exit;
                                                                                                                                                  }
                                                                                                                                                  dts1.Next;
                                                                                                                                                }
                                                                                                                                                
                                                                                                                                                //儲存
                                                                                                                                                vdts = new TUgRFDataSet(Nil);
                                                                                                                                                try{
                                                                                                                                                  //新增單據更新單據編號
                                                                                                                                                  vdts.Connection = GETRFERP;
                                                                                                                                                  vdts.SQL.Text = "SELECT FInterID FROM Sal_Order WHERE FInterID =" + dts0.FieldByName("FInterID").AsString;
                                                                                                                                                  vdts.Open;
                                                                                                                                                  if (vdts.RecordCount == 0)
                                                                                                                                                    dts0.FieldByName("FBillNo").AsString = GetBillNo(IntToStr(FBillID),now,False);
                                                                                                                                            
                                                                                                                                                  DataSetSort(dts1,"FEntryID"); 
                                                                                                                                                 //明細內容更新
                                                                                                                                                  if (dts1.RecordCount > 0)
                                                                                                                                                  {
                                                                                                                                                    dts1.Edit;
                                                                                                                                                    dts1.Post;
                                                                                                                                                	  dts1.ApplyUpdates(-1);
                                                                                                                                                  }
                                                                                                                                                  //主表更新儲存
                                                                                                                                                  dts0.Edit;
                                                                                                                                                  dts0.FieldByName("FStatus").AsInteger = 1;
                                                                                                                                                  dts0.Post;
                                                                                                                                                  dts0.ApplyUpdates(-1);
                                                                                                                                                  ShowSweetAlert(atSuccess,UGMM.LT("提示"),UGMM.LT("數據儲存成功!"));
                                                                                                                                                  RefState(1);
                                                                                                                                                }
                                                                                                                                                Finally{
                                                                                                                                                  vdts.Free;
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            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
                                                                                                                                            44
                                                                                                                                            45
                                                                                                                                            46
                                                                                                                                            47
                                                                                                                                            48
                                                                                                                                            49
                                                                                                                                            50
                                                                                                                                            51
                                                                                                                                            52
                                                                                                                                            53
                                                                                                                                            54
                                                                                                                                            55
                                                                                                                                            56
                                                                                                                                            57
                                                                                                                                            58
                                                                                                                                            59
                                                                                                                                            60
                                                                                                                                            61
                                                                                                                                            62
                                                                                                                                            63
                                                                                                                                            64
                                                                                                                                            //PasScript
                                                                                                                                            procedure btnSaveOnClick(sender: tobject);
                                                                                                                                            //儲存
                                                                                                                                            Var
                                                                                                                                              vdts: TUgRFDataSet;
                                                                                                                                              vSQL: String;
                                                                                                                                            Begin
                                                                                                                                               	//檢查是否為空
                                                                                                                                                dts1.Edit;
                                                                                                                                                dts1.Post;
                                                                                                                                                if dts1.RecordCount = 0 Then
                                                                                                                                                Begin 
                                                                                                                                                  ShowSweetAlert(atError,UGMM.LT('提示'),UGMM.LT('明細數據不能為空!'));
                                                                                                                                                  Exit;
                                                                                                                                                End;
                                                                                                                                                //客戶資料,部門資料更新
                                                                                                                                                if (Trim(dts0.FieldByName('FCustID').AsString) = '')
                                                                                                                                                or (Trim(dts0.FieldByName('FDeptID').AsString) = '')
                                                                                                                                              	Then
                                                                                                                                              	Begin
                                                                                                                                                	ShowSweetAlert(atError,UGMM.LT('提示'),UGMM.LT('客戶名稱不能為空!'));
                                                                                                                                                	exit;
                                                                                                                                              	end;
                                                                                                                                                dts1.First;
                                                                                                                                                While not dts1.Eof Do
                                                                                                                                                //物料資訊檢查是否為空
                                                                                                                                                Begin
                                                                                                                                                  if (Trim(dts1.FieldByName('FItemID').AsString)='')
                                                                                                                                                  or (Trim(dts1.FieldByName('FAmount').AsString)='')
                                                                                                                                                  Then
                                                                                                                                                  Begin
                                                                                                                                                    ShowSweetAlert(atError,UGMM.LT('提示'),UGMM.LT('物料資訊不能為空!'));
                                                                                                                                                    Exit;
                                                                                                                                                  End;
                                                                                                                                                  dts1.Next;
                                                                                                                                                End;
                                                                                                                                                
                                                                                                                                                //儲存
                                                                                                                                                vdts :=TUgRFDataSet.Create(Nil);
                                                                                                                                                try
                                                                                                                                                  //新增單據更新單據編號
                                                                                                                                                  vdts.Connection := GETRFERP;
                                                                                                                                                  vdts.SQL.Text := 'SELECT FInterID FROM Sal_Order WHERE FInterID =' + dts0.FieldByName('FInterID').AsString;
                                                                                                                                                  vdts.Open;
                                                                                                                                                  if vdts.RecordCount = 0 Then
                                                                                                                                                    dts0.FieldByName('FBillNo').AsString := GetBillNo(IntToStr(FBillID),now,False);
                                                                                                                                            
                                                                                                                                                  DataSetSort(dts1,'FEntryID'); 
                                                                                                                                                 //明細內容更新
                                                                                                                                                  if dts1.RecordCount > 0 Then
                                                                                                                                                  Begin
                                                                                                                                                    dts1.Edit;
                                                                                                                                                    dts1.Post;
                                                                                                                                                	  dts1.ApplyUpdates(-1);
                                                                                                                                                  End;
                                                                                                                                                  //主表更新儲存
                                                                                                                                                  dts0.Edit;
                                                                                                                                                  dts0.FieldByName('FStatus').AsInteger := 1;
                                                                                                                                                  dts0.Post;
                                                                                                                                                  dts0.ApplyUpdates(-1);
                                                                                                                                                  ShowSweetAlert(atSuccess,UGMM.LT('提示'),UGMM.LT('數據儲存成功!'));
                                                                                                                                                  RefState(1);
                                                                                                                                                Finally
                                                                                                                                                  vdts.Free;
                                                                                                                                                End;
                                                                                                                                            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
                                                                                                                                            44
                                                                                                                                            45
                                                                                                                                            46
                                                                                                                                            47
                                                                                                                                            48
                                                                                                                                            49
                                                                                                                                            50
                                                                                                                                            51
                                                                                                                                            52
                                                                                                                                            53
                                                                                                                                            54
                                                                                                                                            55
                                                                                                                                            56
                                                                                                                                            57
                                                                                                                                            58
                                                                                                                                            59
                                                                                                                                            60
                                                                                                                                            61
                                                                                                                                            62
                                                                                                                                            63
                                                                                                                                            64
                                                                                                                                            65
                                                                                                                                            66
                                                                                                                                            // Make sure to add code blocks to your code group
                                                                                                                                            • dts1BeforeEdit:dts1的BeforeEdit事件,在編輯前啟用單據編輯模式。
                                                                                                                                              //JScript
                                                                                                                                              function dts1BeforeEdit(datasettdataset)
                                                                                                                                              //明細數據集在編輯前啟動編輯模式
                                                                                                                                              {
                                                                                                                                                RefState(-1);
                                                                                                                                              }
                                                                                                                                              
                                                                                                                                              1
                                                                                                                                              2
                                                                                                                                              3
                                                                                                                                              4
                                                                                                                                              5
                                                                                                                                              6
                                                                                                                                              //PasScript
                                                                                                                                              procedure dts1BeforeEdit(dataset: tdataset);
                                                                                                                                              //明細數據集在編輯前啟動編輯模式
                                                                                                                                              begin
                                                                                                                                                RefState(-1);
                                                                                                                                              end;
                                                                                                                                              
                                                                                                                                              1
                                                                                                                                              2
                                                                                                                                              3
                                                                                                                                              4
                                                                                                                                              5
                                                                                                                                              6
                                                                                                                                              // Make sure to add code blocks to your code group
                                                                                                                                              • btnDelRowOnClick:btnDelRow的OnClick事件,點選以刪除行。
                                                                                                                                                //JScript
                                                                                                                                                function btnDelRowOnClick(sender)
                                                                                                                                                //刪除行
                                                                                                                                                {
                                                                                                                                                  RefState(-1);
                                                                                                                                                  if (dts1.RecordCount == 0)
                                                                                                                                                  {
                                                                                                                                                    ShowSweetAlert(atError,UGMM.LT("提示"),UGMM.LT("無可刪除的明細數據!"));
                                                                                                                                                    return;
                                                                                                                                                    //Exit;
                                                                                                                                                  }
                                                                                                                                                  dts1.Delete;
                                                                                                                                                }
                                                                                                                                                
                                                                                                                                                1
                                                                                                                                                2
                                                                                                                                                3
                                                                                                                                                4
                                                                                                                                                5
                                                                                                                                                6
                                                                                                                                                7
                                                                                                                                                8
                                                                                                                                                9
                                                                                                                                                10
                                                                                                                                                11
                                                                                                                                                12
                                                                                                                                                13
                                                                                                                                                //PasScript
                                                                                                                                                procedure btnDelRowOnClick(sender: tobject);
                                                                                                                                                //刪除行
                                                                                                                                                begin
                                                                                                                                                  RefState(-1);
                                                                                                                                                  if dts1.RecordCount = 0 then
                                                                                                                                                  Begin
                                                                                                                                                    ShowSweetAlert(atError,UGMM.LT('提示'),UGMM.LT('無可刪除的明細數據!'));
                                                                                                                                                    Exit;
                                                                                                                                                  End;
                                                                                                                                                  dts1.Delete;
                                                                                                                                                end;
                                                                                                                                                
                                                                                                                                                1
                                                                                                                                                2
                                                                                                                                                3
                                                                                                                                                4
                                                                                                                                                5
                                                                                                                                                6
                                                                                                                                                7
                                                                                                                                                8
                                                                                                                                                9
                                                                                                                                                10
                                                                                                                                                11
                                                                                                                                                12
                                                                                                                                                // Make sure to add code blocks to your code group
                                                                                                                                                • btnCopyRowOnClick:btnCopyRow的OnClick事件,點選以複製行。
                                                                                                                                                  //JScript
                                                                                                                                                  function btnCopyRowOnClick(sender)
                                                                                                                                                  //複製行
                                                                                                                                                  {
                                                                                                                                                    //在 dts1OnNewRecord 事件中觸發新增欄位的更新事件
                                                                                                                                                    RefState(-1);
                                                                                                                                                    DataSetRowCopy(dts1);
                                                                                                                                                  }
                                                                                                                                                  
                                                                                                                                                  
                                                                                                                                                  1
                                                                                                                                                  2
                                                                                                                                                  3
                                                                                                                                                  4
                                                                                                                                                  5
                                                                                                                                                  6
                                                                                                                                                  7
                                                                                                                                                  8
                                                                                                                                                  9
                                                                                                                                                  //PasScript
                                                                                                                                                  procedure btnCopyRowOnClick(sender: tobject);
                                                                                                                                                  //複製行
                                                                                                                                                  begin
                                                                                                                                                    //在 dts1OnNewRecord 事件中觸發新增欄位的更新事件
                                                                                                                                                    RefState(-1);
                                                                                                                                                    DataSetRowCopy(dts1);
                                                                                                                                                  end;
                                                                                                                                                  
                                                                                                                                                  1
                                                                                                                                                  2
                                                                                                                                                  3
                                                                                                                                                  4
                                                                                                                                                  5
                                                                                                                                                  6
                                                                                                                                                  7
                                                                                                                                                  8
                                                                                                                                                  // Make sure to add code blocks to your code group
                                                                                                                                                  • DoBillBusiness:用於實現單據的審覈、消審功能。
                                                                                                                                                    //JScript
                                                                                                                                                    function DoBillBusiness(AFlag)
                                                                                                                                                    //實現單據的審覈、消審
                                                                                                                                                    {
                                                                                                                                                      //{ 執行預存程序 sp_XXXX }
                                                                                                                                                      //{ sp_XXXX @ProcID, @DataID, @UserID }
                                                                                                                                                      var ADataSet,AStoredProc,sOptName,strSQL,iReturnFlag,iReturnMsg,i,j,vRAISEMSG,vMSG,Field;
                                                                                                                                                      //單據功能字元更新
                                                                                                                                                      if (AFlag == UGMM.LT("消審")){
                                                                                                                                                        sOptName = "UnCheck";
                                                                                                                                                      }
                                                                                                                                                      else if (AFlag == UGMM.LT("審覈")){
                                                                                                                                                        sOptName = "Check";
                                                                                                                                                      }
                                                                                                                                                      else if (AFlag == UGMM.LT("作廢")){
                                                                                                                                                        sOptName = "Revoke";
                                                                                                                                                      }
                                                                                                                                                      else if (AFlag == UGMM.LT("還原")){
                                                                                                                                                        sOptName = "Recover";
                                                                                                                                                      }
                                                                                                                                                      else if (AFlag == UGMM.LT("刪除")){
                                                                                                                                                        sOptName = "Delete";
                                                                                                                                                      }
                                                                                                                                                      else if (AFlag == UGMM.LT("關閉")){
                                                                                                                                                        sOptName = "Close";
                                                                                                                                                      }
                                                                                                                                                      else if (AFlag == UGMM.LT("恢復")){
                                                                                                                                                        sOptName = "UnClose";
                                                                                                                                                      }
                                                                                                                                                      else
                                                                                                                                                      {
                                                                                                                                                        sOptName = AFlag;
                                                                                                                                                      }
                                                                                                                                                      //預存程序初始化,獲取參數資訊
                                                                                                                                                      AStoredProc = new TUgRFStroedProc(nil);
                                                                                                                                                      AStoredProc.Connection = GETRFERP;
                                                                                                                                                      try{
                                                                                                                                                        AStoredProc.StoredProcName = "sp_Sal_Order";
                                                                                                                                                        AStoredProc.Prepare;
                                                                                                                                                        if (AStoredProc.Prepared)
                                                                                                                                                        {
                                                                                                                                                          //參數賦值
                                                                                                                                                          AStoredProc.ParamByName("ProcID").AsString = sOptName;
                                                                                                                                                          AStoredProc.ParamByName("DataID").AsString = dts0.FieldByName("FInterID").AsString;
                                                                                                                                                          AStoredProc.ParamByName("UserID").AsString = UGMM.Informations.Values["UserFullName"];
                                                                                                                                                          if (AStoredProc.FindParam("SQResult") != nil)
                                                                                                                                                            AStoredProc.ParamByName("SQResult").AsString = "";
                                                                                                                                                          try{
                                                                                                                                                            //執行預存程序
                                                                                                                                                            AStoredProc.ExecProc;
                                                                                                                                                          }
                                                                                                                                                           Except{
                                                                                                                                                              vRAISEMSG=ExceptionMessage;
                                                                                                                                                              //異常資訊更新
                                                                                                                                                              i = Pos("SQMESSAGE", vRAISEMSG);
                                                                                                                                                              j = Pos("[SQL Server]", vRAISEMSG);
                                                                                                                                                              vMSG = Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                                                                                                                                        
                                                                                                                                                    
                                                                                                                                                              // 非格式化訊息提示
                                                                                                                                                              if (i == 0)
                                                                                                                                                              {
                                                                                                                                                                ShowSweetAlert(atError,UGMM.LT("提示"), Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                                                                                                                                                return;
                                                                                                                                                                //Exit;
                                                                                                                                                              }
                                                                                                                                                            }
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      finally{
                                                                                                                                                        AStoredProc.Free;
                                                                                                                                                      }
                                                                                                                                                      //數據集重新整理,更新顯示狀態
                                                                                                                                                      dts0.Open;
                                                                                                                                                      dts1.Open;
                                                                                                                                                      RefState(dts0.FieldByName("FStatus").AsInteger);
                                                                                                                                                      RefreshStatus;
                                                                                                                                                    }
                                                                                                                                                    
                                                                                                                                                    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
                                                                                                                                                    44
                                                                                                                                                    45
                                                                                                                                                    46
                                                                                                                                                    47
                                                                                                                                                    48
                                                                                                                                                    49
                                                                                                                                                    50
                                                                                                                                                    51
                                                                                                                                                    52
                                                                                                                                                    53
                                                                                                                                                    54
                                                                                                                                                    55
                                                                                                                                                    56
                                                                                                                                                    57
                                                                                                                                                    58
                                                                                                                                                    59
                                                                                                                                                    60
                                                                                                                                                    61
                                                                                                                                                    62
                                                                                                                                                    63
                                                                                                                                                    64
                                                                                                                                                    65
                                                                                                                                                    66
                                                                                                                                                    67
                                                                                                                                                    68
                                                                                                                                                    69
                                                                                                                                                    70
                                                                                                                                                    71
                                                                                                                                                    72
                                                                                                                                                    73
                                                                                                                                                    74
                                                                                                                                                    75
                                                                                                                                                    76
                                                                                                                                                    77
                                                                                                                                                    78
                                                                                                                                                    //PasScript
                                                                                                                                                    procedure DoBillBusiness(AFlag: String);
                                                                                                                                                    //實現單據的審覈、消審
                                                                                                                                                    var
                                                                                                                                                      ADataSet: TUgRFDataSet;
                                                                                                                                                      AStoredProc: TRFStoredProc;
                                                                                                                                                      sOptName: String;
                                                                                                                                                      strSQL: String;
                                                                                                                                                      iReturnFlag: Integer;
                                                                                                                                                      iReturnMsg: String;
                                                                                                                                                      i, j: Integer;
                                                                                                                                                      vRAISEMSG: string;
                                                                                                                                                      vMSG: string;
                                                                                                                                                      Field: TField;
                                                                                                                                                    begin
                                                                                                                                                      { 執行預存程序 sp_XXXX }
                                                                                                                                                      { sp_XXXX @ProcID, @DataID, @UserID }
                                                                                                                                                      //單據功能字元更新
                                                                                                                                                      if AFlag = UGMM.LT('消審') then
                                                                                                                                                        sOptName := 'UnCheck'
                                                                                                                                                      else if AFlag = UGMM.LT('審覈') then
                                                                                                                                                        sOptName := 'Check'
                                                                                                                                                      else if AFlag = UGMM.LT('作廢') then
                                                                                                                                                        sOptName := 'Revoke'
                                                                                                                                                      else if AFlag = UGMM.LT('還原') then
                                                                                                                                                        sOptName := 'Recover'
                                                                                                                                                      else if AFlag = UGMM.LT('刪除') then
                                                                                                                                                        sOptName := 'Delete'
                                                                                                                                                      else if AFlag = UGMM.LT('關閉') then
                                                                                                                                                        sOptName := 'Close'
                                                                                                                                                      else if AFlag = UGMM.LT('恢復') then
                                                                                                                                                        sOptName := 'UnClose'
                                                                                                                                                      else
                                                                                                                                                      begin
                                                                                                                                                        sOptName := AFlag;
                                                                                                                                                      end;
                                                                                                                                                      //預存程序初始化,獲取參數資訊
                                                                                                                                                      AStoredProc := TUgRFStroedProc.Create(nil);
                                                                                                                                                      AStoredProc.Connection := GETRFERP;
                                                                                                                                                      try
                                                                                                                                                        AStoredProc.StoredProcName := 'sp_Sal_Order';
                                                                                                                                                        AStoredProc.Prepare;
                                                                                                                                                        if AStoredProc.Prepared then
                                                                                                                                                        begin
                                                                                                                                                          //參數賦值
                                                                                                                                                          AStoredProc.ParamByName('ProcID').AsString := sOptName;
                                                                                                                                                          AStoredProc.ParamByName('DataID').AsString := dts0.FieldByName('FInterID').AsString;
                                                                                                                                                          AStoredProc.ParamByName('UserID').AsString := UGMM.Informations.Values['UserFullName'];
                                                                                                                                                          if AStoredProc.FindParam('SQResult') <> nil then
                                                                                                                                                            AStoredProc.ParamByName('SQResult').AsString := '';
                                                                                                                                                          try
                                                                                                                                                            //執行預存程序
                                                                                                                                                            AStoredProc.ExecProc;
                                                                                                                                                           Except{ExceptionMessage}
                                                                                                                                                              vRAISEMSG:=ExceptionMessage;
                                                                                                                                                              //異常資訊更新
                                                                                                                                                              i := Pos('SQMESSAGE', vRAISEMSG);
                                                                                                                                                              j := Pos('[SQL Server]', vRAISEMSG);
                                                                                                                                                              vMSG := Copy(vRAISEMSG, i, Length(vRAISEMSG) - i + 1);
                                                                                                                                                        
                                                                                                                                                    
                                                                                                                                                              // 非格式化訊息提示
                                                                                                                                                              if i = 0 then
                                                                                                                                                              begin
                                                                                                                                                                ShowSweetAlert(atError,UGMM.LT('提示'), Copy(vRAISEMSG, j + 12, Length(vRAISEMSG) - j + 1));
                                                                                                                                                                Exit;
                                                                                                                                                              end;
                                                                                                                                                            end;
                                                                                                                                                        end;
                                                                                                                                                      finally
                                                                                                                                                        AStoredProc.Free;
                                                                                                                                                      end;
                                                                                                                                                      //數據集重新整理,更新顯示狀態
                                                                                                                                                      dts0.Open;
                                                                                                                                                      dts1.Open;
                                                                                                                                                      RefState(dts0.FieldByName('FStatus').AsInteger);
                                                                                                                                                      RefreshStatus;
                                                                                                                                                    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
                                                                                                                                                    44
                                                                                                                                                    45
                                                                                                                                                    46
                                                                                                                                                    47
                                                                                                                                                    48
                                                                                                                                                    49
                                                                                                                                                    50
                                                                                                                                                    51
                                                                                                                                                    52
                                                                                                                                                    53
                                                                                                                                                    54
                                                                                                                                                    55
                                                                                                                                                    56
                                                                                                                                                    57
                                                                                                                                                    58
                                                                                                                                                    59
                                                                                                                                                    60
                                                                                                                                                    61
                                                                                                                                                    62
                                                                                                                                                    63
                                                                                                                                                    64
                                                                                                                                                    65
                                                                                                                                                    66
                                                                                                                                                    67
                                                                                                                                                    68
                                                                                                                                                    69
                                                                                                                                                    70
                                                                                                                                                    71
                                                                                                                                                    72
                                                                                                                                                    73
                                                                                                                                                    74
                                                                                                                                                    75
                                                                                                                                                    76
                                                                                                                                                    77
                                                                                                                                                    78
                                                                                                                                                    // Make sure to add code blocks to your code group
                                                                                                                                                    • UgPopupMenu01UgMenuItemsOnClick:UgPopupMenu01UgMenuItems的OnClick事件,點選功能表欄專案執行單據功能。
                                                                                                                                                      //JScript
                                                                                                                                                      function UgPopupMenu01UgMenuItemsOnClick(acaption)
                                                                                                                                                      //功能按鈕分割槽
                                                                                                                                                      {
                                                                                                                                                        //執行預存程序
                                                                                                                                                        DoBillBusiness(acaption);
                                                                                                                                                      }
                                                                                                                                                      
                                                                                                                                                      1
                                                                                                                                                      2
                                                                                                                                                      3
                                                                                                                                                      4
                                                                                                                                                      5
                                                                                                                                                      6
                                                                                                                                                      7
                                                                                                                                                      //PasScript
                                                                                                                                                      procedure UgPopupMenu01UgMenuItemsOnClick(const acaption: string);
                                                                                                                                                      //功能按鈕分割槽
                                                                                                                                                      begin
                                                                                                                                                        //執行預存程序
                                                                                                                                                        DoBillBusiness(acaption);
                                                                                                                                                      end;
                                                                                                                                                      
                                                                                                                                                      1
                                                                                                                                                      2
                                                                                                                                                      3
                                                                                                                                                      4
                                                                                                                                                      5
                                                                                                                                                      6
                                                                                                                                                      7
                                                                                                                                                      // Make sure to add code blocks to your code group
                                                                                                                                                      • UgTimer01OnTimer:UgTimer01的OnTimer事件,設定列印的相關設定專案。
                                                                                                                                                        //JScript
                                                                                                                                                        function UgTimer01OnTimer(sender)
                                                                                                                                                        {
                                                                                                                                                          //列印設定
                                                                                                                                                          UgTimer01.Enabled = False;
                                                                                                                                                          UgFlying.AddPrintData(dts0,"A");
                                                                                                                                                          UgFlying.AddPrintData(dts1,"B");
                                                                                                                                                          UgFlying.AddPrintData(dtsCompany,"C");
                                                                                                                                                          UgFlying.ReportPreview;
                                                                                                                                                        }
                                                                                                                                                        
                                                                                                                                                        1
                                                                                                                                                        2
                                                                                                                                                        3
                                                                                                                                                        4
                                                                                                                                                        5
                                                                                                                                                        6
                                                                                                                                                        7
                                                                                                                                                        8
                                                                                                                                                        9
                                                                                                                                                        10
                                                                                                                                                        //PasScript
                                                                                                                                                        procedure UgTimer01OnTimer(sender: tobject);
                                                                                                                                                        begin
                                                                                                                                                          //列印設定
                                                                                                                                                          UgTimer01.Enabled := False;
                                                                                                                                                          UgFlying.AddPrintData(dts0,'A');
                                                                                                                                                          UgFlying.AddPrintData(dts1,'B');
                                                                                                                                                          UgFlying.AddPrintData(dtsCompany,'C');
                                                                                                                                                          UgFlying.ReportPreview;
                                                                                                                                                        end;
                                                                                                                                                        
                                                                                                                                                        1
                                                                                                                                                        2
                                                                                                                                                        3
                                                                                                                                                        4
                                                                                                                                                        5
                                                                                                                                                        6
                                                                                                                                                        7
                                                                                                                                                        8
                                                                                                                                                        9
                                                                                                                                                        10
                                                                                                                                                        // Make sure to add code blocks to your code group
                                                                                                                                                        • lkupdts0FCustIDOnChange:lkupdts0FCustID的OnChange事件,當變更客戶資料時更新對應欄位資訊。
                                                                                                                                                          //JScript
                                                                                                                                                          function lkupdts0FCustIDOnChange(sender)
                                                                                                                                                          //變更客戶資料時更新對應欄位資訊
                                                                                                                                                          {
                                                                                                                                                            dts0.Edit;
                                                                                                                                                            dts0.FieldByName("FCustCode").AsString = dtsFCustID.FieldByName("FCustCode").AsString;
                                                                                                                                                            dts0.FieldByName("FCustName").AsString = dtsFCustID.FieldByName("FCustName").AsString;
                                                                                                                                                            dts0.FieldByName("FDeptID").AsString = dtsFCustID.FieldByName("FDeptID").AsString;
                                                                                                                                                            dts0.FieldByName("FDeptCode").AsString = dtsFCustID.FieldByName("FDeptCode").AsString;
                                                                                                                                                            dts0.FieldByName("FDeptName").AsString = dtsFCustID.FieldByName("FDeptName").AsString;
                                                                                                                                                            dts0.FieldByName("FEmpID").AsString = dtsFCustID.FieldByName("FEmpID").AsString;
                                                                                                                                                            dts0.FieldByName("FEmpCode").AsString = dtsFCustID.FieldByName("FEmpCode").AsString;
                                                                                                                                                            dts0.FieldByName("FEmpName").AsString = dtsFCustID.FieldByName("FEmpName").AsString;
                                                                                                                                                            dts0.FieldByName("FSaleType").AsString = dtsFCustID.FieldByName("FSaleType").AsString;
                                                                                                                                                            //dts0.Post;
                                                                                                                                                          }
                                                                                                                                                          
                                                                                                                                                          
                                                                                                                                                          1
                                                                                                                                                          2
                                                                                                                                                          3
                                                                                                                                                          4
                                                                                                                                                          5
                                                                                                                                                          6
                                                                                                                                                          7
                                                                                                                                                          8
                                                                                                                                                          9
                                                                                                                                                          10
                                                                                                                                                          11
                                                                                                                                                          12
                                                                                                                                                          13
                                                                                                                                                          14
                                                                                                                                                          15
                                                                                                                                                          16
                                                                                                                                                          17
                                                                                                                                                          //PasScript
                                                                                                                                                          procedure lkupdts0FCustIDOnChange(sender: tobject);
                                                                                                                                                          //變更客戶資料時更新對應欄位資訊
                                                                                                                                                          begin
                                                                                                                                                            dts0.Edit;
                                                                                                                                                            dts0.FieldByName('FCustCode').AsString := dtsFCustID.FieldByName('FCustCode').AsString;
                                                                                                                                                            dts0.FieldByName('FCustName').AsString := dtsFCustID.FieldByName('FCustName').AsString;
                                                                                                                                                            dts0.FieldByName('FDeptID').AsString := dtsFCustID.FieldByName('FDeptID').AsString;
                                                                                                                                                            dts0.FieldByName('FDeptCode').AsString := dtsFCustID.FieldByName('FDeptCode').AsString;
                                                                                                                                                            dts0.FieldByName('FDeptName').AsString := dtsFCustID.FieldByName('FDeptName').AsString;
                                                                                                                                                            dts0.FieldByName('FEmpID').AsString := dtsFCustID.FieldByName('FEmpID').AsString;
                                                                                                                                                            dts0.FieldByName('FEmpCode').AsString := dtsFCustID.FieldByName('FEmpCode').AsString;
                                                                                                                                                            dts0.FieldByName('FEmpName').AsString := dtsFCustID.FieldByName('FEmpName').AsString;
                                                                                                                                                            dts0.FieldByName('FSaleType').AsString := dtsFCustID.FieldByName('FSaleType').AsString;
                                                                                                                                                            //dts0.Post;
                                                                                                                                                          end;
                                                                                                                                                          
                                                                                                                                                          1
                                                                                                                                                          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
                                                                                                                                                          • btnUploadImageOnClick:btnUploadImage的OnClick事件,點選以上傳圖片。
                                                                                                                                                            //JScript
                                                                                                                                                            function btnUploadImageOnClick(sender)
                                                                                                                                                            //上傳圖片
                                                                                                                                                            {
                                                                                                                                                              UgFileUpload.Execute;
                                                                                                                                                            }
                                                                                                                                                            
                                                                                                                                                            1
                                                                                                                                                            2
                                                                                                                                                            3
                                                                                                                                                            4
                                                                                                                                                            5
                                                                                                                                                            6
                                                                                                                                                            //PasScript
                                                                                                                                                            procedure btnUploadImageOnClick(sender: tobject);
                                                                                                                                                            //上傳圖片
                                                                                                                                                            begin
                                                                                                                                                              UgFileUpload.Execute;
                                                                                                                                                            end;
                                                                                                                                                            
                                                                                                                                                            1
                                                                                                                                                            2
                                                                                                                                                            3
                                                                                                                                                            4
                                                                                                                                                            5
                                                                                                                                                            6
                                                                                                                                                            // Make sure to add code blocks to your code group
                                                                                                                                                            • UgFileUploadOnCompleted:UgFileUpload的OnCompleted事件,檔案上傳完成後更新至對應的數據集欄位。
                                                                                                                                                              //JScript
                                                                                                                                                              function UgFileUploadOnCompleted(sender,astream)
                                                                                                                                                              //檔案上傳完成時更新至對應的數據集欄位中
                                                                                                                                                              {
                                                                                                                                                                TBlobField(imgdts0FImage.DataSource.DataSet.FieldByName(imgdts0FImage.DataField)).LoadFromStream(astream);
                                                                                                                                                              }
                                                                                                                                                              
                                                                                                                                                              1
                                                                                                                                                              2
                                                                                                                                                              3
                                                                                                                                                              4
                                                                                                                                                              5
                                                                                                                                                              6
                                                                                                                                                              //PasScript
                                                                                                                                                              procedure UgFileUploadOnCompleted(sender: tobject;astream: tfilestream);
                                                                                                                                                              //檔案上傳完成時更新至對應的數據集欄位中
                                                                                                                                                              begin
                                                                                                                                                                TBlobField(imgdts0FImage.DataSource.DataSet.FieldByName(imgdts0FImage.DataField)).LoadFromStream(astream);
                                                                                                                                                              end;
                                                                                                                                                              
                                                                                                                                                              1
                                                                                                                                                              2
                                                                                                                                                              3
                                                                                                                                                              4
                                                                                                                                                              5
                                                                                                                                                              6
                                                                                                                                                              // Make sure to add code blocks to your code group
                                                                                                                                                              • dts1OnNewRecord:dts1的OnNewRecord事件,新增記錄時初始化相關資訊的設定。
                                                                                                                                                                //JScript
                                                                                                                                                                function dts1OnNewRecord(dataset)
                                                                                                                                                                //新增記錄時修改相關資訊
                                                                                                                                                                {
                                                                                                                                                                  dts1.FieldByName("FID").AsInteger = GetNodeID;
                                                                                                                                                                  dts1.FieldByName("FInterID").AsInteger = dts0.FieldByName("FInterID").AsInteger;
                                                                                                                                                                  dts1.FieldByName("FEntryID").AsInteger = dts1.RecordCount + 1;
                                                                                                                                                                  dts1.FieldByName("FClosed").AsInteger = 0;
                                                                                                                                                                  dts1.FieldByName("FState").AsInteger = 0;
                                                                                                                                                                }
                                                                                                                                                                
                                                                                                                                                                1
                                                                                                                                                                2
                                                                                                                                                                3
                                                                                                                                                                4
                                                                                                                                                                5
                                                                                                                                                                6
                                                                                                                                                                7
                                                                                                                                                                8
                                                                                                                                                                9
                                                                                                                                                                10
                                                                                                                                                                //PasScript
                                                                                                                                                                procedure dts1OnNewRecord(dataset: tdataset);
                                                                                                                                                                //新增記錄時修改相關資訊
                                                                                                                                                                begin
                                                                                                                                                                  dts1.FieldByName('FID').AsInteger := GetNodeID;
                                                                                                                                                                  dts1.FieldByName('FInterID').AsInteger := dts0.FieldByName('FInterID').AsInteger;
                                                                                                                                                                  dts1.FieldByName('FEntryID').AsInteger := dts1.RecordCount + 1;
                                                                                                                                                                  dts1.FieldByName('FClosed').AsInteger := 0;
                                                                                                                                                                  dts1.FieldByName('FState').AsInteger := 0;
                                                                                                                                                                end;
                                                                                                                                                                
                                                                                                                                                                1
                                                                                                                                                                2
                                                                                                                                                                3
                                                                                                                                                                4
                                                                                                                                                                5
                                                                                                                                                                6
                                                                                                                                                                7
                                                                                                                                                                8
                                                                                                                                                                9
                                                                                                                                                                10
                                                                                                                                                                // Make sure to add code blocks to your code group
                                                                                                                                                                • dts0BeforeEdit:dts0的BeforeEdit事件,主數據集在啟動前啟用編輯模式。
                                                                                                                                                                  //JScript
                                                                                                                                                                  function dts0BeforeEdit(dataset)
                                                                                                                                                                  //主數據集在啟動前啟用編輯模式
                                                                                                                                                                  {
                                                                                                                                                                    RefState(-1);
                                                                                                                                                                  }
                                                                                                                                                                  
                                                                                                                                                                  1
                                                                                                                                                                  2
                                                                                                                                                                  3
                                                                                                                                                                  4
                                                                                                                                                                  5
                                                                                                                                                                  6
                                                                                                                                                                  //PasScript
                                                                                                                                                                  procedure dts0BeforeEdit(dataset: tdataset);
                                                                                                                                                                  //主數據集在啟動前啟用編輯模式
                                                                                                                                                                  begin
                                                                                                                                                                    RefState(-1);
                                                                                                                                                                  end;
                                                                                                                                                                  
                                                                                                                                                                  1
                                                                                                                                                                  2
                                                                                                                                                                  3
                                                                                                                                                                  4
                                                                                                                                                                  5
                                                                                                                                                                  6
                                                                                                                                                                  // Make sure to add code blocks to your code group
                                                                                                                                                                  • btnImportItemOnClick:btnImportItem的OnClick事件,點選以打開布種資料匯入頁面。
                                                                                                                                                                    //JScript
                                                                                                                                                                    function btnImportItemOnClick(sender)
                                                                                                                                                                    //打開匯入界面,布種資料
                                                                                                                                                                    {
                                                                                                                                                                      var F,D;
                                                                                                                                                                      //僅處於編輯模式下可打開匯入窗體
                                                                                                                                                                      if ((dts0.FieldByName("FStatus").AsInteger == 1) || (dts0.FieldByName("FStatus").AsInteger == -1))
                                                                                                                                                                      {
                                                                                                                                                                        //打開匯入頁面視窗W-EQ-MOD-2125-2
                                                                                                                                                                        F = UGMM.GetWebSubForm("W-EQ-MOD-2125-2");
                                                                                                                                                                        F.Caption = UGMM.LT("匯入布種資料");
                                                                                                                                                                        //翻譯頁面
                                                                                                                                                                        UGMM.LC(F);
                                                                                                                                                                        if (F.ShowModal == mrOK) 
                                                                                                                                                                        {
                                                                                                                                                                            D = TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent("dtsSelected"));
                                                                                                                                                                            //引用相關的內容進行新增
                                                                                                                                                                            D.First;
                                                                                                                                                                            While (!(D.Eof))
                                                                                                                                                                            {
                                                                                                                                                                              //數據集匯入更新
                                                                                                                                                                              dts1.Append;
                                                                                                                                                                              dts1.FieldByName("FItemID").AsString = D.FieldByName("FInterID").AsString;
                                                                                                                                                                              dts1.FieldByName("FItemCode").AsString = D.FieldByName("FItemCode").AsString;
                                                                                                                                                                              dts1.FieldByName("FItemName").AsString = D.FieldByName("FItemName").AsString;
                                                                                                                                                                              dts1.FieldByName("FItemSpec").AsString = D.FieldByName("FItemSpec").AsString;
                                                                                                                                                                              dts1.FieldByName("FUnitID").AsString = D.FieldByName("FUnitID").AsString;
                                                                                                                                                                              dts1.FieldByName("FUnitCode").AsString = D.FieldByName("FUnitCode").AsString;
                                                                                                                                                                              dts1.FieldByName("FUnitName").AsString = D.FieldByName("FUnitName").AsString;
                                                                                                                                                                              dts1.Post;
                                                                                                                                                                              D.Next;
                                                                                                                                                                            }
                                                                                                                                                                            RefState(-1);
                                                                                                                                                                          }
                                                                                                                                                                        //關閉釋放視窗W-EQ-MOD-2125-2
                                                                                                                                                                        UGMM.DelWebSubForm("W-EQ-MOD-2125-2");
                                                                                                                                                                      }
                                                                                                                                                                    }
                                                                                                                                                                    
                                                                                                                                                                    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
                                                                                                                                                                    //PasScript
                                                                                                                                                                    procedure btnImportItemOnClick(sender: tobject);
                                                                                                                                                                    //打開匯入界面,布種資料
                                                                                                                                                                    Var
                                                                                                                                                                      F:TUniForm;
                                                                                                                                                                      D: TUgRFDataSet;
                                                                                                                                                                    begin
                                                                                                                                                                      //僅處於編輯模式下可打開匯入窗體
                                                                                                                                                                      if ((dts0.FieldByName('FStatus').AsInteger = 1) or (dts0.FieldByName('FStatus').AsInteger = -1)) then
                                                                                                                                                                      begin
                                                                                                                                                                        //打開匯入頁面視窗匯入布種資料
                                                                                                                                                                        F := UGMM.GetWebSubForm('W-EQ-MOD-2125-1');
                                                                                                                                                                        F.Caption := UGMM.LT('匯入布種資料');
                                                                                                                                                                        //翻譯頁面
                                                                                                                                                                        UGMM.LC(F);
                                                                                                                                                                        if F.ShowModal = mrOK then 
                                                                                                                                                                        Begin
                                                                                                                                                                            D := TUgRFDataSet(TUgWebForm(F).RunFrame.FindComponent('dtsSelected'));
                                                                                                                                                                            //引用相關的內容進行新增
                                                                                                                                                                            D.First;
                                                                                                                                                                            While not D.Eof Do
                                                                                                                                                                            Begin
                                                                                                                                                                              //數據集匯入更新
                                                                                                                                                                              dts1.Append;
                                                                                                                                                                              dts1.FieldByName('FItemID').AsString := D.FieldByName('FInterID').AsString;
                                                                                                                                                                              dts1.FieldByName('FItemCode').AsString := D.FieldByName('FItemCode').AsString;
                                                                                                                                                                              dts1.FieldByName('FItemName').AsString := D.FieldByName('FItemName').AsString;
                                                                                                                                                                              dts1.FieldByName('FItemSpec').AsString := D.FieldByName('FItemSpec').AsString;
                                                                                                                                                                              dts1.FieldByName('FUnitID').AsString := D.FieldByName('FUnitID').AsString;
                                                                                                                                                                              dts1.FieldByName('FUnitCode').AsString := D.FieldByName('FUnitCode').AsString;
                                                                                                                                                                              dts1.FieldByName('FUnitName').AsString := D.FieldByName('FUnitName').AsString;
                                                                                                                                                                              dts1.Post;
                                                                                                                                                                              D.Next;
                                                                                                                                                                            End;
                                                                                                                                                                            RefState(-1);
                                                                                                                                                                        End;
                                                                                                                                                                        //關閉釋放視窗W-EQ-MOD-2125-1
                                                                                                                                                                        UGMM.DelWebSubForm('W-EQ-MOD-2125-1');
                                                                                                                                                                      End;
                                                                                                                                                                    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
                                                                                                                                                                    // Make sure to add code blocks to your code group
                                                                                                                                                                    • btnPrintOnClick:btnPrint的OnClick事件,點選以執行列印。
                                                                                                                                                                      //JScript
                                                                                                                                                                      function btnPrintOnClick(sender)
                                                                                                                                                                      //使用Flying執行列印
                                                                                                                                                                      {
                                                                                                                                                                          UgFlying.GetPrintList;
                                                                                                                                                                      }
                                                                                                                                                                      
                                                                                                                                                                      1
                                                                                                                                                                      2
                                                                                                                                                                      3
                                                                                                                                                                      4
                                                                                                                                                                      5
                                                                                                                                                                      6
                                                                                                                                                                      //PasScript
                                                                                                                                                                      procedure btnPrintOnClick(sender: tobject);
                                                                                                                                                                      //使用Flying執行列印
                                                                                                                                                                      begin
                                                                                                                                                                          UgFlying.GetPrintList;
                                                                                                                                                                      end;
                                                                                                                                                                      
                                                                                                                                                                      1
                                                                                                                                                                      2
                                                                                                                                                                      3
                                                                                                                                                                      4
                                                                                                                                                                      5
                                                                                                                                                                      6
                                                                                                                                                                      // Make sure to add code blocks to your code group
                                                                                                                                                                      • UgFlyingOnReceived:UgFlying的OnReceived事件,點選以設定列印。
                                                                                                                                                                        //JScript
                                                                                                                                                                        function UgFlyingOnReceived(asender,atype,acontent)
                                                                                                                                                                        //設定列印內容
                                                                                                                                                                        {
                                                                                                                                                                          var F,PDF;
                                                                                                                                                                          //獲取印表機列表
                                                                                                                                                                          if (AType == "GetPrintList")
                                                                                                                                                                          {
                                                                                                                                                                            UgComboBoxPrintList.Items.CommaText = AContent;
                                                                                                                                                                            if (UgComboBoxPrintList.Items.Count != 0)
                                                                                                                                                                            UgComboBoxPrintList.ItemIndex = 0;
                                                                                                                                                                            UgFlying.PrinterName = UgComboBoxPrintList.Items.Strings[1];
                                                                                                                                                                            UgTimer01.Enabled = True;
                                                                                                                                                                          }
                                                                                                                                                                          //獲取列印的檔案URL
                                                                                                                                                                          else if (AType == "GetFileUrl")
                                                                                                                                                                          {
                                                                                                                                                                            //打開視窗W-EQ-MOD-2118-2
                                                                                                                                                                             F =  UGMM.GetWebSubForm("W-EQ-MOD-2118-2");
                                                                                                                                                                             F.Caption = UGMM.LT("PDF檢視");
                                                                                                                                                                             PDF = TUgURLFrame(TUgWebForm(F).RunFrame.FindComponent("UgURLFrame"));
                                                                                                                                                                             //顯示PDF
                                                                                                                                                                             PDF.URL = AContent;
                                                                                                                                                                             if (F.ShowModal == mrOK) 
                                                                                                                                                                             {
                                                                                                                                                                             }
                                                                                                                                                                             UGMM.DelWebSubForm("W-EQ-MOD-2118-2");
                                                                                                                                                                           }
                                                                                                                                                                          else if (AType == "Error"){
                                                                                                                                                                            ShowSweetAlert(atError,UGMM.LT("提示"),AContent);
                                                                                                                                                                          }
                                                                                                                                                                        }
                                                                                                                                                                        
                                                                                                                                                                        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
                                                                                                                                                                        //PasScript
                                                                                                                                                                        procedure UgFlyingOnReceived(asender: tobject;atype: string;acontent: string);
                                                                                                                                                                        //設定列印內容
                                                                                                                                                                        var
                                                                                                                                                                          F: TUniForm;
                                                                                                                                                                          PDF: TUgURLFrame;
                                                                                                                                                                        begin
                                                                                                                                                                          //獲取印表機列表
                                                                                                                                                                          if AType='GetPrintList' then
                                                                                                                                                                          begin
                                                                                                                                                                            UgComboBoxPrintList.Items.CommaText := AContent;
                                                                                                                                                                            if UgComboBoxPrintList.Items.Count <> 0  Then
                                                                                                                                                                            UgComboBoxPrintList.ItemIndex := 0;
                                                                                                                                                                            UgFlying.PrinterName := UgComboBoxPrintList.Items.Strings[1];
                                                                                                                                                                            UgTimer01.Enabled := True;
                                                                                                                                                                          end
                                                                                                                                                                          //獲取列印的檔案URL
                                                                                                                                                                          else if AType='GetFileUrl' then
                                                                                                                                                                          begin
                                                                                                                                                                            //打開視窗PDF瀏覽
                                                                                                                                                                             F :=  UGMM.GetWebSubForm('W-EQ-MOD-2118-1');
                                                                                                                                                                             F.Caption := UGMM.LT('PDF檢視');
                                                                                                                                                                             PDF := TUgURLFrame(TUgWebForm(F).RunFrame.FindComponent('UgURLFrame'));
                                                                                                                                                                             //顯示PDF
                                                                                                                                                                             PDF.URL := AContent;
                                                                                                                                                                             if F.ShowModal = mrOK then 
                                                                                                                                                                             Begin
                                                                                                                                                                             End;
                                                                                                                                                                             //關閉
                                                                                                                                                                             UGMM.DelWebSubForm('W-EQ-MOD-2118-1');
                                                                                                                                                                          end
                                                                                                                                                                          else if AType='Error' then
                                                                                                                                                                            ShowSweetAlert(atError,UGMM.LT('提示'),AContent);
                                                                                                                                                                        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
                                                                                                                                                                        // Make sure to add code blocks to your code group
                                                                                                                                                                        • UgSweetAlertCloseOnConfirm:UgSweetAlertClose的OnConfirm事件,點選以關閉視窗頁面。
                                                                                                                                                                          //JScript
                                                                                                                                                                          function UgSweetAlertCloseOnConfirm(sender)
                                                                                                                                                                          //關閉視窗
                                                                                                                                                                          {
                                                                                                                                                                            var p = Self.Parent;
                                                                                                                                                                            if (p is TUgWebForm)
                                                                                                                                                                            {
                                                                                                                                                                              TUgWebForm(p).Close;
                                                                                                                                                                            }
                                                                                                                                                                            if (p is TUniTabSheet)
                                                                                                                                                                              UniSession.AddJS("document.getElementById(\"" + TUniTabSheet(p).jsid + "_tab-closeEl\").click();");
                                                                                                                                                                          }
                                                                                                                                                                          
                                                                                                                                                                          1
                                                                                                                                                                          2
                                                                                                                                                                          3
                                                                                                                                                                          4
                                                                                                                                                                          5
                                                                                                                                                                          6
                                                                                                                                                                          7
                                                                                                                                                                          8
                                                                                                                                                                          9
                                                                                                                                                                          10
                                                                                                                                                                          11
                                                                                                                                                                          12
                                                                                                                                                                          //PasScript
                                                                                                                                                                          procedure UgSweetAlertCloseOnConfirm(sender: tobject);
                                                                                                                                                                          //關閉視窗
                                                                                                                                                                          Var
                                                                                                                                                                            p:TComponent;
                                                                                                                                                                          Begin
                                                                                                                                                                            p:=Self.Parent;
                                                                                                                                                                            if p is TUgWebForm then
                                                                                                                                                                            Begin
                                                                                                                                                                              TUgWebForm(p).Close;
                                                                                                                                                                            End;
                                                                                                                                                                            if p is TUniTabSheet then
                                                                                                                                                                              UniSession.AddJS('document.getElementById("' + TUniTabSheet(p).jsid + '_tab-closeEl").click();');
                                                                                                                                                                          End;
                                                                                                                                                                          
                                                                                                                                                                          1
                                                                                                                                                                          2
                                                                                                                                                                          3
                                                                                                                                                                          4
                                                                                                                                                                          5
                                                                                                                                                                          6
                                                                                                                                                                          7
                                                                                                                                                                          8
                                                                                                                                                                          9
                                                                                                                                                                          10
                                                                                                                                                                          11
                                                                                                                                                                          12
                                                                                                                                                                          13
                                                                                                                                                                          14
                                                                                                                                                                          // Make sure to add code blocks to your code group

                                                                                                                                                                          # 3.2.5. 多語言設定

                                                                                                                                                                            點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

                                                                                                                                                                          # 3.2.6. 報表設定

                                                                                                                                                                            FastWeb中使用兩種方式來引入報表。

                                                                                                                                                                          • 窗體引入

                                                                                                                                                                            在初始化的程式中引入下述程式可在頁面中實現列印格式設計的引入。

                                                                                                                                                                            UGMM.AddReport(btnPrintMenu,//報表功能附加到哪個按鈕下,名稱為對應的控制元件名稱,此處僅為示例,實際使用修改爲你使用的名稱,比如UgMenuButton01
                                                                                                                                                                                           UGMM.ReportDesignPermission(Self),//報表設計許可權【動態模組:目前登陸使用者等於模組開發者時】
                                                                                                                                                                                           self.Guid);
                                                                                                                                                                          
                                                                                                                                                                          1
                                                                                                                                                                          2
                                                                                                                                                                          3

                                                                                                                                                                            在運行界面可以看到列印功能表,點選按鈕右側的下拉箭頭會有額外選項,點選報表設計器來打開報表設計器管理界面。

                                                                                                                                                                            首先點選右側的報表數據按鈕,打開報表數據及選擇的界面,將需要引用的報表數據集dts0、dts1、dtsFCustID、dtsCompany雙擊。

                                                                                                                                                                            在彈出的編輯界面中填寫相應的標題名稱,點選下側的重新整理按鈕載入數據集。載入完成後,點選確定。

                                                                                                                                                                            返回報表管理器頁面後點擊新增按鈕,打開新的報表設計器頁面進行報表的設計製作。製作完成並儲存后,在後續的引用中在列印按鈕右側的下拉框選擇建立的報表執行列印預覽。

                                                                                                                                                                          • Flying引入

                                                                                                                                                                            單據支援Flying引入,實體中已經介紹過程式中的使用方式,在Flying服務端需要引入列印格式進行設計。

                                                                                                                                                                            打開Flying服務端,點選列印設定-HTTP列印,檢查設定是否與客戶端的保持一致,點選應用儲存設定。

                                                                                                                                                                            點選列印設定-報表設計按鈕,在右側的報表列表中右鍵單擊,選擇新建報表。

                                                                                                                                                                            在對話方塊中輸入報表的名稱,此處輸入Sal_Order,然後點選OK按鈕。

                                                                                                                                                                            在列表中選擇剛才建立的報表項,右鍵點選,在選項中選擇數據構造,打開數據構造界面。首先設定好連線設定,點選連線按鈕。

                                                                                                                                                                            待連線按鈕變成灰色后,在SQL中輸入使用的數據集的SQL程式。

                                                                                                                                                                          --dts0
                                                                                                                                                                          select TOP 1 a.*,b.FCustName as FCustFullName,
                                                                                                                                                                          b.FAddress,b.FPhone1,
                                                                                                                                                                          b.FHousebank,b.FHouseBnkAct 
                                                                                                                                                                          from Sal_Order a(NOLOCK) 
                                                                                                                                                                          LEFT JOIN Basic_Cust B ON 
                                                                                                                                                                          A.FCustID = B.FInterID   
                                                                                                                                                                          
                                                                                                                                                                          
                                                                                                                                                                          --dts1
                                                                                                                                                                          SELECT TOP 1 * FROM Sal_OrderEntry
                                                                                                                                                                          
                                                                                                                                                                          --dtsCompany
                                                                                                                                                                          SELECT TOP 1 * FROM Basic_Company
                                                                                                                                                                          
                                                                                                                                                                          1
                                                                                                                                                                          2
                                                                                                                                                                          3
                                                                                                                                                                          4
                                                                                                                                                                          5
                                                                                                                                                                          6
                                                                                                                                                                          7
                                                                                                                                                                          8
                                                                                                                                                                          9
                                                                                                                                                                          10
                                                                                                                                                                          11
                                                                                                                                                                          12
                                                                                                                                                                          13
                                                                                                                                                                          14

                                                                                                                                                                            輸入完成後,點選執行SQL,等待下方的編輯框中出現欄位資訊后,點選應用返回至上一界面,在界面中點選儲存數據。

                                                                                                                                                                            在報表設計界面中雙擊Sal_Order,打開報表設計界面進行設計。

                                                                                                                                                                            設計完成後,FastWeb端可直接使用指定的設定執行列印設定操作。

                                                                                                                                                                          # 3.2.7. 運行效果

                                                                                                                                                                          # 3.3. 圖表-銷售訂單排名分析

                                                                                                                                                                            點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為銷售訂單排名分析的模組,新增的內容樣式如下,主要填寫組別、編號、標題、開發使用者等內容,使用PasScript的使用者編號請填寫為 W-EQ-MOD-2136-1,使用JScript的使用者編號請填寫 W-EQ-MOD-2136-2。填寫完成後,點選儲存按鈕。

                                                                                                                                                                            選擇剛才建立的標題為銷售訂單排名分析的模組,點選上方的模組設計按鈕,進入模組設計界面。

                                                                                                                                                                            銷售訂單排名分析的頁面設定如下圖。

                                                                                                                                                                          # 3.3.1. 功能簡述

                                                                                                                                                                            此視窗用於顯示銷售訂單金額的排名資訊,並使用圖表的方式來設定顯示相關資訊。

                                                                                                                                                                          # 3.3.2. 窗體設定

                                                                                                                                                                          屬性 取值 說明
                                                                                                                                                                          Height 800 主窗體的高度(畫素)
                                                                                                                                                                          Width 1200 主窗體的寬度(畫素)

                                                                                                                                                                          # 3.3.3. 控制元件設定

                                                                                                                                                                          • 控制元件說明

                                                                                                                                                                            修改控制元件設定時注意TUgPanel型別的控制元件需要清除Caption屬性中原有的字元內容。

                                                                                                                                                                          控制元件名稱 控制元件型別 說明
                                                                                                                                                                          UgContainerPanel01 TUgContainerPanel 佈局控制元件,用於放置查詢條件相關的控制元件,在視窗中置於頂部
                                                                                                                                                                          Align:alTop
                                                                                                                                                                          Height:44
                                                                                                                                                                          dtpBegin TUgDateTimePicker 訂單的起始日期
                                                                                                                                                                          DateTime:2021-01-01
                                                                                                                                                                          FieldLabel:訂單日期
                                                                                                                                                                          FieldLabelWidth:60
                                                                                                                                                                          Height:22
                                                                                                                                                                          Width:200
                                                                                                                                                                          dtpEnd TUgDateTimePicker 訂單的結束日期
                                                                                                                                                                          DateTime:2021-01-31
                                                                                                                                                                          FieldLabel:到
                                                                                                                                                                          FieldLabelWidth:60
                                                                                                                                                                          Height:22
                                                                                                                                                                          Width:200
                                                                                                                                                                          btnQuery TUgBitBtn 查詢按鈕
                                                                                                                                                                          Caption:查詢
                                                                                                                                                                          cbChartType TUgComboBox 覈取方塊,用於選擇圖表型別
                                                                                                                                                                          dts1 TUgRFDataSet 顯示數據集資訊
                                                                                                                                                                          SQL:
                                                                                                                                                                          select
                                                                                                                                                                          a.FCustName,sum(IsNull(b.FAuxQty,0)) as FAuxQty
                                                                                                                                                                          from SAL_Order a(NOLOCK)
                                                                                                                                                                          inner join SAL_OrderEntry b(NOLOCK) on a.FInterID = b.FInterID
                                                                                                                                                                          Where a.FStatus = 2
                                                                                                                                                                          group by a.FCustName
                                                                                                                                                                          Order by sum(IsNull(b.FAuxQty,0)) desc
                                                                                                                                                                          ds1 TugDataSource 數據源
                                                                                                                                                                          DataSource:dts1
                                                                                                                                                                          UgDBGrid01 TUgDBGrid 設定顯示數量
                                                                                                                                                                          Align:alLeft
                                                                                                                                                                          Width:305
                                                                                                                                                                          DataSource:ds1
                                                                                                                                                                          UgSplitter01 TUgSplitter 分隔線
                                                                                                                                                                          Align:alLeft
                                                                                                                                                                          Width:15
                                                                                                                                                                          UgEChart01 TUgEChart EChart圖表顯示
                                                                                                                                                                          Align:alClient
                                                                                                                                                                          dts2 TUgRFDataSet 顯示數據集資訊
                                                                                                                                                                          SQL:
                                                                                                                                                                          select top 10
                                                                                                                                                                          a.FCustName,sum(IsNull(b.FAuxQty,0)) as FAuxQty
                                                                                                                                                                          from SAL_Order a(NOLOCK)
                                                                                                                                                                          inner join SAL_OrderEntry b(NOLOCK) on a.FInterID = b.FInterID
                                                                                                                                                                          Where a.FStatus = 2
                                                                                                                                                                          group by a.FCustName
                                                                                                                                                                          Order by sum(IsNull(b.FAuxQty,0)) desc
                                                                                                                                                                          • UgDBGrid01欄位設定

                                                                                                                                                                            選擇並雙擊UgDBGrid01控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                                                                                                                                                          # 3.3.4. 程式設計

                                                                                                                                                                            在初始設定程式時,使用JScript使用者需勾選pub_js_tarslink單元,使用PasScript的使用者請勾選pub_pas_tarslink與單元。

                                                                                                                                                                          • 初始設定:設定顯示數據集的初始化內容。目前模組無需初始化。

                                                                                                                                                                          • GetSQL:獲取SQL查詢相關的資訊。

                                                                                                                                                                            //JScript
                                                                                                                                                                            function GetSQL()
                                                                                                                                                                            {
                                                                                                                                                                              dts1.Close;
                                                                                                                                                                              dts2.Close;
                                                                                                                                                                              dts1.Conditions.Disable;
                                                                                                                                                                              dts1.Conditions.Clear;
                                                                                                                                                                              dts1.Conditions.Add("FDate1","a.FDate >= '" + DateTimeToStr(dtpBegin.DateTime) + "'",True);
                                                                                                                                                                              dts1.Conditions.Add("FDate2","a.FDate <= '" + DateTimeToStr(dtpEnd.DateTime) + "'",True);
                                                                                                                                                                              dts1.Conditions.Enable;
                                                                                                                                                                              dts1.Open;
                                                                                                                                                                              
                                                                                                                                                                              dts2.Conditions.Disable;
                                                                                                                                                                              dts2.Conditions.Clear;
                                                                                                                                                                              dts2.Conditions.Add("FDate1","a.FDate >= '" + DateTimeToStr(dtpBegin.DateTime) + "'",True);
                                                                                                                                                                              dts2.Conditions.Add("FDate2","a.FDate <= '" + DateTimeToStr(dtpEnd.DateTime) + "'",True);
                                                                                                                                                                              dts2.Conditions.Enable;
                                                                                                                                                                              dts2.Open;
                                                                                                                                                                            }
                                                                                                                                                                            
                                                                                                                                                                            1
                                                                                                                                                                            2
                                                                                                                                                                            3
                                                                                                                                                                            4
                                                                                                                                                                            5
                                                                                                                                                                            6
                                                                                                                                                                            7
                                                                                                                                                                            8
                                                                                                                                                                            9
                                                                                                                                                                            10
                                                                                                                                                                            11
                                                                                                                                                                            12
                                                                                                                                                                            13
                                                                                                                                                                            14
                                                                                                                                                                            15
                                                                                                                                                                            16
                                                                                                                                                                            17
                                                                                                                                                                            18
                                                                                                                                                                            19
                                                                                                                                                                            //PasScript
                                                                                                                                                                            procedure GetSQL;
                                                                                                                                                                            Begin
                                                                                                                                                                              dts1.Close;
                                                                                                                                                                              dts2.Close;
                                                                                                                                                                              dts1.Conditions.Disable;
                                                                                                                                                                              dts1.Conditions.Clear;
                                                                                                                                                                              dts1.Conditions.Add('FDate1','a.FDate >= ''' + DateTimeToStr(dtpBegin.DateTime) + '''',True);
                                                                                                                                                                              dts1.Conditions.Add('FDate2','a.FDate <= ''' + DateTimeToStr(dtpEnd.DateTime) + '''',True);
                                                                                                                                                                              dts1.Conditions.Enable;
                                                                                                                                                                              dts1.Open;
                                                                                                                                                                              
                                                                                                                                                                              dts2.Conditions.Disable;
                                                                                                                                                                              dts2.Conditions.Clear;
                                                                                                                                                                              dts2.Conditions.Add('FDate1','a.FDate >= ''' + DateTimeToStr(dtpBegin.DateTime) + '''',True);
                                                                                                                                                                              dts2.Conditions.Add('FDate2','a.FDate <= ''' + DateTimeToStr(dtpEnd.DateTime) + '''',True);
                                                                                                                                                                              dts2.Conditions.Enable;
                                                                                                                                                                              dts2.Open;
                                                                                                                                                                            End;
                                                                                                                                                                            
                                                                                                                                                                            1
                                                                                                                                                                            2
                                                                                                                                                                            3
                                                                                                                                                                            4
                                                                                                                                                                            5
                                                                                                                                                                            6
                                                                                                                                                                            7
                                                                                                                                                                            8
                                                                                                                                                                            9
                                                                                                                                                                            10
                                                                                                                                                                            11
                                                                                                                                                                            12
                                                                                                                                                                            13
                                                                                                                                                                            14
                                                                                                                                                                            15
                                                                                                                                                                            16
                                                                                                                                                                            17
                                                                                                                                                                            18
                                                                                                                                                                            19
                                                                                                                                                                            // Make sure to add code blocks to your code group
                                                                                                                                                                            • GetEChartBar:設定獲取柱狀圖。
                                                                                                                                                                              //JScript
                                                                                                                                                                              function GetEChartBar()
                                                                                                                                                                              //設定條形圖
                                                                                                                                                                              {
                                                                                                                                                                                var vOption;
                                                                                                                                                                                if (dts2.IsEmpty)
                                                                                                                                                                                {
                                                                                                                                                                                  ShowMessage(UGMM.LT("目前選擇的時間範圍內無數據!"));
                                                                                                                                                                                  return;
                                                                                                                                                                                  //Exit;
                                                                                                                                                                                }
                                                                                                                                                                                vOption = "option = {title: {text: '" + UGMM.LT("銷售訂單排名") + "',textStyle:{fontSize: 32},subtext: '',left: 'center'},"
                                                                                                                                                                              	    + "backgroundColor:\"#ffffff\","
                                                                                                                                                                              	    + "tooltip: {trigger: 'axis',axisPointer: { type: 'shadow' }},"
                                                                                                                                                                              	    + "grid: {top:\"40\",left: '3%',right: '4%',bottom: '3%',containLabel: true},"
                                                                                                                                                                              	    + "xAxis: [{type: 'category',axisTick:{show:false},data: [";
                                                                                                                                                                                dts2.First;
                                                                                                                                                                                while (!dts2.Eof)
                                                                                                                                                                                {
                                                                                                                                                                                  vOption = vOption + "'" + dts2.FieldByName("FCustName").AsString + "',";
                                                                                                                                                                                  dts2.Next;
                                                                                                                                                                                }
                                                                                                                                                                                  vOption = copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                  
                                                                                                                                                                                
                                                                                                                                                                                 vOption = vOption + "]}],"; 
                                                                                                                                                                                 vOption = vOption + "yAxis: [{type: 'value',axisLine:{show:false},axisTick:{show:false},axisLabel: {show:false,formatter: '{value}'},splitLine: {show:false,}}],"
                                                                                                                                                                              	   + "series: [{type: 'bar',label: {show: true,position: 'top',textStyle: {color: '#000000',},},"
                                                                                                                                                                              	   + "itemStyle: {normal: {color: function(params) {var colorList = ["
                                                                                                                                                                                   + "'#7711AF', '#CF77FF', '#AE004F', '#F35872', '#FA7729','#FFC526', '#F8E71C', '#34ADAE', '#3DDFD2', '#A0FFFF'];"
                                                                                                                                                                                   + "var colorListr = ['#0f4471','#00adb5','#ff5722','#5628b4','#20BF55','#f23557','#118df0','#11cbd7','#d3327b','#ae318a','#993090','#6f3071'];"
                                                                                                                                                                                   + "return colorListr[params.dataIndex]},label: {show: true,position: 'top',formatter: '" + UGMM.LT("數量") + ":{c}',fontSize:14},shadowBlur: 10,shadowColor: 'rgba(40, 40, 40, 0.3)',}"
                                                                                                                                                                                   + "},data: [";
                                                                                                                                                                                 
                                                                                                                                                                                 dts2.First;
                                                                                                                                                                                while (!dts2.Eof)
                                                                                                                                                                                {
                                                                                                                                                                                  vOption = vOption + dts2.FieldByName("FAuxQty").AsString + ",";
                                                                                                                                                                                  dts2.Next;
                                                                                                                                                                                }
                                                                                                                                                                                vOption = copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                vOption = vOption + "]}]};";
                                                                                                                                                                                dts2.First;
                                                                                                                                                                                UgEChart01.Options.Text = vOption;
                                                                                                                                                                              }
                                                                                                                                                                              
                                                                                                                                                                              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
                                                                                                                                                                              44
                                                                                                                                                                              45
                                                                                                                                                                              //PasScript
                                                                                                                                                                              Procedure GetEChartBar;
                                                                                                                                                                              //設定條形圖
                                                                                                                                                                              Var
                                                                                                                                                                                vOption: String;
                                                                                                                                                                              Begin
                                                                                                                                                                                if dts2.IsEmpty Then
                                                                                                                                                                                Begin
                                                                                                                                                                                  ShowMessage(UGMM.LT('目前選擇的時間範圍內無數據!'));
                                                                                                                                                                                  Exit;
                                                                                                                                                                                End;
                                                                                                                                                                                vOption := 'option = {title: {text: ''' + UGMM.LT('銷售訂單排名') + ''',textStyle:{fontSize: 32},subtext: '''',left: ''center''},'
                                                                                                                                                                              	    + 'backgroundColor:"#ffffff",'
                                                                                                                                                                              	    + 'tooltip: {trigger: ''axis'',axisPointer: { type: ''shadow'' }},'
                                                                                                                                                                              	    + 'grid: {top:"40",left: ''3%'',right: ''4%'',bottom: ''3%'',containLabel: true},'
                                                                                                                                                                              	    + 'xAxis: [{type: ''category'',axisTick:{show:false},data: [';
                                                                                                                                                                                dts2.First;
                                                                                                                                                                                while not dts2.Eof Do
                                                                                                                                                                                Begin
                                                                                                                                                                                  vOption := vOption + '''' + dts2.FieldByName('FCustName').AsString + ''',';
                                                                                                                                                                                  dts2.Next;
                                                                                                                                                                                End;
                                                                                                                                                                                  vOption := copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                  
                                                                                                                                                                                
                                                                                                                                                                                 vOption := vOption + ']}],'; 
                                                                                                                                                                                 vOption := vOption + 'yAxis: [{type: ''value'',axisLine:{show:false},axisTick:{show:false},axisLabel: {show:false,formatter: ''{value}''},splitLine: {show:false,}}],'
                                                                                                                                                                              	   + 'series: [{type: ''bar'',label: {show: true,position: ''top'',textStyle: {color: ''#000000'',},},'
                                                                                                                                                                              	   + 'itemStyle: {normal: {color: function(params) {var colorList = ['
                                                                                                                                                                                   + '''#7711AF'', ''#CF77FF'', ''#AE004F'', ''#F35872'', ''#FA7729'',''#FFC526'', ''#F8E71C'', ''#34ADAE'', ''#3DDFD2'', ''#A0FFFF''];'
                                                                                                                                                                                   + 'var colorListr = [''#0f4471'',''#00adb5'',''#ff5722'',''#5628b4'',''#20BF55'',''#f23557'',''#118df0'',''#11cbd7'',''#d3327b'',''#ae318a'',''#993090'',''#6f3071''];'
                                                                                                                                                                                   + 'return colorListr[params.dataIndex]},label: {show: true,position: ''top'',formatter: ''' + UGMM.LT('數量') + ':{c}'',fontSize:14},shadowBlur: 10,shadowColor: ''rgba(40, 40, 40, 0.3)'',}'
                                                                                                                                                                                   + '},data: [';
                                                                                                                                                                                 
                                                                                                                                                                                 dts2.First;
                                                                                                                                                                                while not dts2.Eof Do
                                                                                                                                                                                Begin 
                                                                                                                                                                                  vOption := vOption + dts2.FieldByName('FAuxQty').AsString + ',';
                                                                                                                                                                                  dts2.Next;
                                                                                                                                                                                End;
                                                                                                                                                                                vOption := copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                vOption := vOption + ']}]};';
                                                                                                                                                                                dts2.First;
                                                                                                                                                                                UgEChart01.Options.Text := vOption;
                                                                                                                                                                              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
                                                                                                                                                                              44
                                                                                                                                                                              45
                                                                                                                                                                              // Make sure to add code blocks to your code group
                                                                                                                                                                              • GetEChartLine:設定獲取折線圖。
                                                                                                                                                                                //JScript
                                                                                                                                                                                function GetEChartLine()
                                                                                                                                                                                //折線圖
                                                                                                                                                                                {
                                                                                                                                                                                  var vOption;
                                                                                                                                                                                  if (dts2.IsEmpty)
                                                                                                                                                                                  {
                                                                                                                                                                                    ShowMessage(UGMM.LT("目前選擇的時間範圍內無數據!"));
                                                                                                                                                                                    return;
                                                                                                                                                                                    //Exit;
                                                                                                                                                                                  }
                                                                                                                                                                                  vOption = "option = {title: {text: '" + UGMM.LT("銷售訂單排名") + "',textStyle:{fontSize: 32},subtext: '',left: 'center'},"
                                                                                                                                                                                	    + "backgroundColor:\"#ffffff\","
                                                                                                                                                                                	    + "tooltip: {trigger: 'axis',axisPointer: { type: 'shadow' }},"
                                                                                                                                                                                	    + "grid: {top:\"40\",left: '3%',right: '4%',bottom: '3%',containLabel: true},"
                                                                                                                                                                                	    + "xAxis: [{type: 'category',axisTick:{show:false},data: [";
                                                                                                                                                                                  dts2.First;
                                                                                                                                                                                  while (!dts2.Eof)
                                                                                                                                                                                  {
                                                                                                                                                                                    vOption = vOption + "'" + dts2.FieldByName("FCustName").AsString + "',";
                                                                                                                                                                                    dts2.Next;
                                                                                                                                                                                  }
                                                                                                                                                                                    vOption = copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                   vOption = vOption + "]}],"; 
                                                                                                                                                                                   vOption = vOption + "yAxis: [{type: 'value',axisLine:{show:false},axisTick:{show:false},axisLabel: {show:false,formatter: '{value}'},splitLine: {show:false,}}],"
                                                                                                                                                                                	   + "series: [{type: 'line',smooth: 'true',label: {show: true,position: 'top',textStyle: {color: '#000000',},},"
                                                                                                                                                                                	   + "itemStyle: {normal: {color: function(params) {var colorList = ["
                                                                                                                                                                                       + "'#7711AF', '#CF77FF', '#AE004F', '#F35872', '#FA7729','#FFC526', '#F8E71C', '#34ADAE', '#3DDFD2', '#A0FFFF'];"
                                                                                                                                                                                     + "var colorListr = ['#0f4471','#00adb5','#ff5722','#5628b4','#20BF55','#f23557','#118df0','#11cbd7','#d3327b','#ae318a','#993090','#6f3071'];"
                                                                                                                                                                                     + "return colorListr[params.dataIndex]},label: {show: true,position: 'top',formatter: '',fontSize:14},shadowBlur: 10,shadowColor: 'rgba(40, 40, 40, 0.3)',}"
                                                                                                                                                                                     + "},areaStyle: {normal: {color: 'rgba(0,70,209,0.5)',shadowColor: 'rgba(53,142,215, 0.9)', shadowBlur: 20}},data: [";
                                                                                                                                                                                   
                                                                                                                                                                                   dts2.First;
                                                                                                                                                                                  while (!dts2.Eof)
                                                                                                                                                                                  {
                                                                                                                                                                                    vOption = vOption + dts2.FieldByName("FAuxQty").AsString + ",";
                                                                                                                                                                                    dts2.Next;
                                                                                                                                                                                  }
                                                                                                                                                                                  vOption = copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                  vOption = vOption + "]}]};";
                                                                                                                                                                                  dts2.First;
                                                                                                                                                                                  UgEChart01.Options.Text = vOption;
                                                                                                                                                                                }
                                                                                                                                                                                
                                                                                                                                                                                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
                                                                                                                                                                                //PasScript
                                                                                                                                                                                procedure GetEChartLine;
                                                                                                                                                                                //折線圖
                                                                                                                                                                                Var
                                                                                                                                                                                  vOption: String;
                                                                                                                                                                                Begin
                                                                                                                                                                                  if dts2.IsEmpty Then
                                                                                                                                                                                  Begin
                                                                                                                                                                                    ShowMessage(UGMM.LT('目前選擇的時間範圍內無數據!'));
                                                                                                                                                                                    Exit;
                                                                                                                                                                                  End;
                                                                                                                                                                                  vOption := 'option = {title: {text: ''' + UGMM.LT('銷售訂單排名') + ''',textStyle:{fontSize: 32},subtext: '''',left: ''center''},'
                                                                                                                                                                                	    + 'backgroundColor:"#ffffff",'
                                                                                                                                                                                	    + 'tooltip: {trigger: ''axis'',axisPointer: { type: ''shadow'' }},'
                                                                                                                                                                                	    + 'grid: {top:"40",left: ''3%'',right: ''4%'',bottom: ''3%'',containLabel: true},'
                                                                                                                                                                                	    + 'xAxis: [{type: ''category'',axisTick:{show:false},data: [';
                                                                                                                                                                                  dts2.First;
                                                                                                                                                                                  while not dts2.Eof Do
                                                                                                                                                                                  Begin
                                                                                                                                                                                    vOption := vOption + '''' + dts2.FieldByName('FCustName').AsString + ''',';
                                                                                                                                                                                    dts2.Next;
                                                                                                                                                                                  End;
                                                                                                                                                                                    vOption := copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                   vOption := vOption + ']}],'; 
                                                                                                                                                                                   vOption := vOption + 'yAxis: [{type: ''value'',axisLine:{show:false},axisTick:{show:false},axisLabel: {show:false,formatter: ''{value}''},splitLine: {show:false,}}],'
                                                                                                                                                                                	   + 'series: [{type: ''line'',smooth: ''true'',label: {show: true,position: ''top'',textStyle: {color: ''#000000'',},},'
                                                                                                                                                                                	   + 'itemStyle: {normal: {color: function(params) {var colorList = ['
                                                                                                                                                                                     + '''#7711AF'', ''#CF77FF'', ''#AE004F'', ''#F35872'', ''#FA7729'',''#FFC526'', ''#F8E71C'', ''#34ADAE'', ''#3DDFD2'', ''#A0FFFF''];'
                                                                                                                                                                                     + 'var colorListr = [''#0f4471'',''#00adb5'',''#ff5722'',''#5628b4'',''#20BF55'',''#f23557'',''#118df0'',''#11cbd7'',''#d3327b'',''#ae318a'',''#993090'',''#6f3071''];'
                                                                                                                                                                                     + 'return colorListr[params.dataIndex]},label: {show: true,position: ''top'',formatter: '''',fontSize:14},shadowBlur: 10,shadowColor: ''rgba(40, 40, 40, 0.3)'',}'
                                                                                                                                                                                     + '},areaStyle: {normal: {color: ''rgba(0,70,209,0.5)'',shadowColor: ''rgba(53,142,215, 0.9)'', shadowBlur: 20}},data: [';
                                                                                                                                                                                   
                                                                                                                                                                                   dts2.First;
                                                                                                                                                                                  while not dts2.Eof Do
                                                                                                                                                                                  Begin 
                                                                                                                                                                                    vOption := vOption + dts2.FieldByName('FAuxQty').AsString + ',';
                                                                                                                                                                                    dts2.Next;
                                                                                                                                                                                  End;
                                                                                                                                                                                  vOption := copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                  vOption := vOption + ']}]};';
                                                                                                                                                                                  dts2.First;
                                                                                                                                                                                  UgEChart01.Options.Text := vOption;
                                                                                                                                                                                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
                                                                                                                                                                                // Make sure to add code blocks to your code group
                                                                                                                                                                                • GetEChartPie:設定獲取EChart餅圖。
                                                                                                                                                                                  //JScript
                                                                                                                                                                                  function GetEChartPie()
                                                                                                                                                                                  //餅圖
                                                                                                                                                                                  {
                                                                                                                                                                                    var vOption;
                                                                                                                                                                                    if (dts2.IsEmpty)
                                                                                                                                                                                    {
                                                                                                                                                                                      ShowMessage(UGMM.LT("目前選擇的時間範圍內無數據!"));
                                                                                                                                                                                      return;
                                                                                                                                                                                      //Exit;
                                                                                                                                                                                    }
                                                                                                                                                                                    vOption = "option = {title: {text: '" + UGMM.LT("銷售訂單排名") + "',textStyle:{fontSize: 32},subtext: '',left: 'center'},"
                                                                                                                                                                                    +  "tooltip: {trigger: 'item',formatter: '{a} <br/>{b} : {c} ({d}%)'},"
                                                                                                                                                                                    +  "legend: {orient: 'vertical',left: 'right',"
                                                                                                                                                                                    +  "data: [";
                                                                                                                                                                                    dts2.First;
                                                                                                                                                                                    while (!dts2.Eof)
                                                                                                                                                                                    {
                                                                                                                                                                                      vOption = vOption + "'" + dts2.FieldByName("FCustName").AsString + "',";
                                                                                                                                                                                      dts2.Next;
                                                                                                                                                                                    }
                                                                                                                                                                                      vOption = copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                      vOption = vOption + "]}," 
                                                                                                                                                                                     	+ "series: [{name: '" + UGMM.LT("數量") + "',type: 'pie',center: ['50%', '60%'],data: [";
                                                                                                                                                                                     	dts2.First; 
                                                                                                                                                                                    while (!dts2.Eof)
                                                                                                                                                                                    {
                                                                                                                                                                                      vOption = vOption + "{value: " + dts2.FieldByName("FAuxQty").AsString + ",name:'" + dts2.FieldByName("FCustName").AsString + "'},";
                                                                                                                                                                                      dts2.Next;
                                                                                                                                                                                    }
                                                                                                                                                                                    vOption = copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                    vOption = vOption + "],emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]};";
                                                                                                                                                                                    dts2.First;
                                                                                                                                                                                    UgEChart01.Options.Text = vOption;
                                                                                                                                                                                  }
                                                                                                                                                                                  
                                                                                                                                                                                  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
                                                                                                                                                                                  //PasScript
                                                                                                                                                                                  Procedure GetEChartPie;
                                                                                                                                                                                  //餅圖
                                                                                                                                                                                  Var
                                                                                                                                                                                    vOption: String;
                                                                                                                                                                                  Begin
                                                                                                                                                                                    if dts2.IsEmpty Then
                                                                                                                                                                                    Begin
                                                                                                                                                                                      ShowMessage(UGMM.LT('目前選擇的時間範圍內無數據!'));
                                                                                                                                                                                      Exit;
                                                                                                                                                                                    End;
                                                                                                                                                                                    vOption := 'option = {title: {text: ''' + UGMM.LT('銷售訂單排名') + ''',textStyle:{fontSize: 32},subtext: '''',left: ''center''},'
                                                                                                                                                                                    +  'tooltip: {trigger: ''item'',formatter: ''{a} <br/>{b} : {c} ({d}%)''},'
                                                                                                                                                                                    +  'legend: {orient: ''vertical'',left: ''right'','
                                                                                                                                                                                    +  'data: [';
                                                                                                                                                                                    dts2.First;
                                                                                                                                                                                    while not dts2.Eof Do
                                                                                                                                                                                    Begin
                                                                                                                                                                                      vOption := vOption + '''' + dts2.FieldByName('FCustName').AsString + ''',';
                                                                                                                                                                                      dts2.Next;
                                                                                                                                                                                    End;
                                                                                                                                                                                      vOption := copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                      vOption := vOption + ']},' 
                                                                                                                                                                                     	+ 'series: [{name: ''' + UGMM.LT('數量') + ''',type: ''pie'',center: [''50%'', ''60%''],data: [';
                                                                                                                                                                                     	dts2.First; 
                                                                                                                                                                                    while not dts2.Eof Do
                                                                                                                                                                                    Begin 
                                                                                                                                                                                      vOption := vOption + '{value: ' + dts2.FieldByName('FAuxQty').AsString + ',name:''' + dts2.FieldByName('FCustName').AsString + '''},';
                                                                                                                                                                                      dts2.Next;
                                                                                                                                                                                    End;
                                                                                                                                                                                    vOption := copy(vOption, 1, Length(vOption)-1);
                                                                                                                                                                                    vOption := vOption + '],emphasis: {itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: ''rgba(0, 0, 0, 0.5)''}}}]};';
                                                                                                                                                                                    dts2.First;
                                                                                                                                                                                    UgEChart01.Options.Text := vOption;
                                                                                                                                                                                  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
                                                                                                                                                                                  // Make sure to add code blocks to your code group
                                                                                                                                                                                  • UgWebRunFrameOnAfterRunScript:UgWebRunFrame的OnAfterRunScript事件,設定初始顯示的內容。
                                                                                                                                                                                    //JScript
                                                                                                                                                                                    function UgWebRunFrameOnAfterRunScript(sender)
                                                                                                                                                                                    {
                                                                                                                                                                                      dts1.Connection = GetRFERP;
                                                                                                                                                                                      dts2.Connection = GetRFERP;
                                                                                                                                                                                      GetSQL;
                                                                                                                                                                                      GetEChartBar;
                                                                                                                                                                                      UGMM.LC(Self);
                                                                                                                                                                                      cbChartType.Items.CommaText = UGMM.LT("柱狀圖,折線圖,餅圖");
                                                                                                                                                                                      cbChartType.ItemIndex = 0;
                                                                                                                                                                                    }
                                                                                                                                                                                    
                                                                                                                                                                                    1
                                                                                                                                                                                    2
                                                                                                                                                                                    3
                                                                                                                                                                                    4
                                                                                                                                                                                    5
                                                                                                                                                                                    6
                                                                                                                                                                                    7
                                                                                                                                                                                    8
                                                                                                                                                                                    9
                                                                                                                                                                                    10
                                                                                                                                                                                    11
                                                                                                                                                                                    //PasScript
                                                                                                                                                                                    procedure UgWebRunFrameOnAfterRunScript(const sender: tobject);
                                                                                                                                                                                    begin
                                                                                                                                                                                      dts1.Connection := GetRFERP;
                                                                                                                                                                                      dts2.Connection := GetRFERP;
                                                                                                                                                                                      GetSQL;
                                                                                                                                                                                      GetEChartBar;
                                                                                                                                                                                      UGMM.LC(Self);
                                                                                                                                                                                      cbChartType.Items.CommaText := UGMM.LT('柱狀圖,折線圖,餅圖');
                                                                                                                                                                                      cbChartType.ItemIndex := 0;
                                                                                                                                                                                    end;
                                                                                                                                                                                    
                                                                                                                                                                                    1
                                                                                                                                                                                    2
                                                                                                                                                                                    3
                                                                                                                                                                                    4
                                                                                                                                                                                    5
                                                                                                                                                                                    6
                                                                                                                                                                                    7
                                                                                                                                                                                    8
                                                                                                                                                                                    9
                                                                                                                                                                                    10
                                                                                                                                                                                    11
                                                                                                                                                                                    // Make sure to add code blocks to your code group
                                                                                                                                                                                    • btnQueryOnClick:btnQuery的OnClick事件,設定重新整理查詢內容。
                                                                                                                                                                                      //JScript
                                                                                                                                                                                      function btnQueryOnClick(sender)
                                                                                                                                                                                      {
                                                                                                                                                                                        GetSQL;
                                                                                                                                                                                        cbChartTypeOnChange(sender);
                                                                                                                                                                                      }
                                                                                                                                                                                      
                                                                                                                                                                                      1
                                                                                                                                                                                      2
                                                                                                                                                                                      3
                                                                                                                                                                                      4
                                                                                                                                                                                      5
                                                                                                                                                                                      6
                                                                                                                                                                                      //PasScript
                                                                                                                                                                                      procedure btnQueryOnClick(sender: tobject);
                                                                                                                                                                                      begin
                                                                                                                                                                                        GetSQL;
                                                                                                                                                                                        cbChartTypeOnChange(sender);
                                                                                                                                                                                      end;
                                                                                                                                                                                      
                                                                                                                                                                                      1
                                                                                                                                                                                      2
                                                                                                                                                                                      3
                                                                                                                                                                                      4
                                                                                                                                                                                      5
                                                                                                                                                                                      6
                                                                                                                                                                                      // Make sure to add code blocks to your code group
                                                                                                                                                                                      • cbEChartTypeOnChange:cbEChartType的OnChange事件,點選切換不同的圖表型別顯示。
                                                                                                                                                                                        //JScript
                                                                                                                                                                                        function cbChartTypeOnChange(sender)
                                                                                                                                                                                        {
                                                                                                                                                                                          if (cbChartType.ItemIndex == 0)
                                                                                                                                                                                            GetEChartBar;
                                                                                                                                                                                          if (cbChartType.ItemIndex == 1)
                                                                                                                                                                                            GetEChartLine;
                                                                                                                                                                                          if (cbChartType.ItemIndex == 2)
                                                                                                                                                                                            GetEChartPie;
                                                                                                                                                                                        }
                                                                                                                                                                                        
                                                                                                                                                                                        
                                                                                                                                                                                        1
                                                                                                                                                                                        2
                                                                                                                                                                                        3
                                                                                                                                                                                        4
                                                                                                                                                                                        5
                                                                                                                                                                                        6
                                                                                                                                                                                        7
                                                                                                                                                                                        8
                                                                                                                                                                                        9
                                                                                                                                                                                        10
                                                                                                                                                                                        11
                                                                                                                                                                                        //PasScript
                                                                                                                                                                                        procedure cbChartTypeOnChange(sender: tobject);
                                                                                                                                                                                        begin
                                                                                                                                                                                          if cbChartType.ItemIndex = 0 Then
                                                                                                                                                                                            GetEChartBar;
                                                                                                                                                                                          if cbChartType.ItemIndex = 1 Then
                                                                                                                                                                                            GetEChartLine;
                                                                                                                                                                                          if cbChartType.ItemIndex = 2 Then
                                                                                                                                                                                            GetEChartPie;
                                                                                                                                                                                        end;
                                                                                                                                                                                        
                                                                                                                                                                                        1
                                                                                                                                                                                        2
                                                                                                                                                                                        3
                                                                                                                                                                                        4
                                                                                                                                                                                        5
                                                                                                                                                                                        6
                                                                                                                                                                                        7
                                                                                                                                                                                        8
                                                                                                                                                                                        9
                                                                                                                                                                                        10
                                                                                                                                                                                        // Make sure to add code blocks to your code group

                                                                                                                                                                                        # 3.3.5. 多語言設定

                                                                                                                                                                                          點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

                                                                                                                                                                                          收集此頁面視窗中所有需要進行翻譯的詞條(包括程式中設定的多語言專案),點選新增按鈕,根據提示填寫維護。

                                                                                                                                                                                        # 3.3.6. 運行效果

                                                                                                                                                                                        # 4. 匯入窗體

                                                                                                                                                                                        # 4.1. 匯入布種資料-多筆數據表單

                                                                                                                                                                                          點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為匯入布種資料的模組,新增的內容樣式如下,主要填寫組別、編號、標題、開發使用者等內容,使用PasScript的使用者編號請填寫為 W-EQ-MOD-2125-1,使用JScript的使用者編號請填寫 W-EQ-MOD-2125-2。填寫完成後,點選儲存按鈕。

                                                                                                                                                                                          選擇剛才建立的標題為匯入布種資料的模組,點選上方的模組設計按鈕,進入模組設計界面。

                                                                                                                                                                                          匯入布種資料的頁面設定如下圖。

                                                                                                                                                                                        # 4.1.1. 功能簡述

                                                                                                                                                                                          此匯入視窗頁面顯示布種資料的相關資訊,該頁面涉及到主從表的設計相關的資訊以及選擇按鈕點選后的數據傳遞方式的設計說明。

                                                                                                                                                                                        # 4.1.2. 窗體設定

                                                                                                                                                                                        屬性 取值 說明
                                                                                                                                                                                        Height 600 主窗體的高度(畫素)
                                                                                                                                                                                        Width 800 主窗體的寬度(畫素)

                                                                                                                                                                                        # 4.1.3. 控制元件設定

                                                                                                                                                                                        • 控制元件說明
                                                                                                                                                                                        控制元件名稱 控制元件型別 說明
                                                                                                                                                                                        UgContainerPanel01 TUgContainerPanel 容器面板控制元件,用於放置查詢內容,按鈕控制元件
                                                                                                                                                                                        Align:alTop
                                                                                                                                                                                        edQuery TUgEdit 用於輸入查詢條件
                                                                                                                                                                                        EmptyText:輸入布種程式碼或名稱
                                                                                                                                                                                        FieldLabel:布種程式碼或名稱
                                                                                                                                                                                        FieldLabelAlign:laTop
                                                                                                                                                                                        btnSelect TUgButton 選擇按鈕
                                                                                                                                                                                        Caption:選擇
                                                                                                                                                                                        btnQuery TUgButton 查詢按鈕
                                                                                                                                                                                        Caption:查詢
                                                                                                                                                                                        btnClear TUgButton 清除按鈕
                                                                                                                                                                                        Caption:清除
                                                                                                                                                                                        UgVerticalLine01 TUgVerticalLine 佈局按鈕,用於區隔不同功能型別的按鈕
                                                                                                                                                                                        btnRefresh TUgButton 重新整理按鈕
                                                                                                                                                                                        Caption:重新整理
                                                                                                                                                                                        btnShowAll TUgButton 顯示全部按鈕
                                                                                                                                                                                        Caption:顯示全部
                                                                                                                                                                                        btnExit TUgButton 退出按鈕
                                                                                                                                                                                        Caption:退出
                                                                                                                                                                                        UgRFDataSet01 TUgRFDataSet 布種數據集
                                                                                                                                                                                        UgDataSource01 TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為UgRFDataSet01
                                                                                                                                                                                        UgRFDataSet02 TUgRFDataSet 布種分組數據集
                                                                                                                                                                                        UgDataSource02 TUgDataSource 數據源控制元件,用於對接數據感知控制元件,其DataSet屬性設定為UgRFDataSet02
                                                                                                                                                                                        UgDBTreeGrid01 TUgDBTreeGrid 樹形表格數據集
                                                                                                                                                                                        Align:alLeft
                                                                                                                                                                                        DataSource:UgDataSource02
                                                                                                                                                                                        IdField:FTreeKeyID
                                                                                                                                                                                        IdParentField:FTreeParentID
                                                                                                                                                                                        UgDBGrid01 TUgDBGrid 表格數據集
                                                                                                                                                                                        Align:alClient
                                                                                                                                                                                        DataSource:UgDataSource01
                                                                                                                                                                                        Option.dgRowSelect:True
                                                                                                                                                                                        Option.dgCheckSelect:True
                                                                                                                                                                                        dgMultiSelect:True
                                                                                                                                                                                        • UgDBTreeGrid01欄位設定

                                                                                                                                                                                          選擇並雙擊UgDBTreeGrid01控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                                                                                                                                                                        • UgDBGrid01欄位設定

                                                                                                                                                                                          選擇並雙擊UgDBGrid01控制元件,打開欄位編輯器,根據下圖顯示的內容進行編輯。點選左上角的+或者-進行新增行或刪除行操作。雙擊FieldName或者Caption可修改對應行的欄位名稱或者顯示標題內容。ReadOnly用於設定欄位是否為可讀屬性。

                                                                                                                                                                                        # 4.1.4. 程式設計

                                                                                                                                                                                          在初始設定程式時,使用JScript使用者需勾選pub_js_tarslink與pub_js_messageinfo單元,使用PasScript的使用者請勾選pub_pas_tarslink與pub_pas_messageinfo單元。

                                                                                                                                                                                        • 初始設定:設定顯示數據集的初始化內容。(僅限PasScript)
                                                                                                                                                                                        Begin
                                                                                                                                                                                          //數據集初始化
                                                                                                                                                                                          UgRFDataSet01.Connection := GetRFERP;
                                                                                                                                                                                          UgRFDataSet02.Connection := GetRFERP;
                                                                                                                                                                                          UgRFDataSet02.Close;
                                                                                                                                                                                          UgRFDataSet02.SQL.Text := 'Select * From Basic_ItemGroup WHERE FTypeID = 1';
                                                                                                                                                                                          UgRFDataSet02.Open;
                                                                                                                                                                                          UgRFDataSet02.First;
                                                                                                                                                                                          UgRFDataSet01.Close;
                                                                                                                                                                                          UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Item  WHERE FTypeID = 1';
                                                                                                                                                                                          UgRFDataSet01.Open;
                                                                                                                                                                                          dtsSelected.Connection := GETRFERP;
                                                                                                                                                                                          dtsSelected.Close;
                                                                                                                                                                                          dtsSelected.SQL.Text := 'SELECT TOP 0 FInterID,FItemCode,FItemName,FItemSpec,FUnitID,FUnitCode,FUnitName'  + 
                                                                                                                                                                                          ' FROM Basic_Item  WHERE FTypeID = 1';
                                                                                                                                                                                          dtsSelected.Open;
                                                                                                                                                                                        End.
                                                                                                                                                                                        
                                                                                                                                                                                        
                                                                                                                                                                                        1
                                                                                                                                                                                        2
                                                                                                                                                                                        3
                                                                                                                                                                                        4
                                                                                                                                                                                        5
                                                                                                                                                                                        6
                                                                                                                                                                                        7
                                                                                                                                                                                        8
                                                                                                                                                                                        9
                                                                                                                                                                                        10
                                                                                                                                                                                        11
                                                                                                                                                                                        12
                                                                                                                                                                                        13
                                                                                                                                                                                        14
                                                                                                                                                                                        15
                                                                                                                                                                                        16
                                                                                                                                                                                        17
                                                                                                                                                                                        18
                                                                                                                                                                                        • UgWebRunFrameOnAfterRunScript:UgWebRunFrame的OnAfterRunScript事件,翻譯界面並驗證模組許可權。
                                                                                                                                                                                          //JScript
                                                                                                                                                                                          function UgWebRunFrameOnAfterRunScript(sender)
                                                                                                                                                                                          {
                                                                                                                                                                                          //翻譯界面
                                                                                                                                                                                            UGMM.LC(Self);
                                                                                                                                                                                          //驗證模組許可權
                                                                                                                                                                                            UGMM.VerifyRunFramePerm(Self);
                                                                                                                                                                                            //數據集初始化
                                                                                                                                                                                            UgRFDataSet01.Connection = GetRFERP;
                                                                                                                                                                                            UgRFDataSet02.Connection = GetRFERP;
                                                                                                                                                                                            UgRFDataSet02.Close;
                                                                                                                                                                                            UgRFDataSet02.SQL.Text = "Select * From Basic_ItemGroup WHERE FTypeID = 1";
                                                                                                                                                                                            UgRFDataSet02.Open;
                                                                                                                                                                                            UgRFDataSet02.First;
                                                                                                                                                                                            UgRFDataSet01.Close;
                                                                                                                                                                                            UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Item  WHERE FTypeID = 1";
                                                                                                                                                                                            UgRFDataSet01.Open;
                                                                                                                                                                                            dtsSelected.Connection = GETRFERP;
                                                                                                                                                                                            dtsSelected.Close;
                                                                                                                                                                                            dtsSelected.SQL.Text = "SELECT TOP 0 FInterID,FItemCode,FItemName,FItemSpec,FUnitID,FUnitCode,FUnitName"  + 
                                                                                                                                                                                            " FROM Basic_Item  WHERE FTypeID = 1";
                                                                                                                                                                                            dtsSelected.Open;
                                                                                                                                                                                          }
                                                                                                                                                                                          
                                                                                                                                                                                          
                                                                                                                                                                                          1
                                                                                                                                                                                          2
                                                                                                                                                                                          3
                                                                                                                                                                                          4
                                                                                                                                                                                          5
                                                                                                                                                                                          6
                                                                                                                                                                                          7
                                                                                                                                                                                          8
                                                                                                                                                                                          9
                                                                                                                                                                                          10
                                                                                                                                                                                          11
                                                                                                                                                                                          12
                                                                                                                                                                                          13
                                                                                                                                                                                          14
                                                                                                                                                                                          15
                                                                                                                                                                                          16
                                                                                                                                                                                          17
                                                                                                                                                                                          18
                                                                                                                                                                                          19
                                                                                                                                                                                          20
                                                                                                                                                                                          21
                                                                                                                                                                                          22
                                                                                                                                                                                          23
                                                                                                                                                                                          24
                                                                                                                                                                                          //PasScript
                                                                                                                                                                                          procedure UgWebRunFrameOnAfterRunScript(const sender: tobject);
                                                                                                                                                                                          begin
                                                                                                                                                                                          //翻譯界面
                                                                                                                                                                                            UGMM.LC(Self);
                                                                                                                                                                                          //驗證模組許可權
                                                                                                                                                                                            UGMM.VerifyRunFramePerm(Self);
                                                                                                                                                                                          end;
                                                                                                                                                                                          
                                                                                                                                                                                          1
                                                                                                                                                                                          2
                                                                                                                                                                                          3
                                                                                                                                                                                          4
                                                                                                                                                                                          5
                                                                                                                                                                                          6
                                                                                                                                                                                          7
                                                                                                                                                                                          8
                                                                                                                                                                                          // Make sure to add code blocks to your code group
                                                                                                                                                                                          • UgDBTreeGrid01OnCellClick:UgDBTreeGrid01的OnCellClick事件,點選實現分組資訊的顯示。
                                                                                                                                                                                            //JScript
                                                                                                                                                                                            function UgDBTreeGrid01OnCellClick(column)
                                                                                                                                                                                            //分組資訊顯示
                                                                                                                                                                                            {
                                                                                                                                                                                            	UgRFDataSet01.Filtered = False;
                                                                                                                                                                                              UgRFDataSet01.Filter = "FGroupID = " + UgRFDataSet02.FieldByName("FInterID").AsString;
                                                                                                                                                                                              UgRFDataSet01.Filtered = True;
                                                                                                                                                                                            }
                                                                                                                                                                                            
                                                                                                                                                                                            1
                                                                                                                                                                                            2
                                                                                                                                                                                            3
                                                                                                                                                                                            4
                                                                                                                                                                                            5
                                                                                                                                                                                            6
                                                                                                                                                                                            7
                                                                                                                                                                                            8
                                                                                                                                                                                            //PasScript
                                                                                                                                                                                            procedure UgDBTreeGrid01OnCellClick(column: tunidbgridcolumn);
                                                                                                                                                                                            //分組資訊顯示
                                                                                                                                                                                            begin
                                                                                                                                                                                            	UgRFDataSet01.Filtered := False;
                                                                                                                                                                                              UgRFDataSet01.Filter := 'FGroupID = ' + UgRFDataSet02.FieldByName('FInterID').AsString;
                                                                                                                                                                                              UgRFDataSet01.Filtered := True;
                                                                                                                                                                                            end;
                                                                                                                                                                                            
                                                                                                                                                                                            1
                                                                                                                                                                                            2
                                                                                                                                                                                            3
                                                                                                                                                                                            4
                                                                                                                                                                                            5
                                                                                                                                                                                            6
                                                                                                                                                                                            7
                                                                                                                                                                                            8
                                                                                                                                                                                            // Make sure to add code blocks to your code group
                                                                                                                                                                                            • btnQueryOnClick:btnQuery的OnClick事件,點選以使用查詢條件執行查詢。
                                                                                                                                                                                              //JScript
                                                                                                                                                                                              //查詢
                                                                                                                                                                                              function btnQueryOnClick(sender)
                                                                                                                                                                                              {
                                                                                                                                                                                                UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Item WHERE (FItemCode LIKE  '%" + edQuery.Text + 
                                                                                                                                                                                                "%' or FItemName LIKE '%" + edQuery.Text + "%') AND FTypeID = 1";
                                                                                                                                                                                                UgRFDataSet01.Open;
                                                                                                                                                                                              }
                                                                                                                                                                                              
                                                                                                                                                                                              1
                                                                                                                                                                                              2
                                                                                                                                                                                              3
                                                                                                                                                                                              4
                                                                                                                                                                                              5
                                                                                                                                                                                              6
                                                                                                                                                                                              7
                                                                                                                                                                                              8
                                                                                                                                                                                              //PasScript
                                                                                                                                                                                              //查詢
                                                                                                                                                                                              procedure btnQueryOnClick(sender: tobject);
                                                                                                                                                                                              begin
                                                                                                                                                                                                UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Item WHERE (FItemCode LIKE  ''%' + edQuery.Text + 
                                                                                                                                                                                                '%'' or FItemName LIKE ''%' + edQuery.Text + '%'') AND FTypeID = 1';
                                                                                                                                                                                                UgRFDataSet01.Open;
                                                                                                                                                                                              end;
                                                                                                                                                                                              
                                                                                                                                                                                              1
                                                                                                                                                                                              2
                                                                                                                                                                                              3
                                                                                                                                                                                              4
                                                                                                                                                                                              5
                                                                                                                                                                                              6
                                                                                                                                                                                              7
                                                                                                                                                                                              8
                                                                                                                                                                                              // Make sure to add code blocks to your code group
                                                                                                                                                                                              • btnClearOnClick:btnClear的OnClick事件,點選以清除查詢條件中的內容,恢復初始查詢。
                                                                                                                                                                                                //JScript
                                                                                                                                                                                                //清除
                                                                                                                                                                                                function btnClearOnClick(sender)
                                                                                                                                                                                                {
                                                                                                                                                                                                  edQuery.Text = "";
                                                                                                                                                                                                  UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Item WHERE FTypeID = 1";
                                                                                                                                                                                                  UgRFDataSet01.Open;
                                                                                                                                                                                                }
                                                                                                                                                                                                
                                                                                                                                                                                                1
                                                                                                                                                                                                2
                                                                                                                                                                                                3
                                                                                                                                                                                                4
                                                                                                                                                                                                5
                                                                                                                                                                                                6
                                                                                                                                                                                                7
                                                                                                                                                                                                8
                                                                                                                                                                                                //PasScript
                                                                                                                                                                                                //清除
                                                                                                                                                                                                procedure btnClearOnClick(sender: tobject);
                                                                                                                                                                                                begin
                                                                                                                                                                                                  edQuery.Text := '';
                                                                                                                                                                                                  UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Item WHERE FTypeID = 1';
                                                                                                                                                                                                  UgRFDataSet01.Open;
                                                                                                                                                                                                end;
                                                                                                                                                                                                
                                                                                                                                                                                                1
                                                                                                                                                                                                2
                                                                                                                                                                                                3
                                                                                                                                                                                                4
                                                                                                                                                                                                5
                                                                                                                                                                                                6
                                                                                                                                                                                                7
                                                                                                                                                                                                8
                                                                                                                                                                                                // Make sure to add code blocks to your code group
                                                                                                                                                                                                • btnExitOnClick:btnExit的OnClick事件,點選退出視窗。
                                                                                                                                                                                                  //JScript
                                                                                                                                                                                                  //退出視窗
                                                                                                                                                                                                  function btnExitOnClick(sender)
                                                                                                                                                                                                  {
                                                                                                                                                                                                    var p = Self.Parent;
                                                                                                                                                                                                    if (p is TUgWebForm)
                                                                                                                                                                                                    {
                                                                                                                                                                                                      TUgWebForm(p).Close;
                                                                                                                                                                                                    }
                                                                                                                                                                                                    if (p is TUniTabSheet)
                                                                                                                                                                                                      UniSession.AddJS("document.getElementById(\"" + TUniTabSheet(p).jsid + "_tab-closeEl\").click();");
                                                                                                                                                                                                  }
                                                                                                                                                                                                  
                                                                                                                                                                                                  1
                                                                                                                                                                                                  2
                                                                                                                                                                                                  3
                                                                                                                                                                                                  4
                                                                                                                                                                                                  5
                                                                                                                                                                                                  6
                                                                                                                                                                                                  7
                                                                                                                                                                                                  8
                                                                                                                                                                                                  9
                                                                                                                                                                                                  10
                                                                                                                                                                                                  11
                                                                                                                                                                                                  12
                                                                                                                                                                                                  //PasScript
                                                                                                                                                                                                  //退出視窗
                                                                                                                                                                                                  procedure btnExitOnClick(sender: tobject);
                                                                                                                                                                                                  Var
                                                                                                                                                                                                    p:TComponent;
                                                                                                                                                                                                  Begin
                                                                                                                                                                                                    p:=Self.Parent;
                                                                                                                                                                                                    if p is TUgWebForm then
                                                                                                                                                                                                    Begin
                                                                                                                                                                                                      TUgWebForm(p).Close;
                                                                                                                                                                                                    End;
                                                                                                                                                                                                    if p is TUniTabSheet then
                                                                                                                                                                                                      UniSession.AddJS('document.getElementById("' + TUniTabSheet(p).jsid + '_tab-closeEl").click();');
                                                                                                                                                                                                  End;
                                                                                                                                                                                                  
                                                                                                                                                                                                  1
                                                                                                                                                                                                  2
                                                                                                                                                                                                  3
                                                                                                                                                                                                  4
                                                                                                                                                                                                  5
                                                                                                                                                                                                  6
                                                                                                                                                                                                  7
                                                                                                                                                                                                  8
                                                                                                                                                                                                  9
                                                                                                                                                                                                  10
                                                                                                                                                                                                  11
                                                                                                                                                                                                  12
                                                                                                                                                                                                  13
                                                                                                                                                                                                  14
                                                                                                                                                                                                  // Make sure to add code blocks to your code group
                                                                                                                                                                                                  • btnRefreshOnClick:btnRefresh的OnClick事件,點選以重新整理頁面顯示,數據集重新進行設定。
                                                                                                                                                                                                    //JScript
                                                                                                                                                                                                    //重新整理頁面顯示,數據集重新設定
                                                                                                                                                                                                    function btnRefreshOnClick(sender)
                                                                                                                                                                                                    {
                                                                                                                                                                                                      UgRFDataSet01.Connection = GetRFERP;
                                                                                                                                                                                                      UgRFDataSet02.Connection = GetRFERP;
                                                                                                                                                                                                      UgRFDataSet02.Close;
                                                                                                                                                                                                      UgRFDataSet02.SQL.Text = "Select * From Basic_ItemGroup WHERE FTypeID = 1";
                                                                                                                                                                                                      UgRFDataSet02.Open;
                                                                                                                                                                                                      UgRFDataSet02.First;
                                                                                                                                                                                                      UgRFDataSet01.Close;
                                                                                                                                                                                                      UgRFDataSet01.SQL.Text = "SELECT * FROM Basic_Item WHERE FTypeID = 1";
                                                                                                                                                                                                      UgRFDataSet01.Open;
                                                                                                                                                                                                      //UgDBGrid01.Refresh;
                                                                                                                                                                                                    }
                                                                                                                                                                                                    
                                                                                                                                                                                                    1
                                                                                                                                                                                                    2
                                                                                                                                                                                                    3
                                                                                                                                                                                                    4
                                                                                                                                                                                                    5
                                                                                                                                                                                                    6
                                                                                                                                                                                                    7
                                                                                                                                                                                                    8
                                                                                                                                                                                                    9
                                                                                                                                                                                                    10
                                                                                                                                                                                                    11
                                                                                                                                                                                                    12
                                                                                                                                                                                                    13
                                                                                                                                                                                                    14
                                                                                                                                                                                                    15
                                                                                                                                                                                                    //PasScript
                                                                                                                                                                                                    //重新整理頁面顯示,數據集重新設定
                                                                                                                                                                                                    procedure btnRefreshOnClick(sender: tobject);
                                                                                                                                                                                                    begin
                                                                                                                                                                                                      UgRFDataSet01.Connection := GetRFERP;
                                                                                                                                                                                                      UgRFDataSet02.Connection := GetRFERP;
                                                                                                                                                                                                      UgRFDataSet02.Close;
                                                                                                                                                                                                      UgRFDataSet02.SQL.Text := 'Select * From Basic_ItemGroup WHERE FTypeID = 1';
                                                                                                                                                                                                      UgRFDataSet02.Open;
                                                                                                                                                                                                      UgRFDataSet02.First;
                                                                                                                                                                                                      UgRFDataSet01.Close;
                                                                                                                                                                                                      UgRFDataSet01.SQL.Text := 'SELECT * FROM Basic_Item WHERE FTypeID = 1';
                                                                                                                                                                                                      UgRFDataSet01.Open;
                                                                                                                                                                                                      //UgDBGrid01.Refresh;
                                                                                                                                                                                                    end;
                                                                                                                                                                                                    
                                                                                                                                                                                                    1
                                                                                                                                                                                                    2
                                                                                                                                                                                                    3
                                                                                                                                                                                                    4
                                                                                                                                                                                                    5
                                                                                                                                                                                                    6
                                                                                                                                                                                                    7
                                                                                                                                                                                                    8
                                                                                                                                                                                                    9
                                                                                                                                                                                                    10
                                                                                                                                                                                                    11
                                                                                                                                                                                                    12
                                                                                                                                                                                                    13
                                                                                                                                                                                                    14
                                                                                                                                                                                                    15
                                                                                                                                                                                                    // Make sure to add code blocks to your code group
                                                                                                                                                                                                    • btnShowAllOnClick:btnShowAll的OnClick事件,點選以顯示全部。
                                                                                                                                                                                                      //JScript
                                                                                                                                                                                                      //顯示全部
                                                                                                                                                                                                      function btnShowAllOnClick(sender)
                                                                                                                                                                                                      {
                                                                                                                                                                                                      	UgRFDataSet01.Filtered = False;
                                                                                                                                                                                                      }
                                                                                                                                                                                                      
                                                                                                                                                                                                      1
                                                                                                                                                                                                      2
                                                                                                                                                                                                      3
                                                                                                                                                                                                      4
                                                                                                                                                                                                      5
                                                                                                                                                                                                      6
                                                                                                                                                                                                      //PasScript
                                                                                                                                                                                                      //顯示全部
                                                                                                                                                                                                      procedure btnShowAllOnClick(sender: tobject);
                                                                                                                                                                                                      begin
                                                                                                                                                                                                      	UgRFDataSet01.Filtered := False;
                                                                                                                                                                                                      end;
                                                                                                                                                                                                      
                                                                                                                                                                                                      1
                                                                                                                                                                                                      2
                                                                                                                                                                                                      3
                                                                                                                                                                                                      4
                                                                                                                                                                                                      5
                                                                                                                                                                                                      6
                                                                                                                                                                                                      // Make sure to add code blocks to your code group
                                                                                                                                                                                                      • btnSelectOnClick:btnSelect的OnClick事件,點選選擇確認要返回的專案,在主視窗獲取此數據集資訊。
                                                                                                                                                                                                        //JScript
                                                                                                                                                                                                        function btnSelectOnClick(sender)
                                                                                                                                                                                                        //確認要返回的專案,在主視窗獲取此數據集資訊
                                                                                                                                                                                                        {
                                                                                                                                                                                                          var i;
                                                                                                                                                                                                          if (UgRFDataSet01.IsEmpty)
                                                                                                                                                                                                            return;
                                                                                                                                                                                                            //Exit;
                                                                                                                                                                                                          dtsSelected.Close;
                                                                                                                                                                                                          dtsSelected.Open;
                                                                                                                                                                                                          //依次選擇打勾的專案,將數據欄位存入選擇的對象中。
                                                                                                                                                                                                          for (i = 0; i<= UgDBGrid01.SelectedRows.count - 1; i++)
                                                                                                                                                                                                          {
                                                                                                                                                                                                            UgRFDataSet01.Bookmark = UgDBGrid01.selectedRows[i];
                                                                                                                                                                                                            dtsSelected.Append;
                                                                                                                                                                                                            dtsSelected.FieldByName("FInterID").AsString = UgRFDataSet01.FieldByName("FInterID").AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName("FItemCode").AsString = UgRFDataSet01.FieldByName("FItemCode").AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName("FItemName").AsString = UgRFDataSet01.FieldByName("FItemName").AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName("FItemSpec").AsString = UgRFDataSet01.FieldByName("FItemSpec").AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName("FUnitID").AsString = UgRFDataSet01.FieldByName("FUnitID").AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName("FUnitCode").AsString = UgRFDataSet01.FieldByName("FUnitCode").AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName("FUnitName").AsString = UgRFDataSet01.FieldByName("FUnitName").AsString;
                                                                                                                                                                                                            dtsSelected.Post;
                                                                                                                                                                                                          }
                                                                                                                                                                                                          //關閉視窗時返回狀態資訊
                                                                                                                                                                                                          TUgWebForm(self.Parent).ModalResult = mrOK;
                                                                                                                                                                                                        }
                                                                                                                                                                                                        
                                                                                                                                                                                                        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
                                                                                                                                                                                                        //PasScript
                                                                                                                                                                                                        procedure btnSelectOnClick(sender: tobject);
                                                                                                                                                                                                        //確認要返回的專案,在主視窗獲取此數據集資訊
                                                                                                                                                                                                        Var
                                                                                                                                                                                                          i: Integer;
                                                                                                                                                                                                        begin
                                                                                                                                                                                                          if UgRFDataSet01.IsEmpty then
                                                                                                                                                                                                          Exit;
                                                                                                                                                                                                          dtsSelected.Close;
                                                                                                                                                                                                          dtsSelected.Open;
                                                                                                                                                                                                          //依次選擇打勾的專案,將數據欄位存入選擇的對象中。
                                                                                                                                                                                                          for i := 0 to UgDBGrid01.SelectedRows.count - 1 do
                                                                                                                                                                                                          begin 
                                                                                                                                                                                                            UgRFDataSet01.Bookmark := UgDBGrid01.selectedRows[i];
                                                                                                                                                                                                            dtsSelected.Append;
                                                                                                                                                                                                            dtsSelected.FieldByName('FInterID').AsString := UgRFDataSet01.FieldByName('FInterID').AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName('FItemCode').AsString := UgRFDataSet01.FieldByName('FItemCode').AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName('FItemName').AsString := UgRFDataSet01.FieldByName('FItemName').AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName('FItemSpec').AsString := UgRFDataSet01.FieldByName('FItemSpec').AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName('FUnitID').AsString := UgRFDataSet01.FieldByName('FUnitID').AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName('FUnitCode').AsString := UgRFDataSet01.FieldByName('FUnitCode').AsString;
                                                                                                                                                                                                            dtsSelected.FieldByName('FUnitName').AsString := UgRFDataSet01.FieldByName('FUnitName').AsString;
                                                                                                                                                                                                            dtsSelected.Post;
                                                                                                                                                                                                          End;
                                                                                                                                                                                                          //關閉視窗時返回狀態資訊
                                                                                                                                                                                                          TUgWebForm(self.Parent).ModalResult := mrOK;
                                                                                                                                                                                                        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
                                                                                                                                                                                                        // Make sure to add code blocks to your code group

                                                                                                                                                                                                        # 4.1.5. 多語言設定

                                                                                                                                                                                                          點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

                                                                                                                                                                                                          收集此頁面視窗中所有需要進行翻譯的詞條(包括程式中設定的多語言專案),點選新增按鈕,根據提示填寫維護。

                                                                                                                                                                                                        # 4.1.6. 運行效果

                                                                                                                                                                                                        # 4.2. PDF檢視

                                                                                                                                                                                                          點選功能表導航欄中的模組列表(WEB),在打開的模組列表中點選新增按鈕,新增標題為PDFPreview的模組,新增的內容樣式如下,主要填寫組別、標題、開發使用者三項內容,填寫完成後,點選儲存按鈕。

                                                                                                                                                                                                          選擇剛才建立的標題為PDFPreview的模組,點選上方的模組設計按鈕,進入模組設計界面。

                                                                                                                                                                                                          PDF檢視的頁面設定如下圖。

                                                                                                                                                                                                        # 4.2.1. 功能簡述

                                                                                                                                                                                                          此頁面不能單獨運行,需要由其他視窗呼叫並傳遞PDF的相關參數才可以正常運行。

                                                                                                                                                                                                        # 4.2.2. 窗體設定

                                                                                                                                                                                                        屬性 取值 說明
                                                                                                                                                                                                        Height 600 主窗體的高度(畫素)
                                                                                                                                                                                                        Width 800 主窗體的寬度(畫素)

                                                                                                                                                                                                        # 4.2.3. 控制元件設定

                                                                                                                                                                                                        • 控制元件說明
                                                                                                                                                                                                        控制元件名稱 控制元件型別 說明
                                                                                                                                                                                                        UgURLFrame TUgURLFrame 顯示列印結果的頁面控制元件,接收的是網頁地址
                                                                                                                                                                                                        Align:alClient

                                                                                                                                                                                                        # 4.2.4. 程式設計

                                                                                                                                                                                                          此實體無需設計程式。

                                                                                                                                                                                                        # 4.2.5. 多語言設定

                                                                                                                                                                                                          點選FastWeb低程式碼開發平臺功能表導航項中的系統管理-翻譯-詞條維護。

                                                                                                                                                                                                          收集此頁面視窗中所有需要進行翻譯的詞條(包括程式中設定的多語言專案),點選新增按鈕,根據提示填寫維護。

                                                                                                                                                                                                        # 4.2.6. 運行效果

                                                                                                                                                                                                        開發案例
                                                                                                                                                                                                        頁面佈局

                                                                                                                                                                                                        ← 開發案例 頁面佈局→

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