xsskd1.pas

来自「思微POS连锁超市管理系统 (商业代码),几年前的东西了」· PAS 代码 · 共 643 行 · 第 1/2 页

PAS
643
字号
unit xsskd1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, Db, ADODB, dxLayout, wwSpeedButton, wwDBNavigator, wwclearpanel,
  StdCtrls, Buttons, EHGrids, DBGridEh, dxExEdtr, dxEdLib, dxDBELib,
  dxExGrEd, dxExELib, dxCntner, dxEditor, ExtCtrls, DBCtrls, dxTL,
  dxDBCtrl, dxDBGrid, dxDBTLCl, dxGrClms;

type
  Txsskd = class(TForm)
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    Panel1: TPanel;
    Panel2: TPanel;
    Label7: TLabel;
    Ed7: TdxDBEdit;
    ADOTable3: TADOTable;
    ADOTable3code: TStringField;
    ADOTable3name: TStringField;
    ADOTable4: TADOTable;
    StringField1: TStringField;
    StringField2: TStringField;
    dxDBGridLayoutList1: TdxDBGridLayoutList;
    dxDBGridLayoutList1Item1: TdxDBGridLayout;
    DataSource3: TDataSource;
    DataSource4: TDataSource;
    ADOTable3dq: TStringField;
    ADOTable3lxr: TStringField;
    ADOTable3lxdh: TStringField;
    ADOTable3cz: TStringField;
    ADOTable3lxdz: TStringField;
    ADOTable4bm: TStringField;
    ADOTable4xb: TStringField;
    ADOTable4csrq: TDateTimeField;
    ADOTable4dh: TStringField;
    ADOTable4zz: TStringField;
    dxDBGridLayoutList1Item2: TdxDBGridLayout;
    Query1: TADOQuery;
    ADOTable2: TADOTable;
    ADOTable1: TADOTable;
    ADOTable1code: TStringField;
    ADOTable1kdrq: TDateTimeField;
    ADOTable1kdr: TStringField;
    ADOTable1bz: TStringField;
    PopupMenu1: TPopupMenu;
    N13: TMenuItem;
    N1: TMenuItem;
    N2: TMenuItem;
    wwDBNavigator1: TwwDBNavigator;
    b1: TwwNavButton;
    b2: TwwNavButton;
    b3: TwwNavButton;
    b4: TwwNavButton;
    b5: TwwNavButton;
    b6: TwwNavButton;
    b7: TwwNavButton;
    b8: TwwNavButton;
    Bit1: TMenuItem;
    Bit4: TMenuItem;
    Panel4: TPanel;
    Shape1: TShape;
    Shape2: TShape;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Bit2: TBitBtn;
    Bit3: TBitBtn;
    Bit5: TBitBtn;
    Bit6: TBitBtn;
    Bit7: TBitBtn;
    Bit8: TBitBtn;
    BitBtn6: TBitBtn;
    BitBtn3: TBitBtn;
    Label8: TLabel;
    ADOTable5: TADOTable;
    DataSource5: TDataSource;
    ADOTable5code: TStringField;
    ADOTable5name: TStringField;
    ADOTable5dz: TStringField;
    ADOTable5dh: TStringField;
    ADOTable5cz: TStringField;
    ADOTable5lxr: TStringField;
    dxDBGridLayoutList1Item3: TdxDBGridLayout;
    ADOTable6: TADOTable;
    DataSource6: TDataSource;
    dxDBGridLayoutList1Item4: TdxDBGridLayout;
    N3: TMenuItem;
    Shape3: TShape;
    DBText1: TDBText;
    ADOTable1KH: TStringField;
    ADOTable1khname: TStringField;
    ADOTable1fkfs: TStringField;
    ADOTable1fkje: TBCDField;
    ADOTable1jsr: TStringField;
    ADOTable1ysk: TBooleanField;
    ADOTable1ywyname: TStringField;
    ADOTable6FKFS: TStringField;
    Label5: TLabel;
    ADOTable1zt: TStringField;
    ADOTable2spcode: TStringField;
    ADOTable2cgdh: TStringField;
    ADOTable2djje: TBCDField;
    ADOTable2yfje: TBCDField;
    ADOTable2fkje: TBCDField;
    ADOTable2bz: TStringField;
    DBGridEh1: TdxDBGrid;
    DBGridEh1code: TdxDBGridMaskColumn;
    DBGridEh1cgdh: TdxDBGridMaskColumn;
    DBGridEh1bz: TdxDBGridMaskColumn;
    Ed1: TdxDBButtonEdit;
    Ed2: TdxDBDateEdit;
    Ed3: TdxDBExtLookupEdit;
    Ed4: TdxDBExtLookupEdit;
    Ed6: TdxDBExtLookupEdit;
    ED5: TdxDBCurrencyEdit;
    DBGridEh1djje: TdxDBGridCurrencyColumn;
    DBGridEh1yfje: TdxDBGridCurrencyColumn;
    DBGridEh1fkje: TdxDBGridCurrencyColumn;
    N4: TMenuItem;
    ADOTable2id: TAutoIncField;
    ADOTable1shrq: TDateTimeField;
    ADOTable1shr: TStringField;
    ADOTable1id: TAutoIncField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Ed1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BitBtn3Click(Sender: TObject);
    procedure Bit2Click(Sender: TObject);
    procedure Bit3Click(Sender: TObject);
    procedure Ed6KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Bit8Click(Sender: TObject);
    procedure NewCode(Sender: integer);
    procedure Bit5Click(Sender: TObject);
    procedure b1UpdateState(Navigator: TwwDBNavigator;
      Button: TwwNavButton; Cause: TwwUpdateCause);
    procedure Bit6Click(Sender: TObject);
    procedure Bit7Click(Sender: TObject);
    procedure Bit1Click(Sender: TObject);
    procedure Bit4Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure Ed1ButtonClick(Sender: TObject; AbsoluteIndex: Integer);
    procedure N13Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure Panel1Resize(Sender: TObject);
    procedure Panel2Resize(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure ADOTable1AfterScroll(DataSet: TDataSet);
    procedure Ed4KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure N3Click(Sender: TObject);
    procedure ED5KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Ed3Enter(Sender: TObject);
    procedure Ed3CloseUp(Sender: TObject; var Text: string;
      var Accept: Boolean);
    procedure DBGridEh1Exit(Sender: TObject);
    procedure ADOTable2AfterScroll(DataSet: TDataSet);
    procedure N4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  xsskd: Txsskd;
  Etxt, Ytxt, Ycode: string;
  ECol: integer;

implementation

uses MainForm1, xschdxzsp1, xgxsskdh1, xsrzdcx1, dyxsskd1, xschshrz1,
  xzrzxzxsd1, dyxschd1, xschdcx1;

{$R *.DFM}

procedure Txsskd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := cafree;
end;

procedure Txsskd.Ed6KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then DBGridEh1.SetFocus;
end;

procedure Txsskd.Ed1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
  begin
    key := 0;
    perform(WM_NEXTDLGCTL, 0, 0); {移动到下一个控件}
  end;
end;

procedure Txsskd.BitBtn3Click(Sender: TObject);
begin
  close;
end;

procedure Txsskd.Bit2Click(Sender: TObject);
begin
  if Bit6.Enabled = true then
  begin
    if Application.MessageBox('单据已修改,是否要保存?', '提示', MB_YESNO + MB_ICONQUESTION) = IDYES then
      ADOTable1.post else ADOTable1.Cancel;
  end;
  ADOTable1.Prior;
end;

procedure Txsskd.Bit3Click(Sender: TObject);
begin
  if Bit6.Enabled = true then
  begin
    if Application.MessageBox('单据已修改,是否要保存?', '提示', MB_YESNO + MB_ICONQUESTION) = IDYES then
      ADOTable1.post else ADOTable1.Cancel;
  end;
  ADOTable1.Next;
end;

procedure Txsskd.Bit8Click(Sender: TObject);
begin
  if ADOTable1.FieldByName('zt').asstring = '审核入账' then
  begin
    Application.MessageBox('单据已经入账,不能再做修改.', '提示', MB_OK + MB_ICONERROR);
    exit;
  end;
  if Application.MessageBox('删除后将不能恢复,是否删除此单据?', '提示', MB_YESNO + MB_ICONQUESTION) = IDNO then exit;
  Ed1.SetFocus;
  ADOTable1.Delete;
  try
    ADOTable1.Refresh;
    ADOTable2.Refresh;
  except
  end;
  if ADOtable1.RecordCount = 0 then Bit8.Enabled := false;
end;

procedure Txsskd.NewCode(Sender: integer);
var code: string;
begin
  Query1.Close;
  Query1.sql.text := 'select count(*) from XSSK001 where kdrq=:cdrq';
  Query1.Parameters[0].Value := MainForm.DateTimePicker1.Date;
  Query1.open;
  code := floattostr(Query1.Fields[0].asfloat + strtofloat(formatdatetime('yyyymmdd""001', MainForm.DateTimePicker1.Date)) + Sender);
  Query1.Close;
  Query1.sql.text := 'select count(*) from XSSK001 where code=:code';
  Query1.Parameters[0].Value := code;
  Query1.open;
  if Query1.Fields[0].Value > 0 then
  begin
    Sender := sender + 1;
    Newcode(sender);
  end
  else
  begin
    ADOTable1.FieldByName('code').asstring := code;
    ADOTable1.FieldByName('kdrq').Value := datetostr(MainForm.DateTimePicker1.Date);
    ADOTable1.FieldByName('kdr').Value := MainForm.Label4.Caption;
    ADOTable1.FieldByName('fkfs').Value := '现金';
    ADOTable1.FieldByName('zt').Value := '未审核';
  end;
end;

procedure Txsskd.Bit5Click(Sender: TObject);
begin
  ADOTable1.Append;
  Newcode(0);
  try
    ADOTable1.Post;
  except
    Application.MessageBox('单号被占用,请重试一次.', '提示', MB_OK + MB_ICONERROR);
    ADOTable1.Cancel;
    exit;
  end;
  try
    ADOTable1.Refresh;
    ADOTable2.Refresh;
  except
  end;
  ADOTable1.Edit;
  Bit5.Enabled := false;
  Ed2.ReadOnly := false;
  Ed3.ReadOnly := false;
  Ed4.ReadOnly := false;
  Ed5.ReadOnly := false;
  Ed6.ReadOnly := false;
  Ed7.ReadOnly := false;
end;

procedure Txsskd.b1UpdateState(Navigator: TwwDBNavigator;
  Button: TwwNavButton; Cause: TwwUpdateCause);
begin
  if b1.Enabled = true then Bit1.Enabled := true else Bit1.Enabled := false;
  if b2.Enabled = true then Bit2.Enabled := true else Bit2.Enabled := false;
  if b3.Enabled = true then Bit3.Enabled := true else Bit3.Enabled := false;
  if b4.Enabled = true then Bit4.Enabled := true else Bit4.Enabled := false;
  if b5.Enabled = true then Bit5.Enabled := true else Bit5.Enabled := false;
  if b6.Enabled = true then Bit6.Enabled := true else Bit6.Enabled := false;
  if b6.Enabled = true then
  begin
    DBGridEh1fkje.ReadOnly := true;
    DBGridEh1bz.ReadOnly := true;
  end
  else
  begin
    DBGridEh1fkje.ReadOnly := false;
    DBGridEh1bz.ReadOnly := false;
  end;
  if b7.Enabled = true then Bit7.Enabled := true else Bit7.Enabled := false;
  if b8.Enabled = true then Bit8.Enabled := true else Bit8.Enabled := false;

⌨️ 快捷键说明

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