📄 udatam.pas
字号:
unit UDataM;
interface
uses
SysUtils, Classes, DB, ADODB, forms, Controls, main;
type
TDataM = class(TDataModule)
ADOConnection1: TADOConnection;
MissionSet: TADODataSet;
MissionSource: TDataSource;
MissionSetTaxNo: TWideStringField;
MissionSetDWMC: TWideStringField;
MissionSetActive: TBooleanField;
MissionSetphotoNo: TWideStringField;
MissionSetaddress: TWideStringField;
MissionSetsk_Ren: TWideStringField;
MissionSetkp_Ren: TWideStringField;
MissionSetbank: TWideStringField;
MissionSetbankno: TWideStringField;
CurMission: TADOTable;
CurMissionSource: TDataSource;
RenSet: TADODataSet;
RenSource: TDataSource;
CurMissiontaxNo: TWideStringField;
CurMissionren: TWideStringField;
KHFLSet: TADODataSet;
KHFLSource: TDataSource;
KHMXSet: TADODataSet;
KMMXSource: TDataSource;
jldwSet: TADODataSet;
jldwSetjlDM: TWideStringField;
jldwSetJLDW: TWideStringField;
jldwSource: TDataSource;
KHMXSetid: TAutoIncField;
KHMXSetfl_id: TIntegerField;
KHMXSetKHDM: TWideStringField;
KHMXSetKHMC: TWideStringField;
KHMXSetKHAddress: TWideStringField;
KHMXSetKHYZBM: TWideStringField;
KHMXSetKHTelNO: TWideStringField;
KHMXSetKHMAIN: TWideStringField;
KHMXSetKHBank: TWideStringField;
KHMXSetKHZH: TWideStringField;
KHMXSetKHTAXNo: TWideStringField;
KHMXSetCredence: TWideStringField;
KHFLSetfl_id: TAutoIncField;
KHFLSetTaxNo: TWideStringField;
KHFLSetFLMC: TWideStringField;
CPFLSet: TADODataSet;
CPFLSource: TDataSource;
CPFLSetfl_id: TAutoIncField;
CPFLSetTaxNo: TWideStringField;
CPFLSetFLMC: TWideStringField;
CPMXSet: TADODataSet;
CPMXSource: TDataSource;
CPMXSetid: TAutoIncField;
CPMXSetfl_id: TIntegerField;
CPMXSetCPDM: TWideStringField;
CPMXSetCPMC: TWideStringField;
CPMXSetCPGG: TWideStringField;
CPMXSetCPDW: TWideStringField;
CPMXSetdefaDJ: TFloatField;
CPMXSetdefaSL: TFloatField;
CurMissionprintName: TWideStringField;
CurMissionprint_X: TIntegerField;
CurMissionprint_Y: TIntegerField;
CurMissionSLDec: TIntegerField;
CurMissionDJDec: TIntegerField;
CurMissionSLFjh: TBooleanField;
CurMissionDJfjh: TBooleanField;
CurMissionJEfjh: TBooleanField;
CurMissionprintNo: TBooleanField;
fpkset: TADODataSet;
fpksetid: TAutoIncField;
fpksettaxNo: TWideStringField;
fpksetinputno: TWideStringField;
fpksetFPcode: TWideStringField;
fpksetbeginNo: TWideStringField;
fpksetFPfs: TSmallintField;
fpksetendNo: TWideStringField;
fpksetCurNo: TWideStringField;
fpksetykfs: TSmallintField;
fpksetzffs: TSmallintField;
fpksetjffs: TSmallintField;
fpksetsyfs: TIntegerField;
fpksetactive: TBooleanField;
fpksetshare: TBooleanField;
fpksource: TDataSource;
kpkSet: TADODataSet;
kpkSource: TDataSource;
kpmxkset: TADODataSet;
kpmxksource: TDataSource;
kpkSetfp_id: TAutoIncField;
kpkSetCancel: TBooleanField;
kpkSettaxNo: TWideStringField;
kpkSetFPcode: TWideStringField;
kpkSetFPno: TWideStringField;
kpkSetkhmc: TWideStringField;
kpkSethjje: TBCDField;
kpkSetbankMNo: TWideStringField;
kpkSetaddress: TWideStringField;
kpkSetphotono: TWideStringField;
kpkSetskRen: TWideStringField;
kpkSetkpRen: TWideStringField;
kpkSetkpDate: TDateTimeField;
kpkSetrate: TSmallintField;
kpkSetse: TBCDField;
kpkSetkind: TWideStringField;
kpkSetinputno: TWideStringField;
kpmxksetmx_id: TAutoIncField;
kpmxksetfp_id: TIntegerField;
kpmxksetXMMC: TWideStringField;
kpmxksetXMGG: TWideStringField;
kpmxksetXMDW: TWideStringField;
kpmxksetXMSL: TFloatField;
kpmxksetXMDJ: TFloatField;
kpmxksetXMJE: TBCDField;
CurMissionb01: TBooleanField;
CurMissionb02: TBooleanField;
CurMissionb03: TBooleanField;
CurMissionb04: TBooleanField;
CurMissionb05: TBooleanField;
CurMissionb06: TBooleanField;
CurMissionb07: TBooleanField;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
ADODataSet1XMMC: TWideStringField;
ADODataSet1XMGG: TWideStringField;
ADODataSet1XMDW: TWideStringField;
ADODataSet1xmsl: TFloatField;
ADODataSet1xmje: TBCDField;
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
procedure MissionSetBeforeDelete(DataSet: TDataSet);
procedure KHFLSetBeforeDelete(DataSet: TDataSet);
procedure CPFLSetBeforeDelete(DataSet: TDataSet);
private
{ Private declarations }
public
procedure loadkpxx; //读取开票单位信息
procedure loadkpxxfj; //读取开票单位信息附加
procedure reloadkpxx; //读取开票单位信息
procedure reStorekpxx; //恢复开票单位信息
procedure setcurMiss;
function getCurfpDM(var AFpCode:string;Var AFpNo:string):Boolean; //获取当前发票号
function setfpfilter:boolean; //发票过滤
procedure Cancelfilter; //取消发票过滤
procedure Filterfp(dataset:Tdataset;var Accept:boolean);
end;
var
DataM: TDataM;
implementation
uses URen, Ufpfilter;
{$R *.dfm}
procedure TDatam.Filterfp(dataset:TDataset;var Accept:boolean);
var Astr,ANy:string;
Abz:boolean;
begin
if frm_fpfilter.CheckBox1.Checked then
begin
Astr:=inttostr(frm_fpfilter.SpinEdit1.Value*100+frm_fpfilter.ComboBox1.ItemIndex+1);
ANy:=formatdatetime('yyyymm',dataset.FieldByName('KpDate').AsDateTime);
if ANy=Astr then
Accept:=true
else
Accept:=false;
end else
begin
Astr:=Dataset.fieldbyname('fpno').AsString;
if (Astr>=frm_fpfilter.Edit1.Text) and (Astr<=frm_fpfilter.Edit2.Text) then
Accept:=true
else
Accept:=false;
end;
if frm_fpfilter.RadioGroup1.ItemIndex<>0 then
begin
Abz:=dataset.FieldByName('Cancel').AsBoolean;
if frm_fpfilter.RadioGroup1.ItemIndex=1 then
Accept:=Accept and Abz
else
Accept:=Accept and (not Abz);
end;
end;
function Tdatam.setfpfilter:boolean;
var Astr:string;
begin
Astr:='';
frm_fpfilter.Label1.Caption:='开票单位税号:'+kpxx.Cur_TaxNo;
frm_fpfilter.Label2.Caption:='开票单位名称:'+kpxx.Cur_Dwmc;
if frm_fpfilter.ShowModal=mrOk then
begin
try
kpkset.Filtered:=false;
kpkset.OnFilterRecord:=filterfp;
finally
kpkset.Filtered:=true;
kpkset.First;
end;
Result:=True;
end else
begin
// Cancelfilter;
Result:=false;
end;
end;
procedure TDatam.Cancelfilter;
begin
kpkset.Filtered:=false;
kpkset.OnFilterRecord:=nil;
end;
function TDatam.getCurfpDM(var AFpCode:string;Var AFpNo:string):Boolean;
var Abz:boolean;
begin
Abz:=true;
setcurMiss;
if not fpkset.Active then fpkset.Open;
if fpkset.Locate('Active',true,[]) then
begin
if fpksetsyfs.AsInteger<=0 then
begin
fpkset.Edit;
fpksetactive.AsBoolean:=false;
fpkset.post;
Abz:=false;
end;
end else
Abz:=false;
if not Abz then
begin
fpkset.First;
while not fpkset.Eof do
begin
if fpksetsyfs.AsInteger>0 then
begin
fpkset.Edit;
fpksetactive.AsBoolean:=true;
fpkset.Post;
Abz:=True;
break;
end;
fpkset.Next;
end;
end;
if Abz then
begin
AFpCode:=fpksetfpcode.AsString;
AfpNo:=fpksetCurNo.AsString;
end;
Result:=Abz;
end;
procedure Tdatam.setcurMiss;
begin
if not MissionSet.Active then missionset.Open;
if missionset.State in [dsEdit,dsInsert] then missionset.Post;
if missionsettaxno.AsString<>kpxx.Cur_TaxNo then
missionset.Locate('taxNo',kpxx.Cur_TaxNo,[]);
if CurMissiontaxno.AsString<>kpxx.Cur_TaxNo then
begin
curmission.Edit;
curmissiontaxno.AsString:=kpxx.Cur_TaxNo;
curmission.Post;
end;
end;
procedure TDataM.loadkpxx;
begin
if not MissionSet.Active then missionset.Open;
if missionset.State in [dsEdit,dsInsert] then missionset.Post;
kpxx.Cur_TaxNo:=missionset.fieldbyname('Taxno').AsString;
kpxx.Cur_Dwmc:=MissionSetDWMC.AsString;
kpxx.Cur_Bank:=MissionSetbank.AsString;
kpxx.Cur_BankNo:=MissionSetbankno.AsString;
kpxx.Cur_address:=MissionSetaddress.AsString;
kpxx.Cur_TelNo:=MissionSetphotoNo.AsString;
kpxx.Cur_skRen:=MissionSetsk_Ren.AsString;
kpxx.Cur_kpRen:=MissionSetkp_Ren.AsString;
end;
procedure TDatam.loadkpxxfj;
begin
if not Curmission.Active then curmission.Open;
if curmission.State in [dsEdit,dsInsert] then Curmission.Post;
curmission.First;
kpxx.printer_name:=CurMissionprintName.AsString;
kpxx.print_x:=CurMissionprint_X.AsInteger;
kpxx.print_y:=CurMissionprint_Y.AsInteger;
kpxx.sl_dec:=CurMissionSLDec.AsInteger;
kpxx.sl_fjh:=CurMissionSLFjh.AsBoolean;
kpxx.dj_dec:=CurMissionDJDec.AsInteger;
kpxx.dj_fjh:=CurMissionDJfjh.AsBoolean;
kpxx.je_fjh:=CurMissionJEfjh.AsBoolean;
kpxx.printNO:=CurMissionprintNo.AsBoolean;
kpxx.b01:=curmissionb01.AsBoolean;
kpxx.b02:=curmissionb02.AsBoolean;
kpxx.b03:=curmissionb03.AsBoolean;
kpxx.b04:=curmissionb04.AsBoolean;
kpxx.b05:=curmissionb05.AsBoolean;
kpxx.b06:=curmissionb06.AsBoolean;
kpxx.b07:=curmissionb07.AsBoolean;
end;
procedure TDataM.reloadkpxx;
begin
if not MissionSet.Active then missionset.Open;
if missionset.State in [dsEdit,dsInsert] then missionset.Post;
if missionset.Locate('Taxno',kpxx.Cur_TaxNo,[]) then
begin
kpxx.Cur_TaxNo:=missionset.fieldbyname('Taxno').AsString;
kpxx.Cur_Dwmc:=MissionSetDWMC.AsString;
kpxx.Cur_Bank:=MissionSetbank.AsString;
kpxx.Cur_BankNo:=MissionSetbankno.AsString;
kpxx.Cur_address:=MissionSetaddress.AsString;
kpxx.Cur_TelNo:=MissionSetphotoNo.AsString;
kpxx.Cur_skRen:=MissionSetsk_Ren.AsString;
kpxx.Cur_kpRen:=MissionSetkp_Ren.AsString;
end;
end;
procedure TDataM.reStorekpxx;
begin
if not MissionSet.Active then
begin
missionset.Open;
if not missionset.Locate('Taxno',kpxx.Cur_TaxNo,[]) then
begin
missionset.Append;
missionset.FieldByName('TaxNo').AsString:=kpxx.Cur_TaxNo;
missionset.Post;
end;
end;
if missionset.State in [dsEdit,dsInsert] then missionset.Post;
missionset.Edit;
MissionSetDWMC.AsString:=kpxx.Cur_Dwmc;
MissionSetbank.AsString:=kpxx.Cur_Bank;
MissionSetbankno.AsString:=kpxx.Cur_BankNo;
MissionSetaddress.AsString:=kpxx.Cur_address;
MissionSetphotoNo.AsString:=kpxx.Cur_TelNo;
MissionSetsk_Ren.AsString:=kpxx.Cur_skRen;
MissionSetkp_Ren.AsString:=kpxx.Cur_kpRen;
missionset.Post;
end;
procedure TDataM.DataModuleCreate(Sender: TObject);
var ATaxNo:string;
begin
ADOConnection1.Connected:=true;
MissionSet.Open;
CurMission.Open;
//定位开票单位
ATaxNo:=CurMission.fieldbyname('TaxNo').AsString;
Missionset.Locate('TaxNo',ATaxNo,[loCaseInsensitive]);
RenSet.Open;
KHFLSet.Open;
KHMXSet.Open;
jldwset.Open;
CPFLset.Open;
CPMxSet.Open;
fpkset.Open;
kpkset.Open;
kpmxkset.Open;
end;
procedure TDataM.DataModuleDestroy(Sender: TObject);
begin
kpmxkset.Close;
kpkset.Close;
fpkset.Close;
CPFLSet.Close;
CPMxSet.Close;
jldwset.Close;
KHMXSet.Close;
KHFLSet.Close;
RenSet.Close;
//保存开票信息
curmission.First;
curMission.Edit;
curMissionTaxNO.AsString:=kpxx.Cur_TaxNo;
CurMissionprintName.AsString:=kpxx.printer_name;
CurMissionprint_X.AsInteger:=kpxx.print_x;
CurMissionprint_Y.AsInteger:=kpxx.print_y;
CurMissionSLDec.AsInteger:=kpxx.sl_dec;
CurMissionDJDec.AsInteger:=kpxx.dj_dec;
CurMissionSLFjh.AsBoolean:=kpxx.sl_fjh;
CurMissionJEfjh.AsBoolean:=kpxx.je_fjh;
CurMissionprintNo.AsBoolean:=kpxx.printNO;
curMissionb01.AsBoolean:=kpxx.b01;
curMissionb02.AsBoolean:=kpxx.b02;
curMissionb03.AsBoolean:=kpxx.b03;
curMissionb04.AsBoolean:=kpxx.b04;
curMissionb05.AsBoolean:=kpxx.b05;
curMissionb06.AsBoolean:=kpxx.b06;
curMissionb07.AsBoolean:=kpxx.b07;
CurMission.Post;
CurMission.Close;
MissionSet.Close;
ADOConnection1.Connected:=false;
end;
procedure TDataM.MissionSetBeforeDelete(DataSet: TDataSet);
begin
screen.Cursor:=crHourGlass ;
//先删除人员
renset.DisableControls;
Renset.First;
while not Renset.Eof do renset.Delete;
renset.EnableControls;
//删除客户类别
khflset.DisableControls;
KHFLSet.First;
while not KHFLset.Eof do khflset.Delete;
khflset.EnableControls;
//删除货物类别
cpflset.DisableControls;
CPFLset.First;
while not CPFLset.Eof do CPFLset.Delete;
cpflset.EnableControls;
//.....
screen.Cursor:=crDefault
end;
procedure TDataM.KHFLSetBeforeDelete(DataSet: TDataSet);
begin
screen.Cursor:=crHourGlass;
khmxset.DisableControls;
KHMXset.First;
while not KHMXset.Eof do khmxset.Delete;
khmxset.EnableControls;
screen.Cursor:=crDefault;
end;
procedure TDataM.CPFLSetBeforeDelete(DataSet: TDataSet);
begin
screen.Cursor:=crHourGlass;
cpmxset.DisableControls;
cpMXset.First;
while not cpMXset.Eof do cpmxset.Delete;
cpmxset.EnableControls;
screen.Cursor:=crDefault;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -