⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 billmanager.pas

📁 三层ERP系统 (SQL)
💻 PAS
字号:
unit BillManager;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MDIBase, FR_DSet, FR_DBSet, FR_Class, Menus, ActnList, DB,
  DBClient, Grids, DBGridEh, StdCtrls, ExtCtrls;

Const
  WM_USER_GETDATA = WM_USER+1024;

type
  TfrmBillManager = class(TfrmMDIBase)
    Panel1: TPanel;
    FormTitle: TLabel;
    Panel3: TPanel;
    btnExit: TButton;
    Panel2: TPanel;
    btnadd: TButton;
    btncopy: TButton;
    btnedit: TButton;
    btndelete: TButton;
    Panel4: TPanel;
    btnrefresh: TButton;
    btnsearch: TButton;
    grid: TDBGridEh;
    CDSBaseinfo: TClientDataSet;
    DSbaseinfo: TDataSource;
    ActionList2: TActionList;
    acrefresh: TAction;
    acsearch: TAction;
    acfieldproperty: TAction;
    acexit: TAction;
    acfirst: TAction;
    acprior: TAction;
    acnext: TAction;
    aclast: TAction;
    popupgrid: TPopupMenu;
    N10: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    procedure gridDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumnEh; State: TGridDrawState);
    procedure FormDestroy(Sender: TObject);
    procedure acexitExecute(Sender: TObject);
    procedure acfirstExecute(Sender: TObject);
    procedure acpriorExecute(Sender: TObject);
    procedure acnextExecute(Sender: TObject);
    procedure aclastExecute(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure acrefreshExecute(Sender: TObject);
    procedure acfieldpropertyExecute(Sender: TObject);
    procedure acsearchExecute(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure gridDblClick(Sender: TObject);
  private
    Maintable:String;
    KeyField:String;
    procedure Getdata(var getdata:Tmessage);Message WM_USER_GETDATA;
    function GetGridTitle(TableName:String):Boolean;     
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmBillManager: TfrmBillManager;

implementation

uses Global, DataProcess, Binterface, BillLookup, SellOrderStatus,
  ContractStatus;

{$R *.dfm}

procedure TfrmBillManager.gridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumnEh;
  State: TGridDrawState);
begin
  inherited;
  if CDSBaseinfo.RecNo  mod 2 = 0 then
    begin
      Grid.Canvas.Brush.Color:=$00EAEFED;
      Grid.Canvas.Font.Color:=clBlack;
    end
    else
    begin
      Grid.Canvas.Brush.Color:=clWhite;
      Grid.Canvas.Font.Color:=clBlack;
    end;
  if gdselected in state then
    begin
      grid.Canvas.Brush.Color:=clBackground;
      grid.Canvas.Font.Color:=clWhite;
    end;
  grid.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;

procedure TfrmBillManager.FormDestroy(Sender: TObject);
begin
  inherited;
  frmBillManager:=nil;
end;

procedure TfrmBillManager.acexitExecute(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmBillManager.acfirstExecute(Sender: TObject);
begin
  inherited;
  CDSbaseinfo.First; 
end;

procedure TfrmBillManager.acpriorExecute(Sender: TObject);
begin
  inherited;
  CDSBaseinfo.Prior; 
end;

procedure TfrmBillManager.acnextExecute(Sender: TObject);
begin
  inherited;
  CDSBaseinfo.Next; 
end;

procedure TfrmBillManager.aclastExecute(Sender: TObject);
begin
  inherited;
  CDSBaseinfo.Last; 
end;

procedure TfrmBillManager.Getdata(var getdata: Tmessage);
var
  tiao:String;
begin
  tiao:=KeyField+'>='+vartosql(GetMaxid(Maintable,KeyField)-20);
  ClearCDSDATA(CDSBaseinfo);
  CDSBaseinfo.Data:=GetBillStatus(Tiao);
  GetGridTitle(MainTable);
end;

function TfrmBillManager.GetGridTitle(TableName: String): Boolean;
var
  i:integer;
  TMPCDS:TclientDataset;
begin
Result:=True;
if TableName='' then
    Exit;
  try
    CDSbaseinfo.DisableControls;
    TMPCDS:=Tclientdataset.Create(nil);
    TMPCDS.FetchOnDemand:=False;
    GetsqlData(TMPCDS,'TTablefield','fid','ftableName='+vartosql(TableName),20);
    if TMPCDS.RecordCount > 0 then
      begin
        for i:=0 to CDSBaseinfo.Fields.Count - 1 do
          begin
           TMPCDS.First;
            while not TMPCDS.Eof do
              begin
                if UpperCase(CDSbaseinfo.fields[i].FieldName)=UpperCase(TMPCDS.FieldByName('fname').AsString) then
                  begin
                    CDSbaseinfo.Fields[i].DisplayLabel:=TMPCDS.fieldbyname('fdesc').AsString;
                    if (TMPCDS.FieldByName('ftype').AsString='int') or
                        (TMPCDS.FieldByName('ftype').AsString='bit') or
                        (TMPCDS.FieldByName('ftype').AsString='datetime') or
                        (TMPCDS.FieldByName('ftype').AsString='numeric') then
                        CDSbaseinfo.Fields[i].DisplayWidth := 8
                        else
                        CDSbaseinfo.Fields[i].DisplayWidth:=Trunc(TMPCDS.fieldbyname('flength').AsInteger/1.5);
                    if not TMPCDS.FieldByName('fisVisible').AsBoolean then
                      begin
                        CDSbaseinfo.Fields[i].Visible:=False;
                      end;
                  end;
                TMPCDS.Next;
              end;
            CDSBaseinfo.Next;
          end;
      end;
  finally
    TMPCDS.Close;
    TMPCDS.Free;
    CDSbaseinfo.EnableControls; 
  end;
end;


procedure TfrmBillManager.FormShow(Sender: TObject);
begin
  inherited;
  postmessage(handle,WM_USER_GETDATA,0,0);
  application.ProcessMessages;
end;

procedure TfrmBillManager.acrefreshExecute(Sender: TObject);
begin
  inherited;
  postmessage(handle,WM_USER_GETDATA,0,0);
  application.ProcessMessages;
end;

procedure TfrmBillManager.acfieldpropertyExecute(Sender: TObject);
begin
  inherited;
  FromInterface:=MainTable;
  ShowModalForm(TfrmInterface,Self,Tform(frminterface));
  postmessage(handle,WM_USER_GETDATA,0,0);
  application.ProcessMessages;
end;

procedure TfrmBillManager.acsearchExecute(Sender: TObject);
begin
  inherited;
  Searchtiao:='';
  ShowModalForm(TfrmBillLookup,Self,Tform(frmBillLookup));
  if Searchtiao<>'' then
    Begin
      try
      ClearCDSDATA(CDSBaseinfo);
      CDSBaseinfo.Data:=GetBillStatus(Searchtiao);
      GetGridTitle(MainTable);
      except
        messagedlg('琩高兵ン砞竚Τ粇 ! ',mtWarning,[mbok],0);
        postmessage(handle,WM_USER_GETDATA,0,0);
        application.ProcessMessages;
      end;
    end;
end;

procedure TfrmBillManager.FormCreate(Sender: TObject);
begin
  inherited;
  Maintable:='TDraft';
  KeyField:='fid';
end;

procedure TfrmBillManager.gridDblClick(Sender: TObject);
begin
  inherited;
  if CDSBaseinfo.RecordCount > 0 then
    begin
      UserSelectBillNo:=CDSBaseinfo.fieldbyname('fBillNo').AsString;
      if Copy(UserSelectBillNo,1,2)='HT' then
        begin
          ShowModalForm(TfrmContractStatus,self,Tform(frmContractStatus));
        end;
      if Copy(UserSelectBillNo,1,2)='XS' then
        begin
          ShowModalForm(TfrmSellOrderStatus,self,Tform(frmSellOrderStatus));
        end;
    end
    else
    Exit;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -