Comments
Description
Transcript
PowerScript リファレンス ボリューム 2
PowerScript® リファレンス ボリューム 2 PowerBuilder® 10.2.1 C2 DOCUMENT ID: DC37782-01-1021-01 LAST REVISED: July 2007 Copyright © 1991-2007 by Sybase, Inc. All rights reserved. 本書に記載されているソフトウェアは、Sybase ライセンス契約に基づいて Sybase, Inc. が提供し、かかる契約の条項に従う 場合にのみ使用が許諾されます。 本書に記載されている内容は、Sybase, Inc. およびその関連会社の書面による許可なく、いかなる形態、または手段、電子 的、機械的、手作業、光学的およびその他にかかわらず、複製、転載および翻訳を禁じます。 Sybase, Sybase(ロ ゴ), AccelaTrade, ADA Workbench, Adaptable Windowing Environment, Adaptive Component Architecture, Adaptive Server, Adaptive Server Anywhere, Adaptive Server Enterprise, Adaptive Server Enterprise Monitor, Adaptive Server Enterprise Replication, Adaptive Server Everywhere, Adaptive Server IQ, Adaptive Warehouse, Anywhere Studio, Application Manager, AppModeler, APT Workbench, APT-Build, APT-Edit, APT-Execute, APT-Translator, APT-Library, AvantGo, AvantGo Application Alerts, AvantGo Mobile Delivery, AvantGo Mobile Document Viewer, AvantGo Mobile Inspection, AvantGo Mobile Marketing Channel, AvantGo Mobile Pharma, AvantGo Mobile Sales, AvantGo Pylon, AvantGo Pylon Application Server, AvantGo Pylon Conduit, AvantGo Pylon PIM Server, AvantGo Pylon Pro, Backup Server, BizTracker, ClearConnect, Client-Library, Client Services, Convoy/DM, Copernicus, Data Pipeline, Data Workbench, DataArchitect, Database Analyzer, DataExpress, DataServer, DataWindow, DB-Library, dbQueue, Developers Workbench, Direct Connect Anywhere, Distribution Director, e-ADK, E-Anywhere, eBiz Impact, e-Biz Integrator, E-Whatever, EC Gateway, ECMAP, ECRTP, eFulfillment Accelerator, Embedded SQL, EMS, Enterprise Application Studio, Enterprise Client/Server, Enterprise Connect, Enterprise Data Studio, Enterprise Manager, Enterprise SQL Server Manager, Enterprise Work Architecture, Enterprise Work Designer, Enterprise Work Modeler, eProcurement Accelerator, EWA, Financial Fusion, Financial Fusion Server, Gateway Manager, GlobalFIX, iAnywhere, ImpactNow, Industry Warehouse Studio, InfoMaker, Information Anywhere, Information Everywhere, InformationConnect, InternetBuilder, iScript, Jaguar CTS, jConnect for JDBC, Mail Anywhere Studio, MainframeConnect, Maintenance Express, Manage Anywhere Studio, M-Business Channel, M-Business Network, M-Business Server, MDI Access Server, MDI Database Gateway, media.splash, MetaWorks, My AvantGo, My AvantGo Media Channel, My AvantGo Mobile Marketing, MySupport, Net-Gateway, Net-Library, New Era of Networks, ObjectConnect, ObjectCycle, OmniConnect, OmniSQL Access Module, OmniSQL Toolkit, Open Biz, Open Client, Open ClientConnect, Open Client/ Server, Open Client/Server Interfaces, Open Gateway, Open Server, Open ServerConnect, Open Solutions, Optima++, Orchestration Studio, PB-Gen, PC APT Execute, PC DB-Net, PC Net Library, PocketBuilder, Pocket PowerBuilder, Power++, power.stop, PowerAMC, PowerBuilder, PowerBuilder Foundation Class Library, PowerDesigner, PowerDimensions, PowerDynamo, PowerJ, PowerScript, PowerSite, PowerSocket, Powersoft, PowerStage, PowerStudio, PowerTips, Powersoft Portfolio, Powersoft Professional, PowerWare Desktop, PowerWare Enterprise, ProcessAnalyst, Rapport, RepConnector, Replication Agent, Replication Driver, Replication Server, Replication Server Manager, Replication Toolkit, Report-Execute, Report Workbench, Resource Manager, RWDisplayLib, RW-Library, S-Designor, SDF, Secure SQL Server, Secure SQL Toolset, Security Guardian, SKILS, smart.partners, smart.parts, smart.script, SQL Advantage, SQL Anywhere, SQL Anywhere Studio, SQL Code Checker, SQL Debug, SQL Edit, SQL Edit/TPU, SQL Everywhere, SQL Modeler, SQL Remote, SQL Server, SQL Server Manager, SQL SMART, SQL Toolset, SQL Server/ CFT, SQL Server/DBM, SQL Server SNMP SubAgent, SQL Station, SQLJ, STEP, SupportNow, S.W.I.F.T. Message Format Libraries, Sybase Central, Sybase Client/Server Interfaces, Sybase Financial Server, Sybase Gateways, Sybase MPP, Sybase SQL Desktop, Sybase SQL Lifecycle, Sybase SQL Workgroup, Sybase User Workbench, SybaseWare, Syber Financial, SyberAssist, SyBooks, System 10, System 11, System XI(ロ ゴ), SystemTools, Tabular Data Stream, TotalFix, TradeForce, Transact-SQL, UltraLite, UltraLite.NET, UNIBOM, Unilib, Uninull, Unisep, Unistring, URK Runtime Kit for UniCode, VisualWriter, VQL, WarehouseArchitect, Warehouse Control Center, Warehouse Studio, Warehouse WORKS, Watcom, Watcom SQL, Watcom SQL Server, Web Deployment Kit, Web.PB, Web.SQL, WebSights, WebViewer, WorkGroup SQL Server, XA-Library, XA-Server および XP Server は Sybase, Inc の登録商標で す。 Unicode および Unicode のロゴは Unicode, Inc. の登録商標です。 本書で使用される会社名および製品名はそれぞれの会社の商標および登録商標です。 本書に記載されている内容は、将来予告なしに変更することがあります。また、本ソフトウェアおよび説明書を使用した ことによる損害、または第三者からのいかなる請求についても、サイベース株式会社、その親会社である米国法人 Sybase, Inc. またはその関連会社は、一切の責任を負わないものとします。 目次 本書について ............................................................................................................................... xvii 第 10 章 PowerScript 関数 .................................................................................................... Abs ............................................................................................... ACos ............................................................................................ Activate ........................................................................................ AddCategory ................................................................................ AddColumn .................................................................................. AddData ....................................................................................... AddItem ........................................................................................ AddLargePicture .......................................................................... AddPicture.................................................................................... AddSeries..................................................................................... AddSmallPicture........................................................................... AddStatePicture ........................................................................... AddToLibraryList .......................................................................... Arrange ........................................................................................ ArrangeSheets ............................................................................. Asc ............................................................................................... AscA ............................................................................................. ASin.............................................................................................. ATan............................................................................................. Beep ............................................................................................. BeginTransaction ......................................................................... Blob .............................................................................................. BlobEdit ........................................................................................ BlobMid ........................................................................................ BuildModel ................................................................................... Cancel .......................................................................................... CanUndo ...................................................................................... CategoryCount ............................................................................. CategoryName ............................................................................. Ceiling .......................................................................................... ChangeDirectory .......................................................................... PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 321 322 322 323 325 326 327 330 335 336 337 339 340 341 342 343 344 345 346 347 348 348 350 351 352 354 357 358 359 360 361 362 iii 目次 ChangeMenu................................................................................ Char ............................................................................................. CharA ........................................................................................... Check ........................................................................................... ChooseColor ................................................................................ ClassList....................................................................................... ClassName................................................................................... Clear............................................................................................. ClearBoldDates ............................................................................ Clipboard...................................................................................... Close ............................................................................................ CloseChannel............................................................................... CloseTab...................................................................................... CloseUserObject .......................................................................... CloseWithReturn .......................................................................... CollapseItem ................................................................................ CommandParm ............................................................................ CommitTransaction ...................................................................... ConnectToNewObject .................................................................. ConnectToNewRemoteObject ..................................................... ConnectToObject ......................................................................... ConnectToRemoteObject............................................................. ConnectToServer ......................................................................... Copy............................................................................................. CopyRTF...................................................................................... Cos............................................................................................... Cpu............................................................................................... CreateDirectory ............................................................................ CreateInstance............................................................................. CreatePage .................................................................................. Cut................................................................................................ DataCount .................................................................................... DataSource .................................................................................. Date.............................................................................................. DateTime...................................................................................... Day............................................................................................... DayName ..................................................................................... DayNumber .................................................................................. DaysAfter ..................................................................................... DBHandle ..................................................................................... DebugBreak ................................................................................. Dec............................................................................................... DeleteCategory ............................................................................ DeleteColumn .............................................................................. iv 363 364 365 366 367 368 369 371 373 374 376 380 381 383 384 387 388 389 391 393 395 397 400 402 405 407 408 408 409 413 414 417 418 420 424 425 426 427 428 429 430 431 431 432 PowerBuilder 目次 DeleteColumns............................................................................. DeleteData ................................................................................... DeleteItem.................................................................................... DeleteItems .................................................................................. DeleteLargePicture ...................................................................... DeleteLargePictures..................................................................... DeletePicture................................................................................ DeletePictures .............................................................................. DeleteSeries................................................................................. DeleteSmallPicture....................................................................... DeleteSmallPictures ..................................................................... DeleteStatePicture ....................................................................... DeleteStatePictures ..................................................................... DestroyModel ............................................................................... DirectoryExists ............................................................................. DirList ........................................................................................... DirSelect....................................................................................... Disable ......................................................................................... DisableCommit ............................................................................. DisconnectObject ......................................................................... DisconnectServer......................................................................... Double .......................................................................................... DoVerb ......................................................................................... Drag ............................................................................................. DraggedObject ............................................................................. Draw ............................................................................................. EditLabel ...................................................................................... Enable .......................................................................................... EnableCommit.............................................................................. EntryList ....................................................................................... ExecRemote................................................................................. Exp ............................................................................................... ExpandAll ..................................................................................... ExpandItem .................................................................................. Fact .............................................................................................. FileClose ...................................................................................... FileCopy ....................................................................................... FileDelete ..................................................................................... FileEncoding ................................................................................ FileExists...................................................................................... FileLength .................................................................................... FileLength64 ................................................................................ FileMove....................................................................................... FileOpen....................................................................................... PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 433 433 434 437 438 438 439 439 440 441 441 442 442 443 444 444 446 448 448 450 451 452 453 454 456 457 459 461 462 463 464 468 468 469 470 470 471 472 472 474 475 476 477 478 v 目次 FileRead....................................................................................... FileReadEx................................................................................... FileSeek ....................................................................................... FileSeek64 ................................................................................... FileWrite ....................................................................................... FileWriteEx................................................................................... Fill................................................................................................. FillA .............................................................................................. FillW ............................................................................................. Find .............................................................................................. FindCategory................................................................................ FindClassDefinition ...................................................................... FindFunctionDefinition ................................................................. FindItem ....................................................................................... FindMatchingFunction.................................................................. FindNext....................................................................................... FindSeries .................................................................................... FindTypeDefinition ....................................................................... FromAnsi ...................................................................................... FromUnicode................................................................................ GarbageCollect ............................................................................ GarbageCollectGetTimeLimit ....................................................... GarbageCollectSetTimeLimit ....................................................... GetActiveSheet ............................................................................ GetAlignment ............................................................................... GetApplication.............................................................................. GetArgElement............................................................................. GetAutomationNativePointer........................................................ GetCertificateLabel ...................................................................... GetChildrenList ............................................................................ GetColumn ................................................................................... GetCommandDDE ....................................................................... GetCommandDDEOrigin.............................................................. GetCompanyName ...................................................................... GetContextKeywords ................................................................... GetContextService ....................................................................... GetCredentialAttribute.................................................................. GetCurrentDirectory ..................................................................... GetData........................................................................................ GetDataDDE ................................................................................ GetDataDDEOrigin....................................................................... GetDataPieExplode...................................................................... GetDataStyle................................................................................ GetDataValue............................................................................... vi 483 485 487 489 490 492 495 496 496 497 498 500 501 502 509 511 512 513 515 516 516 517 517 519 520 521 522 523 524 527 528 530 531 532 533 534 536 538 539 544 545 546 548 554 PowerBuilder 目次 GetDateLimits .............................................................................. GetDisplayRange ......................................................................... GetDynamicDate .......................................................................... GetDynamicDateTime .................................................................. GetDynamicNumber..................................................................... GetDynamicString ........................................................................ GetDynamicTime ......................................................................... GetEnvironment ........................................................................... GetFileOpenName ....................................................................... GetFileSaveName ........................................................................ GetFirstSheet ............................................................................... GetFixesVersion........................................................................... GetFocus...................................................................................... GetFolder ..................................................................................... GetGlobalProperty ....................................................................... GetHostObject.............................................................................. GetItem ........................................................................................ GetItemAtPointer.......................................................................... GetLastReturn.............................................................................. GetLibraryList............................................................................... GetMajorVersion .......................................................................... GetMessage................................................................................. GetMinorVersion .......................................................................... GetName...................................................................................... GetNativePointer.......................................................................... GetNextSheet............................................................................... GetOrigin...................................................................................... GetParagraphSetting ................................................................... GetParent..................................................................................... GetPin .......................................................................................... GetRecordSet .............................................................................. GetRemote................................................................................... GetSelectedDate.......................................................................... GetSelectedRange....................................................................... GetSeriesStyle ............................................................................. GetShortName ............................................................................. GetSpacing .................................................................................. GetStatus ..................................................................................... GetTextColor................................................................................ GetTextStyle ................................................................................ GetToday ..................................................................................... GetToolbar ................................................................................... GetToolbarPos ............................................................................. GetTransactionName ................................................................... PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 556 558 560 562 563 564 565 566 568 573 576 577 578 579 580 581 583 586 587 588 589 590 591 592 593 594 595 596 597 599 601 602 605 606 607 614 615 616 618 618 619 620 622 625 vii 目次 GetURL ........................................................................................ GetVersionName.......................................................................... Handle.......................................................................................... Hide.............................................................................................. Hour ............................................................................................. HyperLinkToURL.......................................................................... Idle ............................................................................................... IMEGetCompositionText .............................................................. IMEGetMode ................................................................................ IMESetMode ................................................................................ ImpersonateClient ........................................................................ ImportClipboard............................................................................ ImportFile ..................................................................................... ImportString.................................................................................. IncomingCallList........................................................................... Init ................................................................................................ InputFieldChangeData ................................................................. InputFieldCurrentName................................................................ InputFieldDeleteCurrent ............................................................... InputFieldGetData ........................................................................ InputFieldInsert ............................................................................ InputFieldLocate........................................................................... InsertCategory.............................................................................. InsertClass ................................................................................... InsertColumn................................................................................ InsertData..................................................................................... InsertDocument............................................................................ InsertFile ...................................................................................... InsertItem ..................................................................................... InsertItemFirst .............................................................................. InsertItemLast .............................................................................. InsertItemSort............................................................................... InsertObject.................................................................................. InsertPicture ................................................................................. InsertSeries .................................................................................. Int ................................................................................................. Integer .......................................................................................... InternetData ................................................................................. IntHigh.......................................................................................... IntLow........................................................................................... InvokePBFunction ........................................................................ _Is_A ............................................................................................ IsAlive........................................................................................... IsAllArabic .................................................................................... viii 626 627 628 630 631 632 633 635 636 637 638 639 642 647 650 652 656 657 658 659 660 661 663 665 666 667 670 672 673 680 682 685 687 688 689 691 692 693 694 695 695 697 698 699 PowerBuilder 目次 IsAllHebrew .................................................................................. IsAnyArabic .................................................................................. IsAnyHebrew ................................................................................ IsArabic ........................................................................................ IsArabicAndNumbers ................................................................... IsCallerInRole............................................................................... IsDate ........................................................................................... IsHebrew ...................................................................................... IsHebrewAndNumbers ................................................................. IsImpersonating............................................................................ IsInTransaction............................................................................. IsNull ............................................................................................ IsNumber...................................................................................... IsPreview...................................................................................... IsSecurityEnabled ........................................................................ IsTime .......................................................................................... IsTransactionAborted ................................................................... IsValid .......................................................................................... KeyDown...................................................................................... LastPos ........................................................................................ LastPosW..................................................................................... Left ............................................................................................... LeftA............................................................................................. LeftC............................................................................................. LeftW ............................................................................................ LeftTrim ........................................................................................ LeftTrimW..................................................................................... Len ............................................................................................... LenA............................................................................................. LenW ............................................................................................ Length .......................................................................................... LibraryCreate ............................................................................... LibraryDelete................................................................................ LibraryDirectory ............................................................................ LibraryDirectoryEx........................................................................ LibraryExport................................................................................ LibraryImport ................................................................................ LineCount..................................................................................... LineLength ................................................................................... LineList......................................................................................... LinkTo .......................................................................................... LoadInk ........................................................................................ LoadPicture .................................................................................. Log ............................................................................................... PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 700 701 701 702 703 703 705 706 707 708 709 710 711 712 713 714 715 716 717 720 722 722 723 724 724 724 725 725 727 727 728 729 730 731 732 734 736 737 739 740 741 742 743 744 ix 目次 LogTen ......................................................................................... Long ............................................................................................. LongLong ..................................................................................... Lookup ......................................................................................... Lower ........................................................................................... LowerBound ................................................................................. mailAddress ................................................................................. mailDeleteMessage...................................................................... mailGetMessages ........................................................................ mailHandle ................................................................................... mailLogoff..................................................................................... mailLogon..................................................................................... mailReadMessage ....................................................................... mailRecipientDetails..................................................................... mailResolveRecipient................................................................... mailSaveMessage........................................................................ mailSend ...................................................................................... Match ........................................................................................... MatchW ........................................................................................ Max .............................................................................................. MemberDelete.............................................................................. MemberExists .............................................................................. MemberRename .......................................................................... MessageBox ................................................................................ Mid ............................................................................................... MidA ............................................................................................. MidC ............................................................................................. MidW ............................................................................................ Min ............................................................................................... Minute .......................................................................................... Mod .............................................................................................. ModifyData ................................................................................... Month ........................................................................................... Move ............................................................................................ MoveTab ...................................................................................... _Narrow........................................................................................ NextActivity .................................................................................. Now .............................................................................................. ObjectAtPointer ............................................................................ Object_To_String ......................................................................... OffsetPos ..................................................................................... Open ............................................................................................ OpenChannel ............................................................................... OpenSheet ................................................................................... x 746 747 749 751 757 757 759 761 762 764 765 766 768 770 772 774 777 779 782 782 783 784 785 787 789 791 792 792 793 793 794 795 797 798 800 801 802 803 805 807 808 809 825 827 PowerBuilder 目次 OpenSheetWithParm ................................................................... OpenTab ...................................................................................... OpenTabWithParm ...................................................................... OpenUserObject .......................................................................... OpenUserObjectWithParm........................................................... OpenWithParm............................................................................. OutgoingCallList ........................................................................... PageCount ................................................................................... PageCreated ................................................................................ ParentWindow .............................................................................. Paste ............................................................................................ PasteLink ..................................................................................... PasteRTF ..................................................................................... PasteSpecial ................................................................................ Pi .................................................................................................. PixelsToUnits ............................................................................... Play .............................................................................................. PointerX ....................................................................................... PointerY ....................................................................................... PopMenu...................................................................................... PopulateError ............................................................................... Pos ............................................................................................... PosA............................................................................................. PosW............................................................................................ Position ........................................................................................ Post .............................................................................................. PostEvent..................................................................................... PostURL....................................................................................... Preview ........................................................................................ Print .............................................................................................. PrintBitmap................................................................................... PrintCancel................................................................................... PrintClose..................................................................................... PrintDataWindow ......................................................................... PrintDefineFont ............................................................................ PrintEx.......................................................................................... PrintGetPrinter ............................................................................. PrintGetPrinters............................................................................ PrintLine ....................................................................................... PrintOpen ..................................................................................... PrintOval ...................................................................................... PrintPage ..................................................................................... PrintRect ...................................................................................... PrintRoundRect ............................................................................ PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 830 834 838 843 848 853 859 861 862 863 864 866 867 869 870 871 872 873 874 875 876 877 879 880 880 886 887 890 893 894 901 902 904 905 906 908 909 910 911 912 914 915 916 917 xi 目次 PrintScreen .................................................................................. PrintSend ..................................................................................... PrintSetFont ................................................................................. PrintSetPrinter.............................................................................. PrintSetSpacing ........................................................................... PrintSetup .................................................................................... PrintSetupPrinter.......................................................................... PrintText....................................................................................... PrintWidth..................................................................................... PrintX ........................................................................................... PrintY ........................................................................................... ProfileInt ....................................................................................... ProfileString.................................................................................. Rand............................................................................................. Randomize ................................................................................... Read............................................................................................. Real.............................................................................................. RecognizeText ............................................................................. RegistryDelete.............................................................................. RegistryGet .................................................................................. RegistryKeys ................................................................................ RegistrySet................................................................................... RegistryValues ............................................................................. RelativeDate................................................................................. RelativeTime ................................................................................ ReleaseAutomationNativePointer ................................................ ReleaseNativePointer .................................................................. RemoveDirectory ......................................................................... Repair........................................................................................... Replace ........................................................................................ ReplaceA...................................................................................... ReplaceText ................................................................................. ReplaceW..................................................................................... Reset............................................................................................ ResetArgElements ....................................................................... ResetDataColors.......................................................................... ResetInk ....................................................................................... ResetPicture................................................................................. Resize .......................................................................................... Resolve_Initial_References ......................................................... RespondRemote .......................................................................... Restart.......................................................................................... ResumeTransaction ..................................................................... Reverse........................................................................................ xii 919 920 922 923 924 925 926 927 929 930 931 932 934 937 937 938 941 942 943 944 945 946 948 949 950 950 951 952 953 954 956 957 958 958 961 962 964 964 965 966 968 969 970 972 PowerBuilder 目次 RevertToSelf ................................................................................ 972 RGB ............................................................................................. 973 Right ............................................................................................. 976 RightA .......................................................................................... 976 RightC .......................................................................................... 977 RightW ......................................................................................... 977 RightTrim...................................................................................... 977 RightTrimW .................................................................................. 978 RollbackOnly ................................................................................ 978 RollbackTransaction..................................................................... 980 Round........................................................................................... 981 RoutineList ................................................................................... 982 Run............................................................................................... 983 Save ............................................................................................. 985 SaveAs......................................................................................... 989 SaveDocument............................................................................. 997 SaveInk ........................................................................................ 999 Scroll .......................................................................................... 1001 ScrollNextPage .......................................................................... 1002 ScrollNextRow............................................................................ 1003 ScrollPriorPage .......................................................................... 1004 ScrollPriorRow ........................................................................... 1005 ScrollToRow ............................................................................... 1006 Second ....................................................................................... 1007 SecondsAfter.............................................................................. 1008 Seek ........................................................................................... 1009 SelectedColumn ......................................................................... 1011 SelectedIndex ............................................................................ 1012 SelectedItem .............................................................................. 1013 SelectedLength .......................................................................... 1014 SelectedLine .............................................................................. 1015 SelectedPage............................................................................. 1017 SelectedStart.............................................................................. 1017 SelectedText .............................................................................. 1019 SelectionRange.......................................................................... 1020 SelectItem .................................................................................. 1021 SelectObject............................................................................... 1026 SelectTab ................................................................................... 1026 SelectText .................................................................................. 1027 SelectTextAll .............................................................................. 1032 SelectTextLine ........................................................................... 1033 SelectTextWord.......................................................................... 1034 Send ........................................................................................... 1036 SeriesCount ............................................................................... 1038 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 xiii 目次 SeriesName ............................................................................... SetAbort ..................................................................................... SetAlignment.............................................................................. SetArgElement ........................................................................... SetAutomationLocale ................................................................. SetAutomationPointer ................................................................ SetAutomationTimeout............................................................... SetBoldDate ............................................................................... SetColumn ................................................................................. SetComplete .............................................................................. SetData ...................................................................................... SetDataDDE............................................................................... SetDataPieExplode .................................................................... SetDataStyle .............................................................................. SetDateLimits............................................................................. SetDropHighlight ........................................................................ SetDynamicParm ....................................................................... SetFirstVisible ............................................................................ SetFocus .................................................................................... SetGlobalProperty...................................................................... SetItem....................................................................................... SetLevelPictures ........................................................................ SetLibraryList ............................................................................. SetMask ..................................................................................... SetMessage ............................................................................... SetMicroHelp.............................................................................. SetNull........................................................................................ SetOverlayPicture ...................................................................... SetParagraphSetting.................................................................. SetPicture................................................................................... SetPointer .................................................................................. SetPosition ................................................................................. SetProfileString .......................................................................... SetRange ................................................................................... SetRecordSet............................................................................. SetRedraw ................................................................................. SetRemote ................................................................................. SetResultSet .............................................................................. SetSeriesStyle............................................................................ SetSelectedDate ........................................................................ SetSelectedRange ..................................................................... SetSpacing................................................................................. SetState ..................................................................................... SetTextColor .............................................................................. xiv 1039 1041 1044 1045 1046 1048 1049 1051 1053 1054 1057 1058 1060 1061 1067 1068 1069 1070 1071 1072 1074 1078 1079 1081 1082 1083 1084 1085 1087 1088 1089 1090 1093 1095 1096 1097 1098 1101 1102 1110 1111 1112 1113 1114 PowerBuilder 目次 SetTextStyle............................................................................... SetTimeout................................................................................. SetToday.................................................................................... SetToolbar.................................................................................. SetToolbarPos ........................................................................... SetTop........................................................................................ SetTraceFileName ..................................................................... SetTransPool ............................................................................. SharedObjectDirectory ............................................................... SharedObjectGet ....................................................................... SharedObjectRegister ................................................................ SharedObjectUnregister............................................................. Show .......................................................................................... ShowHeadFoot .......................................................................... ShowHelp................................................................................... ShowPopupHelp ........................................................................ Sign ............................................................................................ SignalError ................................................................................. Sin .............................................................................................. Sleep .......................................................................................... Sort............................................................................................. SortAll......................................................................................... Space ......................................................................................... Sqrt............................................................................................. Start............................................................................................ StartHotLink ............................................................................... StartServerDDE ......................................................................... State ........................................................................................... StepIt .......................................................................................... Stop ............................................................................................ StopHotLink................................................................................ StopServerDDE.......................................................................... String .......................................................................................... String_To_Object ....................................................................... SuspendTransaction .................................................................. SyntaxFromSQL......................................................................... SystemRoutine........................................................................... TabPostEvent............................................................................. TabTriggerEvent ........................................................................ Tan ............................................................................................. Text ............................................................................................ TextLine ..................................................................................... Time ........................................................................................... Timer .......................................................................................... PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 1115 1116 1117 1118 1120 1124 1125 1126 1129 1130 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1142 1144 1146 1147 1148 1156 1157 1159 1161 1162 1163 1164 1165 1171 1175 1176 1179 1181 1182 1183 1184 1185 1186 1189 xv 目次 ToAnsi ........................................................................................ Today ......................................................................................... Top ............................................................................................. TotalColumns ............................................................................. TotalItems .................................................................................. TotalSelected ............................................................................. ToUnicode.................................................................................. TraceBegin................................................................................. TraceClose................................................................................. TraceDisableActivity................................................................... TraceEnableActivity ................................................................... TraceEnd.................................................................................... TraceError .................................................................................. TraceOpen ................................................................................. TraceUser .................................................................................. TriggerEvent............................................................................... TriggerPBEvent.......................................................................... Trim ............................................................................................ TrimW......................................................................................... Truncate ..................................................................................... TrustVerify.................................................................................. TypeOf ....................................................................................... Uncheck ..................................................................................... Undo........................................................................................... UnitsToPixels ............................................................................. UpdateLinksDialog ..................................................................... Upper ......................................................................................... UpperBound ............................................................................... Which ......................................................................................... WordCap .................................................................................... WorkSpaceHeight ...................................................................... WorkSpaceWidth ....................................................................... WorkSpaceX .............................................................................. WorkSpaceY .............................................................................. Write........................................................................................... XMLParseFile............................................................................. XMLParseString ......................................................................... Year............................................................................................ Yield ........................................................................................... 1190 1191 1192 1193 1194 1195 1196 1197 1199 1200 1202 1204 1205 1206 1208 1209 1212 1214 1214 1215 1216 1220 1222 1223 1224 1225 1226 1227 1229 1230 1231 1232 1233 1234 1235 1236 1240 1243 1244 Index ......................................................................................................................................... 1247 xvi PowerBuilder 本書について 対象とする読者 このマニュアルは、PowerBuilder® を使ってクライアント サーバ アプリケーション、多階層アプリケーション、または Web アプリ ケーションの開発に携わっているプログラマを対象にしていま す。 目的 このマニュアルは、PowerScript® 言語の変数、式、ステートメン ト、イベント、および関数など、その構文と使い方について解説 しています。 2 つのボリューム このマニュアルは、次の 2 つのボリュームに分かれています。 ボリューム ボリューム 1 ボリューム 2 内容 第 1 章∼第 9 章 第 10 章(PowerScript の関数) 関連マニュアル PowerBuilder のすべてのマニュアルの一覧については、 『PowerBuilder 入門』マニュアルを参照してください。 そのほかの参照情報 製品に関するそのほかの詳細情報については、Sybase のテクニカ ル ライブラリ CD やテクニカル ライブラリ製品マニュアル Web サイト(英語)を参照してください。 • ソフトウェア付属のテクニカル ライブラリ CD には、製品マ ニュアルが収められています。製品マニュアルは、PDF 形式 にて提供しています。 テクニカル ライブラリ CD の使い方については、テクニカル ライブラリ CD 内の Readme.txt ファイルを参照してください。 テクニカル ライブラリ製品マニュアルの Web サイト(英語) に は、Product Manuals のサイト http://www.sybase.com/support/manuals/ からアクセスできます。 PowerScript リファレンス ボリューム 2 xvii 表記規則 このマニュアルは、以下の表記規則を使用します。 表記例 Retrieve と Update 意味 説明文で使用されている場合、左記のフォント は次のいずれかを表します。 • コマンド名、関数名、メソッド名 • TRUE、FALSE、NULL などのキーワード • Integer 型、Char 型などのデータ型 • emp_id、f_name などのデータベース カラム 名 変数(variable)または ファイル名(file name) • dw_emp、w_main などのユーザ定義オブ ジェクト 説明文と構文の説明で使用された場合、斜体は 次のいずれかを表します。 • myCounter などの変数名 • 入力テキストで pblname.pbd など入力が必要 な部分 [ファイル|上書き保存] dw_1.Update() • ファイルとパス名 メニュー名やメニュー項目は、単純なテキスト で記述されています。縦棒(|)は、メニュー の選択順序を示します。たとえば、 [ファイル| 上書き保存]は、 「[ファイル]メニューから[上 書き保存]を選択する」ことを示します。 このフォントは、以下のいずれかを表します。 • ダイアログボックスやコマンド ラインに入 力する情報 • サンプル スクリプトの一部 • サンプル出力の一部 サポートについて xviii 製品に同梱している「サポート ハンドブック」を参照してください。 PowerBuilder 第 1 0 章 PowerScript 関数 この章について この章では、PowerScript 関数の構文、説明、および例を示します。 内容 以下に、各関数をアルファベット順にリストします。 関連項目 データウィンドウまたはデータストアに適用される関数について は、 『データウィンドウ リファレンス』マニュアルも参照してくだ さい。データウィンドウにのみ適用され、ほかの PowerBuilder コ ントロールに適用されないメソッドは、 『データウィンドウ リファ レンス』マニュアルにしか記載されていません。 PowerScript リファレンス ボリューム 2 321 Abs Abs 機能 数値の絶対値を計算します。 構文 Abs ( n ) 引数 n 説明 絶対値に変換する数値を指定します。 戻り値 n に指定された数値と同じデータ型。n に指定された数値の絶対値を返 します。n に指定された値が NULL の場合、NULL を返します。 例 以下のすべてのステートメントは、変数 num に 4 を代入します。 integer i, num i = num num num num 4 = = = = Abs(i) Abs(4) Abs(+4) Abs(-4) 次のステートメントは、4.2 を返します。 Abs(-4.2) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Abs メソッド ACos 機能 角度の逆余弦を計算します。 構文 ACos ( n ) 引数 n 説明 同位角を求める三角形の 2 辺の長さの比(単位 : ラジアン) を指定します。比の値は -1 から 1 までです。 戻り値 Double 型。n の逆余弦を返します。 例 次のステートメントは、0 を返します。 ACos(1) 次のステートメントは 3.141593 (小数第 6 位で丸められる) を返します。 ACos(-1) 322 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは 1.000000 (小数第 6 位で丸められる) を返します。 ACos(.540302) 次のコードはボタンの Clicked イベントのスクリプトです。ユーザの入 力値に対して許可範囲外の逆余弦が取られ、変数に渡されたときに発 生する実行時エラーをキャッチします。 Double ld_num ld_num = Double (sle_1.text) TRY sle_2.text = string (acos (ld_num)) CATCH (runtimeerror er) MessageBox(" 実行時エラー ", er.GetMessage()) END TRY 関連項目 Cos ASin ATan 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ACos メソッド Activate 機能 OLE コンテナ内のオブジェクトをアクティブにし、エンド ユーザが サーバのコマンドを使用してオブジェクトを処理できるようにしま す。 対象 OLE コントロール、OLE DWObject(データウィンドウ コントロール のデータウィンドウ オブジェクトの中にあるオブジェクト) PowerScript リファレンス ボリューム 2 323 Activate 構文 objectref.Activate ( activationtype ) 引数 objectref 説明 アクティブにする OLE コントロールの名前、またはデー タウィンドウ コントロール上の OLE DWObject の完全な 名前を指定します。 DWObject の名前は、次のような完全な名前で指定します。 dwcontrol.Object.dwobjectname activationtype (オプション) omActivateType カタログ データ型の値。エンド ユーザが OLE オブジェクトをどこで使用するかを指定します。値は 以下のとおりです。 • InPlace! −(デフォルト)オブジェクトは、コントロー ル上でアクティブになります。サーバ アプリケーショ ンで提供されるメニューの一部が、PowerBuilder アプリ ケーションのメニューとマージされます。 • OffSite! − オブジェクトは、サーバ アプリケーションで アクティブになります。エンド ユーザは、サーバ アプ リケーションの多くの機能を利用できます。 objectref に OLE コントロールの名前を指定した場合、 activationtype を省略することはできません。 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -4 -5 -9 コントロールが空です。 オブジェクトに対するバーブが無効です。 オブジェクトがバーブを実装していません。 オブジェクトはいずれのバーブもサポートしていません。 オブジェクトは現行バーブを実行できません。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、サーバ アプリケーションで、ole_1 内のオブジェクトをアク ティブにします。 integer result result = ole_1.Activate(OffSite!) 次の例は、サーバ アプリケーションの Microsoft Graph で、データウィ ンドウ コントロール dw_1 内の ole_graph という OLE DWObject をアク ティブにします。 integer result result = dw_1.Object.ole_graph.Activate(OffSite!) 324 PowerBuilder 第 10 章 PowerScript の関数 関連項目 DoVerb 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの OLEActivate SelectObject AddCategory 機能 グラフの項目軸に新しい項目を追加します。AddCategory 関数は、項目 軸のデータ型が String 型の場合に使用します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト上のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト上のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.AddCategory ( categoryname ) 引数 controlname categoryname 説明 項目を追加するグラフの名前を指定します。 String 型の値。グラフ(controlname)に追加する項目名を 指定します。項目名は、項目軸上のラベルとして表示され ます。 戻り値 Integer 型。正常に終了した場合、項目に割り当てられた数値を返しま す。項目(categoryname)がすでに存在する場合、既存の項目の番号 を返します。エラーが発生した場合には -1 を返します。引数のいずれ かの値が NULL の場合、NULL を返します。 解説 AddCategory 関数は、項目軸の最後に項目を追加します。各データ系列 に追加された " 空の項目 " には、データ ポイントを設定できます。グ ラフ上のすべての項目の項目軸には、目盛り(チェックマーク)があ ります。 項目軸のデータ型が String 型の場合、項目の名前として空の文字列("") を指定できます。ただし、項目名は固有でなければならないので、名 前として("")を持つ項目は 1 つだけです。項目の名前は、大文字と 小文字が区別されます。 PowerScript リファレンス ボリューム 2 325 AddColumn 項目軸のデータ型が Date 型、DateTime 型、数値型、または Time 型の場 合に項目を追加するには、InsertCategory 関数を使用します。また、デー タ系列の指定された位置に項目を挿入する場合にも、InsertCategory 関 数を使用します。InsertCategory 関数を使用すると、AddCategory 関数と 同 じ よ う に デ ー タ 系 列 の 最 後 に 項 目 を 追 加 で き ま す。た だ し、 InsertCategory 関数では、挿入位置を指定する引数が必要です。 グラフ内のデータ系列にデータを追加するには、AddData 関数または InsertData 関数を使用します。データ値を追加すると、新しい項目を追 加できます。また、既存の項目にデータを追加したり、変更したりす ることもできます。グラフにデータ系列を追加するには、AddSeries 関 数を使用します。 例 次のステートメントは、項目 PCs を gr_product_data に追加しています。 gr_product_data.AddCategory("PCs") 関連項目 AddData AddSeries DeleteData DeleteSeries AddColumn 機能 指定されたラベル、配置、および幅でカラムを追加します。 対象 リストビュー コントロール 構文 listviewname.AddColumn ( label, alignment, width ) 引数 listviewname label alignment 説明 カラムを追加するリストビュー コントロールの名前を指 定します。 String 型の値。追加するカラムの名前を指定します。 Alignment カタログ データ型の値。追加するカラムの配置 を指定します。値は以下のとおりです。 • Center! • Justify! • Left! • Right! width Integer 型の値。追加するカラムの幅を PowerBuilder 単位系 で指定します。 326 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合はカラムのインデックスを返し、エラー が発生した場合は -1 を返します。 解説 カラムを指定の位置に挿入する InsertColumn 関数とは異なり、AddColumn 関数は既存のカラムの最後にカラムを追加します。 既存の項目の値を変更するには、SetItem 関数および SetColumn 関数を 使用します。新しい項目を追加するには、AddItem 関数を使用します。 リストビュー コントロールのレポート ビューでカラムを作成するに は、AddColumn 関数を使用します。 例 次の例は、リストビュー コントロールのイベントに対するスクリプト です。リストビュー コントロールに 3 つのカラムを追加します。 integer index FOR index = 3 to 25 This.AddItem ("Category " + String (index), 1 ) NEXT This.AddColumn("Name" , Left! , 1000) This.AddColumn("Size" , Left! , 400) This.AddColumn("Date" , Left! , 300) 関連項目 AddItem DeleteColumn InsertColumn AddData グラフのデータ系列の最後に値を追加します。使用する構文は、グラ フの種類によって異なります。 データの追加先(グラフの種類) 散布図以外のすべてのグラフ 散布図 使用する構文 構文 1 構文 2 構文 1 散布図以外のすべてのグラフにデータを追加する 機能 グラフのデータ系列にデータ ポイントを追加します。この構文は、散 布図以外のグラフにデータを追加する場合に使用します。 PowerScript リファレンス ボリューム 2 327 AddData 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト上のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト上のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.AddData ( seriesnumber, datavalue {, categoryvalue } ) 引数 controlname seriesnumber datavalue categoryvalue (オプション) 説明 データ系列にデータを追加するグラフの名前。散布図以外 のグラフを指定します。 データを追加するデータ系列を識別する番号を指定します。 データ系列に追加するデータ ポイントのデータ値を指定 します。 項 目 軸 の デ ー タ の 値 に 対 す る 項 目 を 指 定 し ま す。 categoryvalue のデータ型は、項目軸上のデータ型と一致し なければなりません。通常、この引数 categoryvalue を指定 します。この引数を省略すると、項目に属さないデータが データ系列に追加されます。 戻り値 Long 型。正常に終了した場合はデータ系列のデータ値の位置を返し、 エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返します。 解説 AddData 関数の構文 1 を使用すると、 指定されたデータ系列の最後に値 を追加します。指定された項目が存在する場合、項目の値を置き換え ます。categoryvalue に指定された項目がデータ系列に存在しない場合、 その項目をデータ系列の最後に追加し、データ ポイントの目盛り (チェックマーク)が付いたラベルが付けられます。項目軸がソートさ れている場合、新しい項目はそのソート順序に従います。categoryvalue に指定された項目がすでに存在する場合、新しいデータで、項目のデー タ ポイントの古いデータを置き換えます。 たとえば、データ系列 1 で指定された 3 番目の項目ラベルが March の 場合に、データ系列 4 にデータを追加して項目ラベルに March と指定 すると、そのデータはデータ系列 4 の 3 番目のデータ ポイントの値に なります。 項目軸のデータ型が String 型の場合、項目の名前として空の文字列("") を指定できます。ただし、項目の名前は固有でなければならないので、 名前として空の文字列("")を持つ項目は 1 つだけです。AddData 関数 を使用する場合に、項目を指定せずにデータを追加すると、項目のな いデータ ポイントになります。これは、"" という名前の項目とは別の ものになります。 328 PowerBuilder 第 10 章 PowerScript の関数 データ系列の指定された位置にデータを挿入するには、InsertData 関数 を使用します。InsertData 関数を使用すると、AddData 関数と同じよう にデータ系列の最後にデータを追加することができます。ただし、 InsertData 関数には、挿入位置を指定する引数が必要です。 InsertData 関数の「別の記述方法」で解説している AddData 関数、 InsertData 関数、および ModifyData 関数の比較を参照してください。 例 次のステートメントは、データ系列 Costs にデータ値 1250 を追加し、 グラフ gr_product_data の項目ラベル Jan にデータ ポイントを設定しま す。 integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") gr_product_data.AddData(SeriesNbr, 1250, "Jan") 次のステートメントは、グラフ gr_product_data のデータ系列 Costs の最 後にデータ値 1250 を追加します。ただし、項目ラベルにデータ ポイ ントは設定されません。 integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") gr_product_data.AddData(SeriesNbr, 1250) 関連項目 DeleteData FindSeries GetData InsertData 構文 2 散布図にデータを追加する 機能 散布図のグラフの系列にデータ ポイントを追加します。 構文 controlname.AddData ( seriesnumber, xvalue, yvalue ) 引数 controlname seriesnumber xvalue yvalue 説明 データをデータ系列に追加する散布図の名前を指定しま す。散布図のグラフを指定します。 データを追加するデータ系列を識別する番号を指定します。 データを追加するデータ ポイントの x の値を指定します。 データを追加するデータ ポイントの y の値を指定します。 PowerScript リファレンス ボリューム 2 329 AddItem 戻り値 Long 型。正常に終了した場合はデータ系列のデータ値の位置を返し、 エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返します。 例 次のステートメントは、散布図 gr_sales_yr 内のデータ系列 Costs にデー タ ポイントの x と y の値を追加します。 integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = gr_sales_yr.FindSeries("Costs") gr_sales_yr.AddData(SeriesNbr, 12, 3) 関連項目 DeleteData FindSeries GetData AddItem リスト コントロールに項目を追加します。 項目の追加先(コントロール) 使用する構文 リストボックス コントロール、またはドロップダウ 構文 1 ン リストボックス コントロール ピクチャ リストボックス コントロール、ドロップダ 構文 2 ウン ピクチャ リストボックス コントロール リストビュー(項目のラベルとピクチャ インデック 構文 3 スだけを指定する場合) リストビュー(項目のすべてのプロパティを指定する 構文 4 場合) 構文 1 リストボックス コントロールとドロップダウン リス トボックス コントロールに項目を追加する 機能 リストボックスの値のリストに、新しい項目を追加します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール 330 PowerBuilder 第 10 章 PowerScript の関数 構文 listboxname.AddItem ( item ) 引数 listboxname item 説明 項目を追加するリストボックス コントロールまたはド ロップダウン リストボックス コントロールの名前を指定 します。 String 型の値。追加する項目のテキストを指定します。 戻り値 Integer 型。新規に追加した項目の位置を返します。リストがソートさ れていた場合、リストをソートした後の項目の位置を返します。エラー が発生した場合、-1 を返します。引数のいずれかの値が NULL の場合、 NULL を返します。 解説 リストボックスにすでに項目がある場合、新しい項目をリストの最後 に追加します。リストがソートされていた場合(Sorted プロパティが TRUE の場合)、PowerBuilder は項目を追加した後、リストをソートし 直します。 リストには、同じ項目を追加することができます。リスト内の項目は、 テキストではなくリスト内の位置によって管理されます。 AddItem 関数と InsertItem 関数は、 Items プロパティ配列を更新しません。 追加された項目を実行時に検索するには、FindItem 関数を使用します。 水平スクロールバーを使用して多くの項目をリストに追加する方法 リ ス ト ボックスや、ドロップダウン リストボックスのリストボックスの部分 に多くの項目がある場合に水平スクロールバーを表示するには、次の 方法を使用します。まず、SetRedraw 関数を呼び出して再描画機能をオ フにします。項目を追加した後、SetRedraw 関数をもう一度呼び出して 再描画機能をオンにします。最後に、HScrollBar プロパティを TRUE に します。この方法を使用しないと、項目を追加するのに時間がかかる ことがあります。 例 次の例は、リストボックス コントロール lb_Actions に項目 Edit File を 追加します。 integer rownbr string s s = "Edit File" rownbr = lb_Actions.AddItem(s) PowerScript リファレンス ボリューム 2 331 AddItem たとえば、リストボックス コントロール lb_Actions に Add と Run とい う項目が格納されている場合に、Sorted プロパティが FALSE のときに は、3 を返します。これは、項目 Edit File がリストの最後に追加され、 リストの 3 番目の項目になるからです。Sorted プロパティが TRUE の ときには、2 を返します。これは、リストをアルファベット順にソー トすると、項目 Edit File がリストの 2 番目の項目になるからです。 関連項目 DeleteItem FindItem InsertItem Reset TotalItems 構文 2 ピクチャ リストボックス コントロールとドロップダ ウン ピクチャ リストボックス コントロールに項目を 追加する 機能 ピクチャ リストボックスの値のリストに、新しい項目を追加します。 対象 ピクチャ リストボックス コントロール、ドロップダウン ピクチャ リ ストボックス コントロール 構文 listboxname.AddItem ( item {, pictureindex } ) 引数 listboxname item pictureindex (オプション) 戻り値 説明 項目を追加するピクチャ リストボックス コントロール、 またはドロップダウン ピクチャ リストボックス コント ロールの名前を指定します。 String 型の値。追加する項目のテキストを指定します。 Integer 型の値。新しく追加する項目に関連付けるピクチャ のインデックスを指定します。 Integer 型。新規に追加した項目の位置を返します。リストがソートさ れていた場合、リストをソートした後の項目の位置を返します。エラー が発生した場合、-1 を返します。引数のいずれかの値が NULL の場合、 NULL を返します。 解説 ピクチャ インデックスを指定しなかった場合、新しく追加される項目 にピクチャが割り当てられません。 存在しないピクチャ インデックスを指定した場合でも、ピクチャ イン デックスの番号は、ピクチャとともに格納されます。ピクチャをピク チャ配列に追加すると、項目が対応するピクチャを示すようになりま す。 332 PowerBuilder 第 10 章 PowerScript の関数 リストボックス内の項目の詳細については、構文 1 の説明を参照して ください。 例 次の例は、ピクチャ リストボックス コントロール plb_birds に項目 Cardinal を追加します。 integer li_pic, li_position string ls_name, ls_pic li_pic = plb_birds.AddPicture("c:\pics\cardinal.bmp") ls_name = "Cardinal" li_position = plb_birds.AddItem(ls_name, li_pic) たとえば、ピクチャ リストボックス コントロール plb_birds に Robin と Swallow という項目が格納されている場合に、Sorted プロパティが FALSE のときには、3 を返します。これは、項目 Cardinal がリストの最 後に追加され、リストの 3 番目の項目になるからです。Sorted プロパ ティが TRUE のときには、1 を返します。これは、リストをアルファ ベット順にソートすると、項目 Cardinal がリストの最初の項目になる からです。 関連項目 DeleteItem FindItem InsertItem Reset TotalItems 構文 3 リストビュー コントロールに項目を追加する(1) 機能 リストビュー コントロールに項目を追加します。 対象 リストビュー コントロール 構文 listviewname.AddItem ( label, pictureindex ) 引数 listviewname label pictureindex 戻り値 説明 ピクチャまたは項目を追加するリストビュー コントロー ルの名前を指定します。 追加する項目の名前を指定します。 新規に追加する項目に関連付けるピクチャのインデック スを指定します。 Integer 型。正常に終了した場合は項目のインデックスを返し、エラー が発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 333 AddItem 解説 この構文は、リストビュー コントロールに追加する項目のラベルとピ クチャ インデックスだけを指定する場合に使用します。ラベルとピク チャ インデックス以外のプロパティも指定する必要がある場合には、 構文 4 を使用してください。 例 次の例は、Constructor イベントで AddItem 関数を使用して、リスト ビュー コントロールに 3 つの項目を追加します。 lv_1.AddItem("Sanyo" , 1) lv_1.AddItem("Onkyo" , 1) lv_1.AddItem("Aiwa" , 1) 関連項目 DeleteItem FindItem InsertItem Reset TotalItems 構文 4 リストビュー コントロールに項目を追加する(2) 機能 リストビュー コントロールの項目のすべてのプロパティを参照して、 リストビュー コントロールに項目を追加します。 対象 リストビュー コントロール 構文 listviewname.AddItem ( item ) 引数 listviewname item 戻り値 説明 ピクチャまたは項目を追加するリストビュー コントロー ルの名前を指定します。 追加する項目のプロパティを含む ListViewItem 変数を指 定します。 Integer 型。正常に終了した場合は項目のインデックスを返し、エラー が発生した場合は -1 を返します。 解説 この構文は、追加する項目のすべてのプロパティを指定する場合に使 用します。ラベルとピクチャ インデックスだけを指定する場合には、 構文 3 を使用してください。 例 次の例は、コマンドボタンの Clicked イベントで AddItem 関数を使用し て、マウスがクリックされるたびに、リストビュー コントロールに項 目を追加します。 count = count + 1 listviewitem l_lvi l_lvi.PictureIndex = 2 334 PowerBuilder 第 10 章 PowerScript の関数 l_lvi.Label = "Item "+ string(count) lv_1.AddItem(l_lvi) 関連項目 DeleteItem FindItem InsertItem Reset TotalItems AddLargePicture 機能 大きいピクチャのリストに、ビットマップ、アイコン、またはカーソ ルを追加します。 対象 リストビュー コントロール 構文 listviewname.AddLargePicture ( picturename ) 引数 listviewname picturename 説明 大きいピクチャ(ビットマップ、アイコン、カーソル)を 追加するリストビュー コントロールの名前を指定します。 指定されたコントロールの大きいピクチャのリストに追 加するビットマップ、アイコン、またはカーソルの名前を 指定します。 戻り値 Integer 型。正常に終了した場合はピクチャ インデックスを返し、エ ラーが発生した場合は -1 を返します。 解説 リストビュー コントロールに大きいピクチャを追加すると、リスト ビュー コントロールで次に使用可能なピクチャのインデックスが与え られます。たとえば、リストビュー コントロールに 2 つのピクチャがあ る場合、次に追加されるピクチャのインデックス番号は 3 になります。 大 き い ピ ク チ ャ を 追 加 す る 前 に、LargePictureWidth プ ロ パ テ ィ と LargePictureHeight プロパティを設定して、ピクチャのサイズを指定で きます。最初に追加したピクチャの幅と高さによって、すべてのピク チャのサイズが決まります。ピクチャを追加した後にプロパティの値 を変更しても、ピクチャのサイズは変わりません。 ピクチャを追加する前に LargePictureWidth プロパティと LargePictureHeight プロパティの値を指定しなかった場合、最初に追加 したピクチャの幅と高さによって、追加するすべてのピクチャのサイ ズが決まります。 PowerScript リファレンス ボリューム 2 335 AddPicture ビットマップを追加する場合、AddLargePicture 関数を呼び出す前に、 LargePictureMaskColor プロパティを設定して、ビットマップで透明に する色を指定します。関数を呼び出している間に、 LargePictureMaskColor プロパティの設定を変更することができます。 例 次の例は、lv_files というリストビュー コントロールの大きいピクチャ のインデックスに、FOLDER.ICO ファイルを追加します。 // 大きいピクチャを追加します。 integer index index = lv_files.AddLargePicture("folder.ico") 関連項目 DeleteLargePicture AddPicture 機能 ピクチャのリストに、ビットマップ、アイコン、またはカーソルを追 加します。 対象 ピクチャ リストボックス コントロール、ドロップダウン ピクチャ リ ストボックス コントロール、ツリービュー コントロール 構文 controlname.AddPicture ( picturename ) 引数 controlname picturename 説明 ピクチャ(ビットマップ、アイコン、カーソル)を追加す るコントロールの名前を指定します。 指定されたコントロールのピクチャのリストに追加する ビットマップ、アイコン、またはカーソルの名前を指定し ます。 戻り値 Integer 型。正常に終了した場合はピクチャのインデックス番号を返し、 エラーが発生した場合は -1 を返します。 解説 ピクチャには、コントロールに追加された順にインデックスが割り当 てられます。 実行時にピクチャを追加しても、PictureName プロパティ配列を更新す ることはできません。ピクチャはリストの終わりに追加されるので、 AddPicture 関数の戻り値は、コントロールに関連付けられているピク チャの数を報告します。 336 PowerBuilder 第 10 章 PowerScript の関数 ピクチャを追加する前に、PictureWidth プロパティと PictureHeight プロ パティを設定して、ピクチャのサイズを指定できます。最初に追加し たピクチャの幅と高さによって、すべてのピクチャのサイズが決まり ます。ピクチャを追加した後にプロパティの値を変更しても、ピクチャ のサイズは変わりません。 ピクチャを追加する前に PictureWidth プロパティと PictureHeight プロ パティの値を指定しなかった場合、最初に追加したピクチャの幅と高 さによって、追加するすべてのピクチャのサイズが決まります。 ビットマップを追加する場合、AddPicture 関数を呼び出す前に、 PictureMaskColor プロパティを設定して、ビットマップで透明にする 色を指定します。関数を呼び出している間に、PictureMaskColor プロ パティの設定を変更することができます。 例 次の例は、ツリービュー コントロールにピクチャを追加し、追加した ピクチャを新しいツリー ビュー コントロールの項目に関連付けます。 long ll_tvi integer li_picture li_picture = & tv_list.AddPicture("c:\apps_pb\staff.ico") ll_tvi = tv_list.FindItem(RootTreeItem!, 0) tv_list.InsertItemFirst(ll_tvi, "Dept.", li_picture) 関連項目 DeletePicture AddSeries 機能 グラフにデータ系列を追加し、指定した名前を割り当てます。新しい データ系列には、番号も割り当てられます。グラフのデータ系列には、 追加された順番に従って連続した番号が付けられます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト上のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト上のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.AddSeries ( seriesname ) 引数 controlname seriesname PowerScript リファレンス ボリューム 2 説明 データ系列を追加するグラフの名前を指定します。 String 型の値。データ系列の名前を指定します。指定され た系列を controlname に指定されたグラフに追加します。 337 AddSeries 戻り値 Integer 型。正常に終了した場合、追加したデータ系列に割り当てられ た番号を返します。seriesname に指定された文字列が重複している場 合、既存のデータ系列の番号を返します。エラーが発生した場合、-1 を返します。また、引数のいずれかの値が NULL の場合、AddSeries は NULL を返します。 解説 controlname に指定されたグラフに seriesname を追加し、データ系列に 番号を割り当てます。その番号でグラフ内のデータ系列を識別します。 番号は順番に割り当てられます。たとえば、グラフに最初に追加した データ系列には 1 が割り当てられ、グラフの先頭に表示されます。次 に追加したデータ系列には 2 が割り当てられます。 データ系列の名前は、グラフの中で固有でなければなりません。グラ フに既存の名前を指定すると、AddSeries 関数は既存のデータ系列の番 号を返します。データ系列の名前は、大文字と小文字が区別されます。 したがって、同じ文字列でも大文字と小文字が異なる場合には、それ ぞれ別の名前とみなされます。データ系列の名前として空の文字列 ("")を指定することもできます。ただし、データ系列の名前は固有で なければならないので、名前として空の文字列("")を持つデータ系 列は 1 つだけです。 リストの指定された位置にデータ系列を挿入するには、InsertSeries 関 数を使用します。InsertSeries 関数を使用すると、AddSeries 関数と同じ ようにグラフにデータ系列を追加できます。ただし、InsertSeries 関数 には、挿入位置を指定する引数が必要です。 グラフ内のデータ系列にデータを追加するには、AddData 関数または InsertData 関 数 を 使 用 し ま す。デ ー タ 系 列 に 項 目 を 追 加 す る に は、 InsertCategory 関数または AddCategory 関数を使用します。 例 次のステートメントは、グラフ gr_product_data にデータ系列 Costs を追 加します。 integer series_nbr series_nbr = gr_product_data.AddSeries("Costs") 次のステートメントは、グラフ gr_product_data に名前を持たないデー タ系列を追加します。 integer series_nbr series_nbr = gr_product_data.AddSeries("") 関連項目 338 AddCategory AddData DeleteData DeleteSeries FindSeries PowerBuilder 第 10 章 PowerScript の関数 InsertCategory InsertSeries SeriesCount SeriesName AddSmallPicture 機能 小さいピクチャのリストに、ビットマップ、アイコン、またはカーソ ルの名前を追加します。 対象 リストビュー コントロール 構文 listviewname.AddSmallPicture ( picturename ) 引数 listviewname picturename 説明 小さいピクチャ(ビットマップ、アイコン、カーソル)を 追加するリストビュー コントロールの名前を指定します。 指定されたコントロールの小さいピクチャのリストに追 加するビットマップ、アイコン、またはカーソルの名前を 指定します。 戻り値 Integer 型。正常に終了した場合はピクチャ インデックスを返し、エ ラーが発生した場合は -1 を返します。 解説 リストビュー コントロールに小さいピクチャを追加すると、リスト ビュー コントロールで次に使用可能なピクチャのインデックスが与 えられます。たとえば、リストビュー コントロールに 2 つのピクチャ がある場合、次に追加されるピクチャのインデックス番号は 3 になり ます。 小 さ い ピ ク チ ャ を 追 加 す る 前 に、SmallPictureWidth プ ロ パ テ ィ と SmallPictureHeight プロパティを設定して、ピクチャのサイズを指定で きます。最初に追加したピクチャの幅と高さによって、すべてのピク チャのサイズが決まります。ピクチャを追加した後にプロパティの値 を変更しても、ピクチャのサイズは変わりません。 ピクチャを追加する前に SmallPictureWidth プロパティと SmallPictureHeight プロパティの値を指定しなかった場合、最初に追加 したピクチャの幅と高さによって、追加するすべてのピクチャのサイ ズが決まります。 PowerScript リファレンス ボリューム 2 339 AddStatePicture ビットマップを追加する場合、AddSmallPicture 関数を呼び出す前に SmallPictureMaskColor プロパティを設定して、ビットマップで透明に する色を指定します。関数を呼び出している間に、 SmallPictureMaskColor プロパティの設定を変更することができます。 例 次の例は、lv_files というリストビュー コントロールの小さいピクチャ のインデックスに、SHORTCUT.ICO ファイルを追加します。 // 小さいピクチャを追加します。 integer index index = lv_files.AddSmallPicture("shortcut.ico") 関連項目 DeleteSmallPicture AddStatePicture 機能 状態ピクチャのリストに、ビットマップ、アイコン、またはカーソル を追加します。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.AddStatePicture ( picturename ) 引数 controlname picturename 説明 ピクチャ(ビットマップ、アイコン、カーソル)を追加す るリストビュー コントロールまたはツリービュー コント ロールの名前を指定します。 指定されたコントロールの状態ピクチャのリストに追加 するビットマップ、アイコン、またはカーソルの名前を指 定します。 戻り値 Integer 型。正常に終了した場合はピクチャ インデックスを返し、エ ラーが発生した場合は -1 を返します。 解説 大きいアイコンのビュー内のリストビューの場合、大きいアイコンの 左に表示されるピクチャが状態ピクチャであり、デフォルトでは小さ いサイズで表示されます。ツリービューの場合は、状態ピクチャが通 常のピクチャの左に表示され、状態ピクチャ用の領域を空けるために 項目が右に移動します。 StatePictureWidth プロパティまたは StatePictureHeight プロパティ を指 定すると、ピクチャはそのプロパティで指定されたサイズになります。 340 PowerBuilder 第 10 章 PowerScript の関数 ビットマップを追加する場合、AddPicture 関数を呼び出す前に、 StatePictureMaskColor プロパティを設定して、ビットマップで透明に する色を指定します。関数を呼び出している間に、 StatePictureMaskColor プロパティの設定を変更することができます。 例 次の例は、lv_files というリストビュー コントロールの状態ピクチャの インデックスに star.ico ファイルを追加します。 // 状態ピクチャを追加します。 integer index index = lv_files.AddStatePicture("star.ico") 関連項目 DeleteStatePicture AddToLibraryList 機能 実行時に、新しいファイルをアプリケーションまたはコンポーネント のライブラリ探索パスに追加します。 構文 AddToLibraryList ( filelist ) 引数 filelist 戻り値 解説 説明 カンマ(,)で区切られたファイル名のリストを指定します。 ファイル名は、拡張子を付けた完全な名前で指定します。 パスを省略すると、PowerBuilder のシステムの検索パスで そのファイルが検索されます。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 アプリケーションまたはコンポーネントは、スタンドアロンの実 行形式やサーバでなく、PowerBuilder の開発環境の中で実行されて います。 -2 新しいライブラリ リストまたは既存のライブラリ リストが空か、 または別の内部エラーが発生しました。 アプリケーションがオブジェクトをロードする場合、PowerBuilder で は、まず実行ファイルが検索され、次にそのアプリケーションに指定 されたランタイム ライブラリが検索されます。展開されているコン ポーネントについては、そのコンポーネントのライブラリ リストの PBD ファイルが検索されます。AddToLibraryList を使用して、追加のラ イブラリ ファイルを指定することもできます。 PowerScript リファレンス ボリューム 2 341 Arrange AddToLibraryList を呼び出すと、新しいファイルのリストが、filelist で指 定した順序で、対象のライブラリ ファイルのリストに追加されます。 filelist に指定したファイルのうち、ライブラリ リストにすでに存在す るファイルについては、ライブラリ リストに追加されません。filelist に同一のファイル名が複数ある場合は、最初のファイル名だけがライ ブラリ リストに追加されます。 コンポーネントがリソースを共有するときに起こる問題を回避するに は、SetLibraryList のかわりに AddToLibraryList を使用して、EAServer に 展開されているコンポーネントの探索リストに、PBD ファイルを別途 追加してください。 PowerBuilder では、指定したライブラリがそのアプリケーションに適 切かどうかチェックされません。それらのライブラリにアプリケー ションまたはコンポーネントが必要とするオブジェクトが存在するこ とを確認してください。 この関数は、PowerBuilder 開発環境内では無効です。 例 次の例は、製品または顧客のどちらの処理を実行するかにより、ライ ブラリ探索パスに追加する PBD を決定しています。 CHOOSE CASE processkind CASE "product" AddToLibraryList(prod.pbd) CASE "customer" AddToLibraryList(cust.pbd) END CHOOSE 関連項目 GetLibraryList SetLibraryList Arrange 機能 アイコンを整列させます。 対象 リストビュー コントロール 構文 listviewname.Arrange ( ) 引数 listviewname 342 説明 アイコンを整列させるリストビュー コントロールの名前 を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 大きいアイコンと小さいアイコンのビューでのみ使用できます。 例 次の例は、リストビュー コントロールのアイコンを整列させます。 lv_list.Arrange() ArrangeSheets 機能 MDI フレーム内のウィンドウ(シート)を配置します。開いている シート、最小化されたシートのアイコン、またはアイコンそのものを 配置することができます。 対象 MDI フレーム ウィンドウ 構文 mdiframe.ArrangeSheets ( arrangetype ) 引数 mdiframe arrangetype 説明 MDI フレーム ウィンドウの名前を指定します。 ArrangeTypes カタログ データ型の値。MDI フレーム ウィ ンドウで開いているシートをどのように配置するかを指 定します。値は以下のとおりです。 • Cascade! − 最小化されていないシートを重ねて表示し、 各シートのタイトル バーが見えるようにします。また、 最小化されたシートのアイコンをフレームの一番下に 一列に配置します。 • Layer! − 最小化されていないシートを上に重ねて表示 し、下にあるシートを完全に隠します。また、最小化し たシートのアイコンをフレームの一番下に一列に配置 します。 • Tile! − 最小化されていないシートを並べて表示し、重 ならないようにします。また、最小化したシートのアイ コンをフレームの一番下に一列に配置します。 • TileHorizontal! − 最小化されていないシートを並べて表 示して各シートが隣り合うシートを隠さないようにし ます。また、最小化したシートのアイコンをフレームの 一番下に一列に配置します。 • Icons! − 最小化されたシートをフレームの一番下に一 列に配置します。 PowerScript リファレンス ボリューム 2 343 Asc 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。 例 次の例は、メニュー項目の Clicked イベントに対するスクリプトに記述 されたステートメントです。MDI_User という名前の MDI フレーム ウィ ンドウ内で最小化されていない開いているシートを並べて表示します。 MDI_User.ArrangeSheets(Tile!) 次の例は、メニュー項目の Clicked イベントに対するスクリプトに記述 されたステートメントです。最小化したシートのアイコンを MDI_User という名前の MDI フレーム ウィンドウの一番下に配置します。 MDI_User.ArrangeSheets(Icons!) 関連項目 GetActiveSheet OpenSheet Asc 機能 指定された文字列の先頭文字を Unicode コード ポイントに変換しま す。コード ポイントは、Unicode 文字に割り当てられた Integer 型の数 値です。 構文 Asc ( string ) 引数 string 説明 先頭文字をコード ポイントに変換する文字列を指定します。 戻り値 Unsigned Integer 型。正常に終了した場合、string に指定された文字列の 先頭文字のコード ポイント値を返します。string に指定された文字列 が NULL の場合、NULL を返します。 解説 Asc 関数を使用すると、文字のコード ポイント値が一定の範囲内にあ るかどうかを調べて大文字と小文字を区別することができます。 例 次のステートメントは、大文字の "A" のコード ポイント値 65 を返し ます。 Asc("A") 次の例は、文字列 ls_name の先頭文字が大文字かどうかを調べます。 String ls_name IF Asc(ls_name) > 64 and Asc(ls_name) < 91 THEN ... 344 PowerBuilder 第 10 章 PowerScript の関数 関連項目 AscA Char Mid 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Asc メソッド AscA 機能 指定された文字列の先頭文字を ASCII コードに変換し、その値を Integer 型で返します。 構文 AscA ( string ) 引数 string 説明 先頭文字を ASCII コードに変換する文字列を指定します。 戻り値 Integer 型。正常に終了した場合、string に指定された文字列の先頭文字 の ASCII コードを返します。string に指定された文字列が NULL の場 合、NULL を返します。 解説 AscA 関数を使用すると、文字の ASCII コードが一定の範囲内にあるか どうかを調べて大文字と小文字を区別することができます。Asc 関数 は、文字の Unicode コード ポイントを返します。 例 次のステートメントは、大文字の "A" の ASCII コード 65 を返します。 AscA("A") 次の例は、文字列 ls_name の先頭文字が大文字かどうかを調べます。 String ls_name IF AscA(ls_name) > 64 and AscA(ls_name) < 91 THEN ... 次の例は、整数の配列(iarr)を文字列に変換する関数です。各整数は 2 つの文字を表しています。2 つの文字のうち下位バイトが最初の文字 で、上位バイト(ASCII * 256)が後の文字です。引数 iarr は Integer 型 の配列です。 string str_from_int, hold_str integer arraylen arraylen = UpperBound(iarr) FOR i = 1 to arraylen // 最初の整数を文字に変換します。 PowerScript リファレンス ボリューム 2 345 ASin hold_str = CharA(iarr[i]) // 整数の上位バイトを文字に変換した後で // 2 つの文字を文字列に連結します。 str_from_int += hold_str + & CharA((iarr[i] - AscA(hold_str)) / 256) NEXT 文字列から整数の配列を作成する Mid 関数の例を参照してください。 関連項目 Asc CharA Mid 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの AscA メソッド ASin 機能 角度の逆正弦を計算します。 構文 ASin ( n ) 引数 n 説明 同位角を求める三角形の 2 辺の長さの比(単位 : ラジアン) を指定します。比の値は -1 から 1 までです。 戻り値 Double 型。n の逆正弦を返します。 例 次のステートメントは 0.999998(小数第 6 位で丸められる)を返します。 ASin(.84147) 次のステートメントは 0.520311(小数第 6 位で丸められる)を返します。 ASin(LogTen (Pi (1))) 次のステートメントは、0 を返します。 ASin(0) 次のコードはボタンの Clicked イベントのスクリプトです。ユーザの入 力値に対して許可範囲外の逆正弦が取られ、変数に渡されたときに発 生する実行時エラーをキャッチします。 Double ld_num ld_num = Double (sle_1.text) 346 PowerBuilder 第 10 章 PowerScript の関数 TRY sle_2.text = string (asin (ld_num)) CATCH (runtimeerror er) MessageBox(" 実行時エラー ", er.GetMessage()) END TRY 関連項目 Sin ACos ATan Pi 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ASin メソッド ATan 機能 角度の逆正接を計算します。 構文 ATan ( n ) 引数 n 説明 同位角を求める三角形の 2 辺の長さの比(単位 : ラジアン) を指定します。 戻り値 Double 型。n の逆正接を返します。 例 次のステートメントは、0 を返します。 ATan(0) 次のステートメントは 1.000(小数第 3 位で丸められる)を返します。 ATan(1.55741) 次のステートメントは 1.267267(小数第 6 位で丸められる)を返します。 ATan(Pi(1)) 関連項目 Tan ASin ACos 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ATan メソッド PowerScript リファレンス ボリューム 2 347 Beep Beep 機能 最高 10 回までビープ音を鳴らします。 構文 Beep ( n ) 引数 n 説明 ビープ音を鳴らす回数を指定します。n に 10 以上の値を指 定した場合、ビープ回数は 10 回に設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。n に指定された値が NULL の場合、NULL を返します。 通常、戻り値は使用されません。 例 次のステートメントは、ビープ音を 5 回鳴らします。 Beep(5) BeginTransaction 機能 EAServer トランザクションを生成し、呼び出し元のスレッドに関連付 けます。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.BeginTransaction ( ) 引数 CORBACurrent 説明 CORBACurrent サービス インスタンスへの参照を指定 します。 戻り値 Boolean 型。正常に終了した場合、TRUE を返します。トランザクショ ンを生成できなかった場合、FALSE を返します。 解説 BeginTransaction 関数では、トランザクションが生成され、また、呼び 出し元のスレッドのトランザクション コンテキストが変更され、トラ ンザクションと関連付けられます。これにより、呼び出し元のスレッ ドは、そのトランザクションの情報を取得し、コミットとロールバッ クを制御することができるようになります。BeginTransaction は、OTS スタイルのマークが付いているクライアントまたはコンポーネントで 呼び出せます。EAServer は、2 フェーズ コミット トランザクション コーディネータ(OTS/XA)を使用していることが必要です。 348 PowerBuilder 第 10 章 PowerScript の関数 呼び出し元のスレッドがすでにトランザクションと関連付けられてい る場合、BeginTransaction 関数は FALSE を返します。ネストされたトラ ンザクションはサポートされていません。 例 次の例では、BeginTransaction を使用してクライアントからトランザク ションを生成します。 // インスタンス変数: // CORBACurrent corbcurr // Connection myconnect long ll_rc integer li_rc1, li_rc2 boolean lb_success ll_rc = myconnect.ConnectToServer() // エラー処理の挿入 ... li_rc1 = this.GetContextService("CORBACurrent", & corbcurr) // エラー処理の挿入 ... li_rc2 = corbcurr.Init( myconnect ) // エラー処理の挿入 ... lb_success = corbcurr.BeginTransaction() IF NOT lb_success THEN MessageBox (" トランザクションの生成に失敗しました ", & " クライアントが既にトランザクションを使用している可能性があ ります。") RETURN ELSE ll_rc = myconnect.CreateInstance(lcst_mybookstore) // 処理の開始 ... 関連項目 CommitTransaction GetContextService GetStatus GetTransactionName Init ResumeTransaction RollbackOnly RollbackTransaction SetTimeout SuspendTransaction PowerScript リファレンス ボリューム 2 349 Blob Blob 機能 文字列を Blob 型に変換します。 構文 Blob ( text {, encoding} ) 引数 text encoding 説明 Blob 型に変換する文字列を指定します。 Blob 型に変換された文字列の文字エンコーディングを指 定します。値は以下のとおりです。 • EncodingANSI! • EncodingUTF8! • EncodingUTF16LE!(デフォルト) • EncodingUTF16BE! 戻り値 Blob 型。指定されたエンコーディングで Blob 型に 変換した文字列を 返します。text が NULL の場合、NULL を返します。 解説 encoding 引数が指定されていない場合、Blob 関数は Unicode 文字列を Unicode Blob 型に変換します。ほかのエンコーディングの Blob 型に変 換する場合は、encoding 引数を指定する必要があります。 例 次の例は、テキスト文字列を Unicode Blob 型で保存します。 Blob B B = Blob("Any Text") 次の例は、テキスト文字列を UTF-8 エンコーディングの Blob 型で保 存します。 Blob Blb Blb = Blob("Any Text", EncodingUTF8!) 関連項目 350 BlobEdit BlobMid String PowerBuilder 第 10 章 PowerScript の関数 BlobEdit 機能 PowerBuilder のすべてのデータ型のデータを Blob 型の変数に挿入しま す。 構文 BlobEdit ( blobvariable, n, data {, encoding} ) 引数 blobvariable n data encoding 説明 初期化した Blob 型の変数を指定します。指定された変数 に PowerBuilder の標準データ型のデータを挿入します。 データを挿入する blobvariable 内の位置(1 ∼ 4,294,967,295 の数値)を指定します。 blobvariable に挿入する PowerBuilder の標準データ型の データを指定します。 String 型のデータを挿入する Blob 型の変数の文字エン コーディングを指定します。値は以下のとおりです。 • EncodingANSI! • EncodingUTF8! • EncodingUTF16LE!(デフォルト) • EncodingUTF16BE! 戻り値 UnsignedLong 型。正常に終了した場合、次のデータのコピー先として 使用できる位置を返します。コピーに必要なスペースが blobvariable に ない場合、NULL を返します。引数のいずれかの値が NULL の場合は、 NULL を返します。 引数 data が文字列である場合、データをコピーする blobvariable 内の 位置はその文字列 + 2 になります。引数 data が Blob 型に変換された文 字列である場合、その位置は、その文字列 + 1 になります。これは、文 字列には、NULL で終わる文字が含まれていて、これが Blob 型に変換 されると失われるためです。 このため、 BlobEdit (blob_var, 1, "ZZZ") の場合 5 が返され、BlobEdit (blob_var, 1, blob ("ZZZ") ) の場合 4 が返されます。 引数 data が文字列であり、特定のエンコーディングの Blob 型を生成 する場合は、encoding のパラメータを使用します。 例 次の例は、まず、Blob 型の変数 emp_photo の 1 の位置からビットマッ プをコピーし、次のデータのコピー先となる位置を nbr に格納します。 次に、この nbr を使用して Blob 型の変数 emp_photo のビットマップ データの後に日付をコピーします。 blob{1000} emp_photo blob temp date pic_date PowerScript リファレンス ボリューム 2 351 BlobMid ulong nbr ... // FileOpen 関数と FileRead 関数を使用して、社員の写真を ... // 格納している BMP ファイルを temp ファイルに読み込みます。 pic_date = Today() nbr = BlobEdit(emp_photo, 1, temp) BlobEdit(emp_photo, nbr, pic_date) UPDATEBLOB Employee SET pic = :emp_photo WHERE ... 次の例は、Blob 型の変数 blb_data の 1 の位置から文字列をコピーし、 Blob 型のエンコーディングに ANSI を指定します。 blob{100} blb_data string str1 = "This is a string" ulong ul_pos ul_pos = BlobEdit (blb_data, 1, str1, EncodingANSI!) 関連項目 Blob BlobMid BlobMid 機能 Blob 型の変数からデータを取得します。 構文 BlobMid ( data, n {, length } ) 引数 data n length (オプション) 戻り値 352 説明 Blob 型のデータを指定します。 取得する文字の開始位置(1 ∼ 4,294,967,295 の数値)を指 定します。 取得する文字の文字数(1 ∼ 4,294,967,295 の数値)を指定 します。 Blob 型。正常に終了した場合、data の n 番目の位置から length で指定 された文字数までを返します。n に指定された値が data の文字数より も大きい場合、空の Blob 型データを返します。length と n を合わせた ときに Blob 型の変数が含むバイト数より大きくなる場合、n 番目より 右にある文字が返されます。このとき、返される Blob 型のデータは指 定の長さより短いままになります。引数のいずれかの値が NULL の場 合、NULL を返します。 PowerBuilder 第 10 章 PowerScript の関数 文字数には区切り子を含める String 型の変数には、0 区切り子が含まれています。取り出した文字数 を計算する場合には、区切り子も含めてください。 例 次の例は、まず、Blob 型の datablob の 5 番目の文字から 10 文字を取 り出して data_1 に格納します。次に、datablob の 5 番目の文字から残 りのすべての文字を取り出して data_2 に格納します。 blob data_1, data_2, datablob ... // Blob 型のデータを読み込んで datablob に格納します。 data_1 = BlobMid(datablob, 5, 10) data_2 = BlobMid(datablob, 5) 次の例は、まず、Blob 型の変数 emp_photo の位置 1 からビットマップ を挿入し、次のデータの挿入先となる位置を nbr に保持します。次に、 この nbr を使用して Blob 型の変数 emp_photo のビットマップ データの 後に日付をコピーします。最後に、データの開始位置を使用して Blob 型の変数からデータを取り出し、スタティック テキスト コントロール st_1 に表示します。 blob{1000} emp_photo blob temp date pic_date ulong nbr ... // FileOpen 関数と FileRead 関数を使用して、社員の写真を ... // 格納している BMP ファイルを temp ファイルに読み込みます。 pic_date = Today() nbr = BlobEdit(emp_photo, 1, temp) BlobEdit(emp_photo, nbr, pic_date) st_1.Text = String(Date(BlobMid(emp_photo, nbr))) 関連項目 Blob BlobEdit PowerScript リファレンス ボリューム 2 353 BuildModel BuildModel 機能 SetTraceFileName 関数で指定したトレース ファイルに基づいて、パ フォーマンス解析またはトレース ツリー モデルを構築します。オプ ションの引数を指定すると、構築の進捗状況の監視や構築への割り込 みを行うことができます。 BuildModel 関数を呼び出す前に、SetTraceFileName 関数を使用して、モ デル化するトレース ファイルを指定する必要があります。 対象 Profiling オブジェクトと TraceTree オブジェクト 構文 instancename.BuildModel ( { progressobject, eventname, triggerpercent } ) 引数 instancename progressobject (オプション) eventname (オプション) triggerpercent (オプション) 戻り値 354 説明 Profiling オブジェクトまたは TraceTree オブジェクトのイ ンスタンス名を指定します。 処理済みの操作の数を表す PowerObject 型を指定します。 String 型の値。定義するイベントの名前を指定します。 Long 型の値。eventname で指定したイベントを起動する前 に BuildModel 関数が処理する必要のある操作の割合を指 定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileNotSetError! − TraceFileName が設定されていません。 • ModelExistsError! − モデルはすでに構築されています。 • EnterpriseOnlyFeature! − この関数は、PowerBuilder Enterprise 版で のみサポートされています。 • EventNotFoundError! − 渡された progressobject に対するイベント が見つからないので、モデルを構築できません。 • EventWrongPrototypeError! − イベントは見つかりましたが、適切 なプロトタイプがないのでモデルを構築できません。 • SourcePBLError! − ソース ライブラリが見つからないので、モデル を構築できません。 PowerBuilder 第 10 章 PowerScript の関数 解説 BuildModel 関 数 は、ト レ ー ス フ ァ イ ル か ら 生 デ ー タ を 取 得 し て、 PowerScript 言語の関数を実行できるオブジェクトにそれをマップしま す。構築の進捗状況を記録しないでトレース ファイルのモデルを構築 する場合は、オプションの引数を指定しないで BuildModel を呼び出し ます。モデルの作成中に進捗情報を受け取る場合、または完了までに 時間がかかりすぎる BuildModel に割り込む場合は、オプションの引数 を指定して BuildModel を呼び出します。 渡された progressobject に対するイベント eventname は、triggerpercent 引数で指定した割合の操作の処理が終わると起動します。 triggerpercent の値が 0 の場合は、eventname は操作ごとに起動します。 triggerpercent の値が 100 を超える場合は、eventname は起動しません。 このイベントは次の構文を使用して定義します。 eventname ( currentactivity, totalnumberofactivities ) 引数 eventname currentactivity totalnumberofactivities 説明 イベントの名前を指定します。 Long 型の値。現行の操作の数を指定します。 Long 型の値。トレース ファイル内の操作の総数を 指定します。 eventname は、Boolean 型の値を返します。FALSE が返された場合は、 BuildModel 関数によって開始された処理がキャンセルされ、一時スト レージがクリーンアップされます。時間がかかりすぎる BuildModel 処 理を停止する必要がある場合は、eventname から FALSE 値を返すこと ができます。eventname 用に作成するスクリプトでは、進捗状況の監視 方法を決定します。たとえば、進捗状況を表示することや、処理をキャ ンセルする必要があるかどうかをチェックすることができます。 例 次の例は、トレース ファイルのパフォーマンス解析を作成します。 Profiling lpro_model String ls_filename lpro_model = CREATE Profiling lpro_model.SetTraceFileName(ls_filename) lpro_model.BuildModel() 次の例は、トレース ファイルのトレース ツリー モデルを作成します。 TraceTree ltct_model String ls_filename ltct_model = CREATE TraceTree ltct_model.SetTraceFileName(ls_filename) ltct_model.BuildModel() PowerScript リファレンス ボリューム 2 355 BuildModel 次の例は、パフォーマンス解析モデルを作成し、そのモデルの構築中 に 進 捗 情 報 を 提 供 し ま す。BuildModel に 対 す る eventname 引 数 は ue_progress であり、このイベントは操作が 5% 処理されるたびに起動 します。構築の進捗状況は、 [キャンセル]ボタンを持つ w_progress と いうウィンドウに表示されます。 Profiling lpro_model String ls_filename Boolean lb_cancel lpro_model = CREATE Profiling lb_cancel = false lpro_model.SetTraceFileName(ls_filename) Open(w_progress) // of_init ウィンドウ関数を呼び出して // 進行状況 ダイアログボックスを初期化します。 w_progress.of_init(lpro_model.NumberOfActivities, & 'Building Model', This, 'ue_cancel') lpro_model.BuildModel(This, 'ue_progress', 5) 進行状況 ダイアログボックスで[キャンセル]ボタンをクリック すると、lb_cancel は TRUE に設定され、 ue_progress は FALSE に戻ります。 lb_cancel THEN & Close(w_progress) RETURN -1 END IF // // // IF 関連項目 356 SetTraceFileName DestroyModel PowerBuilder 第 10 章 PowerScript の関数 Cancel 機能 パイプライン オブジェクトの実行を停止します。 対象 パイプライン オブジェクト 構文 pipelineobject.Cancel ( ) 引数 pipelineobject 説明 実行するパイプライン オブジェクトを含むパイプライン ユーザ オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 Cancel 関数は、Start 関数または Repair 関数の実行中にだけ使用できま す。 Cancel 関数を使用してパイプラインを停止すると、パイプラインが最 大エラー件数に達した場合と同じように、データがコミットされます。 パイプラインが最大エラー件数に達した場合のパイプラインの動作形 態は、開発者がデータ パイプライン ペインタで定義します。詳細につ いては、 『PowerBuilder ユーザーズ ガイド』マニュアルを参照してくだ さい。 例 次の例は、コマンドボタンの Clicked イベントに対するスクリプトに記 述されたステートメントです。パイプライン オブジェクト i_pipe の実 行を停止します。 i_pipe.Cancel() 関連項目 Repair Start PowerScript リファレンス ボリューム 2 357 CanUndo CanUndo 機能 編集可能なコントロールの中で最後に行った編集操作を、Undo 関数を 使用して取り消すことができるかどうかを調べます。 対象 編集可能なコントロール(データウィンドウ、マルチライン エディッ ト、シングルライン エディット、リッチテキスト エディット) 構文 editname.CanUndo ( ) 引数 editname 説明 データウィンドウ、マルチライン エディット、シングル ライン エディット、リッチテキスト エディットのいずれ かのコントロールの名前を指定します。指定されたコント ロールの中で最後に行った編集操作を、Undo 関数で取り 消すことができるかどうかを調べます。データウィンドウ の場合、現行の行と列の編集可能なコントロールで最後に 行った編集操作を、Undo 関数で取り消すことができるか どうかを調べます。 戻り値 Boolean 型。最後に行った編集操作を CanUndo 関数を使用して取り消 すことができる場合、TRUE を返します。取り消すことができない場 合、FALSE を返します。また、editname に指定された値が NULL の場 合、NULL を返します。 例 次のステートメントは、mle_contact 内での最後の編集操作を、Undo 関 数を使用して取り消すことができるかどうかを確認します。取り消す ことができる場合、Undo 関数で最後の編集操作が取り消されます。取 り消すことができない場合、メッセージが表示されます。 IF mle_contact.CanUndo() THEN mle_contact.Undo() ELSE MessageBox(Parent.Title, "Undo できません。") END IF 関連項目 358 Undo PowerBuilder 第 10 章 PowerScript の関数 CategoryCount 機能 グラフの項目軸上にある項目の数を数えます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.CategoryCount ( { graphcontrol } ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) 説明 グラフ コントロールの名前、またはグラフを格納してい るデータウィンドウ コントロールの名前を指定します。指 定されたグラフ上の項目の数を数えます。 String 型の値。項目の数を数えるデータウィンドウ コント ロール上のグラフの名前を指定します。controlname にデー タウィンドウ コントロールの名前を指定した場合には、 graphcontrol を省略することはできません。 戻り値 Integer 型。正常に終了した場合は項目の数を返し、エラーが発生した 場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返 します。 例 次のステートメントは、データウィンドウ コントロール dw_findata 上 のグラフ gr_revenues の項目の数を数えます。 integer li_count li_count = & dw_findata.CategoryCount("gr_revenues") 次のステートメントは、グラフ gr_product_data の項目の数を数えます。 integer li_count li_count = gr_product_data.CategoryCount() 関連項目 DataCount SeriesCount PowerScript リファレンス ボリューム 2 359 CategoryName CategoryName 機能 指定された項目番号に対応する項目名を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.CategoryName ( { graphcontrol, } categorynumber ) 引数 controlname 説明 項目番号から項目を検索するグラフの名前、またはそ のグラフを格納しているデータウィンドウ コント ロールの名前を指定します。 graphcontrol String 型の値。項目名を検索するデータウィンドウ コ (データウィンド ントロール上のグラフの名前を指定します。 ウ コントロールの controlname にデータウィンドウ コントロールの名前 み)(オプション) を指定した場合には、graphcontrol を省略することは できません。 categorynumber 項目名を検索する項目番号を指定します。 戻り値 String 型。正常に終了した場合、controlname の中の categorynumber に 対応する項目名を返します。エラーが発生した場合、空の文字列("") を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 項目には、1 から CategoryCount 関数の戻り値までの連続番号が付けら れています。項目を削除した場合、残った項目が連続した順番になる ように番号を付け直します。CategoryName 関数を使用すると、項目番 号から対応する項目の名前を検索できます。 例 次のステートメントは、グラフ gr_product_data の番号 5 の項目の名前 を返します。 string ls_name ls_name = gr_product_data.CategoryName(5) 次のステートメントは、データウィンドウ コントロール dw_findata 上 のグラフ gr_revenues の番号 5 の項目の名前を返します。 string ls_name ls_name = & dw_findata.CategoryName("gr_revenues", 5) 関連項目 360 AddCategory SeriesName PowerBuilder 第 10 章 PowerScript の関数 Ceiling 機能 指定された値以上の整数の中から、最小の整数値を返します。 構文 Ceiling ( n ) 引数 n 説明 数値を指定します。指定された値以上の整数の中から、最 小の整数値を返します。 戻り値 n に指定された数値と同じデータ型。n に指定された値以上の整数の中 から、最小の整数値を返します。n に指定された値が NULL の場合、 NULL を返します。 例 次のステートメントは、num に 5 を代入します。 decimal dec, num dec = 4.8 num = Ceiling(dec) 次のステートメントは、num に -4 を代入します。 decimal num num = Ceiling(-4.2) num = Ceiling(-4.8) 関連項目 Int Round Truncate 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Ceiling メソッド PowerScript リファレンス ボリューム 2 361 ChangeDirectory ChangeDirectory 機能 現行ディレクトリを変更します。 構文 ChangeDirectory ( directoryname ) 引数 directoryname 戻り値 説明 String 型の値。現行ディレクトリに設定するディレクトリ の名前を指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 例 次の例では、現行ディレクトリを、現行ディレクトリの親ディレクト リに変更し、新しい現行ディレクトリをシングルライン エディット コ ントロールに表示します。 ChangeDirectory( ".." ) sle_1.text = GetCurrentDirectory( ) 関連項目 362 CreateDirectory GetCurrentDirectory PowerBuilder 第 10 章 PowerScript の関数 ChangeMenu 機能 ウィンドウと関連付けられているメニューを変更します。ウィンドウ が MDI フレームの場合、開いているシートのリストを現在アクティブ なメニューに追加します。 対象 ウィンドウ オブジェクト 構文 windowname.ChangeMenu ( menuname {, position } ) 引数 windowname menuname position (MDI フレーム ウィンドウの み) 説明 メニューを変更するウィンドウの名前を指定します。 関連付けるメニューの名前を指定します。 開いているシートの名前を追加するメニューバーのメ ニュー項目の番号を指定します。メニューバーのメニュー 項目は、左端から順番に 1 から番号が付けられます。デ フォルトの設定(0)では、メニューバーの最後から 2 番 目のメニュー項目(または、使用可能なメニュー項目が 1 つしかない場合は最後のメニュー項目)に、開いている シートのリストが表示されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。通常、戻り値は使用されません。 解説 MDI フレーム ウィンドウのメニューを変更している場合、アクティブ なシートがメニューを持っているときには、新しいメニューは表示さ れません。シートが独自のメニューを持っている場合には、フレーム の非表示メニューと同じように、開いているシートのリストをシート のメニュー上に表示します。 例 次のステートメントは、ウィンドウ オブジェクト w_Employee のトッ プ レベルのメニューを m_Emp1 に変更します。 w_Employee.ChangeMenu(m_Emp1) PowerScript リファレンス ボリューム 2 363 Char Char 機能 指定された文字列の先頭の Unicode 文字を返します。また、Integer 型の 値が指定された場合、Char 型に変換します。 構文 Char ( n ) 引数 n 説明 取得する文字が先頭にある String 型の文字列、Char 型に変 換する整数、先頭に文字列か整数を含む Blob 型のデータを 指定します。残りの文字列や Blob 型のデータは、無視さ れます。n には、文字列、整数、または Blob 型を含む Any 型の変数を指定することもできます。 戻り値 Char 型。n に指定された文字列の先頭の Unicode 文字を返します。n に 指定された文字列が NULL の場合、NULL を返します。 例 次のステートメントは、ASCII コード 42 のアスタリスクを ls_S に格納 します。 string ls_S ls_S = Char(42) 次のステートメントは、A ∼ F の ASCII コードを生成します。 string ls_Delivery integer li_DeliveryNbr FOR li_DeliveryNbr = 1 to 6 ls_Delivery = Char(64 + li_DeliveryNbr) ... // ls_Delivery の追加処理 NEXT 関連項目 364 Asc CharA PowerBuilder 第 10 章 PowerScript の関数 CharA 機能 指定された文字列の先頭の ASCII 文字を返します。また、Integer 型の値 が指定された場合、Char 型に変換します。 構文 CharA ( n ) 引数 n 説明 取得する文字が先頭にある String 型の文字列、Char 型に変 換する整数、先頭に文字列か整数を含む Blob 型のデータを 指定します。残りの文字列や Blob 型のデータは、無視さ れます。n には、文字列、整数、または Blob 型を含む Any 型の変数を指定することもできます。 戻り値 Char 型。n に指定された文字列の先頭文字を返します。n に指定された 文字列が NULL の場合、NULL を返します。 例 次のステートメントは、ASCII コード 42 のアスタリスクを ls_S に格納 します。 string ls_S ls_S = CharA(42) 次のステートメントは、A ∼ F の ASCII コードを生成します。 string ls_Delivery integer li_DeliveryNbr FOR li_DeliveryNbr = 1 to 6 ls_Delivery = CharA(64 + li_DeliveryNbr) ... // ls_Delivery の追加処理 NEXT 関連項目 AscA Char 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Char メソッド PowerScript リファレンス ボリューム 2 365 Check Check 機能 ドロップダウン メニューまたはカスケード メニューの項目の先頭に チェックマークを表示し、その項目の Checked プロパティを TRUE に します。 対象 メニュー オブジェクト 構文 menuname.Check ( ) 引数 menuname 説明 チェックマークを表示するメニューの完全な名前を指定 します。ドロップダウン メニューとカスケード メニュー のメニュー項目を指定できます。メニューバー上にある項 目は指定できません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。menuname に指定されたメニュー名が NULL の場合、 NULL を返します。 解説 メニュー項目の先頭に表示されているチェックマークは、そのメ ニュー項目が現在オンになっていることを示しています。エンド ユー ザは、そのメニュー項目を選択してオンとオフを切り替えることがで きます。たとえば、グリッドが表示されているときは、ウィンドウ ペ インタの[デザイン]メニューの[グリッドの表示]にチェックマー クが付いています。 メニュー項目の Clicked イベントに対するスクリプトの中で Check 関 数を使用すると、エンド ユーザがメニュー項目を選択したときに、メ ニュー項目にチェックマークを付けることができます。また、Uncheck 関数を使用すると、エンド ユーザがメニュー項目の選択を解除したと きに、メニュー項目からチェックマークを削除することができます。 Check 関数を呼び出すかわりに、次のようにメニュー項 目の Checked プロパティを設定する方法もあります。 別の記述方法 menuname.Checked = true たとえば、次のようなステートメントがあるとします。 Menu_Appl.M_View.M_Grid.Checked = TRUE このステートメントは、次のステートメントと同じ意味です。 Menu_Appl.M_View.M_Grid.Check() 例 366 次のステートメントは、メニュー m_Appl のドロップダウン メニュー m_View にあるメニュー項目 m_Grid の先頭に、チェックマークを表示 します。 PowerBuilder 第 10 章 PowerScript の関数 m_Appl.m_View.m_Grid.Check() 関連項目 Uncheck ChooseColor 機能 標準の色選択 ダイアログボックスを表示します。 構文 ChooseColor ( color {, customcolors [ ] } ) 引数 color customcolors (オプション) 説明 Long 型の値。ダイアログボックスで選択された色を表す 参照によって渡されます。 Long 型の配列。参照によって色選択 ダイアログボックス へ渡されるカスタム色を指定します。 戻り値 Integer 型。関数が正常に終了した場合は 1 を返します。エンド ユーザ が[キャンセル]ボタンをクリックした場合(またはダイアログボッ クスを閉じた場合)は 0 を返します。エラーが発生した場合は -1 を返 します。 例 次の例では、基本色の赤と、そのほかに 2 つのカスタム色が定義され ている色選択 ダイアログボックスを表示します。 long red, green, blue long custom[ ] integer li_color red = 255 custom[1]=rgb(red, 200, blue) custom[2]=8344736 li_color = ChooseColor( red, custom [ ] ) 関連項目 RGB PowerScript リファレンス ボリューム 2 367 ClassList ClassList 機能 パフォーマンス解析モデルに含まれているクラスのリストを返します。 対象 Profiling オブジェクト 構文 instancename.ClassList ( list ) 引数 instancename list 戻り値 説明 Profiling オブジェクトのインスタンス名を指定します。 ProfileClass データ型の可変長の配列変数を指定します。 ClassList 関数は、モデルに含まれている各クラスの ProfileClass オブジェクトをこの配列変数に保存します。 この引数は、参照渡しされます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しないため、関数は異常終了 しました。 解説 ClassList 関数を使用すると、パフォーマンス解析モデルに含まれてい るクラスのリストを抽出することができます。BuildModel 関数を使用し てトレース ファイルからパフォーマンス解析モデルをあらかじめ作 成しておかなければなりません。リストされる各クラスは ProfileClass オブジェクトとして定義され、クラス名、その親クラスと型、および そのクラスに関連付けられているルーチンがリストされます。リスト でのクラスの順序に意味はありません。 例 次の例は、パフォーマンス解析モデルに含まれているクラスのリスト を返します。 ProfileClass lproclass_list[], lproclass_class Profiling lpro_model Long ll_limitclass, ll_indexclass lpro_model = CREATE Profiling lpro_model.BuildModel() lpro_model.ClassList(lproclass_list) ll_limitclass = UpperBound(lproclass_list) FOR ll_indexclass = 1 TO ll_limitclass lproclass_class = lproclass_list[ll_indexclass] ... NEXT 関連項目 368 BuildModel PowerBuilder 第 10 章 PowerScript の関数 ClassName オブジェクトのクラス、または変数のデータ型を返します。 関数が返す内容 オブジェクトのクラス 変数のクラス(データ型) 使用する構文 構文 1 構文 2 構文 1 オブジェクトのクラスを返す 機能 指定されたオブジェクトのクラス(名前)を返します。 対象 すべてのコントロール 構文 controlname.Classname ( ) 引数 controlname 説明 コントロールの名前を指定します。スタイルを設定するダ イアログボックスで、このコントロールに割り当てられて いる名前(コントロールのクラス)を返します。 戻り値 String 型。controlname に指定されているコントロールのクラス(コン トロールに割り当てられている名前)を返します。エラーが発生した 場合、空の文字列("")を返します。また、controlname に指定されて いるコントロールの名前が NULL の場合、NULL を返します。 解説 クラスとは、オブジェクトの名前のことです。オブジェクトの名前は、 ペインタでオブジェクトを保存するときに付けます。通常、クラスと オブジェクトは同じものとして表されます。これは、PowerBuilder が オブジェクトのクラスと同じ名前を使用して変数を宣言するからで す。ただし、1 つのオブジェクトに対して複数のインスタンスを宣言 している場合、オブジェクトのクラスとオブジェクトの変数の名前は 異なります。 先祖オブジェクトが子孫オブジェクトのインスタンスになっている場 合、ClassName 関数を使用して子孫オブジェクトの名前を確認できま す。 TypeOf 関数は、オブジェクトの組み込みオブジェクト データ型を返し ます。このデータ型は、オブジェクトのカタログ データ型の値です。 たとえば、Window! や CheckBox! などです。ClassName 関数は、先祖と 子孫の階層構造を表すオブジェクトのクラスを返します。 PowerScript リファレンス ボリューム 2 369 ClassName 例 次のステートメントは、ドラッグされたコントロール Source のクラス を返します。 DragObject Source string which_class Source = DraggedObject() which_class = Source.ClassName() 次のステートメントは、コントロール配列内のオブジェクトのクラス を返し、オブジェクトのクラスを配列 the_class に格納します。 string the_class[] windowobject the_object[] integer i FOR i = 1 TO UpperBound(control[]) the_object[i] = control[i] the_class[i] = the_object[i].ClassName() NEXT たとえば、ウィンドウ ancestor_window に、win1 と win2 という 2 つの子 孫オブジェクトがあり、エンドユーザはシートとして開く子孫オブ ジェクトを選択できるとします。次のコードは、どの子孫ウィンドウ クラスがアクティブであるかを返します(MDI フレームの名前は w_frame です) 。 ancestor_window active_window active_window = w_frame.GetActiveSheet() IF ClassName(active_window) = "win1" THEN . . . END IF 関連項目 DraggedObject TypeOf 構文 2 変数のデータ型を返す 機能 変数のデータ型を返します。 構文 ClassName ( variable ) 引数 variable 370 説明 変数の名前を指定します。指定された変数の名前(変数の データ型)を返します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 String 型。variable に指定された変数のデータ型(名前)を返します。 variable に指定された変数がカタログ データ型の場合、またはエラー が発生した場合には、空の文字列("")を返します。また、variable に 指定された変数の名前が NULL の場合、NULL を返します。 解説 variable に指定された変数がカタログ データ型の場合、ClassName 関数 はデータ型を判断できません。この場合、空の文字列("")を返します。 例 gd_double がグローバルな Double 型の変数の場合、変数 varname に double を設定します。 string varname varname = ClassName(gd_double) Clear 機能 指定されたコントロールから、選択したテキストや OLE オブジェクト を削除します。削除したテキストやオブジェクトは、クリップボード には格納されません。 対象 データウィンドウ、エディットマスク、InkEdit、マルチライン エディッ ト、シングルライン エディット、リッチテキスト エディット、ドロッ プダウン リストボックス、ドロップダウン ピクチャ リストボックス、 OLE の各コントロール、OLEStorage オブジェクト 構文 objectname.Clear ( ) 引数 objectname 説明 以下のいずれかを指定します。 • 選択されたテキストを消去するデータウィンドウ コン トロール、エディットマスク、マルチライン エディッ ト、シングルライン エディット、リッチテキスト エ ディット、ドロップダウン リストボックス、ドロップ ダウン ピクチャ リストボックスのいずれかのコント ロールの名前 • OLE オブジェクトを解放する OLE コントロールの名前、 またはストレージ オブジェクト変数(OLEStorage 型)の 名前 objectname にドロップダウン リストボックス コントロー ルまたはドロップダウン ピクチャ リストボックス コント ロールの名前を指定した場合には、AllowEdit プロパティ を TRUE にしておく必要があります。 PowerScript リファレンス ボリューム 2 371 Clear 戻り値 データウィンドウ、InkEdit、およびリストボックスの場合は Integer 型、 ほかのコントロールの場合は Long 型 編集可能なコントロールに対しては、objectname に指定されたコント ロールから消去した文字数を返します。テキストが選択されていな かった場合、文字を消去せずに 0 を返します。エラーが発生した場合、 -1 を返します。 OLE コントロールやストレージ変数に対しては、正常に終了した場合 は 0 を返し、エラーが発生した場合は -9 を返します。 objectname に指定されたコントロールの名前が NULL の場合、NULL を 返します。 解説 削除するテキストを選択するには、マウスやキーボードを使用します。 スクリプト内で SelectText 関数を呼び出す方法もあります。 削除するテキストをクリップボードに格納しておく場合には、Cut 関数 を使用します。 OLE コントロールから OLE オブジェクトを消去すると、消去したオブ ジェクトへのすべての参照が削除されます。そのオブジェクトに対す る変更内容は、ストレージ オブジェクトまたはファイルには保存され ません。 OLEStorage 変数に対して Open 関数や SaveAs 関数が呼び出されている 場合に、OLEStorage 変数を消去すると、Open 関数または SaveAs 関数 によって確立されたそのオブジェクトとストレージ ファイルとの間 の接続が解除されます。また、ストレージ変数の中のオブジェクトと 結合するために、Open 関数や SaveAs 関数を呼び出した OLE コント ロールと OLEStorage 型の変数との間に確立された接続も解除されま す。 例 sle_comment1 内のテキスト Draft が、選択されているとします。次のス テートメントは、sle_comment1 から Draft を削除して 5 を返します。 sle_comment1.Clear() sle_comment1 内のテキストが Draft の場合、最初のステートメントは D を選択します。2 番目のステートメントは、sle_comment1 から D を消 去して 1 を返します。 sle_comment1.SelectText(1,1) sle_comment1.Clear() 次の例は、OLE コントロール ole_1 と関連するオブジェクトを消去し、 コントロールを空にします。 integer result result = ole_1.Clear() 372 PowerBuilder 第 10 章 PowerScript の関数 次の例は、OLEStorage オブジェクト変数 olest_stuff のオブジェクトを 消去します。また、olest_stuff 内でオブジェクトを開いているすべての OLE コントロールを解放します。 integer result result = olest_stuff.Clear() 関連項目 Close Cut Paste ReplaceText SelectText ClearBoldDates 機能 SetBoldDate 関数で設定された日付の太字設定を解除します。 対象 月表示カレンダ コントロール 構文 controlname.ClearBoldDates ( ) 引数 controlname 説明 日付の太字設定を解除する月表示カレンダ コントロール の名前を指定します。 戻り値 Integer 型。成功した場合は 0 を返し、失敗した場合は -1 を返します。 解説 休日などの選択された日付を太字で表示するには、SetBoldDate 関数を 使用します。ClearBoldDates 関数は、この太字の設定をすべて解除しま す。個別の日付の太字設定を解除するには、SetBoldDate 関数の onoff パ ラメータに FALSE を指定します。 例 次の例は、コントロール monthCalVacations 内の太字設定をすべて解除 します。 integer li_return li_return = monthCalVacation.ClearBoldDates() 関連項目 SetBoldDate PowerScript リファレンス ボリューム 2 373 Clipboard Clipboard クリップボードの内容を取り出したり、置き換えたりします。 目的 クリップボードの内容を取り出す、または指定された テキストに置き換える クリップボードの内容をグラフのビットマップ画像 に置き換える 使用する構文 構文 1 構文 2 構文 1 クリップボードの内容をテキストに置き換える 機能 クリップボードの内容を取り出すか、またはテキストに置き換えます。 構文 Clipboard ( { string } ) 引数 string (オプション) 戻り値 説明 String 型の値。クリップ ボードにコピーするテキストを指 定します。クリップボードの現在の内容を指定されたテキ ストに置き換えます。 String 型。クリップボードにテキストがコピーされている場合、クリッ プボードの現在の内容を返します。string に値が指定されている場合、 クリップボードの現在の内容を返し、クリップボードの内容を string に置換します。 クリップボードに何もコピーされていない場合、またはビットマップ など、テキスト以外のデータがクリップボードにコピーされている場 合は、空の文字列("")を返します。string に値が指定されている場合、 テキスト以外のデータを string に指定されているテキストに置き換え ます。string に指定されたテキストが NULL の場合、NULL を返します。 解説 Clipboard 関数の構文 1 を Paste 関数、Replace 関数、ReplaceText 関数の いずれかと組み合わせて使用すると、編集可能なコントロールまたは スタティック テキスト コントロールに、クリップボードの内容を挿入 できます。 データウィンドウ コントロールまたはデータストア オブジェクトにおける Clipboard 関数の呼び出し データウィンドウ項目(セル値)から、ク リップボードの内容を取り出したり、テキストに置き換えるには、以 下のように、まず値を String に設定し、Clipboard 関数を呼び出すこと が必要です。 string ls_data = dw_1.object.column_name[row_number] ::Clipboard(ls_data) 374 PowerBuilder 第 10 章 PowerScript の関数 構文 2(および『データウィンドウ リファレンス』マニュアル)に記 載されているデータウィンドウ バージョンの Clipboard 関数は、グラフ にしか適用されません。 例 次のステートメントは、クリップボードの内容を変数 ls_CoName に格 納します。 string ls_CoName ls_CoName = Clipboard() 次のステートメントは、クリップボードの内容を Heading にコピーし た後、クリップボードの内容を "Employee Data" という文字列に置き換 えます。 string Heading Heading = Clipboard("Employee Data") 次のステートメントは、マルチライン エディット コントロール mle_terms で選択したテキストをクリップボードの内容と置き換えます。 mle_terms.ReplaceText(Clipboard()) 次のステートメントは、スタティック テキスト コントロール st_welcome の内容とクリップボードの内容を入れ替えます。 st_welcome.Text = Clipboard(st_welcome.Text) 関連項目 Clear Copy Cut Paste Replace ReplaceText 構文 2 クリップボードの内容をグラフのビットマップに置 き換える 機能 クリップボードの内容をグラフのビットマップ画像に置き換えます。 クリップボードにコピーされた画像は、ほかのアプリケーションに貼 り付けることができます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ オブジェクト、 データウィンドウ上およびデータストア上のグラフ PowerScript リファレンス ボリューム 2 375 Close 構文 name.Clipboard ( { graphobject } ) 引数 name graphobject (データウィンド ウ コントロールお よびデータストア オブジェクトの場 合のみ)(オプ ション) 説明 クリップボードにコピーするグラフの名前、あるいは クリップボードにコピーするグラフを含むデータウィ ンドウ コントロールまたはデータストア オブジェク トの名前を指定します。 String 型の値。クリップボードにコピーするデータウィ ンドウ オブジェクト上のグラフ コントロールの名前 を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。 例 次のステートメントは、グラフ gr_products_data をクリップボードにコ ピーします。 gr_products_data.Clipboard() 次のステートメントは、データウィンドウ コントロール dw_emp_data 上のグラフ gr_employees をクリップボードにコピーします。 dw_emp_data.Clipboard("gr_employees") Close ウィンドウ、OLE ストレージ、OLE ストリーム、トレース ファイルの いずれかを閉じます。 閉じる対象 ウィンドウ オブジェクト OLEStorage オブジェクト変数。オブジェクトを保存 し、オブジェクトとストレージ ファイル、またはオ ブジェクトとストレージ オブジェクトとの間の接続 を解除します。 指定された OLEStream オブジェクト変数に関連付け られたストリーム トレース ファイル 376 使用する構文 構文 1 構文 2 構文 3 構文 4 PowerBuilder 第 10 章 PowerScript の関数 構文 1 ウィンドウを閉じる 機能 ウィンドウを閉じ、ウィンドウとウィンドウ上のすべてのコントロー ルが使用している記憶領域を解放します。 対象 ウィンドウ オブジェクト 構文 Close ( windowname ) 引数 windowname 説明 閉じるウィンドウの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。windowname に指定されたウィンドウの名前が NULL の 場合、NULL を返します。通常、戻り値は使用されません。 解説 この構文は、ウィンドウを閉じ、ウィンドウとウィンドウ上のすべての コントロールが使用している記憶領域を解放する場合に使用します。 Close 関数が呼び出されると、PowerBuilder はウィンドウをビューから 削除し、ウィンドウを閉じます。CloseQuery イベントと Close イベン トにスクリプトが記述されている場合、そのスクリプトを実行します。 最後に、Close 関数を呼び出したスクリプトの残りのステートメントを 実行します。 ウィンドウを閉じた後には、そのプロパティ、インスタンス変数、コ ントロールをスクリプトから参照できなくなります。残りのスクリプ ト内に、閉じたウィンドウ、閉じたウィンドウのプロパティ、インス タンス変数を参照するステートメントがある場合には、実行時にエ ラーが発生します。 ウィンドウが閉じないようにする方法 CloseQuery イベントのスクリプト内で、1 のリターン コードでウィン ドウが閉じないようにすることができます。RETURN ステートメント を使用します。 例 次のステートメントは、ウィンドウ w_employee を閉じた後、ウィンド ウ w_departments を開きます。 Close(w_employee) Open(w_departments) 次の例は、Close 関数を呼び出した後、CloseQuery イベントに対するス クリプトに記述されたステートメントです。アプリケーションを終了 してもよいかどうかを確認するメッセージを表示し、エンド ユーザの 応答が No の場合にウィンドウが閉じないようにします。 PowerScript リファレンス ボリューム 2 377 Close IF MessageBox(' アプリケーションの終了 ', & ' 終了しますか ?', Question!, YesNo!) = 2 THEN // 応答が No の場合は、ウィンドウが閉じないようにします。 RETURN 1 END IF 関連項目 Hide Open 構文 2 OLEStorage オブジェクトを閉じる 機能 関連付けられたストレージ ファイルまたはストレージ オブジェクト にオブジェクトを保存し、オブジェクトとストレージ ファイル、また はオブジェクトとストレージ オブジェクトとの間の接続を解除して から OLEStorage オブジェクトを閉じます。また、オブジェクトを開い ている OLE コントロールとサーバとの接続も閉じます。Close 関数を 呼び出した結果は、Save 関数を呼び出した後で Clear 関数を呼び出し た結果と同じになります。 対象 OLEStorage オブジェクト 構文 olestorage.Close ( ) 引数 olestorage 戻り値 説明 保存して閉じる OLEStorage オブジェクトの名前を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 ストレージが開かれていません。 -9 そのほかのエラーです。 olestorage に指定されたオブジェクトが NULL の場合、NULL を返しま す。 例 次の例は、OLEStorage オブジェクト変数 olest_stuff にオブジェクトを 保存し、消去します。また、olest_stuff 内でオブジェクトを開いている すべての OLE コントロールを解放します。 integer result result = olest_stuff.Close() 関連項目 378 Open Save SaveAs PowerBuilder 第 10 章 PowerScript の関数 構文 3 OLEStream オブジェクトを閉じる 機能 OLEStream オブジェクトを閉じます。 対象 OLEStream オブジェクト 構文 olestream.Close ( ) 引数 olestream 戻り値 説明 閉じる OLEStream オブジェクトの名前を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 ストレージが開かれていません。 -9 そのほかのエラーです。 olestream に指定されている値が NULL の場合、NULL を返します。 例 次のステートメントは、OLEStream オブジェクト stm_pic_label を閉じ、 変数に割り当てられていたメモリを解放します。 integer result result = stm_pic_label.Close() DESTROY stm_pic_label 関連項目 Open 構文 4 トレース ファイルを閉じる 機能 開いているトレース ファイルを閉じます。 対象 TraceFile オブジェクト 構文 instancename.Close ( ) 引数 instancename 戻り値 説明 TraceFile オブジェクトのインスタンス名を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileNotOpenError! − トレースファイルが開かれていません。 PowerScript リファレンス ボリューム 2 379 CloseChannel 解説 Open 関数を使用して開いてあったトレース ファイルを閉じます。ト レース ファイルの内容に直接アクセスするには、Close 関数と Open 関 数に加えて、TraceFile オブジェクトのプロパティと関数を使用します。 これらの関数は、Profiling オブジェクトまたは TraceTree オブジェクト と BuildModel 関数を使用してモデルを構築するかわりに、トレースす るデータに対して独自の解析を実行する場合に使用します。 例 次の例は、トレース ファイルを閉じます。 ift_file.Close() DESTROY ift_file 関連項目 Reset Open NextActivity CloseChannel 機能 DDE チャネルを閉じます。 構文 CloseChannel ( handle {, windowhandle } ) 引数 handle windowhandle (オプション) 戻り値 説明 Long 型の値。閉じる DDE チャネルを指定します。 OpenChannel 関数を使用して DDE チャネルを開いたとき に、OpenChannel 関数が返す値と同じ値を指定します。 DDE クライアントとして機能している PowerBuilder ウィ ンドウのハンドルを指定します。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場合、 次のいずれかの値を返します。 -1 -2 -3 -9 チャネルを開けません。 チャネルが閉じないように設定されています。 サーバからの確認情報がありません。 handle が NULL です。 解説 OpenChannel 関数で開いた DDE サーバ アプリケーションに対する チャネルを閉じます。 380 PowerBuilder 第 10 章 PowerScript の関数 通常、チャネルのハンドルを指定して DDE チャネルを閉じます。ただ し、チャネルと関連付けられている PowerBuilder ウィンドウのハンド ル を 指 定 す る こ と も で き ま す。windowhandle が 指 定 さ れ た 場 合、 windowhandle 内の DDE チャネルを閉じます。windowhandle を省略し た場合、アクティブ ウィンドウの DDE チャネルを閉じます。Handle 関 数を使用すると、ウィンドウのハンドルを呼び出すことができます。 例 次のステートメントは、handle に指定されたチャネルを開いてから閉 じます。チャネルは、ウィンドウ w_sheet と関連付けられています。 long handle handle = OpenChannel("Excel", "REGION.XLS", & Handle(w_sheet) ) ... // 何らかの処理 CloseChannel(handle, Handle(w_sheet)) 関連項目 GetRemote OpenChannel SetRemote CloseTab 機能 OpenTab 関数または OpenTabWithParm 関数で開いたタブ コントロール から、タブ ページを削除します。CloseTab 関数は、ユーザ オブジェク トの Destructor イベントに対するスクリプトを実行します。 対象 タブ コントロール 構文 tabcontrolname.CloseTab ( userobjectvar ) 引数 tabcontrolname userobjectvar 説明 閉じるタブ ページを含むタブ コントロールの名前を指定 します。 閉じるユーザ オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。通常、戻り値は使用されません。 解説 CloseTab 関数は、タブ ページとして開いているユーザ オブジェクトを 閉じ、そのオブジェクトとオブジェクトのコントロールが使用してい たメモリを解放します。 PowerScript リファレンス ボリューム 2 381 CloseTab CloseTab 関数が呼び出されると、PowerBuilder はコントロールからタ ブ ページを削除し、そのオブジェクトを閉じます。Destructor イベン トに対するスクリプトがある場合、そのスクリプトを実行します。最 後に CloseTab 関数を呼び出したスクリプト内の残りのステートメント を実行します。 さらに、CloseTab 関数は、タブ コントロールの Control 配列からユーザ オブジェクトを削除します。Control 配列は、タブ コントロール内のタ ブページをリストするプロパティです。閉じられたタブページが配列 内の最後の要素でなかった場合、以降のすべてのタブページ用のイン デックスが 1 ずつ減らされます。 ユーザ オブジェクトを閉じた後には、そのプロパティ、インスタンス 変数、コントロールをスクリプトから参照できなくなります。残りの スクリプト内に、閉じたユーザ オブジェクト、そのプロパティ、イン スタンス変数を参照するステートメントがある場合は、実行時にエ ラーが発生します。 例 次のステートメントは、タブ ページ ユーザ オブジェクト u_employee を閉じ、タブ コントロール tab_personnel でユーザ オブジェクト u_departments を開きます。 tab_personnel.CloseTab(u_employee) tab_personnel.OpenTab(u_departments) 次の例は、ユーザ オブジェクトを閉じるメニュー項目を選択した場合 の処理を、メニュー項目のスクリプトから抜粋したものです。選択し たメニュー項目と関連するユーザ オブジェクト u_employee を閉じる 前に、確認のメッセージを表示します。 IF MessageBox(" オブジェクトを閉じる ", " オブジェクトを閉じま すか? ", & Question!, YesNo!) = 1 THEN // エンド ユーザが Yes を選択した場合、ユーザ オブジェクト を閉じます。 ParentWindow.CloseTab(u_employee) // エンド ユーザが No を選択した場合、何も行いません。 END IF 関連項目 382 OpenTab PowerBuilder 第 10 章 PowerScript の関数 CloseUserObject 機能 画面からユーザ オブジェクトを消去し、Destructor イベントに対する スクリプトを実行してそのユーザ オブジェクトを閉じます。 対象 ウィンドウ オブジェクト 構文 windowname.CloseUserObject ( userobjectname ) 引数 windowname userobjectname 説明 ユーザ オブジェクトを含むウィンドウの名前を指定します。 閉じるユーザ オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。通常、戻り値は使用されません。 解説 ユーザ オブジェクトを閉じ、そのオブジェクトやオブジェクト内のコ ントロールが使用していたメモリを解放します。 CloseUserObject 関数が呼び出されると、PowerBuilder は画面からオブ ジェクトを消去し、そのオブジェクトを閉じます。次に、Destructor イ ベントに対するスクリプトが記述されている場合、そのスクリプトを 実行します。最後に、CloseUserObject 関数を呼び出したスクリプト内 の残りのステートメントを実行します。 さらに、CloseUserObject 関数は、ウィンドウの Control 配列からユーザ オブジェクトを削除します。Control 配列は、ウィンドウのコントロー ルをリストするプロパティです。閉じられたユーザ オブジェクトが配 列内の最後の要素でなかった場合、以降のすべてのユーザ オブジェク ト用のインデックスが 1 ずつ減らされます。 ユーザ オブジェクトを閉じた後には、そのプロパティ、インスタンス 変数、コントロールをスクリプトから参照できなくなります。残りの スクリプト内に、閉じたユーザ オブジェクト、そのプロパティ、イン スタンス変数を参照するステートメントがある場合は、実行時にエ ラーが発生します。 例 次のステートメントは、ユーザ オブジェクトの u_employee を閉じた 後、ウィンドウ w_personnel 内のユーザ オブジェクト u_departments を 開きます。 w_personnel.CloseUserObject(u_employee) w_personnel.OpenUserObject(u_departments) PowerScript リファレンス ボリューム 2 383 CloseWithReturn 次の例は、ユーザ オブジェクトを閉じるメニュー項目を選択した場合 の処理を、メニュー項目のスクリプトから抜粋したものです。選択し たメニュー項目と関連するユーザ オブジェクト u_employee を閉じる 前に、確認のメッセージを表示します。 IF MessageBox(" オブジェクトを閉じる ", " オブジェクトを閉じま すか? ", & Question!, YesNo!) = 1 THEN // エンド ユーザが Yes を選択した場合、ユーザ オブジェクト を閉じます。 ParentWindow.CloseUserObject(u_employee) // エンド ユーザが No を選択した場合、何も行いません。 END IF 関連項目 OpenUserObject CloseWithReturn 機能 ウィンドウを閉じ、メッセージ オブジェクト内に戻り値を格納します。 CloseWithReturn 関数は、レスポンス ウィンドウだけで使用できます。 対象 ウィンドウ オブジェクト 構文 CloseWithReturn ( windowname, returnvalue ) 引数 windowname returnvalue 説明 閉じるウィンドウの名前を指定します。 ウィンドウを閉じるときにメッセージ オブジェクトに格納 する値。returnvalue には、以下のいずれかのデータ型を指 定します。 • String 型 • 数値型 • PowerObject 型 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。通常、戻り値は使用されません。 解説 CloseWithReturn 関数の目的は、レスポンス ウィンドウを閉じ、レスポ ンス ウィンドウから、レスポンス ウィンドウを開いていたウィンドウ に情報を返すことにあります。CloseWithReturn 関数を使用すると、ウィ ンドウを閉じ、そのウィンドウやウィンドウ内のコントロールが使用 していたメモリを解放して値を返すことができます。 384 PowerBuilder 第 10 章 PowerScript の関数 Close 関数と同じように、CloseWithReturn 関数も画面からウィンドウを 消去してから閉じます。次に、CloseQuery イベントと Close イベント に対するスクリプトがある場合、そのスクリプトを実行します。この 場合、イベントのスクリプトを実行する前に、returnvalue に指定され たデータ型の値がメッセージ オブジェクト内に格納されます。最後 に、CloseWithReturn 関数を呼び出したスクリプト内の残りのステート メントを実行します。 ウィンドウを閉じた後には、そのプロパティ、インスタンス変数、コ ントロールをスクリプトから参照できなくなります。残りのスクリプ ト内に、閉じたウィンドウ、閉じたウィンドウのプロパティ、インス タンス変数を参照するステートメントがある場合には、実行時にエ ラーが発生します。 PowerBuilder では、オブジェクトのデータ型に応じたメッセージ オブ ジェクトのプロパティに、returnvalue に指定されたデータ型の値が格 納されます。CloseWithReturn 関数を呼び出したスクリプト内で、戻り 値のデータ型に応じたメッセージ オブジェクトのプロパティを指定 して最新の戻り値にアクセスできます。 表 10-1: 戻り値を格納する Message オブジェクトのプロパティ 戻り値のデータ型 数値型 PowerObject 型(たとえば、構造体) String 型 Message オブジェクトのプロパティ Message.DoubleParm Message.PowerObjectParm Message.StringParm 構造体として複数の値を返す方法 複数の値を返すには、その値を格納するユーザ定義の構造体を定義し、 レスポンス ウィンドウを開いたスクリプト内のメッセージ オブジェ クトの PowerObjectParm プロパティにアクセスします。構造体は値で 渡されるので、元の値がなくなった場合でもそのデータにアクセスす ることができます。 コントロールを参照する方法 ユーザ オブジェクトおよびコントロールには、値ではなく参照が渡さ れ ま す。ウ ィ ン ド ウ を 閉 じ た 後 は コ ン ト ロ ー ル が な い の で、 ClodeWithReturn 関数を使用してコントロールに参照を返すことはでき ません。そのかわりに、そのコントロールのプロパティの値を返します。 PowerScript リファレンス ボリューム 2 385 CloseWithReturn ウィンドウが閉じないようにする方法 CloseQuery イベントのスクリプト内で、1 のリターン コードでウィン ドウが閉じないようにすることができます。RETURN ステートメント を使用します。 例 次のステートメントは、レスポンス ウィンドウ w_employee_response を 閉じ、そのウィンドウを開いていたウィンドウに文字列 emp_name を 返します。 CloseWithReturn(Parent, "emp_name") たとえば、あるメニュー項目は、エンド ユーザが未経験者であるか経 験者であるかによって、異なるウィンドウを開くとします。メニュー 項目は、w_signon という名前のレスポンス ウィンドウを表示してエン ド ユーザの経験レベルを確認します。エンド ユーザは、シングルライ ン エディット コントロール sle_signon_id に自分の経験レベルを入力し ます。レスポンス ウィンドウの[OK]ボタンをクリックすると、 sle_signon_id 内のテキストがメニュー項目のスクリプトに渡されます。 メニュー項目のスクリプトは、メッセージ オブジェクトの SingleParm プロパティをチェックし、必要なウィンドウを開きます。 次の 1 行は、レスポンス ウィンドウ w_signon 内の[OK]ボタンの Clicled イベントに対するスクリプトです。 CloseWithReturn(Parent, sle_signon_id.Text) メニュー項目に対するスクリプトは、次のとおりです。 string ls_userlevel // ダイアログボックスを開きます。 Open(w_signon) // Message オブジェクトのテキストをチェックします。 ls_userlevel = Message.StringParm IF ls_userlevel = "Novice" THEN Open(win_novice) ELSE Open(win_advanced) END IF 関連項目 386 Close OpenSheetWithParm OpenUserObjectWithParm OpenWithParm PowerBuilder 第 10 章 PowerScript の関数 CollapseItem 機能 指定された項目を折りたたみます。 対象 ツリービュー コントロール 構文 treeviewname.CollapseItem ( itemhandle ) 引数 treeviewname itemhandle 説明 項目を折りたたむツリービュー コントロールの名前を指 定します。 折りたたむ項目のハンドルを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 レベル 1 のエントリが 1 つしかない場合は、引数として RootTreeItem ハンドルを使用することで、トップレベルのノードだけが表示される ようにツリーを折りたたむことができます。ただし、CollapseItem は現 行の項目だけを折りたたみます。したがって、ツリーを折りたたむと きにトップレベルの項目の子が展開されていた場合は、トップレベル の項目を展開すると、それらの子が展開された状態で表示されます。 レベル 1 のエントリが複数ある場合に引数として RootTreeItem ハンド ルを使用すると、最初のレベル 1 エントリだけが折りたたまれます。 例 次の例は、ツリービュー コントロールの項目を折りたたみます。 long ll_tvi ll_tvi = tv_list.FindItem(currenttreeitem!, 0) tv_list.CollapseItem(ll_tvi) 次の例は、レベル 1 のエントリが 1 つしかないツリービュー コント ロールのトップレベルの項目を折りたたみます。 long ll_tvi ll_tvi = tv_list.FindItem(roottreeitem!, 0) tv_list.CollapseItem(ll_tvi) 関連項目 ExpandItem ExpandAll FindItem PowerScript リファレンス ボリューム 2 387 CommandParm CommandParm 機能 アプリケーションを起動するときにプログラム名の後に指定した引数 を表す文字列を返します。 構文 CommandParm ( ) 戻り値 String 型。正常に終了した場合、アプリケーションを起動するときにコ マンド ラインに入力した引数を表す文字列を返します。エラーが発生 した場合、または引数が指定されていない場合、空の文字列("")を 返します。 解説 コマンド引数は、Windows プログラムのコマンド ラインまたはファイ ル名を指定して実行 ダイアログボックスのコマンド ラインで、プログ ラム名の後に指定できます。たとえば、ファイル名を指定して実行 ダ イアログボックスに、次のように入力したとします。 MyAppl C:\EMPLOYEE\EMPLIST.TXT この場合、CommandParm 関数は、C:\EMPLOYEE\EMPLIST.TXT とい う文字列を返します。 アプリケーションのコマンド ラインに複数の引数が指定された場合、 CommandParm 関数は、すべての引数を一連の文字列として返します。 Mid 関数や Pos 関数などの文字列を操作する関数を使用すると、 文字列 を解析し、それぞれの引数を取り出すことができます。 アプリケーションの Open イベント内では、CommandParm 関数を呼び 出す必要はありません。そのかわりに、引数 commandline を使用して ください。 例 次のステートメントでは、アプリケーションを起動するときにコマンド ラインに入力した引数を取得し、変数 ls_command_line に代入します。 string ls_command_line ls_command_line = CommandParm() コマンド ラインに複数の引数が指定された場合に文字列を操作する 関数を使用すると、戻り値を解析し、それぞれの引数を取り出すこと ができます。次の例は、CommandParm 関数で取得した複数の引数を配 列に格納します。それぞれの引数は、1 つのスペースで区切られてい るものとします。それぞれの引数を取り出すために、Pos 関数を使用 してスペースを検索します。Left 関数は配列に引数をコピーし、Replace 関数は次の引数が先頭に移動するように、元の文字列から引数を削除 します。 string ls_cmd, ls_arg[] integer i, li_argcnt 388 PowerBuilder 第 10 章 PowerScript の関数 // 引数を取得して、文字列の前後から // スペースを取り除きます。 ls_cmd = Trim(CommandParm()) li_argcnt = 1 DO WHILE Len(ls_cmd) > 0 // 最初のスペースを検索します。 i = Pos( ls_cmd, " ") // // // if 空白文字がない場合(引数が 1 つの場合)、 引数を表す文字列の最後にもう 1 文字あるものと仮定して 変数 i に文字列の長さを設定します。 i = 0 then i = Len(ls_cmd) + 1 // 引数を配列に設定します。 // コピーする文字の数は、Pos 関数を使用して検索した // スペースの位置を示す値よりも 1 つ少なくなります。 ls_arg[li_argcnt] = Left(ls_cmd, i - 1) // 引数の配列の数のカウンタを 1 つ増やします。 li_argcnt = li_argcnt + 1 // 引数の文字列から配列の要素を取り除き、 // 次の配列の要素が先頭にくるようにします。 ls_cmd = Replace(ls_cmd, 1, i, "") LOOP CommitTransaction 機能 呼び出し元スレッドと関連付けられている EAServer トランザクショ ンがコミットする必要があることを宣言します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.CommitTransaction (breportheuristics ) 引数 CORBACurrent breportheuristics PowerScript リファレンス ボリューム 2 説明 CORBACurrent サービス インスタンスへの参照を指 定します。 Boolean 型。呼び出し元のスレッドと関連付けられてい るトランザクションに対するヒューリスティックな判 断を通知すべきかどうかを指定します。 389 CommitTransaction 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの値を返します。 解説 -1 理由の不明なエラーで失敗しました。 -2 呼び出し元のスレッドにトランザクションが関連付けられていま せん。 -3 呼び出し元のスレッドがトランザクションをコミットする権限を 持ちません。 -4 HeuristicRollback 例外が発生しました。 -5 HeuristicMixed 例外が発生しました。 -6 HeuristicHazard 例外が発生しました。 CommitTransaction 関数は、呼び出し元スレッドと関連付けられている トランザクションを完了させます。トランザクションを開始し、呼び 出し元スレッドと関連付けるには BeginTransaction 関数を使用します。 トランザクションの参加者からそのトランザクションをロールバック すべきとの提案が出た場合、トランザクションは完了しません。 CommitTransaction は、OTS 形式のマークが付いているクライアントま たはコンポーネントで呼び出せます。EAServer は、2 フェーズ コミッ ト トランザクション コーディネータ(OTS/XA)を使用していること が必要です。 例 次の例では、クライアントが CmpnyAcct EAServer コンポーネント上 で、会社の支払い給与処理を行う dopayroll メソッドを呼び出します。 支払い給与に見合う資金が会社にある場合は、メソッドから 1 が返り、 クライアントはトランザクションを完了できます。 // インスタンス変数: // CORBACurrent corbcurr integer li_rc boolean lb_rv long ll_rc // CORBACurrent オブジェクトのインスタンスを作成し、 // そのインスタンスを初期化します。 ... lb_rv = corbcurr.BeginTransaction() IF lb_rv THEN ll_rc = myconnect.CreateInstance(CmpnyAcct) // エラーを処理します。 li_rc = CmpnyAcct.dopayroll() IF li_rc = 1 THEN corbcurr.CommitTransaction( 390 PowerBuilder 第 10 章 PowerScript の関数 ELSE corbcurr.RollbackTransaction() END IF ELSE // エラーを処理します。 END IF 関連項目 BeginTransaction GetContextService GetStatus GetTransactionName Init ResumeTransaction RollbackOnly RollbackTransaction SetTimeout SuspendTransaction ConnectToNewObject 機能 指定されたサーバ アプリケーション内に新しいオブジェクトを作成 し、PowerBuilder の OLEObject 変数と関連付けます。また、必要であ れば、サーバ アプリケーションを起動します。 対象 OLEObject オブジェクト、OLETxnObject オブジェクト 構文 oleobject.ConnectToNewObject ( classname ) 引数 oleobject classname 戻り値 説明 オートメーション サーバまたは COM オブジェクトに接続 する OLEObject 変数の名前を指定します。OLE コントロー ルの Object プロパティである OLEObject を指定すること はできません。 String 型の値。オートメーション サーバまたは COM サー バを識別するプログラムによる識別子またはクラス ID を 指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの値を返します。 -1 呼び出しが無効です。引数は、コントロールの Object プロパ ティです。 -2 クラス名が見つかりません。 PowerScript リファレンス ボリューム 2 391 ConnectToNewObject -3 オブジェクトを作成できません。 -4 オブジェクトに接続できません。 -9 そのほかのエラーです。 -15 このコンピュータには COM+ がロードされていません。 -16 呼び出しが無効です。この関数は使用できません。 引数のいずれかの値が NULL の場合は、NULL を返します。 解説 OLEObject 変数は、オートメーションのために使用されます。 PowerBuilder アプリケーションは、サーバ アプリケーションに対して プログラム手順に従って OLE オブジェクトを処理するように要求し ます。また、ローカルまたはリモートのコンピュータ上に登録された COM オブジェクトや、COM+ にインストールされた COM オブジェク トを接続するのにも使用されます。 OLETxnObject 変数は、PowerBuilder クライアントに COM+ トランザク ションの制御を提供するために使用するものです。OLETxnObject 変数 を指定して ConnectToNewObject 関数を呼び出すと、この変数に関連付 けられたトランザクション コンテキストの中に新しいオブジェクト インスタンスが作成されます。クライアントのコンピュータに COM+ がロードされていない場合、ConnectToNewObject 関数の呼び出しはエ ラーになります。トランザクションを中止するには、SetAbort 関数を使 用します。トランザクション中のほかのすべての参加者が同意した場合 にトランザクションを完了するには、SetComplete 関数を使用します。 OLE オートメーションと COM オブジェクトへの接続の詳細について は、ConnectToObject 関数を参照してください。 例 次の例は、まず、OLEObject 変数を作成します。次に、ConnectToNewObject 関数を呼び出して新しい Excel オブジェクトを作成し、そのオブジェ クトに接続します。 integer result OLEObject myoleobject myoleobject = CREATE OLEObject result = myoleobject.ConnectToNewObject( & "excel.application") 次の例は、まず OLETxnObject 変数を作成します。次に、 ConnectToNewObject 関数を呼び出して、COM+ サーバ上に PowerBuilder COM オブジェクトの新しいインスタンスを作成し、これに接続します。 OLETxnObject EmpObj Integer li_rc EmpObj = CREATE OLETxnObject li_rc = EmpObj.ConnectToNewObject("PB70COM.employee") IF li_rc < 0 THEN DESTROY EmpObj 392 PowerBuilder 第 10 章 PowerScript の関数 MessageBox("COM オブジェクトへの接続に失敗しました ", & " エラー :" + String(li_rc)) Return END IF // COM オブジェクトに対する処理を実行します。 ... // 処理が正常に終了したら、トランザクションを // コミットし、オブジェクトの接続を解除します。 EmpObj.SetComplete() EmpObj.DisconnectObject() 関連項目 ConnectToObject DisconnectObject SetAbort SetComplete ConnectToNewRemoteObject 機能 サーバ上のセキュリティで許される場合、指定されたリモート サーバ アプリケーション内に新しい OLE オブジェクトを作成し、この新しい オブジェクトを PowerBuilder の OLEObject 変数と関連付けます。また、 必要であれば、サーバ アプリケーションを起動します。 対象 OLEObject オブジェクト 構文 oleobject.ConnectToNewRemoteObject ( hostname, classname ) 引数 oleobject hostname classname 戻り値 説明 OLE オブジェクトに接続する OLEObject 変数の名前を指 定します。OLE コントロールの Object プロパティである OLEObject を指定することはできません。 String 型の値。COM サーバが置かれているリモート ホス トの名前を指定します。 String 型の値。OLE サーバ アプリケーション、および OLE を介してサーバが処理できるオブジェクトの種類を識別 する OLE クラスの名前を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 呼び出しが無効です。引数は、コントロールの Object プロパ ティです。 -2 クラス名が見つかりません。 PowerScript リファレンス ボリューム 2 393 ConnectToNewRemoteObject -3 オブジェクトを作成できません。 -4 オブジェクトに接続できません。 -9 そのほかのエラーです。 -10 このプラットフォームでサポートされていない機能です。 -11 サーバ名が無効です。 -12 サーバがこの操作をサポートしていません。 -13 リモート ホストへのアクセスが拒否されました。 -14 サーバが使用不可能です。 -15 このコンピュータには COM+ がロードされていません。 -16 呼び出しが無効です。この関数は OLETxnObject には使用で きません。 解説 OLEObject 変数は、OLE オートメーションに使用されます。つまり、 PowerBuilder のアプリケーションはサーバ アプリケーションに対して プログラムどおりに OLE オブジェクトを処理するように指示します。 ConnectToNewRemoteObject 関数は、リモートによる起動をサポートす るサーバだけで使用できます。 OLE のオートメーションについての詳細は、ConnectToObject 関数を参 照してください。リモート ホスト上のオブジェクトへの接続について は、ConnectToRemoteObject 関数を参照してください。 例 次の例は、まず OLEObject 変数を作成します。次に、 ConnectToNewRemoteObject 関数を呼び出して ulysses という名前のリ モート ホスト上に新しい Excel オブジェクトを作成し、そのオブジェ クトに接続します。 integer result OLEObject myoleobject myoleobject = CREATE OLEObject result = myoleobject.ConnectToNewRemoteObject( & "ulysses", "Excel.application") 関連項目 394 ConnectToObject ConnectToRemoteObject PowerBuilder 第 10 章 PowerScript の関数 ConnectToObject 機能 OLE オブジェクトを PowerBuilder の OLEObject 変数と関連付けてサー バ アプリケーションを起動します。 OLEObject 変数および ConnectToObject 関数は、OLE オートメーションのために使用されます。PowerBuilder アプリケーションは、サーバ アプリケーションに対して、プログラム 手順に従って OLE オブジェクトを処理するように要求します。 対象 OLEObject オブジェクト 構文 oleobject.ConnectToObject ( filename {, classname } ) 引数 oleobject filename classname (オプション) 説明 OLE オブジェクトに接続する OLEObject 変数の名前を指 定します。OLE コントロールの Object プロパティである OLEObject を指定することはできません。 String 型の値。OLE ストレージ ファイルの名前を指定しま す。 filename には空の文字列("")を指定できますが、その場 合は classname を指定する必要があります。oleobject は classname で指定したサーバ アプリケーション内のアク ティブなオブジェクトと接続します。 String 型の値。OLE サーバ アプリケーション、および OLE を介してサーバが処理できるオブジェクトの種類を識別 する OLE クラスの名前を指定します。 classname を省略した場合、filename の拡張子によって起動 するサーバ アプリケーションが決まります。 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 呼び出しが無効です。引数は、コントロールの Object プロパ ティです。 -2 クラス名が見つかりません。 -3 オブジェクトを作成できません。 -4 オブジェクトに接続できません。 -5 アクティブなオブジェクトに接続できません。 -6 ファイル名が無効です。 -7 ファイルが見つからないか、または開けません。 -8 サーバはファイルからのロードをサポートしていません。 -9 そのほかのエラーです。 -15 このコンピュータには COM+ がロードされていません。 -16 呼び出しが無効です。この関数は OLETxnObject には使用で きません。 引数のいずれかの値が NULL の場合は、NULL を返します。 PowerScript リファレンス ボリューム 2 395 ConnectToObject 解説 OLEObject 変数を作成し、OLE オブジェクトとそのサーバ アプリケー ションに接続した後で、OLE サーバがサポートするプロパティと呼び 出し関数を設定できます。PowerBuilder のコンパイラでは、OLEObject 変数に対して呼び出す関数の構文はチェックされません。アプリケー ションの実行中に呼び出す関数が存在しない場合、またはプロパティ 名が適切でない場合、実行時にエラーが発生します。 OLEObject 変数の宣言と作成方法 後述の例に示すように、CREATE 文を使用して OLEObject 変数にメモ リを割り当てる必要があります。 OLEObject 変数を作成する場合は、そのオブジェクトがスコープから 出る前にそのオブジェクトを削除したことを確認します。オブジェク トが削除されると、オブジェクトとサーバとの接続は解除され、サー バは閉じます。接続を解除せずにオブジェクトをスコープから外すと、 サーバ アプリケーションを停止する方法がなくなります。 サーバ アプリケーションのドキュメントで、サポートされているプロ パティと関数を確認してください。多くのプロパティと関数をサポー トしているアプリケーションもあります。たとえば、Excel には、自動 化できる操作が約 4000 あります。 OLEObject 型は、アプリケーション内のバックグラウンド処理として OLE オートメーションをサポートしています。OLE コントロール内の OLE オブジェクトに対して、サーバ関数およびプロパティを起動する こともできます。この場合、サーバ関数名の前にコントロールの Object プロパティを指定してください。コントロール内のオブジェクトを自 動化する場合、OLEObject 変数は必要ありません。 たとえば、次の例は、Excel のセル内の値の変更を OLE コントロール ole_1 内のオブジェクトに対して行います。 ole_1.Object.application.cells(1,1).value = 14 例 次の例は、OLEObject 変数を宣言して作成し、Excel で開いている Excel ワークシートに接続します。次に、ワークシート内に値を入力し、保 存します。その後、Excel 内にある OLEObject 変数を削除します。 integer result OLEObject myoleobject myoleobject = CREATE OLEObject result = myoleobject.ConnectToObject( & "c:\excel\expense.xls") 396 PowerBuilder 第 10 章 PowerScript の関数 IF result = 0 THEN myoleobject.application.workbooks(1).& worksheets(1).cells(1,1).value = 14 myoleobject.application.workbooks(1).save() END IF DESTROY myoleobject 次の例は、Excel チャートに接続します(Windows パス名を使用)。 integer result OLEObject myoleobject myoleobject = CREATE OLEObject result = myoleobject.ConnectToObject( & "c:\excel\expense.xls", "excel.chart") 次の例は、すでに起動している Excel 内のアクティブなオブジェクト に接続します。 integer result OLEObject myoleobject myoleobject = CREATE OLEObject result = myoleobject.ConnectToObject("", & "excel.application") 関連項目 ConnectToNewObject DisconnectObject ConnectToRemoteObject 機能 OLE オブジェクトを PowerBuilder の OLEObject 変数と関連付けてサー バ アプリケーションを起動します。 対象 OLEObject オブジェクト 構文 oleobject.ConnectToRemoteObject ( hostname, filename {, classname } ) 引数 oleobject hostname PowerScript リファレンス ボリューム 2 説明 OLE オブジェクトに接続する OLEObject 変数の名前を指 定します。OLE コントロールの Object プロパティである OLEObject を指定することはできません。 String 型の値。COM サーバが置かれているリモート ホス トの名前を指定します。 397 ConnectToRemoteObject 引数 filename classname (オプション) 戻り値 説明 String 型の値。OLE ストレージ ファイルの名前を指定しま す。この引数には空の文字列("")を指定できません。COM は、ローカル(クライアント)マシン上で filename を検索 します。filename がリモートホスト上に置かれている場合、 その位置をリモート ホストとローカル ホストが共有する ことで、ローカル ホストがその位置にアクセスできなけ ればなりません。リモート ホスト上のファイルを指定す るには、たとえば \\hostname\shared_directory\test.ext のよ うに、リモート ドライブの共有名を使用します。 String 型の値。OLE サーバ アプリケーション、および OLE を介してサーバが処理できるオブジェクトの種類を識別 する OLE クラスの名前を指定します。classname を省略し、 filename に OLE 構造化ストレージ ファイルを指定した場 合、PowerBuilder は filename 内のクラス ID を使用します。 それ以外の場合、PowerBuilder は、起動するサーバ アプリ ケーションをファイル名拡張子によって判断します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの値を返します。 -1 呼び出しが無効です。引数は、コントロールの Object プロパ ティです。 -2 クラス名が見つかりません。 -3 オブジェクトを作成できません。 -4 オブジェクトに接続できません。 -5 アクティブなオブジェクトに接続できません。 -6 ファイル名が無効です。 -7 ファイルが見つからないか、または開けません。 -8 サーバはファイルからのロードをサポートしていません。 -9 そのほかのエラーです。 -10 このプラットフォームでサポートされていない機能です。 -11 サーバ名が無効です。 -12 サーバがこの操作をサポートしていません。 -13 リモート ホストへのアクセスが拒否されました。 -14 サーバが使用不可能です。 -15 このコンピュータには COM+ がロードされていません。 -16 呼び出しが無効です。この関数は OLETxnObject には使用で きません。 解説 398 OLEObject 変数は、OLE オートメーションに使用されます。つまり、 PowerBuilder のアプリケーションはサーバ アプリケーションに対して プログラムどおりに OLE オブジェクトを処理するように指示します。 ConnectToRemoteObject 関数は、リモートによる起動をサポートする サーバだけで使用できます。 PowerBuilder 第 10 章 PowerScript の関数 以下の情報は、リモート ホスト上での OLE オブジェクトの作成また はインスタンス化、およびバインドに適用されます。 OLE オートメーションの概要は、ConnectToObject 関数を参照してくだ さい。 セキュリティ リモート ホスト上でオブジェクトを起動するには、 サーバ上のセキュリティが正しく構成されていなければなりません。 セキュリティは、レジストリ キーを使用して構成されます。サーバの 起動を許可または禁止する属性を指定し、クライアントがアクセスで きるように実行中のオブジェクトへの接続を指定しなければなりませ ん。レジストリは、手動で、または DCOMCNFG.EXE や OLE ビュー アなどのツールを使用して更新することができます。 レジストリ エントリ サーバ アプリケーションは、サーバとクライア ントの両方で登録しなければなりません。 OLE 構造化ストレージ ファイル以外のファイルを検索するには、レジ ストリ エントリにファイル拡張子エントリが含まれていなければな りません。たとえば、Excel ファイルの場合には .xls という拡張子を使 用します。ファイルが構造化ストレージ ファイルの場合には、COM が ファイルを読み込み、ファイルからサーバ ID を抽出します。それ以外 のファイルの場合は、ファイル拡張子のレジストリ エントリを使用し て適切なサーバ アプリケーションを起動します。 DCOM サーバがカスタム インタフェースを使用する場合、そのインタ フェース用のプロキシ / スタブ DLL をクライアント上に登録しなけれ ばなりません。プロキシ / スタブ DLL は、カスタム インタフェースの デザイナによって作成されます。この DLL は、クライアント上のプロ キシとサーバ上のスタブを介してパラメータのマーシャリングし、リ モート プロシージャ コールが行われるようにします。 例 次の例は、OLEObject 変数を宣言して作成し、falco という名前のリモー ト ホスト上の Excel ワークシートに接続します。ワークシートが存在 するドライブは、ローカル ホスト上の f:\excel にマップされています。 integer result OLEObject myoleobject myoleobject = CREATE OLEObject result = myoleobject.ConnectToRemoteObject( & "falco", "f:\excel\expense.xls") 次の例は、リモート ホスト上の前の例と同じオブジェクトに接続し、 それを Excel チャートとして開きます。 integer result OLEObject myoleobject PowerScript リファレンス ボリューム 2 399 ConnectToServer myoleobject = CREATE OLEObject result = myoleobject.ConnectToRemoteObject( & "falco", "f:\excel\expense.xls", "Excel.chart") 関連項目 ConnectToNewRemoteObject ConnectToObject DisconnectObject ConnectToServer 機能 クライアント アプリケーションをサーバ コンポーネントに接続しま す。クライアント アプリケーションは、サーバ上のリモート オブジェ クトを使用する前に、ConnectToServer 関数を呼び出さなければなりま せん。 この関数は、分散アプリケーションにのみ適用されます。 対象 接続オブジェクト 構文 connection.ConnectToServer ( ) 引数 connection 戻り値 説明 接続を確立する際に使用する接続オブジェクトの名前を 指定します。接続オブジェクトには、接続の設定方法を指 定するプロパティがあります。 Long 型。正常に終了した場合は 0 を返します。エラーが発生した場合 は、以下のいずれかの値を返します。 50 52 53 54 55 56 57 62 92 分散サービス エラーです。 分散通信エラーです。 リクエスト先のサーバがアクティブではありません。 サーバがリクエストを受け付けません。 リクエストが異常終了しました。 リクエストへの応答が不完全です。 接続オブジェクトがサーバに接続されていません。 サーバがビジーです。 必要なプロパティが見つからないか、または無効です。 解説 ConnectToServer 関数を呼び出す前に、接続オブジェクトのプロパティ に値を割り当てます。 例 次の例では、クライアント アプリケーションが接続オブジェクト myconnect を使用してサーバ アプリケーションに接続します。 400 PowerBuilder 第 10 章 PowerScript の関数 // グローバル変数: // connection myconnect long ll_rc myconnect = create connection myconnect.driver = "jaguar" myconnect.location = "Jagserver1:9000" myconnect.application = "PB_pkg_1" myconnect.userID = "bjones" myconnect.password = "mypass" ll_rc = myconnect.ConnectToServer() IF ll_rc <> 0 THEN MessageBox(" 接続失敗 ", ll_rc ) END IF ConnectToServer 関数を try-catch ブロックで囲んで、接続試行中に送出 される例外をキャッチできます。次の例では、SSLServiceProvider オブ ジェクトと SSLCallBack オブジェクトを使って、セキュアな接続を構 築します。SSLCallback 関数の例外またはそのほかのエラーにより CTSSecurity::UserAbortedException が発生します。この例で示されてい るエラー処理コードでは、エラー メッセージを表示するメッセージ ボックスが開くだけですが、実際のコードでは、エラーに対する適切 な対処法を補足してください。 SSLServiceProvider sp // QOP を設定します。 getcontextservice( "SSLServiceProvider", sp ) sp.setglobalproperty( "QOP", "sybpks_simple" ) // PB コールバック ハンドラを設定します。 sp.setglobalproperty( "CallbackImpl", & "uo_sslcallback_handler" ) // サーバに接続します。 connection cxn cxn.userid = "jagadmin" cxn.password = "sybase" cxn.driver = "jaguar" cxn.application = "dbgpkg" cxn.options = "ORBLogFile='d:\PBJagClient.Log'" cxn.location = "iiops://localhost:9001" TRY l_rc = cxn.ConnectToServer() CATCH (userabortedexception uae) MessageBox("UserAbortedException をキャッチ ", & "ConnectToServer はメッセージをキャッチしました :" + uae.getMessage() ) l_rc = 999 PowerScript リファレンス ボリューム 2 401 Copy CATCH ( CORBASystemException cse ) MessageBox("CORBASystemException をキャッチ ", & "ConnectToServer はメッセージをキャッチしました :" + cse.getMessage() ) l_rc = 998 CATCH ( RuntimeError re ) MessageBox("RuntimeError Exception をキャッチ ", & "ConnectToServer はメッセージをキャッチしました :" + re.getMessage() ) l_rc = 997 CATCH ( Exception ex ) MessageBox("Exception をキャッチ ", & "ConnectToServer はメッセージをキャッチしました :" + ex.getMessage() ) l_rc = 996 END TRY IF l_rc <> 0 THEN MessageBox(" エラー ", " 接続失敗 - コード : " & + string(l_rc) ) MessageBox(" エラー情報 ", " エラーコード = " + & string(cxn.ErrCode) + "~nErrText= " + & cxn.ErrText) ELSE MessageBox("OK", " 接続を確立しました ") END IF 関連項目 DisconnectServer Copy 機能 選択されたテキストまたは OLE オブジェクトをクリップボードにコ ピーします。コピー元のテキストやオブジェクトは変更されません。 対象 データウィンドウ、InkEdit、マルチライン エディット、シングルライ ン エディット、リッチテキスト エディット、ドロップダウン リスト ボックス、ドロップダウン ピクチャ リストボックス、OLE の各コン トロール、OLE DWObject( データウィンドウ コントロール上のデータ ウィンドウ オブジェクト上にあるオブジェクト) 構文 objectref.Copy ( ) 402 PowerBuilder 第 10 章 PowerScript の関数 引数 objectref 説明 以下のいずれかを指定します。 • クリップボードにコピーするテキストを含むデータ ウィンドウ、エディットマスク、InkEdit、マルチライン エディット、シングルライン エディット、リッチテキ スト エディット、ドロップダウン リストボックス、ド ロップダウン ピクチャ リストボックスのいずれかのコ ントロールの名前 • クリップボードにコピーするオブジェクトを含むデー タウィンドウ コントロール上の OLE DWObject の名前、 または OLE コントロールの名前 DWObject の名前は、次のような完全な名前で指定します。 dwcontrol.Object.dwobjectname objectref にデータウィンドウ コントロールの名前を指定 した場合、テキストは現行の行とカラムのエディット コン トロールからコピーされます。objectref にドロップダウン リストボックス コントロールまたはドロップダウン ピク チャ リストボックス コントロールの名前を指定した場 合、AllowEdit プロパティを TRUE にしておく必要があり ます。 戻り値 データウィンドウ、InkEdit、およびリストボックスの場合は Integer 型、 ほかのコントロールの場合は Long 型 リッチテキスト エディット コントロールの場合、Long 型を返します。 そのほかのエディット コントロールと OLE オブジェクトの場合は、 Integer 型を返します。 エディット コントロールの場合、クリップボードにコピーされた文字 数を返します。objectref に指定されたコントロールでテキストが選択 されていない場合、文字をコピーせずに 0 を返します。エラーが発生 した場合、-1 を返します。 OLE コントロールと OLE DWObject の場合、正常に終了したときは 0 を返します。エラーが発生したときは、次のいずれかの値を返します。 -1 -2 -9 コントロールが空です。 正しくコピーできませんでした。 そのほかのエラーです。 objectref に指定されたコントロールの名前が NULL の場合、NULL を返 します。 PowerScript リファレンス ボリューム 2 403 Copy 解説 コピーするテキストを選択するには、マウスやキーボードを使用しま す。スクリプト内で SelectText 関数を呼び出す方法もあります。リッチ テ キ ス ト エ デ ィ ッ ト コ ン ト ロ ー ル の 場 合 は、SelectTextAll 関 数、 SelectTextLine 関数、または SelectTextWord 関数を使用してテキストを選 択することもできます。 クリップボードの内容をコントロール内に挿入するには、Paste 関数を 使用します。 Copy 関数を使用しても、選択したテキストや OLE オブジェクトを削 除することはできません。データを削除するには、Clear 関数または Cut 関数を使用してください。 例 たとえば、mle_emp_address 内のテキストで Temporary Address を選択 しているとします。次のステートメントは、mle_emp_address 内のテキ スト Temporary Address をクリップボードにコピーし、copy_amt に 17 を格納します。 integer copy_amt copy_amt = mle_emp_address.Copy() 次のステートメントは、OLE コントロール内の OLE オブジェクト ole_1 をクリップボードにコピーします。 integer result result = ole_1.Copy() 関連項目 404 Clear Clipboard Cut Paste ReplaceText SelectText PowerBuilder 第 10 章 PowerScript の関数 CopyRTF 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウで選択されているテキスト、ピクチャ、入 力フィールドを、リッチテキスト形式の文字列として返します。ビッ トマップと入力フィールドは、文字列に含まれます。 対象 データウィンドウ コントロール、データストア オブジェクト、リッチ テキスト エディット コントロール 構文 rtename.CopyRTF ( { selected {, band } } ) 引数 rtename selected (オプション) 説明 データウィンドウ コントロール、データストア オブジェ クト、またはリッチテキスト エディット コントロールの 名前を指定します。指定されたコントロールまたはオブ ジェクトで選択されている内容を、リッチテキスト形式で コピーします。データウィンドウ コントロールまたはデー タストア オブジェクトのデータウィンドウ オブジェクト は、リッチテキスト データウィンドウでなければなりま せん。 Boolean 型の値。コピーする内容(選択されているテキス トだけをコピーするかどうか)を指定します。値は以下の とおりです。 • TRUE − (デフォルト)選択されているテキストのみ • FALSE − 区域のすべての内容 band (オプション) Band カタログ データ型の値。テキストのコピー元の区域 を指定します。値は以下のとおりです。 • Detail! − 詳細区域 • Header! − ヘッダ区域 • Footer! − フッタ区域 特に指定しない限り、挿入ポイントがある区域のテキスト が選択されます。 戻り値 String 型。選択されているテキストを文字列として返します。 次の場合、空の文字列("")を返します。 • 何も選択されていない場合に、selected に TRUE が指定されている とき • エラーが発生した場合 PowerScript リファレンス ボリューム 2 405 CopyRTF 解説 CopyRTF 関数は、クリップボードを必要としません。コピーされた情 報は、文字列に格納されます。標準のクリップボードの機能(コピーと 切り取り)を使用すると、クリップボードには書式設定されていないテ キストが格納されます。 RTF 形式のテキストを別のリッチテキスト エディット コントロール に貼り付けるには、PasteRTF 関数を使用します。 RTF 形式の詳細については、『アプリケーション テクニック』マニュ アルの「リッチテキストの作成方法」を参照してください。 例 次のステートメントは、リッチテキスト エディット コントロール rte_message で選択されているテキストを返し、ls_richtext に格納しま す。 string ls_richtext ls_richtext = rte_message.CopyRTF() 次の例は、rte_1 内のテキストをコピーして ls_richtext に保存し、rte_2 に貼り付けます。エンド ユーザがラジオボタン rb_true をクリックする と選択されているテキストがコピーされ、rb_false をクリックするとす べてのテキストがコピーされます。 貼り付けられた文字数は ll_numchars に保存され、スタティック テキスト コントロール st_status に表示され ます。 string ls_richtext boolean lb_selected long ll_numchars IF rb_true.Checked = TRUE THEN lb_selected = TRUE ELSE lb_selected = FALSE END IF ls_richtext = rte_1.CopyRTF(lb_selected) ll_numchars = rte_2.PasteRTF(ls_richtext) st_status.Text = String(ll_numchars) 関連項目 406 PasteRTF PowerBuilder 第 10 章 PowerScript の関数 Cos 機能 角度の余弦を計算します。 構文 Cos ( n ) 引数 n 説明 余弦を計算する角度(ラジアン)を指定します。 戻り値 Double 型。n の余弦を返します。n が NULL の場合、NULL を返します。 例 次のステートメントは、1 を返します。 Cos(0) 次のステートメントは、0.540302 を返します。 Cos(1) 次のステートメントは、-1 を返します。 Cos(Pi(1)) 関連項目 ACos Pi Sin Tan 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Cos メソッド PowerScript リファレンス ボリューム 2 407 Cpu Cpu 機能 アプリケーションが起動されてからの CPU の経過時間を調べます。 構文 Cpu ( ) 戻り値 Long 型。PowerBuilder アプリケーションが起動されてからの CPU 経過 時間をミリ秒単位で返します。 例 次のステートメントは、ステートメント グループが実行されてからの CPU 経過時間を調べます。 // 変数 ll_start と ll_used を Long 型の整数として宣言します。 long ll_start, ll_used // 11_start に現在の CPU 経過時間を格納します。 ll_start = Cpu() ... // 処理 // 現在の CPU 経過時間と 11_start の差を計算して // 処理にかかった CPU 経過時間を ll_used に格納します。 ll_used = Cpu() - ll_start CreateDirectory 機能 ディレクトリを作成します。 対象 ファイル システム 構文 CreateDirectory ( directoryname ) 引数 directoryname 戻り値 説明 String 型の値。作成するディレクトリの名前を指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 例 次の例では、現行パスに新しいサブディレクトリを作成し、その新し いサブディレクトリを現行ディレクトリに設定します。 string ls_path="my targets" integer li_filenum CreateDirectory ( ls_path ) li_filenum = ChangeDirectory( ls_path ) 関連項目 408 GetCurrentDirectory RemoveDirectory PowerBuilder 第 10 章 PowerScript の関数 CreateInstance 中間層サーバ上で動作するリモート オブジェクトのインスタンスを 作成します。 リモート オブジェクトのインスタンスを作成する場所 PowerBuilder クライアントから EAServer または COM+ コンポーネントの中から 使用する構文 構文 1 構文 2 構文 1 リモート サーバ上のオブジェクトのインスタンスを 作成する 機能 EAServer 上で動作するコンポーネントのインスタンスを作成します。 この関数は、PowerBuilder クライアントからリモート オブジェクトを インスタンス化するのに使用します。さらに、EAServer 上で動作する コンポーネントの中で、ほかのサーバ上で動作する別のコンポーネン トをインスタンス化するためにも使用できます。 対象 接続オブジェクト 構文 connection.CreateInstance (objectvariable {, classname } ) 引数 connection 説明 接続を確立するのに使用する接続オブジェクトの名前を 指定します。 objectvariable データ型が、作成されるオブジェクトのクラスか、その クラスの先祖と同じクラスである、グローバル変数、イ ンスタンス変数あるいはローカル変数 classname String 型の値。作成するクラスのデータ型の名前を指定し (オプション) ます。オプションで、クラス名の前にスラッシュで区切っ てパッケージ名を指定することもできます(たとえば、 「mypkg/mycomponent」など)。 戻り値 Long 型。正常に終了した場合は 0 を返します。エラーが発生した場合 は、以下のいずれかの値を返します。 50 52 53 54 55 56 57 62 分散サービス エラーです。 分散通信エラーです。 リクエスト先のサーバがアクティブではありません。 サーバがリクエストを受け付けません。 リクエストが異常終了しました。 リクエストへの応答が不完全です。 接続されていません。 サーバがビジーです。 PowerScript リファレンス ボリューム 2 409 CreateInstance 解説 CreateInstance 関数を呼び出す前に、サーバに接続しなければなりませ ん。そのためには、ConnectToServer 関数を呼び出す必要があります。 CreateInstance 関数を使用すると、リモート サーバ上にオブジェクトを 作成することができます。オブジェクトをローカルに作成する場合は、 CREATE 文を使用する必要があります。 クライアント アプリケーションにリモート オブジェクトのクラス定 義を配布する場合、クライアント上の定義は、サーバ アプリケーショ ンに配布されたリモート オブジェクト定義と同じ名前になります。こ のような方法で宣言された変数は、ローカル オブジェクトまたはリ モート オブジェクトに対する参照を保持することができます。した がって、実行時にアプリケーションの要件に応じて、CREATE 文を使用 してオブジェクトをローカルにインスタンス化することもできるし、 CreateInstance 関数を使用してリモートでインスタンス化することもで きます。どちらの場合でも、オブジェクトを作成すると、その物理的 な位置はオブジェクトを使用するクライアント側スクリプトに対して 透過的になります。 例 以下のステートメントは、テストの結果に応じてローカルまたはリ モートでオブジェクトを作成します。これらのステートメントでは、 リモート オブジェクトの作成には CreateInstance 関数を使用し、ローカ ル オブジェクトの作成には CREATE 文を使用しています。 boolean bWantRemote connection myconnect uo_customer iuo_customer // リモート オブジェクトとローカル オブジェクトの // どちらを作成するかを決定します。 ... // 次に、オブジェクトを作成します。 IF bWantRemote THEN // リモート オブジェクトを作成します。 IF myconnect.CreateInstance(iuo_customer) <> 0 THEN // エラー処理 ... END IF ELSE // ローカル オブジェクトを作成します。 iuo_customer = CREATE uo_customer END IF // // // IF 410 オブジェクトの関数を呼び出します。 関数呼び出しは、オブジェクトがサーバとクライアントの どちらで作成された場合でも同じです。 isValid(iou_customer) THEN PowerBuilder 第 10 章 PowerScript の関数 iuo_customer.GetCustomerData() END IF 関連項目 ConnectToServer 構文 2 現行のサーバ上のコンポーネントのインスタンスを 作成する 機能 現行の EAServer または COM+ サーバ上で動作するコンポーネントの インスタンスを作成します。この関数は、EAServer または COM+ 上で 動作するコンポーネント インスタンスの中から呼び出されます。 対象 TransactionServer オブジェクト 構文 transactionserver.CreateInstance (objectvariable {, classname } ) 引数 transactionserver objectvariable classname (オプション) 説明 TransactionServer サービス インスタンスへの参照を指 定します。 データ型が、作成されるオブジェクトのクラスか、そ のクラスの先祖と同じクラスである、グローバル変 数、インスタンス変数あるいはローカル変数 String 型の値。作成するクラスのデータ型の名前を指 定します。 EAServer コンポーネントの場合は、オプションで、 クラス名の前にスラッシュで区切ってパッケージ名 を指定することもできます(たとえば、 「mypackage/mycomponent」など)。 COM+ コンポーネントの場合は、オプションで、クラ ス名の前にピリオドを付けて ProgID を指定すること もできます(たとえば、 「PowerBuilder.HTMLDataWindow」など)。 戻り値 Long 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの値を返します。 50 52 53 54 55 56 57 62 分散サービス エラーです。 分散通信エラーです。 リクエスト先のサーバがアクティブではありません。 サーバがリクエストを受け付けません。 リクエストが異常終了しました。 リクエストへの応答が不完全です。 接続されていません。 サーバがビジーです。 PowerScript リファレンス ボリューム 2 411 CreateInstance 解説 TransactionServer コンテキスト オブジェクトに対して CreateInstance 関 数を実行すると、現行のサーバ上で動作するほかの EAServer または COM+ コンポーネントにアクセスすることができます。 EAServer 上では、TransactionServer の CreateInstance メソッドによって EAServer のネーム サービスが呼び出され、プロキシが作成されます。 リモート コンポーネントのプロキシは、ローカルで実行されているイ ンスタンスではなく、ネーム サービスから返される場合があります。 ローカルのインスタンスを使用するには、コンポーネント名として “local:package/component” を指定します。package はパッケージ名、 component はコンポーネント名です。コンポーネントが同じサーバにイ ンストールされていない場合、呼び出しはエラーになります。 TransactionServer コンテキスト オブジェクトに対して CreateInstance 関 数を実行する場合、この関数を呼び出したコンポーネントに適用され るものと同じユーザおよびパスワードの情報を使用します。 トランザクション コンテキスト サービスを使用する前に、 TransactionServer 型の変数を宣言し、GetContextService 関数を呼び出し て、このサービスのインスタンスを作成する必要があります。 例 以下のステートメントでは、ある EAServer コンポーネントが、同じ サーバ上の別のコンポーネントをインスタンス化し、このコンポーネ ントのメソッドを呼び出します。 Integer rc rc = this.GetContextService("TransactionServer", & ts) IF rc <> 1 THEN // エラーを処理します。 END IF rc = this.CreateInstance(mycomp2, & "mypackage/nvo_comp2") IF IsValid(mycomp2) = FALSE THEN // エラーを処理します。 END IF mycomp2.method1() 次の例では、COM コンポーネントのインスタンスを作成するための構 文を示しています。 Integer rc OleObject lole TransactionServer lts lole = create OleObject rc = this.GetContextService("TransactionServer", lts) 412 PowerBuilder 第 10 章 PowerScript の関数 IF rc <> 1 THEN return "Error from GetContextService " + String (rc) END IF // PBCOM は ProgID で、n_genapp はクラス名です。 rc = lts.CreateInstance(lole, "PBCOM.n_genapp") IF rc <> 0 THEN return "Error from CreateInstance " + String (rc) END IF iole.my_func () 関連項目 EnableCommit IsInTransaction IsTransactionAborted Lookup SetAbort SetComplete Which CreatePage 機能 まだ作成されていない場合にタブ ページを作成します。 対象 タブ ページとして使用されているユーザ オブジェクト 構文 userobject.CreatePage ( ) 引数 userobject 戻り値 説明 作成するタブ ページの名前を指定します。 Integer 型。以下のいずれかの値を返します。ページが正常に作成され た場合は 1 を返し、ページがすでに作成されている場合には 0 を、タ ブ ページでない場合は -1 を返します。 1 − タブ ページは正常に作成されました。 0 − タブ ページはすでに作成されています。 -1 − ユーザ オブジェクトがタブ ページではありません。 PowerScript リファレンス ボリューム 2 413 Cut 解説 多くのコントロールを含むタブ ページを画面に描画するのを後まわ しにすれば、ウィンドウが開くまでの時間を短縮できます。ただし、 コントロールの Constructor イベントが実行され、コントロールのグラ フィカル表現が作成されるまで、スクリプトはタブ ページ上のコント ロールを参照できません。タブ コントロールの CreateOnDemand プロ パティが選択されている場合は、ユーザがそのタブ ページを表示する までは、スクリプトからそのタブ ページ上のコントロールを参照でき ません。CreatePage 関数を使用すると、まだ作成されていないタブ ペー ジを作成することができます。 例 次の例では、tabpage_2 がすでに作成されているかどうかをテストし、 作成されていない場合は、このタブ ページを作成します。 IF tab_1.CreateOnDemand = True THEN IF tab_1.tabpage_2.PageCreated() = False THEN tab_1.tabpage_2.CreatePage() END IF END IF 関連項目 PageCreated Cut 機能 指定されたコントロールから、選択しているテキストまたは OLE オブ ジェクトを削除し、クリップ ボードにコピーします。このときに、削 除したデータでクリップボードのデータを置き換えます。 対象 データウィンドウ、InkEdit コントロール、マルチライン エディット コ ントロール、シングルライン エディット コントロール、ドロップダウ ン リストボックス コントロール、ドロップダウン ピクチャ リスト ボックス コントロール、OLE コントロール 構文 controlname.Cut ( ) 414 PowerBuilder 第 10 章 PowerScript の関数 引数 controlname 説明 切り取るテキストやオブジェクトを含んでいるデータウィ ンドウ、InkEdit、マルチライン エディット、シングルライ ン エディット、リッチテキスト エディット、ドロップダウ ン リストボックス、ドロップダウン ピクチャ リストボック ス、OLE のいずれかのコントロールの名前を指定します。 controlname にデータウィンドウ コントロールの名前を指 定した場合、現行の行と現行のカラムの上にあるエディッ ト ボックスからテキストを切り取ります。controlname で ドロップダウン リストボックス コントロールまたはド ロップダウン ピクチャ リストボックス コントロールを指 定する場合、AllowEdit プロパティは TRUE でなければな りません。 戻り値 データウィンドウ、InkEdit、およびリストボックスの場合は Integer 型、 ほかのコントロールの場合は Long 型 編集可能なコントロールの場合、controlname に指定されたコントロー ルから切り取ってクリップボードにコピーした文字数を返します。テ キストが選択されていない場合、切り取り処理を行わずに 0 を返しま す。エラーが発生した場合、-1 を返します。 OLE コントロールの場合、正常に終了したときは 0 を返します。エ ラーが発生したときは、次のいずれかの値を返します。 -1 -2 -9 コントロールが空です。 切り取りに失敗しました。 そのほかのエラーです。 controlname に指定されたコントロールの名前が NULL の場合、NULL を 返します。 解説 削除するテキストを選択するには、マウスやキーボードを使用します。 スクリプト内で SelectText 関数を呼び出す方法もあります。リッチテキ スト エディット コントロールの場合は、SelectTextAll 関数、SelectTextLine 関数、または SelectTextWord 関数を使用してテキストを選択することも できます。 クリップボードの内容をコントロール内に挿入するには、Paste 関数を 使用します。 選択したテキストや OLE オブジェクトをクリップボードにコピーし ないで削除したい場合には、Clear 関数を使用します。 OLE オブジェクトを切り取ると、Clear 関数を使用した場合と同じよう に、OLE オブジェクトとオブジェクトの元のファイル、または OLE オ ブジェクトとストレージとの接続が解除されます。 PowerScript リファレンス ボリューム 2 415 Cut 例 たとえば、mle_emp_address 内のテキスト "Temporary" が選択されてい るとします。次のステートメントは、mle_emp_address から "Temporary" を削除し、クリップボードにコピーして 9 を返します。 mle_emp_address.Cut() 次の例は、OLE コントロール ole_1 内の OLE オブジェクトを切り取っ てクリップボードにコピーします。 integer result result = ole_1.Cut() 関連項目 416 Copy Clear Clipboard DeleteItem Paste PowerBuilder 第 10 章 PowerScript の関数 DataCount 機能 グラフ内にある特定のデータ系列のデータ ポイントの数を通知しま す。 対象 ウィンドウおよびユーザ オブジェクト内のグラフ コントロール、デー タウィンドウ コントロール内およびデータストア オブジェクト内の グラフ 構文 controlname.DataCount ( { graphcontrol, } seriesname ) 引数 controlname 説明 グラフ コントロールの名前、またはグラフを含むデータ ウィンドウ コントロールやデータストアの名前を指定し ます。指定されたグラフのデータ系列のデータ ポイントの 数を数えます。 graphcontrol (オプション)controlname に指定されたデータウィンドウ (データウィン コントロールやデータストアのグラフ コントロールの名 ドウ コント 前を指定します。指定されたグラフのデータ系列のデータ ロールまたは ポイントの数を数えます。 データストア の場合) seriesname String 型の値。データ系列の名前を指定します。指定され たデータ系列のデータ ポイントの数を数えます。 戻り値 Long 型。正常に終了した場合、指定されたデータ系列内のデータ ポイ ントの数を返します。エラーが発生した場合、-1 を返します。引数の いずれかの値が NULL の場合は、NULL を返します。 例 以下に、グラフ gr_product_data にあるデータ系列 Costs のデータ ポイ ントの数を ll_count に格納するステートメントを示します。 long ll_count ll_count = gr_product_data.DataCount("Costs") 以下に、データウィンドウ コントロール dw_employees 上のグラフ gr_dept にあるデータ系列 Salary のデータ ポイントの数を ll_count に格 納するステートメントを示します。 long ll_count ll_count = & dw_employees.DataCount("gr_dept", "Salary") 関連項目 AddSeries InsertSeries SeriesCount PowerScript リファレンス ボリューム 2 417 DataSource DataSource 機能 リッチテキスト エディット コントロールが、データウィンドウとデー タを共有し、リッチテキスト エディット コントロールの入力フィール ドにデータを表示できるようにします。リッチテキスト エディット コ ントロールの入力フィールドがデータウィンドウのカラムの名前と一 致する場合、データウィンドウのデータはその入力フィールドに割り 当てられます。リッチテキスト エディット コントロールの文書は、繰 り返し表示されます。このため、データウィンドウの各行に、その文 書のインスタンスが作成されます。 対象 リッチテキスト エディット コントロール 構文 rtename.DataSource ( dwsource ) 引数 rtename dwsource 説明 データウィンドウからデータを取得するリッチテキスト エ ディット コントロールの名前を指定します。 rtename に指定された入力フィールドに接続しているデー タを含むデータウィンドウ コントロール、データストア、 または子データウィンドウの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 入力フィールドの名前がデータウィンドウ オブジェクトのカラムの 名前と一致する場合、カラムのデータはその入力フィールドに割り当 てられます。 リッチテキスト エディット コントロールの文書は、データウィンドウ の一行に関連付けられています。検索された各行に、文書のインスタ ンスがあります。リッチテキスト エディット コントロールのテキスト は、すべての書式設定とともに、各文書のインスタンスで繰り返し表 示されます。各行のデータが変更されるたびに、入力フィールドの内 容は変更されます。入力フィールドの内容以外の各インスタンスの内 容は同じです。つまり、各インスタンスの入力フィールド以外のテキ ストを変更することはできません。 リッチテキスト エディット コントロールの InputFieldNamesVisible プ ロパティが TRUE の場合、フィールドには、含まれるデータではなく フィールド名が表示されます。データを参照するには、このプロパティ の値を FALSE に変更します。 418 PowerBuilder 第 10 章 PowerScript の関数 次の RichTextEdit 関数は、文書のインスタンス情報を操作または報告 します。 LineCount PageCount InsertDocument SaveDocument SelectedPage SelectedStart SelectedLine SelectText SelectTextAll 次の RichTextEdit 関数は、文書のコレクションに対して有効です。 Print 例 次の例は、データウィンドウ コントロール dw_1 をリッチテキスト エ ディット コントロール rte_1 のデータ ソースとして設定します。 rte_1.DataSource(dw_1) 次の例では、LETTER.RTF という名前の文書をリッチテキスト エ ディット コントロール rte_letter に挿入します。文書の入力フィールド の名前はデータウィンドウ オブジェクトのカラム d_emp と一致しま す。また、データストアを作成し、d_emp に関連付けてデータを検索 します。次に、rte_letter に文書を挿入し、データストアを rte_1 のデー タ ソースとして設定します。 DataStore ds_empinfo ds_empinfo = CREATE DataStore ds_empinfo.DataObject = "d_emp" ds_empinfo.SetTransObject(SQLCA) ds_empinfo.Retrieve() rte_letter.InsertDocument("LETTER.RTF", TRUE) rte_letter.DataSource(ds_empinfo) 関連項目 InputFieldChangeData InputFieldCurrentName InputFieldDeleteCurrent InputFieldGetData InputFieldInsert PowerScript リファレンス ボリューム 2 419 Date Date DateTime 型、String 型、数字型のデータを Date 型に変換します。また、 Blob 型のデータから日付を表すデータを取り出します。使用する構文 は、元のデータのデータ型によって異なります。次の 3 種類の構文を 使用できます。 目的 DateTime 型のデータから日付を取り出す、または Blob 型データ内に保持された日付を取り出す 文字列を日付の形式に変換する 数字データを結合して日付の形式に変換する 使用する構文 構文 1 構文 2 構文 3 Windows に関するプラットフォーム情報 年の戻り値を正しく取得するためには、ユーザのコントロール パネル の[地域のオプション]で、「短い形式」の年の部分が yyyy になって いることを確認する必要があります。これは、プログラムの中で RegistryGet 関数を使ってチェックすることができます。 正しく設定されていない場合は、手動で設定を変更するようユーザに 依頼するか、あるいはアプリケーションで RegistrySet 関数を呼び出し て変更します。設定を変更した後、ユーザによるリブートが必要な場 合があります。 構文 1 DateTime 型または Blob 型のデータから日付を取り 出す 機能 DateTime 型の値、または最初の値が日付か DateTime 型である Blob 型 データから、日付を表すデータを取り出します。 構文 Date ( datetime ) 引数 datetime 420 説明 DateTime 型のデータ、または最初の値が日付か DateTime 型である Blob 型のデータを指定します。残りの Blob 型の 値は無視されます。Datetime には、DateTime 型または Blob 型の値を含む Any 型の変数を指定することもできます。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Date 型。 datetime に指定されたデータを日付の形式で返します。datetime に指定されたデータが有効な日付でない場合やデータ型が一致しない 場合、1900-01-01 を返します。datetime に指定されたデータが NULL の 場合、NULL を返します。 例 次の例は、データベースから DateTime 型の変数 ldt_StartDateTime を取 得した後、ldt_StartDateTime と等しい日付を ld_StartDate に代入します。 DateTime ldt_StartDateTime date ld_StartDate ld_StartDate = Date(ldt_StartDateTime) たとえば、Blob 型の変数 ib_blob に 32 バイト目から始まる DateTime 型 の値が含まれているとします。次のステートメントは、その値を日付 の形式に変換します。 date ld_date ld_date = Date(BlobMid(ib_blob, 32)) 関連項目 DateTime 構文 2 文字列を日付の形式に変換する 機能 有効な日付を表す文字列を日付の値に変換します。 構文 Date ( string ) 引数 string 戻り値 説明 有効な日付を表す文字列("1999/12/31" など)を指定しま す。指定された文字列を Date 型の形式に変換します。string には、文字列を含む Any 型の変数を指定することもできま す。 Date 型。string に指定されたデータを日付の形式で返します。string に 指定された文字列が有効な日付でない場合やデータ型が一致しない場 合、1900-01-01 を返します。string に指定された文字列が NULL の場合、 NULL を返します。 解説 文字列内の有効な日付は、日(1 ∼ 31)、月(1 ∼ 12、月の名前、また は省略形)、年(2 桁または 4 桁)の組み合わせで表します。4 桁の数 値は、年とみなされます。月と日の十の位では、0 を省略することも できます。名前、省略形、または数値のどれで表しているかにかかわ らず、月はコントロールパネルの日付形式で指定された月の位置にな ければなりません。コントロールパネルの設定がわからない場合は、 標準データ型の日付形式 yyyy-mm-dd を使用します。 PowerScript リファレンス ボリューム 2 421 Date PowerBuilder は入力された文字列を、使用しているマシンの[地域オ プション]の日付書式と一致させるように試みます。PowerBuilder 10 以降では、完全に一致する書式が見つからない場合、PowerBuilder は部 分的一致を試みます。例えば、Date('01-JAN-1900') を使用している ときに PowerBuilder が部分的に一致する (dd-MMM-yy) を見つけた場 合、PowerBuilder は西暦の最初の 2 桁を解析して 19 を取得します。西 暦の 2 桁は 1930 年∼ 2029 年の間として解釈されて、返される日付は 1/1/2019 です。 Date 型のリテラルは、Date 関数を使用して変換する必要はありません。 例 例 1 以下のすべてのステートメントは、日付 2004 年 7 月 4 日(200407-04)を表すテキストを、Date 型のデータに変換します。コントロー ルパネルの日付形式では、月の位置が中央に設定されているとします。 Date("2004/07/04") Date("2004 July 4") Date("04 July 2004") 例 2 以下のステートメントは、sle_start_date に格納されているデータ が有効な日付かどうかを確認し、有効な日付でない場合にメッセージ を表示します。バージョン 1 は、Date 関数の戻り値をチェックして日 付が有効かどうかを確認します。バージョン 2 は、Date 関数でテキス トを変換する前に、IsDate 関数を使用して日付が有効かどうかを確認 します。 バージョン 1: // Windows のコントロールパネルに設定されている日付形式は YY/MM/DD date ld_my_date ld_my_date = Date(sle_start_date.Text) IF ld_my_date = Date("1900-01-01") THEN MessageBox(" エラー ", " 無効な値です:" & + sle_start_date.Text) END IF バージョン 2: date ld_my_date IF IsDate(sle_start_date.Text) THEN ld_my_date = Date(sle_start_date.Text) ELSE MessageBox(" エラー ", " 無効な値です:" & + sle_start_date.Text) END IF 422 PowerBuilder 第 10 章 PowerScript の関数 関連項目 DateTime IsDate RelativeDate RelativeTime 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Date メソッド 構文 3 数字データを結合して日付の形式に変換する 機能 年、月、日を表す数字を結合して日付の形式に変換します。 構文 Date ( year, month, day ) 引数 year month day 説明 日付の年を表す数字。4 桁の整数(1 ∼ 9999)を指定します。 日付の月を表す数字。1 桁または 2 桁の整数(1 ∼ 12)を 指定します。 日付の日を表す数字。1 桁または 2 桁の整数(1 ∼ 31)を 指定します。 戻り値 Date 型。year、month、day に指定された整数値を日付の形式で返しま す。無効な値(有効な日付の範囲外の値)が 1 つでも指定された場合、 1900-01-01 を返します。引数のいずれかの値が NULL の場合は、NULL が返されます。 例 以下に、整数値を使用して ld_my_date に 2004-10-15 を代入するステー トメントを示します。 date ld_my_date ld_my_date = Date(2004, 10, 15) 関連項目 DateTime DaysAfter RelativeDate RelativeTime PowerScript リファレンス ボリューム 2 423 DateTime DateTime DateTime 型の値を処理します。次の 2 つの構文を使用します。 目的 日付と時間の値を結合して DateTime 型にする Blob 型のデータ内に格納されている DateTime 型の値 を取得する 使用する構文 構文 1 構文 2 構文 1 DateTime 型の値を作成する 機能 日付値と時間値を結合して DateTime 型の値にします。 構文 DateTime ( date {, time } ) 引数 date time (オプション) 説明 Date 型の値。日付を指定します。 Time 型の値を指定します。time を省略すると、time を 00:00:00.000000(深夜 0 時)に設定します。time には、時 刻だけを指定します。 戻り値 DateTime 型。date と time で指定された値を DateTime 型の値として返 します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 DateTime 型のデータは、データベースの DateTime 型の値を読み込ん だり、書き出したりする場合にだけ使用します。スクリプトで日付と 時刻の値を使用するには、Date 関数および Time 関数を使用して日付の 変数と時刻の変数に値を割り当てます。 例 以下に、ld_OrderDate および lt_OrderTime に格納されている日付と時 刻を DateTime 型の値に変換し、データベースを更新するステートメン トを示します。 DateTime ldt_OrderDateTime date ld_OrderDate time lt_OrderTime ld_OrderDate = Date(sle_orderdate.Text) lt_OrderTime = Time(sle_ordertime.Text) ldt_OrderDateTime = DateTime( & ld_OrderDate, lt_OrderTime) 関連項目 424 Date Time PowerBuilder 第 10 章 PowerScript の関数 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの DateTime メソッド 構文 2 Blob 型の値から DateTime 型の値を取得する 機能 Blob 型の値から、DateTime 型の値を取り出します。 構文 DateTime ( blob ) 引数 blob 説明 最初の値が DateTime 型の値である Blob 型データを指定し ます。残りの Blob 型の値は無視されます。Blob 型の値を 格納した Any 型の変数を指定することもできます。 戻り値 DateTime 型。blob に指定されたデータから、DateTime 型の値を返しま す。blob が NULL の場合、NULL を返します。 解説 DateTime 型のデータは、データベースの DateTime 型の値を読み込ん だり、書き出したりする場合にだけ使用します。スクリプトで日付と 時刻の値を使用するには、Date 関数および Time 関数を使用して日付の 変数と時刻の変数に値を割り当てます。 例 たとえば、データベースから Blob 型のデータを取得し、lb_blob に代入 しているとします。次の例は、Blob 型データの 20 番目に格納されて いる DateTime 型の値を取得します。BlobMid 関数で指定した長さは、 DateTime 型の値の長さ以上である必要があります。 DateTime dt dt = DateTime(BlobMid(lb_blob, 20, 40)) 関連項目 Date Time Day 機能 Date 型の値から月の日付の部分を取り出します。 構文 Day ( date ) 引数 date PowerScript リファレンス ボリューム 2 説明 Date 型の値を指定します。日の部分を取り出します。 425 DayName 戻り値 Integer 型。date に指定された日の部分を表す整数(1 ∼ 31)を返しま す。date が NULL の場合、NULL を返します。 例 以下に、Date 型リテラル 2004-01-31 から日の部分(31)を取り出し、 li_day_portion に代入するステートメントを示します。 integer li_day_portion li_day_portion = Day(2004-01-31) 以下に、sle_date に格納されている値が日付として有効かどうかを調 べ、有効な場合には sle_date の日の部分を li_day_portion に代入するス テートメントを示します。 integer li_day_portion IF IsDate(sle_date.Text) THEN li_day_portion = Day(Date(sle_date.Text)) ELSE MessageBox(" エラー ", & " 無効な値です:" & + sle_date.Text) END IF 関連項目 Date IsDate Month Year 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Day メソッド DayName 機能 指定された Date 型の値の曜日名を返します。 構文 DayName ( date ) 引数 date 戻り値 426 説明 Date 型の値を指定します。曜日名を取得します。 String 型。date に指定された日付の曜日名(日曜日、月曜日など)を表 す文字列を返します。date が NULL の場合、NULL を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 DayName は、アプリケーションが実行されているマシンで使用可能な ランタイム ファイルの言語で名前を返します。開発環境あるいはユー ザのマシン上にローカライズされたランタイム ファイルがインス トールされていれば、そのマシン上では、DayName によって返される 名前は、ローカライズされたファイルの言語によります。 例 以下に、Date 型のリテラル 2003-07-04 を評価し、day_name に金曜日を 代入するステートメントを示します。 string day_name day_name = DayName(2003-07-04) 以下に、sle_date の値が日付として有効かどうかを調べ、有効な場合に は sle_date の曜日名を day_name に代入するステートメントを示しま す。 string day_name IF IsDate(sle_date.Text) THEN day_name = DayName(Date(sle_date.Text)) ELSE MessageBox(" エラー ", & " 無効な値です:" & + sle_date.Text) END IF 関連項目 Day DayNumber IsDate 『データウィンドウ リファレンス』マニュアルの DayName DayNumber 機能 Date 型の値が週の何日目にあたるかを返します。 構文 DayNumber ( date ) 引数 date 戻り値 説明 Date 型の値を指定します。週の何日目にあたるかを取得し ます。 Integer 型。date で指定した日付が週の何日目にあたるかを表す 1 ∼ 7 の整数を返します。日曜日が 1、月曜日が 2 ... となります。date が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 427 DaysAfter 例 以下に、Date 型リテラル 2000-01-31 を評価し、day_nbr に 2 を代入す るステートメントを示します。2000 年 1 月 31 日は、月曜日です。 integer day_nbr day_nbr = DayNumber(2000-01-31) 以下に、sle_date の値が日付として有効かどうかを調べ、有効な場合に は sle_date の値が週の何日目にあたるかを示す数を day_nbr に代入す るステートメントを示します。 integer day_nbr IF IsDate(sle_date.Text) THEN day_nbr = DayNumber(Date(sle_date.Text)) ELSE MessageBox(" エラー ", & " 無効な値です:" & + sle_date.Text) END IF 関連項目 Day DayName IsDate 『データウィンドウ リファレンス』マニュアルの DayNumber DaysAfter 機能 2 つの日付の間の日数を計算します。 構文 DaysAfter ( date1, date2 ) 引数 date1 date2 戻り値 説明 Date 型の値を指定します。指定された日からの間隔日数を 計算します。 Date 型の値を指定します。指定された日までの間隔日数を 計算します。 Long 型。date1 と date2 の間の日数値を表す Long 型の値を返します。 date2 が date1 よりも前の日付の場合、負の値を返します。引数のいず れかの値が NULL の場合、NULL を返します。 428 PowerBuilder 第 10 章 PowerScript の関数 例 次のステートメントは、4 を返します。 DaysAfter(2002-12-20, 2002-12-24) 次のステートメントは、-4 を返します。 DaysAfter(2002-12-24, 2002-12-20) 次のステートメントは、0 を返します。 DaysAfter(2003-12-24, 2003-12-24) 次のステートメントは、5 を返します。 DaysAfter(2003-12-29, 2004-01-03) 次に示すように、変数 date1 と date2 を宣言し、それぞれの変数に 2003 年 2 月 16 日と 2003 年 4 月 28 日を代入します。 date date1, date2 date1 = 2003-02-16 date2 = 2003-04-28 以下のステートメントは、それぞれ 71 を返します。 DaysAfter(date1, date2) DaysAfter(2003-02-16, date2) DaysAfter(date1, 2003-04-28) DaysAfter(2003-02-16, 2003-04-28) 関連項目 RelativeDate RelativeTime SecondsAfter 『データウィンドウ リファレンス』マニュアルの DaysAfter DBHandle 機能 DBMS(データベース管理システム)に対するハンドルを返します。 対象 トランザクション オブジェクト 構文 transactionobject.DBHandle ( ) 引数 transactionobject PowerScript リファレンス ボリューム 2 説明 実在するトランザクション オブジェクトを指定しま す。 429 DebugBreak 戻り値 UnsignedLong 型。DBMS に対するインタフェース ハンドルを返しま す。transactionobject に、実在するトランザクション オブジェクトを指 定します。また、データベースが接続されている必要があります。 transactionobject が NULL の場合、NULL を返します。transactionobject が 存在しない場合は、実行エラーが発生します。DBMS に接続するため の十分なメモリがない場合、DBHandle は負数を返します。 解説 DBHandle 関数は、データベースに接続している場合にだけ、有効なハ ンドルを返します。この関数は、データベースが接続されていなかっ たり接続が解除されていたりするかどうかを判断することはできませ ん。 PowerBuilder は、データベース ハンドルを内部的に使用してデータ ベースと通信します。PowerBuilder がサポートしていない関数を使用 した API をデータベースがサポートしている場合、DBHandle 関数を使 用してそのハンドルを取得し、その外部関数の引数として与えます。 例 例についてはオンラインヘルプの「DBHandle」を検索して、参照して ください。 DebugBreak 機能 実行を中断し、デバッガ ウィンドウを開きます。 構文 DebugBreak ( ) 戻り値 なし 解説 スクリプトの実行を中断してアプリケーションを調べるポイントに、 DebugBreak 関数の呼び出しを挿入します。次に、ジャストインタイム デバッグを有効にし、開発環境でアプリケーションを実行します。 PowerBuilder が DebugBreak 関数を検出すると、デバッガ ウィンドウが 開いて現行のコンテキストが表示されます。 例 次に、変数が NULL かどうかをテストし、NULL の場合はデバッガ ウィ ンドウを開くステートメントを示します。 IF IsNull(auo_ext) THEN DebugBreak() 430 PowerBuilder 第 10 章 PowerScript の関数 Dec 機能 文字列を Decimal 型の値に変換します。また、Blob 型データに格納さ れている Decimal 型の値を取得します。 構文 Dec ( stringorblob ) 引数 stringorblob 説明 Decimal 型に変換する String 型の値、または先頭に Decimal 型データを持つ Blob 型の値を指定します。残りの Blob 型 の値は無視されます。Stringorblob には、文字列または Blob 型を含む Any 変数を指定することもできます。 戻り値 Decimal 型。stringorblob に指定された値を Decimal 型の値で返します。 stringorblob に指定された値が PowerScript で有効な数値でない場合、ま たは一致しないデータ型を含む場合には、0 を返します。stringorblob が NULL の場合、NULL を返します。 例 次のステートメントは、Decimal 型の 24.3 を返します。 Dec("24.3") 次のステートメントは、シングルライン エディット コントロール sle_salary の内容を Decimal 型として返します。 Dec(sle_salary.Text) Blob 型の変数にデータを代入する方法、および Blob 型の変数からデー タを取り出す方法については、Real 関数の例を参照してください。 関連項目 Double Integer Long Real DeleteCategory 機能 グラフの項目軸から、項目とその項目に対するデータ値を削除します。 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 PowerScript リファレンス ボリューム 2 431 DeleteColumn 構文 controlname.DeleteCategory ( categoryvalue ) 引数 controlname categoryvalue 説明 グラフ コントロールの名前を指定します。指定されたグ ラフから項目を削除します。 controlname に指定されたグラフから削除する項目の名前 を指定します。また、指定する値は、項目軸のデータ型と 同じでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。 例 以下に、シングルライン エディット コントロール sle_delete に入力さ れている項目をグラフ gr_product_data から削除するステートメントを 示します。 string CategName CategName = sle_delete.Text gr_product_data.DeleteCategory(CategName) 関連項目 DeleteData DeleteSeries DeleteColumn 機能 カラムを削除します。 リストビュー コントロール 構文 listviewname.DeleteColumn ( index ) 引数 listviewname index 説明 カラムを削除するリストビュー コントロールの名前を指 定します。 削除するカラムのインデックス番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例は、リストビュー コントロールの 2 番目のカラムを削除します。 lv_list.DeleteColumn(2) 関連項目 432 DeleteColumns PowerBuilder 第 10 章 PowerScript の関数 DeleteColumns 機能 すべてのカラムを削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteColumns ( ) 引数 listviewname 説明 すべてのカラムを削除するリストビュー コントロールの 名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例は、リストビュー コントロールのすべてのカラムを削除します。 lv_list.DeleteColumns() 関連項目 DeleteColumn DeleteData 機能 グラフのデータ系列からデータ ポイントを削除します。データ系列内 の残ったデータ ポイントは左にシフトして、その項目のデータ ポイン トが詰められます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.DeleteData ( seriesnumber, datapointnumber ) 引数 controlname seriesnumber datapointnumber 戻り値 説明 データ ポイントを削除するグラフ コントロールの名前 を指定します。 controlname に指定されたグラフから削除するデータ ポ イントがあるデータ系列の番号を指定します。 削除するデータがあるデータ ポイントの番号を指定し ます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 433 DeleteItem 例 以下に、グラフ gr_product_data 内のデータ系列 Costs の 7 番目のデータ ポイントにあるデータを削除するステートメントを示します。 integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") gr_product_data.DeleteData(SeriesNbr, 7) 関連項目 AddData DeleteCategory DeleteSeries FindSeries DeleteItem リストボックス コントロール、ドロップダウン リストボックス コン トロール、またはリストビュー コントロールから項目を削除します。 項目を削除するコントロール リストボックス コントロール、またはドロップダウ ン リストボックス コントロール リストビュー コントロール ツリービュー コントロール 使用する構文 構文 1 構文 2 構文 3 構文 1 リストボックス コントロールとドロップダウン リス トボックス コントロールの項目を削除する 機能 リストボックス コントロールの値のリストから項目を削除します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.DeleteItem ( index ) 引数 listboxname index 434 説明 項目を削除するリストボックス、ドロップダウン リスト ボックス、ピクチャ リストボックス、ドロップダウン ピ クチャ リストボックスのいずれかのコントロールの名前 を指定します。 削除する項目の位置を示す番号を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。項目を削除した後、値のリストに残されている項目の数を 返します。エラーが発生した場合、-1 を返します。また、引数のいず れかの値が NULL の場合は NULL を返します。 解説 コントロールの Sorted プロパティが設定されている場合、リストの順 序は、コントロールを定義したときに指定した順序と異なる可能性が あります。項目のテキストがわかっている場合には、FindItem 関数を使 用して項目のインデックスを確認してください。 例 lb_actions に 10 個の項目がある場合、次のステートメントは lb_actions から項目 5 を削除し、9 を返します。 lb_actions.DeleteItem(5) 以下に、最初に選択した項目を lb_actions から削除するステートメント を示します。 integer li_Index li_Index = lb_actions.SelectedIndex() lb_actions.DeleteItem(li_Index) 次に、リストボックス lb_purpose から "Personal" という項目を削除す るステートメントを示します。 lb_purpose.DeleteItem( & lb_purpose.FindItem("Personal", 1)) 関連項目 AddItem FindItem InsertItem SelectItem 構文 2 リストビュー コントロールから項目を削除する 機能 指定された項目をリストビュー コントロールから削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteItem ( index ) 引数 listviewname index 戻り値 説明 項目を削除するリストビュー コントロールの名前を指定 します。 削除する項目のインデックス番号を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 435 DeleteItem 例 次の例では、選択されたリストビューの項目のインデックスを SelectedIndex 関数を使用して検索し、対応する項目を削除します。 integer index index = lv_list.selectedindex() lv_list.DeleteItem(index) 関連項目 AddItem FindItem InsertItem SelectItem DeleteItems 構文 3 ツリービュー コントロールから項目を削除する 機能 コントロールから項目を削除し、その項目の子項目があればそれも削 除します。 対象 ツリービュー コントロール 構文 treeviewname.DeleteItem ( itemhandle ) 引数 treeviewname itemhandle 説明 項目を削除するツリービュー コントロールの名前を指定 します。 削除する項目のハンドルを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 すべての項目が最上位レベルの単一項目の子である場合、DeleteItem 関 数の引数として RootTreeItem のハンドルを指定することで、ツリー ビュー内のすべての項目を削除することができます。それ以外の場合 は、最初のレベルで項目をループさせて順番に削除する必要がありま す。 例 次の例では、ツリービュー コントロールから項目を削除します。 long ll_tvi ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) tv_list.DeleteItem(ll_tvi) 次の例では、最初のレベルに複数の項目がある場合に、ツリービュー コントロールからすべての項目を削除します。 long tvi_hdl = 0 DO UNTIL tv_1.FindItem(RootTreeItem!, 0) = -1 436 PowerBuilder 第 10 章 PowerScript の関数 tv_1.DeleteItem(tvi_hdl) LOOP 関連項目 AddItem FindItem InsertItem SelectItem DeleteItems DeleteItems 機能 リストビュー コントロールから、すべての項目を削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteItems ( ) 引数 listviewname 説明 すべての項目を削除するリストビュー コントロールの名 前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールのすべての項目を削除しま す。 lv_list.DeleteItems() 関連項目 DeleteItem PowerScript リファレンス ボリューム 2 437 DeleteLargePicture DeleteLargePicture 機能 大きいピクチャのリストから、ピクチャを削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteLargePicture ( index ) 引数 listviewname index 説明 大きいピクチャのリストから大きいピクチャを削除する リストビュー コントロールの名前を指定します。 削除する大きいピクチャのインデックス番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、大きいピクチャを削除 します。 lv_list.DeleteLargePicture(1) 関連項目 DeleteLargePictures DeleteLargePictures 機能 リストビュー コントロールから、すべての大きいピクチャを削除しま す。 対象 リストビュー コントロール 構文 listviewname.DeleteLargePictures ( ) 引数 listviewname 説明 大きいピクチャのリストからすべてのピクチャを削除す るリストビュー コントロールの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、すべての大きいピク チャを削除します。 lv_list.DeleteLargePictures() 関連項目 438 DeleteLargePicture PowerBuilder 第 10 章 PowerScript の関数 DeletePicture 機能 ピクチャのリストからピクチャを削除します。 対象 ピクチャ リストボックス コントロール、ドロップダウン ピクチャ リ ストボックス コントロール、ツリービュー コントロール 構文 controlname.DeletePicture ( index ) 引数 controlname index 説明 ピクチャを削除するコントロールを指定します。 指定されたコントロールのピクチャのリストから削除す るピクチャのインデックス番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 コントロールのピクチャのリストからピクチャを 1 つ削除すると、欠 番にならないように、リスト内のそれ以降のピクチャの番号が付け替 えられます。項目のピクチャ インデックスは変更されないので、削除 されたピクチャのインデックス番号以降の番号を使用する項目のピク チャは変更されます。 例 次の例では、ピクチャのリストから、6 番目のピクチャを削除します。 tv_list.DeletePicture(6) 関連項目 AddPicture DeletePictures DeletePictures 機能 ピクチャのリストから、すべてのピクチャを削除します。 対象 ピクチャ リストボックス コントロール、ドロップダウン ピクチャ リ ストボックス コントロール、ツリービュー コントロール 構文 controlname.DeletePictures ( ) 引数 controlname 戻り値 説明 ピクチャのリストからすべてのピクチャを削除するコン トロールを指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 439 DeleteSeries 例 次の例では、ツリービュー コントロールのピクチャのリストから、す べてのピクチャを削除します。 tv_list.DeletePictures() 関連項目 AddPicture DeletePicture DeleteSeries 機能 グラフからデータ系列とそのデータ値を削除します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.DeleteSeries ( seriesname ) 引数 controlname seriesname 説明 データ系列を削除するグラフの名前を指定します。 controlname に指定されたグラフから削除するデータ系列 の名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 グラフ内のデータ系列は、グラフに追加された順番に番号が付けられ ています。データ系列が削除されると、残りのデータ系列には番号が 付け直されます。 例 次の例は、ドロップダウン リストボックス コントロールの SectionChanged イベントに対するスクリプトです。この例では、リストボックス上に グラフ gr_data 内のデータ系列が表示されているとします。項目を選択 すると、DeleteSeries 関数はグラフからデータ系列を削除し、DeleteItem 関数はリストボックスからその項目の名前を削除します。 string ls_name ls_name = This.Text gr_data.DeleteSeries(ls_name) This.DeleteItem(This.FindItem(ls_name, 0)) 関連項目 440 AddSeries DeleteCategory DeleteData PowerBuilder 第 10 章 PowerScript の関数 FindSeries DeleteSmallPicture 機能 リストビュー コントロールから、小さいピクチャを削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteSmallPicture ( index ) 引数 listviewname index 説明 小さいピクチャのリストから小さいピクチャを削除する リストビュー コントロールの名前を指定します。 削除する小さいピクチャのインデックス番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、小さいピクチャを削除 します。 lv_list.DeleteSmallPicture(1) 関連項目 DeleteSmallPictures DeleteSmallPictures 機能 リストビュー コントロールから、すべての小さいピクチャを削除しま す。 対象 リストビュー コントロール 構文 listviewname.DeleteSmallPictures ( ) 引数 listviewname 戻り値 説明 小さいピクチャのリストからすべてのピクチャを削除す るリストビュー コントロールの名前を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 441 DeleteStatePicture 例 次の例では、リストビュー コントロールから、すべての小さいピク チャを削除します。 lv_list.DeleteSmallPictures() 関連項目 DeleteSmallPicture DeleteStatePicture 機能 コントロールから、状態ピクチャを削除します。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.DeleteStatePicture ( index ) 引数 controlname index 説明 状態ピクチャのリストからピクチャを削除するリスト ビュー コントロールまたはツリービュー コントロールの 名前を指定します。 削除する状態ピクチャのインデックス番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、状態ピクチャを削除し ます。 lv_list.DeleteStatePicture(1) 関連項目 DeleteStatePictures DeleteStatePictures 機能 コントロールから、すべての状態ピクチャを削除します。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.DeleteStatePictures ( ) 引数 controlname 442 説明 状態ピクチャのリストからすべてのピクチャを削除する リストビュー コントロールまたはツリービュー コント ロールの名前を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、すべての状態ピクチャ を削除します。 lv_list.DeleteStatePictures() 関連項目 DeleteStatePicture DestroyModel 機能 現行のパフォーマンス解析モデルまたはトレース ツリー モデルを破 棄します。 対象 Profiling オブジェクトと TraceTree オブジェクト 構文 instancename.DestroyModel ( ) 引数 instancename 戻り値 説明 Profiling オブジェクトまたは TraceTree オブジェクトのイ ンスタンス名を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しないため、関数は異常終了 しました。 解説 BuildModel 関数を使用して作成したパフォーマンス解析またはトレー ス ツリー モデルの使用が終了した場合、DestroyModel 関数を呼び出し て、モデルを破棄しなければなりません。また、そのモデルに関連付 けられているオブジェクトもすべて破棄しなければなりません。モデ ルに割り当てられたメモリは、オブジェクトが破棄されるまで解放さ れません。 例 次の例では、BuildModel 関数を使用して作成したパフォーマンス分析モ デルを破棄します。 lpro_model.DestroyModel() DESTROY lpro_model 関連項目 BuildModel PowerScript リファレンス ボリューム 2 443 DirectoryExists DirectoryExists 機能 指定されたディレクトリが存在しているかどうかを判定します。 構文 DirectoryExists ( directoryname ) 引数 directoryname 説明 存在チェックをするディレクトリの名前を示す文字列を 指定します。 戻り値 ディレクトリが存在している場合は、TRUE を返します。ディレクトリ が存在していない場合、または directoryname 引数にファイル名を渡し た場合は、FALSE を返します。 解説 ほかのファイル システムのメソッドを使用してファイルの移動または ディレクトリの削除を試みる際は、事前にこのメソッドを使用します。 例 次の例では、ファイルをディレクトリに移動する前に、そのディレク トリが存在するかどうかを判定します。そのディレクトリが存在しな い場合は、パスが存在しないというメッセージをメッセージ ボックス に表示します。 string ls_path="monthly targets" If DirectoryExists ( ls_path ) Then FileMove ("2000\may.csv", ls_path+"\may.csv" ) MessageBox (" ファイルマネージャ ", " ファイルは "& + ls_path + " に移動されました。") Else MessageBox (" ファイルマネージャ ", " ディレクトリ " +& ls_path + " は存在しません。" ) End If 関連項目 FileMove GetCurrentDirectory RemoveDirectory DirList 機能 ファイルのリストをリストボックスに格納します。パス、マスク、ファ イルの種類を指定して、表示するファイルの集合を制限することがで きます。ウィンドウにスタティックテキスト コントロールがある場 合、DirList 関数を使用して現行のドライブとディレクトリも表示できま す。 444 PowerBuilder 第 10 章 PowerScript の関数 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.DirList ( filespec, filetype {, statictext } ) 引数 listboxname filespec filetype 説明 作成するリストボックスまたはドロップダウンリスト ボックスの名前を指定します。 ファイル パターンを表す文字列を指定します。通常、*.INI や *.TXT などのマスクを指定します。パスが指定された場 合、そのパスが現行のドライブとディレクトリになりま す。 リストボックスに格納するファイルの種類を示す符号な し整数を指定します。以下の種類があります。 • 0 − 読み取り / 書き込み可能なファイル • 1 − 読み出し専用ファイル • 2 − 隠しファイル • 4 − システム ファイル • 16 − サブディレクトリ • 32 − アーカイブ ファイル(修正されたもの) • 16384 − ドライブ • 32768 − 読み取り / 書き込み可能なファイル以外 statictext (オプション) 戻り値 ファイルの種類を複数指定するには、上記の種類を示す数 字を足し算します。たとえば、読み取り / 書き込み可能な ファイル、サブディレクトリ、ドライブをリストに含める には、filetype に 0+16+16384 または 16400 と指定します。 現行のドライブとディレクトリを表示するスタティック テキスト コントロールの名前を指定します。 Boolean 型。検索パスが有効でリストボックスを作成できた場合、また はファイル リストが空の場合には TRUE を返します。リストボックス が作成できなかった場合(filespec にディレクトリではなくファイルを 指定した場合、検索パスが無効だった場合など)には FALSE を返しま す。引数のいずれかの値が NULL の場合は、NULL を返します。 解説 DirLisr 関数を使用すると、ウィンドウが開いたときにリストボックスに ファイル リストを表示することができます。DirList 関数を SelectionChanged イベントのスクリプトに記述し、選択された項目に応 じてリストボックスを作成し直し、それを表示することもできます。 DirSelect 関数の例を参照してください。 PowerScript リファレンス ボリューム 2 445 DirSelect ヒント DirList 関数の機能を使用して標準の ファイルを開く ダイアログボック スとファイルを保存する ダイアログボックスをエミュレートするこ とができます。ただし、DirList 関数のかわりに GetFileOpenName 関数ま たは GetFileSaveName 関数を使用すると、これらの標準的な Windows 機能がすべて提供されます。 例 次のステートメントは、C:\EMPLOYEE に存在し、ファイル拡張子が TXT である読み出し / 書き込み可能なファイルのリストを表示するリ ストボックス コントロール lb_emp を作成します。 lb_emp.DirList("C:\EMPLOYEE\*.TXT", 0) 次のステートメントは、C:\EMPLOYEE に存在し、ファイル拡張子が DOC である読み出し専用ファイルのリストを表示するリストボック ス コントロール lb_emp を作成し、スタティックテキスト コントロー ル st_path にパスを表示します。 lb_emp.DirList("C:\EMPLOYEE\*.DOC", 1, st_path) 次の例は、ウィンドウの Open イベントに対するスクリプトです。現 行のディレクトリに存在する *.TXT に一致するすべてのファイルを表 示するリストボックスを作成し、リストボックスを表示します。 String s_filespec s_filespec = "*.TXT" lb_filelist.DirList(s_filespec, 16400, st_filepath) 関連項目 DirSelect GetFolder DirSelect 機能 DirList 関数を使用して作成されたリストボックスにおいて、現在選択 されている項目を取得し、それを文字列変数に格納します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 446 PowerBuilder 第 10 章 PowerScript の関数 構文 listboxname.DirSelect ( selection ) 引数 listboxname selection 説明 現在の選択内容を取得するリストボックス コントロール の名前を指定します。ここで指定するリストボックスは DirList 関数で作成したもので、選択内容はドライブ名、 ファイル名、ディレクトリ名のいずれかでなければなりま せん。 選択されたパス名を格納する文字列変数を指定します。 戻り値 Boolean 型。ドライブ名またはディレクトリ名が選択されていて、下位 階層が存在する場合は、TRUE を返します。ファイル名が選択されてい て、下位階層が存在しない場合は、FALSE を返します。引数のいずれ かの値が NULL の場合、NULL を返します。 解説 SelectionChanged イベントのスクリプトの中で DirSelect 関数を使用し て選択内容を調べます。選択内容がドライブまたはディレクトリであ る場合、その選択内容を DirList 関数の引数 filespec に設定して呼び出 し、リストボックスに表示します。 例 次の例は、リストボックス コントロール lb_FileList の SeletionChanged イベントに対するスクリプトです。DirSelect 関数を使用して選択内容 がファイル名かどうかを調べています。ファイル名でなかった場合、 スクリプトはファイル パターンにディレクトリ名を追加し、DirList 関 数を使用してリストボックスを作成し、現行のドライブとディレクト リ名をスタティックテキスト コントロール st_FilePath に表示します。 現行の選択内容がファイル名だった場合は、ファイル名の場合の処理 を実行します。 string ls_filename, ls_filespec = "*.TXT" IF lb_FileList.DirSelect(ls_filename) THEN // ls_filename がファイル名でない場合、 // ls_filespec にディレクトリを追加します。 ls_filename = ls_filename + ls_filespec lb_filelist.DirList(ls_filename, & 16400, st_FilePath) ELSE ... // ファイルの処理 END IF 関連項目 DirList GetFolder PowerScript リファレンス ボリューム 2 447 Disable Disable 機能 メニュー項目を使用不可の状態にします。メニュー項目は淡色表示に なり(通常はグレーなど、選択の無効を示す文字色に変わります)、選 択できなくなります。 対象 メニュー オブジェクト 構文 menuname.Disable ( ) 引数 menuname 戻り値 説明 使用不可の状態にするメニュー項目の名前を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。menuname が NULL の場合、NULL を返します。 メニュー項目を使用不可の状態にするには、メニューの Enable プロパティを FALSE にする方法もあります。 別の記述方法 menuname.Enabled = false たとえば、次のようなステートメントがあるとします。 m_appl.m_edit.Enabled = FALSE このステートメントは、次のステートメントと同じ意味です。 m_appl.m_edit.Disable() 例 次の例では、メニュー m_appl 上のメニュー項目 m_edit を使用不可の状 態にします。 m_appl.m_edit.Disable() 関連項目 Enable DisableCommit 機能 コンポーネントのトランザクション更新に矛盾があり、現状ではコ ミットできないことを宣言します。 対象 TransactionServer オブジェクト 構文 transactionserver.DisableCommit ( ) 引数 transactionserver 448 説明 TransactionServer サービス インスタンスへの参照を指 定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 DisableCommit 関数は、コンポーネントの作業が完了していないため、 現行のトランザクションがコミットできないことを表します。現行の メソッドが復帰した後、インスタンスはアクティブな状態のままにな ります。DisableCommit 関数は、EAServer における disallowCommit トラ ンザクション プリミティブに相当します。 例 以下は、データベースの更新を実行するコンポーネントのメソッドに おける DisableCommit 関数の使用例を示しています。 // インスタンス変数: // DataStore ids_datastore // TransactionServer ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer", & ts) IF li_rc <> 1 THEN // エラーを処理します。 END IF ... ll_rv = ids_datastore.Update() IF ll_rv = 1 THEN ts.EnableCommit() ELSE ts.DisableCommit() END IF 関連項目 EnableCommit IsInTransaction IsTransactionAborted SetAbort SetComplete Which PowerScript リファレンス ボリューム 2 449 DisconnectObject DisconnectObject 機能 指定した OLEObject 変数に接続されたオブジェクトを解放します。 対象 OLEObject オブジェクト 構文 oleobject.DisconnectObject ( ) 引数 oleobject 戻り値 説明 OLE オブジェクトから接続を解除する OLEObject 変数の 名前を指定します。OLE コントロールの Object プロパティ である OLEObject を指定することはできません。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 呼び出しが無効です。引数は、コントロールの Object プロパ ティです。 -9 そのほかのエラーです。 oleobject が NULL の場合、NULL を返します。 解説 OLEObject 変数は、OLE オートメーションに使用されます。つまり、 PowerBuilder のアプリケーションはサーバ アプリケーションに対して プログラムどおりに OLE オブジェクトを処理するように指示します。 OLE のオートメーションについての詳細は、ConnectToObject 関数を参 照してください。 例 次の例では、OLEObject 変数を作成し、新しい Excel オブジェクトに接 続しています。そして、何らかの処理を行った後、接続を解除します。 integer result OLEObject myoleobject myoleobject = CREATE OLEObject result = myoleobject.ConnectToNewObject( & "excel.application") . . . // 何らかの処理 result = myoleobject.DisconnectObject() 関連項目 450 ConnectToObject ConnectToNewObject PowerBuilder 第 10 章 PowerScript の関数 DisconnectServer 機能 クライアント アプリケーションをサーバ アプリケーションから接続 解除します。 対象 接続オブジェクト 構文 connection.DisconnectServer ( ) 引数 connection 戻り値 Long 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの値を返します。 50 52 53 54 55 56 57 62 解説 説明 削除する接続を確立するために使用した接続オブジェク トの名前を指定します。 分散サービス エラーです。 分散通信エラーです。 リクエスト先のサーバがアクティブではありません。 サーバがリクエストを受け付けません。 リクエストが異常終了しました。 リクエストへの応答が不完全です。 接続されていません。 サーバがビジーです。 サーバ アプリケーションから接続を解除した後、クライアント アプリ ケーションは接続オブジェクトを破棄する必要があります。 DisconnectServer 関数は、クライアント接続のために作成されたリモー ト オブジェクトとプロキシ オブジェクトをすべて破棄します。 例 次の例では、接続オブジェクト myconnect を使用して、クライアント アプリケーションをサーバ アプリケーションから接続解除します。 myconnect.DisconnectServer() destroy myconnect 関連項目 ConnectToServer PowerScript リファレンス ボリューム 2 451 Double Double 機能 文字列を Double 型に変換します。また、Blob 型データ内に格納されて いる Double 型の値を取得します。 構文 Double ( stringorblob ) 引数 stringorblob 戻り値 説明 Double 型に変換する文字列、または先頭が Double 型の値 である Blob 型データを指定します。残りの Blob 型の値は 無視されます。Stringorblob には、Double 型または Blob 型 を含む Any 変数を指定することもできます。 Double 型。stringorblob の内容を Double 型で返します。stringorblob に 指定された値が PowerScript で有効な数値でない場合、または一致しな いデータ型を含む場合には、0 を返します。stringorblob が NULL の場 合、NULL を返します。 解説 値が数字の 0 である文字列と、値が数値以外である文字列とを区別す るには、Double 関数を呼び出す前に IsNumber 関数を使用します。 例 次のステートメントは、24.372 を Double 型で返します。 Double("24.372") 次のステートメントは、シングルライン エディット コントロール sle_distance の内容を Double 型で返します。 Double(sle_distance.Text) 次の例は、データベースから Blob 型データを lb_blob に割り当てた後、 Blob 型データの 20 番目にある Double 型の値を取得します。BlobMid 関 数で指定する長さは、 Double 型の値の長さ以上でなければなりません。 double lb_num lb_num = Double(BlobMid(lb_blob, 20, 40)) Blob 型の変数にデータを代入する方法、および Blob 型の変数からデー タを取り出す方法については、Real 関数の例を参照してください。 関連項目 452 Dec Integer Long Real PowerBuilder 第 10 章 PowerScript の関数 DoVerb 機能 OLE コントロールまたは OLE データウィンドウ オブジェクト内の OLE オブジェクトに対して指定されたバーブを実行するよう、OLE サーバ アプリケーションに要求します。 対象 OLE コントロール、OLE DWObject(データウィンドウ コントロール のデータウィンドウ オブジェクトの中にあるオブジェクト) 構文 objectref.DoVerb ( verb ) 引数 objectref 説明 バーブを実行する OLE コントロールの名前、またはデー タウィンドウ コントロール上の OLE DWObject の完全な 名前を指定します。DWObject の名前は、次のような完全 な名前で指定します。 dwcontrol.Object.dwobjectname verb 戻り値 OLE サーバ アプリケーションが登録しているバーブを識 別する Interger 型の値を指定します。バーブは、サーバが OLE オブジェクトに対して実行できる処理です。サポート されているバーブについては、サーバの OLE 実装のマニュ アルを参照してください。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 コンテナが空です。 -2 オブジェクトに対するバーブが無効です。 -3 オブジェクトがバーブを実装していません。 -4 オブジェクトはいずれのバーブもサポートしていません。 -5 オブジェクトは現行バーブを実行できません。 -9 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例では、OLE コントロール ole_1 内のオブジェクトに対してバー ブ 7 を実行します。 integer result result = ole_1.DoVerb(7) 次の例では、OLE DWObject ole_graph 内のオブジェクトに対してバー ブ 7 を実行します。 integer result result = dw_1.Object.ole_graph.DoVerb(7) PowerScript リファレンス ボリューム 2 453 Drag 関連項目 Activate 『データウィンドウ リファレンス』マニュアルの OLEActivate SelectObject Drag 機能 コントロールのドラッグを開始したり、終了したりします。 対象 描画オブジェクト(直線、楕円、長方形、丸長方形)以外のすべての コントロール 構文 control.Drag ( dragmode ) 引数 control dragmode 説明 コントロールの名前を指定します。指定されたコントロー ルのドラッグを開始または中止します。 コントロールの動作を示す DragMode 型の値を指定しま す。次のいずれかの値を指定します。 • Begin! − control をドラッグ モードにします。 • Cancel! − control のドラッグを中止します。ただし、 DragDrop イベントは発生しません。 • End! − control のドラッグを中止し、control がターゲッ ト オブジェクトの上にある場合には DragDrop イベン トを起動します。 戻り値 Integer 型。OLE コントロール以外のコントロールの場合、正常に終了 したときは 1 を返します。ドラッグ イベントをネストしようとした場 合、または control がドラッグ モードではないのにドラッグを中止しよ うとした場合には、-1 を返します。通常、戻り値は使用されません。 OLE コントロールの場合、次の値を返します。 2 オブジェクトが移動されました。 1 ドラッグが中止されました。 0 ドラッグが正常終了しました。 -1 コントロールは空です。 -9 不明なエラーが発生しました。 引数のいずれかの値が NULL の場合、NULL を返します。 454 PowerBuilder 第 10 章 PowerScript の関数 解説 ドラッグ可能なコントロールを調べるには、オブジェクト ブラウザを 開きます。dragobject よりも下位階層にあるオブジェクトは、すべてド ラッグ可能です。 コントロールの DragAuto プロパティが TRUE の場合、エンド ユーザが コントロールをクリックすると、PowerBuilder はコントロールを自動 的にドラッグ モードにします。エンド ユーザは、マウス ボタンを押 したままドラッグします。 コントロールの Clicked イベントの中で Drag(Begin!) 関数を使用して、 コントロールを手動でドラッグ モードにした場合、ユーザはマウスの ボタンを押したままにしなくても、コントロールをドラッグすること ができます。マウスの左ボタンをクリックすると、ドラッグが終了し ます。CANCEL! や END! は、エンド ユーザがマウスの左ボタンをク リックしなくてもドラッグを終了できるようにする場合にだけ必要に なります。 データウィンドウ コントロールのドラッグ データウィンドウ コントロールの Clicked イベントはマウス ボタンを 放したときではなく、マウス ボタンが押された時点で発生します。 Drag(Begin!) をデータウィンドウ コントロールの Clicked イベントに設 定すると、マウス ボタンを放した時点でドラッグが終了します。ほか のコントロールで同じ効果を出すには、lbuttonup のデータウィンドウ コントロールのユーザ イベントを定義して pbm_lbuttonup イベント ID にマッピングします。それから下記のコードを lbuttonup イベント スク リプト(ib_dragflag はブール インスタンス変数)に記述します。 IF NOT ib_dragflag THEN this.Drag(Begin!) ib_dragflag = TRUE ELSE ib_dragflag = FALSE END IF エンド ユーザがターゲット オブジェクト上にコントロールをドラッ グしたときに何かを発生させるには、ターゲットのドラッグ イベント (DragDrop、DragEnter、DragLeave、DragWithin)の 1 つまたは複数に 対するスクリプトを記述します。 例 次に、sle_emp をドラッグ モードにするステートメントを示します。 sle_emp.Drag(Begin!) 関連項目 DraggedObject PowerScript リファレンス ボリューム 2 455 DraggedObject DraggedObject 機能 ドラッグ イベントを起動したコントロールへの参照を返します。 関数仕様の変更 ドラッグ関連のイベントにおいて、DraggedObject 関数を呼び出す必要 がなくなりました。ドラッグされているオブジェクトを参照するには、 イベントのソースの引数を使用します。 構文 DraggedObject ( ) 戻り値 DragObject という特殊なデータ型。ドラッグ可能なすべてのコント ロール(描画オブジェクト以外のすべてのコントロール)を含みます。 現在ドラッグされているコントロールへの参照を返します。 コントロールがない場合 現在ドラッグされているコントロールがない場合には、実行エラー メッセージが表示されます。 解説 ターゲット オブジェクトのドラッグ イベントに対するスクリプトの 中 で DraggedObject 関 数 を 呼 び 出 し ま す。ド ラ ッ グ イ ベ ン ト に は、 DragDrop イベント、DragEnter イベント、DragLeave イベント、および DragWithin イベントがあります。 TypeOf 関数を使用してコントロールのデータ型を取得できます。コン トロールのプロパティにアクセスする場合、そのコントロールのデー タ型の変数に DraggedObject 関数から返されたコントロールの参照を 割り当てることができます。詳細については、 「例」を参照してくださ い。 例 以下に、which_control を現在ドラッグされているコントロールと同じ デ ー タ 型 に 設 定 し、そ の コ ン ト ロ ー ル の テ キ ス ト プ ロ パ テ ィ を ls_text_value に設定するステートメントを示します。 SingleLineEdit sle_which CommandButton cb_which string ls_text_value DragObject which_control which_control = DraggedObject() CHOOSE CASE TypeOf(which_control) CASE CommandButton! 456 PowerBuilder 第 10 章 PowerScript の関数 cb_which = which_control ls_text_value = cb_which.Text CASE SingleLineEdit! sle_which = which_control ls_text_value = sle_which.Text END CHOOSE 関連項目 Drag TypeOf Draw 機能 現行ウィンドウ内の指定した位置にピクチャ コントロールを描画し ます。 対象 ピクチャ コントロール 構文 picture.Draw ( xlocation, ylocation ) 引数 picture xlocation ylocation 説明 現行ウィンドウ内に描画したいピクチャ コントロールの 名前を指定します。 ピクチャを描画する位置の x 座標(PowerBuilder の PBU に よる)を指定します。 ピクチャを描画する位置の y 座標(PowerBuilder の PBU に よる)を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 通常、戻り値は使用されません。 解説 Draw 関数を使用すると、ピクチャの X プロパティを連続的に変更して いくよりも迅速でスムーズな描画を行うことができます。Draw 関数 は、変更のたびにピクチャを表す小さなウィンドウを再生成するので はなく、ウィンドウに直接書き込みを行うからです。したがって、ア ニメーションを描画する場合などに、この関数を使用します。 アニメーションを描画するには、ピクチャをウィンドウ上の見えない 領域に配置してから、Draw 関数を使用して別の位置に描きます。ただ し、描画した箇所すべてに画像は残ります。位置を少しずつ変える場 合、それぞれの新しい描画は前の画像とほとんど重なります。 PowerScript リファレンス ボリューム 2 457 Draw Draw 関数を使用しても、ピクチャ コントロールの位置は変更されませ ん。指定した位置にコントロールの画像を表示するだけです。実際に コントロールの位置を変更するには Move 関数を使用します。 例 次に、指定された X、Y 座標(100, 200)の位置にビットマップ p_Train を描画するステートメントを示します。 p_Train.Draw(100, 200) 以下に、ビットマップ p_Train がウィンドウ内を移動しているように見 えるように、位置を変えながら連続的に描画するステートメントを示 します。 integer horizontal FOR horizontal = 1 TO 2000 STEP 8 p_Train.Draw(horizontal, 100) NEXT 関連項目 458 Move PowerBuilder 第 10 章 PowerScript の関数 EditLabel リストビュー コントロールまたはツリービュー コントロール内のラ ベルを編集モードにします。 ラベルを編集するコントロール リストビュー コントロール ツリービュー コントロール 使用する構文 構文 1 構文 2 構文 1 リストビュー コントロールのラベルを編集する 機能 リストビュー コントロール内のラベルを編集モードにします。 対象 リストビュー コントロール 構文 listviewname.EditLabel ( index ) 引数 listviewname index 説明 ラベルを編集するリストビュー コントロールを指定します。 編集するリストビューの項目のインデックスを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ラベルの編集を有効にするためには、リストビューの EditLabels プロ パティを TRUE に設定する必要があります。このプロパティが TRUE の ときは、EditLabel 関数を呼び出すと項目にフォーカスが設定され、編 集が可能になります。ラベルの編集を終えた後に編集を無効にするに は、EndLabelEdit イベントで EditLabels プロパティを FALSE に設定し ます。 EditLabels プロパティが FALSE に設定されていると、EditLabel 関数を 実行しても編集が有効にはなりません。 例 次に、ユーザがリストビュー コントロール lv_1 内で選択されている最 初の項目のラベルを編集できるようにする例を示します。 integer li_selected li_selected = lv_1.SelectedIndex() lv_1.EditLabels = TRUE lv_1.EditLabel(li_selected) 関連項目 FindItem PowerScript リファレンス ボリューム 2 459 EditLabel 構文 2 ツリービュー コントロールのラベルを編集する 機能 ツリービュー コントロール内のラベルを編集モードにします。 対象 ツリービュー コントロール 構文 treeviewname.EditLabel ( itemhandle ) 引数 treeviewname itemhandle 説明 ラベルの編集を有効にするツリービュー コントロールを 指定します。 編集する項目のハンドルを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ラベルの編集を有効にするためには、ツリービューの EditLabels プロ パティを TRUE に設定する必要があります。このプロパティが TRUE の ときは、EditLabel 関数を呼び出すと項目にフォーカスが設定され、編 集が可能になります。ラベルの編集を終えた後に編集を無効にするに は、EndLabelEdit イベントで EditLabels プロパティを FALSE に設定し ます。 EditLabels プロパティが FALSE に設定されていると、EditLabel 関数を 実行しても編集が有効にはなりません。 例 次に、エンド ユーザが現行のツリービューの項目のラベルを編集でき るようにする例を示します。 long ll_tvi ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) tv_list.EditLabels = TRUE tv_list.EditLabel(ll_tvi) 関連項目 460 FindItem PowerBuilder 第 10 章 PowerScript の関数 Enable 機能 エンド ユーザが選択できるように、項目を使用可能な状態にします。 対象 メニュー オブジェクト 構文 menuname.Enable ( ) 引数 menuname 説明 使用可能な状態にするメニュー項目の名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。menuname が NULL の場合、NULL を返します。 解説 メニュー項目を使用可能な状態にすると、項目の色はグレー表示では なく、使用可能なアクティブな色になります。Enable 関数を呼び出す と、項目の Enabled プロパティが TRUE に設定されます。 メニューの Enabled プロパティを設定しても、Enable 関 数を呼び出したときと同じ結果が得られます。 別の記述方法 menuname.Enabled = TRUE たとえば、次のようなステートメントがあるとします。 menu_appl.m_delete.Enabled = TRUE このステートメントは、次のステートメントと同じ意味です。 menu_appl.m_delete.Enable() 例 次に、メニュー m_appl のメニュー項目 m_delete を使用可能な状態にす るステートメントを示します。 m_appl.m_delete.Enable() 関連項目 Disable PowerScript リファレンス ボリューム 2 461 EnableCommit EnableCommit 機能 コンポーネントの作業は完了していない可能性があるが、トランザク ション更新には矛盾がなく、コミットが可能であることを宣言します。 対象 TransactionServer オブジェクト 構文 transactionserver.EnableCommit ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 EnableCommit 関数は、現行のメソッドの起動後、コンポーネントを非 アクティブにしてはならないことを表します。ただし、コンポーネン トのインスタンスが非アクティブ化されると、現行のトランザクショ ンをコミットすることができます。EnableCommit 関数は、EAServer に おける continueWork トランザクション プリミティブに相当します。 例 以下に、データベースの更新を実行するコンポーネントのメソッドに おける EnableCommit 関数の使用例を示します。 // インスタンス変数: // DataStore ids_datastore // TransactionServer ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer",ts) IF li_rc <> 1 THEN // エラーを処理します。 END IF ... ll_rv = ids_datastore.Update() IF ll_rv = 1 THEN ts.EnableCommit() ELSE ts.DisableCommit() END IF 関連項目 462 DisableCommit IsInTransaction IsTransactionAborted Lookup SetAbort PowerBuilder 第 10 章 PowerScript の関数 SetComplete Which EntryList 機能 トレースツリー モデルに含まれているトップレベル エントリのリス トを返します。 対象 TraceTree オブジェクト 構文 instancename.EntryList ( list ) 引数 instancename list 戻り値 解説 説明 TraceTree オブジェクトのインスタンス名を指定します。 TraceTreeNode データ型の可変長の配列変数を指定します。 EntryList 関数は、トレース ツリー モデルの各トップレベル エントリの TraceTreeNode オブジェクトをこの配列変数に 保存します。この引数は、参照渡しされます。 ErrorReturn 型。次の値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しないため、関数は異常終了 しました。 EntryList 関数は、トレース ツリー モデルに含まれているトップレベル のエントリまたはノードのリストを抽出します。リストされる各トッ プレベル エントリは、TraceTreeNode オブジェクトとして定義され、 ノードで表される動作のタイプを提供します。 あらかじめ、BuildModel 関数でトレース ファイルからトレース ツリー モデルを作成しておかなければなりません。 例 次に、トレース ツリー モデルのトップレベルのエントリまたはノード を取得し、リスト内をループして各ノードに関する情報を抽出する例 を示します。of_dumpnode 関数は、TraceTreeNode オブジェクトとレベ ルを引数として使用し、ノードに関する情報が入った文字列を返しま す。 TraceTree ltct_model TraceTreeNode ltctn_list[], ltctn_node Long ll_index,ll_limit String ls_line PowerScript リファレンス ボリューム 2 463 ExecRemote ltct_model = CREATE TraceTree ltct_model.BuildModel() ltct_model.EntryList(ltctn_list) ll_limit = UpperBound(ltctn_list) FOR ll_index = 1 TO ll_limit ltctn_node = ltctn_list[ll_index] ls_line += of_dumpnode(ltctn_node,0) NEXT ... 関連項目 BuildModel ExecRemote DDE サーバ アプリケーションに対して、指定されたコマンドを実行す るように要求します。 目的 使用する構文 1 つのコマンドを DDE サーバ アプリケーションに送信 構文 1 する(コールド リンク) チャネルを開いた後、コマンドを DDE サーバ アプリ 構文 2 ケーションに送信する(ウォーム リンク) 構文 1 1 つのコマンドを送信する 機能 1 つのコマンドを DDE サーバ アプリケーションに送信します。これを コールド リンクといいます。 構文 ExecRemote ( command, applname, topicname ) 引数 command applname topicname 464 説明 String 型の値。DDE サーバ アプリケーションが実行するコ マンドを指定します。コマンドの形式については、サーバ アプリケーションのマニュアルを参照してください。 String 型の値。サーバ アプリケーションの DDE 名を表す 文字列を指定します。 String 型の値。コマンドで使用するデータまたは DDE アプ リケーションのインスタンスを指定します。たとえば Microsoft Excel の場合、この引数には "system"、または開 かれているスプレッドシートの名前を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合は、以下の負の整数のいずれかを返します。 -1 -2 -3 リンクは開始されていません。 リクエストが拒否されました。 サーバを終了することはできません。 引数のいずれかの値が NULL の場合、ExecRemote は NULL を返します。 解説 DDE 関数を呼び出す前に、DDE サーバ アプリケーションを実行して おく必要があります。必要であれば、Run 関数を使用してアプリケー ションを開始してください。 ExecRemote 関数を使用すると、コールド リンクを開始できるようにな ります。また、PowerBuilder クライアント アプリケーションと DDE サーバ アプリケーションとの間で、ウォーム リンクも使用できるよう になります。 コールド リンクとは、単一の DDE コマンドで、DDE チャネルには関 連付けられません。チャネルを開かずに ExecRemote 関数(構文 1)を 呼び出すと、Windows はそのたびに実行中のすべてのアプリケーショ ンをポーリングし、リクエストに応答するアプリケーションを検索し ます。これは、関連する GetRemote 関数と SetRemote 関数の場合も同 様です。 ウォーム リンクは、DDE チャネルに関連付けられます。詳細について は、構文 2 を参照してください。 DDE ホット リンクを使用すると、PowerBuilder クライアント アプリ ケーションでデータを自動的に更新できるようになります。DDE ホッ ト リンクには、ほかの関数も必要です。詳細については、StartHotLink 関数を参照してください。 例 次のステートメントは、Microsoft Excel に対するチャネルに、アクティ ブ スプレッドシートを REGION.XLS というファイル名で保存するよ うに設定しています。チャネルが開かれていないため、関数の引数に はアプリケーションとトピック(スプレッドシートの名前)を指定し ます。 ExecRemote("[Save()]", "Excel", "REGION.XLS") 関連項目 CloseChannel GetRemote OpenChannel SetRemote StartHotLink PowerScript リファレンス ボリューム 2 465 ExecRemote 構文 2 開いているチャネルにコマンドを送信する 機能 すでに OpenChannel 関数を呼び出し、サーバとの間にウォーム リンク を確立しているときに、DDE サーバ アプリケーションにコマンドを送 信します。 構文 ExecRemote ( command, handle {, windowhandle } ) 引数 command handle windowhandle (オプション) 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合は、以下の負の整数のいずれかを返します。 -1 -2 -9 解説 説明 String 型の値。DDE サーバ アプリケーションが実行するコ マンドを指定します。コマンドの形式は、コマンドを実行 する DDE アプリケーションによって異なります。 Long 型の値。DDE サーバ アプリケーションに対するチャ ネルを指定します。OpenChannel 関数を呼び出して DDE チャネルを開くと、この引数に指定された値が返されます。 DDE クライアントとして機能させるウィンドウに対する ハンドルを指定します。複数のウィンドウを開いていると きに、DDE クライアントとして機能させるウィンドウを 指定するために使用します。windowhandle が指定されてい ない場合、アクティブ ウィンドウは DDE クライアントと して機能します。 リンクは開始されていません。 リクエストが拒否されました。 handle が NULL です。 DDE 関数を呼び出す前に、DDE サーバ アプリケーションを実行して おく必要があります。必要であれば、Run 関数を使用してアプリケー ションを開始してください。 ExecRemote 関数を使用すると、コールド リンクを開始できるようにな ります。また、PowerBuilder クライアント アプリケーションと DDE サーバ アプリケーションとの間で、ウォーム リンクを使用できるよう にもなります。 コールド リンクとは、単一の DDE コマンドで、DDE チャネルには関 連付けられません(構文 1 参照) 。 466 PowerBuilder 第 10 章 PowerScript の関数 ウォーム リンクは、DDE チャネルに関連付けられます。ExecRemote 関 数の構文 2 を使用してコマンドを送信する前に、OpenChannel 関数を使 用して DDE 対話のチャネルを構築します。ウォーム リンクは、複数 のコマンドを DDE サーバ アプリケーションに送信する必要がある場 合に便利です。チャネルが開かれているため、ExecRemote 関数は、実 行中のすべてのアプリケーションに対してポーリングを要求する必要 がありません。ExecRemote 関数、GetRemote 関数、または SetRemote 関 数を呼び出した後、DDE サーバでの処理が終了したら、CloseChannel 関数を呼び出して DDE 対話を終了します。 DDE ホット リンクを使用すると、PowerBuilder クライアント アプリ ケーションでデータを自動的に更新できるようになります。DDE ホッ ト リンクには、ほかの関数も必要です。詳細については、StartHotLink 関数を参照してください。 例 次の例は、スクリプトの一部です。Microsoft Excel に対する DDE チャ ネルに対して、アクティブ スプレッドシートを REGION.XLS という ファイル名で保存するように要求します。OpenChannel 関数でサーバ アプリケーションとトピックの名前を設定しているので、ExecRemote 関数ではチャネルのハンドルだけを指定します。このスクリプトは ウィンドウ上のボタンに関連付けられていて、そのウィンドウのハン ドルが OpenChannel 関数の最後の引数として指定されています。 long handle handle = OpenChannel("Excel", "REGION.XLS", & Handle(Parent)) . . . // 何らかの処理 ExecRemote("[Save]", handle) CloseChannel(handle, Handle(Parent)) 関連項目 CloseChannel GetRemote OpenChannel SetRemote PowerScript リファレンス ボリューム 2 467 Exp Exp 機能 e の累乗を返します。 構文 Exp ( n ) 引数 n 戻り値 説明 e(2.71828)の乗数を指定します。 Double 型。e の n 乗を返します。n が NULL の場合、NULL を返します。 Exp の逆関数 Exp 関数の逆関数は Log 関数です。 例 次に、7.38905609893065 を返すステートメントを示します。 Exp(2) 以下に、自然対数(底 e)を通常の数値に変換するステートメントを 示します。実行後、Exp 関数は value に 200 を代入します。 double value, x = log(200) value = Exp(x) 関連項目 Log LogTen 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Exp メソッド ExpandAll 機能 指定された項目とそのすべての下位項目を展開します。 対象 ツリービュー コントロール 構文 treeviewname.ExpandAll ( itemhandle ) 引数 treeviewname itemhandle 戻り値 468 説明 項目、および階層構造でその項目の下位にあるすべての項 目を展開するツリービュー コントロールを指定します。 展開する項目のハンドルを指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 TreeViewItem 内のすべてのレベルを展開するには、RootTreeItem ハン ドルを ExpandAll 関数の引数として使用します。 例 次に、ツリービュー コントロールのすべてのレベルを展開する例を示 します。 long ll_tvi ll_tvi = tv_list.FindItem(RootTreeItem! , 0) tv_list.ExpandAll(ll_tvi) 関連項目 CollapseItem ExpandItem FindItem ExpandItem 機能 指定された項目を展開します。 対象 ツリービュー コントロール 構文 treeviewname.ExpandItem ( itemhandle ) 引数 treeviewname itemhandle 説明 項目を展開するツリービュー コントロールを指定します。 展開する項目のハンドルを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ExpandItem 関数は、1 つの項目だけを展開します。指定された項目とそ の下位項目を展開するには、ExpandAll 関数を使用します。 例 次に、ツリービュー コントロールの現行のレベルを展開する例を示し ます。 long ll_tvi ll_tvi = tv_list.FindItem(CurrentTreeItem! , 0) tv_list.ExpandItem(ll_tvi) 関連項目 CollapseItem ExpandAll FindItem PowerScript リファレンス ボリューム 2 469 Fact Fact 機能 数値の階乗を返します。 構文 Fact ( n ) 引数 n 説明 階乗を求める数値を指定します。 戻り値 Double 型。n の階乗を返します。n が NULL の場合、NULL を返します。 例 次のステートメントは、24(つまり、1 * 2 * 3 * 4)を返します。 Fact(4) 次の 2 つのステートメントは、どちらも 1 を返します。 Fact(1) Fact(0) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Fact メソッド FileClose 機能 指定したファイル番号に関連付けられているファイルを閉じます。 ファイル番号は、FileOpen 関数によってファイルに割り当てられます。 構文 FileClose ( file# ) 引数 file# 説明 閉じるファイルに割り当てられた Integer 型の値を指定し ます。FileOpen 関数は、ファイルを開くときにそれぞれの ファイル番号を返します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。file# が NULL の場合、NULL を返します。 解説 ファイルは、開いたときのエンコーディング形式で保存されます。 例 次に、EMPLOYEE.DAT ファイルを開き、何か処理を行った後で閉じ る例を示します。FileOpen 関数がファイルを開いたときに割り当てた 値を、変数 li_FileNum に格納します。FileClose 関数は、この値を使用 してファイルを閉じます。 integer li_FileNum 470 PowerBuilder 第 10 章 PowerScript の関数 li_FileNum = FileOpen("EMPLOYEE.DAT") . . . // 何らかの処理 FileClose(li_FileNum) 関連項目 FileLength FileOpen FileReadEx FileWriteEx FileCopy 機能 あるファイルを別のファイルにコピーします。オプションで、コピー 先のファイルを上書きすることもできます。 構文 FileCopy ( sourcefile, targetfile {, replace } ) 引数 sourcefile targetfile replace (オプション) 戻り値 説明 コピーするファイルの名前を示す文字列を指定します。 コピー先とするファイルの名前を示す文字列を指定します。 Boolean 型の値。コピー先のファイルを上書きする(TRUE) か、しない(FALSE)かを指定します。 Integer 型。以下のいずれかの値を返します。 1 − 正常に終了しました。 -1 − sourcefile を開くときにエラーが発生しました。 -2 − targetfile に書き込むときにエラーが発生しました。 解説 sourcefile または targetfile に絶対パス名を指定しないと、関数は現行 ディレクトリからの相対パスに対して処理を実行します。replace 引数 が指定されていない場合、ターゲット ディレクトリ内のファイルのな かに targetfile 引数に指定されている名前と同じ名前のファイルがあっ ても、FileCopy 関数はそのファイルを上書きしません(この場合、replace の値を FALSE に設定したときと同じ結果になります)。 例 次に、現行ディレクトリのファイルを別のディレクトリにコピーして、 その戻り値を変数に格納する例を示します。ターゲット ディレクトリ 内に同じ名前のファイルがすでに存在している場合、そのファイルは 上書きされません。 integer li_FileNum li_FileNum = FileCopy ("jazz.gif" , & "C:\emusic\jazz.gif", FALSE) PowerScript リファレンス ボリューム 2 471 FileDelete 関連項目 FileMove GetCurrentDirectory FileDelete 機能 指定した名前のファイルを削除します。 構文 FileDelete ( filename ) 引数 filename 説明 削除するファイルの名前を表す文字列を指定します。 戻り値 Boolean 型。正常に終了した場合は TRUE を返し、エラーが発生した場 合は FALSE を返します。filename が NULL の場合、NULL を返します。 例 次のステートメントは、ファイルを開く ダイアログボックスでエンド ユーザが選択したファイルを削除します。 integer ret, value string docname, named value = GetFileOpenName(" ファイルを選択 ," & docname, named, "DOC", & "Doc Files (*.DOC),*.DOC") IF value = 1 THEN ret = MessageBox(" 削除 ", & " ファイルを削除しますか ?", Question!, OKCancel!) IF ret = 1 THEN FileDelete(docname) 関連項目 FileExists FileEncoding 機能 指定されたファイルのエンコーディング形式をチェックします。 構文 FileEncoding ( filename ) 引数 filename 472 説明 エンコーディングの種類を調べるファイルの名前を指定し ます。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Encoding カタログ データ型の値。値は以下のとおりです。 EncodingANSI! EncodingUTF8! EncodingUTF16LE! EncodingUTF16BE! filename が存在しない場合、NULL を返します。 解説 PowerBuilder アプリケーションで外部ファイルを使用する前に、その ファイルのエンコーディング形式を確認する場合に使用します。 例 次の例は、ファイルをストリーム モードで開き、ANSI エンコーディ ングが使用されているかどうかを確認します。使用されている場合、 ファイルのデータを Blob 型に読み込み、String 関数を使用して Blog 型 のデータを Unicode 文字列に変換します。 long ll_filenum integer li_bytes string ls_unicode blob lb_ansi encoding eRet ll_filenum = FileOpen("employee.dat",StreamMode!, Read!, LockWrite!, Replace!) // ファイルのエンコーディング形式を確認します。 eRet = FileEncoding("employee.dat") if eRet = EncodingANSI! then li_ bytes = FileReadEx(ll_filenum, lb_ansi) ls_unicode = string(lb_ansi, EncodingANSI!) else li_ bytes = (ll_filenum, ls_unicode) end if FileClose(ll_filenum) 関連項目 Blob FileClose FileOpen FileReadEx FileWriteEx String PowerScript リファレンス ボリューム 2 473 FileExists FileExists 機能 指定されたファイルが存在するかどうかを調べます。 構文 FileExists ( filename ) 引数 filename 説明 ファイルの名前を表す文字列を指定します。 戻り値 Boolean 型。ファイルが存在する場合は TRUE を返し、ファイルが存在 しない場合には FALSE を返します。filename が NULL の場合、NULL を 返します。 解説 共有違反しているほかのアプリケーションによって filename がロック されている場合、FileExists 関数は FALSE を返します。 例 次に、ファイル名を付けて保存 ダイアログボックスでエンド ユーザが 選択したファイルが存在するかどうかを確認する例を示します。存在 している場合、そのファイルを書き換えてもよいかどうかを問い合わ せます。 string ls_docname, ls_named integer li_ret boolean lb_exist GetFileSaveName(" ファイルを選択 ," ls_docname, & ls_named, "pbl", & "Doc Files (*.DOC),*.DOC") lb_exist = FileExists(ls_docname) IF lb_exist THEN li_ret = MessageBox(" 保存 ", & ls_docname + " を上書きしますか ?", & Question!, YesNo!) 関連項目 474 FileDelete PowerBuilder 第 10 章 PowerScript の関数 FileLength 機能 サイズが 2GB までのファイルの長さをバイト数で返します。 構文 FileLength ( filename ) 引数 filename 説明 ファイル名を表す文字列を指定します。このファイルの長 さを取得します。現行のアプリケーションのライブラリ探 索 パ ス に 存 在 し な い フ ァ イ ル を 指 定 す る 場 合 に は、 filename に絶対パス名を指定する必要があります。 戻り値 Long 型。filename で指定されたファイルの長さを返します。ファイル が存在しなかった場合、-1 を返します。filename が NULL の場合、NULL を返します。 解説 FileRead 関数を呼び出す前にファイルの長さを確認するには、FileOpen 関数を呼び出す前後に FileLength 関数を呼び出してください。FileRead 関数は、一度に 32,765 バイトまでしか読み込むことができません。 FileLength 関数が返す長さには、必ずバイト オーダー マーク(BOM: Byte-Order Mark)が含まれます。たとえば、SomeFile.txt ファイルの 16 進表示が FF FE 54 00 68 00 69 00 73 00 であるとします。この場合、次の ステートメントは、BOM を含めた 10 を返します。 ll_length = FileLength("SomeFile.txt") ファイル セキュリティ ファイルにセキュリティが設定されている場合(たとえばネットワー ク上でファイルを共有している場合など)、FileOpen 関数を呼び出す 前、または FileClose 関数を呼び出した後に FileLength 関数を使用しま す。それ以外で呼び出すと、共有違反が発生します。 FileLength 関数は、サイズが 2GB を超えるファイルの長さを返すことが できません。2GB を超えるファイルの長さを調べるには、FileLength64 を使用します。 例 次のステートメントは、現行ディレクトリ内の EMPLOYEE.DAT ファ イルの長さを返します。 FileLength("EMPLOYEE.DAT") 以下に、EAST ディレクトリ内の EMP.TXT ファイルの長さを返してそ のファイルを開くステートメントを示します。 long LengthA integer li_FileNum PowerScript リファレンス ボリューム 2 475 FileLength64 LengthA = FileLength("C:\EAST\EMP.TXT") li_FileNum = FileOpen("C:\EAST\EMP.TXT", & TextMode!, Read!, LockReadWrite!) 32,765 バイトを超える長さのファイルを読み込む方法については、 FileRead 関数の例を参照してください。 関連項目 FileClose FileLength64 FileOpen FileReadEx FileWriteEx FileLength64 機能 任意のサイズのファイルの長さをバイト数で返します。 構文 FileLength64 ( filename ) 引数 filename 説明 ファイル名を表す文字列を指定します。このファイルの長 さを取得します。現行のアプリケーションのライブラリ探 索 パ ス に 存 在 し な い フ ァ イ ル を 指 定 す る 場 合 に は、 filename に絶対パス名を指定する必要があります。 戻り値 LongLong 型。filename で指定されたファイルの長さを返します。ファ イルが存在しなかった場合、-1 を返します。filename が NULL の場合、 NULL を返します。 解説 FileRead 関数を呼び出す前にファイルの長さを確認するには、FileOpen 関 数 を 呼 び 出 す 前 後 に FileLength64 関 数 を 呼 び 出 し て く だ さ い。 FileRead 関数は、一度に 32,765 バイトまでしか読み込むことができま せん。32,765 バイトより長いファイルを読み込むには、FileReadEx 関 数を使用します。 FileLength64 関数が返す長さには、必ずバイト オーダー マーク(BOM: Byte-Order Mark)が含まれます。たとえば、SomeFile.txt ファイルの 16 進表示が FF FE 54 00 68 00 69 00 73 00 であるとします。この場合、次の ステートメントは、BOM を含めた 10 を返します。 ll_length = FileLength64("SomeFile.txt") 476 PowerBuilder 第 10 章 PowerScript の関数 ファイル セキュリティ ファイルにセキュリティが設定されている場合(たとえばネットワー ク上でファイルを共有している場合など)、FileOpen 関数を呼び出す 前、または FileClose 関数を呼び出した後に FileLength64 関数を使用しま す。それ以外で呼び出すと、共有違反が発生します。 例 次のステートメントは、現行ディレクトリ内の EMPLOYEE.DAT ファ イルの長さを返します。 FileLength64("EMPLOYEE.DAT") 以下に、EAST ディレクトリ内の EMP.TXT ファイルの長さを返してそ のファイルを開くステートメントを示します。 long LengthA integer li_FileNum LengthA = FileLength64("C:\EAST\EMP.TXT") li_FileNum = FileOpen("C:\EAST\EMP.TXT", & LineMode!, Read!, LockReadWrite!) 32,765 バイトを超える長さのファイルを読み込む方法については、 FileRead 関数の例を参照してください。 関連項目 FileClose FileLength FileOpen FileReadEx FileWriteEx FileMove 機能 ファイルを移動します。 構文 FileMove ( sourcefile, targetfile ) 引数 sourcefile targetfile 戻り値 説明 移動するファイルの名前を示す文字列を指定します。 ファイルの移動先とする場所を示す文字列を指定します。 Integer 型。以下のいずれかの値を返します。 1 − 正常に終了しました。 -1 − sourcefile を開くときにエラーが発生しました。 PowerScript リファレンス ボリューム 2 477 FileOpen -2 − targetfile に書き込むときにエラーが発生しました。 解説 ターゲット ディレクトリ内に同じ名前のファイルがすでに存在して いる場合、そのターゲット ファイルへの書き込みはできません。ター ゲット ファイルを上書きするには、FileCopy を使用して replace 引数を TRUE に設定します。 例 次に、現行ディレクトリのファイルを別のディレクトリに移動して、 その戻り値を li_FileNum 変数に格納する例を示します。 integer li_FileNum li_FileNum = FileMove ("june.csv", & "H:\project\june2000.csv" ) 関連項目 FileCopy GetCurrentDirectory FileOpen 機能 読み取りまたは書き込みのために指定されたファイルを開き、ファイ ルに整数の識別子(ファイル番号)を割り当てます。このファイル番 号は、ファイルを読み取る、ファイルに書き込む、ファイルを閉じる などの作業を行う場合に使用されます。filemode、fileaccess、filelock、 writemode の各引数は省略することもできます。これらの引数は、ファ イルを開くモードを指定する場合に使用します。 構文 FileOpen ( filename {, filemode {, fileaccess {, filelock {, writemode { encoding }}}}} ) 引数 filename filemode (オプション) 説明 String 型の値。開くファイルの名前を指定します。現行ディ レクトリの相対検索パスの中に存在しないファイル名を 指定する場合には、絶対パス名を指定する必要がありま す。 FileMode カタログ データ型の値。ファイルの読み込みと 書き込みをどこまで行うかを指定します。値は以下のとお りです。 • LineMode! −(デフォルト)ファイルの読み込みと書き 込みを一度に 1 行ずつ行います。 • StreamMode! − バイナリ データをブロック単位で読み 込みます。 • TextMode! − テキストをブロック単位で読み込みます。 詳細については、「解説」を参照してください。 478 PowerBuilder 第 10 章 PowerScript の関数 引数 fileaccess (オプション) 説明 FileAccess カタログ データ型の値。ファイルを読み込み専 用で開くのか、書き込み専用で開くのかを指定します。値 は以下のとおりです。 • Read! −(デフォルト)読み込み専用アクセス • Write! − 書き込み専用アクセス filelock (オプション) 引数 fileaccess が Write! に設定されていれば、指定された ファイルが見つからない場合に新しいファイルが作成さ れます。 FileLock カタログ データ型の値。開いたファイルに、ほか のエンド ユーザもアクセスできるかどうかを指定します。 値は以下のとおりです。 • LockReadWrite! −(デフォルト)ファイルを開いたエン ド ユーザだけに、アクセス権を与えます。 • LockRead! − ファイルを開いたエンド ユーザだけに、読 み込みの権限を与えます。書き込みの権限は、すべての エンド ユーザに与えられます。 • LockWrite! − ファイルを開いたエンド ユーザだけに、 書き込みの権限を与えます。読み込みの権限は、すべて のエンド ユーザに与えられます。 writemode (オプション) • Shared! − すべてのエンド ユーザに、読み込みと書き込 みの権限を与えます。 WriteMode カタログ データ型の値。fileaccess が Write! の場 合には、ファイル内の既存のデータを上書きするかどうか を指定します。値は以下のとおりです。 • Append! −(デフォルト)データをファイルの最後に書 き込みます。 • Replace! − ファイル内の既存のデータを上書きします。 encoding fileaccess が Read! の場合、writemode に設定された値は無 視されます。 作成するファイルの文字エンコーディングを指定します。 この引数は、テキスト モードまたはライン モードで新し いテキスト ファイルを作成する場合に指定します。エン コーディングが指定されていない場合、ファイルは ANSI エンコーディングで作成されます。値は以下のとおりで す。 • EncodingANSI!(デフォルト) • EncodingUTF8! • EncodingUTF16LE! • EncodingUTF16BE! PowerScript リファレンス ボリューム 2 479 FileOpen 戻り値 Integer 型。正常に終了した場合、filename に指定されたファイルに割 り当てられているファイル番号を返します。エラーが発生した場合、-1 を返します。引数のいずれかの値が NULL の場合、FileOpen は NULL を 返します。 解説 ファイルを開くときのモードによって、ファイルの読み書きに使用さ れる関数の動作が決まります。ファイルからデータを読み込む関数は、 FileRead と FileReadEx の 2 つです。ファイルにデータを書き込む関数 は、FileWrite と FileWriteEx の 2 つです。FileRead と FileWrite には、読み 込みまたは書き込みできるデータ量に制限があります。これらの関数 は下位互換性を保証するために残されています。また、テキスト モー ドをサポートしません。詳細については、FileRead と FileWrite を参照し てください。 FileReadEx と FileWriteEx 関数で Blob 型と String 型のデータを読み書き できるかどうかは、モードによって異なります。次の表に、各モード でサポートされているデータ型を示します。 表 10-2: モードによる FileReadEx と FileWriteEx のデータ型のサポート モード ライン ストリーム テキスト Blob 型 サポートされていない サポートされている サポートされている String 型 サポートされている サポートされていない サポートされている ファイルがライン モードで開かれている場合に FileReadEx 関数を呼び 出すと、キャリッジ リターン(CR)、ライン フィード(LF)、エンド オブ ファイル マーク(EOF)が検出されるまで、そのたびに読み取り が行われます。FileWriteEx 関数を呼び出すと、書き込んだ文字列の最後 に CR と LF が追加されます。 ファイルがストリーム モードで開かれている場合に FileReadEx 関数を 呼び出すと、ファイル全体が読み取られます。つまり、EOF が検出さ れるまで、またはオプションのパラメータで指定した長さまでデータ が読み取られます。FileWriteEx は、String 型または Blob 型変数に格納 されたすべてのデータを書き込むか、オプションのパラメータで指定 した長さまでデータを書き込みます。 オプションの length パラメータは、Blob 型のデータだけに適用されま す。第 2 パラメータのデータ型が String 型の場合に length パラメータ を指定すると、コードはコンパイルされません。 ANSI、UTF-16、および UTF-8 ファイルは、どのモードでも読み込み できます。 480 PowerBuilder 第 10 章 PowerScript の関数 ストリーム モードとテキスト モードでは、動作がよく似ています。た だし、ストリーム モードはバイナリ ファイル、テキスト モードはテ キスト ファイルでの使用を目的としています。ストリーム モードで既 存のファイルを開くと、データの次の読み取り開始位置を指すファイ ルの内部ポインタが、ファイルの先頭バイトに設定されます。 バイト オーダー マーク(BOM: Byte-Order Mark)は、データ ストリー ムの先頭にある文字コードであり、Unicode ファイルで使用されている エンコーディング形式を示します。UTF-8 の場合、BOM は EF BB BF という 3 バイトの値です。UTF-16 の場合、BOM はリトル エンディア ン(LE)では FF FE、ビッグ エンディアン(BE)では FE FF という 2 バイトの値です。 テキスト モードで既存のファイルを開くと、ファイルの内部ポインタ がファイルのエンコーディングに基づいて設定されます。 • エンコーディングが ANSI の場合、ポインタは先頭バイトに設定さ れます。 • エンコーディングが UTF-16LE または UTF-16BE の場合、ポイン タは BOM の直後の 3 番目のバイトに設定されます。 • エンコーディングが UTF-8 の場合、ポインタは BOM の直後の 4 番目のバイトに設定されます。 オプションの encoding 引数を指定し、既存のファイルがその引数に指 定されたエンコーディングでない場合、FileOpen は -1 を返します。 ファイルがありません。 引数 fileaccess が Write! に設定されていれば、ファイルが見つからな い場合、PowerBuilder は新しいファイルを作成し、作成したファイル に指定された名前を付けます。引数が Write! に設定されていなければ、 FileOpen は -1 を返します。 オプションの encoding 引数が指定されず、ファイルが存在しない場合、 ANSI エンコーディングでファイルが作成されます。 FileOpen を使用して新しいテキスト ファイルを作成する場合は、ライ ン モードかテキスト モードで行います。encoding のパラメータを指定 すると、BOM は指定されたエンコーディングに基づいてファイルに書 き込まれます。 ストリーム モードで新しいバイナリ ファイルを作成する場合、encoding パラメータを指定しても無視されます。 PowerScript リファレンス ボリューム 2 481 FileOpen 例 次に、デフォルトの引数を使用して EMPLOYEE.DAT ファイルを開く 例を示します。デフォルトの設定は、LineMode!、Read!、LockReadWrite!、 および EncodingANSI! です。FileReadEx 関数は、ファイルを 1 行ずつ 読み取ります。ファイルが閉じるまで、ほかのエンド ユーザはその ファイルにアクセスできません。 integer li_FileNum li_FileNum = FileOpen("EMPLOYEE.DAT") 次に、DEPT ディレクトリの EMPLOYEE.DAT ファイルを書き込み専 用アクセス(Write!)のためにストリーム モード(StreamMode!)で開 く例を示します。既存のデータは上書きされます(Replace!)。ほかの エンド ユーザは、ファイルに書き込むことができません(LockWrite!) 。 integer li_FileNum li_FileNum = FileOpen("C:\DEPT\EMPLOYEE.DAT", & StreamMode!, Write!, LockWrite!, Replace!) 次に、UTF8 エンコーディングを使用する新しいファイルを作成する例 を示します。このファイルは、new.txt という名前で D:\temp ディレク トリに作成されます。テキスト モードで書き込み専用に開かれるの で、ほかのエンド ユーザはファイルを読み書きできません。 integer li_ret string ls_file ls_file = "D:\temp\new.txt" li_ret = FileOpen(ls_file, TextMode!, Write!, & LockReadWrite!, Replace!, EncodingUTF8!) 関連項目 482 FileClose FileLength64 FileRead FileReadEx FileWrite FileWriteEx PowerBuilder 第 10 章 PowerScript の関数 FileRead 機能 指定されたファイル番号に関連付けられたファイルのデータを読み込 みます。ファイル番号は、FileOpen 関数によってファイルに割り当て られます。FileRead 関数は下位互換性を保証するために残されていま す。新規開発の場合は FileReadEx 関数を使用します。 構文 FileRead ( file#, variable ) 引数 file# variable 戻り値 解説 説明 ファイルが開かれたときにファイルに割り当てられた Integer 型の値を指定します。 String 型または Blob 型の変数の名前を指定します。この変 数にデータを読み込みます。 Integer 型。 読み込んだバイト数を返します。データを読み取る前に EOF が 検 出 さ れ た 場 合、-100 を 返 し ま す。フ ァ イ ル が ラ イ ン モ ー ド (LineMode!)で開かれていて、データを読み取る前に CR または LF が 検出された場合、0 を返します。エラーが発生した場合、-1 を返しま す。引数のいずれかの値が NULL の場合は、NULL を返します。ファイ ルの長さが 32,765 バイトを超える場合、32,765 を返します。 FileRead 関数は、ANSI、UTF-8、UTF-16LE、および UTF-16BE エンコー ディングのファイルを読み込むことができます。 ANSI ま た は UTF-8 フ ァ イ ル を String 型 の 変 数 に 読 み 込 む 場 合、 FileRead 関数は、テキストを Unicode に変換してから String 型の変数に 保 存 し ま す。UTF-16 フ ァ イ ル の 場 合 は、変 換 は 必 要 あ り ま せ ん。 Unicode ファイルの場合、BOM は文字列に書き込まれません。 ファイルを Blob 型の変数に読み込む場合、FileRead 関数はファイルの 内容を変換せずに保存します。Unicode ファイルの場合、BOM は、テ キスト モードでは Blob 型データに書き込まれませんが、ストリーム モードでは書き込まれます。 ファイルがラインモード(LineMode!)で開かれていた場合、CR、LF、 または EOF が検出されるまで、この関数はファイルの次の行を読み取 ります。読み取った行の内容は指定した変数に格納され、CR や LF を スキップし、ファイル ポインタを次の行の先頭に置きます。第 2 引数 が Blob 型の場合、FileRead 関数は -1 を返します。 ファイルがテキスト モードで開かれていた場合、-1 を返します。テキ スト モードでファイルを読み込むには、FileReadEx 関数を使用してく ださい。 PowerScript リファレンス ボリューム 2 483 FileRead ファイルがストリーム モード(StreamMode!)で開かれていた場合に は、この関数はファイルの最後まで、または次の 32,765 バイトまでの どちらか短いほうまで読み取ります。ファイルが読み取り用に開かれ た場合、FileRead 関数はファイルの先頭に置かれているファイル ポイ ンタから読み取りを開始します。ファイルの長さが 32,765 バイト以上 の場合、この関数は読み取られたデータの直後に自動的にポインタを 置くので、次のデータを続けて読み取ることができます。 この関数は、一度に最大 32,765 バイトを読み取ることができます。し たがって、FileRead 関数を呼び出す前に FileLength64 関数を使用して ファイルの長さを確認します。システムでファイルを共有している場 合、またはセキュリティ上の制限がある場合には、FileOpen 関数を呼 び出す前に FileLength64 関数を呼び出す必要があります。32,765 バイト より長いファイルを読み込むには、FileReadEx 関数を使用します。 EOF のマークは、NULL 文字(ASCII コードの 0 の値)になります。し たがって、読み込まれるファイルが NULL 文字を含む場合、FileRead 関数は NULL 文字をファイルの最後とみなし、最初の NULL 文字の位 置で停止します。 例 次に、FileRead 関数を呼び出して EMP_DATA.TXT ファイルを読み取 る例を示します。EMP_DATA.TXT ファイルは、FileRead 関数を 1 回呼 び出すだけですべてのデータを読み取ることができる長さです。 integer li_FileNum string ls_Emp_Input long ll_FLength ll_FLength = FileLength64("C:\HR\EMP_DATA.TXT") li_FileNum = FileOpen("C:\HR\EMP_DATA.TXT", & LineMode!) IF ll_FLength < 32767 THEN FileRead(li_FileNum, ls_Emp_Input) END IF 次に、ファイル EMP_PIC1.BMP を読み取ってデータを Blob 型変数 Emp_Id_Pic に格納する例を示します。読み取ったバイト数は、li_bytes に格納されます。 integer li_fnum, li_bytes blob Emp_Id_Pic li_fnum = FileOpen("C:\HR\EMP_PIC1.BMP", & StreamMode!) li_bytes = FileRead(li_fnum, Emp_Id_Pic) 484 PowerBuilder 第 10 章 PowerScript の関数 関連項目 FileClose FileLength64 FileOpen FileReadEx FileSeek64 FileWriteEx FileReadEx 機能 指定されたファイル番号に関連付けられたファイルのデータを読み込 みます。ファイル番号は、FileOpen 関数によってファイルに割り当て られます。 構文 FileReadEx ( file#, blob {, length } ) FileReadEx ( file#, string ) 引数 file# blob または string length 戻り値 説明 ファイルが開かれたときにファイルに割り当てられた Integer 型の値を指定します。 String 型または Blob 型の変数の名前を指定します。この変 数にデータを読み込みます。 テキスト モードまたはストリーム モードの場合に、取得 するバイト数を指定します。特に指定しない限り、ファイ ルの長さが設定されます。 Long 型。読み込んだバイト数を返します。データを読み取る前に EOF が 検 出 さ れ た 場 合、-100 を 返 し ま す。フ ァ イ ル が ラ イ ン モ ー ド (LineMode!)で開かれていて、データを読み取る前に CR または LF が 検出された場合、0 を返します。エラーが発生した場合、-1 を返しま す。ストリーム モードで String 型から読み取ろうとした場合、または ライン モードで Blog 型から読み取ろうとした場合、-1 を返します。引 数のいずれかの値が NULL の場合、NULL を返します。 FileReadEx は Long 型 FileRead 関数に代わる FileReadEx 関数は、FileRead 関数と異なり、Long 型の値を返します。 PowerScript リファレンス ボリューム 2 485 FileReadEx 解説 FileReadEx 関数は、ANSI、UTF-8、UTF-16LE、および UTF-16BE エン コーディングのファイルを読み込むことができます。 ファイルがラインモード(LineMode!)で開かれていた場合、CR、LF、 または EOF が検出されるまで、この関数はファイルの次の行を読み取 ります。読み取った行の内容は指定した変数に格納され、CR や LF を スキップし、ファイル ポインタを次の行の先頭に置きます。 オプションの length パラメータは、Blob 型のデータだけに適用されま す。第 2 パラメータのデータ型が String 型の場合に length パラメータ を指定すると、コードはコンパイルされません。 ファイルがストリーム モードまたはテキスト モードで開かれていた 場合には、この関数はファイルの最後まで、または次の length バイト までのどちらか短いほうまで読み取ります。ファイルが読み取り用に 開かれた場合、FileReadEx 関数はファイルの先頭に置かれているファ イル ポインタから読み取りを開始します。ファイルの長さが length バ イト以上の場合、この関数は読み取られたデータの直後に自動的にポ インタを置くので、次のデータを続けて読み取ることができます。 EOF のマークは、NULL 文字(ASCII コードの 0 の値)になります。し たがって、読み込まれるファイルが NULL 文字を含む場合、FileReadEx 関数は NULL 文字をファイルの最後とみなし、最初の NULL 文字の位 置で停止します。 ANSI または UTF-8 ファイルを String 型の変数に読み込む場合、 FileReadEx 関数は、テキストを Unicode に変換してから String 型の変 数に保存します。BOM は文字列に書き込まれません。 ANSI または UTF-8 ファイルを Blob 型の変数に読み込む場合、 FileReadEx 関数はファイルの内容を変換せずに保存します。BOM は、 テキスト モードでは Blob 型データに書き込まれませんが、ストリー ム モードでは書き込まれます。 ファイルが Unicode の場合は、変換は必要ありません。 例 次に、EMP_DATA.TXT ファイルをテキスト モードで String 型変数に 読み込む例を示します。ファイルが Unicode 形式でない場合、BOM 以 外の内容が Unicode に変換されて文字列に書き込まれます。 integer li_FileNum string ls_Emp_Input li_FileNum = FileOpen("C:\HR\EMP_DATA.TXT", & TextMode!) IF li_FileNum > 0 THEN FileReadEx(li_FileNum, ls_Emp_Input) END IF 486 PowerBuilder 第 10 章 PowerScript の関数 次に、ファイル EMP_PIC1.BMP を読み取ってデータを Blob 型変数 Emp_Id_Pic に格納する例を示します。読み取ったバイト数は、li_bytes に格納されます。 integer li_fnum long ll_bytes blob Emp_Id_Pic li_fnum = FileOpen("C:\HR\EMP_PIC1.BMP", & StreamMode!) ll_bytes = FileReadEx(li_fnum, Emp_Id_Pic) 関連項目 FileClose FileLength64 FileOpen FileRead FileSeek64 FileWriteEx FileSeek 機能 サイズが 2GB を超えないファイル内の指定された位置にファイル ポ インタを移動します。ファイル ポインタとは、次の読み取りまたは書 き込み処理を開始する位置のことです。 構文 FileSeek ( file#, position, origin ) 引数 file# position origin 説明 ファイルが開かれたときにファイルに割り当てられた Integer 型の値を指定します。 Long 型の値。origin に対する相対位置をバイト数で指定し ます。 処理を開始する位置を指定する SeekType カタログ データ 型の値。値は以下のとおりです。 • FromBeginning! −(デフォルト)ファイルの先頭 • FromCurrent! − 現行の位置 • FromEnd! − ファイルの末尾 戻り値 Long 型。正常に終了した場合、ファイルの位置を返します。引数のい ずれかの値が NULL の場合、FileSeek は NULL を返します。 PowerScript リファレンス ボリューム 2 487 FileSeek 解説 この関数は、ストリーム モード(StreamMode!)で開いたバイナリ ファ イル内を移動するために使用します。FileSeek 関数はファイル ポイン タの位置を設定するので、FileReadEx 関数や FileWriteEx 関数をファイル 内の目的の位置から開始することができます。 origin が FromBeginning! に設定され、ファイルがストリーム モードで 開いていない場合、バイト オーダー マーク(BOM)は自動的に無視 されます。たとえば、ファイルの 16 進表示が FF FE 54 00 68 00 69 00 73 00 である場合、動作は次のようになります。 long ll_pos // 次のステートメントを実行すると、ファイル ポインタは // 54 ではなく 68 に置かれ、ll_pos は 4 ではなく 2 になります。 ll_pos = FileSeek( filenum, 2, FromBeginning!) // ll_pos は 4 ではなく 2 になります。 ll_pos = FileSeek( filenum, 0, FromCurrent!) // ll_pos は 4 ではなく 2 になります。 ll_pos = FileSeek( filenum, -6, FromEnd!) FileSeek 関数は、サイズが 2GB を超えるファイルを処理できません。 2GB を超える大きいファイルのファイル ポインタを移動するには、 FileSeek64 関数を使用します。 例 次に、ファイルの末尾から先頭方向に 14 バイト分、ファイル ポイン タを移動する例を示します。 integer li_FileNum li_FileNum = FileOpen("emp_data") FileSeek(li_FileNum, -14, FromEnd!) 次に、現在の位置から末尾方向に 14 バイト分、ファイル ポインタを 移動する例を示します。この場合、FileOpen 関数を呼び出した後にファ イル ポインタに影響を与える処理が行われていなければ、FromCurrent! を指定したときの処理は、FromBeginning! を指定したときと同じにな ります。 integer li_FileNum li_FileNum = FileOpen("emp_data") FileSeek(li_FileNum, 14, FromCurrent!) 関連項目 488 FileReadEx FileSeek64 FileWriteEx PowerBuilder 第 10 章 PowerScript の関数 FileSeek64 機能 任意のサイズのファイル内の指定された位置にファイル ポインタを 移動します。ファイル ポインタとは、次の読み取りまたは書き込み処 理を開始する位置のことです。 構文 FileSeek64 ( file#, position, origin ) 引数 file# position origin 説明 ファイルが開かれたときにファイルに割り当てられた Integer 型の値を指定します。 Long 型の値。origin に対する相対位置をバイト数で指定し ます。 処理を開始する位置を指定する SeekType カタログ データ 型の値。値は以下のとおりです。 • FromBeginning! −(デフォルト)ファイルの先頭 • FromCurrent! − 現行の位置 • FromEnd! − ファイルの末尾 戻り値 LongLong 型。正常に終了した場合、ファイルの位置を返します。引数 のいずれかの値が NULL の場合、NULL を返します。 解説 この関数は、ストリーム モード(StreamMode!)で開いたバイナリ ファ イル内を移動するために使用します。FileSeek64 関数はファイル ポイ ンタの位置を設定するので、FileReadEx 関数や FileWriteEx 関数をファイ ル内の目的の位置から開始することができます。 origin が FromBeginning! に設定され、ファイルがストリーム モードで 開いていない場合、バイト オーダー マーク(BOM)は自動的に無視さ れます。たとえば、ファイルの 16 進表示が FF FE 54 00 68 00 69 00 73 00 である場合、動作は次のようになります。 long ll_pos // 次のステートメントを実行すると、ファイル ポインタは // 54 ではなく 68 に置かれ、ll_pos は 4 ではなく 2 になります。 ll_pos = FileSeek64( filenum, 2, FromBeginning!) // ll_pos は 4 ではなく 2 になります。 ll_pos = FileSeek64( filenum, 0, FromCurrent!) // ll_pos は 4 ではなく 2 になります。 ll_pos = FileSeek64( filenum, -6, FromEnd!) PowerScript リファレンス ボリューム 2 489 FileWrite 例 次に、ファイルの末尾から先頭方向に 14 バイト分、ファイル ポイン タを移動する例を示します。 integer li_FileNum li_FileNum = FileOpen("emp_data") FileSeek64(li_FileNum, -14, FromEnd!) 次に、現在の位置から末尾方向に 14 バイト分、ファイル ポインタを 移動する例を示します。この場合、FileOpen 関数を呼び出した後にファ イル ポインタに影響を与える処理が行われていなければ、FromCurrent! を指定したときの処理は、FromBeginning! を指定したときと同じにな ります。 integer li_FileNum li_FileNum = FileOpen("emp_data") FileSeek64(li_FileNum, 14, FromCurrent!) 関連項目 FileReadEx FileSeek FileWriteEx FileWrite 機能 指定されたファイル番号に関連付けられたファイルにデータを書き込 みます。ファイル番号は、FileOpen 関数によってファイルに割り当て られます。FileWrite 関数は下位互換性を保証するために残されていま す。新規開発の場合は FileWriteEx 関数を使用してください。 構文 FileWrite ( file#, variable ) 引数 file# variable 説明 ファイルが開かれたときに割り当てられた Integer 型の値 を指定します。 ファイルに書き込むデータを表す String 型、または Blob 型 の変数名を指定します。 戻り値 Integer 型。正常に終了した場合、書き込んだバイト数を返します。エ ラーが発生した場合、-1 を返します。引数のいずれかの値が NULL の 場合、NULL を返します。 解説 FileWrite 関数は、ANSI、UTF-8、UTF-16LE、および UTF-16BE エンコー ディングのファイルに書き込むことができます。 490 PowerBuilder 第 10 章 PowerScript の関数 FileWrite 関数は、ファイル ポインタで指定された位置にデータを書き 込みます。writemode に Replace! を指定してファイルを開いた場合、 ファイル ポインタはファイルの先頭に置かれます。FileWrite 関数が呼 び出されるたびに、ファイル ポインタは書き込まれた位置の直後に移 動します。writemode に Append! を設定してファイルを開いた場合に は、ファイル ポインタはファイルの末尾に置かれ、書き込み処理が行 われるたびにファイルの最後に移動します。 この関数は、最後に書き込まれた文字の後の位置にファイル ポインタ を設定します。ファイルが ライン モード(LineMode!)で開かれてい た場合には、variable で指定されたデータを書き込んだ後にキャリッジ リターン(CR)、またはライン フィード(LF)を書き込み、その後に ファイル ポインタを設定します。 データが String 型であり、関連付けられているファイルが ANSI また は UTF-8 エンコーディングを使用する場合、文字列を ANSI または UTF-8 エンコーディングに変換してから関連付けられているファイル に書き込みます。 EncodingANSI! パラメータを指定するか、または、エンコーディング パラメータを指定せずにファイルを開く時の FileWrite 関数の動作は、 プラットフォームに依存します。Windows および Solaris プラット フォームでは、FileWrite は多言語文字を UTF-8 に変換せず、ファイル を ANSI エンコーディングで保存します。Linux プラットフォームで は、文字列が多言語文字を含む場合は、FileWrite は多言語文字を UTF8 に変換し、ファイルを UTF-8 エンコーディングで保存します。 ファイルがストリーム モードで開かれている場合、変換は行われませ ん。 ファイルがテキスト モードで開かれていた場合、-1 を返します。テキ スト モードでファイルを書き込むには、FileWriteEx 関数を使用してく ださい。 長さの制限 FileWrite 関数は、文字列の区切り子を含む 32,766 バイトしか一度に書 き込むことができません。variable で指定されたデータの長さが 32,765 バイトを超える場合、この関数は 32,765 バイトだけを書き込み、32765 を返します。32,765 バイトを超える variable を処理するには、FileWriteEx 関数を使用してください。 例 次のスクリプトは、EMP_DATA.TXT を開き、ファイルの末尾に文字列 New Employees を書き込みます。li_FileNum は、ファイル番号を保持し ています。 PowerScript リファレンス ボリューム 2 491 FileWriteEx integer li_FileNum li_FileNum = FileOpen("C:\HR\EMP_DATA.TXT", & LineMode!, Write!, LockWrite!, Append!) FileWrite(li_FileNum, "New Employees") 以下に、データベースから Blob 型データを読み込み、ファイルに書き 込む例を示します。SQL SELECT 文で、ピクチャ データを Blob 型変数 emp_id_pic に割り当てています。FileOpen 関数は Stream モード で書き 込み処理を行うためにファイルを開き、FileWrite 関数は Blob 型データ をファイルに書き込みます。FileLength 関数を使用して、Blob 型データ の長さが一度の FileWrite 関数の呼び出しで処理できるかどうかを調べ ることができます。 integer li_FileNum blob emp_id_pic SELECTBLOB salary_hist INTO : emp_id_pic FROM Employee WHERE Employee.Emp_Num = 100 USING Emp_tran; li_FileNum = FileOpen( & "C:\EMPLOYEE\EMP_PICS.BMP", & StreamMode!, Write!, Shared!, Replace!) FileWrite(li_FileNum, emp_id_pic) 関連項目 FileClose FileLength64 FileOpen FileRead FileReadEx FileSeek64 FileWriteEx FileWriteEx 機能 指定されたファイル番号に関連付けられたファイルにデータを書き込 みます。ファイル番号は、FileOpen 関数によってファイルに割り当て られます。 構文 FileWriteEx ( file#, blob {, length }) FileWriteEx ( file#, string ) 引数 file# 492 説明 ファイルが開かれたときに割り当てられた Integer 型の値 を指定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 blob または string length 戻り値 説明 Blob 型または String 型の値を指定します。この値はファイ ルに書き出したいデータです。 テキスト モードまたはストリーム モードの場合に、書き 出されるバイト数を指定します。特に指定しない限り、 ファイルの長さが設定されます。 Long 型。正常に終了した場合、書き込んだバイト数を返します。エ ラーが発生した場合、-1 を返します。ストリーム モードで String 型の 変数に書き込もうとした場合、またはライン モードで Blog 型の変数 に書き込もうとした場合、-1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 FileWriteEx は Long 型 FileWrite 関数とは違って、この関数に代わる FileWriteEx 関数は Long 型 の値を返します。 解説 FileWriteEx 関数は、ANSI、UTF-8、UTF-16LE、および UTF-16BE エン コーディングのファイルに書き込むことができます。 FileWriteEx 関数は、ファイル ポインタで指定された位置にデータを書 き込みます。writemode に Replace! を指定してファイルを開いた場合、 ファイル ポインタはファイルの先頭に置かれます。FileWriteEx 関数が 呼び出されるたびに、ファイル ポインタは書き込まれた位置の直後に 移動します。writemode に Append! を設定してファイルを開いた場合に は、ファイル ポインタはファイルの末尾に置かれ、書き込み処理が行 われるたびにファイルの最後に移動します。 この関数は、最後に書き込まれた文字の後の位置にファイル ポインタ を設定します。ファイルが ライン モード(LineMode!)で開かれてい た場合には、variable で指定されたデータを書き込んだ後にキャリッジ リターン(CR)、またはライン フィード(LF)を書き込み、その後に ファイル ポインタを設定します。 ファイルがストリーム モードまたはテキスト モードで開かれていた 場合には、この関数は、String のすべての内容か、blob のすべての内 容かまたは length で指定されたバイト数の内容のいずれか短いほうを 書き込みます。オプションの length パラメータは、Blob 型のデータだ けに適用されます。第 2 パラメータのデータ型が String 型の場合に length パラメータを指定すると、コードはコンパイルされません。 PowerScript リファレンス ボリューム 2 493 FileWriteEx データが String 型であり、関連付けられているファイルが ANSI また は UTF-8 エンコーディングを使用する場合、文字列を ANSI または UTF-8 エンコーディングに変換してから関連付けられているファイル に書き込みます。 EncodingANSI! パラメータを指定するか、または、エンコーディング パラメータを指定せずにファイルを開く時の FileWriteEx 関数の動作 は、プラットフォームに依存します。Windows および Solaris プラット フォームでは、FileWriteEx は多言語文字を UTF-8 に変換せず、ファイ ルを ANSI エンコーディングで保存します。Linux プラットフォームで は、文字列が多言語文字を含む場合は、FileWriteEx は多言語文字を UTF8 に変換し、ファイルを UTF-8 エンコーディングで保存します。 ファイルがストリーム モードで開かれている場合、変換は行われませ ん。 ファイルにバイト オーダー マーク(BOM)が含まれていない場合は自 動的に作成されます。 例 次のスクリプトは、EMP_DATA.TXT を開き、ファイルの末尾に文字列 New Employees を書き込みます。li_FileNum は、ファイル番号を保持し ています。 integer li_FileNum li_FileNum = FileOpen("C:\HR\EMP_DATA.TXT", & TextMode!, Write!, LockWrite!, Append!) FileWriteEx(li_FileNum, "New Employees") 以下に、データベースから Blob 型データを読み込み、ファイルに書き 込む例を示します。SQL SELECT 文で、ピクチャ データを Blob 型変数 emp_id_pic に割り当てています。FileOpen 関数は Stream モード で書き 込み処理を行うためにファイルを開き、FileWriteEx 関数は Blob 型デー タをファイルに書き込みます。FileLength 関数を使用して、Blob 型デー タの長さが一度の FileWrite 関数の呼び出しで処理できるかどうかを調 べることができます。 integer li_FileNum blob emp_id_pic SELECTBLOB salary_hist INTO : emp_id_pic FROM Employee WHERE Employee.Emp_Num = 100 USING Emp_tran; li_FileNum = FileOpen("C:\EMPLOYEE\EMP_PICS.BMP", & StreamMode!, Write!, Shared!, Replace!) FileWriteEx(li_FileNum, emp_id_pic) 関連項目 494 FileClose FileLength64 PowerBuilder 第 10 章 PowerScript の関数 FileOpen FileReadEx FileSeek64 Fill 機能 指定された文字列を指定された長さになるまで繰り返し、その結果の 文字列を返します。 構文 Fill ( chars, n ) 引数 chars n 説明 戻り値の文字列が指定された長さになるまで繰り返す文 字列を指定します。 返す文字列の長さを表す Long 型の値を指定します。 戻り値 String 型。chars に指定された文字列を n に指定した文字数分繰り返し、 その結果の文字列を返します。chars に n より多い文字数の文字列を指 定した場合、chars の最初の n 文字から成る文字列を返します。chars に n より少ない文字数の文字列を指定した場合は、n 文字を満たすま で chars の文字列を繰り返し、その結果の文字列を返します。引数の いずれかの値が NULL の場合、NULL を返します。 解説 Fill 関数は、印刷ルーチンで、線を作成したり、特殊な効果を表現した りするのに使用します。たとえば、小切手の金額欄をアスタリスク(*) で埋めたり、表示画面で金額欄の下にハイフン(-)を繰り返し入力し て合計金額を示したりします。 例 次のステートメントは、35 個のアスタリスクから成る文字列を返しま す。 Fill("*", 35) 次のステートメントは、文字列 "-+-+-+-" を返します。 Fill("-+", 7) 次のステートメントは、ティルダ(~)を 10 個返します。 Fill("~", 10) 関連項目 Space 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Fill メソッド PowerScript リファレンス ボリューム 2 495 FillA FillA 機能 指定された文字列を指定された長さ(バイト数)になるまで繰り返し、 その結果の文字列を返します。 構文 FillA ( chars, n) 引数 chars n 戻り値 説明 戻り値の文字列が指定された長さになるまで繰り返す文 字列を指定します。 返す文字列のバイト数を Long 型で指定します。 String 型。chars に指定された文字列を n に指定したバイト分繰り返し、 その結果の文字列を返します。chars に n バイトより多い文字列を指定 した場合、chars の最初の n バイトから成る文字列を返します。chars に n バイトより少ない文字列を指定した場合は、n バイトを満たすま で chars の文字列を繰り返し、その結果の文字列を返します。引数の いずれかの値が NULL の場合、NULL を返します。 解説 FillA 関数は、PowerBuilder 9 の DBCS 環境 における Fill 関数の機能に代 わるものです。 SBCS 環境の場合、Fill、FillW、および FillA 関数は同じ結果を返します。 FillW 機能 指定された文字列を指定された長さになるまで繰り返し、その結果の 文字列を返します。この関数は、将来サポートされなくなります。動 作は、SBCS 環境と DBCS 環境で Fill 関数と同じです。 構文 FillW ( chars, n) 496 PowerBuilder 第 10 章 PowerScript の関数 Find 機能 データウィンドウ コントロールまたはデータストアからデータを検 索します。あるいは、リッチテキスト エディット コントロール、リッ チテキスト エディット データウィンドウ、またはリッチテキスト エ ディット データストアのテキストを検索します。 検索の方向を指定したり、完全に一致する単語だけの検索や大文字と 小文字の区別を指定することもできます。指定されたテキストをコン トロールで検索し、テキストが見つかった場合はそのテキストをハイ ライト表示します。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアルまたはオンライン ヘルプの 「Find メソッド」を参照してください。 対象 リッチテキスト エディット コントロールと、内容の提示様式がリッチ テキストのデータウィンドウ コントロール(またはデータストア オブ ジェクト) 構文 controlname.Find ( searchtext, forward, insensitive, wholeword, cursor ) 引数 controlname searchtext forward 説明 内容を検索するリッチテキスト エディット コントロー ル、データウィンドウ コントロール、またはデータストア の名前を指定します。 String 型の値。検索するテキストを指定します。 Boolean 型の値。検索の方向を指定します。値は以下のと おりです。 • TRUE − カーソルの位置から順方向に検索します。 cursor が FALSE の場合、文書の先頭から順方向に検索 します。 insensitive • FALSE − カーソルの位置から逆方向に検索します。 cursor が FALSE の場合、文書の末尾から逆方向に検索 します。 Boolean 型の値。大文字と小文字を区別して検索するかど うかを指定します。値は以下のとおりです。 • TRUE − 大文字と小文字を区別しません。 wholeword • FALSE − 大文字と小文字を区別します。 Boolean 型の値。完全に一致する単語だけを検索するかど うかを指定します。値は以下のとおりです。 • TRUE − 完全に一致する単語だけを検索します。 • FALSE − 一部が一致する単語を検索します。 PowerScript リファレンス ボリューム 2 497 FindCategory 引数 cursor 説明 Boolean 型の値。検索を開始する位置を指定します。値は 以下のとおりです。 • TRUE − カーソルの位置から検索を開始します。 • FALSE − forward が TRUE の場合、文書の先頭から検索 を開始します。forward が FALSE の場合、文書の末尾 から検索を開始します。 戻り値 Integer 型。検索された文字数を返します。一致するテキストが見つか らなかった場合は 0 を返します。データウィンドウの提示様式がリッ チテキスト エディットでない場合、またはエラーが発生した場合に は、-1 を返します。 例 次に、エンド ユーザがシングルライン エディット コントロール sle_search で指定したテキストを、リッチテキスト エディット コント ロール rte_1 から検索する例を示します。検索は、カーソルの位置から 順方向に行われます。検索では、大文字と小文字は区別されません。 また、完全に一致する単語だけでなく、一部が一致する単語も検索さ れます。 integer li_charsfound li_charsfound = rte_1.Find(sle_search.Text, & TRUE, TRUE, FALSE, TRUE) 関連項目 FindNext FindCategory 機能 項目のラベルがわかっている場合に、グラフにおける項目番号を取得 します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.FindCategory ( { graphcontrol, } categoryvalue ) 引数 controlname 498 説明 グラフ コントロールの名前、またはグラフを含むデータ ウィンドウ コントロールの名前を表す文字列を指定しま す。このコントロールの項目の値を取得します。 PowerBuilder 第 10 章 PowerScript の関数 引数 説明 graphcontrol (オプション)データウィンドウ コントロール内のグラフ (データウィン 名を表す文字列を指定します。このグラフから項目番号を ドウ コント 取得します。 ロールのみ) categoryvalue 番号を求める項目の値を指定します。また、指定する値は、 項目軸のデータ型と同じでなければなりません。 戻り値 Integer 型。controlname で指定したグラフ内の categoryvalue で指定された 項目名の番号を返します。また、controlname がデータウィンドウ コン トロールである場合は、graphcontrol で指定したグラフ内の categoryvalue で指定された項目名の番号を返します。エラーが発生した場合、-1 を 返します。また、引数のいずれかの値が NULL の場合は NULL を返しま す。 解説 ほとんどのグラフの項目を操作する関数は、項目名よりも項目番号を 必要とします。ただし、項目を削除したり挿入する場合は、既存の項 目番号は連続するように、つけ直されます。項目のラベルだけわかっ て い る 場 合 や、項 目 番 号 が 変 わ っ て い る か も し れ な い 場 合 に は、 FindCategory 関数を使用します。 例 以下に、グラフ gr_product_data の項目番号を取得するステートメント を示します。項目名は、シングルライン エディット コントロール sle_category のテキストです。 integer CtgryNbr CtgryNbr =gr_prod_data.FindCategory(sle_ctgry.Text) 以下に、データウィンドウ コントロール dw_equip 上に配置されたグラ フ gr_computers の項目名 Qty の番号を取得するステートメントを示し ます。 integer CtgryNbr CtgryNbr = dw_equip.FindCategory("gr_computers", "Qty") 関連項目 AddCategory DeleteData DeleteSeries FindSeries PowerScript リファレンス ボリューム 2 499 FindClassDefinition FindClassDefinition 機能 1 つまたは複数の PowerBuilder ライブラリ(PBL)の中のオブジェクト を検索し、そのクラス定義に関する情報を返します。 構文 FindClassDefinition ( classname {, librarylist } ) 引数 classname librarylist (オプション) 説明 情報を取得するオブジェクト(クラスまたはクラス定義と もいいます)の名前を指定します。 String 型の値の配列。PBL の絶対パス名を指定します。こ の引数を省略すると、FindClassDefinition 関数は実行中の アプリケーションに関連付けられているライブラリ リス トを検索します。 戻り値 ClassDefinition 型。classname の定義に関する情報のオブジェクト参照 を返します。いずれかの引数が NULL の場合、FindClassDefinition 関数は NULL を返します。 解説 クラス定義情報を含む ClassDefinition オブジェクトの取得方法は 2 通 りあります。 例 • アプリケーションでインスタンス化されているオブジェクトの場 合は、その ClassDefinition プロパティを使用します。 • PBL に格納されているオブジェクトの場合は、FindClassDefinition 関 数を呼び出します。 次に、実行中のアプリケーションのライブラリで w_genapp_frame のク ラス定義を検索する例を示します。 ClassDefinition cd_windef cd_windef = FindClassDefinition("w_genapp_frame") 次に、配列 ls_libraries 内のライブラリで w_genapp_frame のクラス定義 を検索する例を示します。 ClassDefinition cd_windef string ls_libraries[ ] ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl" ls_libraries[2] = "c:\pwrs\framewk\windows.pbl" ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl" cd_windef = FindClassDefinition( "w_genapp_frame", ls_libraries) 関連項目 500 FindFunctionDefinition FindMatchingFunction PowerBuilder 第 10 章 PowerScript の関数 FindTypeDefinition FindFunctionDefinition 機能 1 つまたは複数の PowerBuilder ライブラリ(PBL)の中のグローバル関 数を検索し、スクリプト定義に関する情報を返します。 構文 FindFunctionDefinition ( functionname {, librarylist } ) 引数 functionname librarylist (オプション) 説明 情報を取得するグローバル関数の名前を指定します。 String 型の値の配列。PBL の絶対パス名を指定します。こ の引数を省略すると、FindFunctionDefinition 関数は実行中 のアプリケーションに関連付けられているライブラリ リ ストを検索します。 戻り値 ScriptDefinition 型。functionname のスクリプトに関する情報のオブ ジェクト参照を返します。いずれかの引数が NULL の場合、 FindFunctionDefinition 関数は NULL を返します。 解説 FindClassDefinition 関数を呼び出すと、グローバル関数のクラス定義を 取得することができます。ただし、ScriptDefinition オブジェクトは、関 数用に調整した情報を提供します。 例 次に、実行中のアプリケーションのライブラリで f_myfunction の関数定 義を検索する例を示します。 ScriptDefinition sd_myfunc sd_myfunc = FindFunctionDefinition("f_myfunction") 次に、配列 ls_libraries 内のライブラリで f_myfunction のスクリプト定義 を検索する例を示します。 ScriptDefinition sd_myfunc string ls_libraries[ ] ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl" ls_libraries[2] = "c:\pwrs\framewk\windows.pbl" ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl" sd_myfunc = FindFunctionDefinition( & "f_myfunction", ls_libraries) 関連項目 FindClassDefinition FindMatchingFunction PowerScript リファレンス ボリューム 2 501 FindItem FindTypeDefinition FindItem リスト内の次の項目を検索します。 次の項目を検索する条件 使用する構文 リストボックス、ドロップダウン リストボックス、ピ 構文 1 クチャ リストボックス、ドロップダウン ピクチャ リ ストボックスのいずれかのコントロールの項目を検 索する ラベルに基づいてリストビュー コントロールの項目 構文 2 を検索する リストビュー コントロール内での相対的な位置に基 構文 3 づいて項目を検索する ツリービュー コントロール内での相対的な位置に基 構文 4 づいて項目を検索する 構文 1 リストボックス コントロールとドロップダウン リス トボックス コントロールに対して 機能 リストボックスで、指定された検索テキストで始まる項目を検索します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.FindItem ( text, index ) 引数 listboxname text index 502 説明 項目を検索するリストボックス コントロールの名前を指定 します。 String 型の値。検索する項目の先頭のテキストを指定します。 検索を開始する最初の項目の直前の項目の番号を指定し ます。リスト全体を検索する場合、0 を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。指定された文字列と最初に一致した項目のインデックスを 返します。指定されたテキストから始まる項目が検索されます。指定 されたテキストよりも長いテキストが項目に格納されていても構いま せん。一致する項目が見つからない場合、またはエラーが発生した場 合には、-1 を返します。引数のいずれかの値が NULL の場合は、NULL を返します。 解説 一致する項目が見つかると、項目のインデックスを返しますが、項目 は選択(ハイライト表示)されません。項目の検索と、選択を行うに は、SelectItem 関数を使用します。 例 たとえば、リストボックス lb_actions に、次のリストが格納されている とします。 インデックス番号 1 2 3 4 項目のテキスト Open files Close files Copy files Delete files 次のステートメントは、項目 2(Close files)から検索を開始し、"Delete" という文字列を検索します。FindItem 関数は、Index に 4 を設定します。 integer Index Index = lb_actions.FindItem("Delete", 4) 関連項目 AddItem DeleteItem InsertItem SelectItem 構文 2 リストビュー コントロールに対して 機能 指定された検索テキストと一致するラベルを持つ項目を検索します。 対象 リストビュー コントロール 構文 listviewname.FindItem ( startindex, label, partial, wrap ) 引数 listviewname startindex label partial 説明 項目を検索するリストビュー コントロールを指定します。 検索を開始するインデックス番号を指定します。 検索の対象となる文字列を指定します。 TRUE の場合は、部分的に一致するラベルを持つ項目も検 索します。 PowerScript リファレンス ボリューム 2 503 FindItem 引数 wrap 戻り値 説明 TRUE の場合は、検索が終了した後で、最初のインデック ス項目まで戻ります。 Integer 型。正常に終了した場合、検索した項目のインデックスを返し ます。エラーが発生した場合、-1 を返します。 解説 特に指定しない限り、startindex に指定されたインデックスの次のイン デックスから検索が開始されます。先頭から検索するには、0 を指定 します。 partial を TRUE に設定した場合、検索文字列は指定したテキストから 始まるすべてのラベルと一致します。partial を FALSE に設定した場 合、検索文字列はラベルと完全に一致しなければなりません。 wrap を TRUE に設定した場合、最後まで検索した後で、最初のイン デックス項目まで戻ります。wrap を FALSE に設定した場合、リスト ビュー コントロール内の最後のインデックス項目で検索が終了しま す。 FindItem 関数は、検索した項目を選択しません。検索した項目を選択す るには、FindItem 関数とともに、項目の Selected プロパティを使用する 必要があります。 例 次に、シングルライン エディット コントロールから値を取得し、 FindItem 関数にその値を渡す例を示します。 listviewitem l_lvi integer li_index string ls_label ls_label = sle_find.Text IF ls_label = "" THEN MessageBox(" エラー " , & " リスト項目の名前を入力してください。") sle_find.SetFocus() ELSE li_index = lv_list.FindItem(0,ls_label, TRUE,TRUE) END IF IF li_index = -1 THEN MessageBox(" エラー ", " 項目が見つかりません。") ELSE lv_list.GetItem(li_index, l_lvi) l_lvi.HasFocus = TRUE l_lvi.Selected = TRUE lv_list.SetItem(li_index,l_lvi) 504 PowerBuilder 第 10 章 PowerScript の関数 END IF 関連項目 AddItem DeleteItem InsertItem SelectItem 構文 3 リストビュー コントロールに対して 機能 リストビュー コントロール内の特定の位置に基づいて次の項目を検 索します。 対象 リストビュー コントロール 構文 listviewname.FindItem ( startindex, direction, focused, selected, cuthighlighted, drophighlighted ) 引数 listviewname startindex direction focused selected cuthighlighted drophighlighted 説明 項目を検索するリストビュー コントロールを指定します。 検索を開始するインデックス番号を指定します。 検索の方向を指定します。値は以下のとおりです。 DirectionAll! DirectionUp! DirectionDown! DirectionLeft! DirectionRight! TRUE の場合は、リストビュー コントロールでフォーカス が設定されている項目の次の項目を検索します。 TRUE の場合は、リストビュー コントロールで選択されて いる項目の次の項目を検索します。 TRUE の場合は、リストビュー コントロールで切り取り操 作の対象となっている項目の次の項目を検索します。 TRUE の場合は、 リストビュー コントロールでドラッグ ア ンド ドロップ操作の対象となっている項目の次の項目を 検索します。 戻り値 Integer 型。正常に終了した場合、検索した項目のインデックスを返し ます。エラーが発生した場合、-1 を返します。 解説 特に指定しない限り、startindex に指定されたインデックスの次のイン デックスから検索が開始されます。先頭から検索する場合、0 を指定 します。 PowerScript リファレンス ボリューム 2 505 FindItem FindItem 関数は、検索した項目を選択しません。検索した項目を選択す るには、FindItem 関数とともに、項目の Selected プロパティを使用する 必要があります。 focused、selected、cuthighlighted、お よ び drophighlighted の 各 引 数 が FALSE の場合、リストビュー コントロール内の次の項目が検索されま す。 例 次に、FindItem 関数を使用してリストビュー コントロールで選択され ている項目から検索を開始する例を示します。 listviewitem l_lvi integer li_index li_startindex li_startindex = lv_list.SelectedIndex() li_index = lv_list.FindItem(li_startindex, & DirectionDown!, FALSE, FALSE ,FALSE, FALSE) IF li_index = -1 THEN MessageBox(" エラー ", " 項目が見つかりません。") ELSE lv_list.GetItem(li_index, l_lvi) l_lvi.HasFocus = TRUE l_lvi.Selected = TRUE lv_list.SetItem(li_index,l_lvi) END IF 関連項目 506 AddItem DeleteItem InsertItem SelectItem PowerBuilder 第 10 章 PowerScript の関数 構文 4 ツリービュー コントロールに対して 機能 ツリービュー コントロール内での位置に基づいて項目を検索します。 対象 ツリービュー コントロール 構文 treeviewname.FindItem ( navigationcode, itemhandle ) 引数 treeviewname navigationcode itemhandle 説明 指定された項目を検索するツリービュー コントロールの 名前を指定します。 TreeNavigation カタログ データ型の値。itemhandle によっ て指定される項目と、検索する項目との関係を指定しま す。有効な値の一覧については、「解説」の表を参照して ください。 項目のハンドルを指定する Long 型の値。この項目と検索 する項目との関係を、navigationcode を介して指定します。 戻り値 Long 型。正常に終了した場合は項目のハンドルを返し、エラーが発生 した場合は -1 を返します。 解説 FindItem 関数は、検索した項目を選択しません。検索した項目を選択す るには、FindItem 関数とともに、項目の Selected プロパティを使用する 必要があります。 FindItem は、ChildTreeItem! を検索する場合を除いて、折りたたまれた 項目を検索しません。ChildTreeItem! が設定されている場合、項目は展 開されます。CurrentItem! は、Clicked イベントが発生した後ではじめ て変更されます。現在の項目がクリックされたときにその項目に応じ たハンドルが返されるようにするには、そのハンドルを返すためのカ スタム イベントを作成して、そのイベントを Clicked イベントの中で ポストします。 navigationcode が RootTreeItem!、FirstVisibleTreeItem!、CurrentTreeItem!、 または DropHighlightTreeItem! の場合、itemhandle は 0 に設定してくだ さい。 引数 navigationcode に指定できる値を次の表に示します。 表 10-3: FindItem の引数 navigationcode に指定できる値 navigationcode の値 RootTreeItem! NextTreeItem! PowerScript リファレンス ボリューム 2 FindItem の検索項目 レベル 1 の最初の項目。項目がコントロールに挿 入されなかった場合、-1 を返します。 itemhandle で指定された項目より後にある兄弟項 目。兄弟項目とは、同じ親を持つ同じレベルの項 目です。該当する兄弟項目がない場合、-1 を返し ます。 507 FindItem navigationcode の値 PreviousTreeItem! ParentTreeItem! ChildTreeItem! FirstVisibleTreeItem! NextVisibleTreeItem! PreviousVisibleTreeItem! CurrentTreeItem! DropHighlightTreeItem! 例 FindItem の検索項目 itemhandle で指定された項目より前にある兄弟項 目。該当する兄弟項目がない場合、-1 を返します。 itemhandle で指定された項目の親。項目がレベル 1 にある場合、-1 を返します。 itemhandle で指定された項目の最初の子。項目が折 りたたまれている場合、ChildTreeItem! を指定する とノードが展開されます。項目に子がない場合、 または項目がまだ表示されていない場合は、-1 を 返します。 レベルにかかわらず、コントロール内で最初に表 示される項目。最初に表示される項目は、スクロー ルバーの表示位置によって決まります。 レベルにかかわらず itemhandle で指定された項目 の直後にある展開された項目。NextVisible と PreviousVisible 値を使用すると、すべての子と展 開されたノードのブランチをウォーク スルーでき ます。項目がコントロール内の展開された最後の 項目である場合、-1 を返します。 コントロールの見えない領域にある項目にスク ロールするには、FindItem 関数の次に SelectItem 関 数を使用します。 レベルにかかわらず itemhandle で指定される項目 の直前にある展開された項目。項目がコントロー ル内の最初のルート項目である場合、-1 を返しま す。 指定された項目。コントロールに一度もフォーカ スが与えられていない場合、および何も選択され ていない場合は、-1 を返します。 最後に設定された DropHighlighted プロパティを持 つ項目。このプロパティがまったく設定されてい ない場合、またはコントロールでのほかの動作に より FALSE に戻された場合は、-1 を返します。 現在の項目がクリックされたときに適切なハンドルが返されるように するには、項目の Clicked イベントの中でポストされるカスタム イベ ントの中に、次のコードを配置します。 long ll_tvi ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) 次に、ツリービュー コントロールの最上位レベルの最初の項目を検索 する例を示します。 long ll_tvi 508 PowerBuilder 第 10 章 PowerScript の関数 ll_tvi = tv_list.FindItem(RootTreeItem!, 0) 関連項目 DeleteItem GetItem InsertItem SelectItem FindMatchingFunction 機能 指定したシグネチャと一致するクラス内の関数を検索します。シグネ チャは、スクリプト名と引数リストの組み合わせです。 対象 ClassDefinition オブジェクト 構文 classdefobject.FindMatchingFunction ( scriptname, argumentlist ) 引数 classdefobject scriptname argumentlist 説明 関数を検索するクラスを表す ClassDefinition オブジェクト の名前を指定します。 String 型の値。関数の名前を指定します。 String 型の値の可変長配列。関数の引数のデータ型を指定 します。変数が参照渡しの場合、文字列のデータ型の前に "ref" が含まれていなければなりません。変数が配列の場 合、データ型の後に配列の大カッコ( [] )を含めなければ なりません。 書式は次のとおりです。 { ref } datatype { [] } 固定長配列の場合、引数には範囲を指定しなければなりま せん。 ref integer[1 TO 10] 戻り値 ScriptDefinition 型。一致した関数に関する情報とともにオブジェクト インスタンスを返します。一致する関数が見つからない場合、 FindMatchingFunction 関数は NULL を返します。いずれかの引数が NULL の場合も NULL を返します。 解説 関数の検索では、PowerBuilder は折りたたまれた継承階層構造を調べ ます。見つかった関数は、現行のオブジェクトまたはその先祖のいず れかで定義されている可能性があります。 PowerScript リファレンス ボリューム 2 509 FindMatchingFunction 参照渡しによって渡される引数 参照渡しによって渡された引数で関 数を検索するには、REF キーワードを指定する必要があります。関数 の引数に VariableDefinition オブジェクトがある場合は、CallingConvention 引数をチェックして、引数が参照渡しで渡されたかどうかを判断しま す。 PowerBuilder 関数のマニュアルでは、参照渡しの引数は、単なる値で はなく変数として記述されています。PowerBuilder オブジェクト ブラ ウザは、どの引数が参照渡しであるかをレポートしません。 例 次に、PowerBuilder のウィンドウ オブジェクト関数 OpenUserObjectWithParm と一致する ScriptDefinition オブジェクトを取得 し、4 つの引数を持つバージョンを検索する例を示します。一致するも のが見つかった場合、関数 uf_scriptinfo を呼び出します。この関数は、 スクリプトに関するレポートを作成します。 string ls_args[] ScriptDefinition sd ls_args[1] ls_args[2] ls_args[3] ls_args[4] = = = = "ref dragobject" "double" "integer" "integer" sd = c_obj.FindMatchingFunction( & "OpenUserObjectWithParm", ls_args) IF NOT IsValid(sd) THEN mle_1.Text = "No matching script" ELSE mle_1.Text = uf_scriptinfo(sd) END IF uf_scriptinfo 関数は、シグネチャと一致した関数に関する情報を取得し、 文字列を構築します。Scriptobj は、関数に渡される ScriptDefinition オ ブジェクトです。 string s, lineend integer li lineend = "~r~n" // スクリプト名。 s = s + scriptobj.Name + lineend // 戻り値のデータ型。 s = s + scriptobj.ReturnType.DataTypeOf + lineend // 引数名のリスト。 510 PowerBuilder 第 10 章 PowerScript の関数 s = s + "Arguments:" + lineend FOR li = 1 to UpperBound(scriptobj.ArgumentList) s = s + scriptobj.ArgumentList[li].Name + lineend NEXT // ローカル変数のリスト。 s = s + "Local variables:" + lineend FOR li = 1 to UpperBound(scriptobj.LocalVariableList) s = s + scriptobj.LocalVariableList[li].Name & + lineend NEXT RETURN s 関連項目 FindClassDefinition FindFunctionDefinition FindTypeDefinition FindNext 機能 以前の Find 関数の呼び出しで設定された条件を使用して、コントロー ル内で次に条件が一致するテキストを検索し、そのテキストをハイラ イト表示します。 対象 リッチテキスト エディット コントロールと、内容の提示様式がリッチ テキストのデータウィンドウ コントロール 構文 controlname.FindNext ( ) 引数 controlname 説明 内容を検索するリッチテキスト エディット コントロールま たはデータウィンドウ コントロールの名前を指定します。 戻り値 Integer 型。検索された文字数を返します。一致するテキストを検索で きなかった場合は 0 を返します。データウィンドウの提示様式がリッ チテキストでなかった場合、またはエラーが発生した場合には -1 を返 します。 例 次に、エンド ユーザがシングルライン エディット コントロール sle_search で指定したテキストを、リッチテキスト エディット コント ロール rte_1 で検索する例を示します。検索は、カーソルの位置から下 方向に実行されます。この例では、大文字と小文字を区別せずに検索 します。また、完全に一致する単語だけを検索するのではなく、一部 が一致する文字列も検索します。 PowerScript リファレンス ボリューム 2 511 FindSeries integer li_charsfound li_charsfound = rte_1.Find(sle_search.Text, & TRUE, TRUE, FALSE, TRUE) "Find Next" というラベルが付いた 2 番目のボタンには、次のようなスク リプトが記述されています。 rte_1.FindNext() 関連項目 Find FindSeries 機能 データ系列の名前がわかる場合に、グラフ内のデータ系列の番号を取 得することができます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.FindSeries ( { graphcontrol, } seriesname ) 引数 controlname 説明 グラフ コントロールの名前、またはグラフを含むデータ ウィンドウ コントロールの名前を指定します。そのグラフ のデータ系列番号を求めます。 graphcontrol (オプション)系列を含むデータウィンドウ コントロール (データウィン 内のグラフの名前の文字列を指定します。 ドウ コント ロールのみ) seriesname 番号を求めるデータ系列の名前を表す文字列を指定します。 戻り値 Integer 型。グラフ controlname で指定したグラフ内の seriesname で指定 されたデータ系列の番号を返します。また、controlname がデータウィ ンドウ コントロールである場合は、graphcontrol で指定したグラフ内 の seriesname で指定されたデータ系列の番号を返します。エラーが発 生した場合、-1 を返します。また、引数のいずれかの値が NULL の場 合は NULL を返します。 解説 ほとんどのデータ系列を操作する関数は、データ系列の名前よりも データ系列の番号を必要とします。ただし、データ系列の削除や挿入 を行う場合、既存のデータ系列の番号は連続するように付け直されま す。データ系列の名前だけがわかっている場合やデータ系列の番号が 変わっている可能性がある場合、FindSeries 関数を使用します。 512 PowerBuilder 第 10 章 PowerScript の関数 例 次の例では、シングルライン エディット コントロール sle_series にグ ラフ gr_product_data 上のデータ系列名が入力されるものとします。そ のデータ系列名の番号を取得して、SeriesNbr に格納します。 integer SeriesNbr SeriesNbr = & gr_product_data.FindSeries(sle_series.Text) 以下に、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers のデータ系列 PCs の番号を取得して SeriesNbr に格納する ステートメントを示します。 integer SeriesNbr SeriesNbr = & dw_equipment.FindSeries("gr_computers", "PCs") 関連項目 AddSeries DeleteSeries FindCategory FindTypeDefinition 機能 1 つまたは複数の PowerBuilder ライブラリ(PBL)で型を検索し、その 型定義に関する情報を返します。システム タイプの型定義も取得する ことができます。 構文 FindTypeDefinition ( typename {, librarylist } ) 引数 typename 説明 情報を取得する単純データ型、カタログ データ型、または クラスの名前を指定します。ネストしている型の型定義を 検索するには、次の形式を使用します。 libraryEntryName`typename librarylist (オプション) String 型の値の配列。PBL の絶対パス名を指定します。こ の引数を省略すると、FindTypeDefinition 関数は実行中のア プリケーションに関連付けられているライブラリ リスト を検索します。 PowerBuilder は、カタログ データ型やシステム クラスなど の組み込みの定義用のライブラリも検索します。 戻り値 TypeDefinition 型。typename の定義に関する情報のオブジェクト参照を 返します。いずれかの引数が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 513 FindTypeDefinition 解説 返される TypeDefinition オブジェクトは、実際には ClassDefinition オブ ジェクト、SimpleTypeDefinition オブジェクト、または EnumerationDefinition オブジェクトです。Category プロパティをテストすると、このうちの どれであるかがわかります。 クラスの情報を取得する場合は、かわりに FindClassDefinition 関数を呼 び出します。引数は同じで、返されるオブジェクトが ClassDefinition オ ブジェクトであることをチェックする操作手順を省略できます。 グローバル関数の情報を取得する場合は、FindFunctionDefinition 関数を 呼び出します。 例 次に、grGraphType カタログ データ型の TypeDefinition オブジェクトを 取得し、型定義の項目をチェックする例を示します。この項目はカタ ログ データ型なので、EnumerationDefinition オブジェクト型を割り当 て、名前を文字列に保存します。 TypeDefinition td_graphtype EnumerationDefinition ed_graphtype string enumname td_graphtype = FindTypeDefinition("grgraphtype") IF td_graphtype.Category = EnumeratedType! THEN ed_graphtype = td_graphtype enumname = ed_graphtype.Enumeration[1].Name END IF 次に、定義名を引数とする関数の例を示します。引数は typename です。 指定された TypeDefinition オブジェクトを検索し、その項目をチェック して、それを適切な定義オブジェクトに割り当てます。 TypeDefinition td_def SimpleTypeDefinition std_def EnumerationDefinition ed_def ClassDefinition cd_def td_def = FindTypeDefinition(typename) CHOOSE CASE td_def.Category CASE SimpleType! std_def = td_def CASE EnumeratedType! ed_def = td_def CASE ClassOrStructureType! cd_def = td_def END CHOOSE 次に、配列 ls_libraries 内のライブラリで w_genapp_frame のクラス定義 を検索する例を示します。 514 PowerBuilder 第 10 章 PowerScript の関数 TypeDefinition td_windef string ls_libraries[ ] ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl" ls_libraries[2] = "c:\pwrs\framewk\windows.pbl" ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl" td_windef = FindTypeDefinition( "w_genapp_frame", ls_libraries) 関連項目 FindClassDefinition FindFunctionDefinition FindMatchingFunction FromAnsi 機能 ANSI 文字列を含む Blob 型を Unicode 文字列に変換します。 構文 FromAnsi ( blob ) 引数 blob 説明 Unicode 文字列に変換する ANSI 文字列を含む Blob 型を指 定します。 戻り値 String 型。成功すると文字列を返し、失敗すると空の文字列を返します。 解説 FromAnsi 関数は、 Blob 型データに含まれている ANSI 文字列を Unicode 文字列に変換します。 FromAnsi 関 数 は String(blob, EncodingANSI!) と 同 じ 結 果 を 返 す の で、 PowerBuilder の将来のリリースではサポートされなくなる予定です。 Unicode ファイル形式 Unicode ファイルの先頭には、Unicode ファイルであることを示す 2 バ イトが追加されています。 関連項目 FromUnicode String ToAnsi ToUnicode PowerScript リファレンス ボリューム 2 515 FromUnicode FromUnicode 機能 Unicode 文字列を含む Blob 型を、 現在使用している PowerBuilder (ANSI または Unicode バージョン)のファイル形式の文字列に変換します。 構文 FromUnicode ( blob ) 引数 blob 説明 現在使用している PowerBuilder のファイル形式に変換す る Unicode 文字列を含む Blob 型を指定します。 戻り値 String 型。成功すると文字列を返し、失敗すると空の文字列を返します。 解説 FromUnicode 関数は、Unicode Blob 型を Unicode 文字列に変換します。 返される結果は、String(blob) と同じです。この関数は、PowerBuilder の 将来のリリースではサポートされなくなる予定です。 Unicode ファイル形式 Unicode ファイルの先頭には、Unicode ファイルであることを示す 2 バ イトが追加されています。Unicode ファイルをストリーム モードで開 く場合は、最初の 2 バイトをとばして読み込んでください。 関連項目 FromAnsi ToAnsi ToUnicode GarbageCollect 機能 ガベージ コレクションをただちに強制実行します。 構文 GarbageCollect ( ) 戻り値 なし 解説 ガベージ コレクションをただちに強制実行します。PowerBuilder は、 循環参照を持つオブジェクトを含む使用されていないオブジェクトを 識別するパスを作成し、使用されていないオブジェクトとクラスを削 除します。 例 次に、ガベージ コレクションを開始するステートメントを示します。 GarbageCollect() 関連項目 516 GarbageCollectGetTimeLimit PowerBuilder 第 10 章 PowerScript の関数 GarbageCollectSetTimeLimit GarbageCollectGetTimeLimit 機能 ガベージ コレクションの現行の最小間隔を取得します。 構文 GarbageCollectGetTimeLimit ( ) 戻り値 Long 型。現行の最小ガベージ コレクション間隔を返します。 解説 ガベージ コレクション パスの現行の最小間隔を読み込みます。 例 次に、ガベージ コレクション パスの間隔を変数 CollectTime に返すス テートメントを示します。 long CollectTime CollectTime = GarbageCollectGetTimeLimit() 関連項目 GarbageCollect GarbageCollectSetTimeLimit GarbageCollectSetTimeLimit 機能 ガベージ コレクション パスの最小間隔を設定します。 構文 GarbageCollectSetTimeLimit ( newtimeinmilliseconds ) 引数 newtimeinmilliseconds 説明 Long 型の値(ミリ秒単位)。ガベージ コレクション サイクルの最小間隔を指定します。 NULL の場合、既存の間隔は変更されません。 戻り値 Long 型。この関数が呼び出される前に存在していた間隔を返します。 newTime が NULL の場合は NULL が返され、現行の間隔は変更されませ ん。 解説 ガベージ コレクション パスの最小間隔を指定します。ガベージ コレ クション パスは、この間隔が満了するまで発生しません。 PowerScript リファレンス ボリューム 2 517 GarbageCollectSetTimeLimit 下限に非常に大きな数値を設定することで、ガベージ コレクションを 事実上使用不可にすることができます。ガベージ コレクションが使用 不可の場合、使用されていないクラスはクラス キャッシュからフラッ シュされません。 例 次に、ガベージ コレクションの間隔を 1 秒に設定し、変数 OldTime を 前回の間隔の長さに設定する例を示します。 long OldTime, NewTime NewTime = 1000 /* 1 秒 */ OldTime = GarbageCollectSetTimeLimit(NewTime) 関連項目 518 GarbageCollect GarbageCollectGetTimeLimit PowerBuilder 第 10 章 PowerScript の関数 GetActiveSheet 機能 MDI フレーム ウィンドウ上で、現在アクティブなシートを返します。 対象 MDI フレーム ウィンドウ 構文 mdiframewindow.GetActiveSheet ( ) 引数 mdiframewindow 説明 アクティブなシートを取得する MDI フレーム ウィン ドウを指定します。 戻り値 Window 型。mdiframewindow 上で現在アクティブなシートを返します。 アクティブなシートがない場合、この関数は無効な値を返します。 mdiframewindow が NULL の場合は、NULL を返します。 解説 GetActiveSheet 関数が有効な Window 型の値を返したかどうかを確認す るには、IsValid 関数を使用します。 例 以下に、MDI フレーム ウィンドウ w_frame 上のアクティブなシートを 調べ、メニューバー m_main 上のメニュー m_file についてメニュー項目 m_close のテキストを変更するステートメントを示します。アクティブ なシートが存在しなかった場合、メニュー項目のテキストは「ウィン ドウを閉じる」になります。 // アクティブなシートの変数を宣言します。 window activesheet string mtext activesheet = w_frame.GetActiveSheet() IF IsValid(activesheet) THEN // アクティブなシートが存在する場合、そのタイトルを取得します。 // 読み込むメニュー項目のテキストを変更して // アクティブシートのタイトルに " 閉じる " を追加します。 mtext = " 閉じる " + activesheet.Title m_main.m_file.m_close.Text = mtext ELSE // アクティブなシートがない場合、 「ウィンドウを閉じる」にします。 m_main.m_file.m_close.Text = " ウィンドウを閉じる " END IF 関連項目 IsValid PowerScript リファレンス ボリューム 2 519 GetAlignment GetAlignment 機能 リッチテキスト エディット コントロールで、挿入ポイントがある段落 の配置を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.GetAlignment ( ) 引数 rtename 説明 リッチテキスト エディット コントロールの名前を指定し ます。指定されたコントロールで、挿入ポイントがある段 落の配置を調べます。 戻り値 Alignment 型。挿入ポイントがある段落の配置を示す Alignment カタロ グ データ型の値を返します。 解説 複数の段落が選択されている場合、挿入ポイントは、最初の段落か最 後の段落にあります。挿入ポイントの位置は、エンドユーザの段落の 選択方法によって異なります。報告される値は、挿入ポイントの位置 によって異なります。 例 次に、挿入ポイントがある段落の配置の設定を保存する例を示します。 alignment l_align l_align = rte_1.GetAlignment() 関連項目 520 GetSpacing GetTextStyle SetAlignment SetSpacing SetTextStyle PowerBuilder 第 10 章 PowerScript の関数 GetApplication 機能 現行のアプリケーション オブジェクトのハンドルを取得し、アプリ ケーションの属性の内容の取得と設定を行うことができます。 構文 GetApplication ( ) 戻り値 Application 型。現行のアプリケーション オブジェクトのハンドルを返 します。 解説 GetApplication 関数を使用すると、アプリケーションに対して汎用的な コーディングを行うことができます。また、ほかのアプリケーション でも再利用することができます。アプリケーションのプロパティを設 定する場合に、実際のアプリケーションの名前を記述する必要があり ません。 例 次に、ツールバーのボタンに対するテキストを表示するかどうかを変 更するために、アプリケーション オブジェクトのハンドルを取得して ToolbarTips プロパティを設定する例を示します。 application app app = GetApplication() app.ToolbarTips = FALSE 上の例は、次のように記述することもできます。 GetApplication().ToolbarTips = FALSE PowerScript リファレンス ボリューム 2 521 GetArgElement GetArgElement 機能 指定した引数の値を返します。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.GetArgElement ( index ) 引数 activexcontrol 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、ActiveX コントロー ルは OBJECT エレメントの NAME 属性になります。ほか の環境で使用する場合は、PowerBuilder ウィンドウ ActiveX を含むコントロールを参照します。 index 戻り値を整数で指定します。 戻り値 任意の値。指定した引数を返します。 解説 InvokePBFunction 関数または TriggerPBEvent 関数の後にこの関数を呼び 出すと、参照渡しされた引数の更新された値を取得できます。 JavaScript スクリプトで参照渡しされる引数にアクセスするには、この関 数を使用しなければなりません。VBScript スクリプトでは、SetArgElement 関数を呼び出して引数リストを作成した場合に、この関数を使用でき ます。 例 次の JavaScript の例は、GetArgElement 関数を呼び出します。 ... theArg = f.textToPB.value; PBRX1.SetArgElement(1, theArg); theFunc = "of_argref"; retcd = PBRX1.InvokePBFunction(theFunc, numargs); rc = parseInt(PBRX1.GetLastReturn()); IF (rc != 1) { alert(" エラー。空の文字列です。"); } backByRef = PBRX1.GetArgElement(1); ... 関連項目 522 GetLastReturn InvokePBFunction SetArgElement TriggerPBEvent PowerBuilder 第 10 章 PowerScript の関数 GetAutomationNativePointer 機能 OLEObject 変数に関連付けられている OLE オブジェクトへのポインタ を取得します。このポインタによって、オブジェクトの外部 DLL の OLE 関数を呼び出すことができます。 対象 OLEObject 構文 oleobject.GetAutomationNativePointer ( pointer ) 引数 oleobject pointer 説明 ネイティブ ポインタのオブジェクトを含む OLE オブジェ クト変数の名前を指定します。 ポインタを格納する UnsignedLong 型変数を指定します。 GetAutomationNativePointer 関数が有効なポインタを取得 できなかった場合、pointer に 0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 pointer は OLE の IUnknown インタフェースへのポインタです。ほかの インタフェースへのポインタを取得するには、OLE QueryInterface 関数 とともに使用します。GetAutomationNativePointer 関数が呼び出されると、 PowerBuilder は OLE の AddRef 関数を呼び出してポインタをロックしま す。DLL 関数、または PowerBuilder スクリプトで ReleaseAutomationNativePointer 関数を使用してポインタを解放する必要 があります。 この関数は、外部 DLL 呼び出しに対してのみ有効です。 SetAutomationPointer 関数とは関係ありません。 例 次に、OLEObject オブジェクトを作成し、オートメーション サーバに 接続する例を示します。外部関数を呼び出すポインタを取得し、処理 後はポインタを解放します。 OLEObject oleobj_report UnsignedLong lul_oleptr integer li_rtn oleobj_report = CREATE OLEObject oleobj_report.ConnectToObject("report.doc") li_rtn = & oleobj_report.GetAutomationNativePointer(lul_oleptr) IF li_rtn = 0 THEN ... // オートメーションの外部関数を呼び出します。 oleobj_report.& ReleaseAutomationNativePointer(lul_oleptr) PowerScript リファレンス ボリューム 2 523 GetCertificateLabel END IF 関連項目 GetNativePointer ReleaseAutomationNativePointer ReleaseNativePointer GetCertificateLabel 機能 EAServer によって呼び出され、ユーザが認証用の SSL 証明書ラベルの いずれかを選択できるようにします。この関数は、EAServer に接続し ている PowerBuilder クライアントによって使用されます。 対象 SSLCallBack オブジェクト 構文 sslcallback.GetCertificateLabel ( thesessioninfo, labels ) 引数 sslcallback thesessioninfo labels 説明 カスタマイズされた SSLCallBack オブジェクトのインス タンスを指定します。 SSL セッションに関する情報を含む CORBA オブジェク トを指定します。オプションで、この情報を表示し、セッ ションについての詳細をユーザに提供することもできます。 String 型の値の配列。利用可能な証明書ラベルを指定しま す。ユーザは、この中からいずれか 1 つのラベルを選択し ます。 戻り値 String 型。関数に渡されたラベルのうちの 1 つを返します。 解説 PowerBuilder のアプリケーションでは通常、GetCertificateLabel 関数は直 接には呼び出されません。SSL 接続用の証明書ラベルを EAServer クラ イアントが指定しなかった場合、GetCertificateLabel 関数は EAServer に よって呼び出されます。 SSLCallBack オブジェクトの任意の関数の動作を上書きするためには、 SSLCallBack から継承された標準クラス ユーザ オブジェクトを作成 し、必要であればこのオブジェクトをカスタマイズします。コールバッ クが要求されたときに使用するオブジェクトを EAServer に認識させ るには、SSL の callbackImpl プロパティにオブジェクト名を指定しま す。このプロパティの値は、SetGlobalProperty 関数によって設定でき ます。 524 PowerBuilder 第 10 章 PowerScript の関数 GetCertificateLabel の実装を指定しないと、EAServer が CORBA::NO_IMPLEMENT 例外を捕捉するため、このコールバックには デフォルトの実装が使用されることになります。デフォルトの実装を 使用した場合は常に、ラベルのリストのうち先頭の証明書が返されます。 ラベルが指定されていない場合は、CtsSecurity::NoCertificateException が 生成されます。関数によって生成されるかもしれない例外はすべて、 そのプロトタイプに追加しておく必要があります。 コールバックの実装が空の文字列を返した場合は、先に述べたデフォ ルトの実装が使用されるため、リストのうちの先頭にある証明書が返 されます。相互認証を要求したサーバが、その証明書を受け入れれば 接続が続行されますが、受け入れなければ接続は拒否されます。 有効な戻り値を取得するには、関数に渡された labels 配列から使用可 能な証明書ラベルをユーザに提示して、それらのうちの 1 つを選択す るように促します。渡された thesessioninfo オブジェクトから取得した 追加情報をユーザに提示することも可能です。 このコールバック関数内で例外を送出することによって、このような 接続の試行をユーザがキャンセルすることが可能になります。 SSLCallback 関数で送出された例外はそのすべてが、 CTSSecurity::UserAbortedException をユーザに返します。その例外を捕捉 するには、ConnectToServer 関数を try-catch ブロックの中に含める必要 があります。 例 次に、使用可能な証明書ラベルがあるかどうかを調べる例を示します。 より多くのコンテキストをユーザに与えるために、SSL セッション情 報オブジェクトから取得されたホストとポートの情報をメッセージ ボックスの中に表示して、証明書ラベルがいっさい使用できないこと を通知します。使用可能な証明書がある場合は、使用可能な証明書ラ ベルを表示するレスポンス ウィンドウを開きます。 レスポンス ウィンドウは CloseWithReturn を使用して、選択されている 項目のテキストを返します。 int idx, numLabels long rc String ls_rc, sText, sLocation w_response w_ssl_response CTSSecurity_sslSessionInfo mySessionInfo rc = thesessioninfo._narrow(mySessionInfo, & "SessionInfo" ) sLocation = mySessionInfo.getProperty( "host" ) + & ":" + mySessionInfo.getProperty( "port" ) numLabels = upperbound(labels) IF numLabels <= 0 THEN PowerScript リファレンス ボリューム 2 525 GetCertificateLabel MessageBox (" 個人の証明書が必要です ", & " 次の場所に接続するには、証明書が必要です : " & + sLocation + "~n 使用できる証明書がありません ") ls_rc = "" ELSE sText = "Available certificates: " FOR idx=1 to numLabels sText += "~nCertificate[" + & string(idx) + "]: " + labels[idx] NEXT OpenWithParm( w_ssl_response, SText ) ls_rc = Message.StringParm IF ls_rc = "cancel" then userabortedexception uae uae = create userabortedexception uae.setmessage("User cancelled connection" & + " when asked for certificate") throw uae END IF END IF RETURN ls_rc 関連項目 526 ConnectToServer GetCredentialAttribute GetPin TrustVerify PowerBuilder 第 10 章 PowerScript の関数 GetChildrenList 機能 トレースツリーモデルに含まれるルーチンの子リストを取得します。 対象 TraceTreeObject オブジェクト、TraceTreeRoutine オブジェクト、 TraceTreeGarbageCollect オブジェクト 構文 instancename.GetChildrenList ( list ) 引数 instancename list 戻り値 解説 説明 TraceTreeObject オブジェクト、TraceTreeRoutine オブジェ クト、または TraceTreeGarbageCollect オブジェクトのイン スタンス名を指定します。 データ型が TraceTreeNode の可変長の配列変数を指定します。 GetChildrenList 関数は各ルーチンの子ごとに TraceTreeNode オブジェクトを格納します。この引数は、参照渡しされます。 ErrorReturn 型。次の値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しません。 GetChildrenList 関数では、トレースツリーモデルに含まれるルーチンの 子のリストを取得できます。この子とは、ルーチンが呼び出すクラス やルーチンを指します。リストされた子は、それぞれが TraceTreeNode オブジェクトとして定義され、各子の動作のタイプがわかります。 あらかじめ、BuildModel 関数でトレース ファイルからトレースツリー モデルを作成しておかなければなりません。 TraceTreeGarbageCollect オブジェクトに対して GetChildrenList 関数を呼 び出すと、リストされた子は、通常、ガベージコレクション オブジェ クトのデストラクタを表します。 例 次の例では、トレースツリーモデルに含まれるノードの動作タイプを 確認します。動作タイプがルーチンである場合、このルーチンを含む クラスの名前を確認し、このルーチンが呼び出すクラスやルーチンの リストを取得します。 TraceTree ltct_node TraceTreeNode ltctn_list ... CHOOSE CASE node.ActivityType CASE ActRoutine! TraceTreeRoutine ltctrt_rout ltctrt_rout = ltct_node result += "Enter " + ltctrt_rout.ClassName & PowerScript リファレンス ボリューム 2 527 GetColumn + "." + ltctrt_rout.name + " " & + String(ltctrt_rout.ObjectID) + " " & + String(ltctrt_rout.EnterTimerValue) & + "~r~n" ltctrt_rout.GetChildrenList(ltctn_list) ... 関連項目 BuildModel GetColumn 機能 データウィンドウ コントロール、子データウィンドウ、またはリスト ビュー コントロールのカラムに関する情報を返します。 データウィンドウ コントロールまたは子データウィンドウの場合の 構文については、 『データウィンドウ リファレンス』マニュアルまた はオンライン ヘルプの「GetColumn メソッド」を参照してください。 対象 リストビュー コントロール 構文 listviewname.GetColumn ( index, label, alignment, width ) 引数 listviewname index label alignment 説明 リストビュー コントロールの名前を指定します。指定され たカラムのプロパティを返します。 カラムのインデックスを整数で指定します。指定されたカ ラムのプロパティを返します。 カラムのラベルを文字列で指定します。指定されたカラム のプロパティを返します。この引数は、参照渡しされます。 カラムの配置を Alignment カタログ データ型の値で指定 します。指定されたカラムのプロパティを返します。値は 以下のとおりです。 • Center! • Justify! • Left! • Right! width 戻り値 528 この引数は、参照渡しされます。 カラムの幅を整数で指定します。指定されたカラムのプロ パティを返します。この引数は、参照渡しされます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 指定されたカラムのプロパティを取得するには、label、alignment、width の各引数を使用します。 例 次に、インスタンス変数 li_col を使用してカラム番号を GetColumn 関 数に渡し、カラムのプロパティを返す例を示します。このスクリプト では、SetColumn 関数を使用してカラムの配置を変更しています。 string ls_label,ls_align int li_width alignment la_align IF lv_list.View <> ListViewReport! THEN lv_list.View = ListViewReport! END IF IF li_col = 0 THEN MessageBox(" エラー !"," カラムバーをクリックしてください。 ", & StopSign!) ELSE lv_list.GetColumn(li_col, ls_label, la_align, & li_width) lv_list.SetColumn(li_col, ls_label, Right!, & li_width) END IF 関連項目 SetColumn PowerScript リファレンス ボリューム 2 529 GetCommandDDE GetCommandDDE 機能 DDE サーバ アプリケーションから、クライアント アプリケーション が送信したコマンドを取得します。 構文 GetCommandDDE ( string ) 引数 string 説明 String 型の変数を指定します。指定された変数には、 GetCommandDDE 関数で取得するコマンドが格納されま す。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合(た とえば、関数が不正なコンテキストで呼び出された場合)は -1 を返し ます。string が NULL の場合は、NULL を返します。 解説 ある DDE クライアント アプリケーションがサーバのアプリケーション にコマンドを送った場合、アクティブ ウィンドウ内の RemoteExec イベ ントを起動します。そのイベントのスクリプト内で、GetCommandDDE 関数を呼び出して、どのコマンドが送られたのかを確認します。送信 されたコマンドに対してアプリケーションでどのように応答するかは サーバの責任です。 DDE サーバ モードを使用可能にするために、アプリケーションの DDE 名やトピック、サポートしている項目を決定して StartServerDDE 関数を呼び出します。 例 次の例は、RemoteExec イベントに対するスクリプトの一部です。DDE クライアントから要求されたアクションが Open Next Sheet であるかど うかを確認します。Open Next Sheet の場合、DDE サーバが DataSheet のインスタンスを開きます。要求されたアクションが Shut Down の場 合、DDE サーバ自体を終了します。それ以外のアクションが要求され た場合には、DDE アプリケーションに対して、無効なアクションが要 求されたことを DDE クライアントに通知します。 変数 ii_sheetnum および i_DataSheet [] は、 DDE イベントに応答するウィ ンドウのインスタンス変数です。 integer ii_sheetnum DataSheet i_DataSheet[ ] クライアント アプリケーションから送られたコマンドをローカル変 数 ls_Action に格納します。 string ls_Action GetCommandDDE(ls_Action) IF ls_Action = "Open Next Sheet" THEN 530 PowerBuilder 第 10 章 PowerScript の関数 ii_sheetnum = ii_sheetnum + 1 OpenSheet(i_DataSheet[ii_sheetnum], w_frame_emp) ELSEIF ls_Action = "Shut Down" THEN HALT CLOSE ELSE RespondRemote(FALSE) END IF 関連項目 GetCommandDDEOrigin StartServerDDE StopServerDDE GetCommandDDEOrigin 機能 DDE サーバ アプリケーションがこの関数を呼び出すと、コマンドを送 信している DDE クライアントが使用したアプリケーション名パラ メータを返します。 構文 GetCommandDDEOrigin ( applstring ) 引数 applstring 戻り値 説明 String 型の変数を指定します。指定された変数には、 GetCommandDDEOrigin 関数で取得するサーバ アプリケー ションの名前が格納されます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合(た とえば、関数が不正なコンテキストで呼び出された場合)は -1 を返し ます。applstring が NULL の場合は、NULL を返します。 解説 例 この関数を呼び出すサーバ アプリケーションは、アプリケーション名 (独自の DDEname)を使用して、送信されたコマンドに応答するかど うかを決めます。それ以外の場合には、この関数はクライアントに関 する追加情報を返しません。 次のスクリプトは、クライアント アプリケーションがサーバ アプリ ケーションを識別するために使用した名前を、ローカル変数 ls_name に格納します。 string ls_name GetCommandDDEOrigin(ls_name) 関連項目 GetCommandDDE StartServerDDE StopServerDDE PowerScript リファレンス ボリューム 2 531 GetCompanyName GetCompanyName 機能 現在の実行コンテキストに対応する会社名を返します。 対象 ContextInformation オブジェクト 構文 servicereference.GetCompanyName ( name ) 引数 servicereference name 戻り値 説明 ContextInformation サービス インスタンスへの参照を 指定します。 会社名を格納する文字列を指定します。この引数は、 参照渡しされます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 この関数を呼び出すことで、Sybase, Inc. などのような会社名を確認で きます。 例 次に、GetCompanyName 関数を呼び出す例を示します。 String ls_company Integer li_return ContextInformation ci ci = create ContextInformation // または GetContextService("ContextInformation", ci) li_return = ci.GetCompanyName(ls_company) IF li_return = 1 THEN sle_co_name.text = ls_company END IF 関連項目 532 GetContextService GetFixesVersion GetHostObject GetMajorVersion GetMinorVersion GetName GetShortName GetVersionName PowerBuilder 第 10 章 PowerScript の関数 GetContextKeywords 機能 指定したキーワードに関連する値を 1 つまたは複数返します。 対象 ContextKeyword オブジェクト 構文 servicereference.GetContextKeywords ( name, values ) 引数 servicereference name values 説明 サービス インスタンス ContextKeyword を参照します。 関数が対応する値を返すときのキーワードを指定しま す。 可変長文字列の配列で、name に対応する値を格納しま す。この引数は、参照渡しされます。 戻り値 Integer 型。正常に終了した場合は values 内の要素数を返し、エラーが 発生した場合には -1 を返します。 解説 この関数を呼び出すと、環境変数を取得できます。使用可能な環境変 数は、実行コンテキストによって異なります。 関数は、固有のキーワードがある DOS 環境 変数のそれぞれにアクセスします。 • PowerBuilder 実行時 • PowerBuilder ウィンドウ プラグイン • PowerBuilder ウィンドウ ActiveX 関数は、固有のキーワードがあ EMBED タグで指定したキー ワードを取得します。キーワードは固有のものである必要はあり ません。EMBED タグにキーワードを指定していない場合、関数 は、指定された名前の DOS 環境変数の取得を試みます。 る DOS 環境変数のそれぞれにアクセスします。 • 例 関数は、コンポーネントの .PROP ファイルから指定されたプロパティの値を返します。 PowerBuilder EAServer コンポーネント 次に、GetContextKeywords 関数を呼び出す例を示します。 String ls_keyword Integer li_count, li_return ContextKeyword lcx_key li_return = this.GetContextService & ("ContextKeyword", lcx_key) ls_keyword = sle_name.Text lcx_key.GetContextKeywords & (ls_keyword, is_values) FOR li_count = 1 to UpperBound(is_values) lb_parms.AddItem(is_values[li_count]) NEXT PowerScript リファレンス ボリューム 2 533 GetContextService 関連項目 GetContextService GetContextService 機能 指定したサービスのコンテキスト固有のインスタンスに対する参照を 作成します。 対象 すべてのオブジェクト 構文 GetContextService ( servicename, servicereference ) 引数 servicename 説明 サービス オブジェクトを指定する文字列です。次のい ずれかの値を指定します。 • ContextInformation − コンテキスト情報サービス • ContextKeyword − コンテキスト キーワード サービ ス • CORBACurrent − EAServer トランザクションのクラ イアント管理またはコンポーネント管理に対応した CORBA の現行サービス • ErrorLogging − EAServer や COM+ などのトランザ クション サーバで動作する PowerBuilder コンポー ネントに対するエラー ロギング サービス • Internet − インターネット サービス • Keyword – EAServer コンポーネント プロパティ • SSLServiceProvider − PowerBuilder クライアントが EAServer コンポーネントへの SSL 接続を確立する ための SSL サービス プロバイダ サービス servicereference 戻り値 534 • TransactionServer − EAServer や COM+ などのトラン ザクション サーバで動作する PowerBuilder コン ポーネントに対するトランザクション サーバ サー ビス servicename. で指定したサービス オブジェクトに対す る参照を格納する PowerObject を指定します。この引数 は、参照渡しされます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は、 負の整数を返します。戻り値が -1 であれば、特定できないエラーが発 生したという意味です。 PowerBuilder 第 10 章 PowerScript の関数 解説 サービス オブジェクトの参照を作成することによって、サービス オブ ジェクトのメソッドやプロパティにアクセスできます。サービス オブ ジェクト関数を呼び出す前にこの関数を呼び出さなくてはなりませ ん。 CREATE 文の使い方 これらのオブジェクトは、PowerScript の CREATE 文を使ってインスタ ンス化できます。ただし、アプリケーションを実行する環境にかかわ らず、デフォルトであるネイティブの PowerBuilder 実行環境向けのコ ンテキストでオブジェクトを作成します。 例 次に、GetContextService 関数を呼び出して、シングル ライン エディッ ト ボックスにサービスのクラスを表示する例を示します。 Integer li_return ContextKeyword lcx_key li_return = this.GetContextService & ("ContextKeyword", lcx_key) sle_classname.Text = ClassName(lcx_key) ... 関連項目 BeginTransaction GetCompanyName GetContextKeywords GetHostObject GetMajorVersion GetMinorVersion GetName GetShortName GetURL GetVersionName HyperLinkToURL Init PostURL PowerScript リファレンス ボリューム 2 535 GetCredentialAttribute GetCredentialAttribute 機能 アカウント情報がユーザに動的に提供されるように、EAServer によっ て呼び出されます。この関数は、EAServer に接続している PowerBuilder クライアントによって使用されます。 対象 SSLCallBack オブジェクト 構文 sslcallback.GetCredentialAttribute ( thesessioninfo, attr, attrvalues ) 引数 sslcallback thesessioninfo attr 説明 カスタマイズされた SSLCallBack オブジェクトのインス タンスを指定します。 SSL セッションに関する情報を含む CORBA オブジェク トを指定します。オプションで、この情報を表示し、セッ ションについての詳細をユーザに提供することもできま す。 INI ファイルまたはプロファイルのパス名を指定する必 要があるかどうかを示す Long 型の値。値は以下のとおり です。 • 1 CRED_ATTR_ENTRUST_INIFILE • 2 CRED_ATTR_ENTRUST_USERPROFILE attrvalues String 型の値の配列。使用可能な属性値を指定します。 戻り値 String 型。選択された属性の値を返します。 解説 PowerBuilder のアプリケーションでは通常、GetCredentialAttribute 関数は 直接には呼び出されません。useEntrustID プロパティが設定されていて EAServer クライアントが Entrust INI ファイルまたはプロファイルのパ ス名を指定しなかった場合、GetCredentialAttribute は EAServer によって 呼び出されます。 SSLCallBack オブジェクトの任意の関数の動作を上書きするためには、 SSLCallBack から継承された標準クラス ユーザ オブジェクトを作成 し、必要であればこのオブジェクトをカスタマイズします。コールバッ クが要求されたときに使用するオブジェクトを EAServer に認識させ るには、SSL の callbackImpl プロパティにオブジェクト名を指定しま す。このプロパティの値は、SetGlobalProperty 関数によって設定でき ます。 536 PowerBuilder 第 10 章 PowerScript の関数 GetCredentialAttribute の実装を指定しないと、EAServer が CORBA::NO_IMPLEMENT 例外を捕捉するため、このコールバックには デフォルトの実装が使用されることになります。デフォルトの実装を 使用した場合は常に、指定された値のリストのうち先頭の値が返され ます。値が指定されていない場合は、CtsSecurity::NoValueException が生 成されます。関数によって生成されるかもしれない例外はすべて、そ のプロトタイプに追加しておく必要があります。 コールバックの実装が空の文字列を返した場合は、先に述べたデフォ ルトの実装が使用されるため、リストのうちの先頭にある値が返され ます。サーバがその値を受け入れれば接続が続行されます。受け入れ なければ接続は拒否されます。 有効な戻り値を取得するには、関数に渡された attrvalues 配列から使用 可能な属性値をユーザに提示して、それらのうちの 1 つを選択するよ うに促します。渡された thesessioninfo オブジェクトから取得した追加 情報(たとえばサーバ証明書)をユーザに提示することも可能です。 このコールバック関数内で例外を送出することによって、このような 接続の試行をユーザがキャンセルすることが可能になります。 SSLCallback 関数で送出された例外はそのすべてが、 CTSSecurity::UserAbortedException をユーザに返します。その例外を捕捉 するには、ConnectToServer 関数を try-catch ブロックの中に含める必要 があります。 例 次に、INI ファイルまたは Entrust ユーザ プロファイルのパス名の場所 をサーバが必要としているかどうかをチェックして、適切なメッセー ジを表示する例を示します。選択項目のリストを attrvalues 配列から得 る場合は、その選択項目をメッセージ ボックスの中に表示して、テキ ストボックスの中に入力するようユーザに促します。 int idx, numAttrs String sText, sLocation numAttrs = upperbound(attrValues) w_response w_ssl_response IF attr = 1 THEN MessageBox("Entrust INI ファイルが必要です。", & "INI ファイルの場所を指定してください。") ELSEIF attr = 2 THEN MessageBox("Entrust プロファイルが必要です。", & " プロファイルの場所を指定してください。") END IF IF numAttrs <> 0 THEN sText = "Locations available: " PowerScript リファレンス ボリューム 2 537 GetCurrentDirectory FOR idx = 1 to numAttrs sText += "~nattrValues[" + string(idx) + "]: " & + attrvalues[idx] NEXT OpenWithParm( w_ssl_response, SText ) ls_rc = Message.StringParm IF ls_rc = "cancel" then userabortedexception uae uae = create userabortedexception uae.setmessage("User cancelled connection") throw uae END IF END IF RETURN ls_rc 関連項目 ConnectToServer GetCertificateLabel GetPin TrustVerify GetCurrentDirectory 機能 ターゲット アプリケーションの現行ディレクトリを取得します。 構文 GetCurrentDirectory ( ) 戻り値 String 型。現行ディレクトリの絶対パス名を返します。 例 次に、現行ディレクトリの名前をシングルライン エディット テキスト ボックスの中に表示する例を示します。 sle_1.text = GetCurrentDirectory( ) 関連項目 538 ChangeDirectory CreateDirectory DirectoryExists RemoveDirectory PowerBuilder 第 10 章 PowerScript の関数 GetData コントロールのデータを取得します。 取得するデータ グラフのデータ系列内のデータ ポイントの値 エディットマスク コントロールの書式設定されてい ないデータ OLE サーバのデータ 使用する構文 構文 1 構文 2 構文 3 構文 1 グラフのデータ ポイントのデータを取得する 機能 グラフのデータ系列内のデータ ポイントの値を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetData ( { graphcontrol, } seriesnumber, datapoint {, datatype } ) 引数 controlname 説明 データを取得するグラフ コントロールの名前を指定する か、グラフ コントロールを含むデータウィンドウ コント ロールの名前を指定します。 graphcontrol (オプション)String 型の値。controlname にデータウィン (データウィン ドウ コントロールの名前を指定した場合に、データを取得 ドウ コント するグラフの名前を指定します。 ロールのみ) seriesnumber データを取得するデータ系列の番号を指定します。 datapoint データを取得するデータ ポイントの番号を指定します。 datatype (オプション)grDataType カタログ データ型の値。散布図 (散布図グラフ グラフのデータ ポイントに対して、x または y のどちらの 専用) 値を求めるのかを指定します。値は以下のとおりです。 • xValue! − データ ポイントの x 座標の値 • yValue! −(デフォルト)データ ポイントの y 座標の値 戻り値 Double 型。正常に終了した場合は datapoint に指定されたデータの値を 返し、エラーが発生した場合は 0 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 GetData 関数は、数値軸が数値型のグラフに対してだけ使用できます。 数値軸がほかのデータ型のグラフの場合は、GetDataValue 関数を使用し てください。 PowerScript リファレンス ボリューム 2 539 GetData 例 以下に、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers のデータ系列 Costs のデータ ポイント 3 のデータ値を取 得するステートメントを示します。 integer SeriesNbr double data_value // データ系列の番号を取得します。 SeriesNbr = & dw_equipment.FindSeries("gr_computers", "Costs") data_value = dw_equipment.GetData( & "gr_computers" , SeriesNbr, 3) 以下に、グラフ gr_prod_data でマウス ポインタが指しているデータ ポ イントの値を取得し、その値を data_value に格納するステートメント を示します。 integer SeriesNbr, ItemNbr double data_value grObjectType MouseHit MouseHit = & gr_prod_data.ObjectAtPointer(SeriesNbr, ItemNbr) IF MouseHit = TypeSeries! THEN data_value = & gr_prod_data.GetData(SeriesNbr, ItemNbr) END IF 以下に、散布図グラフ gr_sales_yr のデータ ポイントの x 座標の値を取 得し、その値を変数 data_value に格納するステートメントを示します。 integer SeriesNbr, ItemNbr double data_value gr_product_data.ObjectAtPointer(SeriesNbr, ItemNbr) data_value = & gr_sales_yr.GetData(SeriesNbr, ItemNbr, xValue!) 関連項目 540 DeleteData FindSeries GetDataValue InsertData ObjectAtPointer PowerBuilder 第 10 章 PowerScript の関数 構文 2 エディットマスク コントロールの書式設定されてい ないデータを取得する 機能 エディットマスク コントロールの書式設定されていないテキストを 取得します。 対象 エディットマスク コントロール 構文 editmaskname.GetData ( datavariable ) 引数 editmaskname datavariable 説明 データを含むエディットマスク コントロール EditMask_control の名前を指定します。 この関数がエディットマスク コントロールの書式設定さ れ て い な い デ ー タ を 代 入 す る 変 数 を 指 定 し ま す。 datavariable のデータ型は、ウィンドウ ペインタで選択す るエディットマスク コントロールのデータ型と一致して いる必要があります。指定できるデータ型は、Date 型、 DateTime 型、Decimal 型、Double 型、String 型、Time 型です。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 エディットマスク コントロールの MaskDataType プロパティを調べる と、コ ン ト ロ ー ル の デ ー タ 型 が わ か り ま す。こ の プ ロ パ テ ィ は、 MaskDataType カタログ データ型を保持しています。 例 次に、エディットマスク コントロール em_date の Date 型のデータを取 得する例を示します。日付のマスク文字は無視されます。String 関数を 使用して日付(Date 型)を文字列(String 型)に変換し、シングルラ イン エディット コントロール sle_date にそのデータを格納します。 date d em_date.GetData(d) sle_date.Text = String(d, "mm-dd-yy") 次に、エディットマスク コントロール em_string の String 型のデータを 取得し、結果をシングルライン エディット コントロール sle_string に 格納する例を示します。エディット マスク内のマスク文字は無視され ます。 string s em_string.GetData(s) sle_string.Text = s PowerScript リファレンス ボリューム 2 541 GetData 構文 3 OLE サーバのデータを取得する 機能 ユニフォーム データ転送を使用して、OLE コントロールに関連付けら れている OLE サーバのデータを取得します。 対象 OLE コントロール、OLE カスタム コントロール 構文 olename.GetData ( clipboardformat, data ) 引数 olename clipboardformat 説明 データを入力するオブジェクトを含む OLE コントロール または OLE カスタム コントロールの名前を指定します。 データの形式を指定します。標準の形式は、ClipboardFormat カタログ データ型の値で指定できます。また、独自の形式 は、文字列で指定します。 clipboardformat カタログ データ型の値は、以下のとおりで す。 ClipFormatBitmap! ClipFormatDIB! ClipFormatDIF! ClipFormatEnhMetafile! ClipFormatHdrop! ClipFormatLocale! ClipFormatMetafilePict! ClipFormatOEMText! ClipFormatPalette! ClipFormatPenData! ClipFormatRIFF! ClipFormatSYLK! ClipFormatText! ClipFormatTIFF! ClipFormatUnicodeText! ClipFormatWave! clipboardformat に指定された値が空の文字列("")または NULL の場合、 GetData 関数は ClipFormatText! という形式で data 戻り値 542 データを転送します。 String 型または Blob 型の変数。OLE サーバのデータを格納 する変数を指定します。取得するデータが String 型の変数 に格納するのに適していない場合は、Blob 型の変数を使用 してください。 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 OLE サーバがサポートしていないクリップボード形式を指定すると、 GetData 関数はエラーを返します。OLE サーバがサポートしている形 式を調べるには、OLE サーバのマニュアルを参照してください。 GetData 関数は、ユニフォーム データ転送を介して OLE サーバのデー タを取得します。ユニフォーム データ転送とは、Microsoft が定義した もので、コンテナ アプリケーションとの間でデータを交換する機構で す。PowerBuilder では、グローバル ハンドルを介してデータ転送を実 行できます。また、OLE サーバでは、グローバル ハンドルを介した データ転送がサポートされている必要があります。データ転送がサ ポートされていない場合は、そのサーバとの間でデータ転送を行うこ とはできません。 例 エンド ユーザが Microsoft Word の文書を開き、その内容を変更したと します。次の例は ole_word6 という OLE コントロールの内容を取得し、 その内容を ls_oledata という String 型の変数に格納します。文字列の内 容は、 マルチライン エディット コントロール mle_text に表示されます。 string ls_oledata integer li_rtn li_rtn = ole_word6.GetData( & ClipFormatText!, ls_oledata) mle_text.Text = ls_oledata ある OLE コントロールに、データのテーブルを格納した Microsoft Word 文書が表示されるとします。次に、レポートのデータを取得し、 そのデータを別の OLE コントロール上のグラフに格納する例を示し ます。そのコントロール上の Microsoft Graph は、テーブルの最初の行 をヘッダとして解釈し、2 行目以降を[データ]メニューの設定に応 じて、項目またはデータ系列として解釈します。 string ls_data integer li_rtn li_rtn = ole_word.GetData(ClipFormatText!, ls_data) IF li_rtn <> 1 THEN RETURN li_rtn = ole_graph.SetData(ClipFormatText!, ls_data) 関連項目 SetData PowerScript リファレンス ボリューム 2 543 GetDataDDE GetDataDDE 機能 ほかの DDE アプリケーションから送信されたデータを取得し、指定し た String 型の変数に格納します。PowerBuilder が、DDE クライアント または DDE サーバとして機能しているときに使用できます。 構文 GetDataDDE ( string ) 引数 string 説明 String 型の変数。指定された変数に、リモートの DDE アプ リケーションから取得したデータが格納されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合(た とえば、関数が不正なコンテキストで呼び出された場合)は -1 を返し ます。string が NULL の場合は、NULL を返します。 解説 通常、アプリケーションが DDE サーバである場合、GetDataDDE 関数 は window レベルの RemoteSend イベントに対するスクリプトの中で呼 び出されます。また、アプリケーションが DDE クライアントである場 合、GetDataDDE 関数は window の HotLinkAlarm イベントに対するス クリプトの中で呼び出されます。 例 PowerBuilder DDE クライアント アプリケーションが、Excel のスプレッ ド シートの 7 行目の 15 列目にホット リンクを設定しているものとし ます。この行と列に格納されている値が赤から緑に変更され、アプリ ケーションの HotLinkAlarm イベントを起動したとします。次に示す HotLinkAlarm イベントに対するスクリプトは、GetDataDDE 関数を呼び 出して新しい値を変数 Str20 に格納します。 // HotLinkAlarm イベントに対するスクリプト string Str20 GetDataDDE(Str20) 関連項目 544 GetDataDDEOrigin OpenChannel StopServerDDE StopServerDDE PowerBuilder 第 10 章 PowerScript の関数 GetDataDDEOrigin 機能 ホット リンクが設定された DDE サーバ アプリケーションまたは DDE クライアント アプリケーションからのデータの発信元を判別し、指定 された文字列変数に DDE 識別子を格納します。この関数は、PowerBuilder が DDE クライアントまたは DDE サーバ アプリケーションとして機能 しているときに使用できます。 構文 GetDataDDEOrigin ( applstring, topicstring, itemstring ) 引数 applstring topicstring itemstring 戻り値 説明 String 型の変数を指定します。指定された変数に、リモー ト DDE アプリケーションの名前が格納されます。 String 型の変数を指定します。指定された変数に、トピッ ク(たとえば、Microsoft Excel の場合は REGION.XLS な ど)が格納されます。 String 型の変数を指定します。指定された変数に、項目の 識別のための見出し(たとえば、Microsoft Excel の場合は R1C2 など)が格納されます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合(た とえば、関数が不正なコンテキストで呼び出された場合)は -1 を返し ます。引数のいずれかの値が NULL の場合、NULL を返します。 解説 RemoteSend イベントまたは HotLinkAlarm イベントに対するウィンド ウ レベルのスクリプト内で GetDataDDEOrigin 関数を呼び出します。 アプリケーションが DDE サーバである場合には、RemoteSend イベン トに対するスクリプト内で GetDataDDEOrigin 関数を呼び出します。こ の関数は、クライアントで要求された項目やトピックを検索する場合 に使用します。アプリケーション名は、クライアントに指定されたア プリケーションの名前(サーバの DDEname)になります。 アプリケーションが DDE クライアントである場合には、HotLinkAlarm イベントに対するスクリプトの中で GetDataDDEOrigin 関数を呼び出し ます。この関数は、複数のアプリケーション間にまたがって複数のト ピックに対するホット リンクが存在する場合に、データがどのアプリ ケーションから返されたものであるかを判別するためにも使用されま す。 例 次に、GetDataDDEOrigin 関数を呼び出す例を示します。 string WhichAppl, WhatTopic, WhatLoc GetDataDDEOrigin(WhichAppl, WhatTopic, WhatLoc) PowerScript リファレンス ボリューム 2 545 GetDataPieExplode 関連項目 GetDataDDE OpenChannel StartServerDDE StopServerDDE GetDataPieExplode 機能 円グラフで一片が切り離されてほかより突出する割合を返します。 データを強調するために、円グラフの中心から一片を切り離して表示 します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetDataPieExplode ( { graphcontrol, } series, datapoint, percentage ) 引数 controlname 説明 一片を切り離す割合を求めたいグラフ コントロールの名 前、あるいはグラフ コントロールを含むデータウィンドウ コントロールの名前を指定します。 graphcontrol (オプション)String 型の値。一片を切り離す割合を求めた (データウィン いデータウィンドウ コントロール内のグラフの名前を指 ドウ コント 定します。 ロールのみ) series データ系列を識別する番号を指定します。 datapoint 切り離された一片のデータ ポイントの番号を指定します。 percentage Integer 型の変数を指定します。円グラフで一片が切り離さ れる割合を格納します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次に、エンド ユーザが一片上でクリックした場合に一片が切り離され る割合を返す例を示します。まず、GraphType プロパティを調べて、グ ラフが円グラフであるかどうかを確認しています。次に、ObjectAtPointer 関数を使用してデータ系列とデータポイントの値を取得します。この 値をチェックしてエンド ユーザが一片をクリックしたことを確認し てから、GetDataPieExplode 関数を使用します。次の例は、グラフ オブ ジェクトの DoubleClicked イベントに対するスクリプトです integer series, datapoint grObjectType clickedtype 546 PowerBuilder 第 10 章 PowerScript の関数 integer percentage percentage = 50 IF (This.GraphType <> PieGraph! and & This.GraphType <> Pie3D!) THEN RETURN clickedtype = This.ObjectAtPointer(series, & datapoint) IF (series > 0 and datapoint > 0) THEN This.GetDataPieExplode(series, datapoint, & percentage) MessageBox(" 切り離される割合 ", & " データ ポイント " + This.CategoryName(datapoint) & + " ( 系列 " + This.SeriesName(series) & + ") が " + String(percentage) + "% 切り離されまし た。") END IF 関連項目 SetDataPieExplode PowerScript リファレンス ボリューム 2 547 GetDataStyle GetDataStyle グラフのデータ ポイントの表示形態を調べます。データ系列内の各 データ ポイントには、表示形態を個別に設定できます。使用する構文 は、取得する情報によって異なります。 取得する情報 データ ポイントの色 データ ポイントの線種と線幅 データ ポイントの塗りつぶしパターンまたはシンボ ル 使用する構文 構文 1 構文 2 構文 3 GetDataStyle 関数は、1 つのデータ ポイントについての情報を取得しま す。データ ポイントが属しているデータ系列には、表示形態を個別に 設定できます。通常、データ ポイントの表示形態を設定する値はデー タ系列の表示形態の設定と同じです。データ ポイントの表示形態を個 別に変更するには、SetDataStyle 関数を使用します。データ系列の表示 形態の情報を取得するには GetSeriesStyle 関数を使用し、データ系列の 表示形態の情報を設定するには SetSeriesStyle 関数を使用します。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、折れ線グラフ内のデータ ポイント またはデータ系列の塗りつぶしパターンを確認することができます。 ただし、その塗りつぶしパターンは表示されません。 GetDataStyle 関数が linestyle と enumvariable に格納するカタログ デー タ型の値については、SetDataStyle 関数を参照してください。 構文 1 データ ポイントの色を示す値を取得する 機能 グラフのデータ ポイントの色を示す値(RGB 値)を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, colortype, colorvariable ) 引数 controlname 548 説明 グラフ コントロールの名前、あるいはグラフを含む データウィンドウ コントロールの名前を指定します。 指定されたコントロール上にあるグラフのデータ ポイ ントの色を示す値を取得します。 PowerBuilder 第 10 章 PowerScript の関数 引数 説明 graphcontrol (オプション)controlname がデータウィンドウ コント ロールの場合は、データ ポイントの色を取得するグラ (データウィンド ウ コントロールの フの名前を指定します。 み) seriesnumber データ系列の番号を指定します。指定されたデータ系 列のデータ ポイントの色を示す値を取得します。 datapointnumber データ ポイントの番号を指定します。指定されたデー タ ポイントの色を示す値を取得します。 colortype grColorType カタログ データ型の値。色を示す値を取得 するデータ ポイントの外観を指定します。値は以下の とおりです。 • Background! − 背景の色 • Foreground! − テキスト(塗りつぶしの色) • LineColor! − 線の色 colorvariable • Shade! − 3D グラフの影の領域 Long 型の変数を指定します。指定された変数に色を示 す値を格納します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。色を示す値は、colorvariable に格納します。引数のい ずれかの値が NULL の場合、NULL を返します。 例 次に、グラフ gr_emp_data にあるデータ系列 Salary のデータ ポイント 6 のテキストの色(foreground)を示す値を取得する例を示します。色 を示す値は、変数 color_nbr に格納されます。 long color_nbr integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = gr_emp_data.FindSeries("Salary") // 色を示す値を取得します。 gr_emp_data.GetDataStyle(SeriesNbr, 6, & Foreground!, color_nbr) PowerScript リファレンス ボリューム 2 549 GetDataStyle 次に、データウィンドウ コントロール上のグラフ gr_emp_data のシン グルライン エディット コントロール sle_series に入力されたデータ系 列のデータ ポイント 6 の背景色を示す値を取得する例を示します。色 を示す値は、変数 color_nbr に格納されます。 long color_nbr integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = FindSeries("gr_emp_data", sle_series.Text) // 色を示す値を取得します。 dw_emp_data.GetDataStyle("gr_emp_data", & SeriesNbr, 6, Background!, color_nbr) 関連項目 FindSeries GetSeriesStyle SetDataStyle SetSeriesStyle 構文 2 データ ポイントの線種と線幅についての情報を取得 する 機能 グラフのデータ ポイントの線種と線幅についての情報を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, linestyle, linewidth ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含む データウィンドウ コントロールの名前を指定します。 指定されたコントロール上にあるグラフのデータ ポイ ントの線種と線幅についての情報を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コント (データウィンド ロール上のグラフの名前を指定します。指定されたグ ウ コントロールの ラフのデータ ポイントの線種と線幅についての情報を み) 取得します。 seriesnumber データ系列の番号を指定します。指定されたデータ系 列のデータ ポイントの線種と線幅についての情報を取 得します。 550 PowerBuilder 第 10 章 PowerScript の関数 引数 datapointnumber linestyle linewidth 説明 データ ポイントの番号を指定します。指定されたデー タ ポイントの線種と線幅についての情報を取得します。 LineStyle 型の変数を指定します。指定された変数に、 線種についての情報を格納します。 Integer 型の変数を指定します。指定された変数に、線 幅についての情報を取得します。幅の単位はピクセル です。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ系列とデータ ポイントの線種につい ての情報は linestyle に指定された変数に格納され、線の幅についての 情報は linewidth に指定された変数に格納されます。引数のいずれかの 値が NULL の場合、NULL を返します。 解説 GetDataStyle 関数が linestyle に指定された変数に格納するカタログ データ型の値については、SetDataStyle 関数を参照してください。 例 次に、グラフ gr_product_data にあるデータ系列 Costs のデータ ポイン ト 10 の線種と線幅についての情報を取得する例を示します。取得した 情報は、変数 line_style と変数 line_width に格納されます。 integer SeriesNbr, line_width LineStyle line_style // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") gr_product_data.GetDataStyle(SeriesNbr, 10, & line_style, line_width) 次に、データウィンドウ コントロール dw_employees 上のグラフ gr_depts のシングルライン エディット コントロール sle_series に入力された データ系列のデータ ポイント 6 の線種と線幅についての情報を取得す る例を示します。取得した情報は、変数 line_style と変数 line_width に格 納されます。 integer SeriesNbr, line_width LineStyle line_style // データ系列の番号を取得します。 SeriesNbr = dw_employees.FindSeries( & " gr_depts " , sle_series.Text) // 線種と線幅についての情報を取得します。 dw_employees.GetDataStyle("gr_depts", SeriesNbr, & 6, line_style, line_width) PowerScript リファレンス ボリューム 2 551 GetDataStyle 関連項目 FindSeries GetSeriesStyle SetDataStyle SetSeriesStyle 構文 3 データ ポイントの塗りつぶしパターンまたはシンボ ルについての情報を取得する 機能 グラフのデータ ポイントの塗りつぶしパターンまたはシンボルにつ いての情報を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, enumvariable ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含む データウィンドウ コントロールの名前を指定します。 指定されたコントロール上にあるグラフのデータ ポイ ントの塗りつぶしパターンまたはシンボルについての 情報を取得します。 graphcontrol String 型の値。データウィンドウ コントロール内のグ (データウィンド ラフの名前を指定します。指定されたグラフのデータ ウ コントロールの ポイントの塗りつぶしパターンまたはシンボルについ み)(オプション) ての情報を取得します。 seriesnumber データ系列の番号を指定します。指定されたデータ系 列のデータ ポイントの塗りつぶしパターンまたはシン ボルについての情報を取得します。 datapointnumber データ ポイントの番号を指定します。指定されたデー タ ポイントの塗りつぶしパターンまたはシンボルにつ いての情報を取得します。 enumvariable データの表示形態についての情報を格納する変数。 FillPattern カタログ データ型または grSymbolType カタ ログ データ型の変数を指定できます。表示形態の情報 は、変数の型によって異なります。 戻り値 552 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ ポイントの塗りつぶしパターンまた はシンボルについての情報は、enumvariable に指定された変数に格納 されます。引数のいずれかの値が NULL の場合、NULL を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 GetDataStyle 関数が enumvariable に指定された変数に格納するカタロ グ データ型の値については、SetDataStyle 関数を参照してください。 例 次に、グラフ gr_product_data にあるデータ系列 Costs のデータ ポイン ト 10 の塗りつぶしパターンについての情報を取得する例を示します。 取得した情報は、変数 data_pattern に格納されます。 integer SeriesNbr FillPattern data_pattern // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") gr_product_data.GetDataStyle(SeriesNbr, 10, & data_pattern) 次に、データウィンドウ コントロール dw_employees 上のグラフ gr_depts のシングルライン エディット コントロール sle_series に入力された データ系列のデータ ポイント 6 の塗りつぶしパターンについての情報 を取得する例を示します。取得した情報は、変数 data_pattern に格納 されます。 integer SeriesNbr FillPattern data_pattern // データ系列の番号を取得します。 SeriesNbr = dw_employees.FindSeries("gr_depts", & sle_series.Text) // パターンを取得します。 dw_employees.GetDataStyle("gr_depts", SeriesNbr, & 6, data_pattern) 以下に、グラフ gr_product_data にあるデータ系列 Costs のデータ ポイ ント 10 のシンボルを変数 symbol_type に格納するステートメントを示 します。 integer SeriesNbr grSymbolType symbol_type // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") gr_product_data.GetDataStyle(SeriesNbr, 10, & symbol_type) PowerScript リファレンス ボリューム 2 553 GetDataValue 以下に、データ ポイントのシンボルを変数 symbol_type に格納するス テートメントを示します。データポイントは、データウィンドウ コン トロール dw_employees 上のグラフ gr_depts のシングルライン エディッ ト コントロール sle_series に入力されたデータ系列のデータ ポイント 6 です。 integer SeriesNbr grSymbolType symbol_type // データ系列の番号を取得します。 SeriesNbr = dw_employees.FindSeries("gr_depts", & sle_series.Text) // シンボルを取得します。 dw_employees.GetDataStyle("gr_depts", SeriesNbr, & 6, symbol_type) 関連項目 FindSeries GetSeriesStyle SetDataStyle SetSeriesStyle GetDataValue 機能 グラフのデータ系列内にあるデータ ポイントのデータ値を取得しま す。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetDataValue ( { graphcontrol, } seriesnumber, datapoint, datavariable {, xory } ) 引数 controlname 説明 データを取得するグラフ コントロールの名前を指定する か、グラフ コントロールを含むデータウィンドウ コント ロールの名前を指定します。 graphcontrol (オプション)データを取得するデータウィンドウ コント (データウィン ロール内のグラフの名前の文字列を指定します。 ドウ コント ロールのみ) seriesnumber データを取得するデータ系列の番号を指定します。 datapoint データを取得するデータ ポイントの番号を指定します。 554 PowerBuilder 第 10 章 PowerScript の関数 引数 datavariable 説明 データを格納する変数の名前を指定します。Date 型、 DateTime 型、Double 型、String 型、Time 型のいずれかのデー タ型の変数を指定できます。変数のデータ型は、グラフの 軸のデータ型と同じでなければなりません。 xory (オプション)grDataType カタログ データ型の値。散布図 (散布図グラフ グラフのデータ ポイントに対して、x または y のどちらの 専用) 値を求めるのかを指定します。値は以下のとおりです。 • xValue! − データ ポイントの x 座標の値 • yValue! −(デフォルト)データ ポイントの y 座標の値 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 GetDataValue 関数は、グラフのデータを取得します。取得したデータ は、データ型がグラフの軸のデータ型と一致する datavariable に保存さ れます。軸の値が数値型の場合、GetData 関数を使用することもできま す。 例 以下に、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers のデータ系列 Costs のデータ ポイント 3 のデータ値を取 得するステートメントを示します。 integer SeriesNbr, rtn double data_value // データ系列の番号を取得します。 SeriesNbr = dw_equipment.FindSeries( & "gr_computers", "Costs") rtn = dw_equipment.GetDataValue( & "gr_computers" , SeriesNbr, 3, data_value) 以下に、グラフ gr_prod_data でマウス ポインタが指しているデータ ポ イントの値を取得し、その値を data_value に格納するステートメント を示します。エンド ユーザがデータ ポイントをクリックしない場合、 ItemNbr には 0 が設定されます。項目軸のデータ型は Time 型です。 integer SeriesNbr, ItemNbr, rtn time data_value grObjectType MouseHit MouseHit = & gr_prod_data.ObjectAtPointer(SeriesNbr, ItemNbr) IF ItemNbr > 0 THEN rtn = gr_prod_data.GetDataValue( & SeriesNbr, ItemNbr, data_value) PowerScript リファレンス ボリューム 2 555 GetDateLimits END IF 以下に、散布図グラフ gr_sales_yr のデータ ポイントの x 座標の値を取 得し、その値を変数 data_value に格納するステートメントを示します。 エンド ユーザがデータ ポイントをクリックしない場合、ItemNbr には 0 が設定されます。項目軸のデータ型は Date 型です。 integer SeriesNbr, ItemNbr, rtn date data_value gr_product_data.ObjectAtPointer(SeriesNbr, ItemNbr) IF ItemNbr > 0 THEN rtn = gr_sales_yr.GetDataValue( & SeriesNbr, ItemNbr, data_value, xValue!) END IF 関連項目 DeleteData FindSeries InsertData ObjectAtPointer GetDateLimits 機能 カレンダに指定された最後の日付と最初の日付を取得します。 対象 月表示カレンダ コントロール 構文 controlname.GetDateLimits ( min, max ) 引数 controlname min max 戻り値 556 説明 日付の制限を確認する月表示カレンダ コントロールの名 前を指定します。 参照で返される日付の値を指定します。この値は、カレン ダで参照または表示できる最初の日付を表します。 参照で返される日付の値を指定します。この値は、カレン ダで参照または表示できる最後の日付を表します。 Integer 型。最初と最後の両方の日付を正常に取得した場合は 0 を返し、 それ以外の場合は次のいずれかの値を返します。 -1 制限が設定されていません。 -2 不明なエラーです。 PowerBuilder 第 10 章 PowerScript の関数 解説 最初と最後の日付を設定するには、SetDateLimits 関数を使用します。日 付の制限が設定されていない場合、GetDateLimits は -1 を返し、min と max に 1900/1/1 を格納します。 例 次の例は、コントロールに設定された最初の日付と最後の日付をメッ セージ ボックスに表示します。 integer li_return Date mindate, maxdate string str1, str2 li_return = mc_1.GetDateLimits(mindate, maxdate) If li_return = -1 then str1 = " 最初と最後の日付が設定されていません。" elseif li_return = -2 then str1 = " 不明なエラーです。" else str1 = " 最初の日付は " + string(mindate) str2 = " 最後の日付は " + string(maxdate) end if MessageBox(" 日付の制限 ", str1 + "~r~n" + str2) 関連項目 SetDateLimits PowerScript リファレンス ボリューム 2 557 GetDisplayRange GetDisplayRange 機能 現在表示されている日付範囲の最初と最後の日付を取得し、全部また は一部が表示されている月の数を返します。 対象 月表示カレンダ コントロール 構文 controlname.GetDisplayRange ( start, end {, d } ) 引数 controlname start end d (オプション) 説明 日付範囲を取得する月表示カレンダ コントロールの名前 を指定します。 参照で返される表示範囲内で最初の日付を指定します。 参照で返される表示範囲内で最後の日付を指定します。 MonthCalDisplayState カタログ データ型変数の値。値は以 下のとおりです。 EntirelyDisplayed! − すべての日が表示されている月の 表示日付範囲を取得します。 PartlyDisplayed! − 一部の日でも表示されている月の表 示日付範囲を取得します(デフォルト)。 戻り値 Integer 型。正常に終了した場合は表示範囲内の月の数を返し、エラー が発生した場合は -1 を返します。 解説 GetDisplayRange 関数は、カレンダに現在表示されている日付の範囲内 の最初と最後の日付を取得します。 オ プ シ ョ ン の d 引 数 を 指 定 し な か っ た 場 合、ま た は こ の 引 数 に PartlyDisplayed! を指定した場合は、一部の日でも表示されている月の 数を返します。カレンダに丸 1 か月表示されている場合の戻り値は 3 です。これは、前月の最後の数日と次月の最初の数日も含まれるから です。 d 引数に EntirelyDisplayed! を指定した場合、すべての日が表示されて いる月の数を返します。その前後の日は無視されます。 たとえば、カレンダに 2004 年 11 月から 2005 年 10 月までの 12 か月が 表示されている場合に d 引数を指定しなければ、GetDisplayRange は 14 を返し、引数 start と end にそれぞれ 2004/10/25 と 2005/11/6 を格納し ます。 この例で、d 引数に EntirelyDisplayed! を指定した場合、GetDisplayRange は 12 を返し、引数 start と end にそれぞれ 2004/11/1 と 2005/10/31 を格 納します。 558 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、メッセージ ボックスに、表示範囲内の月数および表示範囲 の最初の日付と最後の日付を表示します。第 3 引数に PartlyDisplayed! が指定されているので、返される範囲は、すべての日が表示されてい る月の数よりも大きくなります。1 か月のみ表示され、月の初めが週 の初日でもなく、月の終わりが週の最終日でもない場合、li_return は 3 になります。 integer li_return Date startdate, enddate string str1, string str2 li_return = mc_1.GetDisplayRange(startdate, enddate, & PartlyDisplayed!) str1 = " 範囲は " + string(li_return) + " 月 " str2 = " 最初の日付は " + string(startdate) + "~r~n" str2 += " 最後の日付は " + string(enddate) MessageBox(str1, str2) 次の例は、現在すべての日が表示されている月の数を返し、ScrollRate プロパティにスクロールする数量を設定します。 integer li_return Date startdate, enddate li_return = mc_1.GetDisplayRange(startdate, enddate, & EntirelyDisplayed!) mc_1.ScrollRate = li_return 関連項目 GetSelectedRange PowerScript リファレンス ボリューム 2 559 GetDynamicDate GetDynamicDate 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから Date 型のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicDate ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。 DynamicDescriptionArea オブジェクトの NumOutputs の値以下の値を指定する必要があ ります。 戻り値 Date 型。DynamicDescriptionArea の index で指定された出力パラメータ 記述子に格納されている Date 型のデータを返します。エラーが発生し た場合には、1900-01-01 を返します。引数のいずれかの値が NULL の場 合、NULL を返します。 解説 動的 SQL の書式 4 を使用してデータを取得した後、通常は SQLDA で ある DynamicDescriptionArea オブジェクトには、取得したデータに関 する情報が格納されます。SQLDA プロパティの NumOutputs は、返さ れたデータの記述子の数を示します。プロパティの配列の OutParmType には、返された各値のデータ型を示す ParmType カタログ データ型の 値が格納されます。 OutParmType の値が、取得する配列内の値に対して TypeDate! である場 合に GetDynamicDate 関数を使用します。 例 以下に、2 番目の出力パラメータの記述子に格納されている Date 型の 値を Today に設定するステートメントを示します。 Date Today Today = GetDynamicDate(SQLDA, 2) 書式 4 の動的 SQL 文を実行した後で、データは DynamicDescriptionArea オブジェクトに格納されます。次に、格納されたデータのデータ型を 確認し、CHOOSE CASE 文を使用してその値をローカル変数に設定する 例を示します。 560 PowerBuilder 第 10 章 PowerScript の関数 SELECT 文が次のように記述されている場合、 SELECT emp_start_date FROM employee; CASE TypeDate! の行のコードが実行されます。 それぞれの CASE 文の「そのほかの処理」でデータウィンドウに値を 設定するので、ほかの値が同じ ParmType を持っている場合でもその値 は上書きされません。 Date Datevar Time Timevar DateTime Datetimevar Double Doublevar String Stringvar FOR n = 1 to SQLDA.NumOutputs CHOOSE CASE SQLDA.OutParmType[n] CASE TypeString! Stringvar = SQLDA.GetDynamicString(n) ... // そのほかの処理 CASE TypeDecimal!, TypeDouble!, & TypeInteger!, TypeLong!, & TypeReal!, TypeBoolean! Doublevar = SQLDA.GetDynamicNumber(n) ... // そのほかの処理 CASE TypeDate! Datevar = SQLDA.GetDynamicDate(n) ... // そのほかの処理 CASE TypeDateTime! Datetimevar = SQLDA.GetDynamicDateTime(n) ... // そのほかの処理 CASE TypeTime! Timevar = SQLDA.GetDynamicTime(n) ... // そのほかの処理 CASE ELSE MessageBox(" 動的 SQL", & " データ型が不明です。") END CHOOSE NEXT 関連項目 GetDynamicDateTime GetDynamicNumber GetDynamicString GetDynamicTime SetDynamicParm 動的 SQL の使い方 PowerScript リファレンス ボリューム 2 561 GetDynamicDateTime GetDynamicDateTime 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから DateTime 型のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicDateTime ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。 DynamicDescriptionArea オブジェクトの NumOutputs の値以下の値を指定する必要があ ります。 戻り値 DateTime 型。DynamicDescriptionArea の index に指定された出力パラ メータの記述子内に格納されている DateTime 型のデータを返します。 エラーが発生した場合、1900-01-01 00:00:00.000000 を返します。引数の いずれかの値が NULL の場合、NULL を返します。 解説 開発者が取得する OutParmType の値が、TypeDateTime! である場合に GetDynamicDateTime 関数を使用します。 したがって、エラーの値をテストする場合、DateTime 関数を使用して、 返された値を比較するための値を作成する必要があります。 PowerBuilder は、DateTime 型リテラルをサポートしていません。 例 以下に、2 番目の出力パラメータ記述子に格納されている DateTime 型 の値を変数 SystemDatetime に設定するステートメントを示します。 DateTime SystemDateTime SystemDateTime = SQLDA.GetDynamicDateTime(2) IF SystemDateTime = & DateTime(1900-01-01, 00:00:00) THEN ... // エラー処理 END IF DynamicDescriptionArea オブジェクトからデータを取得する例につい ては、GetDynamicDate 関数を参照してください。 562 PowerBuilder 第 10 章 PowerScript の関数 関連項目 GetDynamicDate GetDynamicNumber GetDynamicString GetDynamicTime SetDynamicParm 動的 SQL の使い方 GetDynamicNumber 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから 数値データを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicNumber ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。 DynamicDescriptionArea の NumOutputs の値以下 の値を指定する必要があります。 戻り値 Double 型。DynamicDescriptionArea の index に指定された出力パラメー タの記述子に格納されている数値データを返します。エラーが発生し た場合には 0 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 開発者が取得する OutParmType の値が、TypeInteger!、TypeDecimal!、 TypeDouble!、TypeLong!、TypeReal!、または TypeBoolean! である場合 に GetDynamicNumber 関数を使用します。 この 関数 を使っ て Decimal 型の 値を 返す と、Double 型 のデ ータ を Decimal 型に変換するときに、値が四捨五入されます。Double 型では、 Decimal 型と同じ精度をサポートしていません。 例 以下に、2 番目の出力パラメータの記述子に格納されている数値型の 値を DeptId に設定するステートメントを示します。 Integer DeptId PowerScript リファレンス ボリューム 2 563 GetDynamicString DeptId = SQLDA.GetDynamicNumber(2) DynamicDescriptionArea オブジェクトからデータを取得する例につい ては、GetDynamicDate 関数を参照してください。 関連項目 GetDynamicDate GetDynamicDateTime GetDynamicString GetDynamicTime SetDynamicParm 動的 SQL の使い方 GetDynamicString 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから String 型のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicString ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。 DynamicDescriptionArea の NumOutputs の値以下 の値を指定する必要があります。 戻り値 String 型。DynamicDescriptionArea の index に指定された出力パラメー タの記述子に格納されている文字列データを返します。エラーが発生 した場合、空の文字列("")を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 開発者が取得する OutParmType の値が、TypeString! である場合に GetDynamicString 関数を使用します。 564 PowerBuilder 第 10 章 PowerScript の関数 例 以下に、2 番目の出力パラメータの記述子に格納されている文字列の 値を LName に設定するステートメントを示します。 String LName LName = SQLDA.GetDynamicString(2) DynamicDescriptionArea オブジェクトからデータを取得する例につい ては、GetDynamicDate 関数を参照してください。 関連項目 GetDynamicDate GetDynamicDateTime GetDynamicNumber GetDynamicTime SetDynamicParm 動的 SQL の使い方 GetDynamicTime 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから 時刻のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicTime ( index ) 引数 DynamicDescriptionArea index 戻り値 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。 DynamicDescriptionArea の NumOutputs の値以下 の値を指定する必要があります。 Time 型。DynamicDescriptionArea の index に指定された出力パラメータ の記述子に格納されている時刻データを返します。エラーが発生した 場合、00:00:00.000000 を返します。引数のいずれかの値が NULL の場合、 NULL を返します。 解説 開発者が取得する OutParmType の値が、TypeTime! である場合に GetDynamicTime 関数を使用します。 PowerScript リファレンス ボリューム 2 565 GetEnvironment 例 以下に、1 番目の出力パラメータの記述子に格納されている Time 型の 値を Start に設定するステートメントを示します。 Time Start Start = SQLDA.GetDynamicTime(1) DynamicDescriptionArea オブジェクトからデータを取得する例につい ては、GetDynamicDate 関数を参照してください。 関連項目 GetDynamicDate GetDynamicDateTime GetDynamicNumber GetDynamicString SetDynamicParm 動的 SQL の使い方 GetEnvironment 機能 オペレーティング システム、プロセッサ、システムのスクリーン表示 に関する情報を取得します。 構文 GetEnvironment ( environmentinfo ) 引数 environmentinfo 戻り値 解説 説明 環境に関する情報を格納している環境オブジェクト Environment_object の名前を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。environmentinfo が NULL の場合、NULL を返します。 クロス プラットフォーム環境の開発プロジェクトでは、スクリプトの 中で GetEnvironment 関数を使用することによって、各オペレーティン グ システムに応じた処理を行うことができます。また、プロセッサ (Intel386、Intel486、Intel68000 など)を確認することもできます。こ の情報には、オペレーティング システムおよび PowerBuilder のバー ジョンも含まれます。 GetEnvironment 関数を使用すると、システムがサポートしている色の数 や画面のサイズを確認できます。ウィンドウの Open イベントに対す るスクリプトの中でサイズ情報を使用して X および Y プロパティを リセットすることができます。 566 PowerBuilder 第 10 章 PowerScript の関数 例 次のスクリプトは、ほかの PowerBuilder アプリケーションを実行し、 Environment オブジェクトの OSType プロパティを使用してパスを決定 しています。 string path environment env integer rtn rtn = GetEnvironment(env) IF rtn <> 1 THEN RETURN CHOOSE CASE env.OSType CASE aix! path = "/export/home/pb_apps/analyze.exe" CASE Windows!, WindowsNT! path = "C:\PB_apps\analyze.exe" CASE ELSE RETURN END CHOOSE Run(path) 次の例は、メッセージ ボックスに、PowerBuilder のメジャー バージョ ン番号、マイナー バージョン番号、修正バージョン番号、およびビル ド番号を表示します。 string ls_version environment env integer rtn rtn = GetEnvironment(env) IF rtn <> 1 THEN RETURN ls_version = "Version: "+ string(env.pbmajorrevision) ls_version += "." + string(env.pbminorrevision) ls_version += "." + string(env.pbfixesrevision) ls_version += " Build: " + string(env.pbbuildnumber) MessageBox("PowerBuilder のバージョン ", ls_version) PowerScript リファレンス ボリューム 2 567 GetFileOpenName GetFileOpenName 機能 システムのファイルを開く ダイアログボックスを表示し、ファイルの 選択またはファイル名の入力を可能にします。 構文 GetFileOpenName ( title, pathname, filename {, extension {, filter { , initdir { , aFlag } } } } ) GetFileOpenName ( title, pathname, filename[ ] {, extension {, filter { , initdir { , aFlag } } } } ) 引数 title pathname 説明 ダイアログボックスのタイトルを表す文字列を指定します。 返されるパスを格納する文字列変数を指定します。ユーザ が単一ファイルを選択する場合は、pathname 変数はパス名 とファイル名を含みます。 filename, filename[ ] 返されたファイル名を格納する文字列変数、または選択さ れた複数のファイル名を格納する文字列変数の配列を指 定します。文字列変数の配列を指定した場合は、ダイアロ グボックスで複数選択が可能になります。 extension (オプション) String 型の値。1 文字以上 3 文字以下の標準のファイル拡 張子を指定します。この引数を省略すると、" 拡張子なし " が標準の設定になります。 filter (オプション) String 型の値。リストボックス内に含めるファイルの説明、 および表示するファイルを選択するために使用するファ イル マスク(たとえば、*.* や *.exe など)を指定します。 構文は、次のとおりです。 description,*. ext 1 つの表示文字列に対して複数のフィルタ パターンを指 定するには、以下のようにセミコロンを使用してパターン を区切ります。 "Graphic Files (*.bmp;*.gif;*.jpg;*.jpeg), *.bmp;*.gif;*.jpg;*.jpeg" デフォルトでは、次のように設定されます。 " すべてのファイル (*.*),*.*" initdir (オプション) 568 初期ディレクトリの名前を表す文字列を指定します。指定 を省略した場合は、現行のディレクトリが適用されます。 PowerBuilder 第 10 章 PowerScript の関数 引数 aFlag (オプション) 説明 ダイアログボックスで使用できるオプションを表す UnsignedLong 型の値を指定します。各オプションのフラグ の値は、2 の(index -1)乗として計算されます。なお、index は オ プ シ ョ ン に 関 連 付 け ら れ た 整 数 値 を 表 し ま す。 GetOpenFileName に渡される aFlag の値は、各オプション のフラグの値の合計になります。オプションの一覧、各オ プションに関連付けられたインデックス、および各オプ ションの意味については、「解説」の表を参照してくださ い。 戻り値 Integer 型。正常に終了した場合は 1 を返します。エンド ユーザが[キャ ンセル]ボタンをクリックした場合、または Windows が表示をキャン セルした場合には、0 を返します。エラーが発生した場合、-1 を返し ます。引数のいずれかの値が NULL の場合、NULL を返します。 解説 開発者が標準のファイル拡張子を DOS と指定している場合、エンド ユーザが拡張子を付けずにファイル名を指定すると、PowerBuilder は 標準の拡張子 DOS をファイル名に付け加えます。フィルタとして機能 するファイル マスクを指定した場合、PowerBuilder は、そのマスクに 一致するファイルだけを表示します。 filename 引数に文字列を指定する場合は、ユーザは 1 つのファイルだ けを選択できます。pathname 引数はパス名とファイル名を含みます (たとえば、c:\temp\test.txt)。 filename 引数に文字列配列を指定する場合は、ユーザは複数のファイ ルを選択できます。ユーザが複数ファイルを選択した場合は、pathname 引数はパスだけを含みます(たとえば、c:\temp)。ユーザが単一ファ イルを選択した場合は、その名前が pathname 引数に追加されます(た とえば、c:\temp\test.txt)。 filter を使用して、リストボックスに表示するファイルの型を制限しま す。また、エンド ユーザにその制限を通知します。たとえば、テキス ト ファイル(*.TXT)という記述と拡張子 .TXT の付いたファイルだけ を表示するには、filter に次のように入力します。 "Text Files (*.TXT),*.TXT" filter に複数のファイル拡張子を指定するには、それぞれのファイルの 記述とその拡張子の組み合わせをカンマで区切って入力します。次に 例を示します。 "PIF files, *.PIF, Batch files, *.BAT" PowerScript リファレンス ボリューム 2 569 GetFileOpenName GetFileOpenName 関数および GetFileSaveName 関数によって表示された ダイアログボックスは、システムのダイアログボックスです。このダ イアログボックスは、現行ディレクトリ全体の制御を含む標準のシス テムの動作形態を提供します。ダイアログボックス内のドライブ、ディ レクトリ、またはフォルダが変更された場合、現行のディレクトリや フォルダも変更されます。ここで新しく指定したディレクトリまたは フォルダは、引数 initdir を別途指定しない限り、アプリケーションを 終了するまで、ファイル操作での標準設定となります。 引数 aFlag は、ダイアログボックスの外観を規定するオプションを 1 つ以上指定する場合に使用します。各オプションについて、フラグの 値は 2^(index -1) になります。index は、各オプションに関連付けら れた整数値を表します(次の表を参照)。aFlag(各フラグの値を追加 することによって計算される)を渡すことによって複数のオプション を渡すことができます。 aFlag を渡さなかった場合は、エクスプローラ形式のファイルを開く ダイアログボックスが使用されます。フラグを渡した場合は、従来の 形式のダイアログボックスがデフォルトで使用されます。エクスプ ローラ形式のダイアログボックスでは、一部のオプションが適用され ません。エクスプローラ形式のダイアログボックスを表示する場合に、 適用するオプションを指定するには、そのオプションの値にエクスプ ローラ形式のダイアログボックスを使用するためのオプション値(2) を追加してください。 たとえば、GetFileSaveName 関数にフラグ 32768(2^15)を渡すと、デ フォルトで、 [読み取り専用]チェックボックスがオンになった状態で 従来の形式のダイアログボックスが開きます。フラグ 32770 を渡すと、 デフォルトで、 [読み取り専用]チェックボックスがオンになった状態 でエクスプローラ形式のダイアログボックスが開きます。 表 10-4: GetFileOpenName と GetFileSaveName のオプション値 インデックス 1 定数名 OFN_CREATEPROMPT 2 OFN_EXPLORER 3 OFN_EXTENSIONDIFFERENT 4 5 OFN_FILEMUSTEXIST OFN_HIDEREADONLY 570 説明 指定されたファイルが存在しない場合、ファイルを作成 するかどうかを確認するメッセージを表示します。ユー ザがファイルの作成を選択した場合、ダイアログボック スは閉じられます。それ以外の場合は、ダイアログボッ クスは開いたままになります。 エクスプローラ形式のダイアログボックスを使用しま す。 入力されたファイル拡張子が指定の拡張子と異なりま す。 既存のファイル名のみを入力できます。 [読み取り専用]チェックボックスを非表示にします。 PowerBuilder 第 10 章 PowerScript の関数 インデックス 6 定数名 OFN_LONGNAMES 7 OFN_NOCHANGEDIR 8 OFN_NODEREFERENCELINKS 9 OFN_NOLONGNAMES 10 OFN_NONETWORKBUTTON 11 OFN_NOREADONLYRETURN 12 OFN_NOTESTFILECREATE 13 14 OFN_NOVALIDATE OFN_OVERWRITEPROMPT 15 16 OFN_PATHMUSTEXIST OFN_READONLY 説明 長いファイル名を使用します。エクスプローラ形式のダ イアログボックスでは無視されます。 ユーザがファイルの探索中にディレクトリを変更した場 合に、現行のディレクトリを元の値に戻します。Windows NT、2000、XP で GetOpenFileName を使用した場合、この オプションは無視されます。 選択されたショートカット(.lnk ファイル)のパスとファ イル名を返します。このオプションの指定を省略した場 合は、ショートカットの参照先のパスとファイル名が返 されます。 短いファイル名(8.3 形式)を使用します。エクスプロー ラ形式のダイアログボックスでは無視されます。 ネットワーク ボタンを非表示にします。エクスプローラ 形式のダイアログボックスでは無視されます。 返されるファイルは読み取り専用ではなく、書き込み保 護されたディレクトリにありません。 ダイアログボックスが閉じられるまでファイルを作成し ません。ファイルの作成のみが可能で変更はできない共 有ネットワークにファイルを保存するアプリケーション の場合は、このオプションを指定する必要があります。書 き込み保護、ディスクの容量、開かれているドライブ ド ア、ネットワーク保護については、チェックされません。 1 度閉じたファイルを再び開くことはできません。 ファイル名に無効な文字を許可します。 名前を付けて保存 ダイアログボックスで使用します。選 択されたファイルがすでに存在する場合、メッセージ ボックスを生成します。 有効なパスとファイル名の入力のみを許可します。 保存ダイアログボックスが作成されたときに[読み取り 専用]チェックボックスをオンにします。 ファイルを開く 選択したファイルを開くには、FileOpen 関数を使用します。 例 次の使用例は、複数のファイルを選択できるファイルの選択 ダイアロ グボックスを表示します。ファイルの種類は TXT、DOC、およびすべ てのファイルで、最初のディレクトリは C:\Program Files\Sybase です。 オプションのフラグ 18 を指定しているため、エクスプローラ形式のダ イアログ ボックスが使用され(2^1 = 2)、[読み取り専用]チェック ボックスが非表示になります(2^4 = 16)。選択されたファイル名はマ ルチライン エディット コントロールに表示されます。 PowerScript リファレンス ボリューム 2 571 GetFileOpenName ユーザが単一ファイルを選択した場合は、docpath 変数はパスとファイ ル名の両方を含みます。この例では、これを許可するために IF 句を含 んでいます。 string docpath, docname[] integer i, li_cnt, li_rtn, li_filenum li_rtn = GetFileOpenName(" ファイルの選択 ", & docpath, docname[], "DOC", & + "Text Files (*.TXT),*.TXT," & + "Doc Files (*.DOC),*.DOC," & + "All Files (*.*), *.*", & "C:\Program Files\Sybase", 18) mle_selected.text = ““ IF li_rtn < 1 THEN return li_cnt = Upperbound(docname) // ひとつのファイルだけを選択する場合、docpath は // パスとファイル名を含みます。 if li_cnt = 1 then mle_selected.text string(docpath) else // 複数のファイルを選択する場合、docpath は // パスだけを含みます。docpath と docname を連結します。 for i=1 to li_cnt mle_selected.text += string(docpath) & + "\"+(string(docname[i]))+"~r~n" next end if 次の例では、開く ダイアログボックスのファイルの種類を示すドロッ プダウン リストにテキスト ファイル、バッチ ファイル、INI ファイル を表示します。最初のディレクトリは、d:\temp です。オプションのフ ラグ 512 を指定しているため、従来の形式のダイアログ ボックスが使 用され、ネットワーク ボタンが非表示になります(2^9 = 512)。 // インスタンス変数: // string is_filename, is_fullname int li_fileid if GetFileOpenName (" 開く ", is_fullname, is_filename, & "txt", "Text Files (*.txt),*.txt,INI Files " & + "(*.ini), *.ini,Batch Files (*.bat),*.bat", & "d:\temp", 512) < 1 then return 572 PowerBuilder 第 10 章 PowerScript の関数 li_fileid = FileOpen (is_fullname, StreamMode!) FileRead (li_fileid, mle_notepad.text) FileClose (li_fileid) 関連項目 DirList DirSelect GetFileSaveName GetFolder GetFileSaveName 機能 システムの ファイル名を付けて保存 ダイアログボックスを表示し、 [ファイル名]テキストボックスに指定されたファイル名を表示しま す。エンド ユーザは、ファイル名を入力するか、またはグレー表示さ れているリストからファイルを選択することができます。 構文 GetFileSaveName ( title, pathname, filename {, extension {, filter { , initdir { , aFlag } } } } ) GetFileSaveName ( title, pathname, filename [ ] {, extension {, filter { , initdir { , aFlag } } } } ) 引数 title pathname filename, filename[ ] extension (オプション) PowerScript リファレンス ボリューム 2 説明 ダイアログボックスのタイトルを表す文字列を指定しま す。 標準のパス名と返されるパスを格納する文字列変数を指 定します。ユーザが単一ファイルを選択する場合は、 pathname 変数はパス名とファイル名を含みます。標準の ファイル名が[ファイル名]テキストボックスに表示さ れます。ただし、エンド ユーザは、別の名前を指定する ことができます。 返されたファイル名を格納する文字列変数、または選択さ れた複数のファイル名を格納する文字列変数の配列を指 定します。文字列変数の配列を指定した場合は、ダイアロ グボックスで複数選択が可能になります。 String 型の値。1 文字以上 3 文字以下の標準のファイル拡 張子を指定します。この引数を省略すると、" 拡張子なし " が標準の設定になります。 573 GetFileSaveName 引数 filter (オプション) initdir (オプション) aFlag (オプション) 説明 String 型の値。表示するファイルの説明、および表示する ファイルを選択するために使用するファイル拡張子(フィ ルタ)を指定します。構文は、次のとおりです。 description,*. ext 特に指定しない限り、" すべてのファイル (*.*),*.*" が設 定されます。 初期ディレクトリの名前を表す文字列を指定します。指定 を省略した場合は、現行のディレクトリが適用されます。 ダイアログボックスで使用できるオプションを表す UnsignedLong 型の値を指定します。各オプションのフラグ の値は、2 の(index -1)乗として計算されます。なお、 index はオプションに関連付けられた整数値を表します。 GetOpenFileName に渡される aFlag の値は、各オプション のフラグの値の合計になります。オプションの一覧、各オ プションに関連付けられたインデックス、および各オプ ションの意味については、GetOpenFileName の「解説」の 表を参照してください。 戻り値 Integer 型。正常に終了した場合は 1 を返します。エンド ユーザが[キャ ンセル]ボタンをクリックした場合、または Windows が表示をキャン セルした場合には、0 を返します。エラーが発生した場合、-1 を返し ます。引数のいずれかの値が NULL の場合、NULL を返します。 解説 開発者が標準のファイル拡張子を DOS と指定している場合、エンド ユーザが拡張子を付けずにファイル名を指定すると、PowerBuilder は 標準の拡張子 DOS をファイル名に付け加えます。フィルタとして機能 するファイル マスクを指定した場合、PowerBuilder は、そのマスクに 一致するファイルだけを表示します。 filename 引数に文字列を指定する場合は、ユーザは 1 つのファイルだ けを選択できます。pathname 引数はパス名とファイル名を含みます (たとえば、c:\temp\test.txt)。 filename 引数に文字列配列を指定する場合は、ユーザは複数のファイ ルを選択できます。ユーザが複数ファイルを選択した場合は、pathname 引数はパスだけを含みます(たとえば、c:\temp)。ユーザが単一ファ イルを選択した場合は、その名前が pathname 引数に追加されます(た と え ば、c:\temp\test.txt)。文 字 列 引 数 を 使 用 す る 例 に つ い て は、 GetFileOpenName 関数を参照してください。 filter 引数、initdir 引数、aFlag 引数の解説については、GetFileOpenName 関数を参照してください。 574 PowerBuilder 第 10 章 PowerScript の関数 例 次のステートメントは、ユーザが単一ファイルを選択できるようにす るためにファイルの選択 ダイアログボックスを表示します。標準の ファイル拡張子は DOC で、フィルタはすべてのファイルを表示し、最 初のディレクトリは C:\My Documents です。aFlag オプションに 32770 を指定しているため、ダイアログボックスが作成されたときに[読み 取り専用]チェックボックスがオンになった状態でエクスプローラ形 式のダイアログボックスが使用されます。ファイルが正常に選択され た場合、そのパスがシングルライン エディット コントロールに表示さ れます。 string ls_path, ls_file int li_rc ls_path = sle_1.Text li_rc = GetFileSaveName ( " ファイルの選択 ", & ls_path, ls_file, "DOC", & "All Files (*.*),*.*" , "C:\My Documents", & 32770) IF li_rc = 1 Then sle_1.Text = ls_path End If 関連項目 DirList DirSelect GetFileOpenName GetFolder PowerScript リファレンス ボリューム 2 575 GetFirstSheet GetFirstSheet 機能 シートがアクティブであるかどうかにかかわらず、MDI フレームの最 前面にあるシートを取得します。 対象 MDI フレーム ウィンドウ 構文 mdiframewindow.GetFirstSheet ( ) 引数 mdiframewindow 説明 最前面のシートを求める MDI フレーム ウィンドウを 指定します。 戻り値 Window 型。MDI フレームの最前面にあるシートを返します。フレー ム上に開いているシートがない場合、GetFirstSheet 関数は無効な値を返 します。mdiframewindow が NULL の場合は、NULL を返します。 解説 フレーム上の開いているシートに対して連続した処理を行う場合、 GetFirstSheet 関数と GetNextSheet 関数を使用します。これらの関数を GetActiveSheet 関数と組み合わせて使用することはできません。 GetFisrtSheet 関数の戻り値 IsValid 関数を使用して、戻り値が有効かどうかを確認します。無効な 値の場合、開いているシートはありません。 例 メニュー項目に対する次のスクリプトは、MDI フレームの最前面にあ るシートを返します。 window wSheet string wName wSheet = ParentWindow.GetFirstSheet() IF IsValid(wSheet) THEN // 開いているシートがあります。 wName = wsheet.ClassName() MessageBox(" 最初のシート ", wName) END IF 関連項目 576 GetNextSheet IsValid PowerBuilder 第 10 章 PowerScript の関数 GetFixesVersion 機能 現在の PowerBuilder 実行コンテキストの修正レベルを返します。たと えば、管理レベルが 8.0.3 の場合、修正バージョンは 3 になります。 対象 ContextInformation オブジェクト 構文 servicereference.GetFixesVersion ( fixversion ) 引数 servicereference fixversion 戻り値 説明 ContextInformation サービス インスタンスへの参照を 指定します。 修正バージョンを格納する整数を指定します。この引 数は、参照渡しされます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 現在の修正バージョンを取得します。 例 この例は、GetFixesVersion 関数を呼び出します。 String ls_name Constant String ls_currver = "8.0.3" Integer li_majver, li_minver, li_fixver ContextInformation ci this.GetContextService ("ContextInformation", ci) ci.GetMajorVersion(li_majver) ci.GetMinorVersion(li_minver) ci.GetFixesVersion(li_fixver) IF li_majver <> 8 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") ELSEIF li_minver <> 0 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") ELSEIF li_fixver <> 3 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") END IF PowerScript リファレンス ボリューム 2 577 GetFocus 関連項目 GetCompanyName GetHostObject GetMajorVersion GetMinorVersion GetName GetShortName GetVersionName GetFocus 機能 現在フォーカスが設定されているコントロールを確認します。 構文 GetFocus ( ) 戻り値 GraphicObject 型。現在フォーカスが設定されているコントロールを返 します。エラーが発生した場合、NULL コントロールに対する参照を 返します。 GetFocus が有効なコントロールを返したかどうかを確認するには、 IsValid 関数を使用します。 例 以下に、which_control を現在フォーカスが設定されているコントロー ルと同じデータ型に設定し、そのコントロールのテキスト プロパティ を text_value に設定するステートメントを示します。 GraphicObject which_control SingleLineEdit sle_which CommandButton cb_which string text_value which_control = GetFocus() CHOOSE CASE TypeOf(which_control) CASE CommandButton! cb_which = which_control text_value = cb_which.Text CASE SingleLineEdit! sle_which = which_control text_value = sle_which.Text CASE ELSE text_value = "" 578 PowerBuilder 第 10 章 PowerScript の関数 END CHOOSE 関連項目 IsValid SetFocus GetFolder 機能 フォルダ選択用のダイアログボックスを表示します。 構文 GetFolder ( title, directory ) 引数 title directory 説明 フォルダ選択用のツリービューが含まれているリスト ボックスの上部に表示される、タイトルの文字列を指定し ます。 フォルダ選択用のダイアログボックスに参照渡しされる ディレクトリ名の文字列を指定します。。ディレクトリの 名前を選択したとき、そのサブフォルダが存在する場合は ダイアログボックスのツリービューに表示されます。 戻り値 Integer 型。関数が正常に終了した場合は 1 を返します。エンド ユーザ が[キャンセル]ボタンをクリックした場合(またはダイアログボッ クスを閉じた場合)は 0 を返します。エラーが発生した場合は -1 を返 します。 解説 ユーザによって選択されたディレクトリは、フォルダ選択用のダイア ログボックスに渡されたのと同じ変数の中に返されます。 例 次に、フォルダ選択用のダイアログボックスで、Sybase ディレクトリ のフォルダの内容を表示する例を示します。title 引数に渡された文字 列は、ツリービューの上部に表示されます。 string ls_path = "d:\program files\sybase" integer li_result li_result = GetFolder( "my targets", ls_path ) sle_1.text=ls_path // ユーザが選択したパスをシングルライン エディット ボックスに入れ ます。 PowerScript リファレンス ボリューム 2 579 GetGlobalProperty 関連項目 DirectoryExists DirList DirSelect GetCurrentDirectory GetFileOpenName GetFileSaveName GetGlobalProperty 機能 SSL グローバル プロパティの値を返します。この関数は、EAServer に 接続している PowerBuilder クライアントによって使用されます。 対象 SSLServiceProvider オブジェクト 構文 sslserviceprovider.GetGlobalProperty ( property, values) 引数 sslserviceprovider property values 戻り値 説明 SSLServiceProvider サービス インスタンスへの参照を 指定します。 値を返す SSL プロパティの名前を指定します。 サポートされている全 SSL プロパティのリストにつ いては EAServer のマニュアルまたは接続オブジェク トのオンライン ヘルプを参照してください。 指定された SSL プロパティの値を格納する String 型 の配列を指定します。 Long 型。以下のいずれかの値を返します。 0 -1 -3 -10 -11 正常に終了しました。 不明なプロパティです。 プロパティに値がありません。 EAServer または SSL のエラーが発生しました。 引数リストが不正です。 解説 GetGlobalProperty 関数を使用すると、EAServer に SSL 接続している PowerBuilder クライアントが、グローバル SSL プロパティにアクセス できます。 580 PowerBuilder 第 10 章 PowerScript の関数 SSLServiceProvider インタフェースを使って設定されたすべてのプロ パティは、そのクライアントによって確立されたすべての EAServer サーバへの接続に対してグローバルになります。これらのグローバル な設定は、接続オブジェクトまたは JaguarORB オブジェクトのオプ ションとして指定することにより、接続レベルで上書きすることがで きます。 SSL プロパティの取得および設定を行うことができるのは、クライア ントだけです。サーバ コンポーネントには、SSLServiceProvider サービ スを使用する権限がありません。 例 次に、GetGlobalProperty 関数を使って、sessLingerTime プロパティの値 を取得する例を示します。 SSLServiceProvider ssl string ls_values[] long rc ... this.GetContextService("SSLServiceProvider", ssl) rc = ssl.GetGlobalProperty("sessLingerTime", ls_values) ... 関連項目 SetGlobalProperty GetHostObject 機能 コンテキストのホスト オブジェクトに対する参照を返します。 ホスト オブジェクト サポート 現在ホスト オブジェクトがサポートされているのは、Internet Explorer 上で動作するウィンドウ ActiveX 環境だけです。この環境では、 IWebBrowserApp ActiveX オートメーション サーバ オブジェクトに対 する参照を返します。 対象 ContextInformation オブジェクト 構文 servicereference.GetHostObject ( hostobject ) 引数 servicereference PowerScript リファレンス ボリューム 2 説明 コンテキスト情報のサービス インスタンスを参照しま す。 581 GetHostObject 引数 hostobject 戻り値 説明 ActiveX オートメーション サーバ オブジェクトへの参 照を格納する PowerObject を指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 コンテキスト オブジェクトモデルに対する参照を返します。Internet Explorer 3.0 以降でウィンドウ ActiveX を実行している場合、hostobject はインスタンス化していない OleObject 変数となり、ActiveX オート メーション サーバ オブジェクトへの参照を返します。これを使用し て、ホスト ブラウザを制御できます。ホスト オブジェクト サポート が使用できない場合、戻り値は -1 で hostobject は NULL になります。 例 この例は、GetHostObject 関数を呼び出します。Ici_info は ContextInformation 型のインスタンス変数であり、GetContextService 関数 によってすでに与えられています。ole1 は OLEObject 型のインスタン ス変数です。 Integer li_return li_return = ici_info.GetHostObject(ole1) IF li_return = 1 THEN sle_1.Text = "GetHostObject succeeded" ELSE sle_1.Text = "GetHostObject failed" cb_goback.Enabled = FALSE cb_navigate.Enabled = FALSE END IF 関連項目 582 GetCompanyName GetName GetShortName GetVersionName PowerBuilder 第 10 章 PowerScript の関数 GetItem リストビュー コントロールとツリービュー コントロールの指定され た項目に関連付けられているデータを取得します。 取得するデータ 使用する構文 リストビュー コントロールの指定された項目に関連 構文 1 付けられているデータ リストビュー コントロールの指定された項目とカラ 構文 2 ムに関連付けられているデータ ツリービュー コントロールの指定された項目に関連 構文 3 付けられているデータ 構文 1 リストビュー コントロールに対して 機能 リストビュー コントロールから、そのプロパティを調べるために ListViewItem オブジェクトを取得します。 対象 リストビュー コントロール 構文 listviewname.GetItem ( index, {column}, item ) 引数 listviewname index column item 説明 項目を取得するリストビュー コントロールの名前を指定 します。 取得する項目のインデックス番号を指定します。 項目の情報を取得するカラムのインデックス番号を指定 します。 ListViewItem オブジェクトを格納する ListViewItem 変数を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。取得した ListViewItem オブジェクトを、ListViewItem 変数の中に格納します。 解説 この構文によって、リストビュー コントロールの任意の項目のプロパ ティを取得することができます。カラムを指定しない場合は、項目の 最初のカラムのプロパティが取得されます。レポート ビューの場合の み、複数のカラムが表示されます。 ラベルだけを取得するには、構文 2 を使用します。特定の項目に固有 でないカラムのプロパティを取得するには、GetColumn 関数を使用しま す。 PowerScript リファレンス ボリューム 2 583 GetItem リストビュー コントロールの項目に関連付けられたピクチャおよび そのほかのプロパティ値を変更するには、GetItem 関数を使用して値を 取得し、プロパティ値を変更してから、SetItem 関数を使ってリスト ビュー コントロールに変更を適用します。 例 次に、GetItem 関数を使って、リストビュー コントロール lv_list の 2 番 目の項目を 5 番目に移動する例を示します。まず項目 2 を取得し、取 得した情報を 5 番目の項目としてリストビュー コントロールに挿入し た後、元の項目を削除します。 listviewitem l_lvi lv_list.GetItem(2, l_lvi) lv_list.InsertItem(5, l_lvi) lv_list.DeleteItem(2) 関連項目 GetColumn SetItem 構文 2 リストビュー コントロールに対して 機能 リストビューの項目の指定されたカラム中の表示値を取得します。 対象 リストビュー コントロール 構文 listviewname.GetItem ( index, column, label ) 引数 listviewname index column label 説明 表示値を取得するリストビュー コントロールの名前を指 定します。 表示値を取得する項目のインデックス番号を指定します。 値を取得するカラムのインデックス番号を指定します。 ListView がマルチカラムのレポート ビューでない場合は、 すべての項目がカラム 1 にあるとみなされます。 表示値を格納する String 型の変数を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。ListView カラムの表示値を、String 型の変数に格納し ます。 解説 リストビューの項目のプロパティ値を取得するには、構文 1 を使用し ます。 例 次に、リストビュー コントロール lv_list の 第 1 行のカラム 1 とカラム 3 から表示値を取得し、この値をシングルライン エディット コント ロール sle_info に表示する例を示します。 584 PowerBuilder 第 10 章 PowerScript の関数 string ls_artist, ls_comp lv_list.GetItem(1, 1 , ls_comp) lv_list.GetItem(1, 3 , ls_artist) sle_info.text = ls_artist +" wrote " + ls_comp + "." 関連項目 SetItem 構文 3 ツリービュー コントロールに対して 機能 指定された項目に関連付けられているデータを取得します。 対象 ツリービュー コントロール 構文 treeviewname.GetItem ( itemhandle, item) 引数 treeviewname itemhandle item 説明 指定された項目のデータを表示するツリービュー コント ロールの名前を指定します。 情報を取得する項目のハンドルを指定します。 指定された項目のハンドルで識別されている項目を格納 する TreeViewItem 変数を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ツリービュー 内にある特定の項目(ラベル、ハンドル、ピクチャ イン デ ッ ク ス な ど)に 関 連 付 け ら れ て い る 状 態 情 報 を 取 得 す る に は、 GetItem 関数を使用します。一度情報を検索すると、その情報をアプリ ケーションで使用できるようになります。項目のプロパティを変更す るには、GetItem 関数を呼び出して項目を TreeViewItem 変数に割り当 て、プロパティを変更し、SetItem 関数を呼び出して、変更内容をツ リービューにコピーします。 例 次の Clicked イベントの例では、クリックした項目を取得し、オーバー レイ ピクチャを変更します。SetItem 関数は、変更内容をツリービュー にコピーします。 treeviewitem tvi This.SetItem(handle, tvi) tvi.OverlayPictureIndex = 1 This.SetItem(handle, tvi) 次に、SelectionChanged イベントの項目を管理する例を示します。事前 に何も選択していなかった場合、l_tviold の値は 0 になります。 treeviewitem l_tvinew, l_tviold PowerScript リファレンス ボリューム 2 585 GetItemAtPointer // 事前に選択されていたツリービューの項目を取得します。 tv_list.GetItem(oldhandle, l_tviold) // 現在選択されているツリービューの項目を取得します。 tv_list.GetItem(newhandle, l_tvinew) // シングルライン エディット内の 2 つの項目の // ラベルを印刷します。 sle_get.Text = "Selection changed from " & + String(l_tviold.Label) + " to " & + String(l_tvinew.Label) 関連項目 InsertItem GetItemAtPointer 機能 カーソルの下にある項目のハンドルまたはインデックスを返します。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.GetItemAtPointer ( ) 引数 controlname 戻り値 説明 ハンドルまたはインデックスを取得するコントロールの 名前を指定します。 Long 型。カーソルの下のインデックス(リストビュー)かハンドル (ツリービュー)を返します。エラーが発生した場合は、-1 を返します。 解説 リストビュー コントロール内またはツリービュー コントロール内の 項目を選択するシステム イベント(たとえば Clicked イベントなど)に は、リストビューのインデックスかツリービューのハンドルを渡す引 数がすでにあります。GetItemAtPointer メソッドを使用すると、ユーザ イベント(インデックス引数またはハンドル引数のないシステム イベ ント)でリストビュー コントロールまたはツリービュー コントロール のインデックスやハンドルを取得できます。 例 次に、ツリービューの項目のハンドルをシングルライン エディット ボックスの中に表示する例を示します。 integer li_index li_index= tv_1.GetItematPointer ( ) sle_1.text = string (li_index) 586 PowerBuilder 第 10 章 PowerScript の関数 関連項目 FindItem SelectItem GetLastReturn 機能 直前に呼び出した InvokePBFunction 関数または TriggerPBEvent 関数から の戻り値を返します。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.GetLastReturn ( ) 引数 activexcontrol 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、ActiveX コントロー ルは OBJECT エレメントの NAME 属性になります。その ほかの環境で使用する場合には、これは PowerBuilder ウィ ンドウ ActiveX を含むコントロールを参照します。 戻り値 Any 型。直前の戻り値を返します。 解説 InvokePBFunction 関数や TriggerPBEvent 関数の後に GetLastReturn 関数を 呼び出すと、戻り値を取得できます。JavaScript スクリプトで InvokePBFunction 関数と TriggerPBEvent 関数の戻り値を取得する場合は、 GetLastReturn 関数を使用してください。VBScript スクリプトでは、 GetLastReturn 関数を使用するか、InvokePBFunction 関数や TriggerPBEvent 関数の引数からその戻り値を取得してください。 例 次に、JavaScript で GetLastReturn 関数を呼び出す例を示します。 ... retcd = PBRX1.TriggerPBEvent(theEvent, numargs); rc = parseInt(PBRX1.GetLastReturn()); if (rc != 1) { alert(" エラー。空の文字列です。"); } ... 次に、VBScript で GetLastReturn 関数を呼び出す例を示します。 ... retcd = PBRX1.TriggerPBEvent(theEvent, & numargs, args) rc = PBRX1.GetLastReturn() IF rc <> 1 THEN PowerScript リファレンス ボリューム 2 587 GetLibraryList msgbox " エラー。空の文字列です。" END IF ... 関連項目 GetArgElement InvokePBFunction SetArgElement TriggerPBEvent GetLibraryList 機能 アプリケーションのライブラリ探索パスのファイルを取得します。 構文 GetLibraryList ( ) 戻り値 String 型。現在のライブラリ リストを完全なパスで返します。ライブ ラリが複数ある場合は、カンマで区切られます。 解説 SetLibraryList 関数を使用して探索パスを更新する際は、事前に GetLibraryList を呼び出して、そのリストに追加するライブラリを付加 しておく必要があります。 例 次の例では、ライブラリ リストを取得してライブラリを追加した後 で、そのリストをリセットします。 string ls_list, ls_newlist ls_list = getlibrarylist () ls_newlist = ls_list + ",c:\my_library.pbl" setlibrarylist (ls_newlist) 関連項目 588 AddToLibraryList SetLibraryList PowerBuilder 第 10 章 PowerScript の関数 GetMajorVersion 機能 現行の PowerBuilder 実行コンテキストのメジャー バージョンを返しま す。たとえば、管理レベルが 8.0.3 の場合、メジャー バージョンは 8 で す。 対象 ContextInformation オブジェクト 構文 servicereference.GetMajorVersion ( majorversion ) 引数 servicereference majorversion 戻り値 説明 ContextInformation サービス インスタンスへの参照を指定 します。 Integer 型の値。GetMajorVersion 関数は、ここにメジャー バージョンを格納します。この引数は、参照渡しされます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 現行のメジャー バージョンを取得します。 例 次に、GetMajorVersion 関数を呼び出す例を示します。 String ls_name Constant String ls_currver = "8.0.3" Integer li_majver, li_minver, li_fixver ContextInformation ci this.GetContextService ("ContextInformation", ci) GetMajorVersion(li_majver) ci.GetMinorVersion(li_minver) ci.GetFixesVersion(li_fixver) IF li_majver <> 8 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") ELSEIF li_minver <> 0 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") ELSEIF li_fixver <> 3 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") END IF 関連項目 GetCompanyName GetFixesVersion GetHostObject GetMinorVersion PowerScript リファレンス ボリューム 2 589 GetMessage GetName GetShortName GetVersionName GetMessage 機能 Throwable 型のオブジェクトからエラー メッセージを返します。 構文 throwableobject.GetMessage ( ) 引数 throwableobject 説明 エラー メッセージを取得する Throwable 型のオブジェ クトを指定します。 戻り値 String 型。システム エラー オブジェクト(たとえば RuntimeError など) のエラー テキストは、事前設定されています。 解説 Throwable 型オブジェクトのエラー メッセージは、SetMessage 関数を 使用して設定できます。 例 次に、システム エラー メッセージを捕捉してメッセージ ボックスの 中に表示する例を示します。システム エラーを捕捉することによっ て、所定の範囲内にない arccosine(逆余弦)引数をアプリケーション ユーザが入力した場合のアプリケーション停止を回避できます。 Double ld_num ld_num = Double (sle_1.text) TRY sle_2.text = string (acos (ld_num)) CATCH (runtimeerror er) MessageBox(" 実行時エラー ", er.GetMessage()) END TRY 次の例では、ユーザ定義関数 wf_acos を呼び出すボタンの Clicked イベ ントから、ユーザ エラー メッセージを捕捉して表示します。ユーザ定義 関数は実行時エラーの捕捉によってアプリケーションの停止を回避し、 Exception オブジェクト型を継承するユーザ オブジェクト uo_exception に対してメッセージを設定します。 TRY wf_acos() CATCH (uo_exception u_ex) messageBox(" 範囲外です ", u_ex.GetMessage()) END TRY 590 PowerBuilder 第 10 章 PowerScript の関数 wf_acos 関数のコードは、SetMessage 関数の解説にコード例として示し てあります。 関連項目 SetMessage GetMinorVersion 機能 現行の PowerBuilder 実行コンテキストのマイナー バージョンを返しま す。たとえば、管理レベルが 8.0.3 の場合、マイナー バージョンは 0 で す。 対象 ContextInformation オブジェクト 構文 servicereference.GetMinorVersion ( minorversion ) 引数 servicereference minorversion 戻り値 説明 ContextInformation サービス インスタンスへの参照を 指定します。 Integer 型の値。GetMinorVersion 関数は、ここにマイ ナー バージョンを格納します。この引数は、参照渡し されます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 現行のマイナー バージョンを取得します。 例 この例は、GetMinorVersion 関数を呼び出します。 String ls_name Constant String ls_currver = "8.0.3" Integer li_majver, li_minver, li_fixver ContextInformation ci this.GetContextService ("ContextInformation", ci) ci.GetMajorVersion(li_majver) ci.GetMinorVersion(li_minver) ci.GetFixesVersion(li_fixver) IF li_majver <> 8 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") ELSEIF li_minver <> 0 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") PowerScript リファレンス ボリューム 2 591 GetName ELSEIF li_fixver <> 3 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") END IF 関連項目 GetCompanyName GetFixesVersion GetHostObject GetMajorVersion GetName GetShortName GetVersionName GetName 機能 現行の実行コンテキストの名前を取得します。 対象 ContextInformation オブジェクト 構文 servicereference.GetName ( name ) 引数 servicereference name 戻り値 説明 ContextInformation サービス インスタンスへの参照を 指定します。 String 型の値。GetName 関数はここに名前を格納しま す。この引数は、参照渡しされます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。次の値を返します。 • PowerBuilder 実行時 • PowerBuilder ウィンドウ プラグイン • PowerBuilder ウィンドウ ActiveX PowerBuilder Runtime ActiveX PowerBuilder Runtime PowerBuilder window Plug-in 解説 現在の実行環境を確認できます。 例 次に、GetName 関数を呼び出す例を示します。ci は ContextInformation 型のインスタンス変数です。 String ls_name this.GetContextService ("ContextInformation", ci) ci.GetName(ls_name) 592 PowerBuilder 第 10 章 PowerScript の関数 IF ls_name <> "PowerBuilder Runtime" THEN cb_close.visible = FALSE END IF 関連項目 GetCompanyName GetContextService GetFixesVersion GetHostObject GetMajorVersion GetMinorVersion GetShortName GetVersionName GetNativePointer 機能 OLE コントロールに関連付けられている OLE オブジェクトへのポイ ンタを取得します。このポインタによって、オブジェクトの外部 DLL の OLE 関数を呼び出すことができます。 対象 OLE コントロール、OLE カスタム コントロール 構文 olename.GetNativePointer ( pointer ) 引数 olename pointer 説明 取得するネイティブ ポインタが示すオブジェクトが含ま れる OLE コントロールの名前を指定します。 ポインタを格納する UnsignedLong 型変数を指定します。 GetNativePointer 関数が有効なポインタを取得できなかっ た場合、pointer に 0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 pointer は OLE の IUnknown インタフェースへのポインタです。ほかの インタフェースへのポインタを取得するには、OLE QueryInterface 関数 とともに使用します。 GetNativePointer 関数が呼び出されると、PowerBuilder は OLE の AddRef 関数を呼び出してポインタをロックします。DLL 関数、または ReleaseNativePointer 関数を使用した PowerBuilder スクリプトで、ポイ ンタを解放する必要があります。 PowerScript リファレンス ボリューム 2 593 GetNextSheet 外部 DLL 呼び出し専用 この関数は、外部 DLL 呼び出しに対してのみ有効です。 SetAutomationPointer 関数とは関係ありません。 例 次に、OLE オートメーションの外部関数を呼び出すために、OLE カス タム コントロール ocx_spell のポインタを取得する例を示します。 UnsignedLong lul_oleptr integer li_rtn li_rtn = ocx_spell.GetNativePointer(lul_oleptr) IF li_rtn = 0 THEN ... // オートメーションの外部関数を呼び出します。 ocx_spell.ReleaseNativePointer(lul_oleptr) END IF 関連項目 GetAutomationNativePointer ReleaseAutomationNativePointer ReleaseNativePointer GetNextSheet 機能 MDI フレーム内の指定されたシートの背面にあるシートを取得しま す。 対象 MDI フレーム ウィンドウ 構文 mdiframewindow.GetNextSheet ( sheet ) 引数 mdiframewindow sheet 戻り値 594 説明 次のシートを求める MDI フレーム ウィンドウを指定 します。 求めるシートの前面にあるシートを指定します。 Window 型。MDI フレーム内で sheet に指定したシートの背面にある シートを返します。指定した sheet の背面にシートがない場合には、無 効な値を返します。引数のいずれかの値が NULL の場合は、NULL を返 します。 PowerBuilder 第 10 章 PowerScript の関数 解説 フレーム内の開いている各シートに対して連続した処理を行うには、 GetFisrtSheet 関数を使用して最初のシートを取得し、GetNextSheet 関数 を何回か使用して残りのシートを取得します。それぞれの戻り値を IsValid 関数を使用してチェックし、最後のシートに達したかどうかを 確認します。GetFirstSheet 関数と GetNextSheet 関数は、GetActiveSheet 関 数と組み合わせて使用することはできません。 GetNextSheet 関数の戻り値のチェック IsValid 関数を使用して GetNextSheet 関数が有効なウィンドウを返した かどうかを確認します。指定したシートの背面にシートがなかった場 合、無効な値を返します。 例 メニュー項目に対する次のスクリプトでは、最前面から背面に順番に 開いているシートを取得し、リストボックス lb_sheets にシートの名前 を表示します。 boolean bValid window wSheet lb_sheets.Reset() wSheet = ParentWindow.GetFirstSheet() IF IsValid(wSheet) THEN lb_sheets.AddItem(wSheet.Title) DO wSheet = ParentWindow.GetNextSheet(wSheet) bValid = IsValid (wSheet) IF bValid THEN lb_sheets.AddItem(wSheet.Title) LOOP WHILE bValid END IF 関連項目 GetFirstSheet IsValid GetOrigin 機能 リストビューの項目の左上隅の X 座標と Y 座標を検索します。 対象 リストビュー コントロール 構文 listviewname.GetOrigin ( x , y ) PowerScript リファレンス ボリューム 2 595 GetParagraphSetting 引数 listviewname x y 説明 左上隅の座標を調べるリストビュー コントロールを指定 します。 リストビュー コントロールの X 座標を格納する Integer 型 変数を指定します。 リストビュー コントロールの Y 座標を格納する Integer 型 変数を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リストビュー コントロールの左上隅にドラッグされたオブジェクト の位置を調べるには、GetOrigin 関数を使用します。 例 次に、選択されたリストビューの項目の左上隅に、スタティック テキ ストの時計を移動する例を示します。 integer li_index listviewitem l_lvi li_index = lv_list.SelectedIndex() lv_list.GetItem(li_index, l_lvi) lv_list.GetOrigin(l_lvi.ItemX, l_lvi.ItemY) sle_info.Text = "X is "+ String(l_lvi.ItemX) & + " and Y is " + String(l_lvi.ItemY) st_clock.Move(l_lvi.itemx , l_lvi.ItemY) MessageBox(" 時計の位置 ", "X 座標 " & + String(st_clock.X) & + ", Y 座標 " & + String(st_clock.Y)+" です。") GetParagraphSetting 機能 リッチテキスト エディット コントロールで挿入ポイントがある段落 のインデント、左余白、または右余白のサイズを取得します。 対象 リッチテキスト エディット コントロール 構文 rtecontrol.GetParagraphSetting ( whichsetting ) 596 PowerBuilder 第 10 章 PowerScript の関数 引数 rtecontrol whichsetting 説明 段落情報を取得するコントロールの名前を指定します。 ParagraphSetting カタログ データ型。取得する値の設定を 指定します。値は以下のとおりです。 • Indent! − 段落のインデント • LeftMargin! − 段落の左余白 • RightMargin! − 段落の右余白 戻り値 Long 型。1/1000 インチの単位で指定された設定のサイズを返します。 エラーが発生した場合、-1 を返します。whichsetting が NULL の場合は、 NULL を返します。 例 次に、現行の段落のインデント設定を取得する例を示します。 long ll_indent ll_indent = rte_1.GetParagraphSetting(Indent!)) 関連項目 GetAlignment GetSpacing GetTextColor GetTextStyle SetParagraphSetting GetParent 機能 指定されたオブジェクトの親を取得します。 対象 すべてのオブジェクト 構文 objectname.GetParent ( ) 引数 objectname 説明 ウィンドウ オブジェクト、ユーザ オブジェクト、メニュー 項目上のコントロールを指定します。指定されたコント ロールの親のオブジェクトを取得します。 戻り値 PowerObject 型。objectname に指定されたコントロールの親への参照を 返します。 例 タブ ページとして使用されるユーザ オブジェクトに対するイベント のスクリプトで、親のタブ コントロールへの参照を汎用的にするに は、次のように記述します。 PowerScript リファレンス ボリューム 2 597 GetParent // a_tab は総称です。 // 特定のページのことはわかりません。 tab a_tab // a_tab_page は総称です。 // 特定のコントロールのことはわかりません。 userobject a_tab_page // タブ コントロールとタブ ページの値を取得します。 a_tab = this.GetParent( ) // 解説のため、重複しているものもあります。 a_tab_page = this // タブ ページのプロパティを設定します。 a_tab_page.PowerTipText = "Important property page" // タブ コントロールのプロパティを設定します。 a_tab.PowerTips = TRUE // タブ コントロールの関数を実行します。 a_tab.SelectTab(a_tab_page) a_tab_page は、ユーザ オブジェクトのコントロールのことはわからな いので、参照することはできません。a_tab もタブ コントロール内の 特定のページについてはわからないので、参照することはできません。 タブページ ユーザ オブジェクトのコントロールのイベントのスクリ プトで、ユーザ オブジェクトとタブ ページとしてユーザ オブジェク トを含むタブ コントロールを参照するには、2 つのレベルの GetParent 関数を使用します。 // コントロールを参照するには、GetParent() 関数にレベルをあと 1 つ追加します。 // 上記と同じ設定を行うことができます。 tab a_tab userobject a_tab_page a_tab_page = this.GetParent() a_tab = a_tab_page.GetParent() a_tab_page.PowerTipText = "Important property page" a_tab.PowerTips = TRUE a_tab.SelectTab(a_tab_page) 関連項目 598 ParentWindow 12 ページの「代名詞」 PowerBuilder 第 10 章 PowerScript の関数 GetPin 機能 EAServer によって呼び出され、SSL 接続に使用する PIN を取得します。 この関数は、EAServer に接続している PowerBuilder クライアントに よって使用されます。 対象 SSLCallBack オブジェクト 構文 sslcallback.GetPin ( thesessioninfo, timedout ) 引数 sslcallback thesessioninfo timedout 説明 カスタマイズされた SSLCallBack オブジェクトのインス タンスを指定します。 SSL セッションに関する情報を含む CORBA オブジェク トを指定します。オプションで、この情報を表示し、セッ ションについての詳細をユーザに提供することもできま す。 コールバックの理由を示す Boolean 型の値を指定します。 TRUE の値は、PIN がタイムアウトしているため、再び取 得する必要があることを意味します。FALSE の値は、SSL 接続の時点で PIN が指定されていなかったことを意味し ます。 戻り値 String 型。ユーザによって指定された PIN を返します。 解説 PowerBuilder のアプリケーションでは、通常、GetPin 関数を直接呼び 出すことはありません。SSL 接続用 PKCS 11 トークンにログインする た め の PIN を EAServer ク ラ イ ア ン ト が 指 定 し な か っ た 場 合 は、 EAServer が GetPin 関数を呼び出します。 SSLCallBack オブジェクトの任意の関数の動作を上書きするためには、 SSLCallBack から継承された標準クラス ユーザ オブジェクトを作成 し、必要であればこのオブジェクトをカスタマイズします。コールバッ クが要求されたときに使用するオブジェクトを EAServer に認識させ るには、SSL の callbackImpl プロパティにオブジェクト名を指定しま す。このプロパティの値を設定するには、SetGlobalProperty 関数を呼び 出します。 GetPin の実装を指定しないと、EAServer は CORBA::NO_IMPLEMENT 例 外を捕捉するため、空の文字列が返されます。有効な戻り値を取得す るには、PIN の入力を要求する関数をコーディングします。渡された thesessioninfo オブジェクトから取得したトークン名などの情報をユー ザに提供することも可能です。 不正な PIN か、空の文字列が返された場合、EAServer は TrustVerify コールバックを呼び出します。 PowerScript リファレンス ボリューム 2 599 GetPin このコールバック関数内で例外を送出することによって、このような 接続の試行をユーザがキャンセルすることが可能になります。 SSLCallback 関数で送出された例外はそのすべてが、 CTSSecurity::UserAbortedException をユーザに返します。その例外を捕捉 するには、ConnectToServer 関数を try-catch ブロックの中に含める必要 があります。 例 次に、新規 SSL セッションで、またはセッションがタイムアウトした ときに PIN の入力を要求する例を示します。テキスト ボックスの入力 された情報をアスタリスクに置き換え、PIN を正確に入力できるよう に 2 回以上の入力を許可するなどの処理も実際には必要です。 // インスタンス変数: // string is_tokenName // SSLServiceProvider issp_jag CTSSecurity_sslSessionInfo mySessionInfo is_tokenName = mySessionInfo.getProperty( "tokenName" ) w_response w_pin IF timedout THEN MessageBox("SSL セッションは満了しました。", & ls_tokenName + " 証明書データベースにアクセスするには " + & "PIN を再入力してください。") ELSE MessageBox("SSL セッションには PIN が必要です。", & ls_tokenName + " 証明書データベースにアクセスするには " + & "PIN を入力してください。") END IF string s_PIN userabortedexception ue_cancelled // PIN のプロンプトを開きます。 Open(w_pin) // 入力された値を取得します。 s_PIN = Message.StringParm // 処理続行の場合はプロパティを設定します。 if s_PIN <> ABORT_VALUE then issp_jag.setglobalproperty("pin", s_PIN) // それ以外の場合は強制終了します。 else ue_cancelled = CREATE userabortedexception 600 PowerBuilder 第 10 章 PowerScript の関数 ue_cancelled.text = "User cancelled request when " & + "asked for PIN." throw ue_cancelled end if return s_PIN 関連項目 ConnectToServer GetCertificateLabel GetCredentialAttribute TrustVerify GetRecordSet 機能 現行の ADO Recordset オブジェクトを返します。 対象 ADOResultSet オブジェクト 構文 adoresultset.GetRecordSet ( adorecordsetobject ) 引数 adoresultset adorecordsetobject 説明 ADO レコードセットを含む ADOResultSet オブジェク トを指定します。 現行の ADO レコードセットを格納する OLEObject オ ブジェクトを指定します。この引数は、参照渡しされ ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 GetRecordSet 関数は、ADO レコードセットを、PowerBuilder でネイティ ブの ADO レコードセットとして使用できる OLEObject オブジェクト として返すのに使用します。ADO レコードセットを含む ADOResultSet オブジェクトには、事前に、SetRecordSet 関数や SetResultSet 関数を使 用して値を入れておく必要があります。 例 次の例では、まず、既存のデータストア オブジェクトからの結果集合 を、ResultSet オブジェクトの中に生成します。ResultSet オブジェクト は、新規 ADOResultSet オブジェクトに値を割り当てるのに使用しま す。ADOResultSet オブジェクトに対して GetRecordSet 関数を実行し、 ADO レコードセットのメソッドを使用できる OLEObject オブジェク トとして ADO レコードセットを返します。 resultset lrs_resultset ADOresultset lrs_ADOresultset PowerScript リファレンス ボリューム 2 601 GetRemote OLEObject loo_ADOrecordset // 既存のデータストアから結果集合を生成します。 ds_source.GenerateResultSet(lrs_resultset) // 新規の ADOResultSet オブジェクトを作成し、 // 上記で生成した結果集合から値を入れます。 lrs_ADOresultset = CREATE ADOResultSet lrs_ADOresultset.SetResultSet(lrs_resultset) // ADOResultSet オブジェクトの中のデータを // ADO レコードセットとして使用できる OLEObject に渡します。 loo_ADOrecordset = CREATE OLEObject lrs_ADOresultset.GetRecordSet(loo_ADOrecordset) // 上記の OLEObject に対してネイティブの ADO レコードセットの メソッドを呼び出します。 loo_ADOrecordset.MoveFirst() 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GenerateResultSet メソッド SetRecordSet SetResultSet GetRemote DDE サーバ アプリケーションに対してデータを返し、そのデータを指 定された変数に格納するように要求します。確立した DDE 接続の種類 によって、使用する構文が異なります。 目的 使用する構文 DDE サーバ アプリケーションに対して 1 つのリクエスト 構文 1 を出す(コールド リンク) チャネルを開いた後、DDE サーバ アプリケーションから 構文 2 データを要求する(ウォーム リンク) 構文 1 1 つの DDE リクエストを行う 機能 開かれているチャネルを要求せずに、DDE サーバ アプリケーションに 対してデータを要求し、そのデータを指定された変数に格納します。 サーバに対してリクエストを 1 つまたは 2 つしか行わない場合、この 構文が適しています。 602 PowerBuilder 第 10 章 PowerScript の関数 構文 GetRemote ( location, target, applname, topicname ) 引数 location target applname topicname 戻り値 説明 String 型の値。DDE サーバ アプリケーションから取得する データの位置を指定します。location の形式は、メッセー ジを受け取る DDE サーバ アプリケーションによって異な ります。 String 型の変数。取得したデータを格納する場所を指定し ます。 String 型の値。DDE サーバ アプリケーションの DDE 名を 指定します。別の PowerBuilder アプリケーションが DDE サーバの場合には、StartServerDDE 関数の呼び出し時に指 定したアプリケーション名を指定します。 String 型の値。コマンドで使用するアプリケーションのイ ンスタンスまたはデータを指定します。たとえば Microsoft Excel の場合、この引数には "system"、または開いている スプレッドシートの名前を指定します。別の PowerBuilder アプリケーションが DDE サーバの場合には、StartServerDDE 関数の呼び出し時に指定したトピック名を指定します。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 リンクは開始されていません。 リクエストが拒否されました。 引数のいずれかの値が NULL の場合は、NULL を返します。 解説 DDE を使用する場合、PowerBuilder アプリケーションは、クライアン ト ウィンドウとなるウィンドウを開いている必要があります。構文 1 では、アクティブ ウィンドウが DDE クライアントのウィンドウにな ります。 DDE チャネル、ウォーム リンク、およびコールド リンクについての 詳細は、ExecRemote 関数の 2 つの構文を参照してください。 例 次のステートメントは、Microsoft Excel に対して PROFIT.XLS という ワークシートの 1 行目の 2 列目のデータを返すように要求し、返され たデータを PowerBuilder の String 型の変数 ls_ProfData に格納します。 GetRemote 関数を 1 回呼び出してコールド リンクを確立し、データを 取得してからリンクを終了します。 string ls_ProfData GetRemote("R1C2", ls_ProfData, & "Excel", "PROFIT.XLS") 関連項目 ExecRemote SetRemote PowerScript リファレンス ボリューム 2 603 GetRemote 構文 2 開いたチャネルを介して DDE リクエストを行う 機能 サーバに対するチャネルを開いてウォーム リンクを確立している場 合に、DDE サーバ アプリケーションに対してデータを返すように要求 し、返されたデータを指定された変数に格納します。複数の DDE リク エストを行う予定がある場合には、チャネルを開いてウォーム リンク を使用する方が効率的です。 構文 GetRemote ( location, target, handle {, windowhandle } ) 引数 location target handle windowhandle (オプション) 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 -9 解説 説明 String 型の値。取得するデータの位置を指定します。 location の形式は、リクエストを受け付ける DDE アプリ ケーションによって異なります。 String 型の変数。取得したデータの格納先を指定します。 Long 型の値。DDE サーバ アプリケーションに対するチャ ネルを指定します。OpenChannel 関数を呼び出して DDE チャネルを開くと、この引数に指定された値が返されます。 DDE クライアントとして機能させているウィンドウに対 するハンドルを指定します。複数のウィンドウを開いてい るとき、DDE クライアントとして機能させるウィンドウ を指定するために使用します。 リンクは開始されていません。 リクエストが拒否されました。 handle が NULL です。 DDE を使用する場合、PowerBuilder アプリケーションは、クライアン ト ウィンドウとなるウィンドウを開いている必要があります。この構 文の場合には、windowhandle を使用してクライアント ウィンドウを指 定できます。 この構文を使用する前に、OpenChannel 関数を呼び出して DDE チャネ ルを確立してください。 DDE チャネル、ウォーム リンク、コールド リンクについての詳細は、 ExecRemote 関数を参照してください。 例 次のステートメントは、handle で指定されたチャネル(Microsoft Excel のワークシート)に対して 1 行目の 2 列目のデータを返すように要求 し、返されたデータを PowerBuilder の String 型の変数 ls_ProfData に格 納します。GetRemote 関数は、OpenChannel 関数によって確立された ウォーム リンクを利用します。 String ls_ProfData 604 PowerBuilder 第 10 章 PowerScript の関数 long handle handle = OpenChannel("Excel", "REGION.XLS") ... GetRemote("R1C2", ls_ProfData, handle) ... CloseChannel(handle) 次のステートメントは、上記の例に似ています。ただし、次の例は DDE チャネルをウィンドウ w_rpt に関連付けています。 String ls_ProfData long handle handle = OpenChannel("Excel", "REGION.XLS", & Handle(w_rpt)) ... GetRemote("R1C2", ls_ProfData, & handle, Handle(w_rpt)) ... CloseChannel(handle, Handle(w_rpt)) 関連項目 CloseChannel ExecRemote OpenChannel SetRemote GetSelectedDate 機能 選択されている日付を取得します。 対象 月表示カレンダ コントロール 構文 controlname.GetSelectedDate ( d ) 引数 controlname d 戻り値 説明 選択されている日付を取得する月表示カレンダ コント ロールの名前を指定します。 参照で返される日付の値。この値は、選択されている日付 を表します。 Integer 型。正常に終了した場合は 0 を返します。それ以外の場合は、 次のいずれかの負の値を返します。 -1 日付の範囲が選択されています。 PowerScript リファレンス ボリューム 2 605 GetSelectedRange -2 不明なエラーです。 解説 日付の範囲が選択されている場合は -1 を返し、その範囲内で最初の日 付を取得します。 例 次に、選択された日付を取得して seldate に格納する例を示します。 integer li_return Date seldate li_return = mc_1.GetSelectedDate(seldate) 関連項目 GetSelectedRange SetSelectedDate SetSelectedRange GetSelectedRange 機能 選択されている日付の範囲を取得します。 対象 月表示カレンダ コントロール 構文 controlname.GetSelectedRange ( start, end ) 引数 controlname start end 説明 選択されている日付の範囲を取得する月表示カレンダ コ ントロールの名前を指定します。 参照で返される日付の値。この値は、選択されている日付 の範囲内で最初の日付を表します。 参照で返される日付の値。この値は、選択されている日付 の範囲内で最後の日付を表します。 戻り値 Integer 型。成功した場合は 0 を返し、1 日だけを選択した場合は -1 を、 不明なエラーの場合は -2 を返します。 解説 1 日だけ選択されている場合は 0 を返し、start と end の両方のパラメー タにその日付を格納します。 例 次のコードは、DateChanged イベントのスクリプトです。範囲内の最 初の日付が入力された後に最後の日付の入力を要求し、ユーザに選択 されている範囲を確認します。 date startdate, enddate integer li_return li_return = mc_1.GetSelectedRange(startdate, enddate) 606 PowerBuilder 第 10 章 PowerScript の関数 if li_return = -1 then MessageBox(" 選択されている日付 ", & " 帰宅日を選択してください。") elseif li_return = 0 then MessageBox(" 選択されている日付 ", string(startdate) +& " - " + string(enddate) + " が選択されています。"& + "~r~n 確定する場合は[OK]をクリックしてください。") else MessageBox(" 選択されている日付 ", & " エラーが発生しました。旅行の日程を再度選択 " & + " してください。") end if 関連項目 GetDisplayRange GetSelectedDate SetSelectedDate SetSelectedRange GetSeriesStyle グラフのデータ系列の表示形態を調べます。個別のデータ ポイントの 表示形態の設定を変更すると、データ系列の表示形態の設定も変更さ れます。したがって、GetSeriesStyle 関数から返された値は、必ずしも 現行のグラフの状態を反映しているとは限りません。使用する構文は、 取得する情報によって異なります。 目的 データ系列の色 データ系列の線種と線幅 データ系列の塗りつぶしパターンまたはシンボル データ系列のオーバーレイの状態(データ系列が別のグラ フの上に折れ線として表示されているかどうか) 使用する構文 構文 1 構文 2 構文 3 構文 4 GetSeriesStyle 関数は、データ系列についての情報を取得します。デー タ系列内の各データ ポイントには、表示形態を個別に設定できます。 データ系列の表示形態の情報を変更するには、SetSeriesStyle 関数を使 用します。データ ポイントの表示形態の情報を取得するには GetDataStyle を使用します。データ系列の表示形態の設定を上書きし、データ ポイ ントの表示形態を個別に設定するには、SetDataStyle 関数を使用しま す。 PowerScript リファレンス ボリューム 2 607 GetSeriesStyle グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、折れ線グラフ内のデータ ポイント またはデータ系列の塗りつぶしパターンを確認することができます。 ただし、その塗りつぶしパターンは表示されません。 構文 1 データ系列の色を示す値を取得する 機能 グラフのデータ系列の色を示す値を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetSeriesStyle ( { graphcontrol, } seriesname, colortype, colorvariable ) 引数 controlname 説明 グラフ コントロールの名前、またはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列の色を示す値 を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ル内のグラフの名前を指定します。指定されたグラフの ドウ コント データ系列の色を示す値を取得します。 ロールのみ) seriesname String 型の値。データ系列の名前を指定します。指定され たデータ系列の色を示す値を取得します。 colortype grColorType カタログ データ型の値。色を示す値を取得す るデータ系列の外観を指定します。 • Foreground! − テキストの色 • Background! − 背景の色 • LineColor! − 線の色 colorvariable 戻り値 608 • Shade! − 影の色(3D グラフや塗りつぶしたデータ マー カーのあるグラフ) Long 型の変数を指定します。指定された変数に色の RGB 値を格納します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ系列と項目の RGB 値を colorvariable に格納します。引数のいずれかの値が NULL の場合は、NULL を返しま す。 PowerBuilder 第 10 章 PowerScript の関数 例 次のステートメントは、グラフ gr_emp_data にあるデータ系列のテキス トの色(描画色)を変数 color_nbr に格納します。データ系列の名前は、 シングルライン エディット コントロール sle_series に入力されていま す。 long color_nbr gr_emp_data.GetSeriesStyle(sle_series.Text, & Foreground!, color_nbr) 次のステートメントは、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers にあるデータ系列 PCs の背景色を変数 color_nbr に格納します。 long color_nbr // 色を示す値を取得します。 dw_equipment.GetSeriesStyle("gr_computers", & "PCs", Background!, color_nbr) 次のステートメントは、グラフ gr_product_data でマウス ポインタがあ るデータ系列の色を line_color に格納します。 string SeriesName integer SeriesNbr, Data_Point long line_color grObjectType MouseHit MouseHit = ObjectAtPointer(SeriesNbr, Data_Point) IF MouseHit = TypeSeries! THEN SeriesName = & gr_product_data.SeriesName(SeriesNbr) gr_product_data.GetSeriesStyle(SeriesName, & LineColor!, line_color) END IF 関連項目 AddSeries GetDataStyle FindSeries SetDataStyle SetSeriesStyle 構文 2 データ系列の線種と線幅についての情報を取得する 機能 グラフのデータ系列の線種と線幅についての情報を取得します。 PowerScript リファレンス ボリューム 2 609 GetSeriesStyle 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetSeriesStyle ( { graphcontrol, } seriesname, linestyle, linewidth ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列の線種と線幅 についての情報を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ルのグラフの名前を指定します。指定されたグラフの線種 ドウ コント と線幅についての情報を取得します。 ロールのみ) seriesname String 型の値。データ系列の名前を指定します。指定され たデータ系列の線種についての情報を取得します。 linestyle LineStyle 型の変数を指定します。指定された変数に、 seriesname に指定したデータ系列の線種を格納します。 linewidth Integer 型の変数を指定します。指定された変数に、 seriesname に指定したデータ系列の線の幅についての情報 を格納します。幅の単位はピクセルです。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。LineStyle カタログ データ型の値を linestyle に格納し、 指定されたデータ系列の線の幅についての情報を linewidth に格納し ます。引数のいずれかの値が NULL の場合は、NULL を返します。 例 次のステートメントは、グラフ gr_product_data でマウス ポインタがあ るデータ系列の線種についての情報を変数 line_style に格納し、線幅に ついての情報を変数 line_width に格納します。 string SeriesName integer SeriesNbr, Data_Point, line_width LineStyle line_style grObjectType MouseHit MouseHit = ObjectAtPointer(SeriesNbr, Data_Point) IF MouseHit = TypeSeries! THEN SeriesName = & gr_product_data.SeriesName(SeriesNbr) gr_product_data.GetSeriesStyle(SeriesName, & line_style, line_width) END IF 610 PowerBuilder 第 10 章 PowerScript の関数 関連項目 AddSeries GetDataStyle FindSeries SetDataStyle SetSeriesStyle 構文 3 データ系列の塗りつぶしパターンまたはシンボルに ついての情報を取得する 機能 グラフのデータ系列の塗りつぶしパターンまたはシンボルについての 情報を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetSeriesStyle ( { graphcontrol, } seriesname, enumvariable ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列の塗りつぶし パターンまたはシンボルについての情報を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ルのグラフの名前を指定します。指定されたグラフのデー ドウ コント タ系列の塗りつぶしパターンまたはシンボルについての ロールのみ) 情報を取得します。 seriesname String 型の値。データ系列の名前を指定します。指定され たデータ系列の塗りつぶしパターンまたはシンボルにつ いての情報を取得します。 enumvariable 塗りつぶしパターンまたはシンボルについての情報を格 納する変数を指定します。FillPattern カタログ データ型ま たは grSymbolType カタログ データ型の変数を指定できま す。GetSeriesStyle によって格納される表示形態の情報は、 変数の型によって異なります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ系列の塗りつぶしパターンまたはシ ンボルについての情報は、enumvariable に指定された変数に格納され ます。引数のいずれかの値が NULL の場合は、NULL を返します。 解説 GetSeriesStyle 関数が enumvariable に指定された変数に格納するカタロ グ データ型の値の一覧については、SetSeriesStyle 関数を参照してくだ さい。 PowerScript リファレンス ボリューム 2 611 GetSeriesStyle 例 次のステートメントは、グラフ gr_product_data でマウス ポインタがあ るデータ系列の塗りつぶしパターンについての情報を変数 data_pattern に格納します。 string SeriesName integer SeriesNbr, Data_Point FillPattern data_pattern grObjectType MouseHit MouseHit = ObjectAtPointer(SeriesNbr, Data_Point) IF MouseHit = TypeSeries! THEN SeriesName = & gr_product_data.SeriesName(SeriesNbr) gr_product_data.GetSeriesStyle(SeriesName, & data_pattern) END IF 次の例では、データウィンドウ コントロール dw_employees のグラフ gr_depts で、ポインタがあるデータ系列の塗りつぶしパターンについての 情報を data_pattern 変数に格納します。その後、gr_dept_data グラフの Total Salary というデータ系列の塗りつぶしパターンを、data_pattern 変 数に格納されているパターンに設定します。 string SeriesName integer SeriesNbr, Data_Point FillPattern data_pattern grObjectType MouseHit MouseHit = & ObjectAtPointer("gr_depts" , SeriesNbr, & Data_Point) IF MouseHit = TypeSeries! THEN SeriesName = & dw_employees.SeriesName("gr_depts" , SeriesNbr) dw_employees.GetSeriesStyle("gr_depts" , & SeriesName, data_pattern) gr_dept_data.SetSeriesStyle("Total Salary", & data_pattern) END IF 612 PowerBuilder 第 10 章 PowerScript の関数 上記の例では、最後の引数として指定した変数 data_pattern のデータ 型を変更して、シンボルについての情報を格納できるように設定する こともできます。 関連項目 AddSeries GetDataStyle FindSeries SetDataStyle SetSeriesStyle 構文 4 データ系列がオーバーレイであるかどうかを判別する 機能 グラフのデータ系列がオーバーレイであるかどうか、つまり、データ 系列が別のグラフの上に折れ線として表示されているかどうかを調べ ます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetSeriesStyle ( { graphcontrol, } seriesname,overlayindicator ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列のオーバーレ イの状態を示す値を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ルのグラフの名前を指定します。指定されたグラフのデー タ系列のオーバーレイの状態を示す値を取得します。 ドウ コント ロールのみ) seriesname String 型の値。オーバーレイの状態を示す値を取得する データ系列の名前を指定します。 overlayindicator Boolean 型の変数。指定された変数に、seriesname に指定し たデータ系列がオーバーレイであるかどうかを示す値を 格納します。データ系列がオーバーレイの場合は TRUE を 返し、オーバーレイでない場合は FALSE を返します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ系列がオーバーレイの場合は overlayindicator に TRUE を返し、オーバーレイでない場合は FALSE を 返します。引数のいずれかの値が NULL の場合は、NULL を返します。 PowerScript リファレンス ボリューム 2 613 GetShortName 例 次のステートメントは、グラフ gr_emp_data のデータ系列がオーバーレ イであるかどうかを返します。データ系列の名前は、シングルライン エディット コントロール sle_series に入力されています。 boolean is_overlay gr_emp_data.GetSeriesStyle(sle_series.Text, & is_overlay) GetShortName 機能 現行の PowerBuilder 実行コンテキストのショートネームを取得しま す。 対象 ContextInformation オブジェクト 構文 servicereference.GetShortName ( shortname ) 引数 servicereference shortname 戻り値 説明 ContextInformation サービス インスタンスへの参照を指定 します。 String 型の値。GetShortName 関数はここにショートネーム を格納します。この引数は、参照渡しされます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。次の値を返します。 • PowerBuilder 実行時 • PowerBuilder ウィンドウ プラグイン • PowerBuilder ウィンドウ ActiveX PBRTX PBRun PBWinPlugin 解説 現在の実行環境を確認できます。 例 次に、GetShortName 関数を呼び出す例を示します。ci は ContextInformation 型のインスタンス変数です。 String ls_name this.GetContextService ("ContextInformation", ci) ci.GetShortName(ls_name) IF ls_name <> "PBRun" THEN cb_close.visible = FALSE END IF 関連項目 614 GetCompanyName PowerBuilder 第 10 章 PowerScript の関数 GetContextService GetFixesVersion GetHostObject GetMajorVersion GetMinorVersion GetName GetVersionName GetSpacing 機能 リッチテキスト エディット コントロールで挿入ポイントがある段落 の行間を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.GetSpacing ( ) 引数 rtename 説明 挿入ポイントがある段落の行間を調べるリッチテキスト エディット コントロールの名前を指定します。 戻り値 Spacing 型。挿入ポイントがある段落の行間を示す Spacing カタログ データ型の値を返します。 解説 複数の段落が選択されている場合、挿入ポイントは、最初の段落か最 後の段落にあります。挿入ポイントの位置は、エンド ユーザの段落の 選択方法によって異なります。報告される値は、挿入ポイントの位置 によって異なります。 例 次に、行間のカタログ データ型の値を変数 l_spacing に格納する例を示 します。値は、挿入ポイントがある段落の行間を示します。 spacing l_spacing l_spacing = rte_1.GetSpacing() 関連項目 GetTextStyle SetSpacing SetTextStyle PowerScript リファレンス ボリューム 2 615 GetStatus GetStatus 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションのステータスを返します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.GetStatus ( ) 引数 CORBACurrent 戻り値 説明 CORBACurrent サービス インスタンスへの参照を指 定します。 Integer 型。エラーが発生した場合は -1 を返します。正常に終了した場 合は、以下の正の整数のいずれかを返します。 1 ステータス : アクティブ 2 ステータス : ロールバックの対象としてマーク済み 3 ステータス : 準備完了 4 ステータス : コミット完了 5 ステータス : ロールバック完了 6 ステータス : 不明 7 ステータス : トランザクションなし 8 ステータス : 準備中 9 ステータス : コミット中 10 ステータス : ロールバック中 解説 GetStatus 関数を使うと、BeginTransaction 関数を使用してトランザク ションを開始したクライアントまたはコンポーネントで、トランザク ションの現在のステータスを確認できます。EAServer は、2 フェーズ コミット トランザクション コーディネータ(OTS/XA)を使用してい ることが必要です。 GetStatus は、トランザクションが開始されていて prepare が発行されて いない場合、1 を返します。 GetStatus は、ヒューリスティックスが存在する可能性があれば 4 か 5 を返します。それ以外の場合で、トランザクションが完了後に破棄さ れたのであれば値として 7 が返されます。 戻り値が 6 であれば、トランザクションが遷移状態にあるという意味 であり、それ以降に呼び出しを行うと、最終的には別のステータスが 返されます。 616 PowerBuilder 第 10 章 PowerScript の関数 GetStatus が 8、9、または 10 を返した場合は、トランザクションが開 始しただけで、準備、コミット、またはロールバックの処理はまだ完 了していません。この原因としては、トランザクションの参加者から 応答が保留になっていることが考えられます。 例 次に、GetStatus を使用して現在のトランザクションのステータスを取 得する例を示します。 // インスタンス変数 : // CORBACurrent corbcurr integer li_rc, li_status li_rc = this.GetContextService("CORBACurrent", & corbcurr) IF li_rc <> 1 THEN // エラーを処理します。 END IF li_rc = corbcurr.Init( "iiop://jagserver:9000") IF li_rc <> 1 THEN // エラーを処理します。 ELSE li_status = corbcurr.GetStatus() CHOOSE CASE li_status CASE 1 // 各値に応じた処理を行います。 ... END CHOOSE END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetTransactionName Init ResumeTransaction RollbackOnly RollbackTransaction SetTimeout SuspendTransaction PowerScript リファレンス ボリューム 2 617 GetTextColor GetTextColor 機能 リッチテキスト エディット コントロールで選択されているテキスト の色を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.GetTextColor ( ) 引数 rtename 戻り値 説明 選択されたテキストの色を調べるリッチテキスト エ ディット コントロールの名前を指定します。 Long 型。現行の選択されているテキストの色を指定する Long 型の値 を返します。異なる色のテキストが選択されている場合、最初の文字 の色を返します。エラーが発生した場合、-1 を返します。 例 次に、選択されているテキストの色を表す Long 型の値を rte_1 に格納 する例を示します。 long ll_color ll_color = rte_1.GetTextColor() 関連項目 GetTextStyle SetTextColor SetTextStyle GetTextStyle 機能 選択されたテキストに太字や斜体などのテキスト スタイルが設定さ れているかどうかを調べます。 対象 リッチテキスト エディット コントロール 構文 rtename.GetTextStyle ( textstyle ) 引数 rtename 618 説明 選択されたテキストの書式を調べるリッチテキスト エ ディット コントロールの名前を指定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 textstyle 説明 調べるテキスト スタイルを指定する TextStyle カタログ データ型の値。値は以下のとおりです。 Bold! Italic! Strikeout! Subscript! Superscript! Underlined! 戻り値 Boolean 型。選択されたテキストに指定されたテキスト スタイルが設 定されている場合は TRUE を返し、設定されていない場合は FALSE を 返します。textstyle が NULL の場合、NULL を返します。 解説 テキストには、複数のテキスト スタイルを設定できます。この場合、 各スタイルが設定されているかどうかを調べるには、GetTextStyle 関数 を複数回呼び出します。 例 事前に定義されている構造体は、現行のウィンドウのインスタンス変 数 istr_text です。構造体には、Boolean 型のフィールドである b_isBold、 b_isItalic、および b_isUnderlined があります。次に、選択されたテキス トに、太字、斜体、下線の書式が設定されているかどうかを調べ、各 スタイルの構造体に TRUE または FALSE を格納する例を示します。 istr_text.b_isBold = rte_fancy.GetTextStyle(Bold!) istr_text.b_isItalic = rte_fancy.GetTextStyle(Italic!) istr_text.b_isUnderlined = & rte_fancy.GetTextStyle(Underlined!) 関連項目 GetTextColor SetSpacing SetTextColor SetTextStyle GetToday 機能 カレンダが今日の日付として使用する値を返します。 対象 月表示カレンダ コントロール 構文 controlname.GetToday ( ) PowerScript リファレンス ボリューム 2 619 GetToolbar 引数 controlname 説明 今日の日付を取得する月表示カレンダ コントロールの名 前を指定します。 戻り値 Date 型。 解説 デフォルトでは、現在のシステム日付が今日の日付として設定されま す。別の日付を設定するには、SetToday 関数を使用します。 例 次に、今日の日付を取得して currentdate に格納する例を示します。 Date currentdate currentdate = mc_1.GetToday() 関連項目 SetToday GetToolbar 機能 指定されたツールバーの配置、可視性、およびタイトルの現行の値を 取得します。 対象 MDI フレーム、シート ウィンドウ 構文 window.GetToolbar ( toolbarindex, visible {, alignment {, floatingtitle } } ) 引数 window toolbarindex visible alignment (オプション) floatingtitle (オプション) 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。現行の設定を調べるツールバーのインデッ クスの値を指定します。 Boolean 型の変数。指定された変数に、ツールバーが表示 されているかどうかを示す値が格納されます。 ToolbarAlignment カタログ データ型の変数。指定された変 数に、ツールバーの現行の配置が格納されます。 String 型の変数。指定された変数に、配置が Floating! のと きに表示されるツールバーのタイトルが格納されます。 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 固 定 ツ ー ル バ ー ま た は 浮 動 ツ ー ル バ ー の 表 示 位 置 を 調 べ る に は、 GetToolbarPos 関数を呼び出します。 620 PowerBuilder 第 10 章 PowerScript の関数 例 次に、ツールバー 1 が表示されているかどうかを調べる例を示します。 さらに、ツールバー 1 の配置とタイトルを取得します。値は変数 lb_visible、lta_align、および ls_title に格納されます。 integer li_rtn boolean lb_visible toolbaralignment lta_align li_rtn = w_frame.GetToolbar(1, lb_visible, & lta_align, ls_title) 次の例では、エンド ユーザが sle_index に指定するツールバーのイン デックスの設定を表示します。IF 文と CHOOSE CASE 文は、値を文字 列に変換し、mle_toolbar に表示できるようにします。 integer li_index, li_rtn boolean lb_visible toolbaralignment lta_align string ls_visible, ls_align, ls_title li_index = Integer(sle_index.Text) li_rtn = w_frame.GetToolbar(li_index, & lb_visible, lta_align, ls_title) IF li_rtn = -1 THEN MessageBox(" ツールバー ", & " ツールバーの設定を取得できません。") RETURN -1 END IF IF lb_visible = TRUE THEN ls_visible = "TRUE" ELSE ls_visible = "FALSE" END IF CHOOSE CASE lta_align CASE AlignAtTop! ls_align = "top" CASE AlignAtLeft! ls_align = "left" CASE AlignAtRight! ls_align = "right" CASE AlignAtBottom! ls_align = "bottom" CASE Floating! ls_align = "floating" PowerScript リファレンス ボリューム 2 621 GetToolbarPos END CHOOSE mle_1.Text = ls_visible + "~r~n" & + ls_align + "~r~n" & + ls_title 関連項目 GetToolbarPos SetToolbar SetToolbarPos GetToolbarPos 指定されたツールバーの表示位置の情報を取得します。 取得する情報 固定ツールバーを配置する位置 浮動ツールバーの座標とサイズ 構文 1 固定ツールバーの表示位置を取得する 機能 固定ツールバーの表示位置を取得します。 対象 MDI フレーム、シート ウィンドウ 構文 window.GetToolbarPos ( toolbarindex, dockrow, offset ) 引数 window toolbarindex dockrow offset 622 使用する構文 構文 1 構文 2 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。現行の設定を調べるツールバーのインデッ クスの値を指定します。 Integer 型の変数を指定します。指定された変数に、ツール バーを配置する行の番号が格納されます。配置する行に は、左から右、または上から下へ番号が付けられています。 Integer 型の変数を指定します。ツールバーを配置する行の 先頭からの距離を指定します。上端または下端にあるツー ルバーの offset は、左端から測定されます。左端または右 端にあるツールバーの offset は、上端から測定されます。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が NULL の場合は、NULL を返します。 解説 固定ツールバーがウィンドウの上端、下端、左端、右端のどこにある かを調べるには、GetToolbar 関数を呼び出します。 構文 1 は、現行のツールバーが浮動ツールバーの場合にでも、最新の 配置された位置を取得します。 例 次の例では、エンド ユーザが sle_2 にツールバーのインデックスを指 定しています。この例はツールバーの表示位置の情報を取得し、その 情報をマルチライン エディット コントロール mle_1 に表示します。 integer li_index, li_rtn integer li_dockrow, li_offset li_index = Integer(sle_2.Text) li_rtn = w_frame.GetToolbarPos(li_index, & li_dockrow, li_offset) // 表示位置の設定を報告します。 IF li_rtn = 1 THEN mle_1.Text = String(li_dockrow) + "~r~n" & + String(li_offset) ELSE mle_1.Text = "Can't get toolbar position" END IF 関連項目 GetToolbar SetToolbar SetToolbarPos 構文 2 浮動ツールバーの表示位置とサイズを取得する 機能 浮動ツールバーの表示位置とサイズを取得します。 対象 MDI フレーム、シート ウィンドウ 構文 window.GetToolbarPos ( toolbarindex, x, y, width, height ) 引数 window toolbarindex PowerScript リファレンス ボリューム 2 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。現行の設定を調べるツールバーのインデッ クスの値を指定します。 623 GetToolbarPos 引数 x y width height 説明 Integer 型の変数を指定します。指定された変数に、浮動 ツールバーの x 座標が格納されます。ツールバーが固定さ れている場合、x には近似値が設定されます。 Integer 型の変数を指定します。指定された変数に、浮動 ツールバーの y 座標が格納されます。固定ツールバーの場 合、y には近似値が設定されます。 Integer 型の変数を指定します。指定された変数に、浮動 ツールバーの幅が格納されます。固定ツールバーの場合、 width には近似値が設定されます。 Integer 型の変数を指定します。指定された変数に、浮動 ツールバーの高さが格納されます。固定ツールバーの場 合、height には近似値が設定されます。 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 ツールバーが浮動ツールバーかどうかを調べるには、GetToolbar 関数を 呼び出します。 構文 2 は、現行のツールバーが固定ツールバーの場合にでも、前回浮 動ツールバーが表示されていた位置を取得します。 例 次に、ツールバー 1 の x 座標、y 座標、幅、および高さを取得する例 を示します。 int ix, iy, iw, ih, li_rtn li_rtn = w_frame.GetToolbarPos(1, ix, iy, iw, ih) IF li_rtn = -1 THEN mle_1.Text = "Can't get toolbar position" ELSE mle_1.Text = String(ix) + "~r~n" & + String(iy) + "~r~n" & + String(iw) + "~r~n" & + String(ih) END IF 関連項目 624 GetToolbar SetToolbar SetToolbarPos PowerBuilder 第 10 章 PowerScript の関数 GetTransactionName 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションの状態を示す文字列を返します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.GetTransactionName ( ) 引数 CORBACurrent 説明 CORBACurrent サービス インスタンスへの参照を指定 します。 戻り値 String 型。トランザクションが存在している場合は、トランザクション の状態を示す印刷可能な文字列を返します。それ以外の場合は、空の 文字列を返します。 解説 GetTransactionName 関数は、呼び出し元のスレッドに関連付けられてい るトランザクションを識別するための文字列を返します。この文字列 は、一般にデバッグに使用します。 GetTransactionName は、 OTS スタイルのマークが付いているクライアン トまたはコンポーネントで呼び出せます。EAServer は、2 フェーズ コ ミット トランザクション コーディネータ(OTS/XA)を使用している ことが必要です。 例 次に、GetTransactionName を使用してトランザクションの情報をクライ アントに返す例を示します。 // インスタンス変数: // CORBACurrent corbcurr string ls_transacname // CORBACurrent オブジェクトのインスタンスを取得して // そのインスタンスを初期化します。 ... ls_transacname = corbcurr.GetTransactionName() MessageBox(" トランザクション名 ", ls_transacname) 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus Init ResumeTransaction RollbackOnly RollbackTransaction PowerScript リファレンス ボリューム 2 625 GetURL SetTimeout SuspendTransaction GetURL 機能 指定した URL の HTML を返します。 対象 Inet オブジェクト 構文 servicereference.GetURL ( urlname, data ) 引数 servicereference urlname data 戻り値 説明 インターネット サービス インスタンスへの参照を指 定します。 String 型の値で、URL の名前を指定します。URL の ソースデータを data に返します。 InternetResult の子孫で、上書きされた InternetData 関数 を含みます。この関数は urlname の HTML ソースを処 理します。 Integer 型。以下のいずれかの値を返します。 1 正常に終了しました。 -1 一般的なエラーが発生しました。 -2 指定された URL が無効です。 -4 インターネットに接続できません。 解説 この関数を呼び出すと、URL の HTML ソースを取得できます。 data は、InternetResult クラスから継承した標準クラス ユーザ オブジェ クトを参照します。また、InternetData 関数は上書きされています。こ の上書きされた関数を使用して、取得した HTML データを処理しま す。インターネットでは非同期モードでデータを転送するため、 (ウィ ンドウ レベルのインスタンス変数のように)GetURL 関数の実行終了後 も、data はスコープ(有効範囲)に入っている変数を参照する必要が あります。 InternetResult 標準クラス ユーザ オブジェクトと InternetData 関数につ いての詳細は、PowerBuilder Browser で参照してください。 例 次の例では GetURL 関数を呼び出します。なお、Iinet_base は Inet 型の インスタンス変数です。 iir_msgbox = CREATE n_ir_msgbox iinet_base.GetURL(sle_url.text, iir_msgbox) 626 PowerBuilder 第 10 章 PowerScript の関数 関連項目 HyperLinkToURL InternetData PostURL GetVersionName 機能 現行の PowerBuilder 実行コンテキストの完全なバージョン情報を取得 します。完全なバージョン情報とは、メジャー バージョン、マイナー バージョン、修正レベルで構成されます(8.0.3 など)。 対象 ContextInformation オブジェクト 構文 servicereference.GetVersionName ( name ) 引数 servicereference name 戻り値 説明 ContextInformation サービス インスタンスへの参照を指定 します。 String 型の値。この関数はここにバージョン名を格納しま す。この引数は、参照渡しされます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 現行のコンテキストの管理レベルを確認します。 例 次に、GetVersionName 関数を呼び出す例を示します。ci は ContextInformation 型のインスタンス変数です。 String ls_name String ls_version Constant String ls_currver = "8.0.3" GetContextService("ContextInformation", ci) ci.GetVersionName(ls_version) IF ls_version <> ls_currver THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") END IF 関連項目 GetCompanyName GetFixesVersion GetHostObject GetMajorVersion GetMinorVersion PowerScript リファレンス ボリューム 2 627 Handle GetName GetShortName Handle 機能 PowerBuilder オブジェクトの Windows のハンドルを取得します。アプ リケーション、ウィンドウ、コントロールのハンドルは取得できます が、描画オブジェクトのハンドルは取得できません。 構文 Handle ( objectname {, previous } ) 引数 objectname 説明 ハンドルを取得する PowerBuilder オブジェクトの名前を 指定します。アプリケーションまたはコントロールを含む 任意の PowerBuilder オブジェクトを指定することができ ます。描画オブジェクトを指定することはできません。 previous (現在使用されていない引数)Boolean 型の値。アプリケー (オプション) ションの既存のインスタンスのハンドルを取得するかど うかを指定します。アプリケーション オブジェクトでのみ この引数を使用することができます。 Windows の現行のバージョンでは、この引数に TRUE を指 定すると、Handle 関数は常に 0 を返します。 戻り値 Long 型。objectname に指定したオブジェクトのハンドルを返します。 objectname にアプリケーションを指定して previous に TRUE を指定し た場合、常に 0 を返します。 実行時に objectname に指定したオブジェクトを参照できない場合(た とえば、objectname に開いていないウィンドウを指定した場合)、0 を 返します。 解説 Windows の Software Development Kit(SDK)関数または PowerBuilder の Send 関数を使用する場合に、引数としてオブジェクト ハンドルが 必要なときには、Handle 関数を使用してオブジェクト ハンドルを取得 します。 IsValid 関数は、ウィンドウが開かれているかどうかを調べるときに Handle 関数のかわりに使用します。 628 PowerBuilder 第 10 章 PowerScript の関数 PowerBuilder の Run 関数を使用して実行したアプリケーションのハン ドルを要求すると、Handle 関数は 0 を返します。Windows から見た場 合、PowerBuilder から実行したアプリケーションはハンドルを持って いません。開発したアプリケーションの実行モジュールを作成して実 行すると、Handle 関数はアプリケーションのハンドルを返します。 Windows の現行のバージョンでは、previous フラグに TRUE を設定して アプリケーションの既存のインスタンスのハンドルを要求すると、 Handle 関数は常に 0 を返します。アプリケーションのメイン ウィンド ウのインスタンスが開いているかどうかを調べるには、Windows の FindWindow 関数を使用します。 例 次に、ウィンドウ w_child のハンドルを返すステートメントを示しま す。 Handle(w_child) 次に、外部関数 FlashWindow を使用してウィンドウのタイトル バーを 点滅した状態に変更し、再び元の状態に戻す例を示します。外部関数 の宣言は、次のとおりです。 function boolean flashwindow(uint hnd, boolean inst) & library "user.exe" 次に、ウィンドウのタイトル バーを点滅させるためのコードを示しま す。 integer nLoop // ループ カウンタ long hWnd // 制御ハンドル // PowerBuilder ウィンドウに対するハンドルを取得します。 hWnd = Handle(Parent) // タイトル バーを 300 回フラッシュします。 FOR nLoop = 1 to 300 FlashWindow (hWnd, true) NEXT // ウィンドウを元の状態に戻します。 FlashWindow (hWnd, FALSE) アプリケーションでは、previous フラグが TRUE の場合、Handle 関数は 有効な値を返しません。Windows アプリケーションがすでに実行され ているかどうかを確認するには、Windows の FindWindow 関数を使用し てください。FindWindow 関数は、指定されたタイトルを持つウィンド ウのハンドルを返します。 FindWindow と SetForegroundWindow を、グローバルな外部関数として宣 言します。 PUBLIC FUNCTION unsignedlong FindWindow (long PowerScript リファレンス ボリューム 2 & 629 Hide classname, string windowname) LIBRARY "user32.dll" & ALIAS FOR FindWindowW PUBLIC FUNCTION int SetForegroundWindow (unsignedlong & hwnd) LIBRARY "user32.dll" ALIAS FOR & SetForegroundWindowW 次のようなコードを、アプリケーションの Open イベントに追加しま す。 unsignedlong hwnd hwnd = FindWindow( 0, "Main Window") if hwnd = 0 then // 既存のインスタンスがないので、メイン ウィンドウを開きます。 open( w_main ) else // 既存のインスタンス ウィンドウを開いてアプリケーションを停 止します。 SetForegroundWindow( hwnd ) HALT CLOSE end if 関連項目 Send Hide 機能 オブジェクトまたはコントロールを非表示にします。開発者も、エン ド ユーザも表示されていないオブジェクトは操作できません。表示さ れていないオブジェクトはどのイベントにも応答しないので、事実上 そのオブジェクトは、使用不可の状態になります。 対象 すべてのオブジェクト 構文 objectname.Hide ( ) 引数 objectname 説明 非表示にするオブジェクトまたはコントロールの名前を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。objectname が NULL の場合、NULL を返します。 解説 隠そうとしているオブジェクトがすでに非表示の場合は、Hide 関数は 何も実行しません。 630 PowerBuilder 第 10 章 PowerScript の関数 Hide 関数では、ドロップダウン メニュー、カスケード メニュー、およ び親ウィンドウが MDI フレーム ウィンドウであるメニューを非表示 にはできません。MDI シートとして開かれたウィンドウも、非表示に はできません。 Disable 関数を使用すると、メニュー項目を使用不可の色で表示して操 作できないようにすることができます。 オブジェクトを表示させてイベントに応答しないように使用不可の状 態に設定するには、Enabled プロパティを設定します。 Hide 関数を使用せずに、次のようにオブジェクトの Visible プロパティ を設定する方法もあります。 objectname.Visible = false たとえば、次のようなステートメントがあるとします。 lb_Options.Visible = FALSE このステートメントは、次のステートメントと同じ意味です。 lb_Options.Hide() 例 次に、リストボックス lb_options を非表示にするステートメントを示し ます。 lb_options.Hide() 次の例は、メニュー項目のスクリプトです。MDI フレーム w_mdi のア クティブなシート上のコマンドボタン cb_delete を非表示にします。ア クティブ シートの型は、w_sheet の型と同じです。 w_sheet w_active w_active = w_mdi.GetActiveSheet() IF IsValid(w_active) THEN w_active.cb_delete.Hide() 関連項目 Show Hour 機能 Time 型の値から時間の部分を返します。時間は 24 時間形式で表され ます。 構文 Hour ( time ) 引数 time PowerScript リファレンス ボリューム 2 説明 時間データを取得する Time 型の値を指定します。 631 HyperLinkToURL 戻り値 Integer 型。time で指定した時間部分の整数値(00 ∼ 23)を返します。 time が NULL の場合、NULL を返します。 例 次に、現在の時間部分を返すステートメントを示します。 Hour(Now()) 次のステートメントは、19 を返します。 Hour(19:01:31) 関連項目 Minute Now Second 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Hour メソッド HyperLinkToURL 機能 デフォルトの Web ブラウザを開き、指定した URL を表示します。 対象 Inet オブジェクト 構文 servicereference.HyperlinkToURL ( url ) 引数 servicereference url 戻り値 説明 インターネット サービス インスタンスへの参照を指定し ます。 String 型の値。デフォルトの Web ブラウザで開く URL を 指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 PowerBuilder アプリケーションから URL を表示します。 例 次に、HyperlinkToURL 関数を呼び出す例を示します。なお、Iinet_base は Inet 型のインスタンス変数です。 GetContextService("Internet", iinet_base) iinet_base.HyperlinkToURL(sle_url.text) 関連項目 632 GetURL PostURL PowerBuilder 第 10 章 PowerScript の関数 Idle 機能 エンド ユーザが何も操作をしなかったとき、PowerBuilder がアプリ ケーションの Idle イベントを起動するまでの時間を設定します。 構文 Idle ( n ) 引数 n 説明 PowerBuilder がアプリケーションの Idle イベントを起動す るまでの待ち時間を秒数で指定します。0 を指定した場合、 Idle 関数は何もしません。 戻り値 Integer 型。タイマーが起動された場合、1 を返します。タイマーを起 動できない場合、または n に 0 が指定されているためにタイマーが起 動されない場合には、-1 を返します。タイマーが起動されている状態 で n の値を変更すると、Idle 関数は新しいタイマーを起動せずに、現行 のタイマーに設定されている時間の間隔を新しい秒数にリセットする ので注意してください。n が NULL の場合は、NULL を返します。通常、 戻り値は使用されません。 解説 アプリケーションを使用しているエンド ユーザがいないときに、Idle 関数を使用してアプリケーションの終了や起動を行います。この操作 は多くの場合、セキュリティ上の理由から行われます。 Idle 関数は、各ユーザ操作(たとえば、キー入力やマウスのクリック) の後にタイマーを起動し、ユーザ操作のない時間が n 秒間経った後、 Idle イベントを起動します。通常、アプリケーションの Idle イベント に対するスクリプトには、複数のウィンドウを閉じる、データベース のログの設定を解除する、アプリケーションを終了する、Restart 関数 を呼び出すなどの操作を記述します。 次のいずれかの操作を行うと、タイマーがリセットされます。 • アプリケーション内の任意のウィンドウでマウスを動かしたり、 クリックしたりする • PowerBuilder アプリケーションのウィンドウが現行のウィンドウ になっている場合に、キー操作を行う • PowerBuilder アプリケーションが最小化されている場合に、そのア イコンの上でマウスをクリックしたり、動かしたりする • PowerBuilder アプリケーションが最小化されていて、現行のウィン ドウになっている(名前が強調されます)場合に、キー操作を行う • 表示可能なデータウィンドウを選択した結果、エディットコント ロールがペイントされる場合 PowerScript リファレンス ボリューム 2 633 Idle 参考 キ ー や マ ウ ス の 動 き を 把 握 す る に は、ウ ィ ン ド ウ や シ ー ト の MouseMove イベントや Key イベントでスクリプトを記述してくだ さい。キーボードを操作しても MouseMove イベントはトリガしま せん。繰り返して検索する場合は、Idle タイマーがリセットされな いように、データウィンドウのコントロールとタブの順序付けを 無効にしてください。 例 次に、5 分間、エンド ユーザが操作しなかった後で Idle イベントを起 動する例を示します。 Idle(300) 次のステートメントは、Idle イベントを起動しません。 Idle(0) 次の例では、2 分間エンド ユーザが何も操作しなかった場合、Idle イ ベントを使用してアプリケーションを停止し、再起動する方法を示し ます。通常、この操作は、公共の場所で情報提供を行うようなコン ピュータで行われます。 次のステートメントは、アプリケーションの Open イベントのスクリ プトに記述します。 Idle(120) // 2 分後に Idle イベントを送ります。 次の例は、アプリケーションの Idle イベントに対するスクリプトの一 部です。アプリケーションを停止して何らかの処理を行ってから再起 動しています。 // データベースを要求された状態に設定するための // ステートメント ... Restart() // アプリケーションを再起動します。 関連項目 634 Restart Timer PowerBuilder 第 10 章 PowerScript の関数 IMEGetCompositionText 機能 IME を使用して入力された文字列の読み仮名を取得します。 構文 IMEGetCompositionText ( handle ) 引数 handle 説明 Long 型。コントロールのハンドルを指定します。 戻り値 String 型。IME を使用して入力された文字列の読み仮名が返されます。 解説 IME を使用して入力された文字列が確定されたときの読み仮名を取得し ます。この文字列は、次の IME 入力文字列が確定されるまで保持されま す。コントロールに入力された文字列の読み情報を取得するには、コン トロールの Modify イベントに対するスクリプトで IMEGetCompositionText 関数を呼び出します。IME の起動は、IMEMODE プロパティの設定、また はエンド ユーザのキーボード操作による ON/OFF で行います。 例 次の例は、IME を使用して入力された文字列の読み仮名を文字列変数 Text に 格納します。 String Text Text = IMEGetCompositionText() 関連項目 IMEGetMode IMESetMode PowerScript リファレンス ボリューム 2 635 IMEGetMode IMEGetMode 機能 コントロールの IME の状態を取得します。 構文 IMEGetMode ( handle ) 引数 handle 戻り値 説明 Long 型。コントロールのハンドルを指定します。 Integer 型。handle に指定したコントロールの IME の状態を表す値が返 されます。返される値の意味は、次のとおりです。 0 − IME はインストールされていません 1 − IME はオンの状態です。 2 − IME はオフの状態です。 3 − IME はオフ固定の状態です。 4 − IME は全角ひらがな入力モードです。 5 − IME は全角カタカナ入力モードです。 6 − IME は半角カタカナ入力モードです。 7 − IME は全角英数入力モードです。 8 − IME は半角英数入力モードです。 解説 そのときの IME の状態を格納しておき、処理の終了後に以前の IME の 状態に設定しなおすような場合に使用します。 例 次の例は、シングルライン エディット コントロール sle_name の IME の状態を取得します。 IMEGetMode(Handle(sle_name)) 関連項目 636 IMEGetCompositionText IMESetMode PowerBuilder 第 10 章 PowerScript の関数 IMESetMode 機能 コントロールに対して、指定した IME のモードを設定します。 構文 IMESetMode ( handle, n ) 引数 handle n 戻り値 説明 Long 型。コントロールのハンドルを指定します。 Integer 型。指定する値については、 「戻り値」の表を参照 してください。 Integer 型。handle に指定したコントロールの設定前の IME のモードを 返します。返される値の意味は、次のとおりです。 Long 型。コントロールのハンドルを指定します。 0 −何も行いません。IME の管理は Windows で行います。 1 − IME を直前の入力モードでオンにします。 2 − IME をオフにします。 3 − IME をオフ固定にします 4 − IME を全角ひらがな入力モードでオンにします。 5 − IME を全角カタカナ入力モードでオンにします。 6 − IME を半角カタカナ入力モードでオンにします。 7 − IME を全角英数入力モードでオンにします。 8 − IME を半角英数入力モードでオンにします。 解説 たとえば、請求書の場合、宛先の欄では IME を全角ひらがな入力モー ドで起動したり、金額欄では IME をオフにしたりすることができま す。ただし、Windows では IME は 1 つしか管理できないため、同時に 複数のコントロールに対する IME モードを割り当てることはできま せん。IMESetMode 関数を使用すると、そのセッションでの IME の設 定を行うことができます。ただし、ほかのコントロールやウィンドウ で IME のモードが変更された場合には、再設定する必要があります。 したがって、GetFocus イベントやデータウィンドウ コントロールの ItemFocusChanged イベントに記述し、フォーカスが移ったときに設定 することをお勧めします。 データウィンドウ カラムの IME オフ固定 IMESetMode 関数を使用してデータウィンドウのカラムをオフ固定に することはできません。データウィンドウのカラムをオフ固定にする には、カラムのプロパティを設定するか、Modify 関数を使用するかし てください。 dw_1.Modify("col_1.Edit.IMEMode = 3") PowerScript リファレンス ボリューム 2 637 ImpersonateClient 例 次の例は、シングルライン エディット コントロール sle_address に対し て IME を全角ひらがな入力モードで起動しています。 IMESetMode(Handle(sle_address), 4) 次の例は、シングルライン エディット コントロール sle_amount の中 で、IME をオフ固定にしています。 IMESetMode(Handle(sle_amount), 3) 関連項目 IMEGetCompositionText IMEGetMode ImpersonateClient 機能 COM+ 上で動作する COM オブジェクトが、1 回の呼び出しの間、クラ イアントのセキュリティ属性を持つことができるようにします。 対象 TransactionServer オブジェクト 構文 transactionserver.ImpersonateClient ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ImpersonateClient 関数を使用すると、1 回の呼び出しの間、COM オブ ジェクトをクライアントのセキュリティ コンテキストで実行するこ とができます。クライアントのセキュリティ コンテキストで実行する ことにより、サーバ プロセスには、クライアントと同じリソースに対 するアクセス権が与えられます。これによって、サーバのリソースへ のアクセスを制限または拡張することができます。たとえば、あるデー タベースに対してクライアントが更新権を持たず、サーバには更新権 がある場合、データベースにアクセスする前にクライアントに同一化 させることによって、クライアントによるデータベースの更新を回避 できます。 クライアントのセキュリティ コンテキストを必要とする処理が終了 したら、RevertToSelf 関数を呼び出して、サーバのセキュリティ コンテ キストに戻します。 638 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、トランザクション サーバ コンテキスト オブジェクトのイ ンスタンスを作成し、クライアントに同一化させて処理を行います。 TransactionServer txninfo_test integer li_rc li_rc = GetContextService( "TransactionServer", txninfo_test ) // 必要であればエラー処理を行います。 & // クライアントに同一化させます。 txninfo_test.ImpersonateClient() // クライアントのセキュリティ コンテキストで処理を行います。 ... // サーバのセキュリティ コンテキストに戻します。 txninfo_test.RevertToSelf() 関連項目 IsCallerInRole IsImpersonating IsSecurityEnabled RevertToSelf ImportClipboard 機能 クリップボード内のタブやカンマで区切られたデータ、もしくは XML データを、データウィンドウ コントロール、データストア オブジェク ト、またはグラフ コントロールに挿入します。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「ImportClipboard メソッド」を参照してください。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 graphname.ImportClipboard ( { importtype}, { startrow {, endrow {, startcolumn } } } ) PowerScript リファレンス ボリューム 2 639 ImportClipboard 引数 importtype (オプション) graphname startrow (オプション) 説明 SaveAsType データウィンドウ定数のカタログ値。 ImportClipboard の有効な引数の種類は、次のとおりです。 Text! CSV! XML! XML トレース ファイルを生成したい場合は、XML! 引数 を要求します。 グラフ コントロールの名前。クリップ ボードのデータの コピー先を指定します。 クリップボード内のデータのうち、最初にコピーする行の 行番号を指定します。特に指定しない限り、1 が設定され ます。 デフォルトの XML インポートの場合、startrow を指定す ると、最初の N (startrow -1) 個の要素がスキップされます。 なお、N は、データウィンドウの行のサイズです。 endrow (オプション) テンプレートの XML インポートの場合、startrow を指定 すると、テンプレートで定義されている繰り返し行のマッ ピングのうち、最初の(startrow -1)行がスキップされます。 クリップボード内のデータのうち、最後にコピーする行の 行番号を指定します。特に指定しない限り、残りのすべて の行がコピーされます。 デフォルトの XML インポートの場合、endrow を指定する と、N * endrow 個の要素がインポートされたときにイン ポート処理が終了します。なお、N は、データウィンドウ の行のサイズです。 startcolumn (オプション) テンプレートの XML インポートの場合、endrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングが endrow 個インポートされた時点でインポート処理 が終了します。 クリップボードのデータのうち、最初にコピーするカラム のカラム番号を指定します。特に指定しない限り、1 が設 定されます。 デフォルトの XML インポートの場合、startcolumn を指定 すると、各行の最初の(startcolumn - 1)要素がスキップさ れます。 テンプレートの XML インポートの場合、この引数は無効 です。 戻り値 640 正常に終了した場合、インポートされた行数を返します。エラーが発 生した場合は、以下の負の整数のいずれかを返します。 PowerBuilder 第 10 章 PowerScript の関数 -1 行がありません。または startrow に、文字列内の行数よりも大きい 値が指定されました。 -2 入力データがカラム数と一致しないか、必要なカラムの種類と一 致しません。 -3 無効な引数が指定されました。 -4 入力内容が無効です。 -11 XML 解析エラー。XML パーサ ライブラリが見つからないか、 XML が整形式ではありません。 -12 XML テンプレートが存在しないか、データウィンドウと一致し ません。 引数のいずれかの値が NULL の場合は、NULL を返します。オプション の引数 importtype で指定したデータの種類が有効でない場合、-3 を返 します。 解説 クリップボードのデータは、タブかカンマで区切られた形式、もしく は XML 形式でなければなりません。データウィンドウ オブジェクト のカラムのデータ型と順番は、クリップボード内のデータと一致して いる必要があります。 Graph コントロールを対象とする場合、ImportClipboard 関数は 3 つのカ ラムだけを使用し、ほかのカラムを無視します。データの各行には、3 つの情報が必要です。必要な情報は、グラフの種類によって異なりま す。 • 散布図以外のすべてのグラフの場合、最初にインポートされるカ ラムは、データ系列の名前です。2 番目のカラムは項目で、3 番目 のカラムはデータです。 • 散布図の場合、最初にインポートされるカラムは、データ系列の 名前です。2 番目のカラムはデータの x 座標の値、3 番目のカラム は y 座標の値です。 データ系列または項目がすでにグラフに存在する場合、データは既存 のデータ系列または項目に対して割り当てられます。存在しない場合 は、データ系列と項目がグラフに追加されます。 最初のカラムに異なるデータ系列の名前を指定すると、複数のデータ 系列にデータを追加できます。 例 たとえば、クリップボードに以下のデータが格納されていて、グラフ にはデータが含まれていない場合、次のステートメントを実行すると 2 つのデータ系列と 3 つの項目を持つグラフが作成されます。クリッ プボードのデータは、以下のとおりです。 Sales 94Jan3000 PowerScript リファレンス ボリューム 2 641 ImportFile Sales Sales Sales Sales Sales 94Mar2200 94May2500 95Jan4000 95Mar3200 95May3500 次のステートメントは、上記のクリップボード内のすべてのデータを gr_employee にコピーします。 gr_employee.ImportClipboard() 次のステートメントは、クリップボードのデータ(2 行目の 3 カラム 目から 30 行目の 5 カラム目までのデータ)をグラフ コントロール gr_employee にコピーします。 gr_employee.ImportClipboard(2, 30, 3) 関連項目 ImportFile ImportString ImportFile 機能 ファイル内のデータを、データウィンドウ コントロール、データスト ア オブジェクト、またはグラフ コントロールに挿入します。データ は、タブやカンマで区切られたテキスト、XML、dBase 形式 2、また は dBase 形式 3 です。ファイルの形式は、挿入先がデータウィンドウ コントロール(またはデータストア)であるのか、グラフ コントロー ルであるのかによって異なります。また、グラフの種類によっても異 なります。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「ImportFile メソッド」を参照してください。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 graphname.ImportFile ( { importtype}, filename {, startrow {, endrow {, startcolumn } } } ) 引数 graphname 642 説明 グラフ コントロールの名前。データのコピー先を指定しま す。 PowerBuilder 第 10 章 PowerScript の関数 引数 importtype (オプション) filename startrow (オプション) 説明 SaveAsType データウィンドウ定数のカタログ値。この引数 を指定すると、importtype の指定時に拡張子を省略できま す。ImportFile の有効な引数の種類は、次のとおりです。 Text! CSV! XML! DBase2! DBase3! String 型の値。データをコピーするファイルの名前を指定 します。ファイルの形式は、ASCII 形式、タブで区切られ た形式(.TXT)、カンマで区切られた形式(.CSV)、XML 形式(.XML)、dBase 2 形式または dBase 3 形式(.DBF)で なければなりません。ファイル名は、拡張子を付けた完全 な名前で指定します。オプションの importtype の指定を省 略した場合、名前には適切な拡張子を付ける必要がありま す。 filename が指定されていない場合、または filename が NULL の場合は、エンド ユーザに対してファイル名の入力を要求 します。残りの引数は無視されます。 ファイル内のデータのうち、最初にコピーする行の行番号 を指定します。特に指定しない限り、1 が設定されます。 デフォルトの XML インポートの場合、startrow を指定する と、最初の N (startrow -1) 個の要素がスキップされます。な お、N は、データウィンドウの行のサイズです。 endrow (オプション) テンプレートの XML インポートの場合、startrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングのうち、最初の(startrow -1)行がスキップされます。 ファイルのデータのうち、最後にコピーする行の行番号を 指定します。特に指定しない限り、残りのすべての行がコ ピーされます。 デフォルトの XML インポートの場合、endrow を指定する と、N * endrow 個の要素がインポートされたときにイン ポート処理が終了します。なお、N は、データウィンドウ の行のサイズです。 テンプレートの XML インポートの場合、endrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングが endrow 個インポートされた時点でインポート処理 が終了します。 PowerScript リファレンス ボリューム 2 643 ImportFile 引数 startcolumn (オプション) 説明 ファイルのデータのうち、最初にコピーするカラムのカラ ム番号を指定します。特に指定しない限り、1 が設定され ます。 デフォルトの XML インポートの場合、startcolumn を指定 すると、各行の最初の(startcolumn - 1)要素がスキップさ れます。 テンプレートの XML インポートの場合、この引数は無効 です。 戻り値 Long 型。正常に終了した場合、インポートされた行数を返します。エ ラーが発生した場合は、以下の負の整数のいずれかを返します。 -1 行がありません。または startrow に、ファイル内の行数よりも大き い値が指定されました。 -2 ファイルが空です。または入力データがカラム数と一致しないか、 必要なカラムの種類と一致しません。 -3 無効な引数が指定されました。 -4 入力内容が無効です。 -5 指定されたファイルを開くことができません。 -6 指定されたファイルを閉じることができません。 -7 テキストの読み取り中にエラーが発生しました。 -8 サポートされていないファイル名の拡張子です(有効な拡張子は *.txt、*.csv、*.dbf、*.xml です)。 -10 サポートされていない dBase のファイル形式です(バージョン 2 または 3 ではありません)。 -11 XML 解析エラー。XML パーサ ライブラリが見つからないか、 XML が整形式ではありません。 -12 XML テンプレートが存在しないか、データウィンドウと一致し ません。 引数のいずれかの値が NULL の場合、NULL を返します。オプションの 引数 importtype で指定したデータの種類が有効でない場合、-3 を返し ます。 解説 ファイルの形式は、オプションの importtype で指定するか、または適 切なファイル拡張子を付けることによって指定できます。 グラフ コントロールを対象とする場合、ImportFile 関数は 3 つのカラム だけを使用し、ほかのカラムを無視します。データの各行には、3 つ の情報が必要です。必要な情報は、グラフの種類によって異なります。 644 PowerBuilder 第 10 章 PowerScript の関数 • 散布図以外のすべてのグラフの場合、最初にインポートされるカ ラムは、データ系列の名前です。2 番目のカラムは項目で、3 番目 のカラムはデータです。 • 散布図の場合、最初にインポートされるカラムは、データ系列の 名前です。2 番目のカラムはデータの x 座標の値、3 番目のカラム は y 座標の値です。 最初のカラムに異なるデータ系列の名前を指定すると、複数のデータ 系列にデータを追加できます。インポートするファイルをエンド ユー ザに選択させるには、filename に NULL を指定します。インポート ファ イルの選択 ダイアログボックスが表示されます。 二重引用符 タブで区切られたファイル内のフィールドにある二重 引用符の位置と数は、ファイルがインポートされたときの二重引用符 に対する処理方法に影響します。文字列が 1 対の二重引用符で囲まれ ている場合、その二重引用符は破棄されます。文字列が 3 対の二重引 用符で囲まれている場合は、その文字列がインポートされたときに 1 対が保持されます。文字列が 2 対の二重引用符で囲まれている場合、 最初の 1 対が NULL 文字列を囲んでいるとみなされ、残りの文字列は 破棄されます。 文字列の先頭に二重引用符がある場合、2 番目の二重引用符よりも後 ろにある文字はすべて破棄されます。2 番目の二重引用符がない場合、 フィールドを区切るタブ文字はフィールド区切り文字として認識され ません。次に来る二重引用符よりも前にある文字(キャリッジ リター ンを含む)はすべて、その文字列の一部であるとみなされます。結合 された文字列が最初の文字列の長さを超えた場合は、検証エラーが生 成されます。 文字列において先頭の文字よりも後ろにある二重引用符は、その文字 どおりに表示されます。以下に、タブで区切られた文字列を 2 列のデー タウィンドウにインポートする例をいくつか示します。 ファイル内のテキスト "Joe" TAB "Donaldson" Bernice TAB """Ramakrishnan""" ""Mary"" TAB ""Li"" "Mich"ael TAB """Lopes""" "Amy TAB Doherty" 3""" TAB 4" PowerScript リファレンス ボリューム 2 結果 Joe Donaldson Bernice "Ramakrishnan" セルは空になる Mich "Lopes" 最初のセルは「Amy<TAB>Doherty」、2 番 目のセルは空になる 3""" 4" 645 ImportFile ファイル名に NULL 文字列を指定した場合 filename に NULL 文字列を指定した場合、残りの引数は無視されます。 ファイル内の行と列はすべてインポートされます。 例 次のステートメントは、D:\EMPLOYEE.TXT ファイルのすべてのデー タを gr_employee の 1 カラム目以降に挿入します。 gr_employee.ImportFile("D:\EMPLOYEE.TXT") 次のステートメントは、D:\EMPLOYEE.TXT ファイルのデータ(2 行 目の 3 カラム目から 30 行目の 5 カラム目までのデータ)をグラフ コ ントロール gr_employee にコピーします。 gr_employee.ImportFile("D:\EMPLOYEE.TXT", 2, 30, 3) 次の 2 つのステートメントは同じように機能します。両方とも、 myxmldata という XML ファイルの内容をインポートします。 gr_control.ImportFile(myxmldata.xml) gr_control.ImportFile(XML!, myxmldata) 646 PowerBuilder 第 10 章 PowerScript の関数 次の例では、PowerBuilder に インポート ファイルの指定 ダイアログ ボックスを表示させます。 string null_str SetNull(null_str) dw_main.ImportFile(null_str) 関連項目 ImportClipboard ImportString ImportString 機能 文字列内のタブやカンマで区切られたデータ、または XML データを、 データウィンドウ コントロール、データストア オブジェクト、または グラフ コントロールに挿入します。文字列内のタブで区切られたカラ ムの各データがどのように扱われるかは、挿入先がデータウィンドウ コントロール(またはデータストア)であるのか、グラフ コントロー ルであるのかによって異なります。また、グラフの種類によっても異 なります。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「ImportString メソッド」を参照してください。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 graphname.ImportString ( { importtype}, string {, startrow {, endrow {, startcolumn } } } ) 引数 graphname importtype (オプション) 説明 グラフ コントロールの名前。データのコピー先を指定しま す。 SaveAsType カタログ データ型(PowerBuilder)、またはイ ンポートされる文字列の形式を指定する String 型(Web DataWindow)の値。有効な引数の種類は、次のとおりです。 Text! CSV! XML! XML トレース ファイルを生成したい場合は、XML! 引数 を要求します。 PowerScript リファレンス ボリューム 2 647 ImportString 引数 string startrow (オプション) 説明 String 型の値。データのコピー元の文字列を指定します。 この文字列には、タブ区切りまたはカンマ区切りのカラ ム、または 1 行につき 1 データ行の XML が含まれている 必要があります(「解説」を参照)。 文字列内のデータのうち、最初にコピーする行の行番号を 指定します。特に指定しない限り、1 が設定されます。 デフォルトの XML インポートの場合、startrow を指定する と、最初の N (startrow -1) 個の要素がスキップされます。な お、N は、データウィンドウの行のサイズです。 テンプレートの XML インポートの場合、startrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングのうち、最初の(startrow -1)行がスキップされます。 endrow (オプション) 文字列内のデータのうち、最後にコピーする行の行番号を 指定します。特に指定しない限り、残りのすべての行がコ ピーされます。 デフォルトの XML インポートの場合、endrow を指定する と、N * endrow 個の要素がインポートされたときにイン ポート処理が終了します。なお、N は、データウィンドウ の行のサイズです。 startcolumn (オプション) テンプレートの XML インポートの場合、endrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングが endrow 個インポートされた時点でインポート処理 が終了します。 文字列内のデータのうち、最初にコピーするカラムのカラ ム番号を指定します。特に指定しない限り、1 が設定され ます。 デフォルトの XML インポートの場合、startcolumn を指定 すると、各行の最初の(startcolumn - 1)要素がスキップさ れます。 テンプレートの XML インポートの場合、この引数は無効 です。 戻り値 648 正常に終了した場合、インポートされたデータ ポイントの数を返しま す。エラーが発生した場合は、以下の負の整数のいずれかを返します。 -1 行がありません。または startrow に、文字列内の行数よりも大きい 値が指定されました。 -2 文字列が空です。または入力データがカラム数と一致しないか、必 要なカラムの種類と一致しません。 -3 無効な引数が指定されました。 -4 入力内容が無効です。 PowerBuilder 第 10 章 PowerScript の関数 -11 XML 解析エラー。XML パーサ ライブラリが見つからないか、 XML が整形式ではありません。 -12 XML テンプレートが存在しないか、データウィンドウと一致し ません。 引数のいずれかの値が NULL の場合、NULL を返します。オプションの 引数 importtype で指定したデータの種類が有効でない場合、-3 を返し ます。 解説 グラフ コントロールを対象とする場合、ImportString 関数は 3 つのカラ ムだけを使用し、ほかのカラムを無視します。データの各行には、3 つ の情報が必要です。必要な情報は、グラフの種類によって異なります。 • 散布図以外のすべてのグラフの場合、最初にインポートされるカ ラムは、データ系列の名前です。2 番目のカラムは項目で、3 番目 のカラムはデータです。 • 散布図の場合、最初にインポートされるカラムは、データ系列の 名前です。2 番目のカラムはデータの x 座標の値、3 番目のカラム は y 座標の値です。 最初のカラムに異なるデータ系列の名前を指定すると、複数のデータ 系列にデータを追加できます。 例 次のステートメントは、文字列 ls_Text のデータ(2 行目の 3 カラム目 から 30 行目の 5 カラム目までのデータ)をグラフ コントロール gr_employee にコピーします。 string ls_Text ls_Text = . . . gr_employee.ImportString(ls_Text, 2, 30, 3) 次のスクリプトは、文字列 ls_gr に 2 つのデータ系列のデータを格納 し、そのデータをグラフ コントロール gr_custbalance にインポートしま す。データ内の項目は A、B、C です。 string ls_gr ls_gr ls_gr ls_gr ls_gr ls_gr ls_gr = = = = = = "series1~tA~t12~r~n" ls_gr + "series1~tB~t13~r~n" ls_gr + "series1~tC~t14~r~n" ls_gr + "series2~tA~t15~r~n" ls_gr + "series2~tB~t14~r~n" ls_gr + "series2~tC~t12.5~r~n" gr_custbalance.ImportString(ls_gr, 1) PowerScript リファレンス ボリューム 2 649 IncomingCallList 関連項目 ImportClipboard ImportFile IncomingCallList 機能 パフォーマンス解析モデルに含まれるルーチンの呼び出し側のリスト を作成します。 対象 ProfileRoutine オブジェクト 構文 iinstancename.IncomingCallList ( list, aggregrateduplicateroutinecalls ) 引数 instancename list aggregateduplicateroutinecalls 戻り値 解説 説明 ProfileRoutine オブジェクトのインスタン ス名を指定します。 データ型 ProfileCall の可変長配列変数を 指定します。この配列に、IncomingCallList 関 数 は、ル ー チ ン の 呼 び 出 し 側 ご と に ProfileCall オブジェクトを格納します。こ の引数は、参照渡しされます。 Boolean 型の値。呼び出しが複数回発生し た場合に、ProfileCall オブジェクトを 1 つ だけ作成するか、または複数作成するかど うかを指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しません。 パフォーマンス解析モデルに含まれるルーチンの呼び出し側のリスト を取得します。呼び出し側ルーチンはそれぞれ、ProfileCall オブジェク トとして定義されます。このオブジェクトには、呼び出されるルーチ ン、呼び出すルーチン、呼び出し回数、および処理時間が書き込まれ ます。呼び出し側ルーチンがリストされるときの順序は、特に決まっ ていません。 BuildModel 関数を使ってトレース ファイルからパフォーマンス解析 モデルをあらかじめ作成しておかなければなりません。 650 PowerBuilder 第 10 章 PowerScript の関数 aggregateduplicateroutinecalls 引数は、ルーチンの呼び出しが複数回発 生する場合に、ProfileCall オブジェクトを 1 つだけ作成するか、または 複数作成するかどうかを示します。この引数が有効になるのは、ライ ン トレースを行うように設定されていて、呼び出し側ルーチンが呼び 出し先ルーチンを、異なる複数のラインから呼び出している場合だけ です。aggregateduplicateroutinecalls が TRUE である場合、新規作成され る ProfileCall オブジェクトは 1 つだけであり、呼び出し側ルーチンか ら呼び出し先ルーチンへの呼び出しの情報はすべて、このオブジェク トに 1 つにまとめられます。aggregateduplicateroutinecalls が FALSE で ある場合、ProfileCall オブジェクトは複数作成され、呼び出し側ルーチ ンが呼び出し先ルーチンを呼び出している 1 ラインに対し、1 つのオ ブジェクトが対応します。 例 次の例は、パフォーマンス解析モデルに含まれるルーチンのリストを 取得し、各ルーチンを呼び出しているルーチンのリストを取得します。 Long ll_cnt ProfileCall lproc_call[] lpro_model.BuildModel() lpro_model.RoutineList(i_routinelist) FOR ll_cnt = 1 TO UpperBound(iprort_list) iprort_list[ll_cnt].IncomingCallList(lproc_call, & TRUE) ... NEXT 関連項目 BuildModel OutgoingCallList PowerScript リファレンス ボリューム 2 651 Init Init ORB プロパティ値を設定するか、CORBACurrent サービス オブジェク トのインスタンスを初期化します。 目的 使用する構文 JaguarORB オブジェクトを使用して、EAServer にクライア 構文 1 ント接続するための ORB プロパティ値を設定します。 クライアント管理またはコンポーネント管理トランザク 構文 2 ション用に、CORBACurrent サービス オブジェクトのイン スタンスを初期化します。 構文 1 ORB プロパティの値を設定する 機能 ORB プロパティの値を設定します。この関数は、EAServer に接続して いる PowerBuilder クライアントによって使用されます。 対象 JaguarORB オブジェクト 構文 jaguarorb.Init ( options ) 引数 jaguarorb options 説明 JaguarORB のインスタンスを指定します。 String 型。1 つまたは複数の ORB プロパティを指定しま す。複数のプロパティ値を指定する場合は、各プロパティ 値をカンマで区切ります。 サポートされている全 ORB プロパティのリストについて は、接続オブジェクトの Options プロパティのオンライン ヘルプを参照してください。 戻り値 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 解説 ORB プロパティは、EAServer ORB ドライバによって要求される設定 を行います。 JaguarORB オブジェクトを使用するために、必ずしも Init 関数を呼び 出す必要はありません。Init 関数が呼び出されなければ、EAServer ORB ドライバがデフォルトのプロパティ値を使用します。 Init 関数は、同じ JaguarORB オブジェクトに対して何度も呼び出すこ とができます。PowerBuilder は、最初の呼び出しの際に JaguarORB オ ブジェクトの内部的なインスタンスを新しく作成し、それ以降のすべ ての呼び出しにおいてこのオブジェクトを使用します。 652 PowerBuilder 第 10 章 PowerScript の関数 そのほかの例については、関連項目リストの関数を参照してください。 例 次の例は、Init 関数を使って ORB プロパティ RetryCount および RetryDelay を設定します。 JaguarORB my_orb CORBAObject my_corbaobj ... ... my_orb = CREATE JaguarORB my_orb.Init("ORBRetryCount=3,ORBRetryDelay=1000") ... ... 関連項目 Object_To_String Resolve_Initial_References String_To_Object 構文 2 CORBACurrent を初期化する 機能 CORBACurrent サービス オブジェクトのインスタンスを初期化します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.Init ( { connection | URL} ) 引数 CORBACurrent connection URL 戻り値 説明 CORBACurrent サービス インスタンスへの参照を指定 します。 有効な EAServer ホストへの接続をすでに確立している 接続オブジェクトの名前を指定します。クライアント が Init 関数を呼び出す場合は、connection か URL のどち らかを指定しておく必要があります。 String 型。有効な EAServer ホストを識別する URL の名 前を指定します。クライアントが Init 関数を呼び出す場 合は、connection か URL のどちらかを指定しておく必 要があります。 Integer 型。正常に終了した場合は、0 を返します。サービス オブジェ クトを初期化できなかった場合は、以下のいずれかの値を返します。 -1 -2 原因不明のエラーです。 サービス オブジェクトが EAServer で実行されていない(引数なし の場合)か、接続オブジェクトが EAServer に接続されていません (引数が接続オブジェクトの場合)。 PowerScript リファレンス ボリューム 2 653 Init 解説 -3 ORB 初期化エラーです。 -4 ORB.resolve_initial_references("TransactionCurrent") メソッドの呼び 出しエラーです。 -5 narrow メソッドの呼び出しエラーです。 トランザクション プロパティに OTS 形式のマークが付けられた EAServer で動作する PowerBuilder コンポーネントから、または PowerBuilder ク ライアントから Init 関数を呼び出せます。Init 関数以外の関数を呼び出 す際は、事前に Init 関数を呼び出して CORBACurrent オブジェクトを初 期化しておくことが 必要 です。EAServer は 2 フェーズ コミット トラン ザクション コーディネータ(OTS/XA)を使用していることが必要です。 また、GetContextService 関数を使用して CORBACurrent オブジェクトへ の参照を取得しておくことも必要です。 Init を PowerBuilder コンポーネントから呼び出すときは、引数は必要 ありません。呼び出し元のコンポーネントに OTS 形式のマークが付け られていない場合、CORBACurrent オブジェクトは初期化されません。 PowerBuilder クライアントから Init を呼び出し、そのクライアントが トランザクションに対する責任を負う場合は、CORBACurrent オブ ジェクトを初期化しておく必要があります。この初期化を行うには、 接続オブジェクトか、引数としての URL 文字列のどちらかを使用し て、Init を呼び出します。接続オブジェクトを使用する場合は、あらか じめクライアントを有効な EAServer ホストに接続しておかなければ なりませんが、コードの移植性を高めるためには、接続オブジェクト を使用するほうが望ましいと言えます。 例 次に、PowerBuilder EAServer コンポーネントを使用して、CORBACurrent オブジェクトのインスタンスを初期化する例を示します。 // インスタンス変数: // CORBACurrent corbcurr int li_rc li_rc = this.GetContextService("CORBACurrent", corbcurr) IF li_rc <> 1 THEN // エラーを処理します。 ELSE li_rc = corbcurr.init() IF li_rc <> 0 THEN // エラーを処理します。 END IF END IF 654 PowerBuilder 第 10 章 PowerScript の関数 この例では、PowerBuilder クライアント アプリケーションから Init を 呼び出します。このクライアント アプリケーションは、あらかじめ myconn 接 続 オ ブ ジ ェ ク ト を 使 用 し て EAServer に 接 続 し て あ り、 CORBACurrent オブジェクトへの参照(corbcurr と呼ばれる)も作成し てあります。 li_rc = corbcurr.init( myconn ) IF li_rc <> 0 THEN // エラーを処理します。 END IF 次の例では、有効な URL を使用して、PowerBuilder クライアント アプ リケーションから Init 関数を呼び出します。 li_rc = corbcurr.init( "iiop://localhost:9000" ) IF li_rc <> 0 THEN // エラーを処理します。 END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus GetTransactionName ResumeTransaction RollbackOnly RollbackTransaction SetTimeout SuspendTransaction PowerScript リファレンス ボリューム 2 655 InputFieldChangeData InputFieldChangeData 機能 リッチテキスト エディット コントロールの、入力フィールドのデータ 値を修正します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldChangeData ( inputfieldname, inputfieldvalue ) 引数 rtename inputfieldname inputfieldvalue 説明 リッチテキスト エディット コントロールの名前。入力 フィールドのデータを変更するコントロールを指定します。 String 型の値。データを変更する入力フィールドの名前を 指定します。同じ名前の入力フィールドが、複数ある場合 もあります。 String 型の値。指定された入力フィールドに割り当てる データを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 同じ名前を持つすべての入力フィールドには、同じデータが入ります。 InputFieldChangeData 関数が呼び出された場合、指定された名前を持つ すべての入力フィールドのデータ値が修正されます。 例 次のスクリプトは、リストボックス コントロール lb_instruments の SelectionChanged イベントの一部です。エンド ユーザがリストボック ス内の項目をクリックすると、選択された楽器名がリッチテキスト エ ディット コントロール rte_1 の instrument という名前の入力フィール ドに割り当てられます。 integer rtn rtn = rte_1.InputFieldChangeData & ("instrument", lb_instruments.SelectedItem()) st_status.Text = String(rtn) たとえば、rte_1 のテキストに次のように入力されているとします。 Dear {title} {lastname}: お子様用の {instrument} をお借りいただき、ありがとうございます。 {instrument} の保守は、お子様の先生の指示に従って定期的に行ってく ださい。{instrument} の部品や教本は、お近くの楽器店でお求めになる ことができます。 656 PowerBuilder 第 10 章 PowerScript の関数 エンド ユーザがリストボックス コントロールから " トランペット " を 選択すると、各 {instrument} フィールドに " トランペット " が挿入され ます。そのほかのフィールドのデータ値は修正されません。 Dear {title} {lastname}: お子様用のトランペットをお借りいただき、ありがとうございます。 トランペットの保守は、お子様の先生の指示に従って定期的に行って ください。トランペットの部品や教本は、お近くの楽器店でお求めに なることができます。 関連項目 InputFieldCurrentName InputFieldDeleteCurrent InputFieldGetData InputFieldInsert InputFieldLocate DataSource InputFieldCurrentName 機能 リッチテキスト エディット コントロールの入力フィールドに挿入ポ イントがあるとき、その入力フィールドの名前を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldCurrentName ( ) 引数 rtename 戻り値 例 説明 リッチテキスト エディット コントロールの名前。入力 フィールドの名前を取得するコントロールを指定します。 String 型。入力フィールドの名前を返します。入力フィールドに挿入 ポイントがない場合、またはエラーが発生した場合には、空の文字列 ("")を返します。 次の例は、挿入ポイントがある入力フィールドの名前を取得します。 string ls_inputname ls_inputname = rte_1.InputFieldCurrentName() PowerScript リファレンス ボリューム 2 657 InputFieldDeleteCurrent 関連項目 InputFieldChangeData InputFieldDeleteCurrent InputFieldGetData InputFieldInsert InputFieldLocate DataSource InputFieldDeleteCurrent 機能 リッチテキスト エディット コントロールの選択された入力フィール ドを削除します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldDeleteCurrent ( ) 引数 rtename 説明 リッチテキスト エディット コントロールの名前。選択され た入力フィールドを削除するコントロールを指定します。 戻り値 Integer 型。正常に終了した場合、1 を返します。入力フィールドに挿 入ポイントがない場合、入力フィールドが編集中の場合、またはエラー が発生した場合には、-1 を返します。 解説 同じ名前を持つすべての入力フィールドには、同じデータが入ります。 ただし、フィールドのデータは個別に削除することができます。同じ 名前の入力フィールドのグループが 1 つ削除されても、残りのグルー プのデータは削除されません。同じ名前の入力フィールドがすべて削 除された場合、リッチテキスト エディット コントロールは、削除され た入力フィールドのデータを記憶しておきます。リッチテキスト エ ディット コントロールは、削除されたフィールドと同じ名前の新しい 入力フィールドを初期化する場合に、そのデータを使用します。 入力フィールドだけが選択されている必要があります。ほかのテキス トも選択されている場合、InputFieldDeleteCurrent 関数は正常に終了し ません。入力フィールドだけが選択されている場合は、ハイライト表 示が点滅します。 InputFieldDeleteCurrent 関数は、現行のフィールドだけを削除します。 文書内にほかに同じ名前のフィールドが存在しても、削除されません。 リッチテキスト エディット コントロールが DataSource 関数を使用し てデータをデータウィンドウと共有している場合、現行のフィールド は、文書のすべてのインスタンスから削除されます。 658 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、挿入ポイントがある入力フィールドを削除します。 integer li_rtn li_rtn = rte_1.InputFieldDeleteCurrent() 関連項目 InputFieldChangeData InputFieldGetData InputFieldCurrentName InputFieldInsert InputFieldLocate DataSource InputFieldGetData 機能 リッチテキスト エディット コントロールの指定された入力フィール ドのデータを取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldGetData ( inputfieldname ) 引数 rtename inputfieldname 説明 リッチテキスト エディット コントロールの名前。指定さ れた入力フィールドのデータを取得するコントロールを 指定します。 String 型の値。データを取得する入力フィールドの名前を 指定します。 戻り値 String 型。入力フィールドのデータを返します。フィールドが存在しな い場合、またはエラーが発生した場合には、空の文字列("")を返し ます。 例 次に、入力フィールド empname のデータを取得する例を示します。 string ls_name ls_name = rte_1.InputFieldGetData(empname) 関連項目 InputFieldChangeData InputFieldCurrentName InputFieldDeleteCurrent InputFieldInsert InputFieldLocate DataSource PowerScript リファレンス ボリューム 2 659 InputFieldInsert InputFieldInsert 機能 リッチテキスト エディット コントロールの挿入ポイントに、名前付き の入力フィールドを挿入します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldInsert ( inputfieldname ) 引数 rtename inputfieldname 説明 リッチテキスト エディット コントロールの名前。入力 フィールドの挿入先を指定します。 String 型の値。挿入する入力フィールドの名前を指定しま す。重複する名前を指定することもできます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。inputfieldname が NULL の場合は、NULL を返します。 解説 同じ名前の入力フィールドが複数ある場合があります。同じ名前の フィールドには、同じデータが入ります。指定された入力フィールド で InputFieldChangeData 関数を呼び出すと、同じ名前の入力フィールド はすべて変更されます。 例 範囲が選択されている場合、InputFieldInsert 関数は選択範囲の先頭に フィールドを挿入します。入力フィールドと選択範囲は、選択された ままです。 st_status.Text = String( & rte_1.InputFieldInsert("lastname")) 関連項目 660 InputFieldChangeData InputFieldCurrentName InputFieldDeleteCurrent InputFieldGetData InputFieldLocate DataSource PowerBuilder 第 10 章 PowerScript の関数 InputFieldLocate 機能 リッチテキスト エディット コントロールの入力フィールドの位置を 検索し、検索した位置に挿入ポイントを移動します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldLocate ( location {, inputfieldname } ) 引数 rtename location 説明 リッチテキスト エディット コントロールの名前。入力 フィールドの検索対象を指定します。 入力フィールドの検索位置を指定する Location カタログ データ型の値。値は以下のとおりです。 • First! − inputfieldname に指定された入力フィールドの うち、文書内で最初に検索された入力フィールドの名前 を返します。また、inputfieldname が指定されていない 場合、文書内で最初に検索された入力フィールドの名前 を返します。 • Last! − inputfieldname に指定された入力フィールドのう ち、文書内で最後に検索された入力フィールドの名前を 返します。また、inputfieldname が指定されていない場 合、文書内で最後に検索された入力フィールドの名前を 返します。 • Next! − inputfieldname に指定された入力フィールドの うち、挿入ポイントのすぐ後で検索された入力フィール ドの名前を返します。また、inputfieldname が指定され ていない場合、挿入ポイントの次にくる別の入力フィー ルドの名前を返します。 inputfieldname • Prior! − inputfieldname に指定された入力フィールドの うち、挿入ポイントのすぐ前で検索された入力フィール ドの名前を返します。また、inputfieldname が指定され ていない場合、挿入ポイントの前にある別入力フィール ドの名前を返します。 String 型の値。検索する入力フィールドの名前を指定しま す。指定された入力フィールドがコントロールに複数ある 場合、location に指定された位置にある入力フィールドが 検索されます。 戻り値 String 型。正常に終了した場合、検索結果の入力フィールドの名前を返 します。指定された条件と一致する入力フィールドが見つからなかっ た場合、またはエラーが発生した場合には、空の文字列("")を返し ます。引数のいずれかの値が NULL の場合は、NULL を返します。 解説 同じ名前の入力フィールドが複数ある場合があります。同じ名前の フィールドには、同じデータが入ります。 PowerScript リファレンス ボリューム 2 661 InputFieldLocate 例 次の例は、挿入ポイントのすぐ後にある入力フィールドを検索します。 入力フィールドが見つかった場合、ls_name にはその入力フィールドの 名前が設定されます。 string ls_name ls_name = rte_1.InputFieldLocate(Next!) 次の例では、文書の最後にある入力フィールドを検索します。 string ls_name ls_name = rte_1.InputFieldLocate(Last!) 次の例では、文書の最後にある address という名前の入力フィールドを 検索します。入力フィールドが見つかった場合、ls_name には "address" が設定されます。 string ls_name ls_name = rte_1.InputFieldLocate(Last!, "address") 関連項目 662 InputFieldChangeData InputFieldCurrentName InputFieldDeleteCurrent InputFieldGetData InputFieldInsert DataSource PowerBuilder 第 10 章 PowerScript の関数 InsertCategory 機能 グラフの項目軸上の指定された位置に項目を挿入します。項目の番号 の連続性を保つために、既存の項目も含めて番号を付け直します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.InsertCategory ( categoryvalue, categorynumber ) 引数 controlname categoryvalue categorynumber 説明 項目を挿入したいグラフ コントロールの名前を指定しま す。 挿入する項目を示す値を指定します。項目は、グラフ コン トロールで固有でなければなりません。また、指定する値 は、項目軸のデータ型と同じでなければなりません。 項目の番号を指定します。指定された項目の前に、新しい 項目が挿入されます。項目を最後に追加するには、0 を指 定します。項目軸に昇順または降順のソートが定義されて いる場合、categorynumber は無視され、項目はそのソート 順序の中に統合されます。 戻り値 Integer 型。正常に終了した場合は項目の番号を返し、エラーが発生し た場合は -1 を返します。項目がすでに存在する場合、既存の項目の番 号を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 グラフの項目は、それぞれ独立しています。たとえば、日付や時間を 軸とするグラフでも、各項目は項目間に時間的な関連を持たずに独立 しています。散布図だけは個別の項目を持たないので、連続する項目 軸を持ちます。 項目軸のデータ型が String 型の場合、項目名は固有で、大文字と小文 字を区別します。また、項目名として空の文字列("")を指定するこ とができます。ただし、項目名は固有でなければならないので、名前 として("")を持つ項目は 1 つだけです。 InsertCategory 関数を使用して新しい項目を作成すると、各データ系列の その項目に空のデータ領域ができます。AddData 関数または InsertData 関 数を使用して、そこにデータ ポイントを挿入します。 PowerScript リファレンス ボリューム 2 663 InsertCategory 項目をデータ系列の最後に追加するには、AddCategory 関 数を使用します。 別の記述方法 たとえば、次のようなステートメントがあるとします。 gr_data.InsertCategory("Qty", 0) このステートメントは、次のステートメントと同じ意味です。 gr_data.AddCategory("Qty") 例 次のステートメントは、グラフ gr_product_data の PCs という名前の項 目の前に、Macs という項目を挿入します。 integer CategoryNbr // 項目の番号を取得します。 CategoryNbr = FindCategory("PCs") gr_product_data.InsertCategory("Macs", CategoryNbr) 次のステートメントは、午後のメールの量を示すグラフの時間軸に 3 つの項目を追加します。項目軸がソートされている場合、どんな順序 で項目を追加してもかまいません。 catnum = gr_mail.InsertCategory(13:00, 0) catnum = gr_mail.InsertCategory(12:00, 0) catnum = gr_mail.InsertCategory(13:00, 0) 関連項目 664 AddData AddCategory FindCategory FindSeries InsertData InsertSeries PowerBuilder 第 10 章 PowerScript の関数 InsertClass 機能 OLE コントロールに、指定された OLE クラスの新しいオブジェクトを 挿入します。 構文 ole2control.InsertClass ( classname ) 引数 ole2control classname 戻り値 説明 新しいオブジェクトを作成する OLE コントロールの名前 を指定します。 String 型の値。作成するオブジェクトのクラス名を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 名前が無効です。 そのほかのエラーです。 引数のいずれかの値が NULL の場合は、NULL を返します。 解説 クラス名は、レジストリに登録されます。クラス名の例を次に示しま す。 Excel.Sheet Excel.Chart Word.Document 例 次に、Excel の空のスプレッドシートを OLE コントロール ole_1 に挿入 する例を示します。 integer result result = ole_1.InsertClass("excel.sheet") 関連項目 InsertFile InsertObject LinkTo PowerScript リファレンス ボリューム 2 665 InsertColumn InsertColumn 機能 指定されたラベル、配置、および幅のカラムを、指定された位置に挿 入します。 対象 リストビュー コントロール 構文 listviewname.InsertColumn ( index, label, alignment, width ) 引数 listviewname index label alignment width 説明 リストビュー コントロールの名前。カラムの挿入先を指定 します。 この行の前に新しいカラムを挿入します。 String 型の値で、挿入するカラムの名前を指定します。 Alignment カタログ データ型の値。挿入するカラムの配置 を指定します。値は以下のとおりです。 Center! Justify! Left! Right! Integer 型の値で、挿入するカラムの幅を PowerBuilder 単位 系で指定します。 戻り値 Integer 型。正常に終了した場合はカラムの index 値を返し、エラーが 発生した場合は -1 を返します。 解説 カラムは、コントロール内のどこにでも挿入できます。現在のカラム 番号よりも、指定されたインデックスの方が大きい場合、そのカラム は最後のカラムの後ろに挿入されます。 例 次の例は、Location という名前のカラムを挿入します。カラムの配置 を右詰めに設定し、カラムの幅を 300 に設定します。 lv_list.InsertColumn(2 , "Location" , Right! , 300) 関連項目 666 AddColumn DeleteColumn PowerBuilder 第 10 章 PowerScript の関数 InsertData 機能 グラフのデータ系列にデータ ポイントを挿入します。データ ポイント の項目やデータ系列の位置を指定できます。散布図には適用できませ ん。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.InsertData ( seriesnumber, datapoint, datavalue {, categoryvalue } ) 引数 controlname seriesnumber datapoint datavalue categoryvalue (オプション) 説明 データ系列 series_glossary にデータを挿入するグラフ コン トロールの名前を指定します。 データを挿入するデータ系列を識別する番号を指定します。 データを挿入する後ろの位置にあるデータ ポイント data_point_glossary の番号を指定します。 挿入するデータ ポイントの値を指定します。 項目軸のデータの値に対する項目を指定します。 categoryvalue のデータ型は、項目軸上のデータ型と一致し なければなりません。通常、categoryvalue を指定します。 この引数を省略すると、項目に属さないデータがデータ 系列に追加されます。 戻り値 Integer 型。正常に終了した場合はデータの値を返し、エラーが発生し た場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返します。 解説 categoryvalue を指定せずに datapoint を指定した場合、InsertData 関数 は、既存のデータ ポイントを次の項目にシフトして、その位置にデー タ ポイントを挿入します。シフトされた軸の最後には、項目に属さな いデータ ポイントが発生します。 categoryvalue を指定した場合に項目が存在するときには、datapoint に 指定された位置を無視して、指定された項目に、既存のデータの値を 置き換えたデータ ポイントを挿入します。項目が存在しないときに は、項目軸の最後に項目が作成されます。 特定の位置のデータ ポイントの値を変更するには、ModifyData 関数を 使用します。 PowerScript リファレンス ボリューム 2 667 InsertData 散布図 散布図にデータを追加するには、AddData 関数の構文 2 を使用します。 データ系列の最後またはデータ系列の既存の項目に データ ポイントを追加するには、AddData 関数を使用します。この関 数の引数の数は、InsertData 関数よりも少なくなります。 別の記述方法 datapoint に挿入または変更する位置を指定した場合、InsertData 関数と ModifyData 関数の動作形態は異なります。ただし、位置 0 と項目を指定 すると、AddData 関数と同様の動作形態になります。項目がすでに存在 している場合、この 3 つの関数はデータ ポイントの値を変更します。 項目が存在しない場合は、軸の最後にデータ値を持つ項目を挿入します。 項目と位置を指定し、その項目がすでに存在している場合は、InsertData 関数は位置を無視し、指定された項目のデータを変更しますが、ModifyData 関数はその位置の項目ラベルを変更します。 たとえば、次のようなステートメントがあるとします。 gr_data.InsertData(1, 0, 44, "Qty") このステートメントは、次のステートメントと同じ意味です。 gr_data.ModifyData(1, 0, 44, "Qty") また、次のように記述しても同じ意味になります。 gr_data.AddData(1, 44, "Qty") 位置を指定した場合、次の 2 つのステートメントの意味は異なります。 • InsertData 関数は、指定された位置を無視して Qty 項目のデータの 値を変更します。 gr_data.InsertData(1, 4, 44, "Qty") • ModifyData 関数は、位置 4 の項目ラベルとデータの値を変更します。 gr_data.ModifyData(1, 4, 44, "Qty") 例 たとえば、項目ラベル Jan が存在していないとします。次のステート メントは、Costs というデータ系列の Mar に対するデータ ポイントの 前にデータの値を挿入します。そのデータ ポイントをグラフ gr_product_data の項目ラベル Jan に割り当てます。 integer SeriesNbr, CategoryNbr // データ系列と項目の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") CategoryNbr = gr_product_data.FindCategory("Mar") 668 PowerBuilder 第 10 章 PowerScript の関数 gr_product_data.InsertData(SeriesNbr, & CategoryNbr, 1250, "Jan") 次のステートメントは、グラフ gr_product_data 内のデータ系列 Revenues の Apr に対するデータ値の後ろに、データ値 1250 を挿入します。デー タは Apr の後ろの項目に挿入され、残りのデータがある場合は、後ろ にずらします。 integer SeriesNbr, CategoryNbr // データ系列と項目の番号を取得します。 CategoryNbr = gr_product_data.FindCategory("Apr") SeriesNbr = gr_product_data.FindSeries("Revenues") gr_product_data.InsertData(SeriesNbr, & CategoryNbr + 1, 1250) 関連項目 AddData FindCategory FindSeries GetData PowerScript リファレンス ボリューム 2 669 InsertDocument InsertDocument 機能 リッチテキスト エディット コントロール、データウィンドウ コント ロール、またはデータストア オブジェクトに、リッチテキスト形式ま たは書式属性のない通常のテキスト ファイルを挿入します。新しい内 容は、次のどちらかの方法を使用して追加します。 • 挿入ポイントがある場所に新しい内容を挿入する • 既存のすべての内容を新しい内容で置き換える 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール、データストア オブジェクト 構文 rtename.InsertDocument ( filename, clearflag { , filetype } ) 引数 rtename filename clearflag 説明 ファイルを表示するリッチテキスト エディット コント ロール、データウィンドウ コントロール、またはデータス トア オブジェクトの名前を指定します。データウィンドウ コントロール(またはデータストア)のデータウィンドウ オブジェクトは、リッチテキスト エディット データウィ ンドウでなければなりません。 リッチテキスト エディット コントロールに表示するファ イルの名前を指定します。filename には、ファイルのパス を含めることもできます。 Boolean 型の値。コントロールの現行の内容を新しいファ イルで置き換えるかどうかを指定します。値は以下のとお りです。 • TRUE − 現行の内容をファイルで置き換えます。 filetype (オプション) • FALSE − 既存の内容の挿入ポイントに、ファイルを挿 入します。 FileType カタログ データ型の値。開くファイルの種類を指 定します。値は以下のとおりです。 • FileTypeRichText! −(デフォルト)リッチテキスト (RTF)形式 • FileTypeText! − 書式属性のない通常の ASCII テキスト (TXT) filetype が指定されていない場合、PowerBuilder はファイル 名の拡張子を使用してリッチテキストまたは ASCII テキ ストとしてファイルを読み込むかどうかを判断します。拡 張子が RTF または TXT でない場合、PowerBuilder はリッ チ テキストとしてファイルを読み込もうとします。INI、 LOG、または SQL などの拡張子のファイルを挿入するため には、FileTypeText! を指定する必要があります。 670 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。 解説 コントロールがヘッダとフッタをサポートする場合(HeaderFooter プ ロパティが TRUE の場合)、文書を挿入すると既存のヘッダとフッタに 影響します。clearflag が FALSE の場合、挿入された文書のヘッダとフッ タのテキストは、既存のヘッダとフッタのテキストに追加されます。 サポートされていない RTF 書式もあります。PowerBuilder では、標準 RTF Version 1.2 がサポートされています。ただし、次の書式はサポー トされていません。 • 書式が設定されている表 • 描画オブジェクト • 二重下線 サポートされていない書式は、すべて無視されます。 例 次に、rte_1 に文書を挿入し、戻り値をスタティックテキスト コント ロールに返す例を示します。 integer rtn rtn = rte_1.InsertDocument("c:\pb\test.rtf", & TRUE, FileTypeRichText!) st_status.Text = String(rtn) 関連項目 InputFieldInsert InsertPicture DataSource PowerScript リファレンス ボリューム 2 671 InsertFile InsertFile 機能 OLE コントロールにオブジェクトを挿入します。指定されたファイル のコピーが OLE オブジェクトに埋め込まれます。 構文 olecontrol.InsertFile ( filename ) 引数 olecontrol filename 戻り値 説明 OLE コントロールの名前を指定します。 String 型の値。ファイル名を指定します。指定されたファ イルの内容が OLE オブジェクトに埋め込むデータとなり ます。filename には、ファイルのパスを指定する必要があ ります。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 ファイルがありません。 そのほかのエラーです。 引数のいずれかの値が NULL の場合は、NULL を返します。 解説 指定されたファイルの内容が、OLE オブジェクトに埋め込まれます。 PowerBuilder のオブジェクトとファイルとの間に、リンクは設定され ません。 例 次の例は、OLE コントロール ole_1 の中にオブジェクトを作成します。 これは Excel のオブジェクトで、スプレッド シート EXPENSE.XLS の データを含んでいます。 integer result result = ole_1.InsertFile("c:\xls\expense.xls") 関連項目 672 InsertClass InsertObject LinkTo Paste PowerBuilder 第 10 章 PowerScript の関数 InsertItem リストボックス コントロール、ドロップダウン リストボックス コン トロール、リストビュー コントロール、またはツリービュー コント ロールに項目を挿入します。 項目の挿入先(コントロール) リストボックス コントロール、またはドロップダウン リ ストボックス コントロール ピクチャ リストボックス コントロールか、ドロップダウ ン ピクチャ リストボックス コントロール リストビュー コントロール(項目ラベルとピクチャ イン デックスだけを指定する場合) リストビュー コントロール(項目ラベルとピクチャ イン デックス以外の情報も指定する場合) ツリービュー コントロール(項目ラベルとピクチャ イン デックスだけを指定する場合) ツリービュー コントロール(項目ラベルとピクチャ イン デックス以外の情報も指定する場合) 使用する構文 構文 1 構文 2 構文 3 構文 4 構文 5 構文 6 構文 1 リストボックス コントロールとドロップダウン リス トボックス コントロールに項目を挿入する 機能 ピクチャ リストボックスの値のリストに、項目を挿入します。 対象 リストボックス コントロール、またはドロップダウン リストボックス コントロール 構文 listboxname.InsertItem ( item, index ) 引数 listboxname item index 戻り値 説明 リストボックス コントロールまたはドロップダウン リスト ボックス コントロールの名前。項目の挿入先を指定します。 String 型の値。挿入する項目のテキストを指定します。 リスト内での項目の番号を指定します。指定された項目の前 に、新しい項目を挿入します。 Integer 型。正常に終了した場合、リストボックスに挿入された項目の 最終的な位置を返します。エラーが発生した場合には -1 を返します。 引数のいずれかの値が NULL の場合は、NULL を返します。 PowerScript リファレンス ボリューム 2 673 InsertItem 解説 InsertItem 関数は、index に指定された項目の前に、新しい項目を挿入し ます。listboxname に指定されたコントロール内の項目がソートされて いた場合(Sorted プロパティが TRUE の場合)、PowerBuilder は新しい 項目を挿入した後、項目をソートし直します。したがって、戻り値は、 新しく挿入された項目のリストボックス内での最終的な位置を示しま す。 AddItem 関数と InsertItem 関数は、 Items プロパティ配列を更新しません。 追加された項目を実行時に検索するには、FindItem 関数を使用します。 例 次のステートメントは、lb_actions の 5 番目の項目の前に、Run Application という項目を挿入します。 lb_actions.InsertItem("Run Application", 5) Sorted プロパティが FALSE の場合、上記のステートメントは 5 を返し ます。この場合、新しい項目を挿入する前に 5 番目の項目だったもの は、6 番目の項目になります。また、Sorted プロパティが TRUE の場 合、項目を挿入した後でリスト内の項目をソートし、項目の最終的な 位置を示すインデックスを返します。 たとえば、リストボックス コントロール lb_Cities に以下の項目が格納 されていて、Sorted プロパティが TRUE であるとします。次の例では、 リストボックスの一番上に Denver を挿入してリストボックス内の項 目をソートし、li_pos に 4 を設定します。リストボックス コントロー ルの Sorted プロパティが FALSE の場合、リストボックスの一番上に Denver を挿入し、li_pos に 1 を設定します。リストの内容は、次のと おりです。 Albany Boston Chicago New York スクリプトは、次のとおりです。 string ls_City = "Denver" integer li_pos li_pos = lb_Cities.InsertItem(ls_City, 1) 関連項目 674 AddItem DeleteItem FindItem Reset TotalItems PowerBuilder 第 10 章 PowerScript の関数 構文 2 ピクチャ リストボックス コントロールまたはドロッ プダウン ピクチャ リストボックス コントロールに項 目を挿入する 機能 ピクチャ リストボックスの値のリストに、項目を挿入します。 対象 ピクチャ リストボックス コントロールか、ドロップダウン ピクチャ リストボックス コントロール 構文 listboxname.InsertItem ( item {, pictureindex }, index ) 引数 listboxname item pictureindex (オプション) index 説明 ピクチャ リストボックス コントロールか、ドロップダウ ン ピクチャ リストボックス コントロールの名前。項目の 挿入先を指定します。 String 型の値。挿入する項目のテキストを指定します。 Integer 型の値。新しく追加する項目に関連付けるピクチャ のインデックスを指定します。 リスト内での項目の番号を指定します。指定された項目の 前に、新しい項目を挿入します。 戻り値 Integer 型。正常に終了した場合、リストボックスに挿入された項目の 最終的な位置を返します。エラーが発生した場合には -1 を返します。 引数のいずれかの値が NULL の場合は、NULL を返します。 解説 ピクチャ インデックスを指定しなかった場合、新しく追加される項目 にピクチャが割り当てられません。 存在しないピクチャ インデックスを指定した場合でも、ピクチャ イン デックスの番号は、ピクチャとともに格納されます。ピクチャをピク チャ配列に追加すると、項目が対応するピクチャを示すようになりま す。 リストボックス内の項目についての補足説明、および Sorted プロパ ティが項目の順序に影響を与える例については、構文 1 を参照してく ださい。 PowerScript リファレンス ボリューム 2 675 InsertItem 例 次のステートメントは、lb_actions の 5 番目の項目の前に、Run Application という項目を挿入します。項目には、ピクチャが割り当てられません。 plb_actions.InsertItem("Run Application", 5) 次のステートメントは、lb_actions の 5 番目の項目の前に Run Application という項目を挿入し、その項目にピクチャ インデックス 4 を割り当て ます。 plb_actions.InsertItem("Run Application", 4, 5) 関連項目 AddItem DeleteItem FindItem Reset TotalItems 構文 3 リストビュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックスだけを指定する場合) 機能 リストビュー コントロールに項目を挿入します。 対象 リストビュー コントロール 構文 listviewname.InsertItem ( index, label, pictureindex ) 引数 listviewname index label pictureindex 説明 リストビュー コントロールの名前。項目の挿入先を指定し ます。 Integer 型の値。インデックス番号を指定します。このイン デックス番号の前に新しい項目を挿入します。 String 型の値。追加する項目の名前を指定します。 Integer 型の値。追加する項目のピクチャのインデックス番 号を指定します。 戻り値 Integer 型。正常に終了した場合は index を返し、エラーが発生した場 合は -1 を返します。 解説 項目ラベルとピクチャ インデックス以外にも情報を指定する場合に は、構文 4 を使用してください。 例 次の例は、リストビュー コントロールの 11 番目の位置に項目を挿入 します。 lv_list.InsertItem(11 , "Presentation" , 1) 関連項目 676 AddItem PowerBuilder 第 10 章 PowerScript の関数 構文 4 リストビュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックス以外の情報も指定す る場合) 機能 リストビュー コントロールに項目を挿入します。 対象 リストビュー コントロール 構文 listviewname.InsertItem ( index, item ) 引数 listviewname index item 説明 リストビュー コントロールの名前。項目の挿入先を指定し ます。 Integer 型の値。追加する項目のインデックス番号を指定し ます。 データ型 ListViewItem のシステム構造体を指定します。 InsertItem 関数は、ここに挿入する項目を格納します。 戻り値 Integer 型。正常に終了した場合は index を返し、エラーが発生した場 合は -1 を返します。 解説 指定したインデックスは、リストビュー コントロールに新しく追加す る項目の位置を示します。 挿入する項目ラベルとピクチャ インデックスだけを指定する場合に は、構文 3 を使用してください。 例 次の例では、リストビューの項目を 2 番目の位置から 5 番目の位置に 移動します。この例では、GetItem 関数を使用して項目 2 の状態情報を 取得します。その情報を項目 5 の状態情報としてリストビュー コント ロールに挿入し、元の項目(項目 2)を削除します。 listviewitem l_lvi lv_list.GetItem(2 , l_lvi) lv_list.InsertItem(5 , l_lvi) lv_list.DeleteItem(2) 関連項目 AddItem PowerScript リファレンス ボリューム 2 677 InsertItem 構文 5 ツリービュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックスだけを指定する場合) 機能 ツリービュー コントロールの特定のレベルに、特定の順序で項目を挿 入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItem ( handleparent, handleafter, label, pictureindex ) 引数 treeviewname handleparent handleafter label pictureindex 説明 ツリービュー コントロールの名前。項目の挿入先を指定し ます。 項目のハンドルを指定します。指定された項目の 1 つ下の レベルに、新しい項目を挿入します。最初のレベルに挿入 したい場合は、0 を指定します。 項目のハンドルを指定します。指定された項目と同じレベ ルで、この項目のすぐ後に新しい項目を挿入します。 挿入する項目のラベルを指定します。 ピクチャのリストに追加するピクチャ インデックスを指 定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 この構文は、項目ラベルとピクチャ インデックスだけを設定する場合 に使用してください。さらにほかのプロパティを設定する場合は、構 文 6 を使用してください。 ツリービューの SortType プロパティが Unsorted! 以外の値に設定され ている場合は、挿入した項目は、同レベルの項目と一緒にソートされ ます。 項目の最初の子を挿入する場合は、InsertItemLast 関数または InsertItemFirst 関数を使用してください。この 2 つの関数では handleafter を指定する 必要がありません。 例 次に、ツリービュー コントロールの現行の項目と同じレベルに項目を 挿入する例を示します。この例では、FindItem 関数を使用して現行の項 目とその親を検索し、親項目の下に新しい項目を挿入します。 long ll_tvi, ll_tvparent ll_tvi = tv_list.FindItem(currenttreeitem!, 0) ll_tvparent = tv_list.FindItem(parenttreeitem!,ll_tvi) tv_list.InsertItem(ll_tvparent,ll_tvi,"Hindemith", 2) 関連項目 678 GetItem PowerBuilder 第 10 章 PowerScript の関数 構文 6 ツリービュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックス以外の情報も指定す る場合) 機能 ツリービュー コントロールの特定のレベルに、特定の順序で項目を挿 入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItem ( handleparent, handleafter, item ) 引数 treeviewname handleparent handleafter item 説明 ツリービュー コントロールの名前。項目の挿入先を指定し ます。 項目のハンドルを指定します。指定された項目の 1 つ下の レベルに、新しい項目を挿入します。最初のレベルに挿入 したい場合は、0 を指定します。 項目のハンドルを指定します。指定された項目と同じレベ ルで、この項目のすぐ後に新しい項目を挿入します。 コントロールに挿入する項目の TreeViewItem 構造体を指 定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 項目ラベルとピクチャ インデックスだけを設定する場合は、構文 5 を 使用してください。さらにほかのプロパティを設定する場合は、この 構文を使用してください。 ツリービューの SortType プロパティが Unsorted! 以外の値に設定され ている場合は、挿入した項目は、同レベルの項目と一緒にソートされ ます。 項目の最初の子を挿入する場合は、InsertItemLast 関数または InsertItemFirst 関数を使用してください。この 2 つの関数では handleafter を指定する必要がありません。 例 次に、ツリービュー コントロールの現行の項目と同じレベルに項目を 挿入する例を示します。この例では、FindItem 関数を使用して現行の項 目とその親を検索し、親項目の下に新しい項目を挿入します。 long ll_tvi, ll_tvparent treeviewitem l_tvi ll_tvi = tv_list.FindItem(currenttreeitem!, 0) ll_tvparent = tv_list.FindItem(parenttreeitem!,ll_tvi) tv_list.GetItem(ll_tvi , l_tvi) tv_list.InsertItem(ll_tvparent,ll_tvi, l_tvi) PowerScript リファレンス ボリューム 2 679 InsertItemFirst 関連項目 GetItem InsertItemFirst 親項目の最初の子として、項目を挿入します。 目的 項目ラベルとピクチャ インデックスだけを指定する場合 項目ラベルとピクチャ インデックス以外の情報も指定す る場合 使用する構文 構文 1 構文 2 構文 1 項目ラベルとピクチャ インデックスだけを指定する 場合 機能 親の最初の子として項目を挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemFirst ( handleparent, label, pictureindex ) 引数 treeviewname handleparent label pictureindex 説明 親の最初の子として指定する項目のツリービュー コント ロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 親の最初の子として指定する項目のラベルを指定します。 親の最初の子として指定する項目のピクチャ インデック スを指定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 例 次に、InsertItemFirst 関数を使用してツリービュー コントロールの最初 のレベルに値を設定する例を示します。 long ll_lev1, ll_lev2 ,ll_lev3 ,ll_lev4 int index tv_list.PictureHeight = 32 tv_list.PictureWidth = 32 ll_lev1 = tv_list.InsertItemFirst(0,"Composers",1) ll_lev2 = tv_list.InsertItemLast(ll_lev1, & 680 PowerBuilder 第 10 章 PowerScript の関数 "Beethoven",2) ll_lev3 = tv_list.InsertItemLast(ll_lev2, & "Symphonies", 3) FOR index = 1 to 9 ll_lev4 = tv_list.InsertItemSort(ll_lev3, & "Symphony # " + String(index) , 4) NEXT tv_list.ExpandItem(ll_lev3) tv_list.ExpandItem(ll_lev4) 関連項目 InsertItem InsertItemLast InsertItemSort 構文 2 項目ラベルとピクチャ インデックス以外の情報も指 定する場合 機能 親の最初の子として項目を挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemFirst ( handleparent, item ) 引数 treeviewname handleparent item 説明 親の最初の子として指定する項目のツリービュー コント ロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 コントロールに挿入する項目の TreeViewItem 構造体を指 定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 SortType プロパティが Unsorted! 以外の値に設定されている場合、項目 が追加された後にソートされるので、ツリービューは常にソートされ ている状態になります。したがって、InsertItemFirst 関数、InsertItemLast 関数、InsertItemSort 関数を呼び出した結果は同じになります。 例 次に、ツリービュー コントロールの最上位の項目の下にある最初の項 目として、現行の項目を挿入する例を示します。 long ll_handle, ll_roothandle treeviewitem l_tvi ll_handle = tv_list.FindItem(CurrentTreeItem!, 0) PowerScript リファレンス ボリューム 2 681 InsertItemLast ll_roothandle = tv_list.FindItem(RootTreeItem!, 0) tv_list.GetItem(ll_handle , l_tvi) tv_list.InsertItemFirst(ll_roothandle, l_tvi) 関連項目 InsertItem InsertItemLast InsertItemSort InsertItemLast 親項目の最後の子として、項目を挿入します。 目的 使用する構文 項目ラベルとピクチャ インデックスだけを指定する場合 構文 1 項目ラベルとピクチャ インデックス以外の情報も指定す 構文 2 る場合 構文 1 項目ラベルとピクチャ インデックスだけを指定する 場合 機能 親の最後の子として項目を挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemLast ( handleparent, label, pictureindex ) 引数 treeviewname handleparent label pictureindex 戻り値 682 説明 親の最後の子として指定する項目のツリービュー コント ロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 親の最後の子として指定する項目のラベルを指定します。 親の最後の子として指定する項目のピクチャ インデック スを指定します。 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 項目ラベルやインデックス以外の情報も指定する必要がある場合は、 構文 2 を使用してください。 SortType プロパティが Unsorted! 以外の値に設定されている場合、項目 が追加された後にソートされるので、ツリービューは常にソートされ ている状態になります。したがって、InsertItemFirst 関数、InsertItemLast 関数、InsertItemSort 関数を呼び出した結果は同じになります。 例 次の例は、InsertItemLast 関数を使用してツリービュー コントロールの 最初の 3 つのレベルの値を設定します。 long int ll_lev1, ll_lev2, ll_lev3, ll_lev4 index tv_list.PictureHeight = 32 tv_list.PictureWidth = 32 ll_lev1 = tv_list.InsertItemLast(0,"Composers",1) ll_lev2 = tv_list.InsertItemLast(ll_lev1, & "Beethoven",2) ll_lev3 = tv_list.InsertItemLast(ll_lev2, & "Symphonies",3) FOR index = 1 to 9 ll_lev4 = tv_list.InsertItemSort(ll_lev3, & "Symphony # " String(index), 4) NEXT tv_list.ExpandItem(ll_lev3) tv_list.ExpandItem(ll_lev4) 関連項目 InsertItem InsertItemFirst InsertItemSort PowerScript リファレンス ボリューム 2 683 InsertItemLast 構文 2 項目ラベルとピクチャ インデックス以外の情報も指 定する場合 機能 親の最後の子として項目を挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemLast ( handleparent, item ) 引数 treeviewname handleparent item 説明 親の最後の子として指定する項目のツリービュー コント ロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 コントロールに挿入する項目の TreeViewItem 構造体を指 定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 SortType プロパティが Unsorted! 以外の値に設定されている場合、項目 が追加された後にソートされるので、ツリービューは常にソートされ ている状態になります。したがって、InsertItemFirst 関数、InsertItemLast 関数、InsertItemSort 関数を呼び出した結果は同じになります。 例 次の例は、ツリービュー コントロールの最上位の項目の下にある最後 の項目として、現行の項目を挿入します。 long ll_handle, ll_roothandle treeviewitem l_tvi ll_handle = tv_list.FindItem(CurrentTreeItem!, 0) ll_roothandle = tv_list.FindItem(RootTreeItem!, 0) tv_list.GetItem(ll_handle , l_tvi) tv_list.InsertItemLast(ll_roothandle, l_tvi) 関連項目 684 InsertItem InsertItemFirst InsertItemSort PowerBuilder 第 10 章 PowerScript の関数 InsertItemSort 子項目を挿入し、親項目内で項目をソートします。 目的 項目ラベルとピクチャ インデックスだけを指定する場合 項目ラベルとピクチャ インデックス以外の情報も指定す る場合 使用する構文 構文 1 構文 2 構文 1 項目ラベルとピクチャ インデックスだけを指定する 場合 機能 可能であれば、項目をソート順で挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemSort ( handleparent, label, pictureindex ) 引数 treeviewname handleparent label pictureindex 説明 親の子として項目を挿入し、ラベル順にソートするツリー ビュー コントロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 親の子として項目をソートするラベルを指定します。 親の子としてラベル順にソートする項目のピクチャ イン デックスを指定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 SortType プロパティが Unsorted! 以外の値に設定されている場合、ツ リービューは常にソートされている状態になるので、InsertItemSort 関数 を呼び出す必要はありません。任意の挿入関数を使用できます。 SortType プロパティが Unsorted! の場合、アルファベットの昇順で項目 が挿入されます。リストがソートされていない場合には、挿入に最適 な位置を検索しますが、結果は不定です。 例 次の例は、ツリービュー コントロールの 4 番目のレベルの値を設定し ます。 long ll_lev1, ll_lev2 ,ll_lev3 ,ll_lev4 int index tv_list.PictureHeight = 32 tv_list.PictureWidth = 32 PowerScript リファレンス ボリューム 2 685 InsertItemSort ll_lev1 = tv_list.InsertItemLast(0,"Composers",1) ll_lev2 = tv_list.InsertItemLast(ll_lev1, & "Beethoven",2) ll_lev3 = tv_list.InsertItemLast(ll_lev2, & "Symphonies",3) FOR index = 1 to 9 ll_lev4 = tv_list.InsertItemSort(ll_lev3, & "Symphony # " + String(index) , 4) NEXT tv_list.ExpandItem(ll_lev3) tv_list.ExpandItem(ll_lev4) 関連項目 InsertItem InsertItemLast InsertItemFirst 構文 2 項目ラベルとピクチャ インデックス以外の情報も指 定する場合 機能 可能であれば、項目をソート順で挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemSort ( handleparent, item ) 引数 treeviewname handleparent item 説明 親の子としてラベル順にソートする項目のツリービュー コントロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 コントロールに挿入する項目の TreeViewItem 構造体を指 定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 SortType プロパティが Unsorted! 以外の値に設定されている場合、ツ リービューは常にソートされている状態になるので、InsertItemSort 関 数を呼び出す必要はありません。任意の挿入関数を使用できます。 SortType プロパティが Unsorted! の場合、アルファベットの昇順で項目 が挿入されます。リストがソートされていない場合には、挿入に最適 な位置を検索しますが、結果は不定です。 686 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、ツリービュー コントロールの最上位の項目の下にある現行 の項目を挿入し、ラベル順にソートします。 long ll_handle, ll_roothandle treeviewitem l_tvi ll_handle = tv_list.FindItem(CurrentTreeItem!, 0) ll_roothandle = tv_list.FindItem(RootTreeItem!, 0) tv_list.GetItem(ll_handle , l_tvi) tv_list.InsertItemSort(ll_roothandle, l_tvi) 関連項目 InsertItem InsertItemFirst InsertItemLast InsertObject 機能 エンド ユーザが新規または既存の OLE オブジェクトを選択できるよ うに、標準のオブジェクトの挿入ダイアログボックスを表示し、OLE コントロールに指定されたオブジェクトを挿入します。 構文 olecontrol.InsertObject ( ) 引数 olecontrol 戻り値 説明 オブジェクトを挿入する OLE コントロールの名前を指定 します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 1 エンド ユーザがダイアログボックスの表示を取り消しました。 -9 エラーが発生しました。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、エンド ユーザが OLE オブジェクトを選択できるように、標 準の オブジェクトの作成と貼り付け ダイアログボックスを表示しま す。InsertObject 関数は、指定されたオブジェクトをコントロール ole_1 に挿入します。 integer result result = ole_1.InsertObject() 関連項目 InsertClass PowerScript リファレンス ボリューム 2 687 InsertPicture InsertFile LinkTo InsertPicture 機能 リッチテキスト エディット コントロールの挿入ポイントに、ビット マップを挿入します。 対象 リッチテキスト エディット コントロール 構文 rtename.InsertPicture ( filename ) 引数 rtename filename 説明 ピクチャを挿入するリッチテキスト エディット コント ロールの名前を指定します。 String 型の値。ビットマップを格納しているファイルの名 前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。filename が NULL の場合、NULL を返します。 解説 範囲が選択されている場合、InsertPicture 関数は選択範囲の先頭にビッ トマップを挿入します。ビットマップと選択範囲は、選択されたまま です。 例 次に、リッチテキスト エディット コントロール rte_1 の挿入ポイント に BMP ファイルを挿入する例を示します。 integer li_rtn li_rtn = rte_1.InsertPicture("c:\windows\earth.bmp") 関連項目 688 InputFieldInsert InsertDocument PowerBuilder 第 10 章 PowerScript の関数 InsertSeries 機能 グラフの指定された位置にデータ系列を挿入します。番号の連続性を 保つために、グラフの既存のデータ系列も含めて番号を付け直します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.InsertSeries ( seriesname, seriesnumber ) 引数 controlname seriesname seriesnumber 説明 データ系列を挿入するグラフ コントロールの名前を指定 します。 挿入するデータ系列の名前を含む文字列を指定します。 データ系列の名前は、グラフの中で固有でなければなりま せん。 データ系列を挿入する位置の後ろにあるデータ系列の番 号を指定します。データ系列を最後に追加するには、0 を 指定します。 戻り値 Integer 型。正常に終了した場合はデータ系列の番号を返し、エラーが 発生した場合は -1 を返します。seriesname というデータ系列がすでに 存在する場合は、既存のデータ系列の番号を返します。引数のいずれ かの値が NULL の場合は、NULL を返します。 解説 データ系列の名前は、大文字と小文字が区別されます。したがって、 同じ文字列でも大文字と小文字が異なる場合には、それぞれ別の名前 とみなされます。 リストの最後にデータ系列を追加するには、AddSeries 関 数を使用します。AddSeries 関数は、挿入するデータ系列の名前だけを 引数とします。 別の記述方法 たとえば、次のようなステートメントがあるとします。 gr_data.InsertSeries("Costs", 0) このステートメントは、次のステートメントと同じ意味です。 gr_data.AddSeries("Costs") PowerScript リファレンス ボリューム 2 689 InsertSeries 例 以下に、グラフ gr_product_data 内にある Income というデータ系列の前 に、データ系列を挿入するステートメントを示します。 integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = FindSeries("Income") gr_product_data.InsertSeries("Costs", SeriesNbr) 関連項目 690 AddData AddSeries FindCategory FindSeries InsertCategory InsertData PowerBuilder 第 10 章 PowerScript の関数 Int 機能 指定した数値以下の整数の中から、最大の整数を返します。 構文 Int ( n ) 引数 n 説明 数値を指定します。指定された値以下の整数の中から、最 大の整数を返します。 戻り値 Integer 型。n に指定され値以下の整数の中から、最大の整数を返しま す。n に指定された値が整数として表すのに小さすぎる場合や大きす ぎる場合、Int 関数は 0 を返します。n が NULL の場合、NULL を返します。 解説 Int 関数の結果の値が -32768 よりも小さい場合、または 32767 よりも大 きい場合には、整数として表すことができないので 0 を返します。 例 次のステートメントは、3.0 を返します。 Int(3.2) Int(3.8) 次のステートメントは、-4.0 を返します。 Int(-3.2) Int(-3.8) 次のステートメントは、指定された変数の小数点以下の桁を削除し、 その結果の整数を li_nbr に格納します。 integer li_nbr li_nbr = Int(3.2) // li_nbr = 3 関連項目 Ceiling Round Truncate 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Int メソッド PowerScript リファレンス ボリューム 2 691 Integer Integer 機能 文字列の値を整数に変換します。または、Blob 型のデータから整数値 を取得します。 構文 Integer ( stringorblob ) 引数 stringorblob 説明 Integer 型に変換する文字列、または最初の値が整数値であ る Blob 型のデータを指定します。残りの Blob 型の値は無 視されます。Stringorblob には、文字列または Blob 型を含 む Any 型変数を指定することもできます。 戻り値 Integer 型。正常に終了した場合、stringorblob に指定された数値を整数 として返します。stringorblob が有効な数値でない場合、またはデータ 型が一致しない場合には、0 を返します。stringorblob が NULL の場合、 NULL を返します。 解説 値が数字の 0 である文字列と、値が数値以外である文字列とを区別す るには、Integer 関数を呼び出す前に IsNumber 関数を使用します。 例 次のステートメントは、文字列 24 を整数として返します。 Integer("24") 次のステートメントは、シングルライン エディット コントロール sle_Age の内容を整数として返します。 Integer(sle_Age.Text) 次のステートメントは、0 を返します。 Integer("3ABC") // 3ABC は数値ではありません。 次ので例は、変換する前に sle_data のテキストが数値かどうかテスト します。このテストは、エンド ユーザが 0 を入力したかどうかを調べ るために必要です。 integer li_new_data IF IsNumber(sle_data.Text) THEN li_new_data = Integer(sle_data.Text) ELSE SetNull(li_new_data) END IF 次の例では、データベースの Blob 型データを lb_blob に割り当てた後、 Blob 型データの位置 20 に格納されている Integer 型の値を取得します。 integer i i = Integer(BlobMid(lb_blob, 20, 2)) 692 PowerBuilder 第 10 章 PowerScript の関数 関連項目 Double Dec IsNumber Long Real 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Integer メソッド InternetData 機能 GetURL 関数や PostURL 関数が返した HTML データを処理します。コ ンテキスト オブジェクトがこの関数を呼び出すので、ユーザが明示的 に呼び出す必要はありません。InternetRequest 標準クラス ユーザ オブ ジェクトの子孫をカスタマイズして、この関数を上書きしてください。 対象 InternetResult オブジェクト 構文 servicereference.InternetData ( data ) 引数 servicereference data 戻り値 説明 インターネット サービス インスタンスへの参照を指定し ます。 Blob 型データを指定します。ここに、GetURL 関数や PostURL 関数が要求したデータがすべて格納されます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 InternetRequest の子孫であるユーザ オブジェクト内でこの関数を上書 きしてください。上書きした関数には、Blob 型の引数が 1 つ含まれて いなければなりません。引数は値で渡されます。この関数は、Integer 型の戻り値を返し、data を適切に処理します。 明示的に呼び出さない InternetData 関数は、明示的に呼び出さないでください。GetURL 関数と PostURL 関数に含まれる引数は、インスタンス化した InternetRequest 子 孫を参照します。GetURL 関数と PostURL 関数が完了したら、コンテ キスト オブジェクトが InternetData 関数を呼び出し、data に HTML を 格納して返します。 PowerScript リファレンス ボリューム 2 693 IntHigh 例 次の例は、上書きした InternetData 関数を使用して GetURL 関数が返し たデータを表示するコードです。 MessageBox("GetURL からの HTML", String(data, EncodingANSI!)) RETURN 1 & blob は実際のデータを含み、エンコードされた Unicode ではありませ ん。そのため、String 関数の EncodingANSI! 引数を使用する必要があり ます。 関連項目 GetURL PostURL IntHigh 機能 Long 型の値の上位ワードを返します。 構文 IntHigh ( long ) 引数 long 説明 Long 型の値を指定します。 戻り値 Integer 型。正常に終了した場合は long で指定された値の上位ワードを 返し、エラーが発生した場合は -1 を返します。long が NULL の場合、 NULL を返します。 解説 IntHigh 関数は、外部 C 関数や Windows のメッセージによって返される 値をデコードする場合に使用します。 例 次のステートメントは、Long 型の値 LValue を下位と上位の Integer に デコードします。 integer nLow, nHigh long LValue = 274489 nLow = IntLow (LValue) // 下位 Integer は 12345 です。 nHigh = IntHigh(LValue) // 上位 Integer は 4 です。 関連項目 694 IntLow PowerBuilder 第 10 章 PowerScript の関数 IntLow 機能 Long 型の値の下位ワードを返します。 構文 IntLow ( long ) 引数 long 説明 Long 型の値を指定します。 戻り値 Integer 型。正常に終了した場合は long で指定された値の下位ワードを 返し、エラーが発生した場合は -1 を返します。long が NULL の場合、 NULL を返します。 解説 IntLow 関数は、外部 C 関数や Windows のメッセージによって返される 値をデコードする場合に使用します。 例 次のステートメントは、Long 型の値 LValue を下位と上位の Integer に デコードします。 integer nLow, nHigh long LValue = 12345 nLow = IntLow (LValue) // 下位 Integer は 12345 です。 nHigh = IntHigh(LValue) // 上位 Integer は 0 です。 関連項目 IntHigh InvokePBFunction 機能 指定されたユーザ定義のウィンドウ関数を、PowerBuilder ウィンドウ ActiveX コントロールに含まれるチャイルド ウィンドウで起動します。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.InvokePBFunction ( name {, numarguments {, arguments } }) 引数 activexcontrol name numarguments (オプション) PowerScript リファレンス ボリューム 2 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子を指定します。HTML で使用する場合、これ はオブジェクト要素の NAME 属性です。そのほかの環境 で使用する場合には、これは PowerBuilder ウィンドウ ActiveX を含むコントロールを参照します。 String 型の値。ユーザ定義のウィンドウ関数の名前を指定 します。この引数は、参照渡しされます。 arguments 配列の構成要素の数値を指定する整数。デフォ ルトは 0 です。 695 InvokePBFunction 引数 arguments (オプション) 説明 Variant 配列で、関数の引数を含みます。PowerBuilder では、 変数は Any データ型にマップされます。この引数は、参照 渡しされます。 この引数を指定すると、numarguments も指定しなければな りません。この引数を指定せず、関数が arguments を含む 場合は、各引数に対して一度ずつ SetArgElement 関数を呼 び出して引数リストに値を与えます。 JavaScript は、この引数を使用できません。 戻り値 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 指定されたユーザ定義のウィンドウ関数を、PowerBuilder ウィンドウ ActiveX コントロールに含まれるチャイルド ウィンドウで起動します。 PowerBuilder 関数の戻り値を確認するには、GetLastReturn 関数を呼び出 します。 JavaScript は、arguments 引数を使用できません。 例 次に、JavaScript で InvokePBFunction 関数を呼び出す例を示します。 function invokeFunc(f) { var retcd; var rc; var numargs; var theFunc; var theArg; retcd = 0; numargs = 1; theArg = f.textToPB.value; PBRX1.SetArgElement(1, theArg); theFunc = "of_args"; retcd = PBRX1.InvokePBFunction(theFunc, numargs); rc = parseInt(PBRX1.GetLastReturn()); IF (rc != 1) { alert(" エラー。空の文字列です。"); } PBRX1.ResetArgElements(); } 次に、VBScript で InvokePBFunction 関数を呼び出す例を示します。 Sub invokeFunction_OnClick() Dim retcd Dim myForm Dim args(1) 696 PowerBuilder 第 10 章 PowerScript の関数 Dim rc Dim numargs Dim theFunc Dim rcfromfunc retcd = 0 numargs = 1 rc = 0 theFunc = "of_args" Set myForm = Document.buttonForm args(0) = buttonForm.textToPB.value retcd = PBRX1.InvokePBFunction(theFunc, & numargs, args) rc = PBRX1.GetLastReturn() IF rc <> 1 THEN msgbox " エラー。空の文字列です。" END IF PBRX1.ResetArgElements(); END sub 関連項目 GetLastReturn SetArgElement TriggerPBEvent _Is_A 機能 CORBA オブジェクトが、特定のインタフェースを実装したクラスの インスタンスかどうかをチェックします。 この関数は、EAServer に接続している PowerBuilder クライアントに よって使用されます。 対象 CORBAObject オブジェクト 構文 corbaobject._Is_A ( classname ) 引数 corbaobject classname 戻り値 説明 テストする CORBAObject 型のオブジェクトを指定します。 テストに使用されるインタフェースを指定します。 Boolean 型。オブジェクトのクラスが指定されたインタフェースを実装 している場合は TRUE を返し、そうでない場合は FALSE を返します。 PowerScript リファレンス ボリューム 2 697 IsAlive 解説 _Narrow 関数への呼び出しを行う前に _Is_A 関数を呼び出すと、 CORBA オブジェクトが、_Narrow 関数によってオブジェクトを限定するイン タフェースを実装しているクラスのインスタンスであるかどうかを検 証することができます。 例 次の例では、CORBA オブジェクトの参照が、n_Bank_Account を実装し ているクラスのインスタンスかどうかをチェックします。 CORBAObject my_corbaobj n_Bank_Account my_account ... ... if (my_corbaobj._is_a("n_Bank_Account")) then my_corbaobj._narrow(my_account,"n_Bank_Account") end if my_account.withdraw(100.0) 関連項目 _Narrow IsAlive 機能 サーバ オブジェクトが起動しているかどうかを評価します。 対象 OLEObject オブジェクト、OLETxnObject オブジェクト 構文 oleobject.IsAlive ( ) 引数 oleobject 説明 オートメーション サーバまたは COM オブジェクトに接続 されている OLEObject 変数または OLETxnObject 変数の名 前を指定します。 戻り値 Boolean 型。サーバ オブジェクトが起動しているように見える場合は TRUE を返し、終了している場合は FALSE を返します。 解説 IsAlive 関数は、サーバ プロセスが終了しているかどうかを評価するの に使用します。この関数は、ExternalException イベントと Error イベン トによって提供されるエラー処理にかわるものではありません。これ は、一定の間隔で、あるいは特定の操作の前に、サーバが実行中かど うかをチェックして、実行時エラーを回避する手段を提供するもので す。 698 PowerBuilder 第 10 章 PowerScript の関数 IsAlive 関数が TRUE を返しても、サーバは起動しているように見える だけで、実際のステータスはマスクされています。特にサーバが別の コンピュータ上で実行されている場合は、DCOM がキャッシュされた 情報を使ってサーバの状態を判断している可能性があるため、このよ うな状況が発生しやすくなります。FALSE の戻り値は、常に、サーバ が終了していることを表します。 例 この例では、まず OLEObject 変数を作成します。次に、ConnectToNewObject 関数を呼び出して、PowerBuilder COM オブジェクトのインスタンスを 新しく作成し、これに接続します。一定の処理を行った後、さらに追 加の処理を実行する前に、サーバがまだ起動しているかどうかを チェックします。 OLETxnObject EmpObj Integer li_rc EmpObj = CREATE OLEObject li_rc = EmpObj.ConnectToNewObject("PB70COM.employee") // COM オブジェクトに対する処理を実行します。 ... IF EmpObj.IsAlive()THEN // 処理を続行します。 END IF IsAllArabic 機能 指定された文字列に含まれる文字が、すべてアラビア文字かどうかを テストします。 構文 IsAllArabic ( string ) 引数 string 説明 文字列。含まれる文字がすべてアラビア文字かどうかをテ ストします。 戻り値 Boolean 型。string がすべてアラビア文字の場合には TRUE を返し、そ うでない場合は FALSE を返します。数字、空白文字、発音記号などが 含まれる場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsAllArabic に FALSE が設定されます。 PowerScript リファレンス ボリューム 2 699 IsAllHebrew 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name のデータがすべてア ラビア文字で構成されている場合に TRUE を返します。 IsAllArabic(sle_name.Text) 関連項目 IsAnyArabic IsArabic IsArabicAndNumbers Reverse IsAllHebrew 機能 指定された文字列に含まれる文字が、すべてヘブライ文字かどうかを テストします。 構文 IsAllHebrew ( string ) 引数 string 説明 文字列。含まれる文字がすべてヘブライ文字かどうかをテ ストします。 戻り値 Boolean 型。string がすべてヘブライ文字の場合には TRUE を返し、そ うでない場合は FALSE を返します。数字、空白文字、発音記号などが 含まれる場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsAllHebrew に FALSE が設定されます。 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name のデータがすべてヘ ブライ文字で構成されている場合に TRUE を返します。 IsAllHebrew(sle_name.Text) 関連項目 700 IsAnyHebrew IsHebrew IsHebrewAndNumbers Reverse PowerBuilder 第 10 章 PowerScript の関数 IsAnyArabic 機能 指定された文字列にアラビア文字が 1 文字以上含まれているかどうか をテストします。 構文 IsAnyArabic ( string ) 引数 string 説明 文字列。アラビア文字が 1 文字以上含まれるかどうかをテ ストします。 戻り値 Boolean 型。string にアラビア文字が 1 文字以上含まれている場合には TRUE を返し、そうでない場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsAnyArabic に FALSE が設定されます。 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name にアラビア文字が 1 文字以上含まれている場合に TRUE を返します。 IsAnyArabic(sle_name.Text) 関連項目 IsAllArabic IsArabic IsArabicAndNumbers Reverse IsAnyHebrew 機能 指定された文字列にヘブライ文字が 1 文字以上含まれているかどうか をテストします。 構文 IsAnyHebrew ( string ) 引数 string 説明 文字列。ヘブライ文字が 1 文字以上含まれるかどうかをテ ストします。 戻り値 Boolean 型。string にヘブライ文字が 1 文字以上含まれている場合には TRUE を返し、そうでない場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsAnyHebrew に FALSE が設定されます。 PowerScript リファレンス ボリューム 2 701 IsArabic 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name にヘブライ文字が 1 文字以上含まれている場合に TRUE を返します。 IsAnyHebrew(sle_name.Text) 関連項目 IsAllHebrew IsHebrew IsHebrewAndNumbers Reverse IsArabic 機能 指定された文字がアラビア文字であるかどうかをテストします。文字 列の場合は、左端の 1 文字だけをテストします。 構文 IsArabic ( character ) 引数 character 説明 文字または文字列。アラビア文字かどうかをテストします。 戻り値 Boolean 型。character がアラビア文字の場合は TRUE を返し、そうでな い場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsArabic に FALSE が設定されます。 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name の最初の文字がアラ ビア文字の場合に TRUE を返します。 IsArabic(sle_name.Text) 関連項目 702 IsAllArabic IsAnyArabic IsArabicAndNumbers Reverse PowerBuilder 第 10 章 PowerScript の関数 IsArabicAndNumbers 機能 指定された文字列の文字がすべてアラビア文字または数字かどうかを テストします。 構文 IsArabicAndNumbers ( string ) 引数 string 説明 文字列。含まれる文字がすべてアラビア文字または数字で あるかどうかをテストします。 戻り値 Boolean 型。string がすべてアラビア文字または数字の場合には TRUE を返し、そうでない場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsArabicAndNumbers に FALSE が設定されます。 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name のデータがすべてア ラビア文字と数字で構成されている場合に TRUE を返します。 IsArabicAndNumbers(sle_name.Text) 関連項目 IsAllArabic IsAnyArabic IsArabic Reverse IsCallerInRole 機能 COM+ 上で動作する COM オブジェクトの直接の呼び出し元が指定さ れた役割(個別、もしくはグループの一部として)を持っているかど うかを示します。 対象 TransactionServer オブジェクト 構文 transactionserver.IsCallerInRole ( role ) 引数 transactionserver role 戻り値 説明 TransactionServer サービス インスタンスへの参照を指 定します。 役割の名前を含む String 型の式を指定します。 Boolean 型。直接の呼び出し元が指定された役割を持っていれば TRUE を返し、そうでない場合は FALSE を返します。 PowerScript リファレンス ボリューム 2 703 IsCallerInRole 解説 COM+ において、役割とは、特定のユーザまたはユーザ グループのア クセス権のセットを表します。たとえば、営業データベースにアクセ スを提供するコンポーネントには、管理職と営業担当者に対してそれ ぞれ異なる役割が用意されています。 コードの中で使用する場合は、特定の役割を持つユーザに限定された タスクを行うコードを実行する前に、IsCallerInRole 関数を使って、現行 メソッドの呼び出し元がその役割に関連付けられているかどうかを評 価します。 IsCallerInRole 関数は、現行メソッドの直接の呼び出し元が、指定され た役割を持っているかどうかを評価するだけです。直接の呼び出し元 は、クライアント プロセスかサーバ プロセスのいずれかになります。 パッケージは専用サーバ プロセスの中で実行すること 役割チェックをサポートするためには、COM+ パッケージを Library パッケージではなく、Server パッケージとして起動する必要がありま す。Server パッケージは、専用サーバ プロセスの中で実行されます。 Library パッケージは、作成者のプロセスの中で実行され、主としてデ バッグに使用されます。 IsCallerInRole 関数は、セキュリティ チェックが有効になっている場合 のみ、意味のある値を返します。セキュリティ チェックは、COM ま たは COM+ のプロジェクト ウィザードまたはプロジェクト ペインタ で有効にすることができます。 例 次の例では、役割の名前を引数とし、Integer 型の値を返す関数 (f_checkrole)を呼び出します。この例の場合、管理職だけが 200,000 円 を超える発注を行うことができます。 integer rc long ordervalue IF ordervalue > 200,000 THEN rc = f_checkrole("Manager") IF rc <> 1 // 負の値を処理して終了します。 ELSE // 処理を続行します。 END IF END IF 704 PowerBuilder 第 10 章 PowerScript の関数 f_checkrole 関数は、まず、コンポーネントが COM+ 上で動作している かどうかと、セキュリティ チェックが有効になっているかどうかを チェックします。次に、直接の呼び出し元が、引数に指定された役割 を持っているかどうかをチェックします。いずれかのチェックに失敗 すると、負の値を返します。 TransactionServer ts integer li_rc string str_role li_rc = GetContextService( "TransactionServer", ts) // 必要であればエラーを処理します。 // COM+ 上で動作しているかどうかを調べます。 IF ts.which() <> 2 THEN RETURN -1 // セキュリティが有効になっているかどうかを調べます。 IF NOT ts.IsSecurityEnabled() THEN RETURN -2 // 呼び出し元が役割を持っているかどうかを調べます。 IF NOT ts.IsCallerInRole(str_role) THEN RETURN -3 ELSE RETURN 1 END IF 関連項目 ImpersonateClient IsImpersonating IsSecurityEnabled RevertToSelf IsDate 機能 文字列の値が有効な日付かどうかをテストします。 構文 IsDate ( datevalue ) 引数 datevalue PowerScript リファレンス ボリューム 2 説明 String 型の値。有効な日付かどうかを確認する値を指定し ます。 705 IsHebrew 戻り値 Boolean 型。datevalue が有効な日付の場合は TRUE を返し、そうでない 場合は FALSE を返します。datevalue が NULL の場合、IsDate は NULL を 返します。 解説 IsDate 関数を使用すると、エンド ユーザが入力したデータを Date 型の データに変換する前に、有効な日付かどうかをテストすることができ ます。ある値を日付の値に変換するには、Date 関数を使用します。西 暦の値は、01 から 9999 の範囲でなければなりません。 例 次のステートメントは、TRUE を返します。 IsDate("Jan 1, 05") 次のステートメントは、FALSE を返します。 IsDate("Jan 32, 2005") シ ン グ ル ラ イ ン エ デ ィ ッ ト コ ン ト ロ ー ル sle_Date_Of_Hire の 値 が "7/1/91" の場合、次のステートメントは HireDate に 1999-07-01 を格納 します。 Date HireDate IF IsDate(sle_Date_Of_Hire.text) THEN HireDate = Date(sle_Date_Of_Hire.text) END IF 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの IsDate メソッド IsHebrew 機能 指定された文字がヘブライ文字であるかどうかをテストします。文字 列の場合は、左端の 1 文字だけをテストします。 構文 IsHebrew ( character ) 引数 character 説明 文字または文字列。ヘブライ文字かどうかをテストしま す。 戻り値 Boolean 型。character がヘブライ文字の場合は TRUE を返し、そうでな い場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsHebrew に FALSE が設定されます。 706 PowerBuilder 第 10 章 PowerScript の関数 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name の最初の文字がヘブ ライ文字の場合に TRUE を返します。 IsHebrew(sle_name.Text) 関連項目 IsAllHebrew IsAnyHebrew IsHebrewAndNumbers Reverse IsHebrewAndNumbers 機能 指定された文字列の文字がすべてヘブライ文字または数字かどうかを テストします。 構文 IsHebrewAndNumbers ( string ) 引数 string 説明 文字列。含まれる文字がすべてヘブライ文字または数字で あるかどうかをテストします。 戻り値 Boolean 型。string がすべてヘブライ文字または数字の場合には TRUE を返し、そうでない場合は FALSE を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsHebrewAndNumbers に FALSE が設定されます。 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name のデータがすべてヘ ブライ文字と数字で構成されている場合に TRUE を返します。 IsHebrewAndNumbers(sle_name.Text) 関連項目 IsAllHebrew IsAnyHebrew IsHebrew Reverse PowerScript リファレンス ボリューム 2 707 IsImpersonating IsImpersonating 機能 COM+ 上で動作する COM オブジェクトがクライアントに同一化され ているかどうかを問い合わせます。 対象 TransactionServer オブジェクト 構文 transactionserver.IsImpersonating ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Boolean 型。コンポーネントがクライアントに同一化されていれば TRUE を返し、そうでない場合は FALSE を返します。 解説 COM+ 上で動作する COM オブジェクトは、ImpersonateClient 関数を 使って、クライアントのセキュリティ コンテキストで実行することが できます。これによって、サーバ プロセスがクライアントと同じリ ソ ー ス に ア ク セ ス で き る よ う に な り ま す。IsImpersonating 関 数 は、 ImpersonateClient 関数が呼び出され、これに対応する RevertToSelf 関数 が呼び出されていないかどうかを評価するのに使用します。 例 次の例では、まず TransactionServer サービスのインスタンスを作成し、 COM オブジェクトが現在クライアントのセキュリティ コンテキスト で実行されているかどうかをチェックします。クライアントのセキュ リティ コンテキストで実行されていない場合は、クライアントに同一 化させ、クライアントのセキュリティ コンテキストを使って一定の処 理を実行した後、このオブジェクトのセキュリティ コンテキストに戻 します。 TransactionServer txninfo_test integer li_rc li_rc = GetContextService( "TransactionServer", txninfo_test ) IF NOT txninfo_test.IsImpersonating() THEN txninfo_test.ImpersonateClient() END IF // クライアントとして処理を続行します。 txninfo_test.RevertToSelf() 関連項目 708 & ImpersonateClient IsCallerInRole IsSecurityEnabled RevertToSelf PowerBuilder 第 10 章 PowerScript の関数 IsInTransaction 機能 コンポーネントがトランザクションの中で実行されているかどうかを 表します。 対象 TransactionServer オブジェクト 構文 transactionserver.IsInTransaction ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Boolean 型。コンポーネントがトランザクションの一部として実行され ていれば TRUE を返し、そうでない場合は FALSE を返します。 解説 コンポーネントのメソッドでは、IsInTransaction 関数を呼び出して、こ のメソッドがトランザクションの中で実行されているかどうかを評価 することができます。 transactional として宣言したコンポーネントのメソッドは、常にトラン ザクションの一部として実行されます。 Supports Transaction のトランザクション タイプを持つコンポーネント のメソッドは、このコンポーネントが基本クライアントによって直接 インスタンス化されているか、別のコンポーネントによってインスタ ンス化されているかによって、EAServer トランザクションのコンテキ スト上で実行されている場合と、そうでない場合があります。このよ うなトランザクション タイプを持つコンポーネントでは、IsInTransaction 関数を使用して、コンポーネントがトランザクションの中で実行され ているかどうかを評価することができます。 IsInTransaction 関数は、EAServer における isInTransaction トランザク ション プリミティブに相当します。 例 次に、IsInTransaction 関数の使用例を示します。 TransactionServer ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer", & ts) IF ts.IsInTransaction = TRUE THEN // トランザクションのコンテキストに基づいてロジックを実行し ます。 END IF PowerScript リファレンス ボリューム 2 709 IsNull 関連項目 EnableCommit IsTransactionAborted Lookup SetAbort SetComplete Which IsNull 機能 変数または式の値が NULL かどうかを調べます。 構文 IsNull ( any ) 引数 any 説明 変数または式を指定します。その値が NULL 値かどうかを テストします。 戻り値 Boolean 型。any に指定した変数が NULL の場合は TRUE を返し、そう でない場合は FALSE を返します。 解説 IsNull 関数は、エンド ユーザが入力した値、またはデータベースの検 索によって読み込まれた値が NULL かどうかをテストする場合に使用 します。この関数は、配列以外のすべてのデータ型に対して有効です。 データウィンドウに NULL 値を許さないカラムが 1 つまたは複数ある 場合、エンド ユーザがそのすべてのカラムにデータを入力するまでは 更新しません。開発者は IsNull 関数を使用してすべての行とカラムを 1 つずつ調べるかわりに、FindRequired 関数を使用して NULL 値のままの カラムが存在する行を見つけます。 変数を NULL に設定するには 変数を NULL に設定するには、SetNull 関数を使用します。 例 次のステートメントは、lb_test に "TRUE" を設定します。 integer a, b boolean lb_test SetNull(b) lb_test = IsNull(a + b) 710 PowerBuilder 第 10 章 PowerScript の関数 関連項目 SetNull 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの IsNull メソッド IsNumber 機能 文字列の値が数値かどうかを調べます。 構文 IsNumber ( string ) 引数 string 説明 String 型の値。PowerScript で有効な数値であるかどうかを 調べる値を指定します。 戻り値 Boolean 型。string の値が PowerScript で有効な数値である場合は TRUE を返し、そうでない場合は FALSE を返します。string が NULL の場合、 NULL を返します。 解説 IsNumber 関数を使用すると、エディット コントロールのテキストを数 値に変換できるかどうかをテストできます。 文字列を特定の数値型データに変換するには、Double 関数、Dec 関数、 Integer 関数、Long 関数、または Real 関数を使用します。 例 次のステートメントは、TRUE を返します。 IsNumber("32.65") 次のステートメントは、FALSE を返します。 IsNumber("A16") シングルライン エディット コントロール sle_Age の値が 32 の場合、次 のステートメントは li_YearsOld に 32 を 格納します。 integer li_YearsOld IF IsNumber(sle_Age.Text) THEN li_YearsOld = Integer(sle_Age.Text) END IF PowerScript リファレンス ボリューム 2 711 IsPreview 関連項目 Double Dec Integer Long Real 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの IsNumber メソッド IsPreview 機能 リッチテキスト エディット コントロールがプレビュー モードで表示 されているかどうかを調べます。 対象 リッチテキスト エディット コントロール 構文 rtename.IsPreview ( ) 引数 rtename 説明 プレビュー モードで表示されているかどうかを調べる リッチテキスト エディット コントロールの名前を指定し ます。 戻り値 Boolean 型。rtename に指定されたリッチテキスト エディット コント ロールがプレビュー モードで表示されている場合、TRUE を返します。 データ入力モードで表示されている場合、FALSE を返します。 例 次の例では、リッチテキスト エディット コントロール rte_1 がプレ ビュー モードで表示されていない場合、プレビュー モードに切り換え て印刷します。 IF NOT rte_1.IsPreview() THEN rte_1.Preview(TRUE) rte_1.Print(1, "1-4", FALSE, TRUE) END IF 関連項目 712 Preview PowerBuilder 第 10 章 PowerScript の関数 IsSecurityEnabled 機能 COM+ 上で動作する COM オブジェクトに対してセキュリティ チェッ クが有効になっているかどうかを表します。 対象 TransactionServer オブジェクト 構文 transactionserver.IsSecurityEnabled ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Boolean 型。セキュリティ チェックが有効であれば TRUE を返し、そう でない場合は FALSE を返します。 解説 IsSecurityEnabled 関数は、現行の COM オブジェクトに対してセキュリ ティ チェックが有効になっているかどうかをチェックするのに使用 します。 COM オブジェクトが作成者のプロセスの中で実行されている場合、 IsSecurityEnabled 関数は常に FALSE を返します。 例 次の例では、セキュリティ チェックが有効になっているかどうかを チェックし、有効になっていれば、呼び出しを完了する前に、直接の 呼び出し元が管理者の役割を持っているかどうかをチェックします。 TransactionServer ts integer li_rc string str_role = "Admin" li_rc = GetContextService( "TransactionServer", & ts) // セキュリティが有効になっているかどうかを調べます。 IF ts.IsSecurityEnabled() THEN // 呼び出し元が役割を持っているかどうかを調べます。 IF NOT ts.IsCallerInRole(str_role) THEN // 呼び出しを完了しません。 ELSE // 呼び出しを通常どおりに実行します。 END IF ELSE // セキュリティが有効になっていないため、 // 呼び出しを完了しません。 END IF PowerScript リファレンス ボリューム 2 713 IsTime 関連項目 ImpersonateClient IsCallerInRole IsImpersonating RevertToSelf IsTime 機能 文字列の値が有効な時刻かどうかを調べます。 構文 IsTime ( timevalue ) 引数 timevalue 説明 String 型の値。有効な時刻かどうかをテストする値を指定 します。 戻り値 Boolean 型。timevalue が有効な時刻の場合は TRUE を返し、そうでない 場合は FALSE を返します。timevalue が NULL の場合、NULL を返します。 解説 IsTime 関数を使用すると、エンド ユーザが編集可能なコントロールに 入力した値が有効な時刻かどうかをテストすることができます。 文字列を時刻の値に変換するには、データ型に対応した適切な Time 関 数を使用します。 例 次のステートメントは、TRUE を返します。 IsTime("8:00:00 am") 次のステートメントは、FALSE を返します。 IsTime("25:00") シングルライン エディット コントロール sle_EndTime の値が 4:15 の場 合、次のステートメントは lt_QuitTime に 04:15:00 を格納します。 Time lt_QuitTime IF IsTime sle_EndTime.Text) THEN lt_QuitTime = Time(sle_EndTime.Text) END IF 関連項目 714 Time 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの IsTime メソッド PowerBuilder 第 10 章 PowerScript の関数 IsTransactionAborted 機能 EAServer コンポーネントが参加している現行のトランザクションが中 止されているかどうかを評価します。 対象 TransactionServer オブジェクト 構文 transactionserver.IsTransactionAborted ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Boolean 型。 現行のトランザクションが中止されていれば TRUE を返し、 そうでない場合は FALSE を返します。 解説 IsTransactionAborted 関数を使用すると、コンポーネントが、データベー スへの更新を実行する前に、現行のトランザクションがまだ実行中で あ る こ と を 確 認 す る こ と が で き ま す。IsTransactionAborted 関 数 は、 EAServer における isRollbackOnly トランザクション プリミティブに相 当します。 例 次の例では、トランザクションが中止されているかどうかをチェック します。中止されていなければ、データベースを更新し、EnableCommit 関数を呼び出します。中止されていれば、DisableCommit 関数を呼び出 します。 // インスタンス変数:ids_datastore, ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer", ts) IF li_rc <> 1 THEN // エラーを処理します。 END IF ... IF ts.IsTransactionAborted() = FALSE THEN ll_rv = ids_datastore.Update() IF ll_rv = 1 THEN ts.EnableCommit() ELSE ts.DisableCommit() END IF END IF PowerScript リファレンス ボリューム 2 715 IsValid 関連項目 EnableCommit IsInTransaction Lookup SetAbort SetComplete Which IsValid 機能 オブジェクトのインスタンスが作成されているかどうか(その値が有 効なオブジェクト ハンドルかどうか)を調べます。 構文 IsValid ( objectvariable ) 引数 objectvariable 説明 オブジェクト変数または Any 型の変数。通常、有効性テス トの対象となるオブジェクトへの参照を指定します。 戻り値 Boolean 型。objectvariable がインスタンス化されているオブジェクトの 場合は、TRUE を返します。objectvariable がオブジェクトではない場 合、またはインスタンス化されていないオブジェクトの場合は、FALSE を返します。objectvariable が NULL の場合、NULL を返します。 解説 IsValid 関数は、ウィンドウが開かれているかどうかを調べるときに Handle 関数のかわりに使用します。 例 次のステートメントは、ウィンドウ w_emp が開いているかどうかを判 定し、開いていない場合は開きます。 IF IsValid(w_emp) = FALSE THEN Open(w_emp) 次の例では、IsValid 関数が FALSE を返すため、-1 を返します。 objectvariable は有効な引数ですが、インスタンス化されていないオブ ジェクトです。la_value がインスタンス化されているオブジェクトであ る場合にのみ、IsValid メソッドは TRUE を返します。 any la_value la_value = "I’m a string" IF NOT IsValid(la_value) THEN return -1 関連項目 716 Handle PowerBuilder 第 10 章 PowerScript の関数 KeyDown 機能 エンド ユーザが、キーボード上の指定されたキーを押したかどうかを 調べ、その結果を返します。 構文 KeyDown ( keycode ) 引数 keycode 説明 キーボードのキーを示す KeyCode カタログ データ型の 値、またはキーの ASCII コードを表す Integer 型の値を指 定します。すべての ASCII 値が認識されるわけではありま せん。詳細については、以下の説明を参照してください。 また、「解説」の KeyCode 値の表も参照してください。 戻り値 Boolean 型。keycode に指定されたキーが押された場合は TRUE を返し、 そのキーが押されなかった場合は FALSE を返します。keycode が NULL の場合、NULL を返します。 解説 KeyDown 関数は、エンド ユーザが入力した文字を返すわけではありま せん。KeyDown 関数を呼び出すスクリプトが記述されているイベント が起動されたときに、エンド ユーザが特定のキーを押したかどうかを 調べ、その結果を返します。 イベント ウィンドウ内の Key イベントまたはコントロールの Keypress イベントで KeyDown 関数を呼び出すと、エンド ユーザが特定のキーを 押したかどうかを判別できます。挿入ポイントが編集中の行にない限 り、エンド ユーザがキーを押すたびに Key イベントが発生します。エ ンド ユーザがリピート機能のあるキーを押し続けると、Key イベント が繰り返し発生します。コントロールの場合には、データウィンドウ の pbm_keydown または pbm_dwnkey に対してユーザ イベントを定義す ることができ、そのスクリプトで KeyDown 関数を呼び出します。 Clicked イベントなどのマウス イベントで KeyDown 関数を呼び出すと、 エンド ユーザが〔Ctrl〕などの修飾キーを押したかどうかを判断する ことができます。 KeyDown 関数では、大文字と小文字は区別さ れず、 〔Shift〕の状態も区別されません。たとえば、KeyA! は A キーを 参照します。この場合、エンド ユーザは "A" か "a" を押した可能性が あります。Key9! は、"9" と ")" の両方を参照します。このような場合に は、修飾キーも押されたかどうかをテストする必要があります。 キーコード値と ASCII 値 KeyDown 関数は、 〔Caps Lock〕などのトグル キーがオンの状態である かどうかを判断せずに、エンド ユーザがそのキーを押しているかどう かだけを判断します。 PowerScript リファレンス ボリューム 2 717 KeyDown KeyDown 関 数 は、ASCII コ ー ド の 65-90(KeyA!- KeyZ!)と 48-57 (Key0!-Key9!)の範囲の値だけを検出します。この範囲の ASCII 値を指 定すると、そのキーが押されたかどうかと、エンド ユーザが〔Shift〕 または〔Caps Lock〕も押したかどうかを調べます。KeyDown 関数では、 ほかの ASCII 値(小文字を表す 97-122 の値など)は検出されません。 次の表は、キーコード値をキーの種類別に示したものです。一部のキー については、キー名も説明しています。 表 10-5: キーボードのキーの KeyCode 値 キーの種類 マウスのボタン 英字 ほかの記号キー 印刷不可文字 ファンクション キー コントロールキー 718 キーコード値 KeyLeftButton! マウスの左ボタン KeyMiddleButton! マウスの中央ボタン KeyRightButton! マウスの右ボタン KeyA! − KeyZ! A - Z(大文字、小文字) KeyQuote! ' と " KeyEqual! = と + KeyComma! , と < KeyDash! - と _ KeyPeriod! . と > KeySlash! / と ? KeyBackQuote! ` と ~ KeyLeftBracket! [ と { KeyBackSlash! \ と | KeyRightBracket! ] と } KeySemiColon! ; と : KeyBack! バックスペース KeyTab! KeyEnter! KeySpaceBar! KeyF1! − KeyF12! 〔F1〕∼〔F12〕 KeyShift! KeyControl! KeyAlt! KeyPause! KeyCapsLock! KeyEscape! KeyPrintScreen! KeyInsert! KeyDelete! PowerBuilder 第 10 章 PowerScript の関数 キーの種類 ナビゲーション キー 数字キーと記号 キー テンキーの数字 キー テンキーの記号 キー 例 キーコード値 KeyPageUp! KeyPageDown! KeyEnd! KeyHome! KeyLeftArrow! KeyUpArrow! KeyRightArrow! KeyDownArrow! Key0! 0 と ) Key1! 1 と ! Key2! 2 と @ Key3! 3 と # Key4! 4 と $ Key5! 5 と % Key6! 6 と ^ Key7! 7 と & Key8! 8 と * Key9! 9 と ( KeyNumpad0! − KeyNumpad9! テンキーの 0 ∼ 9 KeyMultiply! テンキーの * KeyAdd! テンキーの + KeySubtract! テンキーの KeyDecimal! テンキーの . KeyDivide! テンキーの / KeyNumLock! KeyScrollLock! 次のステートメントは、エンド ユーザが〔F1〕または〔Ctrl〕を押し たかどうかを確認し、押されたキーに対応する処理を実行します。 IF KeyDown(KeyF1!) THEN . . . // 〔F1〕が押されたときに実行する処理 ELSEIF KeyDown(KeyControl!) THEN . . . // 〔Ctrl〕が押されたときに実行する処理 END IF 次のステートメントは、エンド ユーザが〔Tab〕、 〔Enter〕、下矢印、 上矢 印、 〔Page Down〕 〔Page Up〕のどのキーを押したかを示す値を返します。 、 IF (KeyDown(KeyTab!) OR KeyDown(KeyEnter!) OR & KeyDown(KeyDownArrow!) OR KeyDown(KeyUpArrow!) & OR KeyDown(KeyPageDown!) OR KeyDown(KeyPageUp!))& THEN ... PowerScript リファレンス ボリューム 2 719 LastPos 次のステートメントは、エンド ユーザが〔A〕 (ASCII コード "65")を 押したかどうかを調べます。 IF KeyDown(65) THEN ... 次のステートメントは、エンド ユーザが〔Shift〕と〔A〕を押したか どうかを調べます。 IF KeyDown(65) AND KeyDown(KeyShift!) THEN ... 次のステートメントは、Clicked イベントでの使用例です。 〔Shift〕も 押されたかどうかを調べます。 IF KeyDown(KeyShift!) THEN ... LastPos 機能 対象文字列内で、検索文字列が最後に検索される位置を特定します。 構文 LastPos ( string1, string2 {, searchlength } ) 引数 string1 string2 searchlength (オプション) 戻り値 説明 取得する文字列 string2 を含む文字列を指定します。 string1 から検索する文字列を指定します。 Long 型の値。対象文字列 string1 の左端から searchlength 文 字に検索範囲を制限します。特に指定しない限り、文字列 全体が対象になります。 Long 型。searchlength で指定された文字内の string1 の中で最後に検索 された string2 の先頭の文字位置を表す値を返します。また、string1 の 中から string2 が検索されない場合や searchlength が 0 の場合は、0 を 返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 LastPos 関数は、英文字の大文字と小文字を区別します。対象文字列内 で検索する文字列全体が見つかることが必要です。 例 次のステートメントは 6 を返します。これは、最後に見つかった RU の位置が 6 であるためです。 LastPos("BABE RUTH", "RU") 次のステートメントは、3 を返します。 LastPos("BABE RUTH", "B") 720 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは 0 を返します。これは、大文字と小文字の組み 合わせが一致しないためです。 LastPos("BABE RUTH", "be") 次のステートメントは左端から 4 文字を検索して、0 を返します。こ れは、唯一見つかる RU の位置が 4 以降にあるためです。最後に見つ かる RU の先頭位置を示す 6 を返すには、左端から少なくとも 7 文字 (文字列 "RU" 全体を含む)を検索する必要があります。 LastPos("BABE RUTH", "RU", 4) 次の例は、シングルライン エディットである sle_group の中の "NY" と いう文字列を変更します。最後のテキスト "NY" を "North East" に変更 します。 long place_nbr place_nbr = LastPos(sle_group.Text, "NY") sle_group.SelectText(place_nbr, 2 ) sle_group.ReplaceText("North East") 次の例で、GetBandAtPointer 関数の戻り値は、タブで区域名と行番号に 分割されています。LastPos 関数は文字列中の(最後の)タブの位置を 検索し、Left 関数と Mid 関数はタブの左側と右側にある情報をそれぞれ 取り出します。 string s, ls_left, ls_right integer li_tab s = dw_groups.GetBandAtPointer() li_tab = LastPos(s, "~t") ls_left = Left(s, li_tab - 1) ls_right = Mid(s, li_tab + 1) 次のステートメントは、対象文字列を末尾側からトークン化します。 // 対象文字列を末尾側からトークン化 // 結果は "pbsyc10.2.1 C20.dll powerbuilder // shared sybase programs c:" になる string sSource = & 'c:\programs\sybase\shared\powerbuilder\pbsyc10.2.1 C20.dll' string sFind = '\' string sToken long llStart, llEnd llEnd = Len(sSource) + 1 PowerScript リファレンス ボリューム 2 721 LastPosW DO llStart = LastPos(sSource, sFind, llEnd) sToken = Mid(sSource, (llStart + 1), & (llEnd - llStart)) mle_comment.text += sToken + ' ' llEnd = llStart - 1 LOOP WHILE llStart > 1 関連項目 Pos LastPosW 機能 対象文字列内で、検索文字列が最後に検索される位置を特定します。 この関数は、将来サポートされなくなります。動作は、すべての環境 で LastPos 関数と同じです。 構文 LastPosw ( string1, string2 {, searchlenth } ) Left 機能 文字列の左端から、指定された文字数分の文字列を取り出して返します。 構文 Left ( string, n ) 引数 string n 戻り値 説明 検索する文字列を指定します。 Long 型の値。取得する文字数を指定します。 String 型。正常に終了した場合、string に指定された文字列内の左端か ら n 文字分を返します。エラーが発生した場合、空の文字列("")を 返します。引数のいずれかの値が NULL の場合は、NULL を返します。n が文字列の長さ以上の場合、Left 関数はすべての文字列を返します。た だし、戻り値の文字数を n と同じにするために、スペースを追加する ことはありません。 例 次のステートメントは、"BABE" を返します。 Left("BABE RUTH", 4) 次のステートメントは、"BABE RUTH" を返します。 722 PowerBuilder 第 10 章 PowerScript の関数 Left("BABE RUTH", 40) 次のステートメントは、シングルライン エディット コントロール sle_address 内のテキストの先頭から 40 文字分を emp_address に格納し ます。 string emp_address emp_address = Left(sle_address.Text, 40) Left 関数を使用してタブで区切られた 2 つの値を解析する例について は、Pos 関数を参照してください。 関連項目 Mid Pos Right 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Left メソッド LeftA 機能 現行のロケールに基づいて文字列を Unicode から DBCS に一時的に変 換し、その文字列の左端から、指定されたバイト数分の文字列を返し ます。 構文 LeftA (string, n) 引数 string n 説明 文字列を指定します。指定された文字列を左から右に検索 します。 返す文字列のバイト数を Long 型で指定します。 戻り値 String 型。正常に終了した場合、ソース文字列の左端から n バイト分の 文字列を返します。エラーが発生した場合、空の文字列("")を返し ます。引数のいずれかの値が NULL の場合は、NULL を返します。n が 文字列の長さ以上の場合、LeftA 関数はすべての文字列を返します。た だし、戻り値の文字数を n と同じにするために、スペースを追加する ことはありません。 解説 LeftA 関数は、PowerBuilder 9 の DBCS 環境 における Left 関数の機能に 置き換わるものです。 SBCS 環境の場合、Left、LeftW、および LeftA 関数は同じ結果を返します。 PowerScript リファレンス ボリューム 2 723 LeftC LeftC 機能 文字列の左端から、指定されたバイト数の文字列を取り出して返しま す。取り出される文字列の終端によって 2 バイト文字が分割される場 合、その前の文字までの文字列を返します。この関数は、将来サポー トされなくなります。 構文 LeftC ( string, n ) LeftW 機能 文字列の左端から、指定された文字数分の文字列を取り出して返しま す。この関数は、将来サポートされなくなります。動作は、すべての 環境で Left 関数と同じです。 構文 LeftW ( string, n ) LeftTrim 機能 文字列の左端からスペースを削除します。 構文 LeftTrim ( string ) 引数 string 戻り値 説明 左端からスペースを削除する文字列を指定します。 String 型。正常に終了した場合、string の左端からスペースを削除した 文字列を返します。エラーが発生した場合、空の文字列("")を返し ます。また、string が NULL の場合、NULL を返します。 例 次の例は、"RUTH" を返します。 LeftTrim(" RUTH") 次のステートメントは、マルチライン エディット コントロール mle_name 内のテキストから先頭のスペースを削除して emp_name に格納しま す。 string emp_name emp_name = LeftTrim(mle_name.Text) 724 PowerBuilder 第 10 章 PowerScript の関数 関連項目 RightTrim Trim 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの LeftTrim メソッド LeftTrimW 機能 文字列の左端からスペースを削除します。この関数は、将来サポート されなくなります。動作は、すべての環境で LeftTrim 関数と同じです。 構文 LeftTrimW ( string ) Len 機能 指定した文字列や Blob 型データの長さを返します。 構文 Len ( stringorblob ) 引数 stringorblob 戻り値 説明 バイト数を求める文字列や、バイト数を求める Blob 型の データを指定します。 Long 型。正常に終了した場合、stringorblob で指定した文字列または Blob 型のデータの長さを表す Long 型の値を返します。エラーが発生 した場合、-1 を返します。stringorblob が NULL の場合、NULL を返しま す。 解説 Len は、文字列の文字数を調べます。文字列の最後の NULL は数えられ ません。 Blob 型の変数宣言でサイズを指定した場合、Len 関数はそのサイズを 返します。Blob 型のサイズを指定しないと、Len 関数は、最初に Blob 型の長さを 0 として返します。Blob のサイズは、データを Blob 型に割 り当てたときに初めて設定されます。Len 関数は Blob 型の長さを格納 可能なバイト数で返します。 例 次のステートメントは、0 を返します。 Len("") PowerScript リファレンス ボリューム 2 725 Len 次のステートメントは、シングルライン エディット コントロール sle_address 内のテキストの文字列の文字数を変数 s_address_len に格納 します。 long s_address_len s_address_len = Len(sle_address.Text) 以下の例では、Blob 型の変数の長さが宣言に依存することを示してい ます。 最初の例では、ib_blob というインスタンス変数が宣言されています が、そのサイズは初期化されていません。データが ib_blob に割り当て られる前に Len 関数を呼び出すと、Len 関数は 0 を返します。データが 割り当てられた後で、Len 関数は Blob 型データの長さを返します。 インスタンス変数を宣言します。 blob ib_blob 例を示します。 long ll_len ll_len = Len(ib_blob) // ll_len は 0 です。 ib_blob = Blob( "Test String") ll_len = Len(ib_blob) // ll_len は 22 です。 2 番目の例では、インスタンス変数 ib_blib は長さ 100 で宣言されてま す。ib_blob に対して Len 関数を呼び出すと、常に 100 が返されます。 この例では、データのサイズがすでに決定されているので、Blob 関数 ではなく BlobEdit 関数を使用してデータを Blob 型に割り当てていま す。インスタンス変数を宣言します。 blob{100} ib_blob 例を示します。 long ll_len ll_len = Len(ib_blob) // ll_len は 100 です。 BlobEdit(ib_blob, 1, "Test String") ll_len = Len(ib_blob) // ll_len は 100 です。 関連項目 726 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Len メソッド PowerBuilder 第 10 章 PowerScript の関数 LenA 機能 引数が文字列の場合、現行のロケールに基づいて文字列を Unicode か ら DBCS に一時的に変換し、その長さをバイト数で返します。引数が Blob 型の場合、変換は行われません。 構文 LenA (stringorblob) 引数 stringorblob 戻り値 説明 バイト数を求める文字列または Blob 型データを指定しま す。 Long 型。正常に終了した場合、stringorblob で指定した文字列または Blob 型のデータの長さを表す Long 型の値を返します。エラーが発生 した場合、-1 を返します。stringorblob が NULL の場合、NULL を返しま す。 解説 LenA 関数は、PowerBuilder 9 の DBCS 環境 における Len 関数の機能に 代わるものです。 SBCS 環境の場合、Len、LenW、および LenA 関数は同じ結果を返します。 Blob 型の変数宣言でサイズを指定した場合、LenA 関数はそのサイズを 返します。Blob 型のサイズを指定しないと、LenA 関数は、最初に Blob 型の長さを 0 として返します。Blob のサイズは、データを Blob 型に割 り当てたときに初めて設定されます。LenA 関数は、Blob 型の長さを格 納可能なバイト数で返します。 LenW 機能 指定した文字列や Blob 型データの長さを返します。この関数は、将来 サポートされなくなります。動作は、すべての環境で Len 関数と同じ です。 構文 LenW ( stringorblob ) PowerScript リファレンス ボリューム 2 727 Length Length 機能 開いている OLEStream オブジェクトの大きさをバイト数で取得しま す。 Len 関数 文字列や Blob 型データの長さを取得するには、Len 関数を使用します。 対象 OLEStream オブジェクト 構文 olestream.Length ( sizevar ) 引数 olestream sizevar 戻り値 説明 開いている OLEStream 変数の名前を指定します。 Length によって olestream の大きさを格納する Long 型の変 数を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 ストリームが開かれていません。 そのほかのエラーです。 引数のいずれかの値が NULL の場合は、NULL を返します。 例 次の例は、MYSTUFF.OLE ファイルで OLE オブジェクトを開き、 OLEStorage オブジェクト stg_stuff に代入します。次に、stg_stuff のス トリーム info を開き、ストリーム オブジェクト olestr_info に割り当て ます。最後に、ストリームの長さを変数 info_len に格納します。 この例では、関数の戻り値をチェックしていませんが、実際のスクリ プトでは必ず戻り値をチェックしてください。 boolean lb_memexists OLEStorage stg_stuff OLEStream olestr_info long info_len stg_stuff = CREATE oleStorage stg_stuff.Open("c:\ole2\mystuff.ole") olestr_info.Open(stg_stuff, "info", & stgRead!, stgExclusive!) olestr_info.Length(info_len) 728 PowerBuilder 第 10 章 PowerScript の関数 関連項目 Open Read Seek Write LibraryCreate 機能 オプションのコメントを持つ空の PowerBuilder ライブラリを作成しま す。 構文 LibraryCreate ( libraryname {, comments } ) 引数 libraryname comments (オプション) 説明 String 型の値。作成する PowerBuilder ライブラリの名前を 指定します。ライブラリを現行のディレクトリ以外の位置 に作成する場合、絶対パス名を入力します。 String 型の値。ライブラリに関連付けるコメントを指定し ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。 解説 libraryname でディレクトリのパスが指定されない場合、LibraryCreate 関 数は現行のディレクトリに PowerBuilder ライブラリ ファイル(.PBL) を作成します。拡張子が指定されていない場合、拡張子 PBL を追加し ます。 例 次のステートメントは、Windows NT で、C ドライブの PB ディレクト リに dwTemp という名前のライブラリを作成し、そのライブラリにコ メントを付けています。 LibraryCreate("c:\pb\dwTemp.pbl", & "Temporary library for dynamic DataWindows") 関連項目 LibraryDelete LibraryDirectory LibraryExport LibraryImport PowerScript リファレンス ボリューム 2 729 LibraryDelete LibraryDelete 機能 ライブラリ ファイルを削除します。データウィンドウ オブジェクトを 指定した場合、ライブラリからデータウィンドウ オブジェクトを削除 します。 構文 LibraryDelete ( libraryname {, objectname, objecttype } ) 引数 libraryname objectname (オプション) objecttype (オプション) 説明 String 型の値。削除する PowerBuilder ライブラリの名前、 または削除するデータウィンドウ オブジェクトが含まれ ている PowerBuilder ライブラリの名前を指定します。絶対 パス名が指定されていない場合、システムの標準のファイ ル検索方法でファイルを検索します。 String 型の値。libraryname で指定されたライブラリから削 除するデータウィンドウ オブジェクトの名前を指定しま す。 LibImportType カタログデータ型の値。削除するオブジェ クトの型を指定します。現在サポートされているオブジェ クト型は、ImportDataWindow! だけです。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合は、NULL を返しま す。 解説 スクリプトで LibraryDelete 関数を呼び出して、ライブラリからデータ ウィンドウ オブジェクトを削除することができます。データウィンド ウ以外のオブジェクトを削除するには、ライブラリ ペインタを使用し ます。 例 次のステートメントは、現行のディレクトリの現行のアプリケーショ ン ライブラリ パスにある dwTemp というライブラリを削除します。 LibraryDelete("dwTemp.pbl") 関連項目 730 LibraryCreate LibraryDirectory LibraryExport LibraryImport PowerBuilder 第 10 章 PowerScript の関数 LibraryDirectory 機能 PowerBuilder ライブラリ内のオブジェクトのリストを取得します。取 得できる情報は、オブジェクト名、最後に修正が行われた日時、およ びオブジェクトに対するコメントです。すべてのオブジェクトのリス トまたは特定のオブジェクトのリストを取得することができます。 構文 LibraryDirectory ( libraryname, objecttype ) 引数 libraryname objecttype 説明 String 型の値。オブジェクトをリストする PowerBuilder ラ イブラリの名前を指定します。絶対パス名が指定されてい ない場合、システムの標準のファイル検索方法でファイル を検索します。 LibDirType カタログ データ型の値。リスト内に表示するオ ブジェクトの型を指定します。次のいずれかの値を指定し ます。 • DirAll! − すべてのオブジェクト • DirApplication! − アプリケーション オブジェクト • DirDataWindow! − データウィンドウ オブジェクト • DirFunction! − 関数オブジェクト • DirMenu! − メニュー オブジェクト • DirPipeline! − パイプライン オブジェクト • DirProject! − プロジェクトオブジェクト • DirQuery! − クエリ オブジェクト • DirStructure! − 構造体オブジェクト • DirUserObject! − ユーザ オブジェクト • DirWindow! − ウィンドウ オブジェクト 戻り値 String 型。LibraryDirectory 関数は、1 つのオブジェクトを 1 行で表したリ ストを返します。各行のデータは、次のようにタブで区切られます。 name ~t date/time modified ~t comments ~n エラーが発生した場合、空の文字列("")を返します。引数のいずれ かの値が NULL の場合、NULL を返します。 解説 LibraryDirectory 関数が返した文字列を ImportString 関数に渡して、データ ウィンドウ コントロールにオブジェクトのリストを表示することが できます。そのデータウィンドウには、3 つの文字列カラムが含まれ ていることが必要です。3 つのカラムは渡されたデータを格納するの に十分な大きさでなければなりません。大きさが十分でない場合、無 効となりエラーが発生します。 PowerScript リファレンス ボリューム 2 731 LibraryDirectoryEx オブジェクトのデータ型を返すには、LibraryDirectoryEx 関数を使用しま す。 タブで区切られたデータの解析方法については、Pos 関数を参照して ください。 例 次のステートメントは、返された文字列を データウィンドウ コント ロール dw_list にインポートし、dw_list を作成します。データウィンド ウは、外部ソースと 3 つの文字列カラムを持っています。 String ls_entries ls_entries = LibraryDirectory( & "c:\pb\dwTemp.pbl", DirUserObject!) dw_list.SetRedraw(FALSE) dw_list.Reset( ) dw_list.ImportString(ls_Entries) dw_list.SetRedraw(TRUE) 関連項目 ImportString LibraryCreate LibraryDelete LibraryDirectoryEx LibraryExport LibraryImport LibraryDirectoryEx 機能 PowerBuilder ライブラリ内のオブジェクトのリストを取得します。取 得できる情報は、オブジェクト名、最後に修正が行われた日時、オブ ジェクトに対するコメント、およびオブジェクトのデータ型です。す べてのオブジェクトのリストまたは特定のオブジェクトのリストを取 得することができます。 構文 LibraryDirectoryEx ( libraryname, objecttype ) 引数 libraryname 732 説明 String 型の値。オブジェクトをリストする PowerBuilder ラ イブラリの名前を指定します。絶対パス名が指定されてい ない場合、システムの標準のファイル検索方法でファイル を検索します。 PowerBuilder 第 10 章 PowerScript の関数 引数 objecttype 説明 LibDirType カタログ データ型の値。リスト内に表示するオ ブジェクトの型を指定します。次のいずれかの値を指定し ます。 • DirAll! − すべてのオブジェクト • DirApplication! − アプリケーション オブジェクト • DirDataWindow! − データウィンドウ オブジェクト • DirFunction! − 関数オブジェクト • DirMenu! − メニュー オブジェクト • DirPipeline! − パイプライン オブジェクト • DirProject! − プロジェクトオブジェクト • DirQuery! − クエリ オブジェクト • DirStructure! − 構造体オブジェクト • DirUserObject! − ユーザ オブジェクト • DirWindow! − ウィンドウ オブジェクト 戻り値 String 型。LibraryDirectoryEx 関数は、1 つのオブジェクトを 1 行で表した リストを返します。各行のデータは、次のようにタブで区切られます。 name ~t date/time modified ~t comments ~t type~n エラーが発生した場合、空の文字列("")を返します。引数のいずれ かの値が NULL の場合、NULL を返します。 解説 LibraryDirectoryEx 関数が返した文字列を ImportString 関数に渡して、デー タウィンドウ コントロールにオブジェクトのリストを表示すること ができます。そのデータウィンドウには、4 つの文字列カラムが含ま れていることが必要です。4 つのカラムは渡されたデータを格納する のに十分な大きさでなければなりません。大きさが十分でない場合、 無効となりエラーが発生します。 オブジェクトのデータ型を返す必要がなければ、LibraryDirectory 関数を 使用できます。 タブで区切られたデータの解析方法については、Pos または LastPos を 参照してください。 PowerScript リファレンス ボリューム 2 733 LibraryExport 例 次のステートメントは、返された文字列を データウィンドウ コント ロール dw_list にインポートし、dw_list を作成します。データウィンド ウは、外部ソースと 4 つの文字列カラムを持っています。 String ls_entries ls_entries = LibraryDirectoryEx( & "c:\pb\dwTemp.pbl", DirUserObject!) dw_list.SetRedraw(FALSE) dw_list.Reset( ) dw_list.ImportString(ls_Entries) dw_list.SetRedraw(TRUE) 関連項目 ImportString LibraryCreate LibraryDelete LibraryDirectory LibraryExport LibraryImport LibraryExport 機能 ライブラリからオブジェクトをエクスポートします。オブジェクトの 構文がエクスポートされます。 構文 LibraryExport ( libraryname, objectname, objecttype ) 引数 libraryname objectname 734 説明 String 型の値。オブジェクトをエクスポートする PowerBuilder ライブラリの名前を指定します。絶対パス名 が指定されていない場合、システムの標準のファイル検 索方法でファイルを検索します。 String 型の値。エクスポートするオブジェクトの名前を指 定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 objecttype 説明 LibExportType カタログ データ型の値。エクスポートする オブジェクトの型を指定します。 • ExportApplication! − アプリケーション オブジェクト • ExportDataWindow! − データウィンドウ オブジェクト • ExportFunction! − 関数オブジェクト • ExportMenu! − メニュー オブジェクト • ExportPipeline! − パイプライン オブジェクト • ExportProject! − プロジェクトオブジェクト • ExportQuery! − クエリ オブジェクト • ExportStructure! − 構造体オブジェクト • ExportUserObject! − ユーザ オブジェクト • ExportWindow! − ウィンドウ オブジェクト 戻り値 String 型。正常に終了した場合、指定されたオブジェクトの構文を返し ます。返される構文は、ライブラリ ペインタ内のオブジェクトをエク スポートした場合(エクスポート ヘッダが存在しない場合は除く)に 返される構文と同じものです。エラーが発生した場合、空の文字列("") を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次のステートメントは、dwTemp というライブラリからデータウィン ドウ オブジェクト dw_emp をエクスポートし、データウィンドウ オブ ジェクトの構文を文字列変数 ls_dwsyn に代入します。次に、その変数 を使用してデータウィンドウを作成します。 String ls_dwsyn, ls_errors ls_dwsyn = LibraryExport("c:\pb\dwTemp.pbl", & "d_emp", ExportDataWindow!) dw_1.Create(ls_dwsyn, ls_errors) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Create メソッド LibraryCreate LibraryDelete LibraryDirectory LibraryImport PowerScript リファレンス ボリューム 2 735 LibraryImport LibraryImport 機能 ライブラリにオブジェクトをインポートします。テキスト形式で記述 されたデータウィンドウ オブジェクトの構文を使用して、ライブラリ にオブジェクトを作成します。 構文 LibraryImport ( libraryname, objectname, objecttype, syntax, errors {, comments } ) 引数 libraryname objectname objecttype syntax errors comments (オプション) 説明 String 型の値。エントリをインポートする PowerBuilder ラ イブラリの名前を指定します。絶対パス名が指定されてい ない場合、システムの標準のファイル検索方法でファイル を検索します。 String 型の値。インポートするデータウィンドウ オブジェ クトの名前を指定します。 LibImportType カタログ データ型の値。インポートするオ ブジェクトの型を指定します。現在サポートされているオ ブジェクト型は、ImportDataWindow! だけです。 インポートするデータウィンドウ オブジェクトの構文を 表す文字列を指定します。 String 型の変数。表示されるエラー メッセージを格納する 変数の名前を指定します。 エントリに関連付けたコメントを表す文字列を指定しま す。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 データウィンドウをインポートするときに発生したエラーは、errors に 指定された String 型の変数に格納されます。 アプリケーションの実行中にデータウィンドウを動的に作成する場 合、LibraryImport 関数を使用してそのデータウィンドウをライブラリに 保存します。 例 次のステートメントは、データウィンドウ オブジェクト d_emp を dwTemp ライブラリにインポートして、エラーを ErrorBuffer に格納し ます。データウィンドウ オブジェクトの構文を Describe 関数から取得 していることに注意してください。 string dwsyntax, ErrorBuffer integer rtncode dwsyntax = dw_1.Describe("DataWindow.Syntax") rtncode = LibraryImport("c:\pb\dwTemp.pbl", & "d_emp", ImportDataWindow!, & 736 PowerBuilder 第 10 章 PowerScript の関数 dwsyntax, ErrorBuffer ) 次のステートメントは、データウィンドウ オブジェクト d_emp を dwTemp というライブラリにインポートしてエラーを ErrorBuffer に格 納し、"Employee DataWindow 1" というコメントをエントリに関連付 けます。 string dwsyntax, ErrorBuffer integer rtncode dwsyntax = dw_1.Describe("DataWindow.Syntax") rtncode = LibraryImport("c:\pb\dwTemp.pbl", & "d_emp", ImportDataWindow!, & dwsyntax, ErrorBuffer, & "Employee DataWindow 1") 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Describe メソッド LibraryCreate LibraryDelete LibraryDirectory LibraryImport LineCount 機能 複数行からなる編集可能なエディット コントロールの行数を返しま す。 対象 リッチテキスト エディット コントロール、マルチライン エディット コントロール、エディットマスク コントロール、データウィンドウ コ ントロール 構文 editname.LineCount ( ) 引数 editname 戻り値 説明 データウィンドウ、エディットマスク、マルチライン エ ディット、リッチテキスト エディットのいずれかのコント ロール名。テキストの行数を取得するコントロールを指定 します。 Long 型。Long 型。正常に終了した場合は editname に行数を返し、エ ラーが発生した場合は -1 を返します。editname が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 737 LineCount 解説 LineCount 関数は、折り返された行か、改行された行かに関わらず、表 示されている行数を数えます。 データウィンドウに対して LineCount 関数を呼び出すと、現行の行とカ ラムのエディット コントロールの行数を調べます。データウィンドウ にテキスト形式のデータが含まれていて、データが入力されている ボックスの大きさが内容を表示するのに十分な場合、エンド ユーザ は、データウィンドウのカラムに複数の行を入力することができます。 カラムに表示できる行数は、カラムのボックスのサイズによって決ま ります。入力するときに行は自動的に折り返されないので、エンド ユーザは〔Enter〕を押して次の行を入力する必要があります。 マルチライン エディット コントロールでは、HScrollBar プロパティま たは AutoHScroll プロパティが TRUE でない場合に、エンド ユーザの 入力でコントロールが横方向に収まらなくなると、行が折り返されま す。これらのプロパティが設定されていて横方向にスクロールできる 場合、エンド ユーザは〔Enter〕を押して次の行を入力する必要があり ます。 リッチテキスト エディット コントロールは、コントロールにテキスト がない場合も、ファイルの末尾を示す記号が含まれます。このため、 行数は少なくとも 1 になります。ほかのエディット コントロールが空 の場合、行数は 0 になります。 例 マルチライン エディット コントロール mle_Instructions に 9 行のテキス トが入力されている場合、次の例は li_Count に 9 を設定します。 integer li_Count li_Count = mle_Instructions.LineCount() 次 の ス テ ー ト メ ン ト は、マ ル チ ラ イ ン エ デ ィ ッ ト コ ン ト ロ ー ル mle_Address に入力されているテキストが 1 行以下の場合にメッセージ ボックスを表示します。 integer li_Lines li_Lines = mle_Address.LineCount() IF li_Lines < 2 THEN MessageBox(" 警告 ", "2 行必要です ") END IF 738 PowerBuilder 第 10 章 PowerScript の関数 LineLength 機能 エディット コントロール内で挿入ポイントがある行の長さを返しま す。 対象 リッチテキスト エディット コントロール、マルチライン エディット コントロール、エディットマスク コントロール 構文 editname.LineLength ( ) 引数 editname 説明 リッチテキスト エディット コントロール、マルチライン エディット コントロール、またはエディットマスク コン トロールの名前。挿入ポイントがある行の長さを調べるコ ントロールを指定します。 戻り値 Long 型。正常に終了した場合、editname 内で挿入ポイントがある行の 長さを返します。エラーが発生した場合には -1 を返します。editname が NULL の場合、NULL を返します。 解説 コントロールに挿入ポイントではなく選択範囲が含まれる場合、選択 範囲の最初の行の長さを調べます。 PowerBuilder は、編集可能なコントロール内の挿入ポイントの位置を 記憶しています。エンド ユーザがほかのコントロールを使用する場合 にも、LineLength 関数を使用して最後に編集された行の長さを調べるこ とができます。 編集可能なコントロール内の挿入ポイント 挿入ポイントの位置が記憶されているので、エンド ユーザがタブを使 用してコントロールをアクティブにした場合、前の挿入ポイントから 編集を再開することができます。コントロールをクリックしてアク ティブにした場合、挿入ポイントも移動します。 エディットマスク コントロールを対象とする場合、エンド ユーザが入 力した文字数にかかわらず、マスクの長さを調べます。 例 挿入ポイントが mle_Contact の 5 行目にあり、5 行目のテキストが "Select All" である場合、次の例は il_linelength に 10(5 行目の長さ)を 設定します。 integer li_linelength li_linelength = mle_Contact.LineLength() PowerScript リファレンス ボリューム 2 739 LineList 関連項目 Position SelectedLine SelectedStart TextLine LineList 機能 パフォーマンス解析モデルに含まれるルーチンのラインリストを取得 します。 対象 ProfileRoutine オブジェクト 構文 iinstancename.LineList ( list ) 引数 instancename list 戻り値 解説 説明 ProfileRoutine オブジェクトのインスタンス名を指定しま す。 データ型 ProfileLine の可変長配列変数です。LineList 関数 は、ルーチンのラインごとに ProfileLine オブジェクトとし て格納します。この引数は、参照渡しされます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しません。 パフォーマンス解析モデルに含まれるルーチンのラインリストを取得 します。BuildModel 関数を使用してトレース ファイルからパフォーマ ンス解析モデルをあらかじめ作成しておかなければなりません。各ラ インは ProfileLine オブジェクトとして定義され、リストには、ライン がヒットした回数、ラインからの呼び出し、ラインや呼び出し関数の 経過時間などがラインごとに示されます。ラインは番号順にリストさ れます。 ラインはデータベース ステートメントやオブジェクトに返されるこ とはありません。ライン情報がトレース ファイルに記録されていない 場合、ラインは返されません。 740 PowerBuilder 第 10 章 PowerScript の関数 例 次の例では、パフォーマンス解析モデルに含まれるルーチンのリスト を取得してから、各ルーチンに含まれるラインのリストを取得します。 Long ll_cnt ProfileLine lproln_line[] lpro_model.BuildModel() lpro_model.RoutineList(iprort_list) FOR ll_cnt = 1 TO UpperBound(iprort_list) iprort_list[ll_cnt].LineList(lproln_line) ... NEXT 関連項目 BuildModel LinkTo 機能 OLE コントロールとファイル、または OLE コントロールとファイルの ソース アイテムとの間にリンクを確立します。 構文 olecontrol.LinkTo ( filename {, sourceitem } ) 引数 olecontrol filename sourceitem (オプション) 戻り値 説明 リンクされたオブジェクトを挿入する OLE コントロール の名前を指定します。 String 型の値。olecontrol に挿入するデータを含むファイル の名前を指定します。リンクによって PowerBuilder のオブ ジ ェ ク ト と オ リ ジ ナ ル の デ ー タ が 接 続 さ れ ま す。 sourceitem を省略すると、ファイル全体に対してリンクが 確立されます。 リンクする filename 内の ソース アイテムの名前を指定し ます。指定方法は、OLE サーバ アプリケーションによっ て決まります。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -9 ファイルがありません。 ソース アイテムがありません。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 741 LoadInk 例 次の例は、OLE コントロール ole_1 の中にオブジェクトを作成します。 そのオブジェクトとファイル C:\XLS\EXPENSE.XLS をリンクしま す。 integer result result = ole_1.LinkTo("c:\xls\expense.xls") 次の例は、上の例と同じスプレッド シートの行とカラムのセクション にオブジェクトをリンクします。 integer result result = ole_1.LinkTo("c:\xls\expense.xls", & "R1C1:R5C5") 関連項目 InsertFile InsertObject PasteLink PasteSpecial LoadInk 機能 インクピクチャ コントロールにファイルまたは Blob からインクを ロードします。 対象 インクピクチャ コントロール 構文 inkpicname.LoadInk ( t | b ) 引数 inkpicname t b 説明 インクをロードしたいインクピクチャ コントロールの名前 を指定します。 String 型の値。コントロールにロードしたいインクを含む ファイルの名前と位置を指定します。 コントロールにロードしたいインクを含む Blob の名前を指 定します。この引数は、参照渡しされます。 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、-1 を返します。 解説 LoadInk 関数を使用して、ファイルまたは Blob に保存したインクをコ ントロールにロードします。 例 742 次の例は、ファイルからインクをロードします。ユーザは単一のファ イルを選択するため、GetFileOpenName の 2 番目の引数はファイルのパ スと名前を含み、3 番目の引数は無視されます。 PowerBuilder 第 10 章 PowerScript の関数 string ls_inkpath, ls_inkname GetFileOpenName("Select Ink File", ls_inkpath, ls_inkname) ip_1.LoadInk(ls_inkpath) & 次の例は、Blob からインクをロードします。 string ls_inkpath, ls_inkname integer li_filenum blob lblb_ink GetFileOpenName("Select Ink File", ls_inkpath, ls_inkname) li_filenum = FileOpen(ls_inkpath, StreamMode!) If li_filenum <> 1 Then FileRead(li_filenum, lblb_ink) FileClose(li_filenum) ip_1.LoadInk(lblb_ink) End If 関連項目 & LoadPicture ResetInk ResetPicture SaveInk Save LoadPicture 機能 インクピクチャ コントロールにファイルまたは Blob からピクチャを ロードします。 対象 インクピクチャ コントロール 構文 inkpicname.LoadPicture ( t | b ) 引数 inkpicname t b PowerScript リファレンス ボリューム 2 説明 ピクチャをロードしたいインクピクチャ コントロールの名 前を指定します。 String 型の値。コントロールにロードしたいピクチャを含む ファイルの名前と位置を指定します。 コントロールにロードしたいピクチャを含む Blob の名前を 指定します。この引数は、参照渡しされます。 743 Log 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、-1 を返します。 解説 LoadPicture 関数を使用して、インクピクチャ コントロールにイメージ をロードします。 例 次の例は、ファイルからイメージをロードします。ユーザは単一のファ イルを選択するため、GetFileOpenName の 2 番目の引数はファイルのパ スと名前を含み、3 番目の引数は無視されます。 string ls_path, ls_name GetFileOpenName("Select Image", ls_path, ls_name) ip_1.LoadPicture(ls_path) 次の例は、Blob からイメージをロードします。 string ls_path, ls_name integer li_filenum blob lblb_ink GetFileOpenName("Select Ink File", ls_path, ls_name) li_filenum = FileOpen(ls_path, StreamMode!) If li_filenum <> 1 Then FileRead(li_filenum, lblb_ink) FileClose(li_filenum) ip_1.LoadInk(lblb_ink) End If 関連項目 LoadInk ResetInk ResetPicture SaveInk Save Log 数値の自然対数を返します。ErrorLogging オブジェクトの場合は、こ の関数を使って、オブジェクトのコンテナによって管理されているロ グ ファイルに文字列を書きこむことができます。 目的 数値の自然対数を求める ログ ファイルに文字列を書き込む 744 使用する構文 構文 1 構文 2 PowerBuilder 第 10 章 PowerScript の関数 構文 1 すべてのオブジェクトに対して 機能 数値の自然対数を返します。 構文 Log ( n ) 引数 n 戻り値 説明 自然対数(底 e)を返す数値を指定します。n は正の値で なければなりません。 Double 型。n の自然対数を返します。n が負の値または 0 の場合、エ ラーが発生します。n が NULL の場合、NULL を返します。 ヒント Log 関数の逆関数は Exp 関数です。 例 次のステートメントは、2.302585092 を返します。 Log(10) 次のステートメントは、-0.693147. . を返します。 Log(0.5) 次のステートメントは、どちらも実行時にエラーが発生します。 Log(0) Log(-2) 次のステートメントを実行すると、a の値は 200 になります。 double a, b = Log(200) a = Exp(b)// a = 200 関連項目 Exp LogTen 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Log メソッド 構文 2 ErrorLogging オブジェクトに対して 機能 オブジェクトのコンテナによって管理されているログ ファイルに文 字列を書きこみます。 対象 ErrorLogging オブジェクト 構文 errorlogobj.Log ( message ) PowerScript リファレンス ボリューム 2 745 LogTen 引数 errorlogobj 説明 ErrorLogging サービス インスタンスへの参照を指定しま す。 ログに書き込むテキスト文字列を指定します。 message 戻り値 なし 解説 ErrorLogging オブジェクトは、オブジェクトのコンテナによって使用 されるログ ファイルにメッセージを書き込む機能を提供します。たと えば、EAServer の jaguar.log などがあります。 Log 関数を呼び出す前に、GetContextService 関数を呼び出して、 ErrorLogging サービスのインスタンスを作成しておく必要があります。 例 次の例は、EAServer または COM+ のログに文字列を書き込む方法を示 しています。 ErrorLogging el this.GetContextService("ErrorLogging", el) el.log("Write this string to log") 関連項目 GetContextService LogTen 機能 数値の対数(底 10)を返します。 構文 LogTen ( n ) 引数 n 解説 説明 対数(底 10)を返す数値を指定します。n の値は 0 または 正の値です。 Double 型。n の対数(底 10)を返します。n が負の値の場合はエラー が発生します。n が NULL の場合、NULL を返します。 LogTen の逆関数 式 10^n は、LogTen(n) の逆関数です。r = LogTen(n) の n を取得するには、n = 10^r を計算します。 例 次のステートメントは、1 を返します。 LogTen(10) 次のステートメントは、どちらも 0 を返します。 746 PowerBuilder 第 10 章 PowerScript の関数 LogTen(1) LogTen(0) 次のステートメントでは、実行時にエラーが発生します。 LogTen( - 2) 次のステートメントを実行すると、a の値は 200 になります。 double a, b = LogTen(200) a = 10^b// a = 200 関連項目 Exp LogTen 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの LogTen メソッド Long データを Long 型に変換します。次の 2 つの構文を使用します。 目的 使用する構文 2 つの Unsignedinteger 型の値を結合して Long 型の値に変 構文 1 換する 値が数値である文字列を Long 型に変換する、または Blob 構文 2 型の変数から Long 型の値を取得する 構文 1 UnsignedInteger 型の値を結合する 機能 2 つの UnsignedInteger 型の値を結合して Long 型の値に変換します。 構文 Long ( lowword, highword ) 引数 lowword highword PowerScript リファレンス ボリューム 2 説明 UnsignedInteger 型の値。Long 型に変換する下位ワードを指 定します。 UnsignedInteger 型の値。Long 型に変換する上位ワードを指 定します。 747 Long 戻り値 Long 型。正常に終了した場合は Long 型の値を返し、エラーが発生し た場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を 返します。 解説 値を外部 C 関数に渡す場合や、メッセージ オブジェクトの LongParm プロパティの値を指定する場合、構文 1 を使用します。 例 次の例は、UnsignedInteger 型の変数 nLow と nHigh を Long 型の値に変 換します。 UnsignedInt nLow // 下位 Integer 16 ビット UnsignedInt nHigh // 上位 Integer 16 ビット long LValue // Long 型の値 32 ビット nLow = 12345 nHigh = 0 LValue = Long(nLow, nHigh) MessageBox("Long 型の値 ", Lvalue) 構文 2 文字列を Long 型に変換する、または Blob 型の変数 から Long 型の値を取得する 機能 値が数値である文字列を Long 型に変換するか、Blob 型の変数から Long 型の値を取得します。 構文 Long ( stringorblob ) 引数 stringorblob 戻り値 説明 Long 型に変換する文字列、または最初の値が Long 型であ る Blob 型の変数の値を指定します。残りの Blob 型の値は 無視されます。Stringorblob には、文字列または Blob 型を 含む Any 変数を指定することもできます。 Long 型。正常に終了した場合、stringorblob で指定された内容を Long 型の値で返します。stringorblob の値が有効な数値でない場合、または データ型が一致しない場合には、0 を返します。stringorblob が NULL の 場合、NULL を返します。 解説 値が数字の 0 である文字列と、値が数値以外である文字列とを区別す るには、Long 関数を呼び出す前に IsNumber 関数を使用します。 例 次の例は、2167899876 を Long 型の値に変換して返します。 Long("2167899876") データベースの Blob 型のデータを lb_blob に格納した場合、次の例は、 lb_blob の位置 20 に格納されている Long 型の値を取得します。 748 PowerBuilder 第 10 章 PowerScript の関数 long lb_num lb_num = Long(BlobMid(lb_blob, 20, 4)) Blob 型の変数にデータを代入する方法、および Blob 型の変数からデー タを取り出す方法については、Real 関数の例を参照してください。 関連項目 Dec Double Integer LongLong Real 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Long メソッド LongLong データを LongLong 型に変換します。次の 2 つの構文を使用します。 目的 使用する構文 2 つの Unsignedlong 型の値を結合して LongLong 型の値に 構文 1 変換する 値が数値である文字列を LongLong 型に変換するか、Blob 構文 2 型の変数から LongLong 型の値を取得する 構文 1 Long 型を結合する 機能 2 つの UnsignedLong 型の値を結合して LongLong 型の値に変換します。 構文 LongLong ( lowword, highword ) 引数 lowword highword 説明 UnsignedLong 型の値。LongLong 型に変換する下位ワード を指定します。 UnsignedLong 型の値。LongLong 型に変換する上位ワード を指定します。 戻り値 LongLong 型。正常に終了した場合は LongLong 型の値を返し、エラー が発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、 NULL を返します。 解説 C++ や Java の外部関数に値を渡す場合に、LongLong 関数を使用しま す。 PowerScript リファレンス ボリューム 2 749 LongLong 例 次の例は、UnsignedLong 型の変数 lLow と lHigh を LongLong 型の値に 変換します。 UnsignedLong lLow UnsignedLong lHigh longlong LLValue //LowLong 型の値 32 ビット //High Long 型の値 32 ビット //LongLong 型の値 64 ビット lLow = 1234567890 lHigh = 9876543210 LLValue = LongLong(lLow, lHigh) MessageBox("LongLong 型の値 ", LLvalue) 構文 2 文字列を LongLong 型に変換する、または Blob 型 の変数から LongLong 型の値を取得する 機能 値が数値である文字列を LongLong 型に変換するか、Blob 型の変数から LongLong 型の値を取得します。 構文 LongLong ( stringorblob ) 引数 stringorblob 戻り値 説明 longlong 型に変換する文字列、または先頭が longlong 型の 値である Blob 型データを指定します。残りの Blob 型の値 は無視されます。Stringorblob には、文字列または Blob 型 を含む Any 変数を指定することもできます。 LongLong 型。正常に終了した場合、stringorblob で指定された内容を longlong 型の値で返します。stringorblob の値が有効な数値でない場合、 またはデータ型が一致しない場合には、0 を返します。stringorblob が NULL の場合、NULL を返します。 解説 値が数字の 0 である文字列と、値が数値以外である文字列とを区別す るには、LongLong 関数を呼び出す前に IsNumber 関数を使用します。 例 次のステートメントは、LongLong 型の 216789987654321 を返します。 LongLong("216789987654321") データベースの Blob 型のデータを lb_blob に格納した場合、次の例は、 lb_blob の位置 20 に格納されている LongLong 型の値を取得します。 longlong llb_num llb_num = LongLong(BlobMid(lb_blob, 20, 4)) Blob 型の変数にデータを代入する方法、および Blob 型の変数からデー タを取り出す方法については、Real 関数の例を参照してください。 750 PowerBuilder 第 10 章 PowerScript の関数 関連項目 Dec Double Integer Real Lookup EAServer コンポーネントのインスタンスを作成するためのファクトリ インタフェースまたはホーム インタフェースを PowerBuilder クライア ントまたはコンポーネントが取得できるようにします。この関数を使 用するのは、PowerBuilder クライアント(EAServer 内のコンポーネン トに接続する場合)と、PowerBuilder コンポーネント(同じサーバ上 のほかのコンポーネントに接続する場合)です。 目的 EAServer 内で動作する CORBA 準拠コンポーネントの ファクトリ インタフェースを取得します。 使用する構文 構文 1 EAServer 内で動作する EJB コンポーネントのホーム イン タフェースを取得します。 構文 2 構文 1 CORBA 準拠の EAServer コンポーネントの場合 機能 EAServer コンポーネントのファクトリ インタフェース(コンポーネン ト インスタンスを作成するためのインタフェース)を PowerBuilder ク ライアントまたはコンポーネントが取得できるようにします。 対象 接続オブジェクト、TransactionServer オブジェクト 構文 objname.Lookup (objectvariable , componentname ) 引数 objname objectvariable PowerScript リファレンス ボリューム 2 説明 接続を確立するための接続オブジェクトの名前、また は TransactionServer コンテキスト オブジェクトのイン スタンスの名前を指定します。 ファクトリ インタフェースのデータ型のグローバル 変数、インスタンス変数あるいはローカル変数を指定 します。 751 Lookup 引数 componentname 説明 String 型の値。作成するコンポーネント インスタンス の名前を指定します。オプションで、コンポーネン ト名の前にスラッシュで区切ってパッケージ名を指 定することもできます(たとえば、 「mypackage/mycomponent」など)。 戻り値 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 解説 Lookup 関数は、CreateInstance 関数に代わる方法として使用できます。 ファクトリ インタフェースへの参照を取得します。これは、EAServer 内で動作するコンポーネントのインスタンスを作成するために使用可 能なインタフェースです。 接続オブジェクトの Lookup 関数を使用することで、EAServer 内で動作 するコンポーネントに PowerBuilder クライアントがアクセスすること が可能になります。接続オブジェクトの location プロパティで、サー バ名またはサーバ名のリストを指定できます。 TransactionServer オブジェクトの Lookup 関数を使用することで、 EAServer 内で動作する PowerBuilder コンポーネントが、同じサーバで 動作する別のコンポーネントにアクセスすることが可能になります。 Lookup 関数を使用するには、SessionManager パッケージの EAServer プ ロキシ ライブラリを作成する必要があります。これは、ファクトリ イ ンタフェースのプロキシを取得するために必要です。ライブラリ リス トにこのプロキシ ライブラリを含めます。 例 次 の 例 で は、n_Bank_Account コ ン ポ ー ネ ン ト の フ ァ ク ト リ イ ン タ フェースのインスタンスを作成するために Lookup を使用しています。 その後、ファクトリ インタフェースの create メソッドを使用して n_Bank_Account コンポーネントのインスタンスを作成しています。 // インスタンス変数 : // Connection myconnect Factory my_Factory CORBAObject mycorbaobj n_Bank_Account my_account long ll_result ll_result = & myconnect.lookup(my_Factory,"Bank/n_Bank_Account") mycorbaobj = my_Factory.create() mycorbaobj._narrow(my_account, "Bank/n_Bank_Account") my_account.withdraw(100.0) 752 PowerBuilder 第 10 章 PowerScript の関数 関連項目 CreateInstance 構文 2 EJB コンポーネントのインスタンス 機能 EAServer 内の EJB コンポーネントのホーム インタフェース(コンポー ネント インスタンスを作成するためのインタフェース)を PowerBuilder クライアントまたはコンポーネントが取得することを可能にします。 対象 接続オブジェクト、TransactionServer オブジェクト 構文 objname.Lookup (objectvariable , componentname {, homeid} ) 引数 objname objectvariable componentname homeid 戻り値 説明 接続を確立するための接続オブジェクトの名前、また は TransactionServer コンテキスト オブジェクトのイン スタンスの名前を指定します。 作成するホーム インタフェースのデータ型のグロー バル変数、インスタンス変数あるいはローカル変数を 指定します。 String 型の値。作成する EJB コンポーネントの名前を 指定します。オプションで、コンポーネント名の前に スラッシュで区切ってパッケージ名を指定することもで きます(たとえば、 「mypackage/mycomponent」など)。 String 型の値。作成するホーム インタフェースの名前 を指定します。この引数はオプションです。 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 解説 EJBConnection J2EE 準拠のアプリケーション サーバで実行している EJB コンポーネ ントのインスタンスを作成する場合は、EJBConnection PowerBuilder 拡 張オブジェクトの Lookup メソッドを使用することもできます。詳細に ついては、 『PowerBuilder エクステンション リファレンス』の「Lookup」 を参照してください。 PowerScript リファレンス ボリューム 2 753 Lookup Lookup 関数は、EJB コンポーネントのホーム インタフェースのインス タンスを作成します。これによって、EJB インスタンスを作成するこ とが可能になります。接続オブジェクトの Lookup 関数を使用すること で、EAServer 内で動作するコンポーネントに PowerBuilder クライアン トがアクセスすることが可能になります。接続オブジェクトの location プロパティで、サーバ名またはサーバ名のリストを指定できます。 TransactionServer オ ブ ジ ェ ク ト の Lookup 関 数 を 使 用 す る こ と で、 EAServer 内で動作する PowerBuilder コンポーネントが、同じサーバで 動作する EJB コンポーネントにアクセスすることが可能になります。 Lookup 関数は、標準の CORBA ネーミング サービスを使用して componentname を CORBA オブジェクトに解決します。さらにこれを コンポーネントのホーム インタフェースの名前で限定します。Lookup 関数の 3 番目の引数を指定しない場合、ホーム インタフェース名の形式 が PackageName/CompNameHome であることが想定されます。しかし、 大半の EJB コンポーネントは標準の Java パッケージ ディレクトリ構造 を使用していて、ホーム インタフェース名は com/domain/project/CompNameHome などの形式を持ちます。 ホーム インタフェースの名前を指定する Lookup 関数に 3 番目の引数 を指定することによって、PowerBuilder クライアントまたはコンポー ネントでコンポーネントのホーム インタフェースが確実に特定され るように配慮できます。コンポーネントのホーム インタフェース名 は、EAServer リポジトリ内の com.sybase.jaguar.component.home.ids プロ パティで定義されます。home.ids プロパティの形式は次のとおりです。 IDL:com/domain/project/CompNameHome:1.0 3 番目の引数には、コンポーネントの home.ids 文字列から先頭の IDL と末尾の 1.0 を取り除いた文字列を指定します。次に例を示します。 ts.lookup(MyCartHome, "shopping/cart", & "com/sybase/shopping/CartHome") あるいは、ホーム インタフェースの完全な Java クラス名をドット表記 で指定することもできます。次に例を示します。 ts.lookup(MyCartHome, "shopping/cart", & "com.sybase.shopping.CartHome") Lookup 関数では大文字と小文字が区別される EAServer の Lookup 関数では大文字と小文字が区別されます。lookup 関数の引数で指定する文字列の大文字 / 小文字と、ejb.home プロパティ の文字列の大文字 / 小文字が一致していることを確かめます。 754 PowerBuilder 第 10 章 PowerScript の関数 例 次の例では、接続オブジェクトの Lookup を使用することで、Java パッ ケージ abc.xyz.math 内の Multiply セッション EJB のホーム インタ フェースを特定しています。 // インスタンス変数 : // Connection myconnect Multiply myMultiply MultiplyHome myMultiplyHome long ll_result, ll_product ll_result = & myconnect.lookup(myMultiplyHome,"Math/Multiply", & "abc.xyz.math.MultiplyHome) IF ll_result <> = 0 THEN MessageBox("Lookup 失敗 ", myconnect.errtext) ELSE try myMultiply = myMultiplyHome.create() catch (ctscomponents_createexception ce) MessageBox(" 例外の作成 ", ce.getmessage()) // 例外を処理します。 end try ll_product = myMultiply.multiply(1234, 4567) END IF エンティティ Bean には、前のセッションで保存された EJB を検索す るための findByPrimaryKey メソッドがあります。次の例では、Dirk Dent 用に保存されたショッピング カートを検索するために findByPrimaryKey メソッドを使用しています。 // インスタンス変数 : // Connection myconnect Cart myCart CartHome myCartHome long ll_result ll_result = & myconnect.lookup(myCartHome,"Shopping/Cart", & "com.mybiz.shopping.CartHome") IF ll_result <> = 0 THEN MessageBox("Lookup 失敗 ", myconnect.errtext) ELSE TRY myCart = myCartHome.findByPrimaryKey("DirkDent") myCart.addItem(101) CATCH ( ctscomponents_finderexception fe ) MessageBox("Finder 例外 ", & PowerScript リファレンス ボリューム 2 755 Lookup fe.getmessage()) END TRY END IF PowerBuilder から EAServer に配布された非ビジュアル オブジェクト では、TransactionServer コンテキスト オブジェクトのインスタンスを 使用することによって、同じサーバ内の EJB コンポーネントのホーム インタフェースを特定できます。 CalcHome MyCalcHome Calc MyCalc TransactionServer ts ErrorLogging errlog long ll_result this.GetContextService("TransactionServer", ts) this.GetContextService("ErrorLogging", errlog) ll_result = ts.lookup(MyCalcHome, "Utilities/Calc", & "com.biz.access.utilities.CalcHome") IF ll_result <> 0 THEN errlog.log("Lookup failed:" + string(ll_result)) ELSE TRY MyCalc = MyCalcHome.create() MyCalc.square(12) CATCH (ctscomponents_createexception ce) errlog.log("Create exception:" + ce.getmessage()) END TRY END IF 関連項目 756 ConnectToServer PowerBuilder 第 10 章 PowerScript の関数 Lower 機能 文字列内のすべての英文字の大文字を小文字に変換します。 構文 Lower ( string ) 引数 string 戻り値 説明 文字列を指定します。指定された文字列に含まれる英文字 の大文字をすべて小文字に変換します。 String 型。正常に終了した場合、string で指定された文字列の英文字の 大文字を小文字に変換して返します。エラーが発生した場合、空の文 字列("")を返します。string が NULL の場合、NULL を返します。 例 次の例は、"babe ruth" を返します。 Lower("Babe Ruth") 関連項目 Upper 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Lower メソッド LowerBound 機能 配列の次元の下限を求めます。 構文 LowerBound ( array {, n } ) 引数 array n (オプション) 説明 配列の名前を指定します。指定された配列の n 次元の下限 を求めます。 下限を求める次元を指定します。特に指定しない限り、1 が設定されます。 戻り値 Long 型。array に指定された配列の n 次元の下限を返します。n に指定 された値が配列の次元数よりも大きい場合、-1 を返します。引数のい ずれかの値が NULL の場合、NULL を返します。 解説 可変長の配列に対しては、配列に値を割り当てたときに、その配列に メモリが割り当てられます。値が割り当てられる前の下限は 1 で、上 限は 0 です。 例 次のステートメントは、固定長および可変長の配列に対して、メモリ が割り当てられる前後に返される値を示します。 PowerScript リファレンス ボリューム 2 757 LowerBound integer a[5], LowerBound(a) LowerBound(a, LowerBound(a, LowerBound(b, integer c[ ] LowerBound(c) c[50] = 900 LowerBound(c) b[2,5] // 戻り値 1) // 戻り値 2) // 戻り値 2) // 戻り値 1 1 -1、a は 1 次元配列です。 1 // 戻り値 1 // 戻り値 1 integer d[-10 to 50] LowerBound(d) // 戻り値 - 10 関連項目 758 UpperBound PowerBuilder 第 10 章 PowerScript の関数 mailAddress 機能 メール メッセージに対する mailRecipient 配列を更新します。 対象 mailSession オブジェクト 構文 mailsession.mailAddress ( { mailmessage } ) 引数 mailsession mailmessage (オプション) 戻り値 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメッセージのアドレスを格納 します。 メッセージについての情報を格納する mailMessage オブ ジェクト構造体を指定します。mailmessage を省略すると、 mailAddress 関数はアドレス ダイアログボックスを表示し ます。 mailReturnCode カタログ データ型の値です。以下のいずれかの値を返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnUserAbort! 引数のいずれかの値が NULL の場合、NULL を返します。 解説 mailRecipient 配列には、メール メッセージの受信者やメール メッセー ジの作成者についての情報が格納されています。作成者についての情 報は、メッセージの送信時には使用されません。 mailRecipient 配列の中にエラーが発生した場合、mailAddress 関数はア ドレス ダイアログボックスを表示してエンド ユーザがアドレスを修 正できるようにします。 (エンド ユーザが受け取ったメッセージなど の)有効なアドレスのメッセージが格納されている mailMessage 構造 体を渡した場合、アドレスが正確なので何も表示されません。 mailMessage を省略した場合、メール システムはアドレス ダイアログ ボックスを表示してエンド ユーザがアドレスの検索や個人的なアド レス リストのメンテナンスなどを行うことができるようにします。た だし、エンド ユーザは、メッセージを送信するための宛先を選択する ことはできません。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 PowerScript リファレンス ボリューム 2 759 mailAddress 例 次のステートメントは、mailSession オブジェクトを作成し、テキスト ファイルを添付してメールを送信します。次に、メール システムの セッションを終了し、mailSession オブジェクトを破棄します。 mailSession mSes mailReturnCode mRet mailMessage mMsg mailFileDescription mAttach // mailSession オブジェクトを作成します。 mSes = CREATE mailSession // メール システムとのセッションを開始します。 mRet = mSes.mailLogon(mailNewSession!) IF mRet <> mailReturnSuccess! THEN MessageBox(" メール ", ' セッションを開始できません。') RETURN END IF mMsg.AttachmentFile[1] = mAttach mRet = mSes.mailAddress(mMsg) IF mRet <> mailReturnSuccess! THEN MessageBox(" メール ", ' アドレス指定に失敗しました。') RETURN END IF // メールを送信します。 mRet = mSes.mailSend(mMsg) IF mRet <> mailReturnSuccess! THEN MessageBox(" メール ", ' メールが送信されませんでした。') RETURN END IF mSes.mailLogoff() DESTROY mSes 関連項目 760 mailLogoff mailLogon mailResolveRecipient mailSend PowerBuilder 第 10 章 PowerScript の関数 mailDeleteMessage 機能 エンド ユーザの受信トレイからメール メッセージを削除します。 対象 mailSession オブジェクト 構文 mailsession.mailDeleteMessage ( messageid ) 引数 mailsession messageid 戻り値 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメッセージを削除します。 String 型の値。削除するメール メッセージの ID を指定し ます。 mailReturnCode カタログ データ型の値です。以下のいずれかの値を返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnInvalidMessage! mailReturnUserAbort! 引数のいずれかの値が NULL の場合、NULL を返します。 解説 エンド ユーザの受信トレイのメッセージ ID のリストを取得するには、 mailGetMessages 関数を呼び出します。メール関数を呼び出す前に、 mailSession オブジェクトを宣言して作成し、mailLogon 関数を呼び出 してメール システムとのセッションを開始する必要があります。 例 次の例では、データウィンドウ dw_inbox がメール項目(Sender、Subject、 Postmark、MessageID)のリストを格納しているとします。また、mailSession オブジェクト mSes が作成され、メッセージ システムとのセッション が正常に開始したとします。この場合、dw_inbox の Clicked イベントに 対する次のスクリプトは、メール システムから、選択されているメッ セージを削除します。 string sID integer nRow mailReturnCode mRet nRow = GetClickedRow() IF nRow > 0 THEN sID = GetItemString(nRow, "messageID") mRet = mSes.mailDeleteMessage(sID) END IF PowerScript リファレンス ボリューム 2 761 mailGetMessages 関連項目 mailGetMessages mailLogon mailGetMessages 機能 mailSession オブジェクトの MessageID 配列に、エンド ユーザの受信ト レイのメッセージ ID を格納します。 対象 mailSession オブジェクト 構文 mailsession.mailGetMessages ( { messagetype, } { unreadonly } ) 引数 mailsession messagetype (オプション) unreadonly (オプション) 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメッセージを受信します。 String 型の値。メッセージ タイプの値を指定します。標準 のメッセージ タイプは IPM または空の文字列("")で、個 人のメッセージを識別します。そのほかの標準のメッセー ジ タイプは IPC で、非表示のプロセス間のメッセージを識 別します。メール管理者が、ほかのユーザ定義のメッセー ジ タイプを設定している場合もあります。 未読メッセージの ID のみが必要であることを指定する Boolean 型の値。値は以下のとおりです。 • TRUE − 未読メッセージ ID だけ • FALSE − すべてのメッセージ ID 戻り値 mailReturnCode カタログ データ型の値です。以下の値のいずれかを返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnNoMessages! mailReturnUserAbort! 引数のいずれかの値が NULL の場合、NULL を返します。 解説 762 MailGetMessages 関数は、mailSession オブジェクトの MessageID 配列に 格納されているメッセージ ID を取り出すだけです。メッセージ ID は、 ほかのメール関数の引数として使用されます。たとえば、 mailReadMessage 関数の引数として使用された場合、メッセージ ID は 読むメッセージを示します。 PowerBuilder 第 10 章 PowerScript の関数 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次の例は、エンド ユーザの受信トレイのメッセージのリストを、デー タウィンドウに表示します。このデータウィンドウは外部のデータ ソースによって定義されていて、3 つのカラム(msgid、msgdate、およ び msgsubject)を持ちます。MailGetMessages は mailSession オブジェク ト内の MessageID 配列にデータを格納し、mailReadMessage は各 ID に 関する情報を取得します。 次の例では、アプリケーションがすでに mailSession オブジェクト mSes を作成し、メール システムとのセッションを開始しているものとしま す。 mailMessage msg long n, c_row mSes.mailGetMessages() FOR n = 1 to UpperBound(mSes.MessageID[]) mSes.mailReadMessage(mSes.MessageID[n], & msg, mailEnvelopeOnly!, FALSE ) c_row = dw_1.InsertRow(0) dw_1.SetItem(c_row, "msgid", mSes.MessageID[n]) dw_1.SetItem(c_row, "msgdate", msg.DateReceived) // 件名の長さを、定義と一致するように切り詰めます。 dw_1.SetItem(c_row, "msgsubject", & Left(msg.Subject, 50)) NEXT 関連項目 mailDeleteMessage mailReadMessage PowerScript リファレンス ボリューム 2 763 mailHandle mailHandle 機能 mailSession オブジェクトのハンドルを取得します。 対象 mailSession オブジェクト 構文 mailsession.mailHandle ( ) 引数 mailsession 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッションのハンドルを取得します。 戻り値 UnsignedLong 型。mailSession オブジェクトの内部ハンドルを返します。 mailsession が NULL の場合、エラー メッセージを表示します。 解説 エンド ユーザがメール システムとのセッションを開始すると、エンド ユーザの mailSession オブジェクトに有効なハンドルが与えられます。 そのような関数を外部関数として呼び出す場合、mailSession オブジェ クトへのハンドルを使用します。MAPI がサポートしている関数には、 PowerBuilder が直接、関数として実装していないものもあります。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次のステートメントは、現行のメール システムの内部ハンドルを返し ます。 current_session. mailHandle() 764 PowerBuilder 第 10 章 PowerScript の関数 mailLogoff 機能 PowerBuilder アプリケーションとメール システムとの接続を解除し、 メール セッションを終了します。PowerBuilder がメール セッションを 開始したときにすでに実行されていたメール アプリケーションは、そ のままの状態です。 対象 mailSession オブジェクト 構文 mailsession.mailLogoff ( ) 引数 mailsession 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッションを終了します。 戻り値 mailReturnCode カタログ データ型の値です。以下のいずれかの値を返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! 解説 mailSession オブジェクトが使用しているメモリを解放するには、メー ル システムとのセッションを終了した後で、 DESTROY キーワードを使 用します。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次のステートメントは、現行のメール システムとのセッションを終了 します。 current_session. mailLogoff() DESTROY current_session 関連項目 mailLogon PowerScript リファレンス ボリューム 2 765 mailLogon mailLogon 機能 PowerBuilder アプリケーションのメール セッションを確立します。 PowerBuilder アプリケーションは、新しいメール セッションを開始す るか、既存のセッションを使用します。 対象 mailSession オブジェクト 構文 mailsession.mailLogon ( { profile, password } {, logonoption } ) 引数 mailsession profile (オプション) password (オプション) logonoption (オプション) 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッションを開始します。 String 型の値。メール システムとのセッションの開始時に 使用するプロファイルまたはユーザ ID を指定します。 String 型の値。メール システムとのセッションの開始時に 使用するパスワードを表す文字列を指定します。 mailLogonOption カタログ データ型の値。メール システム とのセッションの開始時に使用するオプションを指定し ます。 • mailNewSession! − メール アプリケーションが実行中か どうかに関係なく、新しいメール システムとのセッ ションを開始します。 • mailDownLoad! − サーバからユーザの受信トレイに、 メッセージを強制的にダウンロードします。メール ア プリケーションが実行中でない場合、新しいメール シ ステムとのセッションを開始します。 • mailNewSessionWithDownLoad! − 新しいメール システ ムとのセッションを開始し、サーバからエンド ユーザ の受信トレイに新しいメッセージを強制的にダウン ロードします。 特に指定しない限り、既存のセッションが使用されます。 この場合、新しいメッセージの強制的なダウンロードも行 われません。 戻り値 mailReturnCode カタログ データ型の値です。以下の値のいずれかを返 します。 mailReturnSuccess! mailReturnLoginFailure! mailReturnInsufficientMemory! mailReturnTooManySessions! mailReturnUserAbort! 引数のいずれかの値が NULL の場合、NULL を返します。 766 PowerBuilder 第 10 章 PowerScript の関数 解説 エンド ユーザのコンピュータですでにメール アプリケーションが実 行されている場合、新しいセッションを開始する mailLogon 関数を呼び 出さないときには、メール セッションは既存のセッションを使用しま す。profile と password は不要です。 mailLogon 関数がメール システムとの新しいセッションを開始する場 合、スクリプトの中で profile と password を提供していないときには、 メール システムのダイアログボックスが表示されてユーザ ID とパス ワードの入力が要求されます。 ダウンロード オプションにより、メール サーバは最新のメッセージを エンド ユーザの受信トレイにダウンロードします。これにより、受信 トレイを最新の状態にします。ただし、そのメッセージを PowerBuilder から利用できなくなります。mailGetMessages 関数と mailReadMessage 関数を使用してメッセージを参照します。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 する必要があります。 例 次の例では、mailSession オブジェクト new_session は、ウィンドウのイ ンスタンス変数です。ウィンドウの Open イベントに対するスクリプ トで、mailSession オブジェクトを格納するメモリを割り当て、メール システムとのセッションを開始します。セッションの開始時に、メー ル アプリケーションはダイアログボックスを表示してユーザ ID とパ スワードの入力を要求します。 new_session = CREATE mailSession new_session.mailLogon(mailNewSession!) 次の例は、新しいメール システムとのセッションを開始し、エンド ユーザの受信トレイを更新します。すでにユーザ情報が提供されている ので、ユーザ ID とパスワードの入力は不要です。この例の mailSession オブジェクトは、ローカル変数に格納されています。 mailSession new_session new_session = CREATE mailSession new_session.mailLogon("jpl", "hotstuff", & mailNewSessionWithDownLoad!) 関連項目 mailLogoff PowerScript リファレンス ボリューム 2 767 mailReadMessage mailReadMessage 機能 mailSession オブジェクトのプロパティである配列 MessageID にメッ セージ ID が格納されているメール メッセージを開きます。メッセー ジ全体を読むか、またはヘッダ情報(発信者、受信日付など)だけを 読むかを選択できます。メッセージにファイルが添付されている場合、 一時ファイルに格納されます。また、メッセージの内容を一時ファイ ルに書き込むように選択することもできます。 対象 mailSession オブジェクト 構文 mailsession.mailReadMessage ( messageid, mailmessage, readoption, mark ) 引数 mailsession messageid mailmessage readoption 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメッセージを読みます。 String 型の値。読みたいメール メッセージの ID を指定し ます。 メッセージ情報が格納されている mailMessage オブジェク ト構造体を指定します。 MailReadOption カタログ データ型の値を指定します。 • mailEntireMessage! − ヘッダ、テキスト、添付ファイル を取得します。 • mailEnvelopeOnly! − ヘッダ情報だけを取得します。 • mailBodyAsFile! − ヘッダ、テキスト、添付ファイルを 取得します。メッセージの内容を最初の添付ファイルと して扱い、一時ファイルに格納します。 mark • mailSuppressAttachments! − ヘッダとテキストを取得し ます。添付ファイルの内容は取得しません。 Boolean 型の値。エンド ユーザの受信トレイで、メッセー ジに読まれたことを示すマークを付けるかどうかを指定 します。値は以下のとおりです。 • TRUE − マークを付ける • FALSE − マークを付けない 戻り値 mailReturnCode カタログ データ型の値。以下のいずれかの値を返しま す。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! 引数のいずれかの値が NULL の場合、NULL を返します。 768 PowerBuilder 第 10 章 PowerScript の関数 解説 エンド ユーザの受信トレイにあるメッセージのメッセージ ID を取得 するには、mailGetMessages 関数を呼び出します。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 添付ファイルを読むには メッセージにファイルが添付されていて添付ファイルを禁止していな い場合、添付ファイルに関する情報が mailMessage オブジェクトの AttachmentFile プロパティに格納されます。AttachmentFile プロパティ は、mailFileDescription オブジェクトです。そのオブジェクトの PathName プロパティには、添付ファイルを保存するために作成された一時ファ イルの位置が格納されています。特に指定しない限り、一時ファイル は TEMP 環境変数で指定されるディレクトリに配置されます。 一時ファイルが不要になった場合には、必ず削除してください。 例 たとえば、メール メッセージのリストを表示するデータウィンドウ コ ントロール dw_inbox と、メッセージ テキストを表示するマルチライン エディット コントロール mle_note を持つウィンドウに、メールが表示 されるとします。また、アプリケーションで mailSession オブジェクト mSes を作成してメール システムとのセッションを開始し、dw_inbox が メール項目(Sender、Subject、Postmark、MessageID)のリストを格納 しているものとします。次の例は、dw_inbox の Clicked イベントに対す るスクリプトです。選択されたメッセージの内容をマルチライン エ ディット コントロール mle_note に表示します。 integer nRow, nRet string sMessageID string sRet, sName // 選択されたメール項目を取得します。 nRow = GetClickedRow() IF nRow > 0 THEN // メッセージ ID を取得します。 sMessageID = GetItemString(nRow, 'MessageID') // 最初にエンベロープしか読まなかったので、 // メッセージをもう一度読んで内容全体を取得します。 mRet = mSes.mailReadMessage(sMessageID, mMsg & mailEntireMessage!, TRUE) // テキストを表示します。 mle_note.Text = mMsg.NoteText PowerScript リファレンス ボリューム 2 769 mailRecipientDetails END IF データウィンドウ コントロールにメール メッセージのリストを作成 する方法については、mailGetMessages 関数、または「Code Examples」 のメール アプリケーションを参照してください。 関連項目 mailGetMessages mailLogon mailSend mailRecipientDetails 機能 指定された受信者のアドレス情報をダイアログボックスに表示しま す。 対象 mailSession オブジェクト 構文 mailsession.mailRecipientDetails ( mailrecipient {, allowupdates } ) 引数 mailsession mailrecipient allowupdates (オプション) 戻り値 説明 セッションを表す mailSession オブジェクトを指定しま す。指定されたセッション内で受信者の詳細情報を表示 します。 有効なアドレス情報を格納する mailRecipient オブジェ クト構造体を指定します。mailrecipient には、 mailAddress 関数、mailResolveRecipient 関数、または mailReadMessage 関数によって返される受信者の識別 子が格納されている必要があります。 Boolean 型の値。受信者の名前の更新を許可するかどう かを指定します。エンド ユーザが更新の権限を持って いない場合、この allowupdates は無効です。特に指定し ない限り、FALSE が設定されます。 mailReturnCode カタログ データ型の値です。以下のいずれかの値を返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnUnknownRecipient! mailReturnUserAbort! 引数のいずれかの値が NULL の場合、NULL を返します。 770 PowerBuilder 第 10 章 PowerScript の関数 解説 allowupdates に TRUE を設定した場合の機能は、メール システムとエ ンド ユーザの権限に依存します。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次の例は、エンド ユーザの受信トレイからメッセージ ID を取得し、最 初のメッセージを読み込みます。次に、mailRecipientDetails 関数を呼び 出して最初の受信者のアドレス情報を表示します。Recipient は mailMessage のプロパティで、構造体の配列です。配列の各要素は、メッセージの 受信者を表します。この例では、MessageID や Recipient の要素数を考 慮していません。また、mailSession オブジェクトをすでに作成し、メー ル メッセージとのセッションを開始しているものとします。 mailMessage msg integer n long c_row mSes.mailGetMessages() mSes.mailReadMessage(mSes.MessageID[1], & msg, mailEnvelopeOnly!, FALSE ) mSes.mailRecipientDetails(msg.Recipient[1]) 関連項目 mailResolveRecipient mailSend PowerScript リファレンス ボリューム 2 771 mailResolveRecipient mailResolveRecipient 機能 ユーザのフルネームまたは名前の一部に基づいて、有効な電子メール アドレスを取得します。ユーザが権限を持っている場合、システムの アドレスに格納されている情報を更新することもできます。 対象 mailSession オブジェクト 構文 mailsession.mailResolveRecipient ( recipient {, allowupdates } ) 引数 mailsession recipient allowupdates (オプション) 戻り値 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内で受信者のメール アドレスを取 得します。 受信者の名前を格納する mailRecipient 構造体、または String 型変数を指定します。受信者の名前は、mailRecipient 構造体のプロパティです。recipient に文字列が指定されて いる場合、その文字列にフルネームを設定します。構造体 が指定されている場合、構造体に格納されているアドレス 情報を設定します。 Boolean 型の値。受信者の名前の更新を許可するかどうか を指定します。エンド ユーザが更新の権限を持っていない 場合、この allowupdates は無効です。特に指定しない限り、 FALSE が設定されます。 mailReturnCode カタログ データ型の値です。以下のいずれかの値を返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnUserAbort! 引数のいずれかの値が NULL の場合、NULL を返します。 解説 メール システム内で名前が有効なアドレスかどうかを確認するため に使用します。名前が検索できない場合、mailReturnFailure! を返しま す。 mailRecipient 構造体が指定された場合、mailResolveRecipient 関数は、ア ドレスを割り出す際に有効なアドレス情報をその構造体に格納しま す。文字列が指定された場合、メール システムが識別できるように、 文字列の値はエンド ユーザのフルネームに置き換えられます。ローカ ルなメール システム環境では、アドレスを文字列で指定するのが適切 です。ゲートウェイを介してほかのシステムにメールを送る場合、 mailRecipient 構造体の完全なアドレスの詳細情報を取得する必要があ ります。 772 PowerBuilder 第 10 章 PowerScript の関数 mailResolveRecipient 関数に部分的なアドレス情報が指定され、メール システムで複数のアドレスが一致した場合は、メール システムはダイ アログボックスを表示し、エンド ユーザに名前を選択させます。 アドレス情報を含む mailRecipient 構造体が指定され、その情報がメー ル システムの情報と異なる場合、その情報は修正されます。allowupdates が TRUE で、その情報がメール システムの情報と異なる場合、ユーザ に権限があるときには、メール システムの情報が修正されます。更新 を許可するとアドレス情報が修正されるので注意してください。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次の例は、J Smith というユーザがメール システムに存在するかどうか を調べます。この名前と一致するユーザ(Jane Smith、Jerry Smith など) がいる場合、変数 mname にそのフルネームが設定されます。システム 上に一致する名前が複数ある場合、メール システムはユーザが名前を 選択できるようにダイアログボックスを表示します。ユーザが選択し た名前が mname に格納されます。この例では、アプリケーションがす でに mailSession オブジェクト mSes を作成し、メール システムとの セッションを開始しているものとします。 mailReturnCode mRet string mname mname = "Smith, J" mRet = mSes.mailResolveRecipient(mname) IF mRet = mailReturnSuccess! THEN MessageBox(" アドレス ", mname + " が見つかりました。") ELSEIF mRet = mailReturnFailure! THEN MessageBox(" アドレス ", "J Smith は見つかりませんでした。 ") ELSE MessageBox(" アドレス ", " 要求が評価されませんでした。") END IF 次の例では、sle_to はメール受信者のフルネームまたは名前の一部を格 納しています。名前を mailRecipient オブジェクトに格納し、 mailResolveRecipient 関数を呼び出して名前を検索し、アドレスの詳細 を取得します。名前が検出された場合、mailRecipientDetails 関数はそ の情報を表示し、フルネームが sle_to に格納されます。この例では、ア プリケーションがすでに mailSession オブジェクト mSes を作成し、メー ル システムとのセッションを開始しているものとします。 mailReturnCode mRet mailRecipient mRecip mRecip.Name = sle_to.Text PowerScript リファレンス ボリューム 2 773 mailSaveMessage mRet = mSes.mailResolveRecipient(mRecip) IF mRet <> mailReturnSuccess! THEN MessageBox(" アドレス ", & sle_to.Text + " は見つかりませんでした ") ELSE mRet = mSes.mailRecipientDetails(mRecipient) sle_to.Text = mRecipient.Name END IF 関連項目 mailAddress mailLogoff mailLogon mailRecipientDetails mailSend mailSaveMessage 機能 ユーザの受信トレイに、新しいメッセージを作成したり、既存のメッ セージを置き換えたりします。 対象 mailSession オブジェクト 構文 mailsession.mailSaveMessage ( messageid, mailmessage ) 引数 mailsession messageid mailmessage 戻り値 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメール メッセージを保存します。 String 型の値。置換されるメッセージ ID を指定します。新 しいメッセージを保存する場合、空の文字列("")を指定 します。 保存するメッセージの情報を格納する mailMessage オブ ジェクト構造体を指定します。 mailReturnCode カタログ データ型の値です。以下のいずれかの値を返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnInvalidMessage! mailReturnUserAbort! mailReturnDiskFull! 引数のいずれかの値が NULL の場合、NULL を返します。 774 PowerBuilder 第 10 章 PowerScript の関数 解説 既存のメッセージを置き換える場合でも、メッセージを保存する前に そのメッセージにアドレスを付加する必要があります。後でほかの ユーザに送信するために、メッセージにアドレスを付けておくことが できます。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次の例は、現行のユーザの受信トレイに新しいメッセージを作成しま す。そのメッセージは、後で Jerry Smith に送られます。この例では、 アプリケーションがすでに mailSession オブジェクト mSes を作成し、 メール システムとのセッションを開始しているものとします。 mailRecipient recip mailMessage msg mailReturnCode mRet recip.Name = "Smith, Jerry" mRet = mSes.mailResolveRecipient(recip) IF mRet <> mailReturnSuccess! THEN MessageBox(" 新しいメッセージの保存 ", & " アドレスが適切ではありません。") RETURN END IF msg.NoteText = mle_note.Text msg.Subject = sle_subject.Text msg.Recipient[1] = recip mRet = mSes.mailSaveMessage("", msg) IF mRet <> mailReturnSuccess! THEN MessageBox(" 新しいメッセージの保存 ", & " 何らかの理由で失敗しました。") END IF 次の例は、Jane Smith というエンド ユーザの受信トレイの最新のメッ セージを置き換えます。mailSession オブジェクト mSe の MessageID 配 列からメッセージ ID を取得します。メッセージの件名を変更し、その ユーザのアドレスを再設定して保存します。この例では、アプリケー ションがすでに mailSession オブジェクト mSes を作成し、メール シス テムとのセッションを開始しているものとします。 mailRecipient recip mailMessage msg mailReturnCode mRet string s_ID PowerScript リファレンス ボリューム 2 775 mailSaveMessage mRet = mSes.mailGetMessages() IF mRet <> mailReturnSuccess! THEN MessageBox(" メッセージはありません ", " 受信トレイは空です。 ") RETURN END IF s_ID = mSes.MessageID[UpperBound(mSes.MessageID)] mRet = mSes.mailReadMessage(s, msg, & mailEntireMessage!, FALSE ) IF mRet <> mailReturnSuccess! THEN MessageBox(" メッセージ ", " メッセージを読むことができませ ん。") RETURN END IF msg.Subject = msg.Subject + " Test" recip.Name = "Smith, Jane" mRet = mSes.mailResolveRecipient( recip ) msg.Recipient[1] = recip mRet = mSes.mailSaveMessage(s_ID, msg) IF mRet <> mailReturnSuccess! THEN MessageBox(" 古いメッセージを保存します ", " 何らかの理由で 失敗しました。") END IF PowerBuilder のサンプルにあるメール アプリケーションを参照してく ださい。 関連項目 776 mailReadMessage mailResolveRecipient PowerBuilder 第 10 章 PowerScript の関数 mailSend 機能 メール メッセージを送信します。メッセージ情報がない場合、メール システムはメッセージを送る前に、情報を入力するダイアログボック スを表示してメッセージ情報を要求します。 対象 mailSession オブジェクト 構文 mailsession.mailSend ( { mailmessage } ) 引数 mailsession mailmessage (オプション) 戻り値 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメッセージを送ります。 mailMessage オブジェクト構造体を指定します。 mailReturnCode カタログ データ型の値です。以下のいずれかの値を返 します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnLoginFailure! mailReturnUserAbort! mailReturnDiskFull! mailReturnTooManySessions! mailReturnTooManyFiles! mailReturnTooManyRecipients! mailReturnUnknownRecipient! mailReturnAttachmentNotFound! 引数のいずれかの値が NULL の場合、NULL を返します。 解説 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 mailSend の場合、mailMessage オブジェクトの Recipient プロパティと して mailOriginator! は無効な値です。有効な値は、mailto!、mailcc!、お よび mailbcc! です。送信者がメッセージのコピーを受け取る場合には、 mailcc! を使用します。 例 次の例は、mailSession オブジェクトを作成し、メール メッセージを送 信した後でメール システムとのセッションを終了して mailSession オ ブジェクトを破棄します。 mailSession mSes mailReturnCode mRet PowerScript リファレンス ボリューム 2 777 mailSend mailMessage mMsg // mailSession オブジェクトを作成します。 mSes = create mailSession // メール システムとのセッションを開始します。 mRet = mSes.mailLogon(mailNewSession!) IF mRet <> mailReturnSuccess! THEN MessageBox(" メール ", ' セッションを開始できません。') RETURN END IF // mailMessage 構造体の要素に値を割り当てます。 mMsg.Subject = mle_subject.Text mMsg.NoteText = 'Luncheon at 12:15' mMsg.Recipient[1].name = 'Smith, John' mMsg.Recipient[2].name = 'Shaw, Sue' // メールを送信します。 mRet = mSes.mailSend(mMsg) IF mRet <> mailReturnSuccess! THEN MessageBox(" メール ", ' メールが送信されませんでした。') RETURN END IF mSes.mailLogoff() DESTROY mSes PowerBuilder のサンプルにあるメール アプリケーションを参照してく ださい。 関連項目 778 mailReadMessage mailResolveRecipient PowerBuilder 第 10 章 PowerScript の関数 Match 機能 文字列の中に、指定された文字パターンがあるかどうかを調べます。 構文 Match ( string, textpattern ) 引数 string textpattern 説明 文字列を指定します。この文字列の中に、指定された文字 パターンがあるかどうかを調べます。 String 型の値。文字列の中にあるかどうかを調べるテキス ト パターンを指定します。 戻り値 Boolean 型。 string の中に textpattern がある場合は TRUE を返し、 textpattern がない場合は FALSE を返します。引数が指定されていない場合、また は textpattern が不正な文字列の場合にも、FALSE を返します。引数の いずれかの値が NULL の場合、NULL を返します。 解説 この関数を使用すると、文字列に一般的な文字パターンが含まれてい るかどうかを調べることができます。特定の位置に文字列があるかど うかを調べるには、Pos 関数を使用してください。 textpattern に指定するテキスト パターンは、通常の式に似ています。テ キスト パターンは、特殊な意味を持つメタ文字と、実際に照合される 通常の文字を組み合わせて指定します。照合される文字列の先頭また は末尾に、特殊な意味を持つ 1 つ以上の文字を指定してください。照 合される文字列には、特殊な意味を持つ文字以外のすべての文字を指 定できます。 テキスト パターンは、照合文字列で特殊な意味を持つメタ文字と、実 際に照合される非メタ文字で構成されます。次の表は、メタ文字の意 味と使用例を示しています。 表 10-6: Match 関数で使用されるメタ文字 メタ文字 キャレット(^) ドル記号($) ピリオド(.) PowerScript リファレンス ボリューム 2 意味 文字列の先頭文字と照 合します。 文字列の末尾の文字と 照合します。 任意の文字と照合しま す。 使用例 ^C は、C で始まる文字列と 照合します。 s$ は、s で終わる文字列と照 合します。 . . . は、連続する 3 文字と照 合します。 779 Match メタ文字 円記号(\) 文字集合(角カッ コ([ ]))で囲まれ ている文字のグ ループ) 文字集合の補集合 (角カッコ([ ])内 の最初の文字が キャレット(^)の 場合) 意味 円記号(\)の後に指 定されているメタ文字 の特殊な意味を取り消 します。つまり、円記 号(\)の後に指定さ れている文字と照合し ます。 角カッコ([ ])内の各 文字と照合します。 キャレット(^)の後 に指定されている文字 グループ以外のすべて の文字と照合します。 使用例 \\ は、\ と照合します。 [AEIOU] は A、E、I、O、U と照合します。 ハイフン(-)を使用すると、 文字集合に含まれている文字 の範囲を短縮して表すことが できます。たとえば、[A-Zaz] はすべての英字と照合しま す。 [^0-9] は、数字以外のすべて の文字と照合し、[^A-Za-z] は、英字以外のすべての文字 と照合します。 アスタリスク(*)、プラス記号(+)、疑問符(?)の各メタ文字は、独 立した演算子です。この演算子は、通常の式で反復を指定するときに 使用します。 表 10-7: Match 関数でメタ文字として使用される独立した演算子 780 メタ文字 *(アスタリスク) 意味 0 回以上の反復を表し ます。 +(プラス記号) 1 回以上の反復を表し ます。 ? (疑問符) 0 回または 1 回の反復 を表します。 使用例 A* は、A がまったくない文 字列か、A が 1 つ以上ある文 字列(A、AA、AAA など) と照合します。 A+ は、A が 1 つ以上ある文 字列(A、AAA など)と照合 します。 A? は、空の文字列("")か、 文字 A と照合します。 PowerBuilder 第 10 章 PowerScript の関数 テキスト パターンの例 次の表は、さまざまなテキスト パターンと、各 パターンに一致するテキストの例を示しています。 表 10-8: テキスト パターンの例 テキスト パターン AB B* AB*C AB+C ABB*C ^AB AB?C ^[ABC] [^ABC] ^[^abc] ^[^a-z]$ [A-Z]+ ^[0-9]+$ ^[0-9][0-9][0-9]$ ^([0-9][0-9][0-9])$ 例 照合される文字列の例 AB を含む文字列。たとえば、ABA、DEABC、 graphAB_one などです。 B がまったくない文字列か、B が 1 つ以上ある文字列。 たとえば、AC、B、BB、BBB、ABBBC などです。 AC、ABC、ABBC などのパターンを含む文字列(B が まったくない文字列か、B が 1 つ以上ある文字列) ABC、ABBC、ABBBC などのパターンを含む文字列 (B が 1 つ以上ある文字列) ABC、ABBC、または ABBBC などのパターンを含む文 字列(1 つの B と 0 個以上の B を含む文字列) 先頭が AB の文字列 AC または ABC を含む文字列(B がまったくない文字 列か、B が 1 つある文字列) A、B、C のいずれかの文字で始まる文字列 A、B、C 以外の任意の文字を含む文字列 a、b、c 以外の文字で始まる文字列 小文字以外の 1 文字の文字列。^ と $ は、文字列の先頭 と末尾の文字を示しています。 1 文字以上の英字の大文字を含む文字列 数字だけの文字列 3 桁の数字の文字列 3 桁の数字を丸カッコ(( ))で囲んだ文字列 次のステートメントは、sle_ID 内のテキストが 1 文字以上の大文字の英 字または小文字の英字から始まる場合に TRUE を返します。パターン の先頭の ^ は、^ の後に指定した文字が文字列の先頭文字であること を示します。 Match(sle_ID.Text, "^[A-Za-z]") 次のステートメントは、sle_ID 内のテキストに数字が含まれている場合 に FALSE を返します。角カッコ内の ^ は、^ の後に指定した文字を除 外することを示します。 Match(sle_ID.Text, "[^0-9]") 次のステートメントは、sle_ID 内のテキストに 1 文字の大文字の英字が ある場合に TRUE を返します。 Match(sle_ID.Text, "[A-Z]") PowerScript リファレンス ボリューム 2 781 MatchW 次のステートメントは、sle_ID 内のテキストに 1 文字以上の大文字の英 字がある場合に TRUE を返します。+ は、指定したパターンが 1 つ以 上あることを示します。 Match(sle_ID.Text, "[A-Z]+") 次のステートメントは、sle_ID 内のテキストに 2 桁の数字と 1 文字の英 字以外の文字が含まれている場合に FALSE を返します。^ と $ は、文 字列の先頭と末尾を示します。 Match(sle_ID.Text, "^[0-9][0-9][A-Za-z]$") 関連項目 Pos 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Match メソッド MatchW 機能 文字列の中に、指定された文字パターンがあるかどうかを調べます。 この関数は、将来サポートされなくなります。動作は、すべての環境 で Match 関数と同じです。 構文 MatchW ( string, textpattern ) Max 機能 2 つの数値を比較して、より大きな数値を返します。 構文 Max ( x, y ) 引数 x y 説明 y と比較する数値を指定します。 x と比較する数値を指定します。 戻り値 x または y のデータ型のうち、精度の高い方のデータ型で返します。引 数のいずれかの値が NULL の場合、NULL を返します。 解説 比較する値のどちらかが NULL 値の場合、NULL を返します。 例 次のステートメントは、7 を返します。 Max(4,7) 782 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは、-4 を返します。 Max(- 4, - 7) 次の例は、小数点以下の桁を含む値 8.2 を返します。 Max(8.2, 4) 関連項目 Min 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Max メソッド MemberDelete 機能 ストレージの OLE オブジェクトからメンバーを削除します。メンバー であるのは、ほかの OLE オブジェクト(サブストレージ)やストリー ムです。 対象 OLEStorage オブジェクト 構文 olestorage.MemberDelete ( membername ) 引数 olestorage membername 戻り値 説明 削除するメンバー(サブストレージまたはストリーム)を 格納する OLEStorage 型のオブジェクトの変数名を指定し ます。 OLEStorage オブジェクトから削除するメンバーの名前を 表す文字列を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -4 -5 -9 ストレージが開かれていません。 メンバーがありません。 リソースが不足しているか、開いているファイルが多すぎます。 アクセスが拒否されました。 ストレージの状態が無効です。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、ストレージ オブジェクトを作成し、ファイルの中の OLE オ ブジェクトを開きます。wordobj がそのオブジェクト内のサブストレー ジであるかどうかを確認します。wordobj がサブストレージである場 合、wordobj を削除し、OLE オブジェクトをファイルに書き込みます。 PowerScript リファレンス ボリューム 2 783 MemberExists boolean lb_memexists integer result stg_stuff = CREATE OLEStorage stg_stuff.Open("c:\ole2\mystuff.ole") stg_stuff.MemberExists("wordobj", lb_memexists) IF lb_memexists THEN result = stg_stuff.MemberDelete("wordobj") IF result = 0 THEN stg_stuff.Save( ) END IF 関連項目 MemberExists MemberRename Open MemberExists 機能 指定されたメンバーがストレージの OLE オブジェクトに存在するか どうかを確認します。メンバーであるのは、ほかの OLE オブジェクト (サブストレージ)やストリームです。 対象 OLEStorage オブジェクト 構文 olestorage.MemberExists ( membername, exists ) 引数 olestorage membername exists 戻り値 説明 OLEStorage 型のオブジェクト変数の名前を指定します。 メンバー名を表す文字列を指定します。OLE オブジェクト に存在するかどうかを確認します。 Boolean 型の変数を指定します。メンバーが存在するかど うかを表す値が格納されます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 ストレージが開かれていません。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 784 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、ストレージ オブジェクトを作成し、ファイルの中の OLE オ ブジェクトを開きます。wordobj がそのオブジェクト内のサブストレー ジであるかどうかを確認します。wordobj がサブストレージである場 合、wordobj を削除し、OLE オブジェクトをファイルに書き込みます。 boolean lb_memexists integer result stg_stuff = CREATE OLEStorage stg_stuff.Open("c:\ole2\mystuff.ole") stg_stuff.MemberExists("wordobj", lb_memexists) IF lb_memexists THEN result = stg_stuff.MemberDelete("wordobj") IF result = 0 THEN stg_stuff.Save( ) END IF 関連項目 MemberDelete MemberRename Open MemberRename 機能 OLE ストレージのメンバーの名前を変更します。メンバーであるのは、 ほかの OLE オブジェクト(サブストレージ)やストリームです。 対象 OLEStorage オブジェクト 構文 olestorage.MemberRename ( membername, newname ) 引数 olestorage membername newname PowerScript リファレンス ボリューム 2 説明 メンバー(サブストレージまたはストリーム)を含んでい る OLEStorage 型のオブジェクト変数名を指定します。そ の中のメンバーの名前を変更します。 名前を変更するメンバーの名前を表す文字列を指定しま す。 メンバーに割り当てる新しい名前を表す文字列を指定し ます。 785 MemberRename 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -4 -5 -6 -9 ストレージが開かれていません。 メンバーがありません。 リソースが不足しているか、開いているファイルが多すぎます。 アクセスが拒否されました。 ストレージの状態が無効です。 同じ名前が存在します。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、ストレージ オブジェクトを作成し、ファイルの中の OLE オ ブジェクトを開きます。wordobj がそのオブジェクト内のサブストレー ジであるかどうかを確認します。サブストレージである場合、wordobj の名前を memo に変更し、OLE オブジェクトをファイルに書き込みま す。 boolean lb_memexists integer result stg_stuff = CREATE OLEStorage stg_stuff.Open("c:\ole2\mystuff.ole") stg_stuff.MemberExists("wordobj", lb_memexists) IF lb_memexists THEN result = & stg_stuff.MemberRename("wordobj", "memo") IF result = 0 THEN stg_stuff.Save( ) END IF 関連項目 786 MemberDelete MemberExists Open PowerBuilder 第 10 章 PowerScript の関数 MessageBox 機能 指定されたタイトル、テキスト、アイコン、およびボタンが表示され ているシステムのメッセージ ボックスを表示します。 構文 MessageBox ( title, text {, icon {, button {, default } } } ) 引数 title text icon (オプション) 説明 メッセージ ボックスのタイトル バーに表示するタイトル を表す文字列を指定します。 メッセージ ボックスに表示するテキストとして、数値デー タ型、文字列、および Boolean 型の値を指定することがで きます。 メッセージ ボックスの左側に表示するアイコンを示すカ タログ データ型の値を指定します。値は以下のとおりで す。 • Information!(デフォルト) • StopSign! • Exclamation! • Question! • None! button (オプション) カタログ データ型の値。メッセージ ボックスの下部に表 示するコマンドボタン群を指定します。カタログ データ型 にリストされる順番に、ボタンに番号が付けられます。値 は以下のとおりです。 • OK! −(デフォルト)[OK]ボタン • OKCancel! −[OK]ボタンと[キャンセル]ボタン • YesNo! −[はい]ボタンと[いいえ]ボタン • YesNoCancel! −[はい]、 [いいえ]、 [キャンセル]の各 ボタン • RetryCancel! −[再試行]ボタンと[キャンセル]ボタン default (オプション) 戻り値 • AbortRetryIgnore! −[中止] 、 [再試行]、 [無視]の各ボ タン デフォルト ボタンとして使用するボタンの番号を指定し ます。標準の設定は 1 です。表示されるボタン数よりも多 い数が指定された場合、標準の設定が使用されます。 Integer 型。正常に終了した場合、選択されているボタンの番号(1、2 または 3)を返します。エラーが発生した場合、-1 を返します。引数 のいずれかの値が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 787 MessageBox 解説 title または text 内の文字列が NULL 値の場合、メッセージ ボックスは 表示されません。特に指定しない限り、エンド ユーザがボタンをク リックするか、〔Enter〕を押すと、スクリプトの実行は続行されます。 これは、ボタンが 1 個しかない場合には有効な機能です。メッセージ ボックスに複数のボタンがある場合、エンド ユーザが選択したボタン に対応した処理をスクリプトに記述します。 現行のアプリケーションでの操作を続行するには、メッセージ ボック スへの何らかの応答が必要です。ただし、メッセージ ボックスに応答 せずに、ほかの Windows アプリケーションに切り替えることもできま す。 RightToLeft 対応(右から左に文字を書く言語を使用する国に対応)の PowerBuilder および Windows を実行している場合に、アラビア語また はヘブライ語を使用してボタン作成とメッセージ表示を行うときは、 アプリケーション オブジェクトの RightToLeft プロパティを TRUE に します。メッセージは右から左方向へ表示されるようになります。た だし、PowerBuilder のローカライズ版を使っていない場合、ボタンに 表示されるテキストは、英語のままです。 メッセージ ボックスが表示されない場合 コントロールは一定の操作を行っているときにマウスを独占してしま います。たとえば、コマンドボタン コントロールの場合はクリックの 操作を行っているとき、エディット コントロールの場合はテキストを 選択しているとき、スクロールバー コントロールの場合はスクロール の操作を行っているときに、マウスを独占します。マウスが独占され ている間に MessageBox 関数を呼び出すと、Windows は不安定になり ます。 MessageBox 関数はフォーカスを横取りするので、フォーカスを移動し ている最中(LoseFocus イベントの間など)は、MessageBox 関数を使 用しないでください。そのかわりに、ウィンドウのタイトルまたはマ ルチライン エディット コントロールにメッセージを表示することが できます。 また、PrintOpen 関数の後に MessageBox 関数を呼び出すと動作がおかし くなります。詳細については、PrintOpen 関数を参照してください。 例 次の例は、タイトル Greeting、テキスト Hello User、アイコン(Information!) 、 およびデフォルト ボタン([OK]ボタン)を表示したメッセージ ボッ クスを開きます。 MessageBox("Greeting", "Hello User") 788 PowerBuilder 第 10 章 PowerScript の関数 次の例は、タイトル Result 、関数の実行結果、Exclamation アイコン、 [OK]ボタン、およびデフォルト ボタン([キャンセル]ボタン)を 表示したメッセージ ボックスを開きます。 integer Net long Distance = 3.457 Net = MessageBox("Result", Abs(Distance), & Exclamation!, OKCancel!, 2) IF Net = 1 THEN ... // [OK]ボタンが選択された場合の処理。 ELSE ... // [キャンセル]ボタンが選択された場合の処理。 END IF Mid 機能 文字列の中の指定された文字位置から、指定された文字数分の文字列 を取り出します。 構文 Mid ( string, start {, length } ) 引数 string start length (オプション) 戻り値 説明 取得する文字列を含む文字列を指定します。 Long 型の値。取り出す文字列の最初の文字の位置を指定 します(文字列の先頭文字の位置は、1 になります)。 Long 型の値。取り出す文字数を指定します。length を省略 した場合、または length が start に指定された位置から末 尾までの文字数よりも大きい場合には、start に指定された 位置から末尾までの文字列を返します。 String 型。string の start に指定された文字位置から、length に指定され た文字数分の文字列を返します。start に指定された値が string に指定 された文字数よりも大きい場合、空の文字列("")を返します。また、 length に指定された値が start に指定された文字位置から末尾までの文 字数よりも大きい場合、start に指定された位置から末尾までの文字列 を返します。ただし、戻り値の文字数を length に指定された値と同じ にするために、スペースを追加することはありません。引数のいずれ かの値が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 789 Mid 解説 取り出す文字列の位置を検索する場合は、Pos 関数を使用します。Pos 関数の戻り値を、Mid 関数の start 引数の値に使用します。文字列の左 端または右端から特定の文字数の文字列を取り出すには、Left 関数また は Right 関数を使用します。 例 次の例は、"RUTH" を返します。 Mid("BABE RUTH", 5, 5) 次の例は、空の文字列("")を返します。 Mid("BABE RUTH", 40, 5) 次の例は、"BE RUTH" を返します。 Mid("BABE RUTH", 3) 次の例は、シングルライン エディット コントロール sle_address 内の 文字列(40 文字目以降)を ls_address_extra に格納します。 string ls_address_extra ls_address_extra = Mid(sle_address.Text, 40) 次の例では、ユーザ定義関数 str_to_int_array は、文字列を整数配列に変 換します。配列の各整数は、2 文字を表します。この関数の引数は、値 によって渡される文字列 str と、参照によって渡される整数配列 iarr で す。配列の長さは、関数が呼び出される前に初期化されます。整数配 列が文字列よりも長い場合、スクリプトはスペースを格納します。文 字列が整数配列よりも長い場合、スクリプトは余分な文字を無視しま す。 関数を呼び出すには、次のように記述します。 int rtn iarr[20]=0// 必要な場合は、配列を初期化します。 rtn = str_to_int_array("This is a test.", iarr) str_to_int_array 関数は、次のとおりです。 long stringlen, arraylen, i string char1, char2 // 配列と文字列の長さを取得します。 arraylen = UpperBound(iarr) stringlen = Len(str) // 文字列を整数配列に変換するまでループします。 FOR i = 1 to arraylen IF (i*2 <= stringlen) THEN // str から 2 文字を取得します。 char1 = Mid(str, i*2, 1) 790 PowerBuilder 第 10 章 PowerScript の関数 char2 = Mid(str, i*2 - 1, 1) ELSEIF (i*2 - 1 <= stringlen) THEN // 最後の文字を取得します。 char1 = " " char2 = Mid(str, i*2 - 1, 1) ELSE // str の最後を超える場合は、スペースを使用します。 char1 = " " char2 = " " END IF iarr[i] = Asc(char1) * 256 + Asc(char2) NEXT RETURN 1 整数の配列を文字列に変換する方法については、Asc 関数の例を参照し てください。 関連項目 AscA Left Pos Right UpperBound 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Mid メソッド MidA 機能 文字列を DBCS に一時的に変換し、文字列の指定された位置から、指 定した数のバイトを返します。 構文 MidA (string, start, {length}) 引数 string start length (オプション) PowerScript リファレンス ボリューム 2 説明 検索する文字列を指定します。 Long 型の値。取り出す文字列の最初のバイト位置を指定 します(文字列の先頭バイトの位置は、1 になります)。 Long 型の値。取り出すバイト数を指定します。length を省 略した場合、または length が start に指定された位置から 末尾までのバイト数よりも大きい場合には、start に指定さ れた位置から末尾までのバイトを返します。 791 MidC 戻り値 String 型。ソース文字列で、start 引数で指定されたバイト位置から、取 り出されるバイト数分の文字列を返します。start に指定された値が string のバイト数よりも大きい場合、空の文字列("")を返します。ま た、length に指定された値が start に指定された文字位置から末尾まで のバイト数よりも大きい場合、start に指定された位置から末尾までの バイトを返します。ただし、戻り値の文字数を length に指定された値 と同じにするために、スペースを追加することはありません。引数の いずれかの値が NULL の場合、NULL を返します。 解説 MidA 関数は、PowerBuilder 9 の DBCS 環境 における Mid 関数の機能に 代わるものです。 MidC 機能 文字列の指定されたバイト位置から、指定されたバイト数の文字列を 取り出して返します。この関数は、将来サポートされなくなります。 構文 MidC ( string, start {, length } ) MidW 機能 文字列の中の指定された文字位置から、指定された文字数分の文字列 を取り出します。この関数は、将来サポートされなくなります。動作 は、すべての環境で Mid 関数と同じです。 構文 MidW ( string, start {, length } ) 792 PowerBuilder 第 10 章 PowerScript の関数 Min 機能 2 つの数値を比較して、より小さな数値を返します。 構文 Min ( x, y ) 引数 x y 説明 y と比較する数値を指定します。 x と比較する数値を指定します。 戻り値 x または y のデータ型のうち、精度の高い方のデータ型で返します。引 数のいずれかの値が NULL の場合、NULL を返します。 解説 比較する値のどちらかが NULL 値の場合、NULL を返します。 例 次のステートメントは、4 を返します。 Min(4,7) 次のステートメントは、-7 を返します。 Min(- 4, - 7) 次の例は、小数点以下の桁を含む値 3.0 を返します。 Min(9.2,3.0) 関連項目 Max 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Min メソッド Minute 機能 指定された Time 型の値から、分の部分を取り出します。 構文 Minute ( time ) 引数 time 説明 Time 型。時刻を表す値を指定します。指定された値から、 分の部分を取り出します。 戻り値 Integer 型。time で指定された値の分の部分に対応する整数(00 ∼ 59) を返します。time が NULL の場合、NULL を返します。 例 次のステートメントは、1 を返します。 Minute(19:01:31) PowerScript リファレンス ボリューム 2 793 Mod 関連項目 Hour Second 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Minute メソッド Mod 機能 除算の余り(剰余)を取得します。 構文 Mod ( x, y ) 引数 x y 説明 y で割られる数値(被除数)を指定します。 x を割る数値(除数)を指定します。 戻り値 x または y のデータ型のうち、精度の高い方のデータ型で返します。引 数のいずれかの値が NULL の場合、NULL を返します。 例 次のステートメントは、2 を返します。 Mod(20, 6) 次のステートメントは、1.5 を返します。 Mod(25.5, 4) 次のステートメントは、2.5 を返します。 Mod(25, 4.5) 関連項目 794 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Mod メソッド PowerBuilder 第 10 章 PowerScript の関数 ModifyData グラフのデータ系列におけるデータ ポイントの値を変更します。グラ フ提示様式によって 2 つの構文があります。 目的 散布図以外のすべてのグラフを変更する 散布図を変更する 使用する構文 構文 1 構文 2 構文 1 散布図以外のすべてのグラフを変更する 機能 グラフのデータ系列におけるデータ ポイントの値を変更します。位置 または項目を使用して、変更するデータ ポイントを指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト上のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト上のグラフでは、データウィンドウか ら直接データが取得されるからです。 構文 controlname.ModifyData (seriesnumber, datapoint, datavalue {, categoryvalue } ) 引数 controlname seriesnumber datapoint datavalue categoryvalue (オプション) 解説 説明 データを変更するグラフ コントロールの名前を指定します。 データを変更するデータ系列の番号を指定します。 データを変更するデータ ポイントの番号を指定します。 データ ポイントの新しい値を指定します。datavalue の データ型は、グラフの値軸のデータ型と同じでなければな りません。 datavalue の項目を指定します。categoryvalue のデータ型 は、グラフの項目軸のデータ型と同じでなければなりませ ん。 categoryvalue を指定すると、ModifyData 関数は、指定された位置の項目 の値とデータ ポイントの値を変更します。指定した名前と同じ名前が ほかの位置にすでにある場合、その位置にあるデータが変更されます。 datapoint に指定した位置は無視され、InsertData 関数と同じ処理を行い ます。 位置を 0 に指定すると、ModifyData 関数は常に InsertData 関数と同じ処 理 を 行 い ま す。InsertData 関 数 の「別 の 記 述 方 法」で 解 説 し て い る AddData 関数、InsertData 関数、および ModifyData 関数の比較を参照し てください。 PowerScript リファレンス ボリューム 2 795 ModifyData 例 次のステートメントは、グラフ gr_product_data のデータ系列 Costs の Apr に対するデータを変更します。 integer SeriesNbr, CategoryNbr // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") CategoryNbr = gr_product_data.FindCategory("Apr") gr_product_data.ModifyData(SeriesNbr, & CategoryNbr, 1250) 関連項目 AddData FindCategory FindSeries InsertCategory InsertData 構文 2 散布図を変更する 機能 グラフのデータ系列におけるデータ ポイントの値を変更します。位置 を使用してデータ ポイントを指定し、x 座標と y 座標の値を与えます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト上のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト上のグラフでは、データウィンドウか ら直接データが取得されるからです。 構文 controlname.ModifyData ( seriesnumber, datapoint, xvalue, yvalue ) 引数 controlname seriesnumber datapoint xvalue yvalue 説明 データ系列のデータを変更する散布図の名前を指定しま す。 データを変更するデータ系列を識別する番号を指定しま す。 データを変更するデータ ポイントの番号を指定します。 変更するデータの新しい x 座標の値を指定します。 変更するデータの新しい y 座標の値を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 散布図には、項目がありません。データを変更するデータ系列の位置 を指定し、データに x 座標と y 座標の値を与えます。 例 次のステートメントは、散布図 gr_product_data のデータ系列 Test One のデータ ポイント 9 を変更します。 796 PowerBuilder 第 10 章 PowerScript の関数 integer SeriesNbr SeriesNbr = gr_product.FindSeries("Test One") gr_product_data.ModifyData(SeriesNbr, & 9, 4.55, 86.38) 関連項目 AddData FindSeries Month 機能 指定された日付の値から、月の値の部分を取得します。 構文 Month ( date ) 引数 date 説明 Date 型の値を指定します。この値から月の値の部分を取得 します。 戻り値 Integer 型。date に指定された値の月の部分に対応する整数(1 ∼ 12) を返します。date が NULL の場合、NULL を返します。 例 次の例は、1 を返します。 Month(2004-01-31) 次の例は、シングルライン エディット コントロール sle_start_data に入 力された日付の値から取得した月の部分を start_month に格納します。 integer start_month start_month = Month(date(sle_start_date.Text)) 関連項目 Day Date Year 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Month メソッド PowerScript リファレンス ボリューム 2 797 Move Move 機能 オブジェクトまたはコントロールを親ウィンドウと相対的な位置に移 動します。または、ウィンドウ オブジェクトを画面と相対的な位置に 移動します。 対象 すべてのオブジェクトとコントロール 構文 objectname.Move ( x, y ) 引数 objectname x y 戻り値 説明 新しい位置に移動するオブジェクトまたはコントロール の名前を指定します。 新しい位置の X 座標(PowerBuilder 単位系)を指定します。 新しい位置の Y 座標(PowerBuilder 単位系)を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合、 または objectname が最大化されたウィンドウの場合には、-1 を返しま す。引数のいずれかの値が NULL の場合、NULL を返します。 解説 x と y は、オブジェクトまたはコントロールの左上隅の位置を示す新 しい座標です。 (ラジオボタン コントロール、楕円コントロールなど のように)オブジェクトまたはコントロールの形状が四角形ではない 場合、x と y は、その形状を囲む四角形の左上隅の位置を示します。直 線コントロールでは、x と y は BeginX と BeginY プロパティになりま す。. コントロール、描画オブジェクト、チャイルド ウィンドウの X と Y は、親ウィンドウの左上隅と相対的な位置関係を持ちます。それに対 して、メイン、ポップアップ、レスポンスの各ウィンドウの X と Y は、 表示画面の左上隅と相対的な位置関係を持ちます。 Move 関数は、最大化されたシートまたはウィンドウを移動することが できません。ウィンドウが最大化されている場合、Move 関数は -1 を返 します。 XY 座標を親ウィンドウのフレームや画面の外に設定できます。この ようにすると、オブジェクトやコントロールを効果的に非表示にする ことができます。 ピクチャ コントロールの画像を指定の位置に描画するには、Draw 関 数を使用します。 移動したオブジェクトの X と Y プロパティは変更されます。 798 PowerBuilder 第 10 章 PowerScript の関数 次に示す構文は、オブジェクトまたはコントロールの X と Y プロパティを直接設定します。Move 関数と同じ機能を実行します が、objectname で指定されたオブジェクトは 2 回再描画されます。最 初は新しい X の位置で、2 回目は新しい X と Y の位置で再描画されま す。 別の記述方法 objectname.X = x objectname.Y = y 次のステートメントは、gb_box1 を 2 回再描画します。 gb_box1.X = 150 gb_box1.Y = 200 次のステートメントは同様の機能を実行しますが、gb_box1 を 1 回だけ 再描画します。 gb_box1.Move(150,200) 例 次の例は、gb_box1 の X 座標と Y 座標をそれぞれ 150 と 200 に変更し て新しい位置に移動します。 gb_box1.Move(150, 200) 次の例は、ピクチャ コントロール p_Train2 をピクチャ p_Train1 の隣に 移動します。 P_Train2.Move(P_Train1.X + P_Train1.Width, & P_Train1.Y) PowerScript リファレンス ボリューム 2 799 MoveTab MoveTab 機能 タブ ページのインデックス番号を変更して、タブ コントロールのタブ ページを別の位置に移動します。 対象 タブ コントロール 構文 tabcontrolname.MoveTab (source, destination ) 引数 tabcontrolname source destination 説明 移動するタブを含むタブ コントロールの名前を指定しま す。 Integer 型の値。移動するタブのインデックスを指定します。 Integer 型の値。source に指定されたタブの移動先のイン デックスを指定します。移動先は、タブを移動する前の状 態のインデックスで指定してください。destination が 0 ま たはタブ数以上の場合、source に指定されたタブは最後に 移動します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 MoveTab 関数はまた、タブ コントロールの Control 配列(これは、タブ コントロール内のタブページの一覧を管理しているプロパティです) の中のタブ ページを並べ替えて、新しいタブ順序に一致させます。 例 次の例は、最初のタブを最後に移動します。 tab_1.MoveTab(1, 0) 次の例は、4 番目のタブを最初に移動します。 tab_1.MoveTab(4, 1) 次の例は、4 番目のタブを 3 番目に移動します。 tab_1.MoveTab(4, 3) 関連項目 800 OpenTab SelectTab PowerBuilder 第 10 章 PowerScript の関数 _Narrow 機能 CORBA オブジェクトの参照を、一般的なスーパータイプから特定の サブタイプに変換します。 この関数は、EAServer に接続している PowerBuilder クライアントに よって使用されます。 対象 CORBAObject オブジェクト 構文 corbaobject._Narrow ( newremoteobject, classname ) 引数 corbaobject newremoteobject classname 戻り値 説明 変換する CORBAObject 型のオブジェクトを指定します。 変換されたオブジェクトの参照を格納する変数を指 定します。 オブジェクト参照を限定するサブタイプのクラス名 を指定します。 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 解説 _Narrow 関数を使用すると、EAServer に接続している CORBA 互換の クライアントにおいて、プロキシ オブジェクトを限定することができ ます。そのほかの例については、関連項目リストの関数を参照してく ださい。 例 次の例は、CORBA オブジェクトの参照を、n_Bank_Account インタフェー スに限定します。 CORBAObject my_corbaobj n_Bank_Account my_account ... ... my_corbaobj._narrow(my_account,"Bank/n_Bank_Account") my_account.withdraw(100.0) 次の例で示すコンポーネントは、EAServer 内の個別のドメインに存在 する EJB コンポーネントです。この場合、SimpleBean コンポーネント のクラスは、../classes/adomain/asimplepackage サブディレクトリにあり ます。 CORBAObject my_corbaobj SimpleBean my_simplebean SimpleBeanHome my_simplebeanhome ... my_corbaobj._narrow(my_simplebeanhome, PowerScript リファレンス ボリューム 2 801 NextActivity "adomain/asimplepackage/SimpleBeanHome") 関連項目 _Is_A Resolve_Initial_References String_To_Object NextActivity 機能 トレース ファイルの次の動作を取得します。 対象 TraceFile オブジェクト 構文 instancename.NextActivity ( ) 引数 instancename 説明 TraceFile オブジェクトのインスタンス名を指定します。 戻り値 TraceActivityNode 解説 NextActivity 関数を使うと、トレース ファイル中の次の動作を読み込め ます。NextActivity 関数は、検索した次の動作を TraceActivityNode オブ ジェクトとして返します。次の動作が見つからない場合、またはファ イルがオープンされていない場合は、NextActivity 関数は無効なオブ ジェクトを返します。TraceFile オブジェクトの LastError プロパティを 参照すると、エラーの種類を確認できます。 この関数を使用する前に、Open 関数を使ってトレース ファイルを開い ておく必要があります。NextActivity 関数と Open 関数とともに、TraceFile オブジェクトが提供するほかのプロパティおよび関数を使うと、ト レース ファイルの内容に直接アクセスできます。たとえば、既存の解 析モデル化オブジェクトを使わずに、トレース データを独自の方法で 解析したい場合には、これらの関数を使用します。 例 次の例は、トレース ファイルを開き、次にユーザ定義関数 of_dumpactivitynode を使用して、各動作の種類に従って、動作情報をレ ポートします。 String ls_filename, ls_line TraceFile ltf_file TraceActivityNode ltan_node ls_filename = sle_filename.text ltf_file = CREATE TraceFile 802 PowerBuilder 第 10 章 PowerScript の関数 ltf_file.Open(ls_filename) ls_line = "CollectionTime = " + & String(ltf_file.CollectionTime) + "~r~n" + & "Num Activities = " + & String(ltf_file.NumberOfActivities) + "~r~n mle_output.text = ls_line ltan_node = ltf_file.NextActivity() DO WHILE IsValid(ltan_node) ls_line = of_dumpactivitynode(ltan_node) ltan_node = ltf_file.NextActivity() mle_output.text = ls_line LOOP 関連項目 Open Close Reset Now 機能 クライアント マシンのシステム時刻に基づいて、現在の時刻を取得し ます。 構文 Now ( ) 戻り値 Time 型。クライアント マシンのシステム時刻に基づいて、現在の時刻 を返します。 解説 Now 関数は、実際の時刻をシステムに設定されている時刻と比較する 場合や、システムに設定されている時刻を画面に表示する場合に使用 します。Timer 関数を使用すると、Timer イベントが起動し、Now 関数 は画面を再描画します。 例 次の例は、現在のシステム時刻を返します。 Now() 次の例は、スタティックテキスト コントロール st_time に現在の時刻を 表示します。Timer イベントが 60 秒ごとに起動するようにタイマーを 設定し、表示する現在時刻を最新の時刻に更新します。ウィンドウの Open イベントに対するスクリプトで最初の時刻を表示し、タイマーを 始動します。Timer イベントに対するスクリプトは、時刻を再表示しま す。 PowerScript リファレンス ボリューム 2 803 Now 次の例は、ウィンドウの Open イベントに対するスクリプトです。 st_time.Text = String(Now(), "hh:mm") Timer(60) 次の例は、Timer イベントに対するスクリプトで表示している時刻を更 新します。 st_time.Text = String(Now(), "hh:mm") 関連項目 804 Today 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Now メソッド PowerBuilder 第 10 章 PowerScript の関数 ObjectAtPointer 機能 エンド ユーザがクリックしたグラフ上の位置を検出します。ObjectAtPointer 関数は、ポインタが位置しているグラフの領域を取得し、関連付けら れるデータ系列とデータ ポイントの番号を指定された変数に格納し ます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.ObjectAtPointer ( { graphcontrol, } seriesnumber, datapoint ) 引数 controlname 説明 グラフ オブジェクトの名前を指定します。そのグラフ上の ポインタが示すオブジェクトを求めます。または、グラフ を含むデータウィンドウ コントロールを指定します。 graphcontrol (オプション)データウィンドウ コントロール上のグラフ (データウィン 名を表す文字列を指定します。そのグラフ上のポインタの ドウ コント 下のオブジェクトを求めます。 ロールのみ) seriesnumber Integer 型の変数を指定します。ポインタの下のデータ系列 の番号を格納します。 datapoint Integer 型の変数を指定します。ポインタの下のデータ ポ イントの番号を格納します。 戻り値 grObjectType 型。エンド ユーザがグラフ上の任意の箇所(空の領域を 含む)をクリックした場合、grObjectType カタログ データ型の値を返 します。グラフの外をクリックした場合、NULL を返します。 grObjectType カタログ データ型の値とその値が示すグラフの部分は、 次のとおりです。 • TypeCategory! − 項目のラベル • TypeCategoryAxis! − 項目軸、または項目ラベルと項目ラベルの間 • TypeCategoryLabel! − 項目軸のラベル • TypeData! − データ ポイントまたはほかのデータ マーカー • TypeGraph! − 指定された grObjectType カタログ データ型のグラフ コントロール上の任意の位置 • TypeLegend! − 凡例ボックス内(データ系列ラベル上は除く) • TypeSeries! − グラフの型が直線の場合にデータ系列のデータ ポイ ントに接続する直線、または凡例ボックスのデータ系列ラベル上 の直線 PowerScript リファレンス ボリューム 2 805 ObjectAtPointer 解説 • TypeSeriesAxis! − 3D グラフのデータ系列軸 • TypeSeriesLabel! − 3D グラフのデータ系列軸のラベル • TypeTitle! − グラフのタイトル • TypeValueAxis! − 数値軸(数値ラベル上も含む) • TypeValueLabel! − エンド ユーザがクリックした数値軸のラベル ObjectAtPointer 関数を使用すると、エンド ユーザがグラフのどこをク リックしているのかを知ることができます。関数は、エンド ユーザが 操作しているグラフの各部分を識別する grObjectType カタログ データ 型の値を返します。エンド ユーザがデータ系列、データ ポイント、お よび項目をクリックすると、ObjectAtPointer 関数は、指定された変数に データ系列および(または)データ ポイント番号を格納します。 エンド ユーザがデータ ポイント(または、線分や棒などのデータ マー ク)、または凡例ボックスのデータ系列ラベルをクリックすると、 ObjectAtPointer 関数は、指定された変数にデータ系列番号を格納しま す。エンド ユーザがデータ ポイントまたは項目の目盛ラベルをクリッ クすると、変数にデータ ポイント番号を格納します。 エンド ユーザが実際のデータ ポイントではなく、データ系列内をク リックした場合、ObjectAtPointer 関数は datapoint に 0 を格納します。項 目をクリックした場合、seriesnumber に 0 を格納します。グラフのその ほかの部分をクリックした場合、両方の変数に 0 を格納します。 ObjectPointer 関数を最初に呼び出す場合 ObjectAtPointer 関数は、グラフ コントロールに対する Clicked イベント のスクリプトの中で最初に呼び出すと効果的です。グラフ コントロー ルが使用可能であることを確認してください。特に指定しない限り、 グラフ コントロールは使用不可になっています。使用不可になってい ると、Clicked イベントは起動されません。 例 次のステートメントは、グラフ gr_product でクリックされた位置のデー タ系列番号とデータ ポイント番号を SeriesNbr および ItemNbr に格納 します。それらの変数は、オブジェクトの型が TypeSeries! の場合、デー タ系列名を取得し、TypeData! の場合はデータの値を取得します。 integer SeriesNbr, ItemNbr double data_value grObjectTypeobject_type string SeriesName object_type = & 806 PowerBuilder 第 10 章 PowerScript の関数 gr_product.ObjectAtPointer(SeriesNbr, ItemNbr) IF object_type = TypeSeries! THEN SeriesName = & gr_product.SeriesName(SeriesNbr) ELSEIF object_type = TypeData! THEN data_value = & gr_product.GetData(SeriesNbr, ItemNbr) END IF 次のステートメントは、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers でクリックされた位置のデータ系列番号と データ ポイント番号を、SeriesNbr および ItemNbr に格納します。 integer SeriesNbr, ItemNbr dw_equipment.ObjectAtPointer("gr_computers", & SeriesNbr, ItemNbr) 関連項目 AddData AddSeries Object_To_String 機能 オブジェクトを文字列の形式で返します。 この関数は、EAServer に接続している PowerBuilder クライアントに よって使用されます。 対象 JaguarORB オブジェクト 構文 jaguarorb.Object_To_String ( object ) 引数 jaguarorb object 説明 JaguarORB のインスタンスを指定します。 文字列に変換する CORBA オブジェクトを指定します。 CORBA オブジェクトの文字列表現は、オブジェクトのホ ストとなるサーバへの接続方法を記述した Interoperable Object Reference(IOR)です。EAServer は、標準形式の IOR(16 進でコード化されているもの)と URL 形式の IOR (人が判読できるもの)の両方をサポートしています。 戻り値 String 型。CORBA オブジェクトの文字列表現を返します。 PowerScript リファレンス ボリューム 2 807 OffsetPos 解説 Object_To_String 関数を使用すると、プロキシ オブジェクト参照をシリ アライズすることができます。オブジェクト参照をシリアライズする ことによって、オブジェクトの状態を保存し、クライアントが処理を 終了した後にも残るようにすることができます。 Object_To_String 関数は、通常の場合、オブジェクト参照のシリアライ ズを解除する String_To_Object 関数とともに使用します。 例 次の例は、Object_To_String 関数を使って、プロキシ オブジェクト参照 をシリアライズします。 Payroll payroll JaguarORB my_orb ... my_orb = CREATE JaguarORB my_orb.init("ORBRetryCount=3,ORBRetryDelay=1000") ... String payroll_ior = my_orb.Object_To_String(payroll) 関連項目 Init String_To_Object OffsetPos 機能 プログレスバー コントロールのオフセットを設定します。 対象 プログレスバー コントロール 構文 control.OffsetPos (increment ) 引数 control increment 説明 プログレスバー コントロールの名前を指定します。 Integer 型。プログレスバー コントロールの開始位置に追 加される値を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次のステートメントは、垂直プログレスバーの開始位置を 10 だけオフ セットします。 HProgressBar.OffsetPos ( 10 ) 808 PowerBuilder 第 10 章 PowerScript の関数 関連項目 SelectionRange SetRange StepIt Open ウィンドウ、OLE オブジェクト、またはトレース ファイルを開きます。 ウィンドウを開く場合 Open はウィンドウを表示し、すべてのプロパ ティとコントロールをスクリプトで利用できるようにします。 目的 使用する構文 特定のウィンドウのデータ型のインスタンスを開く 構文 1 スクリプトの実行時にアプリケーションがウィンドウの 構文 2 データ型を選択できるようにする Open はファイルまたはストレージに含 まれる OLE オブジェクトを OLE コントロールまたはストレージ オブ ジェクト変数にロードします。これによって、ソースとターゲットが 保存作業のために接続されます。 OLE オブジェクトを開く場合 目的 ファイルに格納された OLE オブジェクトを開き、それを OLE コントロールにロードする メモリのストレージ オブジェクトに格納された OLE オブ ジェクトを開き、それを OLE コントロールにロードする OLE ストレージ ファイルに格納された OLE オブジェクト を開き、それをメモリのストレージ オブジェクトにロード する すでに開かれている OLE ストレージ オブジェクトのメン バーである OLE オブジェクトを開き、それをメモリのス トレージ オブジェクトにロードする メモリの OLE ストレージ オブジェクトに格納されたスト リームを開き、それをストリーム オブジェクトにロードす る 使用する構文 構文 3 構文 4 構文 5 構文 6 構文 7 トレース ファイルを開く場合 Open は指定されたトレース ファイルを 開いて、ファイル内容を読める状態にします。 目的 トレース ファイルを開く PowerScript リファレンス ボリューム 2 使用する構文 構文 8 809 Open 構文 1 データ型がわかっているウィンドウを開く 機能 データ型がわかっているウィンドウ オブジェクトを開きます。Open 関 数は、ウィンドウを表示し、すべてのプロパティとコントロールをス クリプトで使用できるようにします。 対象 ウィンドウ オブジェクト 構文 Open ( windowvar {, parent } ) 引数 windowvar parent (チャイルド ウィンドウ、 ポップアップ ウィンドウの 場合)(オプ ション) 説明 表示するウィンドウの名前を指定します。ウィンドウ ペイ ンタで定義されたウィンドウ オブジェクト(ウィンドウの データ型)、または、ウィンドウのデータ型の変数を指定 します。Open 関数は、windowvar に開かれたウィンドウの 参照を渡します。 開くチャイルド ウィンドウまたはポップアップ ウィンド ウの親ウィンドウを指定します。チャイルド ウィンドウま たはポップアップ ウィンドウを開く場合に parent を省略 すると、現在アクティブなウィンドウが親ウィンドウにな ります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 ウィンドウのプロパティにアクセスする前に、ウィンドウを開く必要 があります。ウィンドウを開く前にプロパティにアクセスすると、エ ラーが発生します。 スクリプトで開いているウィンドウを参照するには、windowvar を使 用します。 Open 関数を 2 回呼び出す場合 同じウィンドウに対して構文 1 の Open 関数を 2 回呼び出しても、 PowerBuilder はそのウィンドウを 2 回アクティブにするだけで、ウィ ンドウの 2 つのインスタンスを開くわけではありません。 配列の中の各ウィンドウのデータ型が異なる場合にウィンドウの配列 を開くには、Open 関数の構文 2 を使用します。 810 PowerBuilder 第 10 章 PowerScript の関数 parent を指定してチャイルド ウィ ンドウまたはポップアップ ウィンドウを開く場合、parent が開かれた ウィンドウ(windowname または windowvar)の親ウィンドウになりま す。親ウィンドウが閉じるときには、そのすべてのチャイルド ウィン ドウも閉じられます。 開かれたウィンドウの親ウィンドウ すべてのウィンドウが親ウィンドウになれるわけではありません。表 示する領域をほかのウィンドウ内に限定されていないウィンドウだけ が親ウィンドウになることができます。チャイルド ウィンドウ、また はシートとして開かれたウィンドウは、親ウィンドウになることはで きません。ほかのウィンドウに " 閉じこめられた " ウィンドウを親ウィ ンドウとして指定した場合、PowerBuilder はその親、さらにその親と、 親として使用できるウィンドウが見つかるまで検索します。ポップ アップ ウィンドウを開き、シートをその親ウィンドウに指定した場 合、PowerBuilder はそのシートを含む MDI フレームを親ウィンドウにし ます。 チャイルド ウィンドウまたはポップアップ ウィンドウの親ウィンド ウを指定しない場合、アクティブ ウィンドウがその親ウィンドウにな ります。特定のポップアップ ウィンドウがアクティブのときにほかの ウィンドウを開いた場合、メイン ウィンドウではなく、最初のポップ アップ ウィンドウがその親ウィンドウになります。そのポップアップ ウィンドウが閉じると、そのウィンドウのチャイルド ウィンドウも閉 じます。 ただし、MDI アプリケーションでは、アクティブ シートはアクティブ ウィンドウではないので、親ウィンドウにはなれません。Windows で は、アクティブ シートではなく、MDI フレームがアクティブ ウィン ドウであることが一目でわかります。つまり、MDI フレームのタイト ル バーがアクティブ ウィンドウを示すカラーで表示され、MDI フレー ムはメニューを表示しています。 マウスの動作とウィンドウの応答 コントロールは一定の操作を行っているときにマウスを独占してしま います。たとえば、コマンドボタン コントロールの場合はクリックの 操作を行っているとき、エディット コントロールの場合はテキストを 選択されているとき、スクロールバー コントロールはスクロールの操 作を行っているときに、マウスを独占します。マウスが独占されている 間にレスポンス ウィンドウを開くと、Windows は不安定になります。 レスポンス ウィンドウはフォーカスを横取りするので、フォーカスを 移動している最中(LoseFocus イベントの間など)は、レスポンス ウィ ンドウを使用しないでください。 PowerScript リファレンス ボリューム 2 811 Open 例 次の例は、ウィンドウのインスタンス w_employee を開きます。 Open(w_employee) 次の例は、w_employee 型のウィンドウのインスタンスを開きます。 w_employee w_to_open Open(w_to_open) 次の例は、cw_data という名前のチャイルド ウィンドウのインスタンス を開き、w_employee をそのウィンドウの親ウィンドウにします。 child cw_data Open(cw_data, w_employee) 次の例は、w_emp 型の 2 つのウィンドウを開きます。 w_emp w_e1, w_e2 Open(w_e1) Open(w_e2) 関連項目 Close OpenWithParm Show 構文 2 データ型がわからないウィンドウを開く 機能 アプリケーションが実行されるまでデータ型がわからないウィンドウ オブジェクトを開きます。Open 関数は、ウィンドウを表示し、すべて のプロパティとコントロールをスクリプトで使用できるようにします。 対象 ウィンドウ オブジェクト 構文 Open ( windowvar, windowtype {, parent } ) 引数 windowvar windowtype parent (チャイルド ウィンドウ、 ポップアップ ウィンドウの 場合)(オプ ション) 812 説明 ウィンドウ オブジェクトの変数を指定します。Open 関数 は、windowvar に開かれたウィンドウの参照を渡します。 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、windowvar と同じ か、または子孫までなければなりません。 これから開くチャイルド ウィンドウまたはポップアップ ウィンドウの親ウィンドウにするウィンドウを指定しま す。チャイルド ウィンドウまたはポップアップ ウィンド ウを開く場合に parent を省略すると、現在アクティブな ウィンドウが親ウィンドウになります。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 ウィンドウのプロパティにアクセスする前に、ウィンドウを開く必要 があります。ウィンドウを開く前にプロパティにアクセスすると、エ ラーが発生します。 スクリプトで開いているウィンドウを参照するには、windowvar を使用 します。 windowtype に指定されたウィンドウ オブジェクトは、windowvar と同 じデータ型(または windowvar を継承したデータ型)でなければなり ません。通常、windowvar のデータ型は Window です。すべてのウィン ドウは Window を継承しますが、windowtype の先祖オブジェクトの型 である場合もあります。データ型が異なる場合、エラーが発生します。 配列の中の各ウィンドウのデータ型が異なる場合にウィンドウの配列 を開くには、構文 2 を使用します。詳細については、最後の例を参照 してください。その例では、ウィンドウのデータ型は 1 つの配列に格 納され、別の配列の各ウィンドウが開かれているときに、windowtype として使用されます。 ウィンドウのデータ型を指定する場合の注意 構文 2 を使用すると、windowtype に指定したデータ型のウィンドウの インスタンスを開き、変数 windowvar にインスタンスの参照を格納し ます。 windowtype が Window 型を継承して作られた型の場合は、windowvar 変 数のデータ型で定義されたプロパティ、イベント、関数、または構造 体しか参照できません。たとえば、windowtype に対してユーザ イベン トが宣言されている場合は、そのイベントを参照することはできませ ん。 windowtype に指定したオブジェクトは、実行アプリケーションに自動 的には含まれません。実行ファイルに含めるには、アプリケーション とともに配布する PBD ファイル(PowerBuilder 動的ライブラリ)に保 存する必要があります。 親ウィンドウの詳細については、構文 1 を参照してください。 PowerScript リファレンス ボリューム 2 813 Open 例 次の例は、文字列 s_w_name で指定したデータ型のウィンドウを開き、 変数 w_to_open でそのウィンドウを参照します。SELECT 文はウィンド ウの型を指定するデータをデータベースから取得し、それを s_w_name に格納します。 window w_to_open string s_w_name SELECT next_window INTO WHERE... ; :s_w_name FROM routing_table Open(w_to_open, s_w_name) 次の例は、文字列 is_w_emp1 で指定されたウィンドウのデータ型の 10 個のウィンドウの配列を開き、配列内の各ウィンドウにタイトルを割 り当てます。文字列 is_w_emp1 は、ウィンドウの型を値として持つイ ンスタンス変数です。 integer n window win_array[10] FOR n = 1 to 10 Open(win_array[n], is_w_emp1) win_array[n].title = "Window " + string(n) NEXT 次の例は、4 つのウィンドウを開きます。各ウィンドウの型は、配列 w_stock_type に格納されています。Open 関数は、ウィンドウの参照を 配列 w_stock_win の要素に格納します。 window w_stock_win[ ] string w_stock_type[4] w_stock_type[1] w_stock_type[2] w_stock_type[3] w_stock_type[4] = = = = "w_stock_wine" "w_stock_scotch" "w_stock_beer" "w_stock_soda" FOR n = 1 to 4 Open(w_stock_win[n], w_stock_type[n]) NEXT 関連項目 814 Close OpenWithParm Show PowerBuilder 第 10 章 PowerScript の関数 構文 3 ファイルからコントロールへ OLE オブジェクトを ロードする 機能 ファイルの OLE オブジェクトを開き、それを OLE コントロールにロー ドします。 対象 OLE コントロール 構文 olecontrol.Open ( OLEsourcefile ) 引数 olecontrol OLEsourcefile 戻り値 説明 OLE オブジェクトをロードする OLE コントロールの名前 を指定します。 オブジェクトを含む OLE ストレージ ファイルの名前を表 す文字列を指定します。ファイルはすでに存在していて、 OLE オブジェクトを含んでいなければなりません。 OLEsourcefile には、OLE ストレージ内のパス情報だけで なく、ファイルのパスを含めることもできます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 ファイルがないか、またはファイルのデータの書式が無効です。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、MYSTUFF.OLE ファイルの OLE オブジェクトを開き、それ をコントロール ole_1 にロードします。 integer result result = ole_1.Open("c:\ole2\mystuff.ole") 関連項目 InsertFile Save SaveAs PowerScript リファレンス ボリューム 2 815 Open 構文 4 メモリの OLE オブジェクトを開き、コントロールに ロードする 機能 メモリの OLE ストレージ オブジェクトの OLE オブジェクトを開き、 それを OLE コントロールにロードします。 対象 OLE コントロール 構文 olecontrol.Open ( sourcestorage, substoragename ) 引数 olecontrol sourcestorage substoragename 戻り値 説明 OLE オブジェクトをロードする OLE コントロールの名前 を指定します。 olecontrol にロードするオブジェクトを含む OLEStorage の オブジェクト変数の名前を指定します。 sourcestorage 内の必要なオブジェクトを含むサブスト レージの名前を表す文字列を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -2 -9 親ストレージが開かれていません。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、ストレージ変数 stg_stuff 内のサブストレージ excel_obj のオ ブジェクトを開き、それをコントロール ole_1 にロードします。stg_stuff は、すでに開いています。 integer result result = ole_1.Open(stg_stuff, "excel_obj") 次の例は、ストレージ変数 stg_stuff 内のサブストレージを開き、それ をコントロール ole_1 にロードします。サブストレージ名は、変数 stuff_1 で指定されています。stg_stuff は、すでに開いています。 integer result string stuff_1 = "excel_obj" result = ole_1.Open(stg_stuff, stuff_1) 関連項目 816 InsertFile Save SaveAs PowerBuilder 第 10 章 PowerScript の関数 構文 5 ファイルの OLE オブジェクトを開き OLEStorage オ ブジェクトにロードする 機能 OLE ストレージ ファイルの OLE オブジェクトを開き、それをメモリ のストレージ オブジェクトにロードします。 対象 OLE ストレージ オブジェクト 構文 olestorage.Open ( OLEsourcefile {, readmode {, sharemode } } ) 引数 olestorage OLEsourcefile readmode (オプション) 説明 OLE オブジェクトをロードする OLEStorage 型のオブジェ クト変数の名前を指定します。 オブジェクトを含む OLE ストレージ ファイルの名前を表 す文字列を指定します。ファイルはすでに存在していて、 OLE オブジェクトを含んでいなければなりません。 OLEsourcefile には、ストレージ内のパス情報だけでなく、 ファイルのパスを含めることもできます。 OLEsourcefile へのアクセス タイプを表す stgReadMode カ タログ データ型の値。値は以下のとおりです。 • stgReadWrite! −(デフォルト)読み込みまたは書き込み アクセス。ファイルが存在しない場合、Open 関数はファ イルを作成します。 • stgRead! − 読み込み専用アクセス。OLEsourcefile を変更 できません。 sharemode (オプション) • stgWrite! − 書き込みアクセス。OLEsourcefile を書き換 えることができますが、その現行の内容を読み込むこと はできません。ファイルが存在しない場合、Open 関数 はファイルを作成します。 開発者またはほかの開発者のアプリケーション オブジェ クトから OLEsourcefile を開くことを試みた場合の対応を 示す stgShareMode カタログ データ型の値。値は以下のと おりです。 • stgExclusive! −(デフォルト)ほかからは OLEsourcefile を開けない • stgDenyNone! − ほかからも OLEsourcefile を開ける • stgDenyRead! − ほかからは OLEsourcefile を読み込み用 に開けない • stgDenyWrite − ほかからは OLEsourcefile を書き込み用 に開けない PowerScript リファレンス ボリューム 2 817 Open 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -3 -9 ファイルが OLE ストレージ ファイルではありません。 ファイルがありません。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 OLE ストレージ ファイルはディレクトリのような構造をしています。 各 OLE オブジェクトは、ほかの OLE オブジェクト(サブストレージ) とほかのデータ(ストリーム)を格納することができます。ストレージ の構造がわかっている場合は、サーバ アプリケーションに属している OLE ストレージのメンバーを開くことができます。 ただし、 PowerBuilder はストレージを扱う関数を提供しているので、個々のアプリケーショ ンに合わせて使用する OLE オブジェクトを構成し、ストレージを構築 できます。 ファイル全体を OLE オブジェクトにしたり、ファイル内のサブスト レージを OLE オブジェクトにしたりすることもできます。ほとんどの 場合、開発者が作成したストレージ ファイルは OLE オブジェクトで ないルート レベルになり、独立した OLE オブジェクトをサブストレー ジとして含みます。ストレージ ファイルの階層のどのレベルも OLE オ ブジェクトを含むことができます。また、単に別のレベルのリポジト リとして使用することもできます。 ネストしたオブジェクトを開く場合 円記号(\)を区切り文字として、OLE ストレージにパス情報を指定 できるので、Open 関数を 1 回呼ぶだけで、深くネストしたオブジェク トを開くことができます。ただし、指定したパスを検証しません。ま た、Open 関数が失敗した場合はその原因を知ることもできません。パ スをたどって必要なそれぞれのオブジェクトを開いていくことをお勧 めします。 例 次の例は、MYSTUFF.OLE ファイルのオブジェクトを開き、それを OLEStorage 変数 stg_stuff にロードします。 integer result OLEStorage stg_stuff stg_stuff = CREATE OLEStorage result = stg_stuff.Open("c:\ole2\mystuff.ole") 818 PowerBuilder 第 10 章 PowerScript の関数 次の例は、同じオブジェクトを読み込むために開きます。 integer result OLEStorage stg_stuff stg_stuff = CREATE OLEStorage result = stg_stuff.Open("c:\ole2\mystuff.ole", & stgRead!) 次の例は、前記の例と同様に、ファイル MYSTUFF.OLE のオブジェク トを開き、それを OLEStorage 変数 stg_stuff にロードします。次に、Open 関数の構文 6 を使用して、サブストレージ drawing_1 を開き、それを OLEStorage 変数 opest_drawing に格納します。この例では、開いてい るオブジェクトを閉じて、破棄するためのステートメントを記述して いません。 integer result OLEStorage stg_stuff, stg_drawing stg_stuff = CREATE OLEStorage result = stg_stuff.Open("c:\ole2\mystuff.ole") IF result >= 0 THEN stg_drawing = CREATE OLEStorage result = opest_drawing.Open("drawing_1", & stgRead!, stgDenyNone!, stg_stuff) END IF 次の例は、MYSTUFF.OLE ファイルのオブジェクトを開き、それを OLEStorage 変数 stg_stuff にロードします。次に、ストリーム info が OLE オブジェクトに存在するかどうかを確認します。それが存在する 場合は、構文 7 を使用してストリームを読み込み専用アクセス モード で開きます。この例では、開いているオブジェクトを閉じて、破棄す るためのステートメントを記述していません。 integer result boolean str_found OLEStorage stg_stuff OLEStream mystream stg_stuff = CREATE OLEStorage result = stg_stuff.Open("c:\ole2\mystuff.ole") IF result < 0 THEN RETURN result = stg_stuff.MemberExists("info", str_found) IF result < 0 THEN RETURN IF str_found THEN PowerScript リファレンス ボリューム 2 819 Open mystream = CREATE OLEStream result = mystream.Open(stg_stuff, "info", & stgRead!, stgDenyNone!) IF result < 0 THEN RETURN END IF 関連項目 Close Save SaveAs 構文 6 OLE ストレージのメンバーを開きストレージにロー ドする 機能 開いている OLE ストレージのメンバーを開き、それをメモリのスト レージ オブジェクト内の OLEStorage オブジェクトにロードします。 対象 OLE ストレージ オブジェクト 構文 olestorage.Open ( substoragename, readmode, sharemode, sourcestorage ) 引数 olestorage substoragename readmode 説明 OLE オブジェクトをロードする OLEStorage 型のオブジェ クト変数の名前を指定します。 開く sourcestorage 内のストレージ メンバーの名前を表す 文字列を指定します。構文 4 の sourcestorage および substoragename の指定と逆の順序になることに注意して ください。 substoragename へのアクセス タイプを表す stgReadMode カタログ データ型の値。値は以下のとおりです。 • stgReadWrite! − 読み込みまたは書き込みアクセス。メ ンバーが存在しない場合、Open 関数はメンバーを作成 します。 • stgRead! − 読み込み専用アクセス。substoragename を変 更できません。 • stgWrite! − 書き込みアクセス。substoragename を書き換 えることができますが、その現行の内容を読み込むこと はできません。メンバーが存在しない場合、Open 関数 はメンバーを作成します。 820 PowerBuilder 第 10 章 PowerScript の関数 引数 sharemode 説明 開発者またはほかの開発者のアプリケーション オブジェ クトから substoragename を開くことを試みた場合の対応 を示す stgShareMode カタログ データ型の値。値は以下の とおりです。 • stgExclusive! −(デフォルト)ほかからは substoragename を開けない • stgDenyNone! − ほかからも substoragename を開ける • stgDenyRead! − ほかからは substoragename を読み込み 用に開けない sourcestorage 戻り値 • stgDenyWrite − ほかからは substoragename を書き込み 用に開けない substoragename を含む OLEStorage オブジェクトを開きま す。 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -2 -3 -9 親ストレージが開かれていません。 メンバーがありません。(読み込みのために開けた場合) そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 OLE ストレージ ファイルはディレクトリのような構造をしています。 各 OLE オブジェクトは、ほかの OLE オブジェクト(サブストレージ) とほかのデータ(ストリーム)を格納することができます。ストレー ジの構造がわかっている場合は、サーバ アプリケーションに属してい る OLE ス ト レ ー ジ の メ ン バ ー を 開 く こ と が で き ま す。た だ し、 PowerBuilder はストレージを扱う関数を提供しているので、個々のア プリケーションに合わせて使用する OLE オブジェクトを構成し、スト レージを構築できます。 ファイル全体を OLE オブジェクトにしたり、ファイル内のサブスト レージを OLE オブジェクトにしたりすることもできます。ほとんどの 場合、開発者が作成したストレージ ファイルは OLE オブジェクトで ないルート レベルになり、独立した OLE オブジェクトをサブストレー ジとして含みます。ストレージ ファイルの階層のどのレベルも OLE オ ブジェクトを含むことができます。また、単に別のレベルのリポジト リとして使用することもできます。 PowerScript リファレンス ボリューム 2 821 Open ネストしたオブジェクトを開く場合 円記号(\)を区切り文字として、OLE ストレージにパス情報を指定 できるので、Open 関数を 1 回呼ぶだけで、深くネストしたオブジェク トを開くことができます。ただし、指定したパスを検証しません。ま た、Open 関数が失敗した場合はその原因を知ることもできません。パ スをたどって必要なそれぞれのオブジェクトを開いていくことをお勧 めします。 例 次の例は、前記の例と同様に、ファイル MYSTUFF.OLE のオブジェク トを開き、それを OLEStorage 変数 stg_stuff にロードします。次に、サ ブストレージ drawing_1 を開き、それを OLEStorage 変数 opest_drawing に格納します。この例では、開いているオブジェクトを閉じて、破棄 するためのステートメントを記述していません。 integer result OLEStorage stg_stuff, stg_drawing stg_stuff = CREATE OLEStorage result = stg_stuff.Open("c:\ole2\mystuff.ole") IF result >= 0 THEN stg_drawing = CREATE OLEStorage result = opest_drawing.Open("drawing_1", & stgRead!, stgDenyNone!, stg_stuff) END IF 関連項目 Close Save SaveAs 構文 7 OLE ストリーム を開く場合 機能 開いている OLE ストレージ オブジェクトのストリームを開き、それ を OLE ストリーム オブジェクトにロードします。 対象 OLE ストリーム オブジェクト 構文 olestream.Open ( sourcestorage, streamname {, readmode {, sharemode } } ) 引数 olestream sourcestorage 822 説明 OLE オブジェクトをロードする OLEStream 型のオブジェ クト変数の名前を指定します。 開かれるストリームを含んでいる OLEStorage オブジェク トを指定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 streamname readmode (オプション) 説明 開かれる sourcestorage 内のストリームの名前を指定する 文字列を指定します。 streamname へのアクセス タイプを表す stgReadMode カタ ログ データ型の値。値は以下のとおりです。 • stgReadWrite! − 読み込みまたは書き込みアクセス。 streamname が存在しない場合は、Open 関数は streamname を作成します。 • stgRead! − 読み込み専用アクセス。streamname を変更 できません。 sharemode (オプション) • stgWrite! − 書き込みアクセス。streamname を書き換え ることができますが、その現行の内容を読み込むことは できません。streamname が存在しない場合は、Open 関 数は streamname を作成します。 開発者またはほかの開発者のアプリケーション オブジェ クトから streamname を開くことを試みた場合の対応を示 す stgShareMode カタログ データ型の値。値は以下のとお りです。 • stgExclusive! − ほかからは streamname を開けない • stgDenyNone! − ほかからも streamname を開ける • stgDenyRead! − ほかからは streamname を読み込み用に 開けない • stgDenyWrite − ほかからは streamname を書き込み用に 開けない 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -4 -5 -6 -9 ストリームが見つかりません。 ストリームがすでに存在しています。 ストリームがすでに開いています。 ストレージが開かれていません。 アクセスが拒否されました。 名前が無効です。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、MYSTUFF.OLE ファイルのオブジェクトを開き、それを OLEStorage 変数 stg_stuff にロードします。次に、ストリーム info が OLE オブジェクトに存在するかどうかを確認します。存在する場合は、 ストリームを読み込み専用アクセスモードで開きます。この例では、 開いているオブジェクトを閉じて、破棄するためのステートメントを 記述していません。 PowerScript リファレンス ボリューム 2 823 Open integer result boolean str_found OLEStorage stg_stuff OLEStream mystream stg_stuff = CREATE OLEStorage result = stg_stuff.Open("c:\ole2\mystuff.ole") IF result < 0 THEN RETURN result = stg_stuff.MemberExists("info", str_found) IF result < 0 THEN RETURN IF str_found THEN mystream = CREATE OLEStream result = mystream.Open(stg_stuff, "info", & stgRead!, stgDenyNone!) IF result < 0 THEN RETURN END IF 関連項目 Close 構文 8 トレース ファイルを開く 機能 指定されたトレース ファイルを開いて、読める状態にします。 対象 TraceFile オブジェクト 構文 instancename.Open ( filename ) 引数 instancename filename 戻り値 824 説明 TraceFile オブジェクトのインスタンスを指定します。 読み込むトレース ファイルの名前を文字列で指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileAlreadyOpenError! − 指定されたトレース ファイルは、すでに 開かれています。 • FileOpenError! − トレース ファイルは読み込むために開けません。 • FileInvalidFormatError! − 指定されたファイルの書式が正しくあり ません。 • EnterpriseOnlyFeature! − この関数は、PowerBuilder Enterprise 版で のみサポートされています。 PowerBuilder 第 10 章 PowerScript の関数 • SourcePBLError! − ソース ライブラリが見つかりません。 解説 この構文を使って、PowerBuilder アプリケーションの実行中に作成さ れたトレース ファイルを選択し、そのファイルの内容を参照します。 ファイルを開いた後は、TraceFile オブジェクトが提供するプロパティ および関数を使って、既存の解析モデル化オブジェクトを使わずに、 トレース データを独自の方法で解析できます。 例 次の例では、トレース ファイルを開きます。 TraceFile ltf_file String ls_filename ltf_file = CREATE TraceFile ltf_file.Open(ls_filename) ... 関連項目 Close Reset NextActivity OpenChannel 機能 DDE サーバ アプリケーションのチャネルを開きます。 構文 OpenChannel ( applname, topicname {, windowhandle } ) 引数 applname topicname windowhandle (オプション) PowerScript リファレンス ボリューム 2 説明 DDE サーバ アプリケーションの DDE 名(サービス名)を 表す文字列を指定します。 コマンドで使用するデータ、またはアプリケーションのイ ン ス タ ン ス を 表 す 文 字 列 を 指 定 し ま す。た と え ば、 Microsoft Excel の場合、システムまたは開かれているスプ レッド シートの名前を指定します。 DDE クライアントとして機能させるウィンドウを示すハ ンドルを指定します。複数のウィンドウを開いているとき に、DDE クライアントとして機能させるウィンドウを指 定するために使用します。 825 OpenChannel 戻り値 Long 型。正常に終了した場合、開かれているチャネルを示すハンドル (正の値)を返します。エラーが発生した場合、以下の負の整数のいず れかを返します。値は以下のとおりです。 -1 -9 解説 チャネルを開けません。 handle が NULL です。 OpenChannel 関数は、 DDE サーバ アプリケーションのチャネルを開き、 開いた状態を維持するので、アプリケーションへの接続を終了するま で複数の DDE 要求を実行することができます。このタイプの DDE 対 話を、 「ウォーム リンク」といいます。チャネルが開かれているので、 オペレーティング システムは、データが送信または要求されるたびに すべての開いているアプリケーションをポーリングする必要がありま せん。 次に、ウォーム リンク型の対話の概要について示します。 • OpenChannel 関数を使用して DDE チャネルを開き、返されたチャ ネル ハンドル(正の値)が有効であることをチェックします。 • 複数の DDE 関数を実行します。次の関数を使用できます。 ExecRemote ( command, handle, <windowhandle> ) GetRemote ( location, target, handle, <windowhandle> ) SetRemote ( location, value, handle, <windowhandle> ) • CloseChannel 関数を使用して DDE チャネルを閉じます。 リモート DDE 関数を一度だけ使用する場合、チャネルを開かずに ExecRemote 関数、GetRemote 関数、または SetRemote 関数を呼び出す ことができます。これを「コールド リンク」といいます。DDE 関数が 呼び出されるたびに、オペレーティング システムはすべての実行中の アプリケーションをポーリングし、指定されたサーバ アプリケーショ ンを検索します。 PowerBuilder アプリケーションは、DDE サーバになる場合もあります。 詳細については、StartServerDDE を参照してください。 サーバ アプリケーションについて 各アプリケーションによって、DDE のサポート方法が異なります。各 サーバ アプリケーションの資料を調べ、DDE 名、有効な機能、および データの位置の指定の仕方を確認してください。 826 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、Microsoft Excel 内のアクティブなスプレッド シート REGION.XLS のチャネルを開き、handle にそのチャネルのハンドルを 格納します。 long handle handle = OpenChannel("Excel", "REGION.XLS") 次の例は、Excel への DDE チャネルを開き、スプレッドシートの 3 つ のセルのデータを要求します。PowerBuilder アプリケーションは、受 け取ったデータを文字配列 s_regiondata に格納します。DDE 対話で使 用するクライアント ウィンドウは w_ddewin です。 long handle string s_regiondata[3] handle = OpenChannel("Excel", "REGION.XLS", & Handle(w_ddewin)) GetRemote("R1C2", s_regiondata[1], handle, & Handle(w_ddewin)) GetRemote("R1C3", s_regiondata[2], handle, & Handle(w_ddewin)) GetRemote("R1C4", s_regiondata[3], handle, & Handle(w_ddewin)) CloseChannel(handle, Handle(w_ddewin)) 関連項目 CloseChannel ExecRemote GetRemote SetRemote OpenSheet 機能 MDI(Multiple Document Interface)フレーム ウィンドウ内でシートを 開きます。エンド ユーザがシートを選択できるように、メニュー上に メニュー項目を作成し、開いているシート名のリストを表示します。 対象 ウィンドウ オブジェクト 構文 OpenSheet ( sheetrefvar {, windowtype }, mdiframe {, position {, arrangeopen } } ) 引数 sheetrefvar PowerScript リファレンス ボリューム 2 説明 MDI フレーム ウィンドウ以外のウィンドウ オブジェクト の名前を指定します。sheetrefvar に開かれたシートの参照 を設定します。 827 OpenSheet 引数 windowtype (オプション) mdiframe position (オプション) arrangeopen (オプション) 説明 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、sheetrefvar と同じ か、または子孫までなければなりません。 MDI フレーム ウィンドウの名前を指定します。 開かれたシートの名前を追加するメニュー項目(開かれた シートに対応しているメニュー内の項目)の番号を指定し ます。メニューバーのメニュー項目は、左端から順番に 1 から番号が付けられています。標準の設定(0)では、最 後から 2 番目のメニュー項目に、開いているシートのリス トが表示されます。 開いているシートの MDI フレームでの配置を指定する ArrangeOpen カタログ データ型の値。次のいずれかの値を 指定します。 • Cascaded! −(デフォルト)すべてのタイトル バーが見 えるように、開いているシートを重ねて表示します。前 に開いていたシートの下に重ねて表示されます。 • Layered! − 開いているシートを重ねて表示します。フ レーム全体に、そのシートが表示されます。前に開いて いたシートの上に重ねて表示されます。 • Original! − シートを元のサイズで開き、重ねて表示し ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 windowtype 引数が無効な場合などは、OpenSheet はランタイム エラー を送出し、値を返しません。そのため、例の節の最初の例で示すよう に、戻り値をテストし、try-catch ブロックでの関数呼び出しを囲むこ との両方を行うことをお勧めします。 解説 シートは、MDI フレーム ウィンドウ内に含まれるドキュメント ウィ ンドウです。MDI アプリケーションでは、複数のシートを同時に開く ことができます。新しく開いたシートが、アクティブ シートになりま す。関連付けられたメニューを格納するシートが開かれている場合、 そのメニューがフレームのメニューになります。 windowtype を指定する場合、sheetrefvar と同じデータ型(または sheetrefvar を継承したデータ型)でなければなりません。通常、 sheetrefvar のデータ型は Window です。すべてのウィンドウは Window を継承しますが、windowtype の先祖オブジェクトの型である場合もあ ります。データ型が異なる場合、エラーが発生します。 828 PowerBuilder 第 10 章 PowerScript の関数 PowerBuilder では、String 型の変数によって実行ファイルで動的に参照 されているオブジェクトのコピーは、自動的には作成されません。ア プリケーションで windowtype に指定されているウィンドウ オブジェ クトを含めるには、実行ファイルを作成するときに使用するリソース (PBR)ファイルに、そのウィンドウ オブジェクトのリストを作成しま す。実行ファイルの PBR ファイルの詳細については、『PowerBuilder ユーザーズ ガイド』マニュアルを参照してください。 OpenSheet 関数は、シートを開き、position に指定されているメニュー バーの項目にその名前を追加します。position に指定されている値が 0 の場合、またはメニューバー上の項目数よりも大きな数値の場合、 PowerBuilder はメニューバー上の最後から 2 番目のメニュー項目に シート名を追加します。通常、メニューバーの最後から 2 番目のメ ニュー項目は、ウィンドウ メニューです。ウィンドウ メニューには、 開いているシート名とシートの配置を変更するコマンドが表示されて います。 PowerBuilder では、メニュー項目を持たないメニューにシートを追加 することができません。指定するメニューを確認してください。また、 position を省略した場合、最後から 2 番目のメニューが少なくとも 1 つ のメニュー項目を持つことを確認してください。 10 個以上のシートをフレーム内で開くと、position に指定されたメ ニューの最後に先頭の 9 個のシートのリストが表示され、その下に「そ の他のウィンドウ ...」と表示されます。 フレーム内のシートは、表示不可にはできません。シートを開いた場 合、Visible プロパティの値は無視されます。ウィンドウがすでに開か れている場合、Visible プロパティの変更は有効となりません。 レスポンス ウィンドウを開く場合 レスポンス ウィンドウを開く場合は OpenSheet 関数を使用しないでく ださい。 例 次の例は、シート child_1 を MDI フレーム MDI_User 内に元のサイズで 開き、開いているシートの名前をメニューバー内の 2 番目のメニュー 項目に追加します。メニューは、フレームではなくシート child_1 に関 連付けられます。呼び出しに失敗した場合、OpenSheet は -1 を返すか、 ランタイム エラーを送出します。これらの両可能性を確実に拾うため に、次の例では、関数の戻り値をチェックし、try-catch 文を使用して 起こる可能性のあるランタイム エラーを捕捉します。 integer li_retrun try li_retrun = OpenSheet (child_1, MDI_User, 2, & PowerScript リファレンス ボリューム 2 829 OpenSheetWithParm Original!) if IsNull(li_return) then MessageBox (" 失敗 ", "Null 引数が指定されました。") elseif li_return = 1 then MessageBox (" 成功 ", " シートを開きました。") else MessageBox (" 失敗 ", " シートを開くのに失敗しました。") end if catch (runtimeerror rt) MessageBox(" 失敗 "," シートを開くのに失敗しました。", & + rt.getmessage()) // エラーを処理するか、処理しない end try 次の例は、ウィンドウ オブジェクト child_1 のインスタンスを MDI シー トとして開き、開いているシートへの参照を child に格納します。開い ているシートの名前は、child_1 に関連付けられているメニューの 4 番 目の項目に追加され、上に重ねて表示されます。 window child OpenSheet(child, "child_1", MDI_User, 4, Layered!) 関連項目 ArrangeSheets GetActiveSheet OpenSheetWithParm OpenSheetWithParm 機能 OpenSheet 関数と同様に、MDI(Multiple Document Interface)フレーム 内にシートを開き、メニュー上にメニュー項目を作成し、エンド ユー ザがシートを選択できるように開かれたシート名のリストを表示しま す。OpenSheetWithParm 関数は、システムの Message オブジェクトにパ ラメータを格納するので、開かれたシートにアクセスすることができ ます。 対象 ウィンドウ オブジェクト 構文 OpenSheetWithParm ( sheetrefvar, parameter {, windowtype }, mdiframe {, position {, arrangeopen } } ) 引数 sheetrefvar 830 説明 MDI フレーム ウィンドウ以外のウィンドウ オブジェクト の名前を指定します。sheetrefvar に開かれたシートの参照 を設定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 parameter 説明 指定されたシートが開かれるときに Message オブジェク トに格納するパラメータを指定します。parameter には、次 のいずれかのデータ型の変数を指定します。 • String 型 • 数値型 windowtype (オプション) mdiframe position (オプション) arrangeopen (オプション) • PowerObject 型 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、sheetrefvar と同じ か、または子孫までなければなりません。 MDI フレーム ウィンドウの名前を指定します。 開かれたシートの名前を追加するメニュー項目(開かれた シートに対応しているメニュー内の項目)の番号を指定し ます。メニューバーのメニュー項目は、左端から順番に 1 から番号付けされています。特に指定しない限り、最後か ら 2 番目のメニュー項目に開かれたシートのリストが表 示されます。 MDI フレーム内での開かれたシートの配置を指定する ArrangeOpen カタログ データ型の値。次のいずれかの値を 指定します。 • Cascaded! −(デフォルト)すべてのタイトル バーが見 えるように、開いているシートを重ねて表示します。前 に開いていたシートの下に重ねて表示されます。 • Layered! − 開いているシートを重ねて表示します。フ レーム全体に、そのシートが表示されます。前に開いて いたシートの上に重ねて表示されます。 • Original! − シートを元のサイズで開き、重ねて表示し ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 windowtype 引数が無効な場合などは、OpenSheetWithParm はランタイム エラーを送出し、値を返しません。そのため、例の節の最初の例で示 すように、戻り値をテストし、try-catch ブロックでの関数呼び出しを 囲むことの両方を行うことをお勧めします。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。OpenSheetWithParm 関数のパラメータに指定 されたデータ型に対応するプロパティに値が格納されます。パラメー タのデータ型と Message オブジェクトのプロパティの対応を次に示し ます。 PowerScript リファレンス ボリューム 2 831 OpenSheetWithParm Message オブジェクトの プロパティ Message.DoubleParm Message.PowerObjectParm Message.StringParm パラメータのデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 NULL オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、NULL オブジェクト参照となり、エラーが発生します。たとえ ば、閉じられているウィンドウのコントロール名を渡した場合、その コントロールは、スクリプトがパラメータにアクセスするときには存 在しません。 レスポンス ウィンドウを開く場合 レスポンス ウィンドウを開く場合は OpenSheetWithParm 関数を使用し ないでください。 OpenSheet 関数の解説も参考にしてください。OpenSheetWithParm 関数 にも適用できる内容が記述されています。 例 次の例は、w_child_1 というシートを MDI フレーム MDI_User の中に元 のサイズで開き、MA を Message.StringParm 内に格納します。開かれた シートの名前を w_child_1 と関連付けられている MDI_User の 2 番目の メ ニ ュ ー 項 目 に 追 加 し ま す。呼 び 出 し に 失 敗 し た 場 合、 OpenSheetWithParm は -1 を返すか、ランタイム エラーを送出します。 これらの両可能性を確実に拾うために、次の例では、関数の戻り値を チェックし、try-catch 文を使用して起こる可能性のあるランタイム エ ラーを捕捉します。 integer li_retrun try li_retrun = OpenSheetWithParm(w_child_1, "MA", & MDI_User, 2, Original!) 832 PowerBuilder 第 10 章 PowerScript の関数 if IsNull(li_return) then MessageBox (" 失敗 ", "Null 引数が指定されました。") elseif li_return = 1 then MessageBox (" 成功 ", " シートを開きました。") else MessageBox (" 失敗 ", " シートを開くのに失敗しました。") end if catch (runtimeerror rt) MessageBox(" 失敗 "," シートを開くのに失敗しました。", & + rt.getmessage()) // エラーを処理する end try 次の例は、ウィンドウのスクリプトです。Message オブジェクトに渡 されたパラメータにアクセスする方法を示しています。これらのス テートメントは、2 つの異なるウィンドウのスクリプトにあります。最 初のウィンドウのスクリプトでは、child を Window 型として宣言し、 w_child_1 のインスタンスを MDI シートとして開きます。開かれたシー トの名前 w_child_1 は、関連付けられているメニューの 4 番目のメ ニュー項目に追加されます。 シングルライン エディット コントロール sle_state への参照を Message オブジェクトの PowerObject 型のパラメータに渡します。w_child_1 の Open イベントのスクリプトは、エディット コントロール内のテキス トを使用して実行すべき計算の種類を特定します。2 つ目のスクリプ トでは sle_state を参照するときに sle_state が存在しないと、失敗に終 わります。sle_state への参照を渡すかわりに、sle_state に入力されてい るテキストを渡すことができます。この場合、テキストは Message オ ブジェクトの String 型のパラメータに格納されます。 2 つ目のスクリプトで SingleLineEdit のテキストが決まり、そのテキス トに基づいてスクリプトが処理を行います。 最初のスクリプトは、次のとおりです。 window child OpenSheetWithParm(child, sle_state, & "w_child_1", MDI_User, 4, Layered!) 2 つ目のスクリプトは、次のとおりです。 SingleLineEdit sle_state sle_state = Message.PowerObjectParm IF sle_state.Text = "overtime" THEN ... // 残業時間の計算 ELSEIF sle_state.Text = "vacation" THEN ... // 休暇の処理 ELSEIF sle_state.Text = "standard" THEN PowerScript リファレンス ボリューム 2 833 OpenTab ... // 通常勤務時間の計算 END IF 関連項目 ArrangeSheets OpenSheet OpenTab ビジュアル ユーザ オブジェクトを開き、開いたユーザ オブジェクトを 指定されたタブ コントロールのタブ ページとします。また、すべての プロパティとコントロールをスクリプトで使用できるようにします。 目的 ユーザ オブジェクトをタブ ページとして開く 実行時にアプリケーションがユーザ オブジェクトのデー タ型を選択できるように、ユーザ オブジェクトをタブ ページとして開く 使用する構文 構文 1 構文 2 構文 1 データ型がわかっているユーザ オブジェクトを開く 機能 データ型がわかっているカスタム ビジュアル ユーザ オブジェクトを、 タブ コントロールのタブ ページとして開きます。 対象 タブ コントロール 構文 tabcontrolname.OpenTab ( userobjectvar, index ) 引数 tabcontrolname userobjectvar index 834 説明 ユーザ オブジェクトをタブ ページとして開くタブ コント ロールの名前を指定します。 タブ ページとして開くカスタム ビジュアル ユーザ オブ ジェクトの名前を指定します。ユーザ オブジェクト ペイ ンタで定義したカスタム ビジュアル ユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenTab 関数は、userobjectvar に指定され たカスタム ビジュアル ユーザ オブジェクトへの参照を配 置します。 新しいタブを挿入する位置を示すタブ番号を指定します。 index が 0、またはタブ数より大きい場合、タブ ページは 最後に挿入されます。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 どのユーザ オブジェクトを開くかが決まっている場合、構文 1 を使用 します。スクリプトの実行時に、アプリケーションがタブ ページとし て開くユーザ オブジェクトのデータ型を決める場合は、構文 2 を使用 します。 OpenTab 関数は、ユーザ オブジェクトのタブ ページを選択状態にしま せん。ユーザ オブジェクトのコントロールの Constructor イベントに対 するスクリプトは、タブ ページが選択されるまで実行されません。 ユーザ オブジェクトのプロパティにアクセスする前にユーザ オブ ジェクトを開く必要があります。ユーザ オブジェクトを開く前にその プロパティにアクセスすると、実行時にエラーが発生します。 ユーザ オブジェクトがタブ コントロール定義の一部となっている場 合(つまり、ウィンドウ ペインタから、ユーザ オブジェクトをタブ コ ントロールに追加した場合)には、スクリプトでユーザ オブジェクト を開く必要はありません。タブ コントロールを含むウィンドウを開く 場合は、PowerBuilder は自動的にユーザ オブジェクトも開きます。 OpenTab 関数は、新しく開いたユーザ オブジェクトを、タブ コント ロールの Control 配列に追加します。この Control 配列は、タブ コント ロール内のタブ ページのリストを管理しているプロパティです。 同じオブジェクトを 2 回開いた場合 構文 1 を 2 回呼び出して同じユーザ オブジェクトを開くと、Open 関数 と OpenUserObject 関数の動作形態とは対照的に、OpenTab 関数は、ユー ザ オブジェクトを別のタブ ページとしてもう一度開きます。 例 次の例は、ユーザ オブジェクト u_Employee のインスタンスをタブ コ ントロール tab_1 のタブ ページとして開きます。 tab_1.OpenTab(u_Employee, 0) 次の例は、ユーザ オブジェクト u_to_open のインスタンスをタブ コン トロール tab_1 のタブ ページとして開きます。オブジェクトのインス タンスは、コントロールの最初のタブになります。 u_employee u_to_open tab_1.OpenTab(u_to_open, 1) 関連項目 OpenTabWithParm PowerScript リファレンス ボリューム 2 835 OpenTab 構文 2 データ型がわからないユーザ オブジェクトを開く 機能 スクリプトを実行するまでデータ型がわからないビジュアル ユーザ オブジェクトをタブ コントロールのタブ ページとして開きます。 対象 タブ コントロール 構文 tabcontrolname.OpenTab ( userobjectvar, userobjecttype, index ) 引数 tabcontrolname userobjectvar userobjecttype index 説明 ユーザ オブジェクトをタブ ページとして開くタブ コント ロールの名前を指定します。 ユーザオブジェクト データ型の変数を指定します。 OpenTab 関数は、userobjectvar に指定されたカスタム ビ ジュアル ユーザ オブジェクトへの参照を配置します。 String 型の値。タブ ページとして開くユーザ オブジェクト のデータ型を指定します。userobjecttype のデータ型は、 userobjectvar の子孫でなければなりません。 新しいタブを挿入する位置を示すタブ番号を指定します。 index が 0、またはタブ数より大きい場合、タブ ページは 最後に挿入されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 どのユーザ オブジェクトを開くかが決まっている場合、構文 1 を使用 します。スクリプトの実行時に、アプリケーションがタブ ページとし て開くユーザ オブジェクトのデータ型を決める場合は、構文 2 を使用 します。 OpenTab 関数は、ユーザ オブジェクトのタブ ページを選択状態にしま せん。タブ ページが選択されるまでは、コントロールのユーザ オブジェ クトに対する Constructor イベント用スクリプトは、実行されません。 ユーザ オブジェクトのプロパティにアクセスする前にユーザ オブ ジェクトを開く必要があります。ユーザ オブジェクトを開く前にその プロパティにアクセスすると、実行時にエラーが発生します。 ユーザ オブジェクトがタブ コントロール定義の一部となっている場 合(つまり、ウィンドウ ペインタから、ユーザ オブジェクトをタブ コ ントロールに追加した場合)には、スクリプトでユーザ オブジェクト を開く必要はありません。タブ コントロールを含むウィンドウを開く 場合は、PowerBuilder は自動的にユーザ オブジェクトも開きます。 OpenTab 関数は、新しく開いたユーザ オブジェクトを、タブ コント ロールの Control 配列に追加します。この Control 配列は、タブ コント ロール内のタブ ページのリストを管理しているプロパティです。 836 PowerBuilder 第 10 章 PowerScript の関数 ユーザ オブジェクト データ型を指定するときの考慮点 構文 2 を使用すると、PowerBuilder は userobjecttype に指定されたデー タ型のユーザ オブジェクトのインスタンスを開き、変数 userobjectvar にこのインスタンスへの参照を格納します。スクリプトでインスタン スを参照するには、userobjectvar を使用します。 userobjecttype がユーザ オブジェクトの子孫である場合、userobjectvar の定義の一部であるプロパティ、イベント、関数、または構造体だけ を参照できます。たとえば、userobjecttype にユーザ イベントが定義さ れていた場合、そのイベントを参照することはできません。 実行モジュールを作成すると userobjecttype に指定されたオブジェク トは、自動的にはアプリケーションの実行ファイルには含まれません。 実行ファイルに含めるには、アプリケーションとともに配布する PBD ファイル(PowerBuilder 動的ライブラリ)に保存する必要があります。 例 次の例は、ユーザ オブジェクトをタブ コントロール tab_1 の最後のタ ブ ページとして開きます。ユーザ オブジェクトのデータ型は文字列 s_u_name に指定されていて、ユーザ オブジェクトへの参照は変数 u_to_open に格納されています。 UserObject u_to_open string s_u_name s_u_name = sle_user.Text tab_1.OpenTab(u_to_open, s_u_name, 0) 関連項目 OpenTabWithParm PowerScript リファレンス ボリューム 2 837 OpenTabWithParm OpenTabWithParm 指定されたウィンドウにビジュアル ユーザ オブジェクトを追加し、 OpenTab 関数と同様に、そのユーザ オブジェクトのすべてのプロパ ティとコントロールをスクリプトで使用できるようにします。また、 開かれているオブジェクトがパラメータにアクセスできるように、シ ステムの Message オブジェクトにパラメータを格納します。 目的 使用する構文 ユーザ オブジェクトをタブ ページとして開く 構文 1 実行時にアプリケーションがユーザ オブジェクトのデー 構文 2 タ型を選択できるように、ユーザ オブジェクトをタブ ページとして開く 構文 1 データ型がわかっているユーザ オブジェクトを開く 機能 データ型がわかっているカスタム ビジュアル ユーザ オブジェクトを タブ コントロールのタブ ページとして開き、システムの Message オブ ジェクトにパラメータを格納します。 対象 タブ コントロール 構文 tabcontrolname.OpenTabWithParm ( userobjectvar, parameter, index ) 引数 tabcontrolname userobjectvar parameter 説明 ユーザ オブジェクトをタブ ページとして開くタブ コント ロールの名前を指定します。 タブ ページとして開くカスタム ビジュアル ユーザ オブ ジェクトの名前を指定します。ユーザ オブジェクト ペイ ンタで定義したカスタム ビジュアル ユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenTabWithParm 関数は、userobjectvar に 指定されたカスタム ビジュアル ユーザ オブジェクトへの 参照を配置します。 指定されたユーザ オブジェクトが開かれるときに Message オ ブ ジ ェ ク ト に 格 納 す る パ ラ メ ー タ を 指 定 し ま す。 parameter には、次のいずれかのデータ型の変数を指定し ます。 • String 型 • 数値型 • PowerObject 型 838 PowerBuilder 第 10 章 PowerScript の関数 引数 index 説明 新しいタブを挿入する位置を示すタブ番号を指定します。 index が 0、またはタブ数より大きい場合、タブ ページは 最後に挿入されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。開かれているユーザ オブジェクトのスクリ プトは、次のいずれかのプロパティをチェックします。チェックされ るプロパティは、OpenTabWithParm 関数で指定されたパラメータのデー タ型によって異なります。 Message オブジェクトの プロパティ message.DoubleParm message.PowerObjectParm message.StringParm パラメータのデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、Message オブジェクトに渡された値には、すぐにアクセスすることをお勧めし ます。 NULL オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、NULL オブジェクト参照となり、エラーが発生します。たとえ ば、閉じられているウィンドウのコントロール名を渡した場合、その コントロールは、スクリプトがパラメータにアクセスするときには存 在しません。 OpenTab 関数の解説も参考にしてください。OpenTabWithParm 関数にも 適用できる内容が記述されています。 PowerScript リファレンス ボリューム 2 839 OpenTabWithParm 例 次の例は、ユーザ オブジェクト u_Employee のインスタンスをタブ コ ントロール tab_empsettings のタブ ページとして開きます。また、文字 列 James Newton を Message.StringParm に格納します。ユーザ オブジェ クトに対する Constructor イベントのスクリプトは、String 型のパラメー タをオブジェクトのスタティックテキスト コントロール st_empname の テキストとして使用します。タブ ページを開くスクリプトには、次の ステートメントが記述されています。 tab_empsettings.OpenTabWithParm(u_Employee, & "James Newton", 0) ユーザオブジェクトの Constructor イベントに対するスクリプトには、 次のステートメントが記述されています。 st_empname.Text = Message.StringParm 次のステートメントは、ユーザ オブジェクト u_to_open のインスタン スをタブ コントロール tab_empsettings の最初のタブ ページとして開き ます。また、番号を message.DoubleParm に格納します。最後のステー トメントは、タブ ページを選択します。 u_employee u_to_open integer age = 50 tab_1.OpenTabWithParm(u_to_open, age, 1) tab_1.SelectTab(u_to_open) 関連項目 OpenTab 構文 2 データ型がわからないユーザ オブジェクトを開く 機能 スクリプトを実行するまでデータ型がわからないビジュアル ユーザ オブジェクトをタブ コントロールのタブ ページとして開きます。ま た、開かれているオブジェクトがパラメータにアクセスできるように、 システムの Message オブジェクトにパラメータを格納します。 対象 タブ コントロール 構文 tabcontrolname.OpenTabWithParm ( userobjectvar, parameter, userobjecttype, index ) 引数 tabcontrolname userobjectvar 840 説明 ユーザ オブジェクトをタブ ページとして開くタブ コント ロールの名前を指定します。 ユーザオブジェクト データ型の変数を指定します。指定さ れたデータ型で開かれたユーザ オブジェクトの参照を userobjectvar に格納します。 PowerBuilder 第 10 章 PowerScript の関数 引数 parameter 説明 指定されたユーザ オブジェクトが開かれるときに Message オブジェクトに格納するパラメータを指定します。 parameter には、次のいずれかのデータ型の変数を指定し ます。 • String 型 • 数値型 userobjecttype index • PowerObject 型 表示するユーザ オブジェクトのデータ型を表す文字列を 指定します。userobjecttype のデータ型は、userobjectvar の 子孫でなければなりません。 新しいタブを挿入する位置を示すタブ番号を指定します。 index が 0、またはタブ数より大きい場合、タブ ページは 最後に挿入されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。開かれているユーザ オブジェクトのスクリ プトは、次のいずれかのプロパティをチェックします。チェックされ るプロパティは、OpenTabWithParm 関数で指定されたパラメータのデー タ型によって異なります。 Message オブジェクトの プロパティ message.DoubleParm message.PowerObjectParm message.StringParm パラメータのデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 PowerScript リファレンス ボリューム 2 841 OpenTabWithParm NULL オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、NULL オブジェクト参照となり、エラーが発生します。たとえ ば、閉じられているウィンドウのコントロール名を渡した場合、その コントロールは、スクリプトがパラメータにアクセスするときには存 在しません。 OpenTab 関数の解説も参考にしてください。OpenTabWithParm 関数にも 適用できる内容が記述されています。 例 次のステートメントは、タイプ u_benefit_plan のユーザ オブジェクト u_data のインスタンスを、タブ コントロール tab_1 の最後のタブ ペー ジとして開きます。パラメータ Benefits は、message.StringParm に格納 されます。 UserObject u_data tab_1.OpenTabWithParm(u_data, & "Benefits", "u_benefit_plan", 0) 次の例は、文字列 s_u_name に指定された型のユーザ オブジェクトを 開き、変数 u_to_open にユーザ オブジェクトへの参照を格納します。 s_u_name の値は、データベースから開かれるユーザ オブジェクトの型 を検索します。パラメータは シングルライン エディット コントロー ル sle_loc のテキストなので、message.StringParm に格納されます。ユー ザ オブジェクトは、タブ コントロール tab_1 の 3 番目のタブ ページに なります。 UserObject u_to_open string s_u_name, e_location e_location = sle_location.Text SELECT next_userobj INTO FROM routing_table WHERE ... ; :s_u_name tab_1.OpenTabWithParm(u_to_open, & e_location, s_u_name, 3) 842 PowerBuilder 第 10 章 PowerScript の関数 次の例は、文字列 s_u_name に指定された型のユーザ オブジェクトを 開き、変数 u_to_open にユーザ オブジェクトへの参照を格納します。 パラメータは数値なので、message.DoubleParm に格納されます。ユー ザ オブジェクトは、タブ コントロール tab_1 の最初のタブ ページにな ります。 UserObject u_to_open integer age = 60 string s_u_name s_u_name = sle_user.Text tab_1.OpenTabWithParm(u_to_open, age, & s_u_name, 1) 関連項目 OpenTab OpenUserObject 指定されたウィンドウにユーザ オブジェクトを追加し、追加したユー ザ オブジェクトのすべてのプロパティとコントロールをスクリプト で利用できるようにします。 目的 特定のユーザ オブジェクトのインスタンスを開く 使用する構文 構文 1 スクリプトの実行時に、アプリケーションがユーザ オブ 構文 2 ジェクト データ型を選択することができるユーザ オブ ジェクトを開く 構文 1 データ型がわかっているユーザ オブジェクトを開く 機能 データ型がわかっているユーザ オブジェクトを開きます。 対象 ウィンドウ オブジェクト 構文 windowname.OpenUserObject ( userobjectvar {, x, y } ) 引数 windowname PowerScript リファレンス ボリューム 2 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名 前を指定します。 843 OpenUserObject 引数 userobjectvar 説明 表示するユーザ オブジェクトの名前を指定します。ユーザ オブジェクト ペインタで定義したユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenUserObject は、開かれたユーザ オブ ジェクトの参照を userobjectvar に格納します。 x ウィンドウのフレーム内のユーザ オブジェクトの表示位 (オプション) 置を示す X 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 y ウィンドウのフレーム内のユーザ オブジェクトの表示位 (オプション) 置を示す Y 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 どのユーザ オブジェクトを開くかが決まっている場合、構文 1 を使用 します。スクリプトの実行時に、アプリケーションがタブ ページとし て開くユーザ オブジェクトのデータ型を決める場合は、構文 2 を使用 します。 ユーザ オブジェクトのプロパティにアクセスする前にユーザ オブ ジェクトを開く必要があります。ユーザ オブジェクトを開く前にその プロパティにアクセスすると、実行時にエラーが発生します。 初期状態のウィンドウで定義されているユーザ オブジェクト(ウィン ドウ ペインタで追加されたウィンドウ)は、スクリプトで開く必要は ありません。このユーザ オブジェクトは、PowerBuilder がウィンドウ を開くときに開かれます。 OpenUserObject 関数は、新しく開かれたユーザ オブジェクトをウィン ドウ プロパティの Control 配列に追加します。Control 配列は、ウィン ドウのコントロールを格納します。 実行時にユーザ オブジェクトを開く場合は、ウィンドウを閉じるとき にユーザ オブジェクトが自動的に破棄されません。通常はウィンドウ を閉じるときに、CloseUserObject 関数を呼び出してユーザ オブジェク トを破棄する必要があります。ユーザ オブジェクトを破棄しない場 合、メモリ内に保存され、メモリ リークの原因となります。 844 PowerBuilder 第 10 章 PowerScript の関数 PowerBuilder はウィンドウを再表示するか、またはスクリプトの最後 の行を実行したときに(どちらかが先に起ったときに)、ユーザ オブ ジェクトを表示します。たとえば、スクリプトで複数のユーザ オブ ジェクトを開く場合、ほかの処理によって画面の外観が変更されない 限り、スクリプトが終了する時点で、すべてのユーザ オブジェクトが 同時に表示されます。たとえば、MessageBox 関数がメッセージを表示 したり、スクリプトがコントロールの表示プロパティを変更したりし ない限り、スクリプトが終了する時点で、すべてのユーザ オブジェク トが同時に表示されます。 OpenUserObject 関数を 2 回呼び出す場合 同じユーザ オブジェクトを開くつもりで構文 1 を 2 回呼び出しても、 PowerBuilder はそのユーザ オブジェクトを 2 回アクティブにするだけ で、ユーザ オブジェクトのインスタンスを 2 つ開くわけではありません。 例 次の例は、ユーザ オブジェクト u_Employee のインスタンスをウィンド ウ w_emp の左上隅(0,0)に表示します。 w_emp.OpenUserObject(u_Employee) 次の例は、ユーザ オブジェクト u_to_open のインスタンスをウィンド ウ w_empstatus の(200,100)に表示します。 u_employee u_to_open w_empstatus.OpenUserObject(u_to_open, 200, 100) 次の例は、 ユーザ オブジェクト u_data のインスタンスを w_info の (20,100) の位置に表示します。 w_info.OpenUserObject(u_data, 20, 100) 関連項目 OpenUserObjectWithParm PowerScript リファレンス ボリューム 2 845 OpenUserObject 構文 2 データ型がわからないユーザ オブジェクトを開く 機能 スクリプトを実行するまでデータ型がわからないユーザ オブジェク トを開きます。 対象 ウィンドウ オブジェクト 構文 windowname.OpenUserObject ( userobjectvar, userobjecttype {, x, y } ) 引数 windowname userobjectvar userobjecttype x (オプション) y (オプション) 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名前 を指定します。 DragObject データ型の変数を指定します。OpenUserObject は、開かれたユーザ オブジェクトの参照を userobjectvar に 格納します。 表示するユーザ オブジェクトの名前を表す文字列を指定 します。userobjecttype のデータ型は、userobjectvar の子孫 でなければなりません。 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す X 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す Y 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 どのユーザ オブジェクトを開くかが決まっている場合、構文 1 を使用 します。スクリプトの実行時に、アプリケーションがタブ ページとし て開くユーザ オブジェクトのデータ型を決める場合は、構文 2 を使用 します。 ユーザ オブジェクトのプロパティにアクセスする前にユーザ オブ ジェクトを開く必要があります。ユーザ オブジェクトを開く前にその プロパティにアクセスすると、実行時にエラーが発生します。 初期状態のウィンドウで定義されているユーザ オブジェクト(ウィン ドウ ペインタで追加されたウィンドウ)は、スクリプトで開く必要は ありません。このユーザ オブジェクトは、PowerBuilder がウィンドウ を開くときに開かれます。 OpenUserObject 関数は、新しく開かれたユーザ オブジェクトをウィン ドウ プロパティの Control 配列に追加します。Control 配列は、ウィン ドウのコントロールを格納します。 846 PowerBuilder 第 10 章 PowerScript の関数 実行時にユーザ オブジェクトを開く場合は、ウィンドウを閉じるとき にユーザ オブジェクトが自動的に破棄されません。通常はウィンドウ を閉じるときに、CloseUserObject 関数を呼び出してユーザ オブジェク トを破棄する必要があります。ユーザ オブジェクトを破棄しない場 合、メモリ内に保存され、メモリ リークの原因となります。 PowerBuilder はウィンドウを再表示するか、またはスクリプトの最後 の行を実行したときに(どちらかが先に起ったときに)、ユーザ オブ ジェクトを表示します。たとえば、スクリプトで複数のユーザ オブ ジェクトを開く場合、ほかの処理によって画面の外観が変更されない 限り、スクリプトが終了する時点で、すべてのユーザ オブジェクトが 同時に表示されます。たとえば、MessageBox 関数がメッセージを表示 したり、スクリプトがコントロールの表示プロパティを変更したりし ない限り、スクリプトが終了する時点で、すべてのユーザ オブジェク トが同時に表示されます。 userobjecttype 引数 構文 2 を使用すると、PowerBuilder は userobjecttype に指定されたデー タ型のユーザ オブジェクトのインスタンスを開き、変数 userobjectvar にこのインスタンスへの参照を格納します。スクリプトでインスタン スを参照するには、userobjectvar を使用します。 userobjecttype がユーザ オブジェクトの子孫である場合、userobjectvar の定義の一部であるプロパティ、イベント、関数、または構造体だけ を参照できます。たとえば、userobjecttype にユーザ イベントが定義さ れていた場合、そのイベントを参照することはできません。 実行モジュールを作成すると userobjecttype に指定されたオブジェク トは、自動的にはアプリケーションの実行ファイルには含まれません。 実行ファイルに含めるには、アプリケーションとともに配布する PBD ファイル(PowerBuilder 動的ライブラリ)に保存する必要があります。 例 次の例では、シングルライン エディット コントロールに入力された ユーザ オブジェクトの型を s_u_name に設定します。s_u_name で指定 されたユーザ オブジェクトのインスタンスをウィンドウ w_info の (100,200)に 表示し、そのユーザ オブジェクトへの参照を u_to_open に格納します。 DragObject u_to_open string s_u_name s_u_name = sle_user.Text w_info.OpenUserObject(u_to_open, s_u_name, 100, 200) 関連項目 OpenUserObjectWithParm PowerScript リファレンス ボリューム 2 847 OpenUserObjectWithParm OpenUserObjectWithParm OpenUserObject 関数と同様に、指定されたウィンドウにユーザ オブ ジェクトを追加し、そのユーザ オブジェクトのすべてのプロパティと コントロールをスクリプトで利用できるようにします。また、開かれ ているオブジェクトがパラメータにアクセスできるように、システム の Message オブジェクトにパラメータを格納します。 目的 使用する構文 特定のユーザ オブジェクトのインスタンスを開く 構文 1 スクリプトの実行時に、アプリケーションがユーザ オブ 構文 2 ジェクト データ型を選択することができるユーザ オブ ジェクトを開く 構文 1 データ型がわかっているユーザ オブジェクトを開く 機能 データ型がわかっているユーザ オブジェクトを開き、システムのメッ セージ オブジェクトにパラメータを保存します。 対象 ウィンドウ オブジェクト 構文 windowname.OpenUserObjectWithParm ( userobjectvar, parameter {, x, y } ) 引数 windowname userobjectvar parameter 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名前 を指定します。 表示するユーザ オブジェクトの名前を指定します。ユーザ オブジェクト ペインタで定義したユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenUserObjectWithParm は、開かれたユー ザ オブジェクトの参照を userobjectvar に格納します。 指定されたユーザ オブジェクトが開かれるときに Message オ ブ ジ ェ ク ト に 格 納 す る パ ラ メ ー タ を 指 定 し ま す。 parameter には、次のいずれかのデータ型の変数を指定し ます。 • String 型 • 数値型 x (オプション) 848 • PowerObject 型 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す X 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 PowerBuilder 第 10 章 PowerScript の関数 引数 y (オプション) 説明 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す Y 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。開かれているユーザ オブジェクトのスクリ プトは、次のいずれかのプロパティをチェックします。チェックされ るプロパティは、OpenUserObjectWithParm 関数で指定されたパラメータ のデータ型によって異なります。 Message オブジェクトの プロパティ message.DoubleParm message.PowerObjectParm message.StringParm パラメータのデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 NULL オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、NULL オブジェクト参照となり、エラーが発生します。たとえ ば、閉じられているウィンドウのコントロール名を渡した場合、その コントロールは、スクリプトがパラメータにアクセスするときには存 在しません。 OpenUserObject 関数の解説も参考にしてください。 OpenUserObjectWithParm 関数にも適用できる内容が記述されています。 PowerScript リファレンス ボリューム 2 849 OpenUserObjectWithParm 例 次の例は、ユーザ オブジェクト u_Employee のインスタンスをウィンド ウ w_emp に表示し、文字列 James Newton を Message.StringParm に格納 します。ユーザ オブジェクトの Constructor イベントに対するスクリプ ト で、文 字 列 パ ラ メ ー タ を ス タ テ ィ ッ ク テ キ ス ト コ ン ト ロ ー ル st_empname のテキストとして使用します。ユーザ オブジェクトを開く スクリプトには、次のステートメントが記述されています。 w_emp.OpenUserObjectWithParm(u_Employee, "Jim Newton") ユーザオブジェクトの Constructor イベントに対するスクリプトには、 次のステートメントが記述されています。 st_empname.Text = Message.StringParm 次の例は、ユーザ オブジェクト u_to_open のインスタンスをウィンド ウ w_emp に表示し、数値を message.DoubleParm に格納します。 u_employee u_to_open integer age = 50 w_emp.OpenUserObjectWithParm(u_to_open, age) 関連項目 CloseWithReturn OpenUserObject OpenWithParm 構文 2 データ型がわからないユーザ オブジェクトを開く 機能 スクリプトを実行するまでデータ型がわからないユーザ オブジェク トを開きます。また、開かれているオブジェクトがパラメータにアク セスできるように、システムの Message オブジェクトにパラメータを 格納します。 対象 ウィンドウ オブジェクト 構文 windowname.OpenUserObjectWithParm ( userobjectvar, parameter, userobjecttype {, x, y } ) 引数 windowname userobjectvar 850 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名前 を指定します。 DragObject データ型の変数を指定します。指定されたデータ 型で開かれたユーザ オブジェクトの参照を userobjectvar に格納します。 PowerBuilder 第 10 章 PowerScript の関数 引数 parameter 説明 指定されたユーザ オブジェクトが開かれるときに Message オ ブ ジ ェ ク ト に 格 納 す る パ ラ メ ー タ を 指 定 し ま す。 parameter には、次のいずれかのデータ型の変数を指定し ます。 • String 型 • 数値型 userobjecttype x (オプション) y (オプション) • PowerObject 型 表示するユーザ オブジェクトのデータ型を表す文字列を 指定します。userobjecttype のデータ型は、userobjectvar の 子孫でなければなりません。 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す X 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す Y 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。開かれているユーザ オブジェクトのスクリ プトは、次のいずれかのプロパティをチェックします。チェックされ るプロパティは、OpenUserObjectWithParm 関数で指定されたパラメータ のデータ型によって異なります。 Message オブジェクトの プロパティ message.DoubleParm message.PowerObjectParm message.StringParm パラメータのデータ型 数値型 PowerObject(ユ ー ザ 定 義 構 造 体 を 含 む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 PowerScript リファレンス ボリューム 2 851 OpenUserObjectWithParm NULL オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、NULL オブジェクト参照となり、エラーが発生します。たとえ ば、閉じられているウィンドウのコントロール名を渡した場合、その コントロールは、スクリプトがパラメータにアクセスするときには存 在しません。 OpenUserObject 関数の解説も参考にしてください。 OpenUserObjectWithParm 関数にも適用できる内容が記述されています。 例 次のステートメントは、u_benefit_plan 型のユーザ オブジェクト u_data のインスタンスを、ウィンドウ w_hresource の(20,100)の位置に表示 します。パラメータ Benefits は、message.StringParm に格納されます。 DragObject u_data w_hresource.OpenUserObjectWithParm(u_data, & "Benefits", "u_benefit_plan", 20, 100) 次の例は、文字列 s_u_name に指定された型のユーザ オブジェクトを 開き、変数 u_to_open にユーザ オブジェクトへの参照を格納します。 s_u_name の値は、データベースから開かれるユーザ オブジェクトの型 を検索します。パラメータはシングルライン エディット コントロール sle_loc に入力されているテキストなので、message.StringParm に格納さ れます。ユーザ オブジェクトは、ウィンドウ w_info の標準の(0,0)の 位置に表示されます。 DragObject u_to_open string s_u_name, e_location e_location = sle_location.Text SELECT next_userobj INTO FROM routing_table WHERE ... ; :s_u_name w_info.OpenUserObjectWithParm(u_to_open, & e_location, s_u_name) 次の例は、文字列 s_u_name に指定された型のユーザ オブジェクトを 開き、変数 u_to_open にユーザ オブジェクトへの参照を格納します。 指定されたパラメータは数値なので、message.DoubleParm に格納され ます。ユーザ オブジェクトは、ウィンドウ w_emp の(100,200)の位 置に表示されます。 852 PowerBuilder 第 10 章 PowerScript の関数 userobject u_to_open integer age = 60 string s_u_name s_u_name = sle_user.Text w_emp.OpenUserObjectWithParm(u_to_open, age, & s_u_name, 100, 200) 関連項目 CloseWithReturn OpenUserObject OpenWithParm OpenWithParm Open 関数と同様に、ウィンドウを表示して、そのすべてのプロパティ とコントロールをスクリプトで使用できるようにします。また、開か れたウィンドウがパラメータにアクセスできるように、システムの Message オブジェクトにパラメータを格納します。 目的 使用する構文 特定のウィンドウ データ型のインスタンスを開く 構文 1 スクリプトの実行時に、アプリケーションがウィンドウの 構文 2 データ型を選択することができるようにする 構文 1 データ型がわかっているウィンドウを開く 機能 デ ー タ 型 が わ か っ て い る ウ ィ ン ド ウ オ ブ ジ ェ ク ト を 開 き ま す。 OpenWithParm 関数は、ウィンドウを表示し、すべてのプロパティとコ ントロールをスクリプトで使用できるようにします。また、システム の Message オブジェクトにパラメータを格納します。 対象 ウィンドウ オブジェクト PowerScript リファレンス ボリューム 2 853 OpenWithParm 構文 OpenWithParm ( windowvar, parameter {, parent } ) 引数 windowvar parameter 説明 表示するウィンドウの名前を指定します。ウィンドウ ペイ ンタで定義されたウィンドウ オブジェクト(ウィンドウの データ型)、または、ウィンドウのデータ型の変数を指定 します。OpenWithParm 関数は、windowvar に開かれたウィ ンドウの参照を渡します。 指定された Window オブジェクトが開かれるときに Message オブジェクトに格納するパラメータです。parameter には、 次のいずれかのデータ型の変数を指定します。 • String 型 • 数値型 • PowerObject 型 parent (チャイルド ウィンドウ、 ポップアップ ウィンドウの 場合)(オプ ション) 開くチャイルド ウィンドウまたはポップアップ ウィンド ウの親ウィンドウを指定します。チャイルド ウィンドウま たはポップアップ ウィンドウを開く場合に parent を省略 すると、現在アクティブなウィンドウが親ウィンドウにな ります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。OpenWithParm 関数のパラメータに指定され たデータ型に対応するプロパティに値が格納されます。パラメータの データ型と Message オブジェクトのプロパティの対応を次に示しま す。 Message オブジェクトの プロパティ Message.DoubleParm Message.PowerObjectParm パラメータのデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 Message.StringParm String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 854 PowerBuilder 第 10 章 PowerScript の関数 NULL オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、NULL オブジェクト参照となり、エラーが発生します。たとえ ば、閉じられているウィンドウのコントロール名を渡した場合、その コントロールは、スクリプトがパラメータにアクセスするときには存 在しません。 複数の値を構造体として渡す場合 複数の値を渡すには、値を格納するためのユーザ定義の構造体を作成 し、開かれたウィンドウにおけるメッセージ オブジェクトの PowerObjectParm プロパティにアクセスします。構造体は、参照として ではなく、値として渡されるので、ユーザ定義構造体が破棄された場 合でも情報にアクセスできます。 Open 関数の解説も参考にしてください。OpenWithParm 関数にも適用で きる内容が記述されています。 例 次の例は、ウィンドウのインスタンス w_employee を開いて、指定され た文字列パラメータを Message.StringParm に格納します。ウィンドウ の Open イベントに対するスクリプトでは、この文字列パラメータを スタティックテキスト コントロール st_empname のテキストとして使 用します。ウィンドウを開くスクリプトには、次のステートメントが 記述されています。 OpenWithParm(w_employee, "James Newton") ウィンドウの Open イベントに対するスクリプトには、次のステート メントが記述されています。 st_empname.Text = Message.StringParm 次の例は、w_employee 型のウィンドウのインスタンスを開きます。指 定されたパラメータは数値なので、Message.DoubleParm に格納されま す。 w_employee w_to_open integer age = 50 OpenWithParm(w_to_open, age) PowerScript リファレンス ボリューム 2 855 OpenWithParm 次の例は、チャイルド ウィンドウのインスタンス cw_data を開き、 w_employee を親ウィンドウにします。ウィンドウ w_employee は開いて いる必要があります。指定したパラメータ benefit_plan は文字列なの で、Message.StringParm に格納されます。 OpenWithParm(cw_data, "benefit_plan", w_employee) 関連項目 CloseWithReturn Open 構文 2 データ型がわからないウィンドウを開く 機能 アプリケーションが実行されるまでデータ型がわからないウィンドウ オブジェクトを開きます。OpenWithParm 関数は、ウィンドウを表示し、 すべてのプロパティとコントロールをスクリプトで使用できるように します。また、システムの Message オブジェクトにパラメータを格納 します。 対象 ウィンドウ オブジェクト 構文 OpenWithParm ( windowvar, parameter, windowtype {, parent } ) 引数 windowvar parameter 説明 ウィンドウ オブジェクトの変数を指定します。 OpenWithParm 関数は、windowvar に開かれたウィンドウ の参照を渡します。 指定されたウィンドウ オブジェクトが開かれるときに メッセージ オブジェクトに格納するパラメータ。 parameter には、次のいずれかのデータ型の変数を指定し ます。 • String 型 • 数値型 windowtype parent (チャイルド ウィンドウ、 ポップアップ ウィンドウの 場合) 856 • PowerObject 型 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、windowvar と同じ か、または子孫までなければなりません。 これから開くチャイルド ウィンドウまたはポップアップ ウィンドウの親ウィンドウにするウィンドウを指定しま す。チャイルド ウィンドウまたはポップアップ ウィンド ウを開く場合に parent を省略すると、現在アクティブな ウィンドウが親ウィンドウになります。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。OpenWithParm 関数のパラメータに指定され たデータ型に対応するプロパティに値が格納されます。パラメータの データ型と Message オブジェクトのプロパティの対応を次に示します。 Message オブジェクトの プロパティ Message.DoubleParm Message.PowerObjectParm Message.StringParm パラメータのデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 NULL オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、NULL オブジェクト参照となり、エラーが発生します。たとえ ば、閉じられているウィンドウのコントロール名を渡した場合、その コントロールは、スクリプトがパラメータにアクセスするときには存 在しません。 複数の値を構造体として渡す場合 複数の値を渡すには、値を格納するためのユーザ定義の構造体を作成 し、開かれたウィンドウにおけるメッセージ オブジェクトの PowerObjectParm プロパティにアクセスします。構造体は、参照として ではなく、値として渡されるので、ユーザ定義構造体が破棄された場 合でも情報にアクセスできます。 Open 関数の解説も参考にしてください。OpenWithParm 関数にも適用で きる内容が記述されています。 PowerScript リファレンス ボリューム 2 857 OpenWithParm 例 次の例は、文字列 s_w_name で指定したデータ型のウィンドウを開き、 変数 w_to_open にそのウィンドウの参照を格納します。開くウィンド ウのデータ型の文字列である s_w_name の値をデータベースから取得 します。e_location で指定されたパラメータはテキストなので、 Message.StringParm に格納されます。 window w_to_open string s_w_name, e_location e_location = sle_location.Text SELECT next_window INTO :s_w_name FROM routing_table WHERE ... ; OpenWithParm(w_to_open, e_location, s_w_name) 次の例は、文字列 c_w_name で指定された型のウィンドウを開いて、変 数 wc_to_open にウィンドウへの参照を渡します。w_emp を wc_to_open の親ウィンドウに指定します。指定されたパラメータは数値なので、 Message.DoubleParm に格納されます。 window wc_to_open string c_w_name integer age = 60 c_w_name = "w_c_emp1" OpenWithParm(wc_to_open, age, c_w_name, w_emp) 関連項目 858 CloseWithReturn Open PowerBuilder 第 10 章 PowerScript の関数 OutgoingCallList 機能 パフォーマンス解析モデルに含まれているルーチンの呼び出し情報の リストを提供します。 対象 ProfileLine オブジェクト、ProfileRoutine オブジェクト 構文 instancename.OutgoingCallList ( list, aggregate ) 引数 instancename list aggregate (ProfileRoutine のみ) 戻り値 解説 説明 ProfileLine オブジェクトまたは ProfileRoutine オブジェク トのインスタンス名を指定します。 ProfileCall 型の可変長配列変数を指定します。指定された ルーチン内からの別ルーチンの呼び出しごとに、 OutgoingCallList 関数は ProfileCall オブジェクトを 1 つ作成 してこの変数に格納します。この引数は、参照渡しされ ます。 Boolean 型の値。呼び出しが複数回発生した場合に、 ProfileCall オブジェクトを 1 つだけ作成するか、または複 数作成するかどうかを指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しません。 OutgoingCallList 関数を使うと、 ある特定のスクリプトの行またはルーチ ンから、パフォーマンス解析モデルに含まれるルーチンを呼び出して いる場合に、その情報のリストを取得できます。BuildModel 関数を使っ てトレース ファイルからパフォーマンス解析モデルをあらかじめ作 成しておかなければなりません。呼び出し側ルーチンはそれぞれ、 ProfileCall オブジェクトとして定義されます。このオブジェクトには、 呼び出されるルーチン、呼び出すルーチン、呼び出し回数、および処 理時間が書き込まれます。リスト中のルーチンの並び方に、特に規則 性はありません。 PowerScript リファレンス ボリューム 2 859 OutgoingCallList aggregate 引 数 は、ル ー チ ン の 呼 び 出 し が 複 数 回 発 生 す る 場 合 に、 ProfileCall オブジェクトを 1 つだけ作成するか、または複数作成するか どうかを示します。この引数が有効になるのは、ライン トレースを行 うように設定されていて、呼び出し側ルーチンが呼び出し先ルーチン を、異なる複数のラインから呼び出している場合だけです。aggregate が TRUE である場合、新規作成される ProfileCall オブジェクトは 1 つ だけであり、呼び出し側ルーチンから呼び出し先ルーチンへの呼び出 しの情報はすべて、このオブジェクトに 1 つにまとめられます。 aggregate が FALSE である場合、ProfileCall オブジェクトは複数作成さ れ、呼び出し側ルーチンが呼び出し先ルーチンを呼び出している 1 ラ インに対し、1 つのオブジェクトが対応します。 例 次の例では、パフォーマンス解析モデルに含まれるルーチンのリスト を取得し、次に、そのリスト内の個々のルーチンが呼び出しているルー チンのリストを取得します。 Long ll_cnt ProfileCall lproc_call[] lpro_model.BuildModel() lpro_model.RoutineList(iprort_list) FOR ll_cnt = 1 TO UpperBound(iprort_list) iprort_list[ll_cnt].OutgoingCallList(lproc_call, & TRUE) ... NEXT 関連項目 860 BuildModel IncomingCallList PowerBuilder 第 10 章 PowerScript の関数 PageCount 機能 リッチテキスト エディット コントロールの文書全体のページ数を返 します。 対象 リッチテキスト エディット コントロール 構文 rtename.PageCount ( ) 引数 rtename 説明 ページ数を調べるリッチテキスト エディット コントロー ルの名前を指定します。 戻り値 Integer 型。リッチテキスト エディット コントロールのページ数を返し ます。コントロールにテキストがない場合は 1 を返し、エラーが発生 した場合は -1 を返します。 解説 文書のページ数は、テキストの量や、ページのサイズ、余白、フォン トのサイズなどのレイアウトの仕様によって決まります。 リッチテキスト エディットコントロールがデータウィンドウとデー タを共有すると、データウィンドウの行ごとに文書のインスタンスが 作成されます。PageCount 関数は、1 つのインスタンスのページ数を報 告します。ページ数の合計を取得するには、データウィンドウ関数の RowCount 関数の戻り値にページ数を掛けます。 例 次の例は、リッチテキスト エディット コントロール rte_1 の文書の ページ数をスタティックテキスト コントロール st_status のテキストと して表示します。 st_status.Text = String(rte_1.PageCount()) 関連項目 LineCount LineLength 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RowCount メソッド PowerScript リファレンス ボリューム 2 861 PageCreated PageCreated 機能 指定したタブ ページがすでに作成されているかどうかを報告します。 対象 タブ ページとして使用されているユーザ オブジェクト 構文 userobject.PageCreated ( ) 引数 userobject 説明 存在するかどうかをテストしたいタブ ページの名前を指 定します。 戻り値 Boolean 型。指定されたユーザ オブジェクトがタブ ページであって、 すでに作成済みである場合は、TRUE を返します。それ以外の場合は、 FALSE を返します。 解説 多くのコントロールを含むタブ ページを画面に描画するのを後まわ しにすれば、ウィンドウが開くまでの時間を短縮できます。ただしそ の場合、タブ ページに対する Constructor イベントが実行されてコント ロールが画面に描画されるまでは、スクリプトからタブ ページ上のコ ントロールを参照できません。タブ コントロールの CreateOnDemand プロパティが選択されている場合は、ユーザがそのタブ ページを表示 するまでは、スクリプトからそのタブ ページ上のコントロールを参照 できません。PageCreated 関数を使うと、特定のタブ ページがすでに作 成されているかどうかをテストできます。 例 次の例では、tabpage_2 がすでに作成されているかどうかをテストし、 作成されていない場合は、このタブ ページを作成します。 IF tab_1.CreateOnDemand = True THEN IF tab_1.tabpage_2.PageCreated() = False THEN tab_1.tabpage_2.CreatePage() END IF END IF 関連項目 862 CreatePage PowerBuilder 第 10 章 PowerScript の関数 ParentWindow 機能 親ウィンドウを取得します。 対象 ウィンドウ オブジェクト 構文 windowname.ParentWindow ( ) 引数 windowname 説明 親ウィンドウを取得するウィンドウ オブジェクトの名前 を指定します。 戻り値 Window 型。windowname で指定されたウィンドウの親ウィンドウを返 します。エラーが発生した場合、または windowname が NULL の場合に は、NULL オブジェクトへの参照を返します。 解説 ParentWindow 関数で代名詞 Parent を使用すると、実際のウィンドウ名 を指定しないので、より汎用的なスクリプトを記述することができま す。Parent は現行のオブジェクトまたはコントロールを含むウィンド ウ(ローカル環境)を参照します。ParentWindow 関数は、指定された ウィンドウの親ウィンドウを返します。 ウィンドウが親ウィンドウを持つかどうかは、ウィンドウのデータ型 とウィンドウが開かれた方法に依存します。ウィンドウを開くときに、 親ウィンドウを指定することができます。常に親ウィンドウを持つ ウィンドウに対して親ウィンドウが指定されていない場合、PowerBuilder が親ウィンドウを選択します。レスポンス ウィンドウとチャイルド ウィンドウは、常に親ウィンドウを持ちます。MDI アプリケーション のシートの親ウィンドウは、MDI フレーム ウィンドウです。 ポップアップ ウィンドウは、ほかのウィンドウから開かれる場合には 親ウィンドウを持ちますが、MDI アプリケーション内で使用される場 合の親は、MDI フレームです。なお、アプリケーションの Open イベ ントに対するスクリプトから開かれた場合は、親ウィンドウを持ちま せん。 メニュー オブジェクトの ParentWindow プロパティは、Menu スクリプ ト内では代名詞として使用できます。このプロパティは、実行時にそ のメニュー項目と関連付けられているウィンドウを識別します。詳細 については、 『PowerBuilder ユーザーズ ガイド』マニュアルを参照して ください。 例 次の例は、child_1 の親ウィンドウ(データ型 Win1 のウィンドウ)を返 します。 Win1 w_parent w_parent = child_1.ParentWindow() PowerScript リファレンス ボリューム 2 863 Paste 次のステートメントは、ポップアップ ウィンドウの[キャンセル]ボ タンのスクリプトです。ボタンの親ウィンドウ(ボタンを含むウィン ドウ)の親ウィンドウのイベントを起動し、ボタンの親ウィンドウを 閉じます。続いて、ボタンのウィンドウが閉じます。ボタンのウィン ドウの親ウィンドウには、イベント cancelrequested に対するスクリプ トが定義されています。 Parent.ParentWindow().TriggerEvent("cancelrequested") Close(Parent) Paste 機能 クリップボードの内容を指定されたコントロールに挿入します(貼り 付けます)。編集可能なコントロールを対象とする場合、クリップボー ドのテキストを挿入ポイントに貼り付けます。OLE コントロールを対 象とする場合、クリップボードの OLE オブジェクトをコントロール内 の既存のオブジェクトに置き換えます。 対象 エディットマスク コントロール、インクエディット コントロール、マ ルチライン エディット コントロール、シングルライン エディット コ ントロール、リッチテキスト エディット コントロール、ドロップダウ ン リストボックス コントロール、ドロップダウン ピクチャ リスト ボックス コントロール、データウィンドウ コントロール、OLE コン トロール 構文 controlname.Paste ( ) 引数 controlname 説明 データウィンドウ、エディットマスク、InkEdit、マルチラ イン エディット、シングルライン エディット、リッチテ キスト エディット、ドロップダウン リストボックス、ド ロップダウン ピクチャ リストボックス、OLE のいずれか のコントロールの名前。クリップボードの内容の貼り付け 先を指定します。 controlname がデータウィンドウ コントロールの場合、エ ディット コントロールの現行の行とカラムの上にテキス トを貼り付けます。 controlname にドロップダウン リストボックス コントロー ルまたはドロップダウン ピクチャ リストボックス コント ロールを指定する場合、AllowEdit プロパティは TRUE で なければなりません。 864 PowerBuilder 第 10 章 PowerScript の関数 戻り値 データウィンドウ、InkEdit、およびリストボックスの 場合は Integer 型、 ほかのコントロールの場合は Long 型 エディット コントロールを対象とする場合、controlname に指定された コントロールに貼り付けられた文字数を返します。切り取りやコピー が行われていない場合(クリップボードが空の場合)、Paste 関数はエ ディット コントロールの内容を変更せずに、0 を返します。クリップ ボードにテキスト以外のデータ(ビットマップや OLE オブジェクトな ど)が格納されており、コントロールがそのデータを受け付けること ができない場合、Paste 関数はコントロールの内容を変更せずに、0 を 返します。 OLE コントロールを対象とする場合、正常に終了したときには 0 を返 します。エラーが発生したときには、次のいずれかの負の値を返しま す。 -1 クリップボードにデータがないか、またはクリップボードの内 容を埋め込むことができません。 -9 そのほかのエラーです。 解説 編集可能なコントロールでは、controlname でテキストが選択される と、Paste 関数はそのテキストをクリップボードの内容と置き換えま す。エディット コントロールに格納できる行数より多くの行がクリッ プボードに格納されている場合には、格納できるだけの行数を貼り付 けます。 データウィンドウ コントロールでは、現行の行とカラム上にあるエ ディット コントロールにテキストを貼り付けます。そのカラムに格納 できる行数より多くのテキストがクリップボードに格納されている場 合、格納できるだけのテキストを貼り付け、残りは切り捨てます。ク リップボードのテキストがカラムのデータ型と一致しない場合には、 すべてのテキストが切り捨てられるため、選択したテキストは空の文 字列("")に置き換えられます。 リッチテキスト エディット コントロールには、テキストだけでなく、 ビットマップも貼り付けることができます。 特定の文字列を controlname に挿入したり、選択したテキストを特定の 文字列に置き換えたりするには、ReplaceText 関数を使用します。 Paste 関数を使用して OLE オブジェクトを OLE コントロールに貼り付 ける場合、データは PowerBuilder アプリケーションにリンクされるわ けではなく、埋め込まれます。 PowerScript リファレンス ボリューム 2 865 PasteLink 例 クリップボードに Proposal good for 90 days という文字列が格納され、テ キストが選択されていない場合、次のステートメントは、mle_Comment1 の挿入ポイントに Proposal good for 90 days を貼り付けて 25 を返します。 mle_Comment1.Paste() クリップボードに Final Edition という文字列が格納され、mle_Comment2 に This is a Preliminary Draft という文字列が格納されているとします。 mle_Comment2 のテキストを選択すると、次のステートメントは、This is a Preliminary Draft を削除して Final Edition に置き換え、13 を返します。 mle_Comment2.Paste() クリップボードに OLE オブジェクトが格納されている場合、次のス テートメントは、クリップボードの内容を ole_1 コントロールに貼り付 け、0 を返します。 ole_1.Paste() 関連項目 Copy Cut PasteLink PasteSpecial ReplaceText PasteLink 機能 クリップボードの内容に対するリンクを OLE コントロールに貼り付 けます。クリップボード上のオブジェクトに対するサーバ アプリケー ションを実行している必要があります。 対象 OLE コントロール 構文 olecontrol.PasteLink ( ) 引数 olecontrol 戻り値 説明 クリップボードの OLE オブジェクトの貼り付け先である OLE コントロールの名前を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 データがないか、クリップボードの内容がリンクできません。 そのほかのエラーです。 olecontrol が NULL の場合、NULL を返します。 866 PowerBuilder 第 10 章 PowerScript の関数 解説 OLE をサポートするアプリケーションからクリップボードにデータを コピーする場合に、サーバ アプリケーションが実行中のときは、ク リップボード上のオブジェクトが、元のオブジェクトのリンクを持っ ているので、そのリンクを持たせたまま OLE コントロールにオブジェ クトを貼り付けることができます。OLE コントロールに貼り付けたオ ブジェクトの元のオブジェクトの情報は、サーバ アプリケーションが 実行している間だけ利用できます。ただし、OLE オブジェクトがライ ブラリのオブジェクトまたはウィンドウのコントロールの定義に使用 されている場合、PowerBuilder は元のオブジェクトの情報を持ってい ます。このため、開発者がサーバ アプリケーションの実行について考 慮する必要はありません。PowerBuilder は OLE オブジェクトから元の オブジェクトのリンクを実現するために、サーバ アプリケーションを バックグラウンドで実行します。 PasteLink 関数がエラーになるのは、エンド ユーザがサーバ アプリケー ションに切り替えてデータをコピーし、サーバ アプリケーションを終 了した後、PasteLink 関数を使用して PowerBuilder アプリケーションに コピーしたオブジェクトを貼り付けてリンクする場合です。 例 クリップボードが OLE オブジェクトを格納し、オブジェクトのサーバ アプリケーションが実行中であるものとします。次の例は、ole_1 にク リップボードの中の OLE オブジェクトを貼り付け、li_result に 0 を設 定します。 integer li_result li_result = ole_1.PasteLink() 関連項目 LinkTo Paste PasteSpecial PasteRTF 機能 文字列のリッチテキスト形式のデータを、データウィンドウ コント ロール、データストア オブジェクト、またはリッチテキスト エディッ ト コントロールに貼り付けます。 対象 データウィンドウ コントロール、データストア オブジェクト、リッチ テキスト エディット コントロール PowerScript リファレンス ボリューム 2 867 PasteRTF 構文 rtename.PasteRTF ( richtextstring, { band } ) 引数 rtename richtextstring band (オプション) 説明 データをリッチテキスト形式で貼り付けるデータウィン ドウ コントロール、データストア オブジェクト、または リッチテキスト エディット コントロールの名前を指定し ます。データウィンドウ コントロール(またはデータスト ア)のデータウィンドウ オブジェクトは、リッチテキスト エディット データウィンドウでなければなりません。 String 型の値。リッチテキスト形式のデータを指定します。 リッチテキスト形式のデータを貼り付ける区域を指定す る Band カタログ データ型の値。値は以下のとおりです。 • Detail! − 詳細区域 • Header! − ヘッダ区域 • Footer! − フッタ区域 特に指定しない限り、挿入ポイントがある区域のテキスト が選択されます。 戻り値 Long 型。正常に終了した場合は貼り付けられた文字数を返し、エラー が発生した場合は -1 を返します。richtextstring の値が NULL の場合、 NULL を返します。 解説 提示様式がリッチテキストのデータウィンドウには、3 つの区域しか ありません。サマリー区域とトレーラ区域はありません。また、グルー プ ヘッダ区域やグループ フッタ区域もありません。 例 次のステートメントは、リッチテキスト エディット コントロール rte_message のヘッダ区域に、文字列 ls_richtext のリッチテキストを貼 り付けます。 string ls_richtext rte_message.PasteRTF(ls_richtext, Header!) 関連項目 868 CopyRTF PowerBuilder 第 10 章 PowerScript の関数 PasteSpecial 機能 OLE オブジェクトを特定のコントロールに貼り付けるときに、標準の OLE ダイアログボックスを表示し、エンド ユーザが OLE オブジェク トを埋めこむのか、リンクするのかを選択できるようにします。埋め 込みを選択した場合の結果は、Paste 関数を使用した場合と同じです。 リンクを選択した場合の結果は、PasteLink 関数を使用した場合と同じ です。 対象 OLE コントロール 構文 olecontrol.PasteSpecial ( ) 引数 olecontrol 戻り値 説明 クリップボードの OLE オブジェクトの貼り付け先である OLE コントロールの名前を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 1 エンド ユーザが挿入位置を指定せずにキャンセルしました。 -1 データがありません。 -9 そのほかのエラーです。 olecontrol が NULL の場合、NULL を返します。 解説 クリップボードに含まれているオブジェクトを、リンクするタイミン グについては PasteLink 関数を参照してください。 例 クリップボードに OLE オブジェクトが含まれていて、オブジェクトの サーバ アプリケーションが実行中であるとします。次の例は、コント ロール ole_1 にオブジェクトを埋め込むかリンクするかをエンド ユー ザが選択できます。 integer li_result li_result = ole_1.PasteSpecial() 関連項目 LinkTo Paste PasteLink PowerScript リファレンス ボリューム 2 869 Pi Pi 機能 指定された数値に pi(円周率)を掛けます。 構文 Pi ( n ) 引数 n 説明 pi(円周率 3.14159265358979323)を掛ける数値を指定しま す。 戻り値 Double 型。正常に終了した場合は n × pi の結果を返し、エラーが発生 した場合には -1 を返します。n が NULL の場合、NULL を返します。 解説 Pi 関数は、 角度と弧度(ラジアン)を互いに変換する場合に使用します。 例 次の例は、pi(円周率)を返します。 Pi(1) 次の 2 つのステートメントは、どちらも半径 id_Rad の円の面積を返し ます。id_Rad は、Double 型のインスタンス変数を指定します。 Pi(1) * id_Rad^2 Pi(id_Rad^2) 次の例は、45 度の余弦(コサイン)を計算します。 real degree = 45.0, cosine cosine = Cos(degree * (Pi(2)/360)) 関連項目 870 Cos Sin Tan 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Pi メソッド PowerBuilder 第 10 章 PowerScript の関数 PixelsToUnits 機能 ピクセル単位の数値を、PowerBuilder 単位系に変換します。通常、ピ クセルは 1 次元なので、変換するピクセルが水平方向か垂直方向かを 指定します。 構文 PixelsToUnits ( pixels, type ) 引数 pixels type 説明 PowerBuilder 単位系に変換するピクセル数を表す Integer 型の数値を指定します。 変換方法を指定する ConvertType カタログ データ型の値を 指定します。 • XPixelsToUnits! − 水平方向のピクセルを変換します。 • YPixelsToUnits! − 垂直方向のピクセルを変換します。 戻り値 Integer 型。正常に終了した場合は変換後の値を返し、エラーが発生し た場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を 返します。 例 次の例は、水平方向の 35 ピクセルを PowerBuilder 単位系に変換し、変 換した値を Value に設定します。 integer Value Value = PixelsToUnits(35, XPixelsToUnits!) 関連項目 UnitsToPixels PowerScript リファレンス ボリューム 2 871 Play Play 機能 アニメーション AVI クリップの再生を開始します。 対象 アニメーション コントロール 構文 animationname.Play ( from, to, replay ) 引数 animationname from to replay 説明 AVI クリップを表示するアニメーション コントロールの 名前を指定します。 0 ∼ 65,535 の Long 型の値。再生を開始するフレームを指 定します。値 0 の場合は最初のフレームからクリップを再 生します。 -1 ∼ 65,535 の Long 型の値。再生を終了するフレームを指 定します。値 -1 の場合は最後のフレームでクリップの再 生を終了します。 -1 ∼ 65,535 の Long 型の値。クリップを再生する回数を指 定します。値 -1 の場合、クリップの再生は無期限に継続 されます。 戻り値 Integer 型。成功した場合は 1、失敗した場合は -1 を返します。 解説 Play 関数は、開かれている AVI ファイルをアニメーション コントロー ルで再生します。指定範囲外の値を引数に指定した場合、Play 関数は 何も実行しないで -1 を返します。 例 次の例は、最初のフレームから AVI クリップの再生を開始し、最後の フレームまで再生した後、無期限に再生を続けます。 integer li_return li_return = am_1.Play(0, -1, -1) 関連項目 872 Stop PowerBuilder 第 10 章 PowerScript の関数 PointerX 機能 指定されたオブジェクトの左端からポインタまでの距離を返します。 対象 すべてのオブジェクトとコントロール 構文 objectname.PointerX ( ) 引数 objectname 戻り値 説明 コントロールまたはウィンドウの名前を指定し、その左端 からポインタまでの距離を返します。objectname を省略す ると、現行のシートまたはウィンドウの左端からの距離が 返されます。 Integer 型。正常に終了した場合、objectname で指定されたコントロー ルまたはウィンドウの左端からポインタまでの距離(PowerBuilder 単 位系)を返し、エラーが発生した場合には -1 を返します。objectname が NULL の場合、NULL を返します。 例 次の例は、ウィンドウのコントロールのスクリプトです。ウィンドウ の端からポインタまでの距離を変数 li_dist に格納します。ウィンドウ の左端からポインタまでの距離が 5 の場合、li_dist は 5 になります。 integer li_dist li_dist = Parent.PointerX() 次のステートメントは、コントロールの RButtonDown イベントに対す るスクリプトです。ポップアップ メニュー m_Appl.M_Help をカーソル の位置に表示します。 m_Appl.m_Help.PopMenu(Parent.PointerX(), & Parent.PointerY()) 上記の操作を、ウィンドウのコントロールのスクリプトではなく、ウィ ンドウの RButtonDown イベントのスクリプトに記述すると、次の文の ようになります。次のステートメントは、ウィンドウ上のカーソルの 位置にポップアップ メニューを表示します。 m_Appl.m_Help.PopMenu(This.PointerX(), & This.PointerY()) 関連項目 PointerY PopMenu WorkSpaceHeight WorkSpaceWidth WorkSpaceX WorkSpaceY PowerScript リファレンス ボリューム 2 873 PointerY PointerY 機能 指定されたオブジェクトの上端からポインタまでの距離を返します。 対象 すべてのオブジェクトとコントロール 構文 objectname.PointerY ( ) 引数 objectname 説明 コントロールまたはウィンドウの名前を指定し、その上端 からポインタまでの距離を返します。objectname を省略す ると、現行のシートまたはウィンドウの上端からの距離が 返されます。 戻り値 Integer 型。正常に終了した場合は objectname で指定されたコントロー ルまたはウィンドウの上端からポインタまでの距離(PowerBuilder 単 位系)を返し、エラーが発生した場合には -1 を返します。objectname が NULL の場合、NULL を返します。 例 次の例は、ウィンドウのコントロールのスクリプトです。ウィンドウ の上端からポインタまでの距離を変数 li_dist に格納します。ウィンド ウの上端からポインタまでの距離が 10 の場合、li_dist は 10 になりま す。 integer li_Dist li_Dist = Parent.PointerY() 次のステートメントは、コントロールの RButtonDown イベントに対す るスクリプトです。ポップアップ メニュー m_Appl.M_Help をカーソル の位置に表示します。 m_Appl.M_Help.PopMenu(Parent.PointerX(), & Parent.PointerY()) 関連項目 874 PointerX PopMenu WorkSpaceHeight WorkSpaceWidth WorkSpaceX WorkSpaceY PowerBuilder 第 10 章 PowerScript の関数 PopMenu 機能 指定された位置にメニューを表示します。 対象 メニュー オブジェクト 構文 menuname.PopMenu ( xlocation, ylocation ) 引数 menuname xlocation ylocation 説明 指定された位置に表示するメニューバーのメニュー オブ ジェクト名を指定します。 表示するメニューからウィンドウの左端までの距離 (PowerBuilder 単位系)を指定します。 表示するメニューからウィンドウの上端までの距離 (PowerBuilder 単位系)を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 メニューを関連付けずに定義したウィンドウを開いたときに、メ ニューを関連付けるには、CREATE 文を使用してメニューにメモリを割 り当てる必要があります。詳細については、最後の例を参照してくだ さい。 メニュー項目の Visible プロパティが FALSE の場合、ポップアップ メ ニューを表示する前に、プロパティを TRUE に変更してください。 PopMenu に対して指定する座標は、アクティブなウィンドウ上の座標 です。MDI アプリケーションでは、座標はアクティブなフレーム ウィ ンドウ上の座標です。カーソル位置にメニューを表示するには、アク ティブなウィンドウ(MDI アプリケーション内のフレーム ウィンド ウ)に対して PointerX 関数と PointerY 関数を呼び出し、カーソル座標 を取得します。詳細については「例」を参照してください。 オブジェクトのスクリプトから PopMenu 関数を呼び出す PopMenu 関数は、オブジェクトのスクリプトから呼び出します。グロー バル関数からは呼び出さないでください。 例 次の例は、メニュー項目 m_Emp.M_Procedures を(100,200)の位置に表 示します。m_Emp はウィンドウに関連付けられたメニューです。 m_Emp.M_Procedures.PopMenu(100, 200) 次の例は、メニュー m_Appl.M_File をカーソルの位置に表示します。 m_Appl は、ウィンドウに関連付けられたメニューです。 m_Appl.M_file.PopMenu(PointerX(), PointerY()) PowerScript リファレンス ボリューム 2 875 PopulateError 次の例は、ポップアップ メニューをカーソルの位置に表示します。 Menu4 はメニュー ペインタで作成され、m_language というメニュー項 目を持っています。Menu4 はアクティブ ウィンドウのメニューではあ りません。NewMenu は Menu4 のインスタンスです(Menu4 データ型)。 Menu4 NewMenu NewMenu = CREATE Menu4 NewMenu.m_language.PopMenu(PointerX(), PointerY()) 最後のステートメントは、MDI アプリケーションで、ポインタ関数を MDI フレームに対するオブジェクト関数として使用しています。 NewMenu.m_language.PopMenu( & w_frame.PointerX(), w_frame.PointerY()) PopulateError 機能 SystemError イベントをトリガさせずに、エラー オブジェクトにエラー 情報を格納します。 構文 PopulateError ( number, text ) 引数 number text 説明 エラー オブジェクトの数値プロパティに格納すべき整数 を指定します。 エラー オブジェクトのテキスト プロパティに格納すべき 文字列を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。通常、戻り値は使用されません。 解説 エラー オブジェクトに格納しようとする値が、スクリプト内のある変 数の実行時の値によって変わる場合は、この PopulateError 関数を使っ て、エラー オブジェクトの数値項目とテキスト項目に値を割り当てる ことが可能です(エラーが発生した行番号などの、エラー オブジェク ト の そ の ほ か の 項 目 に は、自 動 的 に 値 が 設 定 さ れ ま す)。次 に、 SignalError 関数を引数なしで呼び出し、SystemError イベントをトリガ させます。SystemError イベントのスクリプトには、独自のエラー番号 に 対 す る エ ラ ー を 処 理 す る よ う に 記 述 す る 必 要 が あ り ま す。 SystemError イベントに対するスクリプトがないときは、SignalError 関 数は何もしません。 876 PowerBuilder 第 10 章 PowerScript の関数 例 gf_DoSomething 関数はテーブル名とレコードを受け取り、成功した場 合は 0、エラーの場合は負の値を返します。次の例では、あるスクリ プト変数の実行時の値に従って、エラー オブジェクトの数値項目とテ キスト項目に値を設定します。次に、処理が終了した後で、SystemError イベントをトリガさせます。 li_result = gf_DoSomething("Company", record_id) IF (li_result < 0) THEN CHOOSE CASE li_result CASE -1 PopulateError(1, "No company record exists & record id: " + record_id) CASE -2 PopulateError(2, "That company record is & currently locked. Please try again later.") CASE -3 PopulateError(3, "The company record could & not be updated.") CASE else PopulateError(999, "Update failed.") END CHOOSE SignalError() END IF 関連項目 SignalError Pos 機能 文字列の中から指定された文字列を検索し、最初に検索した文字列の 先頭文字の位置を返します。 構文 Pos ( string1, string2 {, start } ) 引数 string1 string2 start (オプション) PowerScript リファレンス ボリューム 2 説明 取得する文字列 string2 を含む文字列を指定します。 string1 から検索する文字列を指定します。 string1 に対して検索を開始する位置を文字数で示す Long 型の値を指定します。特に指定しない限り、1 が設定され ます。 877 Pos 戻り値 Long 型。string1 の中で、start で指定された位置より後で最初に検索さ れた string2 の先頭の文字位置を表す Long 型の値で返します。また、 string1 の中から string2 が検索されない場合や start 位置が string1 に存 在しない場合は、0 を返します。引数のいずれかの値が NULL の場合、 NULL を返します。 解説 Pos 関数は、文字の位置を数えます。また、英文字の大文字と小文字 を区別します。 例 次のステートメントは、6 を返します。 Pos("BABE RUTH", "RU") 次のステートメントは、1 を返します。 Pos("BABE RUTH", "B") 次のステートメントは 0 を返します。これは、大文字と小文字の組み 合わせが一致しないためです。 Pos("BABE RUTH", "be") 次のステートメントは、位置 4 から検索を開始し、位置 4 は BE の後 ろなので 0 を返します。 Pos("BABE RUTH", "BE", 4 ) 次のステートメントは、シングルライン エディット コントロール sle_group の中の NY という文字列を、North East に変更します。 long place_nbr place_nbr = Pos(sle_group.Text, "NY") sle_group.SelectText(place_nbr, 2) sle_group.ReplaceText("North East") 次の例で、GetBandAtPointer 関数の戻り値は、タブで区域名と行数に分 割されています。Pos 関数は文字列中の(最後の)タブの位置を検索 し、Left 関数と Mid 関数はタブの左側と右側にある情報をそれぞれ取り 出します。 string s, ls_left, ls_right integer li_tab s = dw_groups.GetBandAtPointer() li_tab = Pos(s, "~t", 1) ls_left = Left(s, li_tab - 1) ls_right = Mid(s, li_tab + 1) 878 PowerBuilder 第 10 章 PowerScript の関数 一般的な構文解析の関数を定義するものとします。その関数は 3 つの 引数を持ちます。1 つは値で渡す String 型の s で、残りの 2 つは参照で 渡す String 型の ls_left と ls_right です。 GetBandAtPointer 関数のほかにも GetObjectAtPointer 関数と GetValue 関数 の戻り値はタブで区切られているので、上記で述べた構文解析関数を 使用してその戻り値を解析することができます。 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GetValue メソッド 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GetObjectAtPointer メソッド LastPos Left Mid Right 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Pos メソッド PosA 機能 現行のロケールに基づいて、文字列を Unicode から DBCS に一時的に 変換し、文字列の中から指定された文字列を検索し、最初に検索した 文字列の先頭文字の位置を返します。 構文 PosA (string1, string2, {start}) 引数 string1 string2 start (オプション) 戻り値 説明 取得する文字列 string2 を含む文字列を指定します。 string1 から検索する文字列を指定します。 string1 に対して検索を開始する位置を示す Long 型の値を 指定します。位置は、この引数で指定したバイト数で示さ れます。特に指定しない限り、1 が設定されます。 Long 型。string1 の中で、start でバイトで指定された位置より後で最初 に検索された string2 の先頭の文字位置を表す Long 型の値で返しま す。また、string1 の中から string2 が検索されない場合や start 位置が string1 に存在しない場合は、0 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 879 PosW 解説 PosA 関数は、PowerBuilder 9 の Pos 関数が DBCS 環境で提供していた 機能に代わるものです。SBCS 環境では、Pos 関数、PosW 関数、PosA 関数は同じ結果を返します。 PosW 機能 文字列の中から指定された文字列を検索し、最初に検索した文字列の 先頭文字の位置を返します。この関数は、将来サポートされなくなり ます。動作は、すべての環境で Pos 関数と同じです。 構文 PosW ( string1, string2 {, start } ) Position 編集可能なコントロール内にある挿入ポイントの位置を調べます。 目的 使用する構文 リッチテキスト エディット コントロールを除く編集可能 構文 1 なコントロール内にある挿入ポイントの位置を調べる リッチテキスト エディット コントロールまたはオブジェ 構文 2 クトの提示様式がリッチテキスト エディットのデータ ウィンドウ コントロールで、挿入ポイントの位置または選 択されているテキストの先頭と末尾の位置を調べる 構文 1 リッチテキスト エディット コントロール以外の編集 可能なコントロール内にある挿入ポイントの位置を 調べる 機能 エディット コントロール内にある挿入ポイントの位置を返します。 対象 データウィンドウ コントロール、エディットマスク コントロール、 InkEdit コントロール、マルチライン エディット コントロール、シン グルライン エディット コントロール、ドロップダウン リストボック ス コントロール、ドロップダウン ピクチャ リストボックス コント ロール 880 PowerBuilder 第 10 章 PowerScript の関数 構文 editname.Position ( ) 引数 editname 戻り値 説明 データウィンドウ、エディットマスク、InkEdit、マルチラ イン エディット、シングルライン エディット、ドロップ ダウン リストボックス、ドロップダウン ピクチャ リスト ボックスのいずれかのコントロールの名前。挿入ポイント の位置を調べるコントロールの名前を指定します。 データウィンドウ、InkEdit、およびリストボックスの場合は Integer 型、 ほかのコントロールの場合は Long 型 正常に終了した場合は editname 内での挿入ポイントの位置を返し、エ ラーが発生した場合は -1 を返します。editname が NULL の場合、NULL を返します。 解説 Position 関数は、挿入ポイントの直後の文字の位置番号を調べます。た とえば、カーソルが editname の先頭にある場合、Position 関数は 1 を返 します。editname 内でテキストが選択されている場合、Position 関数は 選択されているテキストの 1 文字目の位置を返します。 データウィンドウ コントロールを対象とする場合、Position 関数は、現 行の行とカラム上のエディット コントロール内にある挿入ポイント の位置を返します。 例 たとえば、mle_EmpAddress に Boston Street という文字列が格納されて おり、カーソルが Boston の n の後に設定されているとします。テキス トが選択されていない場合、次のステートメントは 7 を返します。 mle_EmpAddress.Position() たとえば、mle_EmpAddress に Boston Street という文字列が格納されて いるとします。Street が選択されている場合、次のステートメントは 8 (Street の S の位置)を返します 。 mle_EmpAddress.Position() 関連項目 SelectedLine SelectedStart 構文 2 リッチテキスト エディット コントロール内にある挿 入ポイントの位置を調べる 機能 リッチテキスト エディット コントロール内で挿入ポイントがある行 とカラムの位置を調べます。または、選択されているテキスト(選択 範囲)の先頭と末尾の位置を返します。 PowerScript リファレンス ボリューム 2 881 Position 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.Position ( fromline, fromchar {, toline, tochar } ) 引数 rtename fromline fromchar toline (オプション) tochar (オプション) 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前。挿入ポイントの位置また は選択範囲の位置を調べるコントロールの名前を指定し ます。データウィンドウ コントロールのデータウィンドウ オブジェクトは、リッチテキスト エディット データウィ ンドウでなければなりません。 Long 型の変数を指定します。指定された変数に、挿入ポ イントの位置または選択範囲の先頭の行番号を格納しま す。 Long 型の変数を指定します。指定された変数に、選択範 囲の 1 文字目の位置または挿入ポイントの後の位置を格 納します。 Long 型の変数を指定します。指定された変数に、選択範 囲の末尾の行番号を格納します。 Long 型の変数を指定します。指定された変数に、選択範 囲の末尾の文字の位置を格納します。 戻り値 カタログ データ型。選択範囲または挿入ポイントを含む区域(Detail!、 Header!、Footer!)を返します。 解説 toline と tochar を省略すると、Position 関数は挿入ポイントの位置を返 します。テキストが選択されている場合、挿入ポイントは、選択範囲 の先頭文字になることも、末尾の文字になることもあります。たとえ ば、エンド ユーザが下方向にテキストを選択した場合、挿入ポイント は選択範囲の末尾にあります。 テキストが選択されている場合、文字引数に 0 を設定して、選択範囲 が行の先頭から始まるのか、行の先頭で終了するのかを示すことがで きます。その行では、何も選択されません。エンド ユーザが上方向に 選択した場合、選択範囲を行の先頭から開始することができます。こ の場合、fromchar には 0 が設定されます。エンド ユーザが下方向選択 した場合、選択範囲を行の先頭で終了することができます。この場合、 tochar には 0 が設定されます。 882 PowerBuilder 第 10 章 PowerScript の関数 選択範囲と挿入ポイント 選択範囲の位置を調べるのか、挿入ポイント だけを調べるのかを指定するには、4 つのすべての引数を指定します。 toline と tochar に 0 を指定すると、選択範囲ではなく、挿入ポイントだ けが返されます。テキストが選択されている場合に、挿入ポイントの 位置を調べるときには、2 つの引数だけを指定して Position 関数をもう 一度呼び出す必要があります。詳細については、次の説明を参照して ください。 挿入ポイントの位置と選択範囲の末尾の位置は異なる可能性がある 選 択 さ れているテキストの位置を調べる場合、Position 関数は選択されている 先頭行の先頭文字と最終行の末尾の文字を調べます。挿入ポイントの 位置を調べる場合、Position 関数は挿入ポイントの直後の文字の位置を 返します。したがって、テキストが選択されている場合に選択範囲の 末尾に挿入ポイントがあるときは、挿入ポイントを示す値と選択範囲 の末尾を示す値は異なります。 たとえば、1 行目の最初の 4 文字が選択されていて、選択範囲の末尾 に挿入ポイントがあるとします。次のステートメントを使用して挿入 ポイントの位置を調べるとします。 rte_1.Position(ll_line, ll_char) 結果は、次のとおりです。 • ll_line に、1 が設定されます。 • ll_char に、5(挿入ポイントの直後の文字の位置)が設定されます。 次のステートメントを使用して選択範囲の位置を調べるとします。 rte_1.Position(ll_startline, ll_startchar, & ll_endline, ll_endchar) • ll_startline と ll_startchar には、どちらも 1 が設定されます。 • ll_endline には 1 が設定され、ll_endchar には 4 が設定されます。こ れは、選択範囲の末尾の文字の位置です。 SelectText 関数に値を渡す Position 関数を使用して取得した値は、選択 範 囲 だ け で は な く、そ の ほ か の 情 報 も 提 供 し ま す。し た が っ て、 SelectText 関数に Position 関数から取得した値を直接渡すことはできま せん。特に、テキストが選択されている場合、0 は正しい文字位置を 示す値ではありません。ただし、この値は、選択範囲について説明す る場合には意味があります。 例 次の例は、Position 関数を呼び出し、選択範囲の先頭と末尾にある区域、 行、およびカラムの値を取得します。取得した値は、String 型に変換 され、スタティックテキスト コントロール st_status に表示されます。 integer li_rtn PowerScript リファレンス ボリューム 2 883 Position long ll_startline, ll_startchar long ll_endline, ll_endchar string ls_s, ls_band band l_band // 選択範囲の区域、先頭、末尾の位置を取得します。 l_band = rte_1.Position(ll_startline, ll_startchar,& ll_endline, ll_endchar) // 位置を表す値を String 型に変換します。 ls_s = "Start line/char: " + String(ll_startline) & + ", " + String(ll_startchar) ls_s = ls_s + " End line/char: " & + String(ll_endline) + ", " + String(ll_endchar) // Band カタログ データ型の値を String 型に変換します。 CHOOSE CASE l_band CASE Detail! ls_band = " Detail" CASE Header! ls_band = " Header" CASE Footer! ls_band = " Footer" CASE ELSE ls_band = " No band" END CHOOSE ls_s = ls_s + ls_band // 情報を表示します。 st_status.Text = ls_s 次の例は、現行の選択範囲を 1 行下まで拡張します。ここでは、1 行 下に挿入ポイントまたは選択範囲があるか、挿入ポイントが選択範囲 の先頭または末尾にあるか、選択範囲が行の先頭で終了するかどうか を考慮します。 integer rtn long l1, c1, l2, c2, linsert, cinsert long l1select, c1select, l2select, c2select // 選択範囲の先頭と末尾の位置を取得します。 rte_1.Position(l1, c1, l2, c2) // 挿入ポイントを取得します。 rte_1.Position(linsert, cinsert) 884 PowerBuilder 第 10 章 PowerScript の関数 IF l2 = 0 and l1select = c1select = l2select = c2select = c2 = 0 THEN // 挿入ポイント linsert cinsert l1select + 1 // 最終行に 1 を加算します。 c1select ELSEIF l2 > l1 THEN // 選択範囲、 挿入ポイントを末尾に設定します。 IF c2 = 0 THEN // 選択範囲の末尾(挿入ポイント)を // 行の先頭(char 0)に設定します。 c2 = 999 // 前の行の末尾に変更します。 l2 = l2 - 1 END IF l1select c1select l2select c2select = = = = l1 c1 l2 + 1 // 最終行に 1 を加算します。 c2 ELSEIF l2 < l1 THEN // 選択範囲、 挿入ポイントを先頭に設定します。 IF c2 = 0 THEN // 選択範囲の末尾(挿入ポイントではない)を // 行の先頭に設定します。 c1 = 999 // 前の行の末尾に変更します。 l1 = l1 - 1 END IF l1select = l2 c1select = c2 l2select = l1 + 1 // 最終行に 1 を加算します。 // ( 選択範囲の先頭) c2select = c1 ELSE // l1 = l2 の場合、1 行目を選択します。 l1select = l1 l2select = l2 + 1 // 行に 1 を加算します。 IF c1 < c2 THEN // 挿入ポイントを末尾に設定します。 c1select = c1 c2select = c2 ELSE // c1 > c2 の場合、挿入ポイントを先頭に設定します。 c1select = c2 c2select = c1 END IF END IF // 拡張した選択範囲を選択します。 rtn = rte_1.SelectText( l1select, c1select, & l2select, c2select ) PowerScript リファレンス ボリューム 2 885 Post リッチテキスト エディット コントロールで各単語を選択する方法に ついては、SelectTextWord 関数の例を参照してください。 関連項目 SelectedLine SelectedStart SelectText Post 機能 ウィンドウのメッセージ キューにメッセージを追加します。ウィンド ウとは、PowerBuilder のウィンドウまたはほかのアプリケーションの ウィンドウです。 構文 Post ( handle, message#, word, long ) 引数 handle message# word long 説明 ウィンドウ(PowerBuilder またはほかのアプリケーション で作成したもの)のシステム ハンドルを表す Long 型を指 定します。このハンドルにメッセージを送付します。 送付するメッセージのシステム メッセージ番号を表す UnsignedInteger 型の値を指定します。 送信するメッセージの整数値を表す Long 型の値を指定し ます。メッセージがこの引数を使用しない場合は、0 を指 定します。 送信するメッセージが使用する Long 型の値または文字列 を指定します。 戻り値 Boolean 型。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PowerBuilder で定義されていないシステム イベントを引き起こす場合 は、Post 関数または Send 関数を使用します。Post 関数は非同期で、ウィ ンドウのメッセージ キューの最後にメッセージを追加します。Send 関 数は同期的で、メッセージを送付するとすぐにイベントを起動します。 PowerBuilder のハンドルを取得するには、Handle 関数を使用します。 PowerBuilder イベントを起動するには、 TriggerEvent 関数または PostEvent 関数を使用します。これらの関数は起動されたイベントに対するスク リプトを実行します。どちらの関数もコーディングやメッセージ キューへの追加を簡単に行うことができます。 long に文字列を指定すると、Post 関数は文字列をコピーし、文字列に 対するポインタを渡します。 886 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、現行ウィンドウ w_date のメッセージ キューに入っている メッセージを処理した後、w_date を 1 ページ分スクロール ダウンしま す。 Post(Handle(w_date), 277, 3, 0) 関連項目 Handle PostEvent Send TriggerEvent PostEvent 機能 イベントをオブジェクトのイベント キューの最後に追加します。 対象 アプリケーション以外のオブジェクト 構文 objectname.PostEvent ( event, { word, long } ) 引数 objectname event word (オプション) long (オプション) PowerScript リファレンス ボリューム 2 説明 任意の PowerBuilder オブジェクトまたはコントロール(ア プリケーション オブジェクトを除く)の名前を指定しま す。それに定義されているイベントを起動します。 PowerBuilder のイベント(たとえば、Clicked!、Modified!、 DoubleClicked!)を識別する TrigEvent カタログ データ型の 値を指定します。または、イベントの名前を表す文字列を 指定します。イベントは、objectname に有効なイベントで なければなりません。また、このイベントに対するスクリ プトは、objectname に存在していなければなりません。 システムの Message オブジェクトの WordParm プロパティ に格納される Long 型の値を指定します。word ではなく long に値を指定する場合、0 を入力します。クロス プラッ トフォームの互換性を維持するために、WordParm プロパ ティと LongParm プロパティのデータ型は Long 型になっ ています。 システムの Message オブジェクトの LongParm プロパティ に格納される Long 型の値を指定します。文字列を指定す ると、その文字列のポインタが LongParm プロパティに格 納されます。LongParm プロパティにアクセスするには、 String 関数を使用します。詳細については、 「解説」を参照 してください。 887 PostEvent 戻り値 Boolean 型。正常に終了した場合、TRUE を返します。objectname に対 し て 有 効 で な い イ ベ ン ト が 指 定 さ れ た 場 合、FALSE を 返 し ま す。 objectname にイベントに対するスクリプトが存在しない場合にも、 TRUE を返します。引数のいずれかの値が NULL の場合、NULL を返し ます。 解説 アプリケーション オブジェクトのイベント キューにイベントをポス トすることはできません。そのかわり、TriggerEvent 関数を使用します。 イベントを持たないオブジェクト(描画オブジェクトなど)に対して イベントをポストしたり、起動したりすることはできません。ユーザ インタフェースを持たないバッチ アプリケーションにはイベント キューがないので、これらのアプリケーション内でイベントをポスト したり、イベントを起動したりすることはできません。 PostEvent 関数を呼び出した後は、PostEvent 関数が正常に終了したこと を確認してください。 word と long を使用してイベント スクリプトに情報を渡すことができ ます。その情報は、Message オブジェクトに格納されます。スクリプ トの中で、Message オブジェクトの WordParm プロパティと LongParm プロパティを参照して、渡された情報にアクセスします。ほかのコー ドが Message オブジェクトを使用していたとしても、渡した情報を利 用できるように、送付されたイベントに対するスクリプトを実行する 直前に Message オブジェクトは保存されることに注意してください。 long に 文 字 列 を 指 定 し た 場 合、String 関 数 の format に キ ー ワ ー ド "address" を指定して呼び出し、long に指定した情報にアクセスできま す。その文字列は任意のメモリ域に格納されるので、ポインタや格納 された文字列を変更する以外は何もできません。イベント スクリプト は、次のように始めることができます。 string PassedString PassedString = String(Message.LongParm, "address") TriggerEvent 関数および PostEvent 関数を使用すると、 同じコードを記述 する手間を省くことができます。2 つのコントロールが同じタスクを 実行する場合、同じコードを 2 箇所に記述せずに、1 つのコントロー ルのイベントに PostEvent 関数を使用してほかのスクリプトも実行し ます。たとえば、ボタンとメニュー項目がデータを削除する場合、ボ タンの Clicked イベントに対するスクリプトで削除処理の記述を行い、 メ ニ ュ ー 項 目 の Clicked イ ベ ン ト に 対 す る ス ク リ プ ト で ボ タ ン の Clicked イベントをポストするとデータを削除するスクリプトが実行 されます。 888 PowerBuilder 第 10 章 PowerScript の関数 PostEvent 関数と TriggerEvent 関数の相違点 PostEvent 関数と TriggerEvent 関数は、どちらもイベントに対するスクリプトを実行します。 PostEvent 関数は非同期で、オブジェクトのイベント キューの最後に イベントを追加します。TriggerEvent 関数は同期的で、イベントをすぐ に起動します。 ポストされたイベントが実行される前に現行のイベント スクリプト を完了するには、PostEvent 関数を使用します。TriggerEvent 関数は現行 のスクリプトに割り込んで、起動されたイベントのスクリプトを実行 します。ある処理を中断する場合(たとえば、印刷をキャンセルする 場合) 、TriggerEvent 関数を使用します。 PostEvent 関数または TriggerEvent 関数がイベント スクリプトの最後の 行で呼び出され、未処理のイベントがない場合は、PostEvent 関数と TriggerEvent 関数の機能は同じになります。 Windows におけるイベントとメッセージ PostEvent 関 数 と TriggerEvent 関数は、どちらもイベントに関連付けたスクリプトを実行します。た だし、これらの関数は、実際のイベント メッセージを送付しません。 この点は、対象となるオブジェクトとイベントを選択するうえで重要 です。次に、PowerBuilder 内部での処理について説明します。 多くの PowerBuilder 関数は、Windows にメッセージを送ります。Windows はそのメッセージを受け取って、イベントを起動し、スクリプトを実行し ます。たとえば、Close 関数は Windows に close メッセージ(WM_CLOSE) を送ります。PowerBuilder はそのメッセージをその内部の close メッ セージ(PBM_CLOSE)にマップします。次に、Close イベントを起動 し、スクリプトを実行してからウィンドウを閉じます。 Close! を引数として TriggerEvent 関数と PostEvent 関数を使用すると、 PowerBuilder は Close イベントに対するスクリプトを実行します。ただ し、close メッセージを受け取っていないので、ウィンドウは閉じませ ん。このように、どのイベントを起動するかは重要です。Close 関数を 呼び出すスクリプトが記述されているボタンの Clicked! イベントを起 動すると、PowerBuilder は Close イベントのスクリプトを実行し、ウィ ンドウを閉じます。 PowerBuilder で定義されていないシステム イベントを引き起こす場合 は、Post 関数または Send 関数を使用します。 例 次の例は、Clicked イベントをコマンドボタン コントロール cb_OK の イベント キューに追加します。このイベント スクリプトは、ほかの未 処理のイベントのスクリプトが実行された後で実行されます。 cb_OK.PostEvent(Clicked!) PowerScript リファレンス ボリューム 2 889 PostURL 次の例は、ユーザ定義イベント cb_exit_request を親ウィンドウのイベン ト キューに追加します。 Parent.PostEvent("cb_exit_request") 次の例では、1 つの引数を持つ cb_exit_request イベントをポストし、イ ベントのスクリプトの中で Message オブジェクトからその値を取り出 します。 最初のステートメントは、ユーザ定義イベント cb_exit_request を親ウィ ンドウのイベント キューに追加します。値 455 は Message オブジェク トに格納され、cb_exit_request イベントに対するスクリプトの中で使用 されます。 Parent.PostEvent("cb_exit_request", 455, 0) 2 番目のステートメントは、cb_exit_request イベントに対するスクリプ トの先頭に記述されています。Message オブジェクトの値をローカル 変数に代入します。 integer numarg numarg = Message.WordParm 関連項目 Post Send TriggerEvent PostURL 機能 HTTP Post 機能を実行します。これにより、PowerBuilder アプリケー ションは CGI、NSAPI または ISAPI を経由してリクエストを送信でき ます。 対象 Inet オブジェクト 構文 servicereference.PostURL ( urlname, urldata, headers, {serverport, } data ) 引数 servicereference urlname urldata 890 説明 インターネット サービス インスタンスへの参照を指 定します。 ポストするデータの URL を表す文字列を指定します。 Blob 型の変数を指定します。この変数には urlname で 指定した URL に渡す引数を設定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 headers serverport (オプション) data 戻り値 説明 HTML ヘッダを表す文字列を指定します。Netscape ブ ラウザを使用している場合、各 HTTP ヘッダの後に改 行(~n)が必要で、さらにすべてのヘッダが終了した 後に最後の改行が 1 つ必要です。 リクエストのサーバ ポート番号を指定します。この引 数のデフォルト値は 0 です。つまり、ポート番号はシ ステムによって決定します(HTTP リクエストの場合 はポート 80)。 InternetResult 型のインスタンスを指定します。PostURL 関数は、このインスタンスの中に HTML データを格納 します。 Integer 型。以下のいずれかの値を返します。 1 正常に終了しました。 -1 一般的なエラーが発生しました。 -2 指定された URL が無効です。 -4 インターネットに接続できません。 -5 サポートされていないセキュア(HTTPS)接続が試みられま した。 -6 インターネットへのリクエストが拒否されました。 解説 この関数を呼び出して、CGI、NSAPI または ISAPI 関数を起動します。 data は、InternetResult クラスから継承した標準クラス ユーザ オブジェ クトを参照します。また、InternetData 関数は上書きされています。こ の上書きされた関数を使って、取得した HTML データを処理します。 インターネットでは非同期モードでデータを転送するため、 (ウィンド ウ レベルのインスタンス変数のように)PostURL 関数の実行終了後も、 data はスコープ(有効範囲)に入っている変数を参照する必要があり ます。 フォームの発行をシミュレートするには、適切なコンテンツタイプを 表すヘッダを送信する必要があります。フォームの場合の適正なコン テンツタイプ ヘッダは次のとおりです。 Content-Type:application/x-www-form-urlencoded InternetResult 標準クラス ユーザ オブジェクトと InternetData 関数につ いての詳細は、PowerBuilder Browser で参照してください。 例 次の例では、サーバ ポート 8080 を使用して PostURL 関数を呼び出し ています。Iinet_base は、inet 型のインスタンス変数です。 Blob lblb_args String ls_headers String ls_url PowerScript リファレンス ボリューム 2 891 PostURL Long ll_length iir_msgbox = CREATE n_ir_msgbox ls_url = "http://coltrane.sybase.com/" ls_url += "cgi-bin/pbcgi60.exe/" ls_url += "myapp/n_cst_html/f_test?" lblb_args = blob("") ll_length = Len(lblb_args) ls_headers = "Content-Length: " & + String(ll_length) + "~n~n" iinet.PostURL & (ls_url, lblb_args, ls_headers, 8080, iir_msgbox) 次の例では、フォームに対応する適切なコンテンツタイプを含むヘッ ダを使用しています。 Blob lblb_args String ls_headers String ls_url String ls_args long ll_length integer li_rc li_rc = GetContextService( "Internet", iinet_base ) IF li_rc = 1 THEN ir = CREATE n_ir ls_url = "http://localhost/Site/testurl.stm?" ls_args = "user=MyName&pwd=MyPasswd" lblb_args = Blob( ls_args ) ll_length = Len( lblb_args ) ls_header = "Content-Type: " + & "application/x-www-form-urlencoded~n" + & "Content-Length:" + String( ll_length ) + "~n~n" li_rc = iinet.PostURL( ls_url, lblb_args, & ls_header, ir ) END IF 関連項目 892 GetURL HyperLinkToURL InternetData PowerBuilder 第 10 章 PowerScript の関数 Preview 機能 リッチテキスト エディット コントロールの内容を、文書の印刷プレ ビュー モードまたは編集モードで表示します。 対象 リッチテキスト エディット コントロール 構文 rtename.Preview ( previewsetting ) 引数 rtename previewsetting 説明 プレビュー モードまたは編集モードで表示するリッチテ キスト エディット コントロールの名前を指定します。 リッチテキスト エディット コントロールの内容をプレ ビュー モードまたは編集モードのどちらのモードで表示 するかを示す Boolean 型の値。値は以下のとおりです。 • True − リッチテキスト エディット コントロールの内容 の印刷イメージを表示するプレビュー モード • False − 内容を編集できる編集モード 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールの内容を表示するには、編集 モードとプレビュー モードの 2 つの表示モードを使用します。Preview 関数は、この 2 つのモードを切り換えます。 編集モードでは、テキストが読める形式で表示されます。 エンド ユーザは、テキストの入力、選択、および変更を行うことがで きます。キャリッジ リターン、空白、タブ、入力フィールドなど、テ キスト中の印刷されない文字の表示を制御するプロパティがありま す。編集モードでは、ツールバー、ルーラ、タブバーは、コントロー ルの編集エリアの上部に表示されます。 編集モード プレビュー モード プレビュー モードでは、コントロールの中に印刷 イメージが縮小されて表示されます。ページのサイズは、コントロー ルの大きさに合うように変更されます。プレビュー モードには、用紙 のサイズと余白を指定するエディットボックスがあります。コント ロールの表示モードがプレビュー モードに切り換わると、すべての選 択箇所は取り消されます。エンド ユーザは、プレビュー モードでテキ ストを編集することはできません。ただし、スクリプトで関数を呼び 出せば、テキストの選択や変更だけでなく、文書の挿入を行うことが できます。 コントロールがプレビュー モードのときに ShowHeadFoot 関数を呼び 出すと、編集モードに戻り、ヘッダとフッタの編集パネルが表示され ます。 PowerScript リファレンス ボリューム 2 893 Print プレビュー モードで表示される用紙設定用のエディットボックスや コントロールのスクロールバーを表示するのに、リッチテキスト エ ディット コントロールが十分な大きさであることを確認してくださ い。 例 次の例は、リッチテキスト エディット コントロール rte_1 のページ レ イアウトをプレビューします。 rte_1.Preview(TRUE) 関連項目 IsPreview Print 現行のプリンタ(エンド ユーザがスプーラを設定している場合はス プーラ)にデータを送信します。次の 4 つの構文を使用できます。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「Print メソッド」を参照してください。 目的 使用する構文 ウィンドウやグラフ コントロールなどのビジュアル オブ 構文 1 ジェクトも印刷ジョブに含める 印刷ジョブの一部として 1 行以上のテキストを送信する 構文 2 リッチテキスト エディット コントロールの内容を印刷する 構文 3 構文 1 印刷ジョブのビジュアル オブジェクトを印刷する 機能 PrintOpen 関数を使用して起動した印刷ジョブに、ウィンドウやグラフ コントロールなどのビジュアル オブジェクトを追加します。 対象 すべてのオブジェクト 構文 objectname.Print ( printjobnumber, x, y {, width, height } ) 引数 objectname 894 説明 印刷するオブジェクトの名前を指定します。オブジェクト は、先祖の種類が DragObject であるオブジェクトまたは ウィンドウでなければなりません。DragObject には、ウィ ンドウに配置できるすべてのコントロールが含まれてい ます。 PowerBuilder 第 10 章 PowerScript の関数 引数 printjobnumber x y width (オプション) height (オプション) 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 Integer 型の値。オブジェクトの左端の x 座標を指定しま す。単位は 1/1000 インチです。 Integer 型の値。オブジェクトの左端の y 座標を指定しま す。単位は 1/1000 インチです。 Integer 型の値。印刷するオブジェクトの幅を指定します。 単位は 1/1000 インチです。この引数を省略すると、オブ ジェクトの元の幅が使用されます。 Integer 型の値。印刷するオブジェクトの高さを指定しま す。単位は 1/1000 インチです。この引数を省略すると、オ ブジェクトの元の高さが使用されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PowerBuilder は、ジョブを開く、データを送信する、ジョブを閉じる などの操作を行って印刷ジョブを制御します。構文 2 または構文 3 を 使 用 す る 場 合、開 発 者 は PrintOpen 関 数 と PrintClose 関 数(ま た は PrintCancel 関数)を呼び出して印刷処理を制御する必要があります。 PowerBuilder は、コントロールが使用している画面の領域をプリンタ にコピーします。コントロールを印刷している間に、ほかのウィンド ウやアプリケーションが画面上でそのコントロールの前の領域に表示 される場合、そのウィンドウやアプリケーションも印刷されます。 印刷領域と余白 印刷領域とは、物理的なページ サイズからプリンタ の余白を差し引いた領域です。 例 次の例は、コマンドボタン cb_close を元のサイズで位置(500,1000)に 印刷します。 long Job Job = PrintOpen( ) cb_close.Print(Job, 500,1000) PrintClose(Job) 次の例は、新しいページを設定する印刷ジョブを開きます。Print 関数 の構文 3 を使用してタイトルを印刷します。その後、Print 関数の構文 2 を使用して 1 ページ目にグラフを印刷し、2 ページ目にウィンドウを 印刷します。 long Job Job = PrintOpen( ) Print(Job, "Report of Year-to-Date Sales") gr_sales1.Print(Job, 1000,PrintY(Job)+500, & PowerScript リファレンス ボリューム 2 895 Print 6000,4500) PrintPage(Job) w_sales.Print(Job, 1000,500, 6000,4500) PrintClose(Job) 関連項目 PrintCancel PrintClose PrintOpen PrintScreen 構文 2 印刷ジョブの一部としてテキストを印刷する 機能 PrintOpen 関数を使用して開始した印刷ジョブの一部として、1 行以上 のテキストを送信します。テキストの前後にタブを設定してページ上 でのテキストの水平方向の位置を制御することもできます。 対象 オブジェクト以外 構文 Print ( printjobnumber, { tab1, } string {, tab2 } ) 引数 printjobnumber tab1 (オプション) string tab2 (オプション) 戻り値 896 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 印刷領域の左端からの距離を、1/1000 インチ単位で指定し ます。string を印刷する前に、印刷カーソルを tab1 に指定 された位置まで移動します。印刷カーソルがすでに指定さ れた位置にある場合、指定された位置を越えている場合、 または tab1 を省略した場合には、印刷カーソルの現行の位 置から印刷を開始します。 印刷するテキストを指定します。文字列にキャリッジ リ ターン文字と改行文字(~r~n)が指定されている場合、文 字列は複数行に印刷されます。ただし、2 行目以降では tab1 は無視されます。 印刷領域の左端からの距離を 1/1000 インチ単位で指定し ます。string を印刷した後で、印刷カーソルを tab2 に指定 された位置まで移動します。印刷カーソルがすでに指定さ れた位置にある場合、または指定された位置を越えている 場合には、tab2 は無視され、印刷カーソルはテキストの最 後に設定されたまま移動しません。tab2 を省略すると、印 刷カーソルを次の行の先頭に移動します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 PowerBuilder は、ジョブを開く、データを送信する、ジョブを閉じるな どの操作を行って印刷ジョブを制御します。構文 2 または構文 3 を使用 する場合、開発者は PrintOpen 関数と PrintClose 関数(または PrintCancel 関数)を呼び出して印刷処理を制御する必要があります。 印刷カーソル PowerBuilder は、印刷ジョブで印刷カーソルを使用し て印刷位置を制御しています。印刷カーソルには、印刷開始位置の左 上端の座標が設定されます。PowerBuilder は、Print 関数を使用してテ キストを印刷した後で印刷カーソルを更新します。 テキストを印刷するときの行間隔 PowerBuilder に お け る 行 間 隔 は、 文字の高さに比例します。標準の間隔は文字の高さの 1.2 倍です。Print 関数は、新しい行を開始するときにカーソルの x 座標を 0 に設定し、 現行の行間隔によって y 座標を増加します。PrintSetSpacing 関数を使用 すると、新しい比例定数を指定して行間隔を変更することができます。 Print 関数の構文 3 では、新しい行を印刷するたびに y 座標が増分され るため、自動的に改ページが行われます。y 座標がページ サイズを越 えると、印刷ジョブに新しいページが自動的に作成されます。印刷カー ソルの位置を制御する印刷関数(PrintText 関数、PrintLine 関数など)を 使用する場合と同様に、PrintPage 関数を呼び出す必要はありません。 印刷領域と余白 印刷領域とは、物理的なページ サイズからプリンタ の余白を差し引いた領域です。 フォントの使用 PrintDefineFont 関数と PrintSetFont 関数を使用すると、 Print 関数を使用して印刷する文字のフォントを指定できます。 複数の言語のフォント 印刷関数の標準のフォントはシステム フォ ントですが、このフォントでは複数の言語を正しく印刷することがで きません。通常は、Tahoma フォントを使用するとよいでしょう。ただ し、プリンタ フォントを Tahoma に設定した場合に Tahoma フォントが プリンタにインストールされていないと、複数言語の文字が検出され たときに全体のフォント セットがプリンタにダウンロードされます。 PrintDefineFont 関数と PrintSetFont 関数を使用して、エンド ユーザのプ リンタで利用でき、複数言語をサポートしているフォントを指定でき ます。 例 次の例は、印刷ジョブを開いて Sybase Corporation という文字列を標準 フォントで印刷し、改行します。 long Job // 空白のページを定義し、印刷ジョブにジョブ番号を割り当てます。 Job = PrintOpen( ) // 文字列を印刷し、改行して次の行を開始します。 PowerScript リファレンス ボリューム 2 897 Print Print(Job, "Sybase Corporation") ... PrintClose(Job) 次の例は、印刷ジョブを開いて Sybase Corporation という文字列を標準 フォントで印刷し、印刷領域の左端から 5 インチの位置までカーソル を移動します。ただし、改行しません。 long Job // 空白のページを定義し、印刷ジョブにジョブ番号を割り当てます。 Job = PrintOpen( ) // 文字列を印刷しますが、改行しません。 Print(Job, "Sybase Corporation", 5000) ... PrintClose(Job) 次の例の最初の Print 文は、印刷領域の左端から 0.5 インチの位置に カーソルを移動し、Sybase Corporation という文字列を印刷して改行しま す。2 番目の Print 文は、印刷領域の左端から 1 インチの位置にカーソ ルを移動し、Directors: という文字列を印刷して改行します。 long Job // 空白のページを定義し、印刷ジョブにジョブ番号を割り当てます。 Job = PrintOpen( ) // 文字列を印刷し、改行して次の行を開始します。 Print(Job, 500, "Sybase Corporation") // 左端から 1 インチの位置にカーソルを移動し、印刷します。 Print(Job, 1000, "Directors:") ... PrintClose(Job) 次の例の最初の Print 文は、印刷領域の左端から 0.5 インチの位置に カーソルを移動し、Sybase Corporation という文字列を印刷します。さら に、印刷領域の左端から 6 インチの位置にカーソルを移動します。こ のとき、改行しません。2 番目の Print 文は、現行の日付を印刷して改 行します。 long Job // 空白のページを定義し、印刷ジョブにジョブ番号を割り当てます。 Job = PrintOpen( ) // 文字列を印刷し、左端から 6 インチの位置にカーソルを移動します。 898 PowerBuilder 第 10 章 PowerScript の関数 Print(Job, 500, "Sybase Corporation", 6000) // 同じ行に現在の日付を印刷します。 Print(Job, String(Today())) ... PrintClose(Job) 次の例は、Print ボタンのスクリプトに記述した例です。マルチライン エディット コントロール mle_message にデータベース エラー メッ セージを表示するウィンドウで、日付と時刻を含むタイトルとメッ セージを印刷します。 long li_prt li_prt = PrintOpen("Database Error") Print(li_prt, "Database error - " & + String(Today(), "mm/dd/yyyy") & + " - " & + String(Now(), "HH:MM:SS")) Print(li_prt, " ") Print(li_prt, mle_message.text) PrintClose(li_prt) 関連項目 PrintCancel PrintClose PrintDataWindow PrintOpen PrintScreen PrintSetFont PrintSetSpacing PowerScript リファレンス ボリューム 2 899 Print 構文 3 リッチテキスト エディット コントロールに対して 機能 リッチテキスト エディット コントロールの内容を印刷します。 対象 リッチテキスト エディット コントロール 構文 rtename.Print ( copies, pagerange, collate, canceldialog ) 引数 rtename copies pagerange collate 説明 印刷するリッチテキスト エディット コントロールの名前 を指定します。 印刷する部数を整数で指定します。 印刷するページを示す文字列を指定します。すべてのペー ジを印刷する場合、空の文字列("")を指定します。ペー ジの一部を指定して印刷するには、ハイフン(-)を使用 して範囲を指定し、カンマ(,)を使用して範囲と各ページ 番号を区切ります。たとえば、"1-3"、"2,5,8-10" のように 指定します。 rtename がデータウィンドウ コントロールとデータを共有 している場合、pagerange は文書の各インスタンス内の ページ数ではなく、コントロール内の総ページ数に基づい てページを参照します。 Boolean 型の値。2 部以上印刷するときに、部単位で印刷 するかどうか、つまり、1 ページ目から最後のページまで 1 部ずつ印刷した後、2 部目以降も同様の順序で印刷する かどうかを指定します。値は以下のとおりです。 TRUE − 1 部ずつ、ページ番号順に印刷します。 FALSE − 指定された部数だけ、同じページ番号のペー canceldialog ジを連続して印刷します。 Boolean 型の値。エンド ユーザが印刷を取り消すことがで きるように、非モダル ダイアログボックスを表示するかど うかを指定します。値は以下のとおりです。 TRUE − 表示 FALSE − 非表示 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータをデータウィンド ウと共有している場合、コントロール内の総ページ数は、文書内のペー ジ数にデータウィンドウの行数を乗算した値です。 文書のヘッダまたはフッタに入力フィールドを含めると、印刷する ページ番号を指定できます。PrintHeader イベントまたは PrintFooter イ ベントで InputFieldChangeData を呼び出すと、その入力フィールドの現 行の値を指定できます。 900 PowerBuilder 第 10 章 PowerScript の関数 Print 関数は、 PrintHeader イベントと PrintFooter イベントを起動します。 例 次の例は、リッチテキスト エディット コントロール rte_1 内の文書の 1 ∼ 5 ページを 1 部ずつ印刷します。部単位の印刷は行われません。エ ンド ユーザが印刷を取り消すことができるように、ダイアログボック スが表示されます。 rte_1.Print(1, "1-5", FALSE, TRUE) 関連項目 Preview PrintEx PrintBitmap 機能 現在のページ上の指定された位置にビットマップを印刷します。 構文 PrintBitmap ( printjobnumber, bitmap, x, y, width, height ) 引数 printjobnumber bitmap x y width height 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 ビットマップ画像のファイル名を表す文字列を指定します。 ビットマップ画像のページ上の X 座標(1/1000 インチ単 位)を表す整数値を指定します。 ビットマップ画像のページ上の Y 座標(1/1000 インチ単 位)を表す整数値を指定します。 ビットマップ画像の幅を 1/1000 インチ単位で示した整数 値を指定します。width が 0 の場合は、画像のオリジナル の幅が使用されます。 ビットマップ画像の高さを 1/1000 インチ単位で示した整 数値を指定します。height が 0 の場合は、画像のオリジナ ルの高さが使用されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PrintBitmap 関数は、印刷カーソルの位置を変更しません。印刷カーソ ルは関数が呼び出される前の位置のままです。通常、座標を引数とす る印刷関数は、印刷カーソルに影響を及ぼしません。印刷関数につい ては、 「関連項目」の関数を参照してください。 PowerScript リファレンス ボリューム 2 901 PrintCancel 例 次の文は、新しく空白ページを定義した後、d:\PB\BITMAP1.BMP ファ イル内のビットマップをオリジナル サイズで(50,100)の位置に印刷 します。 long Job // 新しい空白の 1 ページを設定します。 Job = PrintOpen( ) // 元のサイズでビットマップを印刷します。 PrintBitmap(Job, "d:\PB\BITMAP1.BMP", 50,100, 0,0) // ページをプリンタに送り、ジョブを終了します。 PrintClose(Job) 関連項目 PrintClose PrintLine PrintRect PrintRoundRect PrintOval PrintOpen PrintCancel 機能 印刷を取り消し、スプール ファイルを削除します。PrintOpen 関数を使 用して開かれた印刷ジョブを取り消します。印刷ジョブは、PrintOpen 関数が返す番号によって認識されます。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「PrintCancel メソッド」を参照してください。 構文 PrintCancel ( printjobnumber ) 引数 printjobnumber 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。printjobnumber が NULL の場合、NULL を返します。 解説 指定された印刷ジョブを取り消し、そのジョブのスプール ファイルが 存在する場合は、スプール ファイルを削除します。PrintCancel 関数は、 印刷ジョブを閉じる処理も同時に行いますので、この関数を呼び出し た後には、PrintClose 関数は呼び出さないでください。 902 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、印刷ボタンのイベントに対するスクリプトです。印刷ジョ ブを開き、次に、[キャンセル]ボタンを持つウィンドウを開きます。 エンド ユーザが[キャンセル]ボタンをクリックすると、そのスクリ プトで、エンド ユーザがジョブをキャンセルしたことを示すグローバ ル変数を設定します。 [印刷]ボタンのイベントに対するスクリプトで は、印刷関数を呼び出すたびにグローバル変数を調べ、TRUE の場合に 印刷ジョブを取り消します。 グローバル変数の定義は、次のとおりです。 boolean gb_printcancel [印刷]ボタンのイベントに対するスクリプトは、次のとおりです。 long job, li gb_printcancel = FALSE job = PrintOpen("Test Page Breaks") IF job < 1 THEN MessageBox(" エラー ", " 印刷ジョブを開けません。") RETURN END IF Open(w_printcancel) PrintBitmap(Job, "d:\PB\bitmap1.bmp", 5, 10, 0, 0) IF gb_printcancel = TRUE THEN PrintCancel(job) RETURN END IF ... // ほかの印刷コマンド ... // gb_printcancel の点検 PrintClose(job) Close(w_printcancel) 次の例は、ダイアログボックスの[キャンセル]ボタンのイベントに 対するスクリプトです。 gb_printcancel = TRUE Close(w_printcancel) 関連項目 Print PrintClose PrintOpen PowerScript リファレンス ボリューム 2 903 PrintClose PrintClose 機能 現在のページをプリンタ(またはスプーラ)に送り、印刷ジョブを終 了します。PrintCancel 関数によってジョブを終了しない限り、印刷ジョ ブに対する最後のコマンドとして PrintClose 関数を呼び出します。 構文 PrintClose ( printjobnumber ) 引数 printjobnumber 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。printjobnumber が NULL の場合、NULL を返します。 解説 印刷ジョブを開始した後は、そのジョブを終了する(または取り消す) 必要があります。印刷ジョブのハングアップを避けるために、印刷ジョ ブを開始したイベントと同じイベント内で印刷処理および印刷の終了 を行うようにしてください。 例 次の例は、印刷ジョブを開始します。印刷ジョブは、空白ページを設 定し、そのページにビットマップを印刷して、現行のページをプリン タまたはスプーラに送り、ジョブを終了します。 ulong Job // 新しいジョブとページを開始します。 Job = PrintOpen( ) // 元のサイズでビットマップを印刷します。 PrintBitmap(Job, d:\PB\BITMAP1, 5,10, 0,0) // ページをプリンタに送り、ジョブを終了します。 PrintClose(Job) 関連項目 904 PrintCancel PrintOpen PowerBuilder 第 10 章 PowerScript の関数 PrintDataWindow 機能 データウィンドウ コントロールの内容を 1 つの印刷ジョブとして印刷 します。 構文 PrintDataWindow ( printjobnumber, dwcontrol ) 引数 printjobnumber dwcontrol 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 印刷するデータウィンドウ オブジェクトを含むデータ ウィンドウ コントロール、子データウィンドウ、または データストア オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PrintDataWindow 関数は、PrintOpen 関数、PrintClose 関数以外の Print 関 数とともに使用することはできません。 PrintDataWindow 関数を PrintOpen 関数および PrintClose 関数とともに使 用すると、1 つの印刷ジョブで複数のデータウィンドウを印刷できま す。各データウィンドウ コントロールの情報は、新しいページから印 刷されます。 PrintDataWindow 関数を使ってデータウィンドウを印刷する場合、デー タウィンドウで指定されたフォントとレイアウトではなく、コン ピュータのプリンタ設定で指定されたフォントとレイアウトが使用さ れます。PrintDefineFont 関数および PrintSetFont 関数も無効です。 データウィンドウの表示されたスタイルが、リッチテキスト エディッ トの場合、各行は新しいページから印刷されます。 特定のページを指定して印刷する場合、PrintPage イベントのリターン コードを設定します。詳細については「Print 関数」を参照してください。 例 次の例は、3 つのデータウィンドウ コントロールの内容を 1 つの印刷 ジョブとして現行のプリンタに送ります。 long job job = PrintOpen( ) // 各データウィンドウは、新しいページから印刷を始めます。 PrintDataWindow(job, dw_EmpHeader) PrintDataWindow(job, dw_EmpDetail) PrintDataWindow(job, dw_EmpDptSum) PrintClose(job) PowerScript リファレンス ボリューム 2 905 PrintDefineFont 関連項目 Print PrintClose PrintOpen PrintDefineFont 機能 プリンタでサポートされているフォントと、フォントのプロパティに 番号を定義します。定義した番号を PrintSetFont 関数または PrintText 関 数で使用することができます。一度に 8 つのフォントを定義できます。 構文 PrintDefineFont ( printjobnumber, fontnumber, facename, height, weight, fontpitch, fontfamily, italic, underline ) 引数 printjobnumber PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま 説明 fontnumber PrintDefireFont 関数によって定義されるフォントに割り当 す。 facename height weight fontpitch fontfamily 906 てる番号(1 ∼ 8)を指定します。 プリンタがサポートするフォント名(たとえば、Courier 10Cpi)を表す文字列を指定します。 Integer 型の値。文字の高さを 1/1000 インチ単位で表した もの(たとえば、18 ポイント 10Cpi の場合は 250)または、 ポイント サイズを示す負の数(たとえば、-18 は 18 ポイ ント)を指定します。ポイント サイズで指定した方が厳密 に指定できます。1/1000 インチ単位で示した文字の高さ は、ポイント サイズの近似値にすぎません。 文字の太さを指定します。通常の太さの場合は 400 を指定 し、太字の場合は 700 を指定します。 フォントのピッチを示す FontPitch カタログ データ型の 値。次のいずれかの値を指定します。 Default! Fixed! Variable! フォントのファミリーを示す FontFamily カタログ データ 型の値で次のいずれかを指定します。 AnyFont! Decorative! Modern! Roman! Script! Swiss! PowerBuilder 第 10 章 PowerScript の関数 引数 italic underline 説明 フォントが斜体かどうかを示す Boolean 型の値を指定しま す。標準の設定は FALSE(斜体ではない)です。 フォントに下線が付くかどうかを示す Boolean 型の値を指 定します。標準の設定は FALSE(下線が付かない)です。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 1 つの印刷ジョブには、最大 8 つのフォントを定義することができます。 1 つのジョブで 9 つ以上のフォントが必要な場合には、PrintDefineFont 関数をもう一度呼び出してフォント数の設定を変更します。 PrintSetFont 関数を使用して、開いている印刷ジョブの現行のフォント にフォント番号を割り当てます。 Microsoft Windows におけるフォント fontfamily は、フォント名に関する情報と重複するように見えますが、 Windows はこの引数をフォント名とともに使用してフォントを識別 し、そのフォントが使用できない場合は類似のフォントで代用します。 フォント名と大きさ フォント名にはサイズが含まれているものがあります。特に、等幅の フォントには、インチ当りの文字数が含まれています。これは、その フォントの推奨サイズで、height に指定した印刷サイズには影響しま せん。 例 次の例は、新しい空白の 1 ページを設定し、印刷ジョブ Job に対して フォント 1 を Courier 10Cpi、18 ポイント、通常の太さ、標準のピッチ、 Decorative フォント、斜体なし、下線なしと定義します。 long Job Job = PrintOpen( ) PrintDefineFont(Job, 1, "Courier 10Cpi", & -18, 400, Default!, Decorative!, FALSE, FALSE) 関連項目 PrintClose PrintOpen PrintSetFont PowerScript リファレンス ボリューム 2 907 PrintEx PrintEx 機能 リッチテキスト エディット コントロールの内容を印刷します。 対象 リッチテキスト エディット コントロール 構文 rtename.PrintEx ( canceldialog ) 引数 rtename canceldialog 説明 印刷するリッチテキスト エディット コントロールの名前 を指定します。 Boolean 型の値。エンド ユーザが印刷を取り消すことがで きるように、非モダルのキャンセル ダイアログボックスを 表示するかどうかを指定します。システムの印刷 ダイアロ グボックスは常に表示されます。値は以下のとおりです。 TRUE − 表示 FALSE − 非表示 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。エンド ユーザが印刷 ダイアログボックスの[キャンセ ル]ボタンをクリックした場合、PrintEx 関数は -1 を返します。エンド ユーザがキャンセル ダイアログボックスの[キャンセル]ボタンをク リックした場合、PrintEx 関数は 1 を返します。 解説 印刷するページの範囲と部数、および部単位で印刷するかどうかを指 定するには、Print 関数を使用します。 例 次の例は、リッチテキスト エディット コントロール rte_1 内の文書を 印刷します。エンド ユーザが印刷を取り消すことができるように、 キャンセル ダイアログボックスが表示されます。 rte_1.PrintEx(TRUE) 関連項目 908 Preview Print PowerBuilder 第 10 章 PowerScript の関数 PrintGetPrinter 機能 現行のプリンタの名前を取得します。 構文 PrintGetPrinter ( ) 戻り値 String 型。現行のプリンタに関する情報をタブ区切り形式(printername ~t drivername ~t port)で返します。 解説 PrintSetPrinter メソッドで変更しない限り、現行のプリンタはデフォル トのプリンタです。PowerBuilder アプリケーションが PrintGetPrinter メ ソッドを呼び出したときに取得するプリンタ情報は、アプリケーショ ンの初期化後に外部的に再設定されたデフォルトのプリンタの情報で はありません。 例 次の例では、各シングルライン エディット テキスト ボックスに現行 のプリンタ名、ドライバ、およびポートを提示しています。 String ls_fullstring=PrintGetPrinter() String ls_name, ls_driver, ls_port, ls_temp Long ll_place ll_place=pos (ls_fullstring, "~t") ls_name=left(ls_fullstring, ll_place -1) ls_temp=mid(ls_fullstring, ll_place +1) ll_place=pos (ls_temp, "~t") ls_driver=left(ls_temp, ll_place -1) ls_port=mid(ls_temp, ll_place +1) sle_1.text=ls_name sle_2.text=ls_driver sle_3.text=ls_port 関連項目 PrintGetPrinters PrintSetPrinter PowerScript リファレンス ボリューム 2 909 PrintGetPrinters PrintGetPrinters 機能 利用可能なプリンタのリストを取得します。 構文 PrintGetPrinters ( ) 戻り値 String 型。リスト内で各プリンタは、printername ~t drivername ~t port ~n の形式の文字列で表示されます。 解説 返された文字列は、ImportString を使用してデータウィンドウにロード できます。また、~n ごとに区切ることも可能です。 例 次の例では、PrintGetPrinters の呼び出しで返された文字列を解析し、そ の結果得られた各プリンタ名を既存のシングルライン エディット コ ントロールに格納しています。プリンタの数の方がシングルライン エ ディット ボックスよりも多い場合には、最後のシングルライン エ ディット ボックスに、それまでに表示しきれなかったすべてのプリン タの文字列を提示します。 singlelineedit sle long ll_place, i, k string ls_left, ls_prntrs ls_prntrs = PrintGetPrinters ( ) k = upperbound(control) FOR i= k to 1 STEP -1 IF parent.control[i].typeof()=singlelineedit! then sle=parent.control[i] ll_place=pos (ls_prntrs, "~n" ) ls_left = Left (ls_prntrs, ll_place - 1) sle.text = ls_left ls_prntrs = Mid (ls_prntrs, ll_place + 1) END IF NEXT sle.text = ls_prntrs 関連項目 910 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ImportString メソッド PrintGetPrinter PrintSetPrinter PowerBuilder 第 10 章 PowerScript の関数 PrintLine 機能 現在の印刷ページに指定の太さで、指定された 2 点を両端とする線分 を描きます。 構文 PrintLine ( printjobnumber, x1, y1, x2, y2, thickness ) 引数 printjobnumber x1 y1 x2 y2 thickness 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 線の開始位置の X 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の開始位置の Y 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の終了位置の X 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の終了位置の Y 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の太さを 1/1000 インチ単位の整数値で指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PrintLine 関数は、印刷カーソルの位置を変更しません。印刷カーソル は関数が呼び出される前の位置のままです。 例 次の例は、新しい空白の 1 ページを設定し、10/1000 インチの太さで、 (0,5)の位置から(7500,5)の位置までの線分を印刷します。 long Job Job = PrintOpen( ) ... // いろいろな印刷コマンド // 新しいページを開始します。 PrintPage(Job) // ページの上部から線を印刷します。 PrintLine(Job,0,5,7500,5,10) ... // ほかの印刷 PrintClose(Job) 関連項目 PrintBitmap PrintClose PrintOpen PrintOval PrintRect PrintRoundRect PowerScript リファレンス ボリューム 2 911 PrintOpen PrintOpen 機能 印刷ジョブを開き、それに番号を割り当てます。番号はほかの印刷ス テートメントで使用します。 構文 PrintOpen ( { jobname {, showprintdialog } } ) 引数 jobname (オプション) showprintdialog (オプション) 説明 ジョブに割り当てる名前を表す文字列を指定します。ジョ ブの名前は、Windows のプリント マネージャのダイアログ ボックスとスプーラのダイアログボックスに表示されま す。 Boolean 型の値。エンド ユーザがプリンタを選択したり印 刷プロパティを設定したりできるように、システムの印刷 ダイアログボックスを表示するかどうかを指定します。値 は以下のとおりです。 TRUE − 表示 FALSE −(デフォルト)非表示 戻り値 Long 型。正常に終了した場合はジョブ番号を返し、エラーが発生した 場合は -1 を返します。印刷 ダイアログボックスが表示され、エンド ユーザが[キャンセル]ボタンをクリックした場合、PrintOpen 関数は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 新しい印刷ジョブは、新しいページから開始されます。フォントはプ リンタの標準のフォントに設定されます。印刷カーソルは、印刷領域 の左上端に位置付けられます。 showprintdialog 引数に TRUE を指定した場合、エンド ユーザが印刷 ジョブを取り消すことができるように、システムの印刷 ダイアログ ボックスが表示されます。PowerBuilder はあらかじめ印刷ジョブの ページ数を判断することができないため、印刷 ダイアログボックスの ページ範囲を指定するオプションは使用できません。サーバで動作し ているコンポーネントでこの引数を指定している場合、その引数は無 視されます。 返されたジョブ番号は、それ以降に使用するすべての印刷関数で、ジョ ブを識別するための番号として使用します。 912 PowerBuilder 第 10 章 PowerScript の関数 PrintOpen 関数の後に MessageBox 関数を呼び出すと、エンド ユーザを 混乱させる状態を引き起こします。PrintOpen 関数を呼び出すと、現行 のアクティブ ウィンドウからは Windows による印刷処理が使用でき なくなります。PrintOpen 関数の後でメッセージ ボックスを表示する と、Windows はアクティブ ウィンドウをメッセージ ボックスの親ウィ ンドウにします。頻繁に、別のアプリケーションのウィンドウがメッ セージの親ウィンドウになり、別のアプリケーションがアクティブに なってしまいます。 PrintOpen と PrintClose 印刷ジョブを開始した後は、そのジョブを終了する(または取り消す) 必要があります。印刷ジョブのハングアップを避けるために、印刷ジョ ブを開始したイベントと同じイベント内で印刷ジョブを処理し、終了 するようにしてください。 例 次の例は印刷ジョブを開きますが、印刷ジョブ名は指定しません。 ulong li_job li_job = PrintOpen() 次の例は印刷ジョブを開き、その印刷ジョブに名前を指定し、印刷 ダ イアログボックスを開きます。 ulong li_job li_job = PrintOpen("Phone List", true) 関連項目 Print PrintBitmap PrintCancel PrintClose PrintDataWindow PrintDefineFont PrintLine PrintOval PrintPage PrintRect PrintRoundRect PrintSend PrintSetFont PrintSetup PrintText PrintWidth PrintX PrintY PowerScript リファレンス ボリューム 2 913 PrintOval PrintOval 機能 印刷ページに指定の太さで、白抜きの楕円の輪郭を描きます。 構文 PrintOval ( printjobnumber, x, y, width, height, thickness ) 引数 printjobnumber x y width height thickness 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 楕円の形を決める長方形の左上の X 座標の位置を 1/1000 インチ単位の整数値で指定します。 楕円の形を決める長方形の左上の Y 座標の位置を 1/1000 インチ単位の整数値で指定します。 楕円の形を決める長方形の幅を 1/1000 インチ単位の整数 値で指定します。 楕円の形を決める長方形の高さを 1/1000 インチ単位の整 数値で指定します。 楕円の外周の線の太さを 1/1000 インチ単位の整数値で指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PrintOval 関数、PrintRect 関数、および PrintRoundRect 関数は、内部を塗 りつぶした(白抜きで覆った)図形を描きます。図形の内部にほかの 図形またはテキストを印刷するには、まず、内部を塗りつぶした図形 を描きます。次に、その内部にテキストと、塗りつぶした図形または 線分を描きます。ほかの印刷関数を呼び出した後で内部を塗りつぶし た図形を描くと、その図形は内部に描かれたものを覆ってしまいます。 たとえば、テキストと線分のまわりに外周を描く場合、まず、楕円ま たは四角形の外周を描きます。次に、PrintLine 関数と PrintText 関数を使 用して線分とテキストを内部に描きます。 PrintOval 関数は、印刷カーソルの位置を変更しません。印刷カーソル は関数が呼び出される前の位置のままです。通常、座標を引数とする 印刷関数は、印刷カーソルの位置に影響を及ぼしません。 例 次の例は、新しい空白の 1 ページから印刷ジョブを開始して、1 イン チの正方形に内接する楕円を印刷します。楕円の形を決める正方形の 左上の位置は、印刷領域の上から 4 インチ、左端から 3 インチで、高 さと幅が等しいので、この楕円は実際には円です。 long Job // 新しい空白の 1 ページを設定します。 Job = PrintOpen( ) 914 PowerBuilder 第 10 章 PowerScript の関数 // 楕円を印刷します。 PrintOval(Job, 4000, 3000, 1000, 1000, 10) ... // ほかの印刷 PrintClose(Job) 関連項目 PrintBitmap PrintClose PrintLine PrintOpen PrintRect PrintRoundRect PrintPage 機能 現在のページをプリンタ(またはスプーラ)に送り、新しい空白の 1 ページを印刷ジョブに設定します。 構文 PrintPage ( printjobnumber ) 引数 printjobnumber 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例の最初の 3 つの行は、新しい空白の 1 ページを設定し、そのペー ジにビットマップを印刷した後、そのページをプリンタまたはスプー ラに送り、新しい空白の 1 ページを設定します。最後の Print 関数は、 新しいページに会社名を印刷します。 long Job // 新しい空白の 1 ページを設定します。 Job = PrintOpen( ) // ビットマップを印刷します。 PrintBitmap(Job, "d:\PB\BITMAP1.BMP", 100,250, 0,0) // 新しいページを始めます。 PowerScript リファレンス ボリューム 2 915 PrintRect PrintPage(Job) // 新しいページに会社名を印刷します。 Print(Job, "Sybase Corporation") 関連項目 PrintClose PrintOpen PrintRect 機能 印刷ページに指定された太さの外周で、内部が白抜きの長方形を描き ます。 構文 PrintRect ( printjobnumber, x, y, width, height, thickness ) 引数 printjobnumber x y width height thickness 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 長方形の左上端の X 座標を 1/1000 インチ単位の整数値で 指定します。 長方形の左上端の Y 座標を 1/1000 インチ単位の整数値で 指定します。 長方形の幅を 1/1000 インチ単位の整数値で指定します。 長方形の高さを 1/1000 インチ単位の整数値で指定します。 長方形の外周の線の太さを 1/1000 インチ単位の整数値で 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PrintOval 関数、PrintRect 関数、および PrintRoundRect 関数は、内部を塗 りつぶした(白抜きで覆った)図形を描きます。図形の内部にほかの 図形またはテキストを印刷するには、まず、内部を塗りつぶした図形 を描きます。次に、その内部にテキストと、塗りつぶした図形または 線分を描きます。ほかの印刷関数を呼び出した後で内部を塗りつぶし た図形を描くと、その図形は内部に描かれたものを覆ってしまいます。 たとえば、テキストと線分のまわりに外周を描く場合、まず、楕円ま たは四角形の外周を描きます。次に、PrintLine 関数と PrintText 関数を使 用して線分とテキストを内部に描きます。 PrintRect 関数は、印刷カーソルの位置を変更しません。カーソルは、 関数が呼び出される前の位置に留まります。通常、座標を引数とする 印刷関数は、印刷カーソルの位置に影響を及ぼしません。 916 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、新しい空白の 1 ページから印刷ジョブを開始して、各辺が 1 インチの正方形を 1/8 インチの太さの線で印刷します。正方形の左上 の位置は、印刷領域の左端から 4 インチ、上から 3 インチです。 long Job // 新しい空白の 1 ページを設定します。 Job = PrintOpen( ) // そのページに長方形を印刷します。 PrintRect(Job, 4000,3000, 1000,1000, 125) ... // ほかの印刷 PrintClose(Job) 関連項目 PrintBitmap PrintClose PrintLine PrintOpen PrintOval PrintRoundRect PrintRoundRect 機能 印刷ページに指定された太さの外周で、内部が白抜きの丸長方形を描 きます。 構文 PrintRoundRect ( printjobnumber, x, y, width, height, xradius, yradius, thickness ) 引数 printjobnumber x y width height xradius yradius thickness PowerScript リファレンス ボリューム 2 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 長方形の左上端の X 座標を 1/1000 インチ単位の整数値で 指定します。 長方形の左上端の Y 座標を 1/1000 インチ単位の整数値で 指定します。 長方形の幅を 1/1000 インチ単位の整数値で指定します。 長方形の高さを 1/1000 インチ単位の整数値で指定します。 角の x 方向の丸め角度を表す整数値を指定します。 角の y 方向の丸め角度を表す整数値を指定します。 長方形の外周の線の太さを 1/1000 インチ単位の整数値で 指定します。 917 PrintRoundRect 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PrintOval 関数、PrintRect 関数、および PrintRoundRect 関数は、内部を塗 りつぶした(白抜きで覆った)図形を描きます。図形の内部にほかの 図形またはテキストを印刷するには、まず、内部を塗りつぶした図形 を描きます。次に、その内部にテキストと、塗りつぶした図形または 線分を描きます。ほかの印刷関数を呼び出した後で内部を塗りつぶし た図形を描くと、その図形は内部に描かれたものを覆ってしまいます。 たとえば、テキストと線分のまわりに外周を描く場合、まず、楕円ま たは四角形の外周を描きます。次に、PrintLine 関数と PrintText 関数を使 用して線分とテキストを内部に描きます。 PrintRoundRect 関数は、印刷カーソルの位置を変更しません。印刷カー ソルは関数が呼び出される前の位置のままです。通常、座標を引数と する印刷関数は、印刷カーソルの位置に影響を及ぼしません。 例 次の例は、新しい空白の 1 ページから印刷ジョブを開始し、ページ枠 を丸長方形にします。次に、プリンタにページを送る印刷ジョブを終 了します。 丸長方形は、高さ 9 インチ、幅 6 1/4 インチで、その左上の位置は印刷 領域の上から 1 インチ、左端から 1 インチです。丸長方形の外周は、 太さ 1/8 インチ、角 300 度で描きます。 long Job // 新しい空白の 1 ページを設定します。 Job = PrintOpen( ) // そのページに丸長方形を印刷します。 PrintRoundRect(Job, 1000,1000, 6250,9000, & 300,300, 125) // プリンタにページを送ります。 PrintClose(Job) 関連項目 918 PrintBitmap PrintClose PrintLine PrintOpen PrintOval PrintRect PowerBuilder 第 10 章 PowerScript の関数 PrintScreen 機能 画面のイメージを印刷ジョブの一部として印刷します。 構文 PrintScreen ( printjobnumber, x, y {, width, height } ) 引数 printjobnumber x y width (オプション) height (オプション) 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 画面イメージの左上端の X 座標を 1/1000 インチ単位の整 数値で指定します。 画面イメージの左上端の Y 座標を 1/1000 インチ単位の整 数値で指定します。 印刷する画面イメージの幅を 1/1000 インチ単位の整数値 で指定します。width を指定しない場合は、画面はオリジ ナルのサイズで印刷されます。width を指定すると、height も指定しなければなりません。 印刷する画面イメージの高さを 1/1000 インチ単位の整数 値で指定します。height を指定しない場合は、画面はオリ ジナルのサイズで印刷されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次のステートメントは、現行の画面イメージを元のサイズで(500,1000) の位置に印刷します。 long Job Job = PrintOpen( ) PrintScreen(Job, 500,1000) PrintClose(Job) 関連項目 Print PrintClose PrintOpen PowerScript リファレンス ボリューム 2 919 PrintSend PrintSend 機能 任意の文字列をプリンタに送ります。通常は、プリンタの設定を変更 するエスケープ シーケンスを送るために使用します。 関数仕様の変更 PrintSend 関数は、従来のバージョンのものであり、古いバージョンと の互換性のために提供されています。この関数を使用できるかどうか は、プリンタ ドライバに依存します。 構文 PrintSend ( printjobnumber, string {, zerochar } ) 引数 printjobnumber string zerochar (オプション) 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 プリンタに送る文字列を指定します。印字可能文字以外の 文字を文字列に含める場合は、その文字の ASCII コードを 使用してください。 string で指定する文字列中で、数字の 0 として使用する文 字の ASCII コード(1 ∼ 255)を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PrintSend 関数は、特定のプリンタにエスケープ シーケンスを送るため に使用します。たとえば、ビットマップの圧縮モードや余白を設定す る場合などです。エスケープ シーケンスの内容は、プリンタによって 異なります。 string で指定する文字列中の数字の 0 は、string を終了させます。ただ し、数字の 0 を制御コードとして使用するプリンタ コードがあります。 このような場合には、string に数字の 0 以外の文字を指定し、zerochar に数字の 0 の代わりとなる文字を指定できます。0 を示す文字には、通 常使用されない文字を指定します。プリンタに送られたその文字列は、 プリンタによって 0 に変換されます。 プリンタの設定を指定する通常の印刷ジョブでは、次の関数呼び出し が行われます。 920 1 PrintOpen 関数 2 PrintSend 関数(プリンタの設定の変更、トレイの選択など) 3 PrintDefineFont 関数、PrintSetFont 関数(フォントの指定) 4 Print 関数(テキストの印刷) 5 PrintClose 関数 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、新しい空白の 1 ページを設定し、IBM Proprinter モードで余 白を変更するエスケープ シーケンスをプリンタに送ります。0 を示す 文字は指定しません。 long Job // 印刷ジョブを開きます。 Job = PrintOpen( ) /* エスケープ シーケンスを送ります。 1B はヘキサのエスケープ キャラクタです。 X は余白を変更することを示します。 030 は左余白を 30 文字に設定しています。 040 は右余白を 40 文字に設定しています。 */ PrintSend(Job," ~ h1BX ~ 030 ~ 040") ... // テキストまたはデータウィンドウを印刷します。 // そのジョブをプリンタまたはスプーラに送ります。 PrintClose(Job) 次の例は、新しい空白の 1 ページを設定し、IBM Proprinter モードで余 白を変更するエスケープ シーケンスをプリンタに送ります。0 を示す 文字として、10 進の ASCII コード 255 を指定します。 long Job // 印刷ジョブを開きます。 Job = PrintOpen( ) /* エスケープ シーケンスを送ります。 1B はヘキサのエスケープ キャラクタです。 X は余白を変更することを示します。 255 は左余白を 0 に設定します。 040 は右余白を 40 文字に設定しています。 */ PrintSend(Job, "~h1BX~255~040", 255) PrintDataWindow(Job, dw_1) // そのジョブをプリンタまたはスプーラに送ります。 PrintClose(Job) 関連項目 PrintClose PrintOpen PowerScript リファレンス ボリューム 2 921 PrintSetFont PrintSetFont 機能 Print 関数を使用してテキストを印刷するときに使用するフォントを指 定します。PrintDefineFont 関数を使用して、フォント番号と必要なフォ ント、サイズ、およびプロパティを関連付けます。 構文 PrintSetFont ( printjobnumber, fontnumber ) 引数 printjobnumber 説明 fontnumber PrintDefineFont 関数を使用して定義したフォント番号(1 ∼ PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 8) 、または 0(プリンタの標準のフォント)を指定します。 戻り値 Integer 型。正常に終了した場合は現行のフォントの文字の高さを返し、 エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、 新しい印刷ジョブを開始し、 フォント番号 2 に対して、 Courier、 18 ポイント、太字、デフォルト ピッチ、modern フォント、斜体なし、 下線なしと定義します。PrintSetFont 関数はフォント 2 を現行のフォン トとして設定し、Print 関数は会社名を印刷します。 long Job // 新しい印刷ジョブとページを開始します。 Job = PrintOpen( ) // ジョブに対してフォントを定義します。 PrintDefineFont(Job, 2, "Courier 10Cps", & 250, 700, Default!, Modern!, FALSE, FALSE) // ジョブに対してフォントを設定します。 PrintSetFont(Job, 2) // 設定したフォントで会社名を印刷します。 Print(Job,"Sybase Corporation") 関連項目 922 PrintDefineFont PrintOpen PowerBuilder 第 10 章 PowerScript の関数 PrintSetPrinter 機能 次の印刷関数の呼び出し時に使用するプリンタを設定します。この関 数は、開いているジョブには影響しません。 構文 PrintSetPrinter ( printername ) 引数 printername 戻り値 説明 使用するプリンタの名前を表す文字列を指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 printername 引数では、PrinterGetPrinter 関数から返される文字列と同じ 形式を使用する必要があります。 例 次の例では、使用するプリンタとして、PrinterGetPrinters 関数で取得し たリストの最初のプリンタを設定しています。 long ll_place string ls_setprn string ls_prntrs = PrintGetPrinters ( ) ll_place=pos (ls_prntrs, "~n") mle_1.text = PrintGetPrinters ( ) ls_setprn = Left (ls_prntrs, ll_place - 1) PrintSetPrinter (ls_setprn) 関連項目 PrintGetPrinter PrintGetPrinters PowerScript リファレンス ボリューム 2 923 PrintSetSpacing PrintSetSpacing 機能 行間隔の算出に使用するファクタを設定します。 構文 PrintSetSpacing ( printjobnumber, spacingfactor ) 引数 printjobnumber spacingfactor 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 現行の文字の高さに乗算して、垂直方向の行間を決めるた めの比例定数(スペース ファクタ)を指定します。特に指 定しない限り、1.2 が設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PowerBuilder における行間隔は、文字の高さに比例します。標準の間 隔は文字の高さの 1.2 倍です。Print 関数は、新しい行を開始するとき にカーソルの x 座標を 0 に設定し、現行の行間隔によって y 座標を増 加します。PrintSetSpacing 関数を使用すると、開いている印刷ジョブの 行間隔を決定する新しい比例定数(スペース ファクタ)を指定できま す。 例 次の例は、新しい印刷ジョブを開始し、垂直方向のスペース ファクタ を 1.5(文字の高さの 1.5 倍)に設定します。 long Job // 新しい空白の 1 ページを設定します。 Job = PrintOpen( ) // スペース ファクタを設定します。 PrintSetSpacing(Job, 1.5) 関連項目 924 PrintOpen PowerBuilder 第 10 章 PowerScript の関数 PrintSetup 機能 プリンタの設定 ダイアログボックスを表示し、エンド ユーザがプリン タの設定を指定できるようにします。 構文 PrintSetup ( ) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 エンド ユーザの設定は現行のアプリケーションが終了するまで有効 です。アプリケーションが終了すると、プリンタの設定は元の値に戻 ります。 例 次のステートメントは、現行のシステム プリンタのプリンタの設定 ダ イアログボックスを表示し、新しい印刷ジョブを開始します。 long Job // プリンタ セットアップ プログラムを起動します。 PrintSetup() // 印刷ジョブを開始し、改ページします。 Job = PrintOpen( ) 関連項目 PrintOpen PowerScript リファレンス ボリューム 2 925 PrintSetupPrinter PrintSetupPrinter 機能 プリンタの設定 ダイアログボックスを表示します。 構文 PrintSetupPrinter ( ) 戻り値 Integer 型。関数が成功した場合は 1、キャンセルされた場合は 0、エ ラーが発生した場合は -1 を返します。 解説 異なるプリンタの設定 ダイアログボックスを表示する場合には、事前 に PrintSetPrinter 関数を呼び出しておきます。PrintSetup 関数の場合とは 異なり、PrintSetupPrinter 関数の呼び出しでプリンタを変更することは できません。 例 次の例では、PrintGetPrinters 関数で取得したリストの最後のプリンタに 対応するプリンタの設定 ダイアログボックスを表示しています。 long ll_place string ls_setptr string ls_prntrs = PrintGetPrinters ( ) ll_place=lastpos (ls_prntrs, "~n") ls_setptr = Mid (ls_prntrs, ll_place + 1) PrintSetPrinter (ls_setptr) PrintSetupPrinter () 関連項目 926 PrintGetPrinter PrintSetPrinter PrintSetup PowerBuilder 第 10 章 PowerScript の関数 PrintText 機能 指定された座標位置から、テキストの行を印刷します。 構文 PrintText ( printjobnumber, string, x, y {, fontnumber } ) 引数 printjobnumber string x y fontnumber (オプション) 戻り値 解説 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 印刷するテキストを表す文字列を指定します。 テキストの印刷を開始する位置の X 座標(1/1000 インチ単 位)を表す整数値を指定します。 テキストの印刷を開始する位置の Y 座標(1/1000 インチ単 位)を表す整数値を指定します。 PrintDefineFont 関数を使用して定義したフォント番号(1 ∼ 8)、または 0(プリンタの標準フォント)を指定します。 fontnumber が省略された場合、この印刷ジョブの現行の フォントでテキストを印刷します。 Integer 型。正常に終了した場合は新しい印刷カーソル位置の X 座標 (引数 x の値 + テキストの幅)を返し、エラーが発生した場合は -1 を 返します。引数のいずれかの値が NULL の場合、NULL を返します。 PrintText 関数は、座標を引数とするほかの印刷関数と異なり、印刷カー ソルの位置を変更します。印刷カーソルは、印刷されたテキストの後 に移動します。PrintText 関数は、印刷カーソルの x 座標を返します。そ の戻り値を使用して、ほかのテキストの印刷開始位置を決定すること ができます。 PrintText 関数は、 ページの垂直位置であるカーソルの y 座標の位置を変 更しません。 例 次のステートメントは、新しい印刷ジョブを開始し、ページの左上端 から 3.7 インチ(3700,10)の位置に、現行のフォントで「PowerBuilder」 という文字列を印刷します。 long Job // 新しい空白の 1 ページを設定します。 Job = PrintOpen( ) // テキストを印刷します。 PrintText(Job,"PowerBuilder", 3700, 10) ... // ほかの印刷 PrintClose(Job) PowerScript リファレンス ボリューム 2 927 PrintText 次のステートメントは、新しい空白のページを定義した後、ページの 上端に中央揃えで「Confidential」を太字で出力します(太字はフォント 番号 3 で定義します)。 long Job // 新しいジョブとページを開始します。 Job = PrintOpen( ) // フォントを定義します。 PrintDefineFont(Job, 3, & "Courier 10Cps", 250,700, & Default!, AnyFont!, FALSE, FALSE) // テキストを印刷します。 PrintText(Job, "Confidential", 3700, 10, 3) ... // ほかの印刷 PrintClose(Job) 次の例は、ページの中央に 4 行のテキストを印刷します。PrintText 関数 の座標によって、印刷カーソルの新しい垂直位置が決定します。印刷 カーソルは、以降の Print 関数で使用され、その位置から増分処理が行 われます。最初の Print 関数では、PrintText 関数から返された x 座標を 使用して最初の行を出力します。以降の Print 関数のテキスト行の出力 では、PrintText 関数で最初に使用した x 座標へのタブによる移動が行わ れます。次の例では、各 Print 関数で y 座標を増加させることで、Print 関数ごとに新しい行を開始しています。 long Job // 新しいジョブとページを開始します。 Job = PrintOpen( ) // テキストを印刷します。 x = PrintText(Job,"The material ", 2000, 4000) Print(Job, x, " in this report") Print(Job, 2000, "is confidential and should not") Print(Job, 2000, "be disclosed to anyone who") Print(Job, 2000, "is not at this meeting.") ... // ほかの印刷 PrintClose(Job) 関連項目 928 Print PrintClose PrintOpen PowerBuilder 第 10 章 PowerScript の関数 PrintWidth 機能 指定された印刷ジョブが現行のフォントを使用したときの文字列の幅 を取得します。 構文 PrintWidth ( printjobnumber, string ) 引数 printjobnumber string 戻り値 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 テキストを表す文字列を指定します。このテキストの幅を 取得します。 Integer 型。正常に終了した場合は string で指定された文字列の幅を返 し、エ ラ ー が 発 生 し た 場 合 に は -1 を 返 し ま す。返 さ れ る 幅 は、 printjobnumber で指定した現行のフォントを使用し、1/1000 インチ単位 で表します。引数のいずれかの値が NULL の場合、NULL を返します。 返された幅が最大値(+32767)を超えた場合は、-1 を返します。 例 次のステートメントは、新しい空白の 1 ページを設定し、現在のフォ ントを使用した場合の文字列 PowerBuilder の幅を取得し、W に設定 します。Print 関数の引数に W を使用して印刷を開始する位置を指定し ます。 long Job int W // 新しい印刷ジョブを開始します。 Job = PrintOpen( ) // テキストの幅を取得します。 W = PrintWidth(Job,"PowerBuilder") // その幅を使用して次の印刷位置を求めます。 Print(Job, W - 500, "Features List") 関連項目 PrintClose PrintOpen PowerScript リファレンス ボリューム 2 929 PrintX PrintX 機能 印刷カーソルの X 座標を取得します。 構文 PrintX ( printjobnumber ) 引数 printjobnumber 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 戻り値 Integer 型。正常に終了した場合は印刷カーソルの X 座標を返し、エ ラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の 場合、NULL を返します。 例 次のステートメントは、印刷カーソルの X 座標を LocX に格納します。 印刷カーソル位置を右へ 1 インチ移動し、End of Report を印刷します。 integer LocX long Job Job = PrintOpen( ) ... // 印刷ステートメント LocX = PrintX(Job) Print(LocX+1000, "End of Report") 関連項目 930 PrintY PowerBuilder 第 10 章 PowerScript の関数 PrintY 機能 印刷カーソルの Y 座標を取得します。 構文 PrintY ( printjobnumber ) 引数 printjobnumber 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 戻り値 Integer 型。正常に終了した場合は印刷カーソルの Y 座標を返し、エ ラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の 場合、NULL を返します。 例 次のステートメントは、印刷カーソルの位置から 1 インチ下にビット マップを印刷します。 integer LocX, LocY long Job Job = PrintOpen( ) ... // 印刷ステートメント LocX = PrintX(Job) LocY = PrintY(Job) + 1000 PrintBitmap(Job, "CORP.BMP", LocX, LocY, 1000,1000) 関連項目 PrintX PowerScript リファレンス ボリューム 2 931 ProfileInt ProfileInt 機能 アプリケーションのプロファイルに設定されている情報(Integer 型の 値)を取得します。 構文 ProfileInt ( filename, section, key, default ) 引数 filename section key default 説明 プロファイルの名前を表す文字列を指定します。絶対パス 名が指定されていない場合、システムの標準のファイル検 索方法でファイルを検索します。 プロファイル内の関連する値のグループの名前(セクショ ン名)を表す文字列を指定します。プロファイルでは、セ クション名が角カッコ([])で囲まれています。ただし、 section を指定する場合には、セクション名を角カッコ([]) で囲まないでください。section は、大文字と小文字を区別 しません。 section でのキーワードを指定する文字列を指定します。プ ロファイルでは、キーワードの後ろに等号(=)が付いて います。ただし、key を指定する場合には、キーワードの 後ろに等号(=)を付けないでください。key は、大文字 と小文字を区別しません。 ProfileInt 関数が返す Integer 型の値を指定します。この値 は、filename に指定されているファイルが見つからない場 合、filename に指定されているファイル内に、section に指 定されているセクションや key に指定されているキーワー ドがない場合、または key の値を Integer 型に変換できない 場合に返されます。 戻り値 Integer 型。filename に指定されたファイルが見つからない場合、section で指定されたセクションがプロファイル内にない場合、key に指定され たキーワードが指定のセクションにない場合、または key に指定され た値が整数でない場合には、default に指定された整数値を返します。 エラーが発生した場合には -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 ProfileInt 関数と ProfileString 関数を使用すると、自分のアプリケーショ ンのプロファイルの設定に関する情報を取得できます。 SetProfileString 関数を使用すると、プロファイルの値を変更してアプリ ケーションの設定を実行時にカスタマイズできます。プロファイルの 値を変更する前に、ProfileInt 関数と ProfileString 関数を使用して元の設 定を保存します。このようにしておくと、エンド ユーザがアプリケー ションを終了したときに、保存しておいた情報を使用してアプリケー ションを元の状態に戻すことができます。 932 PowerBuilder 第 10 章 PowerScript の関数 ProfileInt 関数、ProfileString 関数、SetProfileString 関数は、Windows シス テム上では ANSI または UTF16-LE エンコーディング、UNIX システム 上では ANSI または UTF16-BE エンコーディングでファイルからの読 み取りやファイルへの書き込みをすることができます。 Windows レジストリ ProfileInt 関数を使って、Windows システム レジストリから環境設定の 情報を取得できます。システム レジストリの使用方法についての詳細 は、『アプリケーション テクニック』マニュアルの「初期設定ファイ ルおよび Windows レジストリの管理」を参照してください。 例 ここでは、プロファイル PROFILE.INI の次のセクションを使用した例 について説明します。 [Pb] Maximized=1 [security] Class=7 次のステートメントは、ファイル PROFILE.INI の PB セクションに記 述されているキーワード Maximized の整数値を返します。PB セクショ ンがない場合や、PB セクションにキーワード Maximized がない場合、 "3" を返します。 ProfileInt("C:\PROFILE.INI", "PB", "maximized", 3) 次の例は、ファイル C:\PROFILE.INI の Security セクションに記述され ているキーワード Class の設定が 9 以下の場合に、メッセージ ボック スを表示します。プロファイルがない場合や、プロファイルに Class の 設定がない場合は、"6" を返します。 IF ProfileInt("C:\PROFILE.INI", "Security", & "Class", 6) < 10 THEN // Class が 10 未満の場合 MessageBox(" 警告 ", " アクセスは拒否されました。") ELSE ... // 処理を行います。 END IF 関連項目 ProfileString SetProfileString 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ProfileInt メソッド PowerScript リファレンス ボリューム 2 933 ProfileString ProfileString 機能 アプリケーションのプロファイルに設定されている情報(String 型の 値)を取得します。 構文 ProfileString ( filename, section, key, default ) 引数 filename section key default 説明 プロファイルの名前を表す文字列を指定します。絶対パス 名が指定されていない場合、システムの標準のファイル検 索方法でファイルを検索します。 プロファイル内の関連する値のグループの名前(セクショ ン名)を表す文字列を指定します。プロファイルでは、セ クション名が角カッコ([])で囲まれています。ただし、 section を指定する場合には、セクション名を角カッコ([]) で囲まないでください。section は、大文字と小文字を区別 しません。 section でのキーワードを指定する文字列を指定します。プ ロファイルでは、キーワードの後ろに等号(=)が付いて います。ただし、key を指定する場合には、キーワードの 後ろに等号(=)を付けないでください。key は、大文字 と小文字を区別しません。 ProfileString 関数が返す String 型の値を指定します。この値 は、filename に指定されているファイルが見つからない場 合、filename に指定されているファイル内に、section に指 定されているセクションや key に指定されているキーワー ドがない場合、または key の値を String 型に変換できない 場合に返されます。 戻り値 String 型。最大 4,096 文字までの文字列。filename に指定されているファ イルの section に指定されているセクションで key に指定されている キーワードの値を返します。filename に指定されているファイルが見 つからない場合、section に指定されているセクションがプロファイル 内にない場合、または key に指定されているキーワードが指定のセク ションにない場合は、default に指定されている文字列を返します。エ ラーが発生した場合、空の文字列("")を返します。引数のいずれか の値が NULL の場合、NULL を返します。 解説 ProfileInt 関数と ProfileString 関数を使用すると、自分のアプリケーショ ンのプロファイルの設定に関する情報を取得できます。 934 PowerBuilder 第 10 章 PowerScript の関数 SetProfileString 関数を使用すると、プロファイルの値を変更してアプリ ケーションの設定を実行時にカスタマイズできます。プロファイルの 値を変更する前に、ProfileInt 関数と ProfileString 関数を使用して元の設 定を保存します。このようにしておくと、エンド ユーザがアプリケー ションを終了したときに、保存しておいた情報を使用してアプリケー ションを元の状態に戻すことができます。 ProfileInt 関数、ProfileString 関数、SetProfileString 関数は、Windows シス テム上では ANSI または UTF16-LE エンコーディング、UNIX システム 上では ANSI または UTF16-BE エンコーディングでファイルからの読 み取りやファイルへの書き込みをすることができます。 Windows レジストリ さらに、32 ビット オペレーティング システムでは、ProfileString 関数を 使って、Windows システム レジストリ から環境設定の情報を取得でき ます。システム レジストリの使用方法についての詳細は、 『アプリケー ション テクニック』マニュアルの「初期設定ファイルおよび Windows レジストリの管理」を参照してください。 例 ここでは、プロファイル PROFILE.INI の次のセクションを使用した例 について説明します(INI ファイル内で文字列値を囲む引用符はオプ ションです)。 [Employee] Name=Smith [Dept] Name=Marketing 次のステートメントは、C:\PROFILE.INI ファイルの Employee セク ションに記述されているキーワード Name の値の文字列を返します。 エラーが発生した場合、"None" を返します。この例では、"Smith" が 返されます。 ProfileString("C:\PROFILE.INI", "Employee", & "Name", "None") 次の例は、ファイル C:\PROFILE.INI の Department セクションに含まれ るキーワード Name の文字列が Marketing であった場合に、w_marketing を開きます。 IF ProfileString("C:\PROFILE.INI", "Department", & "Name", "None") = "Marketing" THEN Open(w_marketing) END IF PowerScript リファレンス ボリューム 2 935 ProfileString 関連項目 936 ProfileInt SetProfileString 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ProfileString メソッド PowerBuilder 第 10 章 PowerScript の関数 Rand 機能 1 から指定された上限までの範囲にある整数の乱数を返します。 構文 Rand ( n ) 引数 n 説明 返される乱数の上限を指定します。下限は常に 1 です。上 限は 32,767 です。 戻り値 数値データ型、n のデータ型。1 から n までの範囲(1 と n を含む)に ある整数の乱数を返します。n が NULL の場合、NULL を返します。 解説 Rand 関数を繰り返し呼び出して生成させた一連の数値は、擬似乱数 シーケンスです。アプリケーションの実行のたびに、乱数シーケンス が異なるようにするには、Randomize 関数を呼び出して乱数ジェネレー タを初期化します。 例 次の文は、1 ∼ 10 の範囲の整数の乱数を返します。 Rand(10) 関連項目 Randomize Randomize 機能 Rand 関数が新しい擬似乱数を生成するように、乱数ジェネレータを初 期化します。 構文 Randomize ( n ) 引数 n 戻り値 説明 乱数ジェネレータを初期化する値(シード値)を指定しま す。n にゼロを指定するとシステム クロックからシード値 を得るので、毎回異なる乱数を生成します。0 以外の値を 指定すると、シード値ごとに同じ乱数を繰り返し生成しま す。n は、32,767 以下です。 Integer 型。n が NULL の場合、NULL を返します。通常戻り値は使用さ れません。 PowerScript リファレンス ボリューム 2 937 Read 解説 Rand 関数を繰り返し呼び出して生成させた一連の数値は、擬似乱数 シーケンスです。Randomize 関数を使用してシステム クロックまたは ほかの変更値で乱数ジェネレータを初期化できるので、アプリケー ションの実行のたびに異なる乱数シーケンスを生成することができま す。テスト用のデータを生成するために、特定のシード値を選択し、 アプリケーションの実行のたびに同じ擬似乱数を繰り返し生成するこ とができます。 アプリケーションの Open イベントに対するスクリプトで Randomize 関数を呼び出してください。 例 次のステートメントは、乱数ジェネレータのシード値を 0 に設定し、 スクリプトの実行のたびに Rand 関数を呼び出して乱数を発生させま す。 Randomize(0) 次のステートメントは、乱数ジェネレータのシード値を 4 に設定して いるので、乱数ジェネレータが初期化されるたびに Rand 関数が呼び出 され、同じ乱数が繰り返し生成されます。 Randomize(4) 関連項目 Rand Read 開いている OLEStream オブジェクトからデータを読み込みます。 目的 データを文字列に読み込む データを文字配列または Blob 型の変数に読み込む 使用する構文 構文 1 構文 2 構文 1 データを文字列に読み込む 機能 OLEStream オブジェクトから文字列にデータを読み込みます。 対象 OLEStream オブジェクト 構文 olestream.Read ( variable {, stopforline } ) 引数 olestream 938 説明 開いている OLEStream 変数の名前を指定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 variable 説明 stopforline (オプション) String 型の変数。olestream から読み込んだデータを格納す る変数の名前を指定します。 Boolean 型の値。一度に 1 行ずつ読み込むかどうかを指定 します。つまり、次のキャリッジ リターン文字とライン フィード文字で、Read 関数が読み込みを停止するかどう かを指定します。値は以下のとおりです。 • TRUE −(デフォルト)行の最後で読み込みを停止し、 読み込みポインタをキャリッジ リターン文字とライン フィード文字の後に設定します。次の読み込み操作で、 次の行を読み込むことができるようにします。 • FALSE − ストリーム全体、または最大 32,765 バイトを 読み込みます。 戻り値 Integer 型。読み込んだ文字数またはバイト数を返します。文字を読み 込む前にエンド オブ ファイル マーク(EOF)が検出された場合、Read 関数は -100 を返します。エラーが発生した場合、次のいずれかの負の 値を返します。 -1 -2 -9 ストリームが開かれていません。 読み込みエラーです。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、MYSTUFF.OLE ファイルで OLE オブジェクトを開き、 OLEStorage オブジェクト stg_stuff に代入します。次に、stg_stuff のスト リーム info を開き、ストリーム オブジェクト olestr_info に割り当てま す。最後に、olestr_info の内容を文字列 ls_info に読み込みます。 この例では、関数の戻り値をチェックしていませんが、実際のスクリ プトでは必ず戻り値をチェックしてください。 boolean lb_memexists OLEStorage stg_stuff OLEStream olestr_info blob ls_info stg_stuff = CREATE OLEStorage stg_stuff.Open("c:\ole2\mystuff.ole") olestr_info.Open(stg_stuff, "info", & stgRead!, stgExclusive!) olestr_info.Read(ls_info) PowerScript リファレンス ボリューム 2 939 Read 関連項目 Open Length Seek Write 構文 2 データを文字列配列または Blob 型の変数に読み込む 機能 OLEStream オブジェクトから文字配列または Blob 型の変数にデータ を読み込みます。 対象 OLEStream オブジェクト 構文 olestream.Read ( variable {, maximumread } ) 引数 olestream variable maximumread (オプション) 戻り値 説明 開いている OLEStream 変数の名前を指定します。 olestream からデータを読み込む Blob 型の変数または文字 配列の名前を指定します。 Long 型の値。読み込む最大バイト数を指定します。特に 指定しない限り、32,765 文字または olestream の長さが設 定されます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -9 ストリームが開かれていません。 読み込みエラーです。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、MYSTUFF.OLE ファイルで OLE オブジェクトを開き、 OLEStorage オブジェクト stg_stuff に代入します。次に、stg_stuff のスト リーム info を開き、ストリーム オブジェクト olestr_info に割り当てま す。最後に、olestr_info の内容を Blob 型の変数 lb_info に読み込みます。 この例では、関数の戻り値をチェックしていませんが、実際のスクリ プトでは必ず戻り値をチェックしてください。 boolean lb_memexists OLEStorage stg_stuff OLEStream olestr_info blob lb_info stg_stuff = CREATE OLEStorage stg_stuff.Open("c:\ole2\mystuff.ole") 940 PowerBuilder 第 10 章 PowerScript の関数 olestr_info.Open(stg_stuff, "info", & stgRead!, stgExclusive!) olestr_info.Read(lb_info) 関連項目 Open Length Seek Write Real 機能 String 型の値を Real 型のデータに変換します。または、Blob 型変数に 格納されている Real 型の値を取得します。 構文 Real ( stringorblob ) 引数 stringorblob 説明 Real 型として返す String 型、または最初の値が Real 型で ある Blob 型変数を指定します。残りの Blob 型の値は無視 されます。stringorblob は文字列または Blob 型を含む Any 変数を指定することもできます。 戻り値 Real 型。stringorblob で指定された値を Real 型として返します。 stringorblob に指定された値が PowerScript で有効な数値でない場合、ま たは一致しないデータ型を含む場合には、0 を返します。stringorblob が NULL の場合、NULL を返します。 例 次のステートメントは、Real 型の 24 を返します。 Real("24") 次のステートメントは、シングルライン エディット コントロール sle_Temp のテキストを Real 型で返します。 Real(sle_Temp.Text) 次の例は、実際に即した値ではありませんが、Real 型の値を Blob 型の 変数に挿入する方法と、Real 関数を使用して Blob 型の変数から Real 型 の値を取り出す方法を示します。2 つの BlobEdit 関数は、Blob 型の変 数に 2 つの Real 型の値を挿入します。Real 関数を使用してその値を取 り出すステートメントで、Real 型の各値の先頭位置を指定します。Real 関数はバイト数がわかっているので、BlobMid 関数のように正確な値の 長さを指定する必要はありません。 PowerScript リファレンス ボリューム 2 941 RecognizeText blob{20} lb_blob real r1, r2 integer len1, len2 len1 = BlobEdit(lb_blob, 1, 32750E0) len2 = BlobEdit(lb_blob, len1, 43750E0) // 先頭の Real 型の値を取得します。 // Blob 型変数の残りの値は無視します。 r1 = Real(lb_blob) // Blob 型変数に格納されている 2 番目の Real 型の値を取り出し ます。 r2 = Real(BlobMid(lb_blob, len1, len2 - len1)) 関連項目 Double Integer Long 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Real メソッド RecognizeText 機能 インクエディット コントロール内のテキストを認識するように指定 します。 対象 インクエディット コントロール 構文 inkeditname.RecognizeText ( ) 引数 inkeditname 戻り値 説明 テキストを認識したいインクエディット コントロールの名 前を指定します。 Integer 型。テキストが認識される場合は 1 を返し、そうでない場合は 0 を返します。 解説 デフォルトでは、ユーザがインクの入力中に中断したとき、および RecognitionTimer プロパティで指定した秒数が経過したときに、インク が自動的に認識されます。テキストを認識させずにユーザが中断でき るようにするには、RecognitionTimer 間隔をあけて、ボタンの clicked イベントあるいは別のイベントで RecognizeText 関数をコードに記述し ます。 942 PowerBuilder 第 10 章 PowerScript の関数 例 “Done” ボタンの clicked イベントの次のコードで、認識エンジンはユー ザが入力したストロークをテキストとして認識します。 boolean lb_success lb_success = ie_1.RecognizeText() RegistryDelete 機能 Windows のシステム レジストリのキーまたはキーの値を削除します。 構文 RegistryDelete ( key, valuename ) 引数 key valuename 説明 String 型の値。削除するシステム レジストリのキーまたは キーの値を指定します。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 レジストリの値の名前を含む文字列を指定します。指定さ れたキーにサブキーがない場合は、空の文字列を指定する と、キーと名前のある値が削除されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 システム レジストリのエントリについての詳細は、「RegistrySet 関数」 を参照してください。 例 次のステートメントは、レジストリから、Title という名前の値とその 値に関連付けられている値を削除します。キーは削除されません。 RegistryDelete( & "HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts",& "Title") 関連項目 RegistryGet RegistryKeys RegistrySet RegistryValues PowerScript リファレンス ボリューム 2 943 RegistryGet RegistryGet 機能 Windows のシステム レジストリから値を取得します。 構文 RegistryGet ( key, valuename, { valuetype }, valuevariable ) 引数 key valuename valuetype 説明 String 型の値。システム レジストリのキーの名前を指定し ます。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 レジストリの値の名前を含む文字列を指定します。各キー には、名前のない値を 1 つと、名前のある値を複数持つこ とができます。名前のない値の場合は、空の文字列("") を指定します。 RegistryValueType カタログ データ型の値を指定します。こ の値を使って、レジストリの値のデータ型を識別します。 値は以下のとおりです。 • RegString! − NULL で終わる文字列 • RegExpandString! − 環境変数への非拡張参照を含む、 NULL で終わる文字列 • RegBinary! − バイナリ データ • ReguLong! − 32 ビットの数値 • ReguLongBigEndian! − 32 ビットの数値 • RegLink! − Unicode シンボリック リンク valuevariable • RegMultiString! − String 型の値の可変長配列 valuetype で指定したデータ型に対応する変数を指定しま す。この変数に、指定されたキーと値の名前でシステム レ ジストリから取得した値を格納します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。valuevariable のデータ型が valuetype で指定したデータ 型に対応していない場合は、エラーとなります。 解説 レジストリの値が、長い文字列である(2048 バイトを超える)場合は、 文字列は別のファイルに格納され、そのファイル名がレジストリに格 納されます。システム レジストリのキーと値の名前についての詳細 は、「RegistrySet 関数」を参照してください。 例 次のステートメントは、レジストリから Title という名前の値を取得し、 ls_titlefont に格納します。 string ls_titlefont RegistryGet( & 944 PowerBuilder 第 10 章 PowerScript の関数 "HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts",& "Title", RegString!, ls_titlefont) 次のステートメントは、レジストリから NameOfEntryNum という名前の 値を取得して、Long 型変数 ul_num に格納します。 ulong ul_num RegistryGet("HKEY_USERS\MyApp.Settings\Fonts", & "NameOfEntryNum", RegULong!, ul_num) 関連項目 RegistryDelete RegistryKeys RegistrySet RegistryValues RegistryKeys 機能 Windows のシステム レジストリのキーより 1 つ下のレベルにある子項 目(サブキー)のキー一覧を取得します。 構文 RegistryKeys ( key, subkeys ) 引数 key subkeys 説明 String 型の値。サブキーを取得するシステム レジストリの キーの名前を指定します。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 サブキーを格納する String 型の配列変数を指定します。 配列のサイズが可変の場合、要素数には検索されたサブ キーの数が反映されます。 配列のサイズが固定の場合、すべてのサブキーを格納する のに十分な大きさが必要です。ただし、すべてのサブキー を検索できたかどうかを確認することはできません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 システム レジストリのエントリについての詳細は、「RegistrySet 関数」 を参照してください。 例 次の例は、キー HKEY_CLASSES_ROOT\MyApp に関連付けられたサ ブキーを取得します。サブキーは、可変サイズ配列 ls_subkeylist に格納 されます。 PowerScript リファレンス ボリューム 2 945 RegistrySet string ls_subkeylist[] integer li_rtn li_rtn = RegistryKeys("HKEY_CLASSES_ROOT\MyApp", & ls_subkeylist) IF li_rtn = -1 THEN ... // エラー処理 END IF 関連項目 RegistryDelete RegistryGet RegistrySet RegistryValues RegistrySet 機能 キーの値と値の名前をシステム レジストリに設定します。キーまたは 値の名前が存在しない場合、新しいキーまたは名前を作成し、値を設 定します。 構文 RegistrySet ( key, valuename, valuetype, value ) 引数 key 説明 String 型の値。システム レジストリのキーの名前を指定し ます。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 valuename key がレジストリにない場合、RegistrySet 関数は新しい キーを作成します。名前のない値で key を作成するには、 valuename に空の文字列("")を指定します。 レジストリの値の名前を含む文字列を指定します。各キー には、名前のある値が複数ある可能性があります。名前の ない値を指定するには、空の文字列("")を指定します。 レジストリに valuename がない場合、 RegistrySet 関数は key に新しい名前のある値を作成します。 946 PowerBuilder 第 10 章 PowerScript の関数 引数 valuetype 説明 RegistryValueType カタログ データ型の値を指定します。こ の値を使って、レジストリの値のデータ型を識別します。 値は以下のとおりです。 • RegString! − NULL で終わる文字列 • RegExpandString! − 環境変数への非拡張参照を含む、 NULL で終わる文字列 • RegBinary! − バイナリ データ • ReguLong! − 32 ビットの数値 • ReguLongBigEndian! − 32 ビットの数値 • RegLink! − Unicode シンボリック リンク value • RegMultiString! − String 型の値の可変長配列 valuetype のデータ型に対応した変数を指定します。レジス トリに設定すべき値をこの変数に格納します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。valuevariable のデータ型が valuetype で指定したデータ 型に対応していない場合は、エラーとなります。 解説 レジストリの値が、長い文字列である(2048 バイトを超える)場合は、 文字列は別のファイルに格納され、そのファイル名がレジストリに格 納されます。 項目 キー 説明 レジストリの構成要素の 1 つです。キーは、キーのツリー の一部で、すでに定義されたルート キーのうちの 1 つの子 孫です。各キーは、サブキーまたは階層構造での親キーの 子です。 ルートには、次の 4 つのキーがあります。 • HKEY_CLASSES_ROOT • HKEY_LOCAL_MACHINE • HKEY_USERS • HKEY_CURRENT_USER キーは、その上位の親キーの一覧で識別されます。一覧に あるキーは、次の例に示されるように円記号(\)で区切 られています。 HKEY_CLASSES_ROOT\Sybase.Application HKEY_USERS\MyApp\Display\Fonts 値の名前 値の型 PowerScript リファレンス ボリューム 2 キーに属する値の名前です。キーは、名前のない値を1つ と、複数の名前がある値を持つことができます。 レジストリの値のデータ型を示す値です。 947 RegistryValues 項目 値 例 説明 値の名前に関連付けられた値または、名前のない値です。 レジストリでは、いくつかの文字列、数値、およびバイナ リのデータ型がサポートされます。 次の例は、レジストリの Fonts キーと Title という名前の値に値を設定 します。 RegistrySet( & "HKEY_LOCAL_MACHINE\Software\MyApp\Fonts", & "Title", RegString!, sle_font.Text) 次の例は、レジストリの Fonts キーと NameOfEntryNum という名前の値 に値を設定します。 ulong ul_num RegistrySet( & "HKEY_USERS\MyApp.Settings\Fonts", & "NameOfEntryNum", RegULong!, ul_num) 関連項目 RegistryDelete RegistryGet RegistryKeys RegistryValues RegistryValues 機能 キーに関連付けられた名前のある値の一覧を取得します。 構文 RegistryValues ( key, valuename ) 引数 key valuename 説明 String 型の値。サブキーの値を取得するシステム レジスト リのキーを指定します。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 名前を格納する String 型の配列変数を指定します。 配列のサイズが可変の場合、要素数には検索された名前の ある値の数が反映されます。 配列のサイズが固定の場合、すべての名前を格納するのに 十分な大きさが必要です。ただし、名前が実際にいくつ検 索されたかを知る方法はありません。 948 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 システム レジストリのエントリについての詳細は、「RegistrySet 関数」 を参照してください。 例 次の例は、レジストリから Fonts キーに関連付けられている値の名前 を取得し、配列 ls_valuearray に格納します。 string ls_valuearray[] RegistryValues( & "HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts",& ls_valuearray) 関連項目 RegistryDelete RegistryGet RegistryKeys RegistrySet RelativeDate 機能 指定された日付から、指定された日数だけ前または後の日付を取得し ます。 構文 RelativeDate ( date, n ) 引数 date n 戻り値 説明 Date 型の値。日付を指定します。 Integer 型の値。日数を指定します。 Date 型。n に指定されている値が 0 以上の場合は date の n 日後の日付 を返します。n が 0 未満の場合は date の n 日前の日付を返します。引 数のいずれかの値が NULL の場合、NULL を返します。 例 次のステートメントは、2000-02-10 を返します。 RelativeDate(2000-01-31, 10) 次のステートメントは、2000-01-21 を返します。 RelativeDate(2000-01-31, 関連項目 - 10) DaysAfter 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RelativeDate メソッド PowerScript リファレンス ボリューム 2 949 RelativeTime RelativeTime 機能 ある時刻を起点とし、指定された秒数より前または後の時刻を 24 時間 未満の表記で返します。 構文 RelativeTime ( time, n ) 引数 time n 説明 Time 型の値を指定します。 Long 型の値。秒数を指定します。 戻り値 Time 型。n が正の数の場合は、time で指定された時刻から n 秒後の時 刻を返します。n が負の数の場合は、time で指定された時刻から n 秒 前の時刻を返します。戻り値の最大値は、23:59:59 になります。引数 のいずれかの値が NULL の場合、NULL を返します。 解説 RelativeTime を除くすべての PowerBuilder 関数は、Windows API を使用 して日付と時間を処理します。そのため、たいていの場合夏時間(DST: Daylight Savings Time)の処理はオペレーティング システムに依存しま す。しかし、RelativeTime 関数は、夏時間を考慮しないので、夏時間を 使用している地域では誤った値を返すことがあります。 例 次のステートメントは、19:01:41 を返します。 RelativeTime(19:01:31, 10) 次のステートメントは、19:01:21 を返します。 RelativeTime(19:01:31, 関連項目 - 10) SecondsAfter 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RelativeTime メソッド ReleaseAutomationNativePointer 機能 GetAutomationNativePointer 関数で取得した OLE オブジェクトへのポイン タを解放します。 対象 OLEObject 構文 oleobject.ReleaseAutomationNativePointer ( pointer ) 950 PowerBuilder 第 10 章 PowerScript の関数 引数 oleobject pointer 説明 OLEObject 型の変数。解放するネイティブ ポインタが示す オブジェクトが含まれる OLE オブジェクトを指定します。 UnsignedLong 型の変数。解放するポインタを指定します。 この関数は、指定した pointer に 0 を設定し、ポインタを 無効にします。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 pointer は OLE の IUnknown インタフェースへのポインタです。ほかの インタフェースへのポインタを取得するには、IUnknown::QueryInterface とともに使用します。 GetAutomationNativePointer 関数が呼び出されると、PowerBuilder は OLE の AddRef 関数を呼び出してポインタをロックします。DLL 関数、また は PowerBuilder スクリプトで ReleaseAutomationNativePointer 関数を使用 してポインタを解放する必要があります。 例 例については、GetAutomationNativePointer 関数を参照してください。 関連項目 GetAutomationNativePointer GetNativePointer ReleaseNativePointer ReleaseNativePointer 機能 GetNativePointer 関数で取得した OLE オブジェクトへのポインタを解放 します。 対象 OLE コントロール、OLE カスタム コントロール 構文 olename.ReleaseNativePointer ( pointer ) 引数 olename pointer 戻り値 説明 解放するネイティブ ポインタが示すオブジェクトが含ま れる OLE コントロールの名前を指定します。 UnsignedLong 型の変数。解放するポインタを指定します。 この関数は、指定した pointer に 0 を設定し、ポインタを 無効にします。 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 951 RemoveDirectory 解説 pointer は OLE の IUnknown インタフェースへのポインタです。ほかの インタフェースへのポインタを取得するには、IUnknown::QueryInterface とともに使用します。 GetNativePointer 関数が呼び出されると、PowerBuilder は OLE の AddRef 関 数 を 呼 び 出 し て ポ イ ン タ を ロ ッ ク し ま す。DLL 関 数、ま た は PowerBuilder スクリプトで ReleaseNativePointer 関数を使用してポイン タを解放する必要があります。 例 例については、GetNativePointer 関数を参照してください。 関連項目 GetAutomationNativePointer GetNativePointer ReleaseAutomationNativePointer RemoveDirectory 機能 ディレクトリを削除します。 構文 RemoveDirectory ( directoryname ) 引数 directoryname 戻り値 説明 削除するディレクトリの名前を表す文字列を指定します。 絶対パスを指定しない場合、現行の作業ディレクトリへの 相対パスを使用して削除されます。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 この関数の処理を成功させるには、ディレクトリが空であることが必 要です。また、現行ディレクトリを対象にすることはできません。 例 次の例は、現行ディレクトリからサブディレクトリを削除します。 string ls_path="my targets" integer li_filenum li_filenum = RemoveDirectory ( ls_path ) If li_filename <> 1 then MessageBox(" ディレクトリの削除に失敗しました ", & + " ディレクトリが存在していること、ディレクトリが空でないこ と" & + " 現行ディレクトリでないことを確認してください ") else MessageBox (" 成功 ", " ディレクトリ " + ls_path + & 952 PowerBuilder 第 10 章 PowerScript の関数 " を削除しました ") end if 関連項目 DirectoryExists GetCurrentDirectory Repair 機能 パイプライン ユーザ オブジェクトのエラー データウィンドウで修正 された内容によって、目的のデータベースを更新します。 対象 パイプライン オブジェクト 構文 pipelineobject.Repair ( destinationtrans ) 引数 pipelineobject destinationtrans 戻り値 説明 実行されているパイプライン オブジェクトを含むパイプ ライン ユーザ オブジェクトの名前を指定します。 転送先のデータベースに接続するために使用するトラン ザクション オブジェクトの名前を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は 負の値を返します。エラーが発生した場合、次のいずれかの値を返し ます。 -5 接続がありません。 -9 転送先に致命的な SQL エラーがあります。 -10 エラーの最大数を超えました。 -11 ウィンドウ ハンドルが正しくありません。 -12 テーブル構文に誤りがあります。 -15 パイプはすでに進行中です。 -17 転送先のデータベースにエラーがあります。 -18 転送先のデータベースは読み出し専用です。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 パイプライン データの転送中にエラーが発生すると、Start 関数はパイ プライン エラー用のデータウィンドウ コントロールにそのエラーが 発生した行を表示します。そのときにエンド ユーザやスクリプトに よって、データを修正することができます。Repair 関数は、通常コマ ンドボタンと連携しており、エンド ユーザはパイプライン エラー用の データウィンドウのデータを訂正してから、これをクリックします。 PowerScript リファレンス ボリューム 2 953 Replace 再びエラーが発生した場合は、エラーが発生した行はパイプライン エ ラー用のデータウィンドウに残ります。エンド ユーザは再度データを 修正して Repair 関数を呼ぶボタンをクリックします。 例 次のステートメントは、トランザクションのインスタンス変数 i_dst を 使用して転送先のデータベースに接続した後、パイプライン i_pipe に 対するパイプライン エラー用のデータウィンドウで行われた修正内 容でデータベースを更新します。 i_pipe.Repair(i_dst) 関連項目 Cancel Repair Start Replace 機能 文字列の指定した文字位置から、指定した文字数をほかの文字列で置 換した文字列を返します。 構文 Replace ( string1, start, n, string2 ) 引数 string1 start n string2 説明 string2 で置き換えられる文字列を含む文字列を指定しま す。 Long 型の値。置き換えられる文字列の最初の文字の位置 を指定します。文字列の先頭は 1 です。 Long 型の値。置き換えられる文字列の文字数を指定します。 string1 の中の文字列と置き換えられる文字列を指定しま す。string2 の文字数は、string1 の中の置き換えられる文字 数以上でも、文字数以下でも構いません。 戻り値 String 型。正常に終了した場合、一部または全部が置き換えられた文字 列を返します。エラーが発生した場合、空の文字列("")を返します。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 Replace 関数は、文字位置や文字数を数えて string2 を string1 で置き換 えます。start 位置が string1 の文字数を越えている場合は、string2 を string1 に追加します。start 位置から末尾までの文字数が n よりも小さ い場合は、start 位置から末尾までのすべての文字を置き換えます。 n が 0 の場合は、string2 を string1 に挿入します。 例 954 次のステートメントは、Name の値を Davis から Dave に置換します。 PowerBuilder 第 10 章 PowerScript の関数 string Name Name = "Davis" Name = Replace(Name, 4, 2, "e") 次のステートメントは、"BABY RUTH" を返します。 Replace("BABE RUTH", 1, 4, "BABY") 次のステートメントは、"Closed for the Winter" を返します。 Replace("Closed for Vacation", 12, 8, "the Winter") 次のステートメントは、"ABZZZZEF" を返します。 Replace("ABCDEF", 3, 2, "ZZZZ") 次のステートメントは、"ABZZZZ" を返します。 Replace("ABCDEF", 3, 50, "ZZZZ") 次のステートメントは、"ABCDEFZZZZ" を返します。 Replace("ABCDEF", 50, 3, "ZZZZ") 次のステートメントは、文字列 mystring に含まれる red をすべて green に置換します。元の文字列はシングルライン エディット コントロール sle_1 から取得されます。置換された結果、sle_1 は新しいテキストにな ります。 long start_pos=1 string old_str, new_str, mystring mystring = sle_1.Text old_str = "red" new_str = "green" // old_str の最初の位置を取得します。 start_pos = Pos(mystring, old_str, start_pos) // old_str を見つけた場合、ループに入ります。 DO WHILE start_pos > 0 // old_str を new_str に置き換えます。 mystring = Replace(mystring, start_pos, & Len(old_str), new_str) // 次の old_str の 位置を取得します。 start_pos = Pos(mystring, old_str, & start_pos+Len(new_str)) LOOP PowerScript リファレンス ボリューム 2 955 ReplaceA sle_1.Text = mystring 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Replace メソッド ReplaceA 機能 現行のロケールに基づいて文字列を DBCS に一時的に変換し、文字列 の一部をほかの文字列と置き換えます。 構文 ReplaceA (string1, start, n, string2) 引数 string1 start n string2 説明 string2 で置き換えられる文字列を含む文字列を指定しま す。 Long 型の値。置き換えられる文字列 string1 の最初の文字 の位置をバイトで指定します。 Long 型の値。string1 の中で置き換えられるバイト数を指 定します。 string1 の中の文字列と置き換えられる文字列を指定しま す。string2 の文字数は、string1 の中の置き換えられる文字 数以上でも、文字数以下でも構いません。 戻り値 String 型。正常に終了した場合、一部または全部が置き換えられた文字 列を返します。エラーが発生した場合、空の文字列("")を返します。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 ReplaceA 関数は、PowerBuilder 9 の Replace が DBCS 環境で提供してい た機能に代わるものです。ReplaceA 関数は、バイト数を基準にして文 字列を置き換えます。一方、Replace 関数は、SBCS と DBCS の両方の 環境で、文字数を基準にして文字列を置き換えます。ReplaceA 関数で は、置き換えられる文字列の開始位置をバイト数で指定し、Replace 関 数は文字数で指定します。 SBCS 環境の場合、Replace 関数、ReplaceW 関数、ReplaceA 関数は同じ 結果を返します。 956 PowerBuilder 第 10 章 PowerScript の関数 ReplaceText 機能 編集可能なコントロールの中で選択されたテキストを、指定された文 字列で置き換えます。 対象 データウィンドウ コントロール、エディットマスク コントロール、 InkEdit コントロール、マルチライン エディット コントロール、シン グルライン エディット コントロール、リッチテキスト エディット コ ントロール、ドロップダウン リストボックス コントロール、ドロップ ダウン ピクチャ リストボックス コントロール 構文 editname.ReplaceText (string ) 引数 editname string 戻り値 説明 選択された文字列の置き換えを行うデータウィンドウ、エ ディットマスク、InkEdit、マルチライン エディット、シン グルライン エディット、リッチテキスト エディット、ド ロップダウン リストボックス、ドロップダウン ピクチャ リストボックスのいずれかのコントロールの名前を指定 します。 データウィンドウ コントロールでは、エディット コント ロール中の現行の行のカラムに関するテキストが置換さ れます。 選択されたテキストの置換に使用する文字列を指定します。 データウィンドウ、InkEdit、およびリストボックスの場合は Integer 型、 ほかのコントロールの場合は Long 型 正常に終了した場合は string の文字数を示す整数を返し、エラーが発 生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 テキストが選択されていない場合には、ReplaceText 関数は置換テキス トをカーソル位置に挿入します。 リッチテキスト エディット コントロールでは、ピクチャを選択するこ ともできます。 テキスト置換のそのほかの方法 クリップボードの内容を置換テキストとして使用する場合、ReplaceText 関数のかわりに Paste 関数を使用します。 コントロール中のテキストではなく文字列のテキストを置換するに は、Replace 関数を使用します。 PowerScript リファレンス ボリューム 2 957 ReplaceW 例 マルチライン エディット コントロール mle_Comment に Offer Good for 3 Months というテキストが含まれていて、3Months が選択されているとしま す。次のステートメントは、3Months を 60 Days に置換し、7 を返します。 置換された結果、mle_Comment の値は Offer Good for 60 Days となります。 mle_Comment.ReplaceText("60 Days") テキストが選択されていない場合、次のステートメントはシングルラ イ ン エ デ ィ ッ ト コ ン ト ロ ー ル sle_Comment3 内 の カ ー ソ ル 位 置 に "Draft" という文字列を挿入します。 sle_Comment3.ReplaceText("Draft") 関連項目 Copy Cut Paste ReplaceW 機能 文字列の指定した文字位置から、指定した文字数をほかの文字列で置 換した文字列を返します。この関数は、将来サポートされなくなりま す。動作は、すべての環境で Replace 関数と同じです。 構文 ReplaceW ( string1, start, n, string2 ) Reset データをコントロールまたはオブジェクトから消去します。使用する 構文は、消去するオブジェクトによって異なります。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「Reset メソッド」を参照してください。 目的 リストからすべての項目を削除する グラフから、すべてのデータ(およびオプションで、デー タ系列と項目)を削除する トレース ファイルの最初に戻る 958 使用する構文 構文 1 構文 2 構文 3 PowerBuilder 第 10 章 PowerScript の関数 構文 1 リストボックスのデータを消去する 機能 リストからすべての項目を削除します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.Reset ( ) 引数 listboxname 説明 リストボックス コントロールの名前。すべての項目を削除 するコントロールを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。listboxname が NULL の場合、NULL を返します。通常、 戻り値は使用されません。 例 次のステートメントは、リストボックス コントロール ddlb_Actions の すべての項目を削除します。 ddlb_Actions.Reset() 関連項目 DeleteItem 構文 2 グラフのデータを消去する 機能 グラフからデータ、項目、およびデータ系列を削除します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ、外部にデータ ソースのあるデータウィンドウ オブジェクト上のグラフ データウィンドウ オブジェクト上のグラフを対象とすることはでき ません。これは、データウィンドウ オブジェクト上のグラフでは、デー タウィンドウから直接データが取得されるからです。 構文 controlname.Reset ( graphresettype ) 引数 controlname PowerScript リファレンス ボリューム 2 説明 グラフ オブジェクトの名前を指定します。指定されたグラ フ オブジェクト上のすべてのデータ値、またはすべての データ系列とすべてのデータ値を削除します。 959 Reset 引数 graphresettype 説明 grResetType カタログデータ型の値。データ値だけを削除 するのか、すべてのデータ系列とすべてのデータ値を削除 するのかを指定します。次のいずれかの値を指定します。 • All! − controlname 内のすべてのデータ系列、項目、お よびデータ • Category! − controlname 内の項目とデータ • Data! − controlname 内のデータ • Series! − controlname 内のデータ系列とデータ 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 通常、戻り値は使用されません。 解説 グラフに新しいデータを追加する前に、グラフから既存のデータを消 去する場合、この関数を使用します。 例 次のステートメントは、グラフ gr_product_data のデータ系列とデータ を削除しますが、項目は削除せずに残します。 gr_product_data.Reset(Series!) 関連項目 AddData AddSeries 構文 3 トレース ファイルの最初に戻る 機能 トレース ファイルの内容をもう一度読み直せるように、ファイルの最 初に戻ります。 対象 TraceFile オブジェクト 構文 instancename.Reset ( ) 引数 instancename 戻り値 960 説明 TraceFile オブジェクトのインスタンス名を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileNotOpenError! − 指定されたトレース ファイルは、開かれてい ません。 PowerBuilder 第 10 章 PowerScript の関数 解説 開いているトレース ファイルの最初に戻って、ファイルの内容をもう 一度読み直したい場合に、この関数を使用します。Reset 関数を使用す る前に、Open 関数を使ってトレース ファイルを開いておく必要があり ます。Reset 関数と Open 関数とともに、TraceFile オブジェクトが提供 するほかのプロパティおよび関数を使うと、トレース ファイルの内容 に直接アクセスできます。たとえば、既存の解析モデル化オブジェク トを使わずに、トレース データを独自の方法で解析したい場合には、 これらの関数を使用します。 例 以下の例では、エンド ユーザが ltf_file ファイルの内容をもう一度読め るように、ファイルの位置を最初に戻します。 TraceFile ltf_file string ls_filename ltf_file = CREATE TraceFile ltf_file.Open(ls_filename) ... ltf_file.Reset(ls_filename) ... 関連項目 Open NextActivity Close ResetArgElements 機能 引数リストをクリアします。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.ResetArgElements ( ) 引数 activexcontrol 戻り値 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、これはオブジェク ト要素の NAME 属性です。そのほかの環境で使用する場 合には、これは PowerBuilder ウィンドウ ActiveX を含むコ ントロールを参照します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 PowerScript リファレンス ボリューム 2 961 ResetDataColors 解説 この関数を呼び出して引数リストをクリアする前に、InvokePBFunction 関数または TriggerPBEvent 関数を呼び出す必要があります。 SetArgElement 関数を使って引数リストに値を設定する場合は、 InvokePBFunction 関数または TriggerPBEvent 関数を使って引数付きでイ ベントまたは関数を呼び出した後、この関数を使って引数をクリアし ておく必要があります。 例 次の JavaScript の例は、ResetArgElements 関数を呼び出します。 ... retcd = PBRX1.TriggerPBEvent(theEvent, numargs); rc = parseInt(PBRX1.GetLastReturn()); IF (rc != 1) { alert(" エラー。空の文字列です。"); } PBRX1.ResetArgElements(); ... 次に、VBScript で ResetArgElements 関数を呼び出す例を示します。 ... retcd = PBRX1.TriggerPBEvent(theEvent, numargs) rc = PBRX1.GetLastReturn() IF rc <> 1 THEN msgbox " エラー。空の文字列です。" END IF PBRX1.ResetArgElements() ... 関連項目 GetLastReturn InvokePBFunction SetArgElement TriggerPBEvent ResetDataColors 機能 指定されたデータ ポイントの色をデータ系列の標準の色に戻します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.ResetDataColors ( { graphcontrol, } seriesnumber, datapointnumber ) 962 PowerBuilder 第 10 章 PowerScript の関数 引数 controlname graphcontrol (データウィンド ウ コントロールの み) seriesnumber datapointnumber 戻り値 説明 特定のデータ ポイントの色をリセットするグラフ コ ントロールの名前、またはそのグラフがあるデータ ウィンドウ コントロールの名前を指定します。 (オプション)色を再設定するデータウィンドウ コント ロール内のグラフ名を表す文字列を指定します。 特定のデータ ポイントの色をリセットするデータ系列 の番号を指定します。 色をリセットするデータ ポイントの番号を指定しま す。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 データ ポイントに対する標準の色 データ系列の色を設定するには、SetSeriesStyle 関数を使用します。デー タ系列に設定した色は、そのデータ系列内のすべてのデータ ポイント に対する標準の色になります。 例 次のステートメントは、グラフ gr_product_data の Costs という名前の データ系列にあるデータ ポイント 10 の色を、データ系列と同じ色に 変更します。 SeriesNbr = gr_product_data.FinSeries("Costs") gr_product_data.ResetDataColors(SeriesNbr, 10) 次のステートメントは、データウィンドウ コントロール dw_equip 内の グラフ gr_comps の Costs という名前のデータ系列にあるデータ ポイン ト 10 の色を、データ系列と同じ色に変更します。 SeriesNbr = dw_equipment.FindSeries("Costs") dw_equip.ResetDataColors("gr_comps", SeriesNbr, 10) 関連項目 GetDataStyle SeriesName GetSeriesStyle SetDataStyle SetSeriesStyle PowerScript リファレンス ボリューム 2 963 ResetInk ResetInk 機能 インクピクチャ コントロールからインクを消去します。 対象 インクピクチャ コントロール 構文 inkpicname.ResetInk ( ) 引数 inkpicname 説明 インクを消去したいインクピクチャ コントロールの名前を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ResetInk 関数を使用して、インクピクチャ コントロールからインクを 消去します。 例 次の例は、インクピクチャ コントロールからインクを消去します。 ip_1.ResetInk() 関連項目 LoadInk LoadPicture ResetPicture SaveInk Save ResetPicture 機能 インクピクチャ コントロールからピクチャを消去します。 対象 インクピクチャ コントロール 構文 inkpicname.ResetPicture ( ) 引数 inkpicname 説明 ピクチャを消去したいインクピクチャ コントロールの名前 を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ResetPicture 関数を使用して、インクピクチャ コントロールからイメー ジを消去します。 964 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、インクピクチャ コントロールからイメージを消去します 。 ip_1.ResetPicture() 関連項目 LoadInk LoadPicture ResetInk SaveInk Save Resize 機能 Width プロパティと Height プロパティを設定することによって、オブ ジェクトまたはコントロールのサイズを変更し、オブジェクトを再描 画します。 対象 子データウィンドウ以外のオブジェクト 構文 objectname.Resize ( width, height ) 引数 objectname width height 説明 サイズを変更するオブジェクトまたはコントロールの名 前を指定します。 新しい幅を PowerBuilder 単位系の値で指定します。 新しい高さを PowerBuilder 単位系の値で指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返します。エラーが発生した場 合、または objectname が最小化または最大化されたウィンドウの場合 には、-1 を返します。引数のいずれかの値が NULL の場合、NULL を返 します。 解説 子データウィンドウには、Resize 関数を使用できません。 Resize 関数は最小化または最大化されたシートやウィンドウのサイズ を変更することはできません。ウィンドウが最小化または最大化され ている場合、-1 を返します。 次に示すように、Resize 関数を呼び出すかわりに、オブ ジェクトの Width プロパティと Height プロパティを設定することがで きます。次の 2 つのステートメントを実行すると、PowerBuilder は objectname が表すオブジェクトを 2 回再描画します。つまり、1 回目は 新しい幅を使用して描き、2 回目は新しい幅と高さを使用して描きま す。 別の記述方法 PowerScript リファレンス ボリューム 2 965 Resolve_Initial_References objectname.Width = width objectname.Height = height 最初の 2 つのステートメントは、gb_box1 を 2 回再描画していますが、 これは 3 番目のステートメントと同じ結果になります。 gb_box1.Width = 100 // gb_box1 の高さと幅を gb_box1.Height = 150 // 100 x 150 に変更します。 gb_box1.Resize(100, 150)// このステートメントは、上の 2 つと 同じ結果になります。 例 次のステートメントは、gb_box1 の Width プロパティと Height プロパ ティを設定し、新しいプロパティで gb_box1 を再描画します。 gb_box1.Resize(100, 150) 次のステートメントは、ピクチャ コントロール p_1 の幅と高さを 2 倍 にします。 p_1.Resize(p_1.Width*2, p_1.Height*2) Resolve_Initial_References 機能 CORBA ネーミング サービス API を使って、EAServer コンポーネント の最初のネーム コンテキストを取得します。 この関数は、EAServer に接続している PowerBuilder クライアントに よって使用されます。 対象 JaguarORB オブジェクト 構文 jaguarorb.Resolve_Initial_References ( objstring, object ) 引数 jaguarorb objstring object 戻り値 966 説明 JaguarORB のインスタンスを指定します。 「NameService」という値の文字列を指定します。 COS ネーミング サービスへの参照を格納する CORBAObject 型の参照変数を指定します。 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 Jaguar ネーミング サービス API にアクセスしたい場合は、 Resolve_Initial_References 関数を使用して、最初のネーム コンテキスト を取得します。しかし、この方法を使用することはお勧めできません。 非難されることの多い SessionManager::Factory の create メソッドを使 用する必要があるためです。大部分の PowerBuilder クライアントでは、 CORBA ネーミング サービスを明示的に使用する必要はありません。 そのかわりに、接続オブジェクトの CreateInstance メソッドや Lookup メ ソッドを使って EAServer コンポーネントを作成するときに自動的に 実行される名前解決を利用できます。 また、CORBA ネーミング サービスを明示的に使用しなくても、JaguarORB オブジェクトの String_To_Object メソッドを使用してプロキシ インス タンスをインスタンス化することができます。JaguarORB オブジェク トを使用して EAServer に接続する方法についての詳細は、『アプリ ケーション テクニック』マニュアルを参照してください。 CORBA ネーミングサービスを使用する場合は、ネーミング サービス インタフェースに対するプロキシを生成し、これらのプロキシをクラ イアントのライブラリ リストに含める必要があります。 例 次の例は、Resolve_Initial_References 関数を使って、最初のネーム コン テキストを取得します。ネーム コンテキストを取得した後、ネーム コ ンテキストの resolve メソッドを使用してコンポーネントの Factory オ ブジェクトへの参照を得ます。そして、その参照を SessionManager の Factory インタフェースに限定します。 resolve メソッドは、NameComponent 構造体のシーケンスである名前の パラメータをとります。各 NameComponent 構造体には、コンポーネン トを識別する id 属性と、コンポーネントを記述するための kind 属性が あります。次の例では、名前が持つコンポーネントは 1 つだけです。 Factory オブジェクトの create メソッドは、コンポーネントのプロキシ を取得します。そして、CORBA オブジェクトの参照を返します。こ の参照は、_Narrow メソッドを使用することでコンポーネントのインタ フェースへの参照に変換できます。 次 の 例 で 使 用 す る NamingContext と NameComponent の デ ー タ 型 は EAServer の CosNaming パッケージからインポートしたプロキシであ り、Factory データ型は SessionManager パッケージからインポートしま した。 CORBAObject my_corbaobj JaguarORB my_orb NamingContext my_nc NameComponent the_name[] Factory my_Factory n_jagcomp my_jagcomp PowerScript リファレンス ボリューム 2 967 RespondRemote my_orb = CREATE JaguarORB // URL 名を単引用符で囲みます。 my_orb.init("ORBNameServiceURL='iiop://server1:9000'") my_orb.Resolve_Initial_References("NameService", & my_corbaobj) my_corbaobj._narrow(my_nc, & "omg.org/CosNaming/NamingContext") the_name[1].id = "mypackage/n_jagcomp" the_name[1].kind = "" TRY my_corbaobj = my_nc.resolve(the_name) my_corbaobj._narrow(my_Factory, & "SessionManager/Factory") my_corbaobj = my_Factory.create("jagadmin","") my_corbaobj._narrow(my_jagcomp, & "mypackage/n_jagcomp") CATCH (Exception e) MessageBox(" 例外が発生しました ", e.getMessage()) END TRY my_jagcomp.getdata() 関連項目 Init _Narrow String_To_Object RespondRemote 機能 リモートの DDE アプリケーションから受信したコマンドやデータが 受け入れられたかどうかを示す DDE メッセージを送信します。 構文 RespondRemote ( boolean ) 引数 boolean 968 説明 Boolean 型の値を指定します。TRUE は直前に受信したコ マンドまたはデータが受け入れられたことを示し、FALSE は受け入れられなかったことを示します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合(た とえば、不正な状況で関数が呼び出された場合)、-1 を返します。 boolean が NULL の場合、NULL を返します。 解説 RespondRemote 関数は、PowerBuilder アプリケーションが DDE サーバ アプリケーション、または DDE クライアント アプリケーションの場 合にだけ使用できます。 通常、次の関数の後に RespondRemote 関数を呼び出します。 GetCommandDDE GetCommandDDEOrigin GetDataDDE GetDataDDEOrigin クライアントとして機能する PowerBuilder アプリケーションについて の詳細は、 「OpenChannel 関数」および「ExecRemote 関数」を参照して ください。サーバとして機能する PowerBuilder アプリケーションにつ いての詳細は、「StartServerDDE 関数」を参照してください。 例 次の例は、HotLinkAlarm イベントに対するスクリプトです。"Gateway" という名前のリモート アプリケーションに対し、データの受信が成功 したことを通知します。 String Applname, Topic, Item, Value GetDataDDEOrigin(Applname, Topic, Item) IF Applname = "Gateway" THEN IF GetDataDDE(Value) = 1 THEN RespondRemote(TRUE) END IF END IF 関連項目 GetCommandDDE GetCommandDDEOrigin GetDataDDE GetDataDDEOrigin Restart 機能 すべてのスクリプトの実行を停止し、すべてのウィンドウを閉じ(た だし、アプリケーションの Close イベントに対するスクリプトは実行 しない)、データベースをコミットしてから、接続を解除します。その 後、アプリケーションを再起動し、アプリケーションの Open イベン トに対するスクリプトを実行します。 PowerScript リファレンス ボリューム 2 969 ResumeTransaction 構文 Restart ( ) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。通常、戻り値は使用されません。 解説 アプリケーションの Idle イベントに対するスクリプト内で Restart 関数 を使用して、アプリケーションに対してエンド ユーザが一定時間何も 実行していない場合などにアプリケーションを再起動することができ ます。 例 アプリケーションの Idle イベントに対するスクリプトの中で、次のス テートメントはアプリケーションを再起動します。 Restart() 関連項目 138 ページの「HALT」 ResumeTransaction 機能 引数として渡された EAServer トランザクションを呼び出し元のスレッ ドに関連付けます。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.ResumeTransaction ( handletrans ) 引数 CORBACurrent handletrans 戻り値 説明 CORBACurrent サービス インスタンスへの参照を指定し ます。 UnsignedLong 型の値。中断したトランザクションのハン ドルを指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 不明なエラーです。 -2 handletrans の示すトランザクションが既に有効ではありません。 解説 ResumeTransaction 関数は、handletrans 引数で指定されたトランザク ションと、呼び出し元のスレッドを関連付けます。 この引数は、SuspendTransaction の呼び出し時に取得したものです。現 行のスレッドあるいは同じ実行環境内の異なるスレッドに以前に関連 付けたことのあるトランザクションでもかまいません。 970 PowerBuilder 第 10 章 PowerScript の関数 注意 handletrans 引数は、SuspendTransaction 関数から取得する必要がありま す。ResumeTransaction の引数としてそのほかの値を使用すると、予期 できない結果に終わる可能性があります。 ResumeTransaction は、OTS スタイルのマークが付いているクライアン トまたはコンポーネントで呼び出せます。EAServer は、2 フェーズ コ ミット トランザクション コーディネータ(OTS/XA)を使用している ことが必要です。 例 この例では、ResumeTransaction 関数を使用することで、 SuspendTransaction によって返された ll_handle 引数のトランザクション と、呼び出し元のスレッドを関連付けています。 // インスタンス変数 : // CORBACurrent corbcurr integer li_rc unsignedlong ll_handle li_rc = this.GetContextService("CORBACurrent", & corbcurr) li_rc = corbcurr.Init() li_rc = corbcurr.BeginTransaction() // 何らかのトランザクション処理を実行します。 ll_handle = corbcurr.SuspendTransaction() // 何らかの非トランザクション処理を実行します。 li_rc = corbcurr.ResumeTransaction(ll_handle) // さらに、何らかのトランザクション処理を実行します。 li_rc = corbcurr.CommitTransaction() 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus GetTransactionName Init RollbackOnly RollbackTransaction SetTimeout SuspendTransaction PowerScript リファレンス ボリューム 2 971 Reverse Reverse 機能 指定された文字列の文字の順序を逆にします。 構文 Reverse ( string ) 引数 string 説明 末尾の文字が先頭文字になり、先頭文字が末尾の文字にな るように、文字を並べ替える文字列を指定します。 戻り値 String 型。string に指定された文字列の文字の順序を逆にし、その結果 の文字列を返します。エラーが発生した場合、空の文字列("")を返 します。 解説 Reverse 関数は、IsArabic 関数と IsHebrew 関数とともに使用すると便利 です。たとえば、RightToLeft 対応(右から左に文字を書く言語を使用 する国に対応)の PowerBuilder と Windows で RightToLeft 文字(ヘブ ライ語、アラビア語などの右から左に文字を書く言語の文字)を表示 する場合に使用します。 例 RightToLeft 対応の Windows では、このステートメントは sle_name に 入力された文字の順序を逆にし、その結果の文字列を返します。 string ls_name ls_name = Reverse(sle_name.Text) 関連項目 IsArabic IsHebrew RevertToSelf 機能 COM+ 上で動作し、クライアントに同一化している COM オブジェク トのセキュリティ属性を復元します。 対象 TransactionServer オブジェクト 構文 transactionserver.RevertToSelf ( ) 引数 transactionserver 戻り値 972 説明 TransactionServer サービス インスタンスへの参照を指 定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 COM+ 上で動作する COM オブジェクトは、ImpersonateClient 関数を 使って、クライアントのセキュリティ コンテキストで実行することが できます。これによって、サーバ プロセスがクライアントと同じリ ソースにアクセスできるようになります。RevertToSelf 関数は、このオ ブジェクトのセキュリティ コンテキストを復元するのに使用します。 例 次の例では、まず TransactionServer サービスのインスタンスを作成し、 COM オブジェクトが現在クライアントのセキュリティ コンテキスト で実行されているかどうかをチェックします。クライアントのセキュ リティ コンテキストで実行されていれば、このオブジェクトのセキュ リティ コンテキストに戻します。 TransactionServer txninfo_test integer li_rc li_rc = GetContextService( "TransactionServer", txninfo_test ) IF txninfo_test.IsImpersonating() THEN & txninfo_test.RevertToSelf() 関連項目 & ImpersonateClient IsCallerInRole IsImpersonating IsSecurityEnabled RGB 機能 色の構成要素である赤、緑、青の数値によって指定された色を表す Long 型の値を計算します。 構文 RGB ( red, green, blue ) 引数 red green blue 戻り値 説明 Integer 型の値。指定する色に含まれる赤の量を指定します。 Integer 型の値。指定する色に含まれる緑の量を指定します。 Integer 型の値。指定する色に含まれる青の量を指定します。 Long 型。正常に終了した場合、指定された red、green、blue の各値を 組み合わせて作成した色を表す Long 型の値を返します。エラーが発生 した場合、-1 を返します。また、引数のいずれかの値が NULL の場合 は NULL を返します。 PowerScript リファレンス ボリューム 2 973 RGB 解説 色を表す Long 型の値を、赤、緑、および青の値から求める計算式は、 次のとおりです。 65536 * Blue+ 256 * Green+ Red RGB 関数は、テキストまたは描画オブジェクトの色の設定に必要な Long 型の値を取得するために使用します。オブジェクトの色には、色 を表す Long 型の値を設定する必要があります。RGB 関数を使用する と、色を表す Long 型の値を簡単に計算できます。 色の値について 色の構成要素の値は、目的の色を作成するために必要とされる色の量 を表す 0 ∼ 255 の整数です。値を低くすると色は暗くなり、値を高く すると色は明るくなります。 色の構成要素の値(RGB 値)を測定するには、色の設定 ダイアログ ボックスを使用します。色の設定 ダイアログボックスにアクセスする には、ワークスペース最下部のカラーバーの色を選択し、カラーバー のボックス中で最初に表示される選択されている色をダブルクリック します。 974 PowerBuilder 第 10 章 PowerScript の関数 次の表は、標準の 16 色に対応する赤、緑、および青の値をまとめたも のです。 表 10-9: RGB として使用される赤、緑、青の値 色 黒色 白色 薄い灰色 濃い灰色 赤色 濃い赤色 緑色 濃い緑色 青色 濃い青色 赤紫色 濃い赤紫色 シアン色 濃いシアン色 黄色 茶色 例 赤の値 0 255 192 128 255 128 0 0 0 0 255 128 0 0 255 128 緑の値 0 255 192 128 0 0 255 128 0 0 0 0 255 128 255 128 青の値 0 255 192 128 0 0 0 0 255 128 255 128 255 128 0 0 次のステートメントは、黒を表す Long 型の値を返します。 RGB(0, 0, 0) 次のステートメントは、白を表す Long 型の値を返します。 RGB(255, 255, 255) 次のステートメントは、スタティックテキスト コントロール st_title の 色属性を濃いマゼンタの背景と緑色の文字に設定します。 st_title.TextColor = RGB(0, 255, 0) st_title.BackColor = RGB(128, 0, 128) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RGB メソッド PowerScript リファレンス ボリューム 2 975 Right Right 機能 文字列の右端から、指定された文字数分の文字列を返します。 構文 Right ( string, n ) 引数 string n 戻り値 説明 取得する文字列を含む文字列を指定します。 Long 型の値。string の右端から取得する文字列の文字数を 指定します。 String 型。正常に終了した場合、string に指定された文字列の右端から n 文字分の文字列を返します。エラーが発生した場合、空の文字列("") を返します。引数のいずれかの値が NULL の場合、NULL を返します。n が文字列の長さ以上の場合、Right 関数はすべての文字列を返します。 ただし、戻り値の文字数を n と同じにするために、スペースを追加す ることはありません。 例 次の例は、"RUTH" を返します。 Right("BABE RUTH", 4) 次のステートメントは、"BABE RUTH" を返します。 Right("BABE RUTH", 75) 関連項目 Left Mid Pos 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Right メソッド RightA 機能 現行のロケールに基づいて文字列を Unicode から DBCS に一時的に変 換し、文字列の端から、指定したバイト数を返します。 構文 RightA (string, n) 引数 string n 976 説明 検索する文字列を指定します。 Long 型の値。string の右端から取得する文字列のバイト数 を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 String 型。正常に終了した場合、string に指定された文字列の右端から n バイト分の文字列を返します。エラーが発生した場合、空の文字列 (“”)を返します。引数のいずれかの値が NULL の場合、NULL を返しま す。n が文字列の長さ以上の場合、RightA 関数はすべての文字列を返し ます。ただし、戻り値の文字数を n と同じにするために、スペースを 追加することはありません。 解説 RightA 関数は、PowerBuilder 9 の Right 関数が DBCS 環境で提供してい た機能に代わるものです。 SBCS 環境の場合、Right 関数、RightW 関数、RightA 関数は同じ結果を 返します。 RightC 機能 文字列の右端から、指定されたバイト数の文字列を取り出して返しま す。この関数は、将来サポートされなくなります。 構文 RightC ( string, n ) RightW 機能 文字列の右端から、指定された文字数分の文字列を返します。この関 数は、将来サポートされなくなります。動作は、すべての環境で Right 関数と同じです。 構文 RightW ( string, n ) RightTrim 機能 文字列の右端からスペースを削除します。 構文 RightTrim ( string ) RightTrimW ( string ) 引数 string PowerScript リファレンス ボリューム 2 説明 右端からスペースを削除する文字列を指定します。 977 RightTrimW 戻り値 String 型。正常に終了した場合は、string の右端からスペースを削除し、 その結果の文字列を返します。エラーが発生した場合、空の文字列("") を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、"RUTH" を返します。 RightTrim("RUTH ") 関連項目 LeftTrim Trim 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RightTrim メソッド RightTrimW 機能 文字列の右端からスペースを削除します。この関数は、将来サポート されなくなります。動作は、すべての環境で RightTrim 関数と同じです。 構文 RightTrimW ( string ) RollbackOnly 機能 トランザクションのロールバックが唯一発生しうる結果になるように、 呼び出し元のスレッドに関連する EAServer トランザクションを修正 します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.RollbackOnly ( ) 引数 CORBACurrent 戻り値 978 説明 CORBACurrent サービス インスタンスへの参照を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 理由の不明なエラーで失敗しました。 -2 呼び出し元のスレッドにトランザクションが関連付けられていま せん。 PowerBuilder 第 10 章 PowerScript の関数 解説 RollbackTransaction 関数は一般に、トランザクションの作成元のスレッ ドから呼び出されます。クライアント トランザクションまたは OTS ス タイルのトランザクション内の別の参加スレッドが、トランザクショ ンのロールバックを実行するために RollbackOnly 関数を呼び出すこと もできます。 RollbackOnly 関数は、OTS スタイルのマークが付いているクライアント またはコンポーネントで呼び出せます。EAServer は、2 フェーズ コ ミット トランザクション コーディネータ(OTS/XA)を使用している ことが必要です。 例 次の例では、トランザクション内のある参加スレッドがトランザク ションをロールバックすることに決定しました。参加スレッドは、 CORBACurrent サービス オブジェクトのインスタンスを作成して初期 化し、トランザクションをロールバックすることを実行します。 // インスタンス変数 : // CORBACurrent corbcurr int li_rc li_rc = this.GetContextService("CORBACurrent", & corbcurr) IF li_rc <> 1 THEN // エラーを処理します。 END IF li_rc = corbcurr.Init() IF li_rc <> 0 THEN // エラーを処理します。 ELSE corbcurr.RollbackOnly() END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus GetTransactionName Init ResumeTransaction RollbackTransaction SetTimeout SuspendTransaction PowerScript リファレンス ボリューム 2 979 RollbackTransaction RollbackTransaction 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションをロールバックします。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.RollbackTransaction ( ) 引数 CORBACurrent 戻り値 解説 説明 CORBACurrent サービス インスタンスへの参照を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 理由の不明なエラーで失敗しました。 -2 呼び出し元のスレッドにトランザクションが関連付けられていま せん。 -3 呼び出し元のスレッドがトランザクションをコミットする権限を 持ちません。 -4 HeuristicCommit 例外が発生しました。 RollbackTransaction 関数は、呼び出し元のスレッドに関連付けられてい るトランザクションをロールバックします。HeuristicCommit 例外が発 生した場合、RollbackTransaction 関数の呼び出しは失敗します。通信エ ラーが発生した場合など、正常な処理を継続できない場合に、ヒュー リスティックな判断が通常行われます。HeuristicCommit 例外が発生す るのは、関連する更新がすべてコミットされている場合です。 RollbackTransaction 関数は、OTS スタイルのマークが付いているクライ アントまたはコンポーネントで呼び出せます。EAServer は、2 フェー ズ コミット トランザクション コーディネータ(OTS/XA)を使用して いることが必要です。 例 次の例は、更新が成功しなかった場合に RollbackTransaction 関数を使用 してトランザクションをロールバックする方法を示しています。 // インスタンス変数: // CORBACurrent corbcurr int li_rc1, li_rc2 long ll_rc this.GetContextService("CORBACurrent", corbcurr) li_rc1 = corbcurr.Init() IF li_rc1 <> 1 THEN // エラーを処理します。 980 PowerBuilder 第 10 章 PowerScript の関数 ELSE ll_rc = CreateInstance(mycomp) // インスタンス化したコンポーネントのメソッドを起動します。 // 戻り値をテストし、条件を満たさない場合は // ロールバックします。 IF li_rc2 = 1 THEN corbcurr.CommitTransaction() ELSE corbcurr.RollbackTransaction() END IF END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus GetTransactionName Init ResumeTransaction RollbackOnly SetTimeout SuspendTransaction Round 機能 数値を四捨五入して指定された小数点の桁数にします。 構文 Round ( x, n ) 引数 x n 説明 四捨五入の対象になる数値を指定します。 小数点以下の桁数を指定します。x に指定されている数値 をこの桁数に四捨五入します。有効な値は 0 ∼ 18 です。 戻り値 Decimal 型。正常に終了した場合、x を小数点以下 n 桁に四捨五入した 数を返します。エラーが発生した場合、または引数のいずれかの値が NULL の場合には、NULL を返します。 例 次のステートメントは、9.62 を返します。 Round(9.624, 2) 次のステートメントは、9.63 を返します。 PowerScript リファレンス ボリューム 2 981 RoutineList Round(9.625, 2) 次のステートメントは、9.600 を返します。 Round(9.6, 3) 次のステートメントは、-9.63 を返します。 Round(-9.625, 2) 次のステートメントは、NULL を返します。 Round(-9.625, -1) 関連項目 Ceiling Int Truncate 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Round メソッド RoutineList 機能 パフォーマンス解析モデルに含まれるルーチンのリストを取得しま す。 対象 ProfileClass オブジェクトおよび Profiling オブジェクト 構文 instancename.RoutineList ( list ) 引数 instancename list 戻り値 982 説明 ProfileClass または Profiling オブジェクトのインスタンス 名を指定します。 ProfileRoutine 型の可変長配列変数を指定します。 RoutineList 関数は、解析モデルに登録されているクラス内 のルーチンごとに ProfileRoutine オブジェクトを 1 つずつ 作成し、この配列変数に格納します。この引数は、参照 渡しされます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − パフォーマンス解析モデルが存在しませ ん。 PowerBuilder 第 10 章 PowerScript の関数 解説 パフォーマンス解析モデルに含まれている、ある特定のクラスのルー チンのリストを取得したい場合に、この関数を使用します。BuildModel 関数を使ってトレース ファイルからパフォーマンス解析モデルをあ らかじめ作成しておかなければなりません。各ルーチンごとにそれぞ れ ProfileRoutine オブジェクトが定義されます。このオブジェクトに含 まれる情報は、ルーチンの実行時間、そのルーチンから呼び出される ルーチン名とその呼び出し回数、およびそのルーチンが属するクラス 名です。リスト中のルーチンの並び方に、特に規則性はありません。 あるクラスに属するオブジェクトの作成および削除処理は、この関数 を使って取得されるリスト中に含まれるルーチン内と、埋め込み SQL 文によって示されます。 例 以下の例では、あるパフォーマンス解析モデルに含まれる、クラスご とのルーチン情報をリスト表示します。 Long ll_cnt ProfileCall lproc_call[] lpro_model.BuildModel() lpro_model.RoutineList(iprort_list) ... 関連項目 ClassList Run 機能 指定されたアプリケーション プログラムを実行します。 構文 Run ( string {, windowstate } ) 引数 string windowstate (オプション) 説明 実行するプログラムのファイル名を表す文字列を指定し ます。必要に応じて、string にはプログラムが使用するパ ラメータを 1 つ以上指定することもできます。 WindowState カタログデータ型の値。プログラムのどの状 態で実行するかを指定します。 • Maximized! − 最大化。プログラムの起動時に、そのプ ログラム ウィンドウのサイズを最大にします。 • Minimized! − 最小化。プログラムの起動時に、そのプ ログラム ウィンドウのサイズを最小にします。 • Normal! −(デフォルト)プログラム ウィンドウを標準 サイズで実行します。 PowerScript リファレンス ボリューム 2 983 Run 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 Run 関数を使用して、オペレーティング システムから実行する任意の プログラムを実行することができます。プログラムのパラメータが指 定されていない場合、Run 関数はアプリケーションを開き、最初のア プリケーション ウィンドウを表示します。windowstate を指定すると、 指定された状態でアプリケーション ウィンドウが表示されます。 プログラムのパラメータが指定されている場合、アプリケーションに よってパラメータが何を意味しているかが判断されます。パラメータ の典型的な使用方法は、プログラムの実行時にどのデータ ファイルを 開くべきかを識別することです。パラメータを指定したアプリケー ションの実行中に PowerBuilder アプリケーションを実行している場合 には、その PowerBuilder アプリケーションから CommandParm 関数を呼 び出してパラメータを検索し、それに一致した処理を行うことができ ます。 拡張子を省略してファイル名を指定すると、PowerBuilder は拡張子を EXE とみなします。EXE 以外の拡張子(たとえば BAT、COM、PIF) を持つプログラムを実行する場合、必ず拡張子を指定してください。 例 次のステートメントは、Microsoft Windows の時計アクセサリを標準の サイズで実行します。 Run("Clock") 次のステートメントは、Microsoft Windows の時計アクセサリを最小化 して実行します。 Run("Clock", Minimized!) 次のステートメントは、C ドライブの WINNER.COM を最大化して実 行します。 そのパラメータは WINNER.COM に渡され、EMPLOYEE.INF ファイルを開きます。 Run("C:\WINNER.COM EMPLOYEE.INF", Maximized!) 次の例は、DOS のバッチ ファイル MYBATCH.BAT を実行し、そのバッ チ ファイルに TEST パラメータを渡します。バッチ ファイルの中のコ マンドで変数を使用してパラメータを参照しています。 Run("MYBATCH.BAT TEST") バッチ ファイルの中の次のステートメントは、ファイル FILE1 のファ イル名を TEST に変更します。 RENAME c:\PB\FILE1 %1 984 PowerBuilder 第 10 章 PowerScript の関数 Save インクピクチャ コントロールからファイルまたは Blob に、ピクチャ およびオプションでオーバーレイ インクを保存するか、OLE コント ロールあるいは OLEstorage オブジェクトに OLE オブジェクトを保存 します。使用する構文は、保存するオブジェクトの種類によって異な ります。 目的 インクピクチャ コントロールの内容を保存する OLE オブジェクトを保存する 使用する構文 構文 1 構文 2 構文 1 インクピクチャ コントロールの場合 機能 インクピクチャ コントロールからファイルまたは Blob に、ピクチャ およびオプションでオーバーレイ インクを保存します。 対象 インクピクチャ コントロール 構文 inkpicname.Save( t | b , format { , WithInk } ) 引数 inkpicname t b format 説明 ピクチャを保存したいインクピクチャ コントロールの名前 を指定します。 ピクチャを保存するファイルの名前と位置を含む文字列を 指定します。 コントロールにピクチャを保持する Blob の名前を指定しま す。この引数は、参照渡しされます。 Integer 型。ピクチャを保存する形式を指定します。値は以下 のとおりです。 0 – BMP ( ビットマップ ) 1 – JPEG (Joint Photographic Experts Group) 2 – GIF (Graphics Interchange Format) 3 – TIFF (Tagged Image File Format) 4 – PNG (Portable Network Graphics) WithInk(オプ ション) Boolean 型。オーバーレイ インクをピクチャとともに保存す るかどうかを指定します。値は以下のとおりです。 True – オーバーレイ インクをピクチャとともに保存しま す(デフォルト)。 False – オーバーレイ インクをピクチャとともに保存しま せん。 PowerScript リファレンス ボリューム 2 985 Save 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 Save 関数を使用して、ファイルまたは Blob にインクピクチャ コント ロール内のイメージをインク注釈を付けてあるいは付けずに保存しま す。デフォルトでは、インクはイメージとともに保存されます。 例 次の例は、Blob にビットマップ形式でインクピクチャ コントロール内 のイメージおよびそのインク注釈を保存し、データベース内のイメー ジを更新しようとします。 int li_return blob lblb_ink li_return = ip_1.save(lblb_ink, 0, true) UPDATEBLOB employee SET backimage = :lbb_ink WHERE emp_id = :gi_id; IF sqlca.SQLNRows > 0 THEN COMMIT; ELSE messagebox("Update failed",sqlca.sqlerrtext) END IF 次の例は、GIF ファイルにインク注釈を付けずに InkControl 内のイメー ジを保存します。 int li_return string ls_pathname, ls_filename GetFileSaveName("Save As", ls_pathname, ls_filename, "GIF") li_return = ip_1.save(ls_pathname, 2, false) 関連項目 986 LoadInk LoadPicture ResetInk ResetPicture SaveInk PowerBuilder 第 10 章 PowerScript の関数 構文 2 OLE オブジェクトの場合 機能 OLE コントロールまたは OLEStorage オブジェクト内の OLE オブジェ クトを保存します。 構文 oleobject.Save ( ) 引数 oleobject 戻り値 説明 OLE コントロールまたは OLEStorage 変数の名前を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 コントロールは空です。 そのほかのエラーです。 oleobject が NULL の場合、NULL を返します。 解説 開発者が OLE オブジェクトを保存すると、PowerBuilder は、OLE オブ ジェクトとオープン ストレージまたはファイル間の現時点の接続状 態に応じて保存します。開発者が Open 関数を呼び出すと、最初の接続 を確立します。開発者が SaveAs 関数を呼び出すと、接続を終了し、別 のストレージまたはファイルとの新しい接続を確立します。 OLE コントロールに対して Save 関数を呼び出すと、PowerBuilder は、 OLE コントロール内のオブジェクトを現在接続されているストレージ に保存します。ストレージは、ストレージ オブジェクト変数でも OLE ストレージ ファイルでも構いません。 データがサーバ アプリケーションに保存されていない場合、ディスク 上にファイルがないので、PowerBuilder の Save 関数はエラーを返しま す。 ス ト レ ー ジ オ ブ ジ ェ ク ト 変 数 に 対 し て Save 関 数 を 呼 び 出 す と、 PowerBuilder は、現在接続されているファイルまたはそのファイル内 のサブストレージにストレージを保存します。この場合、あらかじめ Open 関数か SaveAs 関数を使用してディスク上の OLE ストレージ ファイル、またはそのファイル内のサブストレージに接続を確立して おく必要があります。 PowerScript リファレンス ボリューム 2 987 Save Save 関数を 2 回呼び出す必要がある場合 ストレージ オブジェクト変数を作成した後、OLE コントロール内でそ のオブジェクトを開く場合、変更された OLE 情報をディスクに書くた めに、Save 関数を 2 回呼び出す必要があります。1 回目はコントロー ル内のオブジェクトからストレージに保存し、2 回目はそのストレー ジが関連付けられるファイルに保存するためです。 例 次の例は、ole_1 コントロール内のオブジェクトをロードされているス トレージに保存し直します。ストレージは、ストレージ オブジェクト 変数でもディスク上のファイルでも構いません。 integer result result = ole_1.Save() 次 の 例 は、フ ァ イ ル に ス ト レ ー ジ オ ブ ジ ェ ク ト を 保 存 し ま す。 Olestor_1 は、OLEStorage 型のインスタンス変数です。 integer result result = olestor_1.Save() 次の例は、ウィンドウの Open イベントに対するスクリプトです。 ole_stor をインスタンス変数として宣言し、Visio デッサンが入ってい るストレージ ファイルと接続します。コントロール ole_draw の中に 1 つの描画オブジェクトを開きます。エンド ユーザがそのオブジェクト をアクティブにして編集した後で、 [保存]ボタンのスクリプトでオブ ジェクトをストレージに保存し、ストレージ ファイルに保存します。 次の例は、ウィンドウの Open イベントに対するスクリプトです。 OLEStorage stg_stor stg_stor = CREATE OLEStorage stg_stor.Open("myvisio.ole") ole_draw.Open(ole_stor, "visio_drawing1") 次の例は、ウィンドウの[保存]ボタンの Clicked イベントに対するス クリプトです。 integer result result = ole_draw.Save() IF result = 0 THEN ole_stor.Save() 関連項目 988 Close SaveAs PowerBuilder 第 10 章 PowerScript の関数 SaveAs データウィンドウ コントロール、データストア オブジェクト、グラ フ、OLE コントロール、および OLE ストレージの内容をファイルに保 存します。使用する構文は、保存するオブジェクトの種類によって異 なります。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「SaveAs メソッド」を参照してください。 目的 グラフ内のデータを保存する OLE コントロール内の OLE オブジェクトをストレージ ファイルに保存する OLE コントロール内の OLE オブジェクトをメモリ内のス トレージ オブジェクトに保存する OLEStorage オブジェクトとそのストレージを開いている すべてのコントロールをファイルに保存する OLEStorage オブジェクトを別の OLEStorage オブジェクト に保存する 使用する構文 構文 1 構文 2 構文 3 構文 4 構文 5 構文 1 グラフ オブジェクトを保存する 機能 グラフ内のデータを指定された形式で保存します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ、データウィンド ウ上およびデータストア上のグラフ 構文 controlname.SaveAs ( { filename, } { graphcontrol, saveastype, colheading { , encoding } } ) 引数 controlname filename (オプション) PowerScript リファレンス ボリューム 2 説明 保存する内容を含むグラフ コントロールの名前を指定す るか、グラフ コントロールを含むデータウィンドウ コン トロール、またはデータストア オブジェクトの名前を指定 します。 String 型の値。グラフ コントロール内のデータの保存先の ファイル名を指定します。この引数を省略した場合、また は空の文字列("")を指定した場合、PowerBuilder はエン ド ユーザにファイル名の入力を要求します。 989 SaveAs 引数 graphcontrol (データウィン ドウ コント ロールのみ) (オプション) saveastype (オプション) 説明 String 型の値。内容を保存するデータウィンドウ コント ロールまたはデータストア オブジェクト内のグラフの名 前を指定します。 SaveAsType カタログ データ型の値。グラフ内のデータを 保存する形式を指定します。値は以下のとおりです。 • Clipboard! − クリップ ボードにグラフの画像を保存 • CSV! − カンマで区切った値 • dBASE2! − dBASE-II 形式 • dBASE3! − dBASE-III 形式 • DIF! − データ交換形式 • EMF! − 拡張メタファイル形式 • Excel! − Microsoft Excel 形式 • Excel5! − Microsoft Excel バージョン 5 形式 • Excel8! − Microsoft Excel バージョン 8 以上の形式 • HTMLTable! − HTML の TABLE、TR、TD 要素 • PDF! − Adobe PDF 形式 • PSReport! − Powersoft レポート(PSR)形式 • SQLInsert! − SQL 構文 • SYLK! − Microsoft Multiplan 形式 • Text! −(デフォルト)各カラムをタブで区切り、各行 末にキャリッジ リターンがある形式 • WKS! − Lotus 1-2-3 形式 • WK1! − Lotus 1-2-3 形式 • WMF! − Windows メタファイル形式 • XML! − XML 形式 • XSLFO! − XSL Formmating Objects(XSL-FO)形式オブ ジェクト 値の仕様の変更 SaveAsType 値 Excel!、WK1!、WKS!、SYLK!、dBase2!、WMF! は、互換性の目的でのみ残されており、将来のリリースで は削除される予定です。Microsoft Excel! の現行バージョン には Excel8! を使用し、また WMF! のかわりには EMF! を 使用します。 990 PowerBuilder 第 10 章 PowerScript の関数 引数 colheading (オプション) encoding (オプション) 説明 Boolean 型の値。保存したデータにカラム ヘッダを付ける かどうかを指定します。特に指定しない限り、TRUE が設 定されます。dBASE ファイルの場合、この引数の値は無 視され、カラム ヘッダは常に保存されます。 データの保存先となるファイルの文字のエンコーディン グを指定します。このパラメータは、TEXT、CSV、SQL、 HTML、および DIF の各形式にのみ適用されます。encoding パラメータを指定しない場合、ファイルは ANSI 形式で保 存されます。値は以下のとおりです。 • EncodingANSI!(デフォルト) • EncodingUTF8! • EncodingUTF16LE! • EncodingUTF16BE! 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 引数は、1 つも使用しないか、あるいは 3 つの引数を使用します。SaveAs 関数の引数を省略した場合、PowerBuilder は名前を付けて保存 ダイア ログボックスを表示し、保存するデータの形式を指定するようにユー ザに要求します。 地域設定 グラフ内で日付形式を使用する場合、ユーザのコントロール パネルの [地域設定]で、 「短い形式」の年の部分が yyyy になっていることを確 認する必要があります。これは、プログラムの中で RegistryGet 関数を 使ってチェックすることができます。 正しく設定されていない場合は、手動で設定を変更するようユーザに 依頼するか、あるいはアプリケーションで RegistrySet 関数を呼び出し て変更します。設定を変更した後、ユーザによるリブートが必要な場 合があります。 例 次のステートメントは、グラフ gr_History の内容を保存します。ファイ ルと形式に関する情報が指定されていないため、PowerBuilder はファ イル名の入力を要求し、グラフをタブで区切られたテキスト形式で保 存します。 gr_History.SaveAs() PowerScript リファレンス ボリューム 2 991 SaveAs 次のステートメントは、グラフ gr_History の内容を G:\HR\EMPLOYEE.HIS ファイルに保存します。ファイルは、カラム ヘッダを含まない CSV 形式で保存されます。 gr_History.SaveAs("G:\HR\EMPLOYEE.HIS" ,CSV!, FALSE) 次のステートメントは、データウィンドウ コントロール dw_equipmt 内 の gr_computers の内容を、G:\INVENTORY\SALES.XLS ファイルに保 存します。ファイルは、カラム ヘッダを含む Excel 形式で保存されま す。 dw_equipmt.SaveAs("gr_computers", & "G:\INVENTORY\SALES.XLS", Excel!, TRUE) 関連項目 Print 構文 2 OLE コントロールのオブジェクトをファイルに保存 する 機能 OLE コントロール内のオブジェクトをストレージ ファイルに保存し ます。 対象 OLE コントロール 構文 olecontrol.SaveAs (OLEtargetfile ) 引数 olecontrol OLEtargetfile 戻り値 説明 保存するオブジェクトを含む OLE コントロールの名前を 指定します。 String 型の値。OLEStorage ファイルの名前を指定します。 既存のファイルの名前を指定することもできます。この引 数には、ファイル内のどこにオブジェクトを格納するかに ついての情報だけでなく、パスを指定することもできま す。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -9 コントロールが空です。 ストレージが開かれていません。 ストレージの名前が不正です。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 992 PowerBuilder 第 10 章 PowerScript の関数 解説 Open 関数は、ストレージ ファイルとストレージ オブジェクトとの間 の接続、またはストレージ ファイルやストレージ オブジェクトと OLE コントロールとの間の接続を確立します。Save 関数は、この接続を使 用して OLE データを保存します。 OLE コントロールに対して SaveAs 関数を呼び出すと、OLE オブジェ クトとそのストレージ(ファイルまたはストレージ オブジェクト)と の間の現行の接続を閉じます。この関数は新しいストレージを使用し て新しい接続を確立し、その接続は Save 関数を後で呼び出すときに ターゲット(保存先)として使用できます。 例 次の例は、コントロール ole_1 内のオブジェクトを保存します。 integer result result = ole_1.SaveAs("c:\ole\expense.ole") 関連項目 Open Save 構文 3 OLE コントロールのオブジェクトを OLE ストレージ に保存する 機能 OLE コントロール内のオブジェクトを、メモリ内の OLE ストレージ オブジェクトに保存します。 対象 OLE コントロール 構文 olecontrol.SaveAs ( targetstorage, substoragename ) 引数 olecontrol targetstorage substoragename 戻り値 説明 保存するオブジェクトを含む OLE コントロールの名前を 指定します。 OLEStorage のオブジェクト変数の名前を指定します。 olecontrol 内のオブジェクトは、この変数に格納されます。 String 型の値。targetstorage 内のサブストレージの名前を指 定します。substorage が存在しない場合は、SaveAs 関数は substorage を作成します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -9 コントロールが空です。 ストレージが開かれていません。 ストレージの名前が不正です。 そのほかのエラーです。 PowerScript リファレンス ボリューム 2 993 SaveAs 引数のいずれかの値が NULL の場合、NULL を返します。 解説 Open 関数は、ストレージ ファイルとストレージ オブジェクトとの間 の接続、またはストレージ ファイルやストレージ オブジェクトと OLE コントロールとの間の接続を確立します。Save 関数は、この接続を使 用して OLE データを保存します。 OLE コントロールに対して SaveAs 関数を呼び出すと、OLE オブジェ クトとそのストレージ(ファイルまたはストレージ オブジェクト)と の間の現行の接続を閉じます。この関数は新しいストレージを使用し て新しい接続を確立し、その接続は Save 関数を後で呼び出すときに ターゲット(保存先)として使用できます。 例 次の例は、コントロール ole_1 内のオブジェクトをストレージ変数 stg_stuff に保存します。 integer result result = ole_1.SaveAs(stg_stuff) 関連項目 Open Save 構文 4 OLE ストレージ オブジェクトをファイルに保存する 機能 OLE ストレージ オブジェクトをファイルに保存します。OLE コント ロールで OLE ストレージ オブジェクトが開いている場合にこの構文 を使用すると、開いているストレージ オブジェクトも保存済みの状態 になります。 対象 OLE ストレージ オブジェクト 構文 olestorage.SaveAs (OLEtargetfile ) 引数 olestorage OLEtargetfile 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 994 説明 保存する OLE オブジェクトを含む OLEStorage 型のオブ ジェクト変数の名前を指定します。 String 型の値。新しい OLE ストレージ ファイルの名前を 指定します。この引数には、パスを指定することができま す。 ストレージが開かれていません。 ストレージの名前が不正です。 親ストレージが開かれていません。 PowerBuilder 第 10 章 PowerScript の関数 -4 -5 -6 -7 -9 ファイルがすでに存在します。 メモリ不足です。 開いているファイルの数が多すぎます。 アクセスが拒否されました。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 Open 関数は、ストレージ ファイルとストレージ オブジェクトとの間 の接続、またはストレージ ファイルやストレージ オブジェクトと OLE コントロールとの間の接続を確立します。Save 関数は、この接続を使 用して OLE データを保存します。 ストレージ オブジェクトに対して SaveAs 関数を呼び出すと、ストレー ジ オブジェクトとファイルとの間の現行の接続を閉じ、ストレージ オ ブジェクトのデータを格納する新しいファイルを作成します。 ストレージ ファイルの構造についての詳細は、Open 関数を参照してく ださい。 例 次の例は、ストレージ オブジェクト stg_stuff を MYSTUFF.OLE ファイ ルに保存します。olest_stuff は、インスタンス変数です。 integer result result = stg_stuff.SaveAs("c:\ole\mystuff.ole") 次の例は、1 つのファイルのサブストレージを開いて別のファイルに 保存します。MYROOT.OLE という OLE ストレージ ファイルには、い くつかのサブストレージがあり、そのうちの 1 つ sub1 を開いて別の ファイルに保存します。この例では、stg1 と stg2 という 2 つのストレー ジ オブジェクトを定義しています。まず、MYROOT.OLE が stg1 で開 かれ、次に sub1 が stg2 で開かれます。最後に、stg2 が MYSUB.OLE と いう新しいファイルに保存されます。stg2 で開かれたオブジェクトは、 MYROOT.OLE ではなく MYSUB.OLE に接続されています。 olestorage stg1, stg2 stg1 = CREATE OLEStorage stg2 = CREATE OLEStorage stg1.Open("myroot.ole") stg2.Open("sub1", stg1) stg2.SaveAs("mysub.ole") 関連項目 Close Open Save PowerScript リファレンス ボリューム 2 995 SaveAs 構文 5 OLE ストレージ オブジェクトを別の OLE ストレー ジに保存する 機能 OLE ストレージ オブジェクトを、メモリ内のほかの OLE ストレージ オブジェクト変数に保存します。 対象 OLE ストレージ オブジェクト 構文 olestorage.SaveAs ( substoragename, targetstorage ) 引数 olestorage substoragename targetstorage 戻り値 説明 保存する OLE オブジェクトを含む OLEStorage 型のオブ ジェクト変数の名前を指定します。 String 型の値。targetstorage 内のサブストレージの名前を指 定します。substorage が存在しない場合は、SaveAs 関数は substorage を作成します。 OLEStorage 型のオブジェクト変数の名前。olestorage 内の オブジェクトの格納先のオブジェクトを指定します。 substoragename と targetstorage の順序が、構文 4 の場合と 逆であることに注意してください。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -4 -5 -6 -7 -9 ストレージが開かれていません。 ストレージの名前が不正です。 親ストレージが開かれていません。 ファイルがすでに存在します。 メモリ不足です。 開いているファイルの数が多すぎます。 アクセスが拒否されました。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 Open 関数は、ストレージ ファイルとストレージ オブジェクトとの間 の接続、またはストレージ ファイルやストレージ オブジェクトと OLE コントロールとの間の接続を確立します。Save 関数は、この接続を使 用して OLE データを保存します。 ストレージ オブジェクトに対して SaveAs 関数を呼び出すと、ストレー ジ オブジェクトとファイルとの間の現行の接続を閉じ、ストレージ オ ブジェクトのデータを格納する新しいファイルを作成します。 ストレージ ファイルの構造についての詳細は、Open 関数を参照してく ださい。 996 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、OLEStorage 型の変数 stg_stuff 内のオブジェクトを、copy1 と いうサブストレージとして 2 番目のストレージ変数 stg_clone に保存し ます。 integer result result = stg_stuff.SaveAs("copy1", stg_clone) 関連項目 Close Open Save SaveDocument 機能 リッチテキスト エディット コントロールの内容をファイルに保存し ます。保存するファイルの形式として、リッチテキスト形式(RTF)、 または ASCII テキスト形式を指定できます。 対象 リッチテキスト エディット コントロール 構文 rtename.SaveDocument ( filename {, filetype {, encoding }} ) 引数 rtename filename filetype (オプション) 説明 内容を保存するリッチテキスト エディット コントロール の名前を指定します。 String 型の値。保存するファイルの名前を指定します。指 定されたファイル名がすでに存在する場合、FileExists イベ ントが起動されます。 保存するファイルの形式を指定する FileType カタログ データ型の値。値は以下のとおりです。 • FileTypeRichText! − リッチテキスト形式(RTF) • FileTypeText! − ASCII テキスト PowerScript リファレンス ボリューム 2 997 SaveDocument 引数 encoding (オプション) 説明 データを保存するファイルのエンコーディング文字。この 引数はテキスト ファイルにだけ適用されます。encoding 引 数を指定しない場合は、ファイルは ANSI 形式で保存され ます。 filetype 引数は FileTypeText! に設定されなければなりませ ん。filetype 引数が FileTypeRichText! に設定されると、この 引数は無視されます。RTF ファイルは常に ANSI 形式にな ります。値は以下の通りです。 • EncodingANSI!(デフォルト) • EncodingUTF8! • EncodingUTF16LE! • EncodingUTF16BE! 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SaveDocument 関数は、指定されたファイル名がすでに存在する場合に FileExists イベントを起動します。SaveDocument で filetype を指定しな いと、拡張子 .txt を持つファイル名を指定する場合は、ファイルをテ キスト ファイルとして保存し、指定しない場合は、RTF ファイルとし て保存します。 例 次のコマンドボタン コントロールのコードは、リッチテキスト エ ディット コントロール rte_1 内の文書を保存します。 integer li_rtn li_rtn = rte_1.SaveDocument("c:\test.rtf", & FileTypeRichText!) TEST.RTF ファイルがすでに存在する場合、PowerBuilder は次のスクリ プトで FileExists イベントを起動します。OpenWithParm 関数は、エンド ユーザにファイルを上書きしてもよいかどうかを確認するレスポンス ウィンドウを表示します。FileExists イベントの戻り値によって、ファ イルを保存するかどうかが決まります。 OpenWithParm( w_question, & "The specified file already exists. " + & "Do you want to overwrite it?" ) IF Message.StringParm = "Yes" THEN RETURN 0 // ファイルは保存されます。 ELSE RETURN -1 // ファイルの保存をキャンセルします。 END IF 998 PowerBuilder 第 10 章 PowerScript の関数 次のコマンドボタン コントロールのコードは、UTF-16LE エンコー ディングのテキスト ファイルにリッチテキスト エディット コント ロール rte_1 内の文書を保存します。 integer li_rtn li_rtn = rte_1.SaveDocument("c:\test.rtf", & FileTypeRichText!, EncodingUTF16LE!) 関連項目 InsertDocument SaveInk 機能 インクピクチャ コントロールからファイルまたは Blob にインクを保 存します。 対象 インクピクチャ コントロール 構文 inkpicname.SaveInk ( t | b {, format {, mode } } ) 引数 inkpicname 説明 インクを保存したいインクピクチャ コントロールの名前を 指定します。 t コントロールから保存したいインクを保持するファイルの 名前と位置を含む文字列を指定します。 b コントロールから保存したいインクを保持する Blob の名前 を指定します。この引数は、参照渡しされます。 format (オプ インクを保存したい形式を指定する InkPersistenceFormat カ ション) タログデータ型変数の値を指定します。値は以下のとおり です。 • Base64GIFFormat! • Base64InkSerializedFormat! • GIFFormat! mode (オ プ ション) • InkSerializedFormat!(デフォルト) インクを保存したい圧縮モードを指定する InkCompressionMode カタログデータ型変数の値を指定しま す。値は以下のとおりです。 • DefaultCompression!(デフォルト) • MaximumCompression! • NoCompression! PowerScript リファレンス ボリューム 2 999 SaveInk 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SaveInk 関数を使用して、別のファイルまたは Blob にインクピクチャ コントロール内のイメージに作られた注釈を保存します。 InkSerializedFormat! (ISF) は最もコンパクトな持続的インク表記を提供 します。この形式は、バイナリ文書形式内に埋め込んだり、クリップ ボードに追加したりできます。Base64InkSerializedFormat! は、base64 ス トリームとして ISF 形式をエンコードします。この形式は、インクを XML や HTML ファイルにエンコードできるようにします。 GIFFormat! は、ISF が メ タ デ ー タ と し て 埋 め 込 ま れ て い る Graphics Interchange Format (GIF) ファイル内のイメージを保存します。この形式 は、インクが有効になっていないアプリケーションで表示できます。 Base64GIFFormat! は、base64 encoded fortified GIF を使用して保存されま す。インクが XML あるいは XHTML ファイルに直接エンコードされ るためにあり、後でイメージに変換する場合は、この形式を使用しま す。これは HTML への XSLT 変換をサポートします。 例 次の例は、デフォルトの圧縮でインクピクチャ コントロール内のイン クを ISF ファイルに保存します。 int li_return string ls_pathname, ls_filename GetFileSaveName("Save As", ls_pathname, ls_filename, "ISF") li_return = ip_1.SaveInk(ls_pathname) 次の例は、最小の圧縮でインクピクチャ コントロール内のインクを GIF ファイルに保存します。 int li_return string ls_pathname, ls_filename GetFileSaveName("Save As", ls_pathname, ls_filename, "GIF") li_return = ip_1.SaveInk(ls_pathname, GIFFormat!, MaximumCompression!) 関連項目 1000 LoadInk LoadPicture ResetInk ResetPicture Save PowerBuilder 第 10 章 PowerScript の関数 Scroll 機能 マルチライン エディット コントロールまたはデータウィンドウのエ ディット コントロールを、指定された行数分、上下にスクロールします。 対象 データウィンドウ コントロール、マルチライン エディット コントロー ル、リッチテキスト エディット コントロール 構文 editname.Scroll ( number ) 引数 editname number 説明 上下にスクロールするデータウィンドウ コントロール、 リッチテキスト エディット コントロールまたはマルチラ イン エディット コントロールの名前を指定します。 editname がデータウィンドウ コントロールの場合、Scroll 関数はそのエディット コントロールで有効です。 Long 型の値。スクロールの方向と行数を指定します。下 方向へスクロールするには、正の Long 値を使用します。 上方向へスクロールするには、負の Long 値を使用します。 戻り値 Long 型。Scroll 関数は、リッチテキスト エディット コントロールに対 して正常に終了した場合、1 を返します。そのほかのコントロールに 対して正常に終了した場合、editname の一番上の行番号を返します。 エラーが発生した場合、-1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 残りの行数がスクロールする行数よりも少ない場合、Scroll 関数は指定 方向の先頭行または最終行までスクロールします。 例 次のステートメントは、mle_Employee を下方向に 4 行スクロールします。 mle_Employee.Scroll(4) 次のステートメントは、mle_Employee を上方向に 4 行スクロールします。 mle_Employee.Scroll(-4) 関連項目 次の関数は、データウィンドウやリッチテキスト エディット内でスク ロールするために使用します。 ScrollNextPage ScrollNextRow ScrollPriorPage ScrollPriorRow ScrollToRow PowerScript リファレンス ボリューム 2 1001 ScrollNextPage ScrollNextPage 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウで、文書を 1 ページ後方にスクロールしま す。 データウィンドウの場合の構文については、『データウィンドウ リ ファレンス』マニュアル、またはオンライン ヘルプの「ScrollNextPage メソッド」を参照してください。 対象 リッチテキスト エディット コントロール 構文 rtename.ScrollNextPage ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロールの次のページにスクロールします。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 ある行に対して文書の最終ページが表示されているときに ScrollNextPage 関数を呼び出すと、次の行である先頭ページにスクロールします。 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の次のページにスクロールします。文書に複数のインス タンスがある場合、次のインスタンスにスクロールすることができま す。 rte_1.ScrollNextPage() 関連項目 1002 Scroll ScrollNextRow ScrollPriorPage ScrollPriorRow PowerBuilder 第 10 章 PowerScript の関数 ScrollNextRow 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウ内にある文書の次のインスタンスにスク ロールします。リッチテキスト エディット コントロールがデータウィ ンドウとデータを共有している場合、リッチテキスト エディット コン トロールには文書の複数のインスタンスが格納されます。文書の次の インスタンスは、データウィンドウ内の次の行に関連付けられます。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、 『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollNextRow メソッド」を参照してくださ い。 対象 データウィンドウ コントロール、リッチテキスト エディット コント ロール 構文 rtename.ScrollNextRow ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロール内にある文書の次のインスタンスにスク ロールします。各インスタンスは、データウィンドウの行 に関連付けられます。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 ScrollNextRow 関数は、リッチテキスト エディット コントロール内にあ る文書の次のインスタンスにスクロールします。一方、ScrollNextPage 関数を繰り返して呼び出すと、文書の同じインスタンスのすべての ページを下方向へスクロールした後、次の行のページにスクロールし ます。 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の次のインスタンスにスクロールします。各文書のイン スタンスは、行に関連付けられています。 PowerScript リファレンス ボリューム 2 1003 ScrollPriorPage rte_1.ScrollNextRow() 関連項目 Scroll ScrollNextPage ScrollPriorPage ScrollPriorRow ScrollPriorPage 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウ内にある文書の前のページにスクロール します。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollPriorPage メソッド」を参照してくださ い。 対象 データウィンドウ コントロール、リッチテキスト エディット コント ロール 構文 rtename.ScrollPriorPage ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロールの前のページにスクロールします。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 ある行に対して文書の先頭ページが表示されているときに、 ScrollPriorPage 関数を呼び出すと、前の行である最終ページにスクロー ルします。 1004 PowerBuilder 第 10 章 PowerScript の関数 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の前のページにスクロールします。文書に複数のインス タンスがある場合、前のインスタンスにスクロールすることができま す。 rte_1.ScrollPriorPage() 関連項目 Scroll ScrollNextPage ScrollNextRow ScrollPriorRow ScrollPriorRow 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウ内にある文書の前のインスタンスにスク ロールします。リッチテキスト エディット コントロールがデータウィ ンドウとデータを共有している場合、リッチテキスト エディット コン トロールには文書の複数のインスタンスが格納されます。文書の次の インスタンスは、データウィンドウ内の次の行に関連付けられます。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、 『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollPriorRow メソッド」を参照してくださ い。 対象 データウィンドウ コントロール、リッチテキスト エディット コント ロール 構文 rtename.ScrollPriorRow ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロール内にある文書の前のインスタンスにスク ロールします。各インスタンスは、データウィンドウの行 に関連付けられます。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 1005 ScrollToRow 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 ScrollPriorRow 関数は、リッチテキスト エディット コントロール内にあ る文書の前のインスタンスにスクロールします。一方、ScrollPriorPage 関数を繰り返して呼び出すと、文書のインスタンスのすべてのページ を上方向へスクロールした後、前の行のページにスクロールします。 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の前のインスタンスにスクロールします。各文書のイン スタンスは、行に関連付けられています。 rte_1.ScrollPriorRow() 関連項目 Scroll ScrollNextPage ScrollNextRow ScrollPriorPage ScrollToRow 機能 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、指定された行に関連付けられている文書のイ ンスタンスにスクロールします。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollToRow メソッド」を参照してください。 対象 リッチテキスト エディット コントロール 構文 rtename.ScrollToRow ( row ) 引数 rtename row 1006 説明 リッチテキスト エディット コントロールの名前を指定し ます。指定されたコントロールの指定された行に関連付け られている文書のインスタンスにスクロールします。 Long 型の値。スクロール先の行を指定します。row が 0 の 場合、ScrollToRow 関数は先頭行にスクロールします。row に指定された値が、関連付けられているデータウィンドウ 内の行数より大きい場合、最終行にスクロールします。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。ScrollToRow 関数は、指定された行に関連付けられているインスタ ンスにスクロールします。 例 次の例では、dw_1 は少なくとも 25 行のデータを検索して格納してい ます。DataSource 関数を呼び出した後、リッチテキスト エディット コン トロールには、少なくとも 25 個の文書のインスタンスが格納されてい ます。ScrollToRow 関数は、25 番目のインスタンスにスクロールします。 rte_1.DataSource(dw_1) rte_1.ScrollToRow(25) 関連項目 Scroll ScrollNextPage ScrollNextRow ScrollPriorPage ScrollPriorRow Second 機能 Time 型の値の秒の部分から秒数を取得します。 構文 Second ( time ) 引数 time 説明 秒数を取得する Time 型の値を指定します。 戻り値 Integer 型。time の秒数の部分(00 ∼ 59)を返します。time が NULL の 場合、NULL を返します。 例 次のステートメントは、31 を返します。 Second(19:01:31) 関連項目 Hour Minute 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Second メソッド PowerScript リファレンス ボリューム 2 1007 SecondsAfter SecondsAfter 機能 ある時刻から別の時刻までの経過秒数を測定します。 構文 SecondsAfter ( time1, time2 ) 引数 time1 time2 説明 測定する間隔の開始時刻を示す Time 型の値を指定します。 測定する間隔の終了時刻を示す Time 型の値を指定します。 戻り値 Long 型。time1 から time2 までの経過秒数を返します。time2 が time1 よ り前の場合、負の数を返します。引数のいずれかの値が NULL の場合、 NULL を返します。 例 次のステートメントは、15 を返します。 SecondsAfter(21:15:30, 21:15:45) 次のステートメントは、-15 を返します。 SecondsAfter(21:15:45, 21:15:30) 次のステートメントは、0 を返します。 SecondsAfter(21:15:45, 21:15:45) start_time と end_time を Time 型の変数として宣言し、start_time に 19:02:16 を 割り当て、end_time に 19:02:28 を割り当てる場合、次のよ うに記述します。 time start_time, end_time start_time = 19:02:16 end_time = 19:02:28 次のステートメントは、いずれも 12 を返します。 SecondsAfter(start_time, end_time) SecondsAfter(19:02:16, end_time) SecondsAfter(start_time, 19:02:28) SecondsAfter(19:02:16, 19:02:28) 関連項目 1008 DaysAfter RelativeDate RelativeTime 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの SecondsAfter メソッド PowerBuilder 第 10 章 PowerScript の関数 Seek OLEStream オブジェクトでファイル ポインタを移動するか、アニメー ション コントロールに、AVI クリップで指定したフレームを表示します。 目的 OLEStream オブジェクト中で読み書きポインタを移動す る AVI クリップの指定フレームを表示する 目的 構文 1 構文 2 構文 1 OLEStream オブジェクトの場合 機能 OLEStream オブジェクト中の指定の位置に、読み書きポインタを移動 します。ポインタは、ストリームの中で次の読み書きの開始位置とな ります。 対象 OLEStream オブジェクト 構文 olestream.Seek ( position {, origin } ) 引数 olestream position origin (オプション) 説明 開いている OLEStream 変数の名前を指定します。 Long 型の値。読み書きポインタを移動する位置を origin に 相対的な値で指定します。 処理を開始する位置を指定する SeekType カタログ データ 型の値。値は以下のとおりです。 • FromBeginning! −(デフォルト)ファイルの先頭 • FromCurrent! − 現行の位置 • FromEnd! − ファイルの末尾 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -9 ストリームが開かれていません。 シーク エラーです。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 1009 Seek 例 次の例は、OLE ストリームに追加データを書き込みます。 MYSTUFF.OLE ファイルで OLE オブジェクトを開き、OLEStorage オブ ジェクト stg_stuff に代入します。次に、stg_stuff のストリーム info を開 き、ストリーム オブジェクト olestr_info に割り当てます。Seek 関数を 使用して読み書きポインタをストリームの最後に配置し、Blob 型のイ ンスタンス変数 lb_info の内容が、一番最後に書き込まれるようにしま す。 この例では、関数の戻り値をチェックしていませんが、実際のスクリ プトでは必ず戻り値をチェックしてください。 boolean lb_memexists OLEStorage stg_stuff OLEStream olestr_info stg_stuff = CREATE OLEStorage stg_stuff.Open("c:\ole\mystuff.ole") olestr_info.Open(stg_stuff, "info", & stgReadWrite!, stgExclusive!) olestr_info.Seek(0, FromEnd!) olestr_info.Write(lb_info) 関連項目 Open Length Read Write 構文 2 アニメーション コントロールの場合 機能 AVI クリップの指定フレームをアニメーション コントロールに表示し ます。 対象 アニメーション コントロール 構文 animationname.Seek ( s ) 引数 animationname s 戻り値 1010 説明 AVI クリップを表示するアニメーション コントロールの 名前を指定します。 0 ∼ 65,535 の Long 型の値。表示するフレームを指定しま す。 Integer 型。成功した場合は 1、失敗した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 Seek は、指定したフレームを表示します。指定した値が、クリップ内 のフレーム数より大きい場合、Seek 関数はクリップの最後のフレーム を表示し、1 を返します。指定された範囲外の値を指定した場合、Seek 関数は何もしないで -1 を返します。アニメーションが再生されている 場合、Seek 関数は常に Stop イベントを起動します。 例 次のコードは、ボタンの Clicked イベントのスクリプトです。シングル ライン エディット コントロール内の数字で指定されたフレームを表 示し、数字を1つずつ増やします。ボタンをクリックするたびに、ク リップが 1 フレームずつ進みます。 // インスタンス変数 : integer li_return number = long (sle_seek.text) li_return = am_1.Seek(number) number +=1 sle_seek.text = string(number) 関連項目 Play Stop SelectedColumn 機能 リッチテキスト エディット コントロールの挿入ポイントの直後にあ る文字の行頭からの文字数を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.SelectedColumn ( ) 引数 rtename 説明 行頭から挿入ポイントの次の文字までの文字数を取得す るリッチテキスト エディット コントロールの名前を指定 します。 戻り値 Long 型。rtename に指定されたコントロールの行頭から挿入ポイント の直後の文字までの文字数を返します。エラーが発生した場合、-1 を 返します。 解説 挿入ポイントは、選択範囲の先頭または末尾に設定することができま す。このため、SelectedColumn 関数は、挿入ポイントの位置に応じて、 選択範囲の先頭文字、または選択範囲の直後の文字までの文字数を返 します。 PowerScript リファレンス ボリューム 2 1011 SelectedIndex 例 挿入ポイントがリッチテキスト エディット コントロール rte_Contact の 8 行目の 5 番目の文字の前にある場合、次の例は ll_col に 5 を設定 し、ll_line に 8 を設定します。 long ll_col, ll_line ll_col = rte_Contact.SelectedColumn() ll_line = rte_Contact.SelectedLine() 関連項目 LineLength Position SelectedLine SelectedPage SelectedText TextLine SelectedIndex 機能 リストボックス コントロールまたはリストビュー コントロール内で 選択されている項目の番号を取得します。 対象 リストボックス コントロール、リストビュー コントロール 構文 listcontrolname.SelectedIndex ( ) 引数 listcontrolname 戻り値 説明 リストボックス コントロールまたはリストビュー コント ロールの名前を指定します。指定されたコントロール内で 選択されている項目の位置を返します。 Integer 型。listcontrolname 内で選択されている項目のインデックスを返 します。複数の項目が選択された場合、最初に選択された項目のイン デックスを返します。選択された項目が存在しなかった場合、または エラーが発生した場合には、-1 を返します。listcontrolname が NULL の 場合、NULL を返します。 解説 SelectedIndex 関数と SelectItem 関数は、単一の選択だけを許可するリス トを想定しています。コントロールの MultiSelect プロパティは、FALSE です。 MultiSelect プロパティが TRUE の場合、SelectedIndex 関数は最初に選択 された項目のインデックスだけを取得します。SelectedIndex 関数を使 用せずに、State 関数を使用してリストボックスの項目を 1 つ 1 つ チェックし、項目が選択されているかどうかを確認します。リストボッ クスの中の項目のテキストを取得するには、Text 関数を使用します。 1012 PowerBuilder 第 10 章 PowerScript の関数 例 lb_actions の項目 5 が選択されると、次の例は li_Index に 5 を設定しま す。 integer li_Index li_Index = lb_actions.SelectedIndex() 次のステートメントは、lb_actions の項目 5 が選択された場合に、ウィ ンドウ w_emp を開きます。 integer li_X li_X = lb_actions.SelectedIndex() If li_X = 5 then Open(w_emp) 関連項目 SelectedItem SelectedItem 機能 リストボックス コントロールまたはピクチャ リストボックス コント ロール内で選択されている項目のテキストを返します。 対象 リストボックス コントロール、ピクチャ リストボックス コントロール 構文 listboxname.SelectedItem ( ) 引数 listboxname 説明 リストボックス コントロールまたはピクチャ リストボック ス コントロールの名前を指定します。指定されたコント ロール内で現在選択されている項目のテキストを返します。 戻り値 String 型。listboxname 内で選択されている項目のテキストを返します。 項目が選択されていない場合には、空の文字列("")を返します。 listboxname が NULL の場合、NULL を返します。 解説 SelectedIndex 関数と SelectItem 関数は、単一の選択だけを許可するリス トを想定しています。コントロールの MultiSelect プロパティは、FALSE です。 MultiSelect プロパティが TRUE の場合、SelectedItem 関数は最初に選択 された項目のテキストだけを取得します。SelectedItem 関数を使用せず に、State 関数を使用してリストボックスの項目を 1 つ 1 つチェックし、 項目が選択されているかどうかを確認します。リストボックスの中の 項目のテキストを取得するには、Text 関数を使用します。 例 リストボックス lb_shortcuts 内で選択されている項目のテキストが F1 の場合、次の例は ls_item に F1 を設定します。 PowerScript リファレンス ボリューム 2 1013 SelectedLength string ls_Item ls_Item = lb_Shortcuts.SelectedItem() 関連項目 SelectedIndex State SelectedLength 機能 編集可能なコントロール内で選択されているテキストの文字数の合計 を返します。文字数には、空白と行末文字も含まれます。 対象 データウィンドウ コントロール、エディットマスク コントロール、イ ンクエディット コントロール、マルチライン エディット コントロー ル、シングルライン エディット コントロール、リッチテキスト エ ディット コントロール、ドロップダウン リストボックス コントロー ル、ドロップダウン ピクチャ リストボックス コントロール 構文 editname.SelectedLength ( ) 引数 editname 説明 データウィンドウ、エディットマスク、マルチライン エ ディット、シングルライン エディット、リッチテキスト エディット、ドロップダウン リストボックス、ドロップダ ウン ピクチャ リストボックスのいずれかのコントロール の名前を指定します。指定されたコントロール内で選択さ れているテキストの長さを返します。 データウィンドウ コントロールの名前を指定すると、エ ディット コントロール内の現行の行とカラムで選択され ているテキストの長さを返します。 戻り値 データウィンドウ、InkEdit、およびリストボックスの場合は Integer 型、 ほかのコントロールの場合は Long 型 editname に指定されたコントロール内で選択されているテキストの長 さを返します。テキストを選択しなかった場合、0 を返します。エラー が発生した場合、-1 を返します。editname が NULL の場合、NULL を返 します。 1014 PowerBuilder 第 10 章 PowerScript の関数 解説 〔Ctrl〕+〔Enter〕または〔Enter〕を入力したときに生成される行末文 字は、プラットフォームによって異なります。Windows の場合は、キャ リッジ リターン(CR)とライン フィード(LF)で、長さを計算する ときには 2 文字として数えられます。ほかのプラットフォームでは、 行末文字は 1 文字です。自動的に折り返された行には、行末文字はあ りません。ドロップダウン リストボックス コントロールとドロップダ ウン ピクチャ リストボックス コントロールの場合、コントロールの AllowEdit プロパティが FALSE のときには -1 を返します。 ドロップダウン リストボックスでのフォーカスと選択 ドロップダウン リストボックス コントロールまたはドロップダウン ピクチャ リストボックス コントロールがフォーカスを失うと、選択さ れていたテキストの選択状態が解除されます。 例 マルチライン エディット コントロール mle_Contact 内で John Smith とい うテキストを選択している場合、次の例は li_length に 10 を設定します。 long ll_length ll_length = mle_Contact.SelectedLength() 関連項目 LineLength SelectedItem SelectedLine SelectedPage SelectedStart TextLine SelectedLine 機能 編集可能なコントロール内で挿入ポイントを含む行の番号を取得します。 対象 データウィンドウ コントロール、マルチライン エディット コントロー ル、リッチテキスト エディット コントロール 構文 editname.SelectedLine ( ) PowerScript リファレンス ボリューム 2 1015 SelectedLine 引数 editname 説明 データウィンドウ コントロール、マルチライン エディッ ト コントロール、またはリッチテキスト エディット コン トロールの名前を指定します。指定されたコントロール内 で挿入ポイントを含む行の行番号を取得します。データ ウィンドウ コントロールの名前を指定すると、エディット コントロール内の現行の行とカラムの行番号を返します。 戻り値 Long 型。正常に終了した場合、editname 内で挿入ポイントを含む行の 行番号を返します。エラーが発生した場合、-1 を返します。editname が NULL の場合、NULL を返します。 解説 エディットマスク コントロールの場合、SelectedLine 関数は動作します が、常に 1 を返します。 挿入ポイントは、選択範囲の先頭または末尾に設定することができま す。したがって、SelectedLine 関数は、挿入ポイントの位置に応じて選 択範囲の先頭行または最終行を返します。 例 マルチライン エディット コントロール mle_Contact の 5 行目のどこか に挿入ポイントがある場合、次の例は li_SL に 5 を設定します。 integer li_SL li_SL = mle_Contact.SelectedLine() 次の例では、エンド ユーザがマルチライン エディット コントロール mle_winselect で選択している行に応じて、どのウィンドウを開くかが 決まります。 integer li_SL li_SL = mle_winselect.SelectedLine() IF li_SL = 1 THEN Open(w_emp_data) ELSEIF li_SL = 2 THEN Open(w_dept_data) END IF 関連項目 1016 LineLength Position SelectedColumn SelectedPage SelectedText TextLine PowerBuilder 第 10 章 PowerScript の関数 SelectedPage 機能 リッチテキスト エディット コントロールの現行ページの番号を取得 します。 対象 リッチテキスト エディット コントロール 構文 rtename.SelectedPage ( ) 引数 rtename 説明 現行ページの番号を取得するリッチテキスト エディット コントロールの名前を指定します。 戻り値 Integer 型。rtename に指定されたコントロールの現行ページの番号を返 します。エラーが発生した場合、-1 を返します。 解説 リッチテキスト エディット コントロールの現行ページとは、テキスト の入力モードで挿入ポイントがあるページ、またはプレビュー モード で現在表示されているページです。 リッチテキスト エディット コントロールがデータウィンドウ オブ ジェクトとデータを共有している場合、SelectedPage 関数は現行の行の 文書のインスタンスのページ番号を返します。 文書のインスタンスについての詳細は、DataSource 関数を参照してく ださい。 例 次の例は、現行ページのページ番号を返します。 integer li_pagect li_pagect = rte_1.SelectedPage() 関連項目 DataSource PageCount Preview SelectedLength SelectedLine SelectedStart SelectedText SelectedStart 機能 編集可能なコントロール内で選択されている文字の先頭文字の位置を 返します。 PowerScript リファレンス ボリューム 2 1017 SelectedStart 対象 データウィンドウ コントロール、エディットマスク コントロール、マ ルチライン エディット コントロール、シングルライン エディット コ ントロール、リッチテキスト エディット コントロール、ドロップダウ ン リストボックス コントロール、ドロップダウン ピクチャ リスト ボックス コントロール 構文 editname.SelectedStart ( ) 引数 editname 説明 データウィンドウ、エディットマスク、マルチライン エ ディット、シングルライン エディット、リッチテキスト エディット、ドロップダウン リストボックス、ドロップダ ウン ピクチャ リストボックスのいずれかのコントロール の名前を指定します。指定されたコントロール内で選択さ れているテキストの先頭文字の位置を返します。 データウィンドウ コントロールの名前を指定すると、エ ディット コントロール内の現行の行とカラムで選択され ているテキストの先頭文字の位置を返します。 戻り値 Long 型。editname に指定されたコントロール内で選択されているテキ ストの開始位置を返します。テキストが選択されていない場合、挿入 ポイントの直後にある文字の位置を返します。エラーが発生した場合、 -1 を返します。editname が NULL の場合、NULL を返します。 解説 リッチテキスト エディット コントロール以外のすべてのコントロー ルの場合、SelectedStart 関数は行の途中にあるスペースや行末文字も含 めて、テキストの先頭から文字位置を数えます。 リッチテキスト エディット コントロールの場合、SelectedStart 関数は 選択範囲の先頭行の先頭から文字位置を数えます。先頭とは、選択範 囲の開始位置(挿入ポイント)と反対の位置(終了位置)です。たと えば、エンド ユーザが上方向に選択した場合、選択範囲の先頭はハイ ライト表示されているテキストの末尾になり、挿入ポイントは選択範 囲の先頭の前に設定されます。選択の先頭と末尾に関する情報が必要 な場合、Position 関数を使用してください。 ドロップダウン リストボックスでのフォーカスと選択 ドロップダウン リストボックス コントロールまたはドロップダウン ピクチャ リストボックス コントロールがフォーカスを失うと、選択さ れていたテキストの選択状態が解除されます。 1018 PowerBuilder 第 10 章 PowerScript の関数 例 たとえば、マルチライン エディット コントロール mle_Comment に Closed for Vacation July 3 to July 10 という文字列が格納されていて、 Vacation が選択されているとします。次の例は、li_Start に 12(Vacation の 1 文 字目の文字位置)を設定します。 integer li_Start li_Start = mle_Comment.SelectedStart() 関連項目 Position SelectedLine SelectedPage SelectedText 機能 編集可能なコントロール内で選択されているテキストを返します。 対象 データウィンドウ コントロール、エディットマスク コントロール、 InkEdit コントロール、マルチライン エディット コントロール、シン グルライン エディット コントロール、リッチテキスト エディット コ ントロール、ドロップダウン リストボックス コントロール、ドロップ ダウン ピクチャ リストボックス コントロール 構文 editname.SelectedText ( ) 引数 editname 説明 データウィンドウ、エディットマスク、マルチライン エ ディット、シングルライン エディット、リッチテキスト エディット、ドロップダウン リストボックス、ドロップダ ウン ピクチャ リストボックスのいずれかのコントロール の名前を指定します。指定されたコントロール内で選択さ れているテキストを返します。 ドロップダウン リストボックス コントロールまたはド ロップダウン ピクチャ リストボックス コントロールの名 前を指定した場合、AllowEdit プロパティが TRUE である 必要があります。 データウィンドウ コントロールの名前を指定した場合、エ ディット コントロール内の現行の行とカラムで選択され ているテキストを返します。 戻り値 String 型。editname に指定されたコントロール内で選択されているテキ ストを返します。テキストが選択されていない場合、またはエラーが 発生した場合には、空の文字列("")を返します。editname が NULL の 場合、NULL を返します。 PowerScript リファレンス ボリューム 2 1019 SelectionRange 解説 リッチテキスト エディット コントロールでは、選択範囲内のピクチャ は無視されます。選択範囲に入力フィールドがある場合、入力フィー ルドの名前は { } で囲まれ、この関数から返される文字列の一部にな ります。入力フィールドの内容は返しません。 たとえば、手紙の書き出しの挨拶文を選択した場合、SelectedText 関数 は次の文字列を返します。 Dear {title} {lastname}: ドロップダウン リストボックスでのフォーカスと選択 ドロップダウン リストボックス コントロールまたはドロップダウン ピクチャ リストボックス コントロールがフォーカスを失うと、選択さ れていたテキストの選択状態が解除されます。 例 マルチライン エディット コントロール mle_Contact に James B. Smith と いうテキストが格納されていて、James B. が選択されている場合、次の 例は emp_fname に James B. を設定します。 string ls_emp_fname ls_emp_fname = mle_Contact.SelectedText() ド ロ ッ プ ダ ウ ン リ ス ト ボ ッ ク ス コ ン ト ロ ー ル ddlb_Location の エ ディット ボックス内で Maine というテキストが選択されている場合、 次の例はリストボックス コントロール lb_LBMaine を表示します。 string ls_Loc ls_Loc = ddlb_Location.SelectedText() IF ls_Loc = "Maine" THEN lb_LBMaine.Show() ELSE ... END IF 関連項目 SelectText SelectionRange 機能 トラックバー コントロールにおいて、特定の範囲の隣接する値をハイ ライト表示します。トラックバーのチャネルでは、選択した範囲がハ イライト表示され、範囲の両端には矢印が表示されます。 対象 トラックバー コントロール 1020 PowerBuilder 第 10 章 PowerScript の関数 構文 control.SelectionRange ( startpos, endpos ) 引数 control startpos endpos 説明 トラックバー コントロールの名前を指定します。 Integer 型の値。範囲の開始位置を指定します。 Integer 型の値。範囲の終了位置を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 この関数は、推奨値の範囲を示すのに使用します。 スケジューリング アプリケーションでは、すでに予定の埋まっている 時間帯を示すことができます。選択範囲を設定しても、ユーザがその 範囲の内側または外側の値を選択できなくなるわけではありません。 例 次のステートメントは、トラックバーの 30 ∼ 70 の間の値をハイライ ト表示します。 HTrackBar.SelectionRange( 30, 70 ) 関連項目 『オブジェクトとコントロール』マニュアルの「HTrackBar」 『オブジェクトとコントロール』マニュアルの「VTrackBar」 SelectItem リストボックス コントロール、ドロップダウン リストボックス コン トロール、またはツリービュー コントロール内の項目を検索し、選択 してハイライト表示します。 目的 リストボックス コントロールで項目のテキストだけがわ かっていて位置がわからない場合に、項目を選択する リストボックス コントロールでリスト内の項目の位置が わかっている場合に、項目を選択するか、または現行の選 択範囲を解除する ツリービュー コントロールで項目を選択する PowerScript リファレンス ボリューム 2 使用する構文 構文 1 構文 2 構文 3 1021 SelectItem 構文 1 項目のテキストがわかっているときにその項目を選 択する 機能 項目のテキストの一部または全部を指定できる場合に、リストボック スの項目を検索し、選択してハイライト表示します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.SelectItem ( item, index ) 引数 listboxname item index 戻り値 説明 行を選択するリストボックス コントロールの名前を指定 します。 String 型の値。選択する項目の先頭のテキストを指定します。 項目の番号を指定します。指定された番号の後の項目から 検索が開始されます。 Integer 型。選択されている項目のインデックス番号を返します。一致 する項目が見つからない場合は、0 を返します。エラーが発生した場 合、-1 を返します。引数のいずれかの値が NULL の場合、NULL を返し ます。 解説 SelectItem 関数は、index に指定された番号の後の項目から、選択する 項目の検索を開始します。指定されたテキストから始まる項目が検索 されます。指定されたテキストよりも長いテキストが項目に格納され ていても構いません。 項目を検索するだけで、選択しない場合には、FindItem 関数を使用して ください。 複数選択が可能なリストボックス MultiSelect プロパティが TRUE のリストボックスやピクチャ リスト ボックスでは、SelectItem 関数は無効です。リストボックス内のほかの 項目の選択状態に影響を与えずに項目を選択するには、SetState 関数を 使用してください。 ドロップダウン リストボックスのエディット ボックスの消去 エンド ユーザが編集できないドロップダウン リストボックス コント ロールやドロップダウン ピクチャ リストボックス コントロールのエ ディット ボックスを消去するには、SelectItem 関数の構文 2 を使用して ください。 1022 PowerBuilder 第 10 章 PowerScript の関数 例 lb_Actions の項目 5 が Delete Files の場合、次の例は項目 2 の次の項目か ら検索を開始します。Delete Files を検索してハイライト表示し、li_Index に 5 を設定します。 integer li_Index li_Index = lb_Actions.SelectItem("Delete Files", 2) lb_Actions の項目 4 が Select Objects の場合、次の例は項目 2 の次の項目 から検索を開始します。Select Objects を検索してハイライト表示し、 li_Index に 4 を設定します。 integer li_Index li_Index = lb_Actions.SelectItem("Sel", 2) 関連項目 AddItem DeleteItem FindItem InsertItem SetState 構文 2 項目番号がわかっているときにその項目を選択する 機能 項目のインデックス番号を指定できる場合に、リストボックスから項 目を検索し、選択してハイライト表示します。また、インデックス番 号を 0 に指定して選択を解除することもできます。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.SelectItem ( itemnumber ) 引数 listboxname PowerScript リファレンス ボリューム 2 説明 項目を選択するリストボックス コントロールの名前を指 定します。 1023 SelectItem 引数 itemnumber 説明 Integer 型の値。リストボックスまたはドロップダウン リ ストのリストボックス内での項目の位置(インデックス) を指定します。 選択されている項目の選択を解除する場合、0 を指定しま す。listboxname にリストボックス コントロールまたはピ クチャ リストボックス コントロールの名前を指定した場 合、この引数に 0 を指定すると、選択されている項目のハ イライト表示が取り消されます。ドロップダウン リスト ボックス コントロールまたはドロップダウン ピクチャ リ ストボックス コントロールの名前を指定した場合、この引 数に 0 を指定すると、テキストボックスが消去されます。 戻り値 Integer 型。選 択 さ れ て い る 項 目 の イ ン デ ッ ク ス 番 号 を 返 し ま す。 itemnumber に指定された値が無効な場合、または選択されている項目 の選択を解除するために 0 が指定された場合には、0 を返します。エ ラーが発生した場合、-1 を返します。引数のいずれかの値が NULL の 場合、NULL を返します。 解説 項目を検索するだけで、選択しない場合には、FindItem 関数を使用して ください。 複数選択が可能なリストボックス MultiSelect プロパティが TRUE のリストボックスやピクチャ リスト ボックスでは、SelectItem 関数は無効です。リストボックス内のほかの 項目の選択状態に影響を与えずに項目を選択するには、SetState 関数を 使用してください。 ドロップダウン リストボックスのエディット ボックスの消去 エンド ユーザが編集できないドロップダウン リストボックス コント ロールやドロップダウン ピクチャ リストボックス コントロールのエ ディット ボックスを消去するには、itemnumber に 0 を設定します。コ ントロールの AllowEdit プロパティが FALSE の場合、コントロールの テキストを空の文字列("")に設定することはできません。 例 次の例は、項目番号 5 をハイライト表示します。 integer li_Index li_Index = lb_Actions.SelectItem(5) 次の例は、ドロップダウン リストボックス コントロール ddlb_choices のエディット ボックスから選択を解除し、li_Index に 0 を設定します。 1024 PowerBuilder 第 10 章 PowerScript の関数 integer li_Index li_Index = ddlb_choices.SelectItem(0) 関連項目 AddItem DeleteItem FindItem InsertItem SetState 構文 3 ツリービュー コントロールの項目を選択する 機能 指定された項目を選択します。 対象 ツリービュー コントロール 構文 treeviewname.SelectItem ( itemhandle ) 引数 treeviewname itemhandle 説明 ツリービュー コントロールの名前を指定します。指定され たコントロールの項目を選択します。 項目のハンドルです。指定された項目を選択します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ツリービュー コントロールの特定の位置にある項目のハンドルを取 得するには、FindItem 関数を使用します。 例 次の例は、ツリービュー コントロールの現行の項目の親を選択します。 long ll_tvi, ll_tvparent int li_tvret ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) ll_tvparent = tv_list.FindItem(ParentTreeItem! , & ll_tvi) li_tvret = tv_list.SelectItem(ll_tvparent) 関連項目 FindItem PowerScript リファレンス ボリューム 2 1025 SelectObject SelectObject 機能 アクティブなサーバ アプリケーション以外の OLE コントロール オブ ジェクトの選択や選択の解除を行います。サーバ アプリケーションの メニューが、PowerBuilder アプリケーションのメニューに追加されま す。 対象 OLE コントロール 構文 olecontrol.SelectObject ( selectstate ) 引数 olecontrol selectstate 戻り値 説明 OLE コントロールの名前を指定します。そのコントロール の中の OLE コントロール オブジェクトを選択します。 オブジェクトの選択または選択解除を示す Boolean 型の値 を指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 コントロールは空です。 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、OLE コントロール ole_1 のオブジェクトを選択します。 integer result result = ole_1.SelectObject(TRUE) SelectTab 機能 指定されたタブを選択し、タブ コントロールにそのタブ ページを表示 します。 対象 タブ コントロール 構文 tabcontrolname.SelectTab ( tabidentifier ) 引数 tabcontrolname 1026 説明 タブを選択するタブ コントロールの名前を指定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 tabidentifier 説明 選択するタブを指定します。次のいずれかを指定します。 • タブ ページ インデックス(Integer 型) • ユーザ オブジェクトの名前(DragObject データ型、ま たは UserObject データ型) • ユーザ オブジェクトの名前を持つ文字列(String 型) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 別の記述方法 SelectedTab プロパティにタブのインデックス番号を設 定してタブを選択することもできます。 tab_1.SelectedTab = 3 例 次の 3 つの例は、tab_1 の 3 番目のタブを選択します。この例は、タブ コントロール tab_1 を含むウィンドウのコマンドボタン コントロール に対するスクリプトに記述されています。 tab_1.SelectTab(3) tab_1.SelectTab(tab_1.uo_3) string ls_tabpage ls_tabpage = "uo_3" tab_1.SelectTab(ls_tabpage) 次の例は、ユーザ オブジェクト uo_fontsettings のインスタンスをタブ ページとして開き、そのタブを選択します。 userobject uo_tabpage string ls_tabpage ls_tabpage = "uo_fontsettings" tab_1.OpenTab(uo_tabpage, ls_tabpage, 0) tab_1.SelectTab(uo_tabpage) 関連項目 OpenTab SelectText 編集可能なコントロール内のテキストを選択します。 目的 リッチテキスト エディット コントロール以外の編集可能 なコントロールでテキストを選択する PowerScript リファレンス ボリューム 2 使用する構文 構文 1 1027 SelectText 目的 リッチテキスト エディット コントロール、またはリッチ テキスト エディット提示様式のデータウィンドウ オブ ジェクトが格納されているデータウィンドウ コントロー ルのテキストを選択する 使用する構文 構文 2 構文 1 編集可能なコントロール(リッチテキスト エディッ ト コントロール以外)でテキストを選択する 機能 編集可能なコントロール内のテキストを選択します。選択範囲の先頭 の位置と選択する文字数を指定します。 対象 データウィンドウ コントロール、エディットマスク コントロール、 InkEdit コントロール、マルチライン エディット コントロール、シン グルライン エディット コントロール、ドロップダウン リストボック ス コントロール、ドロップダウン ピクチャ リストボックス コント ロール 構文 editname.SelectText ( start, length ) 引数 editname start length 戻り値 説明 データウィンドウ、エディットマスク、InkEdit、マルチラ イン エディット、シングルライン エディット、ドロップ ダウン リストボックス、ドロップダウン ピクチャ リスト ボックスのいずれかのコントロールの名前を指定します。 指定されたコントロールからテキストを選択します。 Long 型の値。選択範囲の先頭の位置を指定します。 Long 型の値。選択する文字数を指定します。length が 0 の 場合、テキストを選択せずに、start に指定された位置に挿 入ポイントを移動します。 データウィンドウおよびリストボックスの場合は Integer 型、ほかのコ ントロールの場合は Long 型 選択された文字数を返します。エラーが発生した場合、-1 を返します。 解説 1028 コントロールにフォーカスが設定されていない場合に SelectText 関数 を呼び出すと、コントロールにフォーカスが設定されるまで、テキス トはハイライト表示されません。選択したテキストがハイライト表示 されるように、コントロールにフォーカスを設定するには、SetFocus 関数を使用します。 PowerBuilder 第 10 章 PowerScript の関数 選択する長さ ライン エディットのすべてのテキストを選択する場合、またはエ ディット コントロール内の指定された位置から最後までの内容を選 択する場合、Len 関数を使用してコントロールのテキストの長さを取得 します。 リッチテキスト エディット提示様式が定義されているデータウィン ドウ内のテキストを選択する場合、構文 2 を使用してください。 例 次のステートメントは、シングルライン エディット コントロール sle_name のテキストの末尾に挿入ポイントを設定します。 sle_name.SelectText(Len(sle_name.Text), 0) 次のステートメントは、シングルライン エディット コントロール sle_name のすべての内容を選択します。 sle_name.SelectText(1, Len(sle_name.Text)) 以下の 3 つの例では、マルチライン エディット コントロール mle_EmpAddress に Boston Street というテキストが格納されているとし ます。 次のステートメントは、ost という文字列を選択し、3 を返します。 mle_EmpAddress.SelectText(2, 3) 次のステートメントは、oston Street という文字列を選択し、12 を返し ます。 mle_EmpAddress.SelectText(2, & Len(mle_EmpAddress.Text)) 次のステートメントは、Bos という文字列を選択し、3 を返します。さ らに、Bos がハイライト表示されるように、mle_EmpAddress にフォーカ スを設定します。 mle_EmpAddress.SelectText(1, 3) mle_EmpAddress.SetFocus() 関連項目 Len Position SelectedItem SelectedText SetFocus TextLine PowerScript リファレンス ボリューム 2 1029 SelectText 構文 2 リッチテキスト エディット コントロールとリッチテ キスト エディット提示様式のオブジェクトからテキ ストを選択する 機能 リッチテキスト エディット コントロール内の指定された行と文字位 置から始まるテキスト、または指定された行と文字位置で終了するテ キストを選択します。 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.SelectText ( fromline, fromchar, toline, tochar { band } ) 引数 rtename fromline fromchar toline tochar band (オプション) 説明 リッチテキスト エディット コントロール、またはデータ ウィンドウ コントロールの名前を指定します。指定された コントロールのテキストを選択します。データウィンドウ コントロールのデータウィンドウ オブジェクトは、リッチ テキスト エディット データウィンドウでなければなりま せん。 Long 型の値。選択範囲の先頭の行番号を指定します。 Long 型の値。選択範囲の先頭の文字の位置を指定します。 Long 型の値。選択範囲の最後の行番号を指定します。挿 入ポイントを指定する場合、toline と tochar に 0 を指定し ます。 Long 型の値。選択範囲の最後の文字の位置を指定します。 Band カタログ データ型の値。テキストを選択する区域を 指定します。値は以下のとおりです。 • Detail! • Header! • Footer! 特に指定しない限り、挿入ポイントがある区域のテキスト が選択されます。 戻り値 Long 型。選択された文字数を返します。エラーが発生した場合、1 を 返します。また、引数のいずれかの値が NULL の場合、NULL を返します。 解説 挿入ポイントは選択範囲の末尾に設定されます。つまり、toline と tochar に指定された位置に設定されます。toline と tochar に指定された 位置が、fromline と fromchar に指定された位置よりも前の場合、挿入 ポイントは選択範囲の先頭に設定されます。 選択を行う場合に、文字位置として 0 を指定することはできません。 1030 PowerBuilder 第 10 章 PowerScript の関数 選択を行う場合に、Position 関数から返された値を使用できないことも あります。挿入ポイントが行の先頭に設定されている場合、Position 関 数は文字位置として 0 を返します。 行全体を選択する場合、挿入ポイントを適切な位置に設定して SelectTextLine 関数を呼び出します。行の残りの部分を選択する場合、 挿入ポイントを適切な位置に設定し、行の長さより大きい値の文字位 置を指定して SelectText 関数を呼び出します。 例 次のステートメントは、リッチテキスト エディット コントロールの 1 文字目から 3 行目の 4 文字目までのテキストを選択します。 rte_1.SelectText(1,1, 3,4) 次のステートメントは、2 行目の先頭に挿入ポイントを設定します。 rte_1.SelectText(2,1, 0,0) 次の例は、文字数として大きい値を指定して 2 行目の末尾に挿入ポイ ントを設定します。選択範囲は、行の末尾を越えて拡張されます。 rte_1.SelectText(2,999, 0,0) 次の例は、行の実際の長さを確認して 2 行目の末尾に挿入ポイントを 設定します。この例では、挿入ポイントを行の先頭に設定し、行の長 さを確認した後で行の末尾に挿入ポイントを設定します。 long ll_length // 2 行目を現行の行にします。 rte_1.SelectText(2,1, 0,0) // 末尾の文字の次の位置を指定します。 ll_length = rte_1.LineLength() + 1 // 挿入ポイントを末尾の文字位置に設定します。 rte_1.SelectText(2,ll_length, 0,0) rte_1.SetFocus() 次の例は、現行の挿入ポイントから現行の行の末尾までのテキストを 選択します。現行の行が最終行の場合、返される行の長さは選択でき る文字数より 1 だけ大きい値になります。このため、この例では行の 長さを調整しています。 long ll_insertline, ll_insertchar long ll_line, ll_count // 挿入ポイントを取得します。 rte_1.Position(ll_insertline, ll_insertchar) PowerScript リファレンス ボリューム 2 1031 SelectTextAll // 行番号と行の長さを取得します。 ll_line = rte_1.SelectedLine() ll_count = rte_1.LineLength() // 行の長さには、選択できない EOF 文字 // が含まれます。 IF ll_line = rte_1.LineCount() THEN ll_count -= 1 // 挿入ポイントから // 行末までを選択します。 rte_1.SelectText(ll_insertline, ll_insertchar, & ll_line, ll_count) 関連項目 SelectedText SelectTextAll SelectTextLine SelectTextWord SelectTextAll 機能 キャリッジ リターン(CR)、ライン フィード(LF)、エンド オブ ファ イル(EOF)などの特殊文字を含めて、リッチテキスト エディット コ ントロールのすべての内容を選択します。 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.SelectTextAll ( { band } ) 引数 rtename band (オプション) 説明 すべての内容を選択するリッチテキスト エディット コン トロールまたはデータウィンドウ コントロールの名前を 指定します。データウィンドウ コントロールのデータウィ ンドウ オブジェクトは、リッチテキスト エディット デー タウィンドウでなければなりません。 すべてのテキストを選択する区域を指定する Band カタロ グ データ型の値。値は以下のとおりです。 • Detail! • Header! • Footer! 特に指定しない限り、挿入ポイントがある区域のテキスト が選択されます。 1032 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。選択された文字数を返します。エラーが発生した場合、-1 を返します。 例 次のステートメントは、詳細区域のすべてのテキストを選択します。 rte_1.SelectTextAll() 次のステートメントは、ヘッダ区域のすべてのテキストを選択します。 rte_1.SelectTextAll(Header!) 関連項目 SelectedText SelectText SelectTextLine SelectTextWord SelectTextLine 機能 リッチテキスト エディット コントロールで挿入ポイントがある行を 選択します。 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.SelectTextLine ( ) 引数 rtename 説明 行を選択するリッチテキスト エディット コントロールま たはデータウィンドウ コントロールの名前を指定します。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は選択された文字数を返し、エラーが 発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールに選択範囲が含まれている 場合、挿入ポイントはその選択範囲の先頭または末尾にあります。挿 入ポイントの位置は、テキストの選択方法によって異なります。エン ド ユーザが文末に向かって選択した場合、選択範囲の最後の行が選択 されます。エンド ユーザが文頭に向かって選択した場合、選択範囲の 最初の行が選択されます。 SelectTextLine 関数は、行末文字(Windows ではキャリッジ リターンと ライン フィード、UNIX ではライン フィード)を選択しません。 PowerScript リファレンス ボリューム 2 1033 SelectTextWord 例 次のステートメントは、現行の行を選択します。 rte_1.SelectTextLine() 関連項目 SelectedText SelectText SelectTextAll SelectTextWord SelectTextWord 機能 リッチテキスト エディット コントロールで挿入ポイントがある単語 を選択します。 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.SelectTextWord ( ) 引数 rtename 戻り値 説明 単語を選択するリッチテキスト エディット コントロール またはデータウィンドウ コントロールの名前を指定しま す。データウィンドウ コントロールのデータウィンドウ オブジェクトは、リッチテキスト エディット データウィ ンドウでなければなりません。 Integer 型。正常に終了した場合、選択された文字数を返します。単語 が選択できない場合、またはエラーが発生した場合には -1 を返しま す。 解説 単語は英数字の任意のグループです。単語には下線と単引用符を含め ることができますが、句読点や、$、# などの特殊文字を含めることは できません。選択された単語の後に句読点や特殊文字がある場合、句 読点や特殊文字は選択されません。 挿入ポイントの後にある文字が空白、句読点、特殊文字、または行末 記号の場合、SelectTextWord 関数は何も選択せずに -1 を返します。 例 次のステートメントは、挿入ポイントがある単語を選択します。 rte_1.SelectTextWord() 1034 PowerBuilder 第 10 章 PowerScript の関数 次の例は、挿入ポイントがある位置で単語を選択します。単語がない 場合は、単語が見つかるまで挿入ポイントの位置を移動します。単語 を検索しながら、行の終わりに到達したことをチェックし、次の行へ と折り返します。このスクリプトがコマンドボタンに割り当てられて いる場合に、そのボタンが繰り返しクリックされると、単語から単語 へと選択範囲が移動していきます。 integer li_rtn long llstart, lcstart, ll_lines, ll_chars ll_lines = rte_1.LineCount() ll_chars = rte_1.LineLength() li_rtn = rte_1.SelectTextWord() // 挿入ポイントがある位置で単語が見つからない場合、-1 を返します。 DO WHILE li_rtn = -1 // カーソルの位置を取得します。 rte_1.Position(llstart, lcstart) // 次の単語を検索するために、位置に 1 を加算します。 lcstart += 1 // 行の終わりに到達した場合、次の行へ移動します。 IF lcstart >= ll_chars THEN lcstart = 1 // 先頭文字 llstart += 1 // 次の行 // 最後の行を越えた場合、終了します。 IF llstart > ll_lines THEN RETURN 0 END IF END IF // 挿入ポイントを設定します。 rte_1.SelectText(llstart, lcstart, 0, 0) // 挿入ポイントを設定した後で、 // 行の長さを取得します。 ll_chars = rte_1.LineLength( ) // 単語を選択します。 li_rtn = rte_1.SelectTextWord() LOOP // 単語を処理するコードをここに追加します // (たとえば、スペル チェッカーに単語を渡すなど)。 PowerScript リファレンス ボリューム 2 1035 Send 関連項目 SelectedText SelectText SelectTextAll SelectTextLine Send 機能 ウィンドウにメッセージを送信します。メッセージは即時に実行され ます。 構文 Send ( handle, message#, lowword, long ) 引数 handle message# lowword long 説明 PowerBuilder またはほかのアプリケーションで生成された ウィンドウのハンドルを表す Long 型を指定します。指定 したハンドルのウィンドウに対して、メッセージが送信さ れます。 送信するメッセージ番号を表す UnsignedInteger 型を指定 します。 送信するメッセージの整数値を表す Long 型の値を指定し ます。メッセージがこの引数を使用しない場合は、0 を指 定します。 送信するメッセージが使用する Long 型の値または文字列 を指定します。 戻り値 Long 型。正常に終了した場合は Windows の SendMessage から返された 値を返し、エラーが発生した場合は -1 を返します。引数のいずれかの 値が NULL の場合、NULL を返します。 解説 PowerBuilder の Send 関数は、message# で識別されたメッセージとオプ ションの lowword および long を handle で指定されたウィンドウに送信 し、Windows の SendMessage 関数に処理を依頼します。オブジェクト のメッセージ キューをバイパスしてメッセージはオブジェクトに直 接送信されます。メッセージが処理され、SendMessage 関数の戻り値 を取得するまで、Send 関数は待ち状態になります。 1036 PowerBuilder 第 10 章 PowerScript の関数 Windows のメッセージ PowerBuilder オブジェクトの Windows ハンドルを取得するには、 Handle 関数を使用します。 Windows のメッセージは、番号で指定します。詳細については、 Microsoft Windows Software Development Kit(SDK)や、ほかの Windows 開発キット内の WINDOWS.H ファイルを参照してください。 メッセージの追加 Send 関数を使用してメッセージを送信すると、即時に実行されます。 メッセージをオブジェクトのメッセージ キューの一番後ろに入れる には、Post 関数を使用してください。 例 次のステートメントは、ダイアログボックス w_emp を 1 ページスク ロールアップします。 Send(Handle(w_emp), 277, 2, 0) 次の 2 つのステートメントは、どちらもコマンドボタン cb_OK をク リックします。 Send(Handle(Parent), 273, 0, Handle(cb_OK)) cb_OK.TriggerEvent(Clicked!) 次の例では、Send 関数を使用してデータウィンドウを最大化または最 小化し、そのデータウィンドウを標準に戻します。Send 関数を使用し て上記の操作を行うメッセージを送る前に、データウィンドウ コント ロールの TitleBar、Minimize、Maximize の各プロパティを使用可能に してください。また、データウィンドウ コントロールに最小化のアイ コンを与えてください。 次のステートメントは、データウィンドウを最小化します。 Send(Handle(dw_whatever), 274, 61472, 0) 次のステートメントは、データウィンドウを最大化します。 Send(Handle(dw_whatever), 274, 61488, 0) 次のステートメントは、データウィンドウを標準の定義されたサイズ にします。 Send(Handle(dw_whatever), 274, 61728, 0) PowerScript リファレンス ボリューム 2 1037 SeriesCount MultiSelect プロパティが TRUE のリストボックスがあるとします。 Send 関数で、リストボックスで最後にクリックされた項目を調べる メッセージを送ります。次の例は、リストボックス コントロールの SelectionChanged イベントに対するスクリプトです。LB_GETCURSEL は、リストボックスのインデックスを返します。LB_GETCURSEL が返 すインデックス値は、0 から始まります。したがって、PowerBuilder 上 のリストボックスの項目番号を取得するには、次のステートメントの ように Send 関数からの戻り値に 1 を加算します。次の例では、idx は ウィンドウの整数型のインスタンス変数です。 // LB_GETCURSEL の Windows メッセージを // リストボックスに送信します idx = Send(Handle(This), 1033, 0, 0) idx = idx + 1 関連項目 Handle Post SeriesCount 機能 グラフのデータ系列の数を返します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SeriesCount ( { graphcontrol } ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) 説明 データ系列の数を調べるグラフ コントロールの名前、また はそのグラフ コントロールのあるデータウィンドウ コン トロールの名前を指定します。 String 型の値。データウィンドウ コントロールのグラフの 名前を指定します。指定されたグラフのデータ系列の数を 調べます。 戻り値 Integer 型。正常に終了した場合はグラフのデータ系列の数を返し、エ ラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の 場合、NULL を返します。 例 次のステートメントは、グラフ gr_product_data のデータ系列の数を変 数 li_series_count に格納します。 1038 PowerBuilder 第 10 章 PowerScript の関数 integer li_series_count li_series_count = gr_product_data.SeriesCount() 次のステートメントは、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers のデータ系列の数を、変数 li_series_count に格 納します。 integer li_series_count li_series_count = & dw_equipment.SeriesCount("gr_computers") 関連項目 CategoryCount DataCount SeriesName 機能 指定したデータ系列の番号に対応するデータ系列の名前を取得しま す。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SeriesName ( { graphcontrol, } seriesnumber ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesnumber 説明 グラフ コントロールの名前、またはグラフのあるデータ ウィンドウ コントロールの名前を指定します。そのグラフ の中のデータ系列の名前を取得します。 String 型の値。データウィンドウ コントロールのグラフの 名前を指定します。指定されたグラフのデータ系列の名前 を調べます。 名前を取得するデータ系列の番号を指定します。 戻り値 String 型。指定されたデータ系列に割り当てられた名前を返します。エ ラーが発生した場合、空の文字列("")を返します。引数のいずれか の値が NULL の場合、NULL を返します。 解説 データ系列には、1 から SeriesCount 関数で返される値まで、連続した 番号が付けられています。データ系列を 1 つ削除すると、連続した番 号を付けるために、データ系列の番号は付け直されます。SeriesName 関数を使用して、指定したデータ系列の番号に対応するデータ系列の 名前を取得することができます。 PowerScript リファレンス ボリューム 2 1039 SeriesName 例 次のステートメントは、グラフ gr_product_data のデータ系列番号 5 の 名前を変数 ls_SeriesName に格納します。 string ls_SeriesName ls_SeriesName = gr_product_data.SeriesName(5) 次のステートメントは、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers のデータ系列番号 5 の名前を変数 ls_SeriesName に格納します。 string ls_SeriesName ls_SeriesName = & dw_equipment.SeriesName("gr_computers", 5) 関連項目 1040 CategoryName DeleteSeries FindSeries PowerBuilder 第 10 章 PowerScript の関数 SetAbort トランザクション サーバ上のトランザクションをロールバックする 必要があることを宣言します。 トランザクションのロールバック OLETxnObject オブジェクトのトランザクションをロール バックする TransactionServer オブジェクトのトランザクションをロー ルバックする 使用する構文 構文 1 構文 2 構文 1 OLETxnObject オブジェクトのトランザクションを ロールバックする 機能 現行のトランザクションをロールバックする必要があることを宣言し ます。 対象 OLETxnObject オブジェクト 構文 oletxnobject.SetAbort ( ) 引数 oletxnobject 説明 COM オブジェクトに接続されている OLETxnObject の名 前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 クライアントから SetAbort 関数を呼び出すと、COM+ トランザクショ ンを強制的にロールバックできます。デフォルトでは、COM+ サーバ 上のトランザクションのすべての参加者が SetComplete 関数または EnableCommmit 関数を呼び出している場合に、トランザクションを完 了します。 例 以下に、データベースの更新を実行するコンポーネントのメソッドに おける SetAbort 関数の使用例を示します。 integer li_rc OleTxnObject lotxn_obj lotxn_obj = CREATE OleTxnObject li_rc = lotxn_obj.ConnectToNewObject("pbcom.n_test") IF li_rc <> 0 THEN Messagebox( " 接続エラー ", string(li_rc) ) // エラーを処理します。 END IF PowerScript リファレンス ボリューム 2 1041 SetAbort lotxn_obj.f_dowork() lotxn_obj.f_domorework() IF /* クライアントの要求を満たしているかどうかのテスト */ THEN lotxn_obj.SetComplete() ELSE lotxn_obj.SetAbort() END IF lotxn_obj.DisconnectObject() 関連項目 SetComplete 構文 2 TransactionServer オブジェクトのトランザクション をロールバックする 機能 コンポーネントが現行のトランザクションの作業を完了することがで きず、このトランザクションをロールバックする必要があることを宣 言します。メソッドが復帰するとコンポーネントのインスタンスは非 アクティブ化されます。 対象 TransactionServer オブジェクト 構文 transactionserver.SetAbort ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SetAbort 関数は、EAServer における rollbackWork トランザクション プリ ミティブに相当します。 ト ラ ン ザ ク シ ョ ン に 参 加 し て い る す べ て の コ ン ポ ー ネ ン ト は、 rollbackWork プリミティブを呼び出すことによってトランザクション をロールバックすることができます。EAServer がトランザクションを コミットするタイミングを決定するのは、ルート コンポーネント(ト ランザクションを開始したコンポーネント インスタンス)のアクショ ンだけです。 1042 PowerBuilder 第 10 章 PowerScript の関数 例 以下に、データベースの更新を実行するコンポーネントのメソッドに おける SetAbort 関数の使用例を示します。 // インスタンス変数: // DataStore ids_datastore // TransactionServer ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer", ts) IF li_rc <> 1 THEN // エラーを処理します。 END IF ... ... ll_rv = ids_datastore.Update() IF ll_rv = 1 THEN ts.SetComplete() ELSE ts.SetAbort() END IF 関連項目 DisableCommit EnableCommit IsInTransaction IsTransactionAborted Lookup SetComplete Which PowerScript リファレンス ボリューム 2 1043 SetAlignment SetAlignment 機能 リッチテキスト エディット コントロールで選択されている段落の配 置を設定します。 対象 リッチテキスト エディット コントロール 構文 rtename.SetAlignment ( align ) 引数 rtename align 説明 選択されている段落の配置を設定するリッチテキスト エ ディット コントロールの名前を指定します。 段落の配置方法を指定する Alignment カタログ データ型 の値。値は以下のとおりです。 • Left! − 左揃え • Right! − 右揃え • Center! − 中央揃え • Justify! − 両端揃え 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例は、リッチテキスト エディット コントロール rte_1 で選択され ている段落の配置を設定します。 integer li_success li_success = rte_1.SetAlignment(Right!) 関連項目 1044 GetAlignment GetSpacing GetTextStyle SetSpacing SetTextStyle PowerBuilder 第 10 章 PowerScript の関数 SetArgElement 機能 指定した引数要素に値を設定します。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.SetArgElement ( index, argument ) 引数 activexcontrol 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、これはオブジェク ト要素の NAME 属性です。そのほかの環境で使用する場 合には、これは PowerBuilder ウィンドウ ActiveX を含むコ ントロールを参照します。 index Integer 型の値。引数の配置を指定します。 任意の型の引数値を指定します。 argument 戻り値 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 この関数は、InvokePBFunction 関数または TriggerPBEvent 関数より前に 呼び出して、渡される関数の引数を指定する必要があります。 JavaScript スクリプトは、この関数を使用して関数とイベントの引数を 指定しなければなりません。VBScript スクリプトは、この関数を使用 するか、または引数配列を直接指定することができます。 例 次の JavaScript の例は、SetArgElement 関数を呼び出します。 function triggerEvent(f) { var retcd; var rc; var numargs; var theEvent; var theArg; retcd = 0; numargs = 1; theArg = f.textToPB.value; PBRX1.SetArgElement(1, theArg); theEvent = "ue_args"; retcd = PBRX1.TriggerPBEvent(theEvent, numargs); ... 関連項目 GetArgElement GetLastReturn InvokePBFunction TriggerPBEvent PowerScript リファレンス ボリューム 2 1045 SetAutomationLocale SetAutomationLocale 機能 OLE オブジェクトのオートメーション プログラミングに使用される 言語を設定します。スクリプトで、エンド ユーザの言語と異なる言語 を使用してオートメーション コマンドを記述した場合に、この関数を 呼び出してください。 対象 OLE オブジェクト 構文 olename.SetAutomationLocale ( language, sortorder ) 引数 olename language 説明 オートメーション言語を設定するオブジェクトの名前を 指定します。 LanguageID カタログ データ型の値。オートメーション コ マンドに使用した言語を指定します。OLE サーバには、指 定された言語で定義された関数名やプロパティ名が必要 です。 通常、次のような LanguageID を指定します。 • LanguageNeutral! − 言語は特に指定されていません。 オートメーション コマンドとサーバの標準のコマンド セットは一致していません。 • LanguageUserDefault! − エンド ユーザのコントロール パネルの地域設定を使用します。 • LanguageSystemDefault! − エンド ユーザのローカル マ シンにインストールされた Windows システムで使用さ れている言語を使用します。 LanguagePolish! や LanguagePortuguese_Brazilian! など、 言語や方言を指定することもできます。 sortorder LanguageID の特定の言語の値については、PowerBuilder のブラウザを参照してください。 LanguageSortID カタログ データ型の値。言語のソート順を 指定します。値は以下のとおりです。 • LanguageSortNative! − 選択された言語の一般的なソー ト順 • LanguageSortUnicode! − Unicode で定義されたソート順 戻り値 1046 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 ほとんどの場合、SetAutomationLocale 関数を呼び出す必要はありませ ん。オートメーション コマンドが実行できなかった場合、PowerBuilder は Error イベントを起動する前に別の言語で実行しようとします。 PowerBuilder がコマンドを実行するときに使用する言語は、次のとお りです。 1 サーバが理解する言語のコマンド(標準のコマンド) 2 現行の言語(エンド ユーザがコントロール パネルで設定した言語 と異なる場合) 3 エンド ユーザがコントロール パネルで設定した言語 (LanguageUserDefault!) 4 システムで使用されている言語(LanguageSystemDefault!) 5 英語(LanguageEnglish!) PowerBuilder が上記のいずれかの言語で名前の妥当性検査に成功した 場合、成功した値で言語を再設定します。したがって、OLE サーバに 設定されている言語とは異なる言語を設定してしまう可能性がありま す。ただし Microsoft Office 製品の場合は、通常、出荷されている地域 の言語と英語の両方の言語に対応しているので、動作に支障はないで しょう。 SetAutomationLocale 関数で指定した言語に OLE サーバが対応していな い場合に、動作する言語を上記の方法で検索できなかったときは、OLE オートメーション コマンドは実行できません。このような場合には、 SetAutomationLocale 関数を使用して正しい言語を設定してください。 例 次の例は、oleobj_report という OLEObject の言語をドイツ語に設定しま す。 oleobj_report.SetAutomationLocale(LanguageGerman!) 次の例は、OLE コントロール ole_1 の言語をドイツ語に設定します。 ole_1.Object.SetAutomationLocale(LanguageGerman!) PowerScript リファレンス ボリューム 2 1047 SetAutomationPointer SetAutomationPointer 機能 OLEObject オブジェクトのオートメーション ポインタを別のオブジェ クトのオートメーション ポインタの値に設定します。 対象 OLEObject 構文 oleobject.SetAutomationPointer ( object ) 引数 oleobject object 戻り値 説明 OLEObject 変数の名前を指定します。この変数のオート メーション ポインタを設定します。OLE コントロールの Object プロパティである OLEObject を指定することはで きません。 oleobject で指定したポインタ値を設定するために使用す るオートメーション ポインタを格納している OLEObject 変数の名前を指定します。 Integer 型。 正常に終了した場合は 0 を返し、有効な OLE オートメーショ ン ポインタがオブジェクトに含まれていない場合は -1 を返します。 解説 SetAutomationPointer 関数は、OLE が使用する基底のオートメーション ポインタを OLEObject の子孫に割り当てます。 例 次の例は、OLEObject 変数を作成し、ConnectToNewObject 関数を呼び出 して新規の Excel オブジェクトを作成し、そのオブジェクトに接続し ます。また、OLEObject の子孫である oleobjectchild 型のオブジェクト を作成し、 子孫オブジェクトのオートメーション ポインタを OLEObject オブジェクト内のオートメーション ポインタの値に設定します。次 に、子孫オブジェクトを使用してワークシート内の値を設定し、それ を別のファイルに保存してから両方のオブジェクトを破棄します。 OLEObject ole1 oleobjectchild oleChild integer rs ole1= CREATE OLEObject rs = ole1.ConnectToNewObject("Excel.Application") oleChild = CREATE oleobjectchild rs = oleChild.SetAutomationPointer(ole1 ) IF ( rs = 0 ) THEN oleChild.workbooks.open("d:\temp\expenses.xls") oleChild.cells(1,1).value = 11111 oleChild.activeworkbook.saveas( & "d:\temp\newexp.xls") oleChild.activeworkbook.close() oleChild.quit() 1048 PowerBuilder 第 10 章 PowerScript の関数 END IF ole1.disconnectobject() DESTROY oleChild DESTROY ole1 SetAutomationTimeout 機能 PowerBuilder クライアントがサーバに対する OLE プロシージャ コー ルを取り消すまでに待つ時間をミリ秒単位で設定します。 対象 OLEObject オブジェクト 構文 oleobject.SetAutomationTimeout ( interval ) 引数 oleobject interval 説明 タイムアウト期間を設定するオブジェクトを格納してい る OLEObject 変数を指定します。 32 ビットの Long 型の符号付き整数値。PowerBuilder のク ライアントがプロシージャ コールを取り消すまでに待つ 時間の長さをミリ秒単位で指定します。デフォルト値は 300,000 ミリ秒(5 分)です。0 または負の値を指定した場 合、interval はデフォルト値にリセットされます。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 この関数は、interval の値を PowerBuilder の IMessageFilter インタフェー スの実装に渡し、PowerBuilder が OLE プロシージャ コールを試行する 時間の長さを決定します。値は、PowerBuilder が OLE クライアントの 場合にだけ適用され、PowerBuilder が OLE サーバの場合には適用され ません。 デフォルトのタイムアウト期間 ほとんどの場合、SetAutomationTimeout 関数を呼び出す必要はありませ ん。通常は、デフォルトのタイムアウト期間である 5 分が適切です。 特定の OLE リクエストが 5 分より長くかかると予想される場合は、 SetAutomationTimeout 関数を使用してデフォルトのタイムアウト期間を 変更してください。 タイムアウト期間が短すぎる場合、PowerBuilder アプリケーション実 行 エ ラ ー R0035 が 発 生 す る 場 合 が あ り ま す。こ の よ う な 場 合 は、 SetAutomationTimeout 関数を使用してタイムアウト期間を延長します。 PowerScript リファレンス ボリューム 2 1049 SetAutomationTimeout タイムアウト期間が満了した場合、実行時エラー 1037 が発生します。 このエラーを処理するためのコードを追加してください。通常は、サー バがハングアップしていることを示すだけです。トランザクションを 取り消すと、サーバとオペレーティング システムの両方でしばしばメ モリ リークが発生することに注意してください。 SetAutomationTimeout 関数で指定する値は、ほかのオブジェクトに関連 する呼び出しを含め、現行のセッションのすべての OLE トランザク ションに適用されます。 例 次の例は、ConnectToObject 関数を呼び出して Excel ワークシートに接続 し、タイムアウト期間を 900,000 ミリ秒(15 分)に設定します。 OLEObject ole1 integer rs long interval interval = 900000 ole1 = create OLEObject rs = ole1.ConnectToObject("Excel.Application") rs = ole1.SetAutomationTimeOut(interval) 1050 PowerBuilder 第 10 章 PowerScript の関数 SetBoldDate 機能 指定した日付を太字で表示します。 対象 月表示カレンダ コントロール 構文 controlname.SetBoldDate ( d, onoff {, rt } ) 引数 controlname d onoff 説明 太字の日付を設定する月表示カレンダ コントロールの名 前を指定します。 太字が設定される日付を指定します。 Boolean 型の値。日付を太字にするかどうかを指定します。 値は以下のとおりです。 TRUE − 日付を太字にします。 FALSE − 日付の太字設定を解除します。 rt (オプション) MonthCalRepeatType カタログ データ型変数の値。値は以下 のとおりです。 Once! − 指定した日付の太字を設定または解除します (デフォルト)。 Monthly! − 指定した日付の日の部分を使用して、すべ ての月で、特定の日だけ太字を設定または解除します。 Yearly! − 指定した日付の日と月の部分を使用して、す べての年でその特定の日付だけ太字を設定または解除 します。 戻り値 解説 Integer 型。正常に終了した場合は 0 を返します。失敗した場合は、次 のいずれかの負の値を返します。 -1 無効な引数が指定されました。 -2 不明なエラーです。 SetBoldDate 関数を使用して、記念日など、特定の日付を太字で表示す るように指定できます。指定した日付が太字に設定されている場合は、 2 番 目 の パ ラ メ ー タ と し て FALSE を 渡 す と 太 字 を 解 除 で き ま す。 ClearBoldDates 関数は、このような設定をすべて解除します。 例 次の例では、mcVacation コントロールで 2005 年 1 月 5 日に太字を設定 します。 integer li_return Date d d = date("2005/01/05") li_return = mcVacation.SetBoldDate( d, true) PowerScript リファレンス ボリューム 2 1051 SetBoldDate 次の例では、mcVacation コントロールで毎月 5 日に太字を設定します。 integer li_return Date d d = date("2005/01/05") li_return = mcVacation.SetBoldDate( d, true, Monthly!) 次の例では、mcVacation コントロールで毎年 1 月 5 日に太字を設定し ます。 integer li_return Date d d = date("2005/01/05") li_return = mcVacation.SetBoldDate( d, true, Yearly!) 次の例は、mcVacation コントロールでの毎月 5 日の太字設定を解除し ます。 integer li_return Date d d = date("2005/01/05") li_return = mcVacation.SetBoldDate( d, false, Monthly!) 関連項目 1052 ClearBoldDates PowerBuilder 第 10 章 PowerScript の関数 SetColumn 機能 データウィンドウ コントロール、子データウィンドウ、または リスト ビュー コントロールのカラム情報を設定します。 データウィンドウまたは子データウィンドウの場合の構文について は、『データウィンドウ リファレンス』マニュアルまたはオンライン ヘルプの「SetColumn メソッド」を参照してください。 対象 リストビュー コントロール 構文 listviewname.SetColumn ( index, label, alignment, width ) 引数 listviewname index label alignment 説明 リストビュー コントロールの名前を指定します。そのコン トロールのカラムのプロパティを設定します。 プロパティを設定するカラムの番号を指定します。 プロパティを設定するカラムのラベルを指定します。 Alignment カタログ データ型の値。カラムの配置を指定し ます。値は以下のとおりです。 • Left! − 左揃え • Right! − 右揃え • Center! − 中央揃え width • Justify! − SetColumn 関数では無効です。 プロパティを設定するカラムの幅を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SetColumn 関数は、レポート ビューだけで使用できます。 例 次の例は、リストビュー コントロールの 2 番目のカラムのプロパティ を設定します。 lv_list.SetColumn(2 , "Order" , Center! , 800) 関連項目 AddColumn AddItem SetItem PowerScript リファレンス ボリューム 2 1053 SetComplete SetComplete トランザクション サーバ上のトランザクションをコミットする必要 があることを宣言します。 トランザクションのコミット OLETxnObject オブジェクトのトランザクションをコミッ トする TransactionServer オブジェクトのトランザクションをコ ミットする 使用する構文 構文 1 構文 2 構文 1 OLETxnObject オブジェクトのトランザクションを コミットする 機能 現行のトランザクションをコミットする必要があることを宣言しま す。 対象 OLETxnObject オブジェクト 構文 oletxnobject.SetComplete ( ) 引数 oletxnobject 説明 COM オブジェクトに接続されている OLETxnObject の名 前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 クライアントから SetComplete 関数を呼び出すと、COM+ サーバ上の トランザクションのすべての参加者が SetComplete 関数または EnableCommmit 関数を呼び出している場合に、COM+ トランザクション を完了することができます。DisableCommit 関数または SetAbort 関数を 呼び出している参加者が 1 人でもいれば、トランザクションは完了さ れません。 例 以下は、データベースの更新を実行するコンポーネントのメソッドに おける SetComplete 関数の使用例を示しています。 integer li_rc OleTxnObject lotxn_obj lotxn_obj = CREATE OleTxnObject li_rc = lotxn_obj.ConnectToNewObject("pbcom.n_test") IF li_rc <> 0 THEN Messagebox( " 接続エラー ", string(li_rc) ) 1054 PowerBuilder 第 10 章 PowerScript の関数 // エラーを処理します。 END IF lotxn_obj.f_dowork() lotxn_obj.f_domorework() lotxn_obj.SetComplete() lotxn_obj.DisconnectObject() 関連項目 SetAbort 構文 2 TransactionServer オブジェクトのトランザクション をコミットする 機能 コンポーネントが参加しているトランザクションをコミットし、コン ポーネントのインスタンスを非アクティブ化する必要があることを宣 言します。 対象 TransactionServer オブジェクト 構文 transactionserver.SetComplete ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SetComplete 関数は、EAServer における completeWork トランザクション プリミティブに相当します。 ト ラ ン ザ ク シ ョ ン に 参 加 し て い る す べ て の コ ン ポ ー ネ ン ト は、 rollbackWork プリミティブを呼び出すことによってトランザクション をロールバックすることができます。EAServer がトランザクションを コミットするタイミングを決定するのは、ルート コンポーネント(ト ランザクションを開始したコンポーネント インスタンス)のアクショ ンだけです。トランザクションは、次のいずれかの状況が発生したと きにコミットされます。 • ルート コンポーネントが completeWork の状態で復帰し、トランザ クションに参加しているどのコンポーネントも disallowCommit の 状態を設定していない場合 PowerScript リファレンス ボリューム 2 1055 SetComplete • クライアントからの明示的な破棄によって、ルート コンポーネン トが非アクティブ化され、トランザクションに参加しているどの コンポーネントも disallowCommit の状態を設定していない場合(事 前の明示的な破棄要求を伴わないクライアントの接続解除は、常 にロールバックの原因となります) トランザクションの状態のプリミティブは、すべてのコンポーネント で使用できます。コンポーネントが transactional として宣言されていな くてもかまいません。メソッドから completeWork または rollbackWork を 呼び出すと、非アクティブ化のタイミングが早くなります。 例 以下は、データベースの更新を実行するコンポーネントのメソッドに おける SetComplete 関数の使用例を示しています。 // インスタンス変数: // DataStore ids_datastore // TransactionServer ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer", ts) IF li_rc <> 1 THEN // エラーを処理します。 END IF ... ll_rv = ids_datastore.Update() IF ll_rv = 1 THEN ts.SetComplete() ELSE ts.SetAbort() END IF 関連項目 1056 DisableCommit EnableCommit IsInTransaction IsTransactionAborted Lookup SetAbort Which PowerBuilder 第 10 章 PowerScript の関数 SetData 機能 ユニフォーム データ転送を使用して、OLE コントロールに関連付けら れている OLE サーバにデータを設定します。 対象 OLE コントロール、OLE カスタム コントロール 構文 olename.SetData ( clipboardformat, data ) 引数 olename clipboardformat data 説明 データの転送先である OLE サーバに関連付けられている OLE コントロール、または OLE カスタム コントロールの 名前を指定します。 データの形式を指定します。標準の形式は、 ClipboardFormat カタログ データ型の値で指定できます。 また、独自の形式は、文字列で指定します。 ClipboardFormat カタログ データ型の値は、次のとおりです。 ClipFormatBitmap! ClipFormatDIB! ClipFormatDIF! ClipFormatEnhMetafile! ClipFormatHdrop! ClipFormatLocale! ClipFormatMetafilePict! ClipFormatOEMText! ClipFormatPalette! ClipFormatPenData! ClipFormatRIFF! ClipFormatSYLK! ClipFormatText! ClipFormatTIFF! ClipFormatUnicodeText! ClipFormatWave! clipboardformat に指定された値が空の文字列("")または NULL の場合、SetData 関数は ClipFormatText! 形式でデー タを転送します。 String 型または Blob 型の値。転送するデータを指定しま す。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 OLE サーバがサポートしていないクリップボード形式を指定すると、 SetData 関数はエラーを返します。OLE サーバがサポートしている形式 を調べるには、OLE サーバのマニュアルを参照してください。 PowerScript リファレンス ボリューム 2 1057 SetDataDDE SetData 関数は、ユニフォーム データ転送を介して OLE サーバのデー タを取得します。ユニフォーム データ転送とは、Microsoft が定義した もので、コンテナ アプリケーションとの間でデータを交換する機構で す。PowerBuilder では、グローバル ハンドルを介してデータ転送を実 行できます。また、OLE サーバでは、グローバル ハンドルを介した データ転送がサポートされている必要があります。データ転送がサ ポートされていない場合は、そのサーバとの間でデータ転送を行うこ とはできません。 例 2 つの OLE コントロール(Microsoft Word の表と Microsoft Graph)の 間でデータを転送する例については、GetData 関数を参照してくださ い。 関連項目 GetData SetDataDDE 機能 PowerBuilder が DDE サーバとして動作しているとき、DDE クライアン ト アプリケーションにデータを送信します。通常、RemoteRequest イ ベ ン ト に 対 す る ス ク リ プ ト で、SetDataDDE 関 数 を 呼 び 出 し ま す。 RemoteRequest イベントは、クライアント アプリケーションからの DDE データ要求によって発生します。 構文 SetDataDDE ( string {, applname, topic, item } ) 引数 string applname (オプション) topic (オプション) item (オプション) 戻り値 説明 DDE クライアント アプリケーションに送信する文字列を 指定します。 クライアント アプリケーションの DDE 名を指定します。 DDE クライアント アプリケーションが参照する基本デー タのグループを表す文字列を指定します。 文字列(topic 内のデータ)を指定します。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、以下の負の整数のいずれかを返します。値は以下のとおりです。 -1 -2 不正な文脈で関数が呼び出されました。 データが受け入れられません。 引数のいずれかの値が NULL の場合、NULL を返します。 1058 PowerBuilder 第 10 章 PowerScript の関数 解説 PowerBuilder アプリケーションで DDE サーバ モードを使用するため に、StartServerDDE 関数を呼び出します。DDE クライアント アプリケー ションからメッセージを送信して PowerBuilder ウィンドウを起動しま す。DDE サーバが DDE クライアントの要求にどう答えるかを、起動 されたウィンドウのイベントに対するスクリプトに記述します。DDE クライアントが DDE サーバのデータを要求すると、RemoteRequest イ ベントが起動します。通常、ウィンドウの RemoteRequest イベントに 対するスクリプトの中で SetDataDDE 関数を呼び出します。 DDE クライアント アプリケーションが PowerBuilder アプリケーショ ンの中のロケーションとホット リンクを確立している場合、そのロ ケーションに関連付けられるオブジェクトのイベントに対するスクリ プトの中で、SetDataDDE 関数を呼び出すことができます。サーバ アプ リケーションとして、アプリケーションのコントロールにロケーショ ン名をどのようにマッピングするかを決めます。たとえば、DDE loc1 はシングルライン エディット コントロール sle_name を参照するとし ます。また、DDE クライアント loc1 とホット リンクを確立していると します。 sle_name の Modified イベントに対するスクリプトで SetDataDDE 関数を呼び出すと、クライアントは sle_name が変更されるたびに変更 内容を受信します。loc1 がデータウィンドウを参照する場合、データ ウ ィ ン ド ウ の ItemChanged イ ベ ン ト に 対 す る ス ク リ プ ト の 中 で SetDataDDE 関数を呼び出すことができます。 applname は、アプリケーションにチャネルまたはホット リンクを確立 しているクライアント アプリケーションを参照します。topic と item は、サーバ アプリケーションによって認識されるトピックとロケー ションを参照します。それらの引数を指定するだけで、どのクライア ント アプリケーションに対して、何のデータを送信するかを知らせる ことができます。 例 次のステートメントは、ほかの DDE アプリケーションがデータを要求 したときに、RemoteRequest イベントに対するスクリプトで SetDataDDE 関数が使用されるかどうかを示しています。送信されたデータは、シ ングルライン エディット コントロール sle_Address のテキストです。 SetDataDDE(sle_Address.Text) 次のステートメントは、オプション引数を指定した例です。 SetDataDDE(sle_Address.Text, "MYDB", & "Employee", "Address") 関連項目 GetDataDDE StartServerDDE PowerScript リファレンス ボリューム 2 1059 SetDataPieExplode SetDataPieExplode 機能 円グラフから一片を切り離します。そのデータを強調するために、一 片を円の中心から切り離します。複数の円スライス(片)を切り離す ことができます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetDataPieExplode ( { graphcontrol, } seriesnumber, datapoint, percentage ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesnumber datapoint percentage 説明 グラフ コントロールまたはそのグラフを持つデータウィ ンドウ コントロールの名前を指定します。指定されたグラ フ コントロールから、一片を切り離します。 一片を切り離すデータウィンドウ コントロール上のグラ フの名前を表す文字列を指定します。 データ系列を識別する番号を指定します。 切り離すデータ ポイント(一片)の番号を指定します。 一片の中心からの距離と半径の百分率を表す 0 ∼ 100 の数 値を指定します。percentage が 100 の場合、一片の先端が 円周上に位置付けられます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 円グラフ以外のグラフでは、SetDataPieExplode 関数は無効です。 例 次の例は、グラフ内でエンド ユーザがダブルクリックしたときに、ポ インタの下の一片を 50% 離します。次のスクリプトでは、GraphType プロパティをチェックしてそのグラフが円グラフかどうかを確認しま す。次に、ObjectAtPointer 関数を使用してデータ系列とデータ ポイント の値を取得します。この値をチェックしてエンド ユーザが一片をク リックしたことを確認してから、SetDataExplode 関数を使用します。次 の例は、グラフ オブジェクトの DoubleClicked イベントに対するスク リプトです integer series, datapoint grObjectType clickedtype integer percentage percentage = 50 IF (This.GraphType <> PieGraph! AND & 1060 PowerBuilder 第 10 章 PowerScript の関数 This.GraphType <> Pie3D!) THEN RETURN clickedtype = This.ObjectAtPointer( & series, datapoint) IF (series > 0 and datapoint > 0) THEN This.SetDataPieExplode(series, datapoint, & percentage) END IF 関連項目 GetDataPieExplode SetDataStyle グラフのデータ ポイントの外観を指定します。そのデータ ポイントの データ系列に設定されている外観を、SetDataStyle 関数を使用して変更 できます。 目的 データ ポイントの色を設定する データ ポイントの線種と線幅を設定する データ ポイントの塗りつぶしパターンまたはシンボルを 設定する 使用する構文 構文 1 構文 2 構文 3 構文 1 データ ポイントの色を設定する 機能 グラフのデータ ポイントの色を指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, colortype, color ) 引数 controlname graphcontrol (データウィンド ウ コントロール のみ) (オプショ ン) PowerScript リファレンス ボリューム 2 説明 グラフ コントロールの名前、またはグラフがあるデー タウィンドウ コントロールの名前を指定します。その グラフ コントロールのデータ ポイントの色を設定しま す。 データ ポイントの色を設定するデータウィンドウ コン トロールの名前を表す文字列を指定します。 1061 SetDataStyle 引数 seriesnumber datapointnumber colortype 説明 データ ポイントの色を設定するデータ系列の番号を指 定します。 色を設定するデータ ポイントの番号を指定します。 grColorType カタログ データ型の値。色を設定するデータ ポイントの外観を指定します。値は以下のとおりです。 • Foreground! − テキストの色 • Background! − 背景の色 • LineColor! − 線の色 color • Shade! − 影の色(3D グラフ、立体のオブジェクトを 持ったグラフ) colortype に設定する色を表す Long 型を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 データ系列の外観を変更するには、SetSeriesStyle 関数を使用します。 データ系列に設定された値は、そのデータ系列内のすべてのデータ ポ イントの標準の値となります。 個別のポイントの色をデータ系列の色に戻すには、ResetDataColors 関 数を呼び出します。 データウィンドウ上のグラフでは、PowerBuilder がグラフを描画する前 にグラフ内のデータ ポイントの外観を指定できます。それを行うには、 pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント ス クリプト内から SetDataStyle 関数を呼び出します。pbm_dwngraphcreate イベントは、データウィンドウ オブジェクトにグラフが作成される直 前に起動します。 例 次の例は、グラフ gr_emp_data の Salary という名前のデータ系列内の データ ポイント 6 に対する背景色をチェックします。背景色が赤の場 合、SetDataStyle 関数を使用して黒に設定します。 long color_nbr integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = gr_emp_data.FindSeries("Salary") // 背景色を取得します。 gr_emp_data.GetDataStyle(SeriesNbr, 6, & Background!, color_nbr) // 背景色が赤の場合、黒に変更します。 IF color_nbr = 255 THEN & gr_emp_data.SetDataStyle(SeriesNbr, 6, & Background!, 0) 1062 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは、データウィンドウ コントロール dw_employees にあるグラフ gr_depts の Salary という名前のデータ系列内のデータ ポ イント 6 のテキスト(前景)の色を黒に設定します。 integer SeriesNbr // データ系列の番号を取得します。 SeriesNbr = & dw_employees.FindSeries("gr_depts" , "Salary") // 背景色を設定します。 dw_employees.SetDataStyle("gr_depts" , SeriesNbr, & 6, Background!, 0) 関連項目 GetDataStyle GetSeriesStyle ResetDataColors SeriesName SetSeriesStyle 構文 2 データ ポイントの線種と線幅を設定する 機能 グラフ内のデータ ポイントの線種と線幅を指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, linestyle, linewidth ) 引数 controlname 説明 グラフ コントロールの名前、またはそのグラフがある データウィンドウ コントロールの名前を指定します。 そのグラフ コントロールのデータ ポイントの線種や 線幅を設定します。 データウィンドウ コントロール中の線種と線幅を設定 するグラフの名前を表す文字列を指定します。 graphcontrol (データウィンド ウ コントロールの み)(オプション) seriesnumber データ ポイントの線種や線幅を設定するデータ系列の 番号を指定します。 datapointnumber 線種や線幅を設定するデータ ポイントの番号を指定し ます。 PowerScript リファレンス ボリューム 2 1063 SetDataStyle 引数 linestyle linewidth 説明 WriteMode カタログ データ型の値。値は以下のとおり です。 Continuous! Dash! DashDot! DashDotDot! Dot! Transparent! 線幅をピクセルで表す Integer 型を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 データ系列の外観を変更するには、SetSeriesStyle 関数を使用します。 データ系列に設定された値は、そのデータ系列内のすべてのデータ ポ イントの標準の値となります。 データウィンドウ上のグラフでは、PowerBuilder がグラフを描画する前 にグラフ内のデータ ポイントの外観を指定できます。それを行うには、 pbm_dwngraphcreate をユーザ イベントとして定義して、 そのイベント ス クリプト内から SetDataStyle 関数を呼び出します。 pbm_dwngraphcreate イ ベントは、データウィンドウ オブジェクトにグラフが作成される直前 に起動します。 例 次の例は、データウィンドウ コントロール dw_equipment にあるグラフ gr_computers の Costs という名前のデータ系列内のデータ ポイント 10 に使用されている線種をチェックします。一点鎖線(-•)の場合、 SetDataStyle 関数は線を実線に設定します。線の幅は変わりません。 integer SeriesNbr, line_width LineStyle line_style // データ系列の番号を取得します。 SeriesNbr = dw_equipment.FindSeries( & "gr_computers", "Costs") // 現行の線種を取得します。 dw_equipment.GetDataStyle("gr_computers", & SeriesNbr, 10, line_style, line_width) // 一点鎖線(-•)の場合、実線に変更します。 IF line_style = DashDot! THEN & dw_equipment.SetDataStyle("gr_computers", & SeriesNbr, 10, Continuous!, line_width) 1064 PowerBuilder 第 10 章 PowerScript の関数 関連項目 GetDataStyle GetSeriesStyle SeriesName SetSeriesStyle 構文 3 データ ポイントの塗りつぶしパターンやシンボルを 設定する 機能 データ ポイントの塗りつぶしパターンやシンボルを指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, enumvalue ) 引数 controlname 説明 グラフ コントロールの名前、またはそのグラフがある データウィンドウ コントロールの名前を指定します。 そのデータ ポイントの外観を設定します。 String 型の値。データウィンドウ コントロール上の外 観を設定するグラフの名前を指定します。 graphcontrol (データウィンド ウ コントロールの み)(オプション) seriesnumber データ ポイントの外観を設定するデータ系列の番号を 指定します。 datapointnumber 外観を設定するデータ ポイントの番号を指定します。 PowerScript リファレンス ボリューム 2 1065 SetDataStyle 引数 enumvalue 説明 データ ポイントの外観を設定する FillPattern カタログ データ型または grSymbolType カタログ データ型の値。 次のいずれかの値を指定します。 塗りつぶしのパターンを変更するには、FillPattern カタ ログ データ型の値を指定します。 Bdiagonal! − 左下から右上の斜線 Diamond! Fdiagonal! − 左上から右下の斜線 Horizontal! Solid! Square! Vertical! シンボルの型を変更するには、grSymbolType カタログ データ型の値を指定します。 NoSymbol! SymbolHollowBox! SymbolX! SymbolStar! SymbolHollowUpArrow! SymbolHollowCircle! SymbolHollowDiamond! SymbolSolidDownArrow! SymbolSolidUpArrow! SymbolSolidCircle! SymbolSolidDiamond! SymbolPlus! SymbolHollowDownArrow! SymbolSolidBox! 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 データ系列の外観を変更するには、SetSeriesStyle 関数を使用します。 データ系列に設定された値は、そのデータ系列内のすべてのデータ ポ イントの標準の値となります。 データウィンドウ上のグラフでは、PowerBuilder がグラフを描画する前 にグラフ内のデータ ポイントの外観を指定できます。それを行うには、 pbm_dwngraphcreate をユーザ イベントとして定義して、 そのイベント ス クリプト内から SetDataStyle 関数を呼び出します。 pbm_dwngraphcreate イ ベントは、データウィンドウ オブジェクトにグラフが作成される直前 に起動します。 1066 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、グラフ gr_product_data の Costs という名前のデータ系列内の データ ポイント 10 に使用されている塗りつぶしパターンをチェック します。ダイヤモンド(Diamond!)の場合、塗りつぶしパターンを単 色塗りつぶし(solid!)に変更します。 integer SeriesNbr FillPattern data_pattern // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") // 現行の塗りつぶしパターンを取得します。 gr_product_data.GetDataStyle(SeriesNbr, 10, & data_pattern) // 塗りつぶしパターンがダイヤモンドの場合、単色塗りつぶしに変更 します。 IF data_pattern = Diamond! THEN & gr_product_data.SetDataStyle(SeriesNbr, & 10, Solid!) 関連項目 GetDataStyle GetSeriesStyle SeriesName SetSeriesStyle SetDateLimits 機能 カレンダに、最後の日付と最初の日付を設定します。 対象 月表示カレンダ コントロール 構文 controlname.SetDateLimits ( min, max ) 引数 controlname min max PowerScript リファレンス ボリューム 2 説明 日付の制限を設定する月表示カレンダ コントロールの名 前を指定します。 日付の値。カレンダで参照または表示できる最初の日付と して設定します。 日付の値。カレンダで参照または表示できる最後の日付と して設定します。 1067 SetDropHighlight 戻り値 Integer 型。最初と最後の両方の日付が正常に設定された場合は 0 を返 し、それ以外の場合は次のいずれかの値を返します。 -1 無効な引数が指定されました。 -2 不明なエラーです。 解説 最初と最後の日付を設定するには、SetDateLimits 関数を使用します。 SetDateLimits は、 最初の日付以前の日付を最後の日付として設定してい る場合は、最後の日付を最初の日付として使用し、最初の日付を最後 の日付として使用します。 例 次の例は、コントロールの最初の日付および最後の日付を設定します。 最初の日付には今日の日付を使用し、最後の日付にはエディットマス ク コントロールで指定した日付を使用します。 integer li_return Date mindate, maxdate mindate = Today() maxdate = Date(em_1.Text) li_return = mc_1.SetDateLimits(mindate, maxdate) 関連項目 GetDateLimits SetDropHighlight 機能 ドロップ ターゲットとして指定された項目をハイライト表示します。 対象 ツリービュー コントロール 構文 treeviewname.SetDropHighlight ( itemhandle ) 引数 treeviewname itemhandle 説明 ドラッグ アンド ドロップ操作のターゲットとして項目を ハイライト表示するツリービュー コントロールの名前を 指定します。 ドラッグ アンド ドロップ操作のターゲットとしてハイラ イト表示する項目のハンドルを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ドラッグ操作で、ドロップ ターゲットを指定するのに使用します。 1068 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、ツリービュー コントロールの Clicked イベントを使用して 現行のツリービュー コントロールの項目をドロップ ターゲットとし て設定します。 handle = tv_list.FindItem(CurrentTreeItem!,0) tv_list.SetDropHighlight(handle) 関連項目 FindItem SetItem SetDynamicParm 機能 SQL の OPEN 文または EXECUTE 文で使用される DynamicDescriptionArea の入力パラメータの値を設定します。 関数の使用制限 この関数は、動的 SQL 文の書式 4 だけで使用できます。 構文 DynamicDescriptionArea.SetDynamicParm ( index, value ) 引数 DynamicDescriptionArea index value 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 データを設定する入力パラメータのディスクリ プタを識別する Integer 型を指定します。Index に指定する値は、DynamicDescriptionArea の NumInputs の値以下でなければなりません。 index で指定された入力パラメータのディスク リプタに設定する値を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 SetDynamicParm 関数は、DynamicDescriptionArea 内の入力パラメータの ディスクリプタ配列に、index で識別されるパラメータの値を設定しま す。 SetDynamicParm 関数は、OPEN 文または EXECUTE 文を実行する前に、 DynamicDescriptionArea の入力パラメータのディスクリプタ配列内の パラメータを埋めるために使用します。 PowerScript リファレンス ボリューム 2 1069 SetFirstVisible 例 次のステートメントは、SQLDA の最初の入力パラメータのディスクリ プタに文字列 MA を設定します。 SQLDA.SetDynamicParm(1, "MA") 次のステートメントは、SQLDA の 4 番目の入力パラメータのディスク リプタに数値 01742 を設定します。 SQLDA.SetDynamicParm(4, "01742") 次のステートメントは、SQLDA の 3 番目の入力パラメータのディスク リプタに日付 12-31-2002 を設定します。 SQLDA.SetDynamicParm(3, "12-31-2002") 関連項目 GetDynamicDate GetDynamicDateTime GetDynamicNumber GetDynamicString GetDynamicTime 動的 SQL の使い方 OPEN Cursor SetFirstVisible 機能 指定された項目を、ツリービュー コントロールで最初に表示される項 目として設定します。 対象 ツリービュー コントロール 構文 treeviewname.SetFirstVisible ( itemhandle ) 引数 treeviewname itemhandle 戻り値 1070 説明 最初に表示される項目を設定するツリービュー コント ロールの名前を指定します。 ツリービュー コントロールで最初に表示される項目とし て設定される項目のハンドルを指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 itemhandle に指定されたツリービュー コントロールの項目にフォーカ スを移動し、その項目をツリービュー コントロールの上端までスク ロールするのに使用します。ただし、指定された項目をツリービュー コントロールの上端までスクロールできない場合は、項目リストでで きる限り上端に近い位置までスクロールします。たとえば、ツリー ビュー コントロールの最後の項目が指定された場合は、コントロール の上端までスクロールすることができません。 例 次の例は、現行のツリービュー コントロールの項目を、ツリービュー コントロールで最初に表示される項目として設定します。 long ll_tvi int li_tvret ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) li_tvret = tv_list.SetFirstVisible(ll_tvi) IF li_tvret = -1 THEN MessageBox(" 警告 ", " エラーが発生しました。") END IF 関連項目 FindItem SetItem SetFocus 機能 指定されたオブジェクトまたはコントロールに、フォーカスを設定し ます。 対象 すべてのオブジェクト 構文 objectname.SetFocus ( ) 引数 objectname 戻り値 説明 フォーカスを設定するオブジェクトまたはコントロール の名前を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。objectname が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 1071 SetGlobalProperty 解説 objectname がリストボックス コントロールの場合、SetFocus 関数は最 初の項目のまわりに長方形のフォーカスを表示します。objectname が ドロップダウン リストボックス コントロールの場合、SetFocus 関数は エディット ボックスをハイライト表示にします。リストボックスまた はドロップダウン リストボックス内の項目を選択するには、SelectItem 関数を使用します。 描画オブジェクトにフォーカスを設定することはできません。した がって、SetFocus 関数を使用しても、直線コントロール、楕円コント ロール、長方形コントロール、丸長方形コントロールにフォーカスを 設定することはできません。 例 ウィンドウの Open イベントに対するスクリプトに記述されている次 のステートメントは、lb_Actions の最初の項目にフォーカスを移動しま す。 lb_Actions.SetFocus() 関連項目 SetItem SetState SetTop SetGlobalProperty 機能 SSL グローバル プロパティの値を設定します。 対象 SSLServiceProvider オブジェクト 構文 sslserviceprovider.SetGlobalProperty ( property, value ) 引数 sslserviceprovider 1072 property 説明 SSLServiceProvider サービス インスタンスへの参照を 指定します。 設定する SSL プロパティの名前を指定します。 value サポートされている全 SSL プロパティのリストにつ いては EAServer のマニュアルまたは接続オブジェク トのオンライン ヘルプを参照してください。 String 型。SSL プロパティの値を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Long 型。以下のいずれかの値を返します。 0 -1 -2 -3 -10 -11 解説 正常に終了しました。 不明なプロパティです。 プロパティが読み込み専用です。 プロパティの値が不正です。 EAServer または SSL のエラーが発生しました。 引数リストが不正です。 SetGlobalProperty 関数を使用すると、EAServer に SSL 接続している PowerBuilder クライアントが、グローバル SSL プロパティを設定でき ます。 SSLServiceProvider インタフェースを使って設定されたすべてのプロ パティは、そのクライアントによって確立されたすべての EAServer サーバへの接続に対してグローバルになります。これらのグローバル な設定は、接続オブジェクトまたは JaguarORB オブジェクトのオプ ションとして指定することにより、接続レベルで上書きすることがで きます。 SSL プロパティの取得および設定を行うことができるのは、クライア ントだけです。サーバ コンポーネントには、SSLServiceProvider サービ スを使用する権限がありません。 例 次の例は、SetGlobalProperty 関数を使って、cacheSize プロパティの値を 300 に設定します。 SSLServiceProvider ssl long rc ... this.GetContextService("SSLServiceProvider", ssl) rc = ssl.SetGlobalProperty("cacheSize", "300") ... 関連項目 GetGlobalProperty PowerScript リファレンス ボリューム 2 1073 SetItem SetItem リスト項目の値を設定します。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「SetItem メソッド」を参照してください。 設定する値 リストビュー コントロールの項目の値を設定する リストビュー コントロールの項目とカラムの値を設定す る ツリービュー コントロールの項目の値を設定する 使用する構文 構文 1 構文 2 構文 3 構文 1 リストビュー コントロールの項目にプロパティ値を 設定する 機能 リストビュー コントロールの項目に関連付けられたデータを、 ListViewItem 変数の中に指定されたプロパティ値に設定します。 対象 リストビュー コントロール 構文 listviewname.SetItem ( index, { column }, item ) 引数 listviewname index column item 説明 項目のプロパティを設定するリストビュー コントロール の名前を指定します。 項目のインデックス番号を指定します。指定された項目の プロパティを設定します。 プロパティを設定する項目のカラムのインデックス番号 を指定します。 リストビュー コントロールの項目に割り当てるプロパ ティ値を含む ListViewItem 変数を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 この構文によって、リストビュー コントロールの任意の項目のプロパ ティを設定することができます。カラムを指定しない場合は、項目の 最初のカラムのプロパティが設定されます。レポート ビューの場合の み、複数のカラムが表示されます。 1074 PowerBuilder 第 10 章 PowerScript の関数 リストビュー コントロールに項目を追加するには、AddItem 関数を使 用しま す。リス トビュ ー コン トロー ルにカ ラムを 追加す るには、 AddColumn 関数を使用します。リストビュー コントロールの項目のカ ラムに対する表示値を設定する場合は、構文 2 を使用してください。 配置や幅など、カラムのプロパティを設定したい場合は、SetColumn 関 数を使用してください。これらのカラム プロパティは、ListViewItem オブジェクトとは関連がありません。 リストビュー コントロールの項目に関連付けられたピクチャおよび そのほかのプロパティ値を変更するには、GetItem 関数を使用して値を 取得し、プロパティ値を変更してから、SetItem 関数を使ってリスト ビュー コントロールに変更を適用します。 例 次の例は、SetItem 関数を使用して リストビュー コントロール lv_list 内 で選択されている項目の状態ピクチャ インデックスを変更します。 listviewitem lvi_1 lv_list.GetItem(lv_list.SelectedIndex( ), lvi_1) lvi_1.StatePictureIndex = 2 lv_list.SetItem(lv_list.SelectedIndex () , lvi_1) 関連項目 AddColumn AddItem GetItem SetColumn 構文 2 リストビュー コントロールの特定のカラムの値を設 定する 機能 リストビュー コントロールの項目の特定のカラムの表示値を設定し ます。 対象 リストビュー コントロール 構文 listviewname.SetItem ( index, column, label ) 引数 listviewname index column PowerScript リファレンス ボリューム 2 説明 表示値を設定するリストビュー コントロールの名前を指 定します。 項目のインデックス番号を指定します。指定された項目の 表示値を設定します。 カラムのインデックス番号を指定します。指定されたカラ ムの表示値を設定します。 1075 SetItem 引数 label 説明 リストビュー コントロールの指定された項目の指定され たカラムに割り当てる String 型の値または変数を指定しま す。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 単一カラムのリストビュー コントロールに値を割り当てる場合も、カ ラム番号を引数として指定する必要があります。リストビュー コント ロールの項目のプロパティを指定する場合、構文 1 を使用してくださ い。 例 次の例は、リストビュー コントロール lv_list 内にある既存の 3 つの項 目に対するレポート ビューの 3 つのカラムに表示値を割り当てます。 listviewitem l_lvi integer li_count, li_index FOR li_index = 1 to 3 li_count=li_count+1 lv_1ist.AddItem("Category " + String(li_index), 1) NEXT lv_list.AddColumn("Composition", Left! , 860) lv_list.AddColumn(" Album", Left! , 610) lv_list.AddColumn(" Artist", Left! , 710) lv_list.SetItem(1 , 1 , "St. Thomas") lv_list.SetItem(1 , 2 , "The Bridge") lv_list.SetItem(1 , 3 , "Sonny Rollins") lv_list.SetItem(2 , 1 , "So What") lv_list.SetItem(2 , 2 , "Kind of Blue") lv_list.SetItem(2 , 3 , "Miles Davis") lv_list.SetItem(3 , 1 , "Goodbye, Porkpie Hat") lv_list.SetItem(3 , 2 , "Mingus-Ah-Um") lv_list.SetItem(3 , 3 , "Charles Mingus") 関連項目 1076 GetItem PowerBuilder 第 10 章 PowerScript の関数 構文 3 ツリービュー コントロールの項目の値を設定する 機能 指定された項目に関連付けられているデータを設定します。 対象 ツリービュー コントロール 構文 treeviewname.SetItem ( itemhandle, item ) 引数 treeviewname itemhandle item 説明 ツリービュー コントロールの名前を指定します。指定され たコントロールの特定の項目のデータを設定します。 変更する項目に関連付けられているハンドルを指定しま す。 変更するツリービュー コントロールの項目を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 通常、まず、GetItem 関数を呼び出してデータを編集します。次に、SetItem 関数を呼び出してツリービュー コントロールに変更結果を反映させ ます。 例 次の例は、ItemExpanding イベントを使用してツリービュー コントロー ルの現行の項目のピクチャ インデックスと選択されているピクチャ インデックスを変更します。 treeviewitem l_tvi long ll_tvi ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) tv_list.GetItem(ll_tvi , l_tvi) l_tvi.PictureIndex = 5 l_tvi.SelectedPictureIndex = 5 tv_list.SetItem( ll_tvi, l_tvi ) 関連項目 GetItem PowerScript リファレンス ボリューム 2 1077 SetLevelPictures SetLevelPictures 機能 特定のレベルのすべての項目に、ピクチャ インデックスを設定しま す。 対象 ツリービュー コントロール 構文 treeviewname.SetLevelPictures ( level, pictureindex, selectedpictureindex, statepictureindex, overlaypictureindex) 引数 treeviewname level pictureindex selectedpictureindex statepictureindex overlaypictureindex 説明 ツリービュー コントロールの名前を指定します。この コントロールの指定されたレベルに、ピクチャを設定 します。 ピクチャ インデックスを設定するツリービュー コン トロールのレベルを指定します。 項目が選択されていない場合に表示されるピクチャを 指定する通常のピクチャ リストのインデックスを指定 します。 項目が選択されている場合に表示されるピクチャを指 定する通常のピクチャ リストのインデックスを指定し ます。 通常のピクチャの左に表示されるピクチャを指定する 状態ピクチャ リストのインデックスを指定します。 通常のピクチャの上に表示されるピクチャを指定する オーバーレイ ピクチャ リストのインデックスを指定 します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 個々の項目のピクチャを設定するには、GetItem 関数を呼び出してピク チャ プロパティを設定し、SetItem 関数を呼び出して変更をツリー ビュー コントロールにコピーします。4 つのインデックスをすべて指 定する必要があります。何も表示しない場合は 0 を指定します。 例 次の例は、ツリービュー コントロールのレベル 3 にピクチャを設定し、 次に新しいツリービュー コントロールの項目を 2 つ挿入します。 long ll_tvi, ll_child, ll_child2 int li_pict, li_level treeviewitem l_tvi li_level = 6 tv_list.SetLevelPictures( 3, li_level, li_level, & li_level, li_level) 1078 PowerBuilder 第 10 章 PowerScript の関数 ll_tvi = tv_list.FindItem(RootTreeItem!, 0) ll_child = tv_list.InsertItemLast(ll_tvi, "Walton",2) ll_child2 = tv_list.InsertItemLast(ll_child, & "Spitfire Suite", li_level) tv_list.ExpandItem(ll_child) tv_list.SetFirstVisible(ll_child) 関連項目 AddPicture SetLibraryList 機能 実行時のアプリケーションのライブラリ探索パスのファイルを変更し ます。 構文仕様の変更 従来と同様に、applicationname.SetLibraryList(filelist) 関数の前にアプリ ケーション オブジェクトの名前を指定する古い構文を使用すること もできます。 構文 SetLibraryList ( filelist ) 引数 filelist 戻り値 解説 説明 カンマ(,)で区切られたファイル名のリストを指定しま す。ファイル名は、拡張子を付けた完全な名前で指定しま す。パスを省略すると、PowerBuilder のシステムの検索パ スでそのファイルが検索されます。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 アプリケーションがスタンド アロンではなく、PowerBuilder から 実行されます。 -2 現行のインスタンス化されたオブジェクトは、新しいリスト上に ないライブラリにあります。引数のいずれかの値が NULL の場合、 NULL を返します。 アプリケーションがオブジェクトをロードする場合、PowerBuilder で は、まず実行ファイルが検索され、次にそのアプリケーションに指定 された実行時ライブラリが検索されます。SetLibraryList 関数を使用し て、実行ファイル内で指定されているライブラリ ファイルのリストと は異なるリストを指定することができます。 PowerScript リファレンス ボリューム 2 1079 SetLibraryList 複数のコンポーネントでリソースを共有するときに起こる問題を回避 するには、EAServer に展開するコンポーネントの探索リストに PBD ファイルを追加する際、SetLibraryList のかわりに AddToLibraryList を使用 する必要があります。 SetLibraryList 関数を呼び出すと、実行ファイルに指定されたライブラリ ファイルのリストが新しいファイルのリストに変更されます。たとえ ば、SetLibraryList 関数を使用して、多数のサブシステムを含むアプリ ケーションのライブラリ リストを設定できます。しかしどのような場 合でも、GetLibraryList を使用して現行のライブラリの探索パスを取得し た後、目的のすべてのファイルをこのリストに追加すべきです。その 後、ファイルを追加したリスト全体を filelist 引数に渡します。 PowerBuilder では、指定したライブラリがそのアプリケーションに適 切かどうかチェックされません。それらのライブラリにアプリケー ションが必要とするオブジェクトが存在することを確認してくださ い。 実行ファイルは、常にライブラリ探索パスの最初に指定します。filelist に実行ファイルを含めても無視されます。 PowerBuilder の開発環境でアプリケーションを実行している場合、 SetLibraryList 関数は無効です。 例 次の例は、選択したアプリケーションサブシステムに基づいて、ライ ブラリ探索パスに異なるファイルを指定します。 string ls_list ls_list = getlibrarylist () CHOOSE CASE configuration CASE "Config1" SetLibraryList(ls_list + ",lib1.pbd, lib2.pbd, & lib5.pbd") CASE "Config2" SetLibraryList(ls_list + ",lib1.pbd, lib3.pbd, & lib4.pbd") END CHOOSE 関連項目 1080 AddToLibraryList GetLibraryList PowerBuilder 第 10 章 PowerScript の関数 SetMask 機能 エディットマスク コントロールに、エディットマスクとエディットマ スクのデータ型を設定します。 対象 エディットマスク コントロール 構文 editmaskname.SetMask ( maskdatatype, mask ) 引数 editmaskname maskdatatype 説明 エディットマスクを指定するエディットマスク コント ロールの名前を指定します。 MaskDataType カタログ データ型の値。マスクのデータ型 を指定します。値は以下のとおりです。 • DateMask! • DateTimeMask! • DecimalMask! • NumericMask! • StringMask! • TimeMask! mask エディットマスク コントロールを表す文字列を指定しま す。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 エディットマスクは、固有の文字セットでエンド ユーザが入力できる 文字の種類を表します。また、句読点によって入力値の書式を制御し ます。マスクのデータ型ごとに固有の有効な文字セットがあります。 たとえば、次の例は電話番号を表示する String 型のマスクです。エ ディットマスク コントロールは、エディットマスクの句読点(カッコ とハイフン)をそのまま表示します。# 記号はエンド ユーザが入力す る数字を表していて、数字以外の文字を入力できません。 (###) ###-#### ウィンドウ ペインタ内のエディットマスク コントロールのエディッ トマスクの設定 ダイアログボックスを参照して有効なマスクを指定 してください。エディットマスクの設定 ダイアログボックスの内のリ ストボックスに、それぞれのデータ型に固有のマスク文字の意味と、 マスク文字を使用して定義されたマスクが表示されます。 PowerScript リファレンス ボリューム 2 1081 SetMessage 数値にマスクを指定する場合、書式は U.S. 表記でなければなりません。 つまり、カンマ(,)は 1000 単位の桁区切りを表す書式で、ピリオド (.)は小数点の位置を表す書式です。実行中に適切な位置に記号を表 示します。 エディットマスク コントロールの Spin または UseCodeTable プロパ ティを true に設定してある場合は、SetMask を使用して maskdatatype を 変更することはできません。これらのプロパティのいずれかを true に 設定してある場合は、SetMask を呼び出す前にプロパティの値に false を設定し、その後で値に true を再設定します。 表示書式には色を使用できますが、エディットマスクには色を使用で きません。 例 次のステートメントは、エディットマスク コントロール password_mask のマスクとして、pword_code 内のマスクを設定します。このマスクは、 1 桁の数字の後に任意のデータ型の 4 桁の文字を入力するように、エ ンド ユーザに要求します。 string pword_code pword_code = "#xxxx" password_mask.SetMask(StringMask!, pword_code) 次のステートメントは、エディットマスク password_mask のマスクと して 5 桁の数字マスクを設定します。 password_mask.SetMask(NumericMask!, "#####") SetMessage 機能 Throwable 型のオブジェクトのエラー メッセージを設定します。 構文 throwableobject.SetMessage (newMessage ) 引数 throwableobject newMessage 戻り値 1082 説明 エラー メッセージを設定する Throwable 型のオブジェク トを指定します。 設定するメッセージを含む文字列を指定します。引用符で 囲む必要があります。 なし PowerBuilder 第 10 章 PowerScript の関数 解説 ユーザ定義例外オブジェクトに対してカスタマイズしたメッセージを 設定する場合に使用します。SetMessage 関数を使用して RuntimeError オブジェクトの事前設定されたエラー メッセージを修正することも 可能ですが、このような使用方法はお勧めできません。 例 次のステートメントの例は、Throwable 型のユーザ オブジェクトに対 してメッセージを設定しています。 MyException.SetMessage ("MyException thrown") 次の例は、try-catch ブロック内で、あるユーザ定義関数を対象にして SetMessage 関数を使用しています。このユーザ定義関数は、テキスト ボックスから入力値をとり、その値の逆余弦を別のテキスト ボックス に出力します。 uo_exception lu_error Double ld_num ld_num = Double (sle_1.text) TRY sle_2.text = string (acos (ld_num)) CATCH (runtimeerror er) lu_error = Create uo_exception lu_error.SetMessage("Value must be between -1" +& "and 1") Throw lu_error END TRY 関連項目 GetMessage SetMicroHelp 機能 MDI フレーム ウィンドウのマイクロヘルプに表示されるテキストを 指定します。 対象 MDI フレーム ウィンドウ 構文 windowname.SetMicroHelp ( string ) 引数 windowname string PowerScript リファレンス ボリューム 2 説明 マイクロヘルプを設定する MDI フレーム ウィンドウの名 前を指定します。 新しいマイクロヘルプのテキストを表す文字列を指定し ます。 1083 SetNull 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 コントロールの Tag プロパティは、マイクロヘルプのテキストを格納 するのに便利です。コントロールにフォーカスが移動したときに起動 する GetFocus イベントのスクリプト内で SetMicroHelp 関数を使用する と、ウィンドウ フレーム上のステータスバーに Tag プロパティのテキ ストを表示することができます。 メニューでは、エンド ユーザがメニュー項目を選択すると、PowerBuilder は自動的にメニュー ペインタに指定されているマイクロヘルプ テキ ストを表示します。メニュー項目の Selected イベントに対するスクリ プト内で SetMicroHelp 関数を使用すると、定義されていたマイクロヘ ルプ テキストを無視して、ステータスバーにほかのテキストを表示す ることができます。SetMicroHelp 関数は、定義されていたマイクロヘル プ テキストを変更しません。 例 次のステートメントは、W_New のフレームに表示されたマイクロヘル プを " 選択されたテキストを削除します " に変更します。 W_New.SetMicroHelp(" 選択されたテキストを削除します ") 次の例では、 「ウィンドウを閉じます」という文字列が、W_New のコ マンドボタン cb_done のタグ値として関連付けられています。cb_done の GetFocus イベントに対するスクリプト内で次のステートメントは、 cb_done にフォーカスが移動すると、W_New のマイクロヘルプとして " ウィンドウを閉じます " を表示します。 W_New.SetMicroHelp(This.Tag) SetNull 機能 変数に NULL を設定します。変数のデータ型は、配列、構造体、また は自動インスタンス化オブジェクト以外なら何でも構いません。 構文 SetNull ( anyvariable ) 引数 anyvariable 戻り値 1084 説明 NULL を設定する変数を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 データベースに変数を書き込む前に、SetNull 関数を使用して変数に NULL 値を設定します。PowerBuilder は、変数を NULL 値に初期化しま せん。変数の宣言時に値を指定しない限り、データ型の標準の初期値 で変数を初期化するので注意してください。 データ型が Any の変数に値を割り当て、その変数を NULL に設定する 場合、NULL 値のデータ型は割り当てられた値のデータ型のままになり ます。SetNull 関数を使用して Any 変数の型を解除することはできませ ん。 例 次のステートメントは、変数 Salary に NULL 値を設定します。 SetNull(Salary) 関連項目 IsNull SetOverlayPicture 機能 コントロールの画像リスト内の画像を、オーバーレイ画像リストに入 れます。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.SetOverlayPicture ( overlayindex, imageindex ) 引数 controlname overlayindex imageindex 戻り値 説明 オーバーレイ画像を追加するリストビューまたはツリー ビュー コントロールの名前を指定します。 オーバーレイ画像リスト内のオーバーレイ ピクチャのイ ンデックス番号を指定します。オーバーレイ画像リストは 1 次元の配列です。overlayindex は、1(最初の画像の場合)、 以前に指定したインデックス(画像を置換する場合)、ま たは現行の最大インデックス + 1(別の画像を追加する場 合)のいずれかでなければなりません。配列に欠番ができ るようなインデックスを指定すると、SetOverlayPicture 関 数はエラーになります。 コントロールのメイン画像リスト内の画像のインデック ス番号を指定します。リストビューの場合、そのインデッ クス番号の位置にある大きいピクチャと小さいピクチャ は、どちらもオーバーレイ画像になります。画像は、依然 として項目のメイン画像として使用できます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 1085 SetOverlayPicture 解説 オーバーレイ ピクチャの高さと幅は、オーバーレイの対象となるピク チャと同じでなければなりません。オーバーレイ ピクチャが下にある ピクチャと重なる場合、ピクチャを挿入するときに SetPicutreMask プ ロパティで指定された色は透明になります。したがって、オーバーレ イ ピクチャの下にある元のピクチャの一部が表示されます。 オーバーレイ リストは、通常のピクチャ リスト内のソース画像を指す ポインタとして機能します。オーバーレイ リストでも使用される画像 を削除すると、表示されているオーバーレイ ピクチャも影響を受けま す。 例 次の例は、リストビュー コントロールのオーバーレイ画像を指定しま す。同じピクチャを大きい画像と小さい画像に使用します。 // オーバーレイ画像の設定 integer index index = lv_1.AddLargePicture("shortcut.ico") index = lv_1.AddSmallPicture("shortcut.ico") lv_1.SetOverlayPicture(1, index) index = lv_1.AddLargePicture("not.ico") index = lv_1.AddSmallPicture("not.ico") lv_1.SetOverlayPicture(2, index) // 2 番目のオーバーレイ画像を最初の項目に割り当てます。 listviewitem lvi integer i i = lv_1.GetItem(1, lvi) lvi.OverlayPictureIndex = 2 i = lv_1.SetItem(1, lvi) 次の例は、ツリービューのメイン画像リスト内の最初のピクチャを最 初のオーバーレイ ピクチャとして指定します。ピクチャは、ツリー ビューのプロパティ シート上のメイン画像リストに追加されていま す。 tv_list.SetOverlayPicture(1, 1) ツリービューの Clicked イベント内の次のスクリプトは、クリックされ た項目にオーバーレイ画像を割り当てます。 treeviewitem tvi tv_list.GetItem(handle, tvi) tvi.OverlayPictureIndex = 1 tv_list.SetItem(handle, tvi) 1086 PowerBuilder 第 10 章 PowerScript の関数 SetParagraphSetting 機能 リッチテキスト エディット コントロールで挿入ポイントがある段落 のインデント、左余白、または右余白のサイズを設定します。 対象 リッチテキスト エディット コントロール 構文 rtecontrol.SetParagraphSetting ( whichsetting, value ) 引数 rtecontrol whichsetting 説明 段落情報を取得するコントロールの名前を指定します。 変更する設定を指定する ParagraphSetting カタログ データ 型の値。値は以下のとおりです。 • Indent! − 段落のインデント • LeftMargin! − 段落の左余白 value • RightMargin! − 段落の右余白 Long 型の値。1/1000 インチ単位で、余白またはインデン トの幅を指定します。たとえば、500 は 0.5 インチになり ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。いずれかの引数が NULL の場合は NULL を返します。 解説 各段落には、インデント、左余白、および右余白を設定できます。現 行の段落に 3 つをすべて設定するには、SetParagraphSetting 関数を 3 回 呼び出します。 例 次の例は、現行の段落のインデントを 1/4 インチに設定します。 ll_indent = rte_1.SetParagraphSetting(Indent!, 250) 次の例は、現行の段落の左余白を 1 インチに設定します。 rte_1.SetParagraphSetting(LeftMargin!, 1000) 関連項目 GetParagraphSetting SetAlignment SetSpacing SetTextColor SetTextStyle PowerScript リファレンス ボリューム 2 1087 SetPicture SetPicture 機能 Blob 型の変数に格納された画像をピクチャ コントロールの画像とし て割り当てます。 対象 ピクチャ コントロール 構文 picturecontrol.SetPicture ( bimage ) 引数 picturecontrol bimage 説明 ビットマップを設定するピクチャ コントロールの名前を 指定します。 新規のビットマップを含む Blob 型。bimage は、ビットマッ プ ファイル(BMP)、GIF ファイル(GIF)、JPEG ファイ ル(JPEG)、ランレングス圧縮ファイル(RLE)、Windows のメタファイル(WMF)の形式の有効なピクチャである 必要があります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 FileRead 関数を使用してファイルからビットマップ画像を取得する場 合、FileRead 関数が一度に読み取ることができるのは最大 32,765 バイ トであるということに注意してください。ファイルの長さをチェック するには、FileLength 関数を呼び出します。ファイルが 32,765 バイトを 超える場合は、FileRead 関数を 2 回以上呼び出した後、読み込んだデー タを連結してください。 例 次のステートメントは、エンド ユーザにファイルを選択させた後、そ のファイルを開き、選択されたファイル内のビットマップをピクチャ コントロール p_1 に設定します。 integer fh, ret blob Emp_pic string txtname, named string defext = "BMP" string Filter = "bitmap Files (*.bmp), *.bmp" ret = GetFileOpenName("Open Bitmap", txtname, & named, defext, filter) IF ret = 1 THEN fh = FileOpen(txtname, StreamMode!) IF fh <> -1 THEN FileRead(fh, Emp_pic) FileClose(fh) p_1.SetPicture(Emp_pic) END IF END IF 1088 PowerBuilder 第 10 章 PowerScript の関数 SetPointer 機能 マウス ポインタを設定します。 構文 SetPointer ( type ) 引数 type 説明 ポインタの型を表す Pointer カタログ データ型の値。値は 以下のとおりです。 Arrow! Cross! Beam! HourGlass! SizeNS! SizeNESW! SizeWE! SizeNWSE! UpArrow! 戻り値 Pointer 型。置き換えられる前のポインタのカタログ型を返します。必 要な場合は元に戻すことができます。type が NULL の場合、NULL を返 します。 解説 スクリプトの実行に時間がかかる場合に、スクリプトの開始時に SetPointer 関数を使用して砂時計を表示します。スクリプト内で再び変 更されるか、スクリプトが終了するまで、そのポインタは設定された ままです。 矢印ポインタを元に戻す方法 スクリプトの実行が終了すると、ポインタは矢印に戻ります。矢印に 変更する必要はありません。 PowerBuilder のペインタでは、エンド ユーザがウィンドウ、コントロー ル、またはデータウィンドウ オブジェクトの特定部分の上でポインタ を移動するときに PowerBuilder が表示するポインタの型を指定できま す。使用できる型は、前述の標準のポインタと開発者が待っているカ スタム カーソル ファイルです。 PowerScript リファレンス ボリューム 2 1089 SetPosition 例 次のステートメントは、マウス ポインタを砂時計型に変更します。 SetPointer(HourGlass!) 次の例は、前のポインタを保存し、長い動作が完了したときにそれを 復元します。 pointer oldpointer // ポインタ変数を宣言します。 oldpointer = SetPointer(HourGlass!) ... // 長い動作を実行します。 SetPointer(oldpointer) SetPosition ウィンドウ上のコントロール、ウィンドウ、データウィンドウ上のオ ブジェクトの前面から背後の重なりの順序を指定します。 目的 ウィンドウ上のコントロールの前面から背後の重なりの 順序を指定する、またはウィンドウをほかの開かれてい るウィンドウの一番上に表示するかどうかを指定する データウィンドウ内部のあるオブジェクトを別の区域に 移動する、または同じ区域内のオブジェクトの重なりの 順序を変更する 使用する構文 構文 1 構文 2 構文 1 ウィンドウ上のウィンドウやコントロールの配置を 指定する 機能 ウィンドウ上のコントロールに対しては、ウィンドウ上での前面から 背後の重なりの順序を指定します。ウィンドウに対しては、そのウィ ンドウをほかの開かれているウィンドウの一番上に表示するかどうか を指定します。 対象 ウィンドウ上のコントロール、ウィンドウ 構文 objectname.SetPosition ( position {, precedingobject } ) 引数 objectname 1090 説明 コントロールの名前を指定します。そのコントロールの ウィンドウ上での重なりの順序を設定します。または、 ウィンドウの名前を指定します。そのウィンドウを常に一番 上に表示するかどうかを指定します。objectname には、チャ イルド ウィンドウとシートを指定することはできません。 PowerBuilder 第 10 章 PowerScript の関数 引数 position 説明 PosType カタログ データ型の値を指定します。指定できる 値は、objectname がコントロールかウィンドウかによって 異なります。 コントロールに対しては、次のいずれかの値を指定します。 • Behind! − objectname を precedingobject の背面に配置し ます。 • ToTop! − objectname をそのほかのコントロールの最前 面に配置します。 • ToBottom! − objectname をそのほかのコントロールの最 背面に配置します。 ウィンドウに対しては、次のいずれかの値を指定します。 • TopMost! − objectname を開かれたそのほかのウィンド ウの最前面に表示します。 precedingobject (オプション) • NoTopMost! − objectname を開かれたそのほかのウィン ドウの最前面に表示しません。 objectname の後ろに配置するオブジェクトの名前を指定 します。position に Behind! を指定した場合には、 precedingobject を指定する必要があります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 コントロールの重なっている状態に従って、どのコントロールが別の コントロールの上に配置されるかが決定されます。あるコントロール が別のコントロールの上に完全に重なっていると、エンド ユーザは下 にあるコントロールにアクセスできなくなります。 複数のウィンドウに対して TopMost! を指定した場合、一番最後に SetPosition 関数が実行されたコントロールが一番上に表示されます。 例 次のステートメントは、cb_two を一番上に表示します。 cb_two.SetPosition(ToTop!) 次のステートメントは、cb_two を cb_three の後ろに表示します。 cb_two.SetPosition(Behind!, cb_three) 次のステートメントは、w_signon を一番上のウィンドウにします。 w_signon.SetPosition(TopMost!) 次のステートメントは、w_signon を一番上に表示しません。 w_signon.SetPosition(NoTopMost!) PowerScript リファレンス ボリューム 2 1091 SetPosition 構文 2 データウィンドウ内のオブジェクトの配置を指定する 機能 データウィンドウ内部のあるオブジェクトを別の区域に移動したり、 または同じ区域内のオブジェクトの重なりの順序を変更したりしま す。 対象 データウィンドウ コントロール、データストア 構文 dwcontrol.SetPosition ( objectname, band, bringtofront ) 引数 dwcontrol objectname band 説明 データウィンドウ コントロールまたはデータストア オブ ジェクトの名前を指定します。この中に objectname があり ます。 データウィンドウ内で移動するオブジェクトの名前を指 定します。データウィンドウ ペインタで与えたデータウィ ンドウ上のオブジェクトの名前を指定します。 objectname を配置する区域またはレイヤ名を指定します。 レイヤには、背景または前景を指定します。 区域名には、detail、header、footer、summary、header.#、trailer.# を指定します。 bringtofront # は、グループ レベルの番号です。区域を変更しない場合、 空の文字列("")を入力します。 Boolean 型の値。objectname を区域内の前面に移動するか どうかを指定します。 • TRUE − 前面に移動 • FALSE − 前面に移動しない 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次のステートメントは、dw_rpt 内の oval_red を header に移動し、それ を前面に移動します。 dw_rpt.SetPosition("oval_red", "header", TRUE) 次のステートメントは、oval_red の位置は変更せずに、前面に移動し ます。 dw_rpt.SetPosition("oval_red", "", TRUE) 次のステートメントは、oval_red を footer に移動しますが、前面には移 動しません。 dw_rpt.SetPosition("oval_red", "footer", FALSE) 1092 PowerBuilder 第 10 章 PowerScript の関数 SetProfileString 機能 PowerBuilder アプリケーションのプロファイルに値を書き込みます。 構文 SetProfileString ( filename, section, key, value ) 引数 filename section key value 説明 プロファイルの名前を表す文字列を指定します。この引数 に絶対パスを指定しなかった場合、PowerBuilder は DOS パ スを検索します。 プロファイル内の関連する値のグループの名前(セクショ ン名)を表す文字列を指定します。section がファイル中に 存在しない場合、PowerBuilder で追加されます。 値を指定する section でのキーワードを表す文字列を指定 します。key が section に存在しない場合、PowerBuilder で 追加されます。 key に対する値を表す持つ文字列を指定します。 戻り値 Integer 型。正常に終了した場合、1 を返します。指定されたファイル が見つからなかった場合、またはアクセスできなかった場合には、-1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 プロファイルは、角カッコ([])で囲まれているセクション ラベル、 キーワード、等号(=)に続く値で構成されています。キーワードに設 定された値を変更すると、アプリケーションをインストールするマシ ンごとに、カスタム設定を指定できます。独自のプロファイルを作成 する場合、セクション名とキーワード名を選択し、値をどのように使 用するかを決めます。 たとえば、プロファイルにエンド ユーザに関する情報が入っているも のとします。次の例では、User Info がセクション名で、そのほかはそ のキーワードと値です。キーワードやセクション ラベル(「Section=1」 のようなセクション名を使用する場合)の中で使用される等号(=)の 前後に、空白はありません。 [User Info] Name="James Smith" JobTitle="Window Washer" SecurityClearance=9 Password= SetProfileString 関数を呼び出して、開発者またはエンド ユーザが提供す る環境設定情報を格納します。ProfileInt 関数や ProfileString 関数を呼び 出してプロファイルの情報を取得します。取得した情報を使用して実 行中に PowerBuilder アプリケーションをカスタマイズすることができ ます。 PowerScript リファレンス ボリューム 2 1093 SetProfileString ProfileInt 関数、ProfileString 関数、SetProfileString 関数は、Windows シス テム上では ANSI または UTF16-LE エンコーディング、UNIX システム 上では ANSI または UTF16-BE エンコーディングでファイルからの読 み取りやファイルへの書き込みをすることができます。 プロファイルのアクセス SetProfileString 関数は、プロファイル コール を使用してデータをプロファイルに書き込みます。その後は、プロファ イ ル が い つ 書 き 込 ま れ た り 閉 じ ら れ た り し た か を 制 御 し ま せ ん。 SetProfileString 関数を呼び出した直後にプロファイルからデータを読 み込もうとすると、ファイルが開いたままになっているために不完全 または不正なデータを受け取る可能性があります。 このような問題を避けるために、SetProfileString 関数のかわりに PowerScript 言語の FileOpen、FileWrite、および FileClose 関数を使用して、データを プロファイルに書き込むことができます。または、プロファイルから の読み込みを試行する前にプロファイル コールが完了するように、 SetProfileString 関数呼び出しの後で追加処理をいくつか行うことがで きます。 Windows レジストリ SetProfileString 関数を使って、Windows システム レジストリから環境設 定の情報を取得できます。システム レジストリの使用方法の詳細につ いては、 『アプリケーション テクニック』マニュアルの「初期設定ファ イルおよび Windows レジストリの管理」を参照してください。 例 次のステートメントは、C:\PROFILE.INI ファイルの Position セクション のキーワード Title に、文字列 "MGR" を設定します。 SetProfileString("C:\PROFILE.INI", & "Position", "Title", "MGR") 関連項目 1094 ProfileInt ProfileString PowerBuilder 第 10 章 PowerScript の関数 SetRange 機能 プログレスバー コントロールの継続時間、またはトラックバー コント ロールの開始および終了位置を設定します。 対象 プログレスバー コントロール 構文 controlname.SetRange ( startpos, endpos ) 引数 controlname startpos endpos 説明 プログレスバーまたはトラックバーの名前を指定します。 Integer 型の値。範囲の開始位置を指定します。 Integer 型の値。範囲の終了位置を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 プログレスバー コントロールのデフォルトの範囲は、0 ∼ 100 になっ ています。 例 次のステートメントは、プログレスバー コントロールの範囲を 1 ∼ 10 に設定します。 HProgressBar.SetRange ( 1, 10 ) 関連項目 OffsetPos SelectionRange StepIt PowerScript リファレンス ボリューム 2 1095 SetRecordSet SetRecordSet 機能 ADO ResultSet オブジェクトを設定し、渡された ADO Recordset から データとメタデータを取得します。 対象 ADOResultSet オブジェクト 構文 adoresultset.SetRecordSet ( adorecordsetobject ) 引数 adoresultset adorecordsetobject 説明 渡された ADO レコードセットを格納する ADOResultSet オブジェクトを指定します。 ADO レコードセットを含む OLEObject オブジェクト を指定します。ADO レコードセットを含まない OLEObject を渡すとエラーになります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SetRecordSet 関数は、ADO レコードセットを含む OLEObject オブジェ クトによって渡されたデータを、ADOResultSet オブジェクトに入力す るのに使用します。レコード セットは、COM+ コンポーネントから、 ADO レコードセットとして返されたものです。 例 次の例では、まず、COM+ コンポーネントに接続し、このコンポーネ ント上で ADO レコードセットを OLEObject オブジェクトに返すメ ソッドを呼び出します。次に、ADOResultSet オブジェクトを作成し、 SetRecordSet 関 数 を 使 っ て、こ の ADOResultSet オ ブ ジ ェ ク ト に OLEObject からデータを入力します。 OLEObject loo_mycomponent OLEObject loo_ADOrecordset ADOresultset lrs_ADOresultset integer li_rc loo_mycomponent = CREATE OLEObject li_rc = loo_mycomponent.ConnectToNewObject("PB.Test") IF li_rc <> 0 THEN Messagebox(" 接続失敗 ", string(li_rc) ) RETURN END IF // COM+ コンポーネントのメソッドから返された ADO レコードセット // を保持するために OLEObject を使用します。 loo_ADOrecordset = loo_mycomponent.GetTestResult() // ADOResultSet を作成し、渡された ADO レコードセットを 1096 PowerBuilder 第 10 章 PowerScript の関数 // 保持する OLEObject から ADOResultSet のデータを取得します。 lrs_ADOresultset = CREATE ADOResultSet lrs_ADOresultset.SetRecordSet(loo_ADOrecordset) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの CreateFrom メソッド 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GenerateResultSet メソッド GetRecordSet SetResultSet SetRedraw 機能 オブジェクトまたはコントロールのプロパティが変更されるたびに、 自動的に再描画するかどうかを制御します。 対象 メニュー以外のオブジェクト 構文 objectname.SetRedraw ( boolean ) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。boolean が NULL の場合、NULL を返します。 解説 特に指定しない限り、PowerBuilder は外観に影響するプロパティを変 更するたびに、コントロールを再描画します。オブジェクトのプロパ ティやコントロールのプロパティを何回も変更すると、ちらつきが発 生します。このちらつきを抑えて再描画にかかる時間を短縮するには、 SetRedraw 関数を使用して一時的に再描画しないように設定します。 ウィンドウが表示されない場合、SetRedraw 関数はエラーになります。 注意 再描画をオフにした場合は、オンに戻す必要があります。オンに戻さ ないと、問題が発生することがあります。また、再描画をオフにして ウィンドウ内のオブジェクトの Visible プロパティと Enabled プロパ ティを変更すると、タブ順序に影響するおそれがあります。 例 次のステートメントは、プロパティ変更の後 lb_Location の再描画をし ません。 lb_Location.SetRedraw(FALSE) PowerScript リファレンス ボリューム 2 1097 SetRemote lb_Location のソート プロパティがオン(lb_Location.Sorted=TRUE)で あるとします。次のステートメントは、新しい項目をリストボックス に追加するまで、SetRedraw 関数を使用して再描画しないように設定し ます。 lb_Location.SetRedraw(FALSE) lb_Location.AddItem("Atlanta") lb_Location.AddItem("Boston") lb_Location.AddItem("Washington") lb_Location.SetRedraw(TRUE) SetRemote DDE サーバ アプリケーションに対して、データの受信と、そのデータ の指定位置への格納を依頼します。確立した DDE 接続の種類によっ て、使用する構文が異なります。 目的 使用する構文 サーバ アプリケーションに対して 1 つの DDE リクエスト 構文 1 を行う(コールド リンク) チャネルを開いてウォーム リンクを確立している場合に、 構文 2 サーバ アプリケーションに対して DDE リクエストを行う 構文 1 1 つの DDE リクエストを行う 機能 DDE サーバ アプリケーションに対してチャネルを開かずにデータを 受信し、そのデータを指定した場所に格納するように依頼します。サー バに対してリクエストを 1 つまたは 2 つしか行わない場合、この構文 が適しています。 構文 SetRemote ( location, value, applname, topicname ) 引数 location value applname 1098 説明 String 型の値。データを受信するサーバ アプリケーション 内のデータの位置を指定します。location の形式は、リク エストを受信するアプリケーションによって異なります。 String 型の値。リモート アプリケーションに送信する値を 指定します。 String 型の値。サーバ アプリケーションの DDE 名を表す 文字列を指定します。 PowerBuilder 第 10 章 PowerScript の関数 引数 topicname 戻り値 説明 String 型の値。データを受信するアプリケーションのイン スタンスまたはデータを指定します。たとえば、Microsoft Excel の場合、開いているスプレッドシートの名前をト ピック名として使用できます。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 リンクは開始されていません。 リクエストが拒否されました。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 DDE を使用する場合、PowerBuilder アプリケーションは、クライアン ト ウィンドウとなるウィンドウを開いている必要があります。構文 1 では、アクティブ ウィンドウが DDE クライアントのウィンドウにな ります。 DDE チャネル、ウォーム リンク、コールド リンクについての詳細は、 ExecRemote 関数を参照してください。 例 次の例は、Microsoft Excel に対して、SALES.XLS というワークシートの 5 行目のカラム 7 のデータの値を 4500 に設定するように要求します。 SetRemote("R5C7", "4500", "Excel", "SALES.XLS") 関連項目 ExecRemote GetRemote OpenChannel PowerScript リファレンス ボリューム 2 1099 SetRemote 構文 2 開いたチャネルを介して DDE リクエストを行う 機能 サーバ アプリケーションにチャネルを開いてウォーム リンクを確立 している場合、DDE サーバ アプリケーションに対して、データを受信 し、そのデータを指定した場所に格納するように依頼します。複数の DDE リクエストを行う予定がある場合には、チャネルを開いてウォー ム リンクを使用する方が効率的です。 構文 SetRemote ( location, value, handle {, windowhandle } ) 引数 location value handle windowhandle (オプション) 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 -9 解説 説明 String 型の値。データを受信するサーバ アプリケーション 内のデータの位置を指定します。location の形式は、リク エストを受信するアプリケーションによって異なります。 String 型の値。リモート アプリケーションに送信する値を 指定します。 Long 型の値。DDE サーバ アプリケーションに対するチャ ネルを指定します。handle は、DDE チャネルを開くために 呼び出した OpenChannel 関数から返された値です。 DDE クライアントとして機能させているウィンドウに対 するハンドルを指定します。 リンクは開始されていません。 リクエストが拒否されました。 handle が NULL です。 DDE を使用する場合、PowerBuilder アプリケーションは、クライアン ト ウィンドウとなるウィンドウを開いている必要があります。構文 2 では、windowhandle を使用してアクティブ ウィンドウ以外のクライア ント ウィンドウを指定できます。 SetRemote 関数の構文 2 を使用する前に、OpenChannel 関数を呼び出し て DDE チャネルを確立しておく必要があります。 DDE チャネル、ウォーム リンク、コールド リンクについての詳細は、 ExecRemote 関数を参照してください。 例 次の例は、Microsoft Excel のワークシートに対するチャネルを開き、5 行目のカラム 7 のデータの値を 4500 に設定するように要求します。 long handle handle = OpenChannel("Excel", "REGION.XLS") SetRemote("R5C7", "4500", handle) 1100 PowerBuilder 第 10 章 PowerScript の関数 関連項目 ExecRemote GetRemote OpenChannel SetResultSet 機能 新規の ADOResultSet オブジェクトに、ResultSet オブジェクトによって 渡されたデータを入力します。 対象 ADOResultSet オブジェクト 構文 adoresultset.SetResultSet ( resultsetobject ) 引数 adoresultset resultsetobject 説明 渡された結果集合を ADO レコードセットとして格納する ADOResultSet オブジェクトを指定します。 結果集合データを含む ResultSet オブジェクトを指定しま す。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SetResultSet 関数は、ADOResultSet オブジェクトを作成し、このオブ ジェクトに ResultSet オブジェクトからデータを入力する場合に使用 します。ResultSet オブジェクトは、データストア オブジェクトから GenerateResultSet 関数を使って作成できます。 SetResultSet 関数を使って ADOResultSet オブジェクトを作成した後、 GetRecordSet 関数を使って、ADO の結果集合を OLEObject 型の ADO Recordset オブジェクトの中に返すと、PowerScript においてネイティブ の ADO Recordset オブジェクトとして使用することができます。 例 関連項目 GetRecordSet 関数を参照してください。 『データウィンドウ リファレンス 』マニュアルまたはオンライン ヘル プの GenerateResultSet メソッド GetRecordSet SetRecordSet PowerScript リファレンス ボリューム 2 1101 SetSeriesStyle SetSeriesStyle グラフのデータ系列の外観を指定します。どの設定を変更するかに よって、構文が異なります。 目的 データ系列の色を設定する 線種、線幅を設定する データ系列の塗りつぶしパターンやシンボルを設定する データ系列がオーバーレイかどうかを指定する 使用する構文 構文 1 構文 2 構文 3 構文 4 構文 1 データ系列の色を設定する 機能 グラフのデータ系列の色を指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, colortype, color ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname colortype 説明 データ系列の色を設定するグラフ コントロールの名前、ま たはそのグラフがあるデータウィンドウ コントロールの 名前を指定します。 データウィンドウ コントロール上のデータ系列の色を設 定するグラフの名前を表す文字列を指定します。 色を設定するデータ系列の名前を表す文字列を指定しま す。 grColorType カタログ データ型の値。色を設定する項目を 指定します。値は以下のとおりです。 • Foreground! − テキストの色 • Background! − 背景の色 • LineColor! − 線の色 color 戻り値 1102 • Shade! − 影の色(3D グラフ、立体のオブジェクトを 持ったグラフ) colortype に新しく設定する色を表す Long 型の値を指定し ます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 PowerBuilder 第 10 章 PowerScript の関数 解説 データ系列のデータ ポイントには、それ自体のスタイルの設定が保存 されています。SetDataStyle 関数を使用して行った設定は、個別のデー タ ポイントのスタイルを設定し、データ系列の設定を上書きします。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、線グラフに塗りつぶしパターンや、 棒グラフの線種を設定することができます。ただし、塗りつぶしパター ンや線種を見ることはできません。 PowerBuilder がデータウィンドウのグラフを描画する前に、グラフの データ系列の外観を指定できます。それを行うには、 pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント スクリプト内から SetSeriesStyle 関数を呼び出します。 pbm_dwngraphcreate イベントは、データウィンドウ オブジェクトにグ ラフが作成される直前に起動します。 例 次のステートメントは、グラフ gr_emp_data のデータ系列 Salary のテ キスト(前景)の色を黒に設定します。 gr_emp_data.SetSeriesStyle("Salary", & Foreground!, 0) 次のステートメントは、データウィンドウ コントロール dw_employees 上のグラフ gr_depts のデータ系列 Salary の背景色を黒に設定します。 dw_employees.SetSeriesStyle("gr_depts", & "Salary", Background!, 0) 次の例は、グラフ コントロール gr_product_data の Clicked イベントに 対するスクリプトです。グラフ コントロールとグラフ gr_sales_data と の間で線の色を調整します。ポインタの下のデータ系列の色を変数 line_color に 格 納 し、そ の 色 を グ ラ フ gr_sales_data の デ ー タ 系 列 northeast の線の色に設定します。 string SeriesName integer SeriesNbr, Series_Point long line_color grObjectType MouseHit MouseHit = ObjectAtPointer(SeriesNbr,Series_Point) IF MouseHit = TypeSeries! THEN SeriesName = & gr_product_data.SeriesName(SeriesNbr) gr_product_data.GetSeriesStyle(SeriesName, & LineColor!, line_color) PowerScript リファレンス ボリューム 2 1103 SetSeriesStyle gr_sales_data.SetSeriesStyle("Northeast", & LineColor!, line_color) END IF 関連項目 GetDataStyle GetSeriesStyle SeriesName SetDataStyle 構文 2 グラフの線種と線幅を設定する 機能 グラフのデータ系列の線種と線幅を指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, linestyle, linewidth ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname linestyle linewidth 説明 データ系列の線種と線幅を設定するグラフ コントロール の名前、またはそのグラフを持つデータウィンドウ コント ロールの名前を指定します。 データウィンドウ コントロール中の線種と線幅を設定す るグラフの名前を表す文字列を指定します。 線種と線幅を設定するデータ系列の名前を表す文字列を 指定します。 LineStyle カタログ データ型の値。値は以下のとおりです。 Continuous! Dash! DashDot! DashDotDot! Dot! Transparent! 線幅のピクセル数を指定する Integer 型の値を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 データ系列のデータ ポイントには、それ自体のスタイルの設定が保存 されています。SetDataStyle 関数を使用して行った設定は、個別のデー タ ポイントのスタイルを設定し、データ系列の設定を上書きします。 1104 PowerBuilder 第 10 章 PowerScript の関数 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、線グラフに塗りつぶしパターンや、 棒グラフの線種を設定することができます。ただし、塗りつぶしパター ンや線種を見ることはできません。 PowerBuilder がデータウィンドウのグラフを描画する前に、グラフの データ系列の外観を指定できます。それを行うには、pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント スクリプト内から SetSeriesStyle 関数を呼び出します。pbm_dwngraphcreate イベントは、 データウィンドウ オブジェクトにグラフが作成される直前に起動し ます。 例 次のステートメントは、グラフ gr_product_data のデータ系列 Costs に線 種と線幅を設定します。 gr_product_data.SetSeriesStyle("Costs", & Dot!, 5) 関連項目 GetDataStyle GetSeriesStyle SeriesName SetDataStyle 構文 3 グラフの塗りつぶしパターンやシンボルを設定する 機能 データ系列のデータ マーカーに対する塗りつぶしパターンやシンボ ルを設定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, enumvalue ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname PowerScript リファレンス ボリューム 2 説明 データ系列の外観を設定するグラフ コントロールの名前、 またはそのグラフがあるデータウィンドウ コントロール の名前を指定します。 String 型の値。データウィンドウ コントロール上の外観を 設定するグラフの名前を指定します。 外観を設定するデータ系列の名前を表す文字列を指定し ます。 1105 SetSeriesStyle 引数 enumvalue 説明 データ系列の外観の設定を表す値を指定します。FillPattern カタログ データ型または grSymbolType カタログ データ型 の値です。 塗りつぶしのパターンを変更するには、FillPattern カタロ グ データ型の値を指定します。 Bdiagonal! − 左下から右上の斜線 Diamond! Fdiagonal! − 左上から右下の斜線 Horizontal! Solid! Square! Vertical! シンボルの型を変更するには、grSymbolType カタログ データ型の値を指定します。 NoSymbol! SymbolHollowBox! SymbolX! SymbolStar! SymbolHollowUpArrow! SymbolHollowCircle! SymbolHollowDiamond! SymbolSolidDownArrow! SymbolSolidUpArrow! SymbolSolidCircle! SymbolSolidDiamond! SymbolPlus! SymbolHollowDownArrow! SymbolSolidBox! 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 データ系列のデータ ポイントには、それ自体のスタイルの設定が保存 されています。SetDataStyle 関数を使用して行った設定は、個別のデー タ ポイントのスタイルを設定し、データ系列の設定を上書きします。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、線グラフに塗りつぶしパターンや、 棒グラフの線種を設定することができます。ただし、塗りつぶしパター ンや線種を見ることはできません。 1106 PowerBuilder 第 10 章 PowerScript の関数 PowerBuilder がデータウィンドウのグラフを描画する前に、グラフの データ系列の外観を指定できます。それを行うには、 pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント スクリプト内から SetSeriesStyle 関数を呼び出します。 pbm_dwngraphcreate イベントは、データウィンドウ オブジェクトにグ ラフが作成される直前に起動します。 例 次のステートメントは、グラフ gr_product_data のデータ系列 Costs のシ ンボルをプラス記号に設定します。 gr_product_data.SetSeriesStyle("Costs", & SymbolPlus!) 次のステートメントは、データウィンドウ コントロール dw_equipment 上のグラフ gr_computers のデータ系列 Costs のシンボルを X に設定し ます。 dw_equipment.SetSeriesStyle("gr_computers", & "Costs", SymbolX!) 関連項目 GetDataStyle GetSeriesStyle SeriesName SetDataStyle PowerScript リファレンス ボリューム 2 1107 SetSeriesStyle 構文 4 グラフのオーバーレイを作成する 機能 データ系列がオーバーレイかどうかを指定します。つまり、データ系 列は、ほかのデータ型の一番上の線を表します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, overlaystyle ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname overlaystyle 説明 データ系列のオーバーレイの状況を設定するグラフ コン トロールの名前、またはそのグラフがあるデータウィンド ウ コントロールの名前を指定します。 String 型の値。データウィンドウ コントロール上のデータ 系列のオーバーレイの状況を設定するグラフの名前を指 定します。 オーバーレイの状況を変更するデータ系列の名前を表す 文字列を指定します。 Boolean 型の値。データ系列をオーバーレイにするかどう か(データ系列の線を前面に表示するかどうか)を指定し ます。データ系列をオーバーレイにするには、TRUE を指 定します。オーバーレイの設定を解除するには、FALSE を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 PowerBuilder がデータウィンドウのグラフを描画する前に、グラフの データ系列の外観を指定できます。それを行うには、pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント スクリプト内から SetSeriesStyle 関数を呼び出します。pbm_dwngraphcreate イベントは、 データウィンドウ オブジェクトにグラフが作成される直前に起動し ます。 例 次のステートメントは、グラフ gr_product_data のデータ系列 Costs のス タイルにオーバーレイを設定します。 gr_product_data.SetSeriesStyle("Costs", TRUE) 次のステートメントは、データウィンドウ コントロールの Clicked イ ベントに対するスクリプトです。データウィンドウ コントロール dw_employees のグラフ gr_depts の上のポインタが位置するデータ系列 のスタイルを変数 style_type に保存します。データ系列のスタイルが オーバーレイ(TRUE)の場合、標準(FALSE)に変更します。 1108 PowerBuilder 第 10 章 PowerScript の関数 string SeriesName integer SeriesNbr, Data_Point boolean overlay_style grObjectType MouseHit MouseHit = dw_employees.ObjectAtPointer( & "gr_depts", SeriesNbr, Data_Point) IF MouseHit = TypeSeries! THEN SeriesName = & dw_employees.SeriesName("gr_depts",SeriesNbr) dw_employees.GetSeriesStyle("gr_depts", & SeriesName, overlay_style) IF overlay_style THEN & dw_employees.SetSeriesStyle("gr_depts", & SeriesName, FALSE) END IF 関連項目 GetDataStyle GetSeriesStyle SeriesName SetDataStyle PowerScript リファレンス ボリューム 2 1109 SetSelectedDate SetSelectedDate 機能 指定された日付を選択します。 対象 月表示カレンダ コントロール 構文 controlname.SetSelectedDate ( d ) 引数 controlname d 戻り値 説明 選択した日付を設定する月表示カレンダ コントロールの 名前を指定します。 選択された日付として設定する日付の値を指定します。 Integer 型。正常に終了した場合は 0 を返します。それ以外の場合は、 次のいずれかの負の値を返します。 解説 -1 無効な引数が指定されました。 -2 不明なエラーです。 単一の日付を選択するには、SetSelectedDate 関数を使用します。 SetDateLimits 関数で指定した日付の範囲外の日付を指定しようとした 場合、SetSelectedDate 関数は -1 を返します。 SetSelectedDate と SetSelectedRange は DateChanged イベントを起動しま す。特に Post メソッドを使用して、DateChanged イベントの中でこ れらのメソッドを呼び出すべきではありません。 例 次の例は、選択した日付を関数に渡される日付に設定します。 // 関数の引数 seldate integer li_return li_return = mc_1.SetSelectedDate(seldate) 関連項目 1110 GetSelectedDate SetDateLimits PowerBuilder 第 10 章 PowerScript の関数 SetSelectedRange 機能 選択した日付の範囲を設定します。 対象 月表示カレンダ コントロール 構文 controlname.SetSelectedRange ( start, end ) 引数 controlname start end 戻り値 解説 説明 選択した日付の範囲を設定する月表示カレンダ コント ロールの名前を指定します。 選択される最初の日付として設定する日付の値を指定し ます。 選択される最後の日付として設定する日付の値を指定し ます。 Integer 型。正常に終了した場合は 0 を返します。それ以外の場合は、 次のいずれかの負の値を返します。 -1 無効な引数が指定されました。 -2 不明なエラーです。 連続する日付の範囲を選択するには、SetSelectedRange 関数を使用しま す。 SetSelectedRange は、最初の日付以前の日付を最後の日付として指定し ている場合は、最初の日付を最後の日付として使用し、最後の日付を 最初の日付として使用します。SetSelectedRange 関数を呼び出す前に、 MaxSelectedCount プロパティの値を、日付の範囲をサポートするのに 十分な大きさに設定する必要があります。指定した日付が SetDateLimits 関数で指定した最初の日付および最後の日付の範囲外である場合、ま たは範囲が MaxSelectedCount を超えている場合は、SetSelectedRange 関 数は -1 を返します。最初の日付および最後の日付が同じ場合は、単一 の日付が選択されます。 日付の範囲を選択するときにエンド ユーザがナビゲーション ボタン を使ってカレンダをスクロールすると、日付の範囲がカレンダのスク ロールに従って変わります。 SetSelectedDate と SetSelectedRange は DateChanged イベントを起動しま す。特に Post メソッドを使用して、DateChanged イベントの中でこ れらのメソッドを呼び出すべきではありません。 PowerScript リファレンス ボリューム 2 1111 SetSpacing 例 次の例では、選択する範囲の最初の日付を startdate に、また最後の日 付を enddate に設定します。 integer li_return Date startdate, enddate startdate = Today() enddate = Date("2007-12-31") li_return = mc_1.SetSelectedRange(startdate, enddate) 関連項目 GetSelectedRange SetDateLimits SetSpacing 機能 リッチテキスト エディット コントロールで選択されている段落、また は挿入ポイントがある段落の行間を設定します。 対象 リッチテキスト エディット コントロール 構文 rtename.SetSpacing ( spacing ) 引数 rtename spacing 説明 行間を設定するリッチテキスト エディット コントロール の名前を指定します。 テキストの行間を指定する Spacing カタログ データ型の 値。値は以下のとおりです。 Spacing1! − 1 行 Spacing15! − 1.5 行 Spacing2! − 2 行 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 行間は、各行ではなく、段落に対する設定です。このため、行が折り 返されている場合、選択されているすべての段落ですべての行の行間 が変わります。 行間を大きくすると、上の行との間が広がります。 例 次の例は、リッチテキスト エディット コントロール rte_1 で選択され ている段落の行間を 2 行に指定します。 rte_1.SetSpacing(Spacing2!) 次の例は、行間を 1.5 行に指定します。 1112 PowerBuilder 第 10 章 PowerScript の関数 rte_1.SetSpacing(Spacing15!) 関連項目 SetTextColor SetTextStyle SetState 機能 リ ス ト ボ ッ ク ス 内 の 特 定 の 項 目 に ハ イ ラ イ ト 表 示 を 設 定 し ま す。 SetState 関数は、MultiSelect プロパティが TRUE のリストボックスにだ け適用できます。 対象 リストボックス コントロール、ピクチャ リストボックス コントロール 構文 listboxname.SetState ( index, state ) 引数 listboxname index state 説明 項目のハイライト表示の状態を設定するリストボックス コントロールまたはピクチャ リストボックス コントロー ルの名前を指定します。コントロールの MultiSelect プロパ ティは、TRUE でなければなりません。 ハイライト表示を設定する項目の番号を指定します。リス トボックス コントロール内の項目すべてをハイライト表 示するには、0 を指定します。 項目のハイライト表示の状態を決める Boolean 型の値を指 定します。 • TRUE − ハイライト表示 • FALSE − ハイライト表示を解除 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 コントロールの MultiSelect プロパティが FALSE の場合、SetState 関数 のかわりに SelectItem 関数を使用して 1 回に 1 項目ずつ選択します。 例 次のステートメントは、lb_Actions の項目 6 をハイライト表示します。 lb_Actions.SetState(6, TRUE) 次のステートメントは、lb_Actions のすべての項目のハイライト表示を 解除します。 lb_Actions.SetState(0, FALSE) PowerScript リファレンス ボリューム 2 1113 SetTextColor 次のステートメントは、lb_Actions の項目 6 が選択された場合にはハイ ライト表示を解除し、選択されていない場合には項目をハイライト表 示します。 IF lb_Actions.State(6) = 1 THEN lb_Actions.SetState(6, FALSE) ELSE lb_Actions.SetState(6, TRUE) END IF 関連項目 SelectItem SetTop State SetTextColor 機能 リッチテキスト エディット コントロールで選択されているテキスト の色を設定します。 対象 リッチテキスト エディット コントロール 構文 rtename.SetTextColor ( colornumber ) 引数 rtename colornumber 説明 選択されているテキストの色を設定するリッチテキスト エディット コントロールの名前を指定します。 Long 型の値。選択されているテキストに設定する色を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 色の値の算出についての詳細は、「RGB 関数」を参照してください。 例 次の例は、リッチテキスト エディット コントロール rte_1 で選択され ているテキストの色を暗い赤に設定します。 rte_1.SetTextColor(RGB(100, 0, 0)) 関連項目 1114 GetTextColor RGB SetTextStyle PowerBuilder 第 10 章 PowerScript の関数 SetTextStyle 機能 リッチテキスト エディット コントロールで選択されているテキスト に設定する書式を指定します。テキストには、太字、下線、斜体、お よび取り消し線のテキスト スタイルを設定できます。また、下付きま たは上付きの書式を設定することもできます。 対象 リッチテキスト エディット コントロール 構文 rtename.SetTextStyle ( bold, underline, subscript, superscript, italic, strikeout ) 引数 rtename bold underline subscript superscript italic strikeout 説明 選択されているテキストに書式を設定するリッチテキス ト エディット コントロールの名前を指定します。 Boolean 型の値。選択されているテキストを太字にするか どうかを指定します。 Boolean 型の値。選択されているテキストに下線を引くか どうかを指定します。 Boolean 型の値。選択されているテキストを下付きにする かどうかを指定します。 Boolean 型の値。選択されているテキストを上付きにする かどうかを指定します。subscript と superscript の両方が TRUE の場合、subscript の設定が優先され、選択されてい るテキストは下付きになります。 Boolean 型の値。選択されているテキストを斜体にするか どうかを指定します。 Boolean 型の値。選択されているテキストに取り消し線を 引くかどうかを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例は、リッチテキスト エディット コントロール rte_1 で選択され ているテキストに太字と斜体の書式を設定します。 rte_1.SetTextStyle(TRUE, FALSE, FALSE, FALSE, & TRUE, FALSE) 次の例は、選択されているテキストを下付きにします。テキストのほ かの書式設定は、変更されません。 rte_1.SetTextStyle(rte_1.GetTextStyle(Bold!), & rte_1.GetTextStyle(Underlined!), & TRUE, FALSE, & rte_1.GetTextStyle(Italic!), & rte_1.GetTextStyle(Strikeout!)) PowerScript リファレンス ボリューム 2 1115 SetTimeout 関連項目 GetTextStyle SetSpacing SetTextColor SetTimeout 機能 以降の EAServer トランザクションのタイムアウト値を設定します。ト ランザクションが完了する前にタイムアウト期間が満了した場合、ト ランザクションはロールバックされます。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.SetTimeout ( seconds ) 引数 CORBACurrent seconds 説明 CORBACurrent サービス インスタンスへの参照を指定し ます。 UnsignedLong 型の値。トランザクションがロールバック するまでの経過時間(秒)を指定します。 戻り値 Boolean 型。正常に終了した場合は TRUE を返し、エラーが発生した場 合は FALSE を返します。 解説 SetTimeout 関数は、トランザクションがロールバックするまでの経過 時間(秒)を指定します。このタイムアウト期間が適用されるのは、 以降の BeginTransaction 関数の呼び出しによって作成されるトランザク ションです。seconds に 0 を指定した場合、タイムアウト期間は無効に なります。 SetTimeout 関数は、OTS スタイルのマークが付いているクライアント またはコンポーネントで呼び出せます。EAServer は、2 フェーズ コ ミット トランザクション コーディネータ(OTS/XA)を使用している ことが必要です。 例 次の例では、SetTimeout 関数を使用してタイムアウト期間を 5 分に設定 しています。 // インスタンス変数: // CORBACurrent corbcurr boolean lb_timeout integer li_rc li_rc = this.GetContextService("CORBACurrent", & corbcurr) 1116 PowerBuilder 第 10 章 PowerScript の関数 IF li_rc <> 1 THEN // エラーを処理します。 END IF li_rc = corbcurr.Init( "iiop://server1:9003") IF li_rc <> 1 THEN // エラーを処理します。 ELSE lb_timeout = corbcurr.SetTimeout(300) li_rc = corbcurr.BeginTransaction() END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus GetTransactionName Init ResumeTransaction RollbackOnly RollbackTransaction SuspendTransaction SetToday 機能 カレンダが今日の日付として使用する値を設定します。 対象 月表示カレンダ コントロール 構文 controlname.SetToday ( d ) 引数 controlname d 説明 今日の日付を設定する月表示カレンダ コントロールの名 前を指定します。 今日の日付として指定する日付を指定します。 戻り値 Integer 型。成功した場合は 0 を返し、失敗した場合は -1 を返します。 解説 デフォルトでは、現在のシステム日付が今日の日付として設定されま す。別の日付を設定するには、SetToday 関数を使用します。現在のシ ステムの日付以外の日付が設定されている場合、次の制限が適用され ます。 • 現在の日付の午前 0 時を過ぎても、コントロールは今日の日付を 自動的に更新しません。 PowerScript リファレンス ボリューム 2 1117 SetToolbar • 例 コントロールは、ロケールの変更に基づいた表示を自動的に更新 しません。 次の例は、エディットマスク コントロールから日付を取得し、今日の 日付として設定します。 Date currentdate integer li_return currentdate = Date(em_1.Text) li_return = mc_1.SetToday(currentdate) 関連項目 GetToday SetToolbar 機能 指定されたツールバーの配置、可視性、およびタイトルを設定します。 対象 MDI フレーム、シート ウィンドウ 構文 window.SetToolbar ( toolbarindex, visible {, alignment {, floatingtitle } } ) 引数 window toolbarindex visible 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。設定を変更するツールバーのインデックス を指定します。 ツールバーを表示するかどうかを指定する Boolean 型の 値。値は以下のとおりです。 • TRUE − 表示 alignment (オプション) • FALSE − 非表示 ツールバーの配置を指定する ToolbarAlignment カタログ データ型の値。値は以下のとおりです。 • AlignAtTop! − フレームの上端にツールバーを配置します。 • AlignAtLeft! − フレームの左端にツールバーを配置します。 • AlignAtRight! − フレームの右端にツールバーを配置し ます。 • AlignAtBottom! − フレームの下端にツールバーを配置 します。 • Floating! − ツールバーを浮動ツールバーにします。浮動 ツールバーは、独立したウィンドウとして表示されます。 1118 PowerBuilder 第 10 章 PowerScript の関数 引数 floatingtitle (オプション) 説明 String 型の値。alignment に Floating! が指定されている場合 に表示されるツールバーのタイトルを指定します。 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 ツールバーの配置を Floating! に変更すると、SetToolbarPos 関数を呼び 出して表示位置を調整するまで、PowerBuilder は最後に取得した表示 位置情報を使用します。 ツールバーは、スクリプトの処理が終了するまで再描画されません。 このため、SetToolbar 関数で配置を設定し、次に SetToolbarPos 関数で位 置を設定しても、エンド ユーザにはツールバーが直接その位置に配置 されたように見えます。 例 次の例は、エンド ユーザがリストボックス コントロール lb_position の 配置を選択できるようにします。選択された文字列は ToolbarAlignment カタログ データ型の値に変換され、インデックス 1 のツールバーの配 置を変更するのに使用されます。 toolbaralignment tba_align CHOOSE CASE lb_position.SelectedItem() CASE "Top" tba_align CASE "Left" tba_align CASE "Right" tba_align CASE "Bottom" tba_align CASE "Floating" tba_align END CHOOSE = AlignAtTop! = AlignAtLeft! = AlignAtRight! = AlignAtBottom! = Floating! w_frame.SetToolbar(1, TRUE, tba_align) PowerScript リファレンス ボリューム 2 1119 SetToolbarPos 次の例では、エンド ユーザはラジオボタンをクリックして配置を選択 します。ラジオボタンの Clicked イベントは、ToolbarAlignment カタロ グ データ型のインスタンス変数を設定します。ここでは、ラジオボタ ンをカスタム ビジュアル ユーザ オブジェクトとしてパッケージ化し ています。i_toolbaralign は、ユーザ オブジェクトのインスタンス変数 です。[Top]ラジオボタンに対するスクリプトは、次のとおりです。 Parent.i_toolbaralign = AlignAtTop! 次のスクリプトは、ツールバーの配置を変更します。 w_frame.SetToolbar(1, TRUE, & uo_toolbarpos.i_toolbaralign ) 関連項目 GetToolbar GetToolbarPos SetToolbarPos SetToolbarPos 指定されたツールバーの表示位置を設定します。 目的 固定ツールバーを配置する位置 浮動ツールバーの座標とサイズ 使用する構文 構文 1 構文 2 構文 1 固定ツールバーの表示位置を設定する 機能 固定ツールバーの表示位置を設定します。 対象 MDI フレーム、シート ウィンドウ 構文 window.SetToolbarPos ( toolbarindex, dockrow, offset, insert ) 引数 window toolbarindex dockrow 1120 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。設定を変更するツールバーのインデックス を指定します。 Integer 型の値。ツールバーを配置する行の番号を指定しま す。配置する行には、左から右、または上から下へ番号が 付けられています。 PowerBuilder 第 10 章 PowerScript の関数 引数 offset 説明 Integer 型の値。ツールバーを配置する行の先頭からの距離 を指定します。上端または下端にあるツールバーの offset は、左端から測定されます。左端または右端にあるツール バーの offset は、上端から測定されます。 insert が TRUE の場合、offset に指定された距離は調整され るので、行内の既存のツールバーとは重なりません。 insert dockrow の先頭にツールバーを配置するには、offset に 0 を 指定します。 Boolean 型の値。toolbarindex を dockrow に挿入するか、ま たは追加するかを指定します。ツールバーを挿入する場合 には、dockrow にあるツールバーの先頭に挿入されます。 したがって、既存のツールバーは右または下の行に移動し ます。値は以下のとおりです。 • TRUE − 指定されたツールバーだけが dockrow に設定さ れるようにします。既存のツールバーは、指定された ツールバーと重ならないように移動されます。 • FALSE − 指定されたツールバーを dockrow に指定され た行に追加します。行でのほかのツールバーとの相対的 な位置は、offset に指定された値によって決まります。 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 固定ツールバーがウィンドウの上端、下端、左端、右端のどこにある かを調べるには、GetToolbar 関数を呼び出します。 ツールバーの配置が固定ではなく浮動の場合、SetToolbar 関数を使用し て配置を固定に変更すると、SetToolbarPos 関数の構文 1 に指定されて いる値が有効になります。 insert が FALSE の場合、dockrow に指定された行の既存のツールバーの 前にツールバーを移動するには、既存のツールバーのオフセットより 小さい値を指定します。既存のツールバーのオフセットが 1 の場合、 offset に 0 を設定すれば、行の先頭にツールバーを移動できます。offset に指定されたオフセットが既存のツールバーのオフセット以上で、既 存のツールバーの終わりよりも前の場合、新しく挿入するツールバー は、既存のツールバーの直後に配置されます。既存のツールバーの終 わりよりも後の場合、ツールバーは offset に指定された位置に配置さ れます。 エンド ユーザがツールバーを固定ツールバーの領域までドラッグす ると、新しい行とオフセットは、SetToolbarPos 関数で設定された値を 置き換えます。 PowerScript リファレンス ボリューム 2 1121 SetToolbarPos 例 次の例は、ツールバー 1 をウィンドウの左端に配置し、1 行目に追加 します。 w_frame.SetToolbar(1, TRUE, AlignAtLeft!) w_frame.SetToolbarPos(1, 1, 1, FALSE) 次の例は、ツールバー 2 をウィンドウの左端に配置し、1 行目に追加 します。オフセット 250 以降に既存のツールバーがある場合は、ツー ルバー 2 のオフセットを増やしてツールバーが重ならないようにしま す。既存のツールバーがない場合、ツールバーはオフセット 250 の位 置に配置されます。 w_frame.SetToolbar(2, TRUE, AlignAtLeft!) w_frame.SetToolbarPos(2, 1, 250, FALSE) 次の例では、ツールバー 1 をウィンドウの左端に配置し、2 行目に追 加します。ウィンドウの左端の行 2 以降にあるツールバーは、行に合 わせて移動します。 w_frame.SetToolbar(1, TRUE, AlignAtLeft!) w_frame.SetToolbarPos(1, 2, 1, TRUE) 関連項目 GetToolbar GetToolbarPos SetToolbar 構文 2 浮動ツールバーの表示位置とサイズを設定する 機能 浮動ツールバーの表示位置とサイズを設定します。 対象 MDI フレーム、シート ウィンドウ 構文 window.SetToolbarPos ( toolbarindex, x, y, width, height ) 引数 window toolbarindex x y width height 1122 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。設定を変更するツールバーのインデックス を指定します。 Integer 型の値。浮動ツールバーの x 座標を指定します。 Integer 型の値。浮動ツールバーの y 座標を指定します。 Integer 型の値。浮動ツールバーの幅を指定します。 Integer 型の値。浮動ツールバーの高さを指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 ツールバーの配置が浮動ではなく固定の場合、SetToolbar 関数を使用し て配置を浮動に変更すると、SetToolbarPos 関数の構文 2 に指定されて いる値が有効になります。 エンド ユーザがツールバーを浮動の領域までドラッグすると、新しい 表示位置の値は、SetToolbarPos 関数で設定された値を置き換えます。 浮動ツールバーのボタンは、適切なサイズに調整されます。指定した 幅と高さが小さすぎてボタンを表示できない場合、ボタンを表示でき るように幅と高さが調整されます。幅と高さの両方が大きすぎる場合、 高さが調整されます。 フレームの外の x 座標と y 座標を指定すると、エンド ユーザはツール バーにアクセスできなくなります。 例 次の例は、ツールバー 1 をフレームの左上隅の近くに表示します。任 意の幅と高さを指定すると、PowerBuilder は必要に応じてツールバー のサイズを変更できるようになります。 w_frame.SetToolbarPos(1, 10, 10, 400, 1) w_frame.SetToolbar(1, TRUE, Floating!) 次の例は、ツールバー 2 をフレームの右下隅の近くに表示します。 GetToolbarPos 関数がツールバーの現行の幅と高さを取得するので、 ツールバーのサイズは変わりません。 integer ix, iy, iw, ih w_frame.GetToolbarPos(2, ix, iy, iw, ih) w_frame.SetToolbarPos(2, & w_frame.WorkspaceWidth()-400, & w_frame.WorkspaceHeight()-400, & iw, ih) w_frame.SetToolbar(2, TRUE, Floating!) 次の例は、浮動ツールバー 2 を MDI フレームの右下隅に配置します。 GetToolbarPos 関数は、ツールバーの現行の幅と高さを取得します。取 得されたマイクロヘルプの幅と高さの値は、浮動ツールバーの x 座標 と y 座標を算出するのに使用されます。 integer ix, iy, iw, ih // ツールバーのサイズを調べます。 w_frame.GetToolbarPos(2, ix, iy, iw, ih) PowerScript リファレンス ボリューム 2 1123 SetTop // サイズを考慮して位置を設定します。 w_frame.SetToolbarPos(2, & w_frame.WorkspaceWidth( ) - iw, & w_frame.WorkspaceHeight( ) & - ih - w_frame.MDI_1.MicroHelpHeight, & iw, ih) // 配置を浮動に設定します。 w_frame.SetToolbar(2, TRUE, Floating!) 関連項目 GetToolbar SetToolbar SetToolbarPos SetTop 機能 リストボックス コントロールまたはピクチャ リストボックス コント ロールをスクロールして、指定の項目をリストの一番上に表示します。 対象 リストボックス コントロール、ピクチャ リストボックス コントロール 構文 listboxname.SetTop ( index ) 引数 listboxname index 説明 スクロールするリストボックス コントロールまたはピク チャ リストボックス コントロールの名前を指定します。 リストの一番上に表示する項目の番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 例 次のステートメントは、lb_Actions の項目 6 をスクロールしてリスト ボックスの一番上に表示します。項目 6 が表示される項目の先頭にな ります。 lb_Actions.SetTop(6) 次のステートメントは、lb_Actions に現在選択されている項目をスク ロールして項目リストの一番上に表示します。 lb_Actions.SetTop(lb_Actions.SelectedIndex()) 関連項目 1124 SetFocus SetState PowerBuilder 第 10 章 PowerScript の関数 SetTraceFileName 機能 BuildModel 関数を呼び出した場合に、PowerBuilder が解析するトレース ファイルの名前を指定します。 対象 Profiling オブジェクトと TraceTree オブジェクト 構文 instancename.SetTraceFileName ( tracefilename ) 引数 instancename tracefilename 戻り値 説明 Profiling オブジェクトまたは TraceTree オブジェクトのイ ンスタンス名を指定します。 String 型の値。PowerBuilder が解析するトレース ファイル の名前を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileOpenError! − ファイルを開くことができませんでした。 • FileInvalidFormatError! − トレース ファイルが正しい形式でありま せん。 • ModelExistsError! − モデルはすでに構築されています。 エラーが発生した場合、名前は設定されません。 解説 この関数では、PowerBuilder が BuildModel 関数で解析するトレース ファ イルを指定します。SetTraceFileName 関数は、BuildModel 関数より前に 呼び出します。 例 次の例は、パフォーマンス解析モデルを構築するトレース ファイルの 名前を提供します。 Profiling lpro_model String ls_line lpro_model = CREATE Profiling lpro_model.SetTraceFileName (filename) ls_line = "CollectionTime = " + & String(lpro_model.CollectionTime ) + "~r~n" & + "Num Activities = " & + String(lpro_model.NumberOfActivities) + "~r~n" lpro_model.BuildModel() ... PowerScript リファレンス ボリューム 2 1125 SetTransPool 関連項目 BuildModel SetTransPool 機能 アプリケーションのデータベース トランザクションのプールを設定 します。SetTransPool 関数を使用すると、データベース接続に関連付け られているオーバーヘッドを最小に抑え、データベース接続の数を制 限することもできます。 対象 Application オブジェクト 構文 applicationname.SetTransPool ( minimum, maximum, timeout ) 引数 applicationname minimum maximum timeout 説明 トランザクション プールを設定するアプリケーション オ ブジェクトの名前を指定します。 プールで開いておくトランザクションの最小数を指定し ます。 プールで開いておくトランザクションの最大数を指定し ます。 トランザクション プールでリクエストが接続待ちできる 秒数を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 トランザクション プールは、一度に開くことのできるデータベース接 続の数を制限すると同時に、データベースのスループットを最大限に 高めます。データベースへ接続する前にトランザクション プールの値 を設定することによって、アプリケーションは同じデータソースへの 接続を再利用することができます。 アプリケーションがトランザクション プールを使用せずにデータ ベースに接続すると、PowerBuilder は DISCONNECT 文が発行された各 データベース処理を物理的に終了します。トランザクション プールが 有効な場合、PowerBuilder は論理的にデータベース接続を終了し、す べてのデータベースへの変更をコミットします。ただし、物理的には 終了しません。したがって、データベース接続はトランザクション プール内で開かれたままになり、ほかのデータベース操作で再利用で きるようになります。 1126 PowerBuilder 第 10 章 PowerScript の関数 PowerBuilder はトランザクション プールのデータベース接続を再利用 するときに、接続要求で指定されたデータベース パラメータがプール にある接続と同じかどうかをチェックします。両方のトランザクショ ン オブジェクトが同じ DBMS、ServerName、LogID、LogPass、Database、 DBParm の値を指定している場合に、両方のデータベース接続は同じ であると判断されます。 SetTransPool 関数で指定された最小値は、最大値以下でなければなりま せん。最小値が最大値よりも小さく、プールのトランザクション数が 最小値より多い場合、PowerBuilder は接続数が最小値になるまで、 DISCONNECT 文が発行されるたびに物理的に接続を終了します。 トランザクション プールで指定された最大値は、アプリケーションで のデータベース接続の合計数を制限します。トランザクション プール のデータベース接続の数が最大値のときに接続要求があると、タイム アウト間隔を超えるまで、その接続は接続待ちの状態になります。タ イムアウト間隔を超えても接続できない場合、その接続はエラーにな ります。 アプリケーションにトランザクション プールを設定するには、データ ベースに接続する前に SetTransPool 関数を発行する必要があります。 例 PowerBuilder のサーバ アプリケーションが分散されている環境で、同 一データ ソースの短いデータベース トランザクションを大量に処理 する場合、そのアプリケーションの Open イベントで次のステートメ ントを発行します。 server_app.SetTransPool(12,16,10) このステートメントは、このサーバを介して 16 個のデータベース接続 をサポートし、12 個の接続を開いたままにしておくことを指定しま す。接続が最大数に達すると、それ以降の各接続要求はプール内で接 続できるようになるまで、10 秒間待ちます。10 秒を超えると、接続は 失敗しますが、エラーは返されません。接続が有効かどうかを確認す るには、DBHandle 関数を使用します。 次のステートメントは、このサーバを介して 8 個のデータベース接続 をサポートし、8 個の接続すべてを開いたままにしておくことを指定 します。トランザクション プールが最大になると、それ以降の接続要 求は即座に失敗します。 server_app.SetTransPool(8,8,0) PowerScript リファレンス ボリューム 2 1127 SetTransPool 関連項目 DBHandle 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの SetTrans メソッド 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの SetTransObject メソッド 1128 PowerBuilder 第 10 章 PowerScript の関数 SharedObjectDirectory 機能 共有するように登録されたオブジェクトのリストを検索します。 構文 SharedObjectDirectory ( instancenames {, classnames } ) 引数 instancenames classnames (オプション) 戻り値 説明 共有するために登録したオブジェクトの名前を格納する 結合していない String 型の配列を指定します。 共有するために登録したオブジェクトのクラス名を格納 する結合していない String 型の配列を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FeatureNotSupportedError! − この関数はこのプラットフォームで はサポートされていません。 解説 この関数を使用して、共有するように登録されたオブジェクトのリス トを取得します。 例 次の例では、アプリケーションが共有オブジェクトとそのクラス名の リストを検索します。 errorreturn status string InstanceNames[] string ClassNames[] status = SharedObjectDirectory(InstanceNames, & ClassNames) 関連項目 SharedObjectGet SharedObjectRegister PowerScript リファレンス ボリューム 2 1129 SharedObjectGet SharedObjectGet 機能 共有オブジェクト インスタンスの参照を取得します。 構文 SharedObjectGet ( instancename , objectinstance ) 引数 instancename objectinstance 戻り値 解説 説明 参照を取得する共有オブジェクト インスタンスの名前を 指定します。指定する名前は、SharedObjectRegister 関数 で最初に登録されたときのオブジェクト インスタンスに 与えられた名前と一致しなければなりません。 共有オブジェクトのインスタンスを格納する PowerObject 型のオブジェクト変数を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • SharedObjectCreateInstanceError! − 共有オブジェクトに対するロー カル参照を作成できませんでした。 • SharedObjectNotExistsError! − そのインスタンス名は登録されてい ません。 SharedObjectGet 関数は、 SharedObjectRegister 関数で作成されたオブジェ クトの参照を検索します。 PowerBuilder クライアント上の共有オブジェクトを使用することで、 EAServer への非同期呼び出しをシミュレートできます。クライアント のメイン スレッドから、共有オブジェクト上の関数を非同期に呼び出 します。このとき渡すコールバック オブジェクトに、サーバ上での処 理の完了時の通知が行われます。共有オブジェクト上のこのメソッド は、処理を実行する EAServer コンポーネント上のメソッドを同期呼び 出しします。共有オブジェクトがクライアント上の個別のスレッド内 で動作しているので、クライアントのメイン スレッドはサーバ上でプ ロセスの動作中にほかの作業を続行できます。 例 次の例では、共有オブジェクトを使用して EAServer コンポーネントの メソッドに対して非同期要求を行った後、データをクライアント アプ リケーション ウィンドウに返しています。クライアントは、そのウィ ンドウに Retrieve ボタンがあり、さらに SetDW 関数、共有オブジェク ト、およびコールバック ハンドラを持ちます。EAServer に配布された コンポーネントがデータベースから従業員の情報を検索します。 ウィンドウの Retrieve ボタンは、EAServer と通信する共有オブジェク トをコールバック ハンドラのインスタンスとともに作成します。 1130 PowerBuilder 第 10 章 PowerScript の関数 // インスタンス変数: // uo_sharedobject iuo_sharedobject // uo_callback iuo_callback long ll_rv SharedObjectRegister("uo_sharedobject","myshare") SharedObjectGet("myshare",iuo_sharedobject) iuo_callback = CREATE uo_callback // ウィンドウの参照をコールバック // オブジェクトに渡します。 iuo_callback.passobject (parent) iuo_sharedobject.post retrievedata(iuo_callback) SetDW 関数は、EAServer コンポーネントから返されたデータウィンドウ Blob 型変数の内容をウィンドウ内のデータウィンドウ コントロール に適用します。 long ll_rv ll_rv = dw_employee.SetFullState(ablb_data) if ll_rv = -1 then MessageBox(" エラー ", "SetFullState の呼び出しに失敗しま した。") end if return ll_rv 共有オブジェクトの Constructor イベントは、カスタム接続オブジェクト n_jagclnt_connect を使用してサーバに接続します。次に、EAServer コン ポーネントのインスタンスを作成します。 // インスタンス変数: // uo_employee iuo_employee // n_jagclnt_connect myconnect Constructor event long ll_rc myconnect = create n_jagclnt_connect ll_rc = myconnect.ConnectToServer() ll_rv = myconnect.CreateInstance(iuo_employee, & "uo_employee") 共有オブジェクトには、EAServer コンポーネント上の RetrieveData 関 数を同期呼び出しする単一の関数 RetrieveData があります。 PowerScript リファレンス ボリューム 2 1131 SharedObjectGet RetrieveData 関数はその処理が完了すると、コールバック オブジェクト 上の Notify 関数を呼び出し、サーバ コンポーネントから返されたデー タウィンドウ Blob 型変数を Notify 関数に渡します。 blob lblb_data long ll_rv ll_rv = iuo_employee.retrievedata(lblb_data) auo_callback.notify(lblb_data) return ll_rv EAServer コンポーネントが処理を完了すると、共有オブジェクトが ユーザ オブジェクト uo_callback に通知し、続いて uo_callback オブジェ クトが w_employee ウィンドウに通知します。uo_callback オブジェクト は、Notify と PassObject の 2 つ の 関 数 を 持 ち ま す。Notify 関 数 は、 w_employee ウィンドウ上の SetDW 関数を呼び出し、 サーバ コンポーネ ントから返されたデータウィンドウ Blob 型変数を SetDW 関数に渡し ます。 long ll_rv ll_rv = iw_employee.setdw(ablb_data) if ll_rv = -1 then MessageBox(" エラー ", "SetDW の呼び出しに失敗しました。") end if return ll_rv コールバック ハンドラの PassObject 関数は、w_employee ウィンドウの 参照をキャッシュに入れます(iw_employee インスタンス変数内に格納 します)。この関数は、w_employee 型である引数 aw_employee をとり、 Long 型の値を返します。 iw_employee = aw_employee return 1 EAServer コンポーネントは、PowerBuilder ユーザ オブジェクト uo_employee です。uo_employee オブジェクトには、データストアを使 用してデータベースから従業員の行を検索する RetrieveData 関数があり ます。 // インスタンス変数: // protected TransactionServer txnsrv // protected DataStore ids_datastore long ll_rv ll_rv = ids_datastore.Retrieve() ll_rv = ids_datastore.GetFullState(ablb_data) txnsrv.SetComplete() return ll_rv 1132 PowerBuilder 第 10 章 PowerScript の関数 関連項目 SharedObjectRegister SharedObjectUnregister 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GetFullState メソッド と SetFullState メソッド SharedObjectRegister 機能 ユーザ オブジェクトを登録して共有できるようにします。 構文 SharedObjectRegister ( classname , instancename ) 引数 classname instancename 戻り値 解説 説明 共有するユーザ オブジェクトの名前を指定します。 共有オブジェクト インスタンスに割り当てる名前を指定 する文字列値です。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • SharedObjectExistsError! − そのインスタンス名はすでに使用され ています。 • SharedObjectCreateInstanceError! − オブジェクトは作成できません でした。 • SharedObjectCreatePBSessionError! − 共有オブジェクト セッション は作成できませんでした。 SharedObjectRegister 関数を呼び出すときに、PowerBuilder は、共有オブ ジェクト用に別のランタイム セッションを開き、共有オブジェクトを 作成し ます。そ のオブ ジェク ト イン スタン スに指 定した 名前で、 SharedObjectGet 関数を使ってそのオブジェクト インスタンスにアクセ スできます。 PowerBuilder クライアント上の共有オブジェクトを使用することで、 EAServer への非同期呼び出しをシミュレートできます。詳細について は、SharedObjectGet 関数の説明を参照してください。 PowerScript リファレンス ボリューム 2 1133 SharedObjectUnregister 例 次の例では、ユーザ オブジェクト uo_customers を登録し、共有できる ようにします。共有オブジェクト インスタンスに割り当てられる名前 は、share1 です。オブジェクトを登録してからは、アプリケーション は SharedObjectGet 関数を使ってオブジェクト変数にオブジェクトのイ ンスタンスを格納します。 SharedObjectRegister("uo_customers", "share1") SharedObjectGet("share1",shared_object) 関連項目 SharedObjectGet SharedObjectUnregister SharedObjectUnregister 機能 以前に登録されたユーザ オブジェクトの登録を取り消します。 構文 SharedObjectUnregister ( instancename ) 引数 instancename 戻り値 解説 説明 共有オブジェクト インスタンスにそれが最初に登録され たときに割り当てられた名前を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • SharedObjectNotExistsError! − そのインスタンス名は登録されてい ません。 この関数は、共有オブジェクトを破棄するように印を付けます。しか し、マークされたオブジェクトは実際にはそのオブジェクトへの参照 がなくなるまで破棄されません。 PowerBuilder クライアント上の共有オブジェクトを使用することで、 EAServer への非同期呼び出しをシミュレートできます。詳細について は、SharedObjectGet 関数の説明を参照してください。 例 次の例では、アプリケーションが share1 と呼ばれるオブジェクト イン スタンスの登録を取り消します。 SharedObjectUnregister("share1") 関連項目 1134 SharedObjectRegister PowerBuilder 第 10 章 PowerScript の関数 Show 機能 オブジェクトやコントロールが非表示のとき、それを表示します。そ のオブジェクトがすでに表示されているとき、Show 関数はそれを最前 面に表示します。 対象 すべてのオブジェクト 構文 objectname.Show ( ) 引数 objectname 説明 見える状態にする(表示する)オブジェクトまたはコント ロールの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。objectname が NULL の場合、NULL を返します。 解説 指定されたオブジェクトが開かれていないウィンドウの場合、実行時 にエラーが発生します。 Show 関数では、ドロップダウン メニュー、カスケード メニュー、お よび親ウィンドウが MDI フレーム ウィンドウであるメニューを表示 することはできません。 別の記述方法 Show 関数を呼び出すかわりに、オブジェクトの Visible プロパティを設定できます。 objectname.Visible = true たとえば、次のようなステートメントがあるとします。 m_status.m_options.Visible = TRUE このステートメントは、次のステートメントと同じ意味です。 m_status.m_options.Show() 例 次のステートメントは、メニュー m_status のメニュー項目 m_options を 表示します。 m_status.m_options.Show() 次のステートメントは、チャイルド ウィンドウ w_child を表示します。 w_child.Show() 関連項目 Hide PowerScript リファレンス ボリューム 2 1135 ShowHeadFoot ShowHeadFoot 機能 リッチテキスト エディット コントロールで、ヘッダとフッタを編集す るパネルを表示するか、またはパネルを非表示にしてメイン テキスト の編集画面に戻ります。 対象 リッチテキスト エディット コントロール、提示様式がリッチテキスト のデータウィンドウ コントロール 構文 rtename.ShowHeadFoot ( editheadfoot ) 引数 rtename editheadfoot 説明 ヘッダとフッタを編集するリッチテキスト エディット コ ントロールまたはデータウィンドウ コントロールの名前 を指定します。 表示する編集パネルを指定する Boolean 型の値。値は以下 のとおりです。 • TRUE − ヘッダとフッタの編集パネル • FALSE − メイン テキストの編集パネル 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ShowHeadFoot 関数は、コントロールがプレビュー モードまたはメイン テキストの編集モードで表示されている場合に有効です。コントロー ルがプレビュー モードで表示されている場合にこの関数を呼び出す と、編集モードに戻ります。editheadfoot に指定された値は、メイン テ キストのパネルを表示するか、ヘッダとフッタのパネルを表示するか を決めます。 ヘッダとフッタには、ページ番号と日付の入力フィールドを含めるこ とができます。PrintHeader イベントと PrintFooter イベントのスクリプ トは、これらのフィールドに値を設定することができます。 データウィンドウ コントロールの場合、データウィンドウ オブジェク トの提示様式がリッチテキストでないときには、ShowHeadFoot 関数は 無効です。 例 次の例は、ヘッダとフッタの編集パネルを表示し、エンド ユーザがそ の内容を指定できるようにします。 rte_1.ShowHeadFoot(TRUE) 関連項目 1136 Preview PowerBuilder 第 10 章 PowerScript の関数 ShowHelp 機能 PowerBuilder のアプリケーション用に作成した Microsoft Windows ベー スのヘルプ システムまたはコンパイル済みの HTML ヘルプ ファイル へのアクセスを提供します。ShowHelp 関数を呼び出すと、PowerBuilder はヘルプを実行可能にし、指定されたヘルプ ファイルを表示します。 構文 ShowHelp ( helpfile, helpcommand {, typeid } ) 引数 helpfile helpcommand 説明 コンパイル済みの HLP ファイルまたは CHM(HTML ヘル プ)ファイルの名前を表す文字列を指定します。 HelpCommand カタログ データ型の値。値は以下のとおり です。 • Finder! − ヘルプ ファイルを前回の使用状態で表示しま す(WinHelp のヘルプ トピック ダイアログボックスま たは HTML ヘルプ ビューアのナビゲータ ペインにお いて、ヘルプ ファイルで前回使用されたタブまたはデ フォルト タブを開いた状態)。 • Index! − ヘルプ ファイルのトップレベルの目次トピッ クを表示します。 • Keyword! − typeid で指定されたキーワードによって識 別されるトピックを表示します。 • Topic! − typeid で指定された数によって識別されるト ピックを表示します。 typeid (オプション) helpcommand に Topic! を指定した場合、トピックを識別す る番号を指定します。Keyword! を指定した場合、ヘルプ トピックのキーワードを表す文字列を指定します。 helpcommand が Finder! または Index! の場合、typeid は指定 しません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。helpcommand が Finder! または Index! の場合に typeid を 指定したときには、-1 を返します。引数のいずれかの値が NULL の場 合、NULL を返します。 解説 状況依存ヘルプを提供するには、アプリケーションの適切なスクリプ ト内で、トピック ID やキーワードを指定して ShowHelp 関数を呼び出 します。 helpcommand に Keyword! を指定した場合に typeid の文字列が固有値で ないときには、ヘルプ検索ウィンドウを表示します。 PowerScript リファレンス ボリューム 2 1137 ShowPopupHelp PowerBuilder アプリケーションのオンライン ヘルプ ファイルを作成す る方法についての詳細は、 『アプリケーション テクニック』マニュア ルで、オンライン ヘルプの作成に関する章を参照してください。 例 次のステートメントは、INQ.HLP ファイルのヘルプ インデックスを表 示します。 ShowHelp("C:\PB\INQ.HLP", Index!) 次のステートメントは、EMP.HLP ファイルのヘルプ トピック 143 を表 示します。 ShowHelp("EMP.HLP", Topic!, 143) 次のステートメントは、EMP.HLP ファイルのキーワード Part# に関連 するヘルプ トピックを表示します。 ShowHelp("EMP.HLP", Keyword!, "Part#") 次のステートメントは、ヘルプ検索ウィンドウを表示します。キーワー ドのリストの上のボックスには、M で始まるキーワードのうち先頭の キーワードが表示されます。 ShowHelp("EMP.HLP", Keyword!, "M") 関連項目 Help ShowPopupHelp ShowPopupHelp 機能 指定したコントロールのポップアップ ヘルプを表示します。 対象 すべてのコントロール 構文 ShowPopupHelp ( helpfile, control, contextid ) 引数 helpfile control contextid 戻り値 説明 使用するヘルプ ファイル名を表す文字列を指定します。 ポップアップ ヘルプを表示する DragObject 型の値を指定 します。 コンテキスト ID 番号を表す Long 型の値を指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 1138 PowerBuilder 第 10 章 PowerScript の関数 解説 ShowPopupHelp の呼び出しが行われる場所は一般的に、 Context Help(状 況依存ヘルプ)プロパティを有効にしたレスポンス ウィンドウの Help イベント内です。コントロール上でのカーソルの移動に関連するイベ ントや、コントロールまたはオブジェクトのドラッグに関連するイベ ントもまた、ShowPopupHelp 関数の呼び出しを行うのに適した場所で す。 contextid 引数には、正しいコンテキスト ID 番号を入力する必要があり ます。そうでない場合、ShowPopupHelp 関数を呼び出した項目のヘル プ トピックが存在しないことを通知するメッセージが表示されます。 例 次の例は、現行ディレクトリのサブディレクトリ内にあるヘルプ ファ イルを呼び出します。 ShowPopupHelp ( "Help/my_app.hlp", this, 510) 関連項目 Help ShowHelp Sign 機能 指定された数値の符号を調べ、数値が正、負、0 のいずれであるかを 示す数値を返します。 構文 Sign ( n ) 引数 n 説明 符号を調べる数値を指定します。 戻り値 Integer 型。n で指定された数値の符号を示す数字(-1、0、1)を返しま す。n が NULL の場合、NULL を返します。 例 次のステートメントは、1 を返します。1 は、正の符号を表します。 Sign(5) 次のステートメントは、0 を返します。0 は、符号が付かないことを表 します。 Sign(0) 次のステートメントは、-1 を返します。-1 は、負の符号を表します。 Sign(-5) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Sign メソッド PowerScript リファレンス ボリューム 2 1139 SignalError SignalError 機能 アプリケーション レベルで SystemError イベントを起動します。 構文 SignalError ( { number }, { text } ) 引数 number (オプション) text (オプション) 説明 メッセージ オブジェクトで使用する整数(エラー オブ ジェクトの数値プロパティに保存されている)を指定しま す。 メッセージ オブジェクトで使用する文字列(エラー オブ ジェクトのテキスト プロパティに保存される)を指定しま す。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。通常、戻り値は使用されません。 解説 SignalError 関数は、開発中にエラー処理のスクリプトをテストするのに 使用します。PopulateError 関数を呼び出してエラー オブジェクトを表 示し、 引数なしで SignalError 関数を呼び出すことができます。 SystemError イベントのスクリプトがそのエラーをどのように扱うかを調べること ができます。SignalError 関数にオプションの number および text の引数 を 渡すと、エラー オブ ジェク トのす べての フィー ルドを 満たし、 SystemError イベントを発生させます。 SignalError 関数は、実際にアプリケーションを実行するときにも便利で す。たとえば、アプリケーションを続行できない重大なエラーをエン ド ユーザが発生させた場合、エラー オブジェクトに独自のエラー番号 の値を設定して SignalError 関数を呼び出します。SystemError イベント のスクリプトには、独自のエラー番号に対するエラーを処理するよう に記述する必要があります。SystemError イベントに対するスクリプト がないときは、SignalError 関数は何もしません。 アプリケーション エラーが発生したときに、エラー オブジェクトの Number プロパティに割り当てる実行時エラーの番号の詳細について は、 『PowerBuilder ユーザーズ ガイド』マニュアルを参照してください。 例 次のステートメントは、エラー オブジェクトに値を設定してから SystemError イベントを起動し、これらの値に対するエラー処理をテス トすることができます。 int error_number string error_text Error.Number = 1010 Error.Text = "Salary must be a positive number." Error.Windowmenu = "w_emp" 1140 PowerBuilder 第 10 章 PowerScript の関数 error_number = Error.Number error_text = Error.Text SignalError(error_number, error_text) 関連項目 PopulateError Sin 機能 角度の正弦値を計算します。 構文 Sin ( n ) 引数 n 説明 正弦値を計算する角度(ラジアン)を指定します。 戻り値 Double 型。n の正弦値を返します。n が NULL の場合、NULL を返します。 例 次のステートメントは、.8414709848078965 を返します。 Sin(1) 次のステートメントは、0 を返します。 Sin(0) 次のステートメントは、0 を返します。 Sin(Pi(1)) 関連項目 ASin Cos Pi Tan 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Sin メソッド PowerScript リファレンス ボリューム 2 1141 Sleep Sleep 機能 指定した期間、アプリケーションを一時停止します。 構文 Sleep ( seconds ) 引数 seconds 戻り値 説明 Long 型の値。アプリケーションを一時停止させる秒数を 指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 例 次の例は、アプリケーションを 5 秒間、一時停止させます。 Sleep ( 5 ) Sort データウィンドウ コントロール、データストア オブジェクトまたは子 データウィンドウ、あるいはツリービュー またはリストビュー コント ロールの行をソートします。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアルまたはオンライン ヘルプの 「Sort メソッド」を参照してください。 ソートの対象 ツリービュー コントロールの項目 リストビュー コントロールの項目 使用する構文 構文 1 構文 2 構文 1 ツリービュー コントロールの項目をソートする 機能 ツリービュー コントロールの項目の子をソートします。 対象 ツリービュー コントロール 構文 treeviewname.Sort ( itemhandle , sorttype ) 引数 treeviewname itemhandle 1142 説明 ツリービュー コントロールの名前を指定します。指定され たコントロールの項目をソートします。 項目を指定します。指定された項目の子をソートします。 PowerBuilder 第 10 章 PowerScript の関数 引数 sorttype 説明 ソートする方法を指定します。次のいずれかの値を指定し ます。 Ascending! Descending! UserDefinedSort! 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 Sort 関数は、指定した項目のすぐ下のレベルだけをソートします。複 数のレベルをソートする場合、SortAll 関数を使用します。sorttype に UserDefinedSort! を指定した場合、ツリービュー コントロールの Sort イ ベントで独自のソート条件を定義します。ツリービュー コントロール のレベル 1 をソートするには、itemhandle を 0 に設定します。 例 次の例は、ツリービュー コントロールの現行の項目の子をソートしま す。 long ll_tvi ll_tvi = tv_foo.FindItem(CurrentTreeItem! , 0) tv_foo.SetRedraw(false) tv_foo.Sort(ll_tvi , Ascending!) tv_foo.SetRedraw(true) 関連項目 SortAll 構文 2 リストビュー コントロールの項目をソートする 機能 リストビュー コントロールの項目をソートします。 対象 リストビュー コントロール 構文 listviewname.Sort ( sorttype, { column } ) 引数 listviewname sorttype column (オプション) PowerScript リファレンス ボリューム 2 説明 リストビュー コントロールを指定します。指定されたコン トロールの項目をソートします。 使用するソート方法を指定します。値は以下のとおりです。 Ascending! Descending! Unsorted! UserDefinedSort! カラム番号を指定します。指定されたカラムに基づいてリ ストビュー コントロールの項目をソートします。 1143 SortAll 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 特に指定しない限り、英数字がソートされます。 ソートするカラムを指定しなかった場合には、最初のカラムがソート されます。 例 次の例は、リストビュー コントロールのカラム 3 の項目をソートしま す。 lv_list.SetRedraw(false) lv_list.Sort(Ascending! , 3) lv_list.SetRedraw(true) 関連項目 SortAll SortAll 機能 ツリービュー コントロールの項目の階層構造で、すべての下位項目を ソートします。 対象 ツリービュー コントロール 構文 treeviewname.SortAll ( itemhandle, sorttype ) 引数 treeviewname itemhandle sorttype 説明 項目の階層構造で下位レベルをソートするツリービュー コントロールの名前を指定します。 すべての下位レベルをソートする項目を指定します。 ソートする方法を指定します。値は以下のとおりです。 Ascending! Descending! Unsorted! UserDefinedSort! 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 sorttype に UserDefinedSort! を指定した場合、ツリービュー コントロー ルの Sort イベントで独自のソート条件を定義します。 SortAll 関数では、ツリービューのレベル 1 をソートできません。しか し、レベル 1 はツリービューの SortType プロパティがソートを呼び出 したときに自動的にソートされます。 1144 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、現行のツリービュー コントロールの項目のすべての下位項 目をソートします。 long ll_tvi // 現行のツリービュー コントロールの項目を検索します。 ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) // すべての子をソートします。 tv_list.SortAll(ll_tvi , Ascending!) 次の例は、ツリービュー コントロール全体をソートします。 long ll_tvi // ツリービュー コントロールの最上位の項目を検索します。 ll_tvi = tv_list.FindItem(RootTreeItem!, 0) // すべての子をソートします。 tv_list.SortAll(ll_tvi , Ascending!) 関連項目 Sort PowerScript リファレンス ボリューム 2 1145 Space Space 機能 指定された長さのスペース(半角)で構成される文字列を返します。 構文 Space ( n ) 引数 n 説明 スペース(空白文字)で構成される文字列の長さを指定す る Long 型の数値を指定します。最大値は、文字列の最大 の長さである 2,147,483,647 です。 戻り値 String 型。正常に終了した場合は n 個のスペースを持つ文字列を返し、 エラーが発生した場合には空の文字列("")を返します。n が NULL の 場合、NULL を返します。 例 次のステートメントは、Name に 4 つのスペースを持つ文字列を代入し ます。 string Name Name = Space(4) 次のステートメントは、文字列 Name に 40 個のスペースを代入します。 string Name Name = Space(40) 関連項目 1146 Fill 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Space メソッド PowerBuilder 第 10 章 PowerScript の関数 Sqrt 機能 ある数値の平方根を計算します。 構文 Sqrt ( n ) 引数 n 説明 平方根を計算する数値を指定します。 戻り値 Double 型。正常に終了した場合は n で指定された数値の平方根を返し ます。n が NULL の場合、NULL を返します。 解説 Sqrt(n) は、n^.5 と同じ意味です。 負の数の平方根を計算しようとすると、実行時にエラーが発生します。 例 次のステートメントは、1.414213562373095 を返します。 Sqrt(2) 次のステートメントは、実行時にエラーが発生します。 Sqrt(-2) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Sqrt メソッド PowerScript リファレンス ボリューム 2 1147 Start Start Start 関数には、2 つの構文があります。 目的 パイプライン オブジェクトを実行する タイミング オブジェクトをアクティブ化する 使用する構文 構文 1 構文 2 構文 1 パイプライン オブジェクトを実行する 機能 パイプライン オブジェクトを実行し、パイプライン オブジェクトの SQL クエリによって指定された転送先に、転送元からデータを転送し ます。このパイプライン オブジェクトは、パイプライン システム オ ブジェクトから継承したユーザ オブジェクトのプロパティを持ちま す。 対象 パイプライン オブジェクト 構文 pipelineobject.Start ( sourcetrans, destinationtrans, errorobject {, arg1, arg2,..., argn } ) 引数 pipelineobject sourcetrans destinationtrans errorobject argn (オプション) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は 負の値を返します。エラーが発生した場合、次のいずれかの値を返し ます。 -1 -2 -3 -4 -5 -6 1148 説明 実行するパイプライン オブジェクトを含むパイプライン ユーザ オブジェクトの名前を指定します。 転送元のデータベースに接続するために使用するトラン ザクション オブジェクトの名前を指定します。 転送先のデータベースに接続するために使用するトラン ザクション オブジェクトの名前を指定します。 パイプライン エラー データウィンドウを格納するデータ ウィンドウ コントロールまたはデータストアの名前を指 定します。 データ パイプライン ペインタのパイプライン オブジェク トに指定された 1 つ以上の検索引数を指定します。 パイプのオープンに失敗しました。 カラムの数が多すぎます。 テーブルはすでに存在しています。 テーブルが存在しません。 接続していません。 引数に誤りがあります。 PowerBuilder 第 10 章 PowerScript の関数 -7 カラムが一致していません。 -8 転送元に致命的な SQL のエラーがあります。 -9 転送先に致命的な SQL エラーがあります。 -10 エラーの最大数を超えました。 -12 テーブル構文に誤りがあります。 -13 必要なキーが与えられていません。 -15 パイプはすでに進行中です。 -16 転送元のデータベースにエラーがあります。 -17 転送先のデータベースにエラーがあります。 -18 転送先のデータベースは読み出し専用です。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 パイプラインの転送には、複数の PowerBuilder のオブジェクトが関連 します。次のオブジェクトが必要です。 • パイプライン オブジェクト。データ パイプライン ペインタで定義 します。どのようなデータを転送するのか、またはそのデータを 転送元のデータベースのテーブルから転送先のデータベースの テーブルにどのようにマッピングするのかを指定する SQL 文が含 まれます。 • ユーザ オブジェクト。パイプライン システム オブジェクトから継 承されたものです。パイプライン転送の進行をチェックするため のプロパティを引き継いでいます。ペインタで、インスタンス変 数を定義し、パイプラインのイベントに対するスクリプトを記述 します。 • ウィンドウ。パイプライン エラー データウィンドウとして使用す るデータウィンドウ コントロールまたはデータストアを持ってい ます。データウィンドウ オブジェクトを、そのデータウィンドウ コントロールに配置しないでください。パイプラインの実行時に エ ラ ー が 発 生 し た 場 合、デ ー タ ウ ィ ン ド ウ コ ン ト ロ ー ル は、 PowerBuilder のパイプライン エラー データウィンドウ オブジェク トを表示します。 また、ウィンドウには、パイプラインの実行、エラーの修復、キャン セルなどを行うためのボタンやメニューなどを持たせることもできま す。これらを実行するスクリプトには、Start 関数、Repair 関数、およ び Cancel 関数を使用します。 PowerScript リファレンス ボリューム 2 1149 Start アプリケーションがパイプラインを実行する前に、転送元と転送先の データベースを接続し、ユーザ オブジェクトのインスタンスを作成 し、ユーザ オブジェクトの DataObject プロパティにパイプライン オブ ジェクトを割り当てておく必要があります。その後で、Start 関数を呼 び出してパイプラインを実行します。1 つまたは複数のスクリプトに、 この処理を記述します。 パイプラインを実行すると、転送されるデータはデータ パイプライン ペインタで定義した内容に従ってコミットされます。次のような指定 ができます。 • パイプラインが終了すると、データはコミットされます。エラー限 界の最大数を超えると、すべてのデータがロールバックされます。 • 指定された行数が転送された後、データは通常のインターバルで コミットされます。エラー限界の最大数を超えたときは、転送さ れたすべての行がコミットされます。 データ パイプライン ペインタにおけるパイプライン オブジェクトの 指定方法や、その設定がコミットに与える影響についての詳細は、 『PowerBuilder ユーザーズ ガイド』マニュアルを参照してください。ア プリケーションにおけるパイプラインの使用についての詳細は、 『アプ リケーション テクニック』マニュアルを参照してください。 動的にパイプライン オブジェクトをユーザ オブジェクトの DataObject プロパティに割り当てる場合、アプリケーションの実行ファイルを構 築するときに、パイプライン オブジェクトを動的ライブラリに含める 必要があることに注意してください。 例 次のスクリプトでは、パイプライン ユーザ オブジェクトのインスタン スを作成し、そのパイプライン ユーザ オブジェクトの DataObject プロ パティにパイプライン オブジェクトを割り当て、その後でパイプライ ンを実行します。i_src と i_dst はあらかじめ宣言され、作成されたトラ ンザクション オブジェクトです。別のスクリプトでデータベースの接 続を確立しています。 u_pipe は、 パイプライン システム オブジェクトを継承したユーザ オブ ジェクトです。i_upipe は、u_pipe 型のインスタンス変数です。p_pipe は、データ パイプライン ペインタで作成されたパイプライン オブジェ クトです。 i_upipe = CREATE u_pipe i_upipe.DataObject = "p_pipe" i_upipe.Start(i_src, i_dst, dw_1) 関連項目 1150 Cancel Repair PowerBuilder 第 10 章 PowerScript の関数 構文 2 タイミング オブジェクトをアクティブ化する 機能 Timer イベントを指定された間隔で繰り返し行われるようにするタイ ミング オブジェクトをアクティブにします。 対象 タイミング オブジェクト 構文 timingobject.Start ( interval ) 引数 timingobject interval 説明 アクティブにしたいタイミング オブジェクトの名前を指 定します。 Timer イベント間の秒数を Double 型で指定します。interval は 0 より大きく 4,294,967 秒以下の自然数または分数で指 定できます。間隔 0 は無効です。 戻り値 Integer 型。正常に終了した場合は、1 を返します。タイマーがすでに 実行されている場合、指定された間隔が無効な場合、または使用でき るシステム タイマーがない場合は、-1 を返します。 解説 Start 関数のこの構文は、非表示のタイミング オブジェクトをアクティ ブにするのに使用されます。タイミング オブジェクトは、PowerBuilder ウィンドウと関連付けられていない Timer イベントを起動するために 使用できます。したがって、各クライアント接続用のウィンドウがな い分散アプリケーション サーバまたは共有オブジェクトには便利で す。 タイミング オブジェクトは、Timing システム オブジェクトから継承さ れた標準クラス ユーザ オブジェクトです。タイミング オブジェクト を作成し、その Timer イベントをコーディングすると、オペレーティ ング システムの制限内でオブジェクトのインスタンスをいくつでも 作成できます。オペレーティング システムは、タイマーの固定された 数値をサポートします。これらのタイマーのいくつかは、PowerBuilder およびそのほかのアプリケーションまたはオペレーティング システ ム自身ですでに使用されています。 タイミング オブジェクトのインスタンスをアクティブにするには、 Timer イベント間の interval を指定する Start 関数を呼び出します。その インスタンスの Timer イベントは指定された間隔の後ですぐに起動さ れ、タイミング オブジェクトのそのインスタンスで Stop 関数が呼び出 されるまで、またはそのオブジェクトが破棄されるまで継続します。 PowerScript リファレンス ボリューム 2 1151 Start Timer イベントはいつ起こるか Start 関数に指定される interval は Timer イベントの間隔の最小値です。 そのほかのすべてのポストされたイベントは Timer イベントの前に起 こります。 間隔の精度は、オペレーティング システムによって異なります。 タイミング間隔をいくつにするか、およびタイマー オブジェクトの Interval と Running プロパティにアクセスすることによってタイマーを 実行するかどうかを決めることができます。これらのプロパティは、 読み込みのみのアクセスです。タイミング間隔の値を変更するには、 タイマーをストップし再起動しなければなりません。 ガベージ コレクション タイミング オブジェクトが実行されていれば、ガベージ コレクション にはまわされません。ガベージコレクションは、タイミング オブジェ クトが実行されておらず、それに対する参照がないときにのみ起こり ます。 例 例 1 ローカル クライアントが、データベースの値に基づいて株券の ポートフォリオの値を計算するなどのいくつかの処理を行う分散処理 アプリケーションがあるとします。クライアントは、データベースか らデータの値を検索するためにリモート サーバ上のユーザ オブジェ クトを要求します。 標準クラス ユーザ オブジェクトを Timing システム オブジェクトから 継承された uo_timer と呼ばれるサーバに作成し、データをリフレッ シュするためにその Timer イベントをコーディングします。続いて、以 下のスクリプトがタイミング オブジェクト uo_timer のインスタンス、 MyTimer を作成します。Start 関数は、サーバへの要求が 60 秒の間隔で 発行されるように 60 秒ごとにタイマーをアクティブにします。 uo_timer MyTimer MyTimer = CREATE uo_timer MyTimer.Start(60) 1152 PowerBuilder 第 10 章 PowerScript の関数 次の例では、タイマーを起動し、ヒット数を数え、タイマーをス トップし、ウィンドウを閉じるためのボタンがあるウィンドウの共有 オブジェクトとしてタイミング オブジェクトを使用しています。ス テータスは、sle_state と呼ばれるシングルライン エディットで示され ます。タイミング オブジェクトである uo_timing は、Timing システム オブジェクトから継承された標準クラス ユーザ オブジェクトです。接 続の回数を維持する 1 つのインスタンス変数を持ちます。 例2 long il_hits タイミング オブジェクト、uo_timing は 3 つの関数を持ちます。 • of_connect は、il_hits を加算し、整数を返します(この例では、簡 略にするために接続スクリプトを省略します)。 il_hits++ // 接続スクリプトは省略されました。 RETURN 1 • of_hitcount は、il_hits の値を返します。 RETURN il_hits • of_resetcounter はカウンタの値を 0 にリセットします。 il_hits = 0 uo_timing の Timer イベントは、of_connect 関数を呼び出します。 integer li_err li_err = This.of_connect() IF li_err <> 1 THEN MessageBox(" タイマー エラー ", " 接続に失敗しました ") END IF メイン ウィンドウ(w_timer)が開かれると、その Open イベント スク リプトは、uo_timing ユーザ オブジェクトを共有オブジェクトとして登 録します。 ErrorReturn result string ls_result SharedObjectRegister("uo_timing","Timing") result = SharedObjectGet("Timing", iuo_timing) // カタログ データ型を文字列に変換します。 ls_result = of_converterror(result) IF result = Success! THEN sle_stat.text = "Object Registered" PowerScript リファレンス ボリューム 2 1153 Start ELSE MessageBox(" 失敗 ", "SharedObjectGet が失敗しました。" & + " ステータス コード:"+ls_result) END IF タイマー開始ボタンは 5 秒の間隔でタイマーを開始させます。 double ld_interval integer li_err IF (isvalid(iuo_timing)) THEN li_err = iuo_timing.Start(5) ld_interval = iuo_timing.interval sle_2.text = "Timer started.Interval is " & + string(ld_interval) + " seconds" // タイマー開始ボタンを無効にします。 THIS.enabled = FALSE ELSE sle_2.text = "No timing object" END IF ヒット数取得ボタンは、of_hitcount 関数を呼び出し、シングルライン エ ディットに結果を書き込みます。 long ll_hits IF (isvalid(iuo_timing)) THEN ll_hits = iuo_timing.of_hitcount() sle_hits.text = string(ll_hits) ELSE sle_hits.text = "" sle_stat.text = "Invalid timing object..." END IF タイマー ストップ ボタンは、タイマーを止め、タイマー開始ボタンを 再度有効にし、ヒット カウンタをリセットします。 integer li_err IF (isvalid(iuo_timing)) THEN li_err = iuo_timing.Stop() IF li_err = 1 THEN sle_stat.text = "Timer stopped" cb_start.enabled = TRUE iuo_timing.of_resetcounter() ELSE sle_stat.text = "Error - timer could " & not be stopped" 1154 PowerBuilder 第 10 章 PowerScript の関数 END IF ELSE sle_stat.text = "Error - no timing object" END IF 閉じるボタンは、タイマーが停止したかどうかおよびウィンドウがあ る場合はウィンドウを閉じたかをチェックします。 IF iuo_timing.running = TRUE THEN MessageBox(" エラー "," 閉じる前に、タイマー ストップ " & + " ボタンをクリックしてクリーンアップしてください。") ELSE close(parent) END IF ウィンドウの Close イベントが共有タイミング オブジェクトの登録を 取り消します。 SharedObjectUnregister("Timing") of_converterror window 関数が、ErrorReturn カタログ データ型を文字列 に変換します。ErrorReturn 型の引数を取ります。 string ls_result CHOOSE CASE a_error CASE Success! ls_result = "The function succeeded" CASE FeatureNotSupportedError! ls_result = "Not supported on this platform" CASE SharedObjectExistsError! ls_result = "Instance name already used" CASE MutexCreateError! ls_result = "Locking mechanism unobtainable" CASE SharedObjectCreateInstanceError! ls_result = "Object could not be created" CASE SharedObjectCreatePBSessionError! ls_result = "Could not create context session" CASE SharedObjectNotExistsError! ls_result = "Instance name not registered" CASE ELSE ls_result = "Unknown Error Code" END CHOOSE RETURN ls_result 関連項目 Stop PowerScript リファレンス ボリューム 2 1155 StartHotLink StartHotLink 機能 DDE サーバ アプリケーションとホット リンクを確立して、指定され たデータに変更があれば、すぐに PowerBuilder にその変更が通知され るようにします。DDE サーバ アプリケーション内でデータが変更され ると、DDE アプリケーションで HotLinkAlarm イベントが起動します。 構文 StartHotLink ( location, applname, topic ) 引数 location applname topic 戻り値 説明 データの位置を示す文字列を指定します。ここに値の変更 があると HotLinkAlarm イベントが起動します。位置を表 す書式は、そのデータを持つアプリケーションによって異 なります。 String 型の値。サーバ アプリケーションの DDE 名を表す 文字列を指定します。 データまたはアプリケーションのインスタンスを識別する 文字列を指定します。ここに変更があると、HotLinkAlarm イベントが起動します。たとえば、Microsoft Excel の場 合、トピック名を開かれているスプレッドシートの名前 にします。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、以下の負の整数のいずれかを返します。値は以下のとおりです。 -1 -2 サーバがありません。 リクエストが拒否されました。 引数のいずれかの値が NULL の場合、NULL を返します。 解説 例 ホット リンクの確立後、HotLinkAlarm イベントに対するスクリプトで 次の関数を呼び出すことができます。 • GetDataDDEOrigin 関数 − どのアプリケーションがデータの変更を 通知したかを調べます。 • GetDataDDE 関数 − 新しいデータを取得します。 • RespondRemote 関数 − データを受け取ったことを通知します。 次の例では、ある PowerBuilder アプリケーションが StartServerDDE 関 数を呼び出してサーバ アプリケーションを MyPBApp として識別して いるとします。クライアント アプリケーションで記述されている次の ステートメントは、MyPBApp のデータにホット リンクを確立します。 location と topic に指定する値は、MyPBApp が定義している規約によっ て異なります。 StartHotLink("Any", "MyPBApp", "Any") 1156 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは、Microsoft Excel にホット リンクを確立し、 REGION.XLS の行 1、カラム 2 のデータが変更された場合に PowerBuilder のウィンドウに通知します。 StartHotLink("R1C2", "Excel", "Region.XLS") 関連項目 StopHotLink StartServerDDE 機能 アプリケーションを DDE サーバとして確立します。サポートする DDE 名、トピック、および項目を指定します。 構文 StartServerDDE ( { windowname, } applname, topic {, item } ) 引数 windowname (オプション) applname topic item (オプション) 説明 サーバ ウィンドウの名前を指定します。特に指定しない限 り、現行のウィンドウの名前が設定されます。 エンド ユーザのアプリケーションの DDE 名を指定しま す。 DDE クライアント アプリケーションが参照する基本デー タのグループを表す文字列を指定します。 カンマ(,)で区切られた 1 つ以上の文字列(トピック内の データ)を指定します。これらの文字列は、DDE サーバ アプリケーションが何をサポートするかを指定します。た とえば、"Table1"、"Table2" と指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。ただし、アプリケーションはすでにサーバとして開始 されています。引数のいずれかの値が NULL の場合、NULL を返します。 解説 DDE クライアント アプリケーションは DDE 要求を送信します。その 要求は、DDE サーバ アプリケーションがサポートすることを宣言した 項目のうちの 1 つで、DDE サーバ アプリケーションではそれらの項目 1 つ 1 つに対して、どのように応答するかを定義します。 DDE 対話のハンドルを提供するには、ウィンドウが開かれている必要 があります。アプリケーション オブジェクトのイベント内で、 StartServerDDE 関数などの DDE 関数を呼び出すことはできません。 アプリケーションが DDE サーバとして確立されている場合、ほかのア プリケーションは、アプリケーション内で次のイベントを起動する DDE 要求を送信します。 PowerScript リファレンス ボリューム 2 1157 StartServerDDE 表 10-10: DDE 要求で起動されるイベントと各イベントで使用できる DDE 関数 クライアントの アクション ホット リンクに対して 要求を送信する アプリケーションにコマ ンドを送信する 起動される イベント RemoteHotLinkStart 使用できる関数 − 関数の用途 − RemoteExec GetCommandDDE コマンドを取得する GetCommandDDEOrigin データを送信する RemoteSend コマンドを送信したクライ アント アプリケーション を特定する データを取得する GetDataDDE RespondRemote データを送信したクライア ント アプリケーションを 特定する 要求されたデータを送信す る − 要求を受け取ったことを通 知する − GetDataDDEOrigin サーバ アプリケーショ RemoteRequest ンにデータを要求する ホット リンクの終了を RemoteHotLinkStop 要求する 例 SetDataDDE 次のステートメントは、PowerBuilder アプリケーションに対して、サー バとしての動作を開始させます。このサーバ アプリケーションは、 MyPBApp という名前でほかの DDE アプリケーションに通知されま す。そのトピックは System という名前で、Table1 と Table2 という名前 の項目をサポートしています。 StartServerDDE(w_emp, "MyPBApp","System", & "Table1", "Table2") 関連項目 1158 StopServerDDE PowerBuilder 第 10 章 PowerScript の関数 State 機能 リストボックス コントロール内の項目が、ハイライト表示されている かどうかを調べます。 対象 リストボックス コントロール、ピクチャ リストボックス コントロール 構文 listboxname.State ( index ) 引数 listboxname index 戻り値 解説 説明 リストボックス コントロールまたはピクチャ リストボッ クス コントロールの名前を指定します。その中の index で 指定された項目のハイライト表示の状態を取得します。 状態を取得する項目の番号を指定します。 Integer 型。listboxname 中の index で識別される項目が、ハイライト表 示の場合には 1 を返し、ハイライト表示でない場合は 0 を返します。 index が正しい項目の番号でない場合、-1 を返します。引数のいずれか の値が NULL の場合、NULL を返します。 State 関数と SetState 関数は、複数選 択を許可 するリス トボック ス (MultiSelect プロパティが TRUE のリストボックス)に対して有効です。 すべてのリストをループし、リスト中の選択されたすべての項目のハ イライト表示の状態をチェックします。 SelectedItem 関数と SelectItem 関数は、1 つしか項目を選択できないリ ストボックス コントロールに対して機能します。SelectedItem 関数は、 ループを必要としない場合に選択を直接通知します。複数の項目を選 択できるリストボックス コントロールに対して SelectedItem 関数を呼 び出すと、最初に選択された項目だけを通知します。 項目のインデックスがわかっているときは、Text 関数を使用して項目 のテキストを取得できます。 例 lb_Contact の項目 3 が選択されているとき(ハイライト表示されている とき) 、次の例は li_Item に 1 を設定します。 integer li_Item li_Item = lb_Contact.State(3) 次のステートメントは、エンド ユーザに複数の選択を許可しているリ ストボックスの中で選択されているすべての項目のテキストを取得し ます。MessageBox 関数は、選択されている項目が見つかるたびにその 項目を表示します。選択された値の配列やリストを作成する処理を記 述することもできます。 PowerScript リファレンス ボリューム 2 1159 State integer li_ItemTotal, li_ItemCount // リストボックス中の項目数を取得します。 li_ItemTotal = lb_contact.TotalItems( ) // すべての項目についてループします。 FOR li_ItemCount = 1 to li_ItemTotal // 項目が選択されている場合、そのテキストを表示します。 IF lb_Contact.State(li_ItemCount) = 1 THEN & MessageBox(" 選択項目 ", & lb_Contact.text(li_ItemCount)) NEXT 次のステートメントは、リストボックス lb_Contact の項目 3 がハイライ ト表示の場合に、処理を行うステートメントを実行します。 IF lb_Contact.State(3) = 1 THEN ... 関連項目 1160 SelectedItem SetState PowerBuilder 第 10 章 PowerScript の関数 StepIt 機能 プログレスバー コントロールの現行位置を、このコントロールの SetStep プロパティに指定された値だけ進めます。 対象 プログレスバー コントロール 構文 control.StepIt ( ) 引数 control 説明 プログレスバーの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 StepIt 関数では、SetStep プロパティの値によって現行位置がプログレ スバーの範囲を超えると、プログレスバー上の位置が先頭位置に戻り ます。たとえば、SetStep の値が 40、現行位置が 80 で、範囲が 0 から 100 に設定されている場合に StepIt 関数を呼び出すと、再描画後のプロ グレスバーの位置は 20 になります。 SetStep プロパティには負の値を設定することもできます。SetStep プロ パティのデフォルト値は 10 です。 例 次のステートメントは、プログレスバー コントロールに SetStep の増 分値を加えます。 HProgressBar.StepIt ( ) 関連項目 SetRange PowerScript リファレンス ボリューム 2 1161 Stop Stop Stop 関数には、次の 2 つの構文があります。 目的 タイミング オブジェクトを非アクティブ化する アニメーションの再生を停止する 使用する構文 構文 1 構文 2 構文 1 タイミング オブジェクトを非アクティブ化する 機能 タイミング オブジェクトを非アクティブ化します。 対象 タイミング オブジェクト 構文 timingobject.Stop ( ) 引数 timingobject 説明 非アクティブ化したいタイミング オブジェクトの名前を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返します。タイマーが起動して いないまたは止められない場合は -1 を返します。 解説 この関数を使ってタイミング オブジェクトを非アクティブにします。 止められたタイマーは Start 関数で再びアクティブ化できます。 例 次のステートメントは、タイミング オブジェクト インスタンス MyTimer を停止します。 MyTimer.Stop() 関連項目 Start 構文 2 アニメーションの再生を停止する 機能 アニメーション AVI クリップの再生を停止します。 対象 アニメーション コントロール 構文 animationname.Stop ( ) 引数 animationname 1162 説明 AVI クリップを表示しているアニメーション コントロー ルの名前を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 Integer 型。正常に終了した場合は 1 を返します。アニメーションが動 作していない、または停止できなかった場合は -1 を返します。 解説 この関数を使って、再生中のアニメーションを停止します。停止され たアニメーションは Start 関数で再び開始できます。 例 次のステートメントは、アニメーション コントロール MyAnimation で 再生中の AVI クリップを停止します。 MyAnimation.Stop() 関連項目 Play StopHotLink 機能 DDE サーバ アプリケーションへのホット リンクを終了します。 注意 すべての引数は、StartHotLink 関数を呼び出したときに指定した引数と 一致している必要があります。 構文 StopHotLink ( location, applname, topic ) 引数 location applname topic 戻り値 説明 String 型の値。ホット リンクを終了する位置を指定しま す。StartHotLink 関数で指定した値と同じ値を指定してく ださい。 String 型の値。サーバ アプリケーションの DDE 名を指定 します。StartHotLink 関数で指定した値と同じ値を指定し てください。 ホット リンクを終了させるデータまたはアプリケーショ ン の イ ン ス タ ン ス を 識 別 す る 文 字 列 を 指 定 し ま す。 StartHotLink 関数で指定した文字列と同じ文字列を指定し てください。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 リンクは開始されていません。 -2 リクエストが拒否されました。 -3 サーバを終了することはできません。 引数のいずれかの値が NULL の場合、NULL を返します。 PowerScript リファレンス ボリューム 2 1163 StopServerDDE 例 ある PowerBuilder アプリケーションが StartServerDDE 関数を呼び出し て MyPBApp という名前の DDE サーバを確立した場合、別のアプリ ケーションは DDE クライアントとして動作し、StartHotLink 関数を呼び 出して MyPBApp にホット リンクを確立することができます。次のス テートメントは、そのホット リンクを終了します。location と topic に 指定する値は、MyPBApp が定義している規約によって異なります。 StopHotLink("Any", "MyPBApp", "Any") 次のステートメントは、Microsoft Excel のスプレッド シート REGION.XLS の行 1、カラム 2 とのホット リンクを終了させます。 StopHotLink("R1C2", "Excel", "Region.XLS") 関連項目 StartHotLink StopServerDDE 機能 アプリケーションの DDE サーバとしての動作を終了させます。これ以 降、DDE クライアントからのすべての要求がエラーになります。 構文 StopServerDDE ( { windowname, } applname, topic ) 引数 windowname (オプション) applname topic 戻り値 説明 サーバ ウィンドウの名前を指定します。特に指定しない限 り、現行のウィンドウの名前が設定されます。複数のサー バ ウィンドウを使用している場合、windowname の指定が 必要です。 アプリケーションの DDE 名を指定します。 StartServerDDE 関数を呼び出したときに宣言したトピッ クを表す文字列を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。DDE サーバとして動作を開始していないことを意味し ます。引数のいずれかの値が NULL の場合、NULL を返します。 注意 applname と topic の各引数は、StartServerDDE 関数を呼び出したときに 指定した引数と一致している必要があります。 例 1164 次のステートメントは、PowerBuilder アプリケーション MyPBApp の サーバとしての動作を終了させます。 PowerBuilder 第 10 章 PowerScript の関数 StopServerDDE(w_emp, "MyPBApp", "System") 関連項目 StartServerDDE String String 関数には、次の 2 つの構文があります。 目的 使用する構文 指定された表示書式マスクに従ってデータを文字列に変 構文 1 換する Blob 型のデータを文字列に変換する 構文 2 構文 1 表示書式マスクに従ってデータを文字列に変換する 機能 表示書式マスクに従って、時刻(Time 型)や日付(Date 型)などの データを変換します。Date 型、DateTime 型、数値型、Time 型のデー タの変換と書式設定を行うことができます。また、表示書式を文字列 に適用することもできます。 構文 String ( data, { format } ) 引数 data format (オプション) 説明 指定した書式を使用して文字列として返すデータ。Date 型、DateTime 型、数値型、Time 型、String 型のいずれかの データを指定します。また、いずれかのデータ型を格納し た Any 型の変数を指定することもできます。 String 型の値。データの変換に使用する表示マスクを指定 します。マスクは、data のデータ型固有の書式情報で構成 されます。data が String 型の場合は、format を指定する必 要があります。 format には、data のデータ型に応じて複数のマスクを指定 することもできます。各マスクは、セミコロン(;)で区切 ります。各データ型の詳細については、「解説」を参照し てください。 戻り値 String 型。正常に終了した場合、指定された書式で data を返します。 data のデータ型が指定された表示マスクのデータ型と一致しない場 合、format が有効な表示マスクでない場合、または data が互換性のな いデータ型の場合には、空の文字列("")を返します。 PowerScript リファレンス ボリューム 2 1165 String 解説 Date 型、DateTime 型、数値型、Time 型のデータに書式を指定しなかっ た場合、PowerBuilder はシステムの標準書式を使用します。数値型デー タの場合は、標準書式は [General] 書式です。 文字列には、表示マスクの指定が必要です。指定しなかった場合、こ の関数は何も実行しません。 書式には、1 つ以上のマスクを指定できます。 • Date 型、DateTime 型、String 型、Time 型のデータの書式には、1 つまたは 2 つのマスクを指定できます。最初のマスクはデータの 書式です。2 番目のマスクは NULL 値の書式です。 • 数値型のデータの書式には、マスクを 4 つまで指定できます。マ スクを 1 つだけ指定すると、正のデータと負のデータの両方にそ のマスクを使用します。複数のマスクを指定すると、1 番目のマス クは正の値、2 番目のマスクは負の値、3 番目のマスクは 0、4 番 目のマスクは NULL 値に対して使用されます。 Decimal 型の値のマスクの一部として追加の文字を表示するには、各文 字の前に円記号(バックスラッシュ)を付けます。たとえば、4 つの アスタリスクの後に小数点以下 2 桁の Decimal 型の数値を表示するに は、次のように各アスタリスクの前に円記号を付ける必要があります。 dec{2} amount string = ls_result amount = 123456.32 ls_result = string(amount,"\*\*\*\*0.00") 得られる文字列は、****123456.32 となります。 表示書式の指定の詳細については、『PowerBuilder ユーザーズ ガイド』 マ ニ ュ ア ル を 参 照 し て く だ さ い。書 式 に は 色 も 指 定 で き ま す が、 PowerScript で String 関数を使用する場合には、色の指定は無視されま す。データウィンドウ ペインタで指定した表示書式の場合にだけ、色 が表示されます。 表示書式がデータ型と一致しない場合でも、PowerBuilder はマスクを 適用しようとします。このため、予測できない結果が発生する場合が あります。 データウィンドウ コントロール内の Time 型と Date 型の値 String 関数の引数として GetItemTime 関数または GetItemString 関数を呼 び出す場合に表示書式を指定しなかったときには、値は DateTime 型の 値として変換されます。次のステートメントは、"2/26/03 00:00:00" の ような文字列を返します。 1166 PowerBuilder 第 10 章 PowerScript の関数 String(dw_1.GetItemTime(1, "start_date")) 日付を書式化し、月がテキストで表示される場合(たと えば、mmm を含む表示書式)、アプリケーションの実行時に利用可能 なランタイム DLL の言語でその月が表示されます。使用開発環境ある いはユーザのマシン上にローカライズされたランタイム ファイルが インストールされていれば、そのマシン上では、結果として得られる 文字列内での月の表示は、ローカライズされたファイルの言語により ます。 国際的な配布 ANSI データの処理 この関数はデータのエンコーディングを指定でき るようにする encoding 引数がないため、データが ANSI エンコーディ ングを持つ場合、返される文字列はガベージ文字を含むことができま す。String 関数から返される ANSI 文字列を Unicode Blob に変換し、そ れから Blob および String 変換関数で提供される encoding パラメータを 使用して Blob 内の ANSI 文字列を Unicode 文字列に変換することに よってこれを処理できます。 ls_temp = String(long, "address" ) lb_blob = blob(ls_temp) //EncodingUTF16LE! is default ls_result = string(lb_blob, EncodingANSI!) TriggerEvent 関数また メッセージ オブジェクト String 関数を使用すると、 は PostEvent 関数を呼び出した後で、メッセージ オブジェクトから文 字列を取り出すことができます。詳細については、TriggerEvent 関数ま たは PostEvent 関数を参照してください。 例 次のステートメントは、Date 型の値に表示書式を適用して "Jan 31, 2002" を返します。 String(2002-01-31, "mmm dd, yyyy") 次の例は、order_date の値に書式を適用して date1 に 02-6-11 を設定し ます。 Date order_date = 2002-06-11 string date1 date1 = String(order_date,"m-d-yy") 次の例は、order_date が NULL の場合に date1 に none が設定されるよう に、NULL 値に対する書式を指定します。 Date order_date = 2002-06-11 string date1 SetNull(order_date) date1 = String(order_date, "m-d-yy;'none'") PowerScript リファレンス ボリューム 2 1167 String 次のステートメントは、DateTime 型の値に書式を適用して "Jan 31, 2001 6 hrs and 8 min" を返します。 String(DateTime(2001-01-31, 06:08:00), & 'mmm dd, yyyy h "hrs and" m "min"') 次の例は、Today 関数と Now 関数を使用してシステムの日付と時刻から DateTime 型の値を作成します。String 関数は、書式を適用して sle_date のテキストにその値(たとえば、6-11-02 8:06 pm)を設定します。 DateTime sys_datetime string datetime1 sys_datetime = DateTime(Today(), Now()) sle_date.text = String(sys_datetime, & "m-d-yy h:mm am/pm;'none'") 次のステートメントは、数値型の値に書式を適用して $5.00 を返しま す。 String(5,"$#,##0.00") 次のステートメントは、string1 に 0123 を設定します。 integer nbr = 123 string string1 string1 = String(nbr,"0000;(000);****;empty") 次のステートメントは、string1 に (123) を設定します。 integer nbr = -123 string string1 string1 = String(nbr,"000;(000);****;empty") 次のステートメントは、string1 に **** を設定します。 integer nbr = 0 string string1 string1 = String(nbr,"0000;(000);****;empty") 次のステートメントは、string1 に empty を設定します。 integer nbr string string1 SetNull(nbr) string1 = String(nbr,"0000;(000);****;empty") 次のステートメントは、String 型のデータを変換して A-B-C を返しま す。この表示書式は、ソース文字列内の各文字をそれぞれの @ に割り 当て、書式内のほかの文字を適切な位置に挿入します。 String("ABC", "@-@-@") 1168 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは、"A*B" を返します。 String("ABC", "@*@") 次のステートメントは、"ABC" を返します。 String("ABC", "@@@") 次のステートメントは、スペースを返します。 String("ABC", " ") 次のステートメントは、Time 型のデータに表示書式を適用して "6 hrs and 8 min" を返します。 String(06:08:02,'h "hrs and" m "min"') 次のステートメントは、"08:06:04 pm" を返します。 String(20:06:04,"hh:mm:ss am/pm") 次のステートメントは、"8:06:04 am" を返します。 String(08:06:04,"h:mm:ss am/pm") 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの String メソッド 構文 2 Blob 型のデータを変換する 機能 Blob 型のデータを String 型の値に変換します。Blob の値がテキスト データでない場合には、String 関数はデータを文字として解釈しようと します。 構文 String ( blob {,encoding} ) 引数 blob encoding 説明 Blob 型の値。指定された値を String 型の値に変換します。 Blob 型の値を格納した Any 型の変数を指定することもで きます。 変換される Blob 値の文字エンコーディングを指定しま す。値は以下のとおりです。 • EncodingANSI! • EncodingUTF8! • EncodingUTF16LE!(デフォルト) • EncodingUTF16BE! PowerScript リファレンス ボリューム 2 1169 String 戻り値 String 型。正常に終了した場合は blob の値を文字列に変換して返し、エ ラーが発生した場合は空の文字列("")を返します。Blob オブジェク トに String 型のデータが格納されていない場合、String 関数はそのデー タを文字として解釈し、文字列を返します。blob が NULL の場合、NULL を返します。 解説 encoding 引数が指定されていない場合、String は Unicode Blob 型を Unicode の文字列に変換します。ほかのエンコーディングの Blob 型に 変換する場合は、encoding 引数を指定する必要があります。 blob にバイト オーダー マーク(BOM: Byte-Order Mark)がある場合、 String 関数は BOM を自動的にフィルタ処理で取り除きます。 たとえば、 blob の 16 進表記が FF FE 54 00 68 00 69 00 73 00 であるとします。BOM は FF FE です。これは UTF-16LE エンコーディングであることを示し ます。BOM は、フィルタ処理で取り除かれます。返される文字列は “This” です。 String 関数を使用すると、TriggerEvent 関数または PostEvent 関数を呼び 出した後で、メッセージ オブジェクトから文字列を取り出すことがで きます。詳細については、TriggerEvent 関数または PostEvent 関数を参照 してください。 例 次の例は、ANSI 形式 の String 型のデータが格納されている Blob 型の インスタンス変数 ib_sblob を文字列に変換し、その結果を sstr に格納 します。 string sstr sstr = String(ib_sblob, EncodingANSI!) 次の例は、今日の日付と状況の情報を Blob オブジェクト bb に格納し ます。pos1 と pos2 には、blob 内の状況の先頭文字の位置と、末尾の文 字の位置が格納されます。最後に、BlobMid 関数は、String 関数が文字 列に変換した blob を取り出します。sle_status には、返された状況が表 示されます。 blob{100} bb long pos1, pos2 string test_status date test_date test_date = Today() IF DayName(test_date) = "Wednesday" THEN & test_status = "Coolant Test" IF DayName(test_date) = "Thursday" THEN & test_status = "Emissions Test" // データを Blob オブジェクトに格納します。 1170 PowerBuilder 第 10 章 PowerScript の関数 pos1 = BlobEdit( bb, 1, test_date) pos2 = BlobEdit( bb, pos1, test_status ) ... // 何らかの処理 // bb に格納された状況を取り出して表示します。 sle_status.text = String( & BlobMid(bb, pos1, pos2 - pos1)) 関連項目 Blob 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの String メソッド String_To_Object 機能 渡された文字列に基づいて、オブジェクト参照を取得します。 この関数は、EAServer に接続している PowerBuilder クライアントに よって使用されます。 対象 JaguarORB オブジェクト 構文 jaguarorb.String_To_Object ( objstring , object) 引数 jaguarorb objstring object 戻り値 説明 JaguarORB のインスタンスを指定します。 CORBA オブジェクトを表す文字列を指定します。 CORBA オブジェクトの文字列表現は、オブジェクトのホ ストとなるサーバへの接続方法を記述した Interoperable Object Reference(IOR)です。EAServer は、標準形式の IOR(16 進でコード化されているもの)と URL 形式の IOR (人が判読できるもの)の両方をサポートしています。 オブジェクト参照を格納する CORBAObject 型の変数を指 定します。 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 解説 String_To_Object 関数を使用すると、Jaguar ネーミング サービスを使用 せずにプロキシ インスタンスをインスタンス化することができます。 PowerScript リファレンス ボリューム 2 1171 String_To_Object EJB コンポーネントへの接続 PowerBuilder 7 以前のバージョンでは、JaguarORB String_To_Object 関数 を使用して EAServer の EJB コンポーネントにアクセスしていました。 PowerBuilder 8 以降では、接続オブジェクトの Lookup 関数を使用する ことで、EAServer の EJB コンポーネントのホーム インタフェースのプ ロキシをインスタンス化できます。 PowerBuilder 9 では、EJBConnection PowerBuilder 拡張オブジェクトの Lookup 関数を使用することで、J2EE 準拠のサーバで実行している EJB コンポーネントのプロキシをインスタンス化できます。 String_To_Object 関数を使ってプロキシのインスタンス化を行う場合、 オブジェクトを直接インスタンス化することになります。この方法の 欠点は、ネーミング サービスによって提供されるサーバ アドレスの抽 象性の持つ利点が失われることです。 ネーミング サービス API を明示的に使用したい場合は、 Resolve_Initial_References 関数を使用して、最初のネーミング コンテキ ストを取得します。しかし、この方法を使用することはお勧めできま せん。ユーザにあまり好まれない SessionManager::Factory のメソッド を使用する必要があるためです。JaguarORB オブジェクトを使用して EAServer に接続する方法についての詳細は、『アプリケーション テク ニック』マニュアルを参照してください。 String_To_Object 関数では、URL 形式の IOR を使って、EAServer 認証マ ネージャのインスタンスを取得できます。URL 形式の IOR 文字列は、 次のような書式にする必要があります。 protocol :// host :iiop_port ここで、 • protocol − セキュア ポートに接続する場合は「iiops」、それ以外 の場合は「iiop」 • host − EAServer のホスト アドレスまたはマシン名 • iiop_port − IIOP リクエストのポート番号 以下は、URL 形式の IOR の例です。 iiop://machinea:9000 サーバがクラスタの一部である場合、objstring 引数に IOR のリストを セミコロンで区切って含めることができます。 1172 PowerBuilder 第 10 章 PowerScript の関数 String_To_Object 関数を呼び出した後、マネージャ インタフェースを 使ってセッション インタフェースのインスタンスを取得し、これに よってコンポーネントのインスタンスを作成できます。マネージャお よびセッション インタフェースを使用する場合は、これらのインタ フェースのプロキシを作成し、クライアントのライブラリ リストに含 める必要があります。これらのインタフェース上のメソッドについて の詳細は、URL http://yourhost:yourport/ir/ でインタフェース リポジトリ に関するドキュメントを参照してください。この URL で、yourhost は サーバのホスト名、yourport は HTTP ポート番号です。 String_To_Object 関数は、プロキシ オブジェクト参照のシリアライズの 解除にも使用できます。オブジェクト参照をシリアライズすることに よって、オブジェクトの状態を保存し、クライアントが処理を終了し た後にも残るようにすることができます。オブジェクト参照のシリア ライズを解除すれば、シリアライズされた文字列からオブジェクト参 照を取得できます。String_To_Object 関数は、多くの場合、オブジェク ト参照をシリアライズする Object_To_String 関数とともに使用されま す。 例 次の例は、String_To_Object 関数を使って、EAServer 認証マネージャの インスタンスを取得します。ここでは、URL 形式の IOR を使用します。 JaguarORB my_orb CORBAObject my_corbaobj Manager my_manager Session my_session Factory my_Factory n_Bank_Account my_account my_orb = CREATE JaguarORB my_orb.init("ORBRetryCount=3,ORBRetryDelay=1000") my_orb.String_To_Object("iiop://myhost:9000", & my_corbaobj) my_corbaobj._narrow(my_manager, & "SessionManager/Manager") my_session = my_manager.createSession("jagadmin", "") my_corbaobj = my_session.lookup("Bank/n_Bank_Account") my_corbaobj._narrow(my_Factory, "SessionManager/Factory") my_corbaobj = my_Factory.create() my_corbaobj._narrow(my_account,"Bank/n_Bank_Account") my_account.withdraw(100.0) PowerScript リファレンス ボリューム 2 1173 String_To_Object 次の例のコンポーネントは、EJB コンポーネントです。セッション オ ブジェクトの Lookup 関数の呼び出しで返されたオブジェクト参照を 変換するために _Narrow 関数を呼び出します。このとき、2 番目の引数 にパッケージ名だけでなく、ドメイン名も含めます。これが必要にな るのは、Java パッケージ名で domainname.packagename 形式を使用して いる場合です。 JaguarORB my_orb CORBAObject my_corbaobj Manager my_mgr Session my_session CartHome my_cartHome Cart my_cart long ll_return my_orb = CREATE JaguarORB my_orb.init("ORBLogFile='c:\temp\orblog'") my_orb.String_to_Object("iiop://svr1:9000", & my_corbaObj) my_corbaObj._narrow(my_mgr, "SessionManager/Manager" ) my_Session = my_mgr.createSession("jagadmin", "") my_corbaObj = my_session.lookup("Cart") ll_return = my_corbaObj._narrow(my_CartHome, "com/shopping/CartHome") my_corbaObj = my_CartHome.create() my_Cart.addItem() 関連項目 1174 Init Lookup _Narrow Object_To_String Resolve_Initial_References PowerBuilder 第 10 章 PowerScript の関数 SuspendTransaction 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションを中断します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.SuspendTransaction ( ) 引数 CORBACurrent 説明 CORBACurrent サービス インスタンスへの参照を指 定します。 戻り値 Unsigned long 型。スレッドに関連するトランザクションを参照するハ ンドルを返します。エラーが発生した場合には 0 を返します。 解説 SuspendTransaction 関数は、呼び出し元のスレッドに関連付けられてい るトランザクションの参照ハンドルを返します。このハンドルは、同 じスレッド上または異なるスレッド上の ResumeTransaction 関数に渡す ことができます。SuspendTransaction 関数を呼び出すと、現行のスレッ ドはトランザクションに関連しなくなります。 SuspendTransaction 関数を呼び出すことができるのは、クライアントま たは OTS スタイルとしてマークされたコンポーネントです。EAServer は、2 フェーズ コミット トランザクション コーディネータ(OTS/XA) を使用していることが必要です。 例 次の例は、SuspendTransaction 関数を使用することで、呼び出し元のス レッドが現行のトランザクションから分離されることを示していま す。 // インスタンス変数 : // CORBACurrent corbcurr integer li_rc unsignedlong ll_handle // CORBACurrent のインスタンスを取得して初期化します。 ... li_rc = corbcurr.BeginTransaction() // 何らかのトランザクション処理を実行します。 ll_handle = corbcurr.SuspendTransaction() // 何らかの非トランザクション処理を実行します。 li_rc = corbcurr.ResumeTransaction(ll_handle) // さらに、何らかのトランザクション処理を実行します。 li_rc = corbcurr.CommitTransaction() PowerScript リファレンス ボリューム 2 1175 SyntaxFromSQL 関連項目 BeginTransaction CommitTransaction GetTransactionName ResumeTransaction RollbackTransaction SetTimeout SyntaxFromSQL 機能 SQL SELECT 文に基づいてデータウィンドウのソース コードを生成し ます。 対象 トランザクション オブジェクト 構文 transaction.SyntaxFromSQL ( sqlselect, presentation, err ) 引数 transaction sqlselect presentation 説明 接続されたトランザクション オブジェクトの名前を指定 します。 有効な SQL SELECT 文を表す文字列を指定します。 データウィンドウ オブジェクトに設定するデフォルトの 提示様式を表す文字列を指定します。最も簡単な書式は、 次のとおりです。 Style(Type=presentationstyle) presentationstyle の値は、データウィンドウ ペインタの 新 規データ ウィンドウ ダイアログボックスの提示様式に対 応しています。キーワードは、次のとおりです。 (デフォルト)Tabular Grid Form(フリーフォーム) Graph Group Label err 1176 presentation に使用されるすべてのキーワードのリストに ついては、「解説」を参照してください。 PowerBuilder が、発生したエラー メッセージを割り当てる 文字列を指定します。 PowerBuilder 第 10 章 PowerScript の関数 戻り値 String 型。エラーが発生した場合、空の文字列("")を返します。 SyntaxFromSQL 関数が失敗した場合、警告や重要度の低いエラー(た とえば、構文エラー)のときには、err にエラー メッセージが返され ます。引数のいずれかの値が NULL の場合、NULL を返します。 解説 データウィンドウ オブジェクトを作成するには、SyntaxFromSQL 関数 が返したソース コードを直接 Create 関数に渡します。 SQL 文中のテーブル オーナ トランザクション オブジェクトの LogID プロパティの値が、SyntaxFromSQL 関数に使用する SQL 文の中でアク セスされるテーブルのオーナと異なる場合は、SQL SELECT 文中のテー ブル名をオーナ名で修飾する必要があります。 Adaptive Server Enterprise に関する注意 使用している DBMS が Adaptive Server Enterprise の場合、SyntaxFromSQL 関数を呼び出すと、PowerBuilder は固有インデックスによってイン デックスが更新可能かどうかを判断します。これを可能にするために は、以下に示すように、SyntaxFromSQL 関数を呼び出す前に AutoCommit を TRUE にしておく必要があります。 sqlca.autocommit=TRUE ls_dws=sqlca.syntaxfromsql (sqlstmt, presentation, err) sqlca.autocommit=FALSE presentation は、次のオブジェクト キーワードと、その後にデータウィ ンドウをカスタマイズするプロパティとその値を指定することができ ます。カラム、データウィンドウ全体、データウィンドウの一部の領 域、データウィンドウ中のテキストのスタイルを指定することもでき ます。オブジェクト キーワードは、次のとおりです。 Column DataWindow Group Style Text Title すべて表現すると次のような書式になります。 "Style ( Type=value property=value ... ) DataWindow ( property=value ... ) Column ( property=value ... ) Group groupby_colnum1 Fby_colnum2 ... property ... ) Text property=value ... ) PowerScript リファレンス ボリューム 2 1177 SyntaxFromSQL Title ( 'titlestring' )" 『データウィンドウ リファレンス』マニュアルのデータウィンドウの オブジェクト プロパティのリストを使用すると、各オブジェクトの キーワードに対して使用できるプロパティを確認することができます。 データベース カラムがフォント情報と一緒に拡張属性を持っている 場合、SyntaxFromSQL 関数の提示様式を表す文字列で指定したフォント 情報は無視されます。 例 次のステートメントは、SyntaxFromSQL 関数で生成されたタブラ表示形 式のデータウィンドウのデータウィンドウ ソースをマルチライン エ ディット コントロールに表示します。 エラーが発生すると、PowerBuilder は生成されたエラー メッセージを 文字列変数 ERRORS に格納します。 string ERRORS, sql_syntax sql_syntax = "SELECT emp_data.emp_id," & + "emp_data.emp_name FROM emp_data " & + "WHERE emp_data.emp_salary >45000" mle_sql.text = & SQLCA.SyntaxFromSQL(sql_syntax, "", ERRORS) 次のステートメントは、SyntaxFromSQL 関数で生成されたデータウィン ドウ ソースから、グリッド表示形式のデータウィンドウ dw_1 を作成 します。エラーが発生すると、生成されたエラー メッセージを文字列 変数 ERRORS に格納し、メッセージ ボックスを表示します。Retrieve 関数を呼び出す前に、SQLCA を引数として SetTransObject 関数を呼び 出す必要があります。 string ERRORS, sql_syntax string presentation_str, dwsyntax_str sql_syntax = "SELECT emp_data.emp_id,"& + "emp_data.emp_name FROM emp_data "& + "WHERE emp_data.emp_salary > 45000" presentation_str = "style(type=grid)" dwsyntax_str = SQLCA.SyntaxFromSQL(sql_syntax, & presentation_str, ERRORS) IF Len(ERRORS) > 0 THEN MessageBox(" 警告 ", & "SyntaxFromSQL が原因でこれらのエラーが発生しました :" + 1178 PowerBuilder 第 10 章 PowerScript の関数 ERRORS) RETURN END IF dw_1.Create( dwsyntax_str, ERRORS) IF Len(ERRORS) > 0 THEN MessageBox(" 警告 ", & "Create が原因でこれらのエラーが発生します :" + ERRORS) RETURN END IF 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Create メソッド 『データウィンドウ リファレンス』マニュアルのデータウィンドウ オ ブジェクトのプロパティ SystemRoutine 機能 パフォーマンス解析モデルのシステム ルートを表すルーチン ノード を提供します。 対象 Profiling オブジェクト 構文 instancename.SystemRoutine ( theroutine ) 引数 instancename theroutine 戻り値 説明 Profiling オブジェクトのインスタンス名を指定します。 システム ルートを表すルーチン ノードを含む ProfileRoutine の値を指定します。この引数は、参照渡しされます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • ModelNotExistsError! − モデルが存在しないため、関数は異常終了 しました。 PowerScript リファレンス ボリューム 2 1179 SystemRoutine 解説 この関数を使って、パフォーマンス解析モデルのシステム ルートを表 すルーチン ノードを抽出します。BuildModel 関数を使ってトレース ファイルからパフォーマンス解析モデルをあらかじめ作成しておかな ければなりません。ルーチン ノードは、ProfileRoutine オブジェクトと して定義され、ルーチンで費やされた時間、ルーチンと呼ばれるもの すべて、各ルーチンが呼び出された回数およびルーチンが属するクラ スを与えます。 例 次の例では、パフォーマンス解析モデルのシステム ルートを表すルー チンを示します。 Profiling lpro_model ProfileRoutine lprort_routine lpro_model.BuildModel() lpro_model.SystemRoutine(lprort_routine) ... 関連項目 1180 BuildModel PowerBuilder 第 10 章 PowerScript の関数 TabPostEvent 機能 タブ コントロールの各タブ ページに指定されたイベントを、タブ ペー ジ ユーザ オブジェクトのイベント キューの最後に追加してポストし ます。 対象 タブ コントロール 構文 tabcontrolname.TabPostEvent ( event {, word, long } ) 引数 tabcontrolname event word (オプション) long (オプション) 説明 イベントをポストするタブ ページ ユーザ オブジェクトの タブ コントロールの名前を指定します。 PowerBuilder のイベント(たとえば、Clicked!、Modified!、 DoubleClicked!)を識別する TrigEvent カタログ データ型の 値を指定します。または、イベントの名前を表す文字列を 指定します。イベントは、tabcontrolname のタブ ページ ユーザ オブジェクトにとって有効なイベントでなければ なりません。また、スクリプトは tabcontrolname に指定さ れたコントロールのイベントに存在していなければなり ません。 システムの Message オブジェクトの WordParm プロパティ に格納される Long 型の値を指定します。word ではなく long に値を指定する場合、0 を入力します。クロス プラッ トフォームの互換性を維持するために、WordParm プロパ ティと LongParm プロパティのデータ型は Long 型になっ ています。 システムの Message オブジェクトの LongParm プロパティ に格納される Long 型の値を指定します。文字列を指定す ると、文字列へのポインタが LongParm プロパティに格納 され、String 関数でアクセスすることができます。詳細に ついては、PostEvent 関数の「解説」を参照してください。 戻り値 Integer 型。正常に終了した場合は 1 を返します。エラーが発生した場 合、イベントがタブ ページ ユーザ オブジェクトに対して無効な場合、 またはイベントにスクリプトが記述されていない場合には、-1 を返し ます。 例 たとえば、tab_address には uo_list から継承した複数のタブ ページが含 まれていて、uo_list には ue_display という名前のユーザ イベントがある とします。次のステートメントは、tab_address のタブ ページごとにイ ベント ue_display をポストします。 tab_address.TabPostEvent("ue_display") 関連項目 TabTriggerEvent PowerScript リファレンス ボリューム 2 1181 TabTriggerEvent TabTriggerEvent 機能 タブ コントロールの各タブ ページに指定されたイベントを、タブ ペー ジのインデックス順に起動します。 対象 タブ コントロール 構文 tabcontrolname.TabTriggerEvent ( event {, word, long } ) 引数 tabcontrolname event word (オプション) long (オプション) 説明 イベントを起動するタブ ページ ユーザ オブジェクトのタ ブ コントロールの名前を指定します。 PowerBuilder のイベント(たとえば、Clicked!、Modified!、 DoubleClicked!)を識別する TrigEvent カタログ データ型の 値を指定します。または、イベントの名前を表す文字列を 指定します。イベントは、tabcontrolname のタブ ページ ユーザ オブジェクトにとって有効なイベントでなければ なりません。また、スクリプトは tabcontrolname に指定さ れたコントロールのイベントに存在していなければなり ません。 システムの Message オブジェクトの WordParm プロパティ に格納される Long 型の値を指定します。word ではなく long に値を指定する場合、0 を入力します。クロス プラッ トフォームの互換性を維持するために、WordParm プロパ ティと LongParm プロパティのデータ型は Long 型になっ ています。 システムの Message オブジェクトの LongParm プロパティ に格納される Long 型の値を指定します。文字列を指定す ると、文字列へのポインタが LongParm プロパティに格納 され、String 関数でアクセスすることができます。詳細に ついては、TriggerEvent 関数の「解説」を参照してください。 戻り値 Integer 型。正常に終了した場合は 1 を返します。エラーが発生した場 合、イベントがタブ ページ ユーザ オブジェクトに対して無効な場合、 またはイベントにスクリプトが記述されていない場合には、-1 を返し ます。 例 たとえば、tab_address には uo_list から継承した複数のタブ ページが含 まれていて、uo_list には ue_display という名前のユーザ イベントがある とします。次のステートメントは、tab_address のタブ ページごとに ue_display のスクリプトを実行します。 tab_address.TabTriggerEvent("ue_display") 関連項目 1182 TabPostEvent PowerBuilder 第 10 章 PowerScript の関数 Tan 機能 角度の正接値を計算します。 構文 Tan ( n ) 引数 n 説明 角度の正接値を計算する角度(ラジアン)を指定します。 戻り値 Double 型。n の正接を返します。n が無効な値の場合は実行エラーが発 生します。n が NULL の場合、NULL を返します。 例 次の 2 つのステートメントは、どちらも 0 を返します。 Tan(0) Tan(Pi(1)) 次のステートメントは、1.55741 を返します。 Tan(1) 関連項目 ATan Cos Pi Sin 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Tan メソッド PowerScript リファレンス ボリューム 2 1183 Text Text 機能 リストボックス コントロールやドロップダウン リストボックス コン トロール内の項目のテキストを取得します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.Text ( index ) 引数 listboxname index 説明 項目のテキストを取得するリストボックス、ドロップダウ ン リストボックス、ドロップダウン ピクチャのいずれか のコントロールの名前を指定します。 テキストを取得する項目の番号を指定します。 戻り値 String 型。listboxname 中の index で識別される項目のテキストを返しま す。index が有効な項目番号でない場合、空の文字列(“”)を返します。 引数のいずれかの値が NULL の場合、NULL を返します。 例 リストボックス lb_Cities に、次の項目が含まれているとします。 Atlanta Boston Chicago Denver 次のステートメントは、項目番号 3 のテキスト "Chicago" を current_city に格納します。 string current_city current_city = lb_Cities.Text(3) 関連項目 1184 FindItem SelectedItem SelectedText PowerBuilder 第 10 章 PowerScript の関数 TextLine 機能 挿入ポイントがある行のテキストを取得します。TextLine 関数は、複数 の行を持つことができるコントロールに対して機能します。 対象 データウィンドウ コントロール、エディットマスク コントロール、マ ルチライン エディット コントロール、リッチテキスト エディット コ ントロール 構文 editname.TextLine ( ) 引数 editname 説明 挿入ポイントがある行のテキストを取得するデータウィ ンドウ、エディットマスク、マルチライン エディット、 リッチテキスト エディトのいずれかのコントロールの名 前を指定します。 戻り値 String 型。editname 中の挿入ポイントがある行のテキストを返します。 エラーが発生した場合、空の文字列(“”)を返します。editname が NULL の場合、NULL を返します。 解説 editname にデータウィンドウ コントロールの名前を指定した場合、 TextLine 関数は、現行の行とカラム上のエディット コントロールにつ いての情報を通知します。 例 マルチライン エディット コントロール mle_state の行 4 に挿入ポイン トがあり、そのテキストが "North Carolina" であるとします。次の例は、 linetext に "North Carolina" を代入します。 string linetext linetext = mle_state.TextLine() マルチライン エディット コントロール mle_contact 内のテキスト "Y" の行に挿入ポイントがある場合、何か処理を行います。 IF mle_contact.TextLine() = "Y" THEN ... 関連項目 SelectedItem SelectTextLine PowerScript リファレンス ボリューム 2 1185 Time Time DateTime 型、String 型、数値型のデータを Time 型のデータに変換しま す。Blob 型のデータから時刻の値を取り出すこともできます。使用す る構文は、対象となるデータのデータ型によって異なります。 目的 DateTime 型のデータから時刻を取り出す、または Blob 型 使用する構文 構文 1 変数に格納されている時刻の値を取り出す 文字列を時刻の値に変換する 時、分、秒の数値を結合して時刻の値にする 構文 2 構文 3 構文 1 DateTime 型の値または Blob 型から時刻を取り出す 機能 DateTime 型の値または Blob 型から時刻を取り出します。 構文 Time ( datetime ) 引数 datetime 戻り値 説明 DateTime 型の値を指定するか、Time 型の値または DateTime 型の値で始まる Blob 型の値を指定します。残り の Blob 型の値は無視されます。Datetime には、DateTime 型または Blob 型の値を含む Any 型の変数を指定すること もできます。 Time 型。正常に終了した場合、datetime の時刻を Time 型で返します。 datetime が有効な時刻でない場合、またはデータ型が一致しない場合 には、00:00:00.000000 を返します。datetime が NULL の場合、NULL を 返します。 例 次の例は、DateTime 型の変数 StartDateTime がデータベースから検索さ れた後、Time 型の変数 StartTime に StartDateTime の時刻と等しい時刻 を設定します。 DateTime StartDateTime time StartTime ... StartTime = Time(StartDateTime) たとえば、Blob 型変数 ib_blob の値の 32 バイト目に DateTime 型の値が あるとします。次のステートメントは、ib_blob 値から時刻を取り出し ます。 time lt_time lt_time = Time(BlobMid(ib_blob, 32)) 1186 PowerBuilder 第 10 章 PowerScript の関数 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Time メソッド 構文 2 時刻を含む文字列を時刻の値に変換する 機能 有効な時刻を含む string 型の値を時刻の値に変換します。 構文 Time ( string ) 引数 string 説明 Time 型に変換する有効な時刻(たとえば、"8 am" や "10:25" など)の値を表す string 型の値を指定します。時間を省略 することはできませんが、分、秒、マイクロ秒、am、pm は省略できます。 特に指定しない限り、分と秒が 00、マイクロ秒が 000000 になります。am か pm かは、自動的に決められます。 string には string 型の値または Blob 型を含む Any 型の変数 を指定することもできます。 戻り値 Time 型。正常に終了した場合、string の時刻を Time 型で返します。 string が有効な時刻でない場合、またはデータ型が一致しない場合に は、00:00:00.000000 を返します。string が NULL の場合、NULL を返し ます。 解説 有効な時刻とは、時(00 ∼ 23)、分(00 ∼ 59)、秒(00 ∼ 59)、マイ クロ秒(0 ∼ 999999)のあらゆる組み合わせです。 例 次のステートメントは、What_Time に NULL を設定します。 Time What_Time string null_string SetNull(null_string) What_Time = Time(null_string) 次のステートメントは、文字列として指定されている午前 12 時 45 秒 前の時刻(23:59:15)を Time 型の値で返します。 Time("23:59:15") 次のステートメントは、シングルライン エディット コントロール sle_Time_Received のテキストを Time 型の値に変換します。 Time(sle_Time_Received.Text) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Time メソッド PowerScript リファレンス ボリューム 2 1187 Time 構文 3 時、分、秒の数値を結合して時刻の値にする 機能 時、分、秒、マイクロ秒を表す整数を結合して時刻の値にします。 構文 Time ( hour, minute, second {, microsecond } ) 引数 hour minute second microsecond (オプション) 説明 時を示す整数(00 ∼ 23)を指定します。 分を示す整数(00 ∼ 59)を指定します。 秒を示す整数(00 ∼ 59)を指定します。 マイクロ秒(百万分の 1 秒)を示す整数(00 ∼ 32767)を 指定します(この引数用にサポートされる値の範囲はマイ クロ秒で取り得る値の範囲より小さいことに注意してく ださい)。 戻り値 Time 型。時刻を Time 型で返します。いずれかの引数の値が有効でな い(指定範囲外の値である)場合、00:00:00 を返します。引数が NULL の場合、NULL を返します。 例 次のステートメントは、What_Time にマイクロ秒を使用する Time 型の 値を設定し、文字列に変換してシングルライン エディット コントロー ル st_1 に表示します。標準の表示書式にはマイクロ秒は含まれていな いため、String 関数はマイクロ秒を使用する表示書式を指定します。マ イクロ秒を表す文字列の部分は、前に 0 が付加されます。 Time What_Time What_Time = Time(10, 15, 45, 234) st_1.Text = String(What_Time, "hh:mm:ss:ffffff") String 型の変数の中の時間は、10:15:45:000234 に設定されます。 次のステートメントは、What_Time に 10:15:45 を設定します。 Time What_Time What_Time = Time(10, 15, 45) 関連項目 1188 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Time メソッド PowerBuilder 第 10 章 PowerScript の関数 Timer 機能 ウィンドウの Timer イベントを指定した間隔で繰り返し起動します。 Timer 関数を呼び出すと、タイマーが開始します。間隔が終わると、 PowerBuilder は Timer イベントを起動し、タイマーをリセットします。 構文 Timer ( interval {, windowname } ) 引数 interval windowname (オプション) 説明 Timer イベントが発生してから次の Timer イベントが発生 する間の秒数を指定します。0 より大きく 4,294,967 秒以下 の整数または小数を指定できます。0 を指定すると、タイ マーがオフになり、Timer イベントは発生しません。 Timer イベントを発生させるウィンドウを指定します。指 定するウィンドウは、開かれている必要があります。この 引数を省略すると、現行のウィンドウで Timer イベントが 起動します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 Timer イベント内で Timer 関数を呼び出さないでください。タイマーが 自動的にリセットされ、Timer イベントはすでに設定された間隔で再び 起動します。タイマーを停止または間隔を変更する場合は、そのほか のイベントのスクリプト内で Timer 関数を呼び出してください。 例 次のステートメントは、アクティブなウィンドウに 2 秒間隔で Timer イベントを起動させます。 Timer(2) 次のステートメントは、アクティブなウィンドウにおける Timer イベ ントを停止します。 Timer(0) 次のステートメントでは、ウィンドウ w_Train に 0.5 秒間隔で Timer イ ベントを起動します。 Open(w_Train) Timer(0.5, w_Train) 次の例は、現在の時刻をウィンドウのスタティック テキスト コント ロールに表示させます。ウィンドウの Open イベントに対するスクリ プトで Timer 関数を呼び出すとタイマーが開始します。Timer イベント に対するスクリプトは、表示される時刻をリフレッシュします。 次のコードは、ウィンドウの Open イベントのスクリプトです。初め に時刻を表示してタイマーを開始します。 PowerScript リファレンス ボリューム 2 1189 ToAnsi st_time.Text = String(Now(), "hh:mm") Timer(60) 次のステートメントは、1 分ごとに起動するウィンドウ Timer イベント に対するスクリプトの中に記述されています。現在の時刻をスタ ティック テキスト コントロール st_time に表示します。 st_time.Text = String(Now(), "hh:mm") 関連項目 Idle ToAnsi 機能 文字列を ANSI Blob 型に変換します。 構文 ToAnsi ( string ) 引数 string 説明 ANSI Blob 型に変換したい文字列を指定します。 戻り値 Blob 型。成功すると ANSI Blob 型を返し、失敗すると空の Blob 型を返 します。 解説 ToAnsi 関数は Unicode 文字列を ANSI Blob 型に変換します。 ToAnsi 関数 は、Blob(string, EncodingANSI!) と同じ結果を返すので、PowerBuilder の 将来のバージョンではサポートされなくなる予定です。 Unicode ファイル形式 Unicode ファイルの先頭には、Unicode ファイルであることを示す 2 バ イトが追加されています。Unicode ファイルをストリーム モードで開 くときに、この 2 バイトが含まれている場合は、それをとばして読み 込んでください。 関連項目 1190 Blob FromAnsi FromUnicode ToUnicode PowerBuilder 第 10 章 PowerScript の関数 Today 機能 システムの日付を返します。システムの時刻を返す場合もあります。 構文 Today ( ) 戻り値 Date 型。現在のシステムの日付を返します。 解説 Today 関数のデータ型は Date 型ですが、現在の時刻(Time 型)を返す 場合もあります。Today 関数が別の関数の引数として使用され、その引 数で異なるデータ型が認められている場合、この関数は時刻を返すこ とがあります。 たとえば、String 関数の引数として Today 関数を呼び出し、表示書式と して日付と時刻の両方を使用した場合には、String 関数は日付(Date 型)と時刻(Time 型)の両方を返します。また、Today 関数を SetItem 関数の引数として呼び出し、ターゲット カラムのデータ型が DateTime 型の場合には、日付と時刻の両方がデータウィンドウに格納されます。 例 次のステートメントは、現在のシステム日付を返します。 Today() 次のステートメントは、現在のシステム日付が 2003 年 4 月 15 日以前 の場合に指定された処理を実行します。 IF Today() < 2003-04-15 THEN ... 次のステートメントは、ウィンドウの隅のスタティック テキスト コン トロール st_date に現在のシステム日付を表示します。 st_date.Text = String(Today(), "m/d/yy") 次のステートメントは、スタティック テキスト コントロール st_date に現在のシステム日付とシステム時刻を表示します。 st_date.Text = String(Today(), "m/d/yy hh:mm") 関連項目 Now 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Today メソッド PowerScript リファレンス ボリューム 2 1191 Top Top 機能 リストボックス コントロールの一番上に表示されている項目のイン デックス番号を取得します。Top 関数を使用すると、エンド ユーザが リストをどのようにスクロールしたかを知ることができます。 対象 リストボックス コントロール、ピクチャ リストボックス コントロール 構文 listboxname.Top ( ) 引数 listboxname 戻り値 説明 リストボックス コントロールまたはピクチャ リストボッ クス コントロールの名前を指定します。リストボックスの 一番上に表示されている項目のインデックスを取得しま す。 Integer 型。listboxname に表示されている一番上の項目のインデックス を返します。エラーが発生した場合、-1 を返します。listboxname が NULL の場合、NULL を返します。 解説 リスト項目のインデックスは、リスト全体に対する項目の位置で、コ ントロールに現在表示されている項目に対する項目の位置ではありま せん。 例 項目 15 がスクロールされて lb_Contacts のリストの一番上にある場合、 Num に 15 を設定します。 integer Num Num = lb_Contacts.Top() エンド ユーザが lb_Contacts のリストをスクロールしていない場合は、 Num に 1 を設定します。 integer Num Num = lb_Contacts.Top() lb_Contacts のリストの一番上にある項目が現在選択されていない場 合、次のステートメントは、現在選択されている項目を一番上にスク ロールします。 integer Num Num = lb_Contacts.SelectedIndex() IF lb_Contacts.Top() <> Num THEN & lb_contacts.SetTop(Num) 関連項目 1192 SelectedIndex SetTop PowerBuilder 第 10 章 PowerScript の関数 TotalColumns 機能 リストビュー コントロールのカラム数を取得します。 対象 リストビュー コントロール 構文 listviewname.TotalColumns ( ) 引数 listviewname 説明 カラム数を調べるリストビュー コントロールの名前を指 定します。 戻り値 Integer 型。正常に終了した場合はカラム数を返し、エラーが発生した 場合は -1 を返します。 解説 リストビュー コントロールがレポート ビューに設定されているとき に使用します。 例 次の例は、リストビュー コントロールのレポート ビューのカラム数を シングルライン エディット コントロールに表示します。 int li_cols li_cols = lv_list.TotalColumns() sle_info.text = "Total columns = " + string(li_cols) 関連項目 TotalItems TotalSelected PowerScript リファレンス ボリューム 2 1193 TotalItems TotalItems 機能 リストボックス コントロール中の項目の総数を取得します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール、リストビュー コントロール 構文 listcontrolname.TotalItems ( ) 引数 listcontrolname 戻り値 説明 項目の総数を取得するリストボックス、ドロップダウン リ ストボックス、ピクチャ リストボックス、ドロップダウン ピクチャ リストボックス、リストビューのいずれかのコン トロールの名前を指定します。 Integer 型。listcontrolname の項目の総数を返します。listcontrolname に 項目がない場合は 0 を返し、エラーが発生した場合は -1 を返します。 listcontrolname が NULL の場合、NULL を返します。 例 lb_Actions に合計 5 個の項目がある場合、Total に 5 を代入します。 integer Total Total = lbx_Actions.TotalItems() 次の FOR ループは lb_Actions の各項目に対して実行されます。 integer Total, n Total = lb_Actions.TotalItems() FOR n = 1 to Total ... // 何らかの処理 NEXT 関連項目 1194 TotalSelected PowerBuilder 第 10 章 PowerScript の関数 TotalSelected 機能 リストボックスから、選択されている項目の数を取得します。 対象 リストボックス コントロール、ピクチャ リストボックス コントロー ル、リストビュー コントロール 構文 listcontrolname.TotalSelected ( ) 引数 listcontrolname 戻り値 説明 選択された項目の数を取得するリストボックス コント ロール、ピクチャ リストボックス コントロール、または リストビュー コントロールの名前を指定します。 Integer 型。listcontrolname 内の選択されている項目の数を返します。 listcontrolname 内に選択されている項目がない場合は 0 を返し、エラー が発生した場合は -1 を返します。listcontrolname が NULL の場合、NULL を返します。 解説 TotalSelected 関数は、listcontrolname の MultiSelect プロパティが TRUE の場合にだけ有効です。 例 lb_Actions の 3 つの項目が選択されている場合、SelectedTotal の値は 3 です。 integer SelectedTotal SelectedTotal = lb_Actions.TotalSelected() 次の例は、lb_Actions の SelectionChanged イベントに対するスクリプト です。4 つ以上の項目が選択されている場合に、メッセージ ボックス を表示します。 IF lb_Actions.TotalSelected() > 3 THEN MessageBox(" 警告 ", & " 選択できるのは 3 項目だけです。") ELSE ... // 何らかの処理 END IF 関連項目 TotalItems PowerScript リファレンス ボリューム 2 1195 ToUnicode ToUnicode 機能 文字列を Unicode Blob 型に変換します。 構文 ToUnicode ( string ) 引数 string 説明 Unicode Blob 型に変換したい文字列を指定します。 戻り値 Blob 型。成功すると Unicode Blob 型を返し、失敗すると空の Blob 型を 返します。 解説 ToUnicode 関 数 は ANSI 文 字 列 を Unicode Blob 型 に 変 換 し ま す。 ToUnicode 関数は、Blob(string) と同じ結果を返すので、PowerBuilder の 将来のバージョンではサポートされなくなる予定です。 Unicode ファイル形式 Unicode ファイルの先頭には、Unicode ファイルであることを示す 2 バ イトが追加されています。 関連項目 1196 FromAnsi FromUnicode ToAnsi PowerBuilder 第 10 章 PowerScript の関数 TraceBegin 機能 トレース ファイルに動作の種類を挿入し、ログが開始されたことを示 し、すべての有効なアプリケーションのトレース動作のログを開始し ます。TraceOpen 関数を使ってトレース ファイルを開いてから TraceBegin を呼び出します。 構文 TraceBegin ( identifier ) 引数 identifier 戻り値 解説 説明 トレース ファイルに記録され、トレース ブロックを識別 するのに使用する読み込みのみの文字列を指定します。 identifier が NULL の場合は、空の文字列がトレース ファイ ルに置かれます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileNotOpenError! − TraceOpen 関数が呼び出されていません。 • TraceStartedError! − TraceBegin 関数は呼び出されました。 TraceBegin 関数の呼び出しは、トレース ファイルに ActBegin! の動作の 種類の値を挿入してログが開始されたことを示し、トレースするよう に選択したすべてのアプリケーションの動作のログを開始します。 TraceBegin 関数は、TraceOpen 関数を呼び出してからでないと呼び出す ことができません。記録するすべての動作を TraceEnableActivity 関数を 使って有効にしてから TraceBegin 関数を呼び出します。 アプリケーションすべての実行に対してトレース ファイルを生成し たい場合は、通常 TraceBegin 関数をアプリケーションの起動スクリプ トに入れます。トレース ファイルをアプリケーションの一部の実行に 対して生成したい場合は、通常 TraceBegin 関数をデータを集めたい機 能を開始するスクリプトに入れます。 トレース ファイル内のトレース ブロックを識別するために identifier 引数を使うことができます。トレース ブロックは、TraceBegin 関数と TraceEnd 関数への呼び出しの間に記録されるデータを表します。アプ リケーション実行の複数の部分をトレースしている場合は、単一のト レース ファイル内に複数のトレース ブロックがあることもあります。 PowerScript リファレンス ボリューム 2 1197 TraceBegin 例 次に、シングルライン エディット ボックスに入力した名前とドロップ ダウン リストから選択したタイマーの種類でトレース ファイルを開 く例を示します。トレースされるスクリプトの最初のブロックの有効 な動作のログを開始します。 TimerKind ltk_kind CHOOSE CASE ddlb_timestamp.text CASE "None" ltk_kind = TimerNone! CASE "Clock" ltk_kind = Clock! CASE "Process" ltk_kind = Process! CASE "Thread" ltk_kind = Thread! END CHOOSE TraceOpen(sle_filename.text,ltk_kind) TraceEnableActivity(ActESQL!) TraceEnableActivity(ActGarbageCollect!) TraceEnableActivity(ActObjectCreate!) TraceEnableActivity(ActObjectDestroy!) TraceBegin("Trace_block_1") 関連項目 1198 TraceOpen TraceEnableActivity TraceEnd PowerBuilder 第 10 章 PowerScript の関数 TraceClose 機能 トレース ファイルを閉じます。 構文 TraceClose ( ) 戻り値 ErrorReturn 型。以下のいずれかの値を返します。 解説 • Success! − 成功しました。 • FileNotOpenError! − TraceOpen 関数が呼び出されていません。 • FileCloseError! − ログ ファイルがいっぱいです。 TraceClose 関数は、トレース ファイルを閉じます。TraceEnd 関数を呼 び出していない場合、TraceClose 関数は処理を開始する前にその関数を 呼び出します。 通常、TraceClose 関数をアプリケーションの終了スクリプトに入れま す。 例 次に、アプリケーション トレース動作のログを終了させる方法と、ト レース ファイルを閉じる方法を示します。 TraceEnd() TraceClose() 関連項目 TraceBegin TraceEnd TraceOpen PowerScript リファレンス ボリューム 2 1199 TraceDisableActivity TraceDisableActivity 機能 指定されたトレース動作のログを無効にします。 構文 TraceDisableActivity ( activity ) 引数 activity 説明 ログを使用不可にすべき動作を指定するカタログ データ型 TraceActivity の値を指定します。値は以下のとおりです。 • ActError! − システム エラーと警告の発生 • ActESQL! − 埋め込み SQL 文のエントリと終了 • ActGarbageCollect! − ガベージ コレクションの起動と終了 • ActLine! − ルーチン行のヒット • ActObjectCreate! − オブジェクト作成のエントリと終了 • ActObjectDestroy! − オブジェクト破壊のエントリと終了 • ActProfile! − ActRoutine!、ActESQL!、ActObjectCreate!、 ActObjectDestroy!、ActGarbageCollect! 値の省略形 • ActRoutine! − ルーチンのエントリと終了(この値が使用 不可の場合は、ActLine! も自動的に使用不可になります) • ActTrace! − ActLine! を除くすべての動作の省略形 • ActUser! − 選択した動作の発生 戻り値 解説 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileNotOpenError! − TraceOpen 関数が呼び出されていません。 • TraceStartedError! − TraceEnd の前で TraceBegin の後に TraceDisableActivity を呼び出しました。 指定されたトレース動作のログを無効にするために使用します。通常、 アプリケーション実行の一部分だけをトレースしていて(したがって TraceBegin を複数回呼び出す)アプリケーションの各部分で異なる動 作を記録したいときに使用します。 特別に TraceDisableActivity 関数で使用不可にしなければ、以前に TraceEnableActivity 関数を呼び出して有効にされた動作はすべてのアプ リケーション実行で有効のままです。 TraceEnd 関数を呼び出してから TraceDisableActivity 関数を呼び出さなけ ればなりません。 1200 PowerBuilder 第 10 章 PowerScript の関数 例 次に、トレースされるスクリプトの最初のブロックを有効にする動作 のログの方法を示します。続いてログを停止し、2 番目のトレース ブ ロックの 2 つの動作を使用不可にします。ログがアプリケーション実 行のほかの部分で再開すると、使用不可に指定されていない動作は TraceClose が呼ばれるまで有効のままです。 TraceEnableActivity(ActESQL!) TraceEnableActivity(ActGarbageCollect) TraceEnableActivity(ActObjectCreate!) TraceEnableActivity(ActObjectDestroy!) TraceBegin("Trace_block_1") TraceEnd() TraceDisableActivity(ActESQL!) TraceDisableActivity(ActGarbageCollect!) TraceBegin("Trace_block_2") 関連項目 TraceEnd TraceEnableActivity PowerScript リファレンス ボリューム 2 1201 TraceEnableActivity TraceEnableActivity 機能 指定したトレース動作のログを有効にします。 構文 TraceEnableActivity ( activity ) 引数 activity 説明 記録する動作を識別するカタログ データ型 TraceActivity の値を指定します。値は以下のとおりです。 • ActError! − システム エラーと警告の発生 • ActESQL! − 埋め込み SQL 文のエントリと終了 • ActGarbageCollect! − ガベージ コレクションの起動と終了 • ActLine! − ルーチン行ヒット(この値が有効な場合は、 ActRoutine! は自動的に有効になります) • ActObjectCreate! − オブジェクト作成のエントリと終了 • ActObjectDestroy! − オブジェクト破壊のエントリと終了 • ActProfile! − ActRoutine!、ActESQL!、ActObjectCreate!、 ActObjectDestroy!、ActGarbageCollect! 値の省略形 • ActRoutine! − ルーチンのエントリと終了 • ActTrace! − ActLine! を除くすべての動作の省略形 戻り値 解説 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileNotOpenError! − TraceOpen 関数が呼び出されていません。 • TraceStartedError! − TraceEnd の前で TraceBegin の後に TraceEnableActivity を呼び出しました。 TraceOpen 関数に続いて TraceEnableActivity 関数を呼び出します。 TraceEnableActivity 関数は、トレース ファイルに記録したい動作の種類 を指定できるようにします。記録されるデフォルトの動作の種類は、 ActUser! 値で識別されるユーザ定義の動作の種類です。この動作は、 TraceOpen 関数を呼び出すと使用できるようになります。記録される動 作を指定するには、TraceEnableActivity 関数を呼び出してから TraceBegin を呼び出さなければなりません。 各 TraceOpen の呼び出しは、デフォルトで記録されるように動作の種 類を設定し直します(つまり、ActUser! の動作のみが記録されます)。 ActError! と ActUser! の値が文字列のトレース ファイルへの受け渡し を必要とするので、この情報を記録するには TraceError と TraceUser 関 数を呼び出さなければなりません。 1202 PowerBuilder 第 10 章 PowerScript の関数 TraceDisableActivity 関数を呼び出して特別に使用不可にしない限りは、 TraceEnableActivity で有効になった動作はすべてのアプリケーション実 行を通して有効のままです。 例 次に、シングルライン エディット ボックスに入力した名前とドロップ ダウン リストから選択したタイマーの種類でトレース ファイルを開 く例を示します。続いて、トレースするスクリプトの最初のブロック の有効な動作のログを開始します。 TimerKindltk_kind CHOOSE CASE ddlb_timestamp.text CASE "None" ltk_kind = TimerNone! CASE "Clock" ltk_kind = Clock! CASE "Process" ltk_kind = Process! CASE "Thread" ltk_kind = Thread! END CHOOSE TraceOpen(sle_filename.text,ltk_kind) TraceEnableActivity(ActRoutine!) TraceEnableActivity(ActESQL!) TraceEnableActivity(ActGarbageCollect!) TraceEnableActivity(ActError!) TraceEnableActivity(ActCreateObject!) TraceEnableActivity(ActDestroyObject!) TraceBegin("Trace_block_1") 関連項目 TraceOpen TraceBegin TraceDisableActivity PowerScript リファレンス ボリューム 2 1203 TraceEnd TraceEnd 機能 ログが終了したことを示す動作の種類の値をトレース ファイルに挿 入し、アプリケーションのトレース動作のログを中止します。 構文 TraceEnd ( ) 戻り値 ErrorReturn 型。以下のいずれかの値を返します。 解説 • Success! − 成功しました。 • FileNotOpenError! − TraceOpen 関数が呼び出されていません。 • TraceNotStartedError! − TraceBegin が呼び出されていません。 TraceEnd 関数の呼び出しで、トレース ファイルの ActBegin! の動作の 種類の値が挿入されてログが終了したことを示し、トレースするよう に選択したすべてのアプリケーション動作のログを中止します。 TraseClose 関数を呼び出すときに TraceEnd 関数が呼び出されていない 場合は、TraceClose 関数は TraceEnd 関数を呼び出してから処理を始め ます。 すべてのアプリケーション実行に対してトレース ファイルを生成し たい場合は、通常アプリケーションの終了スクリプトに TraceEnd 関数 を入れます。アプリケーション実行の一部分についてのみトレース ファイルを生成したい場合は、通常、データを集める機能を終了させ るスクリプトに TraceEnd 関数を入れます。 例 次に、アプリケーション トレース動作のログを終了させる方法と、ト レース ファイルを閉じる方法を示します。 TraceEnd() TraceClose() 関連項目 1204 TraceOpen TraceBegin TraceClose TraceDisableActivity PowerBuilder 第 10 章 PowerScript の関数 TraceError 機能 この動作の種類のトレースが有効にされた場合は、独自のエラー メッ セージおよびそのエラー レベルをトレース ファイルに記録します。 構文 TraceError ( severity, message ) 引数 severity message 戻り値 説明 エラーの重要度を示すための値が数値である long 型を指 定します。 トレース ファイルに追加したい値がエラー メッセージで ある string 型を指定します。 ErrorReturn 型。この関数はいつでも Success! を返します。 severity または message が NULL の場合は、TraceError は NULL を返し、 トレース ファイルにエントリは作成されません。 解説 TraceEnableActivity 関数でこの種類のトレースを有効にし、 次に TraceBegin 関数を呼び出した場合は、TraceError は、ActError! の動作の種類の値を トレース ファイルに記録します。独自のエラー メッセージを記録する ためには TraceError 関数を使用します。この関数は、TraceUser 関数の ように機能しますが、より深刻な問題を識別するのに使います。severity と message の値は、トレース ファイルを変更することなく渡されます。 例 次に、データベース検索が失敗したときにエラー メッセージをトレー ス ファイルに記録する例を示します。 dw_1.SetTransObject(SQLCA) TraceUser(100, "Starting database retrieval") IF dw_1.Retrieve() = -1 THEN TraceError(999, "Retrieve for dw_1 failed") ELSE TraceUser(200, "Database retrieval complete") END IF 関連項目 TraceEnableActivity TraceUser PowerScript リファレンス ボリューム 2 1205 TraceOpen TraceOpen 機能 指定された名前でトレース ファイルを開き、アプリケーション トレー ス動作のログを有効にします。 構文 TraceOpen ( filename, timer ) 引数 filename timer 説明 トレース ファイルを識別するために使用する読み込みの みの文字列を指定します。 タイマーを識別するカタログ データ型 TimerKind の値を 指定します。値は以下のとおりです。 • Clock! − 壁掛け時計のタイマーを使用する • Process! − プロセス タイマーを使用する • Thread! − スレッド タイマーを使用する • TimeNone! − タイマーの値を記録しない 戻り値 ErrorReturn 型。以下のいずれかの値を返します。 • Success! − 成功しました。 • FileAlreadyOpenError! − TraceOpen 関数が TraceClose 関数を介する ことなく再度呼び出されました。 • FileOpenError! − ファイルを書き込み用に開くことができません でした。 • EnterpriseOnlyFeature! − この関数は PowerBuilder の Enterprise 版で のみサポートされています。 filename が NULL の場合は、TraceOpen 関数は NULL を返します。 解説 TraceOpen 関数は指定されたトレース ファイルを開き、アプリケー ションのトレース動作のログを有効にします。トレース ファイルを開 くと、TraceOpen は現行のアプリケーションとライブラリ リストをト レース ファイルに記録します。デフォルトの動作の種類、ActUser! の 値で識別されるユーザ定義の動作の種類のログも有効にします。 TraceOpen 関数を呼び出してから、TraceEnableActivity 関数を使ってト レース ファイルに記録する追加の動作を選択できます。TraceOpen 関 数と TraceEnableActivity 関数を呼び出したら、ログを開始するためには TraceBegin 関数を呼び出さなければなりません。 アプリケーション トレース動作のログを停止するには、TraceEnd 関数 に続いて TraceClose 関数を呼び出し、トレース ファイルを閉じなけれ ばなりません。TraceOpen 関数の各呼び出しは、デフォルトの ActUser! への動作の種類のログを再設定します。 1206 PowerBuilder 第 10 章 PowerScript の関数 通常、TraceOpen 関数はアプリケーションの起動スクリプトに入れま す。 注意 トレース ファイルのディスク容量がなくなってもエラーは生成され ません。しかし、ログはストップし、トレース ファイルを解析のため に使用できなくなります。 デフォルトでは、各動作が開始、終了する時間は、マシンが起動した 時間のような外部の動作に対する絶対時間を計測するクロック タイ マーを使って記録されます。クロック タイマーは、時間をマイクロ秒 で計測します。マシンの CPU のスピードによって、クロック タイマー は 1 マイクロ秒より小さな時間を表すこともできます。タイマーの精 度は、そのタイマーが測定できる最小の時間の単位です。 実行されるプロセスまたはスレッドが開始した時間に対する時間をマ イクロ秒で測定するプロセスまたはスレッド タイマーを使用するこ ともできます。スレッド タイマーは分散アプリケーションに使用しま す。プロセスおよびスレッド タイマーの両方は、プロセスまたはス レッドが実行されるのにかかる時間をより正確に測定できるようにし ますが、どちらもクロック タイマーよりも精度は低くなります。 解析で時間の情報が必要ない場合は、トレース ファイルの時間情報を 省略できます。 集積時間 トレース ファイルのタイムスタンプは、トレース データを 集めるのにかかった時間を除外します。 例 次に、シングルライン エディット ボックスに入力した名前とドロップ ダウン リストから選択したタイマーの種類でトレース ファイルを開 く例を示します。続いて、トレースするスクリプトの最初のブロック の有効な動作のログを開始します。 TimerKindltk_kind CHOOSE CASE ddlb_timestamp.text CASE "None" ltk_kind = TimerNone! CASE "Clock" ltk_kind = Clock! CASE "Process" ltk_kind = Process! CASE "Thread" ltk_kind = Thread! END CHOOSE PowerScript リファレンス ボリューム 2 1207 TraceUser TraceOpen(sle_filename.text,ltk_kind) 関連項目 TraceBegin TraceClose TraceEnableActivity TraceEnd TraceUser 機能 トレース ファイルに指定する動作の種類の値を記録します。 構文 TraceUser (info, message ) 引数 info message 戻り値 説明 ログ動作と関連させたい値が参照数値である long 型を指 定します。 トレース ファイルに追加したい値が動作の種類の値であ る string 型を指定します。 ErrorReturn 型。この関数はいつでも Success! を返します。 info または message が NULL の場合は、TraceUser 関数は NULL を返し、 ログ ファイルにエントリは作成されません。 解説 TraceUser 関数は、トレース ファイルに ActUser! の動作の種類の値を 記録します。これはデフォルトの動作の種類で、TraceOpen 関数が呼び 出されたときに有効になります。アプリケーションの実行中の特定の 発生を識別する独自のメッセージを記録するために TraceUser 関数を 使います。たとえば、特定の戻り値の発生またはスクリプト文の始め と終わりを記録したいかもしれません。TraceUser 関数は、TraceError 関 数のように動作しますが、TraceError はより深刻な問題を識別するため に使用します。info および message の値は、トレース ファイルを変更 することなく渡されます。 例 この例では、ユーザ メッセージがトレース ファイルに記録され、デー タベース検索の開始と終了がいつ行われたかを識別します。 dw_1.SetTransObject(SQLCA) TraceUser(100, "Starting database retrieval") IF dw_1.Retrieve() = -1 THEN TraceError(999, "Retrieve for dw_1 failed") ELSE 1208 PowerBuilder 第 10 章 PowerScript の関数 TraceUser(200, "Database retrieval complete") END IF 関連項目 TraceEnableActivity TraceError TriggerEvent 機能 指定されたオブジェクトに関連するイベントを起動し、そのイベント のスクリプトを直ちに実行します。 対象 すべてのオブジェクト 構文 objectname.TriggerEvent ( event {, word, long } ) 引数 objectname event word (オプション) long (オプション) 戻り値 説明 関連するイベントを持つ PowerBuilder のオブジェクトま たはコントロールの名前を指定します。 PowerBuilder のイベント(たとえば、Clicked!、Modified!、 DoubleClicked!)を識別する TrigEvent カタログ データ型の 値を指定します。または、イベントの名前を表す文字列を 指定します。イベントは、objectname に有効なイベントで なければなりません。また、このイベントに対するスクリ プトは、objectname に存在していなければなりません。 システムの Message オブジェクトの WordParm プロパティ に格納される Long 型の値を指定します。word ではなく、 long に値を指定する場合、0 を入力してください。プラッ トフォームの互換性を維持するために、WordParm プロパ ティと LongParm プロパティは、どちらも Long 型になり ます。 システムの Message オブジェクトの LongParm プロパティ に格納される Long 型の値を指定します。文字列を指定す ると、その文字列のポインタが LongParm プロパティに格 納されます。LongParm プロパティにアクセスするには、 String 関数を使用します。詳細については、 「解説」を参照 してください。 Integer 型。正常に終了した場合は 1 を返し、イベントのスクリプトが 実行されます。イベントが objectname に対して有効でない場合、また はこのイベントに対するスクリプトが objectname に存在しない場合に は、-1 を返します。引数のいずれかの値が NULL の場合、NULL を返し ます。 PowerScript リファレンス ボリューム 2 1209 TriggerEvent 解説 TrigEvent カタログ データ型の値のかわりにイベントの名前を指定す る場合は、イベント名を二重引用符(")で囲みます。 リターン コードをチェック TriggerEvent 関数が正常に終了したかどうかを確認するために、リター ン コードをチェックし、結果に応じて適切な処理を実行してくださ い。 word と long を使用してイベント スクリプトに情報を渡すことができ ます。その情報は、Message オブジェクトに格納されます。スクリプ トの中で、Message オブジェクトの WordParm プロパティと LongParm プロパティを参照して、渡された情報にアクセスします。 long に 文 字 列 を 指 定 し た 場 合、String 関 数 の format に キ ー ワ ー ド "address" を指定して呼び出し、long に指定した情報にアクセスできま す。イベント スクリプトは、次のように始めることができます。 string PassedString PassedString = String(Message.LongParm, "address") 注意 引数 long が有効な文字列値を含む場合以外は、この構文を使わないで ください。 イベントについての詳細、および PostEvent 関数と TriggerEvent 関数を 使用するタイミングについては、PostEvent 関数を参照してください。 PowerBuilder で定義されたイベントではなく、システム イベントを起 動するには、PostEvent 関数や TriggerEvent 関数のかわりに、Post 関数ま たは Send 関数を使用してください。Send 関数は PowerBuilder イベン トを起動させるメッセージを送信できますが、次に示すようにそれぞ れのメッセージ コードを知っている必要があります。目的のイベント を発生させるには、PowerBuilder の関数を使用した方が簡単です。 別の記述方法 次のステートメントは、どちらもチェックボックス コン トロール cb_OK をクリックします。次の例は Send 関数を呼び出して います。 Send(Handle(Parent), 273, 0, Long(Handle(cb_OK), 0)) このステートメントは、次のステートメントと同じ意味です。 cb_OK.TriggerEvent(Clicked!) 1210 PowerBuilder 第 10 章 PowerScript の関数 例 次のステートメントは、コマンドボタン コントロール cb_OK の Clicked イベントに対するスクリプトを直ちに実行します。 cb_OK.TriggerEvent(Clicked!) 次のステートメントは、親ウィンドウのユーザ定義イベント cb_exit_request に対するスクリプトを実行します。 Parent.TriggerEvent("cb_exit_request") 次のステートメントは、メニュー m_Appl のメニュー項目 m_File の Clicked イベントに対するスクリプトを実行します。 m_Appl.m_File.TriggerEvent(Clicked!) 関連項目 Post PostEvent Send PowerScript リファレンス ボリューム 2 1211 TriggerPBEvent TriggerPBEvent 機能 PowerBuilder ウィンドウ ActiveX コントロールに含まれるチャイルド ウィンドウで指定されたユーザ イベントを起動します。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.TriggerPBEvent ( name {, numarguments {, arguments } } ) 引数 activexcontrol name numarguments (オプション) arguments (オプション) 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、これはオブジェク ト要素の NAME 属性です。そのほかの環境で使用する場合 には、これは PowerBuilder ウィンドウ ActiveX を含むコン トロールを参照します。 ユーザ イベントの名前を指定する文字列を指定します。こ の引数は、参照渡しされます。 arguments 配列の構成要素の数値を指定する Integer 型の値。 デフォルトは 0 です。 イベント引数を含む可変配列。PowerBuilder では、変数は Any データ型にマップされます。この引数は、参照渡しさ れます。 この引数を指定すると、numarguments も指定しなければな りません。この引数を指定せず、関数が arguments を含む 場合は、各引数に対して一度ずつ SetArgElement 関数を呼 び出して引数リストに値を与えます。 JavaScript は、この引数を使用できません。 戻り値 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 この関数を呼び出し、PowerBuilder ウィンドウ ActiveX コントロール に含まれるチャイルド ウィンドウでユーザ イベントを起動します。 PowerBuilder 関数の戻り値を確認するには、GetLastReturn 関数を呼び出 します。 JavaScript は、arguments 引数を使用できません。 例 次に、JavaScript が TriggerPBEvent 関数を呼び出す例を示します。 function triggerEvent(f) { var retcd; var rc; var numargs; var theEvent; var theArg; retcd = 0; 1212 PowerBuilder 第 10 章 PowerScript の関数 numargs = 1; theArg = f.textToPB.value; PBRX1.SetArgElement(1, theArg); theEvent = "ue_args"; retcd = PBRX1.TriggerPBEvent(theEvent, numargs); rc = parseInt(PBRX1.GetLastReturn()); if (rc != 1) { alert(" エラー。空の文字列です。"); } PBRX1.ResetArgElements(); } 次に、VBScript が TriggerPBEvent 関数を呼び出す例を示します。 Sub TrigEvent_OnClick() Dim retcd Dim myForm Dim args(1) Dim rc Dim numargs Dim theEvent retcd = 0 numargs = 1 rc = 0 theEvent = "ue_args" Set myForm = Document.buttonForm args(0) = buttonForm.textToPB.value retcd = PBRX1.TriggerPBEvent(theEvent, & numargs, args) rc = PBRX1.GetLastReturn() if rc <> 1 then msgbox " エラー。空の文字列です。" end if end sub 関連項目 GetLastReturn SetArgElement InvokePBFunction PowerScript リファレンス ボリューム 2 1213 Trim Trim 機能 文字列の左端と右端からスペースを削除します。 構文 Trim ( string ) 引数 string 戻り値 説明 左端と右端からスペースを削除する文字列を指定します。 String 型。正常に終了した場合は、string の左端と右端からスペースを 削除した文字列を返します。エラーが発生した場合、空の文字列("") を返します。string が NULL の場合、Trim 関数は NULL を返します。 解説 Trim 関数は、エンド ユーザが入力したデータの左端と右端からスペー スを削除します。 例 次のステートメントは、"BABE RUTH" を返します。 Trim(" BABE RUTH ") 次の例は、エンド ユーザがシングルライン エディット コントロール sle_emp_fname に入力した値の左端と右端のスペースを取り除き、それ を emp_fname に格納します。 string emp_fname emp_fname = Trim(sle_emp_fname.Text) 関連項目 LeftTrim RightTrim 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Trim メソッド TrimW 機能 文字列の左端と右端からスペースを削除します。この関数は、将来サ ポートされなくなります。動作は、すべての環境で Trim 関数と同じで す。 構文 TrimW ( string ) 1214 PowerBuilder 第 10 章 PowerScript の関数 Truncate 機能 指定の小数点以下の位置で、数値の切り捨てを行います。 構文 Truncate ( x, n ) 引数 x n 戻り値 説明 切り捨てを行う数値を指定します。 x の切り捨てを行う小数点以下の位置(有効な値は 0 ∼ 18) を指定します。 Decimal 型。正常に終了した場合、切り捨てた値を返します。エラーが 発生した場合、または引数が NULL の場合には、NULL を返します。 計算フィールドにおける Truncate 関数の使用 浮動小数レジスタ(計算用)にロードされた実数は、バイナリの記憶 領域における最大限の精度で表現されます。たとえば、2.07 として表 示されている実数は、実際には 2.0699999999999997 として格納されて います。 このような数値に対して切り捨てを行うと、期待される結果にならな いことがあります。この問題を回避するためには、元の Real 型を Long 型、Integer 型、または Decimal 型に変更するか、あるいは次のように Truncate 関数の引数に定数を付加します。Truncate (x + 0.0000001, n ) 例 次のステートメントは、9.2 を返します。 Truncate(9.22, 1) 次のステートメントは、9.2 を返します。 Truncate(9.28, 1) 次のステートメントは、9 を返します。 Truncate(9.9, 0) 次のステートメントは、-9.2 を返します。 Truncate(-9.29, 1) 関連項目 Ceiling Int Round 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Truncate メソッド PowerScript リファレンス ボリューム 2 1215 TrustVerify TrustVerify 機能 SSL 証明書のチェーンについてクライアントによる使用のための承認 を得る必要がある場合に、EAServer によって呼び出されます。この関 数は、EAServer に接続している PowerBuilder クライアントによって使 用されます。 対象 SSLCallBack オブジェクト 構文 sslcallback.TrustVerify ( thesessioninfo, reason ) 引数 sslcallback thesessioninfo reason 説明 カスタマイズされた SSLCallBack オブジェクトのインス タンスを指定します。 SSL セッションに関する情報を含む CORBA オブジェク トを指定します。 コールバックの理由を示す Long 型の値を指定します。値 は以下のとおりです。 • 1 REASON_CHAIN_INCOMPLETE • 2 REASON_UNKNOWN_CA • 3 REASON_CHAIN_EXPIRED • 4 REASON_TRUSTDBPINNOTSET • 5 REASON_TRUSTDBLOGINFAILED 戻り値 Long 型。以下のいずれかの値を返します。 1 TRUST_ONCE(現行の接続を受け入れます) 2 TRUST_FAIL(現行の接続を拒否します) 3 TRUST_ALWAYS(受け入れ、信頼できるものとしてデータベー ス内でマークします) 4 TRUST_NEVER(拒否し、信頼できないものとしてデータベー ス内でマークします) 5 TRUST_SESSION(現時点から現行のセッションが終わるまで 受け入れます) 6 TRUST_FAIL_SESSION(現行のセッションが終わるまで拒否 します) 解説 1216 PowerBuilder のアプリケーションでは、通常、TrustVerify 関数を直接呼 び出すことはありません。TrustVerify 関数が EAServer から呼び出され るのは、内部の SSL 信頼認証チェックでサーバの証明書のチェーンを 確認できない場合、または Sybase PKCS11 トークンにログインするた めの正しい PIN が提供されなかった場合です。どの SSL プロトコルを 使用している場合でも TrustVerify 関数が起動されます。これは、SSL ハ ンドシェイク プロセスでサーバ認証が必要な手順であるためです。 PowerBuilder 第 10 章 PowerScript の関数 SSLCallBack オブジェクトの任意の関数の動作を上書きするためには、 SSLCallBack から継承された標準クラス ユーザ オブジェクトを作成 し、必要であればこのオブジェクトをカスタマイズします。コールバッ クが要求されたときに使用するオブジェクトを EAServer に認識させ るには、SSL の callbackImpl プロパティにオブジェクト名を指定しま す。このプロパティの値を設定するには、SetGlobalProperty 関数を呼び 出します。 TrustVerify 関数の実装を提供していない場合、CORBA::NO_IMPLEMENT 例外が EAServer に送られ、接続が拒否されます。 戻り値を有効なものにするには、エラーの理由に関する情報をユーザ に提供し、セッションを継続するためのサーバ証明書チェーンが信頼 で き る か ど う か 判 断 す る よ う に ユ ー ザ に 依 頼 し ま す。ユ ー ザ が TRUST_FAIL または TRUST_ONCE を指定した場合、現行のセッショ ン中にこの関数が再び呼び出される可能性があります。 このコールバック関数内で例外を送出することによって、このような 接続の試行をユーザがキャンセルすることが可能になります。その例 外を捕捉するには、ConnectToServer 関数を try-catch ブロックの中に含 める必要があります。 例 次の例は、エラーが呼び出された理由が PIN の不正または欠如である かどうかチェックし、そうである場合には GetPin を呼び出すために TRUST_FAIL を返します。そうでない場合には、サーバで証明書チェー ンを確認できなかった理由を表示し、セッションを継続するかどうか 選択するようにユーザに促します。 long rc string stmp, stmp2 w_response w_ssl_response string ls_rc sslSessionInfo mySessionInfo rc = thesessioninfo._narrow(mySessionInfo, & "thesessioninfo") is_tokenName = mySessionInfo.getProperty( "tokenName" ) CHOOSE CASE reason CASE 4 MessageBox("SSL セッションには PIN が必要です。", & "PIN を入力しないと、" + is_tokenName + & + " 証明書データベースにアクセスできません。") return 2 CASE 5 MessageBox(" 入力した PIN が不正です。", & PowerScript リファレンス ボリューム 2 1217 TrustVerify " 正しい PIN コードを入力し、" + is_tokenName + & + " 証明書データベースへのアクセスを試みてください。") return 2 CASE 1 MessageBox(" 証明書の検証に失敗しました。", & " サーバの証明書チェーンが不完全です。ORB は " & + "~nSybase PKCS11 トークンの " & + "CA 証明書を使用して " & + "~n チェーンを完了できません。")& CASE 2 MessageBox(" 証明書の検証に失敗しました。", & " サーバの証明書チェーンの期限が切れています。 チェーン内の " & + "1 つまたは複数の証明書が " & + " 有効ではありません。") CASE 3 MessageBox(" 証明書の検証に失敗しました。", & " サーバの証明書チェーンに " & + " 不明なルート証明書機関が含まれています。 " & + " この CA は、Sybase PKCS11 トークンの信頼された " & + " データ内には見つかりません。") END CHOOSE sTmp = "~nVersion: " stmp += mySessionInfo.getProperty( "Version" ) sTmp = "~nHost: " stmp += mySessionInfo.getProperty( "host" ) stmp += "~nport: " stmp += mySessionInfo.getProperty( "port" ) stmp += "~nciphersuite: " stmp += mySessionInfo.getProperty( "ciphersuite" ) stmp += "~nCertificateLabel: " stmp += mySessionInfo.getProperty( "certificateLabel" ) stmp += "~nUserData: " stmp += mySessionInfo.getProperty( "UserData" ) stmp += "~ntokenName: " stmp += mySessionInfo.getProperty( "tokenName" ) stmp += "~npkcs11Module: " stmp += mySessionInfo.getProperty( "pkcs11Module" ) stmp += "~nPlease enter your choice: " stmp += "~n 1: Accept this connection" stmp += "~n 2: Reject this connection" stmp += "~n 3: Accept this connection and mark CA as trusted" 1218 PowerBuilder 第 10 章 PowerScript の関数 stmp += "~n 4: Reject this connection and mark CA as untrusted" stmp += "~n 5: Accept this CA throughout this session" stmp += "~n 6: Reject this CA throughout this session" // レスポンス ウィンドウに情報を表示し // CloseWithReturn 関数で応答を返します。 openwithparm(w_response, stmp) ls_rc = Message.StringParm return long(ls_rc) 関連項目 ConnectToServer GetCertificateLabel GetCredentialAttribute GetPin PowerScript リファレンス ボリューム 2 1219 TypeOf TypeOf 機能 オブジェクトまたはコントロールの型を調べて、Object カタログ デー タ型の値を取得します。 対象 すべてのオブジェクト 構文 objectname.TypeOf ( ) 引数 objectname 説明 型を取得するオブジェクトまたはコントロールの名前を 指定します。 戻り値 Object カタログ データ型。objectname の型を返します。objectname が NULL の場合、NULL を返します。 解説 TypeOf 関数を使用して、選択またはドラッグされたコントロールの データ型を調べることができます。 例 dw_Customer がデータウィンドウ コントロールの場合、次のステート メントは DataWindow! を返します。 dw_Customer.Typeof() 次の例は、w_dept ウィンドウの Control 配列のうち、最初の 5 つのコン トロールを調べます。ループの中では、コントロールがチェックボッ クスの場合に、何か処理を行います。 integer n FOR n = 1 to 5 IF w_dept.Control[n].TypeOf() = CheckBox! THEN ... // 何らかの処理 END IF NEXT 次の例では、ループの中でウィンドウの Control 配列内の各オブジェク トのデータ型を winobject 配列に代入します。 object winobjecttype[] long ll_count FOR ll_count = 1 to UpperBound(Control[]) winobjecttype[ll_count] = & TypeOf(Control[ll_count]) NEXT 1220 PowerBuilder 第 10 章 PowerScript の関数 メッセージ オブジェクトの PowerObjectParm プロパティを介して渡さ れたコントロールの種類がわからないものとします。次の例は、渡さ れたすべてのオブジェクトをコントロールの先祖オブジェクトである graphicobject 型の変数に代入し、TypeOf 関数を使用して取得したコン トロールの型を変数 type_obj に設定します。CHOOSE CASE 文には、各 コントロールのデータ型に対応する処理を記述することができます。 次のステートメントは、OpenWithParm 関数を使用して開かれたウィン ドウの Open イベントに対するスクリプトの一部です。 graphicobject stp_obj object type_obj stp_obj = Message.PowerObjectParm type_obj = stp_obj.TypeOf() CHOOSE CASE type_obj CASE DataWindow! MessageBox(" オブジェクト "," データウィンドウです。") CASE SingleLineEdit! MessageBox(" オブジェクト "," シングルライン エディットで す。") ... // そのほかの種類のオブジェクトに対する処理 CASE ELSE MessageBox(" オブジェクト "," そのほかです。") END CHOOSE 関連項目 ClassName PowerScript リファレンス ボリューム 2 1221 Uncheck Uncheck 機能 ドロップダウン メニューまたはカスケード メニューの項目の先頭に 表示されているチェックマークを削除し、その項目の Checked プロパ ティを FALSE にします。 対象 メニュー オブジェクト 構文 menuname.Uncheck ( ) 引数 menuname 説明 チェックマークを削除するメニュー項目の完全な名前を 指定します。ドロップダウン メニューとカスケード メ ニューのメニュー項目を指定できます。メニューバー上に ある項目は、指定できません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。menuname が NULL の場合、NULL を返します。 解説 メニュー項目の先頭に表示されているチェックマークは、そのメ ニュー項目が現在オンになっていることを示しています。エンド ユー ザは、そのメニュー項目を選択してオンとオフを切り替えることがで きます。たとえば、グリッドが表示されているときは、ウィンドウ ペ インタの[デザイン]メニューの[グリッドの表示]にチェックマー クが付いています。 メニュー項目の Clicked イベントに対するスクリプトの中で Check 関 数を使用すると、エンド ユーザがメニュー項目を選択したときに、メ ニュー項目にチェックマークを付けることができます。また、Uncheck 関数を使用すると、エンド ユーザがメニュー項目の選択を解除したと きに、メニュー項目からチェックマークを削除することができます。 別の記述方法 Uncheck 関数を呼び出すかわりに、次のようにオブジェ クトの Checked プロパティを設定する方法もあります。 menuname.Checked = false たとえば、次のようなステートメントがあるとします。 m_appl.m_view.m_grid.Checked = FALSE このステートメントは、次のステートメントと同じ意味です。 m_appl.m_view.m_grid.Uncheck() 例 次のステートメントは、メニュー m_appl のドロップダウン メニュー m_view にあるメニュー項目 m_grid の先頭に表示されているチェック マークを取り除きます。 m_appl.m_view.m_grid.Uncheck() 1222 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは、メニュー m_appl のドロップダウン メニュー m_view にあるメニュー項目 m_grid の先頭にチェックマークが表示さ れているかどうかを調べます。チェックマークが表示されている場合 はチェックマークを削除し、チェックマークが表示されていない場合 はその項目にチェックマークを付けます。 IF m_appl.m_view.m_grid.Checked = TRUE THEN m_appl.m_view.m_grid.Uncheck() ELSE m_appl.m_view.m_grid.Check() END IF 関連項目 Check Undo 機能 編集可能なコントロールで最後に行った編集操作を取り消し、コント ロール内のテキストを最後の編集の前の内容に戻します。 対象 編集可能なコントロール(データウィンドウ、エディットマスク、マ ルチライン エディット、リッチテキスト エディット、シングルライン エディット) 構文 editname.Undo ( ) 引数 editname 説明 最後に行われた編集を取り消す(元に戻す)データウィン ドウ、エディットマスク、マルチライン エディット、リッ チテキスト エディット、シングルライン エディットのい ずれかのコントロールの名前を指定します。データウィン ドウ コントロールの名前を指定した場合、現行の行とカラ ムに対するエディット コントロール内の最後の編集が元 に戻ります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。editname が NULL の場合、NULL を返します。 解説 最後に行われた操作を取り消すことができるかどうかを調べるには、 CanUndo 関数を呼び出してください。 例 次のステートメントは、マルチライン エディット コントロール mle_Contact で最後に実行された編集を元に戻します。 mle_Contact.Undo() PowerScript リファレンス ボリューム 2 1223 UnitsToPixels 次のステートメントは、マルチライン エディット コントロール mle_Contact で最後に実行された編集を元に戻せるかどうかをチェック します。元に戻すことができる場合、最後に実行された編集を元に戻 します。 IF mle_Contact.CanUndo() THEN mle_Contact.Undo() 関連項目 CanUndo UnitsToPixels 機能 PowerBuilder 単位系をピクセル単位に変換し、そのピクセル数を返し ます。通常、ピクセルは 1 次元なので、水平方向または垂直方向のど ちらの方向に変換するかを指定できます。 構文 UnitsToPixels ( units, type ) 引数 units type 説明 Integer 型の値。ピクセルに変換する PowerBuilder 単位系の 数を指定します。 ConvertType カタログ データ型の値。PowerBuilder 単位系 を水平方向に変換するか、垂直方向に変換するかを指定し ます。 • XUnitsToPixels! − 水平方向 • YUnitsToPixels! − 垂直方向 戻り値 Integer 型。正常に終了した場合は変換後の値を返し、エラーが発生し た場合は -1 を返します。引数のいずれかの値が NULL の場合、NULL を 返します。 例 次のステートメントは、垂直方向の Power Builder 単位系の 350 を垂直 方向のピクセルに変換し、変換した値を Value に設定します。 integer Value Value = UnitsToPixels(350, YUnitsToPixels!) 関連項目 1224 PixelsToUnits PowerBuilder 第 10 章 PowerScript の関数 UpdateLinksDialog 機能 OLE コンテナにリンクされたファイルを検索します。リンクされた ファイルが見つからない場合は、メッセージを表示してからダイアロ グボックスを表示します。エンド ユーザは、このダイアログボックス で、ファイルを検索したり、リンクを変更したりできます。 対象 OLE コントロール、OLE DWObject(データウィンドウ コントロール のデータウィンドウ オブジェクトの中にあるオブジェクト) 構文 objectref.UpdateLinksDialog ( ) 引数 objectref 説明 リンクを設定するオブジェクトを含む OLE コントロール の名前、またはデータウィンドウ コントロール上の OLE DWObject の完全な名前を指定します。 DWObject の名前は、次のような完全な名前で指定します。 dwcontrol.Object.dwobjectname 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 コンテナの LinkUpdateOptions プロパティが自動更新に設定されてい る場合、OLE コンテナを作成したときと、オブジェクトをロードした とき(ウィンドウを開いたときなど)に、PowerBuilder はリンクを更 新しようとします。リンク ファイルが見つからないと、メッセージが 表示されます。エンド ユーザは、リンクの解除や、正しいファイルの 検索などの編集を行うことができます。 UpdateLinksDialog 関数と LinkTo 関数は、リンク ファイルが移動された 場合や、コンテナの LinkUpdateOptions プロパティが手動更新に変更さ れた場合に便利です。 この関数を呼び出すと、自動更新と同じ処理 が実行されます。PowerBuilder はファイルを検索し、見つからなかっ た場合はエンド ユーザがリンクを編集できるようにします。 UpdateLinksDialog 関数 LinkTo 関数 エンド ユーザを介さずにリンクを設定する場合は、その 引数にリンクするファイルと項目を指定して LinkTo 関数を呼び出しま す。リンク ファイルを選択する独自のダイアログボックスを表示する 場合は、そのダイアログボックスでエンド ユーザが選択したリンク ファイルと項目を引数に指定して LinkTo 関数を呼び出します。 OLE コンテナに埋め込みオブジェクトがある場合、UpdateLinksDialog 関 数は無効になり、0 を返します。 PowerScript リファレンス ボリューム 2 1225 Upper リンクの更新についての詳細は、 『アプリケーション テクニック』マ ニュアルを参照してください。 例 次の例は、OLE コントロール ole_report にリンクされたファイルを検索 します。ファイルが見つからない場合、リンク ダイアログボックスを 表示し、エンド ユーザがリンクを編集できるようにします。 ole_report.UpdateLinksDialog() 次の例は、データウィンドウ コントロール dw_customer_data の OLE DWObject ole_word にリンクされたファイルを検索します。ファイルが 見つからない場合、エンド ユーザはリンク ダイアログボックスを使用 してリンクを編集することができます。 dw_customer_data.Object.ole_word.UpdateLinksDialog() 関連項目 InsertObject LinkTo Upper 機能 文字列中のすべての英文の小文字を大文字に変換します。 構文 Upper ( string ) 引数 string 戻り値 説明 文字列中の英文の小文字を大文字に変換する文字列を指 定します。 String 型。正常に終了した場合は、string の英文の小文字を大文字に変 換して返します。エラーが発生した場合、空の文字列(“”)を返しま す。string が NULL の場合、NULL を返します。 例 次のステートメントは、"BABE RUTH" を返します。 Upper("Babe Ruth") 関連項目 1226 Lower 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Upper メソッド PowerBuilder 第 10 章 PowerScript の関数 UpperBound 機能 配列の次元の上限を取得します。 構文 UpperBound ( array {, n } ) 引数 array n (オプション) 説明 配列の名前を指定します。この配列の次元の上限を求めます。 上限を取得する次元の番号を指定します。特に指定しない 限り、1 が設定されます。 戻り値 Long 型。array の n 次元の上限を返します。n が配列の次元数よりも大 きい場合、-1 を返します。引数のいずれかの値が NULL の場合、NULL を返します。 解説 可変長の配列に対しては、配列に値を割り当てたときに、その配列に メモリが割り当てられます。UpperBound 関数は、現在のスクリプトで その配列に対して定義されている最大の値を返します。値が割り当て られる前の下限は 1 で、上限は 0 です。固定長の配列に対しては、 UpperBound 関数は常に宣言されているサイズを返します。 例 次のステートメントは、固定長配列と可変長配列の次元の上限を求め ています。可変長の配列については、メモリが割り当てられる前と後 に次元の上限を求めています。 integer a[5] UpperBound(a) // 5 を返します。 UpperBound(a,1) // 5 を返します。 UpperBound(a,2) // 2 次元はないので、-1 を返します。 integer b[10,20] UpperBound(b,1) // 10 を返します。 UpperBound(b,2) // 20 を返します。 integer c[ ] UpperBound(c) c[50] = 900 UpperBound(c) c[60] = 800 UpperBound(c) c[60] = 800 c[50] = 700 UpperBound(c) // メモリが割り当てられていないので、 // 0 を返します。 // 50 を返します。 // 60 を返します。 // 60 を返します。 integer d[10 to 50] UpperBound(d) // 50 を返します。 PowerScript リファレンス ボリューム 2 1227 UpperBound 次の例では、メニューバー上の[ファイル]メニューの位置を探し、 そのメニューのカスケード メニューに[更新]メニューがある場合、 [更新]メニューを無効状態にします。コードは、ウィンドウ内のコン トロールを表すスクリプトです。 次のスクリプトは、複雑なメニュー項目 Parent、Menuid、Item を含ん でいます。Parent、Menuid、Item の構成要素は、次のとおりです。 • Parent − スクリプトを実行するコントロールの親ウィンドウ • Menuid − ウィンドウに関連するメニューを識別する値が設定さ れているウィンドウのプロパティ • Item − メニューのプロパティで、メニュー項目から成る配列。Item 配列の要素自体がドロップダウン メニューまたはカスケード メ ニューの場合は、Item 配列を持っていて、メニューの完全な名前 の 4 番目の修飾子となります。 次の例は、ウィンドウのコントロールに対するスクリプトです。 long i, k, tot1, tot2 // メニューバーのメニュー項目数を調べます。 tot1 = UpperBound(Parent.Menuid.Item) FOR i = 1 to tot1 // [ファイル]メニューの位置を見つけます。 IF Parent.Menuid.Item[i].text = "File" THEN MessageBox(" 位置 ", & "[ファイル]の位置は "+ string(i) + " です。") tot2 = UpperBound(Parent.Menuid.Item[i].Item) FOR k = 1 to tot2 // [ファイル]メニューのカスケード メニューである [更新]メニューを見つけます。 IF Parent.Menuid.Item[i].Item[k].Text = & "Update" THEN // [更新]メニュー オプションを使用不可にします。 Parent.Menuid.Item[i].Item[k].Disable() EXIT END IF NEXT EXIT END IF NEXT 関連項目 1228 LowerBound PowerBuilder 第 10 章 PowerScript の関数 Which 機能 コンポーネントがトランザクション サーバ上で動作しているかどう かを判別できるようにします。 対象 TransactionServer オブジェクト 構文 transactionserver.Which ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Integer 型。オブジェクトがトランザクション サーバ上で実行されてい なければ 0 を返し、EAServer 上で実行されていれば 1 を返し、COM+ 上で実行されていれば 2 を返します。 解説 Which 関数を使用すると、カスタム クラス ユーザ オブジェクトが、そ の実行時コンテキストによって異なる処理を実行できます。 例 次の例のコードは、実行時コンテキストがトランザクション サーバ (EAServer または COM+)かどうかをチェックします。もしそうなら ば、トランザクション サーバに対応したトランザクション セマン ティックを使用し、そうでない場合は、COMMIT と ROLLBACK を使っ て直接データベースとやり取りを行います。 // インスタンス変数: // DataStore ids_datastore // TransactionServer ts Integer li_rc long ll_rv li_rc = this.GetContextService("TransactionServer", & ts) IF li_rc <> 1 THEN // エラーを処理します。 END IF ... ... ll_rv = ids_datastore.Update() IF ts.Which() > 0 THEN IF ll_rv = 1 THEN ts.EnableCommit() ELSE ts.DisableCommit() END IF PowerScript リファレンス ボリューム 2 1229 WordCap ELSE IF ll_rv = 1 THEN COMMIT USING SQLCA; ELSE ROLLBACK USING SQLCA; END IF END IF 関連項目 EnableCommit IsInTransaction IsTransactionAborted Lookup SetAbort SetComplete WordCap 機能 渡されたスクリプト内の各単語の最初の文字を大文字にします。各単 語内の続く文字は小文字になります。 対象 すべてのテキスト オブジェクト 構文 WordCap ( text ) 引数 text 説明 修正する文字列を指定します。 戻り値 String 型。正常に終了した場合、関数の引数で渡されたテキストを各単 語の最初の文字を大文字、続く文字を小文字にして返します。エラー が発生した場合には NULL を返します。 例 次の例では、シングルライン エディット コントロールからユーザの入 力したテキストを取得し、各単語の最初の文字を大文字、続く文字を 小文字にした後、テキストを文字列変数に格納します。 string ls_fullname ls_fullname = WordCap (sle_1.text) テキスト joe MaCdonald は、WordCap 関数によって Joe Macdonald に 変換されます。 1230 PowerBuilder 第 10 章 PowerScript の関数 WorkSpaceHeight 機能 指定されたウィンドウのワークスペースの高さを取得します。 対象 ウィンドウ オブジェクト 構文 windowname.WorkSpaceHeight ( ) 引数 windowname 説明 ワークスペースの高さを取得するウィンドウの名前を指 定します。 戻り値 Integer 型。windowname で指定されたウィンドウのワークスペースの高 さを PowerBuilder 単位系で返します。エラーが発生した場合、-1 を返 します。windowname が NULL の場合、NULL を返します。 解説 ワークスペースの高さには、ウィンドウの上下のフレームの太さ、タ イトル バー、メニューバー、水平スクロールバー、およびウィンドウ の上下のツールバーの領域は含まれません。ワークスペースの高さに は、マイクロヘルプが表示されるステータスバーの領域が含まれてい ます。 ワークスペースの幅には、ウィンドウの左右のフレームの厚さ、垂直ス クロールバー、およびウィンドウの左右のツールバーは含まれません。 例 次の例は、ウィンドウ w_employee のワークスペースの高さを返します。 Integer Height Height = W_employee.WorkSpaceHeight() 次の例はカスタム MDI フレーム ウィンドウのクライアント領域(つ まりコントロールを配置しているフレーム ウィンドウ)のサイズを変 更します。P_logo はウィンドウに配置されたコントロールです。この コードは、フレームの Resize イベントに対するスクリプト内に記述さ れています。 integer lw, lh // 現在のワークスペースの測定値 lw = This.WorkSpaceWidth() lh = This.WorkSpaceHeight() // 高さからロゴ、マイクロヘルプを差し引きます。 lh = lh - (p_logo.Y + p_logo.Height) lh = lh - MDI_1.MicroHelpHeight // // // lh フレーム トップ (メニュー バーまたはツール バーがあればその直下) とワークスペース トップ間の距離を加算します。 = lh + This.WorkspaceY( ) PowerScript リファレンス ボリューム 2 1231 WorkSpaceWidth // ピクチャ コントロールの下のクライアント領域を移動します。 MDI_1.Move(This.WorkspaceX( ), & p_logo.Y + p_logo.Height) // 寸法を計算してクライアント領域のサイズを変更します。 mdi_1.Resize(lw, lh) 関連項目 WorkSpaceWidth WorkSpaceX WorkSpaceY PointerX PointerY WorkSpaceWidth 機能 指定されたウィンドウのワークスペースの幅を取得します。 対象 ウィンドウ オブジェクト 構文 windowname.WorkSpaceWidth ( ) 引数 windowname 説明 ワークスペースの幅を取得するウィンドウの名前を指定 します。 戻り値 Integer 型。windowname で指定されたウィンドウのワークスペースの幅 を PowerBuilder 単位系で返します。エラーが発生した場合、-1 を返し ます。windowname が NULL の場合、NULL を返します。 解説 ワークスペースの高さには、ウィンドウの上下のフレームの太さ、タ イトル バー、メニューバー、水平スクロールバー、およびウィンドウ の上下のツールバーの領域は含まれません。ワークスペースの高さに は、マイクロヘルプが表示されるステータスバーの領域が含まれてい ます。 ワークスペースの幅には、ウィンドウの左右のフレームの厚さ、垂直ス クロールバー、およびウィンドウの左右のツールバーは含まれません。 例 次の例は、ウィンドウ w_employee のワークスペースの幅を返します。 integer Width Width = w_employee.WorkSpaceWidth() 1232 PowerBuilder 第 10 章 PowerScript の関数 関連項目 PointerX PointerY WorkSpaceHeight WorkSpaceX WorkSpaceY WorkSpaceX 機能 カスタム MDI フレーム ウィンドウ以外のウィンドウの場合、ワーク スペースの左端と、スクリーンの左端の間の距離を取得します。 カスタム MDI フレーム ウィンドウの場合、フレーム ウィンドウの左 端からワークスペースの左端までの距離を取得します。 対象 ウィンドウ オブジェクト 構文 windowname.WorkSpaceX ( ) 引数 windowname 説明 ウィンドウの名前を指定します。このウィンドウ オブジェ クトのワークスペースの左端とスクリーンの左端の間の 距離を求めます。 戻り値 Integer 型。スクリーンの左端から、windowname で指定されたウィンド ウのワークスペースの左端までの距離を(PowerBuilder 単位系で)返 します。エラーが発生した場合、-1 を返します。windowname が NULL の場合、NULL を返します。 解説 ワークスペースは、ウィンドウの左右(フレームの太さや垂直スクロー ルバーは除く)と、ウィンドウの上下(フレームの太さ、タイトル バー、メニューバー、水平スクロールバーは除く)に囲まれた領域です。 例 次の例は、スクリーンの左端からウィンドウ w_employee のワークス ペースの左端までの距離を返します。 integer workx workx = w_employee.WorkSpaceX() 関連項目 PointerX PointerY WorkSpaceHeight WorkSpaceWidth WorkSpaceY PowerScript リファレンス ボリューム 2 1233 WorkSpaceY WorkSpaceY 機能 カスタム MDI フレーム ウィンドウ以外のウィンドウの場合、ワーク スペースの上端と、スクリーンの上端の間の距離を取得します。 カスタム MDI フレーム ウィンドウの場合、フレーム ウィンドウの上 端からワークスペースの上端までの距離を取得します。フレーム ウィ ンドウの上端は、メニューバーまたはツールバーの下端です。 対象 ウィンドウ オブジェクト 構文 windowname.WorkSpaceY ( ) 引数 windowname 説明 ウィンドウの名前を指定します。このウィンドウのワークス ペースの上端と、スクリーンの上端の間の距離を求めます。 戻り値 Integer 型。スクリーンの上端から、windowname で指定されたウィンド ウのワークスペースの上端までの距離を(PowerBuilder 単位系で)返 します。エラーが発生した場合、-1 を返します。windowname が NULL の場合、NULL を返します。 解説 ワークスペースは、ウィンドウの左右(フレームの太さや垂直スクロー ルバーは除く)と、ウィンドウの上下(フレームの太さ、タイトル バー、メニューバー、水平スクロールバーは除く)に囲まれた領域です。 例 次の例は、スクリーンの上端からウィンドウ w_employee のワークス ペースの上端までの距離を返します。 integer worky worky = w_employee.WorkSpaceY() 関連項目 1234 PointerX PointerY WorkSpaceHeight WorkSpaceWidth WorkSpaceX PowerBuilder 第 10 章 PowerScript の関数 Write 機能 開いている OLE ストリーム オブジェクトに、データを書き込みます。 対象 OLEStream オブジェクト 構文 olestream.Write ( dataforstream ) 引数 olestream dataforstream 戻り値 説明 開いている OLEStream 変数の名前を指定します。 olestream に書き込む値を表す文字列、Blob 型の値、また は文字配列を指定します。 Long 型。正常に終了した場合、書いた文字またはバイトの数を返しま す。エラーが発生した場合、次のいずれかの値を返します。 -1 ストリームが開かれていません。 -2 読み込みエラーです。 -9 そのほかのエラーです。 引数のいずれかの値が NULL の場合、NULL を返します。 例 次の例は、MYSTUFF.OLE ファイルの OLE オブジェクトを開き、その オブジェクトを OLEStorage オブジェクト olest_stuff に割り当てます。 その後、olest_stuff の中のストリーム info を開き、そのストリームをス トリーム オブジェクト olestr_info に割り当てます。次に、Blob 型の変 数 lb_info の内容をストリーム olestr_info に書き込みます。最後に、そ のストレージ olest_stuff を保存します。 boolean lb_memexists OLEStorage olest_stuff OLEStream olestr_info integer li_result long ll_result olest_stuff = CREATE OLEStorage li_result = olest_stuff.Open("c:\ole2\mystuff.ole") IF li_result <> 0 THEN RETURN li_result = olestr_info.Open(olest_stuff, "info", & stgReadWrite!, stgExclusive!) IF li_result <> 0 THEN RETURN ll_result = olestr_info.Write(lb_info) IF ll_result = 0 THEN olest_stuff.Save() PowerScript リファレンス ボリューム 2 1235 XMLParseFile 関連項目 Length Open Read Seek XMLParseFile 機能 XML ファイルを解析して、ファイルが整形式かどうか、指定した文法 でコンパイルできるかどうかを判別します。 構文 XMLParseFile ( xmlfilename {, validationscheme }{, parsingerrors } {, namespaceprocessing {, schemaprocessing {, schemafullchecking }}}) 引数 xmlstring validationscheme (オプション) 説明 String 型の値。解析する XML ファイルの名前を指定 します。 ValSchemeType カタログ データ型の値。SAX パーサ で使用される検証メソッドを指定します。値は以下 のとおりです。 • ValNever! − 検証エラーをレポートしません。 • ValAlways! − 常に検証エラーをレポートします。 parsingerrors (オプション) namespaceprocessing (オプション) • ValAuto! −(デフォルト)文法を指定した場合に のみ検証エラーをレポートします。 String 型の値。エラー メッセージを格納するための バッファを指定します。省略した場合、または NULL を設定した場合、エラーはメッセージ ボックスに表 示されます。 Boolean 型の値。名前空間の規則を適用するかどうか を指定します。TRUE に設定すると、XML の名前空 間に対して、W3C 規格で定義されている制約と規則 を適用します。 validationscheme を ValAlways! または ValAuto! に設 定している場合、ドキュメントには、名前空間の使 用をサポートする文法が含まれていなければなりま せん。 特に指定しない限り、FALSE が設定されます。 1236 PowerBuilder 第 10 章 PowerScript の関数 引数 schemaprocessing (オプション) 説明 Boolean 型の値。スキーマ サポートを有効にするか どうかを指定します。FALSE に設定すると、見つかっ たスキーマは一切処理されません。 schemaprocessing に TRUE を設定する場合、 namespaceprocessing にも TRUE を設定する必要があ ります。 特に指定しない限り、FALSE が設定されます。 schemafullchecking (オプション) Boolean 型の値。スキーマの制約をチェックするかど うかを指定します。TRUE を設定すると、スキーマ の文法にエラーがないかどうかがチェックされま す。 schemaprocessing に TRUE を設定していない場合、 schemafullchecking に TRUE を設定しても、その設定 は無視されます。 特に指定しない限り、FALSE が設定されます。 戻り値 Long 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの負の値を返します。 -1 解析エラー -2 引数エラー 解説 XMLParseFile を使用して、DTD や XML スキーマに対して XML ファイ ルを検証した後で、ほかの処理に進んでください。 DTD や XML スキーマがファイルに含まれていない場合、または参照 されていない場合、XMLParseFile は、ドキュメントの XML が整形式か どうかをチェックします。XML ドキュメントの検証に失敗した場合、 または XML が整形式でない場合、XMLParseFile は -1 を返します。 XSD ファイルも XML 形式なので整形式かどうかをチェックできま す。検証スキームは、デフォルトの ValAuto! でなければなりません。 エラーが発生した場合にメッセージ ボックスが表示されないように するには、parsingerrors 引数に String 型の値を指定します。 pbxercesNN.dll(NN は PowerBuilder のバージョン)と xerces-c_XX.dll (XX は Xerces のバージョン)ファイルは、この関数を使用するすべて のアプリケーションまたはコンポーネントの探索パスに、そのほかの PowerBuilder 実行時ファイルと一緒に配置しておく必要があります。 PowerScript リファレンス ボリューム 2 1237 XMLParseFile 例 次のステートメントは、XML ドキュメントを解析します。DTD が含 まれている場合、または参照されている場合は、ドキュメントの検証 が実行されます。それ以外の場合は、XML が整形式かどうかがチェッ クされます。ドキュメントの検証が成功すると、データウィンドウ コ ントロールにインポートされます。 long ll_ret ll_ret = XMLParseFile("c:\temp\mydoc.xml") if ll_ret = 0 then dw_1.ImportFile("c:\temp\mydoc.xml") 次のステートメントは、XML ドキュメントを解析し、エラーを String 型の変数 ls_err に格納します。エラーが発生した場合でも、メッセー ジ ボックスは表示されません。DTD が含まれている場合、または参照 されている場合は、ドキュメントの検証が実行されます。それ以外の 場合は、XML が整形式かどうかがチェックされます。 long ll_ret string ls_err ll_ret = XMLParseFile("c:\temp\mydoc.xml", ls_err) 次のステートメントは、XML ドキュメントを解析します。XML スキー マが含まれている場合、または参照されている場合は、ドキュメント の検証が実行され、それ以外の場合は、XML が整形式かどうかが チェックされます。 long ll_ret ll_ret = XMLParseFile("c:\temp\mydoc.xml", TRUE, TRUE) 次のステートメントは、XML ドキュメントを解析し、指定した XML スキーマに対して検証を実行します。また、エラーが発生した場合は、 その情報を String 型の変数に格納します。エラーが発生した場合でも、 メッセージ ボックスは表示されません。スキーマがファイルに含まれ ていない場合、または参照されていない場合、XMLParseFile は -1 を返 します。 long ll_ret string ls_err ll_ret = XMLParseFile("c:\temp\mydoc.xml", ValAlways!, ls_err, TRUE, TRUE) 1238 PowerBuilder 第 10 章 PowerScript の関数 次のステートメントは、XML ドキュメントを解析し、指定した XML スキーマに対して検証を実行します。また、ほかのエラーがないかど うかスキーマ自体も解析します。スキーマがファイルに含まれていな い場合、または参照されていない場合、XMLParseFile は -1 を返します。 long ll_ret string ls_err ll_ret = XMLParseFile("c:\temp\mydoc.xml", ValAlways!, ls_err, TRUE, TRUE, TRUE) 次のステートメントは、XML ドキュメントを解析し、指定した DTD に対して検証を実行します。また、エラーが発生した場合は、その情 報を String 型の変数に格納します。エラーが発生した場合でも、メッ セージ ボックスは表示されません。DTD がファイルに含まれていない 場合、または参照されていない場合、XMLParseFile は -1 を返します。 long ll_ret string ls_err ll_ret = XMLParseFile("c:\temp\mydoc.xml", ValAlways!, ls_err) 次のステートメントは、XSD ファイルを解析し、整形式かどうかをテ ストします。XSD ファイルには、関連付けられている外部スキーマが ないので、このファイルを解析するときは、ValAuto! を使用する必要 があります。ただし、このオプションはデフォルトの検証メソッドな ので、関数を呼び出すときに指定する必要はありません。 long ll_ret ll_ret = XMLParseFile ("c:\mydoc.xsd") 関連項目 ImportFile XMLParseString 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ImportFile PowerScript リファレンス ボリューム 2 1239 XMLParseString XMLParseString 機能 XML 文字列を解析して、文字列が整形式かどうか、指定した文法でコ ンパイルできるかどうかを判別します。 構文 XMLParseString ( xmlstring {, validationscheme }{, parsingerrors } {, namespaceprocessing {, schemaprocessing {, schemafullchecking }}}) 引数 xmlstring validationscheme (オプション) 説明 解析する XML ドキュメントを保持する String 型の 値を指定します。 ValSchemeType カタログ データ型の値。SAX パーサ で使用される検証メソッドを指定します。値は以下 のとおりです。 • ValNever! − 検証エラーをレポートしません。 • ValAlways! − 常に検証エラーをレポートします。 ファイルの検証に使用できる DTD またはスキー マがあることがわかっている場合のみ、 ValAlways! を使用します。 • ValAuto! −(デフォルト)文法を指定した場合に のみ検証エラーをレポートします。 parsingerrors (オプション) namespaceprocessing (オプション) String 型の値。エラー メッセージを格納するための バッファを指定します。省略した場合、または NULL を設定した場合、エラーはダイアログボックスに表 示されます。 Boolean 型の値。名前空間の規則を適用するかどうか を指定します。TRUE に設定すると、XML の名前空 間に対して、W3C 規格で定義されている制約と規則 を適用します。 validationscheme を ValAlways! または ValAuto! に設 定している場合、ドキュメントには、名前空間の使 用をサポートする文法が含まれていなければなりま せん。 schemaprocessing (オプション) 特に指定しない限り、FALSE が設定されます。 Boolean 型の値。スキーマ サポートを有効にするか どうかを指定します。FALSE に設定すると、見つかっ たスキーマは一切処理されません。 schemaprocessing に TRUE を設定する場合、 namespaceprocessing にも TRUE を設定する必要があ ります。 特に指定しない限り、FALSE が設定されます。 1240 PowerBuilder 第 10 章 PowerScript の関数 引数 schemafullchecking (オプション) 説明 Boolean 型の値。スキーマの制約をチェックするかど うかを指定します。TRUE を設定すると、スキーマ の文法にエラーがないかどうかがチェックされま す。 schemaprocessing に TRUE を設定していない場合、 schemafullchecking に TRUE を設定しても、その設定 は無視されます。 特に指定しない限り、FALSE が設定されます。 戻り値 Long 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの負の値を返します。 -1 解析エラー -2 引数エラー 解説 XMLParseString を使用して、DTD や XML スキーマに対して XML ファ イルを検証した後で、他の処理に進んでください。 DTD や XML スキーマが文字列に含まれていない場合、または参照さ れていない場合、XMLParseString は、文字列の XML が整形式かどうか をチェックします。XML 文字列の検証に失敗した場合、または XML が整形式でない場合、XMLParseString は -1 を返します。 XSD(スキーマ)ファイルは XML 形式なので、整形式かどうかを チェックできます。ValAlways! はファイルの検証に使用するスキーマ または DTD を必要とするので、ここでの検証スキームは、デフォルト の ValAuto! でなければなりません。 たとえば、次のスキーマ ファイルがあるとします。xs:schema、xs:element、 および xs:complextype を定義する外部 XSD ファイルがないので、解析 は失敗します。スキーマは、名前空間 http://www.w3.org/2001/XMLSchema で定義されています。 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs= "http://www.w3.org/2001/XMLSchema"> <xs:element name="test3"> <xs:complexType> <xs:sequence> <xs:element ref="test3_row" maxOccurs= "unbounded" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> PowerScript リファレンス ボリューム 2 1241 XMLParseString XML ファイルで ValAlways! を使用しても、定義されたスキーマがな い か、参 照 が 有 効 な ス キ ー マ を 指 し て い な い 場 合 は 失 敗 し ま す。 ValAuto! を使用する場合、検証はスキーマまたは DTD ファイルが目的 の場所に存在するときに限って実行されます。スキーマまたは DTD ファイルが存在しない場合は、整形式かどうかだけがチェックされます。 エラーが発生した場合にメッセージ ボックスが表示されないように するには、parsingerrors 引数に String 型の値を指定します。 pbxercesNN.dll(NN は PowerBuilder のバージョン)と xerces-c_XX.dll (XX は Xerces のバージョン)ファイルは、この関数を使用するすべて のアプリケーションまたはコンポーネントの探索パスに、そのほかの PowerBuilder 実行時ファイルと一緒に配置しておく必要があります。 例 次のステートメントは、XML 文字列を解析します。DTD が含まれて いる場合、または参照されている場合は、文字列の検証が実行されま す。それ以外の場合は、XML が整形式かどうかがチェックされます。 // String 型の引数 as_xmlstring を渡します。 long ll_ret ll_ret = XMLParseString(as_xmlstring) 次のステートメントは、XML 文字列を解析し、指定した XML スキーマ に対して検証を実行します。また、エラーが発生した場合は、その情報 を String 型の変数に格納します。エラーが発生した場合でも、メッセー ジ ボックスは表示されません。スキーマが文字列に含まれていない場 合、または参照されていない場合、XMLParseString は -1 を返します。 long ll_ret string ls_xmlstr, ls_err ll_ret = XMLParseString(ls_xmlstr, ValAlways!, ls_err, TRUE, TRUE) 次のステートメントは、XML 文字列を解析し、指定した DTD に対し て検証を実行します。また、エラーが発生した場合は、その情報を String 型の変数に格納します。エラーが発生した場合でも、メッセー ジ ボックスは表示されません。DTD が文字列に含まれていない場合、 または参照されていない場合、XMLParseString は -1 を返します。文字 列の検証が成功すると、データウィンドウ コントロールにインポート されます。 long ll_ret string ls_xmlstr, ls_err ll_ret = XMLParseString(ls_xmlstr, ValAlways!, ls_err) if ll_ret = 1 then dw_1.ImportString(ls_xmlstr) 1242 PowerBuilder 第 10 章 PowerScript の関数 関連項目 ImportString XMLParseFile 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ImportString Year 機能 日付の値から年の部分を取り出します。 構文 Year ( date ) 引数 date 戻り値 説明 Date 型を指定します。この日付から年を取り出します。 Integer 型。正常に終了した場合、date で指定された日付の年の部分か ら 4 桁に合わせた値を返します。エラーが発生した場合、1900 を返し ます。date が NULL の場合、NULL を返します。 2 桁の年を含む文字列を日付に変換する場合、その年が 00 ∼ 49 のと きには最初の 2 桁を 20 とし、その年が 50 ∼ 99 のときには最初の 2 桁 を 19 とします。 解説 PowerBuilder では、1000 ∼ 3000 の年を扱うことができます。 誕生日などデータが 1950 より前の日付を持っている場合、必ず 4 桁の 年数を指定してください。4 桁の年数を指定しておけば、Year 関数や Sort 関数などの PowerBuilder の関数は、日付を正しく解釈します。 Windows の設定 年の戻り値を正しく取得するためには、ユーザのコントロール パネル の[地域のオプション]で、「短い形式」の年の部分が yyyy になって いることを確認する必要があります。これは、プログラムの中で RegistryGet 関数を使ってチェックすることができます。 正しく設定されていない場合は、手動で設定を変更するようユーザに 依頼するか、あるいはアプリケーションで RegistrySet 関数を呼び出し て変更します。設定を変更した後、ユーザによるリブートが必要な場 合があります。 例 次のステートメントは、2005 を返します。 Year(2005-01-31) PowerScript リファレンス ボリューム 2 1243 Yield 関連項目 Day Month 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Year メソッド Yield 機能 Yield 関数は、PowerBuilder オブジェクトを含めたあらゆるグラフィッ ク オブジェクトの制御に使用することができます。Yield 関数は、メッ セージ キューをチェックし、メッセージがあった場合にはそのメッ セージをキューから取り出します。 構文 Yield ( ) 戻り値 Boolean 型。メッセージ キューからメッセージを取り出した場合は TRUE を返し、メッセージがない場合は FALSE を返します。 解説 ループの中で Yield 関数を呼び出して、ほかの処理を発生させます。た とえば、Yield 関数を呼び出して、ループの処理を中断できます。コン トロールに Yield 関数を使用すると、エンド ユーザが必要とするとき に、ほかのウィンドウの[キャンセル]ボタンをクリックできるよう になります。ループ内で、グローバル変数の値が変更されたかどうか をチェックすることができます。また、処理の終了を待っているルー プの中で Yield 関数を使用すると、そのアプリケーションやほかのアプ リケーションの処理を発生させることができます。 データ検索中のほかのアプリケーションの実行 エンド ユーザは、データの検索中に PowerBuilder アプリケーションで ほかの作業を行うことはできません。ただし、実行システム上のほか のアプリケーションを実行することはできます。RetrieveRow イベント に対するスクリプトの中で Yield 関数を呼び出すと、検索中にほかのア プリケーションを実行することができます。 Yield 関数を使用すると、PowerBuilder アプリケーションの実行速度が 低下します。これは、ほかのアプリケーションが処理時間を共有する からです。 1244 PowerBuilder 第 10 章 PowerScript の関数 例 次の例は、コードが長い作業を処理しています。2 つ目のウィンドウ がボタンを持っていて、エンド ユーザがそのボタンをクリックすると 共有変数 sb_interrupt に値を設定してループを中断するものとします。 エンド ユーザがボタンをクリックすると、Clicked イベントに対するス クリプトは、次のように sb_interrupt を設定します。 sb_interrupt = TRUE 処理しているスクリプトは共用変数 sb_interrupt をチェックし、TRUE の場合に処理を終了します。Yield 関数は処理の途中で割り込みを行う ので、エンド ユーザはボタンをクリックすることができます。 integer n // sb_interrupt は共用変数です。 sb_interrupt = FALSE FOR n = 1 to 3000 Yield() IF sb_interrupt THEN // そのほかのスクリプトによる変数 セット MessageBox(" デバッグ "," 中断されました !") sb_interrupt = FALSE EXIT ELSE ... // 何らかの処理 END IF NEXT 次の例では、エンド ユーザが もう 1 つのウィンドウ上のコントロール と対話している間に、スクリプトが 1 つのウィンドウでいくつかの処 理を実行しています。ただし、ループ処理が完了するまで、フォーカ スを変更したり、処理中の動作を確認したりすることはできません。 integer n FOR n = 1 to 3000 Yield() ... // 何らかの処理 NEXT 次のスクリプトでは、Lotus Notes との間で DDE チャネルを開き、DDE チャネルの実行名を変数 mailprogram に設定します。Lotus Notes が実 行されていない場合はそれを起動し、Lotus Notes のスタートアップが 完了して DDE チャネルが確立するまで、ループの中で待ちます。ルー プの中で Yield 関数が呼び出されるので、コンピュータは、ほかのアプ リケーションを実行させる時間を得ることができます。 PowerScript リファレンス ボリューム 2 1245 Yield time starttime long hndl SetPointer(HourGlass!) // ハンドルを確立します。SendMail はトピックです。 hndl = OpenChannel("Notes","SendMail") // プログラムが実行中でなければ開始します。 IF hndl < 1 then Run(mailprogram, Minimized!) starttime = Now() // Notes のロードまで 2 分待って、 // エンド ユーザがログオンします。 DO // Yield 関数は、状況を制御します。 Yield() // Notes はアクティブか ? hndl = OpenChannel("Notes","SendMail") // Notes がアクティブな場合 IF hndl > 0 THEN EXIT LOOP Until SecondsAfter(StartTime,Now()) > 120 // チャネルを開かずに 2 分経過した場合 IF hndl < 1 THEN MessageBox(" エラー ", & "Notes を起動できませんでした。", StopSign!) SetPointer(Arrow!) RETURN END IF END IF 1246 PowerBuilder 索引 記号 <= (小 さ い ま たは等 し い) 70 < ( よ り 小 さ い) 70 ! (カ タ ロ グ値) 29 &、 ア ンパサン ド 記号を参照 ’、 引用符を参照 * (乗算) 68 ++、 += (後置式を使っ た代入) 124 + (加算) 68 -、 ハ イ フ ン を参照 -- (後置式を使っ た代入) 124 // ( コ メ ン ト ) 4 /= (後置式を使っ た代入) 124 / (除算) 68 = (関係) 70 = (代入) 39 >= (大 き い ま たは等 し い) 70 > ( よ り 大 き い) 70 ? (動的 SQL) 176, 177, 180 ^ (累乗) 68 _Is_A 関数 697 _Narrow 関数 801 ~、 テ ィ ルダ を参照 数字 0、 判別 1139 2 つの数の最大値 AddColumn 関数 326 AddData 関数 327 AddItem 関数 330 AddLargePicture 関数 335 AddPicture 関数 336 AddSeries 関数 337 AddSmallPicture 関数 339 AddStatePicture 関数 340 AddToLibraryList 関数 341 AllowEdit プ ロ パテ ィ 1024 AncestorReturnValue 変数 115 AND 演算子 70 ANSI、 文字列の変換 515, 516, 1190, 1196 Any デー タ 型 24 API と デー タ ベース ハン ド ル 429 ArrangeOpen カ タ ロ グ デー タ 型 828 ArrangeSheets 関数 343 ArrangeTypes カ タ ロ グ デー タ 型 343 Arrange 関数 342 AscA 関数 345 ASCII 値 Char 型の変換 344, 345 印刷で き ない文字 920 Asc 関数 344 ASin 関数 346 ATan 関数 347 AttachmentFile プ ロ パテ ィ 769 AutoCommit 1177 782 B A Abs 関数 322 ACos 関数 322 Activate イ ベン ト 189 Activate 関数 323 Adaptive Server Enterprise AddCategory 関数 325 1177 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 BAT フ ァ イ ル 984 Beep 関数 348 BeginDrag イ ベン ト 190 BeginLabelEdit イ ベン ト 193 BeginRightDrag イ ベン ト 195 BeginTransaction 関数 348 Blob 1247 索引 String 型に変換 350, 1165 値の抽出 420, 425, 431, 692, 748, 750, 941, 1186 更新 169 ス ト リ ームの読み込み 940 ス ト リ ームへの書 き 込み 1235 宣言 36 デー タ ベース か ら の選択 166 ピ ク チ ャ コ ン ト ロ ールへの配置 1088 へのデー タ の挿入 351 BlobEdit 関数 351 BlobMid 関数 352 Blob デー タ 型 19 Blob 用の関数 350 Blob 350 BlobEdit 351 BlobMid 352 Len 725, 727 Boolean デー タ 型 20 BuildModel 関数 354 C CALL 文 概要 124 使用 し ない 186 Cancel 関数 357 CanUndo 関数 358 CategoryCount 関数 359 CategoryName 関数 360 Ceiling 関数 361 ChangeDirectory 関数 362 ChangeMenu 関数 363 CharA 関数 365 CharW 関数 364 Char デー タ 型 String 型に変換 76 概要 20 配列 76 Checked プ ロ パテ ィ 1222 Check 関数 366 CHOOSE CASE 文 125 ChooseColor 関数 367 ClassDefinition オブジ ェ ク ト 、 FindMatchingFunction 509 1248 ClassList 関数 368 ClassName 関数 369 ClearBoldDates 関数 373 Clear 関数 371 Clicked イ ベン ト 197, 806 Clipboard 関数 374 CLOSE Cursor 文 151 CLOSE Procedure 文 152 CloseChannel 関数 380 CloseQuery イ ベン ト 205, 377 CloseTab 関数 381 CloseUserObject 関数 383 CloseWithReturn 関数 384 Close イ ベン ト 204, 376, 969 Close 関数 376 CollapseItem 関数 387 ColumnClick イ ベン ト 207 CommandParm 関数 388 CommitTransaction 関数 389 COMMIT 文 153 COM フ ァ イ ル 984 ConnectToNewObject 関数 391 ConnectToNewRemoteObject 関数 393 ConnectToServer 関数 400 CONNECT 文 154 Constructor イ ベン ト 209 ContextInformation オブジ ェ ク ト GetCompanyName 関数 532 GetFixesVersion 関数 577 GetHostObject 関数 581 GetMajorVersion 関数 589 GetMinorVersion 関数 591 GetName 関数 592 GetShortName 関数 614 GetVersionName 関数 627 ContextKeyword オブジ ェ ク ト 、 GetContextKeywords 関数 533 CONTINUE 文 127 Control 配列 844, 846 CopyRTF 関数 405 Copy 関数 402 CORBACurrent、 初期化 652 Cos 関数 407 CPU 時刻 408 PowerBuilder 索引 情報の取得 566 Cpu 関数 408 CreateDirectory 関数 408 CreateInstance 関数 411 CreatePage 関数 413 CREATE 文 128, 875 Cut 関数 414 C 関数 値渡 し 748 戻 り 値のデ コ ー ド 694, 695 D DashesInIdentifiers オプシ ョ ン 5 DataChange イ ベン ト 210 DataSource 関数 418 DateChanged イ ベン ト 210 DateTime 関数 424 DateTime デー タ 型 20 Date 関数 420 Date デー タ 型 20 DayName 関数 426 DayNumber 関数 427 DaysAfter 関数 428 Day 関数 425 dBase フ ァ イ ル、 デー タ の イ ン ポー ト DBHandle 関数 429 dbsign 151 DDE ク ラ イ ア ン ト 用の関数 CloseChannel 380 ExecRemote 464 GetDataDDE 544 GetDataDDEOrigin 545 GetRemote 602 OpenChannel 825 RespondRemote 968 SetRemote 1098 StartHotLink 1156 StopHotLink 1163 DDE サーバ用の関数 GetCommandDDE 530 GetCommandDDEOrigin 531 GetDataDDE 544 GetDataDDEOrigin 545 RespondRemote 968 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 642, 647 SetDataDDE 1058 StartServerDDE 1157 StopServerDDE 1164 DDE チ ャ ネル デー タ の リ ク エ ス ト 604 閉 じ る 380 Deactivate イ ベン ト 211 DebugBreak 関数 430 Decimal デー タ 型 概要 21 宣言 36 変換 431 DECLARE Cursor 文 155 DECLARE Procedure 文 156 Dec 関数 431 DELETE Where Current of Cursor 文 DeleteAllItems イ ベン ト 211 DeleteCategory 関数 431 DeleteColumns 関数 433 DeleteColumn 関数 432 DeleteData 関数 433 DeleteItem イ ベン ト 212 DeleteItem 関数 434 DeleteLargePictures 関数 438 DeleteLargePicture 関数 438 DeletePictures 関数 439 DeletePicture 関数 439 DeleteSeries 関数 440 DeleteSmallPictures 関数 441 DeleteSmallPicture 関数 441 DeleteStatePictures 関数 442 DeleteStatePicture 関数 442 DELETE 文 157 DestroyModel 関数 443 DESTROY 文 概要 132 メ ール セ ッ シ ョ ンの終了 765 Destructor イ ベン ト 213, 381, 383 DirectoryExists 関数 444 DirList 関数 444 DirSelect 関数 446 DisableCommit 関数 448 Disable 関数 448 DisconnectObject 関数 450 DisconnectServer 関数 451 DISCONNECT 文 159 158 1249 索引 DDL、 動的 SQL を と お し た実行 175, 176 DLL フ ァ イ ル 関数の実行 63 DoubleClicked イ ベン ト 214 DoubleParm プ ロ パテ ィ 831, 839, 841, 849, 851 Double 関数 452 Double デー タ 型 21 DoVerb 関数 453 DragDrop イ ベン ト 218 DragEnter イ ベン ト 223 DraggedObject 関数 456 DragLeave イ ベン ト 224 DragObject 用の関数 ClassName 370 Drag 454 Hide 630 Move 798 PointerX 873 PointerY 874 PostEvent 887 Print 894 Resize 965 SetFocus 1071 SetPosition 1090 SetRedraw 1097 Show 1135 TriggerEvent 1209 TypeOf 1220 DragWithin イ ベン ト 226 Drag 関数 454 DrawObject 用の関数 ClassName 369 Hide 630 Move 798 Print 894 Resize 965 Show 1135 TypeOf 1220 Draw 関数 457 DWObject、 OLE 用の関数 323, 402, 453, 1225 DynamicDescriptionArea 概要 173 プ ロ パテ ィ 181 DynamicStagingArea 概要 172 準備 173 1250 E EAServer デー タ 型のマ ッ ピ ン グ EditLabel 関数 409, 459 EnableCommit 関数 462 Enabled プ ロ パテ ィ 630, 1097 Enable 関数 461 EndLabelEdit イ ベン ト 229 EntryList 関数 463 Error イ ベン ト 231 ExecRemote 関数 464 EXECUTE 文 160, 1069 EXIT 文 135 ExpandAll 関数 468 ExpandItem 関数 469 Exp 関数 468 ExternalException イ ベン ト 234 29 F Fact 関数 470 FETCH 文 160 FileClose 関数 470 FileCopy 関数 471 FileDelete 関数 472 FileEncoding 関数 472 FileExists イ ベン ト 237 FileExists 関数 474 FileLength64 関数 476 FileLength 関数 475 FileMove 関数 477 FileOpen 関数 478 FileReadEx 関数 485 FileRead 関数 483 FileSeek 関数 487, 489 FileWriteEx 関数 492 FileWrite 関数 490 FillA 関数 496 FillPattern 551, 1065, 1105 FillW 関数 495, 496 Fill 関数 印刷 495 概要 495 FindCategory 関数 498 FindClassDefinition 関数 500 PowerBuilder 索引 FindFunctionDefinition 関数 501 FindItem 関数 502 FindMatchingFunction 関数 509 FindNext 関数 511 FindSeries 関数 512 FindTypeDefinition 関数 513 Find 関数 497 FromAnsi 関数 515 FromUnicode 関数 516 G GarbageCollectGetTimeLimit 関数 517 GarbageCollectSetTimeLimit 関数 517 GarbageCollect 関数 516 Gesture イ ベン ト 238 GetActiveSheet 関数 519 GetAlignment 関数 520 GetApplication 関数 521 GetArgElement 関数 522 GetAutomationNativePointer 関数 523 GetCertificateLabel 関数 524 GetChildrenList 関数 527 GetColumn 関数 528 GetCommandDDEOrigin 関数 531 GetCommandDDE 関数 530 GetCompanyName 関数 532 GetContextKeywords 関数 533 GetContextService 関数 534 GetCredentialAttribute 関数 536 GetCurrentDirectory 関数 538 GetDataDDEOrigin 関数 545 GetDataDDE 関数 544 GetDataPieExplode 関数 546 GetDataStyle 関数 548 GetDataValue 関数 554 GetData 関数 539 GetDateLimits 関数 556 GetDisplayRange 関数 558 GetDynamicDate 181 GetDynamicDateTime 181 GetDynamicDateTime 関数 562 GetDynamicDate 関数 560 GetDynamicNumber 181 GetDynamicNumber 関数 563 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 GetDynamicString 181 GetDynamicString 関数 564 GetDynamicTime 181 GetDynamicTime 関数 565 GetEnvironment 関数 566 GetFileOpenName 関数 568 GetFileSaveName 関数 573 GetFirstSheet 関数 576 GetFixesVersion 関数 577 GetFocus イ ベン ト 239 GetFocus 関数 578 GetFolder 関数 579 GetGlobalProperty 関数 580 GetHostObject 関数 581 GetItemAtPointer 関数 586 GetItem 関数 583 GetLastReturn 関数 587 GetLibraryList 関数 588 GetMajorVersion 関数 589 GetMinorVersion 関数 591 GetName 関数 592 GetNativePointer 関数 593 GetNextSheet 関数 594 GetOrigin 関数 595 GetParagraphSetting 関数 596 GetParent 関数 597 GetPin 関数 599 GetRecordSet 関数 601 GetRemote 関数 602 GetSelectedDate 関数 605 GetSelectedRange 関数 606 GetSeriesStyle 関数 607 GetShortName 関数 614 GetStatus 関数 616 GetToday 関数 619 GetToolbarPos 関数 622, 1120 GetToolbar 関数 620 GetTransactionName 関数 625 GetURL 関数 626 GetVersionName 関数 627 GOTO の ラ ベル 7 GOTO 文 138 grColorType カ タ ロ グ デー タ 型 548 grDataType カ タ ロ グ デー タ 型 539, 555 grObjectType カ タ ロ グ デー タ 型 805 grResetType カ タ ロ グ デー タ 型 960 1251 索引 grSymbolType カ タ ロ グ デー タ 型 H HALT 文 138 Handle 関数 628 Help イ ベン ト 241 hidden オブジ ェ ク ト 1135 Hide イ ベン ト 242 Hide 関数 630 HotLinkAlarm イ ベン ト 242 Hour 関数 631 HyperlinkToURL 関数 632 I Idle イ ベン ト 243 IF...THEN 文 概要 139 単一行 139 複数行 140 IMEGetCompositionText 関数 635 IMEGetMode 関数 636 IMESetMode 関数 637 ImpersonateClient 関数 638 ImportClipboard 関数 639 ImportFile 関数 642 ImportString 関数 647 IncomingCallList 関数 650 Inet オブジ ェ ク ト GetURL 関数 626 HyperlinkToURL 関数 632 PostURL 関数 890 Information ア イ コ ン 787 Init 関数 652, 653 INI フ ァ イ ル 値の書 き 込み 1093 読み込み 932, 934 InputFieldChangeData 関数 656 InputFieldCurrentName 関数 657 InputFieldDeleteCurrent 関数 658 InputFieldGetData 関数 659 InputFieldInsert 関数 660 1252 1106 InputFieldLocate 関数 661 InputFieldSelected イ ベン ト 243 InsertCategory 関数 663 InsertClass 関数 665 InsertColumn 関数 666 InsertData 関数 667 InsertFile 関数 672 InsertItemFirst 関数 680 InsertItemLast 関数 682 InsertItemSort 関数 685 InsertItem イ ベン ト 244 InsertItem 関数 673 InsertObject 関数 687 InsertPicture 関数 688 InsertSeries 関数 689 INSERT 文 162 Integer 関数 692 Integer デー タ 型 21 Intel 566 InternetData 関数 693 InternetRequest オブジ ェ ク ト 、 InternetData 関数 693 IntHigh 関数 694 IntLow 関数 695 Int 関数 691 InvokePBFunction 関数 695 Is_A (_Is_A) 関数 697 IsAlive 関数 698 IsAllArabic 関数 699 IsAllHebrew 関数 700 IsAnyArabic 関数 701 IsAnyHebrew 関数 701 IsArabicAndNumbers 関数 703 IsArabic 関数 702 IsCallerInRole 関数 703 IsDate 関数 705 IsHebrewAndNumbers 関数 707 IsHebrew 関数 706 IsImpersonating 関数 708 IsInTransaction 関数 709 IsNull 関数 710 IsNumber 関数 692, 711 IsPreview 関数 712 IsSecurityEnabled 関数 713 IsTime 関数 714 IsTransactionAborted 関数 715 PowerBuilder 索引 IsValid 関数 Handle 関数 628 ア ク テ ィ ブなシー ト の取得 519 解説 716 概要 716 開いてい る シー ト の取得 576, 594 ItemActivate イ ベン ト 245 ItemChanging イ ベン ト 248 ItemCollapsed イ ベン ト 248 ItemCollapsing イ ベン ト 249 ItemExpanded イ ベン ト 251 ItemExpanding イ ベン ト 252 ItemPopulate イ ベン ト 253 J JaguarORB、 初期化 652 K KeyCode カ タ ロ グ デー タ 型 値 717 概要 716 KeyDown 関数 717 Key イ ベン ト 253 L LastPosW 関数 722 LastPos 関数 720, 722 Layer カ タ ロ グ デー タ 型 343 LeftA 関数 723 LeftC 関数 724 LeftTrim 関数 724, 725 LeftW 関数 722, 724 Left 関数 722, 724 LenA 関数 727 Length 関数 728 Len 関数 725, 727 LibDirType カ タ ロ グ デー タ 型 731, 732 LibExportType カ タ ロ グ デー タ 型 734 LibraryCreate 関数 729 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 LibraryDelete 関数 730 LibraryDirectoryEx 関数 732 LibraryDirectory 関数 731 LibraryExport 関数 734 LibraryImport 関数 736 LineCount 関数 737 LineDown イ ベン ト 255 LineLeft イ ベン ト 256 LineLength 関数 739 LineList 関数 740 LineRight イ ベン ト 257 LineUp イ ベン ト 258 LinkTo 関数 741 LoadInk 関数 742 LoadPicture 関数 743 LogTen 関数 概要 746 逆関数 746 Log 関数 概要 745 逆関数 745 自然対数 745 LongParm 値指定 748 イ ベン ト の発生 1210 イ ベン ト のポ ス ト 888 Long 型の下位ワー ド 695 Long 型の上位ワー ド 694 Long 関数 747, 749 Long デー タ 型 概要 21 下位ワ ー ド を返す 695 上位ワ ー ド を返す 694 変換 747, 749 Lookup 関数 751 LOOP 133 LOOP, DO...LOOP 文内 133 LoseFocus イ ベン ト 259, 788 LowerBound 関数 757 Lower 関数 757 M mailAddress 関数 759 1253 索引 mailDeleteMessage 関数 761 mailHandle 関数 764 mailLogoff 関数 765 mailLogonOption カ タ ロ グ デー タ 型 766 mailLogon 関数 766 mailReadMessage 関数 768 mailReadOption カ タ ロ グ デー タ 型 769 mailRecipientDetails 関数 770 mailRecipient 構造体 772 mailResolveRecipient 関数 772 mailReturnCode 関数 766 mailSaveMessage 関数 774 mailSend 関数 777 MAPI 764 Match 関数 779 Max 関数 782 MDI ク ラ イ ア ン ト (MDI_1) 用の関数 ClassName 369 Hide 630 Print 894 Resize 965 SetRedraw 1097 Show 1135 TypeOf 1220 MDI フ レーム ア ク テ ィ ブの取得 519 ウ ィ ン ド ウ の整列 343 開 く シー ト 811, 827, 830 ポ ッ プア ッ プ メ ニ ュ ーの表示 875 マ イ ク ロ ヘルプ テ キ ス ト の指定 1083 メ ニ ュ ーの変更 363 MDI フ レーム用の関数 ArrangeSheets 343 GetActiveSheet 519 GetFirstSheet 576 GetNextSheet 594 GetToolbar 620 GetToolbarPos 622, 1120 OpenSheet 827 OpenSheetWithParm 830 Print 894 SetMicroHelp 1083 SetToolbar 1118 MemberDelete 関数 783 MemberExists 関数 784 MemberRename 関数 785 1254 MessageBox 関数 787, 913 Microsoft Windows RightToLeft バージ ョ ン 699, 700, 701, 702, 703, 706, 707, 972 Winhelp の呼出 し 1137 イ ベン ト と メ ッ セージ 889 印刷用の フ ォ ン ト の定義 907 返 さ れた メ ッ セージ 694, 695 情報の取得 566 タ イ マー 1189 と DDE 602 ハン ド ルの取得 628 フ ァ イ ルの保存レ ス ポ ン ス ウ ィ ン ド ウ の表示 573 フ ァ イ ル名の取得 568 メ ッ セージ番号 1036 MidA 関数 791 MidC 関数 792 MidW 関数 789, 792 Mid 関数 789 Minute 関数 793 Min 関数 793 Modified イ ベン ト 261 ModifyData 関数 795 Mod 関数 794 Month 関数 797 MouseDown イ ベン ト 263 MouseMove イ ベン ト 265 MouseUp イ ベン ト 268 Moved イ ベン ト 271 Move 関数 798 MultiSelect プ ロ パテ ィ 項目の選択 1012, 1013, 1024 ハ イ ラ イ ト 表示 1113, 1163 N Narrow (_Narrow) 関数 801 NEXT, FOR...NEXT 文内 136 NextActivity 関数 802 NOT 演算子 70 Now 関数 803 NULL オブジ ェ ク ト への参照 832, 839, 841, 849, 851, 855, 857 PowerBuilder 索引 NULL 値 概要 9 チ ェ ッ ク 710 テス ト 9 動的 SQL 178 変数の設定 1084 論理式の 70 O ObjectAtPointer 関数 805 ObjectToString 関数 807 OffsetPos 関数 808 Offsite カ タ ロ グ デー タ 型 324 OK ボ タ ン 787 OLE DWObject 用の関数 Activate 323 Copy 402 DoVerb 453 UpdateLinksDialog 1225 OLEObject 用の関数 ConnectNewToObject 391 ConnectToNewRemoteObject 393 ConnectToObject 395 ConnectToRemoteObject 397 DisconnectObject 450 GetAutomationNativePointer 523 ReleaseAutomationPointer 950 SetAutomationPointer 1048 SetAutomationTimeout 1049 OLEStorage 用の関数 Clear 371 Close 378 MemberDelete 783 MemberExists 784 MemberRename 785 Open 809 SaveAs 994, 996 OLEStream 用の関数 Close 379 Length 728 Open 809 Read 938 Seek 1009 Write 1235 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 OLE オー ト メ ーシ ョ ンの言語 1046, 1049 OLE カ ス タ ム コ ン ト ロ ール用の関数 GetData 542 GetNativePointer 593 ReleaseNativePointer 951 SetAutomationLocale 1046 SetData 1057 OLE コ ン ト ロ ール用の関数 Activate 323 Clear 371 Copy 402 Cut 414 DoVerb 453 GetData 542 GetNativePointer 593 InsertClass 665 InsertFile 672 InsertObject 687 LinkTo 741 Open 809 Paste 864 PasteLink 866 PasteSpecial 869 ReleaseNativePointer 951 Save 987 SaveAs 992, 993 SelectObject 1026 SetAutomationLocale 1046 SetData 1057 UpdateLinksDialog 1225 OLE 式 と Any デー タ 型 26 OPEN Cursor 文 163 OpenChannel 関数 825 OpenSheetWithParm 830 OpenSheet 関数 827 OpenTabWithParm 関数 838 OpenTab 関数 834 OpenUserObjectWithParm 関数 848 OpenUserObject 関数 843 OpenWithParm 853 Open イ ベン ト 273, 969 Open 関数 809 OR 演算子 70 Other イ ベン ト 276 OutgoingCallList 関数 859 1255 索引 P PageCreated 関数 862 PageDown イ ベン ト 277 PageLeft イ ベン ト 278 PageRight イ ベン ト 279 PageUp イ ベン ト 280 ParentWindow 関数 863 Parent 代名詞 13 PasteLink 関数 866 PasteSpecial 関数 869 Paste 関数 864 PBL フ ァ イ ル 削除 730 作成 729 内容の リ ス ト 731, 732 pbm_dwngraphcreate イ ベン ト 1103 PDB フ ァ イ ル 813 PictureSelected イ ベン ト 281 PIF フ ァ イ ル 984 PipeEnd イ ベン ト 282 PipeMeter イ ベン ト 283 PipeStart イ ベン ト 284 PixelsToUnits 関数 871 Pi 関数 870 Play 関数 872 PointerX 関数 873 PointerY 関数 874 PopMenu 関数 875 PopulateError 関数 876 PosA 関数 879 Position 関数 880 PostEvent 関数 887 PostURL 関数 890 Post 関数 886 PosW 関数 880 Pos 関数 877 PowerBuilder、 外部関数のデー タ 型 61 PowerBuilder 単位系 871, 1224 PowerObjectParm 種類の決定 1222 と CloseWithReturn 関数 385 パ ラ メ ー タ を使っ てシー ト を開 く 831, 839, 841, 849, 851 PowerObject 関数 ClassName 369 1256 GetContextService 534 GetParent 597 PowerObject 基本 ク ラ ス 28, 79 PowerScript 文 122 PrintBitmap 関数 901 PrintCancel 関数 902 PrintClose 関数 904 PrintDataWindow 関数 905 PrintDefineFont 関数 906 PrintEx 関数 908 PrintFooter イ ベン ト 284 PrintGetPrinters 関数 910 PrintGetPrinter 関数 909 PrintHeader イ ベン ト 286 PrintLine 関数 911 PrintOpen 関数 概要 912 メ ッ セージ ボ ッ ク ス 788 PrintOval 関数 914 PrintPage 関数 915 PrintRect 関数 916 PrintRoundRect 関数 917 PrintScreen 関数 919 PrintSend 関数 920 PrintSetFont 関数 922 PrintSetPrinter 関数 923 PrintSetSpacing 関数 924 PrintSetupPrinter 関数 926 PrintSetup 関数 925 PrintText 関数 927 PrintWidth 関数 929 PrintX 関数 930 PrintY 関数 931 Print 関数 894 PRIVATEREAD ア ク セ ス修飾子 42 PRIVATEWRITE ア ク セ ス修飾子 43 ProfileClass オブジ ェ ク ト 、 RoutineList 関数 982 ProfileInt 関数 932 ProfileLine オブジ ェ ク ト 、 OutgoingCallList 関数 859 ProfileRoutine オブジ ェ ク ト IncomingCallList 関数 650 LineList 関数 740 OutgoingCallList 関数 859 ProfileString 関数 934 Profiling 用の関数 PowerBuilder 索引 BuildModel 354 ClassList 368 DestroyModel 443 RoutineList 982 SetTraceFileName 1125 SystemRoutine 1179 PropertyChanged イ ベン ト 287 PropertyRequestEdit イ ベン ト 288 PROTECTEDREAD ア ク セ ス修飾子 42 PROTECTEDWRITE ア ク セ ス修飾子 43 R Randomize 関数 937 Rand 関数 937 RButtonDown イ ベン ト 289 RButtonUp イ ベン ト 291 Read 関数 938 Real 関数 941 Real デー タ 型 21 RecognitionResult イ ベン ト 291 RecognizeText 関数 942 RegistryDelete 関数 943 RegistryGet 関数 944 RegistryKeys 関数 945 RegistrySet 関数 946 Registryvalues 関数 948 RelativeDate 関数 949 RelativeTime 関数 950 ReleaseAutomationNativePointer 関数 950 ReleaseNativePointer 関数 951 RemoteExec イ ベン ト 292, 530, 1157 RemoteHotLinkStart イ ベン ト 292, 1157 RemoteHotLinkStop イ ベン ト 293, 1157 RemoteRequest イ ベン ト 294, 1058, 1157 RemoteSend イ ベン ト 294, 545, 1157 RemoveDirectory 関数 952 Rename イ ベン ト 295 Repair 関数 953 ReplaceA 関数 956 ReplaceText 関数 957 ReplaceW 関数 958 Replace 関数 954 ResetArgElements 関数 961 ResetDataColors 関数 962 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 ResetInk 関数 964 ResetPicture 関数 964 Reset 関数 958 Resize イ ベン ト 295 Resize 関数 965 ResolveInitialReferences 関数 966 RespondRemote 関数 968 Restart 関数 969 ResumeTransaction 関数 970 RETURN 文 141 Reverse 関数 972 RevertToSelf 関数 972 RGB 関数 973 RightA 976 RightClicked イ ベン ト 296 RightC 関数 977 RightDoubleClicked イ ベン ト 299 RightToLeft オペレーテ ィ ン グ シ ス テ ム 972 RightToLeft ソ フ ト ウ ェ ア 699, 700, 701, 702, 703, 706, 707 RightTrim 関数 977, 978 RightW 関数 977 Right 関数 976 RollbackOnly 関数 978 RollbackTransaction 関数 980 ROLLBACK 文 164 Round 関数 981 RoutineList 関数 982 RPC、 宣言 64 RPC、 リ モー ト プ ロ シージ ャ コ ールを参照 Run 関数 983 S Save 関数 ( イ ン ク ピ ク チ ャ コ ン ト ロ ール) SaveDocument 関数 997 SaveInk 関数 999 SaveObject イ ベン ト 302 Save イ ベン ト 301 Save 関数 987 ScrollHorizontal イ ベン ト 788 ScrollNextPage 関数 1002 ScrollNextRow 関数 1003 ScrollPriorPage 関数 1004 ScrollPriorRow 関数 1005 985 1257 索引 ScrollToRow 関数 1006 ScrollVertical イ ベン ト 788 Scroll 関数 1001 SecondsAfter 関数 1008 Second 関数 1007 SeekType カ タ ロ グ デー タ 型 1009 Seek 関数 1009, 1010 SELECTBLOB 文 166 SelectedColumn 関数 1011 SelectedIndex 関数 1012 SelectedItem 関数 1013 SelectedLength 関数 1014 SelectedLine 関数 1015 SelectedPage 関数 1017 SelectedStart 関数 1017 SelectedText 関数 1019 Selected イ ベン ト 303, 1084 SelectionChanged イ ベン ト 304 SelectionChanging イ ベン ト 307 SelectionRange 関数 1020 SelectItem 関数 1021 SelectObject 関数 1026 SelectTextAll 関数 1032 SelectTextLine 関数 1033 SelectTextWord 関数 1034 SelectText 関数 概要 1027 ク リ ッ プボー ド への コ ピー 404 SELECT 文 165 SendMessage 関数 1036 Send 関数 1036 SeriesCount 関数 1038 SeriesName 関数 1039 SetAbort 関数 1041 SetAlignment 関数 1044 SetArgElement 関数 1045 SetAutomationPointer 関数 1048 SetAutomationTimeout 関数 1049 SetBoldDate 関数 1051 SetComplete 関数 1054 SetDataDDE 関数 1058 SetDataPieExplode 関数 1060 SetDataStyle 関数 1061 SetData 関数 1057 SetDateLimits 関数 1067 SetDropHighlight 関数 1068 1258 SetDynamicParm 関数 1069 SetFirstVisible 関数 1070 SetFocus 関数 1071 SetGlobalProperty 関数 1072 SetItem 関数 1074 SetLevelPictures 関数 1078 SetLibraryList 関数 1079 SetMask 関数 1081 SetMicroHelp 関数 1083 SetNull 関数 1084 SetOverlayPicture 関数 1085 SetPicture 関数 1088 SetPointer 関数 1089 SetPosition 関数 1090 SetProfileString 関数 1093 SetRange 関数 1095 SetRecordSet 関数 1096 SetRedraw 関数 1097 SetRemote 関数 1098 SetResultSet 関数 1101 SetSelectedDate 関数 1110 SetSelectedRange 関数 1111 SetSeriesStyle 関数 1102 SetState 関数 1113 SetTimeout 関数 1116 SetToday 関数 1117 SetToolbar 関数 1118 SetTop 関数 1124 SetTraceFileName 関数 1125 SetTransPool 関数 1126 SharedObjectDirectory 関数 1129 SharedObjectGet 関数 1130 SharedObjectRegister 関数 1133 SharedObjectUnregister 関数 1134 ShowHeadFoot 関数 1136 ShowHelp 関数 1137 ShowPopupHelp 関数 1138 Show イ ベン ト 309 Show 関数 1135 SignalError 関数 1140 Sign 関数 1139 Sin 関数 1141 Sleep 関数 1142 SortAll 関数 1144 Sort イ ベン ト 310 Sort 関数 1142 PowerBuilder 索引 Space 関数 1146 SQLCode プ ロ パテ ィ 149 SQLDBCode プ ロ パテ ィ 150 SQLErrText プ ロ パテ ィ 150 SQL の イ ン ジ ケー タ 変数 148 SQL のホ ス ト 変数 148 SQL 文 CLOSE Cursor 151 CLOSE Procedure 152 COMMIT 153 CONNECT 154 DECLARE Procedure 156 DISCONNECT 159 EXECUTE 160, 1069 FETCH 160 INSERT 162 OPEN 1069 OPEN Cursor 163 ROLLBACK 164 SELECT 165 SELECTBLOB 166 UPDATE 167 UPDATE Where Current of Cursor 170 UPDATEBLOB 169 エ ラ ー処理 149 概要 148 継続 17 パ イ プ ラ イ ン実行 1149 貼 り 付け 150 Sqrt 関数 1147 StartHotLink 関数 1156 StartServerDDE 関数 1157 Start イ ベン ト 313 Start 関数 概要 1148 サーバ アプ リ ケーシ ョ ン 395, 397 パ イ プ ラ イ ンのキ ャ ン セル 357 State 関数 1159 stgShareMode カ タ ロ グ デー タ 型 817, 821 StopHotLink 関数 1163 StopServerDDE 関数 1164 Stop 関数 1162 StringParm プ ロ パテ ィ 831, 839, 841, 849, 851 StringToObject 関数 1171 String デー タ 型 21 Stroke イ ベン ト 313 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 Super 代名詞 15 SuspendTransaction 関数 1175 SyntaxFromSQL 関数 1176 SystemError イ ベン ト 314 SystemKey イ ベン ト 315 SYSTEMREAD 修飾子 43 SystemRoutine 関数 1179 SYSTEMWRITE 修飾子 43 T Tag プ ロ パテ ィ GetFocus 関数 578 マ イ ク ロ ヘルプ テ キ ス ト の格納 1084 Tan 関数 1183 TextLine 関数 1185 Text 関数 1184 Text プ ロ パテ ィ 578 This 代名詞 14 Timer イ ベン ト 316 Timer 関数 1189 Time 関数 1186 Time デー タ 型 23 ToAnsi 関数 1190 Today 関数 1191 ToolbarMoved イ ベン ト 318 Top 関数 1192 TotalColumns 関数 1193 TotalItems 関数 1194 TotalSelected 関数 1195 ToUnicode 関数 1196 TraceBegin 関数 1197 TraceClose 関数 1199 TraceDisableActivity 関数 1200 TraceEnableActivity 関数 1202 TraceEnd 関数 1204 TraceError 関数 1205 TraceFile 用のオブジ ェ ク ト Close 関数 379 NextActivity 関数 802 Reset 関数 960 TraceOpen 関数 1206 TraceTreeGarbageCollect オブジ ェ ク ト 、 GetChildrenList 関数 527 TraceTreeObject オブジ ェ ク ト 、 GetChildrenList 関 1259 索引 数 527 TraceTreeRoutine オブジ ェ ク ト 、 GetChildrenList 関数 527 TraceTree オブジ ェ ク ト BuildModel 関数 354 DestroyModel 関数 443 EntryList 関数 463 SetTraceFileName 関数 1125 TraceUser 関数 1208 Trace フ ァ イ ル関数、 Open 809 TrigEvent カ タ ロ グ デー タ 型 887 TriggerEvent 関数 1209 TriggerPBEvent 関数 1212 Trim 関数 1214 Truncate 関数 1215 TrustVerify 関数 1216 TypeOf 関数 1220 U Uncheck 関数 1222 Undo、 テ ス ト 358 Undo 関数 1223 Unicode、 文字列の変換 515, 516, 1190, 1196 UnitsToPixels 関数 1224 UNTIL, DO...LOOP 文内 133 UPDATE Where Current of Cursor 文 170 UPDATEBLOB 文 169 UPDATE 文 167 UpperBound 関数 1227 Upper 関数 1226 V ViewChange イ ベン ト 319 Visible プ ロ パテ ィ SetRedraw 関数 1097 設定 1135 ポ ッ プア ッ プ メ ニ ュ ーの表示 1260 W Which 関数 1229 WHILE, DO...LOOP 文内 133 WordCap 関数 1230 WordParm プ ロ パテ ィ TriggerEvent 関数 1210 イ ベン ト のポ ス ト 888 WorkSpaceHeight 関数 1231 WorkSpaceWidth 関数 1232 WorkSpaceX 関数 1233 WorkSpaceY 関数 1234 Write 関数 1235 X XMLParseFile 関数 1236 XMLParseString 関数 1240 xValue カ タ ロ グ デー タ 型 539, 555 x値 デー タ の イ ン ポー ト 639, 642, 645, 647 デー タ ポ イ ン ト 539, 555, 796 文字列か ら の挿入 649 Y Year 関数 1243 Yield 関数 1244 yValue カ タ ロ グ デー タ 型 539, 555 y値 デー タ の イ ン ポー ト 639, 642, 645, 647 デー タ ポ イ ン ト 539, 555, 796 文字列か ら の挿入 649 あ 875 アイ コン ウ ィ ン ド ウ の整列 343 メ ッ セージ ボ ッ ク ス 787 リ ス ト ビ ュ ーでの整列 342 ア ク セ ス権 PRIVATE 関数 58 PowerBuilder 索引 変数 と 定数 42 ア ク セ ス権 PROTECTED 関数 58 変数 と 定数 42 ア ク セ ス権 PUBLIC 関数 58 変数 と 定数 42 ア ク セ ス レベル 関数 58 グループ ラ ベル 45 変数 41 ア ク テ ィ ブ ウ ィ ン ド ウ 875 ア ク テ ィ ブ シー ト 828 値 NULL か ど う かのチ ェ ッ ク 710 数値の検出 711 デー タ ポ イ ン ト 554 リ ス ト か ら の削除 434 リ ス ト への挿入 673 リ ス ト への追加 330 値、 に よ る 引数の渡 し 106 圧縮モー ド 920 ア ド レ ス、 メ ール 759, 770, 772 アニ メ ーシ ョ ン 開始 872 停止 1162 アプ リ ケーシ ョ ン DDE チ ャ ネルを閉 じ る 381 オブジ ェ ク ト の リ ス ト 731 経過時間 408 構文か ら オブジ ェ ク ト を再構築 736 構文 と し てオブジ ェ ク ト をエ ク ス ポー ト 734 サーバ 1157, 1164 再起動 969 実行 983 終了 138 接続 391, 393, 395, 397 中断 1244 ハン ド ル 521, 628 引数の取得 388 メ ッ セージのポ ス ト 機能 886 アプ リ ケーシ ョ ン オブジ ェ ク ト 、 SetTransPool 関 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 数 1126 アプ リ ケーシ ョ ン名 1156, 1157, 1164 ア ラ ビ ア語用の関数 IsAllArabic 699 IsAnyArabic 701 IsArabic 702 IsArabicAndNumbers 703 ア ンパサン ド 記号 (&) 16 い 位置 コ ン ト ロ ールの位置の設定 1090 挿入ポ イ ン ト の 880 変更 798 一時フ ァ イ ル 768 一番上 オブジ ェ ク ト の移動 1092, 1135 距離の判別 874 リ ス ト ボ ッ ク ス項目の移動 1124 イ ベン ト 印刷ジ ョ ブ 904 上書き 105 概要 89, 185 拡張 105 カ ス ケー ド 呼び出 し 110, 113 関数 と の類似点 91 キ ュ ーへの追加 887 検索 93 シ ス テ ム 90, 185 静的お よ び動的な 97 先祖 115 定義 さ れた 90 ト リ ガ 94, 186, 1182, 1209 引数 106, 186 非表示オブジ ェ ク ト 630 ポ ス ト 機能 94, 111, 1181 戻 り 値 110, 186 ユーザ定義 185, 187 呼び出 し 時のエ ラ ー 100 リ タ ーン コ ー ド 187 イ ベン ト の ID 186 1261 索引 色 赤、 緑、 青 973 サポー ト さ れてい る 566 デー タ 系列 608, 1102 デー タ ポ イ ン ト 548, 962, 1061 と エデ ィ ッ ト マ ス ク 1081 標準色のテーブル 974 イ ン ク エデ ィ ッ ト 用の関数 RecognizeText 942 イ ン ク ピ ク チ ャ 用の関数 LoadInk 742 LoadPicture 743 ResetInk 964 ResetPicture 964 Save 985 SaveInk 999 印刷カー ソ ル 印刷ジ ョ ブ 897 座標の取得 930, 931 印刷上の表記規則 xxiv 印刷ジ ョ ブ 912 印刷用の関数 Print 894 PrintBitmap 901 PrintCancel 902 PrintClose 904 PrintDataWindow 905 PrintDefineFont 906 PrintOpen 912 PrintOval 914 PrintPage 915 PrintRect 916 PrintRoundRect 917 PrintScreen 919 PrintSend 920 PrintSetFont 922 PrintSetSpacing 924 PrintSetup 925 PrintText 927 PrintWidth 929 PrintX 930 PrintY 931 インスタンス 定義 さ れた 78 有効性のチ ェ ッ ク 716 1262 ユーザ オブジ ェ ク ト 834, 838, 843, 848 イ ン ス タ ン ス変数 概要 32 初期化 41 ド ッ ト 表記 34 の ク ラ ス 369 イ ンデ ッ ク ス 一番上の取得 1192 ハ イ ラ イ ト 表示 1113, 1159 リ ス ト ボ ッ ク ス項目 1012, 1023 イ ン ポー ト 、 デー タ 642, 647 引用符 規則 23 指定 8 テ ィ ルダ を使っ た 22 ネ ス ト (入れ子) 22 引用符付 き 文字列、 継続 17 う ウィンドウ DDE 対話のハン ド ル 1157 ア ク テ ィ ブの取得 519 位置設定 1090 カ ス タ ム フ レーム 1233, 1234 整列 343, 828 デー タ 型 809 閉 じ る 377 ハン ド ルの取得 628 開 く 809, 853 メ ッ セージのポ ス ト 機能 886 メ ニ ュ ーの変更 363 ユーザ オブジ ェ ク ト の追加 834, 843, 848 ワー ク スペース の高 さ の取得 1231 ワー ク スペース の幅の取得 1232 ウ ィ ン ド ウ ActiveX コ ン ト ロ ール GetArgElement 関数 522 GetLastReturn 関数 587 InvokePBFunction 関数 695 ResetArgElements 関数 961 SetArgElement 関数 1045 TriggerPBEvent 関数 1212 PowerBuilder 索引 ウ ィ ン ド ウ オブジ ェ ク ト 構文か ら 再構築 736 構文 と し てエ ク ス ポー ト 734 ユーザ オブジ ェ ク ト を閉 じ る 383 リ ス ト 731, 732 ウ ィ ン ド ウ ペ イ ン タ 844, 846 ウ ィ ン ド ウ用の関数 ArrangeSheets 343 ChangeMenu 363 ClassName 369 CloseUserObject 383 Draw 457 GetActiveSheet 519 GetFirstSheet 576 GetNextSheet 594 Hide 630 Move 798 Open 809 OpenSheet 827 OpenSheetWithParm 830 OpenTab 834 OpenUserObject 843 OpenWithParm 853 ParentWindow 863 PointerX 873 PointerY 874 PostEvent 887 Print 894 Resize 965 SetFocus 1071 SetMicroHelp 1083 SetPosition 1090 SetRedraw 1097 Show 1135 TriggerEvent 1209 TypeOf 1220 WorkSpaceHeight 1231 WorkSpaceWidth 1232 WorkSpaceX 1233 WorkSpaceY 1234 上重ね表示 さ れ る ウ ィ ン ド ウ 831 ウ ォーム リ ン ク 464, 604, 826, 1100 埋め込み SQL 147 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 え エ ス ケープ シーケ ン ス 920 エデ ィ ッ ト コ ン ト ロ ール か ら のテ キ ス ト の削除 372 行カ ウ ン ト 737 ク リ ッ プボー ド の内容の挿入 374 選択 さ れたテ キ ス ト 1014, 1017 挿入ポ イ ン ト の決定 880 テ キ ス ト の置換 957 エデ ィ ッ ト マ ス ク 用の関数 CanUndo 358 Clear 371 Copy 402 Cut 414 GetData 541 LineCount 737 LineLength 739 Paste 864 Position 880 ReplaceText 957 Scroll 1001 SelectedLength 1014 SelectedLine 1015 SelectedStart 1017 SelectedText 1019 SelectText 1028 SetMask 1081 TextLine 1185 Undo 1223 エラー 実行中 69 パ イ プ ラ イ ンの表示 1149 エ ラ ー オブジ ェ ク ト 、 作成 129 エ ラ ー処理 SQL 文の後 149 関数ま たは イ ベン ト の呼び出 し 100, 103 エ ラ ーデー タ ウ ィ ン ド ウ 953 エ ラ ーのチ ェ ッ ク カ ス ケー ド 呼び出 し 111 ス ク リ プ ト の コ ンパ イ ル 99 円グ ラ フ 546, 1060 演算子 概要 67 関係 70 1263 索引 後置式を使っ た代入 122, 124 算術 68 デー タ 型への影響 73 優先順位 72 連結 71 論理 70 演算子の優先順位 72 エンベ ロ ープ、 メ ール メ ッ セージ ヘ ッ ダ お オーデ ィ オ (ビープ) 348 オー ト メ ーシ ョ ン 1046, 1048, 1049 オーバーレ イ 613, 1108 大文字 1226 大文字での表示 大文字 1226 系列名 338 項目名 325, 663 小文字 757 大文字 と 小文字の区別、 比較 70 オブジ ェ ク ト OLE の保存 987 位置の変更 1092 一般的な参照 12 移動 798 イ ベン ト の発生 1209 イ ベン ト のポ ス ト 887 イ ン ス タ ン ス の作成 81, 128 イ ン ス タ ン ス の破棄 132 親オブジ ェ ク ト 597 概要 78 ガベージ コ レ ク シ ョ ン 83, 132 再構築 736 再描画 1097 参照ハン ド ル 78 種類の決定 1220 先祖 82 選択 1026 挿入 665, 672, 687 代入 85 の ク ラ ス の決定 369 1264 768 ハン ド ルの取得 628 引数 と し て渡す 107 非表示 630, 798 フ ォーカ ス の設定 1072 ポ イ ン タ 位置 805 ラ イ ブ ラ リ か ら の削除 730 リ ン ク 741 ロ ー ド 341, 1079 オブジ ェ ク ト 、 共有 SharedObjectDirectory 関数 1129 SharedObjectGet 関数 1130 SharedObjectRegister 関数 1133 SharedObjectUnregister 関数 1134 オブジ ェ ク ト 、 接続 ConnectToServer 関数 400 CreateInstance 関数 409, 411 DisconnectServer 関数 451 オブジ ェ ク ト の挿入 ダ イ ア ロ グボ ッ ク ス 687 オペレーテ ィ ン グ シ ス テ ム RightToLeft バージ ョ ン 699, 700, 701, 702, 703, 706, 707, 972 情報 566 親ウ ィ ン ド ウ 取得 863 相対す る 位置に変更 798 開いてい る ウ ィ ン ド ウ 810, 811, 853 か カー ソ ル 印刷 897 カ ス タ ム 1089 ポ ッ プア ッ プ メ ニ ュ ーの表示 カー ソ ル、 デー タ ベース オープン 163 ク ロ ーズ 151 宣言 150, 155 改行、 指定 8 階層 子の ソ ー ト 1142 シ ス テ ム 27, 369 ソ ー ト 1144 875 PowerBuilder 索引 ツ リ ービ ュ ーの項目 387, 469 リ ス ト 内の子項目 680, 682, 685 外部関数 56 外部関数の DLL 59 カ ウ ン ト 、 系列のデー タ ポ イ ン ト 417 角度 逆正弦の計算 346 逆正接の計算 347 逆余弦の計算 322 正弦の計算 1141 正接の計算 1183 への変換 / ラ ジア ン (弧度) か ら の 870 余弦の計算 407 影 デー タ 系列 608, 1102 デー タ ポ イ ン ト 548, 1062 加算演算子 68 数 Char 型に変換 364, 365, 421, 431 pi を掛け る 870 行、 カ ウ ン ト 737 切 り 捨て 1215 項目 360 最大値の決定 361 四捨五入 981 剰余を戻す 794 対数 745, 746 動的に取得 563 比較 782, 793 符号の判別 1139 文字列のチ ェ ッ ク 711 曜日 427 ラ ン ダ ム 937 カ ス ケー ド ウ ィ ン ド ウ、 シー ト の整列 343 カ ス タ ム ク ラ ス ユーザ オブジ ェ ク ト 84 画像 ク リ ッ プボー ド か ら の検索 374 ピ ク チ ャ コ ン ト ロ ールへの配置 1088 形 印刷 914, 916, 918 マ ウ ス ポ イ ン タ 1089 カ タ ロ グ デー タ 型 29 ガベージ コ レ ク シ ョ ン 83, 130, 132 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 可変長配列、 メ モ リ の割 り 当て 51, 1227 画面 印刷 919 相対する 位置に変更 798 表示 566 ワ ー ク スペース ま での距離 1233, 1234 カラム 挿入ポ イ ン ト の決定 880 のテ キ ス ト の貼 り 付け 865 リ ス ト 666 間隔 1189 環境 TEMP 変数 769 情報の取得 566 関係演算子 70 関数 DLL 59 イ ベン ト と の類似点 91 上書き 104 大文字 と 小文字の区別 112 外部 56 外部、 定義 さ れた 91 外部、 デー タ ベース ハン ド ルの レ ポー ト 429 外部、 メ ール 764 外部関数のア ク セ ス レベル 58 外部関数のデー タ 型 61 概要 89 カ ス ケー ド 呼び出 し 110, 113 型の変換 104 グ ロ ーバル関数 と シ ス テ ム関数の呼び出 し 113 検索 92 シ ス テ ム、 定義 さ れた 90 静的お よ び動的な 97 先祖 115 多重定義 104 ト リ ガ 94 引数 106 引数 と し ての Char 76 ポ ス ト 機能 94, 111 戻 り 値 109 ユーザ定義 90 呼び出 し 時のエ ラ ー 100 1265 索引 関数オブジ ェ ク ト 構文か ら 再構築 736 構文 と し てエ ク ス ポー ト 734 リ ス ト 731 関数 と イ ベン ト の多相性 (ポ リ モ フ ィ ズ ム) 関数の上書 き 104 関数の多重定義 104 関数ま たは イ ベン ト のポ ス ト 94 感嘆符ア イ コ ン 787 97 き キーボー ド キーを押 し たかの確認 716 テ キ ス ト の選択 404 キーワー ド 11 キーワー ド address 1210 疑問符 ア イ コ ン メ ッ セージ ボ ッ ク ス 787 テ キ ス ト パ タ ーン 780 動的 SQL 176, 177, 180 逆正弦 346 逆正接 347 逆余弦 322 キ ャ リ ッ ジ リ タ ーン INI フ ァ イ ル内 935 指定 8 キ ャ ン セル 印刷 902 許可 1244 パ イ プ ラ イ ン オブジ ェ ク ト の 357 キ ャ ン セル ボ タ ン 787 行 印刷 927 数カ ウ ン ト 737 グ ラ フ、 デー タ 系列の色 608 グ ラ フ、 デー タ 系列の ス タ イ ル 609, 611 グ ラ フ、 デー タ ポ イ ン ト での ス タ イ ル 551 ス ク ロ ール 1001, 1002, 1003, 1005, 1006 選択 さ れた テ キ ス ト 1015 挿入ポ イ ン ト の決定 880 デー タ ポ イ ン ト の色 548 テ キ ス ト 1185 1266 長 さ の決定 739 パ イ プ ラ イ ン デー タ の修正 953 幅 551 リ ッ チテ キ ス ト の行間 615 行、 デー タ ベース カー ソ ルが置かれた行の更新 170 更新 167 削除 157, 158 挿入 162 フ ェ ッ チ 160 行間 設定 924 テ キ ス ト 印刷時 897 共有オブジ ェ ク ト SharedObjectDirectory 関数 1129 SharedObjectGet 関数 1130 SharedObjectRegister 関数 1133 SharedObjectUnregister 関数 1134 概要 1131 共有変数 概要 32 初期化 40 切 り 取 り 、 ク リ ッ プボー ド へ 414 く 区域 757, 1227 区域、 デー タ ウ ィ ン ド ウ、 オブジ ェ ク ト の移動 1092 空白 18 クラス OLE 665 オブジ ェ ク ト と の対照 78 オブジ ェ ク ト の 369 ク ラ ス階層 28 ク ラ ス ユーザ オブジ ェ ク ト 80 グラフ オーバーレ イ 613 項目 328 デー タ 系列 338 グ ラ フ ィ ッ ク 、 印刷 901 グ ラ フ用の関数 AddCategory 325 PowerBuilder 索引 AddData 327 AddSeries 337 CategoryCount 359 CategoryName 360 Clipboard 375 DataCount 417 DeleteCategory 431 DeleteData 433 DeleteSeries 440 FindCategory 498 FindSeries 512 GetData 539 GetDataPieExplode 546 GetDataStyle 548 GetSeriesStyle 607 ImportClipboard 639 ImportFile 642 ImportString 647 InsertCategory 663 InsertData 667 InsertSeries 689 ModifyData 795 Reset 959 SaveAs 989 SeriesCount 1038 SeriesName 1039 SetDataPieExplode 1060 SetDataStyle 1061 SetSeriesStyle 1102 グ リ ッ ド 提示様式 1176 ク リ ッ プボー ド 切 り 取 り 414 コ ピー 402 置換テ キ ス ト と し ての コ ン テ ン ツ デー タ の イ ン ポー ト 639 内容の検索 と 置換 374 貼 り 付け 864 貼 り 付け と リ ン ク 866 グループ提示様式 1176 グ ロ ーバル関数 定義 さ れた 90 呼び出 し 113 グ ロ ーバル ス コ ープ記号 33 グ ロ ーバル変数 概要 32 ス コ ープ記号 33 ク ロ ス タ ブ、 ソ ース コ ー ド か ら の作成 1176 け 継承 82 PowerBuilder オブジ ェ ク ト 28 ダブル コ ロ ン 124 バ ッ ク ク ォー ト 124 継続行文字 16 現行 行 と ス ク ロ ール 1003, 1005 シー ト 828 検索、 リ ッ チテ キ ス ト 497, 511 限度、 数値 361 こ 957 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 構造体 mailRecipient 772 値の渡 し 855, 857 外部関数への渡 し 62 概要 77 自動生成 さ れたユーザ オブジ ェ ク ト 代入 85 引数 と し て渡す 108 戻 り 値の 385 構造体オブジ ェ ク ト 構文か ら 再構築 736 構文 と し てエ ク ス ポー ト 734 リ ス ト 731 後退、 指定 8 構文 オブジ ェ ク ト をエ ク ス ポー ト 734 オブジ ェ ク ト を再構築 736 項目 一番上 1124, 1192 イ ンデ ッ ク ス番号 1012 選択 1021 選択 さ れた項目数の取得 1195 総数の取得 1194 テ キ ス ト 1013, 1184 84 1267 索引 ハ イ ラ イ ト 表示 1113, 1159 リ ス ト か ら の削除 434, 959 リ ス ト への追加 330, 673 リ ン ク 741 項目、 グ ラ フ InsertCategory 関数 326 カ ウ ン ト 359 ク リ ッ ク 805 系列に追加 326 削除 431, 960 識別 359, 360 新規 325 挿入 663 デー タ 値を系列に追加 326, 328 デー タ の イ ン ポー ト 639, 642, 647 コー ド オブジ ェ ク ト 734 再利用 888 デー タ ウ ィ ン ド ウ の生成 1176 コ ール ド リ ン ク 464, 602, 826, 1098 個人の メ ッ セージ 762 コ ピー ク リ ッ プボー ド か ら の イ ン ポー ト 639 ク リ ッ プボー ド へ 402 コ マン ド DDE アプ リ ケーシ ョ ンか ら の受け取 り 968 DDE ク ラ イ ア ン ト か ら の取得 530 コ マ ン ド ラ イ ン、 引数の取得 388 コメント 使い方 4 ラ イ ブ ラ リ 729 小文字 757 コ ン ト ロ ール 移動 798 サ イ ズ変更 965 再描画 1097 参照 386 種類の決定 1220 中断 1244 ド ラ ッ グ 454 ハン ド ルの取得 628 非表示 630, 798 フ ォーカ ス 578, 1071 1268 コ ン ト ロ ール構造体 CHOOSE CASE 125 DO...LOOP 133 FOR...NEXT 136 IF...THEN 139 コ ンパ イ ル時のデー タ ベースへのサ イ ン オン を回 避 151 コ ン ピ ュータ CPU 時間の レ ポー ト 408 ビープ音 348 さ サーバ アプ リ ケーシ ョ ン DDE ク ラ イ ア ン ト へ送る 1058 DDE サポー ト 826 DDE チ ャ ネルを閉 じ る 383 ア ク テ ィ ブ化 324, 1026 接続 391, 393, 395, 396, 397 停止 1164 デー タ の供給 602 貼 り 付け と リ ン ク 866 へのデー タ の送信 1098 再試行ボ タ ン 787 最小値 2 つの数 793 限度以上 361 サイズ Blob ま たは文字列 725, 727 画面 566 変更 965 サ ウ ン ド (ビープ) 348 座標 印刷オブジ ェ ク ト 901, 914, 916, 917 印刷カー ソ ル 930, 931 リ ス ト ビ ュ ーの項目 595 サブ ス ト レージ、 OLE 削除 783 チ ェ ッ ク 784 名前の変更 785 保存 992 サマ リ ー、 オブジ ェ ク ト の移動 1092 算術演算子 68 PowerBuilder 索引 参照 と CloseWithReturn 関数 386 に よ る 引数の渡 し 106 パ ラ メ ー タ の渡 し 832, 839, 841, 849, 851, 855, 857 散布図グ ラ フ 系列への値の追加 329 デー タ の イ ン ポー ト 639, 642, 645, 647 デー タ ポ イ ン ト 値の取得 539 デー タ ポ イ ン ト 値の変更 796 文字列か ら のデー タ の挿入 649 し シー ト ア ク テ ィ ブの取得 519 親の取得 863 最初のシー ト を開 く 576 整列 343 ツールバー 620, 622, 1118, 1120 次の開いてい る シー ト を取得す る 開 く 811, 827, 830 式 Any デー タ 型 25 NULL か ど う かのチ ェ ッ ク 710 演算子 と デー タ 型 73 宣言 40 デー タ ウ ィ ン ド ウ と Any デー タ 型 デー タ 型 73 デー タ 型の変換 73 リ テ ラ ル 74 式内での優先順位 72 識別名、 規則 5 軸、 グ ラ フ 項目 325, 359, 431, 663 デー タ の挿入 667 次元 757 時刻 CPU 408 DateTime デー タ 型 424 現在 803 相対 950 594 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 27 デー タ 型への変換 1186 動的に取得 562, 565 秒 1007, 1008 分 793 文字列のチ ェ ッ ク 714 システム イ ベン ト 185, 886 イ ベン ト 、 定義 さ れた 90 オブジ ェ ク ト ク ラ ス 79 オブジ ェ ク ト デー タ 型 27 オブジ ェ ク ト の階層 28 関数 113 時刻 803 日付 1191 レ ジ ス ト リ 943, 944, 945, 946, 948 シ ス テ ム と 環境用の関数 Clipboard 374 CommandParm 388 DebugBreak 430 FindClassDefinition 500 FindFunctionDefinition 501 FindTypeDefinition 513 GarbageCollect 516 GarbageCollectGetTimeLimit 517 GarbageCollectSetTimeLimit 517 GetApplication 521 GetEnvironment 566 Handle 628 PopulateError 876 Post 886 ProfileInt 932 ProfileString 934 Restart 969 Run 983 Send 1036 SetProfileString 1093 ShowHelp 1137 SignalError 1140 Yield 1244 子孫 イ ベン ト か ら の戻 り 値 115 の ク ラ ス の決定 369 開いてい る ウ ィ ン ド ウ 813 ユーザ オブジ ェ ク ト を開 く 835, 836, 845, 847 1269 索引 実行エ ラ ー 99 実行フ ァ イ ル アプ リ ケーシ ョ ンのハン ド ルを返す 628 実行 984 自動生成設定 84 週、 曜日 426, 427 受信者、 メ ール 770 受信 ト レ イ への メ ッ セージのダ ウ ン ロ ー ド 767 への メ ッ セージの保存 774 メ ール メ ッ セージの読み込み 768 メ ッ セージ ID 検索 761, 762 メ ッ セージ削除 761 状況依存ヘルプ 1137 上限以下の最大値 691 詳細区域、 オブジ ェ ク ト の移動 1092 乗算演算子 68, 69 状態 ハ イ ラ イ ト 表示の設定 1113 リ ス ト ボ ッ ク ス項目 1159 剰余 794 除算 794 除算演算子 68, 69 書式、 文字列への適用 1165 シ ン グル ラ イ ン エデ ィ ッ ト 用の関数 CanUndo 358 Clear 371 Copy 402 Cut 414 Move 798 Paste 864 Position 880 ReplaceText 957 SelectedLength 1014 SelectedStart 1017 SelectedText 1019 SelectText 1028 Undo 1223 シ ン ボルの種類、 グ ラ フ デー タ 系列 1105 デー タ ポ イ ン ト 551, 1065 1270 す 水平ス ク ロ ール、 リ ス ト への項目の追加 331 数値デー タ 型の優先順位 73 数値用の関数 Abs 322 ACos 322 ASin 346 ATan 347 Ceiling 361 Cos 407 Exp 468 Fact 470 Int 691 Log 745 Max 782 Min 793 Mod 794 Pi 870 Rand 937 Randomize 937 Round 981 Sign 1139 Sin 1141 Sqrt 1147 Tan 1183 Truncate 1215 スク リプト イ ベン ト の発生 1209 実行の中止 969 終了 141 ス ク ロ ール ツ リ ービ ュ ー 1070 リ ス ト ボ ッ ク ス 1124 ス ク ロ ール用の関数 Scroll 1001 ScrollNextPage 1002 ScrollNextRow 1003 ScrollPriorPage 1004 ScrollPriorRow 1005 ScrollToRow 1006 Top 1192 ス コ ープ記号 113 ス タ テ ィ ッ ク テ キ ス ト コ ン ト ロ ール、 ク リ ッ プ ボー ド の挿入 374 ス テー ト メ ン ト 、 PowerScript PowerBuilder 索引 CALL 124 CHOOSE CASE 125 CONTINUE 127 CREATE 128 DESTROY 132 DO...LOOP 133 EXIT 135 FOR...NEXT 136 GOTO 138 HALT 138 IF...THEN 139 RETURN 141 区切 り 18 代入 122 リ ス ト 121 ス ト ア ド プ ロ シージ ャ ク ロ ーズ 152 実行 160 宣言 150, 156 ス ト ア ド プ ロ シージ ャ 、 宣言 64 ス ト ッ プ サ イ ン ア イ コ ン 787 ス ト リ ーム、 OLE 削除 783 チ ェ ッ ク 784 名前の変更 785 ス ト レージ、 OLE 解放 378 フ ァ イ ル 992 保存 987 スペース 左端か ら 削除 724, 725 末尾の スペース の削除 977, 978 文字列か ら の削除 1214 文字列への挿入 1146 せ 世紀 1243 正弦 1141 整数 blob か ら の取得 692 Char に変換 364, 365 Long 値への変換 747, 749 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 変換 692 正接 1183 静的呼び出 し 97 正の数 1139 接続、 OLE オブジ ェ ク ト への 391, 393 接続オブジ ェ ク ト ConnectToServer 関数 400 CreateInstance 関数 411 DisconnectServer 関数 451 絶対値 322 設定 保存 1093 読み込み 932, 934 セ ミ コ ロ ン (SQL) 17 線 印刷 911 グ ラ フ、 デー タ 系列の色 1102 グ ラ フ、 デー タ 系列の ス タ イ ル 1104 グ ラ フ、 デー タ ポ イ ン ト での ス タ イ ル グ ラ フ、 デー タ ポ イ ン ト の色 1062 前景色 デー タ 系列 608, 1102 デー タ ポ イ ン ト 548, 1062 宣言 ア ク セ ス レベル 41 構文 36 初期値 と し ての式 40 宣言場所 31 定数 46 配列 47 変数 31 先祖 イ ベン ト か ら の戻 り 値 115 オブジ ェ ク ト 82 階層 369 関数ま たは イ ベン ト の呼び出 し 115 ス ク リ プ ト 、 呼び出 し 124 選択、 リ ス ト 内の削除 1023 線の種類 continuous デー タ 系列の設定 1104 デー タ ポ イ ン ト の設定 1064 線の種類 dash 概要 1064, 1104 1063 1271 索引 デー タ 系列の設定 1104 線の種類 dotted デー タ 系列の設定 1104 デー タ ポ イ ン ト の設定 1064 線の種類 transparent、 グ ラ フ デー タ 系列の設定 1104 デー タ ポ イ ン ト の設定 1064 そ 送信者 768 挿入ポ イ ン ト ク リ ッ プボー ド か ら の貼 り 付け 864 テ キ ス ト 行 1015, 1185 編集可能な コ ン ト ロ ール 739 文字の位置 1011 ソー ト 順 GetCalc 関数 628 リ ス ト に項目を挿入す る タ イ ミ ン グ 674 測定 1224 その他の ウ ィ ン ド ウ メ ニ ュ ー項目 829 そのほかの関数 IsValid 716 KeyDown 717 MessageBox 871 PixelsToUnits 871 RGB 973 SetNull 1084 SetPointer 1089 TypeOf 1220 UnitsToPixels 1224 た ダ イ ア ロ グボ ッ ク ス PasteSpecial 869 オブジ ェ ク ト の挿入 687 フ ァ イ ルの保存 573 フ ァ イ ルを開 く 568 対数 745, 746 代入 オーバーフ ロ ー 75 1272 後置式演算子 124 配列 50, 53, 55 文 122 代入時のオーバーフ ロ ー 75 タ イ マー、 イ ベン ト の発生 1189 タ イ ミ ン グ オブジ ェ ク ト 開始 1151 停止 1162 非ア ク テ ィ ブ化 1162 タ イ ミ ン グ用の関数 CPU 408 Idle 633 Timer 1189 代名詞 Parent 13 Super 15 This 14 イ ン ス タ ン ス変数 35 概要 12 楕円 SetFocus 関数 1072 印刷 914 高さ オブジ ェ ク ト 965 ワー ク スペース 1231 多次元配列 49, 53 ダ ッ シ ュ 、 変数名での使用の禁止 5 タ ブ ページ CreatePage 関数 413 PageCreated 関数 862 順序の変更 800 選択 1026 ユーザ オブジ ェ ク ト を開 く 834, 838 タ ブ文字、 指定 8 タ ブ用の関数 CloseTab 381 MoveTab 800 SelectTab 1026 TabPostEvent 1181 TabTriggerEvent 1182 タ ブ ラ 提示様式 1176 ダブル コ ロ ン 124 単位系 端か ら の距離 873 PowerBuilder 索引 ピ ク セルか ら の変換 871 ピ ク セルへの変換 1224 誕生日 1243 段落 1087 SetLevelPictures 1078 SetOverlayPicture 1085 Sort 1142 SortAll 1144 ち て チャ イル ド ウ ィ ン ド ウ 親の取得 863 開 く 811, 853 チ ャ ネル、 DDE 380, 825 長方形 SetFocus 関数 1072 印刷 916, 918 直線 SetFocus 関数 1072 ち ら つ き 1097 定義、 印刷の フ ォ ン ト 906 提示様式 1176 定数 値の代入 39 宣言 46 宣言場所 31 テ ィ ルダ 規則 23 指定 8 文字列 22 デ ィ レ ク ト リ 、 ラ イ ブ ラ リ 731, 732 デー タ Blob への挿入 351 DDE アプ リ ケーシ ョ ンか ら の受け取 り DDE ク ラ イ ア ン ト へ送 る 1058 DDE 取得 544 Long 型への変換 747, 749 OLE サーバ 542, 1057 イ ン ポー ト 639 共有 418 グ ラ フ系列への追加 327, 329 コ ン ト ロ ールか ら の取得 539 消去 958 ス ト リ ームへの書き 込み 1235 デー タ ウ ィ ン ド ウ での検索 497 転送 1148 パ イ プ ラ イ ンの修正 953 フ ァ イ ルへの書き 込み 490, 492 デー タ ウ ィ ン ド ウ オブジ ェ ク ト SELECT 文か ら の作成 1176 構文か ら 再構築 736 構文 と し てエ ク ス ポー ト 734 ラ イ ブ ラ リ か ら の削除 730 リ ス ト 731 デー タ ウ ィ ン ド ウ コ ン ト ロ ール つ ツールバー 620, 622, 1118, 1120 月、 日付の取得 425 ツ リ ービ ュ ー用の関数 AddPicture 336 CollapseItem 387 DeleteItem 436 DeletePicture 439 DeletePictures 439 DeleteStatePicture 442 DeleteStatePictures 442 EditLabel 460 ExpandAll 468 ExpandItem 469 FindItem 507 GetItem 585 InsertItem 678, 679 InsertItemFirst 680 InsertItemLast 682 InsertItemSort 685 SelectItem 1025 SetDropHighlight 1068 SetFirstVisible 1070 SetItem 1077 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 968 1273 索引 デー タ 式 と Any デー タ 型 27 パ イ プ ラ イ ン エ ラ ー 1149 デー タ ウ ィ ン ド ウ の前景レ イ ヤ 1092 デー タ ウ ィ ン ド ウ の背景レ イ ヤ 1092 デー タ ウ ィ ン ド ウ のボ ト ム レ イ ヤ 1092 デー タ ウ ィ ン ド ウ用の関数 CanUndo 358 CategoryCount 359 CategoryName 360 Clear 371 Clipboard 374 Copy 402 Cut 414 DataCount 417 FindCategory 498 FindNext 511 FindSeries 512 GetData 539 GetDataPieExplode 546 GetDataStyle 548 GetSeriesStyle 607 LineCount 737 ObjectAtPointer 805 Paste 864 PasteRTF 867 Position 880 ReplaceText 957 ResetDataColors 962 Scroll 1001 SelectedLength 1014 SelectedLine 1015 SelectedStart 1017 SelectedText 1019 SelectText 1028 SeriesCount 1038 SeriesName 1039 SetDataPieExplode 1060 SetDataStyle 1061 SetPosition 1092 SetSeriesStyle 1102 TextLine 1185 Undo 1223 デー タ 型 Blob 350 NULL に設定 1084 real 941 1274 ウ ィ ン ド ウ 809 演算子の影響 73 外部関数 61 概要 19 カ タ ロ グ 29 関数の引数の変換 104 決定 369 時刻 1186 シ ス テ ム オブジ ェ ク ト 27 数値 73 代入 75 貼 り 付け時の型の不一致 865 日付 423 標準 19 変換 73 未定義 24 文字列 1165 リ テ ラ ル 20, 21, 22, 24, 74 デー タ 型のチ ェ ッ ク と 変換用の関数 AscA 345 Char 364, 365 Date 420 DateTime 424 Dec 431 Double 452 Integer 692 IsDate 705 IsNull 710 IsNumber 711 IsTime 714 Long 747, 749 Real 941 String 1165 Time 1186 デー タ 型のマ ッ ピ ン グ、 EAServer 29 デー タ 系列、 グ ラ フ イ ン ポー ト 639, 642, 647 外観の レ ポー ト 607 カ ウ ン ト 1038 ク リ ッ ク 805 削除 440, 960 ス タ イ ルの設定 1102 挿入 689 PowerBuilder 索引 デー タ の挿入 667 デー タ ポ イ ン ト 417, 433, 539, 554, 795, 962 名前の取得 1039 番号の検索 512 への値の追加 327 への追加 338 デー タ 式 Any デー タ 型 27 デー タ の共有 418 デー タ パ イ プ ラ イ ン ペ イ ン タ 357, 1149 デー タ ベース カー ソ ル、 オープン 163 カー ソ ルが置かれた行の更新 170 間のデー タ 転送 1148 行の削除 157, 158 行の選択 165 行の挿入 162 行の フ ェ ッ チ 160 更新 167 再起動 969 修復 953 接続 154 接続解除 159 ト ラ ンザ ク シ ョ ン 1126 ハン ド ル 429 変更の コ ミ ッ ト 153 変更の取 り 消 し 164 デー タ ベース ス ト ア ド プ ロ シージ ャ 147 デー タ ポ イ ン ト 値 539, 554 色の リ セ ッ ト 962 外観の レ ポー ト 548 切 り 離 し の割合の レ ポー ト 546 ク リ ッ ク 805 削除 431 散布図への追加 329 ス タ イ ルの設定 1061 挿入 667 テーブル、 デー タ ベース、 デー タ ベース間の デー タ 転送 1148 テキ ス ト RichTextEdit での検索 497, 511 色の設定 974 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 印刷 896, 927 印刷時の行間 897 エデ ィ ッ ト コ ン ト ロ ールか ら の削除 371 ク リ ッ プボー ド の 374, 404, 414 現行行の取得 1184, 1185 選択 1014, 1019, 1027 置換 957 貼 り 付け 865 部分文字列の検索 877, 880 マ イ ク ロ ヘルプ 1083 メ タ 文字 779 メ ッ セージ ボ ッ ク ス 787 文字列か ら のデー タ の イ ン ポー ト 647 元に戻す 1223 リ ス ト ボ ッ ク ス項目 1013 リ ッ チテ キ ス ト を ASCII テ キ ス ト で保存 997 テ キ ス ト の削除 371 テ キ ス ト パ タ ーンのア ス タ リ ス ク 780 テ キ ス ト パ タ ーンの円記号 780 テ キ ス ト パ タ ーンのカ ッ コ 780 テ キ ス ト パ タ ーンのキ ャ レ ッ ト 779 テ キ ス ト パ タ ーンの ド ル記号 779 テ キ ス ト パ タ ーンの ピ リ オ ド 779 テ キ ス ト パ タ ーンのプ ラ ス記号 780 テキ ス ト フ ァ イル デー タ の イ ン ポー ト 642 保存 989 と 動的 SQL DynamicDescriptionArea 173 DynamicStagingArea 172 DynamicStagingArea の準備 173 NULL 値 176, 178 概要 171 書式 1 175 書式 2 176 書式 3 177 書式 4 179 書式の リ ス ト 171 注意点 173 1275 索引 文 172 文の順序 174 動的 SQL 用の関数 GetDynamicDate 560 GetDynamicDateTime 562 GetDynamicNumber 563 GetDynamicString 564 GetDynamicTime 565 SetDynamicParm 1069 動的呼び出 し 98 エ ラ ー 100 動的 ラ イ ブ ラ リ 341, 1079 動的 ラ イ ブ ラ リ (DLL) 1156 ド キ ュ メ ン ト ウ ィ ン ド ウ 828 閉じ る DDE チ ャ ネル 380 印刷ジ ョ ブ 904 ウ ィ ン ド ウ 377 ド ッ ト 表記 イ ン ス タ ン ス変数 34 概要 34 構造体 78 ト ピック サーバ アプ リ ケーシ ョ ンの開始 1157 サーバ アプ リ ケーシ ョ ンの終了 1164 ヘルプの呼出 し 1137 ド ラ ッ グ、 ツ リ ービ ュ ー項目 1068 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト 、 作成 129 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト 関数 DBHandle 429 SyntaxFromSQL 1176 ト リガ イ ベン ト 186 関数ま たは イ ベン ト 94 取 り 消し 編集 1223 ト レース用の関数 TraceBegin 1197 TraceClose 1199 TraceDisableActivity 1200 TraceEnableActivity 1202 TraceEnd 1204 TraceError 1205 TraceOpen 1206 TraceUser 1208 1276 ト レー ラ 、 オブジ ェ ク ト の移動 1092 ド ロ ッ プダ ウ ン ピ ク チ ャ リ ス ト ボ ッ ク ス用の関数 AddItem 332 AddPicture 336 Clear 371 Copy 402 Cut 414 DeletePicture 439 DeletePictures 439 FindItem 502 InsertItem 675 Paste 864 Position 880 ReplaceText 957 SelectedLength 1014 SelectedStart 1017 SelectedText 1019 SelectItem 1021 SelectText 1028 Text 1184 TotalItems 1194 ド ロ ッ プダ ウ ン リ ス ト ボ ッ ク ス コ ン ト ロ ール、 テ キ ス ト の削除 371 ド ロ ッ プダ ウ ン リ ス ト ボ ッ ク ス用の関数 AddItem 330 Clear 371 Copy 402 Cut 414 DeleteItem 434 DirList 444 DirSelect 446 DraggedObject 456 FindItem 502 InsertItem 673 Paste 864 Position 880 Post 886 ReplaceText 957 Reset 959 SelectedLength 1014 SelectedStart 1017 SelectedText 1019 SelectItem 1021 SelectText 1028 Text 1184 TotalItems 1194 PowerBuilder 索引 な 長さ Blob ま たは文字列 725, 727 OLEStream 728 行 739 選択 さ れたテ キ ス ト 1014 名前、 規則 5 名前を付けて保存 ダ イ ア ロ グボ ッ ク ス 991 ぬ 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン diagonal 1066, 1105 diamond 1066, 1106 horizontal 1066, 1106 solid 1066, 1106 square 1066, 1106 vertical 1066, 1106 ね ネ ス ト さ れた (入れ子状の) OLE オブジ ェ ク ト 818, 822 年、 概要 423 は 背景色、 グ ラ フ デー タ 系列 608, 1102 デー タ ポ イ ン ト 548, 1062 排他的な共有モー ド 817, 821 パ イ プ ラ イ ンの置換、 キ ャ ン セル 357 パ イ プ ラ イ ンの転送先デー タ ベース 1148 パ イ プ ラ イ ン用の関数 Cancel 357 Repair 953 Start 1148 ハ イ フ ン、 変数名での使用の禁止 5 ハ イ ラ イ ト 表示 ス ク ロ ール 1005 設定 1113 リ ス ト 内の項目 1021, 1159 配列 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 Char 型 と String 型 76 mailRecipient 759 値の代入 53, 55, 122 エ ラ ー 56 概要 47 可変長 51 コ ピー 122 初期化 55 ス ト リ ーム 940, 1235 デフ ォ ル ト 値 50 動的 SQL の入力パ ラ メ ー タ 1069 引数 と し て渡す 108 メ ッ セージ ID 761 例 345 配列の次元 1227 配列用の関数 LowerBound 757 UpperBound 1227 配列 リ ス ト 55 パス OLE ス ト レージ 811 フ ァ イ ルの保存 573 戻る 568 ラ イ ブ ラ リ フ ァ イ ル 729 パス ワ ー ド 767 パ タ ーン照合 779 バ ッ ク ク ォー ト 124 バ ッ チ アプ リ ケーシ ョ ン 888 幅 設定 965 デー タ 系列の線 1104 デー タ ポ イ ン ト の線 1063 文字列 929 ワ ー ク スペース 1232 パフ ォーマ ン ス Any デー タ 型 27 Yield 関数 1244 動的関数 と イ ベン ト 呼び出 し 99 パラ メ ータ DynamicDescriptionArea の設定 1069 コ マ ン ド ラ イ ン 388 シー ト を開 く 830 使っ て ウ ィ ン ド ウ を開 く 853 1277 索引 使っ てユーザ オブジ ェ ク ト を開 く 835, 836, 845, 847, 848 を使っ て タ ブ ページ を開 く 838 貼 り 付け 埋め込みま たは リ ン ク 869 ク リ ッ プボー ド 864, 866 ハン ド ル DDE 380, 825, 1157 mailSession オブジ ェ ク ト 764, 1036 検証 716 デー タ ベース 429 ひ 比較 数 691, 782, 793 引数 イ ベン ト 186 関数お よ び イ ベン ト 106 コ マ ン ド ラ イ ン 388 サーバ アプ リ ケーシ ョ ン 1157, 1164 ホ ッ ト リ ン ク 1156, 1163 ピ ク セル 871, 1224 ピ クチャ ツ リ ービ ュ ー項目 1078 ツ リ ービ ュ ー コ ン ト ロ ール 336, 340 リ ス ト のオーバーレ イ ピ ク チ ャ 1085 リ ス ト ビ ュ ー コ ン ト ロ ール 335, 339, 340 リ ス ト ボ ッ ク ス 336 リ ッ チテ キ ス ト 688 ピ ク チ ャ 用の関数 ClassName 369 Drag 454 Draw 457 Hide 630 Move 798 PointerX 873 PointerY 874 PostEvent 887 Print 894 SetFocus 1071 SetPicture 1088 SetPosition 1090 1278 SetRedraw 1097 Show 1135 TriggerEvent 1209 TypeOf 1220 ピ ク チ ャ リ ス ト ボ ッ ク ス用の関数 AddItem 332 AddPicture 336 DeletePicture 439 DeletePictures 439 FindItem 502 InsertItem 675 SelectedItem 1013 SelectItem 1021 SetTop 1124 State 1159 Text 1184 Top 1192 TotalItems 1194 TotalSelected 1195 ビ ジ ュ アル ユーザ オブジ ェ ク ト 80 日付 Blob 420 DateTime デー タ 型 420, 424 間隔の決定 428 現行の取得 1191 月の日付を取得 425 動的に取得 560, 562 変換 421 文字列のチ ェ ッ ク 705 曜日 426, 427 日付 と 時刻用の関数 Day 425 DayName 426 DayNumber 427 DaysAfter 428 Hour 631 Minute 793 Month 797 Now 803 RelativeDate 949 RelativeTime 950 Second 1007 SecondsAfter 1008 Today 1191 Year 1243 PowerBuilder 索引 ビ ッ ト マップ 印刷 901 ク リ ッ プボー ド か ら の検索 374 ピ ク チ ャ コ ン ト ロ ールへの配置 1088 リ ッ チテ キ ス ト 688 ビデオ モニ タ 566 描画オブジ ェ ク ト SetFocus 関数 1072 イ ベン ト のポ ス ト 888 色の設定 974 表記規則 xxiv 表示書式、 文字列への適用 1165 開いた ウ ィ ン ド ウ を上重ね表示 828 開いた ウ ィ ン ド ウ を重ねて表示 828 ふ フ ァ イル セキ ュ リ テ ィ と 共有違反 475, 477 デー タ の イ ン ポー ト 642 リ ン ク 741 フ ァ イ ルの保存レ ス ポ ン ス ウ ィ ン ド ウ 573 フ ァ イ ル名の フ ィ ル タ 568, 573 フ ァ イ ル用の関数 FileClose 470 FileDelete 472 FileExists 474 FileLength 475, 476 FileOpen 478 FileRead 483 FileReadEx 485 FileSeek 487, 489 FileWrite 490 FileWriteEx 492 GetFileOpenName 568 GetFileSaveName 573 フ ォーカ ス 行の長 さ 739 コ ン ト ロ ールの検索 578 設定 1071 選択 さ れたテ キ ス ト 1015, 1019, 1020, 1028 フ ォーム提示様式 1176 フ ォ ルダ 731 フォン ト PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 FontFamily カ タ ロ グ デー タ 型 906 FontPitch カ タ ロ グ デー タ 型 906 印刷時 897 印刷の定義 906 設定 922 デー タ ウ ィ ン ド ウ コ ン ト ロ ールの印刷時 と 印刷時の文字列の長 さ 929 名前 と サ イ ズ 907 符号な し Integer デー タ 型 24 符号な し Long デー タ 型 24 フ ッ タ 、 オブジ ェ ク ト の移動 1092 負の数 1139 部分文字列 検索 877, 880 置換 954, 958 抽出 789 プ リ ン タ の設定 920 プ リ ン タ の設定 ダ イ ア ロ グボ ッ ク ス 925 フ レーム ウ ィ ン ド ウ 875, 1233, 1234 プ ロ セ ス間の メ ッ セージ 762 プ ロ セ ッ サ 566 プ ロ パテ ィ GetFocus 関数 578 ウ ィ ン ド ウ 810, 813 取得 と 設定 521 幅 と 高 さ の設定 965 フ ォ ン ト 、 印刷 906 メ ッ セージ オブジ ェ ク ト 831 プ ロ パテ ィ 式 Any デー タ 型 27 プロ フ ァ イル フ ァ イル 書き 込み 1093 読み込み 932, 934 分散アプ リ ケーシ ョ ン ConnectToServer 関数 400 DisconnectServer 関数 451 SharedObjectDirectory 関数 1129 SharedObjectGet 関数 1130 SharedObjectRegister 関数 1133, 1134 905 へ 平方根 1147 1279 索引 ページ 印刷 915 サ イ ズ 897 枠の印刷 914, 916, 917 ページ用の関数 ScrollNextPage 1002 ScrollPriorPage 1004 ヘ ッ ダ区域、 オブジ ェ ク ト の移動 1092 ヘブ ラ イ 語の関数 IsAllHebrew 700 IsAnyHebrew 701 IsHebrew 706 IsHebrewAndNumbers 707 ヘルプ Winhelp の呼出 し 1137 マ イ ク ロ ヘルプの表示 1083 ヘルプ検索ウ ィ ン ド ウ 1137 変数 Blob か ら のデー タ の抽出 352 Blob へのデー タ の挿入 351 NULL か ど う かのチ ェ ッ ク 710 NULL に設定 9, 1084 OLEObject 396 SQL の参照 148 ア ク セ ス レベル 41 値の代入 39 イ ン ジ ケー タ 148 検索の順番 33 検証 717 初期値 と し ての式 40 初期値の宣言 38 宣言 31 宣言場所 31 デー タ 型 38 デフ ォ ル ト 値 38 名前 38 のデー タ 型の決定 369 ホ ス ト 148 リ テ ラ ルの代入 20, 21, 22, 24 ほ ポインタ 1280 形の設定 1089 上部か ら の距離 874 端か ら の距離の判別 873 フ ァ イ ル 487, 489, 490, 492 ポ イ ン ト 位置のオブジ ェ ク ト を戻す 読み書 き 1009 ポ イ ン タ arrow 1089 ポ イ ン タ beam 1089 ポ イ ン タ hourglass 1089 ポ イ ン ト サ イ ズ 906 ホッ ト リ ンク 概要 1059 確立 1156 終了 1163 デー タ の ソ ース の判別 545 発信元の判別 545 ポ ッ プア ッ プ ウ ィ ン ド ウ 移動 798 親の取得 863 開 く 811, 853 805 ま マ イ ク ロ ヘルプ 1083 マ イ ナ ス符号 68 スペース で囲まれた 18, 68 マウ ス テ キ ス ト の選択 404 ポ イ ン タ の形の設定 1089 マ ウ ス ポ イ ン タ cross 1089 マス ク 照合 779 設定 1081 長 さ の レ ポー ト 739 文字列への適用 1165 マルチ ラ イ ン エデ ィ ッ ト 用の関数 CanUndo 358 Clear 371 Copy 402 Cut 414 LineCount 737 LineLength 739 Paste 864 PowerBuilder 索引 か ら の文字列の抽出 1167, 1170 作成 129 シー ト を開 く パ ラ メ ー タ 830 種類の決定 1222 パ ラ メ ー タ のア ク セ ス 853 プ ロ パテ ィ 839, 841, 849, 851 戻 り 値を閉 じ る 384 メ ッ セージ ボ ッ ク ス の タ イ ト ル 787 メ ニ ュー Checked プ ロ パテ ィ 366 オブジ ェ ク ト の作成 129 シー ト 828 表示 875 変更 363 メ ニ ュ ー オブジ ェ ク ト 構文か ら 再構築 736 構文 と し てエ ク ス ポー ト 734 リ ス ト 731 メ ニ ュ ー用の関数 Check 366 ClassName 369 Disable 448 Enable 461 PopMenu 875 Show 1135 TriggerEvent 1209 TypeOf 1220 Uncheck 1222 メモリ 可変長配列 1227 配列への割 り 当て 51 メ ール セ ッ シ ョ ン後の解放 765 メ ンバー、 OLE 783, 784, 785 Position 880 ReplaceText 957 Scroll 1001 SelectedLength 1014 SelectedLine 1015 SelectedStart 1017 SelectedText 1019 SelectText 1028 TextLine 1185 Undo 1223 み 未読 メ ッ セージ 762 め 命名規約 38 メ イ ン ウ ィ ン ド ウ 798 メ ール用の関数 mailAddress 759 mailDeleteMessage 761 mailGetMessages 762 mailHandle 764 mailLogoff 765 mailLogon 766 mailReadMessage 768 mailRecipientDetails 770 mailResolveRecipient 772 mailReturnCode 766 mailSaveMessage 774 mailSend 777 メ タ 文字 779 メ ッ セージ ウ ィ ン ド ウへ送 る 1036 削除 761 ポ ス ト 機能 886 保存 774, 777 メ ッ セージ ID 配列 762 メ ッ セージ オブジ ェ ク ト PowerObjectParm プ ロ パテ ィ TriggerEvent 関数 1210 値指定 748 も 385 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 文字 ASCII 値に変換す る 344, 345 大文字での表示の変換 757, 1226 照合 779 選択 1027 選択 さ れた 1014, 1017 抽出 364, 365, 789 1281 索引 配列 940 マ ス ク 1081 右端の文字を返す 976, 977 文字配列 1235 文字列 Char 型配列 76 Char に変換 76 入れ子 22 印刷の幅の決定 929 大文字 1226 継続 17 小文字 757 ス ト リ ームへの書 き 込み 1235 抽出 364, 365, 789 デー タ の イ ン ポー ト 647 動的に取得 564 内容の検出 705, 711, 714 比較 70 左端か ら スペース を削除 724, 725 部分文字列の検索 877, 880 変換 345, 350, 421, 431, 452, 748, 750, 941 連結 71 文字列での特殊な ASCII 文字 7 文字列の解析 877, 880 文字列の区切 り 子 352 文字列の挿入 954, 958 文字列の比較 70 文字列用の関数 1165 Asc 344, 345 AscA 345 Char 364 CharA 365 Fill 495 FillW 495, 496 Left 722, 724 LeftC 724 LeftTrim 724, 725 LeftW 722, 724 Len 725, 727 Lower 757 Match 779 Mid 789 MidW 789 Pos 877 1282 PosW 880 Replace 954, 958 Right 976 RightC 977 RightTrim 977, 978 RightW 977 Space 1146 Trim 1214 Upper 1226 元のサ イ ズで開 き 重ねて表示 さ れ る ウ ィ ン ド ウ 831 元のデー タ ベース 1148 戻り値 TriggerEvent 関数 1210 イ ベン ト リ タ ーン コ ー ド 187 概要 109 先祖の イ ベン ト か ら の 115 メ ール セ ッ シ ョ ン 766 モニ タ 566 ゆ ユーザ ID 766 ユーザ イ ベン ト pbm_dwngraphcreate 1103 定義 さ れた 90 ユーザ オブジ ェ ク ト 概要 80 構造体の よ う に使用 さ れ る 84 構文か ら 再構築 736 構文 と し てエ ク ス ポー ト 734 作成 129 自動生成 さ れた 84 タ ブ ページ 834, 838 タ ブ ページ を閉 じ る 381 動的に作成 129 閉 じ る 383 パ イ プ ラ イ ン 1148 開 く 834, 835, 836, 843, 845, 847, 848 リ ス ト 731 ユーザ定義 イ ベン ト 185, 187 ユーザ名 772 ユニ フ ォーム デー タ 転送 542, 1057 PowerBuilder 索引 よ 用紙送 り 、 指定 8 余弦 407 余白 897, 920, 1087 読み出 し 専用の引数 予約語 11 106 ら ラ イブラ リ オブジ ェ ク ト の削除 731, 732 か ら のオブジ ェ ク ト の貼 り 付け と リ ン ク 866 探索パ ス 341, 588, 1079 ラ イ ブ ラ リ 用の関数 LibraryCreate 729 LibraryDelete 730 LibraryDirectory 731 LibraryDirectoryEx 732 LibraryExport 734 LibraryImport 736 ラ ジ ア ン (弧度) 870 ラ ベル提示様式 1176 乱数 取得 937 乱数ジ ェ ネ レー タ の初期化 937 り リスト 項目の削除 959 項目の追加 673 新規項目の追加 330 水平ス ク ロ ールバー 331 ソ ー ト さ れた 332 ラ イ ブ ラ リ のオブジ ェ ク ト 731, 732 リ ス ト ボ ッ ク ス のフ ァ イ ル 444 リ ス ト の水平ス ク ロ ールバー 331 リ ス ト ビ ュ ー コ ン ト ロ ール、 カ ラ ム 1075 リ ス ト ビ ュ ーの レ ポー ト ビ ュ ー 584 リ ス ト ビ ュ ー用の関数 AddColumn 326 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 AddItem 333, 334 AddLargePicture 335 AddSmallPicture 339 AddStatePicture 340 Arrange 342 DeleteColumn 432 DeleteColumns 433 DeleteItem 435 DeleteLargePicture 438 DeleteLargePictures 438 DeleteSmallPicture 441 DeleteSmallPictures 441 DeleteStatePicture 442 DeleteStatePictures 442 EditLabel 459 FindItem 503, 505 GetColumn 528 GetItem 584 GetOrigin 595 InsertColumn 666 InsertItem 676 SelectedIndex 1012 SetItem 1074 SetOverlayPicture 1085 Sort 1143 TotalItems 1194 TotalSelected 1195 リ ス ト ビ ュ ー 1193 リ ス ト ボ ッ ク ス用の関数 AddItem 330 DeleteItem 434 DirList 444 DirSelect 446 FindItem 502 InsertItem 673 Reset 959 SelectedIndex 1012 SelectedItem 1013 SelectItem 1021 SetState 1113 SetTop 1124 State 1159 Text 1184 Top 1192 TotalItems 1194 TotalSelected 1195 1283 索引 リ ッ チテ キ ス ト 印刷 900, 908 行間 1112 行の選択 1033 再検索 511 書式 596, 615, 618, 1087 書式 と と も に コ ピー 405, 867 すべて選択 1032 選択 1030 挿入ポ イ ン ト の決定 881 単語の選択 1034 デー タ 418, 656, 657, 658, 659, 660, 661 テ キ ス ト 設定 1115 テ キ ス ト の色 618, 1114 テ キ ス ト の検索 497 ド キ ュ メ ン ト のプ レ ビ ュ ー 712, 893 配置 520, 1044 フ ァ イ ルの保存 997 プ レ ビ ュ ー 712 ヘ ッ ダ と フ ッ タ の編集 1136 リ ッ チテ キ ス ト エデ ィ ッ ト 用の関数 CanUndo 358 Clear 371 Copy 402 CopyRTF 405 Cut 414 DataSource 418 Find 497 FindNext 511 GetAlignment 520 GetParagraphSetting 596 GetSpacing 615 GetTextColor 618 GetTextStyle 618 InputFieldChangeData 656 InputFieldCurrentName 657 InputFieldDeleteCurrent 658 InputFieldGetData 659 InputFieldInsert 660 InputFieldLocate 661 InsertPicture 688 IsPreview 712 LineCount 737 LineLength 739 1284 Paste 864 PasteRTF 867 Position 881 Preview 893 Print 900 PrintEx 908 ReplaceText 957 SaveDocument 997 Scroll 1001 ScrollNextPage 1002 ScrollNextRow 1003 ScrollPriorPage 1004 ScrollPriorRow 1005 ScrollToRow 1006 SelectedColumn 1011 SelectedLength 1014 SelectedLine 1015 SelectedPage 1017 SelectedStart 1017 SelectedText 1019 SelectText 1030 SelectTextAll 1032 SelectTextLine 1033 SelectTextWord 1034 SetAlignment 1044 SetParagraphSetting 1087 SetSpacing 1112 SetTextColor 1114 SetTextStyle 1115 ShowHeadFoot 1136 Undo 1223 リ ッ チテ キ ス ト の入力フ ィ ール ド 656, 657, 658, 659, 660, 661 リ テラル 指定 20, 21, 22, 24 デー タ 型 74 リ モー ト の DDE アプ リ ケーシ ョ ン 968 リ モー ト プ ロ シージ ャ コ ール 定義 さ れた 91 リ モー ト プ ロ シージ ャ コ ール、 宣言 64 リ ンク 確立 741 ク リ ッ プボー ド の内容 866, 869 PowerBuilder 索引 る 累乗演算子 68 累乗の指数 468 ループ 概要 133 繰 り 返 し 136 現行の繰 り 返 し を ス キ ッ プ 外に移る 135 中断 1244 127 れ レ イ ア ウ ト 905 レ ジ ス ト リ 667 レ スポン ス ウ ィ ン ド ウ 移動 798 閉 じ る 384 連結演算子 71 ろ ロ ーカル変数 32 論理演算子 70 わ ワ ー ク スペース 画面ま での距離 1233, 1234 高 さ の取得 1231 幅の取得 1232 枠 印刷 914, 916, 917 距離の判別 873, 874 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 1285 1286 PowerBuilder