📄 cljccx.~pas
字号:
unit cljccx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGridEh, Mask, DBCtrlsEh, DBLookupEh, Spin, StdCtrls,
DBCtrls, ExtCtrls, ComCtrls, StdActns, ActnList, ActnMan, Menus, PrnDbgeh,
DBGridEhImpExp;
type
Tcljccxfrm = class(TForm)
GroupBox1: TGroupBox;
Label8: TLabel;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
Button1: TButton;
Button2: TButton;
slxx1: TComboBox;
slcb1: TComboBox;
sled1: TSpinEdit;
sled2: TSpinEdit;
slcb2: TComboBox;
slxx2: TComboBox;
dblkbox: TDBLookupComboboxEh;
DBGridEh1: TDBGridEh;
GroupBox2: TGroupBox;
Button3: TButton;
DBNavigator2: TDBNavigator;
stb: TStatusBar;
Label3: TLabel;
Label4: TLabel;
speyf: TSpinEdit;
spenf: TSpinEdit;
ProgressBar1: TProgressBar;
Button4: TButton;
SaveDialog1: TSaveDialog;
MYPDBGEh: TPrintDBGridEh;
PopupMenu1: TPopupMenu;
N2: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
PrintSetup1: TMenuItem;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
ActionManager1: TActionManager;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
EditDelete1: TEditDelete;
FilePrintSetup1: TFilePrintSetup;
FontEdit1: TFontEdit;
ColorSelect1: TColorSelect;
PrintDlg1: TPrintDlg;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FontEdit1Accept(Sender: TObject);
procedure PrintSetup1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
private
{ Private declarations }
public
syjcb,dyjcb:string;
date1,date2:tdate;
year,month,day:Word;
SL: TStrings;
I: Integer;
s:string;
{ Public declarations }
end;
var
cljccxfrm: Tcljccxfrm;
implementation
uses data, main;
{$R *.dfm}
procedure Tcljccxfrm.FormCreate(Sender: TObject);
begin
decodedate(now,year,month,day);
if month=1 then
begin
Date1:=EncodeDate(Year-1,12,26);
Date2:=EncodeDate(Year,1,25);
end
else
begin
Date1:=EncodeDate(Year,Month-1,26);
Date2:=EncodeDate(Year,Month,25);
end;
dm.whcllxdmads.Open;
dm.whclbmads.Close;
dm.whclbmads.CommandText:='select * from CLDMB where 仓库ID='+''''+mainfrm.CKid+'''';
dm.whclbmads.Open;
spenf.Text:=inttostr(year);
speyf.Text:=inttostr(month);
if month=1 then
syjcb:='jcb'+trim(inttostr(year-1))+'12'
else
syjcb:='jcb'+trim(spenf.Text)+trim(inttostr(month-1));
dyjcb:='jcb'+trim(spenf.Text)+trim(speyf.Text);
SL := TStringList.Create;
DM.ADOCn.GetTableNames(SL, False); //取得表名
if sl.IndexOf(dyjcb)=-1 then
begin
showmessage(spenf.Text+'年'+speyf.Text+'月的结存表不存在...');
dm.cxjcbads.Close;
end
else
begin
dm.cxjcbads.Close;
dm.cxjcbads.CommandText:='select * from '+dyjcb+' where 仓库ID='+''''+mainfrm.CKid+'''';
dm.cxjcbads.Open;
end
end;
procedure Tcljccxfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SL.Free;
action:=cafree;
cljccxfrm:=nil;
end;
procedure Tcljccxfrm.Button2Click(Sender: TObject);
var sxtj,sxtjtx:string;
begin
sxtj:='';
if trim(edit1.Text)<>'' then
sxtj:='材料编码 like %'+trim(edit1.Text)+'%';
if slxx1.ItemIndex>0 then
if sxtj<>'' then
sxtj:=sxtj+' and '+slxx1.Text+slcb1.Text+sled1.Text
else
sxtj:=slxx1.Text+slcb1.Text+sled1.Text;
if slxx2.ItemIndex>0 then
if sxtj<>'' then
sxtj:=sxtj+' and '+slxx2.Text+slcb2.Text+sled2.Text
else
sxtj:=slxx2.Text+slcb2.Text+sled2.Text;
if (dblkbox.KeyValue<>'') and
(dblkbox.KeyValue<>null) then
if sxtj<>'' then
sxtj:=sxtj+' and 类型ID='+''''+dblkbox.KeyValue+''''
else
sxtj:='类型ID='+''''+dblkbox.KeyValue+'''';
dm.cxjcbads.Filtered:=false;
if trim(sxtj)<>'' then
begin
dm.cxjcbads.Filter:=sxtj;
dm.cxjcbads.Filtered:=true;
end;
sxtjtx:=sxtj;
sxtjtx:=StringReplace(sxtjtx,'and','以及',[rfReplaceAll]);
sxtjtx:=StringReplace(sxtjtx,'like %','包含"',[rfReplaceAll]);
sxtjtx:=StringReplace(sxtjtx,'%','"',[rfReplaceAll]);
sxtjtx:='查询条件:'+sxtjtx;
stb.SimpleText:=sxtjtx;
end;
procedure Tcljccxfrm.Button1Click(Sender: TObject);
begin
close;
end;
procedure Tcljccxfrm.Button3Click(Sender: TObject);
begin
ProgressBar1.Visible:=true;
year:=strtoint(spenf.Text);
month:=strtoint(speyf.Text);
if month=1 then
begin
Date1:=EncodeDate(Year-1,12,26);
Date2:=EncodeDate(Year,1,25);
end
else
begin
Date1:=EncodeDate(Year,Month-1,25);
Date2:=EncodeDate(Year,Month,26);
end;
if month=1 then
syjcb:='jcb'+trim(inttostr(year-1))+'12'
else
syjcb:='jcb'+trim(spenf.Text)+trim(inttostr(month-1));
dyjcb:='jcb'+trim(spenf.Text)+trim(speyf.Text);
//dm.whjbsjads.Open;
//if dm.whjbsjads.FieldByName('年份').IsNull or
// dm.whjbsjads.FieldByName('月份').IsNull then
//begin //取初始数量
// if MessageDlg('到目前止,你还未处理过结存表,是否从今月起开始处理 ?', mtConfirmation,
// [mbYes, mbNo], 0) = mrno then
// abort
// else
// begin
if sl.IndexOf(dyjcb)=-1 then
dm.ADOCN.Execute('CREATE TABLE '+ dyjcB +'( '+
'[材料编码] [char] (14) NOT NULL ,'+
'[材料名称] [char] (26) NOT NULL ,'+
'[单位] [char] (4) NULL ,'+
'[材料规格] [char] (16) NULL ,'+
'[类型ID] [char] (4) NOT NULL ,'+
'[仓库ID] [char] (4) NOT NULL ,'+
'[上月结存] [int] default 0 NULL ,'+
'[上月单价] [money] default 0 NULL ,'+
'[上月金额] [money] default 0 NULL ,'+
'[进仓数量] [int] default 0 NULL ,'+
'[进仓单价] [money] default 0 NULL ,'+
'[进仓金额] [money] default 0 NULL ,'+
'[出仓数量] [int] default 0 NULL ,'+
'[出仓单价] [money] default 0 NULL ,'+
'[出仓金额] [money] default 0 NULL ,'+
'[本月结存] [int] default 0 NULL ,'+
'[结存单价] [money] default 0 NULL ,'+
'[结存金额] [money] default 0 NULL ,'+
'[实际结存] [int] default 0 NULL ,'+
'[实际金额] [money] default 0 NULL)');
// dm.whjbsjads.FieldByName('年份').Value:=trim(spenf.Text);
// dm.whjbsjads.FieldByName('月份').Value:=trim(speyf.Text);
// end;
//end
//else
//begin
ProgressBar1.StepIt;
dm.ADOCN.Execute('insert '+dyjcb+'(材料编码,材料名称,单位,'+
'材料规格,类型ID,仓库ID) select 材料编码,材料名称,单位,'+
'材料规格,类型ID,仓库ID from (select cldmb.材料编码,'+
'cldmb.材料名称,cldmb.单位,cldmb.材料规格,cldmb.类型ID,'+
'cldmb.仓库ID,'+dyjcb+'.材料编码 as jcbdm from cldmb full JOIN '+
dyjcb +' on cldmb.材料编码='+dyjcb+'.材料编码) as newdm '+
'where newdm.jcbdm is null');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -