?? functionp.pas
字號:
end;
Writeln(' ');
If Not ((TDBGrid(ObjectSource).DataSource.DataSet.Eof) And (TDBGrid(ObjectSource).DataSource.DataSet.Bof)) Then
Begin
TDBGrid(ObjectSource).DataSource.DataSet.First;
While Not TDBGrid(ObjectSource).DataSource.DataSet.Eof Do
Begin
For ColNumber:=0 To TDBGrid(ObjectSource).Columns.Count-1 Do
write(TDBGrid(ObjectSource).DataSource.DataSet.FieldByName(TDBGrid(ObjectSource).Columns.Items[ColNumber].FieldName).AsString+' ');
writeln(' ');
RowNumber:=RowNumber+1;
TDBGrid(ObjectSource).DataSource.DataSet.Next;
End;
End;
End;
CloseFile(Output);
Msg := '數據導出成功,存放在' + xlsFileName;
Application.MessageBox(Pchar(Msg), '提示', MB_ICONINFORMATION);
Result := True;
except
Msg := '不能正確操作Txt文件??赡苁窃撐募驯黄渌绦虼蜷_, 或系統錯誤。';
Application.MessageBox(Pchar(Msg), '提示', MB_ICONINFORMATION);
Result:=False;
end;
ExcelSaveDialog.free;
end;
end;
end;
{
*******************************************************************
* 作者:黃志文 編寫日期:2001-11-22 *
* *
* 函數:GetSysDateTime *
* 功能:讀取服務器系統時間 *
* 參數:DateStyle讀取服務器系統時間的格式 pDate,pTime,pDateTime *
* 返回值:服務器系統時間 *
* 基本要求:無 *
* *
*******************************************************************
}
Function GetSysDateTime(DateStyle:TDateStyle=pDate):String;
Var
QuerySysDateTime:TQuery;
begin
Application.CreateForm(TQuery,QuerySysDateTime);
QuerySysDateTime.Close;
QuerySysDateTime.DatabaseName:=session.Databases[0].DatabaseName;
QuerySysDateTime.SQL.Clear;
QuerySysDateTime.SQL.Add('Select Sysdate From Dual');
QuerySysDateTime.Open;
If DateStyle=pDate Then
GetSysDateTime:=FormatDateTime('YYYY-MM-DD',QuerySysDateTime.Fields[0].AsDateTime);
If DateStyle=pTime Then
GetSysDateTime:=FormatDateTime('HH:NN:SS',QuerySysDateTime.Fields[0].AsDateTime);
If DateStyle=pDateTime Then
GetSysDateTime:=FormatDateTime('YYYY-MM-DD HH:NN:SS',QuerySysDateTime.Fields[0].AsDateTime);
QuerySysDateTime.Free;
end;
{
*******************************************************************
* 作者:陳庭昀 編寫日期:2001-11-25 *
* *
* 函數:ComponentStat *
* 功能:設置窗體組體編輯及初始化組件值 *
* 參數:StatusStyle 狀態類型 值:Clear初始化組件值 *
* Stat設置組件編輯狀態 *
* 默認值:Clear *
* Status 狀態 值:True、False *
* 默認值:False *
* 返回值:無 *
* *
* 基本要求: *
* *
* 可使用組件:TEdit、TListBox、TCombobox、TDBEdit、TDBCombobox *
* *
*******************************************************************
}
Function ComponentStat(FormName:TForm;StatusStyle:TStatusStyle=Clear;Status:Boolean=False):Integer;
Var
I:Integer;
Begin
For I:=0 To FormName.ComponentCount-1 Do
Begin
If StatusStyle=Stat Then
Begin
If FormName.Components[I] Is TEdit Then
TEdit(FormName.Components[I]).ReadOnly:=Not Status;
If FormName.Components[I] Is TMemo Then
TEdit(FormName.Components[I]).ReadOnly:=Not Status;
If FormName.Components[I] Is TListBox Then
TListBox(FormName.Components[I]).Enabled:=Status;
If FormName.Components[I] Is TCombobox Then
TCombobox(FormName.Components[I]).Enabled:=Status;
If FormName.Components[I] Is TDBEdit Then
TDBEdit(FormName.Components[I]).ReadOnly:=Not Status;
If FormName.Components[I] Is TDBCombobox Then
TDBCombobox(FormName.Components[I]).ReadOnly:=Not Status;
End;
If StatusStyle=Clear Then
Begin
If FormName.Components[I] Is TEdit Then
If Status Then
TEdit(FormName.Components[I]).Text:=TEdit(FormName.Components[I]).Hint
Else
TEdit(FormName.Components[I]).Text:='';
If FormName.Components[I] Is TMemo Then
If Status Then
TEdit(FormName.Components[I]).Text:=TEdit(FormName.Components[I]).Hint
Else
TEdit(FormName.Components[I]).Text:='';
If FormName.Components[I] Is TListBox Then
If Status Then
Try
TListBox(FormName.Components[I]).ItemIndex:=StrToInt(TListbox(FormName.Components[I]).Hint);
Except
TListBox(FormName.Components[I]).ItemIndex:=-1;
End
Else
TListBox(FormName.Components[I]).ItemIndex:=-1;
If FormName.Components[I] Is TCombobox Then
If Status Then
Try
TCombobox(FormName.Components[I]).ItemIndex:=StrToInt(TCombobox(FormName.Components[I]).Hint);
Except
TCombobox(FormName.Components[I]).ItemIndex:=-1;
End
Else
TCombobox(FormName.Components[I]).ItemIndex:=-1;
If (FormName.Components[I] Is TDBEdit) And Status Then
If Status Then
Try
TDBEdit(FormName.Components[I]).Text:=TDBEdit(FormName.Components[I]).Hint;
Except
TDBEdit(FormName.Components[I]).Text:='';
End
Else
TDBEdit(FormName.Components[I]).Text:='';
If (FormName.Components[I] Is TDBCombobox) And Status Then
If Status Then
Try
TDBCombobox(FormName.Components[I]).ItemIndex:=StrToInt(TCombobox(FormName.Components[I]).Hint);
Except
TDBCombobox(FormName.Components[I]).ItemIndex:=-1;
End
Else
TDBCombobox(FormName.Components[I]).ItemIndex:=-1;
End;
End;
End;
{
*******************************************************************
* 作者:陳庭昀 編寫日期:2001-11-30 *
* *
* 函數:FeeCalcMonth *
* 功能:計算移動公司計費月 *
* 參數:CDate 計算日期 值字符型 格式:YYYY-MM-DD *
* 默認值:空 *
* BetweenMonth 計費月的起始日期與終止日期時間差 *
* 以月為單位 *
* 默認值:-1 *
* 返回值:起始日期與終止日期 *
* *
* 基本要求: *
* *
* 說明: *
* 1、如果CDate值為空時,則取訊服務器系統時間,否則按指定時間 *
* 為準日期格式為YYYY-MM-DD *
* 2、起始日期與終止日期的分隔符為"|" *
* *
*******************************************************************
}
Function FeeCalcMonth(CDate:String='';BetweenMonth:Integer=-1):String;
Var
QueryDate:TQuery;
TempDate:TDateTime;
StartDate:String;
EndDate:String;
Begin
Application.CreateForm(TQuery,QueryDate);
QueryDate.DatabaseName:=session.Databases[0].DatabaseName;
If Trim(CDate)='' Then
Begin
//讀取服務器系統時間
QueryDate.Close;
QueryDate.SQL.Clear;
QueryDate.SQL.Add('Select Sysdate From Dual');
QueryDate.Open;
TempDate:=QueryDate.Fields[0].AsDateTime;
End
Else
Begin
//判斷傳入的時間是否合法
Try
TempDate:=StrToDate(CDate);
ExcePt
FeeCalcMonth:='';
Exit;
End;
End;
//計算計費月結束時間
If (FormatDateTime('MM',TempDate)<>'12') And (FormatDateTime('DD',TempDate)>='21') Then
EndDate:=FormatDateTime('YYYY-MM',TempDate)+'-20';
If (FormatDateTime('MM',TempDate)='01') And (FormatDateTime('DD',TempDate)<='20') Then
Begin
QueryDate.Close;
QueryDate.SQL.Clear;
QueryDate.SQL.Add('Select Add_Months(to_date('''+FormatDateTime('YYYY-MM-DD',TempDate)+''',''YYYY-MM-DD''),-1) From Dual');
QueryDate.Open;
EndDate:=FormatDateTime('YYYY-MM',QueryDate.Fields[0].AsDateTime)+'-31';
End;
If (FormatDateTime('MM',TempDate)='12') Or (FormatDateTime('DD',TempDate)<='20') Then
Begin
QueryDate.Close;
QueryDate.SQL.Clear;
QueryDate.SQL.Add('Select Add_Months(to_date('''+FormatDateTime('YYYY-MM-DD',TempDate)+''',''YYYY-MM-DD''),-1) From Dual');
QueryDate.Open;
EndDate:=FormatDateTime('YYYY-MM',QueryDate.Fields[0].AsDateTime)+'-20';
End;
//計算計費月開始時間
QueryDate.Close;
QueryDate.SQL.Clear;
QueryDate.SQL.Add('Select Add_Months(to_date('''+EndDate+''',''YYYY-MM-DD''),'+IntToStr(BetweenMonth)+') From Dual');
QueryDate.Open;
If FormatDateTime('MM',QueryDate.Fields[0].AsDateTime)='12' Then
StartDate:=IntToStr(StrToInt(FormatDateTime('YYYY',QueryDate.Fields[0].AsDateTime))+1)+'-01-01'
Else
StartDate:=FormatDateTime('YYYY-MM',QueryDate.Fields[0].AsDateTime)+'-21';
FeeCalcMonth:=StartDate+'|'+EndDate;
QueryDate.Free;
End;
Function OpRegister(Path:String;ValuesName:String;OpearteStyle:Integer=0;Values:String=''):String;
Var
Reg:TRegistry;
Begin
OpRegister:='';
Try
Reg:=TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(Trim(Path),True);
If OpearteStyle=0 Then
OpRegister:=Reg.ReadString(Trim(ValuesName))
Else
Reg.WriteString(Trim(ValuesName),Trim(Values));
finally
Reg.CloseKey;
Reg.Free;
end;
End;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -