📄 cljccx.~pas
字号:
ProgressBar1.StepIt;
//上月结存整理
dm.ADOCN.Execute('update '+dyjcb+
' set 上月结存=cldmb.初始数量,上月金额=cldmb.初始金额'+
' from cldmb where cldmb.材料编码='+dyjcb+'.材料编码');
ProgressBar1.StepIt;
dm.ADOCN.Execute('update '+dyjcb+
' set 上月结存=上月结存+jchz.数量,' +
' 上月金额=上月金额+jchz.金额 ' +
' from (SELECT SUM(JCMXB.数量) AS 数量, SUM(JCMXB.金额)' +
' AS 金额, JCMXB.材料编码 '+
' FROM JCMXB INNER JOIN '+
' JCDHB ON JCMXB.进仓ID = JCDHB.进仓ID '+
' where JCDHB.进仓日期<'+
FormatDateTime('yy-mm-dd',Date1)+
' GROUP BY JCMXB.材料编码) as jchz ' +
' where '+dyjcb+'.材料编码=jchz.材料编码');
dm.ADOCN.Execute('update '+dyjcb+
' set 上月结存=上月结存+jchz.数量,' +
' 上月金额=上月金额+jchz.金额 ' +
' from (SELECT SUM(tzMXB.调整数量) AS 数量, SUM(tzMXB.调整金额)' +
' AS 金额, tzMXB.材料编码 '+
' FROM tzMXB INNER JOIN '+
' cjtzb ON tzMXB.调整ID = cjtzb.调整ID '+
' where cjtzb.调整日期<'+
FormatDateTime('yy-mm-dd',Date1)+
' GROUP BY tzMXB.材料编码) as jchz ' +
' where '+dyjcb+'.材料编码=jchz.材料编码');
ProgressBar1.StepIt;
dm.ADOCN.Execute('update '+dyjcb+
' set 上月结存=上月结存-cchz.数量,' +
' 上月金额=上月金额-cchz.金额 ' +
' from (SELECT SUM(ccmxb.数量) AS 数量, SUM(ccmxb.金额)' +
' AS 金额, ccmxb.材料编码 '+
' FROM ccmxb INNER JOIN '+
' ccDHB ON ccmxb.出仓ID = ccDHB.出仓ID '+
' where ccDHB.出仓日期<'+
FormatDateTime('yy-mm-dd',Date1)+
' GROUP BY ccmxb.材料编码) as cchz ' +
' where '+dyjcb+'.材料编码=cchz.材料编码');
//上月结存整理
ProgressBar1.StepIt;
//本月进仓整理
dm.ADOCN.Execute('update '+dyjcb+
' set 进仓数量=jchz.数量,' +
' 进仓金额=jchz.金额 ' +
' from (SELECT SUM(JCMXB.数量) AS 数量, SUM(JCMXB.金额)' +
' AS 金额, JCMXB.材料编码 '+
' FROM JCMXB INNER JOIN '+
' JCDHB ON JCMXB.进仓ID = JCDHB.进仓ID '+
' where JCDHB.进仓日期>='+
FormatDateTime('yy-mm-dd',Date1)+
' and JCDHB.进仓日期<='+
FormatDateTime('yy-mm-dd',Date2)+
' GROUP BY JCMXB.材料编码) as jchz ' +
' where '+dyjcb+'.材料编码=jchz.材料编码');
//本月进仓整理
ProgressBar1.StepIt;
//本月出仓整理
dm.ADOCN.Execute('update '+dyjcb+
' set 出仓数量=cchz.数量,' +
' 出仓金额=cchz.金额 ' +
' from (SELECT SUM(ccmxb.数量) AS 数量, SUM(ccmxb.金额)' +
' AS 金额, ccmxb.材料编码 '+
' FROM ccmxb INNER JOIN '+
' ccDHB ON ccmxb.出仓ID = ccDHB.出仓ID '+
' where ccDHB.出仓日期>='+
FormatDateTime('yy-mm-dd',Date1)+
' and ccDHB.出仓日期<='+
FormatDateTime('yy-mm-dd',Date2)+
' GROUP BY ccmxb.材料编码) as cchz ' +
' where '+dyjcb+'.材料编码=cchz.材料编码');
//本月出仓整理
ProgressBar1.StepIt;
//本月结存整理
dm.ADOCN.Execute('update '+dyjcb+
' set 本月结存=cldmb.初始数量,结存金额=cldmb.初始金额'+
' from cldmb where cldmb.材料编码='+dyjcb+'.材料编码');
ProgressBar1.StepIt;
dm.ADOCN.Execute('update '+dyjcb+
' set 本月结存=本月结存+jchz.数量,' +
' 结存金额=结存金额+jchz.金额 ' +
' from (SELECT SUM(JCMXB.数量) AS 数量, SUM(JCMXB.金额)' +
' AS 金额, JCMXB.材料编码 '+
' FROM JCMXB INNER JOIN '+
' JCDHB ON JCMXB.进仓ID = JCDHB.进仓ID '+
' where JCDHB.进仓日期<='+
FormatDateTime('yy-mm-dd',Date2)+
' GROUP BY JCMXB.材料编码) as jchz ' +
' where '+dyjcb+'.材料编码=jchz.材料编码');
dm.ADOCN.Execute('update '+dyjcb+
' set 本月结存=本月结存+jchz.数量,' +
' 结存金额=结存金额+jchz.金额 ' +
' from (SELECT SUM(tzMXB.调整数量) AS 数量, SUM(tzMXB.调整金额)' +
' AS 金额, tzMXB.材料编码 '+
' FROM tzMXB INNER JOIN '+
' cjtzb ON tzMXB.调整ID = cjtzb.调整ID '+
' where cjtzb.调整日期<='+
FormatDateTime('yy-mm-dd',Date2)+
' GROUP BY tzMXB.材料编码) as jchz ' +
' where '+dyjcb+'.材料编码=jchz.材料编码');
ProgressBar1.StepIt;
dm.ADOCN.Execute('update '+dyjcb+
' set 本月结存=本月结存-cchz.数量,' +
' 结存金额=结存金额-cchz.金额 ' +
' from (SELECT SUM(ccmxb.数量) AS 数量, SUM(ccmxb.金额)' +
' AS 金额, ccmxb.材料编码 '+
' FROM ccmxb INNER JOIN '+
' ccDHB ON ccmxb.出仓ID = ccDHB.出仓ID '+
' where ccDHB.出仓日期<='+
FormatDateTime('yy-mm-dd',Date2)+
' GROUP BY ccmxb.材料编码) as cchz ' +
' where '+dyjcb+'.材料编码=cchz.材料编码');
//本月结存整理
ProgressBar1.StepIt;
ProgressBar1.Visible:=false;
dm.cxjcbads.Close;
dm.cxjcbads.CommandText:='select * from '+dyjcb+' where 仓库ID='+''''+mainfrm.CKid+'''';
dm.cxjcbads.Open;
//end;
end;
procedure Tcljccxfrm.Button4Click(Sender: TObject);
begin
SL.Clear;
DM.ADOCn.GetTableNames(SL, False); //取得表名
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,26);
Date2:=EncodeDate(Year,Month,25);
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);
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;
dm.cxjcbads.Open;
end ;
end;
procedure Tcljccxfrm.FontEdit1Accept(Sender: TObject);
begin
TDBGridEh(ActiveControl).Font:=FontEdit1.Dialog.Font;
TDBGridEh(ActiveControl).FooterFont:=FontEdit1.Dialog.Font;
TDBGridEh(ActiveControl).TitleFont:=FontEdit1.Dialog.Font
end;
procedure Tcljccxfrm.PrintSetup1Click(Sender: TObject);
var bt,tj:string;
begin
bt:=spenf.Text+'年'+speyf.text+'月材料结存表';
tj:=''; //打印条件:
if (ActiveControl is TDBGridEh) then
begin
MYPDBGEh.DBGridEh := TDBGridEh(ActiveControl);
MYPDBGEh.SetSubstitutes(['%[Today]',DateToStr(Now),'%[bt]',bt,'%[tj]',tj]);
MYPDBGEh.print;
end;
end;
procedure Tcljccxfrm.N1Click(Sender: TObject);
var bt,tj:string;
begin
bt:=spenf.Text+'年'+speyf.text+'月材料结存表';
tj:=''; //打印条件:
if (ActiveControl is TDBGridEh) then
begin
MYPDBGEh.DBGridEh := TDBGridEh(ActiveControl);
MYPDBGEh.SetSubstitutes(['%[Today]',DateToStr(Now),'%[bt]',bt,'%[tj]',tj]);
MYPDBGEh.Preview;
end;
end;
procedure Tcljccxfrm.N4Click(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
SaveDialog1.FileName := 'file1';
if (ActiveControl is TDBGridEh) then
if SaveDialog1.Execute then
begin
case SaveDialog1.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
5: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-2,3)) <>
UpperCase(Ext) then
SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass,TDBGridEh(ActiveControl),
SaveDialog1.FileName,true);
end;
end;
end;
procedure Tcljccxfrm.N8Click(Sender: TObject);
begin
TDBGridEh(ActiveControl).Columns
[TDBGridEh(ActiveControl).SelectedIndex].Visible:=false;
if TDBGridEh(ActiveControl).SelectedIndex<
TDBGridEh(ActiveControl).Columns.Count-1 then
TDBGridEh(ActiveControl).SelectedIndex:=
TDBGridEh(ActiveControl).SelectedIndex+1;
end;
procedure Tcljccxfrm.N9Click(Sender: TObject);
var i:integer;
begin
for i:=1 to TDBGridEh(ActiveControl).Columns.Count-1 do
begin
case i of
0..4,7..20:
begin
TDBGridEh(ActiveControl).Columns[i].Visible:=true;
end;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -