⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 functionp.pas

📁 delphi开发的中国移动大客户管理系统,后台数据库为oracle
💻 PAS
📖 第 1 页 / 共 2 页
字号:
               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 + -