📄 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 + -