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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? udm.pas

?? delphi7.0 源碼 學(xué)籍管理系統(tǒng)源碼
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
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('無(wú)法打開(kāi)數(shù)據(jù)庫(kù), 請(qǐng)重新安裝本軟件.'), PChar('啟動(dòng)錯(cuò)誤'), 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
          //刪除該年級(jí)所有班級(jí)
          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
            //減少班級(jí)
            aqClass.Last;
            while aqClass.RecNo > Classes.Count do begin
              aqClass.Edit;
              aqClass.FieldByName('tag').AsBoolean := True;
              aqClass.Post;
              aqClass.Prior;
            end;
          end else begin
            //增加班級(jí)
            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è)置已刪除班級(jí)的學(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;

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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲一二三区| 欧美无砖专区一中文字| 久久久久一区二区三区四区| 麻豆91在线看| 久久久久97国产精华液好用吗| 精品中文字幕一区二区小辣椒 | 国产精品日韩精品欧美在线| 国产成人夜色高潮福利影视| 国产精品大尺度| 色菇凉天天综合网| 午夜精品一区在线观看| 日韩欧美国产不卡| 国产福利一区二区三区在线视频| 国产日韩欧美一区二区三区综合| 成人黄色网址在线观看| 亚洲欧美日韩国产综合在线| 欧美系列一区二区| 日韩黄色小视频| 精品福利在线导航| 91同城在线观看| 爽好久久久欧美精品| 精品久久久久一区| 色又黄又爽网站www久久| 亚洲图片一区二区| 久久综合久久综合九色| 99精品1区2区| 日韩专区欧美专区| 国产蜜臀97一区二区三区| 色88888久久久久久影院野外 | 天天免费综合色| 欧美r级在线观看| 一本到三区不卡视频| 蜜桃av一区二区| 亚洲图片欧美激情| 日韩一区二区免费在线电影 | 亚洲欧美日韩一区二区| 欧美一区国产二区| 不卡的av电影在线观看| 免费在线观看视频一区| 成人免费在线观看入口| 精品国产精品网麻豆系列| 在线观看一区不卡| 国产91丝袜在线观看| 日韩成人av影视| 亚洲精品va在线观看| 国产欧美一区二区三区沐欲| 91精品视频网| 在线免费观看成人短视频| 国产精品 日产精品 欧美精品| 一区二区三区四区中文字幕| 中文字幕高清不卡| 欧美xfplay| 欧美乱妇15p| 91免费看视频| 成人三级在线视频| 日本不卡免费在线视频| 亚洲一区二区三区视频在线 | 日韩美一区二区三区| 欧美自拍丝袜亚洲| 成人h动漫精品一区二区| 久久99精品国产.久久久久| 午夜一区二区三区视频| 亚洲免费三区一区二区| 国产精品久99| 欧美韩国一区二区| 久久久综合网站| 精品福利一二区| 精品国产成人系列| 日韩三区在线观看| 欧美一区二区三区视频| 欧美电影在线免费观看| 欧美精品日日鲁夜夜添| 欧美日韩国产bt| 欧洲亚洲国产日韩| 欧美三级韩国三级日本一级| 91免费版在线| 色婷婷久久99综合精品jk白丝| 91亚洲午夜精品久久久久久| 波多野结衣的一区二区三区| 国产大陆亚洲精品国产| 国产成人免费视频网站 | 欧美国产综合一区二区| 久久久91精品国产一区二区精品 | 亚洲第一搞黄网站| 一区二区三区加勒比av| 亚洲国产中文字幕在线视频综合| 亚洲综合一区二区三区| 亚洲影视在线播放| 亚洲大片在线观看| 日本v片在线高清不卡在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 精品一区二区影视| 国产iv一区二区三区| 成人app在线| 欧美丝袜自拍制服另类| 欧美一区二区在线免费播放| 日韩欧美精品在线| 久久久久久久性| 亚洲欧洲精品一区二区精品久久久| 亚洲日本韩国一区| 性欧美大战久久久久久久久| 蜜臀av性久久久久蜜臀av麻豆| 精品一区二区综合| youjizz久久| 欧美日韩国产一区二区三区地区| 91麻豆精品久久久久蜜臀| 久久伊人中文字幕| 亚洲欧洲综合另类| 日韩精品久久理论片| 国产黄人亚洲片| 在线观看网站黄不卡| 欧美一区二区在线播放| 国产视频911| 夜夜嗨av一区二区三区网页| 视频一区二区中文字幕| 国产精品一卡二卡在线观看| 日本韩国欧美一区二区三区| 欧美日韩一区二区欧美激情 | 国内成人精品2018免费看| 懂色中文一区二区在线播放| 91久久精品网| 日韩欧美一区二区三区在线| 中文字幕亚洲综合久久菠萝蜜| 亚洲国产中文字幕在线视频综合| 久久99久久久久| 91首页免费视频| 久久日韩精品一区二区五区| 亚洲一区影音先锋| 丁香啪啪综合成人亚洲小说| 91精品国产色综合久久ai换脸| 中文字幕一区在线| 精品一区二区免费| 在线视频一区二区三| 久久久久亚洲蜜桃| 日韩av电影天堂| 日本精品一区二区三区四区的功能| 精品久久久久久久一区二区蜜臀| 成人欧美一区二区三区白人| 精品一区二区免费视频| 51精品视频一区二区三区| 亚洲人成网站精品片在线观看| 国产精品一二三四| 日韩欧美国产不卡| 偷偷要91色婷婷| 91丨porny丨蝌蚪视频| 国产欧美视频一区二区三区| 久久99最新地址| 91精品国产综合久久香蕉麻豆| 中文字幕一区二区在线播放| 国产一区在线观看视频| 日韩一级片网址| 午夜电影网一区| 欧美在线一区二区三区| 中文字幕一区二区三区不卡 | 不卡的av电影| 国产午夜精品久久| 国产一区二区三区蝌蚪| 欧美大白屁股肥臀xxxxxx| 午夜国产不卡在线观看视频| 在线观看网站黄不卡| 亚洲精品国产成人久久av盗摄 | 欧美色爱综合网| 亚洲女性喷水在线观看一区| 国产成人精品影视| 久久久久国产成人精品亚洲午夜| 久久国产精品区| 欧美电视剧免费观看| 免费成人你懂的| 日韩免费一区二区| 久久成人免费电影| 精品动漫一区二区三区在线观看| 奇米综合一区二区三区精品视频 | 美女视频免费一区| 日韩欧美资源站| 国内精品久久久久影院一蜜桃| 精品伦理精品一区| 黄色成人免费在线| 国产午夜精品久久久久久免费视| 国产成人综合在线播放| 国产精品传媒视频| 色婷婷精品久久二区二区蜜臂av| 一区二区三区四区不卡视频| 欧美人与z0zoxxxx视频| 免费在线成人网| 久久久蜜臀国产一区二区| 成人黄色电影在线| 亚洲激情校园春色| 欧美一级黄色大片| 欧美中文字幕一二三区视频| 一区二区三区四区国产精品| 91麻豆精品国产自产在线观看一区 | 91麻豆精品国产综合久久久久久| a4yy欧美一区二区三区| 亚洲欧美偷拍卡通变态| 欧美怡红院视频| 久久99精品久久久久久| 中文字幕不卡在线观看| 日本高清不卡在线观看| 美女精品自拍一二三四| 国产精品三级久久久久三级|