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

📄 ss_txpbhbh.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                 零枚票包号版号初始化                  }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级系统管理模块里的零枚里面调用。

*)
unit SS_TXPBHBH;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  FORMBASE, ExtCtrls, ModiPanel, Db, DBTables, RxQuery, RXDBCtrl, StdCtrls,
  Buttons, Grids, DBGrids,  RXCtrls;

type
  Tfrm_TXPBHBHCSH = class(TFFormBase)
    ModiPanel1: TModiPanel;
    qryYZPPTXXB: TRxQuery;
    DataSource1: TDataSource;
    qryBHBH: TQuery;
    UpdateSQL2: TUpdateSQL;
    DataSource2: TDataSource;
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    cmbKFH: TComboBox;
    Edit1: TEdit;
    DBGrid1: TDBGrid;
    RxDBGrid1: TRxDBGrid;
    Panel11: TPanel;
    RxLabel1: TRxLabel;
    DWMC: TLabel;
    procedure ModiPanel1BtnClick(Index: TBtnVisible);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure cmbKFHChange(Sender: TObject);
    procedure qryYZPPTXXBAfterOpen(DataSet: TDataSet);
    procedure qryYZPPTXXBUpdateError(DataSet: TDataSet; E: EDatabaseError;
      UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
    procedure qryBHBHUpdateError(DataSet: TDataSet; E: EDatabaseError;
      UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction);
  private
    { Private declarations }
    FDtState: TDataState;
    function Save: Boolean;
    procedure SetState(Value: TdataState);
    procedure InitData;
  public
    { Public declarations }
  end;

function Show_TXPBHBHCSH: Boolean;
var
  frm_TXPBHBHCSH: Tfrm_TXPBHBHCSH;

implementation

uses datas,Pub;

{$R *.DFM}

function Show_TXPBHBHCSH: Boolean;
begin
  Result := false;
  Application.CreateForm(Tfrm_TXPBHBHCSH, frm_TXPBHBHCSH); {}
  with frm_TXPBHBHCSH do {FFormBase1}
  try
    if CheckRight(frm_TXPBHBHCSH, [ModiPanel1]) then
    begin
      Caption := CYZPPTIT;
      DWMC.Caption := '使用单位:' + VG_UnitName;
      result := ShowModal = MB_OK;
    end;
  finally
    Free;
  end;
end;

procedure Tfrm_TXPBHBHCSH.SetState(Value: TdataState);
begin
  FDtState := Value;
  ModiPanel1.ChangeMode(FDtState = dtBrowse);
  Panel1.Enabled := FDtState = dtBrowse;
  DBGrid1.ReadOnly := FDtState = dtBrowse;
  with qryBHBH do
    case Fdtstate of
      dtBrowse: ; {browse}
      dtinsert: Append; {append}
      dtedit: Edit; {edit}
    end;
end;

function Tfrm_TXPBHBHCSH.Save: Boolean;
begin
  with qryBHBH do {query}
  begin
    result := True;
    First;
    while not Eof do
    begin
      if FieldByName('QSBH').Asstring = '' then
      begin
        result := False;
        break;
      end;
      Edit;
      FieldByName('KFDM').Asstring := qryYZPPTXXB.FieldByName('KFDM').Asstring;
      FieldByName('PPDM').Asstring := qryYZPPTXXB.FieldByName('TUDM').Asstring;
      post;
      Next;
    end;
    if not result then exit;

    Database.StartTransaction;
    try
      applyupdates;
    except
      if Database.InTransaction then Database.RollBack;
      if errMsg = '' then
        raise
      else
        raise exception.Create(errMsg);
    end;
    Database.Commit;
    commitupdates;
    result := True;
  end;
  SetState(dtBrowse);
end;

procedure Tfrm_TXPBHBHCSH.ModiPanel1BtnClick(Index: TBtnVisible);
begin
  inherited;
  case index of
    bnAdd: SetState(dtInsert);
    bnDelete:
      if CHQMsgBox(MSG_DELETE, 2) = IDYES then
        with qryBHBH do {query}
        begin
          Database.StartTransaction;
          try
            Delete; {query1}
            Database.Commit;
          except
            if Database.InTransaction then Database.RollBack;
            if errMsg = '' then
              raise
            else
              raise exception.Create(errMsg);
          end;
        end;
    bnEdit: SetState(dtEdit);
    bnSave: Save;
    bnCancel:
      if CHQMsgBox('取消编辑, 确定吗?', 2) = IDYES then
      begin
        qryBHBH.Cancelupdates; {query}
        SetState(dtBrowse);
      end;
    bnPrint: {print}
      ;
    bnClose: Close;
  end;
end;

procedure Tfrm_TXPBHBHCSH.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  if (FDtstate in [dtInsert, dtEdit]) then
    case CHQMsgBox(MSG_EXITSAVE, 3) of
      IDYES:
        if not Save then Action := caNone;
      IDCANCEL: Action := caNone;
    end;
end;

procedure Tfrm_TXPBHBHCSH.FormCreate(Sender: TObject);
const
  KFSQL = 'SELECT KFDM||'' ''||KFMC FROM TGS_KFB where KFDM not in (''-1'',''-2'')';
begin
  inherited;
  ModiPanel1.FButtons[bnEdit].Tag := 201;
  InitList(cmbKFH.Items, KFSQL);
  if cmbKFH.Items.Count > 0 then cmbKFH.ItemIndex := 0;

  InitData;
  qryBHBH.prepare;
  qryBHBH.open;
  SetState(dtBrowse);
end;

procedure Tfrm_TXPBHBHCSH.InitData;
var
  kfdm: string;
begin
  kfdm := Copy(cmbKFH.Text, 1, pos(' ', cmbKFH.Text) - 1);
  SetMacro(qryYZPPTXXB, 'CON', ' KFDM = ''' + kfdm + '''');
end;

procedure Tfrm_TXPBHBHCSH.Edit1Change(Sender: TObject);
begin
  inherited;
  if Edit1.Text <> '' then
    qryYZPPTXXB.Locate('ZH', Edit1.Text, [loCaseInsensitive, loPartialKey]);
end;

procedure Tfrm_TXPBHBHCSH.cmbKFHChange(Sender: TObject);
begin
  inherited;
  InitData;
end;

procedure Tfrm_TXPBHBHCSH.qryYZPPTXXBAfterOpen(DataSet: TDataSet);
begin
  inherited;
  with DataSet do
  begin
    TNumericField(FieldByName('TPMZ')).DisplayFormat := '#,##0.00##';
    TNumericField(FieldByName('SL')).DisplayFormat := '#,##0';
  end;
end;

procedure Tfrm_TXPBHBHCSH.qryYZPPTXXBUpdateError(DataSet: TDataSet;
  E: EDatabaseError; UpdateKind: TUpdateKind;
  var UpdateAction: TUpdateAction);
begin
  inherited;
  case GetErrCode(DataSet, E, ErrMsg) of
    Err_NoMasterRec: errMsg := errMsg + '&_&' + Format(MST_NOREC, ['', '', '']);
    Err_HasDetailRec: errMsg := errMsg + '&_&' + Format(DTL_EXSTREC, ['']);
    Err_RecDouble: errMsg := errMsg + '&_&' + '输入的起始版号不能重复。';
    Err_NotNull: errMsg := errMsg + '&_&' + '起始版号、终止版号不能为空。';
  else
    errMsg := errMsg + '&_&' + OTHERERROR;
  end;
end;

procedure Tfrm_TXPBHBHCSH.qryBHBHUpdateError(DataSet: TDataSet;
  E: EDatabaseError; UpdateKind: TUpdateKind;
  var UpdateAction: TUpdateAction);
begin
  inherited;
  case GetErrCode(DataSet, E, ErrMsg) of
    Err_NoMasterRec: errMsg := errMsg + '&_&' + Format(MST_NOREC, ['', '', '']);
    Err_HasDetailRec: errMsg := errMsg + '&_&' + Format(DTL_EXSTREC, ['']);
    Err_RecDouble: errMsg := errMsg + '&_&' + '输入的起始版号不能重复。';
    Err_NotNull: errMsg := errMsg + '&_&' + '起始版号、终止版号不能为空。';
  else
    errMsg := errMsg + '&_&' + OTHERERROR;
  end;
end;

end.

⌨️ 快捷键说明

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