Delphi-дегі сервер компоненттері

1. DELPHI.ДЕГІ СЕРВЕР КОМПОНЕНТТЕРІ 4
1.1. Excel сервері. 10
Excel Application1.Dialogs[xlDialogOpen]. Show( 22
1.2. OLE автоматизациясын Excel, Word, Outlook, Access жұмыстарында қолдану. 22
Try 25
1.3. ADO мәліметтер қоры сияқты Excel кітабымен жұмыс. 29

2. ПРАКТИКАЛЫҚ ЖҰМЫСТАР 39
If not varIsEmpty(MSExcel) then begin 48

ҚОРТЫНДЫ 51

ӘДЕБИЕТТЕР ТІЗІМІ 52
1. DELPHI-ДЕГІ СЕРВЕР КОМПОНЕНТТЕРІ
Delphi5-пен бастағанда, Word, Excel және басқада көптеген Windows немесе MicrosoftOffice стандартты орнатуларына жататын кең тараған бағдарламалармен өзара әрекеттеседі Servers бетіндегі кітапханада орналасқан компоненттердің көмегімен Delphi қолданбаларында жүзеге аса алады. Бұл компоненттер көптеген COM импортталатын серверлерді бейнелейді. Олардың барлығы өзінің TOleServer базалық класының буыны болып табылады. Бұл класта сервермен байланысты орнатуға мүмкіндік беретін абстрактілі әдістермен қасиеттер жарияланған. Сондықтан TOleServer класс объектлерін тікелей құруға болмайды. Қолдонбаларда тек осы кластың буындары-СОМ нақты серверлері қолданылады. Олар Delphi ортасында projectImport командасымен іске асырылатын импортты типтер кітапханасымен құрылады.
Servers бетінің компоненттері MicrosoftOffice 97 және MicrosoftOffice 2000/XP үшін әртүрлі. Дегенмен, бұл компоненттерсіз өз қолданбаңызда кластарға сәйкес келетін объктлер құруға болады. Бұл жерде Delphi6-ның әрбір сервер класында екіншіден модульға ие екенін ескере кеткен жөн. Мысалы: Excel сервері үшін бұл Excel 97 және Excel 2000 модульдары. Яғни, бұларға қарап айыруға болады, бірінші MicrosoftOffice97-ге, ал екінші MicrosoftOffice2000 ға жатады. Сондай-ақ Excel сервері үшін excel97 және Word2000 модульдары бар. Delphi 7-де Windows XP үшін ExcelXP, WordXP және т.б модульдер қосылған.
Серверлер қолданатын қолданбаларда ең аз дегенде бір жоғарыда көрсетілген модульдарды қосу қажет. Мысалы: Excel серверімен жұмыс барысында сіздің қолданбаңызда
Uses … Excel97; операторы қосылған болуы қажет, немесе
Uses … Excel2000; операторы немесе
Uses … ExcelXP;операторы.
Сервер сипаттайтын көрсетілген модульдердің бірін іске қосу барысында сіз Microsoft Office 97, немесе Microsoft 2000, немесе MicrosoftXP –мен жұмыс атқаратын қолданба құра аласыз. Бірақ кей жағдайда кез-келген офиспен жұмыс атқаратын әмбебап қолданба құруға болады. Онда екі немесе үш модуль қосу қажет. Мысалы:
Uses Excel97, Excdel2000;
Соңғы мысалда қосылған модуль (мысалда Excel2000) үнсіздік бойынша жұмыс істейді. Ал басқа модуль қасиеттерімен әдістеріне мәтінде анық сілтемелер беру қажет.
Орындалу үрдісінде нақты модуль объектісін қолдану үшін, бағдарламалық түрде анықтау үшін Windows нұсқаларының анықтау тәсілдерін пайдалануға болады. Мысалы:
If (GetVersion>=$80000000)
Then … // операторы
Else… //операторы
Шынында да, егер Windows нұсқаулары MicrosoftOffice нұсқауларымен сәйкес келмесе, онда ол жүзеге аса алмайды. Мысалы: Windows98-де MicrosoftOffice 2000 орнатылуы мүмкін. Бұл жағдайда Version серверлер қасиеттері көмек көрсетеді. Мысалы TExcelApplication класының ExcelApplication1 объектісі үшін бұл қасиет Excel2002 үшін “10.0” жолынан және Excel97 үшін “8.0”жолынан тұрады. Сол себепті бұл нұсқауларды оқу (анықтау) келесі түрде хатталуы мүмкін.
If (StrToInt(Copy(ExcelApplication1.Version0, Pos(‘.’,ExcelApplication1.Version)-1)))<9
Then … //Excel 97
Else …// Excel2000
Енді Excel серверлер мысалында
        
        СОДЕРЖАНИЕ
1. DELPHI-ДЕГІ СЕРВЕР КОМПОНЕНТТЕРІ 4
1.1. Excel сервері. 10
Excel Application1.Dialogs[xlDialogOpen]. Show( ... OLE ... Excel, Word, Outlook, Access ... 22
Try 25
1.3. ADO мәліметтер қоры ... Excel ... ... ... ... ЖҰМЫСТАР 39
If not varIsEmpty(MSExcel) then begin 48
ҚОРТЫНДЫ ... ... ... ... ... КОМПОНЕНТТЕРІ
Delphi5-пен бастағанда, Word, Excel және басқада ... ... ... ... ... ... кең ... өзара әрекеттеседі Servers ... ... ... ... Delphi ... жүзеге аса
алады. Бұл компоненттер көптеген COM импортталатын серверлерді бейнелейді.
Олардың барлығы өзінің TOleServer базалық класының ... ... ... ... ... байланысты орнатуға мүмкіндік беретін абстрактілі
әдістермен ... ... ... ... ... объектлерін
тікелей құруға болмайды. Қолдонбаларда тек осы кластың буындары-СОМ нақты
серверлері ... Олар Delphi ... ... ... ... импортты типтер кітапханасымен құрылады.
Servers ... ... ... 97 және
MicrosoftOffice 2000/XP үшін әртүрлі. ... бұл ... ... ... ... ... объктлер құруға болады. Бұл жерде
Delphi6-ның әрбір сервер класында екіншіден модульға ие ... ... жөн. ... Excel ... үшін бұл Excel 97 және Excel ... Яғни, бұларға қарап айыруға болады, бірінші MicrosoftOffice97-
ге, ал екінші MicrosoftOffice2000 ға ... ... Excel ... үшін
excel97 және Word2000 модульдары бар. Delphi 7-де Windows XP үшін ExcelXP,
WordXP және т.б модульдер қосылған.
Серверлер ... ... ең аз ... бір ... ... қосу қажет. Мысалы: Excel серверімен жұмыс
барысында сіздің қолданбаңызда
Uses … Excel97; ... ... ... ... ...... ... немесе
Uses … ExcelXP;операторы.
Сервер сипаттайтын көрсетілген модульдердің бірін іске қосу
барысында сіз ... Office 97, ... ... 2000, ... –мен жұмыс атқаратын қолданба құра аласыз. Бірақ кей жағдайда
кез-келген офиспен жұмыс атқаратын әмбебап қолданба құруға болады. Онда ... үш ... қосу ... ... Excel97, Excdel2000;
Соңғы мысалда қосылған модуль (мысалда Excel2000) үнсіздік ... ... Ал ... ... ... ... мәтінде анық
сілтемелер беру қажет.
Орындалу үрдісінде ... ... ... қолдану үшін,
бағдарламалық түрде анықтау үшін Windows нұсқаларының анықтау ... ... ... ... … // операторы
Else… //операторы
Шынында да, егер Windows нұсқаулары MicrosoftOffice нұсқауларымен
сәйкес келмесе, онда ол ... аса ... ... ... 2000 ... ... Бұл жағдайда Version серверлер
қасиеттері көмек ... ... ... ... ... үшін бұл қасиет Excel2002 үшін “10.0” жолынан
және Excel97 үшін ... ... Сол ... бұл ... оқу
(анықтау) келесі түрде хатталуы мүмкін.
If (StrToInt(Copy(ExcelApplication1.Version0,
Pos(‘.’,ExcelApplication1.Version)-1)))=$80000000)
then
//Office97
(ExcelApplication1.ActiveWorkbook as Excel97. ExcelWorkbook).
PrintOut(EmmptyParam, EmmptyParam, EmmptyParam,
EmmptyParam, EmmptyParam, EmmptyParam, EmmptyParam,
LOCALE_USER_DEFAULT)
else
// Office2000
(ExcelApplication1.ActiveWorkbook PrintOut ( EmmptyParam,
EmmptyParam, ... ... ... ... ... ... ... объектісінің WorkSheets қасиетінде
орналасқан. Бұл жиын өзінің қасиеттері бойынша ... ... ... ... немесе аты бойынша қатынасуға болады. Мысалы, келесі
операторлар ExcelWorkbook1 объектісімен ұсынылған кітаптың бірінші ... және ... ... көрсеткішті осы парақтың ExcelWorkSheet1
айнымалысына беріледі және ... ... ... Яғни, оны Excel
терезесінде бірінші жоспарға жылжытады:
ExcelWorkSheet1:= ExcelWorkbook1.WorkSheet[1] as ExcelWorkSheet;
ExcelWorkSheet.Activate( LOCALE_USER_DEFAULT );
Егер берілген атпен парақ ... жоқ ... онда ол ... Сондықтан, осындай жағдай кездессе, онда оны мысалы ... ... ... ... ... as ExcelWorkSheet;
ExcelWorkSheet.Activate( LOCALE_USER_DEFAULT );
except
showMessage(‘Не удалось открыть лист “’+Edit1.Text+’ ” ... жаңа ... ... ... ... Add әдісі арқылы
жүзеге асыруға болады.
Function Add( Before: OleVariant; After: OleVariant;
Cout: ... Type: ... ... ... After параметрлері –алдынан немесе артынан қойылуы
жүзеге асатын ... ... ... осы ... ... ... ... тең етіп алуға болады. Егер екі ... –ға тең ... онда жаңа ... ағымдық белсенді парақ алдынан
қойылады. Count параметрі қойылатын парақтар санын көрсетеді. Егер ... ... тең ... онда бір парақ қойылады. Type-параметрі
қойылатындар типін анықтайды. (EmmptyParam мәнінде жаңа бос парақ ... ... код ... ... ... жаңа ... ... және
ExcelWorkSheet1 айнымалысына көрсеткішті береді.
ExcelWorkSheet1:= ExcelApplication1. WorkSheets.Add(EmmptyParam,
EmmptyParam, EmmptyParam, EmmptyParam,
EmmptyParam, (LOCALE_USER_DEFAULT) as
ExcelWorkSheet;
Ал келесі код ... ... ... ... кейін екі жаңа
парақ қояды.
Var After, Num: OleVariant;

After:= ... ... ... ... ... ... ) as ... атты немесе аты бар парақ атын Name қасиетінің көмегімен
өзгертуге ... ... Name:= ... ... ... Delete әдісінің көмегімен жоюға болады.
ExcelWorkSheet1. Delete: (LOCALE_USER_DEFAULT );
Парақты PrintOut әдісінің көмегімен баспаға беруге болады. Мысалы
ағымдық бетті баспаға беру ... ... ... as ... ... // Office97 бағытталған оператор
(ExcelWorkSheet1 as Excel97. ExcelWorkSheet).PrintOut(
EmmptyParam, EmmptyParam, EmmptyParam, EmmptyParam,
EmmptyParam, EmmptyParam, EmmptyParam,
LOCALE_USER_DEFAULT)
Else
// Office2000 ... ... ... ... ... EmmptyParam,
EmmptyParam, EmmptyParam, EmmptyParam,
LOCALE_USER_DEFAULT); Баспа алдында парақтың алдын-ала
көру ... ... ... ... асады.
Procedure PrintPreview( EnableChanges:OleVariant; Icid: integer);
EnableSChanges параметрі алдын-ала ... ... ... ... ... Мысалы, келесі оператор кітаптың белсенді
парағын алдын-ала қарауды қамтамасыз ... as ... ). ... ... ... ... тоқталайық. Ол парақта бірімен-бірі
байланысқан Rang ұяшықтарының көпшілігін ... Одан ... ... мәліметтерін Value қасиетін қолдана отырып ... ... ... Rang объектісі басынан аяғына дейін сол жақ ... ... жақ ... ... ... ... Rang ... арқылы құрылады. Егер
тек бір ғана ұяшық қажет болса, онда екіншінің орнына EmmptyParam-ды ... Әдіс ... ... ... ... Мысалы, келесі
операторлар тек В2 ұяшығын белгілейтін және осы ұяшықты оқитын ... MyRange ... ... MyRange, V: ... ... EmmptyParam);
V:= MyRange.Value;
ShowMessage(V);
MyRange.Value:=Edit1.Text;
Var MyRange, V: OleVariant;

MyRange: := ExcelWorkSheet.Range(‘A1’, ‘C3’);
V:=VarArrayCreate([ 0, 2, 0, 2 ], varVariant);
V[0,0]:=1;
V[0,1]:=2;
V[0,2]:=3;
V[1,0]:=4;
V[1,1]:=5;
V[1,2]:=6;
V[2,0]:=’Сумма(A1:A2)’;
V[2,1]:=’Сумма(B1:B2)’;
V[2,2]:=’Сумма(C1:C2)’;
MyRangValue:=V;
Бірінші оператор А1-ші ... сол жақ ... ... ... С3
ұяшығының оң жақ төменгі бұрышына дейінгі аралықта 9 ұяшықтан ... ... ... Ары қарай бірінші жолда- 1, 2, 3; екігші жолда –4,
5, 6 ... ... ... ... ... ... жолдардың қосындыларын
қамтамасыз ететін формулалардан тұратын екі ... Variant ... ... осы ... мәні Excel ... енгізіледі.
Нәтижесінде мынандай болады.
|  | A | B | C |
|1 | 1 | 2 | 3 |
|2 | 4 | 3 | 6 |
|3 | 5 | 7 | 9 ... ... Font ... ... ... ... Оның Bold, Italic, ... Color, Size,Name бағыныңқы қасиеттері
сәйкес жартылай майлы шрифін, курсив, сызылған шриф ... оның ... атын ... ... ... MyRange ... ... жартылай майлы шрифт береді.
Қортындылай келе Excel диалогтарына тоқтала ... Олар ... Dialogs ... Show ... ... ... ретінде
осы қасиетке ашық ... типі ... Ал Show ... ... ... және әдетте EmmptyParam-ға тең етіп берілетін ... ... ... келесі оператор параметрі Excel-де орнатылған
ашық файл диалогымен шақырылады. Егер қолданушы осы диалогта файл ... онда ... ... ... Excel ... ... Application1.Dialogs[xlDialogOpen]. Show(
EmmptyParam, EmmptyParam, EmmptyParam, EmmptyParam,
EmmptyParam, EmmptyParam, ... ... ... EmmptyParam,
EmmptyParam, EmmptyParam, EmmptyParam, EmmptyParam, EmmptyParam,
EmmptyParam, EmmptyParam,
EmmptyParam, EmmptyParam, EmmptyParam,EmmptyParam);
Егер сол операторда Dialog ... ... ... ... онда қолданушыға файл атын көрсетуге мүмкіндігін беретін
файлды сақтау диалогы ... ... ... ... атай
кетейік: xlDialogPrint- ағымдағы бетті баспаға жіберу, xlDialogPageSetup-
бет ... ... ... ... ... үшін шрифт таңдау және
көптеген басқа да барлығы 234 ... ... ... ... ... тоқталу мүмкін емес. Олардың тізімін Excel 2000 файлынан көруге
болады, ал олардың сипатталуы- Excel анықтамасында.
1.2. OLE автоматизациясын Excel, Word, Outlook, Access ... Excel ... ... Office- нің ... ... басқада түрлері бар. ... ... екі ... ... ... ... ... OLE автоматтандыру механизмдері арқылы типтер кітапханасын ... ... ... береді. Бірақ типтер кітапханасымен жұмыс
істеу үшін сәйкес файлдарды қалыптастырып, оларды ... ... ... Word және ... ... жеңілірек. Сондықтан, құраушы
олармен Delphi қолданбасында жұмыс істеу мүмкіндігін ... ... ... ... ... ... (IDispatch)
интерфейстер көмегімен басқа ... ... ... жабдықтарына берілетін белгілі ... ... ... ... ... ... ... және басқа
қолданбалар үшін мүмкін болатын қолданбалар, динамикалық кітапханалар және
басқада негіздер автоматтандыру сервері деп ... ... ... ... басқарумен
қатынаса алатын қолданба немесе бағдарламалау инструменттері автоматтандыру
бақылаушылары деп ... ... ... ... ... серверін тікелей тілде бағдарламалай ... ... ... ... қасиеттерінің бірі-яғни,
қолданба тілінен тәуелсіздігі.
1- сурет
Автоматтандыру серверлері ретінде көптеген таратылған қолданбалар
қолдана алады, мысалы, MSOffice қолданбасы, ГИС MapInfo ... ... ... Visual FoxPro және т.б, ... ... ... ... арқылы объектнің барлық клакстары тіркеледі. Мысалы, MSExcel
үшін ... ... ... көрсетілген.
Көптеген автоматтандыру серверлері, объектлері қасиеттері, атап
айтқанда MSOffice ... ... ... болып табылады.
MSExcel автоматтандыру сервері объектлері коллекциясы 2-суретте иерхия
түрінде ... ... ... үшін ... айнымалылар қолданылады. Варианнтты айнымалылар орындалу кезеңінде
айнымалыларға қатынау жағдайларында анықталатын әртүрлі типтерге ... ... | |Addlns ... ... ... ... ... ... ... ... құру ... ... көмегімен жүзеге асады. Мұндағы,
ClassName- объект класының жүйелік ... ... ... 1 ... ... Microsoft Office нұсқаларынан тәуелсіз Excel
жұмысында қолданылатын негізгі ... ... ... Excel97 ... ... ... ... OLE объектісімен жұмыс істеуде қажетті ComObj модутін
қосып алады. Ал Excel97 ... ... ... ... Олар бізге
жарияланулар xlDialogOpen және xlDialogPrint тұрақтыларынан тұрған ... ... ... Егер бұл ... ... болмаса, Excel97 модулін қоспауға
болады.
Excel-мен немесе Excel-ге енетін объектілермен жұмыс істеу ... ... ... ... ... Excel: ... ... OLEVariant;
MyRange: OLEVariant;
Excel айнымалысы Excel экзамплярымен байланыста болады. Workbok және
WorkSheet айнымалылары ... ... ... және оның ... MyRange ... ... ... диапазонымен Range мен
байланысатын болады. V айнымалысы Excel кесте ұяшықтарынан немесе оларда
жазылғандардан алынатын мәндерден ... жаңа ... іске қосу және оған ... ... ... асады:
Excel:=CreateOLEObject(‘Excel.Application’);
Бұл оператор оған көрсетілген аргументті класс объектісін құратын
және объектлермен байланыс үшін қолданылатын Idispactch типті ... ... ... ... функциясын қолданады.
Осылайша, оператор ары қарай жұмыс атқарылатын Excel жаңа экзамплярын іске
қосады.
Егер Excel жаңа экзампляр құру ... емес ... ... ... ... қосылу керек болса, онда ... ... ... ... ... ... болады:
Excel:=GreateActiveOLEObject(‘Excel.Application’);
GetActiveOleObject функциясы GreateOleObject-пен ... ... ... ол ... ... ... экзамплярымен
байланысу арқылы ерекшеленеді. Егер OLE тіркелген орындалу үстіндегі объект
жоқ болса немесе объекте IDispatch ... жоқ ... онда ... генерирленеді. Осылайша, егер Excel жаңа экзамплярымен байланысу
қажет болса, ал ол жоқ жағдайда жаңа ... құру ... ... онда ... ... орындауға болады:
Try
Excel:=GetActiveOleObject(‘Excel.Application’);
Except
Excel:=CreateObject(‘Excel.Application’);
End;
Excel құрылған экзампляры үнсіздік жағдайында көрінбей тұрады,
онымен жұмыс “ кадр ...... оны көре ... ... көрінетіндей етуді келесі оператормен жүзеге асыруға болады.
Excel.Visible:=True;
Егер қандайда бір операциялардан кейін Excel-ді аяқтау керек болса,
онда төмендегі операторды ... ... ... ары ... ... объектлер, VBExcel-дағы
анықтамада сипатталған, олардың қасиеттері және ... ... ... ... ашу ... оператормен жүзеге асады.
Workbook:=Excel.Workbook.Add;
Нәтижесінде Workbook айнымалысы жаңа кітапқа қатынауды
қамтамасыз етеді. Жаңа ... ... саны ... ... ... ... SheetsInNewWork қасиеті көмегімен өзгертуге болады. Мысалы,
келесі оператор парақ санын үнсіздік жағдайында 1-ге тең етіп ... ... ... ... ... ... ... ашуға боады:
If OpenDialog1. Execute;
Then Workbook:= Excel Workbooks.Open(OpenDialog1.FileName);
Жұмыс кітабын Workbook.Close; операторымен жабуға ... ... ... ... болса, онда келтірілген оператордың орындалу
нәтижесінде кітапты сақтау ... ... ... Егер ... ... Workbook.Close(SaveChanges:=False); операторын жазатын
болсақ, онда ... ... да ... ... ... ... оператор
жұмыс кітабындағы өзгертулерді Workbook1.xls ... ... ... ... ... ... “Лист1” атты парақпен
немесе осы парақты белсенді ... етіп ... ... ... оператор WorkSheet айнымалысын белсенді кітаппен
байланыстырады, ондағы аты Edit1 ... ... ... ... ... парақтағы ұяшықты белгілейді және осы ... ... ... ... ... ... ... енгізеді:
WorkSheet:= Workbook.Activesheet;
MyRange:= WorkSheetRange[Edit1.Text];
MyRange.Value:=Edit2Text;
MyRange.Font.Bold:=True;
MyRange.Font.Color:=clRed;
Төменде көрсетілген ... ... ... ... ... Workbook.Activesheet;
MyRange:= WorkSheetRange[Edit1.Text];
V:=MyRange.Value;
ShowMessage(V);
Excel диалогымен жұмыс атқару Word ... ... ... ... ... алады: яғни мәндерді беруде пареметрін
беру ... ... ... жұмыс кітабы файлын ашу диалогын шақыру келесі
оператормен жүзеге асады:
Excel.Dialogs(xlDialogOpen).Show;
Баспаға беру диалогын шақыру.
Excel.Dialogs(xlDialogPrint).Show; операторымен жүзеге асады.
Дегенмен, баспаға беруді PrintOut ... ... да ... ... ... ... ... парақтың
бір көшірмесін ғана баспаға береді. Бірақ баспаға беру ... ... ... ... ... баспаға берілетін құжатты алдынөала
қарауға мүмкіндік ... және екі ... ... ... ... ... баспаға беру алдында жай алдын-ала қарауды
Excel.ActiveSheet. PrintPreview; операторы арқылы жүзеге ... ... ... ... ... OLE автоматтандырылуын Word-жұмыстарында
қолдану істептес болып келеді. Тек, ... ... ... ... Excel-ден ерекшелінеді. ... ... ... ... Excel объектлерімен жұмыс атқаруға ұқсас
келеді. Сондықтан Word-пен байланысу операциясымен шектелуімізге ... жаңа ... ... ... түрде жүзеге асыруға болады:
Uses ComObj, Word97(для констант);
Var Word:OleVariant;

Word:=CreateOleObject(‘Word.Application’);
Word.Visible:true;
Көрініп ... Excel ... ... ғана ... аты. Ал ... ... ... қарастырылған мысалдардың барлығын
Word-та қолдануға болады.
Енді почталық бағдарламалы Ole автоматтандырылуының көмегімен ... ... ... ... түрде құрылатын және почталық
хабарды жіберетін мысал келтірілген.
Uses ComObj, Outlook8 ( ... үшін ... Outlook: ... ... ... aa@aa.ru ... орындалатын оператор Outlook айнымалысын почталық
бағдарламамен байланыстырады. Екінші ... ... ... ... ... Почталық хабарда не болып жатқанына OLEMailItem параметрі
куә болады. Хабарлар әдістер тізімінде (Recipients қасиеті ) “ aa@cc.ru ... ... СС ... ... “ хат ... ... ... Body қасиетіне Memo1 редактирлеу терезесінен хабар ... Subject ... ... ... ... Display әдісі
жіберілетін жарлықты көрнекті ... Send ... ... ... ... ... ... жабады.
Осыған ұқсас OLE Автоматтандыруының көмегімен Access-ке қатынай
алуға болады. Әрине, Access-те орындауға болатын үрдістердің барлығын ... ... етіп ... ... ... Егер ... ... жұмыс істеу қолайлы болса, онда оған таныс құралдарды ... ... ... болады. Әрине, барлық мәліметтерді өңдеуді
Delphi ... ... ... ... ... ... ... келесі түрде жүзеге асыруға болады:
Uses ComObj, Access97 ( ... үшін ... Access: ... қарай үрдістер Access объектілерінің, олардың ... және ... ... ... ... ... ақпаратты
VBAанықтамасынан алуға болады. Ал қолданылу әдістері Microsoft Office-тің
басқа элементтерінен ешқандай ерекшелігі жоқ.
1.3. ADO мәліметтер қоры ... Excel ... ... ... ... ... қоры ретінде жұмыс істеуге болады.
Ол үшін ActiveX Data Object (ADO) ... ... ... реляциялық емес мәліметтер қорын, электрондық ... ... ... ... файлдарды қоса алғанда кез келген мәліметтер
типіне арналған ... ... ... ... OLE ... арқылы жүзеге асады. ADO-мен ... ... ... ADO бет ... ... компонеттер қарастырылған.
ADO компоненттері арқылы қатынау ConnectionString қасиетінің
көмегімен немесе осы аты Connection қасиеттерімен ... ... ... ... Бұл ... ... ... мәні
ADOConnection компонентінде беріледі. ... ... ... ... ... редактор қасиетінің көмегі арқылы ODBC деректер
көзін құру болып табылады. Формаға ADOQuery ... ... ... ... ... жанында орналасқан көп
нүктелі батырмаға шерту керек. Сонда 3 ... ... ... Онда Uses Connection String радиобатырмасын қосу керек немесе
Build батырмасына басамыз.
3- сурет. Байланысу жолдарын қалыптастырудың ... ... ... көп ... Delphi-ге Microsoft ODBC-қа қатысты
терезе ашылады. Осы терезедегі “ ... ...... ... OLE ... for ODBC Drivers мәліметтер тасымалдаушысын белгелеу қажет. Одан
кейін “ ...... өту үшін ... ... шертуге болады 4-
сурет немесе осы бетке бірден өтуге болады. Егер сізде мәліметтер ... ... онда ... имя ... ... ” радиобатырмасы
астындағы тізімнен таңдау керек.Онда бізге керекті ... ... ... қажет. Оның құрылуы үшін “Использовать ... ... ... ... ... ... ... керек.
4 -сурет. Қосуды таңдау терезесі.
5-суретте көрсетілген мәліметтер ... ... ... ... ... ... ... үшін ортақ қатынау болу үшін мәліметтер
көзін құру керек болса, онда ... ... ... ... ” беті ... ... ... орналасқан мәліметтер көзі тізімінде өзіңіздің
мәліметтер көзі жоқ болса, онда ... ... басу ... ... ... ... мәліметтер көзін құру үшін драйверді таңдау
терезесі ашылады. Ол терезе MicrosoftExcel ... ... және ...... ... ... кейін ашылған терезеде құрылатын
мәліметтер көзінің атын енгізіңіз, мысалы, ... ... ... ... ... ... көзі ... мағұлматтардан тұратын
терезе ашылады. Егер кейбіреулері дұрыс емес ... онда ... ... ... терезеге өтуге болады. Егер барлығы дұрыс болса, “Готово”
батырмасына шертіңіз.
5-Сурет. Мәліметтер көзін таңдау терезесі.
Сіздің ... ... ... ODBC ... ... ашылады. “Версия” тізімінен Excel-ң кез келген ... ... ... книги”батырмасына шерту арқылы мәліметтер қорына жұмыс
істейтін .xls файлдарының бірі таңдалатын терезе ... ... алып ... ... мәліметтер қорында кестелер құра
алмайсыз. OK батырмасына басу ... файл аты ... 6- ... Егер сіз ... ... ... ... кетсеңіз,
онда оны “Параметры ”батырмасына шерту арқылы өзгертуге болады.
6-сурет. Драйвер орнату терезесі.
OK батырмасына шерту арқылы 5-суретте көрсетілген терезеге ... ... де ОК ... басасыз. Сіз 4-суретке ораласыз.Онда сіз қосу
жолдарының қалыптасу дайындығын көре ... ... ... каталог”
тізімінен мәліметтер қоры файлын таңдауға болады. Қолданушы аты, ... ... ... ... ... ... “Разрешить сохранение
пароля” идентификаторды қосуыңызға болады. Онда пароль ... ... ... ... ... пароль” идентификаторды қосу қолданушыға мәліметтер
қорымен байланысуда бос ... ... ... ... ... ... мүмкіндік береді. Егер қалыптасқан байланыс
жолында қандайда бір қателерболса, онда сізге қателер ... ... ... ... ... ... осы терезеде 3-суретке ораласыз. Терезеде
Uses Connection String ... ... ОК ... шерту
кезінде ADOQuery компонентінің ConnectionString қасиетіне тасымалданатын
байланыс жолының толық мәтіні ... ... ... ... көзі
бар ADO-ң кез енлген компонентімен байланысу ... ... ... ... ... ... ... жеңілдететін басқада
қатарлары бар. ConnectionString қасиетін ... үшін ... ... арқылы мәліметтер қорына жаңа кесте құруға болады.
Мысалы, оның қасиетіне SQL операторын жазуға болады.
Greate Table MyTable (Dep ... FIO ... Integer, Sex ... ... ... ... Dep FIO, Year_b, Sex ... бар MyTable
кестесі құрылады. ADOQuery1 компонентінің true ... Active ... ... ... ... ... іске ... болады.
Құрылған мәліметтер қорымен ары қарай жұмыс және оның кестелерімен жұмыс
оның кез келген ... қоры ... ... Сіз ... ADOTable, ADOQuery және т.б компоненттерді ConnectionString қасиеті
арқылы қосылуға болады. Мәліметтер қорына ADOConnection компонентін ... ал ... ... ... ... арқылы байланыстыруға
болады. Мәліметтер қорымен жұмыс кезінде мәліметтерді алдын-ала қарау,
реттеу, сүзгілеу, ... ... құру және ... ... кез ... орындауға болады. Егер Excel ... ... ... ... ... онда ... қоры ... кітаптың кәдімгі
парағы сияқты болып келеді. ... ... SQL ... ... ... ... ... |FIO |Year_b |Sex |Num ... ... Иван ... |1960 |м |1 ... 2 ... ... ... |1970 |м |2 ... 1 ... Петр ... |1980 |м |3 ... 1 |Иванова Ирина Ивановна |1980 |ж |4 ... ... ... ... редактирлеуге болады және
жаңа мәндер мәліметтер қоры кітабымен жұмыс істеген кезде бейнеленеді.
Бірақ, жаңа ... Excel ... ... ... яғни ... ... ... бейнеленбейді.
Кітапта Excel құралдарымен жаңа парақтар құруға болады және оларды
кез-келген құжаттарда орналастыруға ... Бұл ... ... ... ... ... Осы парақтар орналасқан құжаттарды ... ... ... ... бұл ... да ... ... отырып
мәліметтер қоры кесте парақтары ретінде қолдануға болады.
Алмасу буферлерін қолдану.
Алмасу буфері-барлық орындалатын қолданбаларға мүмкіндікті Window
ядроларының және жергілікті жады ... ... ... ... T ... ... ... басқару функцияларының
барлығын инкапсуляциялайды. Қолданбада ClipBoard класс экзамплярын көрсету
мүмкіндікті болады және ... ... ... ... ... орнын ауыстыра алады және компонент
сүйемелдейтін форматтары деректерді ClipBoard-тан шығара алады.
Мүмкін ... ... ... ... ... ... болады.
Windows.pas-та сақталған мүмкін форматтағы тұрақтылар тізімі:
CF_TEXT=1, текст;
CE_BITMAP=2, графикалық bmp–деректері;
CF_METAFILEPICT=3, Windows метафайлдардың графикалық деректері және
т.б.
Алмасу буферінде ... ... ... ... ақпаратты
Function HasFormat(Format:Word):Boolean әдісі қайтарады.
Компоненттердің сәйкес қасиеттерінде сақталған (TEdit.Text,
TRichEdit.Lines, ... және т.б) ... ... ... үшін ... ... PasteFromClipBoard әдісі
қолданылады. Графикалдық деректердің (TGraphic, TBitMap, TPicture,
TMetaFile және т.б сәйкес типті )алмасу ... ... ... Мысалы, төмендегі
фрагмент буфердегі деректерді сәйкес компоненттерге қоюды қамтамасыз етеді.
If not EmptyClipBoard then
If ClipBoard.HasFormat(CF_Text) then Memo1.PasteFromClipBoard
{255 символдан аспайтын өлшемдегі ... ... ... TClipBoard.As Text қасиетін қолдануға болады, мысалы
Edit1.Text:=Clipboard.AsText }
Else if ... ... ... else …;- ... ... ... ... деректерден тұратын болса true мәнін қайтарады. Буферді тазлауда
TClipBoard.Clear әдісі мүмкіндік береді.
OLE ... ... ... OLE ... ... құжаттар құру үшін
жетілдірілген .
OLE объектісі-бұл қолданба OLE құрылған орта жайлы ақпараттардан
тұратын ... ... ... және т.б ... ... ... ... OLE объекттісін қарастыруда екі типін атай ... ... ... үшін ... ... ( ... ... немесе
иконка);
- оның визуалды ұсынылуы құрылатын тікелей деректер;
Тікелей ... ... ... ... ... бөлуге болады:
- енгізілген (объектінің өзінде сақталған, өлшемі ұлғайтылған, бірақ
тасымалданатын құжат мәселесі шешіледі);
- байланысқан ( құжат ... ... ... ... бірақ
әрқашан құжат көзін тасымалдауға қажетті OLE-контейнерінен тұратын
қолданбаны немесе ... ... ... мәселелер туындайды);
TOLEContainer класы Delphi қолданбасындағы құрамды құжаттардың
функционалды мүмкіндіктерін инкапсуляциялайды.
TOLEContainer-OLE ... ... ... мен ... ... ... әрекетін өңдейтін Drag&Drop және т.б
интерфейс ... ... ... ... бір ... бір ғана OLE ... арналған. Қолданбада бір неше контнейрлер қолданылуы мүмкін.
OLE контейнерінің негізгі ... ... ... ... ... ... ... жағдайында
жүйелік реестрда тіркелген Clsld объект класының идентификаторы.
-Property ObjectVerbs: Tstrings;-объект ... ... ... ... ... integer; ... объектмен
сүйемелденетін командалар тізімі.
-Property SourseDoc:String;-контейнерде сақталған объектлерді
байланыстыратын файл-көзінің спецификациясы.
OLE контейнерінің жағдайы және онда орналасқан ... ... ... ... ... State қасиеті бойынша анықталады:
-оsEmpty-контейнер бос;
- osLoaded –объект контейнерде, сервер іске қосылмаған;
- osRunning- объект контейнерде, сервер ... іске ... ... ... ... ... ... тұр.
- оslnPlaceActive-объект “орын бойынша ” активтелген, бірақ меню мен
панель активтелген.
Объект жағдайын ... OLE ... ... және ... өлшемдегі және
құрылымдағы объектлермен жұмыс кезіндегі контейнерді есептеуге мүмкіндік
береді.
Енгізілген объектлер үшін ... ... ... ... ... ... ... ” серверін нәтижелі активизациялау үшін
TmenuMain компонентін қолдану қажет.
Объект ... ... ... ... ... ... арқылы жзеге асуы мүмкін:
-aa Manual- DoVorb әдісі арқылы қолмен белсенділеу;
- ... ... ... контейнерін алу жағдайында;
- aaDblClick- екі шерту кезінде.
OLE объектісінің контейнерде орналасуын қамтамасыз ететін ... ... (const ... ... класының белгілі идентификаторы бойынша объект құру;
Function InsertObjectDialog:Boolean; объект қою ... ... ... ... ... ... енгізілген объект сақтау;
Procedure CreateLinkToFile(FileName:string; Iconic:Boolean);-
FileName құжат көзімен байланысты объект қою;
Function PasteSpesialDialog:Boolean; -буфермен ... ... ... ... контейнерде
орналасқан объектлерді алдын-ала қарауға және қасиеттерін ... ... ... FileName:string);
Procedure SaveToStream(Stream: TStream); контейнердегі ... ... деп ... ... ... ... ... контейнер Delphi
қолданбасындағы мәліметтер ... BLOB ... OLE ... ... үшін ... ... ... ЖҰМЫСТАР
«На конец» өрісіндегі деректердің есептік периоды аяқталуы бойынша
фарма баланс ... ... ... кестесіне ауыстырылады. Архив
кестесінің құрылымы жалпы түрде болады ... жол k1_98, k298, ... k1_99, k2_99, k3_99, ... т.с.с ... ... периодтары үшін).
Архив кестелеріндегі деректер бойынша “Осноные средства” (80 жол)
бөліміндегі қортынды көрсеткіштердің динамикалық ... үшін ... ... ... тұрғызу үшін DM.Q.SQL қасиетіне сәйкес бір жолдан
тұратын деректер жиыны құрылады:
‘Select from Archbalance WHERE Balance.строка =80’
7-сурет.
7-сурет архивтен тұратын ... ... ... в Excel”
батырмасына шерту оқиғасын ... ... ... код фрагменті 8-
суретке сәйкес электронды кітапта құрылған ... ... ... ... етеді.
MsExcel:OLEVariant жергілікті айнымалысы автоматтандыру объектісіне
көрсеткіш болып табылады.
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, ... Grids, Menus, ... ComObj, ... DB, DBTables, ExtCtrls, DBCtrls;
type
Tdm = class(TForm)
Button1: TButton;
DBNavigator1: TDBNavigator;
Button2: TButton;
Button3: TButton; Query1: TQuery; Query2: TQuery;
DBGrid2: TDBGrid; DBGrid1: TDBGrid; Button4: ... TButton; ... ... ... TLabel; Label2: ... ... ... Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
dm: Tdm; ... *.dfm} ... ... ... ... {Excel-ге енетін объектлермен жұмыс жасайтын
параметр.}
begin
Try
MSExcel:=CreateOLEObject('Excel.Application'); {Excel жаңа
экзамплярын іске қосу және оған қатынау}
MSExcel.WorkBooks.Add; {Жаңа жұмыс ... ... ... не ... ... ету}
Except
MessageDlg('С Excel что то не то ...', mtInformation,[mbOk],0);
exit
End;
MSExcel.WorkBooks[1].WorkSheets[1].Cells[1,1]:='Квартал';
MSExcel.WorkBooks[1].WorkSheets[1].Cells[1,2]:='Итого';
dm.Query1.FieldByName(DM.Query1.Fields[0].FieldName).AsString;
n:=1;
for i:=2 to dm.Query1.Fields.Count-1 do
begin
MSExcel.WorkBooks[1].WorkSheets[1].Cells[i,1]:=dm.query1.Fields[i].
FieldName;
MSExcel.WorkBooks[1].WorkSheets[1].Cells[i,2]:=dm.Query1.FieldByName(dm.Quer
y1.Fields[i].FieldName).AsString;
n:=n+1;
end;
MSExcel.Application.Charts.Add; {Диаграммаға құру}
MSExcel.Application.ActiveChart.ChartType:=65; {xlXYScatter}
MSExcel.Application.ActiveChart.SetSourceData(Source:=MSExcel.Application.Wo
rkSheets[1].Range['A1:B'+IntToStr(n)],PlotBy:=2); ... ... ... ... ... ... жаңа түзу трендасын қосу}
MSExcel.Application.ActiveChart.ChartArea.Select;
MSExcel.Application.ActiveChart.ChartArea.Copy;
end;
procedure Tdm.Button2Click(Sender: TObject);
begin
Query2.Active:=true; Button2.Enabled:=false;
end;
procedure Tdm.Button4Click(Sender: TObject);
begin
Query1.Active:=true; Button4.Enabled:=false;
end;
procedure Tdm.Button5Click(Sender: TObject);
begin
if Query1.Active then Query1.Close; Application.Terminate;
end;
procedure Tdm.Button3Click(Sender: TObject);
begin
form2.OleContainer1.Paste;
Form2.Show; if not ... ... ... және ... ... ... ... ашылған
электронды кітап парағында орындалады. Сызық трендасы ... ... ... ары ... ... аумағын буферге көшіріп қолданбаға
қосу қажет.
8-сурет.
График (7 сурет) түймешесіне басу кезінде диаграмма контейнерінде
орналасқан қолданба терезесін көруге ... (8 ... ... ... ... жабу ... ... өңдеу сәйкес төмендегі кодтан
тұрады:
procedure Tdm.Button3Click(Sender: TObject);
begin
form2.OleContainer1.Paste;
Form2.Show;
if not varisEmpty(MSExcel) then
begin
MSExcel.Application.Quit;
MsExcel:=Unassigned
end
end;
9-сурет.
Шақыру түзетуін тексеру және ... ... ... тізімде таңдалмаған үрдістерде сервер атының болмауы болып табылады
(ctrl+Alt+Delete)
2-тапсырма: MSExcel-автоматтандыру ... ... ... ... ... ... арналған қасиеттер және
әдістерді меңгеру. Жаңа қосымша құрыңыз, қосымшаның ... Form1 ... ... Form1 ... StringGrid1 (Adiditional бетіндегі)
компонентті, MainMenu1 және Button1 ... ... ) ... ... OLEContainer1 (System) компоненттерін ... ... ... меню көмегімен немесе басқа қандайда бір әдіспен
StringGrid1 кестесін толтырамыз. МsExcel-де ... ... ... ... Excel ... басу ... кестесіндегі
мәліметті МsExcel бетіне тасымалдайды. Нүктелік диаграмманы құруда оған
аппракцимасия ... ... ... ... ... ... буферіне көшіріледі және қосымша терезесі OLEContainer1-ге
тасымалданады (11-сурет). ... ... коды ... ... ... SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, Grids, Menus, ... ComObj, ... ... = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
StringGrid1: TStringGrid;
Button1: TButton;
procedure N3Click(Sender: ... ... ... ... ... ... ... Private declarations }
public
{ Public declarations } end;
var
Form1: ... ... ... TObject);
begin
Close;
end;
procedure TForm1.FormActivate(Sender: TObject);
var i:integer;
x:extended;
begin
randomize;
Form1.StringGrid1.Cells[0,0]:='№';
Form1.StringGrid1.Cells[1,0]:='X';
Form1.StringGrid1.Cells[2,0]:='F(X)';
for i:=1 to Form1.StringGrid1.RowCount-1 do
begin
Form1.StringGrid1.Cells[0,i]:=IntToStr(i);
x:=random+10-random(20);
Form1.StringGrid1.Cells[1,i]:=FloatToStrF(x,ffFixed,4,2);
Form1.StringGrid1.Cells[2,i]:=FloatToStrF(sqr(x),ffFixed,4,2);
end
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,n:integer;
MSExcel:Variant;
begin
Try
MSExcel:=CreateOLEObject('Excel.Application.9');
MSExcel.WorkBooks.Add; {Жаңа жұмыс кітабын қосу}
MSExcel.WorkBooks[1].WorkSheets[1].Name:='ÒÅÍÄÅÍÖÈß';
MSExcel.Application.Visible:=True;
Except
MessageDlg('С Excel что то не ...', ... i:=1 to ... ... ... ... := ... := 'MS Excel';
MSExcel.Application.WorkSheets[1].Activate;
MSExcel.Application.WorkSheets[1].Range['A1:B'+IntToStr(n-1)].Select;
MSExcel.Application.Charts[1].Activate; { Диаграммаға құру }
MSExcel.Application.ActiveChart.SetSourceData(Source:=MSExcel.Application.Wo
rkSheets[1].Range['A1:B'+IntToStr(n-1)],PlotBy:=2);
MSExcel.Application.ActiveChart.SeriesCollection(1).HasDataLabels := ... ... ... not ... then ... ... жұмыста біз Delphi қолданбасында жүзеге асатын
Windows және MicrosoftOffice стандартты орнатуларына ... кең ... ... ... теориялық негізінде қарастырдық.
TOLESerber класс серверімен байланыс орнатуға мүмкіндік беретін ... ... ... ... онда қолданылатын COM серверінің
ролі туралы толық мағұлмат бердік. Соның ішінде Delphi ... ... ... ... ... ... ... құрылған немесе
мәліметтер қорынан алынған ақпараттарды Excel ортасына өңдеу, өзгертулер
енгізу, сақтауға мүмкіндік беретін ... ... ... көмегімен
қалай жұмыс істейтінін толығымен қарастырдық.
ӘДЕБИЕТТЕР ТІЗІМІ
1) А. Я. ... ... ... в Delphi. Версии 5-
7. Москва ЗАО «Издельство БИНОМ» 2003
2) Дарахвелидзе П. Г., Марков Е. П., Котенок О. А. Программированние
в ... ... ... ... ... Н. З., ... С. В. Delphi4.- Технология СОМ, OLE,
ActiveX, Automation6 MIDAS, Microsoft Transaction Serber-M.: Диалог МИФИ,
1999-320с.

Пән: Информатика
Жұмыс түрі: Курстық жұмыс
Көлемі: 40 бет
Бұл жұмыстың бағасы: 500 теңге









Ұқсас жұмыстар
Тақырыб Бет саны
VСT шаблон негізінде «Компьютерлік желілер» пәні бойынша электронды оқулық құрастыру»73 бет
Қонақ үй жұмысын автоматтандыру20 бет
Delphi және мәліметтер қоры сервері31 бет
Delphi және мәліметтер қоры сервері. мәліметтерге ado арқылы қатынау26 бет
Delphi компоненттерінің анықтамалығын құру технологиясы16 бет
Delphi программасының базалық компоненттері7 бет
MS Excel - дегі формулар мен функциялары7 бет
MS SQL Server туралы мәліметтер және жұмыс істеу негіздері4 бет
PHP- мен бірге жұмыс істейтін сервердің классикалық құралы- APACHE +PHP+MySQL44 бет
SQL Server18 бет


Исходниктер
Пәндер
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить


Зарабатывайте вместе с нами

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Сіз үшін аптасына 5 күн жұмыс істейміз.
Жұмыс уақыты 09:00 - 18:00

Мы работаем для Вас 5 дней в неделю.
Время работы 09:00 - 18:00

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь