?? sy_ckjhdcx.pas
字號:
{*******************************************************}
{ }
{ 出庫計劃單查詢 }
{ }
{ 中軟金馬公司版權(quán)所有。2002.12前 }
{ }
{ 編制:中軟金馬項目開發(fā)組 }
{ }
{ }
{*******************************************************}
(*
本模塊在省級零枚票管理模塊 計劃管理部分的出庫計劃單查詢菜單中調(diào)用。
修改記錄
增加,進(jìn)價銷價結(jié)算價小數(shù)點后保留3位 by jhshao 2003.05.09
*)
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, FieldComboBox, Menus,
EHGrids, DBGridEh, Clipbrd, DBGridEhExport;
type
TFrmY_CKJHDCX = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
BitBtn3: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BBt_Quit: TBitBtn;
Ldwmc: TLabel;
Label3: TLabel;
BBt_Find: TBitBtn;
BBt_Print: TBitBtn;
ND: TSpinEdit;
Panel5: TPanel;
Qry_JJNFPJH: TQuery;
DataSource3: TDataSource;
Qry_GXDWSJB: TQuery;
Qry_Static: TQuery;
BBt_Hide: TBitBtn;
Panel4: TPanel;
RG_PX: TRadioGroup;
GroupBox1: TGroupBox;
Label11: TLabel;
CB_ZBR: 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;
Panel6: TPanel;
CBo_CKXZ: TCheckBox;
CB_CKXZ: TComboBox;
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_JJNFPJHPPMC: TStringField;
Qry_JJNFPJHZK: TFloatField;
Qry_JJNFPJHJSJ: TFloatField;
Qry_JJNFPJHFPSL: TFloatField;
Qry_JJNFPJHDWMC: TStringField;
RG_ZT: TRadioGroup;
XttxTitle: TRxLabel;
Bevel1: TBevel;
CB_DWMC: TFieldComboBox;
DBGridEh1: TDBGridEh;
Qry_JJNFPJHTPMZ: TFloatField;
Qry_JJNFPJHTPSJ: TFloatField;
Qry_JJNFPJHJJ: TFloatField;
Qry_JJNFPJHXJ: TFloatField;
procedure FormCreate(Sender: TObject);
procedure DBG_JJNFPJHTitleClick(Column: TColumn);
procedure NDChange(Sender: TObject);
procedure BBt_PrintClick(Sender: TObject);
procedure BBt_FindClick(Sender: TObject);
procedure BBt_HideClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGridEh1GetFooterParams(Sender: TObject; DataCol,
Row: Integer; Column: TColumnEh; AFont: TFont;
var Background: TColor; var Alignment: TAlignment;
State: TGridDrawState; var Text: String);
procedure Qry_JJNFPJHTPMZGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
procedure Qry_JJNFPJHJJGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmY_CKJHDCX: TFrmY_CKJHDCX;
implementation
uses
datas,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_TXPCKJHDB ');
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[1].AsString) = -1 then
CB_JHH.Items.Add(Fields[0].AsString);
if trim(Fields[1].AsString) <> '' then
if CB_ZBR.Items.IndexOf(Fields[1].AsString) = -1 then
CB_ZBR.Items.Add(Fields[1].AsString);
if trim(Fields[2].AsString) <> '' 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_TXCKJHDPPB');
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, b.DWDM, b.PXM from TYS_TXCKJHDPPB a, TGS_GXDWSJB b WHERE a.DWDM=b.DWDM order by b.PXM');
Open;
while not Eof do
begin
CB_DWMC.Items.Add(Fields[0].AsString);
CB_DWMC.FieldItems.Add(Fields[1].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
BBt_FindClick(nil);
end;
procedure TFrmY_CKJHDCX.BBt_PrintClick(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),dwdm from tys_txckjhdppb where CKJHDH =''' + CB_JHH.Text + ''' group by dwdm');
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_txckjhdppb 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, C.DWJC DWMC, B.PPMC, B.JJ/100 JJ, B.XJ/100 XJ, B.ZK, b.JSJ/100 JSJ, B.FPSL,decode(b.JSJ,0,B.ZK*B.XJ*B.FPSL/10000, B.JSJ*B.FPSL/100) JE,d.zh ';
StrSQL := StrSQL + ' FROM TYS_TXPCKJHDB A,TYS_TXCKJHDPPB B,TGS_GXDWSJB C,TB_YZPPXXB D where B.DWDM=C.DWDM AND A.CKJHDH = B.CKJHDH AND B.PPDM=D.TDM and A.CKJHDH =''' + CB_JHH.Text + '''';
Qry_Print.SQL.Text := StrSQL;
Qry_Print.Open;
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); //xj
QRLabel10.Caption := FormatFloat('#,##0.00', Qry_Print.fieldbyName('JJ').AsFloat); //jj
Prepare;
QRLabel24.Caption := IntToStr(QRPrinter.PageCount);
QRLabel2.Caption :='零枚票';
DetailLines := 0;
Qry_Print.First;
Preview;
finally
Free;
end;
end;
if (Count_Dw >= 1) and (Count_PP > 1) then
begin //多品種多去向
Frm_More_More_RPT := TFrm_More_More_RPT.Create(nil);
Frm_RichEdit := TFrm_RichEdit.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, C.DWJC DWMC, B.PPMC, B.JJ/100 jj, B.XJ/100 XJ, B.ZK, DECODE(B.JSJ,0,B.ZK,B.JSJ/100) JSJ, B.FPSL,decode(JSJ,0,B.ZK*B.XJ*B.FPSL/10000, B.JSJ*B.FPSL/100) JE,d.zh ';
StrSQL := StrSQL + ' FROM TYS_TXPCKJHDB A,TYS_TXCKJHDPPB B,TGS_GXDWSJB C,TB_YZPPXXB D where B.DWDM=C.DWDM AND A.CKJHDH = B.CKJHDH AND B.PPDM=D.TDM and A.CKJHDH =''' + CB_JHH.Text + '''';
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));
Prepare;
QRLabel21.Caption := IntToStr(QRPrinter.PageCount);
DetailLines := 0;
Qry_Print.First;
Preview;
finally
Frm_More_More_RPT.Free;
Frm_RichEdit.Free;
end;
end;
end;
procedure TFrmY_CKJHDCX.BBt_FindClick(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 B.DWDM = ''' + CB_DWMC.FieldString + '''';
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批準(zhǔn)人
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狀態(tài)
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, D.TPMZ, D.TPSJ, B.PPMC, B.JJ, B.XJ, B.ZK, B.JSJ, B.FPSL');
SQL.Add('FROM TYS_TXPCKJHDB A,TYS_TXCKJHDPPB B, TGS_JRCKXZDM C, TB_YZPPXXB D');
SQL.Add('where A.CKJHDH = B.CKJHDH and A.CKXZ = C.RCKXZDM and b.PPDM=D.TDM');
SQL.Add('and TO_CHAR(ZDRQ,''YYYY'') =''' + ND.Text + ''' ');
SQL.Add(VG_SQLWhere);
SQL.Add('order by CKJHDH ');
Open;
end;
end;
procedure TFrmY_CKJHDCX.BBt_HideClick(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.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
SaveAllColWidth(self);
end;
procedure TFrmY_CKJHDCX.DBGridEh1GetFooterParams(Sender: TObject; DataCol,
Row: Integer; Column: TColumnEh; AFont: TFont; var Background: TColor;
var Alignment: TAlignment; State: TGridDrawState; var Text: String);
begin
try
if (UpperCase(Column.FieldName) = 'FPSL') then
if Text = '' then
Text := '0'
else
Text := FormatFloat('#,##', StrToFloat(Text))
except
end;
if (UpperCase(Column.FieldName) = 'CKJHDH') then
Text := '合 計: ' + Text;
end;
procedure TFrmY_CKJHDCX.Qry_JJNFPJHTPMZGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
CurrGetText(Sender, Text, DisplayText);
end;
procedure TFrmY_CKJHDCX.Qry_JJNFPJHJJGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
{增加,進(jìn)價銷價結(jié)算價小數(shù)點后保留3位 by jhshao 2003.05.09}
CurrGetText3(Sender, Text, DisplayText);
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -