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

📄 sy_kcpptj.pas

📁 省级集邮品管理ERP
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{*******************************************************}
{                                                       }
{                 库存票品调价                          }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
省级集邮票,省级集邮品,省级零枚票,省级市场购入票
地市集邮票,地市集邮品,地市市场购入票

*)

{
有关表:
  集邮票品库存、集邮票调价表
数据来源:
  列表:集邮票品库存(按志号排序)
功能:
  查找:根据志号快速定位
算法:
  保存数据时,遍历已更新的数据,UPDATE集邮票品库存,同时插入一条数据到集邮票调价表中
更新有关表:
  集邮票品库存(UPDATE 原价、销价)、集邮票调价表
备注:

修改了函数 DBReSelect 原来为1=1,蹦叉。改为 and 1=1 yzhshi 2002.12.02

修改原来只在第一页按志号定位票品的问题  by jhshao 2003.05.07
}
unit SY_KCPPTJ;

interface

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

type
  TfrmSJ_TJD = class(TFFormBase)
    ModiPanel1: TModiPanel;
    qryKC: TRxQuery;
    USQL_JYP_KC: TUpdateSQL;
    DS_KC: TDataSource;
    QryTJD: TQuery;
    USQL_JYP_TJD: TUpdateSQL;
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    PCo_jg: TPageControl;
    TabSheet1: TTabSheet;
    RxDBGrid1: TRxDBGrid;
    TabSheet2: TTabSheet;
    RxDBGrid2: TRxDBGrid;
    qryKCFLG: TStringField;
    qryKCZH: TStringField;
    qryKCTMC: TStringField;
    qryKCYJ: TFloatField;
    qryKCXJ: TFloatField;
    qryKCPPDM: TStringField;
    QryTJDB: TQuery;
    USQL_JYP_TJDB: TUpdateSQL;
    SP_JYP_TJJZ: TStoredProc;
    Panel2: TPanel;
    RGr_YorX: TRadioGroup;
    Panel4: TPanel;
    XttxTitle: TRxLabel;
    DWMC: TLabel;
    RGr_JorZ: TRadioGroup;
    BBt_mr: TBitBtn;
    CEd_jsj: TCurrencyEdit;
    CEd_zk: TCurrencyEdit;
    BitBtn1: TBitBtn;
    USQL_YP_KC: TUpdateSQL;
    SqlS_KC: TSqlStrings;
    SqlS_TJD: TSqlStrings;
    SqlS_TJDB: TSqlStrings;
    USQL_YP_TJD: TUpdateSQL;
    USQL_YP_TJDB: TUpdateSQL;
    SP_YP_TJJZ: TStoredProc;
    USQL_GRP_KC: TUpdateSQL;
    USQL_GRP_TJD: TUpdateSQL;
    USQL_GRP_TJDB: TUpdateSQL;
    SP_GRP_TJJZ: TStoredProc;
    Qry_kf: TQuery;
    DS_kf: TDataSource;
    DBLCB_kf: TDBLookupComboBox;
    lbl_kf: TLabel;
    SqlS_KC2: TSqlStrings;
    qry_KC2: TRxQuery;
    StringField1: TStringField;
    StringField2: TStringField;
    StringField3: TStringField;
    FloatField1: TFloatField;
    FloatField2: TFloatField;
    FloatField3: TFloatField;
    FloatField4: TFloatField;
    StringField4: TStringField;
    USQL_JYP2: TUpdateSQL;
    DS_KC2: TDataSource;
    USQL_TXP2: TUpdateSQL;
    USQL_YP2: TUpdateSQL;
    USQL_GRP2: TUpdateSQL;
    qryKCKCHSJ: TFloatField;
    qry_KC2JJ: TFloatField;
    GroupBox1: TGroupBox;
    CB_wrq: TCheckBox;
    DEd_qs: TDateEdit;
    DEd_jz: TDateEdit;
    CB_fxrq: TCheckBox;
    CB_zh: TCheckBox;
    Edt_zh: TEdit;
    SpeedButton1: TSpeedButton;
    USQL_TXP_KC: TUpdateSQL;
    USQL_TXP_TJD: TUpdateSQL;
    USQL_TXP_TJDB: TUpdateSQL;
    SP_TXP_TJJZ: TStoredProc;
    procedure ModiPanel1BtnClick(Index: TBtnVisible);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Edit1Change(Sender: TObject);
    procedure PCo_jgChange(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure RGr_JorZClick(Sender: TObject);
    procedure BBt_mrClick(Sender: TObject);
    procedure qryKCYJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure qryKCYJSetText(Sender: TField; const Text: string);
    procedure qryKCBeforePost(DataSet: TDataSet);
    procedure qryKCXJSetText(Sender: TField; const Text: string);
    procedure qryKCJSJChange(Sender: TField);
  private
    { Private declarations }
    FDtState: TDataState;

    Fio_Type: TIO_TYPE;
    procedure SetState(Value: TdataState);
    procedure SetJYPTJB(p_tjdh: string; p_tjlx: string; var v_xh: integer);
    procedure DBReSelect();
    function checkXJHSJ(var pv_ACount: integer): boolean;

    function Save: Boolean;
    function Save2: Boolean;
    procedure DoSetKCJG(Sender: TrxQuery; ATJDH, AYORX: string; var AXH: integer);
  public
    { Public declarations }
  end;

function ExeSJ_TJD: Boolean;
procedure Show_KCPPTJ(io_typ: TIO_TYPE; const SenderTag: integer);
var
  frmSJ_TJD: TfrmSJ_TJD;

implementation

{$R *.DFM}

uses  datas,pub, Clipbrd;

procedure Show_KCPPTJ(io_typ: TIO_TYPE; const SenderTag: integer);
begin
  Application.CreateForm(TfrmSJ_TJD, frmSJ_TJD);
  with frmSJ_TJD do
  try
    Tag := SenderTag;
    if CheckRight(frmSJ_TJD, [ModiPanel1]) then
    begin
      DWMC.Caption := '使用单位:' + VG_UnitName;
      FIO_type := io_typ;
      Caption := '邮资票品管理信息系统——' + pCaption[integer(Fio_Type)] + '业务';
      XttxTitle.Caption := '库存票品调价';
      QryKC.SQL.Text := SqlS_KC.FSqlText[io_typ].Text;
      CB_wrq.Enabled := Fio_type in [io_yp, io_grp];
      Qry_kf.Params[0].AsString := VG_UserID;
      Qry_kf.Open;
      DBLCB_kf.KeyValue := Qry_kf.FieldByName('KFDM').Value;
      QryTJD.SQL.Text := SqlS_TJD.FSqlText[io_typ].Text;
      QryTJDB.SQL.Text := SqlS_TJDB.FSqlText[io_typ].Text;
      qry_KC2.SQL.Text := SqlS_KC2.FSqlText[io_typ].Text;
      case Fio_type of
        io_jyp:
          begin
            qryKC.UpdateObject := USQL_JYP_KC;
            QryTJD.UpdateObject := USQL_JYP_TJD;
            QryTJDB.UpdateObject := USQL_JYP_TJDB;
            qry_KC2.UpdateObject := USQL_JYP2;
          end;
        io_txp:
          begin
            qryKC.UpdateObject := USQL_TXP_KC;
            QryTJD.UpdateObject := USQL_TXP_TJD;
            QryTJDB.UpdateObject := USQL_TXP_TJDB;
            qry_KC2.UpdateObject := USQL_TXP2;
          end;
        io_yp:
          begin
            QryKC.UpdateObject := USQL_YP_KC;
            QryTJD.UpdateObject := USQL_YP_TJD;
            QryTJDB.UpdateObject := USQL_YP_TJDB;
            qry_KC2.UpdateObject := USQL_YP2;
          end;
        io_grp:
          begin
            QryKC.UpdateObject := USQL_GRP_KC;
            QryTJD.UpdateObject := USQL_GRP_TJD;
            QryTJDB.UpdateObject := USQL_GRP_TJDB;
            qry_KC2.UpdateObject := USQL_GRP2;
          end;
      end;
      DS_KC.DataSet := QryKC;
      SetState(dtBrowse);
      DEd_qs.Text := inttostr(VG_Year - 1) + '-1-1';
      DEd_jz.Text := inttostr(VG_Year) + '-1-1';
      DBReselect;
{      if io_typ = io_txp then
        PCo_jg.ActivePageIndex := 1
      else}
      PCo_jg.ActivePageIndex := 0;
      CEd_jsj.MaxIntLength := qry_KC2.FieldByName('JSJ').dataSize;
      CEd_zk.MaxIntLength := qry_KC2.FieldByName('ZK').dataSize;
      PCo_jgChange(nil);
      RGr_JorZClick(nil);
      ShowModal
    end;
  finally
    Destroy;
  end;
end;

function ExeSJ_TJD: Boolean;
begin
  Application.CreateForm(TfrmSJ_TJD, frmSJ_TJD); {TFFormBase1, FFormBase1}
  with frmSJ_TJD do {FFormBase1}
  begin
    result := ShowModal = MB_OK;
    Free;
  end;
end;

procedure TfrmSJ_TJD.DBReSelect();
var
  v_s_tj: string;
begin
  v_s_tj := ' and 1=1 ';{修改,原来为1=1,蹦叉 yzhshi 2002.12.02}
  if CB_fxrq.Checked then
    v_s_tj := v_s_tj + 'and b.FXRQ >=to_date(''' + DEd_qs.Text + ''',''YYYY-MM-DD'') and B.FXRQ <=to_date(''' + DEd_jz.Text + ''',''YYYY-MM-DD'') ';
  if CB_zh.Checked then
    v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';

  if PCo_jg.ActivePageIndex = 0 then
    with qryKC do
    begin
      Close;
      if (Fio_type in [io_yp, io_grp]) then
      begin
        if CB_wrq.Checked then
          v_s_tj := v_s_tj + ' and b.FXRQ is Null ';
        if CB_zh.Checked then
          v_s_tj := v_s_tj + ' and b.ZH like ''%' + Edt_zh.Text + '%'' ';
      end;
      MacroByName('TJ').AsString := v_s_tj;
      if (Fio_type in [io_yp, io_grp]) and (CB_wrq.Checked) then
        MacroByName('TJ').AsString := 'b.FXRQ is Null';
      Open;
    end
  else
    with qry_KC2 do
    begin
      Close;
      if (Fio_type in [io_yp, io_grp]) then
      begin
        if (CB_wrq.Checked) then
          v_s_tj := v_s_tj + ' and b.FXRQ is Null ';
        if CB_zh.Checked then
          v_s_tj := v_s_tj + ' and b.ZH like ''%' + Edt_zh.Text + '%'' ';
      end;
      v_s_tj := v_s_tj + ' and A.KFDM = ''' + DBLCB_kf.KeyValue + ''' ';
      MacroByName('TJ').AsString := v_s_tj;
      Open;
    end;

{  if CB_fxrq.Checked then
    v_s_tj := 'and b.FXRQ >=to_date(''' + DEd_qs.Text + ''',''YYYY-MM-DD'') and B.FXRQ <=to_date(''' + DEd_jz.Text + ''',''YYYY-MM-DD'') ';
  if CB_zh.Checked then
    v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';

  if PCo_jg.ActivePageIndex = 0 then
    with qryKC do
    begin
      Close;
      if (Fio_type in [io_yp, io_grp]) then
      begin
        if CB_wrq.Checked then
          v_s_tj := 'and b.FXRQ is Null ';
        if CB_zh.Checked then
          v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';
      end;
      MacroByName('TJ').AsString := v_s_tj;
      if (Fio_type in [io_yp, io_grp]) and (CB_wrq.Checked) then
        MacroByName('TJ').AsString := 'b.FXRQ is Null';
      Open;
    end
  else
    with qry_KC2 do
    begin
      Close;
      if (Fio_type in [io_yp, io_grp]) then
      begin
        if (CB_wrq.Checked) then
          v_s_tj := 'and b.FXRQ is Null ';
        if CB_zh.Checked then
          v_s_tj := v_s_tj + 'and b.ZH like ''%' + Edt_zh.Text + '%'' ';
      end;
      v_s_tj := 'and A.KFDM = ''' + DBLCB_kf.KeyValue + ''' ' + v_s_tj;
      MacroByName('TJ').AsString := v_s_tj;
      Open;
    end;}
end;

procedure TfrmSJ_TJD.SetState(Value: TdataState);
var
  v_qry: TQuery;
begin
  FDtState := Value;
  ModiPanel1.ChangeMode(FDtState = dtBrowse);
  BBt_mr.Enabled := (PCo_jg.ActivePageIndex = 1) and (Fdtstate = dtEdit);
  case PCo_jg.ActivePageIndex of
    0:
      v_qry := qryKC;
    1:
      v_qry := qry_KC2;
  end;
  with v_qry do
    case PCo_jg.ActivePageIndex of
      0:
        begin
          RGr_Yorx.Enabled := (Fdtstate = dtBrowse);
          RxDBGrid1.Columns[3].ReadOnly := (Fdtstate = dtBrowse) and (RGr_YorX.ItemIndex = 0);
          case Fdtstate of
            dtBrowse:
              begin
                RxDBGrid1.Columns[3].color := cl3DLight;
              end; {browse}
            dtinsert:
              Append; {append}
            dtedit:
              begin
                Edit; {edit}
                if RGr_YorX.ItemIndex = 0 then
                begin
                  RxDBGrid1.Columns[3].color := cl3DLight; //$00D9FFFF;
                end
                else
                begin
                  RxDBGrid1.Columns[3].color := clInfoBk; //$00D9FFFF;
                end;
              end;
          end;
        end;
      1:
        begin
          RGr_JorZ.Enabled := (Fdtstate = dtBrowse);
          RxDBGrid2.Columns[3].ReadOnly := (Fdtstate = dtBrowse) and (RGr_JorZ.ItemIndex = 1);
          RxDBGrid2.Columns[4].ReadOnly := (Fdtstate = dtBrowse) and (RGr_JorZ.ItemIndex = 0);
          case Fdtstate of
            dtBrowse:
              begin
                RxDBGrid2.Columns[3].color := cl3DLight;
                RxDBGrid2.Columns[4].color := cl3DLight;
              end; {browse}
            dtinsert:
              Append; {append}
            dtedit:
              begin
                Edit; {edit}
                if RGr_JorZ.ItemIndex = 0 then
                begin
                  RxDBGrid2.Columns[3].color := clInfoBk; //$00D9FFFF;
                  RxDBGrid2.Columns[4].color := cl3DLight; //$00D9FFFF;
                end
                else
                begin
                  RxDBGrid2.Columns[3].color := cl3DLight; //$00D9FFFF;
                  RxDBGrid2.Columns[4].color := clInfoBk; //$00D9FFFF;
                end;
              end;
          end;
        end;
    end;
end;

procedure TfrmSJ_TJD.SetJYPTJB(p_tjdh: string; p_tjlx: string; var v_xh: integer);
begin
  with qryKC do {query}
  begin
    //TYS_JYPTJD
    QryTJD.Append;
    v_xh := v_xh + 1;
    QryTJD.fieldbyname('xh').asinteger := v_xh;
    QryTJD.fieldbyname('ppdm').asstring := FieldByName('ppdm').Asstring;
    QryTJD.fieldbyname('yj').AsFloat := FieldByName('YJ').OldValue;
    QryTJD.fieldbyname('xj').AsFloat := FieldByName('XJ').OldValue;
    QryTJD.fieldbyname('xgrq').asdatetime := GetSysDate;
    QryTJD.fieldbyname('xgr').asstring := VG_UserName;
    //TYS_JYPTJDB
    QryTJDB.Append;
    QryTJDB.FieldByName('TJDH').AsString := p_tjdh;
    QryTJDB.FieldByName('TZLX').AsString := p_tjlx;
    QryTJDB.FieldByName('PPDM').AsString := FieldByName('ppdm').Asstring;
    with data.qrytmp do
    begin
      Close;
      SQL.Clear;
      case Fio_type of
        io_jyp:
          SQL.Add('select sum(TS) from TYS_JYPPKC where PPDM=''' +
            qryKC.FieldByName('PPDM').AsString + '''');
        io_txp:
          SQL.Add('select sum(TS) from TYS_TXPPKC where PPDM=''' +
            qryKC.FieldByName('PPDM').AsString + '''');
        io_yp:
          SQL.Add('select sum(TS) from TYS_YPPKC where PPDM=''' +
            qryKC.FieldByName('PPDM').AsString + '''');
        io_grp:
          SQL.Add('select sum(TS) from TYS_GRPPKC where PPDM=''' +
            qryKC.FieldByName('PPDM').AsString + '''');
      end;
      Open;
    end;
    QryTJDB.FieldByName('SL').AsFloat := data.qrytmp.Fields[0].AsFloat;
    case RGr_yorx.ItemIndex of
      0:
        begin
          QryTJDB.FieldByName('YDJ').AsString := FieldByName('YJ').oldvalue;
          QryTJDB.FieldByName('XDJ').AsFloat := FieldByName('YJ').AsFloat;
        end;
      1:
        begin

⌨️ 快捷键说明

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