📄 unitmain.pas
字号:
unit UnitMain;
interface
uses
Windows, Messages, SysUtils, Forms, Classes, Controls, ComCtrls,
StdCtrls, Grids, DBGrids, ImgList,IniFiles;
type
TFormMain = class(TForm)
ListViewIM: TListView;
ImageListSF: TImageList;
ButtonImport: TButton;
ButtonCancel: TButton;
Label1: TLabel;
procedure ButtonImportClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
public
{ Public declarations }
end;
const
ZhuStartFieldCnt = 11; //发票明细主表中固定字段个数
CongStartFieldCnt = 1; //发票明细从表中固定字段个数
//这些字段不加到 sf_shoufeimx 中
implementation
uses UnitDataMD, MainOutUnit;
{$R *.dfm}
procedure TFormMain.ButtonImportClick(Sender: TObject);
var
i,j,k : Integer;
T1,T2 : Cardinal;
FapiaoMX : String;
IniFile : TIniFile;
IsQuzheng: String;
QuzhengWs: Integer;
Cnt : Integer;
begin
if ButtonImport.Caption='开始' then begin
//导入过程
IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'ShouFei.Sys');
if IniFile.ReadBool('设置','金额取整',False) then
IsQuzheng:='F'
else
IsQuzheng:='T';
QuzhengWs:=IniFile.ReadInteger('设置','取整到',1);
IniFile.Free;
DataMD.ADOQueryMain.First;
Cnt:=0;
for i:=0 to ListViewIM.Items.Count-1 do begin
FapiaoMX:='';
T1:=GetTickCount;
try
with ListViewIM.Items[i] do begin
for j:=0 to DataMD.ADOQueryMain.Fields.Count-1 do begin
if j>ZhuStartFieldCnt-1 then begin
FapiaoMX:=FapiaoMX
+DataMD.ADOQueryMain.Fields[j].FieldName
+'='+DataMD.ADOQueryMain.Fields[j].AsString+';';
end;
end;
DataMD.ADODataSetDetail.First;
for j:=0 to DataMD.ADODataSetDetail.RecordCount-1 do begin
for k:=0 to DataMD.ADODataSetDetail.FieldCount-1 do begin
if k>CongStartFieldCnt-1 then begin
FapiaoMX:=FapiaoMX
+DataMD.ADODataSetDetail.Fields[j].FieldName
+'='+DataMD.ADODataSetDetail.Fields[j].AsString+';';
end;
end;
DataMD.ADODataSetDetail.Next;
end;
DataMD.ADOSPImport.Parameters.ParamByName('@lsh').Value:=SubItems[1];
DataMD.ADOSPImport.Parameters.ParamByName('@FapiaoMx').Value:=FapiaoMX;
DataMD.ADOSPImport.Parameters.ParamByName('@quzheng').Value:=IsQuzheng;
DataMD.ADOSPImport.Parameters.ParamByName('@quzhengws').Value:=QuzhengWs;
DataMD.ADOSPImport.Parameters.ParamByName('@OpName').Value:=DCurOpName;
DataMD.ADOSPImport.ExecProc;
T2:=GetTickCount;
ImageIndex:=1;
SubItems[0]:=FloatToStr((T2-T1)/1000);
end;
Inc(Cnt);
except
ListViewIM.Items[i].ImageIndex:=2;
end;
DataMD.ADOQueryMain.Next;
end;
Label1.Caption:='共导入'+InttoStr(DataMD.ADOQueryMain.RecordCount)+'条数据';
ButtonImport.Caption:='完成';
end
else begin
PRefreshDesk(0);
Close;
end;
end;
procedure TFormMain.FormShow(Sender: TObject);
begin
DataMD.ADOQueryMain.Open;
DataMD.ADODataSetDetail.Open;
Label1.Caption:='共'+InttoStr(DataMD.ADOQueryMain.RecordCount)+'条待导入数据';
ListViewIM.Items.Clear;
ListViewIM.Items.BeginUpdate;
DataMD.ADOQueryMain.First;
while not DataMD.ADOQueryMain.Eof do begin
With ListViewIM.Items.Add do begin
Caption:=DataMD.ADOQueryMain.FieldByName('名称').AsString;
SubItems.Add('0.00');
SubItems.Add(DataMD.ADOQueryMain.FieldByName('流水号').AsString);
ImageIndex:=0;
end;
DataMD.ADOQueryMain.Next;
end;
ListViewIM.Items.EndUpdate;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -