⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitmain.~pas

📁 电力行业前台收费程序,需要有后台SQL数据库,和电费管理系统配合应用.
💻 ~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 + -