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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? publicfunction.~pa

?? Barcode And LabelPrint
?? ~PA
?? 第 1 頁 / 共 2 頁
字號:
unit PublicFunction;

interface
uses windows, messages, sysutils, dialogs, forms, Graphics, ExtCtrls, db, adodb, StdCtrls,
  registry, classes, controls, ComCtrls, ComObj, IniFiles, Math, Grids, PublicParameter;
//connect with database.
function connect_DB(ADO: TADOConnection; ConnStr: string): bool;
//Get ID from a string;
function GetIDFromChar(ASecStr: string; Achar: string): string;
function FormCenter(AForm: TForm): bool;
function GetPYIndexChar(hzchar: string): char;
function RemoveFrontZeroFromStr(sec: string): string;

function selectDB(Aform: TForm): string;
function GetCfgValue(const key: string; cfgFileName: string): string;
function SetCfgValue(const key: string; Value: string; cfgFileName: string): bool;
function GetValueTostr(ATable: string; AFile: string; AFlagField: string; Avalue: string): string;
function checkValue(ATable: string; AFile: string; Avalue: string): bool;
//返回下一個ID取最大值(整型)
function GetNextRecNoMax(ADOConnection: TADOConnection; TableName, Fieldstr, Condition, DesFieldstr: string; FieldLen: integer): longint;
function GetBlobToStream(Table: TDataSet; const FieldName: string; var ResultStream: TmemoryStream): Bool;
function GetBlobFileToStream(ADOTable1: TAdoQuery; Name: string): TStream;
function blobcontenttostring(const fileName: string; ADOTable1: TDataSet; FiledName: string): bool;
//去掉字符串中的某一字符除去空格
function checkFilename(tempchar: string; SourceStr: string): string; //去掉filemae中的s除去空格
procedure deleteRec(var Connection: TADOConnection; TableName, Condition: string);
function NumClear(Num: string): string; //去掉數(shù)字中的','等
function formatfloat(s: string): string;
procedure gridDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
function GetValueToCMB(ATable: string; AFile: string; Avalue: string): TStrings;
//讀寫ini文件
procedure WriteIniFile(Section, KeyName: AnsiString; KeyValue: AnsiString);
function ReadIniFile(Section, KeyName: AnsiString): AnsiString;
//導(dǎo)出到Excel
function ExportToExcel(adorecordset: TAdoQuery): Boolean;

implementation
uses StockDataModel;
//add combox as a list item
//導(dǎo)出到Excel

function ExportToExcel(adorecordset: TAdoQuery): Boolean;
var
  xlApp, xlBook, xlSheet, xlQuery: Variant;
begin
  xlApp := CreateOleObject('Excel.Application');
  xlBook := xlApp.Workbooks.Add;
  xlSheet := xlBook.Worksheets['sheet1'];
  xlApp.Visible := True;
  //把查詢結(jié)果導(dǎo)入EXCEL數(shù)據(jù)
  xlQuery := xlSheet.QueryTables.Add(adoRecordset.Recordset, xlSheet.Range['A1']); //關(guān)鍵是這一句
  xlQuery.FieldNames := True;
  xlQuery.RowNumbers := False;
  xlQuery.FillAdjacentFormulas := False;
  xlQuery.PreserveFormatting := True;
  xlQuery.RefreshOnFileOpen := False;
  xlQuery.BackgroundQuery := True;
  //xlQuery.RefreshStyle := xlInsertDeleteCells;
  xlQuery.SavePassword := True;
  xlQuery.SaveData := True;
  xlQuery.AdjustColumnWidth := True;
  xlQuery.RefreshPeriod := 0;
  xlQuery.PreserveColumnInfo := True;
  xlQuery.FieldNames := True;
  xlQuery.Refresh;
end;
//導(dǎo)出到Excel

procedure WriteIniFile(Section, KeyName: AnsiString; KeyValue: AnsiString);
begin
  if not Assigned(iniFile) then
    iniFile := TIniFile.Create(gCurrDirectory + 'Incomcfg.ini');
  try
    iniFile.WriteString(Section, KeyName, KeyValue);
  except
  end;
end;

function ReadIniFile(Section, KeyName: AnsiString): AnsiString;
begin
  if not Assigned(iniFile) then
    iniFile := TIniFile.Create(gCurrDirectory + 'Incomcfg.ini');
  try
    Result := iniFile.ReadString(Section, KeyName, '');
  except
  end;
end;

function GetValueToCMB(ATable: string; AFile: string; Avalue: string): TStrings;
var
  test: string;
begin
  Result := TStringList.Create;
//  With TAdoQuery.Create(nil) do
  with TAdoQuery.Create(nil) do
  begin
    try
      connection := StockDM.ADOConn;
      Sql.Clear;
      if UpperCase(Avalue) = 'ALL' then
      begin
      //test:='SELECT * FROM  '+ATable+'';
      //henry modify 2007-2-7 15:04
        test := 'SELECT  ' + AFile + '  FROM ' + ATable + '';
      end
      else
      begin
      //test:='SELECT * FROM  '+ATable+'  where '+AFile+'='#39 + Avalue +#39'';
      //henry modify 2007-2-7 15:04
        test := 'SELECT  ' + AFile + '  FROM  ' + ATable + '  where ' + AFile + '='#39 + Avalue + #39'';
      end;
      sql.Text := test;
      open;
      if not Isempty then
      begin
        while not eof do
        begin
          if pos(',', AFile) <= 0 then
            Result.Add(fieldbyname(AFile).AsString)
          else Result.Add(fieldbyname(copy(AFile, 1, pos(',', AFile) - 1)).AsString + ',' + fieldbyname(copy(AFile, pos(',', AFile) + 1, MaxInt)).AsString);
          next;
        end;
      end;
    finally
      close;
      Free;
    end;
  end;
end;
//add combox as a list item

procedure gridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var cy, cx: integer;
  txt: string;
  style: string;
  i, j, k: integer;
  R, D, L, U: integer;
  TxtLeft, TxtTop, TxtBottom, TxtRight: integer;
  MyREct: Trect;
  function GetCol(Acol, Arow: integer): string;
  var i: integer;
    Mypos: integer;
    MyString: string;
  begin
    MyString := TSTringGrid(Sender).cells[acol, 0];
    for i := 0 to Arow do
    begin
      myPos := pos('|', MyString) - 1;
      if Mypos < 0 then
      begin
        REsult := MyString;
        exit;
      end;
      if pos('|', MyString) <> 1 then
        Result := copy(MyString, 1, Mypos);
      Mystring := copy(Mystring, Mypos + 2, length(MyString));
    end;
  end;
  procedure Line3d(canvas: Tcanvas; x, y, x1, y1: integer; light, an: Tcolor);
  begin
    with canvas do
    begin
      pen.Color := light;
      MOVETO(x, y1);
      lineto(x, y);
      lineto(x1, y);
      pen.Color := an;
      lineto(x1, y1);
      lineto(x, y1);
    end;
  end;
begin
  with TSTringGrid(Sender) do
  begin
    canvas.Font.Name := Font.Name;
    canvas.font.Size := Font.Size;
    Canvas.Font.Color := font.Color;
    txt := Trim(cells[acol, arow]);
    if arow < fixedrows then
      txt := getcol(acol, arow);
    if ((state = [gdSelected, gdFocused]) and (arow >= fixedrows)) or
      ((goRowselect in Options) and (arow = row))
      then
      Canvas.Brush.Color := $0099FFFF
    else
      if state = [gdfixed] then
        canvas.Brush.Color := $00CCCCCC
      else
        if (arow mod 2) = 0 then
          Canvas.Brush.Color := $00F3D5B1 //clGradientActiveCaption  //$00F0F0ff
        else
          Canvas.Brush.Color := $00F7E0CC; //$00e0e0ff;
    cy := 3;

    if ((state = [gdfixed]) and (arow <= fixedrows - 1)) then
    begin
      if pos('$$', txt) > 0 then
        txt := copy(txt, 1, pos('$$', txt) - 1);
      cy := (rect.Right - rect.left - Canvas.TextWidth(txt)) div 2;
    end else
    begin
      Style := cells[acol, 0];
      if pos('$$', Style) > 0 then
      begin
        style := uppercase(copy(style, pos('$$', style), length(style)));
        if pos('N', style) > 0 then
        begin
          txt := formatfloat(numclear(txt));
          if txt = '0.0' then txt := '';
        end;
        if pos('R', style) > 0 then
          cy := rect.right - Canvas.TextWidth(txt) - rect.left - 3;
        if pos('M', Style) > 0 then
          cy := (rect.Right - rect.left - Canvas.TextWidth(txt)) div 2;
        if pos('L', style) > 0 then
          cy := 3;
      end;
    end;
    if {state=[gdfixed]}  arow < fixedrows then
    begin //多列頭處理....
      R := 0;
      TxtLeft := rect.Left;
      TxtTop := rect.Top;
      TxtBottom := rect.Bottom;
      TxtRight := Rect.Right;
      for r := Acol to colcount - 1 do
      begin
        if Getcol(Acol, Arow) <> Getcol(R, Arow) then Break;
        if r <> acol then //補
          TxtRight := TxtRight + ColWidths[r];
      end;
      k := 0;
      for D := Arow to fixedrows - 1 do
      begin
        for i := acol to R - 1 do
          if Getcol(Acol, Arow) <> getcol(i, D) then
          begin
            k := -1;
            Break;
          end;
        if k = -1 then Break;
        TxtBottom := TxtBottom + RowHeights[d];
      end;
        //If Acol>0 then
      begin
        k := 0;
        for l := Acol downto 0 do
        begin
          for i := Arow to D - 1 do
            if getcol(l, i) <> Getcol(acol, Arow) then
            begin
              k := -1;
              Break;
            end;
          if K = -1 then Break;
          TxtLeft := TxtLeft - ColWidths[l];
        end; // for l:=Acol-1 downto 0 do
      end; // if Acol >0 then
      if Arow > 0 then
      begin
        k := 0;
        for U := Arow - 1 downto 0 do
        begin
          for i := l + 1 to r - 1 do
          begin
            if Getcol(i, u) <> getcol(acol, arow) then
            begin
              k := -1;
              Break;
            end;
            if k = -1 then Break;
            TxtTop := TxtTop - RowHeights[u];
          end;
          if k = -1 then Break;
        end; // for u:=arow-1 downto 0 do
      end; // if Arow>0 then
      cy := ((txtbottom - txttop) div 2) + txttop - rowheights[arow];
      Cx := ((txtright - Txtleft + colwidths[acol] - canvas.TextWidth(txt)) div 2) + txtleft;
      Myrect := rect;
      if txtright <> rect.Right then rect.Right := rect.Right + 1;
      if (txtleft + colwidths[acol]) <> rect.Left then
        rect.Left := rect.Left - 1;
      if txttop <> rect.top then rect.Top := rect.Top - 1;
      if (txtbottom - Myrect.Bottom) <> rowheights[arow] then
        rect.Bottom := rect.Bottom + 1;
      with canvas do
      begin
        if txtright = Myrect.Right then
        begin
          pen.Color := ClGray;
          Moveto(rect.Right - 1, rect.Top - 1);
          lineto(rect.Right - 1, rect.Bottom + 1);
        end;
        if (txtleft + colwidths[acol]) = rect.Left then
        begin
          pen.Color := ClWhite;
          Moveto(rect.left, rect.Top);
          lineto(rect.left, rect.Bottom - 1);
        end;
        if txttop = Myrect.top then
        begin
          pen.Color := ClWhite;
          Moveto(rect.left, rect.Top);
          lineto(rect.Right - 1, rect.Top);
        end;
        if (txtbottom - Myrect.Bottom) = rowheights[arow] then
        begin
          pen.Color := ClGray;
          Moveto(Myrect.left, rect.bottom - 1);
          lineto(Myrect.Right + 2, rect.bottom - 1);
        end;
      end;
      rect.Top := rect.Top + 1;
      rect.Left := rect.Left + 1;
      rect.Bottom := rect.Bottom - 1;
      rect.Right := rect.Right - 1;
      Canvas.TextRect(Rect, cx, cy + 4, Txt);
    end
    else
    begin
      cx := (rect.Bottom - rect.Top - canvas.TextHeight(txt)) div 2;
      Canvas.TextRect(Rect, Rect.Left + cy, Rect.Top + cx, txt);
      rect.Top := rect.Top;
      rect.Left := rect.Left;
      rect.Bottom := rect.Bottom - 1;
      rect.Right := rect.Right - 1;
      if state = [gdfixed] then
        line3d(canvas, rect.Left, rect.Top, rect.Right, rect.Bottom, clwhite, clGray)
      else
        line3d(canvas, rect.Left, rect.Top, rect.Right, rect.Bottom, clwhite, clSilver);
    end;
  end; // with grid1;end;
end;

function formatfloat(s: string): string;
var
  I, MaxSym, MinSym, Group: Integer;
  IsSign: Boolean;
  Thousands: Boolean;
begin
  Thousands := True;
  Result := '';
  MaxSym := Length(S);
  IsSign := (MaxSym > 0) and (S[1] in ['-', '+']);
  if IsSign then MinSym := 2
  else MinSym := 1;
  I := Pos(DecimalSeparator, S);
  if I > 0 then MaxSym := I - 1;
  I := Pos('E', AnsiUpperCase(S));
  if I > 0 then MaxSym := Min(I - 1, MaxSym);
  Result := Copy(S, MaxSym + 1, MaxInt);
  Group := 0;
  for I := MaxSym downto MinSym do begin
    Result := S[I] + Result;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区在线| 国产日韩欧美精品综合| 国产乱码一区二区三区| 一区二区成人在线| 国产亚洲精品超碰| 欧美男人的天堂一二区| 波多野结衣精品在线| 亚洲国产你懂的| 国产精品沙发午睡系列990531| 在线免费观看日本欧美| 久久激情五月激情| 亚洲欧洲综合另类| 久久亚洲捆绑美女| 一本一本久久a久久精品综合麻豆| 麻豆精品视频在线| 五月天丁香久久| 亚洲欧美日韩在线播放| 久久精品无码一区二区三区| 在线电影国产精品| 欧美一a一片一级一片| 成人动漫一区二区在线| 国产麻豆视频精品| 久久精品国产第一区二区三区| 亚洲一区二区三区三| 亚洲女人小视频在线观看| 久久久精品国产免大香伊| 日韩色视频在线观看| 欧美猛男男办公室激情| 一本色道亚洲精品aⅴ| 不卡影院免费观看| 国产成人av自拍| 国产麻豆精品视频| 国内外成人在线| 精品伊人久久久久7777人| 久久精品国产一区二区| 强制捆绑调教一区二区| 日韩国产欧美在线视频| 五月激情综合色| 午夜不卡av免费| 污片在线观看一区二区| 三级不卡在线观看| 日韩高清欧美激情| 日本人妖一区二区| 久热成人在线视频| 国精产品一区一区三区mba桃花| 美女一区二区三区| 国模娜娜一区二区三区| 国产精品综合二区| 成人综合在线观看| 成人av网站免费| 一本到高清视频免费精品| 色婷婷av一区二区| 欧美丝袜丝交足nylons| 欧美另类变人与禽xxxxx| 欧美精品乱人伦久久久久久| 7777精品伊人久久久大香线蕉的 | 欧美性受极品xxxx喷水| 欧美在线视频日韩| 在线播放日韩导航| 精品国产区一区| 久久精品亚洲国产奇米99| 国产精品网友自拍| 亚洲另类在线制服丝袜| 亚洲国产cao| 久久99国内精品| 国产成人精品综合在线观看 | av电影在线观看一区| 色婷婷av一区二区三区软件| 欧洲国内综合视频| 日韩女优av电影在线观看| 久久久久久久久久久黄色| 国产精品麻豆久久久| 亚洲制服欧美中文字幕中文字幕| 亚洲成a人v欧美综合天堂| 久久精品噜噜噜成人88aⅴ| 成人一区二区三区中文字幕| 一本久久综合亚洲鲁鲁五月天| 欧美日韩午夜影院| 久久久精品国产免大香伊| 一区二区在线看| 美脚の诱脚舐め脚责91| 成人网页在线观看| 欧美精品tushy高清| 国产天堂亚洲国产碰碰| 亚洲一区二区视频在线| 久久国产视频网| 91视频.com| 精品sm捆绑视频| 玉米视频成人免费看| 久久精品噜噜噜成人88aⅴ| 97精品久久久午夜一区二区三区 | 久久久久久亚洲综合影院红桃| 国产精品电影一区二区三区| 午夜精品福利一区二区三区蜜桃| 国产在线国偷精品产拍免费yy| 色综合久久中文综合久久97 | 一区二区三区四区精品在线视频| 麻豆91精品91久久久的内涵| 99精品视频在线观看免费| 日韩欧美国产一区二区在线播放 | 奇米影视在线99精品| 成人v精品蜜桃久久一区| 欧美日本一区二区| 亚洲同性同志一二三专区| 美女视频黄久久| 91久久精品网| 国产精品视频一二| 精品一二线国产| 欧美精品自拍偷拍动漫精品| 亚洲四区在线观看| 国产一区91精品张津瑜| 777xxx欧美| 亚洲福利电影网| 国产精品一二三区在线| 日韩一区和二区| 亚洲国产精品久久人人爱| 99视频精品在线| 久久久久久久久久看片| 蜜桃av噜噜一区| 欧美嫩在线观看| 亚洲va中文字幕| 91福利资源站| 亚洲免费在线电影| 成人午夜精品在线| 亚洲国产精品成人综合色在线婷婷 | 欧美三区在线观看| 亚洲欧美一区二区三区国产精品 | 欧美喷水一区二区| 亚洲韩国一区二区三区| 成人黄色小视频在线观看| 欧美精品久久天天躁| 一区二区三区精品| 色妹子一区二区| 亚洲色图在线看| 色综合天天综合狠狠| 成人免费一区二区三区在线观看| 成人午夜短视频| 亚洲欧洲av在线| 97久久精品人人澡人人爽| 亚洲视频电影在线| 国产成人免费视频网站 | 中文字幕精品在线不卡| 国产成人在线网站| 国产欧美日韩综合| 成人a免费在线看| 中文字幕一区日韩精品欧美| 97精品电影院| 亚洲成人激情自拍| 91麻豆精品国产自产在线| 美女在线视频一区| 亚洲精品一区二区三区香蕉| 国产剧情一区二区| 国产精品美女久久久久av爽李琼| 99久久99久久久精品齐齐| 樱花影视一区二区| 在线不卡欧美精品一区二区三区| 天天综合色天天| 日韩欧美精品在线| 国产成人精品免费一区二区| 国产精品久久久久久亚洲伦| 97久久精品人人做人人爽50路 | 亚洲视频免费在线观看| 精品国产露脸精彩对白| 国产一区二区三区免费观看| 国产精品妹子av| 欧美视频日韩视频| 久草精品在线观看| 国产精品久久二区二区| 欧美三级中文字幕在线观看| 捆绑调教美女网站视频一区| 日本一区二区三区免费乱视频| 99久久777色| 日本欧美一区二区| 国产喷白浆一区二区三区| 一本久久综合亚洲鲁鲁五月天| 日本成人在线看| 久久蜜桃av一区精品变态类天堂| 99re成人精品视频| 奇米色一区二区| 国产精品国产三级国产普通话蜜臀 | 国产一区二区三区免费在线观看 | 国产精品毛片久久久久久| 日本精品视频一区二区| 美女诱惑一区二区| 亚洲精选一二三| 精品久久久久久无| 色婷婷久久久亚洲一区二区三区| 男女性色大片免费观看一区二区 | 337p亚洲精品色噜噜噜| 成人性生交大片免费看在线播放| 性久久久久久久久久久久| 国产午夜精品久久久久久免费视| 色偷偷久久人人79超碰人人澡| 久久se精品一区精品二区| 一区二区三区四区中文字幕| 久久久一区二区三区| 欧美日韩一区二区在线观看| 国产精品18久久久久久久网站| 亚洲成av人片在线观看| 国产精品理伦片|