FUNCTION FINXMID(MC:STRING):INTEGER;
BEGIN
    FINXMID:=0;
    WITH FRMDATALOGO DO
     BEGIN
      SELTEMP.SQL.Clear;
      SELTEMP.SQL.Add('SELECT XMBH FROM XM WHERE AVAI=1 AND XMMC=' + '''' + MC + '''');
      SELTEMP.OPEN;
      IF SELTEMP.RecordCount > 0 THEN
        BEGIN
          SELTEMP.First;
          RESULT:=SELTEMP.Fields[0].AsInteger;
        END;
      SELTEMP.Close;
     END;
END;
{==============================================================================}
{===================================创建日志文件===============================}FUNCTION FILE_CREATE(FILENAME:STRING):BOOLEAN;        //创建日志文件
var
    FileHandle : INTEGER;
BEGIN
    FileHandle := FileOpen(FILENAME, fmOpenWrite);
    FileClose(FileHandle);
    IF FileHandle < 0 then
       BEGIN
        FileHandle := FileCREATE(FILENAME);
        FileClose(FileHandle);
       END;
    RESULT:= TRUE;
END;{===================================写日志文件=================================}procedure WRITE_LOG(USER,THINGSTR:STRING);
VAR
   MYLOGFILE:TEXTFILE;
   STR:STRING;
BEGIN
   STR:=DATETIMETOSTR(NOW) + '  ' + USER +  ' --> ' + THINGSTR;
   AssignFile(MYLOGFILE,FILENAME);
   APPEND(MYLOGFILE);
TRY
     BEGIN
       WRITELN(MYLOGFILE,STR);
     END;
FINALLY
     CLOSEFILE(MYLOGFILE);
END;
END;
FUNCTION GET_RECORD(TAB:STRING):INTEGER;
BEGIN
    FRMDATALOGO.ADOQother.SQL.Clear;
    FRMDATALOGO.ADOQother.SQL.Add('SELECT * FROM ' + TAB);
    FRMDATALOGO.ADOQother.Open;
    GET_RECORD:=FRMDATALOGO.ADOQother.RecordCount;
END;
function chpassword(pass,FindUser:string):boolean;
var
   UPTEMP:TADOQUERY;
begin
   uptemp:=Tadoquery.Create(nil);
   uptemp.Connection:=frmdatalogo.ADOConn;
   uptemp.sql.Clear;
   uptemp.SQL.Add('update YHGL set PASS=' + '''' + pass + '''' + ' where ID=' + '''' + Finduser + '''');
   uptemp.ExecSQL;
   result:=true;
   uptemp.Destroy;
end;{==============================================================================}
{================================取得查询信息==================================}function get_sysInfo(Findstr,FindID,SeaID,FinTable:string):string;
var
   seltemp:TADOQUERY;
begin
   seltemp:=Tadoquery.Create(nil);
   seltemp.Connection:=frmdatalogo.ADOConn;
   seltemp.sql.Clear;
   seltemp.SQL.Add('select ' + Findstr + ' from ' + fintable + ' where ' + findId + '=' + '''' + seaID + '''');
   seltemp.Open;
   if seltemp.RecordCount>0 then get_sysInfo:=trim(seltemp.Fields[0].AsString);
   seltemp.Destroy;;
end;{==============================================================================}
{==========================获得终止日期========================================}function get_ENDDATE(VAR ID:STRING;LASTTIME:TDATETIME):Tdatetime;
var
   seltemp:TadoQuery;
begin
   seltemp:=TADOQuery.Create(nil);
   seltemp.Connection:=frmdatalogo.ADOConn;
   seltemp.SQL.Clear;
   seltemp.SQL.Add('select C_END from cardinfo WHERE C_ID=' + '''' + ID + '''' + 'AND C_LTIME=' + '''' + DATETIMETOSTR(LASTTIME) + '''');
   seltemp.Open;
   get_ENDDATE:=seltemp.Fields[0].AsDateTime;
   seltemp.Destroy;
end;
FUNCTION FormExists(FORM_NAME:STRING):BOOLEAN;       //查找窗体
BEGIN
   IF Application.FindComponent(FORM_NAME)=nil then RESULT := FALSE ELSE RESULT := TRUE;
END;PROCEDURE ADD_INFOR(CB:TComboBox;CZSYS,TABLE:STRING);  //往下拉例表框中添加内容
BEGIN
   WITH FRMDATALOGO DO
   BEGIN
      ADOQOTHER.SQL.Clear;
      ADOQOTHER.SQL.Add('SELECT distinct(' + CZSYS + ') FROM ' + TABLE);
      ADOQOTHER.Open;
      CB.Items.Clear;
        WHILE NOT ADOQOTHER.Eof DO
          BEGIN
            if (trim(ADOQOTHER.Fields[0].ASSTRING)<>'') AND (trim(ADOQOTHER.Fields[0].ASSTRING)<>'SYSTEM' ) then CB.Items.Add(ADOQOTHER.Fields[0].ASSTRING);
            ADOQOTHER.Next;
          END;
      ADOQOTHER.CLOSE;
   END;
END;PROCEDURE ADD_CLGG(CB:TComboBox;CZSYS,TABLE,MC:STRING);  //往下拉例表框添加材料规格
BEGIN
   WITH FRMDATALOGO DO
   BEGIN
      ADOQOTHER.SQL.Clear;
      ADOQOTHER.SQL.Add('SELECT distinct(' + CZSYS + ') FROM ' + TABLE + ' WHERE CLMC=' + '''' + MC + '''');
      ADOQOTHER.Open;
      CB.Items.Clear;
        WHILE NOT ADOQOTHER.Eof DO
          BEGIN
            if (trim(ADOQOTHER.Fields[0].ASSTRING)<>'') AND (trim(ADOQOTHER.Fields[0].ASSTRING)<>'SYSTEM' ) then CB.Items.Add(ADOQOTHER.Fields[0].ASSTRING);
            ADOQOTHER.Next;
          END;
      ADOQOTHER.CLOSE;
   END;
END;PROCEDURE ADD_PDBH(CB:TComboBox;TABLE,CZSYS,MC:STRING);  //往下拉例表框添加凭单编号
BEGIN
   WITH FRMDATALOGO DO
   BEGIN
      ADOQOTHER.SQL.Clear;
      ADOQOTHER.SQL.Add('SELECT distinct(XMBH) FROM ' + TABLE + ' WHERE ' + CZSYS + ' = ' + MC );
      ADOQOTHER.Open;
      CB.Items.Clear;
        WHILE NOT ADOQOTHER.Eof DO
          BEGIN
            if (trim(ADOQOTHER.Fields[0].ASSTRING)<>'') AND (trim(ADOQOTHER.Fields[0].ASSTRING)<>'SYSTEM' ) then CB.Items.Add(ADOQOTHER.Fields[0].ASSTRING);
            ADOQOTHER.Next;
          END;
      ADOQOTHER.CLOSE;
   END;
END;
PROCEDURE DEL_CLJL(XMBH:INTEGER;ID,CLMC,CLGG,TAB:STRING);  //删除库记录
BEGIN
   WITH FRMDATALOGO.ADOQDELRK DO
      BEGIN
      SQL.Clear;
      SQL.Add('DELETE FROM ' + TAB + ' WHERE XMBH=' + INTTOSTR(XMBH) + ' AND ID='
              + ID + ' AND CLMC=' + '''' + CLMC + '''' +
              ' AND CLGG=' + '''' + CLGG + '''');
      ExecSQL;
      CLOSE;
      END;
END;
//*******************************************查找项目************************
PROCEDURE CZXM(KJ:TComboBox;ZT:INTEGER);
BEGIN
TRY
  KJ.ITEMS.Clear;
  FRMDATALOGO.ADOConn.BeginTrans;
    WITH FRMDATALOGO.SELTEMP DO
      BEGIN
         SQL.Clear;
         SQL.Add('SELECT X.XMMC FROM XM AS X,XMGL AS G WHERE G.GLBH=X.XMBH AND G.ZT=' + INTTOSTR(ZT) + ' AND X.AVAI=1 AND G.XMBH='+ INTTOSTR(CZXMID));
         OPEN;
         WHILE NOT EOF DO
           BEGIN
             KJ.Items.Add(FIELDS[0].ASSTRING);
             NEXT;
           END;
         CLOSE;
      END;
  FRMDATALOGO.ADOConn.CommitTrans;
EXCEPT
  FRMDATALOGO.ADOConn.RollbackTrans;
  APPLICATION.MessageBox('查找项目名称失败!','系统信息',MB_ICONSTOP);
END;
END;//**********************************查找重复项目****************************
FUNCTION CZCFJL(XMBH,ID:INTEGER;CLMC,CLGG,TAB:STRING):BOOL;
BEGIN
  RESULT:=FALSE;
  WITH FRMDATALOGO.ADOQOTHER DO
    BEGIN
       SQL.Clear;
       SQL.Add('SELECT * FROM ' + TAB + ' WHERE XMBH=' + INTTOSTR(XMBH)
               + ' AND ID=' +INTTOSTR(ID) + ' AND CLMC=' + '''' + CLMC + ''''
               +' AND CLGG=' + '''' + CLGG + '''');
       OPEN;
       IF RECORDCOUNT > 0 THEN RESULT:=TRUE;
    END;
END;//**********************************查找重复库存****************************
FUNCTION CZCFKC(XMBH:INTEGER;CLMC,CLGG,TAB:STRING):BOOL;
BEGIN
  RESULT:=FALSE;
  WITH FRMDATALOGO.ADOQOTHER DO
    BEGIN
       SQL.Clear;
       SQL.Add('SELECT * FROM ' + TAB + ' WHERE XMBH=' + INTTOSTR(XMBH)
               + ' AND CLMC=' + '''' + CLMC + '''' +' AND CLGG=' + ''''
               + CLMC + '''');
       OPEN;
       IF RECORDCOUNT > 0 THEN RESULT:=TRUE;
    END;
END;FUNCTION GET_PDBH(XMID:INTEGER;PDID,TAB:STRING):INTEGER;    //获得凭单编号
BEGIN
TRY
   FRMDATALOGO.ADOConn.BeginTrans;
   WITH FRMDATALOGO.SELTEMP DO
     BEGIN
         SQL.Clear;
         SQL.Add('SELECT MAX('+ PDID + ') FROM ' + TAB +' WHERE XMBH=' + INTTOSTR(XMID));
         OPEN;
         IF RECORDCOUNT > 0 THEN RESULT:=FIELDS[0].AsInteger+1 ELSE RESULT:=1;
         CLOSE;
     END;
   FRMDATALOGO.ADOConn.CommitTrans;
EXCEPT
   FRMDATALOGO.ADOConn.RollbackTrans;
   APPLICATION.MessageBox('配置凭单编号失败!','系统信息',MB_ICONSTOP);
END;
END;