亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? paymentbase.pas

?? Barcode And LabelPrint
?? PAS
字號:
unit PaymentBase;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Base, DBCtrls, StdCtrls, ExtCtrls, DB, ADODB, ComCtrls, ToolWin,
  ActnList, wwdbdatetimepicker, Mask, wwdbedit;

type
  TfrmPaymentBase = class(TfrmBase)
    ALToolbar: TActionList;
    acNew: TAction;
    acModify: TAction;
    acDelete: TAction;
    acSave: TAction;
    acCancel: TAction;
    acFirst: TAction;
    acPrior: TAction;
    acNext: TAction;
    acLast: TAction;
    acFind: TAction;
    acPrint: TAction;
    acExit: TAction;
    acConfirm: TAction;
    ToolBar: TToolBar;
    tbtNew: TToolButton;
    tbtModify: TToolButton;
    tbtDelete: TToolButton;
    tbtDivider1: TToolButton;
    tbtFirst: TToolButton;
    tbtPrior: TToolButton;
    tbtNext: TToolButton;
    tbtLast: TToolButton;
    tbtDivider: TToolButton;
    ToolButton1: TToolButton;
    ToolButton3: TToolButton;
    tbtSave: TToolButton;
    tbtCancel: TToolButton;
    ToolButton5: TToolButton;
    tbtFind: TToolButton;
    tbtDivider3: TToolButton;
    tbtExit: TToolButton;
    spGetInNumber: TADOStoredProc;
    spGetOutNumber: TADOStoredProc;
    pnlTop: TPanel;
    lblSubmit: TLabel;
    lblBillCaption: TLabel;
    lblNO: TLabel;
    dbtxtNo: TDBText;
    QMaster: TADOQuery;
    dsMaster: TDataSource;
    lblMaker: TLabel;
    lblSubmitUser: TLabel;
    lblDate: TLabel;
    lblSubmitDate: TLabel;
    wwDBEdtMaker: TwwDBEdit;
    wwDBEdtSubmitUser: TwwDBEdit;
    wwPKDate: TwwDBDateTimePicker;
    wwPKSubmitDate: TwwDBDateTimePicker;
    procedure acFirstExecute(Sender: TObject);
    procedure acPriorExecute(Sender: TObject);
    procedure acNextExecute(Sender: TObject);
    procedure acLastExecute(Sender: TObject);
    procedure acExitExecute(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure dsMasterDataChange(Sender: TObject; Field: TField);
    procedure dsMasterStateChange(Sender: TObject);
    procedure acNewExecute(Sender: TObject);
    procedure acModifyExecute(Sender: TObject);
    procedure acDeleteExecute(Sender: TObject);
    procedure acSaveExecute(Sender: TObject);
    procedure acCancelExecute(Sender: TObject);
    procedure QMasterBeforePost(DataSet: TDataSet);
    procedure QMasterAfterPost(DataSet: TDataSet);
    procedure QMasterBeforeDelete(DataSet: TDataSet);
    procedure QMasterPostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure QMasterDeleteError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    procedure FormCreate(Sender: TObject);
    procedure QMasterAfterInsert(DataSet: TDataSet);
    procedure acConfirmExecute(Sender: TObject);
  private
    { Private declarations }
  protected
    iFunctionID :Integer;  {模塊標識ID}
    iBillTypeID :Integer;  {單據類型ID}
    sMasterSql  :String;   {主表的Sql語句}
    bCanNew,bCanModify,bCanDelete,bCanPrint,bCanConfirm,bCanCounteract :Boolean;
    function CheckSave :Boolean;  {檢測當前數據是否保存函數}
    function GetErrorInfo(E: EDatabaseError) :String; {取錯誤描述信息和錯誤原碼}
    Procedure GetPermiss ; virtual; {得到當前用戶的權限}
  public
    { Public declarations }
  end;

var
  frmPaymentBase: TfrmPaymentBase;

implementation

Uses Main, Global, DataModule;
{$R *.dfm}

{檢測當前數據是否保存函數}
Function TfrmPaymentBase.CheckSave :Boolean;
begin
Result:=true;
if QMaster.State in [dsInsert,dsEdit] then //判斷當前狀態
   Case Messagedlg('是否保存當前的修改?',mtWarning,[mbYes,mbNo,mbCancel],0) of
   mrYes:
     begin
     QMaster.Post ;
     Result := QMaster.State = dsBrowse;  //狀態是否為Browse
     end;
   mrNo:
     begin
     QMaster.Cancel ;
     Result := QMaster.State = dsBrowse;  //狀態是否為Browse
     end;
   mrCancel:
     Result := False ;
   End
end;

{取錯誤描述信息和錯誤原碼}
function TfrmPaymentBase.GetErrorInfo(E: EDatabaseError) :String;
var
  AdoErrors :Errors; //ado的錯誤信息對象
  sError :String;
//  i :Integer;
begin
  inherited;
{取得錯誤信息}
AdoErrors:=dmClient.adocnClothing.Errors ;
//for i:=0 to AdoErrors.Count-1 do
if AdoErrors.Count >0 then  //可能有多個錯誤信息,這里只取第一個
  sError:= sError+#10#13+AdoErrors.Item[0].Description+' (錯誤碼:'+InttoStr(AdoErrors.Item[0].NativeError)+')'
  Else if (E is EDatabaseError) then
       sError:=E.Message ;

Result:=sError;
end;

{得到用戶對當前窗體的操作權限}
procedure TfrmPaymentBase.GetPermiss;
begin
bCanNew :=G_bAdmin;
bCanModify :=G_bAdmin;
bCanDelete :=G_bAdmin;
bCanPrint :=G_bAdmin;
bCanConfirm :=G_bAdmin;
bCanCounteract :=G_bAdmin;

if G_bAdmin then //判斷是否為超級用戶
begin
  bCanNew :=G_bAdmin;
  bCanModify :=G_bAdmin;
  bCanDelete :=G_bAdmin;
  bCanPrint :=G_bAdmin;
  bCanConfirm :=G_bAdmin;
  bCanCounteract :=G_bAdmin;
end
else  //否則查找當前用戶是否有當前窗體的操作權限
with dmClient.spUserRight do
  if Locate('fModuleID;fActionName',varArrayOf([iModuleID,sFunctionName]),[]) then
     begin
     bCanNew := FieldByName('fInsert').AsBoolean;
     bCanModify := FieldByName('fEdit').AsBoolean;
     bCanDelete := FieldByName('fDelete').AsBoolean;
     bCanPrint := FieldByName('fPrint').AsBoolean;
     bCanConfirm := FieldByName('fConfirm').AsBoolean;
     bCanCounteract := FieldByName('fCancel').AsBoolean;
     end
end;

procedure TfrmPaymentBase.acFirstExecute(Sender: TObject);
begin
  inherited;
QMaster.First ;
end;

procedure TfrmPaymentBase.acPriorExecute(Sender: TObject);
begin
  inherited;
QMaster.Prior;
end;

procedure TfrmPaymentBase.acNextExecute(Sender: TObject);
begin
  inherited;
QMaster.Next;
end;

procedure TfrmPaymentBase.acLastExecute(Sender: TObject);
begin
  inherited;
QMaster.Last;
end;

procedure TfrmPaymentBase.acExitExecute(Sender: TObject);
begin
  inherited;
Close;
end;

procedure TfrmPaymentBase.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  CanClose :=CheckSave; //未保存則不能退出
end;

procedure TfrmPaymentBase.dsMasterDataChange(Sender: TObject;
  Field: TField);
begin
  inherited;
{調用狀態變化過程}
  dsMasterStateChange(Sender);
end;

procedure TfrmPaymentBase.dsMasterStateChange(Sender: TObject);
var
i: Integer;
begin
  inherited;
{設置功能按鈕的有效性}
acSave.Enabled := QMaster.State in [dsInsert,dsEdit];
acNew.Enabled := bCanNew and Not acSave.Enabled ;
acModify.Enabled := bCanModify
                    and Not acSave.Enabled
                    and not QMaster.FieldByName('fSubmitFlag').AsBoolean; //還未確認的單據
acCancel.Enabled := acSave.Enabled ;
acDelete.Enabled := bCanDelete
                    and not QMaster.FieldByName('fSubmitFlag').AsBoolean; //還未確認的單據
acPrint.Enabled := bCanPrint;

acConfirm.Enabled := bCanConfirm  //有確認操作權限
                     and not QMaster.FieldByName('fSubmitFlag').AsBoolean //還未確認的單據
                     and Not acSave.Enabled ;
acFind.Enabled := Not acSave.Enabled ;

//頁腳信息
lblSubmitDate.Visible := QMaster.FieldByName('fSubmitFlag').AsBoolean;
lblSubmitUser.Visible := lblSubmitDate.Visible;
wwPKSubmitDate.Visible := lblSubmitDate.Visible;
wwDBEdtSubmitUser.Visible := lblSubmitDate.Visible;

//Lable信息
lblSubmit.Visible :=QMaster.FieldByName('fSubmitFlag').AsBoolean;

{設置編輯控件的ReadOnly}
With PnlTop do                                 
   for i:= 0 to ControlCount-1 do
     if Controls[i] is TDBEdit then
        (Controls[i] as TDBEdit).ReadOnly := Not acSave.Enabled
        else if Controls[i] is TwwDBEdit then
             (Controls[i] as TwwDBEdit).ReadOnly := Not acSave.Enabled
             else if Controls[i] is TDBMemo then
                  (Controls[i] as TDBMemo).ReadOnly := Not acSave.Enabled;

{設置導航按鈕的有效性}
acFirst.Enabled := (Not QMaster.Bof) and (Not acSave.Enabled) ;
acLast.Enabled := (Not QMaster.Eof) and (Not acSave.Enabled);
acPrior.Enabled := (acFirst.Enabled) and (Not acSave.Enabled);
acNext.Enabled := (acLast.Enabled) and (Not acSave.Enabled);

end;

procedure TfrmPaymentBase.acNewExecute(Sender: TObject);
begin
  inherited;
QMaster.Append ;
end;

procedure TfrmPaymentBase.acModifyExecute(Sender: TObject);
begin
  inherited;
QMaster.Edit ;
end;

procedure TfrmPaymentBase.acDeleteExecute(Sender: TObject);
begin
  inherited;
if QMaster.RecordCount >0 then
   if messagedlg('您確定要刪除當前單據嗎?',mtWarning,[mbOk,mbCancel],0)=mrOk then
      QMaster.Delete ;
end;

procedure TfrmPaymentBase.acSaveExecute(Sender: TObject);
begin
  inherited;
if QMaster.State in [dsInsert,dsEdit] then
   QMaster.Post ;
end;

procedure TfrmPaymentBase.acCancelExecute(Sender: TObject);
begin
  inherited;
if messagedlg('您確定要取消修改嗎?',mtWarning,[mbOk,mbCancel],0)=mrOk then
   QMaster.Cancel ;
end;

procedure TfrmPaymentBase.QMasterBeforePost(DataSet: TDataSet);
begin
  inherited;
if QMaster.State = dsInsert then
begin
    //取外部單號NO
    Try
    With spGetOutNumber do
      begin
      parameters.ParamValues['@BillType']:=iBillTypeID;
      Execproc;
      end;
    except
    on E:Exception do
      begin
      MessageDlg('取單據號失敗!'+#13#10+E.Message,mterror,[mbOk],0);
      Abort;
      end;
    end;
    QMaster.FieldByName('fNO').asString:=
                             Trim(spGetOutNumber.Parameters.ParamValues['@OutNumber']);
End;

//開啟事務
if Not dmClient.adocnClothing.InTransaction then
   dmClient.adocnClothing.BeginTrans ;
end;

procedure TfrmPaymentBase.QMasterAfterPost(DataSet: TDataSet);
begin
  inherited;
{提交事務}
if dmClient.adocnClothing.InTransaction then
   dmClient.adocnClothing.CommitTrans ;
end;

procedure TfrmPaymentBase.QMasterBeforeDelete(DataSet: TDataSet);
begin
  inherited;
{開啟事務}
if Not dmClient.adocnClothing.InTransaction then
   dmClient.adocnClothing.BeginTrans ;
end;

procedure TfrmPaymentBase.QMasterPostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  inherited;
{提示錯誤描述信息和錯誤原碼}
messagedlg('存盤失敗!'+GetErrorInfo(E),mtError,[mbOk],0);
Action := daAbort; //終止存盤
end;

procedure TfrmPaymentBase.QMasterDeleteError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  inherited;
{提示錯誤描述信息和錯誤原碼}
messagedlg('刪除失敗!'+GetErrorInfo(E),mtError,[mbOk],0);
Action := daAbort;  //終止存盤
end;

procedure TfrmPaymentBase.FormCreate(Sender: TObject);
begin
  inherited;
GetPermiss;
if not QMaster.Active then
   QMaster.Open
   else
   dsMasterStateChange(Sender);   {調用狀態變化過程}
end;

procedure TfrmPaymentBase.QMasterAfterInsert(DataSet: TDataSet);
begin
  inherited;
//取內部單號ID
Try
With spGetInNumber do
  begin
  parameters.ParamValues['@BillType']:=iBillTypeID;
  Execproc;
  end;
except
on E:Exception do
  begin
  MessageDlg('新增單據失敗!'+#13#10+E.Message,mterror,[mbOk],0);
  Abort;
  end;
end;
QMaster.FieldByName('fID').asInteger:=
                           spGetInNumber.Parameters.ParamValues['@InNumber'];
QMaster.FieldByName('fPayType').asInteger:= 0;
QMaster.FieldByName('fUseRemain').asBoolean:= False;
QMaster.FieldByName('fMaker').asString:= G_sUserName;
QMaster.FieldByName('fDate').asDatetime:= Date();
end;

procedure TfrmPaymentBase.acConfirmExecute(Sender: TObject);
begin
  inherited;
if messageDlg('你確定要審核當前單據嗎?',mtWarning,[mbOk,mbCancel],0)=mrOk then
   begin
   Screen.Cursor :=crHourGlass;
   try
   QMaster.Edit ;
   QMaster.FieldValues['fSubmitFlag'] :=1;
   QMaster.FieldByName('fSubmitDate').AsDatetime :=date();
   QMaster.FieldByName('fSubmitUser').AsString :=G_sUserName;
   QMaster.Post ;
   except
   on E:Exception do
      begin
      Screen.Cursor :=crDefault;
      messagedlg('操作失敗!'+#13#10+E.Message,mtError,[mbOk],0);
      exit;
      end;
   end;
   Screen.Cursor :=crDefault;
   end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
1000部国产精品成人观看| 久久99国内精品| 日本网站在线观看一区二区三区| 国产盗摄精品一区二区三区在线| 91精品国产欧美一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 国产麻豆91精品| 久久婷婷久久一区二区三区| 免费一级片91| 久久一留热品黄| 欧洲精品中文字幕| 综合欧美一区二区三区| 色激情天天射综合网| 亚洲最大色网站| 欧美日韩免费一区二区三区视频| 日本伊人精品一区二区三区观看方式| 欧美极品美女视频| 成人一道本在线| 亚洲欧洲国产日本综合| 精品国精品自拍自在线| 国产福利91精品一区二区三区| 午夜精品久久久久久久蜜桃app| 欧美日韩一区精品| 色综合 综合色| 香蕉成人伊视频在线观看| 9191国产精品| 国产一区二区三区四区五区美女| 日韩专区一卡二卡| 久久精品亚洲精品国产欧美| 99久久er热在这里只有精品66| 亚洲精品菠萝久久久久久久| 欧美一三区三区四区免费在线看| 日本韩国视频一区二区| 成人18精品视频| 无吗不卡中文字幕| 亚洲成人你懂的| 亚洲一区二区在线免费看| 欧美mv和日韩mv国产网站| caoporm超碰国产精品| 免费在线看成人av| 免费精品99久久国产综合精品| 亚洲成人资源在线| 婷婷久久综合九色综合绿巨人| 亚洲综合精品久久| 一区二区三区在线免费播放| 亚洲精品免费在线播放| 亚洲综合一区二区精品导航| 亚洲影院免费观看| 亚洲不卡在线观看| 免费在线观看视频一区| 激情五月婷婷综合| 亚洲精品视频一区二区| 亚洲一区二区成人在线观看| 国产精品国产三级国产普通话99 | 国产日韩精品一区二区三区| 91麻豆免费看| 久久99在线观看| 一区二区三区四区亚洲| 亚洲一区二区黄色| 麻豆国产欧美日韩综合精品二区| 国产精品二区一区二区aⅴ污介绍| 国产日韩综合av| 亚洲欧洲在线观看av| 一区二区三区在线看| 日韩av电影免费观看高清完整版在线观看| 舔着乳尖日韩一区| 韩国女主播成人在线| 懂色av一区二区在线播放| 乱一区二区av| 国产99精品国产| 91精彩视频在线| 日韩欧美第一区| 欧美日韩国产首页在线观看| 成人18精品视频| 欧美视频第二页| 日本精品视频一区二区三区| 6080yy午夜一二三区久久| 26uuu久久天堂性欧美| 国产精品全国免费观看高清| 久久久久97国产精华液好用吗| 精品视频资源站| 2021中文字幕一区亚洲| 亚洲欧洲成人自拍| 日韩精品成人一区二区三区| 国产成人精品一区二区三区网站观看| 色播五月激情综合网| 久久综合狠狠综合| 亚洲精品高清在线| 国产一区久久久| 在线亚洲一区观看| 国产日韩欧美在线一区| 天堂午夜影视日韩欧美一区二区| 国产成人免费视| 在线观看91av| 欧美日韩久久一区二区| 久久精品人人做人人爽人人| 午夜天堂影视香蕉久久| 成人小视频在线观看| 欧美猛男gaygay网站| 国产精品色在线| 蜜臀av在线播放一区二区三区| jizzjizzjizz欧美| 久久伊人中文字幕| 日韩精品五月天| 欧美影院一区二区三区| 欧美高清在线一区| 久久精品99国产国产精| 色天使久久综合网天天| 久久久久久99久久久精品网站| 亚洲va欧美va国产va天堂影院| 成人app网站| 久久久www成人免费无遮挡大片| 午夜精品一区二区三区电影天堂| 一本色道a无线码一区v| 国产亚洲一区二区三区| 精品一区二区三区不卡| 91精品国产综合久久婷婷香蕉 | av一区二区不卡| 精品国产91乱码一区二区三区 | 日韩美女主播在线视频一区二区三区| 亚洲欧美日韩国产成人精品影院 | 欧美日本视频在线| 一区二区三区自拍| 99国产精品久久久久久久久久| 久久久99精品免费观看不卡| 久久er99精品| 日韩欧美电影在线| 免费精品99久久国产综合精品| 欧美精品在线视频| 亚洲一级电影视频| 欧美少妇一区二区| 亚洲高清免费在线| 国产在线精品不卡| 精品美女在线观看| 麻豆中文一区二区| 日韩精品一区二区三区swag| 日本女优在线视频一区二区| 欧美日本免费一区二区三区| 亚洲一二三区视频在线观看| 91成人免费在线视频| 亚洲免费观看高清完整版在线观看| 91在线一区二区三区| 国产精品欧美综合在线| 成人精品国产一区二区4080| 欧美激情一区二区三区蜜桃视频| 成人激情免费网站| 亚洲人成亚洲人成在线观看图片| 91原创在线视频| 亚洲午夜在线电影| 日韩美女一区二区三区四区| 国产一区二区伦理片| 国产夜色精品一区二区av| 成人综合婷婷国产精品久久蜜臀| 亚洲天堂成人网| 欧美性生交片4| 免费成人在线视频观看| 久久蜜桃一区二区| 成人高清视频在线| 亚洲精品成人a在线观看| 欧美日韩成人综合| 麻豆精品在线播放| 一区二区三区日韩精品| 欧美手机在线视频| 免费在线成人网| 久久先锋影音av鲁色资源网| 粉嫩aⅴ一区二区三区四区五区 | 中文字幕一区在线| 欧美亚洲高清一区| 久久精品国产精品亚洲红杏 | 亚洲欧美日韩国产综合| 欧美视频中文字幕| 麻豆国产精品一区二区三区 | 国产+成+人+亚洲欧洲自线| 中文字幕一区二区5566日韩| 欧美日韩国产一级片| 国产一区二区精品在线观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 欧美专区亚洲专区| 美女诱惑一区二区| 国产精品久久二区二区| 91精品国产乱码久久蜜臀| 成人免费观看视频| 日本不卡视频一二三区| 中文一区二区在线观看| 欧美午夜精品一区二区三区| 国产精品伊人色| 日韩欧美国产系列| 97精品国产露脸对白| 蜜桃久久久久久| 一区二区三区在线观看网站| 精品国产制服丝袜高跟| 欧美视频日韩视频在线观看| 国产成人99久久亚洲综合精品| 亚洲3atv精品一区二区三区| 国产精品色噜噜| 欧美大度的电影原声| 在线观看一区不卡| 国产一区二区三区免费看| 天天综合天天综合色| 亚洲乱码一区二区三区在线观看|