请各位大哥帮忙看看,到底错在哪里?谢谢。
unit UnitOrderTrace;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, DB, ADODB, unitLog, UnitGenMsg, unitMarykayGlobal;type
  TfrmOrderTrace = class(TForm)
    btnOK: TButton;
    btnReturn: TButton;
    lblStartDate: TLabel;
    lblEndDate: TLabel;
    cboStartDate: TDateTimePicker;
    cboEndDate: TDateTimePicker;
    lblMessage: TLabel;
    rdo1: TRadioButton;
    rdo2: TRadioButton;
    procedure btnReturnClick(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure rdo2Click(Sender: TObject);
    procedure rdo1Click(Sender: TObject);
  private
    { Private declarations }
    function GetIrisOrderHeaderFlie(strStartDate,strEndDate:string):integer;    
  public
    { Public declarations }
  end;var
  frmOrderTrace: TfrmOrderTrace;implementation
uses UnitDataWeb;
{$R *.dfm}procedure TfrmOrderTrace.btnReturnClick(Sender: TObject);
begin
    frmOrderTrace.Close;
end;procedure TfrmOrderTrace.btnOKClick(Sender: TObject);
var
    strStartDate, strEndDate : String;
    iResult : integer;
begin    datetimetostring(strStartDate,'ymmdd',cboStartDate.Date);
    datetimetostring(strEndDate,'ymmdd',cboEndDate.Date);
    lblMessage.Caption := 'ShangHai is a beautiful city!';
    lblMessage.Enabled := false;
end;function GetIrisOrderHeaderFlie(strStartDate,strEndDate:string):integer;
var
   connType1:String;
   sql1:string;
   tableName1:string;
   iReturn,errCount,nCount : integer;
begin   result := 0;
   errCount := 0;
   nCount := 0;
   iReturn := 0;
   datalog.writeLog(0,'in OrderTrace.GetIrisOrderHeaderFlie');   with DataWeb.queryOrderTrace do
    begin
      Active := false;
      ConnectionString := readconnection(1);
      connType1:=readconnection(2);      if  upperCase(copy(connType1,1,3))='SQL' THEN
        tableName1:='order_header_file'
      else
        tableName1:='iris.order_header_file';      sql1:=Format('select web_order_number, customer_no from  %s  where rownum<2 ',[tablename1]);
      datalog.writeLog(0,sql1);
      SQL.Clear;
      SQL.Add(sql1);
      //genMsg.setDispMessage('正查询Oracle 数据');
      datalog.writeLog(0,'Ready Active  iris_header in GetIrisOrderHeaderFlie');
      datalog.writeLog(0,'Hi  ready  out put sql');
      datalog.writeLog(0,sql1);
      try
         Open;
      except
         datalog.writeLog(-1,'Active iris_header error in frmOrderTace.GetIrisOrderHeaderFlie');
         Application.MessageBox('不能连结 oracle 数据库或数据表 order_header_file','严重错误',MB_OK OR  MB_ICONsTOP);
         result := -1;
         exit;
      end;
//      ShowMessage(inttostr(iris_header.REcordCount));
     datalog.writeLog(0,'Active  iris_header Over GetIrisOrderHeaderFlie');{
     while not Eof do
     begin
         nCount := nCount + 1;         with  dataWeb.procUpdate_order_trace  do
          begin
              parameters.ParamByName('@web_order_number').Value:=order_number;
              parameters.ParamByName('@web_order_date').Value:=order_date;
              parameters.ParamByName('@delivery_id').Value:=delivery_id;
              parameters.ParamByName('@location_code').Value:=location_code;
              parameters.ParamByName('iris_order_number'):=iris_order_number;
              parameters.ParamByName('iris_order_date'):=iris_order_date;
              parameters.ParamByName('customer_no'):=customer_no;              try
                execProc;                iReturn := parameters.ParamByname('@return_value').Value;
                if parameters.ParamByname('@ReturnId').Value <> 0 then
                   errCount := errCount + 1;
              except
                on E:Exception do datalog.writeLog(1,E.Message);
              end;
          end;
          Next;
      end;
      datalog.writeLog(0,'成功处理了'+IntToStr(nCount-errCount)+'/'+IntToStr(nCount)+'条数据');
      Close;
      }
    end;
    dataWeb.queryOrderTrace.Free;
    dataWeb.procUpdate_order_trace.Free;
end;报错信息
[Hint] UnitOrderTrace.pas(46): Variable 'iResult' is declared but never used in 'TfrmOrderTrace.btnOKClick'
[Hint] UnitOrderTrace.pas(66): Value assigned to 'iReturn' never used
[Hint] UnitOrderTrace.pas(65): Value assigned to 'nCount' never used
[Hint] UnitOrderTrace.pas(64): Value assigned to 'errCount' never used
[Hint] UnitOrderTrace.pas(26): Private symbol 'GetIrisOrderHeaderFlie' declared but never used
[Error] UnitOrderTrace.pas(26): Unsatisfied forward or external declaration: 'TfrmOrderTrace.GetIrisOrderHeaderFlie'
[Fatal Error] UnitDataWeb.pas(70): Could not compile used unit 'UnitOrderTrace.pas'

解决方案 »

  1.   

    只有一个错误,其他的都是警告而已你的function GetIrisOrderHeaderFlie(strStartDate,strEndDate:string):integer;是声明在窗体的Private中的,那么在实现部分应该在GetIrisOrderHeaderFlie前面加上TfrmOrderTrace.才行吧,其他的暂时没有看,你试试再说
      

  2.   

    [Hint] UnitOrderTrace.pas(46): Variable 'iResult' is declared but never used in 'TfrmOrderTrace.btnOKClick'
    [Hint] UnitOrderTrace.pas(66): Value assigned to 'iReturn' never used
    [Hint] UnitOrderTrace.pas(65): Value assigned to 'nCount' never used
    [Hint] UnitOrderTrace.pas(64): Value assigned to 'errCount' never used
    [Hint] UnitOrderTrace.pas(26): Private symbol 'GetIrisOrderHeaderFlie' declared but never used
    前面的是定义的变量没有用,这没关系,
    GetIrisOrderHeaderFlie
      private
        { Private declarations }
        function GetIrisOrderHeaderFlie
    定义的时候没有返回值,用的时候直接用就可以,不用加窗体名
    本窗体内调用的函数可以直接写不用声明,另外就是先声明,再写函数
      

  3.   

    一、
    function GetIrisOrderHeaderFlie(strStartDate,strEndDate:string):integer;
    begin
      ...
    end;调用的时候直接用,函数写在调用的过程的前面。
    二、
    private 
      function GetIrisOrderHeaderFlie(strStartDate,strEndDate:string):integer;
    ...
    function TfrmOrderTraceGetIrisOrderHeaderFlie(strStartDate,strEndDate:string):integer;
    begin
    ...
    end;