亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? u_compare.~pas

?? 本人為朋友在藍光地產做財務做的應用軟件
?? ~PAS
字號:
unit u_Compare;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtnrs, ComCtrls, ExtCtrls, DB, ADODB, DBTables,
  Grids, DBGrids, COMobj;

type
  TSaveThread = class;
  TfCompare = class(TForm)
    Panel1: TPanel;
    Panel7: TPanel;
    Panel3: TPanel;
    OpenDialog1: TOpenDialog;
    Gb_Source: TGroupBox;
    Panel4: TPanel;
    Button1: TButton;
    ADODataSetSource: TADODataSet;
    Panel2: TPanel;
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    btn_Compare: TButton;
    Panel5: TPanel;
    ListBox1: TListBox;
    ListBox2: TListBox;
    ListBox3: TListBox;
    ListBox4: TListBox;
    Button2: TButton;
    LB1: TLabel;
    LB2: TLabel;
    LB3: TLabel;
    LB4: TLabel;
    SaveDialog1: TSaveDialog;
    lb1a: TLabel;
    lb2a: TLabel;
    lb3a: TLabel;
    lb4a: TLabel;
    StringGrid1: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure btn_CompareClick(Sender: TObject);
    procedure ADODataSetSourceAfterOpen(DataSet: TDataSet);

    procedure FormResize(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    iSourceIndex, iDesIndex, iConditionIndex: Integer;
    fBankSources, fBankDes, fCompanySources, fCompanyDes: tstringlist;
    sTempData: string;

    procedure RefreshMain;
    procedure CompareList(var flist:tstringlist);
  public
    { Public declarations }
    procedure SavetoExcel;
  end;
  TSaveThread = class(TThread)
  private
    fOwner: TfCompare;
    constructor Create(Aowner: TfCompare);
  public
    procedure Execute; override;
  end;
var
  fCompare: TfCompare;

implementation



{$R *.dfm}

procedure TfCompare.FormCreate(Sender: TObject);
begin
  OpenDialog1.Filter := 'xls file|*.xls';
  SaveDialog1.Filter := 'xls file|*.xls';


  fBankSources := TStringList.Create;
  fBankDes := TStringList.Create;
  fCompanySources := TStringList.Create;
  fCompanyDes := TStringList.Create;

  sTempData := ExtractFilePath(Application.ExeName) + '\Main.db';
  if FileExists(sTempData) then
    DeleteFile(PCHAR(sTempData));

  lb1a.Caption :='';
  lb2a.Caption :='';
  lb3a.Caption :='';
  lb4a.Caption :='';

  StringGrid1.Cells[0,0] :='銀行對帳單借方';
  StringGrid1.Cells[1,0] :='銀行對帳單貸方';
  StringGrid1.Cells[2,0] :='銀行日記帳借方';
  StringGrid1.Cells[3,0] :='銀行日記帳貸方';
end;

procedure TfCompare.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  fBankSources.Free;
  fBankDes.Free;
  fCompanySources.Free;
  fCompanyDes.Free;
  Action := caFree;
  fCompare := nil;
end;

procedure TfCompare.Button1Click(Sender: TObject);
var
  sFileName, sSheetName, sTemp: string;
  i,j: INteger;
begin
  if not OpenDialog1.Execute then exit;
  sFileName := OpenDialog1.FileName;

  InputQuery('載入數據', '請輸入工作表名稱:', sSheetName);
  if sSheetName = '' then
  begin
    Application.MessageBox('工作表名稱不能未空!', '提示', mb_ok + MB_ICONINFORMATION);
    exit;
  end;
   for i:=0 to 3 do
   for j:=1 to StringGrid1.RowCount-1 do
    StringGrid1.Cells[i,j] :='';

  try
    with ADODataSetSource do //AdoDataSet 連接Excel文件
    begin
      Close;
      ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sFileName + ';'
        + 'Extended Properties=Excel 8.0;Persist Security Info=False';
      CommandType := cmdTableDirect;

      CommandText := sSheetName + '$'; //'Sheet1$';
      Open;
    end;
  except
    Application.MessageBox('載入數據失敗!', '提示', mb_ok + MB_ICONINFORMATION);
    exit;
  end;
 ProgressBar1.Position :=0;
end;


procedure TfCompare.btn_CompareClick(Sender: TObject);
var
  iCount, i, iPro,iIndex: Integer;
  sTemp: string;
  ListItem: TListItem;
  iTemp1,itemp2,itemp3,itemp4:extended;
  fList1,flist2,flist3,flist4:tstringlist;
  fList5,flist6,flist7,flist8:tstringlist;
begin
  if not ADODataSetSource.Active then
  begin
   Application.MessageBox('請導入對帳數據!','提示',mb_ok+mb_iconinformation);
   exit;
  end; 
  
  fList1 :=tstringlist.Create;
  fList2 :=tstringlist.Create;
  fList3 :=tstringlist.Create;
  fList4 :=tstringlist.Create;
  try
  lb1a.caption :='0';
  lb2a.caption :='0';
  lb3a.caption :='0';
  lb4a.caption :='0';
  iTemp1 :=0;
  iTemp2 :=0;
  iTemp3 :=0;
  iTemp4 :=0;
  flist1.Clear;
  flist2.Clear;
  flist3.Clear;
  flist4.Clear;      
  ProgressBar1.Position :=0;

  if ADODataSetSource.RecordCount>10 then
   StringGrid1.RowCount :=ADODataSetSource.RecordCount+1
  else
    StringGrid1.RowCount :=11;



  with ADODataSetSource do
  begin
    first ;                      
    while not eof do
    begin
      if  FieldByName(Fields.Fields[0].FieldName).AsFloat<>0 then
         flist1.add(FieldByName(Fields.Fields[0].FieldName).Asstring);
      if  FieldByName(Fields.Fields[1].FieldName).AsFloat<>0 then
         flist2.add(FieldByName(Fields.Fields[1].FieldName).Asstring);
      if  FieldByName(Fields.Fields[2].FieldName).AsFloat<>0 then
         flist3.add(FieldByName(Fields.Fields[2].FieldName).Asstring);
      if  FieldByName(Fields.Fields[3].FieldName).AsFloat<>0 then
         flist4.add(FieldByName(Fields.Fields[3].FieldName).Asstring);  
      next;
    end;
  end;
  ProgressBar1.Position := 10;
  ////消除同列中正負數抵消
  CompareList(flist1);
  CompareList(flist2);
  CompareList(flist3);
  CompareList(flist4);

  ProgressBar1.Position := 30;

  for i:=flist1.Count-1  downto 0 do    /////第一列中的每一條到第四列中去查找,如果找到則刪除第四列和第一列的值
  begin
    iIndex:= flist4.IndexOf(flist1.Strings[i]);
    if iIndex>-1 then
    begin
      flist4.Delete(iIndex);
      flist1.Delete(i);
    end;
  end;
  ProgressBar1.Position := 50;

  for i:=flist2.Count-1  downto 0 do    /////第一列中的每一條到第四列中去查找,如果找到則刪除第四列和第一列的值
  begin
    iIndex:= flist3.IndexOf(flist2.Strings[i]);
    if iIndex>-1 then
    begin
      flist3.Delete(iIndex);
      flist2.Delete(i);
    end;
  end;
  ProgressBar1.Position := 70;


  listbox1.Items.Clear;
  listbox2.Items.Clear;
  listbox3.Items.Clear;
  listbox4.Items.Clear;

  ProgressBar1.Position := 80;


  listbox1.Items.Assign(flist1);
  listbox2.Items.Assign(flist2);
  listbox3.Items.Assign(flist3);
  listbox4.Items.Assign(flist4);

  itemp1 :=0;
  for I:=0 to flist1.Count-1 do
    iTemp1 :=itemp1+strtofloat(flist1.Strings[i]);

  itemp2 :=0;
  for I:=0 to flist2.Count-1 do
    iTemp2 :=itemp2+strtofloat(flist2.Strings[i]);

  itemp3 :=0;
  for I:=0 to flist3.Count-1 do
    iTemp3 :=itemp3+strtofloat(flist3.Strings[i]);

  itemp4 :=0;
  for I:=0 to flist4.Count-1 do
    iTemp4 :=itemp4+strtofloat(flist4.Strings[i]);

  ProgressBar1.Position := 90;  
  lb1a.Caption :=FloatToStr(iTemp1) ;
  lb2a.Caption :=FloatToStr(iTemp2) ;
  lb3a.Caption :=FloatToStr(iTemp3) ;
  lb4a.Caption :=FloatToStr(iTemp4) ;
  finally
   flist1.Free;
   flist2.Free;
   flist3.Free;
   flist4.Free;
  end;
  ProgressBar1.Position := ProgressBar1.Max;
end;

procedure TfCompare.ADODataSetSourceAfterOpen(DataSet: TDataSet);
var
  sTemp: string;
  iCount :integer;
begin    
  DataSet.First;
  StringGrid1.RowCount := ADODataSetSource.RecordCount+1;
  with DataSet do
  begin
    first;
    iCount :=0;
    while not DataSet.Eof do
    begin
      inc(iCount);
      StringGrid1.Cells[0,icount] := floattostr(DataSet.fieldbyname(DataSet.Fields.Fields[0].FieldName).AsFloat);
      StringGrid1.Cells[1,icount] := floattostr(DataSet.fieldbyname(DataSet.Fields.Fields[1].FieldName).AsFloat);
      StringGrid1.Cells[2,icount] := floattostr(DataSet.fieldbyname(DataSet.Fields.Fields[2].FieldName).AsFloat);
      StringGrid1.Cells[3,icount] := floattostr(DataSet.fieldbyname(DataSet.Fields.Fields[3].FieldName).AsFloat);
      next;
    end;
  end;        
end;

procedure TfCompare.FormResize(Sender: TObject);
begin
  ListBox1.Width := Width div 4;
  ListBox2.Width := ListBox1.Width;
  ListBox3.Width := ListBox1.Width;
  ListBox4.Width := ListBox1.Width;
  LB1.Left := ListBox1.Left;
  LB2.Left := ListBox2.Left;
  LB3.Left := ListBox3.Left;
  LB4.Left := ListBox4.Left;

  lb1a.Left := ListBox1.Left+5;
  lb2a.Left := ListBox2.Left+5;
  lb3a.Left := ListBox3.Left+5;
  lb4a.Left := ListBox4.Left+5;
end;

procedure TfCompare.Button2Click(Sender: TObject);
var
  fThread: TSaveThread;
begin
  fThread := TSaveThread.Create(Self);
end;

procedure TfCompare.SavetoExcel;
var ExcelApp, WorkBook: Variant;
  i: Integer;
begin
  if (ListBox1.Count <= 0) and (ListBox2.Count <= 0) and (ListBox3.Count <= 0) and (ListBox4.Count <= 0) then exit;
  if not SaveDialog1.Execute then exit;

  try
    ExcelApp := CreateOleObject('Excel.Application');


    ExcelApp.Visible := True;
    ExcelApp.Caption := SaveDialog1.FileName;
    WorkBook := ExcelApp.WorkBooks.Add;
                                                          
   // ExcelApp.WorkSheets[1].Activate;
  //  ExcelApp.WorkSheets[1].caption := '未達帳數據';
    ExcelApp.WorkSheets[1].name :='未達帳數據';

    ExcelApp.Cells[1, 1] := lb1.caption;
    for I := 0 to ListBox1.Count - 1 do
    begin
      ExcelApp.Cells[i + 2, 1].Value := strtofloat(ListBox1.Items.Strings[i]);
    end;

    ExcelApp.Cells[1, 2] := lb2.caption;
    for I := 0 to ListBox2.Count - 1 do
    begin
      ExcelApp.Cells[i + 2, 2].Value := strtofloat(ListBox2.Items.Strings[i]);
    end;

    ExcelApp.Cells[1, 3] := lb3.caption;
    for I := 0 to ListBox3.Count - 1 do
    begin
      ExcelApp.Cells[i + 2, 3].Value := strtofloat(ListBox3.Items.Strings[i]);
    end;

    ExcelApp.Cells[1, 4] := lb3.caption;
    for I := 0 to ListBox4.Count - 1 do
    begin
      ExcelApp.Cells[i + 2, 4].Value := strtofloat(ListBox4.Items.Strings[i]);
    end;
    ExcelApp.Visible := True;

    ExcelApp.WorkSheets[1].Cells.Columns.AutoFit  ;
  ////保存銀行余額調節表  
    ExcelApp.WorkSheets[2].select;
    ExcelApp.WorkSheets[2].name := '銀行余額調節表';   

    ExcelApp.Cells[3, 3] := '銀行余額調節表';
    ExcelApp.Cells[3, 3].Font.Name := '宋體';
    ExcelApp.Cells[3, 3].Font.Color  := clblack;
    ExcelApp.Cells[3, 3].Font.Bold   := True; 

    ExcelApp.Cells[5, 1] := ' 單據號';
    ExcelApp.Cells[5, 5] := '年    月' ;
    ExcelApp.Cells[8, 1] := ' 對帳單余額:';
    ExcelApp.Cells[8, 5] := ' 銀行帳余額:';
    ExcelApp.Cells[10, 1] := ' + 企業已收銀行未收:';
    ExcelApp.Cells[10, 2] := lb4a.Caption;
    ExcelApp.Cells[10, 5] := ' + 銀行已收企業未收:';
    ExcelApp.Cells[10, 6] := lb1a.Caption;
    ExcelApp.Cells[13, 1] := ' - 企業已付銀行未付:';
    ExcelApp.Cells[13, 2] := lb3a.Caption;
    ExcelApp.Cells[13, 5] := ' - 銀行已付企業未付:';
    ExcelApp.Cells[13, 6] := lb2a.Caption;    
    ExcelApp.Cells[15, 1] := ' 調節后余額:';
    ExcelApp.Cells[15, 5] := ' 調節后余額:';
    ExcelApp.Cells[15, 2].FormulaR1C1 :='=R[-7]C+R[-5]C-R[-2]C';
    ExcelApp.Cells[15, 6].FormulaR1C1 :='=R[-7]C+R[-5]C-R[-2]C';

   { ExcelApp.ActiveSheet.Range[ 'A3:D15' ].Borders.LineStyle:=0;
    ExcelApp.ActiveSheet.Range[ 'A3:D15' ].Borders.Weight :=1;
    ExcelApp.ActiveSheet.Range[ 'A3:D15' ].Borders.Weight :=2;
    ExcelApp.ActiveSheet.Range[ 'A3:D15' ].Borders.Weight :=2;
    ExcelApp.ActiveSheet.Range[ 'A3:D15' ].Borders.Weight :=2;
    ExcelApp.ActiveSheet.Range[ 'A3:D15' ].Borders.Weight :=2;  }

   // ExcelApp.ActiveSheet.PrintPreview   ;


    ExcelApp.WorkSheets[2].Cells.Columns.AutoFit  ;
    ExcelApp.ActiveWorkbook.SaveAs(SaveDialog1.FileName);   
  except
    ExcelApp.quit;
  end;

end;

{ TSaveThread }

constructor TSaveThread.Create(Aowner: TfCompare);
begin
  fOwner := Aowner;
  FreeOnTerminate := true;
  inherited create(false);
end;

procedure TSaveThread.Execute;
begin
  Synchronize(fOwner.SavetoExcel);
  Terminate;
end;

procedure TfCompare.RefreshMain;
begin
 { with QryMain do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM "' + sTempData + '"');
    try
      Open;
    except
      exit;
    end;
  end;     }
end;

procedure TfCompare.CompareList(var flist: tstringlist);
var
 i,iIndex:Integer;
 fTempList,fResultList,fNeedDeleteList:tstringlist;
begin
  fTempList :=TStringList.Create;
  fNeedDeleteList :=TStringList.Create;
  fResultList :=TStringList.Create;
  try
     fResultList.Assign(flist);
     fTempList.Assign(flist);
     for i:=fResultList.Count-1 downto 0 do
     begin
        iIndex :=  fTempList.IndexOf('-'+fResultList.Strings[i]) ;
        if iIndex>-1 then
        begin
           fNeedDeleteList.Add(inttostr(iIndex)) ;
           fNeedDeleteList.Add(inttostr(i)) ;
           fResultList.Delete(i);
           fTempList.Delete(iIndex);
        end;
     end;
     for I:=flist.Count-1 downto 0 do
     begin
       iIndex :=fNeedDeleteList.IndexOf(inttostr(i));
       if iIndex>-1 then
         flist.Delete(i);
     end;
  finally
    fTempList.Free;
    fNeedDeleteList.Free;
    fResultList.Free;
  end;             
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久av毛片精品| 欧美一区二区三区性视频| 视频一区二区三区中文字幕| 中文字幕一区二区三区在线不卡 | 日韩毛片一二三区| 国产精品入口麻豆九色| 中文在线一区二区| 国产精品传媒视频| 亚洲黄色在线视频| 亚洲伊人色欲综合网| 亚洲综合色婷婷| 天堂成人国产精品一区| 秋霞国产午夜精品免费视频| 国产精品一区免费视频| 狠狠狠色丁香婷婷综合久久五月| 狠狠网亚洲精品| 国产a级毛片一区| 91视频精品在这里| 欧美日韩在线播放| 欧美一级片在线| 久久精品网站免费观看| 亚洲国产精品ⅴa在线观看| 亚洲欧美电影院| 午夜激情一区二区三区| 国产主播一区二区三区| 99精品偷自拍| 欧美久久久久久久久中文字幕| 制服.丝袜.亚洲.中文.综合| 26uuu国产一区二区三区| 中文字幕一区二区三区不卡| 亚洲一区二区精品久久av| 秋霞成人午夜伦在线观看| 国产成人av一区| 欧美性感一区二区三区| 精品乱人伦小说| 亚洲天堂成人在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品亚洲视频| 欧美精选一区二区| 亚洲丰满少妇videoshd| 精品一二三四在线| 91黄视频在线观看| 国产日本亚洲高清| 亚洲已满18点击进入久久| 国产精品资源网| 欧美日韩免费视频| 亚洲欧洲在线观看av| 裸体一区二区三区| 91久久精品一区二区三区| 2020国产精品久久精品美国| 一卡二卡三卡日韩欧美| 国产91精品一区二区麻豆网站 | 欧美一区二区三区视频在线观看 | 亚洲老妇xxxxxx| 国产综合久久久久久久久久久久| 日本乱人伦一区| 欧美国产丝袜视频| 久久精品国产亚洲高清剧情介绍 | 日韩av一级电影| 91在线国内视频| 久久综合久久综合九色| 天堂影院一区二区| 欧美丝袜丝交足nylons| 国产精品第13页| 国产成人综合精品三级| 精品国产一区久久| 日韩国产欧美三级| 欧美日韩黄色影视| 亚洲影院在线观看| 在线影视一区二区三区| 亚洲男人天堂一区| 色综合婷婷久久| 亚洲日本韩国一区| av在线不卡电影| 国产精品久久99| 成人免费视频视频在线观看免费| 精品福利在线导航| 久草这里只有精品视频| 精品日韩99亚洲| 久久国产精品第一页| 日韩一级大片在线观看| 美美哒免费高清在线观看视频一区二区| 欧美中文字幕一区二区三区亚洲 | 欧美剧情片在线观看| 亚洲成人在线观看视频| 欧美高清性hdvideosex| 五月婷婷综合网| 日韩视频在线你懂得| 毛片不卡一区二区| 久久久久久久久久久久久夜| 国产精品亚洲成人| 亚洲欧洲精品一区二区精品久久久| 成人h动漫精品一区二| 亚洲欧美电影一区二区| 欧美人与禽zozo性伦| 日本在线播放一区二区三区| 欧美大片国产精品| 大陆成人av片| 一区二区在线观看av| 91精品国产综合久久国产大片 | 久久色中文字幕| 成人激情视频网站| 亚洲国产一区在线观看| 日韩精品在线一区二区| 国产99久久久国产精品免费看| 国产精品国产自产拍高清av| 欧美性videosxxxxx| 久久国产福利国产秒拍| 日韩一区中文字幕| 欧美日本不卡视频| 国产 日韩 欧美大片| 一区二区三区**美女毛片| 欧美一区二区三区免费视频| 国产一区二区三区四区在线观看| 亚洲天堂中文字幕| 欧美成人精品高清在线播放| 99r国产精品| 久久精品国产网站| 亚洲精品久久久蜜桃| 欧美va在线播放| 在线一区二区视频| 成人午夜伦理影院| 美女mm1313爽爽久久久蜜臀| 国产精品久久久久久久久免费丝袜| 欧美裸体bbwbbwbbw| 丁香另类激情小说| 麻豆国产欧美日韩综合精品二区| 亚洲三级电影网站| 久久精品免费在线观看| 欧美日韩亚洲另类| 99久久久免费精品国产一区二区| 免播放器亚洲一区| 亚洲小说欧美激情另类| 国产精品乱码一区二三区小蝌蚪| 69堂亚洲精品首页| 欧美在线不卡一区| 99久久精品国产导航| 国产福利一区二区| 另类的小说在线视频另类成人小视频在线| 亚洲色欲色欲www| 国产精品婷婷午夜在线观看| 欧美mv日韩mv| 91麻豆精品国产| 精品视频1区2区| 色香蕉久久蜜桃| 99视频在线精品| 成人av免费在线观看| 国产一区二区按摩在线观看| 青娱乐精品视频在线| 日韩av不卡一区二区| 亚洲aaa精品| 五月天激情综合| 亚洲不卡一区二区三区| 亚洲无人区一区| 五月天欧美精品| 日韩精品亚洲一区二区三区免费| 亚洲chinese男男1069| 亚洲福利视频一区| 三级一区在线视频先锋| 日韩av一级片| 久久99精品久久久久久| 激情综合亚洲精品| 国产精品 欧美精品| 懂色中文一区二区在线播放| 懂色一区二区三区免费观看| 不卡一区在线观看| 91影视在线播放| 在线观看免费成人| 欧美精品 日韩| 日韩欧美国产1| 国产日本一区二区| 亚洲欧美一区二区三区极速播放 | 日韩欧美一区二区免费| 精品日韩欧美在线| 国产精品国产a级| 亚洲狼人国产精品| 日本不卡免费在线视频| 国产酒店精品激情| 色又黄又爽网站www久久| 91电影在线观看| 欧美一区二区三区日韩视频| 精品日韩欧美在线| 中文字幕亚洲一区二区va在线| 一区二区三区日韩欧美精品| 亚洲aⅴ怡春院| 国产福利电影一区二区三区| 91一区二区三区在线观看| 欧美色精品在线视频| 欧美成人aa大片| 1000精品久久久久久久久| 日日摸夜夜添夜夜添国产精品 | 久久精品人人做人人综合| 专区另类欧美日韩| 青青草97国产精品免费观看无弹窗版 | 精品久久一区二区三区| 亚洲欧洲日韩在线| 国内成人精品2018免费看| 一本久道中文字幕精品亚洲嫩| 日韩亚洲欧美成人一区| 最新欧美精品一区二区三区|