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

📄 sy_ckjhdcx.pas

📁 省级集邮品管理ERP
💻 PAS
字号:
{*******************************************************}
{                                                       }
{                     出库计划单查询                    }
{                                                       }
{            中软金马公司版权所有。2002.12前            }
{                                                       }
{            编制:中软金马邮资票品项目开发组           }
{                                                       }
{                                                       }
{*******************************************************}
(*
本模块在省级集邮品系统管理模块里面调用。
修改记录
修改用于销价进价结算价结算金额的显示小数点后扩到3位 将Qry_JJNFPJH进价销价结算价结算金额显示调用的CurrGetText替换为CurrGetText3;结算价显示调用CurrGetText jhshao 2003.05.08

*)
unit SY_CKJHDCX;

interface

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

type
  TFrmY_CKJHDCX = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    BBt_Quit: TBitBtn;
    Ldwmc: TLabel;
    Label3: TLabel;
    BBt_Find: TBitBtn;
    BBt_Print: TBitBtn;
    ND: TSpinEdit;
    Panel5: TPanel;
    ALi_Edit: TActionList;
    Act_AddDW: TAction;
    Act_DeleteDW: TAction;
    Act_AddFPJH: TAction;
    Act_DeleteFPJH: TAction;
    Act_ModifyFPJH: TAction;
    Act_Find: TAction;
    Act_Print: TAction;
    Act_Save: TAction;
    Act_Cancel: TAction;
    Qry_JJNFPJH: TQuery;
    DataSource3: TDataSource;
    Qry_GXDWSJB: TQuery;
    Act_Send: TAction;
    Qry_Static: TQuery;
    BBt_Hide: TBitBtn;
    Panel4: TPanel;
    RG_PX: TRadioGroup;
    GroupBox1: TGroupBox;
    Label11: TLabel;
    CB_ZBR: TComboBox;
    CB_DWMC: TComboBox;
    CB_JHH: TComboBox;
    CB_PPMC: TComboBox;
    CBB_DWMC: TCheckBox;
    CBB_PPMC: TCheckBox;
    CBB_JHH: TCheckBox;
    DP_FROM: TDateTimePicker;
    DP_TO: TDateTimePicker;
    CBB_PZR: TCheckBox;
    CB_PZR: TComboBox;
    CBB_ZBR: TCheckBox;
    CBB_ZDRQ: TCheckBox;
    RG_ZT: TRadioGroup;
    Act_Hide: TAction;
    Query1: TQuery;
    Panel6: TPanel;
    DBGrid2: TDBGrid;
    CBo_CKXZ: TCheckBox;
    CB_CKXZ: TComboBox;
    XttxTitle: TRxLabel;
    Qry_JJNFPJHCKJHDH: TStringField;
    Qry_JJNFPJHCKXZ: TStringField;
    Qry_JJNFPJHZBR: TStringField;
    Qry_JJNFPJHPZR: TStringField;
    Qry_JJNFPJHZDRQ: TDateTimeField;
    Qry_JJNFPJHBZ: TStringField;
    Qry_JJNFPJHZT: TStringField;
    Qry_JJNFPJHKFDM: TStringField;
    Qry_JJNFPJHDWDM: TStringField;
    Qry_JJNFPJHPPDM: TStringField;
    Qry_JJNFPJHJJ: TFloatField;
    Qry_JJNFPJHDWMC: TStringField;
    Qry_JJNFPJHKWH: TStringField;
    Qry_JJNFPJHPPMC: TStringField;
    Qry_JJNFPJHYJ: TFloatField;
    Qry_JJNFPJHXJ: TFloatField;
    Qry_JJNFPJHZK: TFloatField;
    Qry_JJNFPJHJSJ: TFloatField;
    Qry_JJNFPJHFPSL: TFloatField;
    Bevel1: TBevel;
    Qry_JJNFPJHJSJE: TFloatField;
    procedure FormCreate(Sender: TObject);
    procedure DBG_JJNFPJHTitleClick(Column: TColumn);
    procedure NDChange(Sender: TObject);
    procedure Act_FindExecute(Sender: TObject);
    procedure Act_HideExecute(Sender: TObject);
    procedure Act_PrintExecute(Sender: TObject);
    procedure Qry_JJNFPJHJJGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure Qry_JJNFPJHJJSetText(Sender: TField; const Text: string);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmY_CKJHDCX: TFrmY_CKJHDCX;

implementation
uses
  pub, SY_CKJHDCX_RPT, SY_CKJHDOne_More_RPT, SY_CKJHDMore_More_RPT, SJ_RICHEDIT;

{$R *.DFM}

procedure TFrmY_CKJHDCX.FormCreate(Sender: TObject);
begin
  DP_FROM.DateTime := GetSysDate;
  DP_TO.DateTime := DP_FROM.DateTime;
  ND.Value := VG_Year;
  Ldwmc.Caption := '使用单位:' + VG_UnitName;
  with Qry_Static do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select CKJHDH,ZBR,PZR from TYS_YPCKJHDB ');
    SQL.Add('where TO_CHAR(ZDRQ,''YYYY'') =''' + ND.Text + ''' ');
    SQL.Add('order by CKJHDH DESC ');
    Open;
    while not Eof do
    begin

      if CB_JHH.Items.IndexOf(Fields[0].AsString) = -1 then
        CB_JHH.Items.Add(Fields[0].AsString);

      if length(Fields[1].AsString) > 0 then
        if CB_ZBR.Items.IndexOf(Fields[1].AsString) = -1 then
          CB_ZBR.Items.Add(Fields[1].AsString);

      if length(Fields[2].AsString) > 0 then
        if CB_PZR.Items.IndexOf(Fields[2].AsString) = -1 then
          CB_PZR.Items.Add(Fields[2].AsString);
      Next;
    end;
    Close;
    SQL.Clear;
    SQL.Add('select Distinct PPMC from TYS_YPCKJHDPPB');
    Open;
    while not Eof do
    begin
      if CB_PPMC.Items.IndexOf(Fields[0].AsString) = -1 then
        CB_PPMC.Items.Add(Fields[0].AsString);
      Next;
    end;
    Close;
    SQL.Clear;
    SQL.Add('select Distinct b.DWJC, PXM from TYS_YPCKJHDPPB a, TGS_GXDWSJB b where a.DWDM=b.DWDM order by PXM');
    Open;
    while not Eof do
    begin
      if CB_DWMC.Items.IndexOf(Fields[0].AsString) = -1 then
        CB_DWMC.Items.Add(Fields[0].AsString);
      Next;
    end;
    Close;
    SQL.Clear;
    SQL.Add('select RCKXZMC from TGS_JRCKXZDM where RCKXZDM like ''1%''');
    Open;
    while not Eof do
    begin
      if CB_CKXZ.Items.IndexOf(Fields[0].AsString) = -1 then
        CB_CKXZ.Items.Add(Fields[0].AsString);
      Next;
    end;
  end;
  GetAllColWidth(self);
end;

procedure TFrmY_CKJHDCX.DBG_JJNFPJHTitleClick(Column: TColumn);
begin
  if Qry_JJNFPJH.SQL.Count < 0 then Exit;
  if Qry_JJNFPJH.SQL.Count > 2 then
    with Qry_JJNFPJH do
    begin
      Close;
      if Column.FieldName = 'DWMC' then
        SQL[SQl.Count - 1] := 'order by DWDM'
      else
        SQL[SQl.Count - 1] := 'order by ' + Column.FieldName;
      if RG_PX.ItemIndex = 1 then
        SQL[SQl.Count - 1] := SQL[SQl.Count - 1] + ' DESC';
      Open;
    end;
  if RG_PX.ItemIndex = 1 then
    RG_PX.ItemIndex := 0
  else
    RG_PX.ItemIndex := 1;
end;

procedure TFrmY_CKJHDCX.NDChange(Sender: TObject);
begin
  Act_FindExecute(nil);
end;

procedure TFrmY_CKJHDCX.Act_FindExecute(Sender: TObject);
begin
//------------------------------------------------------------------------------
  VG_SQLWhere := '';
  if CBB_JHH.Checked and (CB_JHH.Text <> '') then //1计划号
    VG_SQLWhere := ' and A.CKJHDH = ''' + CB_JHH.Text + ''' ';
  if CBB_DWMC.Checked and (CB_DWMC.Text <> '') then //2单位名称
    VG_SQLWhere := VG_SQLWhere + ' and DWJC = ''' + CB_DWMC.Text + '''';
  if CBB_PPMC.Checked and (CB_PPMC.Text <> '') then //2票品名称
    VG_SQLWhere := VG_SQLWhere + ' and PPMC = ''' + CB_PPMC.Text + '''';
  if CBB_PZR.Checked and (CB_PZR.Text <> '') then //3批准人
    VG_SQLWhere := VG_SQLWhere + ' and PZR = ''' + CB_PZR.Text + ''' ';
  if CBB_ZBR.Checked and (CB_ZBR.Text <> '') then //4制表人
    VG_SQLWhere := VG_SQLWhere + ' and ZBR = ''' + CB_ZBR.Text + ''' ';
  if CBo_CKXZ.Checked and (CB_CKXZ.Text <> '') then
    VG_SQLWhere := VG_SQLWhere + ' and RCKXZMC = ''' + CB_CKXZ.Text + ''' ';
  case RG_ZT.ItemIndex of //5状态
    0: VG_SQLWhere := VG_SQLWhere + ' and ZT =''' + CG_WCL + '''  ';
    1: VG_SQLWhere := VG_SQLWhere + ' and ZT =''' + CG_DG + '''  ';
    2: VG_SQLWhere := VG_SQLWhere + ' and ZT =''' + CG_YCL + '''  ';
  end;
  if CBB_ZDRQ.Checked then //6制单日期
  begin
    VG_SQLWhere := VG_SQLWhere + ' and ZDRQ >=TO_DATE(''' + FormatDateTime('YYYY-DD-MM', DP_FROM.DateTime) + ''',''YYYY-DD-MM'') ';
    VG_SQLWhere := VG_SQLWhere + ' and ZDRQ <=TO_DATE(''' + FormatDateTime('YYYY-DD-MM', DP_TO.DateTime) + ''',''YYYY-DD-MM'') ';
  end;
//------------------------------------------------------------------------------
  with Qry_JJNFPJH do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select A.CKJHDH, C.RCKXZMC CKXZ, A.ZBR, A.PZR,A.ZDRQ, A.BZ , A.ZT, ');
    SQL.Add('B.KFDM, B.DWDM, B.PPDM, B.JJ, D.DWJC DWMC, B.KWH, B.PPMC, B.YJ, B.XJ, B.ZK, B.JSJ, B.FPSL, B.FPSL * (B.XJ * nvl(B.ZK, 0) / 100 + nvl(B.JSJ, 0)) JSJE ');
    SQL.Add('FROM TYS_YPCKJHDB A,TYS_YPCKJHDPPB B, TGS_JRCKXZDM C, TGS_GXDWSJB D ');
    SQL.Add('where A.CKJHDH = B.CKJHDH and A.CKXZ = C.RCKXZDM and b.DWDM=D.DWDM ');
    SQL.Add('and TO_CHAR(ZDRQ,''YYYY'') =''' + IntToStr(ND.Value) + ''' ');
    SQL.Add(VG_SQLWhere);
    SQL.Add('order by CKJHDH, PXM');
    Open;
  end;
end;

procedure TFrmY_CKJHDCX.Act_HideExecute(Sender: TObject);
begin
  Panel4.Visible := not Panel4.Visible;
  if panel4.Visible then
  begin
    BBt_Hide.Caption := '隐藏(&H)';
    BBt_Hide.Hint := '隐藏所有的查询条件。';
  end
  else
  begin
    BBt_Hide.Caption := '显示(&X)';
    BBt_Hide.Hint := '显示所有的查询条件。'
  end;

end;

procedure TFrmY_CKJHDCX.Act_PrintExecute(Sender: TObject);
var
  StrSQL: string;
  Qry_SumDw: TQuery;
  Count_DW, Count_PP: Integer;
begin
  if CB_JHH.Text = '' then
  begin
    CHQMsgBox('请选择分配单号!');
    Exit;
  end;
  if Qry_JJNFPJH.IsEmpty then Exit;
  Qry_SumDw := TQuery.Create(nil);
  try
    with Qry_SumDw do
    begin
      Close;
      DatabaseName := 'yzpp';
      SQL.Clear;
      SQl.Add('select sum(fpsl),dwmc from tys_ypckjhdppb where CKJHDH =''' + CB_JHH.Text + ''' group by dwmc');
      Open;
    end;
    Count_DW := Qry_SumDw.RecordCount;
    with Qry_SumDw do
    begin
      Close;
      DatabaseName := 'yzpp';
      SQL.Clear;
      SQl.Add('select sum(fpsl),ppdm from tys_ypckjhdppb where CKJHDH =''' + CB_JHH.Text + ''' group by ppdm');
      Open;
    end;
    Count_PP := Qry_SumDw.RecordCount;
  finally
    Qry_SumDw.Free;
    Qry_SumDw := nil;
  end;
  if (Count_DW >= 1) and (Count_PP = 1) then //单品种多去向
  begin
    Frm_One_More_RPT := TFrm_One_More_RPT.Create(nil);
    with Frm_One_More_RPT do
    try
      Qry_Print.Close;
      StrSQL := 'select ROWNUM, A.CKJHDH, A.CKXZ, A.ZBR, A.PZR, A.ZDRQ, A.BZ, B.DWMC, B.PPMC, B.XJ/100 XJ,B.JJ/100 JJ, B.ZK, B.JSJ/100 JSJ, ';
      StrSQL := StrSQL + ' B.FPSL, decode(JSJ,0,B.ZK*B.XJ*B.FPSL/10000, B.JSJ*B.FPSL/100) JE,C.ZH FROM TYS_YPCKJHDB A,TYS_YPCKJHDPPB B,TB_YZPPXXB C where A.CKJHDH = B.CKJHDH AND B.PPDM=C.TDM and A.CKJHDH =' + '''' + CB_JHH.Text + '''';
      Qry_Print.SQL.Text := StrSQL;
      Qry_Print.Open;

      QRLabel2.Caption := '集邮品';
      QRLabel4.Caption := Qry_Print.fieldByName('ckjhdh').AsString;
      QRlabel14.Caption := FormatDateTime('YYYY"年"MM"月"DD"日"', StrToDate(Qry_Print.FieldByName('zdrq').AsString));
      QRLabel6.Caption := Qry_Print.fieldbyname('zh').AsString;
      QRLabel8.Caption := Qry_Print.FieldByName('ppmc').AsString;
      QRLabel12.Caption := FormatFloat('#,##0.00', QRy_Print.FieldByName('xj').AsFloat);
      QRLabel10.Caption := FormatFloat('#,##0.00', Qry_Print.fieldbyName('jj').AsFloat);

      Prepare;
      QRLabel24.Caption := IntToStr(QRPrinter.PageCount);
      if CHQMsgBox('是否采用套打?', 2) = IDYES then
        Tao_Print_Flag := True
      else
        Tao_Print_Flag := False;

      DetailLines := 0;
      Qry_Print.First;
      Preview;
      Destroy;
    except
      Free;
    end;
  end;
  if (Count_Dw >= 1) and (Count_PP > 1) then
  begin //多品种多去向
    Frm_RichEdit := TFrm_RichEdit.Create(nil);
    Frm_More_More_RPT := TFrm_More_More_RPT.Create(nil);
    with Frm_More_More_RPT, Frm_RichEdit do
    try
      Qry_Print.Close;
      StrSQL := 'select ROWNUM, A.CKJHDH, A.CKXZ, A.ZBR, A.PZR, A.ZDRQ, A.BZ, B.DWMC, B.PPMC, B.XJ/100 XJ,B.JJ/100 JJ, B.ZK, Decode(B.JSJ,0,b.zk,B.JSJ/100) JSJ, ';
      StrSQL := StrSQL + ' B.FPSL, decode(JSJ,0,B.ZK*B.XJ*B.FPSL/10000, B.JSJ*B.FPSL/100) JE,C.ZH FROM TYS_YpCKJHDB A,TYS_YpCKJHDPPB B,TB_YZPPXXB C where A.CKJHDH = B.CKJHDH AND B.PPDM=C.TDM and A.CKJHDH =' + '''' + CB_JHH.Text + ''' order by dwmc';
      Qry_Print.SQL.Text := StrSQL;
      Qry_Print.Open;
      QRLabel1.Caption := '集邮品';
      QRLabel4.Caption := Qry_Print.fieldByName('ckjhdh').AsString;
      QRlabel5.Caption := FormatDateTime('YYYY"年"MM"月"DD"日"', StrToDate(Qry_Print.FieldByName('zdrq').AsString));
    {QRLabel6.Caption :=Qry_Print.fieldbyname('zh').AsString;
    QRLabel8.Caption :=Qry_Print.FieldByName('ppmc').AsString;
    QRLabel12.Caption :=FormatFloat('#,##0.00',QRy_Print.FieldByName('xj').AsFloat);
    QRLabel10.Caption :=FormatFloat('#,##0.00',Qry_Print.fieldbyName('jj').AsFloat);}

      Prepare;
      QRLabel21.Caption := IntToStr(QRPrinter.PageCount);
      if CHQMsgBox('是否采用套打?', 2) = IDYES then
        Tao_Print_Flag := True
      else
        Tao_Print_Flag := False;

      DetailLines := 0;
      Qry_Print.First;
      Preview;
    finally
      Frm_More_More_RPT.Free;
      Frm_RichEdit.Free;
      Frm_More_More_RPT := nil;
      Frm_RichEdit := nil;

    end;
  end;

end;

procedure TFrmY_CKJHDCX.Qry_JJNFPJHJJGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
{修改,销价进价结算价结算金额显示小数点后3位 原来调用的CurrGetText替换为CurrGetText3 jhshao 2003.05.08}
  CurrGetText3(Sender, Text, DisplayText);
end;

procedure TFrmY_CKJHDCX.Qry_JJNFPJHJJSetText(Sender: TField;
  const Text: string);
begin
  CurrSetText(Sender, Text);
end;

procedure TFrmY_CKJHDCX.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  SaveAllColWidth(self);
end;

end.

⌨️ 快捷键说明

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