📄 skdwh.~pas
字号:
unit skdwh;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, ComCtrls, Grids, DBGridEh, StdCtrls, Mask,
Menus, PrnDbgeh, StdActns, ActnList, ActnMan,DBGridEhImpExp,db,adodb,
Buttons, DBCtrlsEh, DBLookupEh;
type
Tfrm_skdwh = class(TForm)
Panel1: TPanel;
DBNavigator1: TDBNavigator;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGridEh1: TDBGridEh;
Label11: TLabel;
Label12: TLabel;
ActionManager1: TActionManager;
EditCut1: TEditCut;
EditCopy1: TEditCopy;
EditPaste1: TEditPaste;
EditDelete1: TEditDelete;
FilePrintSetup1: TFilePrintSetup;
FontEdit1: TFontEdit;
ColorSelect1: TColorSelect;
PrintDlg1: TPrintDlg;
SaveDialog1: TSaveDialog;
MYPDBGEh: TPrintDBGridEh;
PopupMenu1: TPopupMenu;
N6: TMenuItem;
PrintSetup1: TMenuItem;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
GroupBox1: TGroupBox;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
SpeedButton2: TSpeedButton;
dtp1: TDateTimePicker;
dtp2: TDateTimePicker;
Edit1: TEdit;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
Label3: TLabel;
dblkcb_pjlx: TDBLookupComboBox;
Label4: TLabel;
dblkcb_jsfs: TDBLookupComboBox;
Label5: TLabel;
gyslk: TDBLookupComboBox;
Label6: TLabel;
DBEdit3: TDBEdit;
Label7: TLabel;
dblkcb_cqyh: TDBLookupComboBox;
Label8: TLabel;
dblkcb_hkjsr: TDBLookupComboBox;
Label9: TLabel;
DBEdit4: TDBEdit;
DBDateTimeEditEh1: TDBDateTimeEditEh;
SpeedButton1: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
dblk_dq: TDBLookupComboboxEh;
Label10: TLabel;
SpeedButton7: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure PrintSetup1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure dtp1Change(Sender: TObject);
procedure dtp1Enter(Sender: TObject);
procedure dtp2Change(Sender: TObject);
procedure dtp2Enter(Sender: TObject);
procedure gyslkCloseUp(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure dblk_dqChange(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_skdwh: Tfrm_skdwh;
implementation
uses data, gyscz, pjlxwh, hkjsrwh, jsfswh, cqyhwh, fkdwh, khzlcz;
{$R *.dfm}
procedure Tfrm_skdwh.FormCreate(Sender: TObject);
var year,month,day:Word;
begin
decodedate(now,year,month,day);
if day>26 then
begin
dtp1.Date:=EncodeDate(Year,Month,26);
dtp2.Date:=incmonth(EncodeDate(Year,Month,25),1);
end
else
begin
if month=1 then
begin
dtp1.Date:=EncodeDate(Year-1,12,26);
dtp2.Date:=EncodeDate(Year,1,25);
end
else
begin
dtp1.Date:=EncodeDate(Year,Month-1,26);
dtp2.Date:=EncodeDate(Year,Month,25);
end;
end;
dm.jzxxbads.Close;
dm.jzxxbads.Open;
dm.jzxxbads.Filter:='结转项目='+''''+'客户货款'+'''';
dm.jzxxbads.Filtered:=true;
dm.lastjznf:=dm.jzxxbads.fieldbyname('最后年份').Value;
dm.zlads_khzl.Open;
dm.ads_cqyhwh.Open;
dm.ads_pjlxwh.open;
dm.ads_jsfswh.Open;
dm.ads_hkjsrwh.Open;
dm.ads_djskd.Close;
dm.ads_djskd.Parameters.ParamByName('date1').Value:=dtp1.Date;
dm.ads_djskd.Parameters.ParamByName('date2').Value:=dtp2.Date;
dm.ads_djskd.Open;
dm.ads_djskd.Open;
dm.ads_djskd.Filtered:=true;
label16.Caption:='当前可处理年份:'+inttostr(dm.lastjznf);
end;
procedure Tfrm_skdwh.PrintSetup1Click(Sender: TObject);
var bt,tj:string;
begin
bt:='收款明细表';
if (ActiveControl is TDBGridEh) then
begin
MYPDBGEh.DBGridEh := TDBGridEh(ActiveControl);
MYPDBGEh.SetSubstitutes(['%[Today]',DateToStr(Now),'%[bt]',bt,'%[tj]',tj]);
MYPDBGEh.print;
end;
end;
procedure Tfrm_skdwh.N1Click(Sender: TObject);
var bt,tj:string;
begin
bt:='收款明细表';
if (ActiveControl is TDBGridEh) then
begin
MYPDBGEh.DBGridEh := TDBGridEh(ActiveControl);
MYPDBGEh.SetSubstitutes(['%[Today]',DateToStr(Now),'%[bt]',bt,'%[tj]',tj]);
MYPDBGEh.Preview;
end;
end;
procedure Tfrm_skdwh.N4Click(Sender: TObject);
var ExpClass:TDBGridEhExportClass;
Ext:String;
begin
SaveDialog1.FileName := '';
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 Tfrm_skdwh.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 Tfrm_skdwh.N9Click(Sender: TObject);
var i:integer;
begin
for i:=1 to TDBGridEh(ActiveControl).Columns.Count-1 do
begin
begin
TDBGridEh(ActiveControl).Columns[i].Visible:=true;
end;
end;
end;
procedure Tfrm_skdwh.DBGridEh1DblClick(Sender: TObject);
begin
frm_fkdwh.pagecontrol1.ActivePageIndex:=0;
dbedit1.SetFocus;
end;
procedure Tfrm_skdwh.FormShow(Sender: TObject);
begin
dbedit1.SetFocus;
end;
procedure Tfrm_skdwh.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if dm.ads_djskd.State in [dsinsert,dsedit] then
if MessageDlg('记录未保存,要保存吗?', mtConfirmation,
[mbYes, mbNo], 0) = mrYes then
begin
dm.ads_djskd.Post;
end
else
dm.ads_djskd.Cancel;
action :=cafree;
frm_skdwh:=nil;
end;
procedure Tfrm_skdwh.dtp1Change(Sender: TObject);
begin
if dtp1.date>dtp2.Date then
begin
showmessage('对不起!日期范围有误。');
dtp1.Date:=dtp2.Date;
end;
dm.ads_djskd.Parameters.ParamByName('date1').Value:=dtp1.Date;
dm.ads_djskd.Prepared;
end;
procedure Tfrm_skdwh.dtp1Enter(Sender: TObject);
begin
if dm.ads_djskd.State in [dsedit,dsinsert] then
begin
showmessage('对不起!当前单据编辑中...请先处理。');
abort;
end;
end;
procedure Tfrm_skdwh.dtp2Change(Sender: TObject);
begin
if dtp1.date>dtp2.Date then
begin
showmessage('对不起!日期范围有误。');
dtp2.Date:=dtp1.Date;
end;
dm.ads_djskd.Parameters.ParamByName('date2').Value:=dtp2.Date;
dm.ads_djskd.Prepared;
end;
procedure Tfrm_skdwh.dtp2Enter(Sender: TObject);
begin
if dm.ads_djskd.State in [dsedit,dsinsert] then
begin
showmessage('对不起!当前单据编辑中...请先处理。');
abort;
end;
end;
procedure Tfrm_skdwh.gyslkCloseUp(Sender: TObject);
begin
if gyslk.KeyValue<>null then
dbedit3.Text:='收 '+trim(gyslk.Text)+' 货款' ;
end;
procedure Tfrm_skdwh.SpeedButton2Click(Sender: TObject);
begin
if dm.ads_djskd.State in [dsedit,dsinsert] then
begin
showmessage('对不起!当前单据编辑中...请先处理。');
abort;
end;
dblk_dq.KeyValue:=null;
dm.ads_djskd.Filtered:=false;
if not dm.ads_djskd.Locate('单号',edit1.Text,[]) then
begin
showmessage('没有你要查找的单号');
edit1.SetFocus;
abort;
end;
end;
procedure Tfrm_skdwh.SpeedButton4Click(Sender: TObject);
begin
if not assigned(frm_hkjsrwh) then
frm_hkjsrwh := tfrm_hkjsrwh.Create(Self);
frm_hkjsrwh.ShowModal;
if (dm.ads_hkjsrwh.RecordCount>0) then
if dm.ads_djskd.FieldByName('经手人id').Value <>
dm.ads_hkjsrwh.FieldByName('经手人id').Value then
begin
dm.ads_djskd.Edit;
dm.ads_djskd.FieldByName('经手人id').Value:=
dm.ads_hkjsrwh.FieldByName('经手人id').Value;
end;
end;
procedure Tfrm_skdwh.SpeedButton5Click(Sender: TObject);
begin
if not assigned(frm_jsfswh) then
frm_jsfswh := tfrm_jsfswh.Create(Self);
frm_jsfswh.ShowModal;
if (dm.ads_jsfswh.RecordCount>0) then
if dm.ads_djskd.FieldByName('结算方式id').Value <>
dm.ads_jsfswh.FieldByName('结算方式id').Value then
begin
dm.ads_djskd.Edit;
dm.ads_djskd.FieldByName('结算方式id').Value:=
dm.ads_jsfswh.FieldByName('结算方式id').Value;
end;
end;
procedure Tfrm_skdwh.SpeedButton1Click(Sender: TObject);
begin
if not assigned(frm_khzlcz) then
frm_khzlcz := tfrm_khzlcz.create(self);
if (frm_khzlcz.ShowModal = mrOk) and
(dm.zlads_khzl.RecordCount>0) then
if dm.ads_djskd.FieldByName('客户ID').Value <>
dm.zlads_khzl.FieldByName('客户ID').Value then
begin
dm.ads_djskd.Edit;
dm.ads_djskd.FieldByName('客户ID').Value :=
dm.zlads_khzl.FieldByName('客户ID').Value;
if gyslk.KeyValue<>null then
dbedit3.Text:='收 '+trim(gyslk.Text)+' 货款' ;
end;
end;
procedure Tfrm_skdwh.SpeedButton3Click(Sender: TObject);
begin
if not assigned(frm_pjlxwh) then
frm_pjlxwh := tfrm_pjlxwh.Create(Self);
frm_pjlxwh.ShowModal;
if (dm.ads_pjlxwh.RecordCount>0) then
if dm.ads_djskd.FieldByName('票据类型id').Value <>
dm.ads_pjlxwh.FieldByName('票据类型id').Value then
begin
dm.ads_djskd.Edit;
dm.ads_djskd.FieldByName('票据类型id').Value:=
dm.ads_pjlxwh.FieldByName('票据类型id').Value;
end;
end;
procedure Tfrm_skdwh.SpeedButton6Click(Sender: TObject);
begin
if not assigned(frm_cqyhwh) then
frm_cqyhwh := tfrm_cqyhwh.Create(Self);
frm_cqyhwh.ShowModal;
if (dm.ads_cqyhwh.RecordCount>0) then
if dm.ads_djskd.FieldByName('银行id').Value <>
dm.ads_cqyhwh.FieldByName('银行id').Value then
begin
dm.ads_djskd.Edit;
dm.ads_djskd.FieldByName('银行id').Value:=
dm.ads_cqyhwh.FieldByName('银行id').Value;
end;
end;
procedure Tfrm_skdwh.dblk_dqChange(Sender: TObject);
begin
dm.ads_djskd.Filtered:=false;
edit1.Text:='';
if dblk_dq.KeyValue <> null then
begin
dm.ads_djskd.Filter:='客户ID='+''''+dblk_dq.KeyValue+'''';
dm.ads_djskd.Filtered:=TRUE;
end;
end;
procedure Tfrm_skdwh.SpeedButton7Click(Sender: TObject);
begin
if not assigned(frm_khzlcz) then
frm_khzlcz := tfrm_khzlcz.create(self);
if (frm_khzlcz.ShowModal = mrOk) and
(dm.zlads_khzl.RecordCount>0) then
dblk_dq.KeyValue:=
dm.zlads_khzl.FieldByName('客户ID').Value;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -