亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? udm.pas

?? delphi7.0 源碼 學(xué)籍管理系統(tǒng)源碼
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit uDM;

interface

uses
  SysUtils, Classes, DB, ADODB, Windows, Forms, IniFiles, Dialogs, CheckLst,
  Controls, Graphics, ExtDlgs, DBGridEh, ImgList, ComCtrls, FR_DSet,
  FR_DBSet, FR_Class;

type
  TDM = class(TDataModule)
    ADOConnection: TADOConnection;
    adSSCard: TADODataSet;
    dsSSCard: TDataSource;
    dsFamily: TDataSource;
    dsGrade: TDataSource;
    dsZXFL: TDataSource;
    dsGraduate: TDataSource;
    adSSCardXH: TWideStringField;
    adSSCardCreateDate: TDateTimeField;
    adSSCardMemo: TMemoField;
    adSSCardCurClass: TWideStringField;
    adSSCardName: TWideStringField;
    adSSCardSex: TWideStringField;
    adSSCardPeople: TWideStringField;
    adSSCardBirthday: TDateTimeField;
    adSSCardNative: TWideStringField;
    adSSCardMOT: TWideStringField;
    adSSCardRegKind: TWideStringField;
    adSSCardRegPS: TWideStringField;
    adSSCardAddress: TWideStringField;
    adSSCardAddPS: TWideStringField;
    adSSCardRAMR: TMemoField;
    adSSCardGSPhoto: TBlobField;
    adSSCardJHSPhoto: TBlobField;
    atFamily: TADOTable;
    atZXFL: TADOTable;
    atGraduate: TADOTable;
    atFamilyID: TAutoIncField;
    atFamilyXH: TWideStringField;
    atFamilyTitle: TWideStringField;
    atFamilyName: TWideStringField;
    atFamilyWorkPlace: TWideStringField;
    atFamilyBusiness: TWideStringField;
    atFamilyTel: TWideStringField;
    atZXFLID: TAutoIncField;
    atZXFLXH: TWideStringField;
    atZXFLEvent: TWideStringField;
    atZXFLEDate: TDateTimeField;
    atZXFLMemo: TWideStringField;
    atZXFLFillMan: TWideStringField;
    atGraduateID: TAutoIncField;
    atGraduateXH: TWideStringField;
    atGraduateCourse: TWideStringField;
    atGraduateGrade: TSmallintField;
    ImageListTree: TImageList;
    frReport: TfrReport;
    frSSCard: TfrDBDataSet;
    frFamily: TfrDBDataSet;
    frGrade: TfrDBDataSet;
    frZXFL: TfrDBDataSet;
    frGraduate: TfrDBDataSet;
    atGrade: TADOTable;
    atGradeID: TAutoIncField;
    atGradeXH: TWideStringField;
    atGradeGrade: TWideStringField;
    atGradeClass: TWideStringField;
    atGradeBegDate: TDateTimeField;
    atGradeEndDate: TDateTimeField;
    atGradeSchool: TWideStringField;
    atGradeSite: TWideStringField;
    atGradeAward: TWideStringField;
    procedure BeforeDelete(DataSet: TDataSet);
    procedure BeforeClose(DataSet: TDataSet);
    procedure DataModuleCreate(Sender: TObject);
    procedure adSSCardNewRecord(DataSet: TDataSet);
    procedure adSSCardAfterPost(DataSet: TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

function OpenConnection(ConStr: string): Boolean;
function GetPassword: string;
procedure SetPassword(PSW: string);

procedure LoadGradeSetFromDB;
procedure SaveGradeSetToDB;
function GetClasses(ALevel, AGrade: string): string;
procedure SetClasses(ALevel, AGrade, AClasses: string);
procedure GetGradeCheck(ALevel: string; var AclbGrades: TCheckListBox);
procedure SetGradeCheck(ALevel: string; var AclbGrades: TCheckListBox);
procedure GetGradeTree;

function GetClassName(ClassNode: TTreeNode): string;

procedure MoveClass(ADataSet: TCustomADODataSet; BookmarkList: TBookmarkListEh;
  NewClassName: string);

function GetItemFromText(AText: string; Index: integer): string;
function GetIndexFromText(AText: string; Item: string): Integer;

procedure OpenClass(AClassName: string);

procedure SetPhotoToField(FieldName: string; ADataSet: TCustomADODataSet);
procedure ClearPhotoFromFeid(FieldName: string; ADataSet: TCustomADODataSet);

procedure ExportDataToExcel(AClassName: string; FileName: string);

var
  DM: TDM;

implementation

uses uGlobe;

{$R *.dfm}

function OpenConnection(ConStr: string): Boolean;
begin
  DM.ADOConnection.Close;
  DM.ADOConnection.ConnectionString := ConStr;
  try
    DM.ADOConnection.Open;
    Result := True;
  except
    MessageBox(Application.Handle, PChar('無法打開數(shù)據(jù)庫, 請重新安裝本軟件.'), PChar('啟動錯誤'), 48);
    Result := False;
    Exit;
  end;
end;

function GetPassword: string;
const
  Ini_Section_User = 'User';
begin
  with TIniFile.Create(IniFileName) do
  try
    Result := ReadString(Ini_Section_User, 'Password', '123456');
  finally
    Free;
  end;
end;

procedure SetPassword(PSW: string);
const
  Ini_Section_User = 'User';
begin
  with TIniFile.Create(IniFileName) do
  try
    WriteString(Ini_Section_User, 'Password', PSW);
  finally
    Free;
  end;
end;

procedure LoadGradeSetFromDB;
const
  SQL_Grade = 'SELECT Distinct gLevel, Grade FROM dClass ORDER BY gLevel, Grade';
  SQL_Class = 'SELECT class FROM dClass WHERE glevel=''%s'' AND grade=''%s'' ORDER BY class';
var
  aqGrade, aqClass: TADOQuery;
  GradeIni: TIniFile;
  Classes: TStrings;
begin
  if FileExists(ClassIniFileName) then DeleteFile(PChar(ClassIniFileName));

  aqGrade := TADOQuery.Create(nil);
  aqClass := TADOQuery.Create(nil);
  GradeIni := TIniFile.Create(ClassIniFileName);
  Classes := TStringList.Create;
  try
    Classes.Delimiter := gDelimiter;
    aqGrade.Connection := DM.ADOConnection;
    aqClass.Connection := DM.ADOConnection;

    aqGrade.SQL.Text := SQL_Grade;
    aqGrade.Open;
    while not aqGrade.Eof do begin

      aqClass.Close;
      aqClass.SQL.Text := format(SQL_Class, [
        aqGrade.FieldByName('glevel').AsString,
        aqGrade.FieldByName('Grade').AsString]);
      aqClass.Open;
      Classes.Clear;
      while not aqClass.Eof do begin
        Classes.Append(aqClass.FieldByName('Class').AsString);
        aqClass.Next;
      end;

      GradeIni.WriteString(
        aqGrade.FieldByName('glevel').AsString,
        aqGrade.FieldByName('Grade').AsString,
        Classes.DelimitedText);

      aqGrade.Next;
    end;
  finally
    FreeAndNil(Classes);
    FreeAndNil(GradeIni);
    FreeAndNil(aqClass);
    FreeAndNil(aqGrade);
  end;
end;

procedure SaveGradeSetToDB;
const
  SQL_SetTag = 'UPDATE dClass SET tag = False';
  SQL_SetDelGradeClasses = 'UPDATE dClass SET tag = True WHERE glevel=''%s'' AND grade=''%s'' ';
  SQL_SelectDelected = 'SELECT * FROM dClass WHERE tag = True';
  SQL_MoveDeleted = 'UPDATE SSCard SET CurClass = ''%S'' WHERE CurClass = ''%s''';
  SQL_DelGradeClasses = 'DELETE FROM dClass WHERE tag = True';
  SQL_Class = 'SELECT * FROM dClass WHERE glevel=''%s'' AND grade=''%s'' ORDER BY class';
var
  aqClass, aqCard: TADOQuery;
  GradeIni: TIniFile;
  Levels, Grades, Classes: TStrings;
  i, j: integer;
  tmpGrade: string;
  gGrades: string;
begin
  if not FileExists(ClassIniFileName) then exit;

  aqClass := TADOQuery.Create(nil);
  aqCard := TADOQuery.Create(nil);
  GradeIni := TIniFile.Create(ClassIniFileName);
  Levels := TStringList.Create;
  Grades := TStringList.Create;
  Classes := TStringList.Create;
  try
    aqCard.Connection := DM.ADOConnection;
    aqClass.Connection := DM.ADOConnection;
    aqClass.SQL.Text := SQL_SetTag;
    aqClass.ExecSQL;

    Classes.Delimiter := gDelimiter;
    GradeIni.ReadSections(Levels);

    for i:=0 to Levels.Count-1 do begin
      GradeIni.ReadSectionValues(Levels[i], Grades);
      for j:=0 to Grades.Count-1 do begin
        tmpGrade := Grades.Names[j];
        if Grades.Values[tmpGrade] = '' then begin
          //刪除該年級所有班級
          aqClass.Close;
          aqClass.SQL.Text := format(SQL_SetDelGradeClasses, [Levels[i], tmpGrade]);
          aqClass.ExecSQL;
        end else begin
          aqClass.Close;
          aqClass.SQL.Text := format(SQL_Class, [Levels[i], tmpGrade]);
          aqClass.Open;

          Classes.DelimitedText := Grades.Values[tmpGrade];
          if aqClass.RecordCount > Classes.Count then begin
            //減少班級
            aqClass.Last;
            while aqClass.RecNo > Classes.Count do begin
              aqClass.Edit;
              aqClass.FieldByName('tag').AsBoolean := True;
              aqClass.Post;
              aqClass.Prior;
            end;
          end else begin
            //增加班級
            aqClass.Last;
            while aqClass.RecordCount < Classes.Count do begin
              aqClass.Append;
              aqClass.FieldByName('gLevel').AsString := Levels[i];
              aqClass.FieldByName('Grade').AsString := tmpGrade;
              aqClass.FieldByName('Class').AsString := Classes[aqClass.RecordCount];
              aqClass.Post;
            end;
          end;
        end;
      end;
    end;

    //todo: 設(shè)置已刪除班級的學(xué)生到(未分班)中
    aqClass.Close;
    aqClass.SQL.Text := SQL_SelectDelected;
    aqClass.Open;

    aqClass.First;
    while not aqClass.Eof do begin
      if aqClass.FieldByName('gLevel').AsInteger = 1 then
        gGrades := ElementaryGrades
      else if aqClass.FieldByName('gLevel').AsInteger = 2 then
        gGrades := JuniorGrades
      else
        gGrades := '';

      aqCard.Close;
      aqCard.SQL.Text := format(SQL_MoveDeleted,
        [UnknowClass,
         format(ClassFormat,
           [GetItemFromText(gLevels, aqClass.FieldByName('gLevel').AsInteger-1),
            GetItemFromText(gGrades, aqClass.FieldByName('Grade').AsInteger-1),
            aqClass.FieldByName('Class').AsString
           ])
         ]);
      aqCard.ExecSQL;
      aqClass.Next;
    end;

    //真正刪除班級
    aqClass.Close;
    aqClass.SQL.Text := SQL_DelGradeClasses;
    aqClass.ExecSQL;
  finally
    FreeAndNil(Classes);
    FreeAndNil(Grades);
    FreeAndNil(Levels);
    FreeAndNil(GradeIni);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久久电影| 成人一区二区视频| 欧美日韩成人在线| 婷婷开心久久网| 欧美酷刑日本凌虐凌虐| 蜜臀av性久久久久蜜臀aⅴ| 欧美r级在线观看| 成人性视频网站| 亚洲激情图片一区| 欧美精品自拍偷拍| 国产一区二区在线免费观看| 国产校园另类小说区| 91同城在线观看| 午夜精品一区二区三区三上悠亚| 日韩欧美激情四射| 成人免费的视频| 亚洲午夜久久久久久久久电影网 | 亚洲成a人片综合在线| 欧美日本一区二区三区四区| 久久激五月天综合精品| 在线观看日韩高清av| 蜜桃视频在线一区| 国产欧美日韩视频在线观看| 在线观看91视频| 六月婷婷色综合| 亚洲精品欧美激情| 日韩精品中文字幕一区| 成人动漫一区二区在线| 日一区二区三区| 中文字幕一区二区三区视频| 91精品国产综合久久久蜜臀粉嫩| 国产福利一区二区三区| 午夜久久久久久久久| 国产精品视频第一区| 欧美一区二区三区四区在线观看| 国产盗摄女厕一区二区三区| 首页亚洲欧美制服丝腿| 欧美国产日产图区| 精品少妇一区二区三区视频免付费| 成人国产在线观看| 蜜臀久久99精品久久久久宅男| 成人免费一区二区三区在线观看| 日韩精品在线一区二区| 欧美三级日韩在线| 波多野结衣亚洲| 国产综合久久久久久久久久久久| 亚洲美女视频在线| 中文在线免费一区三区高中清不卡| 7799精品视频| 精品视频在线免费看| 不卡视频一二三| 国产精品1024久久| 久久国产免费看| 亚洲成人久久影院| 亚洲综合在线第一页| 国产片一区二区三区| 精品日韩在线一区| 欧美电影一区二区三区| 欧美怡红院视频| 97久久人人超碰| 成人av电影在线网| 国产成人99久久亚洲综合精品| 美女视频第一区二区三区免费观看网站| 亚洲老妇xxxxxx| 亚洲欧美中日韩| 国产偷国产偷亚洲高清人白洁 | 欧美日韩一区二区三区在线| 91美女精品福利| 99久久婷婷国产| 99视频有精品| 97精品久久久午夜一区二区三区 | 一区二区三区四区不卡视频 | 在线视频中文字幕一区二区| 99久久免费精品高清特色大片| av网站免费线看精品| 成人免费视频一区| 91在线视频在线| 91麻豆国产香蕉久久精品| 91蝌蚪porny| 欧美性色黄大片| 在线播放日韩导航| 欧美一区二区三区在线看| 日韩一卡二卡三卡国产欧美| 日韩一区二区麻豆国产| 精品免费日韩av| 久久久99久久精品欧美| 中文字幕精品一区| 亚洲日本中文字幕区| 亚洲精品综合在线| 同产精品九九九| 精品在线亚洲视频| 国产精品一二一区| 99精品黄色片免费大全| 在线看日本不卡| 欧美一区二区视频网站| 久久精品一区二区三区不卡| 欧美激情在线看| 亚洲制服丝袜一区| 毛片不卡一区二区| 国产 欧美在线| 色偷偷久久一区二区三区| 欧美日韩三级一区| 精品久久久久久久久久久院品网| 欧美精品一区二区三区很污很色的| 国产亚洲一区二区在线观看| ...xxx性欧美| 免费观看在线综合色| 久久av资源站| 99精品视频在线观看免费| 欧美日韩极品在线观看一区| 久久中文娱乐网| 亚洲欧美日韩在线不卡| 免费欧美在线视频| 99久久亚洲一区二区三区青草| 欧美日本乱大交xxxxx| 欧美精品一区二区三区高清aⅴ| 国产精品初高中害羞小美女文| 亚洲成人av福利| 国产高清不卡一区| 欧美日韩国产系列| 国产欧美一区二区三区在线看蜜臀| 亚洲一区二区高清| 国产suv精品一区二区883| 欧美日韩三级视频| 一区免费观看视频| 韩日av一区二区| 欧美主播一区二区三区| 久久久亚洲高清| 午夜国产精品影院在线观看| 成人精品视频一区| 制服丝袜国产精品| 一区二区三区中文字幕电影| 国产美女精品一区二区三区| 欧美日韩国产一级二级| 国产精品久久国产精麻豆99网站| 免费观看日韩av| 欧美片网站yy| 亚洲欧美视频一区| 国产一区二区三区久久悠悠色av| 欧美三级在线看| 亚洲欧美一区二区久久| 国产成人av自拍| 精品久久久久久久久久久久久久久 | 日本一区二区综合亚洲| 日韩av电影天堂| 欧美综合久久久| 亚洲欧美中日韩| 成人黄色电影在线| 久久男人中文字幕资源站| 日韩国产在线观看一区| 在线观看日韩国产| 亚洲黄色性网站| 99精品黄色片免费大全| 国产精品国产三级国产a| 国产一区二区三区国产| 欧美一区二区视频观看视频| 婷婷国产v国产偷v亚洲高清| 欧美丝袜丝交足nylons| 亚洲同性gay激情无套| 不卡电影一区二区三区| 国产精品免费人成网站| 成人av网站在线观看| 亚洲国产激情av| 成人av免费网站| 亚洲视频在线一区| 色av成人天堂桃色av| 亚洲精品国产第一综合99久久| 99re在线视频这里只有精品| 亚洲同性同志一二三专区| 91论坛在线播放| 夜夜爽夜夜爽精品视频| 欧美日韩亚洲不卡| 日韩av一级电影| 精品福利二区三区| 国产精品996| 成人欧美一区二区三区在线播放| 波多野结衣在线aⅴ中文字幕不卡| 国产欧美精品一区二区三区四区| 成人美女视频在线看| 中文字幕中文乱码欧美一区二区 | 水野朝阳av一区二区三区| 日韩一区二区三区在线观看| 国产一区二区主播在线| 国产精品久久久久aaaa| 91国模大尺度私拍在线视频| 亚洲mv在线观看| 日韩精品资源二区在线| 成人精品国产免费网站| 亚洲制服丝袜一区| 日韩欧美视频一区| 高清在线观看日韩| 亚洲影院在线观看| 日韩视频一区在线观看| 丁香婷婷综合色啪| 亚洲最大成人综合| 精品国产91洋老外米糕| av在线不卡免费看| 亚洲va天堂va国产va久| 日韩欧美亚洲一区二区| 成人精品国产免费网站|