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

📄 sy_sjndfpjhbl.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                 上级年度分配计划补录                  }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
省级集邮票管理,地市集邮票

*)
unit SY_SJNDFPJHBL;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  FORMBASE, ExtCtrls, ModiPanel, StdCtrls, Mask, DBCtrls, Grids, DBGrids,
  CurrEdit, RXDBCtrl, ToolEdit, ComCtrls, Buttons, DBTables, Db,
  RxQuery, RXCtrls, Spin;

type
  Tfrm_SJNDFPJHBL = class(TFFormBase)
    ModiPanel1: TModiPanel;
    Panel1: TPanel;
    DBG_FXJH: TDBGrid;
    Pnl_edit: TPanel;
    DS_FXJH: TDataSource;
    DS_FPJH: TDataSource;
    DBG_FPJH: TDBGrid;
    Label4: TLabel;
    Qry_FPJH: TQuery;
    Panel4: TPanel;
    XttxTitle: TRxLabel;
    DWMC: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    DBM_bz: TDBMemo;
    Qry_FXJH: TQuery;
    USQL_FPJH: TUpdateSQL;
    DBDE_zdrq: TDBDateEdit;
    DBEdt_sl: TDBEdit;
    DBEdt_zbr: TDBEdit;
    Label6: TLabel;
    Label8: TLabel;
    ND: TSpinEdit;
    Qry_FPJHJHH: TStringField;
    Qry_FPJHND: TStringField;
    Qry_FPJHDWDM: TStringField;
    Qry_FPJHPPMC: TStringField;
    Qry_FPJHJHFPZTS: TFloatField;
    Qry_FPJHZT: TStringField;
    Qry_FPJHZBR: TStringField;
    Qry_FPJHZDRQ: TDateTimeField;
    Qry_FPJHBZ: TStringField;
    Splitter1: TSplitter;
    procedure ModiPanel1BtnClick(Index: TBtnVisible);
    procedure FormCreate(Sender: TObject);
    procedure NDChange(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Qry_FXJHAfterScroll(DataSet: TDataSet);
    procedure DBG_FXJHEnter(Sender: TObject);
    procedure Qry_FPJHAfterScroll(DataSet: TDataSet);
  private
    { Private declarations }
    FDtState: TDataState;
    procedure Save;
    procedure SetState(Value: TdataState);
    function CheckExit(): boolean;
  public
    { Public declarations }
  end;

function Show_SJNDFPJHBL: Boolean;
var
  frm_SJNDFPJHBL: Tfrm_SJNDFPJHBL;

implementation

uses datas, pub;
{$R *.DFM}


function Show_SJNDFPJHBL: Boolean;
begin
  Application.CreateForm(Tfrm_SJNDFPJHBL, frm_SJNDFPJHBL);
  with frm_SJNDFPJHBL do
  try
    if CheckRight(frm_SJNDFPJHBL, [Modipanel1]) then
      result := ShowModal = MB_OK;
  finally
    Free;
  end;
end;

procedure Tfrm_SJNDFPJHBL.SetState(Value: TdataState);
var
  i: integer;
  procedure SetControls(Value: Boolean);
  begin
    ND.Enabled := Value;
    DBG_FXJH.Enabled := Value;
    DBG_FPJH.Enabled := Value;
    DBEdt_sl.ReadOnly := Value;
    DBEdt_zbr.ReadOnly := Value;
    DBDE_zdrq.ReadOnly := Value;
    DBM_bz.ReadOnly := Value;
  end;
begin
  FDtState := Value;
  ModiPanel1.ChangeMode(FDtState = dtBrowse);
  SetControls(FDtState = dtBrowse);
end;

procedure Tfrm_SJNDFPJHBL.Save;
begin
  if Qry_FPJH.FieldByName('JHFPZTS').IsNull or Qry_FPJH.FieldByName('ZBR').IsNull
    or Qry_FPJH.FieldByName('ZDRQ').IsNull then
  begin
    CHQMsgBox('分配数量,制表人,制表日期不能为空!');
    exit;
  end;
  try
    data.DM.StartTransaction;
    Qry_FPJH.ApplyUpdates;
    data.DM.Commit;
  except
    data.DM.Rollback;
    exit;
  end;
  Qry_FPJH.CommitUpdates;
  SetState(dtBrowse);
end;

procedure Tfrm_SJNDFPJHBL.ModiPanel1BtnClick(Index: TBtnVisible);
var
  i: integer;
begin
  inherited;
  case index of
    bnAdd:
      if Qry_FPJH.FieldByName('JHH').Value <> Qry_FXJH.FieldByName('JHH').Value then
      begin
        Qry_FPJH.Append;
        Qry_FPJH.FieldByName('JHH').AsString := Qry_FXJH.FieldByName('JHH').AsString;
        Qry_FPJH.FieldByName('ND').AsString := ND.Text;
        Qry_FPJH.FieldByName('DWDM').AsString := VG_UnitID;
        Qry_FPJH.FieldByName('PPMC').AsString := Qry_FXJH.FieldByName('TMC').AsString;
        Qry_FPJH.FieldByName('ZT').AsString := '0';
        SetState(dtInsert);
      end;
    bnDelete:
      begin
        if Qry_FPJH.IsEmpty then
        begin
          CHQMsgBox('没有可删除的数据!');
          exit;
        end;
        if CHQMsgBox('确定要删除记录吗?', 2) = IDYES then
        begin
          Qry_FPJH.Edit;
          Qry_FPJH.Delete;
          Qry_FPJH.ApplyUpdates;
//          Qry_FPJH.Post;
        end;
      end;
    bnEdit:
      begin
        if Qry_FPJH.IsEmpty then
        begin
          CHQMsgBox('没有可修改的数据!');
          exit;
        end;
        SetState(dtEdit);
        Qry_FPJH.Edit;
      end;
    bnSave:
      Save;
    bnCancel:
      if CHQMsgBox('取消编辑, 确定吗?', 2) = IDYES then
      try
        Qry_FPJH.CancelUpdates;
      finally
        SetState(dtBrowse);
      end;
    bnClose:
      Close;
  end;
end;

procedure Tfrm_SJNDFPJHBL.FormCreate(Sender: TObject);
begin
  inherited;
//  XttxTitle.Caption := '入库依据单补录';
  DWMC.Caption := '使用单位:' + VG_UnitName;
  ND.Value := VG_Year;
  DBG_FXJHEnter(DBG_FXJH);
  SetState(dtBrowse);
end;

procedure Tfrm_SJNDFPJHBL.NDChange(Sender: TObject);
begin
  inherited;
  Qry_FPJH.AfterScroll := nil;
  Qry_FXJH.AfterScroll := nil;
  Qry_FXJH.Close;
  Qry_FXJH.Params[0].AsString := ND.Text;
  Qry_FXJH.Open;
  Qry_FPJH.Close;
  Qry_FPJH.Params[0].AsString := ND.Text;
  Qry_FPJH.Open;
  Qry_FPJH.AfterScroll := Qry_FPJHAfterScroll;
  Qry_FXJH.AfterScroll := Qry_FXJHAfterScroll;

end;

procedure Tfrm_SJNDFPJHBL.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  inherited;
  CanCLose := CheckExit;
end;

function Tfrm_SJNDFPJHBL.CheckExit(): boolean;
begin
  result := true;
  if FDtState in [dtInsert, dtEdit] then
    case CHQMsgBox('数据已经被更改,是否保存所做修改?', 3) of
      IDYes:
          ModiPanel1BtnClick(bnSave);
      IDNo:
          ModiPanel1BtnClick(bnCancel);
      IDCancel:
        result := false;
    end
end;

procedure Tfrm_SJNDFPJHBL.Qry_FXJHAfterScroll(DataSet: TDataSet);
begin
  inherited;
  if DBG_FXJH.TitleFont.Color = clNavy then
    Qry_FPJH.Locate('JHH', Qry_FXJH.FieldByName('JHH').AsString, []);
end;

procedure Tfrm_SJNDFPJHBL.Qry_FPJHAfterScroll(DataSet: TDataSet);
begin
  inherited;
  if DBG_FPJH.TitleFont.Color = clNavy then
    Qry_FXJH.Locate('JHH', Qry_FPJH.FieldByName('JHH').AsString, []);
end;

procedure Tfrm_SJNDFPJHBL.DBG_FXJHEnter(Sender: TObject);
begin
  inherited;
  if Sender = DBG_FXJH then
  begin
    DBG_FXJH.TitleFont.Color := clNavy;
    DBG_FPJH.TitleFont.Color := clWindowText;
  end
  else
  begin
    DBG_FXJH.TitleFont.Color := clWindowText;
    DBG_FPJH.TitleFont.Color := clNavy;
  end;
end;

end.

⌨️ 快捷键说明

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