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

📄 gj_gjppjg.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                 库存核算价查询                        }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
省级集邮票,省级综合查询,省级系统管理
地市集邮票

*)

unit GJ_GJPPJG;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Spin, ExtCtrls, ActnList, Grids, DBGrids, RXCtrls, Db,
  DBTables,  CurrEdit, RXDBCtrl, Mask, ToolEdit, ComCtrls, Menus,
  DBGridExport;

type
  PStampLB = ^TStampLB;
  TStampLB = Record
    MC,PPLB:string;
  end;
  TFrm_GJKCHSJCX = class(TForm)
    Panel3: TPanel;
    BBt_Quit: TBitBtn;
    Panel1: TPanel;
    DWMC: TLabel;
    Title: TRxLabel;
    Qry_TUKCHSJ: TQuery;
    DataSource2: TDataSource;
    Qry_TAKCHSJ: TQuery;
    DataSource1: TDataSource;
    BBt_Add: TBitBtn;
    BBt_Modify: TBitBtn;
    Qry_Static: TQuery;
    Qry_Static2: TQuery;
    BBt_QYSXRQ: TBitBtn;
    BBt_Send: TBitBtn;
    BBt_Save: TBitBtn;
    BBt_Cancel: TBitBtn;
    UpdateSQL1: TUpdateSQL;
    Qry_TAKCHSJPPDM: TStringField;
    Qry_TAKCHSJZH: TStringField;
    Qry_TAKCHSJTJC: TStringField;
    Qry_TAKCHSJSCKCHSJ: TFloatField;
    Qry_TAKCHSJKCHSJ: TFloatField;
    Qry_TAKCHSJSXRQ: TDateTimeField;
    Qry_TUKCHSJXH: TFloatField;
    Qry_TUKCHSJPPDM: TStringField;
    Qry_TUKCHSJZH: TStringField;
    Qry_TUKCHSJTJC: TStringField;
    Qry_TUKCHSJZDRQ: TDateTimeField;
    Qry_TUKCHSJKCHSJ: TFloatField;
    Qry_TUKCHSJSXRQ: TDateTimeField;
    Qry_TAKCHSJSDATE: TDateTimeField;
    Panel2: TPanel;
    TV_PPLX: TTreeView;
    Panel4: TPanel;
    Splitter1: TSplitter;
    Panel5: TPanel;
    Panel6: TPanel;
    RxDBGrid1: TRxDBGrid;
    Panel7: TPanel;
    Splitter2: TSplitter;
    Panel8: TPanel;
    RxDBGrid2: TRxDBGrid;
    Panel9: TPanel;
    Panel10: TPanel;
    Label5: TLabel;
    E_ZH: TEdit;
    Label3: TLabel;
    DateEdit1: TDateEdit;
    Panel11: TPanel;
    BBt_Delete: TBitBtn;
    BBt_fs: TBitBtn;
    procedure Act_QuitExecute(Sender: TObject);
    procedure Qry_TAKCHSJAfterScroll(DataSet: TDataSet);
    procedure FormCreate(Sender: TObject);
    procedure BBt_AddClick(Sender: TObject);
    procedure TV_PPLXClick(Sender: TObject);
    procedure BBt_SaveClick(Sender: TObject);
    procedure BBt_CancelClick(Sender: TObject);
    procedure BBt_ModifyClick(Sender: TObject);
    procedure Qry_TAKCHSJKCHSJSetText(Sender: TField; const Text: String);
    procedure BBt_QYSXRQClick(Sender: TObject);
    procedure E_ZHKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Qry_TAKCHSJSCKCHSJGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure BBt_DeleteClick(Sender: TObject);
    procedure BBt_fsClick(Sender: TObject);
  private
    StampLB :PStampLB;
    PPLB:String;
    procedure PS_SetStatus(Value :Boolean = True);
  protected
  public
  end;

function ExeJ_GJPPJG: Boolean;
var
  Frm_GJKCHSJCX: TFrm_GJKCHSJCX;

implementation
uses
  Datas,Pub;

{$R *.DFM}

function ExeJ_GJPPJG: Boolean;
begin
  Application.CreateForm(TFrm_GJKCHSJCX, Frm_GJKCHSJCX);
  with Frm_GJKCHSJCX do
  begin
    Caption := '邮资票品管理信息系统——系统维护';
    DWMC.Caption := '使用单位:' + VG_UnitName;
    result := ShowModal = MB_OK;
    Free;
  end;
end;

procedure TFrm_GJKCHSJCX.Act_QuitExecute(Sender: TObject);
begin
  Close;
end;



procedure TFrm_GJKCHSJCX.Qry_TAKCHSJAfterScroll(DataSet: TDataSet);
begin
  with Qry_TUKCHSJ do
  begin
    Close;
    if  Qry_TAKCHSJ.IsEmpty then Exit;
    Prepare;
    ParamByName('PPDM').AsString:=Qry_TAKCHSJ.FieldByName('PPDM').AsString;
    Open;
  end;
end;

procedure TFrm_GJKCHSJCX.FormCreate(Sender: TObject);
var
  DL :String;
  vl_Node:TTreeNode;
begin
  DWMC.Caption := '  使用单位:'+VG_UnitName;
  PS_SetStatus;
  with Qry_Static do
  begin
    Close;
    SQL.Clear;
    SQL.Add ('SELECT DISTINCT DL,SUBSTR(YZLDM,1,1) FROM TG_YZPPLDMB ORDER BY SUBSTR(YZLDM,1,1)');
    Open;
    while not Eof do
    begin
      vl_Node :=TV_PPLX.Items.Add(nil,Fields[0].AsString);
      dl := Fields[0].AsString ;
      with Qry_Static2 do
      begin
        Close;
        SQL.Clear;
        SQL.Add ('SELECT MC,YZLDM FROM TG_YZPPLDMB');
        SQL.Add ('WHERE DL = '''+dl+''' order by YZLDM ');
        Open;
        while not Eof do
        begin
          New(StampLB);
          StampLB^.MC:=FieldByName('MC').Asstring;
          StampLB^.PPLB:=FieldByName('YZLDM').Asstring;
          TV_PPLX.Items.AddChildObject(vl_Node,StampLB^.MC,StampLB);;
          Next;
        end;
      end;
      Next;
    end;
  end;
  GetAllColWidth(Self);
end;

procedure TFrm_GJKCHSJCX.BBt_AddClick(Sender: TObject);
begin
  if TV_PPLX.Selected.Level=0 then  Exit;
  with Qry_TAKCHSJ do
  begin
    Close;
    Prepare;
    ParamByName('PPLB').AsString := 'PPLB';
    Open;
  end;
  with Qry_Static do
  begin
    Close;
    SQL.Text := ' SELECT TDM, ZH, TJC, TPSJ, FXRQ   FROM tb_yzpptxxb Y, Tg_GJPPJGB G '
              + ' WHERE Y.TDM = G.PPDM(+) AND G.KCHSJ IS NULL AND Y.pplb=:pplb ORDER BY TDM ';
    Prepare;
    ParamByName('PPLB').AsString := PPLB;
    Open;
    Qry_TAKCHSJ.DisableControls;
    while not Eof do
    begin
      Qry_TAKCHSJ.Append;
       //      SELECT  G.PPDM, ZH, TJC, G.SCKCHSJ, G.KCHSJ, G.SXRQ
      Qry_TAKCHSJ.InsertRecord([FieldByName('TDM').Asstring ,FieldByName('ZH').Asstring ,FieldByName('TJC').Asstring , 0, FieldByName('TPSJ').AsInteger , FieldByName('FXRQ').AsDateTime ]);
      Next;
    end;
    Qry_TAKCHSJ.EnableControls;
    Close;
  end;
  PS_SetStatus(False);
end;

procedure TFrm_GJKCHSJCX.TV_PPLXClick(Sender: TObject);
var
  Node:TTreeNode;
begin
  Node:=TV_PPLX.Selected;
  if Node=nil then Exit;
  if Node.Level=0 then  Exit;
  PPLB:=PStampLB(Node.Data)^.PPLB;
  with Qry_TAKCHSJ do
  begin
    Close;
    Prepare;
    ParamByName('PPLB').AsString := PPLB;
    if E_ZH.Text = '' then
      ParamByName('ZH').AsString := '%%'
    else
      ParamByName('ZH').AsString := UpperCase(E_ZH.Text)+'%';
    Open;
  end;
{  with Qry_TAKCHSJ do
  begin
    Close;
    Prepare;
    ParamByName('PPLB').AsString := PPLB;
    ParamByName('ZH').AsString := '%%';
    Open;
  end; }
  Qry_TAKCHSJAfterScroll(nil);
end;

procedure TFrm_GJKCHSJCX.BBt_SaveClick(Sender: TObject);
begin
  with  Qry_TAKCHSJ do
  begin
    Database.StartTransaction;
    try
      ApplyUpdates;
      Database.Commit;
    except
      Database.RollBack;
      CHQMsgBox('数据存储错误!');
      exit;
    end;
    CommitUpdates;           //清除缓存的内容
  end;
  TV_PPLXClick(nil);
  PS_SetStatus();

end;

procedure TFrm_GJKCHSJCX.PS_SetStatus(Value :Boolean= True);
begin
  BBt_Add.Enabled        := Value;
  BBt_QYSXRQ.Enabled     := Value;
  BBt_Modify.Enabled     := Value;

  BBt_Send.Enabled       := Value;

  BBt_Save.Enabled       := not Value;
  BBt_Cancel.Enabled     := not Value;

  TV_PPLX.Enabled        := Value;
  E_ZH.Enabled           := Value;
  RxDBGrid1.ReadOnly     := Value;
end;

procedure TFrm_GJKCHSJCX.BBt_CancelClick(Sender: TObject);
begin
  TV_PPLXClick(nil);
  PS_SetStatus;
end;

procedure TFrm_GJKCHSJCX.BBt_ModifyClick(Sender: TObject);
begin
  if Qry_TAKCHSJ.IsEmpty then Exit;
  Qry_TAKCHSJ.Edit ;
  RxDBGrid1.SetFocus ;
  PS_SetStatus(False);
end;

procedure TFrm_GJKCHSJCX.Qry_TAKCHSJKCHSJSetText(Sender: TField;
  const Text: String);
begin
  Qry_TAKCHSJSCKCHSJ.AsInteger := Qry_TAKCHSJKCHSJ.OldValue;
  Qry_TAKCHSJSDATE.AsString :='';
  Sender.AsInteger := Trunc(StrToFloat(Text)*100);
end;

procedure TFrm_GJKCHSJCX.BBt_QYSXRQClick(Sender: TObject);
begin
  if Qry_TAKCHSJ.IsEmpty then Exit;
  if CHQMsgBox('确实要修改生效日期吗?', 2)  =  IDNO  then Exit;
  with Qry_Static do
  begin
    Close;
    SQL.Clear ;
    SQL.Text := ' Update TG_GJPPJGB  set SXRQ =:SXRQ , SDate= ''''  where EXISTS(select ''X'' from TB_YZPPTXXB where TG_GJPPJGB.PPDM = TB_YZPPTXXB.TDM AND substr(TG_GJPPJGB.PPDM,1,3)=:PPLB ';
    if E_ZH.Text <> '' then
    SQL.Text := SQL.Text + ' AND TB_YZPPTXXB.ZH like '''+UpperCase(E_ZH.Text)+'%''';
    SQL.Text := SQL.Text + ' )';
    Prepare;
    ParamByName('SXRQ').AsDateTime := DateEdit1.Date;
    ParamByName('PPLB').AsString   := PPLB;
    EXECSQL;
  end;
  TV_PPLXClick(nil);
end;

procedure TFrm_GJKCHSJCX.E_ZHKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_Return then
  begin
    with Qry_TAKCHSJ do
    begin
      Close;
      Prepare;
      ParamByName('PPLB').AsString := PPLB;
      ParamByName('ZH').AsString := UpperCase(E_ZH.Text)+'%';
      Open;
    end;
    Qry_TAKCHSJAfterScroll(nil);
  end;
//  Qry_TAKCHSJ.Locate('ZH',E_ZH.Text,[loCaseInsensitive, loPartialKey]);
end;

procedure TFrm_GJKCHSJCX.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
//  CloseForm(BBt_Save,Action);
  SaveAllColWidth(Self);
end;

procedure TFrm_GJKCHSJCX.Qry_TAKCHSJSCKCHSJGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  CurrGetText(Sender, Text, DisplayText);
end;

procedure TFrm_GJKCHSJCX.BBt_DeleteClick(Sender: TObject);
begin
  if Qry_TUKCHSJ.IsEmpty then Exit;
  if CHQMsgBox('确实要删除吗?', 2)  =  IDNO  then Exit;
  with Qry_Static do
  begin
    Close;
    SQL.Text := ' DELETE TG_GJPPJGJLB where PPDM = :PPDM and SXRQ = :SXRQ and ZDRQ = :ZDRQ';
    Prepare;
    ParamByName('PPDM').AsString  :=Qry_TUKCHSJ.FieldByName('PPDM').AsString;
    ParamByName('SXRQ').AsDateTime:=Qry_TUKCHSJ.FieldByName('SXRQ').AsDateTime;
    ParamByName('ZDRQ').AsDateTime:=Qry_TUKCHSJ.FieldByName('ZDRQ').AsDateTime;
    ExecSQL;
  end;
  Qry_TAKCHSJAfterScroll(nil);
end;

procedure TFrm_GJKCHSJCX.BBt_fsClick(Sender: TObject);
//  VG_SQLWhere:=' select * from TG_GJPPJGB '
//              +' where SDATE IS NULL ';    , false
// SendData('select * from TG_GJPPJGB where 1=1', 'TG_GJPPJGB', false);
var
  ISQL, USQL : string;
begin
  if CHQMsgBox('确定要向下级发送国家库存核算价吗?', 2)=IDNo then
    exit;

  ISQL := 'Insert into TG_GJPPJGB_caco(PPDM, KCHSJ, SXRQ, SCKCHSJ, BZ, SDATE, COMM_DEPT) Select a.PPDM, a.KCHSJ, a.SXRQ, a.SCKCHSJ, a.BZ, sysdate, b.dwdm from TG_GJPPJGB a, tgs_gxdwsjb b where b.zjxj=''1''';
  USQL := 'UPDATE TG_GJPPJGB SET SDATE = SYSDATE';
  data.dm.StartTransaction;
  try
    SetData(ISQL);
    SetData(USQL);
    data.dm.Commit;
  except
    if data.dm.InTransaction then
      data.dm.rollback;
    raise exception.Create('数据发送失败!');
  end;
  CHQMsgBox('数据发送成功!');

end;

end.

⌨️ 快捷键说明

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