Comments
Description
Transcript
PowerScript ボリューム 2
PowerScript® リファレンス ボリューム 2 PowerBuilder® 11.0 DOCUMENT ID: DC37782-01-1100-02 LAST REVISED: May 2007 Copyright © 1991-2008 by Sybase, Inc. All rights reserved. 本書は Sybase ソフトウェアの付属マニュアルであり、新しいマニュアルまたはテクニカル ノートで特に示されないかぎ り、後続のリリースにも付属します。このマニュアルの内容は、予告なく変更されることがありますが、Sybase,Inc. およ びその関連会社では内容の変更に関して一切の責任を負いません。このマニュアルに記載されているソフトウェアはライ センス契約に基づいて提供されるものであり、無断で使用することはできません。 予定したソフトウェアのリリース日にのみアップグレードを提供します。本書に記載されている内容は、Sybase, Inc. およ びその関連会社の書面による事前許可を得ずに、電子的、機械的、手作業、光学的、またはその他のいかなる手段によっ ても複製、転載、翻訳することを禁じます。 Sybase の商標は Sybase の商標ページ のサイト http://www.sybase.com/detail?id=1011207 に記載されています。記載の Sybase およ びマークは Sybase, Inc の商標です。® はアメリカ合衆国における登録商標を示します。 Java およびすべての Java ベースのマークは、米国および他国における Sun Microsystems, Inc. の商標または登録商標です。 Unicode および Unicode のロゴは Unicode, Inc. の登録商標です。 本書で記載されている上記以外の社名および製品名は、各社の商標または登録商標の場合があります。 本書に記載されている内容は、将来予告なしに変更することがあります。また、本ソフトウェアおよび説明書を使用した ことによる損害、または第三者からのいかなる請求についても、サイベース株式会社、その親会社である米国法人 Sybase, Inc. またはその関連会社は、一切の責任を負わないものとします。 目次 本書について ................................................................................................................................ xix 第 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 ................................................................................... Byte .............................................................................................. Cancel .......................................................................................... CancelSync .................................................................................. CanUndo ...................................................................................... CategoryCount ............................................................................. CategoryName ............................................................................. PowerScript リファレンス ボリューム 2 343 344 344 345 347 348 349 352 357 358 359 361 362 363 364 365 366 367 368 369 370 370 372 373 375 376 379 380 381 382 383 384 iii 目次 Ceiling .......................................................................................... ChangeDirectory .......................................................................... 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............................................................................................... iv 385 385 386 387 388 388 390 390 391 394 396 396 399 403 404 406 407 410 411 412 414 416 418 420 423 425 427 429 430 430 431 436 437 439 440 442 446 448 449 450 451 452 452 453 PowerBuilder 目次 DeleteCategory ............................................................................ DeleteColumn .............................................................................. 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 ................................................................................ PowerScript リファレンス ボリューム 2 454 454 455 455 456 459 460 460 461 461 462 463 463 464 464 465 466 467 469 470 471 472 473 474 475 476 478 479 480 482 483 484 485 489 489 490 491 491 492 493 493 495 495 497 v 目次 FileMove....................................................................................... FileOpen....................................................................................... 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........................................................ GetByte ........................................................................................ GetByteArray................................................................................ GetCertificateLabel ...................................................................... GetChildrenList ............................................................................ GetColumn ................................................................................... GetCommandDDE ....................................................................... GetCommandDDEOrigin.............................................................. GetCommandString ..................................................................... GetCompanyName ...................................................................... GetContextKeywords ................................................................... GetContextService ....................................................................... GetCredentialAttribute.................................................................. GetCurrentDirectory ..................................................................... GetData........................................................................................ vi 498 499 503 506 508 509 511 513 515 516 517 517 519 520 521 522 529 531 532 533 535 535 536 537 537 539 540 540 541 542 543 544 545 547 548 550 551 552 553 554 555 557 560 560 PowerBuilder 目次 GetDataDDE ................................................................................ GetDataDDEOrigin....................................................................... GetDataPieExplode...................................................................... GetDataStyle................................................................................ GetDataValue............................................................................... GetDateLimits .............................................................................. GetDbmlsyncPath ........................................................................ GetDisplayRange ......................................................................... GetDynamicDate .......................................................................... GetDynamicDateTime .................................................................. GetDynamicDecimal .................................................................... GetDynamicNumber..................................................................... GetDynamicString ........................................................................ GetDynamicTime ......................................................................... GetEnvironment ........................................................................... GetFileOpenName ....................................................................... GetFileSaveName ........................................................................ GetFirstSheet ............................................................................... GetFixesVersion........................................................................... GetFocus...................................................................................... GetFolder ..................................................................................... GetGlobalProperty ....................................................................... GetHostObject.............................................................................. GetItem ........................................................................................ GetItemAtPointer.......................................................................... GetLastReturn.............................................................................. GetLibraryList............................................................................... GetMajorVersion .......................................................................... GetMessage................................................................................. GetMinorVersion .......................................................................... GetName...................................................................................... GetNativePointer.......................................................................... GetNextSheet............................................................................... GetObjectRevisionFromRegistry.................................................. GetOrigin...................................................................................... GetParagraphSetting ................................................................... GetParent..................................................................................... GetPin .......................................................................................... GetRecordSet .............................................................................. GetRemote................................................................................... GetSelectedDate.......................................................................... GetSelectedRange....................................................................... GetSeriesStyle ............................................................................. GetShortName ............................................................................. PowerScript リファレンス ボリューム 2 565 566 568 569 575 577 578 579 581 583 584 585 586 587 588 589 595 597 598 599 600 601 602 604 607 608 609 609 611 612 613 614 615 616 617 618 618 620 622 623 627 628 629 635 vii 目次 GetSpacing .................................................................................. GetStatus ..................................................................................... GetSyncRegistryProperties .......................................................... GetText ........................................................................................ GetTextColor................................................................................ GetTextStyle ................................................................................ GetToday ..................................................................................... GetToolbar ................................................................................... GetToolbarPos ............................................................................. GetTransactionName ................................................................... GetURL ........................................................................................ GetValue ...................................................................................... 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.................................................................................. viii 636 637 639 640 641 641 642 643 645 647 649 650 651 652 654 655 656 657 659 659 660 662 663 666 670 673 674 678 679 680 681 682 683 684 686 687 688 690 692 693 700 703 705 708 PowerBuilder 目次 InsertPicture ................................................................................. InsertSeries .................................................................................. Int ................................................................................................. Integer .......................................................................................... InternetData ................................................................................. IntHigh .......................................................................................... IntLow........................................................................................... InvokePBFunction ........................................................................ _Is_A ............................................................................................ IsAlive........................................................................................... IsAllArabic .................................................................................... 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................................................................................ PowerScript リファレンス ボリューム 2 709 710 711 712 713 714 715 715 717 718 719 720 721 721 722 723 723 725 726 727 728 729 730 732 733 733 735 736 737 738 741 743 743 744 745 745 745 747 747 748 749 749 750 751 ix 目次 LibraryDirectory............................................................................ LibraryDirectoryEx........................................................................ LibraryExport................................................................................ LibraryImport ................................................................................ LineCount..................................................................................... LineLength ................................................................................... LineList......................................................................................... LinkTo .......................................................................................... LoadInk ........................................................................................ LoadPicture .................................................................................. Log ............................................................................................... 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 ........................................................................................... x 752 754 756 758 759 761 762 763 764 765 766 768 769 771 773 778 779 780 782 783 784 785 786 788 791 792 794 797 798 802 802 803 804 805 806 809 811 812 812 812 813 813 814 816 PowerBuilder 目次 Move ............................................................................................ MoveTab ...................................................................................... _Narrow........................................................................................ NextActivity .................................................................................. Now .............................................................................................. ObjectAtPointer ............................................................................ Object_To_String ......................................................................... OffsetPos ..................................................................................... Open ............................................................................................ OpenChannel ............................................................................... OpenSheet ................................................................................... 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..................................................................................... PowerScript リファレンス ボリューム 2 817 819 820 821 822 823 826 827 827 844 846 849 853 857 862 867 872 877 880 881 882 883 885 886 887 888 889 890 891 892 893 894 895 897 898 898 904 905 908 911 912 919 920 921 xi 目次 PrintDataWindow ......................................................................... PrintDefineFont ............................................................................ PrintEx.......................................................................................... PrintGetPrinter ............................................................................. PrintGetPrinters............................................................................ PrintLine ....................................................................................... PrintOpen ..................................................................................... PrintOval ...................................................................................... PrintPage ..................................................................................... PrintRect ...................................................................................... PrintRoundRect............................................................................ 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..................................................................................... xii 922 923 925 926 927 928 929 931 932 933 934 936 937 939 940 940 941 942 943 945 946 946 947 949 951 952 953 955 957 957 958 960 961 963 964 964 965 966 967 967 969 970 971 973 PowerBuilder 目次 Reset ............................................................................................ 973 ResetArgElements ....................................................................... 976 ResetDataColors .......................................................................... 977 ResetInk ....................................................................................... 978 ResetPicture................................................................................. 979 Resize .......................................................................................... 980 Resolve_Initial_References ......................................................... 981 RespondRemote .......................................................................... 983 Restart.......................................................................................... 984 ResumeTransaction ..................................................................... 985 Reverse........................................................................................ 986 RevertToSelf ................................................................................ 987 RGB ............................................................................................. 988 Right ............................................................................................. 990 RightA .......................................................................................... 991 RightC .......................................................................................... 991 RightW ......................................................................................... 991 RightTrim...................................................................................... 992 RightTrimW .................................................................................. 992 RollbackOnly ................................................................................ 993 RollbackTransaction..................................................................... 994 Round........................................................................................... 996 RoutineList ................................................................................... 997 Run............................................................................................... 998 Save ........................................................................................... 1000 SaveAs....................................................................................... 1004 SaveDocument........................................................................... 1012 SaveInk ...................................................................................... 1014 Scroll .......................................................................................... 1016 ScrollNextPage .......................................................................... 1017 ScrollNextRow............................................................................ 1018 ScrollPriorPage .......................................................................... 1019 ScrollPriorRow ........................................................................... 1020 ScrollToRow ............................................................................... 1022 Second ....................................................................................... 1023 SecondsAfter.............................................................................. 1023 Seek ........................................................................................... 1024 SelectedColumn ......................................................................... 1027 SelectedIndex ............................................................................ 1028 SelectedItem .............................................................................. 1029 SelectedLength .......................................................................... 1030 SelectedLine .............................................................................. 1031 SelectedPage............................................................................. 1033 SelectedStart.............................................................................. 1034 PowerScript リファレンス ボリューム 2 xiii 目次 SelectedText .............................................................................. SelectionRange.......................................................................... SelectItem .................................................................................. SelectObject............................................................................... SelectTab ................................................................................... SelectText .................................................................................. SelectTextAll .............................................................................. SelectTextLine ........................................................................... SelectTextWord.......................................................................... Send........................................................................................... SeriesCount ............................................................................... SeriesName ............................................................................... SetAbort ..................................................................................... SetAlignment.............................................................................. SetArgElement ........................................................................... SetAutomationLocale ................................................................. SetAutomationPointer ................................................................ SetAutomationTimeout............................................................... SetBoldDate ............................................................................... SetByte....................................................................................... SetColumn ................................................................................. SetComplete .............................................................................. SetData ...................................................................................... SetDataDDE............................................................................... SetDataPieExplode .................................................................... SetDataStyle .............................................................................. SetDateLimits............................................................................. SetDropHighlight ........................................................................ SetDynamicParm ....................................................................... SetFirstVisible ............................................................................ SetFocus .................................................................................... SetGlobalProperty...................................................................... SetItem....................................................................................... SetLevelPictures ........................................................................ SetLibraryList ............................................................................. SetMask ..................................................................................... SetMessage ............................................................................... SetMicroHelp.............................................................................. SetNewMobiLinkPassword ........................................................ SetNull........................................................................................ SetOverlayPicture ...................................................................... SetParagraphSetting.................................................................. SetParm ..................................................................................... SetPicture................................................................................... xiv 1035 1037 1038 1042 1042 1044 1048 1049 1050 1052 1055 1056 1057 1060 1061 1062 1064 1065 1066 1068 1069 1070 1073 1074 1076 1077 1083 1084 1085 1086 1087 1088 1089 1093 1095 1096 1098 1099 1100 1101 1101 1103 1104 1106 PowerBuilder 目次 SetPointer .................................................................................. SetPosition ................................................................................. SetProfileString .......................................................................... SetRange ................................................................................... SetRecordSet............................................................................. SetRedraw ................................................................................. SetRemote ................................................................................. SetResultSet .............................................................................. SetSeriesStyle............................................................................ SetSelectedDate ........................................................................ SetSelectedRange ..................................................................... SetSpacing................................................................................. SetState ..................................................................................... SetSyncRegistryProperties ........................................................ SetTextColor .............................................................................. SetTextStyle............................................................................... SetTimeout................................................................................. SetToday.................................................................................... SetToolbar.................................................................................. SetToolbarPos ........................................................................... SetTop........................................................................................ SetTraceFileName ..................................................................... SetTransPool ............................................................................. SetValue..................................................................................... SharedObjectDirectory ............................................................... SharedObjectGet ....................................................................... SharedObjectRegister ................................................................ SharedObjectUnregister............................................................. Show .......................................................................................... ShowHeadFoot .......................................................................... ShowHelp................................................................................... ShowPopupHelp ........................................................................ Sign ............................................................................................ SignalError ................................................................................. Sin .............................................................................................. Sleep .......................................................................................... Sort............................................................................................. SortAll......................................................................................... Space ......................................................................................... Sqrt............................................................................................. Start............................................................................................ StartHotLink ............................................................................... StartServerDDE ......................................................................... State ........................................................................................... PowerScript リファレンス ボリューム 2 1107 1108 1111 1112 1113 1115 1116 1118 1119 1127 1128 1129 1130 1131 1132 1132 1134 1135 1136 1138 1142 1143 1144 1144 1146 1146 1150 1151 1151 1152 1154 1155 1156 1157 1158 1159 1159 1161 1162 1163 1163 1171 1173 1174 xv 目次 StepIt.......................................................................................... Stop............................................................................................ StopHotLink................................................................................ StopServerDDE.......................................................................... String.......................................................................................... String_To_Object ....................................................................... SuspendTransaction .................................................................. Synchronize ............................................................................... SyntaxFromSQL......................................................................... SystemRoutine........................................................................... TabPostEvent............................................................................. TabTriggerEvent ........................................................................ Tan ............................................................................................. Text ............................................................................................ TextLine ..................................................................................... Time ........................................................................................... Timer .......................................................................................... 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 ......................................................................................... xvi 1176 1176 1178 1179 1179 1186 1189 1190 1192 1196 1197 1198 1199 1199 1200 1201 1204 1205 1206 1207 1208 1209 1209 1210 1211 1213 1214 1216 1218 1219 1220 1222 1223 1225 1227 1228 1229 1230 1233 1235 1236 1237 1238 1239 PowerBuilder 目次 UpperBound ............................................................................... Which ......................................................................................... WordCap .................................................................................... WorkSpaceHeight ...................................................................... WorkSpaceWidth ....................................................................... WorkSpaceX .............................................................................. WorkSpaceY .............................................................................. Write ........................................................................................... XMLParseFile............................................................................. XMLParseString ......................................................................... Year............................................................................................ Yield ........................................................................................... 1240 1242 1243 1244 1245 1246 1247 1247 1249 1252 1255 1256 索引............................................................................................................................................ 1261 PowerScript リファレンス ボリューム 2 xvii 目次 xviii PowerBuilder 本書について 対象とする読者 このマニュアルは、PowerBuilder® を使ってクライアント サーバ アプリケーション、多階層アプリケーション、または Web アプリ ケーションの開発に携わっているプログラマを対象にしていま す。 目的 このマニュアルは、PowerScript® 言語の変数、式、ステートメン ト、イベント、および関数など、その構文と使い方について解説 しています。 2 つのボリューム このマニュアルは、次の 2 つのボリュームに分かれています。 ボリューム ボリューム 1 ボリューム 2 関連マニュアル そのほかの参照情報 内容 第 1 章~第 9 章 第 10 章(PowerScript の関数) PowerBuilder のすべてのマニュアルの一覧については、 PowerBuilder の『入門』マニュアルを参照してください。 製品に関するそのほかの詳細情報については、PowerBuilder DVD、 アシスト Web サイト、および Sybase 製品マニュアル Web サイト (英語)を参照してください。 • PowerBuilder DVD には、製品マニュアルが収められています。 製品マニュアルは、PDF 形式で提供しています。PDF ファイ ルを読んだり、印刷したりするには、Adobe Acrobat Reader が 必要です。Adobe Acrobat Reader は、Adobe Web サイトから無 料でダウンロードすることができます。 • アシスト Web サイトには、標準の Web ブラウザでアクセスす ることができるオンライン版のマニュアルがあります。この Web サイトでは、PDF および HTML 形式でマニュアルを見る ことができます。 オンライン版のマニュアルには、アシストの PowerBuilder のサ イト http://www.ashisuto.co.jp/prod/powerbuilder/ にある「技術情報」 からアクセスできます。 • Sybase 製品マニュアル Web サイト(英語)は、標準の Web ブ ラウザからアクセスでき、Sybase の製品マニュアルのほか、 EBF/ メンテナンス、技術文書などへのリンクも含んでいます。 PowerScript リファレンス ボリューム 2 xix Sybase 製品マニュアル Web サイトには、Product Manuals のサイト http://www.sybase.com/support/manuals/ からアクセスできます。 表記規則 このマニュアルは、以下の表記規則を使用します。 表記例 Retrieve と Update 意味 説明文で使用されている場合、左記のフォント は次のいずれかを表します。 • コマンド名、関数名、メソッド名 • true、false、null などのキーワード • Integer 型、Char 型などのデータ型 • emp_id、f_name などのデータベース カラム 名 変数(variable)または ファイル名(file name) • dw_emp、w_main などのユーザ定義オブ ジェクト 説明文と構文の説明で使用された場合、斜体は 次のいずれかを表します。 • myCounter などの変数名 • 入力テキストで pblname.pbd など入力が必要 な部分 [ファイル|上書き保存] dw_1.Update() • ファイルとパス名 メニュー名やメニュー項目は、単純なテキスト で記述されています。縦棒(|)は、メニュー の選択順序を示します。たとえば、 [ファイル| 上書き保存]は、 「[ファイル]メニューから[上 書き保存]を選択する」ことを示します。 このフォントは、以下のいずれかを表します。 • ダイアログボックスやコマンド ラインに入 力する情報 • サンプル スクリプトの一部 • サンプル出力の一部 サポートについて xx 「サポート ハンドブック」を参照してください。 PowerBuilder 第 1 0 章 PowerScript 関数 この章について この章では、PowerScript 関数の構文、説明、および例を示します。 内容 以下に、各関数をアルファベット順にリストします。 関連項目 データウィンドウまたはデータストアに適用される関数について は、 『データウィンドウ リファレンス』マニュアルも参照してくだ さい。データウィンドウにのみ適用され、ほかの PowerBuilder コ ントロールに適用されないメソッドは、 『データウィンドウ リファ レンス』マニュアルにしか記載されていません。 PowerScript リファレンス ボリューム 2 343 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) 344 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 345 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!) 346 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 347 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 単位系 で指定します。 348 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 349 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 関数 を使用する場合に、項目を指定せずにデータを追加すると、項目のな いデータ ポイントになります。これは、"" という名前の項目とは別の ものになります。 350 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 351 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 リストボックス コントロールとドロップダウン リス トボックス コントロールに項目を追加する 機能 リストボックスの値のリストに、新しい項目を追加します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール 構文 listboxname.AddItem ( item ) 352 PowerBuilder 第 10 章 引数 listboxname item PowerScript 関数 説明 項目を追加するリストボックス コントロールまたはド ロップダウン リストボックス コントロールの名前を指定 します。 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 353 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 を返します。 解説 ピクチャ インデックスを指定しなかった場合、新しく追加される項目 にピクチャが割り当てられません。 存在しないピクチャ インデックスを指定した場合でも、ピクチャ イン デックスの番号は、ピクチャとともに格納されます。ピクチャをピク チャ配列に追加すると、項目が対応するピクチャを示すようになりま す。 354 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 355 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 356 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 357 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 関数の戻り値は、コントロールに関連付けられているピク チャの数を報告します。 358 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 に指定されたグラフに追加します。 359 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("") 関連項目 360 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 361 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 プロパティ を指 定すると、ピクチャはそのプロパティで指定されたサイズになります。 362 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 363 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 364 説明 アイコンを整列させるリストビュー コントロールの名前 を指定します。 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 365 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 ... 関連項目 366 AscA PowerBuilder 第 10 章 PowerScript 関数 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 // 最初の整数を文字に変換します。 hold_str = CharA(iarr[i]) PowerScript リファレンス ボリューム 2 367 ASin // 整数の上位バイトを文字に変換した後で // 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) TRY 368 PowerBuilder 第 10 章 PowerScript 関数 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 369 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)を使用していることが必要です。 370 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 371 Blob Blob 文字列またはバイト配列を Blob 型に変換します。 目的 文字列を Blob 型に変換する 文字列またはバイト配列を Blob 型に変換する 構文 1 文字列を Blob 型に変換する 機能 文字列を Blob 型に変換します。 構文 Blob ( text {, encoding} ) 引数 text encoding 使用する構文 構文 1 構文 2 説明 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!) 関連項目 372 BlobEdit BlobMid String PowerBuilder 第 10 章 PowerScript 関数 構文 2 文字列またはバイト配列を Blob 型に変換する 機能 文字列またはバイト配列を Blob データ型に変換します。 構文 Blob ( array[ ] ) 引数 説明 stringorbytear Any 変数。blob データ型に変換する文字列またはバイト配列 ray を含みます 。 戻り値 Blob 型。Blob 型に変換した文字列またはバイト配列を返します。 例 次の例は、バイト配列を Blob 型で保存し、Blob 型の内容を別のバイト 配列にコピーします。 Blob lblb_1 Any a byte lbyte_array[], lbyte_array2[] // 配列を初期化します。 lbyte_array[] = {1,10,100,200,255} a = lbyte_array lblb_1 = Blob(a) lbyte_array2[] = GetByteArray(lblb_1) 関連項目 GetByteArray BlobEdit 機能 PowerBuilder のすべてのデータ型のデータを Blob 型の変数に挿入しま す。 構文 BlobEdit ( blobvariable, n, data {, encoding} ) 引数 blobvariable n data PowerScript リファレンス ボリューム 2 説明 初期化した Blob 型の変数を指定します。指定された変数 に PowerBuilder の標準データ型のデータを挿入します。 データを挿入する blobvariable 内の位置(1 ~ 4,294,967,295 の数値)を指定します。 blobvariable に挿入する PowerBuilder の標準データ型の データを指定します。 373 BlobEdit 引数 encoding 説明 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 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 ... 374 PowerBuilder 第 10 章 PowerScript 関数 次の例は、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 (オプション) 戻り値 説明 Blob 型のデータを指定します。 取得する先頭バイトの位置(1 ~ 4,294,967,295)を指定し ます。 取得するバイト数(1 ~ 4,294,967,295)を指定します。 Blob 型。data の n の位置から length で指定されたバイト数までを返し ます。n に指定された値が data のバイト数よりも大きい場合、空の Blob 型データを返します。length と n を合わせた値が Blob 型の変数が含む バイト数より大きくなる場合、残りのバイトを返します。このとき、 返す Blob 型のデータは指定の長さより短くなります。引数のいずれか の値が null の場合、null を返します。 終端文字を含める String 型の変数には、1 バイトの 0 終端文字が含まれています。取り出 したデータ数を計算する場合には、終端文字も含めてください。 例 次の例は、最初の呼び出しで Blob 型の変数 datablob の 5 の位置から 10 バイトを取り出して data_1 に格納します。次の呼び出しで、datablob の 5 の位置から最後までの datablob のバイトを取り出して data_2 に格 納します。 blob data_1, data_2, datablob PowerScript リファレンス ボリューム 2 375 BuildModel ... // 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 BuildModel 機能 SetTraceFileName 関数で指定したトレース ファイルに基づいて、パ フォーマンス解析またはトレース ツリー モデルを構築します。オプ ションの引数を指定すると、構築の進捗状況の監視や構築への割り込 みを行うことができます。 BuildModel 関数を呼び出す前に、SetTraceFileName 関数を使用して、モ デル化するトレース ファイルを指定する必要があります。 対象 376 Profiling オブジェクトと TraceTree オブジェクト PowerBuilder 第 10 章 構文 instancename.BuildModel ( { progressobject, eventname, triggerpercent } ) 引数 instancename progressobject (オプション) eventname (オプション) triggerpercent (オプション) 戻り値 解説 PowerScript 関数 説明 Profiling オブジェクトまたは TraceTree オブジェクトのイ ンスタンス名を指定します。 処理済みの操作の数を表す PowerObject 型を指定します。 String 型の値。定義するイベントの名前を指定します。 Long 型の値。eventname で指定したイベントを起動する前 に BuildModel 関数が処理する必要のある操作の割合を指 定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • FileNotSetError! - TraceFileName が設定されていません。 • ModelExistsError! - モデルはすでに構築されています。 • EnterpriseOnlyFeature! - この関数は、PowerBuilder Enterprise 版で のみサポートされています。 • EventNotFoundError! - 渡された progressobject に対するイベント が見つからないので、モデルを構築できません。 • EventWrongPrototypeError! - イベントは見つかりましたが、適切 なプロトタイプがないのでモデルを構築できません。 • SourcePBLError! - ソース ライブラリが見つからないので、モデル を構築できません。 BuildModel 関 数 は、ト レ ー ス フ ァ イ ル か ら 生 デ ー タ を 取 得 し て、 PowerScript 言語の関数を実行できるオブジェクトにそれをマップしま す。構築の進捗状況を記録しないでトレース ファイルのモデルを構築 する場合は、オプションの引数を指定しないで BuildModel を呼び出し ます。モデルの作成中に進捗情報を受け取る場合、または完了までに 時間がかかりすぎる BuildModel に割り込む場合は、オプションの引数 を指定して BuildModel を呼び出します。 渡された progressobject に対するイベント eventname は、triggerpercent 引数で指定した割合の操作の処理が終わると起動します。 triggerpercent の値が 0 の場合は、eventname は操作ごとに起動します。 triggerpercent の値が 100 を超える場合は、eventname は起動しません。 このイベントは次の構文を使用して定義します。 eventname ( currentactivity, totalnumberofactivities ) PowerScript リファレンス ボリューム 2 377 BuildModel 引数 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() 次の例は、パフォーマンス解析モデルを作成し、そのモデルの構築中 に 進 捗 情 報 を 提 供 し ま す。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) 378 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 SetTraceFileName DestroyModel Byte 機能 数値を Byte データ型に変換したり、blob に格納された Byte 型の値を取得した りします。 構文 Byte ( stringorblob ) 引数 stringorblob 説明 Byte データ型として返したい String 型または数値データ型を 指定します。あるいは、先頭の値の Byte 値を返したい Blob データ型を指定します。stringorblob 変数は、string、integer、 uint、long、longlong、または blob を参照する限り Any デー タ型を持つことでもできます。 戻り値 Byte 型。正常に終了した場合は、stringorblob 変数の値を Byte データ型 として返します。stringorblob 変数が有効な PowerScript の数値ではな い 場 合、ま た は 互 換 性 の な い デ ー タ 型 の 場 合 は、0 を 返 し ま す。 stringorblob が null の場合は、Byte は null を返します。 解説 変換する数値が Byte データ型の上限(>255)を超える場合は、Byte メ ソッドは stringorblob 引数で渡す数値とその数値より小さい 256 の最 小倍数との差を返します。 PowerScript リファレンス ボリューム 2 379 Cancel stringorblob 引数で blob を渡す場合は、先頭文字の値だけが byte 値に 変換されます。 (blob 引数を使用する場合は「オーバーフロー」するこ とはありません。)blob 内の別の位置にある文字の byte 値を取得する には、GetByte メソッドを使用します。 例 次の例は、シングルライン エディット コントロールに入力された文字 列を byte 値に変換します。 Byte ly_byte ly_byte = Byte(sle_1.text) シングルライン エディットに入力されたテキストが 4 の場合は、 ly_byte の byte 値は 4 です。 入力されたテキストが 257 の場合は、ly_byte の値は 1 です。256 や「ABC12」などのテキストの場合は、ly_byte の 値は 0 です。 次の例は、シングルライン エディット コントロールに入力した先頭文 字の ASCII 値を返します。 Byte lb_byte Blob myBlob myBlob = Blob(sle_1.text) lb_byte = Byte(myBlob) 関連項目 GetByte SetByte Cancel 機能 パイプライン オブジェクトの実行を停止します。 対象 パイプライン オブジェクト 構文 pipelineobject.Cancel ( ) 引数 pipelineobject 説明 実行するパイプライン オブジェクトを含むパイプライン ユーザ オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 Cancel 関数は、Start 関数または Repair 関数の実行中にだけ使用できま す。 380 PowerBuilder 第 10 章 PowerScript 関数 Cancel 関数を使用してパイプラインを停止すると、パイプラインが最 大エラー件数に達した場合と同じように、データがコミットされます。 パイプラインが最大エラー件数に達した場合のパイプラインの動作形 態は、開発者がデータ パイプライン ペインタで定義します。詳細につ いては、PowerBuilder の『ユーザーズ ガイド』マニュアルを参照して ください。 例 次の例は、コマンドボタンの Clicked イベントに対するスクリプトに記 述されたステートメントです。パイプライン オブジェクト i_pipe の実 行を停止します。 i_pipe.Cancel() 関連項目 Repair Start CancelSync 機能 同期処理をキャンセルし、処理中に蓄積された変更をロールバックし ます。 対象 MLSynchronization、MLSync、ULSync コントロール 構文 SyncObject.CancelSync ( ) 引数 syncObject 戻り値 例 説明 停止したい同期処理を開始した同期オブジェクト名を指定 します。 Integer 型。正常に終了した場合は 1、失敗した場合は -1 を返します。 ウィザードによって生成される同期の進行状態ウィンドウにある [キャンセル]ボタンの Clicked イベント内の以下のコードは、同期を キャンセルします。 long rc rc = i_uosync.cancelsync() IF rc = 1 THEN mle_status.text += ' 同期処理はキャンセルされました。 ~r~n' ELSE mle_status.text += ' キャンセル要求は失敗しました。~r~n' END IF 関連項目 Synchronize PowerScript リファレンス ボリューム 2 381 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 関連項目 382 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 383 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) 関連項目 384 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 メソッド ChangeDirectory 機能 現行ディレクトリを変更します。 構文 ChangeDirectory ( directoryname ) 引数 directoryname 戻り値 説明 String 型の値。現行ディレクトリに設定するディレクトリ の名前を指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 PowerScript リファレンス ボリューム 2 385 ChangeMenu 例 次の例では、現行ディレクトリを、現行ディレクトリの親ディレクト リに変更し、新しい現行ディレクトリをシングルライン エディット コ ントロールに表示します。 ChangeDirectory( ".." ) sle_1.text = GetCurrentDirectory( ) 関連項目 CreateDirectory GetCurrentDirectory ChangeMenu 機能 ウィンドウと関連付けられているメニューを変更します。ウィンドウ が MDI フレームの場合、開いているシートのリストを現在アクティブ なメニューに追加します。 対象 ウィンドウ オブジェクト 構文 windowname.ChangeMenu ( menuname {, position } ) 引数 windowname menuname position (MDI フレーム ウィンドウの み) 説明 メニューを変更するウィンドウの名前を指定します。 関連付けるメニューの名前を指定します。 開いているシートの名前を追加するメニューバーのメ ニュー項目の番号を指定します。メニューバーのメニュー 項目は、左端から順番に 1 から番号が付けられます。デ フォルトの設定(0)では、メニューバーの最後から 2 番 目のメニュー項目(または、使用可能なメニュー項目が 1 つしかない場合は最後のメニュー項目)に、開いている シートのリストが表示されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合は、null を返します。 通常、戻り値は使用されません。 解説 MDI フレーム ウィンドウのメニューを変更している場合、アクティブ なシートがメニューを持っているときには、新しいメニューは表示さ れません。シートが独自のメニューを持っている場合には、フレーム の非表示メニューと同じように、開いているシートのリストをシート のメニュー上に表示します。 386 PowerBuilder 第 10 章 PowerScript 関数 MDI フレーム ウィンドウで、異なるメニューおよびツールバーのスタ イル(トラディショナルまたはコンテンポラリ)を持つメニューに変 える場合、メニューのスタイルは変わりますが、ツールバーのスタイ ルは変わりません。 例 次のステートメントは、ウィンドウ オブジェクト w_Employee のトッ プ レベルのメニューを m_Emp1 に変更します。 w_Employee.ChangeMenu(m_Emp1) 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 関連項目 Asc CharA PowerScript リファレンス ボリューム 2 387 CharA 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 メソッド Check 機能 ドロップダウン メニューまたはカスケード メニューの項目の先頭に チェックマークを表示し、その項目の Checked プロパティを true にし ます。 対象 メニュー オブジェクト 388 PowerBuilder 第 10 章 構文 PowerScript 関数 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() 例 次のステートメントは、メニュー m_Appl のドロップダウン メニュー m_View にあるメニュー項目 m_Grid の先頭に、チェックマークを表示 します。 m_Appl.m_View.m_Grid.Check() 関連項目 Uncheck PowerScript リファレンス ボリューム 2 389 ChooseColor ChooseColor 機能 標準の色選択 ダイアログボックスを表示します。 構文 ChooseColor ( color {, customcolors [ ] } ) 引数 color 説明 Long 型の値。ダイアログボックスで選択された色を表す 参照によって渡されます。 customcolors (オプション) 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 ClassList 機能 パフォーマンス解析モデルに含まれているクラスのリストを返します。 対象 Profiling オブジェクト 構文 instancename.ClassList ( list ) 引数 instancename list 390 説明 Profiling オブジェクトのインスタンス名を指定します。 ProfileClass データ型の可変長の配列変数を指定します。 ClassList 関数は、モデルに含まれている各クラスの ProfileClass オブジェクトをこの配列変数に保存します。 この引数は、参照渡しされます。 PowerBuilder 第 10 章 戻り値 PowerScript 関数 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 関連項目 BuildModel ClassName オブジェクトのクラス、または変数のデータ型を返します。 関数が返す内容 オブジェクトのクラス 変数のクラス(データ型) PowerScript リファレンス ボリューム 2 使用する構文 構文 1 構文 2 391 ClassName 構文 1 オブジェクトのクラスを返す 機能 指定されたオブジェクトのクラス(名前)を返します。 対象 すべてのコントロール 構文 controlname.Classname ( ) 引数 controlname 説明 コントロールの名前を指定します。スタイルを設定するダ イアログボックスで、このコントロールに割り当てられて いる名前(コントロールのクラス)を返します。 戻り値 String 型。controlname に指定されているコントロールのクラス(コン トロールに割り当てられている名前)を返します。エラーが発生した 場合、空の文字列("")を返します。また、controlname に指定されて いるコントロールの名前が null の場合、null を返します。 解説 クラスとは、オブジェクトの名前のことです。オブジェクトの名前は、 ペインタでオブジェクトを保存するときに付けます。通常、クラスと オブジェクトは同じものとして表されます。これは、PowerBuilder が オブジェクトのクラスと同じ名前を使用して変数を宣言するからで す。ただし、1 つのオブジェクトに対して複数のインスタンスを宣言 している場合、オブジェクトのクラスとオブジェクトの変数の名前は 異なります。 先祖オブジェクトが子孫オブジェクトのインスタンスになっている場 合、ClassName 関数を使用して子孫オブジェクトの名前を確認できま す。 TypeOf 関数は、オブジェクトの組み込みオブジェクト データ型を返し ます。このデータ型は、オブジェクトのカタログ データ型の値です。 たとえば、Window! や CheckBox! などです。ClassName 関数は、先祖と 子孫の階層構造を表すオブジェクトのクラスを返します。 例 次のステートメントは、ドラッグされたコントロール Source のクラス を返します。 DragObject Source string which_class Source = DraggedObject() which_class = Source.ClassName() 次のステートメントは、コントロール配列内のオブジェクトのクラス を返し、オブジェクトのクラスを配列 the_class に格納します。 string the_class[] windowobject the_object[] integer i 392 PowerBuilder 第 10 章 PowerScript 関数 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 説明 変数の名前を指定します。指定された変数の名前(変数の データ型)を返します。 戻り値 String 型。variable に指定された変数のデータ型(名前)を返します。 variable に指定された変数がカタログ データ型の場合、またはエラー が発生した場合には、空の文字列("")を返します。また、variable に 指定された変数の名前が null の場合、null を返します。 解説 variable に指定された変数がカタログ データ型の場合、ClassName 関数 はデータ型を判断できません。この場合、空の文字列("")を返します。 例 gd_double がグローバルな Double 型の変数の場合、変数 varname に double を設定します。 string varname varname = ClassName(gd_double) PowerScript リファレンス ボリューム 2 393 Clear Clear 機能 指定されたコントロールから、選択したテキストや OLE オブジェクト を削除します。削除したテキストやオブジェクトは、クリップボード には格納されません。 対象 データウィンドウ、エディットマスク、インクエディット、マルチラ イン エディット、シングルライン エディット、リッチテキスト エ ディット、ドロップダウン リストボックス、ドロップダウン ピクチャ リストボックス、OLE の各コントロール、OLEStorage オブジェクト 構文 objectname.Clear ( ) 引数 objectname 説明 以下のいずれかを指定します。 • 選択されたテキストを消去するデータウィンドウ コン トロール、エディットマスク、マルチライン エディッ ト、シングルライン エディット、リッチテキスト エ ディット、ドロップダウン リストボックス、ドロップ ダウン ピクチャ リストボックスのいずれかのコント ロールの名前 • OLE オブジェクトを解放する OLE コントロールの名前、 またはストレージ オブジェクト変数(OLEStorage 型)の 名前 objectname にドロップダウン リストボックス コントロー ルまたはドロップダウン ピクチャ リストボックス コント ロールの名前を指定した場合には、AllowEdit プロパティ を true にしておく必要があります。 戻り値 データウィンドウ、インクエディット、およびリストボックスの場合 は Integer 型、ほかのコントロールの場合は Long 型 編集可能なコントロールに対しては、objectname に指定されたコント ロールから消去した文字数を返します。テキストが選択されていな かった場合、文字を消去せずに 0 を返します。エラーが発生した場合、 -1 を返します。 OLE コントロールやストレージ変数に対しては、正常に終了した場合 は 0 を返し、エラーが発生した場合は -9 を返します。 objectname に指定されたコントロールの名前が null の場合、null を返し ます。 解説 394 削除するテキストを選択するには、マウスやキーボードを使用します。 スクリプト内で SelectText 関数を呼び出す方法もあります。 PowerBuilder 第 10 章 PowerScript 関数 削除するテキストをクリップボードに格納しておく場合には、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() 次の例は、OLEStorage オブジェクト変数 olest_stuff のオブジェクトを 消去します。また、olest_stuff 内でオブジェクトを開いているすべての OLE コントロールを解放します。 integer result result = olest_stuff.Clear() 関連項目 Close Cut Paste ReplaceText SelectText PowerScript リファレンス ボリューム 2 395 ClearBoldDates ClearBoldDates 機能 SetBoldDate 関数で設定された日付の太字設定を解除します。 対象 月表示カレンダ コントロール 構文 controlname.ClearBoldDates ( ) 引数 controlname 説明 日付の太字設定を解除する月表示カレンダ コントロール の名前を指定します。 戻り値 Integer 型。成功した場合は 0 を返し、失敗した場合は -1 を返します。 解説 休日などの選択された日付を太字で表示するには、SetBoldDate 関数を 使用します。ClearBoldDates 関数は、この太字の設定をすべて解除しま す。個別の日付の太字設定を解除するには、SetBoldDate 関数の onoff パ ラメータに false を指定します。 例 次の例は、コントロール monthCalVacations 内の太字設定をすべて解除 します。 integer li_return li_return = monthCalVacation.ClearBoldDates() 関連項目 SetBoldDate Clipboard クリップボードの内容を取り出したり、置き換えたりします。 目的 クリップボードの内容を取り出す、または指定された テキストに置き換える クリップボードの内容をグラフのビットマップ画像 に置き換える 使用する構文 構文 1 構文 2 構文 1 クリップボードの内容をテキストに置き換える 機能 クリップボードの内容を取り出すか、またはテキストに置き換えます。 構文 Clipboard ( { string } ) 396 PowerBuilder 第 10 章 引数 string (オプション) 戻り値 PowerScript 関数 説明 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) 構文 2(および『データウィンドウ リファレンス』マニュアル)に記 載されているデータウィンドウ バージョンの Clipboard 関数は、グラフ にしか適用されません。 例 次のステートメントは、クリップボードの内容を変数 ls_CoName に格 納します。 string ls_CoName ls_CoName = Clipboard() 次のステートメントは、クリップボードの内容を Heading にコピーし た後、クリップボードの内容を "Employee Data" という文字列に置き換 えます。 string Heading Heading = Clipboard("Employee Data") PowerScript リファレンス ボリューム 2 397 Clipboard 次のステートメントは、マルチライン エディット コントロール mle_terms で選択したテキストをクリップボードの内容と置き換えます。 mle_terms.ReplaceText(Clipboard()) 次のステートメントは、スタティック テキスト コントロール st_welcome の内容とクリップボードの内容を入れ替えます。 st_welcome.Text = Clipboard(st_welcome.Text) 関連項目 Clear Copy Cut Paste Replace ReplaceText 構文 2 クリップボードの内容をグラフのビットマップに置 き換える 機能 クリップボードの内容をグラフのビットマップ画像に置き換えます。 クリップボードにコピーされた画像は、ほかのアプリケーションに貼 り付けることができます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ オブジェクト、 データウィンドウ上およびデータストア上のグラフ 構文 name.Clipboard ( { graphobject } ) 引数 name graphobject (データウィンド ウ コントロールお よびデータストア オブジェクトの場 合のみ)(オプ ション) 戻り値 398 説明 クリップボードにコピーするグラフの名前、あるいは クリップボードにコピーするグラフを含むデータウィ ンドウ コントロールまたはデータストア オブジェク トの名前を指定します。 String 型の値。クリップボードにコピーするデータウィ ンドウ オブジェクト上のグラフ コントロールの名前 を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合は、null を返します。 PowerBuilder 第 10 章 例 PowerScript 関数 次のステートメントは、グラフ gr_products_data をクリップボードにコ ピーします。 gr_products_data.Clipboard() 次のステートメントは、データウィンドウ コントロール dw_emp_data 上のグラフ gr_employees をクリップボードにコピーします。 dw_emp_data.Clipboard("gr_employees") Close ウィンドウ、OLE ストレージ、OLE ストリーム、トレース ファイルの いずれかを閉じます。 閉じる対象 ウィンドウ オブジェクト OLEStorage オブジェクト変数。オブジェクトを保存 し、オブジェクトとストレージ ファイル、またはオ ブジェクトとストレージ オブジェクトとの間の接続 を解除します。 指定された OLEStream オブジェクト変数に関連付け られたストリーム トレース ファイル 使用する構文 構文 1 構文 2 構文 3 構文 4 構文 1 ウィンドウを閉じる 機能 ウィンドウを閉じ、ウィンドウとウィンドウ上のすべてのコントロー ルが使用している記憶領域を解放します。 対象 ウィンドウ オブジェクト 構文 Close ( windowname ) 引数 windowname 説明 閉じるウィンドウの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。windowname に指定されたウィンドウの名前が null の場 合、null を返します。通常、戻り値は使用されません。 解説 この構文は、ウィンドウを閉じ、ウィンドウとウィンドウ上のすべての コントロールが使用している記憶領域を解放する場合に使用します。 PowerScript リファレンス ボリューム 2 399 Close Close 関数が呼び出されると、PowerBuilder はウィンドウをビューから 削除し、ウィンドウを閉じます。CloseQuery イベントと Close イベン トにスクリプトが記述されている場合、そのスクリプトを実行します。 最後に、Close 関数を呼び出したスクリプトの残りのステートメントを 実行します。無限ループが発生するため、CloseQuery または Close イ ベントから Close 関数を呼び出さないでください。 ウィンドウを閉じた後には、そのプロパティ、インスタンス変数、コ ントロールをスクリプトから参照できなくなります。残りのスクリプ ト内に、閉じたウィンドウ、閉じたウィンドウのプロパティ、インス タンス変数を参照するステートメントがある場合には、実行時にエ ラーが発生します。 ウィンドウのイベントあるいはウィンドウ コントロールのイベント で Close 関数を呼び出してウィンドウを閉じる場合に、Close 関数がイ ベント スクリプトの最後のステートメントにないと、PowerBuilder は クラッシュします。イベント スクリプトの最後のステートメントある いはイベント スクリプトからポストされるユーザ定義イベントで Close 関数を呼び出すことでこの問題を避けることができます。たとえ ば、w_1 という名前のウィンドウの Open イベント スクリプトの以下 のコードはクラッシュを引き起こします。 // w_1 Open イベント スクリプト close(this) open(w_2) // クラッシュを引き起こす 次のコードはクラッシュを引き起こしません。 // w_1 ue_postopen イベント スクリプト close(this) // w_1 Open イベント スクリプト open(w_2) this.Post Event ue_postopen() ウィンドウが閉じないようにする方法 CloseQuery イベントのスクリプト内で、1 のリターン コードでウィン ドウが閉じないようにすることができます。RETURN ステートメント を使用します。 例 次のステートメントは、ウィンドウ w_employee を閉じた後、ウィンド ウ w_departments を開きます。 Close(w_employee) 400 PowerBuilder 第 10 章 PowerScript 関数 Open(w_departments) 次の例は、Close 関数を呼び出した後、CloseQuery イベントに対するス クリプトに記述されたステートメントです。アプリケーションを終了 してもよいかどうかを確認するメッセージを表示し、エンド ユーザの 応答が No の場合にウィンドウが閉じないようにします。 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 PowerScript リファレンス ボリューム 2 401 Close result = olest_stuff.Close() 関連項目 Open Save SaveAs 構文 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 戻り値 402 説明 TraceFile オブジェクトのインスタンス名を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 PowerBuilder 第 10 章 PowerScript 関数 • Success! - 成功しました。 • FileNotOpenError! - トレースファイルが開かれていません。 解説 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 サーバ アプリケーションに対する チャネルを閉じます。 PowerScript リファレンス ボリューム 2 403 CloseTab 通常、チャネルのハンドルを指定して 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 関数は、タブ ページとして開いているユーザ オブジェクトを 閉じ、そのオブジェクトとオブジェクトのコントロールが使用してい たメモリを解放します。 404 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 OpenTab PowerScript リファレンス ボリューム 2 405 CloseUserObject 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) 406 PowerBuilder 第 10 章 PowerScript 関数 次の例は、ユーザ オブジェクトを閉じるメニュー項目を選択した場合 の処理を、メニュー項目のスクリプトから抜粋したものです。選択し たメニュー項目と関連するユーザ オブジェクト 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 関数を使用すると、ウィ ンドウを閉じ、そのウィンドウやウィンドウ内のコントロールが使用 していたメモリを解放して値を返すことができます。 PowerScript リファレンス ボリューム 2 407 CloseWithReturn Close 関数と同じように、CloseWithReturn 関数も画面からウィンドウを消 去してから閉じます。次に、CloseQuery イベントと Close イベントに対 するスクリプトがある場合、そのスクリプトを実行します。無限ループ が発生するため、 これらのイベントから Close 関数または CloseWithReturn 関数を呼び出さないでください。 この場合、イベントのスクリプトを実行する前に、returnvalue に指定 されたデータ型の値が CloseWithReturn 関数によってメッセージ オブ ジェクト内に格納され、CloseWithReturn 関数を呼び出したスクリプト 内の残りのステートメントを実行します。 ウィンドウを閉じた後には、そのプロパティ、インスタンス変数、コ ントロールをスクリプトから参照できなくなります。残りのスクリプ ト内に、閉じたウィンドウ、閉じたウィンドウのプロパティ、インス タンス変数を参照するステートメントがある場合には、実行時にエ ラーが発生します。 PowerBuilder では、オブジェクトのデータ型に応じたメッセージ オブ ジェクトのプロパティに、returnvalue に指定されたデータ型の値が格 納されます。CloseWithReturn 関数を呼び出したスクリプト内で、戻り 値のデータ型に応じたメッセージ オブジェクトのプロパティを指定 して最新の戻り値にアクセスできます。 表 0-1: 戻り値を格納する Message オブジェクトのプロパティ 戻り値のデータ型 数値型 PowerObject 型(たとえば、構造体) String 型 Message オブジェクトのプロパティ Message.DoubleParm Message.PowerObjectParm Message.StringParm 構造体として複数の値を返す方法 複数の値を返すには、その値を格納するユーザ定義の構造体を定義し、 レスポンス ウィンドウを開いたスクリプト内のメッセージ オブジェ クトの PowerObjectParm プロパティにアクセスします。構造体は値で 渡されるので、元の値がなくなった場合でもそのデータにアクセスす ることができます。 コントロールを参照する方法 ユーザ オブジェクトおよびコントロールには、値ではなく参照が渡さ れ ま す。ウ ィ ン ド ウ を 閉 じ た 後 は コ ン ト ロ ー ル が な い の で、 ClodeWithReturn 関数を使用してコントロールに参照を返すことはでき ません。そのかわりに、そのコントロールのプロパティの値を返します。 408 PowerBuilder 第 10 章 PowerScript 関数 ウィンドウが閉じないようにする方法 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 関連項目 Close OpenSheetWithParm OpenUserObjectWithParm OpenWithParm PowerScript リファレンス ボリューム 2 409 CollapseItem 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) 関連項目 410 ExpandItem ExpandAll FindItem PowerBuilder 第 10 章 PowerScript 関数 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 PowerScript リファレンス ボリューム 2 411 CommitTransaction // 引数を取得して、文字列の前後から // スペースを取り除きます。 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 412 説明 CORBACurrent サービス インスタンスへの参照を指 定します。 Boolean 型。呼び出し元のスレッドと関連付けられてい るトランザクションに対するヒューリスティックな判 断を通知すべきかどうかを指定します。 PowerBuilder 第 10 章 戻り値 PowerScript 関数 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( ELSE PowerScript リファレンス ボリューム 2 413 ConnectToNewObject 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 クラス名が見つかりません。 -3 オブジェクトを作成できません。 414 PowerBuilder 第 10 章 PowerScript 関数 -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 MessageBox("COM オブジェクトへの接続に失敗しました ", & PowerScript リファレンス ボリューム 2 415 ConnectToNewRemoteObject " エラー :" + 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 クラス名が見つかりません。 416 PowerBuilder 第 10 章 PowerScript 関数 -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") 関連項目 ConnectToObject ConnectToRemoteObject PowerScript リファレンス ボリューム 2 417 ConnectToObject 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 を返します。 418 PowerBuilder 第 10 章 解説 PowerScript 関数 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") PowerScript リファレンス ボリューム 2 419 ConnectToRemoteObject 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 420 説明 OLE オブジェクトに接続する OLEObject 変数の名前を指 定します。OLE コントロールの Object プロパティである OLEObject を指定することはできません。 String 型の値。COM サーバが置かれているリモート ホス トの名前を指定します。 PowerBuilder 第 10 章 引数 filename classname (オプション) 戻り値 PowerScript 関数 説明 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 には使用で きません。 解説 OLEObject 変数は、OLE オートメーションに使用されます。つまり、 PowerBuilder のアプリケーションはサーバ アプリケーションに対して プログラムどおりに OLE オブジェクトを処理するように指示します。 ConnectToRemoteObject 関数は、リモートによる起動をサポートする サーバだけで使用できます。 PowerScript リファレンス ボリューム 2 421 ConnectToRemoteObject 以下の情報は、リモート ホスト上での 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 422 PowerBuilder 第 10 章 PowerScript 関数 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 を使用してサーバ アプリケーションに接続します。 PowerScript リファレンス ボリューム 2 423 ConnectToServer // グローバル変数: // connection myconnect long ll_rc myconnect = create connection myconnect.driver = "jaguar" myconnect.location = "Jagserver1:2000" 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 424 PowerBuilder 第 10 章 PowerScript 関数 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 オブジェクトをクリップボードにコ ピーします。コピー元のテキストやオブジェクトは変更されません。 対象 データウィンドウ、インクエディット、マルチライン エディット、シ ングルライン エディット、リッチテキスト エディット、ドロップダウ ン リストボックス、ドロップダウン ピクチャ リストボックス、OLE の各コントロール、OLE DWObject( データウィンドウ コントロール上 のデータウィンドウ オブジェクト上にあるオブジェクト) 構文 objectref.Copy ( ) PowerScript リファレンス ボリューム 2 425 Copy 引数 objectref 説明 以下のいずれかを指定します。 • クリップボードにコピーするテキストを含むデータ ウィンドウ、エディットマスク、インクエディット、マ ルチライン エディット、シングルライン エディット、 リッチテキスト エディット、ドロップダウン リスト ボックス、ドロップダウン ピクチャ リストボックスの いずれかのコントロールの名前 • クリップボードにコピーするオブジェクトを含むデー タウィンドウ コントロール上の OLE DWObject の名前、 または OLE コントロールの名前 DWObject の名前は、次のような完全な名前で指定します。 dwcontrol.Object.dwobjectname objectref にデータウィンドウ コントロールの名前を指定 した場合、テキストは現行の行とカラムのエディット コン トロールからコピーされます。objectref にドロップダウン リストボックス コントロールまたはドロップダウン ピク チャ リストボックス コントロールの名前を指定した場 合、AllowEdit プロパティを true にしておく必要がありま す。 戻り値 データウィンドウ、インクエディット、およびリストボックスの場合 は Integer 型、ほかのコントロールの場合は Long 型 リッチテキスト エディット コントロールの場合、Long 型を返します。 そのほかのエディット コントロールと OLE オブジェクトの場合は、 Integer 型を返します。 エディット コントロールの場合、クリップボードにコピーされた文字 数を返します。objectref に指定されたコントロールでテキストが選択 されていない場合、文字をコピーせずに 0 を返します。エラーが発生 した場合、-1 を返します。 OLE コントロールと OLE DWObject の場合、正常に終了したときは 0 を返します。エラーが発生したときは、次のいずれかの値を返します。 -1 -2 -9 コントロールが空です。 正しくコピーできませんでした。 そのほかのエラーです。 objectref に指定されたコントロールの名前が null の場合、null を返しま す。 426 PowerBuilder 第 10 章 解説 PowerScript 関数 コピーするテキストを選択するには、マウスやキーボードを使用しま す。スクリプト内で 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() 関連項目 Clear Clipboard Cut Paste ReplaceText SelectText CopyRTF 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウで選択されているテキスト、ピクチャ、入 力フィールドを、リッチテキスト形式の文字列として返します。ビッ トマップと入力フィールドは、文字列に含まれます。 対象 データウィンドウ コントロール、データストア オブジェクト、リッチ テキスト エディット コントロール 構文 rtename.CopyRTF ( { selected {, band } } ) PowerScript リファレンス ボリューム 2 427 CopyRTF 引数 rtename selected (オプション) 説明 データウィンドウ コントロール、データストア オブジェ クト、またはリッチテキスト エディット コントロールの 名前を指定します。指定されたコントロールまたはオブ ジェクトで選択されている内容を、リッチテキスト形式で コピーします。データウィンドウ コントロールまたはデー タストア オブジェクトのデータウィンドウ オブジェクト は、リッチテキスト データウィンドウでなければなりま せん。 Boolean 型の値。コピーする内容(選択されているテキス トだけをコピーするかどうか)を指定します。値は以下の とおりです。 • TRUE - (デフォルト)選択されているテキストのみ band (オプション) • FALSE - 区域のすべての内容 Band カタログ データ型の値。テキストのコピー元の区域 を指定します。値は以下のとおりです。 • Detail! - 詳細区域 • Header! - ヘッダ区域 • Footer! - フッタ区域 特に指定しない限り、挿入ポイントがある区域のテキスト が選択されます。 戻り値 String 型。選択されているテキストを文字列として返します。 次の場合、空の文字列("")を返します。 解説 • 何も選択されていない場合に、selected に true が指定されていると き • エラーが発生した場合 CopyRTF 関数は、クリップボードを必要としません。コピーされた情 報は、文字列に格納されます。標準のクリップボードの機能(コピーと 切り取り)を使用すると、クリップボードには書式設定されていないテ キストが格納されます。 RTF 形式のテキストを別のリッチテキスト エディット コントロール に貼り付けるには、PasteRTF 関数を使用します。 RTF 形式の詳細については、『アプリケーション テクニック』マニュ アルの「リッチテキストの作成方法」を参照してください。 例 428 次のステートメントは、リッチテキスト エディット コントロール rte_message で選択されているテキストを返し、ls_richtext に格納しま す。 PowerBuilder 第 10 章 PowerScript 関数 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) 関連項目 PasteRTF Cos 機能 角度の余弦を計算します。 構文 Cos ( n ) 引数 n 説明 余弦を計算する角度(ラジアン)を指定します。 戻り値 Double 型。n の余弦を返します。n が null の場合、null を返します。 例 次のステートメントは、1 を返します。 Cos(0) 次のステートメントは、0.540302 を返します。 Cos(1) 次のステートメントは、-1 を返します。 PowerScript リファレンス ボリューム 2 429 Cpu Cos(Pi(1)) 関連項目 ACos Pi Sin Tan 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Cos メソッド Cpu 機能 アプリケーションが起動されてからの CPU の経過時間を調べます。 構文 Cpu ( ) 戻り値 Long 型。PowerBuilder アプリケーションが起動されてからの CPU 経過 時間をミリ秒単位で返します。 例 次のステートメントは、ステートメント グループが実行されてからの CPU 経過時間を調べます。 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 430 説明 String 型の値。作成するディレクトリの名前を指定します。 PowerBuilder 第 10 章 戻り値 PowerScript 関数 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 例 次の例では、現行パスに新しいサブディレクトリを作成し、その新し いサブディレクトリを現行ディレクトリに設定します。 string ls_path="my targets" integer li_filenum CreateDirectory ( ls_path ) li_filenum = ChangeDirectory( ls_path ) 関連項目 GetCurrentDirectory RemoveDirectory CreateInstance 中間層サーバ上で動作するリモート オブジェクトのインスタンスを 作成します。 リモート オブジェクトのインスタンスを作成する場所 PowerBuilder クライアントから EAServer または COM+ コンポーネントの中から 使用する構文 構文 1 構文 2 構文 1 リモート サーバ上のオブジェクトのインスタンスを 作成する 機能 EAServer 上で動作するコンポーネントのインスタンスを作成します。 この関数は、PowerBuilder クライアントからリモート オブジェクトを インスタンス化するのに使用します。さらに、EAServer 上で動作する コンポーネントの中で、ほかのサーバ上で動作する別のコンポーネン トをインスタンス化するためにも使用できます。 対象 接続オブジェクト 構文 connection.CreateInstance (objectvariable {, classname } ) 引数 connection objectvariable PowerScript リファレンス ボリューム 2 説明 接続を確立するのに使用する接続オブジェクトの名前を 指定します。 データ型が、作成されるオブジェクトのクラスか、その クラスの先祖と同じクラスである、グローバル変数、イ ンスタンス変数あるいはローカル変数 431 CreateInstance 引数 classname (オプション) 戻り値 Long 型。正常に終了した場合は 0 を返します。エラーが発生した場合 は、以下のいずれかの値を返します。 50 52 53 54 55 56 57 62 解説 説明 String 型の値。作成するクラスのデータ型の名前を指定し ます。オプションで、クラス名の前にスラッシュで区切っ てパッケージ名を指定することもできます(たとえば、 「mypkg/mycomponent」など) 。 分散サービス エラーです。 分散通信エラーです。 リクエスト先のサーバがアクティブではありません。 サーバがリクエストを受け付けません。 リクエストが異常終了しました。 リクエストへの応答が不完全です。 接続されていません。 サーバがビジーです。 CreateInstance 関数を呼び出す前に、サーバに接続しなければなりませ ん。そのためには、ConnectToServer 関数を呼び出す必要があります。 CreateInstance 関数を使用すると、リモート サーバ上にオブジェクトを 作成することができます。オブジェクトをローカルに作成する場合は、 CREATE 文を使用する必要があります。 クライアント アプリケーションにリモート オブジェクトのクラス定 義を配布する場合、クライアント上の定義は、サーバ アプリケーショ ンに配布されたリモート オブジェクト定義と同じ名前になります。こ のような方法で宣言された変数は、ローカル オブジェクトまたはリ モート オブジェクトに対する参照を保持することができます。した がって、実行時にアプリケーションの要件に応じて、CREATE 文を使用 してオブジェクトをローカルにインスタンス化することもできるし、 CreateInstance 関数を使用してリモートでインスタンス化することもで きます。どちらの場合でも、オブジェクトを作成すると、その物理的 な位置はオブジェクトを使用するクライアント側スクリプトに対して 透過的になります。 例 以下のステートメントは、テストの結果に応じてローカルまたはリ モートでオブジェクトを作成します。これらのステートメントでは、 リモート オブジェクトの作成には CreateInstance 関数を使用し、ローカ ル オブジェクトの作成には CREATE 文を使用しています。 boolean bWantRemote connection myconnect uo_customer iuo_customer 432 PowerBuilder 第 10 章 PowerScript 関数 // リモート オブジェクトとローカル オブジェクトの // どちらを作成するかを決定します。 ... // 次に、オブジェクトを作成します。 IF bWantRemote THEN // リモート オブジェクトを作成します。 IF myconnect.CreateInstance(iuo_customer) <> 0 THEN // エラー処理 ... END IF ELSE // ローカル オブジェクトを作成します。 iuo_customer = CREATE uo_customer END IF オブジェクトの関数を呼び出します。 関数呼び出しは、オブジェクトがサーバとクライアントの どちらで作成された場合でも同じです。 isValid(iou_customer) THEN iuo_customer.GetCustomerData() END IF // // // IF 関連項目 ConnectToServer 構文 2 現行のサーバ上のコンポーネントのインスタンスを 作成する 機能 現行の EAServer または COM+ サーバ上で動作するコンポーネントの インスタンスを作成します。この関数は、EAServer または COM+ 上で 動作するコンポーネント インスタンスの中から呼び出されます。 対象 TransactionServer オブジェクト 構文 transactionserver.CreateInstance (objectvariable {, classname } ) 引数 transactionserver objectvariable PowerScript リファレンス ボリューム 2 説明 TransactionServer サービス インスタンスへの参照を指 定します。 データ型が、作成されるオブジェクトのクラスか、そ のクラスの先祖と同じクラスである、グローバル変 数、インスタンス変数あるいはローカル変数 433 CreateInstance 引数 classname (オプション) 説明 String 型の値。作成するクラスのデータ型の名前を指 定します。 EAServer コンポーネントの場合は、オプションで、 クラス名の前にスラッシュで区切ってパッケージ名 を指定することもできます(たとえば、 「mypackage/mycomponent」など)。 COM+ コンポーネントの場合は、オプションで、クラ ス名の前にピリオドを付けて ProgID を指定すること もできます(たとえば、 「PowerBuilder.HTMLDataWindow」など)。 戻り値 Long 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの値を返します。 50 52 53 54 55 56 57 62 解説 分散サービス エラーです。 分散通信エラーです。 リクエスト先のサーバがアクティブではありません。 サーバがリクエストを受け付けません。 リクエストが異常終了しました。 リクエストへの応答が不完全です。 接続されていません。 サーバがビジーです。 TransactionServer コンテキスト オブジェクトに対して CreateInstance 関 数を実行すると、現行のサーバ上で動作するほかの EAServer または COM+ コンポーネントにアクセスすることができます。作成されたイ ンスタンスは、現行オブジェクトのトランザクションおよびセキュリ ティ属性をすべて継承します。 EAServer 上では、TransactionServer の CreateInstance メソッドによって EAServer のネーム サービスが呼び出され、プロキシが作成されます。 リモート コンポーネントのプロキシは、ローカルで実行されているイ ンスタンスではなく、ネーム サービスから返される場合があります。 ローカルのインスタンスを使用するには、コンポーネント名として “local:package/component” を指定します。package はパッケージ名、 component はコンポーネント名です。コンポーネントが同じサーバにイ ンストールされていない場合、呼び出しはエラーになります。 TransactionServer コンテキスト オブジェクトに対して CreateInstance 関 数を実行する場合、この関数を呼び出したコンポーネントに適用され るものと同じユーザおよびパスワードの情報を使用します。 トランザクション コンテキスト サービスを使用する前に、 TransactionServer 型の変数を宣言し、GetContextService 関数を呼び出し て、このサービスのインスタンスを作成する必要があります。 434 PowerBuilder 第 10 章 例 PowerScript 関数 以下のステートメントでは、ある 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) 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 PowerScript リファレンス ボリューム 2 435 CreatePage CreatePage 機能 まだ作成されていない場合にタブ ページを作成します。 対象 タブ ページとして使用されているユーザ オブジェクト 構文 userobject.CreatePage ( ) 引数 userobject 戻り値 説明 作成するタブ ページの名前を指定します。 Integer 型。以下のいずれかの値を返します。ページが正常に作成され た場合は 1 を返し、ページがすでに作成されている場合には 0 を、タ ブ ページでない場合は -1 を返します。 1 - タブ ページは正常に作成されました。 0 - タブ ページはすでに作成されています。 -1 - ユーザ オブジェクトがタブ ページではありません。 解説 多くのコントロールを含むタブ ページを画面に描画するのを後まわ しにすれば、ウィンドウが開くまでの時間を短縮できます。ただし、 コントロールの 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 関連項目 436 PageCreated PowerBuilder 第 10 章 PowerScript 関数 Cut 機能 指定されたコントロールから、選択しているテキストまたは OLE オブ ジェクトを削除し、クリップボードにコピーします。このときに、削 除したデータでクリップボードのデータを置き換えます。 対象 データウィンドウ、インクエディット コントロール、マルチライン エ ディット コントロール、シングルライン エディット コントロール、ド ロップダウン リストボックス コントロール、ドロップダウン ピクチャ リストボックス コントロール、OLE コントロール 構文 controlname.Cut ( ) 引数 controlname 説明 切り取るテキストやオブジェクトを含んでいるデータウィ ンドウ、インクエディット、マルチライン エディット、シ ングルライン エディット、リッチテキスト エディット、ド ロップダウン リストボックス、ドロップダウン ピクチャ リ ストボックス、OLE のいずれかのコントロールの名前を指 定します。 controlname にデータウィンドウ コントロールの名前を指 定した場合、現行の行と現行のカラムの上にあるエディッ ト ボックスからテキストを切り取ります。controlname で ドロップダウン リストボックス コントロールまたはド ロップダウン ピクチャ リストボックス コントロールを指 定する場合、AllowEdit プロパティは true でなければなり ません。 戻り値 データウィンドウ、インクエディット、およびリストボックスの場合 は Integer 型、ほかのコントロールの場合は Long 型 編集可能なコントロールの場合、controlname に指定されたコントロー ルから切り取ってクリップボードにコピーした文字数を返します。テ キストが選択されていない場合、切り取り処理を行わずに 0 を返しま す。エラーが発生した場合、-1 を返します。 OLE コントロールの場合、正常に終了したときは 0 を返します。エ ラーが発生したときは、次のいずれかの値を返します。 -1 -2 -9 コントロールが空です。 切り取りに失敗しました。 そのほかのエラーです。 controlname に指定されたコントロールの名前が null の場合、null を返し ます。 PowerScript リファレンス ボリューム 2 437 Cut 解説 削除するテキストを選択するには、マウスやキーボードを使用します。 スクリプト内で SelectText 関数を呼び出す方法もあります。リッチテキ スト エディット コントロールの場合は、SelectTextAll 関数、SelectTextLine 関数、または SelectTextWord 関数を使用してテキストを選択することも できます。 クリップボードの内容をコントロール内に挿入するには、Paste 関数を 使用します。 選択したテキストや OLE オブジェクトをクリップボードにコピーし ないで削除したい場合には、Clear 関数を使用します。 OLE オブジェクトを切り取ると、Clear 関数を使用した場合と同じよう に、OLE オブジェクトとオブジェクトの元のファイル、または OLE オ ブジェクトとストレージとの接続が解除されます。 例 たとえば、mle_emp_address 内のテキスト "Temporary" が選択されてい るとします。次のステートメントは、mle_emp_address から "Temporary" を削除し、クリップボードにコピーして 9 を返します。 mle_emp_address.Cut() 次の例は、OLE コントロール ole_1 内の OLE オブジェクトを切り取っ てクリップボードにコピーします。 integer result result = ole_1.Cut() 関連項目 438 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 439 DataSource DataSource 機能 リッチテキスト エディット コントロールが、データウィンドウとデー タを共有し、リッチテキスト エディット コントロールの入力フィール ドにデータを表示できるようにします。リッチテキスト エディット コ ントロールの入力フィールドがデータウィンドウのカラムの名前と一 致する場合、データウィンドウのデータはその入力フィールドに割り 当てられます。リッチテキスト エディット コントロールの文書は、繰 り返し表示されます。このため、データウィンドウの各行に、その文 書のインスタンスが作成されます。 対象 リッチテキスト エディット コントロール 構文 rtename.DataSource ( dwsource ) 引数 rtename dwsource 説明 データウィンドウからデータを取得するリッチテキスト エ ディット コントロールの名前を指定します。 rtename に指定された入力フィールドに接続しているデー タを含むデータウィンドウ コントロール、データストア、 または子データウィンドウの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 入力フィールドの名前がデータウィンドウ オブジェクトのカラムの 名前と一致する場合、カラムのデータはその入力フィールドに割り当 てられます。 リッチテキスト エディット コントロールの文書は、データウィンドウ の一行に関連付けられています。検索された各行に、文書のインスタ ンスがあります。リッチテキスト エディット コントロールのテキスト は、すべての書式設定とともに、各文書のインスタンスで繰り返し表 示されます。各行のデータが変更されるたびに、入力フィールドの内 容は変更されます。入力フィールドの内容以外の各インスタンスの内 容は同じです。つまり、各インスタンスの入力フィールド以外のテキ ストを変更することはできません。 リッチテキスト エディット コントロールの InputFieldNamesVisible プ ロパティが true の場合、フィールドには、含まれるデータではなく フィールド名が表示されます。データを参照するには、このプロパティ の値を false に変更します。 440 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 441 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 442 説明 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 443 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 444 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 に指定された整数値を Date データ型で返し ます。無効な値(有効な日付の範囲外の値)が 1 つでも指定された場 合、1900-01-01 を返します。引数のいずれかの値が null の場合は、null が返されます。 例 以下に、整数値を使用して ld_my_date に 2005-10-15 を代入するステー トメントを示します。 date ld_my_date ld_my_date = Date(2005, 10, 15) 関連項目 DateTime DaysAfter RelativeDate RelativeTime PowerScript リファレンス ボリューム 2 445 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) 関連項目 446 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 PowerScript リファレンス ボリューム 2 447 Day Day 機能 Date 型の値から月の日付の部分を取り出します。 構文 Day ( date ) 引数 date 説明 Date 型の値を指定します。日の部分を取り出します。 戻り値 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 関連項目 448 Date IsDate Month Year 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Day メソッド PowerBuilder 第 10 章 PowerScript 関数 DayName 機能 指定された Date 型の値の曜日名を返します。 構文 DayName ( date ) 引数 date 説明 Date 型の値を指定します。曜日名を取得します。 戻り値 String 型。date に指定された日付の曜日名(日曜日、月曜日など)を表 す文字列を返します。date が null の場合、null を返します。 解説 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 PowerScript リファレンス ボリューム 2 449 DayNumber DayNumber 機能 Date 型の値が週の何日目にあたるかを返します。 構文 DayNumber ( date ) 引数 date 説明 Date 型の値を指定します。週の何日目にあたるかを取得し ます。 戻り値 Integer 型。date で指定した日付が週の何日目にあたるかを表す 1 ~ 7 の整数を返します。日曜日が 1、月曜日が 2 ... となります。date が null の場合、null を返します。 例 以下に、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 関連項目 450 Day DayName IsDate 『データウィンドウ リファレンス』マニュアルの DayNumber PowerBuilder 第 10 章 PowerScript 関数 DaysAfter 機能 2 つの日付の間の日数を計算します。 構文 DaysAfter ( date1, date2 ) 引数 date1 date2 戻り値 説明 Date 型の値を指定します。指定された日からの間隔日数を 計算します。 Date 型の値を指定します。指定された日までの間隔日数を 計算します。 Long 型。date1 と date2 の間の日数値を表す Long 型の値を返します。 date2 が date1 よりも前の日付の場合、負の値を返します。引数のいず れかの値が null の場合、null を返します。 例 次のステートメントは、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 PowerScript リファレンス ボリューム 2 451 DBHandle 『データウィンドウ リファレンス』マニュアルの DaysAfter DBHandle 機能 DBMS(データベース管理システム)に対するハンドルを返します。 対象 トランザクション オブジェクト 構文 transactionobject.DBHandle ( ) 引数 transactionobject 説明 実在するトランザクション オブジェクトを指定しま す。 戻り値 UnsignedLong 型。DBMS に対するインタフェース ハンドルを返しま す。transactionobject に、実在するトランザクション オブジェクトを指 定します。また、データベースが接続されている必要があります。 transactionobject が null の場合、null を返します。transactionobject が存 在しない場合は、実行エラーが発生します。DBMS に接続するための 十分なメモリがない場合、DBHandle は負数を返します。 解説 DBHandle 関数は、データベースに接続している場合にだけ、有効なハ ンドルを返します。この関数は、データベースが接続されていなかっ たり接続が解除されていたりするかどうかを判断することはできませ ん。 PowerBuilder は、データベース ハンドルを内部的に使用してデータ ベースと通信します。PowerBuilder がサポートしていない関数を使用 した API をデータベースがサポートしている場合、DBHandle 関数を使 用してそのハンドルを取得し、その外部関数の引数として与えます。 例 例についてはオンラインヘルプの「DBHandle」を検索して、参照して ください。 DebugBreak 機能 実行を中断し、デバッガ ウィンドウを開きます。 構文 DebugBreak ( ) 戻り値 なし 452 PowerBuilder 第 10 章 解説 PowerScript 関数 スクリプトの実行を中断してアプリケーションを調べるポイントに、 DebugBreak 関数の呼び出しを挿入します。次に、ジャストインタイム デバッグを有効にし、開発環境でアプリケーションを実行します。 PowerBuilder が DebugBreak 関数を検出すると、デバッガ ウィンドウが 開いて現行のコンテキストが表示されます。 例 次に、変数が null かどうかをテストし、null の場合はデバッガ ウィンド ウを開くステートメントを示します。 IF IsNull(auo_ext) THEN DebugBreak() 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 PowerScript リファレンス ボリューム 2 453 DeleteCategory DeleteCategory 機能 グラフの項目軸から、項目とその項目に対するデータ値を削除します。 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 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 454 説明 カラムを削除するリストビュー コントロールの名前を指 定します。 削除するカラムのインデックス番号を指定します。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例は、リストビュー コントロールの 2 番目のカラムを削除します。 lv_list.DeleteColumn(2) 関連項目 DeleteColumns DeleteColumns 機能 すべてのカラムを削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteColumns ( ) 引数 listviewname 説明 すべてのカラムを削除するリストビュー コントロールの 名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例は、リストビュー コントロールのすべてのカラムを削除します。 lv_list.DeleteColumns() 関連項目 DeleteColumn DeleteData 機能 グラフのデータ系列からデータ ポイントを削除します。データ系列内 の残ったデータ ポイントは左にシフトして、その項目のデータ ポイン トが詰められます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.DeleteData ( seriesnumber, datapointnumber ) PowerScript リファレンス ボリューム 2 455 DeleteItem 引数 controlname seriesnumber datapointnumber 説明 データ ポイントを削除するグラフ コントロールの名前 を指定します。 controlname に指定されたグラフから削除するデータ ポ イントがあるデータ系列の番号を指定します。 削除するデータがあるデータ ポイントの番号を指定し ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 例 以下に、グラフ 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 リストボックス コントロールとドロップダウン リス トボックス コントロールの項目を削除する 機能 リストボックス コントロールの値のリストから項目を削除します。 456 PowerBuilder 第 10 章 PowerScript 関数 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.DeleteItem ( index ) 引数 listboxname index 説明 項目を削除するリストボックス、ドロップダウン リスト ボックス、ピクチャ リストボックス、ドロップダウン ピ クチャ リストボックスのいずれかのコントロールの名前 を指定します。 削除する項目の位置を示す番号を指定します。 戻り値 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 PowerScript リファレンス ボリューム 2 457 DeleteItem 構文 2 リストビュー コントロールから項目を削除する 機能 指定された項目をリストビュー コントロールから削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteItem ( index ) 引数 listviewname index 戻り値 例 説明 項目を削除するリストビュー コントロールの名前を指定 します。 削除する項目のインデックス番号を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 次の例では、選択されたリストビューの項目のインデックスを SelectedIndex 関数を使用して検索し、対応する項目を削除します。 integer index index = lv_list.selectedindex() lv_list.DeleteItem(index) 関連項目 AddItem FindItem InsertItem SelectItem DeleteItems 構文 3 ツリービュー コントロールから項目を削除する 機能 コントロールから項目を削除し、その項目の子項目があればそれも削 除します。 対象 ツリービュー コントロール 構文 treeviewname.DeleteItem ( itemhandle ) 引数 treeviewname itemhandle 戻り値 458 説明 項目を削除するツリービュー コントロールの名前を指定 します。 削除する項目のハンドルを指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 PowerScript 関数 解説 すべての項目が最上位レベルの単一項目の子である場合、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 tv_1.DeleteItem(tvi_hdl) LOOP 関連項目 AddItem FindItem InsertItem SelectItem DeleteItems DeleteItems 機能 リストビュー コントロールから、すべての項目を削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteItems ( ) 引数 listviewname 説明 すべての項目を削除するリストビュー コントロールの名 前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールのすべての項目を削除します。 lv_list.DeleteItems() 関連項目 DeleteItem PowerScript リファレンス ボリューム 2 459 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() 関連項目 460 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 461 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)) 462 PowerBuilder 第 10 章 関連項目 PowerScript 関数 AddSeries DeleteCategory DeleteData FindSeries DeleteSmallPicture 機能 リストビュー コントロールから、小さいピクチャを削除します。 対象 リストビュー コントロール 構文 listviewname.DeleteSmallPicture ( index ) 引数 listviewname index 説明 小さいピクチャのリストから小さいピクチャを削除する リストビュー コントロールの名前を指定します。 削除する小さいピクチャのインデックス番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、小さいピクチャを削除 します。 lv_list.DeleteSmallPicture(1) 関連項目 DeleteSmallPictures DeleteSmallPictures 機能 リストビュー コントロールから、すべての小さいピクチャを削除しま す。 対象 リストビュー コントロール 構文 listviewname.DeleteSmallPictures ( ) 引数 listviewname PowerScript リファレンス ボリューム 2 説明 小さいピクチャのリストからすべてのピクチャを削除す るリストビュー コントロールの名前を指定します。 463 DeleteStatePicture 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、すべての小さいピク チャを削除します。 lv_list.DeleteSmallPictures() 関連項目 DeleteSmallPicture DeleteStatePicture 機能 コントロールから、状態ピクチャを削除します。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.DeleteStatePicture ( index ) 引数 controlname index 説明 状態ピクチャのリストからピクチャを削除するリスト ビュー コントロールまたはツリービュー コントロールの 名前を指定します。 削除する状態ピクチャのインデックス番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、状態ピクチャを削除し ます。 lv_list.DeleteStatePicture(1) 関連項目 DeleteStatePictures DeleteStatePictures 機能 コントロールから、すべての状態ピクチャを削除します。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.DeleteStatePictures ( ) 464 PowerBuilder 第 10 章 引数 controlname PowerScript 関数 説明 状態ピクチャのリストからすべてのピクチャを削除する リストビュー コントロールまたはツリービュー コント ロールの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例では、リストビュー コントロールから、すべての状態ピクチャ を削除します。 lv_list.DeleteStatePictures() 関連項目 DeleteStatePicture DestroyModel 機能 現行のパフォーマンス解析モデルまたはトレース ツリー モデルを破 棄します。 対象 Profiling オブジェクトと TraceTree オブジェクト 構文 instancename.DestroyModel ( ) 引数 instancename 戻り値 説明 Profiling オブジェクトまたは TraceTree オブジェクトのイ ンスタンス名を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • ModelNotExistsError! - モデルが存在しないため、関数は異常終了 しました。 解説 BuildModel 関数を使用して作成したパフォーマンス解析またはトレー ス ツリー モデルの使用が終了した場合、DestroyModel 関数を呼び出し て、モデルを破棄しなければなりません。また、そのモデルに関連付 けられているオブジェクトもすべて破棄しなければなりません。モデ ルに割り当てられたメモリは、オブジェクトが破棄されるまで解放さ れません。 例 次の例では、BuildModel 関数を使用して作成したパフォーマンス分析モ デルを破棄します。 PowerScript リファレンス ボリューム 2 465 DirectoryExists lpro_model.DestroyModel() DESTROY lpro_model 関連項目 BuildModel 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 関連項目 466 FileMove GetCurrentDirectory RemoveDirectory PowerBuilder 第 10 章 PowerScript 関数 DirList 機能 ファイルのリストをリストボックスに格納します。パス、マスク、ファ イルの種類を指定して、表示するファイルの集合を制限することがで きます。ウィンドウにスタティックテキスト コントロールがある場 合、DirList 関数を使用して現行のドライブとディレクトリも表示できま す。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 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 を返します。 PowerScript リファレンス ボリューム 2 467 DirList 解説 DirLisr 関数を使用すると、ウィンドウが開いたときにリストボックスに ファイル リストを表示することができます。DirList 関数を SelectionChanged イベントのスクリプトに記述し、選択された項目に応 じてリストボックスを作成し直し、それを表示することもできます。 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) 関連項目 468 DirSelect GetFolder PowerBuilder 第 10 章 PowerScript 関数 DirSelect 機能 DirList 関数を使用して作成されたリストボックスにおいて、現在選択 されている項目を取得し、それを文字列変数に格納します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 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 PowerScript リファレンス ボリューム 2 469 Disable ... // ファイルの処理 END IF 関連項目 DirList GetFolder 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() 関連項目 470 Enable PowerBuilder 第 10 章 PowerScript 関数 DisableCommit 機能 コンポーネントのトランザクション更新に矛盾があり、現状ではコ ミットできないことを宣言します。 対象 TransactionServer オブジェクト 構文 transactionserver.DisableCommit ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 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 PowerScript リファレンス ボリューム 2 471 DisconnectObject 関連項目 EnableCommit IsInTransaction IsTransactionAborted SetAbort SetComplete Which 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") 472 PowerBuilder 第 10 章 PowerScript 関数 . . . // 何らかの処理 result = myoleobject.DisconnectObject() 関連項目 ConnectToObject ConnectToNewObject DisconnectServer 機能 クライアント アプリケーションをサーバ アプリケーションから接続 解除します。 対象 接続オブジェクト 構文 connection.DisconnectServer ( ) 引数 connection 戻り値 Long 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの値を返します。 50 52 53 54 55 56 57 62 解説 説明 削除する接続を確立するために使用した接続オブジェク トの名前を指定します。 分散サービス エラーです。 分散通信エラーです。 リクエスト先のサーバがアクティブではありません。 サーバがリクエストを受け付けません。 リクエストが異常終了しました。 リクエストへの応答が不完全です。 接続されていません。 サーバがビジーです。 サーバ アプリケーションから接続を解除した後、クライアント アプリ ケーションは接続オブジェクトを破棄する必要があります。 DisconnectServer 関数は、クライアント接続のために作成されたリモー ト オブジェクトとプロキシ オブジェクトをすべて破棄します。 例 次の例では、接続オブジェクト myconnect を使用して、クライアント アプリケーションをサーバ アプリケーションから接続解除します。 myconnect.DisconnectServer() destroy myconnect 関連項目 ConnectToServer PowerScript リファレンス ボリューム 2 473 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 関数の例を参照してください。 関連項目 474 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 475 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 を返します。 476 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 477 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! 478 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 479 EditLabel 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 関連項目 Move EditLabel リストビュー コントロールまたはツリービュー コントロール内のラ ベルを編集モードにします。 ラベルを編集するコントロール リストビュー コントロール ツリービュー コントロール 使用する構文 構文 1 構文 2 構文 1 リストビュー コントロールのラベルを編集する 機能 リストビュー コントロール内のラベルを編集モードにします。 対象 リストビュー コントロール 構文 listviewname.EditLabel ( index ) 引数 listviewname index 480 説明 ラベルの編集を有効にするリストビュー コントロールを指定 します。 編集するリストビューの項目のインデックスを指定します。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 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 構文 2 ツリービュー コントロールのラベルを編集する 機能 ツリービュー コントロール内のラベルを編集モードにします。 対象 ツリービュー コントロール 構文 treeviewname.EditLabel ( itemhandle ) 引数 treeviewname itemhandle 説明 ラベルの編集を有効にするツリービュー コントロールを 指定します。 編集する項目のハンドルを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ラベルの編集を有効にするためには、ツリービューの EditLabels プロ パティを true に設定する必要があります。このプロパティが true のと き、EditLabel 関数を呼び出すと項目にフォーカスが設定され、編集が 可能になります。ラベルの編集を終えた後に編集を無効にするには、 EndLabelEdit イベントで EditLabels プロパティを false に設定します。 EditLabels プロパティが false に設定されていると、EditLabel 関数を実 行しても編集が有効にはなりません。 PowerScript リファレンス ボリューム 2 481 Enable 例 次に、エンド ユーザが現行のツリービューの項目のラベルを編集でき るようにする例を示します。 long ll_tvi ll_tvi = tv_list.FindItem(CurrentTreeItem!, 0) tv_list.EditLabels = TRUE tv_list.EditLabel(ll_tvi) 関連項目 FindItem 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() 関連項目 482 Disable PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 DisableCommit IsInTransaction IsTransactionAborted Lookup SetAbort PowerScript リファレンス ボリューム 2 483 EntryList 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 484 PowerBuilder 第 10 章 PowerScript 関数 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 サーバ アプリケーションに送信 する(コールド リンク) チャネルを開いた後、コマンドを DDE サーバ アプリ ケーションに送信する(ウォーム リンク) 使用する構文 構文 1 構文 2 構文 1 1 つのコマンドを送信する 機能 1 つのコマンドを DDE サーバ アプリケーションに送信します。これを コールド リンクといいます。 構文 ExecRemote ( command, applname, topicname ) 引数 command applname topicname PowerScript リファレンス ボリューム 2 説明 String 型の値。DDE サーバ アプリケーションが実行するコ マンドを指定します。コマンドの形式については、サーバ アプリケーションのマニュアルを参照してください。 String 型の値。サーバ アプリケーションの DDE 名を表す 文字列を指定します。 String 型の値。コマンドで使用するデータまたは DDE アプ リケーションのインスタンスを指定します。たとえば Microsoft Excel の場合、この引数には "system"、または開 かれているスプレッドシートの名前を指定します。 485 ExecRemote 戻り値 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") 関連項目 486 CloseChannel GetRemote OpenChannel SetRemote StartHotLink PowerBuilder 第 10 章 PowerScript 関数 構文 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 参照)。 PowerScript リファレンス ボリューム 2 487 ExecRemote ウォーム リンクは、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)) 関連項目 488 CloseChannel GetRemote OpenChannel SetRemote PowerBuilder 第 10 章 PowerScript 関数 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 戻り値 説明 項目、および階層構造でその項目の下位にあるすべての項 目を展開するツリービュー コントロールを指定します。 展開する項目のハンドルを指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 489 ExpandItem 解説 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) 関連項目 490 CollapseItem ExpandAll FindItem PowerBuilder 第 10 章 PowerScript 関数 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 PowerScript リファレンス ボリューム 2 491 FileCopy 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) 492 PowerBuilder 第 10 章 関連項目 PowerScript 関数 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 PowerScript リファレンス ボリューム 2 説明 エンコーディングの種類を調べるファイルの名前を指定し ます。 493 FileEncoding 戻り値 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 = FileReadEx(ll_filenum, ls_unicode) end if FileClose(ll_filenum) 関連項目 494 Blob FileClose FileOpen FileReadEx FileWriteEx String PowerBuilder 第 10 章 PowerScript 関数 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!) 関連項目 FileDelete FileLength 機能 サイズが 2GB までのファイルの長さをバイト数で返します。 構文 FileLength ( filename ) PowerScript リファレンス ボリューム 2 495 FileLength 引数 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 LengthA = FileLength("C:\EAST\EMP.TXT") li_FileNum = FileOpen("C:\EAST\EMP.TXT", & TextMode!, Read!, LockReadWrite!) 496 PowerBuilder 第 10 章 PowerScript 関数 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") PowerScript リファレンス ボリューム 2 497 FileMove ファイル セキュリティ ファイルにセキュリティが設定されている場合(たとえばネットワー ク上でファイルを共有している場合など)、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 を開くときにエラーが発生しました。 498 PowerBuilder 第 10 章 PowerScript 関数 -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! - テキストをブロック単位で読み込みます。 詳細については、「解説」を参照してください。 PowerScript リファレンス ボリューム 2 499 FileOpen 引数 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! 500 PowerBuilder 第 10 章 戻り値 PowerScript 関数 Integer 型。正常に終了した場合、filename に指定されたファイルに割 り当てられているファイル番号を返します。エラーが発生した場合、-1 を返します。引数のいずれかの値が null の場合、FileOpen は null を返し ます。 解説 ファイルを開くときのモードによって、ファイルの読み書きに使用さ れる関数の動作が決まります。ファイルからデータを読み込む関数は、 FileRead と FileReadEx の 2 つです。ファイルにデータを書き込む関数 は、FileWrite と FileWriteEx の 2 つです。FileRead と FileWrite には、読み 込みまたは書き込みできるデータ量に制限があります。これらの関数 は下位互換性を保証するために残されています。また、テキスト モー ドをサポートしません。詳細については、FileRead と FileWrite を参照し てください。 FileReadEx と FileWriteEx 関数で Blob 型と String 型のデータを読み書き できるかどうかは、モードによって異なります。次の表に、各モード でサポートされているデータ型を示します。 表 0-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 ファイルは、どのモードでも読み込み できます。 PowerScript リファレンス ボリューム 2 501 FileOpen ストリーム モードとテキスト モードでは、動作がよく似ています。た だし、ストリーム モードはバイナリ ファイル、テキスト モードはテ キスト ファイルでの使用を目的としています。ストリーム モードで既 存のファイルを開くと、データの次の読み取り開始位置を指すファイ ルの内部ポインタが、ファイルの先頭バイトに設定されます。 バイト オーダー マーク(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 パラメータを指定しても無視されます。 502 PowerBuilder 第 10 章 例 PowerScript 関数 次に、デフォルトの引数を使用して 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!) 関連項目 FileClose FileLength64 FileRead FileReadEx FileWrite FileWriteEx FileRead 機能 指定されたファイル番号に関連付けられたファイルのデータを読み込 みます。ファイル番号は、FileOpen 関数によってファイルに割り当て られます。FileRead 関数は下位互換性を保証するために残されていま す。新規開発の場合は FileReadEx 関数を使用します。 構文 FileRead ( file#, variable ) PowerScript リファレンス ボリューム 2 503 FileRead 引数 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 関数を使用してく ださい。 ファイルがストリーム モード(StreamMode!)で開かれていた場合に は、この関数はファイルの最後まで、または次の 32,765 バイトまでの どちらか短いほうまで読み取ります。ファイルが読み取り用に開かれ た場合、FileRead 関数はファイルの先頭に置かれているファイル ポイ ンタから読み取りを開始します。ファイルの長さが 32,765 バイト以上 の場合、この関数は読み取られたデータの直後に自動的にポインタを 置くので、次のデータを続けて読み取ることができます。 504 PowerBuilder 第 10 章 PowerScript 関数 この関数は、一度に最大 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) 関連項目 FileClose FileLength64 FileOpen FileReadEx FileSeek64 FileWriteEx PowerScript リファレンス ボリューム 2 505 FileReadEx 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 型の値を返します。 解説 FileReadEx 関数は、ANSI、UTF-8、UTF-16LE、および UTF-16BE エン コーディングのファイルを読み込むことができます。 ファイルがラインモード(LineMode!)で開かれていた場合、CR、LF、 または EOF が検出されるまで、この関数はファイルの次の行を読み取 ります。読み取った行の内容は指定した変数に格納され、CR や LF を スキップし、ファイル ポインタを次の行の先頭に置きます。 オプションの length パラメータは、Blob 型のデータだけに適用されま す。第 2 パラメータのデータ型が String 型の場合に length パラメータ を指定すると、コードはコンパイルされません。 506 PowerBuilder 第 10 章 PowerScript 関数 ファイルがストリーム モードまたはテキスト モードで開かれていた 場合には、この関数はファイルの最後まで、または次の 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 次に、ファイル 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) PowerScript リファレンス ボリューム 2 507 FileSeek 関連項目 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 を返します。 解説 この関数は、ストリーム モード(StreamMode!)で開いたバイナリ ファ イル内を移動するために使用します。FileSeek 関数はファイル ポイン タの位置を設定するので、FileReadEx 関数や FileWriteEx 関数をファイル 内の目的の位置から開始することができます。 origin が FromBeginning! に設定され、ファイルがストリーム モードで 開いていない場合、バイト オーダー マーク(BOM)は自動的に無視 されます。たとえば、ファイルの 16 進表示が FF FE 54 00 68 00 69 00 73 00 である場合、動作は次のようになります。 long ll_pos // 次のステートメントを実行すると、ファイル ポインタは 508 PowerBuilder 第 10 章 PowerScript 関数 // 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!) 関連項目 FileReadEx FileSeek64 FileWriteEx FileSeek64 機能 任意のサイズのファイル内の指定された位置にファイル ポインタを 移動します。ファイル ポインタとは、次の読み取りまたは書き込み処 理を開始する位置のことです。 構文 FileSeek64 ( file#, position, origin ) 引数 file# PowerScript リファレンス ボリューム 2 説明 ファイルが開かれたときにファイルに割り当てられた Integer 型の値を指定します。 509 FileSeek64 引数 position origin 説明 Long 型の値。origin に対する相対位置をバイト数で指定し ます。 処理を開始する位置を指定する SeekType カタログ データ 型の値。値は以下のとおりです。 • FromBeginning! -(デフォルト)ファイルの先頭 • FromCurrent! - 現行の位置 • FromEnd! - ファイルの末尾 戻り値 LongLong 型。正常に終了した場合、ファイルの位置を返します。引数 のいずれかの値が null の場合、null を返します。 解説 FileSeek64 は、ストリーム モード(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!) 例 次に、ファイルの末尾から先頭方向に 14 バイト分、ファイル ポイン タを移動する例を示します。 integer li_FileNum li_FileNum = FileOpen("emp_data") FileSeek64(li_FileNum, -14, FromEnd!) 次に、現在の位置から末尾方向に 14 バイト分、ファイル ポインタを 移動する例を示します。この場合、FileOpen 関数を呼び出した後にファ イル ポインタに影響を与える処理が行われていなければ、FromCurrent! を指定したときの処理は、FromBeginning! を指定したときと同じにな ります。 510 PowerBuilder 第 10 章 PowerScript 関数 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 エンコー ディングのファイルに書き込むことができます。 FileWrite 関数は、ファイル ポインタで指定された位置にデータを書き 込みます。writemode に Replace! を指定してファイルを開いた場合、 ファイル ポインタはファイルの先頭に置かれます。FileWrite 関数が呼 び出されるたびに、ファイル ポインタは書き込まれた位置の直後に移 動します。writemode に Append! を設定してファイルを開いた場合に は、ファイル ポインタはファイルの末尾に置かれ、書き込み処理が行 われるたびにファイルの最後に移動します。 FileWrite 関数は、最後に書き込まれた文字の後の位置にファイル ポイ ンタを設定します。ファイルがライン モード(LineMode!)で開かれ ていた場合には、variable で指定された最後の文字の後にキャリッジ リターン(CR)、またはライン フィード(LF)を書き込み、その後に ファイル ポインタを設定します。 PowerScript リファレンス ボリューム 2 511 FileWrite データが 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 は、ファイル番号を保持し ています。 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 型データ をファイルに書き込みます。Len 関数を使用して、Blob 型データの長 さが一度の FileWrite 関数の呼び出しで処理できるかどうかを調べるこ とができます。 integer li_FileNum 512 PowerBuilder 第 10 章 PowerScript 関数 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# blob または string length 戻り値 説明 ファイルが開かれたときに割り当てられた Integer 型の値 を指定します。 Blob 型または String 型の値を指定します。この値はファイ ルに書き出したいデータです。 テキスト モードまたはストリーム モードの場合に、書き 出されるバイト数を指定します。特に指定しない限り、 ファイルの長さが設定されます。 Long 型。正常に終了した場合、書き込んだバイト数を返します。エ ラーが発生した場合、-1 を返します。ストリーム モードで String 型の 変数に書き込もうとした場合、またはライン モードで Blog 型の変数 に書き込もうとした場合、-1 を返します。引数のいずれかの値が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 513 FileWriteEx 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 パラメータを指定すると、コードはコンパイルされません。 データが String 型であり、関連付けられているファイルが ANSI また は UTF-8 エンコーディングを使用する場合、FileWriteEx は文字列を ANSI または 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") 514 PowerBuilder 第 10 章 PowerScript 関数 以下に、データベースから Blob 型データを読み込み、ファイルに書き 込む例を示します。SQL SELECT 文で、ピクチャ データを Blob 型変数 emp_id_pic に割り当てています。FileOpen 関数は Stream モード で書き 込み処理を行うためにファイルを開き、FileWriteEx 関数は Blob 型デー タをファイルに書き込みます。Len 関数を使用して、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) 関連項目 FileClose FileLength64 FileOpen FileReadEx FileSeek64 Fill 機能 指定された文字列を指定された長さになるまで繰り返し、その結果の 文字列を返します。 構文 Fill ( chars, n ) 引数 chars n 戻り値 説明 戻り値の文字列が指定された長さになるまで繰り返す文 字列を指定します。 返す文字列の長さを表す Long 型の値を指定します。 String 型。chars に指定された文字列を n に指定した文字数分繰り返し、 その結果の文字列を返します。chars に n より多い文字数の文字列を指 定した場合、chars の最初の n 文字から成る文字列を返します。chars に n より少ない文字数の文字列を指定した場合は、n 文字を満たすま で chars の文字列を繰り返し、その結果の文字列を返します。引数の いずれかの値が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 515 FillA 解説 Fill 関数は、印刷ルーチンで、線を作成したり、特殊な効果を表現した りするのに使用します。たとえば、小切手の金額欄をアスタリスク(*) で埋めたり、表示画面で金額欄の下にハイフン(-)を繰り返し入力し て合計金額を示したりします。 例 次のステートメントは、35 個のアスタリスクから成る文字列を返しま す。 Fill("*", 35) 次のステートメントは、文字列 "-+-+-+-" を返します。 Fill("-+", 7) 次のステートメントは、ティルダ(~)を 10 個返します。 Fill("~", 10) 関連項目 Space 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Fill メソッド 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 関数は同じ結果を返します。 516 PowerBuilder 第 10 章 PowerScript 関数 FillW 機能 指定された文字列を指定された長さになるまで繰り返し、その結果の 文字列を返します。この関数は、サポートされなくなります。動作は、 SBCS 環境と DBCS 環境で Fill 関数と同じです。 構文 FillW ( chars, n) Find 機能 データウィンドウ コントロールまたはデータストアからデータを検 索します。あるいは、リッチテキスト エディット コントロール、リッ チテキスト エディット データウィンドウ、またはリッチテキスト エ ディット データストアのテキストを検索します。 検索の方向を指定したり、完全に一致する単語だけの検索や大文字と 小文字の区別を指定したりすることもできます。指定されたテキスト をコントロールで検索し、テキストが見つかった場合はそのテキスト をハイライト表示します。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアルまたはオンライン ヘルプの 「Find メソッド」を参照してください。 対象 リッチテキスト エディット コントロールと、内容の提示様式がリッチ テキストのデータウィンドウ コントロール(またはデータストア オブ ジェクト) 構文 controlname.Find ( searchtext, forward, insensitive, wholeword, cursor ) 引数 controlname searchtext PowerScript リファレンス ボリューム 2 説明 内容を検索するリッチテキスト エディット コントロー ル、データウィンドウ コントロール、またはデータストア の名前を指定します。 String 型の値。検索するテキストを指定します。リッチテ キスト エディット コントロールの場合、searchtext は 99 文 字までに制限されます。 517 Find 引数 forward 説明 Boolean 型の値。検索の方向を指定します。値は以下のと おりです。 • TRUE - カーソルの位置から順方向に検索します。 cursor が false の場合、文書の先頭から順方向に検索し ます。 insensitive • FALSE - カーソルの位置から逆方向に検索します。 cursor が false の場合、文書の末尾から逆方向に検索し ます。 Boolean 型の値。大文字と小文字を区別して検索するかど うかを指定します。値は以下のとおりです。 • TRUE - 大文字と小文字を区別しません。 wholeword • FALSE - 大文字と小文字を区別します。 Boolean 型の値。完全に一致する単語だけを検索するかど うかを指定します。値は以下のとおりです。 • TRUE - 完全に一致する単語だけを検索します。 cursor • FALSE - 一部が一致する単語を検索します。 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) 関連項目 518 FindNext PowerBuilder 第 10 章 PowerScript 関数 FindCategory 機能 項目のラベルがわかっている場合に、グラフにおける項目番号を取得 します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.FindCategory ( { graphcontrol, } categoryvalue ) 引数 controlname 説明 グラフ コントロールの名前、またはグラフを含むデータ ウィンドウ コントロールの名前を表す文字列を指定しま す。このコントロールの項目の値を取得します。 graphcontrol (オプション)データウィンドウ コントロール内のグラフ (データウィン 名を表す文字列を指定します。このグラフから項目番号を 取得します。 ドウ コント ロールのみ) categoryvalue 番号を求める項目の値を指定します。また、指定する値は、 項目軸のデータ型と同じでなければなりません。 戻り値 Integer 型。controlname で指定したグラフ内の categoryvalue で指定された 項目名の番号を返します。また、controlname がデータウィンドウ コン トロールである場合は、graphcontrol で指定したグラフ内の categoryvalue で指定された項目名の番号を返します。エラーが発生した場合、-1 を 返します。また、引数のいずれかの値が null の場合は null を返します。 解説 ほとんどのグラフの項目を操作する関数は、項目名よりも項目番号を 必要とします。ただし、項目を削除したり挿入したりする場合は、既 存の項目番号は連続するように、つけ直されます。項目のラベルだけ わかっている場合や、項目番号が変わっているかもしれない場合には、 FindCategory 関数を使用します。 例 以下に、グラフ gr_prod_data の項目番号を取得するステートメントを示 します。項目名は、シングルライン エディット コントロール sle_ctory のテキストです。 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 PowerScript リファレンス ボリューム 2 519 FindClassDefinition DeleteData DeleteSeries FindSeries 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" 520 PowerBuilder 第 10 章 PowerScript 関数 ls_libraries[2] = "c:\pwrs\framewk\windows.pbl" ls_libraries[3] = "c:\pwrs\framewk\ancestor.pbl" cd_windef = FindClassDefinition( "w_genapp_frame", ls_libraries) 関連項目 FindFunctionDefinition FindMatchingFunction 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 内のライブラリで w_genapp_frame のスクリプト 定義を検索する例を示します。 ScriptDefinition sd_myfunc string ls_libraries[ ] ls_libraries[1] = "c:\pwrs\bizapp\windows.pbl" PowerScript リファレンス ボリューム 2 521 FindItem 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 FindTypeDefinition FindItem リスト内の次の項目を検索します。 次の項目を検索する条件 使用する構文 リストボックス、ドロップダウン リストボックス、ピ 構文 1 クチャ リストボックス、ドロップダウン ピクチャ リ ストボックスのいずれかのコントロールの項目を検 索する ラベルに基づいてリストビュー コントロールの項目 構文 2 を検索する リストビュー コントロール内での相対的な位置に基 構文 3 づいて項目を検索する ツリービュー コントロール内での相対的な位置に基 構文 4 づいて項目を検索する 構文 1 リストボックス コントロールとドロップダウン リス トボックス コントロールに対して 機能 リストボックスで、指定された検索テキストで始まる項目を検索します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.FindItem ( text, index ) 引数 listboxname text 522 説明 項目を検索するリストボックス コントロールの名前を指定 します。 String 型の値。検索する項目の先頭のテキストを指定します。 PowerBuilder 第 10 章 引数 index 戻り値 PowerScript 関数 説明 検索を開始する最初の項目の直前の項目の番号を指定し ます。リスト全体を検索する場合、0 を指定します。 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 説明 項目を検索するリストビュー コントロールを指定します。 PowerScript リファレンス ボリューム 2 523 FindItem 引数 startindex label partial wrap 戻り値 説明 検索を開始するインデックス番号を指定します。 検索の対象となる文字列を指定します。 true の場合は、部分的に一致するラベルを持つ項目も検索 します。 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) 524 PowerBuilder 第 10 章 PowerScript 関数 l_lvi.HasFocus = TRUE l_lvi.Selected = TRUE lv_list.SetItem(li_index,l_lvi) END IF 関連項目 AddItem DeleteItem InsertItem SelectItem 構文 3 リストビュー コントロールに対して 機能 リストビュー コントロール内の特定の位置に基づいて次の項目を検 索します。 対象 リストビュー コントロール 構文 listviewname.FindItem ( startindex, direction, focused, selected, cuthighlighted, drophighlighted ) 引数 listviewname startindex direction 説明 項目を検索するリストビュー コントロールを指定します。 検索を開始するインデックス番号を指定します。 検索の方向を指定します。値は以下のとおりです。 DirectionAll! DirectionUp! DirectionDown! DirectionLeft! DirectionRight! focused true の場合は、リストビュー コントロールでフォーカスが 設定されている項目の次の項目を検索します。 selected true の場合は、リストビュー コントロールで選択されてい cuthighlighted true の場合は、リストビュー コントロールで切り取り操作 drophighlighted true の場合は、リストビュー コントロールでドラッグ ア る項目の次の項目を検索します。 の対象となっている項目の次の項目を検索します。 ンド ドロップ操作の対象となっている項目の次の項目を 検索します。 戻り値 Integer 型。正常に終了した場合、検索した項目のインデックスを返し ます。エラーが発生した場合、-1 を返します。 PowerScript リファレンス ボリューム 2 525 FindItem 解説 特に指定しない限り、startindex に指定されたインデックスの次のイン デックスから検索が開始されます。先頭から検索する場合、0 を指定 します。 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 関連項目 AddItem DeleteItem InsertItem SelectItem 構文 4 ツリービュー コントロールに対して 機能 ツリービュー コントロール内での位置に基づいて項目を検索します。 対象 ツリービュー コントロール 構文 treeviewname.FindItem ( navigationcode, itemhandle ) 526 PowerBuilder 第 10 章 引数 treeviewname navigationcode itemhandle PowerScript 関数 説明 指定された項目を検索するツリービュー コントロールの 名前を指定します。 TreeNavigation カタログ データ型の値。itemhandle によっ て指定される項目と、検索する項目との関係を指定しま す。有効な値の一覧については、「解説」の表を参照して ください。 項目のハンドルを指定する Long 型の値。この項目と検索 する項目との関係を、navigationcode を介して指定します。 戻り値 Long 型。正常に終了した場合は項目のハンドルを返し、エラーが発生 した場合は -1 を返します。 解説 FindItem 関数は、検索した項目を選択しません。検索した項目を選択す るには、FindItem 関数とともに、項目の Selected プロパティを使用する 必要があります。 FindItem は、ChildTreeItem! を検索する場合を除いて、折りたたまれた 項目を検索しません。ChildTreeItem! が設定されている場合、項目は展 開されます。CurrentItem! は、Clicked イベントが発生した後ではじめ て変更されます。現在の項目がクリックされたときにその項目に応じ たハンドルが返されるようにするには、そのハンドルを返すためのカ スタム イベントを作成して、そのイベントを Clicked イベントの中で ポストします。 navigationcode が RootTreeItem!、FirstVisibleTreeItem!、CurrentTreeItem!、 または DropHighlightTreeItem! の場合、itemhandle は 0 に設定してくだ さい。 引数 navigationcode に指定できる値を次の表に示します。 表 0-3: FindItem の引数 navigationcode に指定できる値 navigationcode の値 RootTreeItem! NextTreeItem! PreviousTreeItem! ParentTreeItem! PowerScript リファレンス ボリューム 2 FindItem の検索項目 レベル 1 の最初の項目。項目がコントロールに挿 入されなかった場合、-1 を返します。 itemhandle で指定された項目より後にある兄弟項 目。兄弟項目とは、同じ親を持つ同じレベルの項 目です。該当する兄弟項目がない場合、-1 を返し ます。 itemhandle で指定された項目より前にある兄弟項 目。該当する兄弟項目がない場合、-1 を返します。 itemhandle で指定された項目の親。項目がレベル 1 にある場合、-1 を返します。 527 FindItem navigationcode の値 ChildTreeItem! FirstVisibleTreeItem! NextVisibleTreeItem! PreviousVisibleTreeItem! CurrentTreeItem! DropHighlightTreeItem! 例 FindItem の検索項目 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 ll_tvi = tv_list.FindItem(RootTreeItem!, 0) 関連項目 528 DeleteItem GetItem InsertItem PowerBuilder 第 10 章 PowerScript 関数 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 は折りたたまれた継承階層構造を調べ ます。見つかった関数は、現行のオブジェクトまたはその先祖のいず れかで定義されている可能性があります。 参照渡しによって渡される引数 参照渡しによって渡された引数で関 数を検索するには、REF キーワードを指定する必要があります。関数 の引数に VariableDefinition オブジェクトがある場合は、CallingConvention 引数をチェックして、引数が参照渡しで渡されたかどうかを判断しま す。 PowerScript リファレンス ボリューム 2 529 FindMatchingFunction 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 // 引数名のリスト。 s = s + "Arguments:" + lineend FOR li = 1 to UpperBound(scriptobj.ArgumentList) s = s + scriptobj.ArgumentList[li].Name + lineend NEXT // ローカル変数のリスト。 530 PowerBuilder 第 10 章 PowerScript 関数 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 で検索する例を示します。検索は、カーソルの位置から下 方向に実行されます。この例では、大文字と小文字を区別せずに検索 します。また、完全に一致する単語だけを検索するのではなく、一部 が一致する文字列も検索します。 integer li_charsfound li_charsfound = rte_1.Find(sle_search.Text, & TRUE, TRUE, FALSE, TRUE) "Find Next" というラベルが付いた 2 番目のボタンには、次のようなス クリプトが記述されています。 PowerScript リファレンス ボリューム 2 531 FindSeries rte_1.FindNext() 関連項目 Find FindSeries 機能 データ系列の名前がわかる場合に、グラフ内のデータ系列の番号を取 得することができます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.FindSeries ( { graphcontrol, } seriesname ) 引数 controlname 説明 グラフ コントロールの名前、またはグラフを含むデータ ウィンドウ コントロールの名前を指定します。そのグラフ のデータ系列番号を求めます。 graphcontrol (オプション)系列を含むデータウィンドウ コントロール (データウィン 内のグラフの名前の文字列を指定します。 ドウ コント ロールのみ) seriesname 番号を求めるデータ系列の名前を表す文字列を指定します。 戻り値 Integer 型。グラフ controlname で指定したグラフ内の seriesname で指定 されたデータ系列の番号を返します。また、controlname がデータウィ ンドウ コントロールである場合は、graphcontrol で指定したグラフ内 の seriesname で指定されたデータ系列の番号を返します。エラーが発 生した場合、-1 を返します。また、引数のいずれかの値が null の場合 は null を返します。 解説 ほとんどのデータ系列を操作する関数は、データ系列の名前よりも データ系列の番号を必要とします。ただし、データ系列の削除や挿入 を行う場合、既存のデータ系列の番号は連続するように付け直されま す。データ系列の名前だけがわかっている場合やデータ系列の番号が 変わっている可能性がある場合、FindSeries 関数を使用します。 例 次の例では、シングルライン エディット コントロール sle_series にグ ラフ gr_product_data 上のデータ系列名が入力されるものとします。そ のデータ系列名の番号を取得して、SeriesNbr に格納します。 integer SeriesNbr SeriesNbr = & gr_product_data.FindSeries(sle_series.Text) 532 PowerBuilder 第 10 章 PowerScript 関数 以下に、データウィンドウ コントロール 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 を返します。 解説 返される TypeDefinition オブジェクトは、実際には ClassDefinition オブ ジェクト、SimpleTypeDefinition オブジェクト、または EnumerationDefinition オブジェクトです。Category プロパティをテストすると、このうちの どれであるかがわかります。 クラスの情報を取得する場合は、かわりに FindClassDefinition 関数を呼 び出します。引数は同じで、返されるオブジェクトが ClassDefinition オ ブジェクトであることをチェックする操作手順を省略できます。 PowerScript リファレンス ボリューム 2 533 FindTypeDefinition グローバル関数の情報を取得する場合は、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 のクラス定義 を検索する例を示します。 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( 534 PowerBuilder 第 10 章 PowerScript 関数 "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 FromUnicode 機能 Unicode 文字列を含む Blob 型を、現在使用している PowerBuilder(ANSI または Unicode バージョン)のファイル形式の文字列に変換します。 構文 FromUnicode ( blob ) PowerScript リファレンス ボリューム 2 535 GarbageCollect 引数 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() 関連項目 536 GarbageCollectGetTimeLimit GarbageCollectSetTimeLimit PowerBuilder 第 10 章 PowerScript 関数 GarbageCollectGetTimeLimit 機能 ガベージ コレクションの現行の最小間隔を取得します。 構文 GarbageCollectGetTimeLimit ( ) 戻り値 Long 型。現行の最小ガベージ コレクション間隔を返します。 解説 ガベージ コレクションを実行する現行の最小間隔を読み込みます。 例 次に、ガベージ コレクションを実行する間隔を変数 CollectTime に返 すステートメントを示します。 long CollectTime CollectTime = GarbageCollectGetTimeLimit() 関連項目 GarbageCollect GarbageCollectSetTimeLimit GarbageCollectSetTimeLimit 機能 ガベージ コレクションを実行する最小間隔を設定します。 構文 GarbageCollectSetTimeLimit ( newtimeinmilliseconds ) 引数 newtimeinmilliseconds 説明 Long 型の値(ミリ秒単位)。ガベージ コレクション サイクルの最小間隔を指定します。 null の場合、既存の間隔は変更されません。 戻り値 Long 型。この関数が呼び出される前に存在していた間隔を返します。 newTime が null の場合は null が返され、現行の間隔は変更されません。 解説 ガベージ コレクションを実行する最小間隔を指定します。ガベージ コ レクションの実行は、この間隔が満了するまで発生しません。 下限に非常に大きな数値を設定することで、ガベージ コレクションを 事実上使用不可にすることができます。ガベージ コレクションが使用 不可の場合、使用されていないクラスはクラス キャッシュからフラッ シュされません。 例 次に、ガベージ コレクションを実行する間隔を 1 秒に設定し、変数 OldTime を前回の間隔の長さに設定する例を示します。 long OldTime, NewTime PowerScript リファレンス ボリューム 2 537 GarbageCollectSetTimeLimit NewTime = 1000 /* 1 秒 */ OldTime = GarbageCollectSetTimeLimit(NewTime) 関連項目 538 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 539 GetAlignment GetAlignment 機能 リッチテキスト エディット コントロールで、挿入ポイントがある段落 の配置を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.GetAlignment ( ) 引数 rtename 説明 リッチテキスト エディット コントロールの名前を指定し ます。指定されたコントロールで、挿入ポイントがある段 落の配置を調べます。 戻り値 Alignment 型。挿入ポイントがある段落の配置を示す Alignment カタロ グ データ型の値を返します。 解説 複数の段落が選択されている場合、挿入ポイントは、最初の段落か最 後の段落にあります。挿入ポイントの位置は、エンドユーザの段落の 選択方法によって異なります。報告される値は、挿入ポイントの位置 によって異なります。 例 次に、挿入ポイントがある段落の配置の設定を保存する例を示します。 alignment l_align l_align = rte_1.GetAlignment() 関連項目 GetSpacing GetTextStyle SetAlignment SetSpacing SetTextStyle GetApplication 機能 現行のアプリケーション オブジェクトのハンドルを取得し、アプリ ケーションの属性の内容の取得と設定を行うことができます。 構文 GetApplication ( ) 戻り値 Application 型。現行のアプリケーション オブジェクトのハンドルを返 します。 540 PowerBuilder 第 10 章 解説 PowerScript 関数 GetApplication 関数を使用すると、アプリケーションに対して汎用的な コーディングを行うことができます。また、ほかのアプリケーション でも再利用することができます。アプリケーションのプロパティを設 定する場合に、実際のアプリケーションの名前を記述する必要があり ません。 例 次に、ツールバーのボタンに対するテキストを表示するかどうかを変 更するために、アプリケーション オブジェクトのハンドルを取得して ToolbarTips プロパティを設定する例を示します。 application app app = GetApplication() app.ToolbarTips = FALSE 上の例は、次のように記述することもできます。 GetApplication().ToolbarTips = FALSE GetArgElement 機能 指定した引数の値を返します。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.GetArgElement ( index ) 引数 activexcontrol index 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、ActiveX コントロー ルは OBJECT エレメントの NAME 属性になります。ほか の環境で使用する場合は、PowerBuilder ウィンドウ ActiveX を含むコントロールを参照します。 戻り値を整数で指定します。 戻り値 Any 型。指定した引数を返します。 解説 InvokePBFunction 関数または TriggerPBEvent 関数の後にこの関数を呼び 出すと、参照渡しされた引数の更新された値を取得できます。 JavaScript スクリプトで参照渡しされる引数にアクセスするには、この関 数を使用しなければなりません。VBScript スクリプトでは、SetArgElement 関数を呼び出して引数リストを作成した場合に、この関数を使用でき ます。 PowerScript リファレンス ボリューム 2 541 GetAutomationNativePointer 例 次の 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); ... 関連項目 GetLastReturn InvokePBFunction SetArgElement TriggerPBEvent GetAutomationNativePointer 機能 OLEObject 変数に関連付けられている OLE オブジェクトへのポインタ を取得します。このポインタによって、オブジェクトの外部 DLL の OLE 関数を呼び出すことができます。 対象 OLEObject 構文 oleobject.GetAutomationNativePointer ( pointer ) 引数 oleobject pointer 戻り値 542 説明 ネイティブ ポインタのオブジェクトを含む OLE オブジェ クト変数の名前を指定します。 ポインタを格納する UnsignedLong 型変数を指定します。 GetAutomationNativePointer 関数が有効なポインタを取得 できなかった場合、pointer に 0 が設定されます。 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 PowerBuilder 第 10 章 解説 PowerScript 関数 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) END IF 関連項目 GetNativePointer ReleaseAutomationNativePointer ReleaseNativePointer GetByte 機能 blob 変数から Byte 型のデータを抽出します。 構文 GetByte ( blobvariable, n, b ) 引数 blobvariable n PowerScript リファレンス ボリューム 2 説明 Byte データ型の値を抽出したい Blob データ型の変数を指定 します。 Byte データ型の値を取り出したい blobvariable 内の位置の番 号を指定します。 543 GetByteArray 引数 b 説明 返された Byte 型のデータを格納したい Byte データ型の変数 を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返します。blobvariable のスコー プを超える場合は -1 を返します。引数のいずれかの値が null の場合は null を返します。 解説 blob 内の先頭の文字の値を取得したい場合は、文字の位置を定義する 引数を使用しないで Byte 関数を使用します。 例 次の例は、3 番目の位置にある文字の byte 値を取得する前に、シング ルライン エディット内のテキストを blob に変換します。 Int li_rtn Byte lb_byte Blob myBlob myBlob = Blob (sle_1.text, EncodingUTF8!) li_rtn = GetByte(myBlob, 3, lb_byte) messagebox("getbyte", string(lb_byte)) 関連項目 Byte SetByte GetByteArray 機能 blob に保存されている値を Byte 型の配列値として取得します。 構文 GetByteArray ( input ) 引数 input 戻り値 説明 バイト配列で返したい Blob データ型を指定します。 Any 型。正常に終了した場合、input 変数の値を Byte データ型の配列で 返します。input 変数が有効な blob でない場合は 0 を返します。 解説 戻り値をバイト配列に直接割り当てることができます。 例 次の例は、引数として渡された blob をバイト配列に変換します。 Byte ly_byte[] ly_byte[] = GetByteArray(blobarg) 関連項目 544 Blob GetByte PowerBuilder 第 10 章 PowerScript 関数 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 関数によって設定でき ます。 GetCertificateLabel の実装を指定しないと、EAServer が CORBA::NO_IMPLEMENT 例外を捕捉するため、このコールバックには デフォルトの実装が使用されることになります。デフォルトの実装を 使用した場合は常に、ラベルのリストのうち先頭の証明書が返されます。 ラベルが指定されていない場合は、CtsSecurity::NoCertificateException が 生成されます。関数によって生成されるかもしれない例外はすべて、 そのプロトタイプに追加しておく必要があります。 PowerScript リファレンス ボリューム 2 545 GetCertificateLabel コールバックの実装が空の文字列を返した場合は、先に述べたデフォ ルトの実装が使用されるため、リストのうちの先頭にある証明書が返 されます。相互認証を要求したサーバが、その証明書を受け入れれば 接続が続行されますが、受け入れなければ接続は拒否されます。 有効な戻り値を取得するには、関数に渡された 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 MessageBox (" 個人の証明書が必要です ", & " 次の場所に接続するには、証明書が必要です : " & + sLocation + "~n 使用できる証明書がありません ") ls_rc = "" ELSE sText = "Available certificates: " FOR idx=1 to numLabels 546 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 ConnectToServer GetCredentialAttribute GetPin TrustVerify GetChildrenList 機能 トレースツリーモデルに含まれるルーチンの子リストを取得します。 対象 TraceTreeObject オブジェクト、TraceTreeRoutine オブジェクト、 TraceTreeGarbageCollect オブジェクト 構文 instancename.GetChildrenList ( list ) 引数 instancename list 戻り値 説明 TraceTreeObject オブジェクト、TraceTreeRoutine オブジェ クト、または TraceTreeGarbageCollect オブジェクトのイン スタンス名を指定します。 データ型が TraceTreeNode の可変長の配列変数を指定します。 GetChildrenList 関数は各ルーチンの子ごとに TraceTreeNode オブジェクトを格納します。この引数は、参照渡しされます。 ErrorReturn 型。次の値を返します。 • Success! - 成功しました。 • ModelNotExistsError! - モデルが存在しません。 PowerScript リファレンス ボリューム 2 547 GetColumn 解説 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 & + "." + ltctrt_rout.name + " " & + String(ltctrt_rout.ObjectID) + " " & + String(ltctrt_rout.EnterTimerValue) & + "~r~n" ltctrt_rout.GetChildrenList(ltctn_list) ... 関連項目 BuildModel GetColumn 機能 データウィンドウ コントロール、子データウィンドウ、またはリスト ビュー コントロールのカラムに関する情報を返します。 データウィンドウ コントロールまたは子データウィンドウの場合の 構文については、 『データウィンドウ リファレンス』マニュアルまた はオンライン ヘルプの「GetColumn メソッド」を参照してください。 対象 548 リストビュー コントロール PowerBuilder 第 10 章 構文 PowerScript 関数 listviewname.GetColumn ( index, label, alignment, width ) 引数 listviewname index label alignment 説明 リストビュー コントロールの名前を指定します。指定され たカラムのプロパティを返します。 カラムのインデックスを整数で指定します。指定されたカ ラムのプロパティを返します。 カラムのラベルを文字列で指定します。指定されたカラム のプロパティを返します。この引数は、参照渡しされます。 カラムの配置を Alignment カタログ データ型の値で指定 します。指定されたカラムのプロパティを返します。値は 以下のとおりです。 • Center! • Justify! • Left! • Right! width この引数は、参照渡しされます。 カラムの幅を整数で指定します。指定されたカラムのプロ パティを返します。この引数は、参照渡しされます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 指定されたカラムのプロパティを取得するには、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) PowerScript リファレンス ボリューム 2 549 GetCommandDDE lv_list.SetColumn(li_col, ls_label, Right!, & li_width) END IF 関連項目 SetColumn 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 イベントに応答するウィ ンドウのインスタンス変数です。 550 PowerBuilder 第 10 章 PowerScript 関数 integer ii_sheetnum DataSheet i_DataSheet[ ] クライアント アプリケーションから送られたコマンドをローカル変 数 ls_Action に格納します。 string ls_Action GetCommandDDE(ls_Action) IF ls_Action = "Open Next Sheet" THEN 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)を使用して、送信されたコマンドに応答するかど うかを決めます。それ以外の場合には、この関数はクライアントに関 する追加情報を返しません。 PowerScript リファレンス ボリューム 2 551 GetCommandString 例 次のスクリプトは、クライアント アプリケーションがサーバ アプリ ケーションを識別するために使用した名前を、ローカル変数 ls_name に格納します。 string ls_name GetCommandDDEOrigin(ls_name) 関連項目 GetCommandDDE StartServerDDE StopServerDDE GetCommandString 機能 dbmlsync から同期サーバに送信されたコマンド文字列を返します。 対象 MLSync コントロール 構文 syncObject.GetCommandString ( ) 引数 syncObject 戻り値 説明 同期サーバに発行された実際の dbmlsync コマンドを取得 したい同期を開始した MLSync オブジェクトの名前を指定 します。 String 型。同期サーバへの発行に設定されたコマンド文字列を返しま す。必 要 な プ ロ パ テ ィ が な い 場 合 は -1 を 返 し ま す(Datasource、 Publication、MLUser、および MLServerVersion プロパティが必要)。そ の場合、記述エラーが MLSync オブジェクトの ErrorText プロパティに 書き込まれます。 解説 エンド ユーザの混乱を避けるために、MobiLink アプリケーションのカ スタマイズした同期オプション ウィンドウで特定のコマンド ライン の 引 数 を 表 示 し た く な い 場 合 が あ り ま す。そ の よ う な 場 合、 GetCommandString 関数を呼び出してオプション ウィンドウが生成する コマンド ラインを返してから、ユーザに対して表示しないオプション の値を追加します。 例 MLSync オブジェクトについては、以下のように、同期を呼び出すた めのコマンド ライン引数をユーザが編集できるようにすることがで きます。 long rc string cmd cmd = myMLSync.GetCommandString() // 必要に応じて cmd を編集できます。 552 PowerBuilder 第 10 章 PowerScript 関数 ... rc = myMLSync.Synchronize(cmd) 関連項目 GetSyncRegistryProperties SetParm SetSyncRegistryProperties Synchronize 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 関連項目 GetContextService GetFixesVersion GetHostObject GetMajorVersion GetMinorVersion PowerScript リファレンス ボリューム 2 553 GetContextKeywords GetName GetShortName GetVersionName GetContextKeywords 機能 指定したキーワードに関連する値を 1 つまたは複数返します。 対象 ContextKeyword オブジェクト 構文 servicereference.GetContextKeywords ( name, values ) 引数 servicereference name values 戻り値 説明 サービス インスタンス ContextKeyword を参照します。 関数が対応する値を返すときのキーワードを指定しま す。 可変長文字列の配列で、name に対応する値を格納しま す。この引数は、参照渡しされます。 Integer 型。正常に終了した場合は values 内の要素数を返し、エラーが 発生した場合には -1 を返します。 解説 この関数を呼び出すと、環境変数を取得できます。使用可能な環境変 数は、実行コンテキストによって異なります。 関数は、固有のキーワードがある DOS 環境 変数のそれぞれにアクセスします。 • PowerBuilder 実行時 • PowerBuilder ウィンドウ プラグイン • PowerBuilder ウィンドウ ActiveX 関数は、固有のキーワードがあ EMBED タグで指定したキー ワードを取得します。キーワードは固有のものである必要はあり ません。EMBED タグにキーワードを指定していない場合、関数 は、指定された名前の DOS 環境変数の取得を試みます。 る DOS 環境変数のそれぞれにアクセスします。 この関数は、PowerBuilder EAServer コンポーネントの .props ファイル から特定のプロパティの値を返すために PowerBuilder EAServer コン ポーネントと一緒に使用することも可能です。EAServer コンポーネン トのプロパティを列挙するためには、Jaguar::Repository API を使用しま す。 例 次に、GetContextKeywords 関数を呼び出す例を示します。 String ls_keyword 554 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 GetContextService GetContextService 機能 指定したサービスのコンテキスト固有のインスタンスに対する参照を 返します。 対象 すべてのオブジェクト 構文 GetContextService ( servicename, servicereference ) PowerScript リファレンス ボリューム 2 555 GetContextService 引数 servicename 説明 サービス オブジェクトを指定する文字列です。次のい ずれかの値を指定します。 • ContextInformation - コンテキスト情報サービス • ContextKeyword または Keyword - コンテキスト キーワード サービス(AIX 以外のすべての EAServer プラットフォームでは、servicename として Keyword を使用する) • CORBACurrent - EAServer トランザクションのクラ イアント管理またはコンポーネント管理に対応した CORBA の現行サービス • ErrorLogging - EAServer や COM+ などのトランザ クション サーバで動作する PowerBuilder コンポー ネントに対するエラー ロギング サービス • Internet - インターネット サービス • SSLServiceProvider - PowerBuilder クライアントが EAServer コンポーネントへの SSL 接続を確立する ための SSL サービス プロバイダ サービス servicereference • TransactionServer - EAServer や COM+ などのトラン ザクション サーバで動作する PowerBuilder コン ポーネントに対するトランザクション サーバ サー ビス servicename で指定したサービス オブジェクトに対す る参照を格納する PowerObject を指定します。この引数 は、参照渡しされます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は、 負の整数を返します。戻り値が -1 であれば、特定できないエラーが発 生したという意味です。 解説 サービス オブジェクトの参照を作成することによって、サービス オブ ジェクトのメソッドやプロパティにアクセスできます。サービス オブ ジェクト関数を呼び出す前にこの関数を呼び出さなくてはなりませ ん。 Windows アプリケーションでは、ContextKeyword サービスのインスタ ン ス を 取 得 す る 場 合 は servicename 引 数 と し て ContextKeyword か Keyword を使用することが可能です。AIX 以外のすべての EAServer プ ラットフォームでは、Keyword を使用する必要があります。 556 PowerBuilder 第 10 章 PowerScript 関数 CREATE 文の使い方 これらのオブジェクトは、PowerScript の CREATE 文を使ってインスタ ンス化できます。ただし、アプリケーションを実行する環境にかかわ らず、デフォルトであるネイティブの PowerBuilder 実行環境向けのコ ンテキストでオブジェクトを作成します。 例 次に、GetContextService 関数を呼び出して、シングル ライン エディッ ト ボックスにサービスのクラスを表示する例を示します。 Integer li_return ContextKeyword lcx_key li_return = this.GetContextService & ("Keyword", lcx_key) sle_classname.Text = ClassName(lcx_key) ... 関連項目 BeginTransaction GetCompanyName GetContextKeywords GetHostObject GetMajorVersion GetMinorVersion GetName GetShortName GetURL GetVersionName HyperLinkToURL Init PostURL GetCredentialAttribute 機能 アカウント情報がユーザに動的に提供されるように、EAServer によっ て呼び出されます。この関数は、EAServer に接続している PowerBuilder クライアントによって使用されます。 対象 SSLCallBack オブジェクト 構文 sslcallback.GetCredentialAttribute ( thesessioninfo, attr, attrvalues ) PowerScript リファレンス ボリューム 2 557 GetCredentialAttribute 引数 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 関数によって設定でき ます。 GetCredentialAttribute の実装を指定しないと、EAServer が CORBA::NO_IMPLEMENT 例外を捕捉するため、このコールバックには デフォルトの実装が使用されることになります。デフォルトの実装を 使用した場合は常に、指定された値のリストのうち先頭の値が返され ます。値が指定されていない場合は、CtsSecurity::NoValueException が生 成されます。関数によって生成されるかもしれない例外はすべて、そ のプロトタイプに追加しておく必要があります。 コールバックの実装が空の文字列を返した場合は、先に述べたデフォ ルトの実装が使用されるため、リストのうちの先頭にある値が返され ます。サーバがその値を受け入れれば接続が続行されます。受け入れ なければ接続は拒否されます。 558 PowerBuilder 第 10 章 PowerScript 関数 有効な戻り値を取得するには、関数に渡された 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: " 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 PowerScript リファレンス ボリューム 2 559 GetCurrentDirectory RETURN ls_rc 関連項目 ConnectToServer GetCertificateLabel GetPin TrustVerify GetCurrentDirectory 機能 ターゲット アプリケーションの現行ディレクトリを取得します。 構文 GetCurrentDirectory ( ) 戻り値 String 型。現行ディレクトリの絶対パス名を返します。 例 次に、現行ディレクトリの名前をシングルライン エディット テキスト ボックスの中に表示する例を示します。 sle_1.text = GetCurrentDirectory( ) 関連項目 ChangeDirectory CreateDirectory DirectoryExists RemoveDirectory GetData コントロールのデータを取得します。 取得するデータ グラフのデータ系列内のデータ ポイントの値 エディットマスク コントロールの書式設定されてい ないデータ OLE サーバのデータ 使用する構文 構文 1 構文 2 構文 3 構文 1 グラフのデータ ポイントのデータを取得する 機能 グラフのデータ系列内のデータ ポイントの値を取得します。 560 PowerBuilder 第 10 章 PowerScript 関数 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 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 関数を使用し てください。 例 以下に、データウィンドウ コントロール 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 に格納するステートメント を示します。 PowerScript リファレンス ボリューム 2 561 GetData 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!) 関連項目 DeleteData FindSeries GetDataValue InsertData ObjectAtPointer 構文 2 エディットマスク コントロールの書式設定されてい ないデータを取得する 機能 エディットマスク コントロールの書式設定されていないテキストを 取得します。 対象 エディットマスク コントロール 構文 editmaskname.GetData ( datavariable ) 引数 editmaskname datavariable 562 説明 データを含むエディットマスク コントロール EditMask_control の名前を指定します。 この関数がエディットマスク コントロールの書式設定さ れ て い な い デ ー タ を 代 入 す る 変 数 を 指 定 し ま す。 datavariable のデータ型は、ウィンドウ ペインタで選択す るエディットマスク コントロールのデータ型と一致して いる必要があります。指定できるデータ型は、Date 型、 DateTime 型、Decimal 型、Double 型、String 型、Time 型です。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 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 構文 3 OLE サーバのデータを取得する 機能 ユニフォーム データ転送を使用して、OLE コントロールに関連付けら れている OLE サーバのデータを取得します。 対象 OLE コントロール、OLE カスタム コントロール 構文 olename.GetData ( clipboardformat, data ) 引数 olename PowerScript リファレンス ボリューム 2 説明 データを入力するオブジェクトを含む OLE コントロール または OLE カスタム コントロールの名前を指定します。 563 GetData 引数 clipboardformat 説明 データの形式を指定します。標準の形式は、ClipboardFormat カタログ データ型の値で指定できます。また、独自の形式 は、文字列で指定します。 clipboardformat カタログ データ型の値は、以下のとおりで す。 ClipFormatBitmap! ClipFormatDIB! ClipFormatDIF! ClipFormatEnhMetafile! ClipFormatHdrop! ClipFormatLocale! ClipFormatMetafilePict! ClipFormatOEMText! ClipFormatPalette! ClipFormatPenData! ClipFormatRIFF! ClipFormatSYLK! ClipFormatText! ClipFormatTIFF! ClipFormatUnicodeText! ClipFormatWave! clipboardformat に指定された値が空の文字列("")または null の場合、GetData 関数は ClipFormatText! という形式で data データを転送します。 String 型または Blob 型の変数。OLE サーバのデータを格納 する変数を指定します。取得するデータが String 型の変数 に格納するのに適していない場合は、Blob 型の変数を使用 してください。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 OLE サーバがサポートしていないクリップボード形式を指定すると、 GetData 関数はエラーを返します。OLE サーバがサポートしている形 式を調べるには、OLE サーバのマニュアルを参照してください。 GetData 関数は、ユニフォーム データ転送を介して OLE サーバのデー タを取得します。ユニフォーム データ転送とは、Microsoft が定義した もので、コンテナ アプリケーションとの間でデータを交換する機構で す。PowerBuilder では、グローバル ハンドルを介してデータ転送を実 行できます。また、OLE サーバでは、グローバル ハンドルを介した データ転送がサポートされている必要があります。データ転送がサ ポートされていない場合は、そのサーバとの間でデータ転送を行うこ とはできません。 564 PowerBuilder 第 10 章 例 PowerScript 関数 エンド ユーザが 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 GetDataDDE 機能 ほかの DDE アプリケーションから送信されたデータを取得し、指定し た String 型の変数に格納します。PowerBuilder が、DDE クライアント または DDE サーバ アプリケーションとして機能しているときに、 GetDataDDE を使用することができます。 構文 GetDataDDE ( string ) 引数 string PowerScript リファレンス ボリューム 2 説明 String 型の変数を指定します。GetDataDDE 関数は、指定さ れた変数にリモート DDE アプリケーションから取得した データを格納します。 565 GetDataDDEOrigin 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合(た とえば、関数が不正なコンテキストで呼び出された場合)は -1 を返し ます。string が null の場合は、null を返します。 解説 通常、アプリケーションが DDE サーバである場合、GetDataDDE 関数 は RemoteSend イベントに対するウィンドウ スクリプトの中で呼び出 されます。また、アプリケーションが DDE クライアントである場合、 GetDataDDE 関数は HotLinkAlarm イベントに対するウィンドウ スクリ プトの中で呼び出されます。 例 PowerBuilder DDE クライアント アプリケーションが、Excel のスプレッ ド シートの 7 行目の 15 列目にホット リンクを設定しているものとし ます。この行と列に格納されている値が赤から緑に変更され、アプリ ケーションの HotLinkAlarm イベントを起動したとします。次に示す HotLinkAlarm イベントに対するスクリプトは、GetDataDDE 関数を呼び 出して新しい値を変数 Str20 に格納します。 // HotLinkAlarm イベントに対するスクリプト string Str20 GetDataDDE(Str20) 関連項目 GetDataDDEOrigin OpenChannel StartServerDDE StopServerDDE GetDataDDEOrigin 機能 ホット リンクが設定された DDE サーバ アプリケーションまたは DDE クライアント アプリケーションからのデータの発信元を判別し、指定 された文字列変数にアプリケーションの DDE 識別子を格納します。 PowerBuilder が DDE クライアントまたは DDE サーバ アプリケーショ ンとして機能しているときに GetDataDDEOrigin 関数を使用することが できます。 構文 GetDataDDEOrigin ( applstring, topicstring, itemstring ) 引数 applstring 566 説明 String 型の変数を指定します。GetDataDDEOrigin 関数は、 指定された変数にサーバ アプリケーションの名前を格納し ます。 PowerBuilder 第 10 章 引数 topicstring itemstring 戻り値 PowerScript 関数 説明 String 型の変数を指定します。GetDataDDEOrigin 関数は、 指定された変数にトピック(たとえば、Microsoft Excel の 場合は REGION.XLS など)を格納します。 String 型の変数を指定します。GetDataDDEOrigin 関数は、 指定された変数に項目の識別子(たとえば、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) 関連項目 GetDataDDE OpenChannel StartServerDDE StopServerDDE PowerScript リファレンス ボリューム 2 567 GetDataPieExplode 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 integer percentage percentage = 50 IF (This.GraphType <> PieGraph! and & This.GraphType <> Pie3D!) THEN RETURN clickedtype = This.ObjectAtPointer(series, & datapoint) 568 PowerBuilder 第 10 章 PowerScript 関数 IF (series > 0 and datapoint > 0) THEN This.GetDataPieExplode(series, datapoint, & percentage) MessageBox(" 切り離される割合 ", & " データ ポイント " + This.CategoryName(datapoint) & + " ( 系列 " + This.SeriesName(series) & + ") が " + String(percentage) + "% 切り離されまし た。") END IF 関連項目 SetDataPieExplode GetDataStyle グラフのデータ ポイントの表示形態を調べます。データ系列内の各 データ ポイントには、表示形態を個別に設定できます。使用する構文 は、取得する情報によって異なります。 取得する情報 データ ポイントの色 データ ポイントの線種と線幅 データ ポイントの塗りつぶしパターンまたはシンボ ル 使用する構文 構文 1 構文 2 構文 3 GetDataStyle 関数は、1 つのデータ ポイントについての情報を取得しま す。データ ポイントが属しているデータ系列には、表示形態を個別に 設定できます。通常、データ ポイントの表示形態を設定する値はデー タ系列の表示形態の設定と同じです。データ ポイントの表示形態を個 別に変更するには、SetDataStyle 関数を使用します。データ系列の表示 形態の情報を取得するには GetSeriesStyle 関数を使用し、データ系列の 表示形態の情報を設定するには SetSeriesStyle 関数を使用します。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、折れ線グラフ内のデータ ポイント またはデータ系列の塗りつぶしパターンを確認することができます。 ただし、その塗りつぶしパターンは表示されません。 GetDataStyle 関数が linestyle と enumvariable に格納するカタログ デー タ型の値については、SetDataStyle 関数を参照してください。 PowerScript リファレンス ボリューム 2 569 GetDataStyle 構文 1 データ ポイントの色を示す値を取得する 機能 グラフのデータ ポイントの色を示す値(RGB 値)を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, colortype, colorvariable ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含む データウィンドウ コントロールの名前を指定します。 指定されたコントロール上にあるグラフのデータ ポイ ントの色を示す値を取得します。 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") 570 PowerBuilder 第 10 章 PowerScript 関数 // 色を示す値を取得します。 gr_emp_data.GetDataStyle(SeriesNbr, 6, & Foreground!, color_nbr) 次に、データウィンドウ コントロール上のグラフ 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 説明 グラフ コントロールの名前、あるいはグラフを含む データウィンドウ コントロールの名前を指定します。 指定されたコントロール上にあるグラフのデータ ポイ ントの線種と線幅についての情報を取得します。 PowerScript リファレンス ボリューム 2 571 GetDataStyle 引数 説明 graphcontrol (オプション)String 型の値。データウィンドウ コント (データウィンド ロール上のグラフの名前を指定します。指定されたグ ウ コントロールの ラフのデータ ポイントの線種と線幅についての情報を 取得します。 み) seriesnumber データ系列の番号を指定します。指定されたデータ系 列のデータ ポイントの線種と線幅についての情報を取 得します。 datapointnumber データ ポイントの番号を指定します。指定されたデー タ ポイントの線種と線幅についての情報を取得します。 linestyle LineStyle 型の変数を指定します。指定された変数に、 線種についての情報を格納します。 linewidth 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 572 PowerBuilder 第 10 章 PowerScript 関数 // データ系列の番号を取得します。 SeriesNbr = dw_employees.FindSeries( & " gr_depts " , sle_series.Text) // 線種と線幅についての情報を取得します。 dw_employees.GetDataStyle("gr_depts", SeriesNbr, & 6, line_style, line_width) 関連項目 FindSeries GetSeriesStyle SetDataStyle SetSeriesStyle 構文 3 データ ポイントの塗りつぶしパターンまたはシンボ ルについての情報を取得する 機能 グラフのデータ ポイントの塗りつぶしパターンまたはシンボルにつ いての情報を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, enumvariable ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含む データウィンドウ コントロールの名前を指定します。 指定されたコントロール上にあるグラフのデータ ポイ ントの塗りつぶしパターンまたはシンボルについての 情報を取得します。 graphcontrol String 型の値。データウィンドウ コントロール内のグ (データウィンド ラフの名前を指定します。指定されたグラフのデータ ウ コントロールの ポイントの塗りつぶしパターンまたはシンボルについ み)(オプション) ての情報を取得します。 seriesnumber データ系列の番号を指定します。指定されたデータ系 列のデータ ポイントの塗りつぶしパターンまたはシン ボルについての情報を取得します。 datapointnumber データ ポイントの番号を指定します。指定されたデー タ ポイントの塗りつぶしパターンまたはシンボルにつ いての情報を取得します。 PowerScript リファレンス ボリューム 2 573 GetDataStyle 引数 enumvariable 説明 データの表示形態についての情報を格納する変数。 FillPattern カタログ データ型または grSymbolType カタ ログ データ型の変数を指定できます。表示形態の情報 は、変数の型によって異なります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ ポイントの塗りつぶしパターンまた はシンボルについての情報は、enumvariable に指定された変数に格納 されます。引数のいずれかの値が null の場合、null を返します。 解説 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 574 PowerBuilder 第 10 章 PowerScript 関数 grSymbolType symbol_type // データ系列の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") gr_product_data.GetDataStyle(SeriesNbr, 10, & symbol_type) 以下に、データ ポイントのシンボルを変数 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 PowerScript リファレンス ボリューム 2 説明 データを取得するグラフ コントロールの名前を指定する か、グラフ コントロールを含むデータウィンドウ コント ロールの名前を指定します。 575 GetDataValue 引数 説明 graphcontrol (オプション)データを取得するデータウィンドウ コント (データウィン ロール内のグラフの名前の文字列を指定します。 ドウ コント ロールのみ) seriesnumber データを取得するデータ系列の番号を指定します。 datapoint データを取得するデータ ポイントの番号を指定します。 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 576 PowerBuilder 第 10 章 PowerScript 関数 MouseHit = & gr_prod_data.ObjectAtPointer(SeriesNbr, ItemNbr) IF ItemNbr > 0 THEN rtn = gr_prod_data.GetDataValue( & SeriesNbr, ItemNbr, data_value) 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 PowerScript リファレンス ボリューム 2 説明 日付の制限を確認する月表示カレンダ コントロールの名 前を指定します。 参照で返される日付の値を指定します。この値は、カレン ダで参照または表示できる最初の日付を表します。 参照で返される日付の値を指定します。この値は、カレン ダで参照または表示できる最後の日付を表します。 577 GetDbmlsyncPath 戻り値 Integer 型。最初と最後の両方の日付を正常に取得した場合は 0 を返し、 それ以外の場合は次のいずれかの値を返します。 -1 制限が設定されていません。 -2 不明なエラーです。 解説 最初と最後の日付を設定するには、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 GetDbmlsyncPath 機能 ワークステーションにインストールされている dbmlsync.exe の完全なパスと ファイル名を取得します。 対象 MLSync コントロールおよび MLSynchronization コントロール 構文 SyncObject.GetDbmlsyncPath ( ) 引数 syncObject 戻り値 説明 同期オブジェクトの名前を指定します。 String 型。実行可能な同期の完全なパスとファイル名の値を返します。 dbmlsync.exe が見つからない場合は -1 を返します。 578 PowerBuilder 第 10 章 PowerScript 関数 解説 このプロパティは、同期オブジェクトの MLServerVersion プロパティの 値を使用して、どのバージョンの dbmlsync を返すかを決定します。 例 この関数を使用して、MobiLink 同期ウィザードによって生成される w_appname_sync_options ウィンドウの[設定]タブ ページに表示され る[追加設定]および[拡張設定]フィールドの横にあるヘルプ([?]) ボタンを使用できるようにしています。ヘルプ([?])ボタンの Clicked イベントには、以下のようなスクリプトが含まれています。 string sCmd sCmd = i_uosync.GetDbmlsyncPath() if len(sCmd) > 0 then sCmd += " ?" // 拡張オプションのヘルプの場合は sCmd += ' -l' run(sCmd, Normal!) end if GetDisplayRange 機能 現在表示されている日付範囲の最初と最後の日付を取得し、全部また は一部が表示されている月の数を返します。 対象 月表示カレンダ コントロール 構文 controlname.GetDisplayRange ( start, end {, d } ) 引数 controlname start end d (オプション) 説明 日付範囲を取得する月表示カレンダ コントロールの名前 を指定します。 参照で返される表示範囲内で最初の日付を指定します。 参照で返される表示範囲内で最後の日付を指定します。 MonthCalDisplayState カタログ データ型変数の値。値は以 下のとおりです。 EntirelyDisplayed! - すべての日が表示されている月の 表示日付範囲を取得します。 PartlyDisplayed! - 一部の日でも表示されている月の表 示日付範囲を取得します(デフォルト)。 戻り値 Integer 型。正常に終了した場合は表示範囲内の月の数を返し、エラー が発生した場合は -1 を返します。 解説 GetDisplayRange 関数は、カレンダに現在表示されている日付の範囲内 の最初と最後の日付を取得します。 PowerScript リファレンス ボリューム 2 579 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 を格 納します。 例 次の例は、メッセージ ボックスに、表示範囲内の月数および表示範囲 の最初の日付と最後の日付を表示します。第 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 関連項目 580 GetSelectedRange PowerBuilder 第 10 章 PowerScript 関数 GetDynamicDate 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから Date 型のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicDate ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。index には、 DynamicDescriptionArea オブジェクトの NumOutputs の値以下の値を指定する必要があ ります。 戻り値 Date 型。DynamicDescriptionArea の index で指定された出力パラメータ 記述子に格納されている Date 型のデータを返します。エラーが発生し た場合には、1900-01-01 を返します。引数のいずれかの値が null の場合、 null を返します。 解説 動的 SQL の書式 4 を使用してデータを取得した後、通常は SQLDA で ある DynamicDescriptionArea オブジェクトには、取得したデータに関 する情報が格納されます。SQLDA プロパティの NumOutputs は、返さ れたデータの記述子の数を示します。プロパティの配列の OutParmType には、返された各値のデータ型を示す ParmType カタログ データ型の 値が格納されます。 OutParmType の値が TypeDete! のとき、GetDynamicDate 関数を使用し て、配列内の値を取得します。 例 以下に、2 番目の出力パラメータの記述子に格納されている Date 型の 値を Today に設定するステートメントを示します。 Date Today Today = GetDynamicDate(SQLDA, 2) 書式 4 の動的 SQL 文を実行した後で、データは DynamicDescriptionArea オブジェクトに格納されます。次に、格納されたデータのデータ型を 確認し、CHOOSE CASE 文を使用してその値をローカル変数に設定する 例を示します。 PowerScript リファレンス ボリューム 2 581 GetDynamicDate 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 関連項目 582 GetDynamicDateTime GetDynamicNumber GetDynamicString GetDynamicTime SetDynamicParm 動的 SQL の使い方 PowerBuilder 第 10 章 PowerScript 関数 GetDynamicDateTime 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから DateTime 型のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicDateTime ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。index には、 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 関数を参照してください。 関連項目 GetDynamicDate GetDynamicNumber PowerScript リファレンス ボリューム 2 583 GetDynamicDecimal GetDynamicString GetDynamicTime SetDynamicParm 動的 SQL の使い方 GetDynamicDecimal 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから 数値データを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicDecimal ( index ) 引数 DynamicDescriptionArea index 説明 DynamicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラ メータの記述子を指定します。index には、 DynamicDescriptionArea オブジェクトの NumOutputs の値以下の値を指定する必要があり ます。 戻り値 Decimal 型。DynamicDescriptionArea の index で指定された出力パラメー タ記述子内の数値データを返します。エラーが発生した場合、0 を返 します。引数のいずれかの値が null の場合、null を返します。 解説 OutParmType の値が TypeDecimal! または TypeLongLong! のいずれかの ときに、GetDynamicDecimal 関数を使用して、配列内の値を取得します。 例 以下に、2 番目の出力パラメータの記述子内の数値データを DeptId に 設定するステートメントを示します。 Integer DeptId DeptId = SQLDA.GetDynamicDecimal(2) DynamicDescriptionArea オブジェクトからのデータ取得の例について は、GetDynamicDate を参照してください。 関連項目 584 GetDynamicDate GetDynamicNumber GetDynamicString PowerBuilder 第 10 章 PowerScript 関数 GetDynamicTime SetDynamicParm 動的 SQL の使い方 GetDynamicNumber 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから 数値データを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicNumber ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。index には、 DynamicDescriptionArea の NumOutputs の値以下 の値を指定する必要があります。 戻り値 Double 型。DynamicDescriptionArea の index に指定された出力パラメー タの記述子に格納されている数値データを返します。エラーが発生し た場合には 0 を返します。引数のいずれかの値が null の場合、null を返 します。 解説 OutParmType の値が、TypeByte!、TypeInteger!、TypeDouble!、TypeLong!、 TypeReal!、TypeBoolean! のいずれかのとき、GetDynamicNumber 関数を 使用して、配列内の値を取得します。 OutParmType の値が TypeDecimal! または TypeLongLong! の場合、かわ りに GetDynamicDecimal 関数を使用します。 例 以下に、2 番目の出力パラメータの記述子に格納されている数値型の 値を DeptId に設定するステートメントを示します。 Integer DeptId DeptId = SQLDA.GetDynamicNumber(2) DynamicDescriptionArea オブジェクトからデータを取得する例につい ては、GetDynamicDate 関数を参照してください。 PowerScript リファレンス ボリューム 2 585 GetDynamicString 関連項目 GetDynamicDate GetDynamicDateTime GetDynamicDecimal GetDynamicString GetDynamicTime SetDynamicParm 動的 SQL の使い方 GetDynamicString 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから String 型のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicString ( index ) 引数 DynamicDescriptionArea index 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。index には、 DynamicDescriptionArea の NumOutputs の値以下 の値を指定する必要があります。 戻り値 String 型。DynamicDescriptionArea の index に指定された出力パラメー タの記述子に格納されている文字列データを返します。エラーが発生 した場合、空の文字列("")を返します。引数のいずれかの値が null の 場合、null を返します。 解説 OutParmType の値が TypeString! のとき、GetDynamicString 関数を使用し て、配列内の値を取得します。 例 以下に、2 番目の出力パラメータの記述子に格納されている文字列の 値を LName に設定するステートメントを示します。 String LName LName = SQLDA.GetDynamicString(2) DynamicDescriptionArea オブジェクトからデータを取得する例につい ては、GetDynamicDate 関数を参照してください。 586 PowerBuilder 第 10 章 関連項目 PowerScript 関数 GetDynamicDate GetDynamicDateTime GetDynamicNumber GetDynamicTime SetDynamicParm 動的 SQL の使い方 GetDynamicTime 機能 動的 SQL 文を実行した後、DynamicDescriptionArea オブジェクトから 時刻のデータを取得します。 注意 この関数は、書式 4 の動的 SQL 文の実行後のみ使用できます。 構文 DynamicDescriptionArea.GetDynamicTime ( index ) 引数 DynamicDescriptionArea index 戻り値 説明 DynamaicDescriptionArea の名前を指定します。 通常、SQLDA です。 Integer 型の値。データを取得する出力パラメー タの記述子を指定します。index には、 DynamicDescriptionArea の NumOutputs の値以下 の値を指定する必要があります。 Time 型。DynamicDescriptionArea の index に指定された出力パラメータ の記述子に格納されている時刻データを返します。エラーが発生した 場合、00:00:00.000000 を返します。引数のいずれかの値が null の場合、 null を返します。 解説 OutParmType の値が TypeTime! のとき、GetDynamicTime 関数を使用し て、配列内の値を取得します。 例 以下に、1 番目の出力パラメータの記述子に格納されている Time 型の 値を Start に設定するステートメントを示します。 Time Start Start = SQLDA.GetDynamicTime(1) DynamicDescriptionArea オブジェクトからデータを取得する例につい ては、GetDynamicDate 関数を参照してください。 PowerScript リファレンス ボリューム 2 587 GetEnvironment 関連項目 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 プロパティを リセットすることができます。 例 次のスクリプトは、ほかの PowerBuilder アプリケーションを実行し、 Environment オブジェクトの OSType プロパティを使用してパスを決定 しています。 string path environment env integer rtn rtn = GetEnvironment(env) IF rtn <> 1 THEN RETURN 588 PowerBuilder 第 10 章 PowerScript 関数 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) GetFileOpenName 機能 システムのファイルを開く ダイアログボックスを表示し、ファイルの 選択またはファイル名の入力を可能にします。 構文 GetFileOpenName ( title, pathname, filename {, extension {, filter { , initdir { , aFlag } } } } ) GetFileOpenName ( title, pathname, filename[ ] {, extension {, filter { , initdir { , aFlag } } } } ) 引数 title PowerScript リファレンス ボリューム 2 説明 ダイアログボックスのタイトルを表す文字列を指定します。 589 GetFileOpenName 引数 pathname filename, filename[ ] extension (オプション) filter (オプション) 説明 返されるパスを格納する文字列変数を指定します。ユーザ が単一ファイルを選択する場合は、pathname 変数はパス名 とファイル名を含みます。 返されたファイル名を格納する文字列変数、または選択さ れた複数のファイル名を格納する文字列変数の配列を指 定します。文字列変数の配列を指定した場合は、ダイアロ グボックスで複数選択が可能になります。 String 型の値。1 文字以上 3 文字以下の標準のファイル拡 張子を指定します。この引数を省略すると、" 拡張子なし " が標準の設定になります。 String 型の値。リストボックス内に含めるファイルの説明、 および表示するファイルを選択するために使用するファ イル マスク(たとえば、*.* や *.exe など)を指定します。 構文は、次のとおりです。 description,*. ext 1 つの表示文字列に対して複数のフィルタ パターンを指 定するには、以下のようにセミコロンを使用してパターン を区切ります。 "Graphic Files (*.bmp;*.gif;*.jpg;*.jpeg), *.bmp;*.gif;*.jpg;*.jpeg" デフォルトでは、次のように設定されます。 " すべてのファイル (*.*),*.*" initdir (オプション) aFlag (オプション) 戻り値 590 初期ディレクトリの名前を表す文字列を指定します。指定 を省略した場合は、現行のディレクトリが適用されます。 ダイアログボックスで使用できるオプションを表す UnsignedLong 型の値を指定します。各オプションのフラグ の値は、2 の(index -1)乗として計算されます。なお、index は オ プ シ ョ ン に 関 連 付 け ら れ た 整 数 値 を 表 し ま す。 GetOpenFileName に渡される aFlag の値は、各オプション のフラグの値の合計になります。オプションの一覧、各オ プションに関連付けられたインデックス、および各オプ ションの意味については、「解説」の表を参照してくださ い。 Integer 型。正常に終了した場合は 1 を返します。エンド ユーザが[キャ ンセル]ボタンをクリックした場合、または Windows が表示をキャン セルした場合には、0 を返します。エラーが発生した場合、-1 を返し ます。引数のいずれかの値が null の場合、null を返します。 PowerBuilder 第 10 章 解説 PowerScript 関数 開発者が標準のファイル拡張子を 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" GetFileOpenName 関数および GetFileSaveName 関数によって表示された ダイアログボックスは、システムのダイアログボックスです。このダ イアログボックスは、現行ディレクトリ全体の制御を含む標準のシス テムの動作形態を提供します。ダイアログボックス内のドライブ、ディ レクトリ、またはフォルダが変更された場合、現行のディレクトリや フォルダも変更されます。ここで新しく指定したディレクトリまたは フォルダは、引数 initdir を別途指定しない限り、アプリケーションを 終了するまで、ファイル操作での標準設定となります。 引数 aFlag は、ダイアログボックスの外観を規定するオプションを 1 つ以上指定する場合に使用します。各オプションについて、フラグの 値は 2^(index -1) になります。index は、各オプションに関連付けら れた整数値を表します(次の表を参照)。aFlag(各フラグの値を追加 することによって計算される)を渡すことによって複数のオプション を渡すことができます。 PowerScript リファレンス ボリューム 2 591 GetFileOpenName aFlag を渡さなかった場合は、エクスプローラ形式のファイルを開く ダイアログボックスが使用されます。フラグを渡した場合は、従来の 形式のダイアログボックスがデフォルトで使用されます。エクスプ ローラ形式のダイアログボックスでは、一部のオプションが適用され ません。エクスプローラ形式のダイアログボックスを表示する場合に、 適用するオプションを指定するには、そのオプションの値にエクスプ ローラ形式のダイアログボックスを使用するためのオプション値(2) を追加してください。 たとえば、GetFileSaveName 関数にフラグ 32768(2^15)を渡すと、デ フォルトで、 [読み取り専用]チェックボックスがオンになった状態で 従来の形式のダイアログボックスが開きます。フラグ 32770 を渡すと、 デフォルトで、 [読み取り専用]チェックボックスがオンになった状態 でエクスプローラ形式のダイアログボックスが開きます。 表 0-4: GetFileOpenName と GetFileSaveName のオプション値 インデッ クス 1 定数名 OFN_CREATEPROMPT 2 3 4 5 6 OFN_EXPLORER OFN_EXTENSIONDIFFERENT OFN_FILEMUSTEXIST OFN_HIDEREADONLY OFN_LONGNAMES 7 OFN_NOCHANGEDIR 8 OFN_NODEREFERENCELINKS 9 OFN_NOLONGNAMES 10 OFN_NONETWORKBUTTON 11 OFN_NOREADONLYRETURN 592 説明 指定されたファイルが存在しない場合、ファイルを作成す るかどうかを確認するメッセージを表示します。ユーザが ファイルの作成を選択した場合、ダイアログボックスは閉 じられます。それ以外の場合は、ダイアログボックスは開 いたままになります。 エクスプローラ形式のダイアログボックスを使用します。 入力されたファイル拡張子が指定の拡張子と異なります。 既存のファイル名のみを入力できます。 [読み取り専用]チェックボックスを非表示にします。 長いファイル名を使用します。エクスプローラ形式のダイ アログボックスでは無視されます。 ユーザがファイルの探索中にディレクトリを変更した場 合に、現行のディレクトリを元の値に戻します。Windows NT、2000、XP で GetOpenFileName を使用した場合、この オプションは無視されます。 選択されたショートカット(.lnk ファイル)のパスとファ イル名を返します。このオプションの指定を省略した場合 は、ショートカットの参照先のパスとファイル名が返され ます。 短いファイル名(8.3 形式)を使用します。エクスプロー ラ形式のダイアログボックスでは無視されます。 ネットワーク ボタンを非表示にします。エクスプローラ形 式のダイアログボックスでは無視されます。 返されるファイルは読み取り専用ではなく、書き込み保護 されたディレクトリにありません。 PowerBuilder 第 10 章 インデッ クス 12 定数名 OFN_NOTESTFILECREATE 13 14 OFN_NOVALIDATE OFN_OVERWRITEPROMPT 15 16 OFN_PATHMUSTEXIST OFN_READONLY PowerScript 関数 説明 ダイアログボックスが閉じられるまでファイルを作成し ません。ファイルの作成のみが可能で変更はできない共有 ネットワークにファイルを保存するアプリケーションの 場合は、このオプションを指定する必要があります。書き 込み保護、ディスクの容量、開かれているドライブ ドア、 ネットワーク保護については、チェックされません。 1 度閉じたファイルを再び開くことはできません。 ファイル名に無効な文字を許可します。 名前を付けて保存 ダイアログボックスで使用します。選択 されたファイルがすでに存在する場合、メッセージ ボック スを生成します。 有効なパスとファイル名の入力のみを許可します。 保存ダイアログボックスが作成されたときに[読み取り専 用]チェックボックスをオンにします。 ファイルを開く 選択したファイルを開くには、FileOpen 関数を使用します。 例 次の使用例は、複数のファイルを選択できるファイルの選択 ダイアロ グボックスを表示します。ファイルの種類は TXT、DOC、およびすべ てのファイルで、最初のディレクトリは C:\Program Files\Sybase です。 オプションのフラグ 18 を指定しているため、エクスプローラ形式のダ イアログ ボックスが使用され(2^1 = 2)、[読み取り専用]チェック ボックスが非表示になります(2^4 = 16)。選択されたファイル名はマ ルチライン エディット コントロールに表示されます。 ユーザが単一ファイルを選択した場合は、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 = "" PowerScript リファレンス ボリューム 2 593 GetFileOpenName 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 li_fileid = FileOpen (is_fullname, StreamMode!) FileRead (li_fileid, mle_notepad.text) FileClose (li_fileid) 関連項目 594 DirList DirSelect GetFileSaveName GetFolder PowerBuilder 第 10 章 PowerScript 関数 GetFileSaveName 機能 システムの ファイル名を付けて保存 ダイアログボックスを表示し、 [ファイル名]テキストボックスに指定されたファイル名を表示しま す。エンド ユーザは、ファイル名を入力するか、またはグレー表示さ れているリストからファイルを選択することができます。 構文 GetFileSaveName ( title, pathname, filename {, extension {, filter { , initdir { , aFlag } } } } ) GetFileSaveName ( title, pathname, filename [ ] {, extension {, filter { , initdir { , aFlag } } } } ) 引数 title pathname filename, filename[ ] extension (オプション) filter (オプション) initdir (オプション) PowerScript リファレンス ボリューム 2 説明 ダイアログボックスのタイトルを表す文字列を指定しま す。 標準のパス名と返されるパスを格納する文字列変数を指 定します。ユーザが単一ファイルを選択する場合は、 pathname 変数はパス名とファイル名を含みます。標準の ファイル名が[ファイル名]テキストボックスに表示さ れます。ただし、エンド ユーザは、別の名前を指定する ことができます。 返されたファイル名を格納する文字列変数、または選択さ れた複数のファイル名を格納する文字列変数の配列を指 定します。文字列変数の配列を指定した場合は、ダイアロ グボックスで複数選択が可能になります。 String 型の値。1 文字以上 3 文字以下の標準のファイル拡 張子を指定します。この引数を省略すると、" 拡張子なし " が標準の設定になります。 String 型の値。表示するファイルの説明、および表示する ファイルを選択するために使用するファイル拡張子(フィ ルタ)を指定します。構文は、次のとおりです。 description,*. ext 特に指定しない限り、" すべてのファイル (*.*),*.*" が設 定されます。 初期ディレクトリの名前を表す文字列を指定します。指定 を省略した場合は、現行のディレクトリが適用されます。 595 GetFileSaveName 引数 aFlag (オプション) 説明 ダイアログボックスで使用できるオプションを表す 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 関数を参照してください。 例 596 次のステートメントは、ユーザが単一ファイルを選択できるようにす るためにファイルの選択 ダイアログボックスを表示します。標準の ファイル拡張子は DOC で、フィルタはすべてのファイルを表示し、最 初のディレクトリは C:\My Documents です。aFlag オプションに 32770 を指定しているため、ダイアログボックスが作成されたときに[読み 取り専用]チェックボックスがオンになった状態でエクスプローラ形 式のダイアログボックスが使用されます。ファイルが正常に選択され た場合、そのパスがシングルライン エディット コントロールに表示さ れます。 PowerBuilder 第 10 章 PowerScript 関数 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 GetFirstSheet 機能 シートがアクティブであるかどうかにかかわらず、MDI フレームの最 前面にあるシートを取得します。 対象 MDI フレーム ウィンドウ 構文 mdiframewindow.GetFirstSheet ( ) 引数 mdiframewindow 説明 最前面のシートを求める MDI フレーム ウィンドウを 指定します。 戻り値 Window 型。MDI フレームの最前面にあるシートを返します。フレー ム上に開いているシートがない場合、GetFirstSheet 関数は無効な値を返 します。mdiframewindow が null の場合は、null を返します。 解説 フレーム上の開いているシートに対して連続した処理を行う場合、 GetFirstSheet 関数と GetNextSheet 関数を使用します。これらの関数を GetActiveSheet 関数と組み合わせて使用することはできません。 PowerScript リファレンス ボリューム 2 597 GetFixesVersion GetFisrtSheet 関数の戻り値 IsValid 関数を使用して、戻り値が有効かどうかを確認します。無効な 値の場合、開いているシートはありません。 例 メニュー項目に対する次のスクリプトは、MDI フレームの最前面にあ るシートを返します。 window wSheet string wName wSheet = ParentWindow.GetFirstSheet() IF IsValid(wSheet) THEN // 開いているシートがあります。 wName = wsheet.ClassName() MessageBox(" 最初のシート ", wName) END IF 関連項目 GetNextSheet IsValid GetFixesVersion 機能 現在の PowerBuilder 実行コンテキストの修正レベルを返します。たと えば、管理レベルが 10.2.1 の場合、修正バージョンは 1 になります。 対象 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 598 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 GetCompanyName GetHostObject GetMajorVersion GetMinorVersion GetName GetShortName GetVersionName GetFocus 機能 現在フォーカスが設定されているコントロールを確認します。 構文 GetFocus ( ) 戻り値 GraphicObject 型。現在フォーカスが設定されているコントロールを返 します。エラーが発生した場合、不正なコントロールに対する参照を 返します。 GetFocus が有効なコントロールを返したかどうかを確認するには、 IsValid 関数を使用します。 例 以下に、which_control を現在フォーカスが設定されているコントロー ルと同じデータ型に設定し、そのコントロールのテキスト プロパティ を text_value に設定するステートメントを示します。 GraphicObject which_control SingleLineEdit sle_which PowerScript リファレンス ボリューム 2 599 GetFolder 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 = "" END CHOOSE 関連項目 IsValid SetFocus GetFolder 機能 フォルダ選択用のダイアログボックスを表示します。 構文 GetFolder ( title, directory ) 引数 title directory 戻り値 600 説明 フォルダ選択用のツリービューが含まれているダイアロ グボックスの上部に表示される、タイトルの文字列を指定 します。 フォルダ選択用のダイアログボックスに参照渡しされる ディレクトリ名の文字列を指定します。このディレクトリ 名が選択され、それにサブフォルダが存在する場合はダイ アログボックスのツリービューに表示されます。 Integer 型。関数が正常に終了した場合は 1 を返します。エンド ユーザ が[キャンセル]ボタンをクリックした場合(またはダイアログボッ クスを閉じた場合)は 0 を返します。エラーが発生した場合は -1 を返 します。 PowerBuilder 第 10 章 PowerScript 関数 解説 ユーザによって選択されたディレクトリは、フォルダ選択用のダイア ログボックスに渡されたのと同じ変数の中に返されます。 例 次に、フォルダ選択用のダイアログボックスで、Sybase ディレクトリ のフォルダの内容を表示する例を示します。title 引数に渡された文字 列は、ツリービューの上部に表示されます。 string ls_path = "d:\program files\sybase" integer li_result li_result = GetFolder( "my targets", ls_path ) sle_1.text=ls_path // ユーザが選択したパスをシングルライン エディット ボックスに入れ ます。 関連項目 DirectoryExists DirList DirSelect GetCurrentDirectory GetFileOpenName GetFileSaveName GetGlobalProperty 機能 SSL グローバル プロパティの値を返します。この関数は、EAServer に 接続している PowerBuilder クライアントによって使用されます。 対象 SSLServiceProvider オブジェクト 構文 sslserviceprovider.GetGlobalProperty ( property, values) 引数 sslserviceprovider property サポートされている全 SSL プロパティのリストにつ いては EAServer のマニュアルまたは Connection オブ ジェクトのオンライン ヘルプを参照してください。 指定された SSL プロパティの値を格納する String 型 の配列を指定します。 values 戻り値 説明 SSLServiceProvider サービス インスタンスへの参照を 指定します。 値を返す SSL プロパティの名前を指定します。 Long 型。以下のいずれかの値を返します。 0 正常に終了しました。 PowerScript リファレンス ボリューム 2 601 GetHostObject -1 不明なプロパティです。 -3 プロパティに値がありません。 -10 EAServer または SSL のエラーが発生しました。 -11 引数リストが不正です。 解説 GetGlobalProperty 関数を使用すると、EAServer に SSL 接続している PowerBuilder クライアントが、グローバル SSL プロパティにアクセス できます。 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 オートメーション サーバ オブジェクトに対 する参照を返します。 602 PowerBuilder 第 10 章 対象 ContextInformation オブジェクト 構文 servicereference.GetHostObject ( hostobject ) 引数 servicereference hostobject 戻り値 PowerScript 関数 説明 コンテキスト情報のサービス インスタンスを参照しま す。 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 関連項目 GetCompanyName GetName GetShortName GetVersionName PowerScript リファレンス ボリューム 2 603 GetItem GetItem リストビュー コントロールとツリービュー コントロールの指定され た項目に関連付けられているデータを取得します。 取得するデータ リストビュー コントロールの指定された項目に関連 付けられているデータ リストビュー コントロールの指定された項目とカラ ムに関連付けられているデータ ツリービュー コントロールの指定された項目に関連 付けられているデータ 使用する構文 構文 1 構文 2 構文 3 構文 1 リストビュー コントロールに対して 機能 リストビュー コントロールから、そのプロパティを調べるために ListViewItem オブジェクトを取得します。 対象 リストビュー コントロール 構文 listviewname.GetItem ( index, {column}, item ) 引数 listviewname index column item 説明 項目を取得するリストビュー コントロールの名前を指定 します。 取得する項目のインデックス番号を指定します。 項目の情報を取得するカラムのインデックス番号を指定 します。 ListViewItem オブジェクトを格納する ListViewItem 変数を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。取得した ListViewItem オブジェクトを、ListViewItem 変数の中に格納します。 解説 この構文によって、リストビュー コントロールの任意の項目のプロパ ティを取得することができます。カラムを指定しない場合は、項目の 最初のカラムのプロパティが取得されます。レポート ビューの場合の み、複数のカラムが表示されます。 ラベルだけを取得するには、構文 2 を使用します。特定の項目に固有 でないカラムのプロパティを取得するには、GetColumn 関数を使用しま す。 604 PowerBuilder 第 10 章 PowerScript 関数 リストビュー コントロールの項目に関連付けられたピクチャおよび そのほかのプロパティ値を変更するには、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 に表示する例を示します。 PowerScript リファレンス ボリューム 2 605 GetItem 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 606 PowerBuilder 第 10 章 PowerScript 関数 // 事前に選択されていたツリービューの項目を取得します。 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) PowerScript リファレンス ボリューム 2 607 GetLastReturn 関連項目 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 608 PowerBuilder 第 10 章 PowerScript 関数 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) 関連項目 AddToLibraryList SetLibraryList GetMajorVersion 機能 現行の PowerBuilder 実行コンテキストのメジャー バージョンを返しま す。たとえば、管理レベルが 10.2.1 の場合、メジャー バージョンは 10 です。 対象 ContextInformation オブジェクト PowerScript リファレンス ボリューム 2 609 GetMajorVersion 構文 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 関連項目 610 GetCompanyName GetFixesVersion GetHostObject GetMinorVersion GetName GetShortName GetVersionName PowerBuilder 第 10 章 PowerScript 関数 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 wf_acos 関数のコードは、SetMessage 関数の解説にコード例として示し てあります。 関連項目 SetMessage PowerScript リファレンス ボリューム 2 611 GetMinorVersion GetMinorVersion 機能 現行の PowerBuilder 実行コンテキストのマイナー バージョンを返しま す。たとえば、管理レベルが 10.2.1 の場合、マイナー バージョンは 2 です。 対象 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 + " を使用してください。") ELSEIF li_fixver <> 3 THEN MessageBox(" エラー ", & " バージョン " + ls_currver + " を使用してください。") END IF 関連項目 612 GetCompanyName GetFixesVersion GetHostObject PowerBuilder 第 10 章 PowerScript 関数 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) IF ls_name <> "PowerBuilder Runtime" THEN cb_close.visible = FALSE END IF 関連項目 GetCompanyName GetContextService GetFixesVersion GetHostObject PowerScript リファレンス ボリューム 2 613 GetNativePointer 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 スクリプトで、ポイ ンタを解放する必要があります。 外部 DLL 呼び出し専用 この関数は、外部 DLL 呼び出しに対してのみ有効です。 SetAutomationPointer 関数とは関係ありません。 例 次に、OLE オートメーションの外部関数を呼び出すために、OLE カス タム コントロール ocx_spell のポインタを取得する例を示します。 UnsignedLong lul_oleptr 614 PowerBuilder 第 10 章 PowerScript 関数 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 説明 次のシートを求める MDI フレーム ウィンドウを指定 します。 求めるシートの前面にあるシートを指定します。 戻り値 Window 型。MDI フレーム内で sheet に指定したシートの背面にある シートを返します。指定した sheet の背面にシートがない場合には、無 効な値を返します。引数のいずれかの値が null の場合は、null を返しま す。 解説 フレーム内の開いている各シートに対して連続した処理を行うには、 GetFisrtSheet 関数を使用して最初のシートを取得し、GetNextSheet 関数 を何回か使用して残りのシートを取得します。それぞれの戻り値を IsValid 関数を使用してチェックし、最後のシートに達したかどうかを 確認します。GetFirstSheet 関数と GetNextSheet 関数は、GetActiveSheet 関 数と組み合わせて使用することはできません。 GetNextSheet 関数の戻り値のチェック IsValid 関数を使用して GetNextSheet 関数が有効なウィンドウを返した かどうかを確認します。指定したシートの背面にシートがなかった場 合、無効な値を返します。 PowerScript リファレンス ボリューム 2 615 GetObjectRevisionFromRegistry 例 メニュー項目に対する次のスクリプトでは、最前面から背面に順番に 開いているシートを取得し、リストボックス 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 GetObjectRevisionFromRegistry 機能 Windows レジストリに格納されている同期のプロパティ値を同期オブ ジェクトに割り当てます。 対象 MLSynchronization コントロール、MLSync コントロール、ULSync コン トロール 構文 SyncObject.GetObjectRevisionFromRegistry ( ) 引数 syncObject 説明 同期オブジェクトの名前を指定します。 戻り値 Integer 型。ObjectRevision の値を返します。レジストリ キーが見つか らない場合や同期オブジェクトの SyncRegistryKey プロパティが設定 されていない場合、-1 を返します。 解説 レジストリ キーは、 HKEY_CURRENT_USER\SyncRegistryKey\DBSyncType に 配置されています。 SyncRegistryKey は同期オブジェクトの SyncRegistryKey プロパティの値、DBSyncType は MobiLink または UltraLite のいずれかで す。 関連項目 GetSyncRegistryProperties 616 PowerBuilder 第 10 章 PowerScript 関数 SetSyncRegistryProperties GetOrigin 機能 リストビューの項目の左上隅の X 座標と Y 座標を検索します。 対象 リストビュー コントロール 構文 listviewname.GetOrigin ( x , y ) 引数 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)+" です。") PowerScript リファレンス ボリューム 2 617 GetParagraphSetting GetParagraphSetting 機能 リッチテキスト エディット コントロールで挿入ポイントがある段落 のインデント、左余白、または右余白のサイズを取得します。 対象 リッチテキスト エディット コントロール 構文 rtecontrol.GetParagraphSetting ( whichsetting ) 引数 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 618 説明 ウィンドウ オブジェクト、ユーザ オブジェクト、メニュー 項目上のコントロールを指定します。指定されたコント ロールの親のオブジェクトを取得します。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 PowerObject 型。objectname に指定されたコントロールの親への参照を 返します。 例 タブ ページとして使用されるユーザ オブジェクトに対するイベント のスクリプトで、親のタブ コントロールへの参照を汎用的にするに は、次のように記述します。 // 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 PowerScript リファレンス ボリューム 2 619 GetPin a_tab.SelectTab(a_tab_page) 関連項目 ParentWindow 12 ページの「代名詞」 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 関数を呼び 出します。 620 PowerBuilder 第 10 章 PowerScript 関数 GetPin の実装を指定しないと、EAServer は CORBA::NO_IMPLEMENT 例 外を捕捉するため、空の文字列が返されます。有効な戻り値を取得す るには、PIN の入力を要求する関数をコーディングします。渡された thesessioninfo オブジェクトから取得したトークン名などの情報をユー ザに提供することも可能です。 不正な PIN か、空の文字列が返された場合、EAServer は TrustVerify コールバックを呼び出します。 このコールバック関数内で例外を送出することによって、このような 接続の試行をユーザがキャンセルすることが可能になります。 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) // 入力された値を取得します。 PowerScript リファレンス ボリューム 2 621 GetRecordSet s_PIN = Message.StringParm // 処理続行の場合はプロパティを設定します。 if s_PIN <> ABORT_VALUE then issp_jag.setglobalproperty("pin", s_PIN) // それ以外の場合は強制終了します。 else ue_cancelled = CREATE userabortedexception 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 Recordset を含む ADOResultSet オブジェクトを指 定します。 現行の ADO Recordset を格納する OLEObject オブジェ クトを指定します。この引数は、参照渡しされます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 GetRecordSet 関数は、ADO Recordset を、PowerBuilder でネイティブの ADO Recordset として使用できる OLEObject オブジェクトとして返す ために使用します。ADO Recordset を含む ADOResultSet オブジェクト には、事前に、SetRecordSet 関数や SetResultSet 関数を使用して値を入 れておく必要があります。 622 PowerBuilder 第 10 章 例 PowerScript 関数 次 の 例 で は、結 果 集 合 を 既 存 の デ ー タ ス ト ア オ ブ ジ ェ ク ト か ら ResultSet オブジェクトの中に生成します。ResultSet オブジェクトは、 新 し い ADOResultSet オ ブ ジ ェ ク ト を 作 成 す る の に 使 用 し ま す。 ADOResultSet オブジェクトでの GetRecordSet 関数は、ADO Recordset のメソッドで使用する OLEObject オブジェクトとして ADO Recordset を返すために使用します。 resultset lrs_resultset ADOresultset lrs_ADOresultset OLEObject loo_ADOrecordset // 既存のデータストアから結果集合を生成します。 ds_source.GenerateResultSet(lrs_resultset) // 新規の ADOResultSet オブジェクトを作成し、 // 上記で生成した結果集合から値を入れます。 lrs_ADOresultset = CREATE ADOResultSet lrs_ADOresultset.SetResultSet(lrs_resultset) // ADOResultset オブジェクトの中のデータを // ADO Recordset として使用できる OLEObject に渡します。 loo_ADOrecordset = CREATE OLEObject lrs_ADOresultset.GetRecordSet(loo_ADOrecordset) // OLEObject でネイティブの ADO Recordset メソッドを // 呼び出します。 loo_ADOrecordset.MoveFirst() 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GenerateResultSet メソッド SetRecordSet SetResultSet GetRemote DDE サーバ アプリケーションに対してデータを返し、そのデータを指 定された変数に格納するように要求します。確立した DDE 接続の種類 によって、使用する構文が異なります。 目的 使用する構文 DDE サーバ アプリケーションに対して 1 つのリクエスト 構文 1 を出す(コールド リンク) チャネルを開いた後、DDE サーバ アプリケーションから 構文 2 データを要求する(ウォーム リンク) PowerScript リファレンス ボリューム 2 623 GetRemote 構文 1 1 つの DDE リクエストを行う 機能 開かれているチャネルを要求せずに、DDE サーバ アプリケーションに 対してデータを要求し、そのデータを指定された変数に格納します。 サーバに対してリクエストを 1 つまたは 2 つしか行わない場合、この 構文が適しています。 構文 GetRemote ( location, target, applname, topicname {,bAnsi}) 引数 location target applname topicname bAnsi (オプション) 戻り値 説明 String 型の値。DDE サーバ アプリケーションから取得する データの位置を指定します。location の形式は、メッセー ジを受け取る DDE サーバ アプリケーションによって異な ります。 String 型の変数。取得したデータを格納する場所を指定し ます。 String 型の値。DDE サーバ アプリケーションの DDE 名を 指定します。別の PowerBuilder アプリケーションが DDE サーバの場合には、StartServerDDE 関数の呼び出し時に指 定したアプリケーション名を指定します。 String 型の値。コマンドで使用するアプリケーションのイ ンスタンスまたはデータを指定します。たとえば Microsoft Excel の場合、この引数には "system"、または開いている スプレッドシートの名前を指定します。別の PowerBuilder アプリケーションが DDE サーバの場合には、StartServerDDE 関数の呼び出し時に指定したトピック名を指定します。 Boolean 型の値。DDE サーバから取得する文字列が ANSI 形式かどうかを指定します。bAnsi が NULL、false、または 空の場合、PowerBuilder は初めに DDE データを UNICODE 形式の文字列として取得しようとします。bAnsi が true の 場合、PowerBuilder は DDE データを ANSI 形式の文字列と して取得しようとします。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 リンクは開始されていません。 リクエストが拒否されました。 引数のいずれかの値が null の場合は、null を返します。 解説 DDE を使用する場合、PowerBuilder アプリケーションは、クライアン ト ウィンドウとなるウィンドウを開いている必要があります。構文 1 では、アクティブ ウィンドウが DDE クライアントのウィンドウにな ります。 624 PowerBuilder 第 10 章 PowerScript 関数 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 構文 2 開いたチャネルを介して DDE リクエストを行う 機能 サーバに対するチャネルを開いてウォーム リンクを確立している場 合に、DDE サーバ アプリケーションに対してデータを返すように要求 し、返されたデータを指定された変数に格納します。複数の DDE リク エストを行う予定がある場合には、チャネルを開いてウォーム リンク を使用する方が効率的です。 構文 GetRemote ( location, target, handle {, windowhandle} {, bAnsi} ) 引数 location target handle windowhandle (オプション) bAnsi (オプション) PowerScript リファレンス ボリューム 2 説明 String 型の値。取得するデータの位置を指定します。 location の形式は、リクエストを受け付ける DDE アプリ ケーションによって異なります。 String 型の変数。取得したデータの格納先を指定します。 Long 型の値。DDE サーバ アプリケーションに対するチャ ネルを指定します。OpenChannel 関数を呼び出して DDE チャネルを開くと、この引数に指定された値が返されます。 DDE クライアントとして機能させているウィンドウに対 するハンドルを指定します。複数のウィンドウを開いてい るとき、DDE クライアントとして機能させるウィンドウ を指定するために使用します。 Boolean 型の値。DDE サーバから取得する文字列が ANSI 形式かどうかを指定します。bAnsi が NULL、false、また は空の場合、PowerBuilder は初めに DDE データを UNICODE 形式の文字列として取得しようとします。bAnsi が true の場合、PowerBuilder は DDE データを ANSI 形式の 文字列として取得しようとします。 625 GetRemote 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 -9 解説 リンクは開始されていません。 リクエストが拒否されました。 handle が null です。 DDE を使用する場合、PowerBuilder アプリケーションは、クライアン ト ウィンドウとなるウィンドウを開いている必要があります。この構 文の場合には、windowhandle を使用してクライアント ウィンドウを指 定できます。 この構文を使用する前に、OpenChannel 関数を呼び出して DDE チャネ ルを確立してください。 DDE チャネル、ウォーム リンク、コールド リンクについての詳細は、 ExecRemote 関数を参照してください。 例 次のステートメントは、handle で指定されたチャネル(Microsoft Excel のワークシート)に対して 1 行目の 2 列目のデータを返すように要求 し、返されたデータを PowerBuilder の String 型の変数 ls_ProfData に格 納します。GetRemote 関数は、OpenChannel 関数によって確立された ウォーム リンクを利用します。 String ls_ProfData 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)) 関連項目 626 CloseChannel ExecRemote PowerBuilder 第 10 章 PowerScript 関数 OpenChannel SetRemote GetSelectedDate 機能 選択されている日付を取得します。 対象 月表示カレンダ コントロール 構文 controlname.GetSelectedDate ( d ) 引数 controlname d 戻り値 説明 選択されている日付を取得する月表示カレンダ コント ロールの名前を指定します。 参照で返される日付の値。この値は、選択されている日付 を表します。 Integer 型。正常に終了した場合は 0 を返します。それ以外の場合は、 次のいずれかの負の値を返します。 -1 日付の範囲が選択されています。 -2 不明なエラーです。 解説 日付の範囲が選択されている場合は -1 を返し、その範囲内で最初の日 付を取得します。 例 次に、選択された日付を取得して seldate に格納する例を示します。 integer li_return Date seldate li_return = mc_1.GetSelectedDate(seldate) 関連項目 GetSelectedRange SetSelectedDate SetSelectedRange PowerScript リファレンス ボリューム 2 627 GetSelectedRange 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) if li_return = -1 then MessageBox(" 選択されている日付 ", & " 帰宅日を選択してください。") elseif li_return = 0 then MessageBox(" 選択されている日付 ", string(startdate) +& " - " + string(enddate) + " が選択されています。"& + "~r~n 確定する場合は[OK]をクリックしてください。") else MessageBox(" 選択されている日付 ", & " エラーが発生しました。旅行の日程を再度選択 " & + " してください。") end if 関連項目 628 GetDisplayRange GetSelectedDate SetSelectedDate SetSelectedRange PowerBuilder 第 10 章 PowerScript 関数 GetSeriesStyle グラフのデータ系列の表示形態を調べます。個別のデータ ポイントの 表示形態の設定を変更すると、データ系列の表示形態の設定も変更さ れます。したがって、GetSeriesStyle 関数から返された値は、必ずしも 現行のグラフの状態を反映しているとは限りません。使用する構文は、 取得する情報によって異なります。 目的 データ系列の色 データ系列の線種と線幅 データ系列の塗りつぶしパターンまたはシンボル データ系列のオーバーレイの状態(データ系列が別のグラ フの上に折れ線として表示されているかどうか) 使用する構文 構文 1 構文 2 構文 3 構文 4 GetSeriesStyle 関数は、データ系列についての情報を取得します。デー タ系列内の各データ ポイントには、表示形態を個別に設定できます。 データ系列の表示形態の情報を変更するには、SetSeriesStyle 関数を使 用します。データ ポイントの表示形態の情報を取得するには GetDataStyle を使用します。データ系列の表示形態の設定を上書きし、データ ポイ ントの表示形態を個別に設定するには、SetDataStyle 関数を使用しま す。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、折れ線グラフ内のデータ ポイント またはデータ系列の塗りつぶしパターンを確認することができます。 ただし、その塗りつぶしパターンは表示されません。 構文 1 データ系列の色を示す値を取得する 機能 グラフのデータ系列の色を示す値を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetSeriesStyle ( { graphcontrol, } seriesname, colortype, colorvariable ) 引数 controlname PowerScript リファレンス ボリューム 2 説明 グラフ コントロールの名前、またはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列の色を示す値 を取得します。 629 GetSeriesStyle 引数 説明 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ル内のグラフの名前を指定します。指定されたグラフの ドウ コント データ系列の色を示す値を取得します。 ロールのみ) seriesname String 型の値。データ系列の名前を指定します。指定され たデータ系列の色を示す値を取得します。 colortype grColorType カタログ データ型の値。色を示す値を取得す るデータ系列の外観を指定します。 • Foreground! - テキストの色 • Background! - 背景の色 • LineColor! - 線の色 colorvariable • Shade! - 影の色(3D グラフや塗りつぶしたデータ マー カーのあるグラフ) Long 型の変数を指定します。指定された変数に色の RGB 値を格納します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ系列と項目の RGB 値を colorvariable に格納します。引数のいずれかの値が null の場合は、null を返します。 例 次のステートメントは、グラフ 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 630 PowerBuilder 第 10 章 PowerScript 関数 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 データ系列の線種と線幅についての情報を取得する 機能 グラフのデータ系列の線種と線幅についての情報を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetSeriesStyle ( { graphcontrol, } seriesname, linestyle, linewidth ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列の線種と線幅 についての情報を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ルのグラフの名前を指定します。指定されたグラフの線種 ドウ コント と線幅についての情報を取得します。 ロールのみ) seriesname String 型の値。データ系列の名前を指定します。指定され たデータ系列の線種についての情報を取得します。 linestyle LineStyle 型の変数を指定します。指定された変数に、 seriesname に指定したデータ系列の線種を格納します。 linewidth Integer 型の変数を指定します。指定された変数に、 seriesname に指定したデータ系列の線の幅についての情報 を格納します。幅の単位はピクセルです。 PowerScript リファレンス ボリューム 2 631 GetSeriesStyle 戻り値 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 関連項目 AddSeries GetDataStyle FindSeries SetDataStyle SetSeriesStyle 構文 3 データ系列の塗りつぶしパターンまたはシンボルに ついての情報を取得する 機能 グラフのデータ系列の塗りつぶしパターンまたはシンボルについての 情報を取得します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.GetSeriesStyle ( { graphcontrol, } seriesname, enumvariable ) 632 PowerBuilder 第 10 章 引数 controlname PowerScript 関数 説明 グラフ コントロールの名前、あるいはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列の塗りつぶし パターンまたはシンボルについての情報を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ルのグラフの名前を指定します。指定されたグラフのデー タ系列の塗りつぶしパターンまたはシンボルについての ドウ コント ロールのみ) 情報を取得します。 seriesname String 型の値。データ系列の名前を指定します。指定され たデータ系列の塗りつぶしパターンまたはシンボルにつ いての情報を取得します。 enumvariable 塗りつぶしパターンまたはシンボルについての情報を格 納する変数を指定します。FillPattern カタログ データ型ま たは grSymbolType カタログ データ型の変数を指定できま す。GetSeriesStyle によって格納される表示形態の情報は、 変数の型によって異なります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ系列の塗りつぶしパターンまたはシ ンボルについての情報は、enumvariable に指定された変数に格納され ます。引数のいずれかの値が null の場合は、null を返します。 解説 GetSeriesStyle 関数が enumvariable に指定された変数に格納するカタロ グ データ型の値の一覧については、SetSeriesStyle 関数を参照してくだ さい。 例 次のステートメントは、グラフ 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 PowerScript リファレンス ボリューム 2 633 GetSeriesStyle 次の例では、データウィンドウ コントロール 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 上記の例では、最後の引数として指定した変数 data_pattern のデータ 型を変更して、シンボルについての情報を格納できるように設定する こともできます。 関連項目 AddSeries GetDataStyle FindSeries SetDataStyle SetSeriesStyle 構文 4 データ系列がオーバーレイであるかどうかを判別する 機能 グラフのデータ系列がオーバーレイであるかどうか、つまり、データ 系列が別のグラフの上に折れ線として表示されているかどうかを調べ ます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 634 PowerBuilder 第 10 章 構文 PowerScript 関数 controlname.GetSeriesStyle ( { graphcontrol, } seriesname,overlayindicator ) 引数 controlname 説明 グラフ コントロールの名前、あるいはグラフを含むデータ ウィンドウ コントロールの名前を指定します。指定された コントロール上にあるグラフのデータ系列のオーバーレ イの状態を示す値を取得します。 graphcontrol (オプション)String 型の値。データウィンドウ コントロー (データウィン ルのグラフの名前を指定します。指定されたグラフのデー ドウ コント タ系列のオーバーレイの状態を示す値を取得します。 ロールのみ) seriesname String 型の値。オーバーレイの状態を示す値を取得する データ系列の名前を指定します。 overlayindicator Boolean 型の変数。指定された変数に、seriesname に指定し たデータ系列がオーバーレイであるかどうかを示す値を 格納します。データ系列がオーバーレイの場合は true を返 し、オーバーレイでない場合は false を返します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。指定されたデータ系列がオーバーレイの場合は overlayindicator に true を返し、オーバーレイでない場合は false を返し ます。引数のいずれかの値が null の場合は、null を返します。 例 次のステートメントは、グラフ gr_emp_data のデータ系列がオーバーレ イであるかどうかを返します。データ系列の名前は、シングルライン エディット コントロール sle_series に入力されています。 boolean is_overlay gr_emp_data.GetSeriesStyle(sle_series.Text, & is_overlay) GetShortName 機能 現行の PowerBuilder 実行コンテキストのショートネームを取得しま す。 対象 ContextInformation オブジェクト 構文 servicereference.GetShortName ( shortname ) 引数 servicereference PowerScript リファレンス ボリューム 2 説明 ContextInformation サービス インスタンスへの参照を指定 します。 635 GetSpacing 引数 shortname 戻り値 説明 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 関連項目 GetCompanyName GetContextService GetFixesVersion GetHostObject GetMajorVersion GetMinorVersion GetName GetVersionName GetSpacing 機能 リッチテキスト エディット コントロールで挿入ポイントがある段落 の行間を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.GetSpacing ( ) 636 PowerBuilder 第 10 章 引数 rtename PowerScript 関数 説明 挿入ポイントがある段落の行間を調べるリッチテキスト エディット コントロールの名前を指定します。 戻り値 Spacing 型。挿入ポイントがある段落の行間を示す Spacing カタログ データ型の値を返します。 解説 複数の段落が選択されている場合、挿入ポイントは、最初の段落か最 後の段落にあります。挿入ポイントの位置は、エンド ユーザの段落の 選択方法によって異なります。報告される値は、挿入ポイントの位置 によって異なります。 例 次に、行間のカタログ データ型の値を変数 l_spacing に格納する例を示 します。値は、挿入ポイントがある段落の行間を示します。 spacing l_spacing l_spacing = rte_1.GetSpacing() 関連項目 GetTextStyle SetSpacing SetTextStyle GetStatus 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションのステータスを返します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.GetStatus ( ) 引数 CORBACurrent 戻り値 説明 CORBACurrent サービス インスタンスへの参照を指 定します。 Integer 型。エラーが発生した場合は -1 を返します。正常に終了した場 合は、以下の正の整数のいずれかを返します。 1 ステータス : アクティブ 2 ステータス : ロールバックの対象としてマーク済み 3 ステータス : 準備完了 4 ステータス : コミット完了 PowerScript リファレンス ボリューム 2 637 GetStatus 5 ステータス : ロールバック完了 6 ステータス : 不明 7 ステータス : トランザクションなし 8 ステータス : 準備中 9 ステータス : コミット中 10 ステータス : ロールバック中 解説 GetStatus 関数を使うと、BeginTransaction 関数を使用してトランザク ションを開始したクライアントまたはコンポーネントで、トランザク ションの現在のステータスを確認できます。EAServer は、2 フェーズ コミット トランザクション コーディネータ(OTS/XA)を使用してい ることが必要です。 GetStatus は、トランザクションが開始されていて prepare が発行されて いない場合、1 を返します。 GetStatus は、ヒューリスティックスが存在する可能性があれば 4 か 5 を返します。それ以外の場合で、トランザクションが完了後に破棄さ れたのであれば値として 7 が返されます。 戻り値が 6 であれば、トランザクションが遷移状態にあるという意味 であり、それ以降に呼び出しを行うと、最終的には別のステータスが 返されます。 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:2000") IF li_rc <> 1 THEN // エラーを処理します。 ELSE li_status = corbcurr.GetStatus() 638 PowerBuilder 第 10 章 PowerScript 関数 CHOOSE CASE li_status CASE 1 // 各値に応じた処理を行います。 ... END CHOOSE END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetTransactionName Init ResumeTransaction RollbackOnly RollbackTransaction SetTimeout SuspendTransaction GetSyncRegistryProperties 機能 レジストリに格納されている同期プロパティを使用するかどうかを決 定する Integer 型を返します。 対象 MLSyncrhonization コントロール、MLSync コントロール、ULSync コン トロール 構文 syncObject.GetSyncRegistryProperties ( ) 引数 syncObject 説明 同期オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1、失敗した場合は -1 を返します。 SyncRegistryKey プロパティが設定されていない場合や Windows レジ ストリにキーが存在しない場合は、失敗します。 解説 GetSyncRegistryProperties 関数は、レジストリに格納されている値を使 用して同期オブジェクトのプロパティを設定します。設定できるプロパ ティは、AdditionalOpts、DownloadOnly、ExtendedOpts、Host、LogFileName、 LogOpts、MLServerVersion、MLUser、ObjectRevision、Port、Publication、 UploadOnly、UseLogFile、UseWindow です。 Windows レ ジ ス ト リ に 格 納 で き な い AuthenticateParms、DBPass、 EncryptionKey などのセキュアなプロパティは設定できません。 PowerScript リファレンス ボリューム 2 639 GetText 例 SQL Anywhere の MobiLink ウィザードによって生成された MLSync オ ブジェクトは、Constructor イベント内で以下のコードを使用します。 long rc long RegistryRevision RegistryRevision =this.GetObjectRevisionFromRegistry() IF RegistryRevision < this.ObjectRevision THEN rc = this.SetSyncRegistryProperties() ELSE rc = this.GetSyncRegistryProperties() END IF このコードは、レジストリに格納されているビルド番号が実行中のア プリケーションのビルド番号よりも大きい場合にのみ、Windows レジ ストリに格納されている認証プロパティの値を取得します。 関連項目 GetCommandString GetObjectRevisionFromRegistry SetParm SetSyncRegistryProperties GetText 機能 指定された Format または CustomFormatReturns を適用したテキスト文 字列として Value プロパティを返します。 対象 日付ピッカー コントロール 構文 controlname.GetText ( ) 引数 controlname 説明 テキストを取得したいコントロールの名前を指定します。 戻り値 String 型 解説 GetText 関数を使用して、Value プロパティに格納された日付と時間を Format プロパティにしたがって、あるいは Format に dtfCustom! が設定 されている場合は CustomFormat プロパティで指定された書式にした がって、書式設定されたテキスト文字列を返します。 例 次の例は、dp_1 の Value プロパティに格納された日付と時間を文字列 ls_text に取り出します。 string ls_text ls_text = dp_1.GetText() 640 PowerBuilder 第 10 章 関連項目 PowerScript 関数 GetValue SetValue 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 PowerScript リファレンス ボリューム 2 説明 選択されたテキストの書式を調べるリッチテキスト エ ディット コントロールの名前を指定します。 641 GetToday 引数 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 ( ) 引数 controlname 642 説明 今日の日付を取得するコントロールの名前を指定します。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 Date 型 解説 デフォルトでは、現在のシステム日付が今日の日付として設定されま す。別の日付を設定するには、SetToday 関数を使用します。 例 次 の 例 は、日 付 ピ ッ カ ー コ ン ト ロ ー ル の 今 日 の 日 付 を 取 得 し て currentdate に格納する例を示します。 Date currentdate currentdate = dp_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 関数を呼び出します。 例 次に、ツールバー 1 が表示されているかどうかを調べる例を示します。 さらに、ツールバー 1 の配置とタイトルを取得します。値は変数 lb_visible、lta_align、および ls_title に格納されます。 PowerScript リファレンス ボリューム 2 643 GetToolbar 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" END CHOOSE mle_1.Text = ls_visible + "~r~n" & + ls_align + "~r~n" & 644 PowerBuilder 第 10 章 PowerScript 関数 + ls_title 関連項目 GetToolbarPos SetToolbar SetToolbarPos GetToolbarPos 指定されたツールバーの表示位置の情報を取得します。 取得する情報 固定ツールバーを配置する位置 浮動ツールバーの座標とサイズ 構文 1 固定ツールバーの表示位置を取得する 機能 固定ツールバーの表示位置を取得します。 対象 MDI フレーム、シート ウィンドウ 構文 window.GetToolbarPos ( toolbarindex, dockrow, offset ) 引数 window toolbarindex dockrow offset 使用する構文 構文 1 構文 2 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。現行の設定を調べるツールバーのインデッ クスの値を指定します。 Integer 型の変数を指定します。指定された変数に、ツール バーを配置する行の番号が格納されます。配置する行に は、左から右、または上から下へ番号が付けられています。 Integer 型の変数を指定します。ツールバーを配置する行の 先頭からの距離を指定します。上端または下端にあるツー ルバーの offset は、左端から測定されます。左端または右 端にあるツールバーの offset は、上端から測定されます。 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が null の場合は、null を返します。 解説 固定ツールバーがウィンドウの上端、下端、左端、右端のどこにある かを調べるには、GetToolbar 関数を呼び出します。 PowerScript リファレンス ボリューム 2 645 GetToolbarPos 構文 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 x y 646 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。現行の設定を調べるツールバーのインデッ クスの値を指定します。 Integer 型の変数を指定します。指定された変数に、浮動 ツールバーの x 座標が格納されます。ツールバーが固定さ れている場合、x には近似値が設定されます。 Integer 型の変数を指定します。指定された変数に、浮動 ツールバーの y 座標が格納されます。固定ツールバーの場 合、y には近似値が設定されます。 PowerBuilder 第 10 章 引数 width height PowerScript 関数 説明 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 関連項目 GetToolbar SetToolbar SetToolbarPos GetTransactionName 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションの状態を示す文字列を返します。 対象 CORBACurrent オブジェクト PowerScript リファレンス ボリューム 2 647 GetTransactionName 構文 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) 関連項目 648 BeginTransaction CommitTransaction GetContextService GetStatus Init ResumeTransaction RollbackOnly RollbackTransaction SetTimeout SuspendTransaction PowerBuilder 第 10 章 PowerScript 関数 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) 関連項目 HyperLinkToURL InternetData PostURL PowerScript リファレンス ボリューム 2 649 GetValue GetValue 機能 コントロールの Value プロパティ内の日付と時間を返します。 対象 日付ピッカー コントロール 構文 controlname.GetValue ( d, t ) controlname.GetValue ( dt ) 引数 controlname d t dt 説明 日付と時間を取得するコントロールの名前を指定します。 参照によって返される Value プロパティ内の日付の値を指定 します。 参照によって返される Value プロパティ内の時間の値を指定 します。 参照によって返される Value プロパティ内の DateTime 値を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は 次の負の値を返します。 -1 無効な日付および時間の値です。 -2 そのほかのエラーです。 解説 GetValue 関数は、Value プロパティの日付と時間の部分を別々の変数 に、または 1 つの DateTime 変数に返すことができます。 例 次の例では、GetValue 関数が 2 回呼び出されます。1 回目は日付と時間 の値をそれぞれ返し、2 回目は DateTime 値を返します。返される値は マルチライン エディット コントロールに書き出されます。 date d time t datetime dt integer li_ret1, li_ret2 li_ret1 = dp_1.GetValue(d, t) li_ret2 = dp_1.GetValue(dt) mle_1.text += string(d) + " ~r~n" mle_1.text += string(t) + " ~r~n" mle_1.text += string(dt) + " ~r~n" 関連項目 650 GetText SetValue PowerBuilder 第 10 章 PowerScript 関数 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 GetName GetShortName PowerScript リファレンス ボリューム 2 651 Handle 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 関数のかわりに使用します。 PowerBuilder の Run 関数を使用して実行したアプリケーションのハン ドルを要求すると、Handle 関数は 0 を返します。Windows から見た場 合、PowerBuilder から実行したアプリケーションはハンドルを持って いません。開発したアプリケーションの実行モジュールを作成して実 行すると、Handle 関数はアプリケーションのハンドルを返します。 Windows の現行のバージョンでは、previous フラグに true を設定して アプリケーションの既存のインスタンスのハンドルを要求すると、 Handle 関数は常に 0 を返します。アプリケーションのメイン ウィンド ウのインスタンスが開いているかどうかを調べるには、Windows の FindWindow 関数を使用します。 652 PowerBuilder 第 10 章 例 PowerScript 関数 次に、ウィンドウ 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 & 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 PowerScript リファレンス ボリューム 2 653 Hide // 既存のインスタンスがないので、メイン ウィンドウを開きます。 open( w_main ) else // 既存のインスタンス ウィンドウを開いてアプリケーションを停 止します。 SetForegroundWindow( hwnd ) HALT CLOSE end if 関連項目 Send Hide 機能 オブジェクトまたはコントロールを非表示にします。開発者も、エン ド ユーザも表示されていないオブジェクトは操作できません。表示さ れていないオブジェクトはどのイベントにも応答しないので、事実上 そのオブジェクトは、使用不可の状態になります。 対象 すべてのオブジェクト 構文 objectname.Hide ( ) 引数 objectname 説明 非表示にするオブジェクトまたはコントロールの名前を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。objectname が null の場合、null を返します。 解説 隠そうとしているオブジェクトがすでに非表示の場合は、Hide 関数は 何も実行しません。 Hide 関数では、ドロップダウン メニュー、カスケード メニュー、およ び親ウィンドウが MDI フレーム ウィンドウであるメニューを非表示 にはできません。MDI シートとして開かれたウィンドウも、非表示に はできません。 Disable 関数を使用すると、メニュー項目を使用不可の色で表示して操 作できないようにすることができます。 オブジェクトを表示させてイベントに応答しないように使用不可の状 態に設定するには、Enabled プロパティを設定します。 Hide 関数を使用せずに、次のようにオブジェクトの Visible プロパティ を設定する方法もあります。 654 PowerBuilder 第 10 章 PowerScript 関数 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 説明 時間データを取得する Time 型の値を指定します。 戻り値 Integer 型。time で指定した時間部分の整数値(00 ~ 23)を返します。 time が null の場合、null を返します。 例 次に、現在の時間部分を返すステートメントを示します。 Hour(Now()) 次のステートメントは、19 を返します。 Hour(19:01:31) 関連項目 Minute Now PowerScript リファレンス ボリューム 2 655 HyperLinkToURL 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) 関連項目 656 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 657 Idle 参考 キ ー や マ ウ ス の 動 き を 把 握 す る に は、ウ ィ ン ド ウ や シ ー ト の MouseMove イベントや Key イベントでスクリプトを記述してくだ さい。キーボードを操作しても MouseMove イベントはトリガしま せん。繰り返して検索する場合は、Idle タイマーがリセットされな いように、データウィンドウのコントロールとタブの順序付けを 無効にしてください。 例 次に、5 分間、エンド ユーザが操作しなかった後で Idle イベントを起 動する例を示します。 Idle(300) 次のステートメントは、Idle イベントを起動しません。 Idle(0) 次の例では、2 分間エンド ユーザが何も操作しなかった場合、Idle イ ベントを使用してアプリケーションを停止し、再起動する方法を示し ます。通常、この操作は、公共の場所で情報提供を行うようなコン ピュータで行われます。 次のステートメントは、アプリケーションの Open イベントのスクリ プトに記述します。 Idle(120) // 2 分後に Idle イベントを送ります。 次の例は、アプリケーションの Idle イベントに対するスクリプトの一 部です。アプリケーションを停止して何らかの処理を行ってから再起 動しています。 // データベースを要求された状態に設定するための // ステートメント ... Restart() // アプリケーションを再起動します。 関連項目 658 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 IMEGetMode 機能 コントロールの IME の状態を取得します。 構文 IMEGetMode ( handle ) 引数 handle 戻り値 説明 Long 型。コントロールのハンドルを指定します。 Integer 型。handle に指定したコントロールの IME の状態を表す値が返 されます。返される値の意味は、次のとおりです。 0 - IME はインストールされていません 1 - IME はオンの状態です。 2 - IME はオフの状態です。 3 - IME はオフ固定の状態です。 4 - IME は全角ひらがな入力モードです。 5 - IME は全角カタカナ入力モードです。 PowerScript リファレンス ボリューム 2 659 IMESetMode 6 - IME は半角カタカナ入力モードです。 7 - IME は全角英数入力モードです。 8 - IME は半角英数入力モードです。 解説 そのときの IME の状態を格納しておき、処理の終了後に以前の IME の 状態に設定しなおすような場合に使用します。 データウィンドウ カラムの IME オフ固定 IMEGetMode 関数を使用して、 オフ固定に設定されているデータウィンドウのカラムの IME モード を取得することはできません。オフ固定に設定されているデータウィ ンドウのカラムの IME モードを取得するには、カラムのプロパティま たは Describe 関数を使用してください。 dw_1.Describe("col_1.Edit.IMEMode") ウィンドウコントロールの IME オフ固定 次のウィンドウ コントロール の ImeMode プ ロ パ テ ィ に オ フ 固 定(3)が 設 定 さ れ て い る 場 合、 IMEGetMode 関数を使用して IME モードを取得することはできません。 各コントロールの ImeMode プロパティを使用して取得してください。 例 • ドロップダウン リストボックス • ドロップダウン ピクチャ リストボックス • リッチテキスト 次の例は、シングルライン エディット コントロール sle_name の IME の状態を取得します。 IMEGetMode(Handle(sle_name)) 関連項目 IMEGetCompositionText IMESetMode IMESetMode 機能 コントロールに対して、指定した IME のモードを設定します。 構文 IMESetMode ( handle, n ) 引数 handle n 660 説明 Long 型。コントロールのハンドルを指定します。 Integer 型。指定する値については、「戻り値」の表を参照 してください。 PowerBuilder 第 10 章 戻り値 PowerScript 関数 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") 例 次の例は、シングルライン エディット コントロール sle_address に対し て IME を全角ひらがな入力モードで起動しています。 IMESetMode(Handle(sle_address), 4) 次の例は、シングルライン エディット コントロール sle_amount の中 で、IME をオフ固定にしています。 IMESetMode(Handle(sle_amount), 3) 関連項目 IMEGetCompositionText IMEGetMode PowerScript リファレンス ボリューム 2 661 ImpersonateClient ImpersonateClient 機能 COM+ 上で動作する COM オブジェクトが、1 回の呼び出しの間、クラ イアントのセキュリティ属性を持つことができるようにします。 対象 TransactionServer オブジェクト 構文 transactionserver.ImpersonateClient ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ImpersonateClient 関数を使用すると、1 回の呼び出しの間、COM オブ ジェクトをクライアントのセキュリティ コンテキストで実行するこ とができます。クライアントのセキュリティ コンテキストで実行する ことにより、サーバ プロセスには、クライアントと同じリソースに対 するアクセス権が与えられます。これによって、サーバのリソースへ のアクセスを制限または拡張することができます。たとえば、あるデー タベースに対してクライアントが更新権を持たず、サーバには更新権 がある場合、データベースにアクセスする前にクライアントに同一化 させることによって、クライアントによるデータベースの更新を回避 できます。 クライアントのセキュリティ コンテキストを必要とする処理が終了 したら、RevertToSelf 関数を呼び出して、サーバのセキュリティ コンテ キストに戻します。 例 次の例は、トランザクション サーバ コンテキスト オブジェクトのイ ンスタンスを作成し、クライアントに同一化させて処理を行います。 TransactionServer txninfo_test integer li_rc li_rc = GetContextService( "TransactionServer", txninfo_test ) // 必要であればエラー処理を行います。 & // クライアントに同一化させます。 txninfo_test.ImpersonateClient() // クライアントのセキュリティ コンテキストで処理を行います。 ... // サーバのセキュリティ コンテキストに戻します。 txninfo_test.RevertToSelf() 関連項目 662 IsCallerInRole PowerBuilder 第 10 章 PowerScript 関数 IsImpersonating IsSecurityEnabled RevertToSelf ImportClipboard 機能 クリップボード内のタブやカンマで区切られたデータ、もしくは XML データを、データウィンドウ コントロール、データストア オブジェク ト、またはグラフ コントロールに挿入します。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「ImportClipboard メソッド」を参照してください。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 graphname.ImportClipboard ( { importtype}, { startrow {, endrow {, startcolumn } } } ) 引数 importtype (オプション) graphname startrow (オプション) 説明 SaveAsType データウィンドウ定数のカタログ値。 ImportClipboard の有効な引数の種類は、次のとおりです。 Text! CSV! XML! XML トレース ファイルを生成したい場合は、XML! 引数 を要求します。 グラフ コントロールの名前。クリップボードのデータのコ ピー先を指定します。 クリップボード内のデータのうち、最初にコピーする行の 行番号を指定します。特に指定しない限り、1 が設定され ます。 デフォルトの XML インポートの場合、startrow を指定す ると、最初の N (startrow -1) 個の要素がスキップされます。 なお、N は、データウィンドウの行のサイズです。 テンプレートの XML インポートの場合、startrow を指定 すると、テンプレートで定義されている繰り返し行のマッ ピングのうち、最初の(startrow -1)行がスキップされます。 PowerScript リファレンス ボリューム 2 663 ImportClipboard 引数 endrow (オプション) 説明 クリップボード内のデータのうち、最後にコピーする行の 行番号を指定します。特に指定しない限り、残りのすべて の行がコピーされます。 デフォルトの XML インポートの場合、endrow を指定する と、N * endrow 個の要素がインポートされたときにイン ポート処理が終了します。なお、N は、データウィンドウ の行のサイズです。 startcolumn (オプション) テンプレートの XML インポートの場合、endrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングが endrow 個インポートされた時点でインポート処理 が終了します。 クリップボードのデータのうち、最初にコピーするカラム のカラム番号を指定します。特に指定しない限り、1 が設 定されます。 デフォルトの XML インポートの場合、startcolumn を指定 すると、各行の最初の(startcolumn - 1)要素がスキップさ れます。 テンプレートの XML インポートの場合、この引数は無効 です。 戻り値 正常に終了した場合、インポートされた行数を返します。エラーが発 生した場合は、以下の負の整数のいずれかを返します。 -1 行がありません。または startrow に、文字列内の行数よりも大きい 値が指定されました。 -2 入力データがカラム数と一致しないか、必要なカラムの種類と一 致しません。 -3 無効な引数が指定されました。 -4 入力内容が無効です。 -11 XML 解析エラー。XML パーサ ライブラリが見つからないか、 XML が整形式ではありません。 -12 XML テンプレートが存在しないか、データウィンドウと一致し ません。 引数のいずれかの値が null の場合は、null を返します。オプションの引 数 importtype で指定したデータの種類が有効でない場合、-3 を返しま す。 解説 クリップボードのデータは、タブかカンマで区切られた形式、もしく は XML 形式でなければなりません。データウィンドウ オブジェクト のカラムのデータ型と順番は、クリップボード内のデータと一致して いる必要があります。 664 PowerBuilder 第 10 章 PowerScript 関数 Graph コントロールを対象とする場合、ImportClipboard 関数は 3 つのカ ラムだけを使用し、ほかのカラムを無視します。データの各行には、3 つの情報が必要です。必要な情報は、グラフの種類によって異なりま す。 • 散布図以外のすべてのグラフの場合、最初にインポートされるカ ラムは、データ系列の名前です。2 番目のカラムは項目で、3 番目 のカラムはデータです。 • 散布図の場合、最初にインポートされるカラムは、データ系列の 名前です。2 番目のカラムはデータの x 座標の値、3 番目のカラム は y 座標の値です。 データ系列または項目がすでにグラフに存在する場合、データは既存 のデータ系列または項目に対して割り当てられます。存在しない場合 は、データ系列と項目がグラフに追加されます。 最初のカラムに異なるデータ系列の名前を指定すると、複数のデータ 系列にデータを追加できます。 例 たとえば、クリップボードに以下のデータが格納されていて、グラフ にはデータが含まれていない場合、次のステートメントを実行すると 2 つのデータ系列と 3 つの項目を持つグラフが作成されます。クリッ プボードのデータは、以下のとおりです。 Sales Sales Sales Sales Sales Sales 94Jan3000 94Mar2200 94May2500 95Jan4000 95Mar3200 95May3500 次のステートメントは、上記のクリップボード内のすべてのデータを gr_employee にコピーします。 gr_employee.ImportClipboard() 次のステートメントは、クリップボードのデータ(2 行目の 3 カラム 目から 30 行目の 5 カラム目までのデータ)をグラフ コントロール gr_employee にコピーします。 gr_employee.ImportClipboard(2, 30, 3) 関連項目 ImportFile ImportString PowerScript リファレンス ボリューム 2 665 ImportFile ImportFile 機能 ファイル内のデータを、データウィンドウ コントロール、データスト ア オブジェクト、またはグラフ コントロールに挿入します。データ は、タブやカンマで区切られたテキスト、XML、dBase 形式 2、また は dBase 形式 3 です。ファイルの形式は、挿入先がデータウィンドウ コントロール(またはデータストア)であるのか、グラフ コントロー ルであるのかによって異なります。また、グラフの種類によっても異 なります。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「ImportFile メソッド」を参照してください。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 graphname.ImportFile ( { importtype}, filename {, startrow {, endrow {, startcolumn } } } ) 引数 graphname importtype (オプション) filename 説明 グラフ コントロールの名前。データのコピー先を指定しま す。 SaveAsType データウィンドウ定数のカタログ値。この引数 を指定すると、importtype の指定時に拡張子を省略できま す。ImportFile の有効な引数の種類は、次のとおりです。 Text! CSV! XML! DBase2! DBase3! String 型の値。データをコピーするファイルの名前を指定 します。ファイルの形式は、ASCII 形式、タブで区切られ た形式(.TXT)、カンマで区切られた形式(.CSV)、XML 形式(.XML)、dBase 2 形式または dBase 3 形式(.DBF)で なければなりません。ファイル名は、拡張子を付けた完全 な名前で指定します。オプションの importtype の指定を省 略した場合、名前には適切な拡張子を付ける必要がありま す。 filename が指定されていない場合、または filename が null の場合は、エンド ユーザに対してファイル名の入力を要求 します。残りの引数は無視されます。 666 PowerBuilder 第 10 章 引数 startrow (オプション) PowerScript 関数 説明 ファイル内のデータのうち、最初にコピーする行の行番号 を指定します。特に指定しない限り、1 が設定されます。 デフォルトの XML インポートの場合、startrow を指定する と、最初の N (startrow -1) 個の要素がスキップされます。な お、N は、データウィンドウの行のサイズです。 endrow (オプション) テンプレートの XML インポートの場合、startrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングのうち、最初の(startrow -1)行がスキップされます。 ファイルのデータのうち、最後にコピーする行の行番号を 指定します。特に指定しない限り、残りのすべての行がコ ピーされます。 デフォルトの XML インポートの場合、endrow を指定する と、N * endrow 個の要素がインポートされたときにイン ポート処理が終了します。なお、N は、データウィンドウ の行のサイズです。 テンプレートの XML インポートの場合、endrow を指定す ると、テンプレートで定義されている繰り返し行のマッピ ングが endrow 個インポートされた時点でインポート処理 が終了します。 startcolumn (オプション) ファイルのデータのうち、最初にコピーするカラムのカラ ム番号を指定します。特に指定しない限り、1 が設定され ます。 デフォルトの XML インポートの場合、startcolumn を指定 すると、各行の最初の(startcolumn - 1)要素がスキップさ れます。 テンプレートの XML インポートの場合、この引数は無効 です。 戻り値 Long 型。正常に終了した場合、インポートされた行数を返します。エ ラーが発生した場合は、以下の負の整数のいずれかを返します。 -1 行がありません。または startrow に、ファイル内の行数よりも大き い値が指定されました。 -2 ファイルが空です。または入力データがカラム数と一致しないか、 必要なカラムの種類と一致しません。 -3 無効な引数が指定されました。 -4 入力内容が無効です。 -5 指定されたファイルを開くことができません。 -6 指定されたファイルを閉じることができません。 -7 テキストの読み取り中にエラーが発生しました。 PowerScript リファレンス ボリューム 2 667 ImportFile -8 サポートされていないファイル名の拡張子です(有効な拡張子は *.txt、*.csv、*.dbf、*.xml です)。 -10 サポートされていない dBase のファイル形式です(バージョン 2 または 3 ではありません)。 -11 XML 解析エラー。XML パーサ ライブラリが見つからないか、 XML が整形式ではありません。 -12 XML テンプレートが存在しないか、データウィンドウと一致し ません。 引数のいずれかの値が null の場合、null を返します。オプションの引数 importtype で指定したデータの種類が有効でない場合、-3 を返します。 解説 ファイルの形式は、オプションの importtype で指定するか、または適 切なファイル拡張子を付けることによって指定できます。 グラフ コントロールを対象とする場合、ImportFile 関数は 3 つのカラム だけを使用し、ほかのカラムを無視します。データの各行には、3 つ の情報が必要です。必要な情報は、グラフの種類によって異なります。 • 散布図以外のすべてのグラフの場合、最初にインポートされるカ ラムは、データ系列の名前です。2 番目のカラムは項目で、3 番目 のカラムはデータです。 • 散布図の場合、最初にインポートされるカラムは、データ系列の 名前です。2 番目のカラムはデータの x 座標の値、3 番目のカラム は y 座標の値です。 最初のカラムに異なるデータ系列の名前を指定すると、複数のデータ 系列にデータを追加できます。インポートするファイルをエンド ユー ザに選択させるには、filename に null を指定します。インポート ファ イルの選択 ダイアログボックスが表示されます。 二重引用符 タブで区切られたファイル内のフィールドにある二重 引用符の位置と数は、ファイルがインポートされたときの二重引用符 に対する処理方法に影響します。文字列が 1 対の二重引用符で囲まれ ている場合、その二重引用符は破棄されます。文字列が 3 対の二重引 用符で囲まれている場合は、その文字列がインポートされたときに 1 対が保持されます。文字列が 2 対の二重引用符で囲まれている場合、 最初の 1 対が null 文字列を囲んでいるとみなされ、残りの文字列は破 棄されます。 668 PowerBuilder 第 10 章 PowerScript 関数 文字列の先頭に二重引用符がある場合、2 番目の二重引用符よりも後 ろにある文字はすべて破棄されます。2 番目の二重引用符がない場合、 フィールドを区切るタブ文字はフィールド区切り文字として認識され ません。次に来る二重引用符よりも前にある文字(キャリッジ リター ンを含む)はすべて、その文字列の一部であるとみなされます。結合 された文字列が最初の文字列の長さを超えた場合は、検証エラーが生 成されます。 文字列において先頭の文字よりも後ろにある二重引用符は、その文字 どおりに表示されます。以下に、タブで区切られた文字列を 2 列のデー タウィンドウにインポートする例をいくつか示します。 ファイル内のテキスト "Joe" TAB "Donaldson" 結果 Joe Donaldson Bernice TAB """Ramakrishnan""" ""Mary"" TAB ""Li"" "Mich"ael TAB """Lopes""" "Amy TAB Doherty" Bernice "Ramakrishnan" 3""" TAB 4" セルは空になる Mich "Lopes" 最初のセルは「Amy<TAB>Doherty」、2 番 目のセルは空になる 3""" 4" ファイル名に 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) PowerScript リファレンス ボリューム 2 669 ImportString 次の例では、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! 引数 を要求します。 670 PowerBuilder 第 10 章 引数 string startrow (オプション) PowerScript 関数 説明 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 インポートの場合、この引数は無効 です。 戻り値 正常に終了した場合、インポートされたデータ ポイントの数を返しま す。エラーが発生した場合は、以下の負の整数のいずれかを返します。 -1 行がありません。または startrow に、文字列内の行数よりも大きい 値が指定されました。 -2 文字列が空です。または入力データがカラム数と一致しないか、必 要なカラムの種類と一致しません。 -3 無効な引数が指定されました。 -4 入力内容が無効です。 PowerScript リファレンス ボリューム 2 671 ImportString -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) 関連項目 672 ImportClipboard ImportFile PowerBuilder 第 10 章 PowerScript 関数 IncomingCallList 機能 パフォーマンス解析モデルに含まれるルーチンの呼び出し側のリスト を作成します。 対象 ProfileRoutine オブジェクト 構文 iinstancename.IncomingCallList ( list, aggregrateduplicateroutinecalls ) 引数 instancename list aggregateduplicateroutinecalls 戻り値 解説 説明 ProfileRoutine オブジェクトのインスタン ス名を指定します。 データ型 ProfileCall の可変長配列変数を 指定します。この配列に、IncomingCallList 関 数 は、ル ー チ ン の 呼 び 出 し 側 ご と に ProfileCall オブジェクトを格納します。こ の引数は、参照渡しされます。 Boolean 型の値。呼び出しが複数回発生し た場合に、ProfileCall オブジェクトを 1 つ だけ作成するか、または複数作成するかど うかを指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • ModelNotExistsError! - モデルが存在しません。 パフォーマンス解析モデルに含まれるルーチンの呼び出し側のリスト を取得します。呼び出し側ルーチンはそれぞれ、ProfileCall オブジェク トとして定義されます。このオブジェクトには、呼び出されるルーチ ン、呼び出すルーチン、呼び出し回数、および処理時間が書き込まれ ます。呼び出し側ルーチンがリストされるときの順序は、特に決まっ ていません。 BuildModel 関数を使ってトレース ファイルからパフォーマンス解析 モデルをあらかじめ作成しておかなければなりません。 PowerScript リファレンス ボリューム 2 673 Init 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 Init ORB プロパティ値を設定するか、CORBACurrent サービス オブジェク トのインスタンスを初期化します。 目的 使用する構文 JaguarORB オブジェクトを使用して、EAServer にクライア 構文 1 ント接続するための ORB プロパティ値を設定します。 クライアント管理またはコンポーネント管理トランザク 構文 2 ション用に、CORBACurrent サービス オブジェクトのイン スタンスを初期化します。 674 PowerBuilder 第 10 章 PowerScript 関数 構文 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 オ ブジェクトの内部的なインスタンスを新しく作成し、それ以降のすべ ての呼び出しにおいてこのオブジェクトを使用します。 そのほかの例については、関連項目リストの関数を参照してください。 例 次の例は、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 PowerScript リファレンス ボリューム 2 675 Init 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 解説 676 原因不明のエラーです。 サービス オブジェクトが EAServer で実行されていない(引数なし の場合)か、接続オブジェクトが EAServer に接続されていません (引数が接続オブジェクトの場合)。 -3 ORB 初期化エラーです。 -4 ORB.resolve_initial_references("TransactionCurrent") メソッドの呼び 出しエラーです。 -5 narrow メソッドの呼び出しエラーです。 トランザクション プロパティに OTS 形式のマークが付けられた EAServer で動作する PowerBuilder コンポーネントから、または PowerBuilder ク ライアントから Init 関数を呼び出せます。Init 関数以外の関数を呼び出 す際は、事前に Init 関数を呼び出して CORBACurrent オブジェクトを初 期化しておくことが 必要 です。EAServer は 2 フェーズ コミット トラン ザクション コーディネータ(OTS/XA)を使用していることが必要です。 また、GetContextService 関数を使用して CORBACurrent オブジェクトへ の参照を取得しておくことも必要です。 PowerBuilder 第 10 章 PowerScript 関数 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 この例では、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:2000" ) IF li_rc <> 0 THEN // エラーを処理します。 PowerScript リファレンス ボリューム 2 677 InputFieldChangeData END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus GetTransactionName ResumeTransaction RollbackOnly RollbackTransaction SetTimeout SuspendTransaction InputFieldChangeData 機能 リッチテキスト エディット コントロールの、入力フィールドのデータ 値を修正します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldChangeData ( inputfieldname, inputfieldvalue ) 引数 rtename inputfieldname inputfieldvalue 説明 リッチテキスト エディット コントロールの名前。入力 フィールドのデータを変更するコントロールを指定します。 String 型の値。データを変更する入力フィールドの名前を 指定します。同じ名前の入力フィールドが、複数ある場合 もあります。 String 型の値。指定された入力フィールドに割り当てる データを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 同じ名前を持つすべての入力フィールドには、同じデータが入ります。 InputFieldChangeData 関数が呼び出された場合、指定された名前を持つ すべての入力フィールドのデータ値が修正されます。 例 次のスクリプトは、リストボックス コントロール lb_instruments の SelectionChanged イベントの一部です。エンド ユーザがリストボック ス内の項目をクリックすると、選択された楽器名がリッチテキスト エ ディット コントロール rte_1 の instrument という名前の入力フィール ドに割り当てられます。 678 PowerBuilder 第 10 章 PowerScript 関数 integer rtn rtn = rte_1.InputFieldChangeData & ("instrument", lb_instruments.SelectedItem()) st_status.Text = String(rtn) たとえば、rte_1 のテキストに次のように入力されているとします。 Dear {title} {lastname}: お子様用の {instrument} をお借りいただき、ありがとうございます。 {instrument} の保守は、お子様の先生の指示に従って定期的に行ってく ださい。{instrument} の部品や教本は、お近くの楽器店でお求めになる ことができます。 エンド ユーザがリストボックス コントロールから " トランペット " を 選択すると、各 {instrument} フィールドに " トランペット " が挿入され ます。そのほかのフィールドのデータ値は修正されません。 Dear {title} {lastname}: お子様用のトランペットをお借りいただき、ありがとうございます。 トランペットの保守は、お子様の先生の指示に従って定期的に行って ください。トランペットの部品や教本は、お近くの楽器店でお求めに なることができます。 関連項目 InputFieldCurrentName InputFieldDeleteCurrent InputFieldGetData InputFieldInsert InputFieldLocate DataSource InputFieldCurrentName 機能 リッチテキスト エディット コントロールの入力フィールドに挿入ポ イントがあるとき、その入力フィールドの名前を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldCurrentName ( ) 引数 rtename PowerScript リファレンス ボリューム 2 説明 リッチテキスト エディット コントロールの名前。入力 フィールドの名前を取得するコントロールを指定します。 679 InputFieldDeleteCurrent 戻り値 例 String 型。入力フィールドの名前を返します。入力フィールドに挿入 ポイントがない場合、またはエラーが発生した場合には、空の文字列 ("")を返します。 次の例は、挿入ポイントがある入力フィールドの名前を取得します。 string ls_inputname ls_inputname = rte_1.InputFieldCurrentName() 関連項目 InputFieldChangeData InputFieldDeleteCurrent InputFieldGetData InputFieldInsert InputFieldLocate DataSource InputFieldDeleteCurrent 機能 リッチテキスト エディット コントロールの選択された入力フィール ドを削除します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldDeleteCurrent ( ) 引数 rtename 説明 リッチテキスト エディット コントロールの名前。選択され た入力フィールドを削除するコントロールを指定します。 戻り値 Integer 型。正常に終了した場合、1 を返します。入力フィールドに挿 入ポイントがない場合、入力フィールドが編集中の場合、またはエラー が発生した場合には、-1 を返します。 解説 同じ名前を持つすべての入力フィールドには、同じデータが入ります。 ただし、フィールドのデータは個別に削除することができます。同じ 名前の入力フィールドのグループが 1 つ削除されても、残りのグルー プのデータは削除されません。同じ名前の入力フィールドがすべて削 除された場合、リッチテキスト エディット コントロールは、削除され た入力フィールドのデータを記憶しておきます。リッチテキスト エ ディット コントロールは、削除されたフィールドと同じ名前の新しい 入力フィールドを初期化する場合に、そのデータを使用します。 680 PowerBuilder 第 10 章 PowerScript 関数 入力フィールドだけが選択されている必要があります。ほかのテキス トも選択されている場合、InputFieldDeleteCurrent 関数は正常に終了しま せん。入力フィールドだけが選択されている場合は、ハイライト表示 が点滅します。 InputFieldDeleteCurrent 関数は、現行のフィールドだけを削除します。文 書内にほかに同じ名前のフィールドが存在しても、削除されません。 リッチテキスト エディット コントロールが DataSource 関数を使用し てデータをデータウィンドウと共有している場合、現行のフィールド は、文書のすべてのインスタンスから削除されます。 例 次の例は、挿入ポイントがある入力フィールドを削除します。 integer li_rtn li_rtn = rte_1.InputFieldDeleteCurrent() 関連項目 InputFieldChangeData InputFieldGetData InputFieldCurrentName InputFieldInsert InputFieldLocate DataSource InputFieldGetData 機能 リッチテキスト エディット コントロールの指定された入力フィール ドのデータを取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldGetData ( inputfieldname ) 引数 rtename inputfieldname 説明 リッチテキスト エディット コントロールの名前。指定さ れた入力フィールドのデータを取得するコントロールを 指定します。 String 型の値。データを取得する入力フィールドの名前を 指定します。 戻り値 String 型。入力フィールドのデータを返します。フィールドが存在しな い場合、またはエラーが発生した場合には、空の文字列("")を返し ます。 例 次に、入力フィールド empname のデータを取得する例を示します。 PowerScript リファレンス ボリューム 2 681 InputFieldInsert string ls_name ls_name = rte_1.InputFieldGetData(empname) 関連項目 InputFieldChangeData InputFieldCurrentName InputFieldDeleteCurrent InputFieldInsert InputFieldLocate DataSource InputFieldInsert 機能 リッチテキスト エディット コントロールの挿入ポイントに、名前付き の入力フィールドを挿入します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldInsert ( inputfieldname ) 引数 rtename inputfieldname 説明 リッチテキスト エディット コントロールの名前。入力 フィールドの挿入先を指定します。 String 型の値。挿入する入力フィールドの名前を指定しま す。重複する名前を指定することもできます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。inputfieldname が null の場合は、null を返します。 解説 同じ名前の入力フィールドが複数ある場合があります。同じ名前の フィールドには、同じデータが入ります。指定された入力フィールド で InputFieldChangeData 関数を呼び出すと、同じ名前の入力フィールド はすべて変更されます。 例 範囲が選択されている場合、InputFieldInsert 関数は選択範囲の先頭に フィールドを挿入します。入力フィールドと選択範囲は、選択された ままです。 st_status.Text = String( & rte_1.InputFieldInsert("lastname")) 関連項目 682 InputFieldChangeData InputFieldCurrentName InputFieldDeleteCurrent InputFieldGetData PowerBuilder 第 10 章 PowerScript 関数 InputFieldLocate DataSource InputFieldLocate 機能 リッチテキスト エディット コントロールの入力フィールドの位置を 検索し、検索した位置に挿入ポイントを移動します。 対象 リッチテキスト エディット コントロール 構文 rtename.InputFieldLocate ( location {, inputfieldname } ) 引数 rtename location 説明 リッチテキスト エディット コントロールの名前。入力 フィールドの検索対象を指定します。 入力フィールドの検索位置を指定する Location カタログ データ型の値。値は以下のとおりです。 • First! - inputfieldname に指定された入力フィールドの うち、文書内で最初に検索された入力フィールドの名前 を返します。また、inputfieldname が指定されていない 場合、文書内で最初に検索された入力フィールドの名前 を返します。 • Last! - inputfieldname に指定された入力フィールドのう ち、文書内で最後に検索された入力フィールドの名前を 返します。また、inputfieldname が指定されていない場 合、文書内で最後に検索された入力フィールドの名前を 返します。 • Next! - inputfieldname に指定された入力フィールドの うち、挿入ポイントのすぐ後で検索された入力フィール ドの名前を返します。また、inputfieldname が指定され ていない場合、挿入ポイントの次にくる別の入力フィー ルドの名前を返します。 inputfieldname PowerScript リファレンス ボリューム 2 • Prior! - inputfieldname に指定された入力フィールドの うち、挿入ポイントのすぐ前で検索された入力フィール ドの名前を返します。また、inputfieldname が指定され ていない場合、挿入ポイントの前にある別入力フィール ドの名前を返します。 String 型の値。検索する入力フィールドの名前を指定しま す。指定された入力フィールドがコントロールに複数ある 場合、location に指定された位置にある入力フィールドが 検索されます。 683 InsertCategory 戻り値 String 型。正常に終了した場合、検索結果の入力フィールドの名前を返 します。指定された条件と一致する入力フィールドが見つからなかっ た場合、またはエラーが発生した場合には、空の文字列("")を返し ます。引数のいずれかの値が null の場合は、null を返します。 解説 同じ名前の入力フィールドが複数ある場合があります。同じ名前の フィールドには、同じデータが入ります。 例 次の例は、挿入ポイントのすぐ後にある入力フィールドを検索します。 入力フィールドが見つかった場合、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") 関連項目 InputFieldChangeData InputFieldCurrentName InputFieldDeleteCurrent InputFieldGetData InputFieldInsert DataSource InsertCategory 機能 グラフの項目軸上の指定された位置に項目を挿入します。項目の番号 の連続性を保つために、既存の項目も含めて番号を付け直します。 対象 ウィンドウ内およびユーザ オブジェクト内のグラフ。データウィンド ウ オブジェクト内のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト内のグラフは、データウィンドウから 直接データを取得するからです。 構文 controlname.InsertCategory ( categoryvalue, categorynumber ) 684 PowerBuilder 第 10 章 引数 controlname categoryvalue categorynumber PowerScript 関数 説明 項目を挿入したいグラフ コントロールの名前を指定しま す。 挿入する項目を示す値を指定します。項目は、グラフ コン トロールで固有でなければなりません。また、指定する値 は、項目軸のデータ型と同じでなければなりません。 項目の番号を指定します。指定された項目の前に、新しい 項目が挿入されます。項目を最後に追加するには、0 を指 定します。項目軸に昇順または降順のソートが定義されて いる場合、categorynumber は無視され、項目はそのソート 順序の中に統合されます。 戻り値 Integer 型。正常に終了した場合は項目の番号を返し、エラーが発生し た場合は -1 を返します。項目がすでに存在する場合、既存の項目の番 号を返します。引数のいずれかの値が null の場合、null を返します。 解説 グラフの項目は、それぞれ独立しています。たとえば、日付や時間を 軸とするグラフでも、各項目は項目間に時間的な関連を持たずに独立 しています。散布図だけは個別の項目を持たないので、連続する項目 軸を持ちます。 項目軸のデータ型が String 型の場合、項目名は固有で、大文字と小文 字を区別します。また、項目名として空の文字列("")を指定するこ とができます。ただし、項目名は固有でなければならないので、名前 として("")を持つ項目は 1 つだけです。 InsertCategory 関数を使用して新しい項目を作成すると、各データ系列の その項目に空のデータ領域ができます。AddData 関数または InsertData 関 数を使用して、そこにデータ ポイントを挿入します。 項目をデータ系列の最後に追加するには、AddCategory 関 数を使用します。 別の記述方法 たとえば、次のようなステートメントがあるとします。 gr_data.InsertCategory("Qty", 0) このステートメントは、次のステートメントと同じ意味です。 gr_data.AddCategory("Qty") 例 次のステートメントは、グラフ gr_product_data の PCs という名前の項 目の前に、Macs という項目を挿入します。 integer CategoryNbr // 項目の番号を取得します。 CategoryNbr = FindCategory("PCs") PowerScript リファレンス ボリューム 2 685 InsertClass 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) 関連項目 AddData AddCategory FindCategory FindSeries InsertData InsertSeries InsertClass 機能 OLE コントロールに、指定された OLE クラスの新しいオブジェクトを 挿入します。 構文 ole2control.InsertClass ( classname ) 引数 ole2control classname 戻り値 説明 新しいオブジェクトを作成する OLE コントロールの名前 を指定します。 String 型の値。作成するオブジェクトのクラス名を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 名前が無効です。 そのほかのエラーです。 引数のいずれかの値が null の場合は、null を返します。 解説 クラス名は、レジストリに登録されます。クラス名の例を次に示しま す。 Excel.Sheet Excel.Chart Word.Document 686 PowerBuilder 第 10 章 例 PowerScript 関数 次に、Excel の空のスプレッドシートを OLE コントロール ole_1 に挿入 する例を示します。 integer result result = ole_1.InsertClass("excel.sheet") 関連項目 InsertFile InsertObject LinkTo 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) PowerScript リファレンス ボリューム 2 687 InsertData 関連項目 AddColumn DeleteColumn 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 関数 は、既存のデータ ポイントを次の項目にシフトして、その位置にデー タ ポイントを挿入します。シフトされた軸の最後には、項目に属さな いデータ ポイントが発生します。 688 PowerBuilder 第 10 章 PowerScript 関数 categoryvalue を指定した場合に項目が存在するときには、datapoint に 指定された位置を無視して、指定された項目に、既存のデータの値を 置き換えたデータ ポイントを挿入します。項目が存在しないときに は、項目軸の最後に項目が作成されます。 特定の位置のデータ ポイントの値を変更するには、ModifyData 関数を 使用します。 散布図 散布図にデータを追加するには、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") PowerScript リファレンス ボリューム 2 689 InsertDocument 例 たとえば、項目ラベル Jan が存在していないとします。次のステート メントは、Costs というデータ系列の Mar に対するデータ ポイントの 前にデータの値を挿入します。そのデータ ポイントをグラフ gr_product_data の項目ラベル Jan に割り当てます。 integer SeriesNbr, CategoryNbr // データ系列と項目の番号を取得します。 SeriesNbr = gr_product_data.FindSeries("Costs") CategoryNbr = gr_product_data.FindCategory("Mar") 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 InsertDocument 機能 690 リッチテキスト エディット コントロール、データウィンドウ コント ロール、またはデータストア オブジェクトに、リッチテキスト形式ま たは書式属性のない通常のテキスト ファイルを挿入します。新しい内 容は、次のどちらかの方法を使用して追加します。 • 挿入ポイントがある場所に新しい内容を挿入する • 既存のすべての内容を新しい内容で置き換える PowerBuilder 第 10 章 PowerScript 関数 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール、データストア オブジェクト 構文 rtename.InsertDocument ( filename, clearflag { , filetype } ) 引数 rtename filename clearflag 説明 ファイルを表示するリッチテキスト エディット コント ロール、データウィンドウ コントロール、またはデータス トア オブジェクトの名前を指定します。データウィンドウ コントロール(またはデータストア)のデータウィンドウ オブジェクトは、リッチテキスト エディット データウィ ンドウでなければなりません。 リッチテキスト エディット コントロールに表示するファ イルの名前を指定します。filename には、ファイルのパス を含めることもできます。 Boolean 型の値。コントロールの現行の内容を新しいファ イルで置き換えるかどうかを指定します。値は以下のとお りです。 • true - 現行の内容をファイルで置き換えます。 filetype (オプション) • false - 既存の内容の挿入ポイントに、ファイルを挿入 します。 FileType カタログ データ型の値。開くファイルの種類を指 定します。値は以下のとおりです。 • FileTypeRichText! -(デフォルト)リッチテキスト (RTF)形式 • FileTypeText! - 書式属性のない通常の ASCII テキスト (TXT) • FileTypeHTML! - HTML 形式(HTM または HTML) • FileTypeDoc! - Microsoft Word 形式(DOC) filetype が指定されていない場合、PowerBuilder はファイル 名の拡張子を使用してリッチテキストまたは ASCII テキ ストとしてファイルを読み込むかどうかを判断します。拡 張子がサポートしているファイルの種類の拡張子でない 場合、PowerBuilder はリッチ テキストとしてファイルを読 み込もうとします。INI、LOG、または SQL などの拡張子 のファイルを挿入するためには、FileTypeText! を指定する 必要があります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合は、null を返します。 PowerScript リファレンス ボリューム 2 691 InsertFile 解説 コントロールの DisplayOnly プロパティに true を設定すると、リッチ テキスト コントロールにドキュメントを挿入することができません。 これをしようとすると、PowerBuilder は実行時にエラー メッセージを 表示します。 コントロールがヘッダとフッタをサポートする場合(HeaderFooter プ ロパティが true の場合) 、文書を挿入すると既存のヘッダとフッタのテ キストを置き換えますが、追加しません。挿入した文書のヘッダとフッ タのテキストで、既存のヘッダとフッタのテキストを置き換えるため には、clearflag に true を設定する必要があります。 サポートされていない 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 InsertFile 機能 OLE コントロールにオブジェクトを挿入します。指定されたファイル のコピーが OLE オブジェクトに埋め込まれます。 構文 olecontrol.InsertFile ( filename ) 引数 olecontrol 692 説明 OLE コントロールの名前を指定します。 PowerBuilder 第 10 章 引数 filename 戻り値 PowerScript 関数 説明 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") 関連項目 InsertClass InsertObject LinkTo Paste InsertItem リストボックス コントロール、ドロップダウン リストボックス コン トロール、リストビュー コントロール、またはツリービュー コント ロールに項目を挿入します。 項目の挿入先(コントロール) リストボックス コントロール、またはドロップダウン リ ストボックス コントロール ピクチャ リストボックス コントロールか、ドロップダウ ン ピクチャ リストボックス コントロール リストビュー コントロール(項目ラベルとピクチャ イン デックスだけを指定する場合) PowerScript リファレンス ボリューム 2 使用する構文 構文 1 構文 2 構文 3 693 InsertItem 項目の挿入先(コントロール) リストビュー コントロール(項目ラベルとピクチャ イン デックス以外の情報も指定する場合) ツリービュー コントロール(項目ラベルとピクチャ イン デックスだけを指定する場合) ツリービュー コントロール(項目ラベルとピクチャ イン デックス以外の情報も指定する場合) 使用する構文 構文 4 構文 5 構文 6 構文 1 リストボックス コントロールとドロップダウン リス トボックス コントロールに項目を挿入する 機能 ピクチャ リストボックスの値のリストに、項目を挿入します。 対象 リストボックス コントロール、またはドロップダウン リストボックス コントロール 構文 listboxname.InsertItem ( item, index ) 引数 listboxname item index 戻り値 説明 リストボックス コントロールまたはドロップダウン リスト ボックス コントロールの名前。項目の挿入先を指定します。 String 型の値。挿入する項目のテキストを指定します。 リスト内での項目の番号を指定します。指定された項目の前 に、新しい項目を挿入します。 Integer 型。正常に終了した場合、リストボックスに挿入された項目の 最終的な位置を返します。エラーが発生した場合には -1 を返します。 引数のいずれかの値が null の場合は、null を返します。 解説 InsertItem 関数は、index に指定された項目の前に、新しい項目を挿入し ます。listboxname に指定されたコントロール内の項目がソートされて いた場合(Sorted プロパティが true の場合) 、PowerBuilder は新しい項 目を挿入した後、項目をソートし直します。したがって、戻り値は、 新しく挿入された項目のリストボックス内での最終的な位置を示しま す。 AddItem 関数と InsertItem 関数は、 Items プロパティ配列を更新しません。 追加された項目を実行時に検索するには、FindItem 関数を使用します。 例 次のステートメントは、lb_actions の 5 番目の項目の前に、Run Application という項目を挿入します。 lb_actions.InsertItem("Run Application", 5) 694 PowerBuilder 第 10 章 PowerScript 関数 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) 関連項目 AddItem DeleteItem FindItem Reset TotalItems 構文 2 ピクチャ リストボックス コントロールまたはドロッ プダウン ピクチャ リストボックス コントロールに項 目を挿入する 機能 ピクチャ リストボックスの値のリストに、項目を挿入します。 対象 ピクチャ リストボックス コントロールか、ドロップダウン ピクチャ リストボックス コントロール 構文 listboxname.InsertItem ( item {, pictureindex }, index ) 引数 listboxname PowerScript リファレンス ボリューム 2 説明 ピクチャ リストボックス コントロールか、ドロップダウ ン ピクチャ リストボックス コントロールの名前。項目の 挿入先を指定します。 695 InsertItem 引数 item pictureindex (オプション) index 戻り値 説明 String 型の値。挿入する項目のテキストを指定します。 Integer 型の値。新しく追加する項目に関連付けるピクチャ のインデックスを指定します。 リスト内での項目の番号を指定します。指定された項目の 前に、新しい項目を挿入します。 Integer 型。正常に終了した場合、リストボックスに挿入された項目の 最終的な位置を返します。エラーが発生した場合には -1 を返します。 引数のいずれかの値が null の場合は、null を返します。 解説 ピクチャ インデックスを指定しなかった場合、新しく追加される項目 にピクチャが割り当てられません。 存在しないピクチャ インデックスを指定した場合でも、ピクチャ イン デックスの番号は、ピクチャとともに格納されます。ピクチャをピク チャ配列に追加すると、項目が対応するピクチャを示すようになりま す。 リストボックス内の項目についての補足説明、および Sorted プロパ ティが項目の順序に影響を与える例については、構文 1 を参照してく ださい。 例 次のステートメントは、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 リストビュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックスだけを指定する場合) 機能 リストビュー コントロールに項目を挿入します。 対象 リストビュー コントロール 696 PowerBuilder 第 10 章 構文 PowerScript 関数 listviewname.InsertItem ( index, label, pictureindex ) 引数 listviewname index label pictureindex 説明 リストビュー コントロールの名前。項目の挿入先を指定し ます。 Integer 型の値。インデックス番号を指定します。このイン デックス番号の前に新しい項目を挿入します。 String 型の値。追加する項目の名前を指定します。 Integer 型の値。追加する項目のピクチャのインデックス番 号を指定します。 戻り値 Integer 型。正常に終了した場合は index を返し、エラーが発生した場合 は -1 を返します。 解説 項目ラベルとピクチャ インデックス以外にも情報を指定する場合に は、構文 4 を使用してください。 例 次の例は、リストビュー コントロールの 11 番目の位置に項目を挿入 します。 lv_list.InsertItem(11 , "Presentation" , 1) 関連項目 AddItem 構文 4 リストビュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックス以外の情報も指定す る場合) 機能 リストビュー コントロールに項目を挿入します。 対象 リストビュー コントロール 構文 listviewname.InsertItem ( index, item ) 引数 listviewname index item 戻り値 説明 リストビュー コントロールの名前。項目の挿入先を指定し ます。 Integer 型の値。追加する項目のインデックス番号を指定し ます。 データ型 ListViewItem のシステム構造体を指定します。 InsertItem 関数は、ここに挿入する項目を格納します。 Integer 型。正常に終了した場合は index を返し、エラーが発生した場合 は -1 を返します。 PowerScript リファレンス ボリューム 2 697 InsertItem 解説 指定したインデックスは、リストビュー コントロールに新しく追加す る項目の位置を示します。 挿入する項目ラベルとピクチャ インデックスだけを指定する場合に は、構文 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 構文 5 ツリービュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックスだけを指定する場合) 機能 ツリービュー コントロールの特定のレベルに、特定の順序で項目を挿 入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItem ( handleparent, handleafter, label, pictureindex ) 引数 treeviewname handleparent handleafter label pictureindex 戻り値 698 説明 ツリービュー コントロールの名前。項目の挿入先を指定し ます。 項目のハンドルを指定します。指定された項目の 1 つ下の レベルに、新しい項目を挿入します。最初のレベルに挿入 したい場合は、0 を指定します。 項目のハンドルを指定します。指定された項目と同じレベ ルで、この項目のすぐ後に新しい項目を挿入します。 挿入する項目のラベルを指定します。 ピクチャのリストに追加するピクチャ インデックスを指 定します。 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 PowerBuilder 第 10 章 解説 PowerScript 関数 この構文は、項目ラベルとピクチャ インデックスだけを設定する場合 に使用してください。さらにほかのプロパティを設定する場合は、構 文 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) 関連項目 GetItem 構文 6 ツリービュー コントロールに項目を挿入する(項目 ラベルとピクチャ インデックス以外の情報も指定す る場合) 機能 ツリービュー コントロールの特定のレベルに、特定の順序で項目を挿 入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItem ( handleparent, handleafter, item ) 引数 treeviewname handleparent handleafter item PowerScript リファレンス ボリューム 2 説明 ツリービュー コントロールの名前。項目の挿入先を指定し ます。 項目のハンドルを指定します。指定された項目の 1 つ下の レベルに、新しい項目を挿入します。最初のレベルに挿入 したい場合は、0 を指定します。 項目のハンドルを指定します。指定された項目と同じレベ ルで、この項目のすぐ後に新しい項目を挿入します。 コントロールに挿入する項目の TreeViewItem 構造体を指 定します。 699 InsertItemFirst 戻り値 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) 関連項目 GetItem InsertItemFirst 親項目の最初の子として、項目を挿入します。 目的 項目ラベルとピクチャ インデックスだけを指定する場合 項目ラベルとピクチャ インデックス以外の情報も指定す る場合 700 使用する構文 構文 1 構文 2 PowerBuilder 第 10 章 PowerScript 関数 構文 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, & "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 PowerScript リファレンス ボリューム 2 701 InsertItemFirst 構文 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) ll_roothandle = tv_list.FindItem(RootTreeItem!, 0) tv_list.GetItem(ll_handle , l_tvi) tv_list.InsertItemFirst(ll_roothandle, l_tvi) 関連項目 702 InsertItem InsertItemLast InsertItemSort PowerBuilder 第 10 章 PowerScript 関数 InsertItemLast 親項目の最後の子として、項目を挿入します。 目的 項目ラベルとピクチャ インデックスだけを指定する場合 項目ラベルとピクチャ インデックス以外の情報も指定す る場合 使用する構文 構文 1 構文 2 構文 1 項目ラベルとピクチャ インデックスだけを指定する 場合 機能 親の最後の子として項目を挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemLast ( handleparent, label, pictureindex ) 引数 treeviewname handleparent label pictureindex 説明 親の最後の子として指定する項目のツリービュー コント ロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 親の最後の子として指定する項目のラベルを指定します。 親の最後の子として指定する項目のピクチャ インデック スを指定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 項目ラベルやインデックス以外の情報も指定する必要がある場合は、 構文 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 PowerScript リファレンス ボリューム 2 703 InsertItemLast 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 構文 2 項目ラベルとピクチャ インデックス以外の情報も指 定する場合 機能 親の最後の子として項目を挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemLast ( handleparent, item ) 引数 treeviewname handleparent item 説明 親の最後の子として指定する項目のツリービュー コント ロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 コントロールに挿入する項目の TreeViewItem 構造体を指 定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 SortType プロパティが Unsorted! 以外の値に設定されている場合、項目 が追加された後にソートされるので、ツリービューは常にソートされ ている状態になります。したがって、InsertItemFirst 関数、InsertItemLast 関数、InsertItemSort 関数を呼び出した結果は同じになります。 例 次の例は、ツリービュー コントロールの最上位の項目の下にある最後 の項目として、現行の項目を挿入します。 704 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.InsertItemLast(ll_roothandle, l_tvi) 関連項目 InsertItem InsertItemFirst InsertItemSort InsertItemSort 子項目を挿入し、親項目内で項目をソートします。 目的 項目ラベルとピクチャ インデックスだけを指定する場合 項目ラベルとピクチャ インデックス以外の情報も指定す る場合 使用する構文 構文 1 構文 2 構文 1 項目ラベルとピクチャ インデックスだけを指定する 場合 機能 可能であれば、項目をソート順で挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemSort ( handleparent, label, pictureindex ) 引数 treeviewname handleparent label pictureindex PowerScript リファレンス ボリューム 2 説明 親の子として項目を挿入し、ラベル順にソートするツリー ビュー コントロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 親の子として項目をソートするラベルを指定します。 親の子としてラベル順にソートする項目のピクチャ イン デックスを指定します。 705 InsertItemSort 戻り値 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 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) 関連項目 706 InsertItem InsertItemLast InsertItemFirst PowerBuilder 第 10 章 PowerScript 関数 構文 2 項目ラベルとピクチャ インデックス以外の情報も指 定する場合 機能 可能であれば、項目をソート順で挿入します。 対象 ツリービュー コントロール 構文 treeviewname.InsertItemSort ( handleparent, item ) 引数 treeviewname handleparent item 説明 親の子としてラベル順にソートする項目のツリービュー コントロールを指定します。 挿入する項目の親となる項目のハンドルを指定します。最 初のレベルに挿入するには 0 を指定します。 コントロールに挿入する項目の TreeViewItem 構造体を指 定します。 戻り値 Long 型。正常に終了した場合、挿入した項目のハンドルを返します。 エラーが発生した場合、-1 を返します。 解説 SortType プロパティが Unsorted! 以外の値に設定されている場合、ツ リービューは常にソートされている状態になるので、InsertItemSort 関 数を呼び出す必要はありません。任意の挿入関数を使用できます。 SortType プロパティが Unsorted! の場合、アルファベットの昇順で項目 が挿入されます。リストがソートされていない場合には、挿入に最適 な位置を検索しますが、結果は不定です。 例 次の例は、ツリービュー コントロールの最上位の項目の下にある現行 の項目を挿入し、ラベル順にソートします。 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 PowerScript リファレンス ボリューム 2 707 InsertObject InsertObject 機能 エンド ユーザが新規または既存の OLE オブジェクトを選択できるよ うに、標準のオブジェクトの挿入ダイアログボックスを表示し、OLE コントロールに指定されたオブジェクトを挿入します。 構文 olecontrol.InsertObject ( ) 引数 olecontrol 戻り値 説明 オブジェクトを挿入する OLE コントロールの名前を指定 します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 1 エンド ユーザがダイアログボックスの表示を取り消しました。 -9 エラーが発生しました。 引数のいずれかの値が null の場合、null を返します。 例 次の例は、エンド ユーザが OLE オブジェクトを選択できるように、標 準の オブジェクトの作成と貼り付け ダイアログボックスを表示しま す。InsertObject 関数は、指定されたオブジェクトをコントロール ole_1 に挿入します。 integer result result = ole_1.InsertObject() 関連項目 708 InsertClass InsertFile LinkTo PowerBuilder 第 10 章 PowerScript 関数 InsertPicture 機能 リッチテキスト エディット コントロールの挿入ポイントに、画像を挿 入します。 対象 リッチテキスト エディット コントロール 構文 rtename.InsertPicture ( filename{, format } ) 引数 rtename filename format 説明 画像を挿入するリッチテキスト エディット コントロール の名前を指定します。 String 型の値。画像を格納しているファイルの名前を指定 します。 Integer 型の値。画像を RTF ファイルに保存する際の形式 を指定します。値は以下のとおりです。 • 1 – BMP • 2 – WMF(デフォルト) • 3 – PNG • 4 – JPG 戻り値 Integer 型。正常に終了した場合は 1 を返します。.tif ファイルの圧縮形 式をサポートしていない場合は -2 を返し、そのほかのエラーが発生し た場合は -1 を返します。filename が null の場合、InsertPicture は null を 返します。 解説 範囲が選択されている場合、InsertPicture 関数は選択範囲の先頭に画像 を挿入します。画像と選択範囲は、選択されたままです。サポートし ているファイルの種類は、.bmp、.wmf、.jpeg、.png、および .gif です。 LZW 圧縮形式を使用している場合のみ .tif ファイルもサポートします。 例 次に、リッチテキスト エディット コントロール rte_1 の挿入ポイント に PNG ファイルを挿入する例を示します。PNG ファイルは、WMF 形 式で RTF ファイルに保存されます。 integer li_rtn li_rtn = rte_1.InsertPicture("c:\windows\earth.png") 次に、リッチテキスト エディット コントロール rte_1 の挿入ポイント に JPG ファイルを挿入する例を示します。JPG ファイルは、JPG 形式 で RTF ファイルに保存されます。 integer li_rtn li_rtn = rte_1.InsertPicture("c:\windows\earth.jpg", 4) 関連項目 InputFieldInsert InsertDocument PowerScript リファレンス ボリューム 2 709 InsertSeries 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") 例 以下に、グラフ gr_product_data 内にある Income というデータ系列の前 に、データ系列を挿入するステートメントを示します。 integer SeriesNbr // データ系列の番号を取得します。 710 PowerBuilder 第 10 章 PowerScript 関数 SeriesNbr = FindSeries("Income") gr_product_data.InsertSeries("Costs", SeriesNbr) 関連項目 AddData AddSeries FindCategory FindSeries InsertCategory InsertData 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 PowerScript リファレンス ボリューム 2 711 Integer 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Int メソッド 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) 712 PowerBuilder 第 10 章 PowerScript 関数 END IF 次の例では、データベースの Blob 型データを lb_blob に割り当てた後、 Blob 型データの位置 20 に格納されている Integer 型の値を取得します。 integer i i = Integer(BlobMid(lb_blob, 20, 2)) 関連項目 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 を適切に処理します。 PowerScript リファレンス ボリューム 2 713 IntHigh 明示的に呼び出さない InternetData 関数は、明示的に呼び出さないでください。GetURL 関数と PostURL 関数に含まれる引数は、インスタンス化した InternetRequest 子 孫を参照します。GetURL 関数と PostURL 関数が完了したら、コンテキ スト オブジェクトが InternetData 関数を呼び出し、data に HTML を格 納して返します。 例 次の例は、上書きした 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) 714 // 下位 Integer は 12345 です。 PowerBuilder 第 10 章 PowerScript 関数 nHigh = IntHigh(LValue) // 上位 Integer は 4 です。 関連項目 IntLow 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 } }) PowerScript リファレンス ボリューム 2 715 InvokePBFunction 引数 activexcontrol name numarguments (オプション) arguments (オプション) 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子を指定します。HTML で使用する場合、これ はオブジェクト要素の NAME 属性です。そのほかの環境 で使用する場合には、これは PowerBuilder ウィンドウ ActiveX を含むコントロールを参照します。 String 型の値。ユーザ定義のウィンドウ関数の名前を指定 します。この引数は、参照渡しされます。 arguments 配列の構成要素の数値を指定する整数。デフォ ルトは 0 です。 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) { 716 PowerBuilder 第 10 章 PowerScript 関数 alert(" エラー。空の文字列です。"); } PBRX1.ResetArgElements(); } 次に、VBScript で InvokePBFunction 関数を呼び出す例を示します。 Sub invokeFunction_OnClick() Dim retcd Dim myForm Dim args(1) 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 ) PowerScript リファレンス ボリューム 2 717 IsAlive 引数 corbaobject classname 説明 テストする CORBAObject 型のオブジェクトを指定します。 テストに使用されるインタフェースを指定します。 戻り値 Boolean 型。オブジェクトのクラスが指定されたインタフェースを実装 している場合は true を返し、そうでない場合は false を返します。 解説 _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 戻り値 718 説明 オートメーション サーバまたは COM オブジェクトに接続 されている OLEObject 変数または OLETxnObject 変数の名 前を指定します。 Boolean 型。サーバ オブジェクトが起動しているように見える場合は true を返し、終了している場合は false を返します。 PowerBuilder 第 10 章 解説 PowerScript 関数 IsAlive 関数は、サーバ プロセスが終了しているかどうかを評価するの に使用します。この関数は、ExternalException イベントと Error イベン トによって提供されるエラー処理にかわるものではありません。これ は、一定の間隔で、あるいは特定の操作の前に、サーバが実行中かど うかをチェックして、実行時エラーを回避する手段を提供するもので す。 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 PowerScript リファレンス ボリューム 2 説明 文字列。含まれる文字がすべてアラビア文字かどうかをテ ストします。 719 IsAllHebrew 戻り値 Boolean 型。string がすべてアラビア文字の場合には true を返し、そう でない場合は false を返します。数字、空白文字、発音記号などが含ま れる場合は false を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsAllArabic に false が設定されます。 例 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) 関連項目 720 IsAnyHebrew IsHebrew IsHebrewAndNumbers PowerBuilder 第 10 章 PowerScript 関数 Reverse 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 PowerScript リファレンス ボリューム 2 説明 文字列。ヘブライ文字が 1 文字以上含まれるかどうかをテ ストします。 721 IsArabic 戻り値 Boolean 型。string にヘブライ文字が 1 文字以上含まれている場合には true を返し、そうでない場合は false を返します。 解説 実行している Windows のバージョンが右から左へ読む言語をサポー トしていない場合、IsAnyHebrew に false が設定されます。 例 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) 関連項目 722 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 723 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 724 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 戻り値 説明 String 型の値。有効な日付かどうかを確認する値を指定し ます。 Boolean 型。datevalue が有効な日付の場合は true を返し、そうでない場 合は false を返します。datevalue が null の場合、IsDate は null を返します。 PowerScript リファレンス ボリューム 2 725 IsHebrew 解説 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 が設定されます。 例 Windows が右から左へ読む言語をサポートしている場合、このステー トメントは、シングルライン エディット sle_name の最初の文字がヘブ ライ文字の場合に true を返します。 IsHebrew(sle_name.Text) 726 PowerBuilder 第 10 章 関連項目 PowerScript 関数 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 727 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() 関連項目 728 & 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 関連項目 EnableCommit PowerScript リファレンス ボリューム 2 729 IsNull 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 に設定するには、SetNull 関数を 使用します。標準 PowerBuilder アプリケーションでは、SetNull 関数を 呼び出して明示的に変数に null を設定していない場合、その変数に対 する IsNull 関数の呼び出しは false を返します。 変数を null に設定するには 一般に、.NET アプリケーションの場合も同様です。ただし、変数が参 照タイプ(PowerObject 基本クラスから派生するタイプ)の場合、イン スタンス化されたオブジェクトを割り当てることによって変数を初期 化 し て い な い 場 合、IsNull は true を 返 し ま す。以 下 の 例 は、標 準 PowerBuilder アプリケーションでは IsNull が false を返しますが、.NET アプリケーションでは true を返します。 dataStore ds boolean b 730 PowerBuilder 第 10 章 PowerScript 関数 b = IsNull(ds) MessageBox("IsNull", string(b)) 明示的に変数に null を設定している場合、標準アプリケーションと .NET アプリケーションの両方で IsNull は true を返します。 SetNull(ds) b = IsNull(ds) MessageBox("IsNull", string(b)) 標準アプリケーションと .NET アプリケーション間で一貫した動作を 確実に得るには、IsNull 関数のかわりに IsValid 関数を使用して、オブ ジェクトがインスタンス化されているかどうかを確認してください。 以下の例では、標準アプリケーションと .NET アプリケーションの両 方で IsValid は false を返します。 dataStore ds boolean b b = IsValid(ds) MessageBox("IsValid", string(b)) SetNull(ds) b = IsValidl(ds) MessageBox("IsValid", string(b)) 例 次のステートメントは、lb_test に true を設定します。 integer a, b boolean lb_test SetNull(b) lb_test = IsNull(a + b) 関連項目 IsValid SetNull 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの IsNull メソッド PowerScript リファレンス ボリューム 2 731 IsNumber 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 関連項目 732 Double Dec Integer Long Real 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの IsNumber メソッド PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 Preview IsSecurityEnabled 機能 COM+ 上で動作する COM オブジェクトに対してセキュリティ チェッ クが有効になっているかどうかを表します。 対象 TransactionServer オブジェクト 構文 transactionserver.IsSecurityEnabled ( ) 引数 transactionserver 戻り値 説明 TransactionServer サービス インスタンスへの参照を指 定します。 Boolean 型。セキュリティ チェックが有効であれば true を返し、そう でない場合は false を返します。 PowerScript リファレンス ボリューム 2 733 IsSecurityEnabled 解説 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 関連項目 734 ImpersonateClient IsCallerInRole IsImpersonating RevertToSelf PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 Time 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの IsTime メソッド PowerScript リファレンス ボリューム 2 735 IsTransactionAborted 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 関連項目 736 EnableCommit IsInTransaction Lookup PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 Handle PowerScript リファレンス ボリューム 2 737 KeyDown 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〕などの修飾キーを押したかどうかを判断する ことができます。 キーコード値と ASCII 値 KeyDown 関数では、大文字と小文字は区別さ れず、〔Shift〕の状態も区別されません。たとえば、KeyA! は A キーを 参照します。この場合、エンド ユーザは "A" か "a" を押した可能性が あります。Key9! は、"9" と ")" の両方を参照します。このような場合に は、修飾キーも押されたかどうかをテストする必要があります。 KeyDown 関数は、 〔Caps Lock〕などのトグル キーがオンの状態である かどうかを判断せずに、エンド ユーザがそのキーを押しているかどう かだけを判断します。 738 PowerBuilder 第 10 章 PowerScript 関数 KeyDown 関 数 は、ASCII コ ー ド の 65-90(KeyA!- KeyZ!)と 48-57 (Key0!-Key9!)の範囲の値だけを検出します。この範囲の ASCII 値を指 定すると、そのキーが押されたかどうかと、エンド ユーザが〔Shift〕 または〔Caps Lock〕も押したかどうかを調べます。KeyDown 関数では、 ほかの ASCII 値(小文字を表す 97-122 の値など)は検出されません。 次の表は、キーコード値をキーの種類別に示したものです。一部のキー については、キー名も説明しています。 表 0-5: キーボードのキーの KeyCode 値 キーの種類 マウスのボタン 英字 ほかの記号キー 印刷不可文字 ファンクション キー コントロールキー PowerScript リファレンス ボリューム 2 キーコード値 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! 739 KeyDown キーの種類 ナビゲーション キー 数字キーと記号 キー テンキーの数字 キー テンキーの記号 キー 例 キーコード値 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 ... 740 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、エンド ユーザが〔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") PowerScript リファレンス ボリューム 2 741 LastPos 次のステートメントは 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) 次のステートメントは、対象文字列を末尾側からトークン化します。 // 対象文字列を末尾側からトークン化 // 結果は "pbsyc110.dll powerbuilder // shared sybase programs c:" になる string sSource = & 'c:\programs\sybase\shared\powerbuilder\pbsyc110.dll' string sFind = '\' string sToken long llStart, llEnd llEnd = Len(sSource) + 1 742 PowerBuilder 第 10 章 PowerScript 関数 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" を返します。 Left("BABE RUTH", 40) PowerScript リファレンス ボリューム 2 743 LeftA 次のステートメントは、シングルライン エディット コントロール 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 関数は同じ結果を返します。 744 PowerBuilder 第 10 章 PowerScript 関数 LeftC 機能 文字列の左端から、指定されたバイト数の文字列を取り出して返しま す。取り出される文字列の終端によって 2 バイト文字が分割される場 合、その前の文字までの文字列を返します。この関数は、サポートさ れなくなります。 構文 LeftC ( string, n ) LeftW 機能 文字列の左端から、指定された文字数分の文字列を取り出して返しま す。この関数は、サポートされなくなります。動作は、すべての環境 で Left 関数と同じです。 構文 LeftW ( string, n ) LeftTrim 機能 文字列の左端からスペースを削除します。 構文 LeftTrim ( string {, removeallspaces } ) 引数 string removeallspaces 戻り値 説明 左端からスペースを削除する文字列を指定します。 Boolean 型の値。全種類のスペースの削除を指定します。 String 型。正常に終了した場合、string の左端からスペースを削除した 文字列を返します。エラーが発生した場合、空の文字列("")を返し ます。また、string が null の場合、null を返します。 解説 オプションの removeallspaces 引数を指定しないか、またはこの引数の 値 に false を 設 定 し た 場 合、文 字 列 か ら ス ペ ー ス 文 字(U+0020 と U+3000)のみが除去されます。 removeallspaces 引数に true を設定した場合、全種類のスペース文字が 除去されます。 空白文字のリストを以下に示します。 CHARACTER TABULATION (U+0009) PowerScript リファレンス ボリューム 2 745 LeftTrim LINE FEED (U+000A) LINE TABULATION (U+000B) FORM FEED (U+000C) CARRIAGE RETURN (U+000D) SPACE (U+0020) NO-BREAK SPACE (U+00A0) EN QUAD (U+2000) EM QUAD (U+2001) EN SPACE (U+2002) EM SPACE (U+2003) THREE-PER-EM SPACE (U+2004) FOUR-PER-EM SPACE (U+2005) SIX-PER-EM SPACE (U+2006) FIGURE SPACE (U+2007) PUNCTUATION SPACE (U+2008) THIN SPACE (U+2009) HAIR SPACE (U+200A) ZERO WIDTH SPACE (U+200B) IDEOGRAPHIC SPACE (U+3000) ZERO WIDTH NO-BREAK SPACE (U+FEFF) 例 次のステートメントは、左端のスペースがすべてスペース文字の場合 に RUTH を返します。 LeftTrim(" RUTH") 次のステートメントは、左端のスペースにほかの種類のスペース文字 (タブ文字など)が含まれている場合に RUTH を返します。 LeftTrim(" RUTH", true) 次のステートメントは、マルチライン エディット コントロール mle_name 内のテキストから先頭のスペースを削除して emp_name に格納しま す。 string emp_name emp_name = LeftTrim(mle_name.Text) 関連項目 746 RightTrim Trim 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの LeftTrim メソッド PowerBuilder 第 10 章 PowerScript 関数 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("") 次のステートメントは、シングルライン エディット コントロール sle_address 内のテキストの文字列の文字数を変数 s_address_len に格納 します。 long s_address_len s_address_len = Len(sle_address.Text) 以下の例では、Blob 型の変数の長さが宣言に依存することを示してい ます。 PowerScript リファレンス ボリューム 2 747 LenA 最初の例では、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 です。 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Len メソッド LenA 機能 引数が文字列の場合、現行のロケールに基づいて文字列を Unicode か ら DBCS に一時的に変換し、その長さをバイト数で返します。引数が Blob 型の場合、変換は行われません。 構文 LenA (stringorblob) 引数 stringorblob 748 説明 バイト数を求める文字列または Blob 型データを指定しま す。 PowerBuilder 第 10 章 戻り値 PowerScript 関数 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 ) Length 機能 開いている OLEStream オブジェクトの大きさをバイト数で取得しま す。 Len 関数 文字列や Blob 型データの長さを取得するには、Len 関数を使用します。 対象 OLEStream オブジェクト 構文 olestream.Length ( sizevar ) 引数 olestream sizevar PowerScript リファレンス ボリューム 2 説明 開いている OLEStream 変数の名前を指定します。 Length によって olestream の大きさを格納する Long 型の変 数を指定します。 749 LibraryCreate 戻り値 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) 関連項目 Open Read Seek Write LibraryCreate 機能 オプションのコメントを持つ空の PowerBuilder ライブラリを作成しま す。 構文 LibraryCreate ( libraryname {, comments } ) 引数 libraryname 750 説明 String 型の値。作成する PowerBuilder ライブラリの名前を 指定します。ライブラリを現行のディレクトリ以外の位置 に作成する場合、絶対パス名を入力します。 PowerBuilder 第 10 章 引数 comments (オプション) PowerScript 関数 説明 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 LibraryDelete 機能 ライブラリ ファイルを削除します。データウィンドウ オブジェクトを 指定した場合、ライブラリからデータウィンドウ オブジェクトを削除 します。 構文 LibraryDelete ( libraryname {, objectname, objecttype } ) 引数 libraryname objectname (オプション) PowerScript リファレンス ボリューム 2 説明 String 型の値。削除する PowerBuilder ライブラリの名前、 または削除するデータウィンドウ オブジェクトが含まれ ている PowerBuilder ライブラリの名前を指定します。絶対 パス名が指定されていない場合、LibraryDelete 関数はシス テムの標準のファイル検索方法でファイルを検索します。 String 型の値。libraryname で指定されたライブラリから削 除するデータウィンドウ オブジェクトの名前を指定しま す。 751 LibraryDirectory 引数 objecttype (オプション) 説明 LibImportType カタログデータ型の値。削除するオブジェ クトの型を指定します。現在サポートされているオブジェ クト型は、ImportDataWindow! だけです。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合は、null を返します。 解説 スクリプトで LibraryDelete 関数を呼び出して、ライブラリからデータ ウィンドウ オブジェクトを削除することができます。データウィンド ウ以外のオブジェクトを削除するには、ライブラリ ペインタを使用し ます。 例 次のステートメントは、現行のディレクトリの現行のアプリケーショ ン ライブラリ パスにある dwTemp というライブラリを削除します。 LibraryDelete("dwTemp.pbl") 関連項目 LibraryCreate LibraryDirectory LibraryExport LibraryImport LibraryDirectory 機能 PowerBuilder ライブラリ内のオブジェクトのリストを取得します。取 得できる情報は、オブジェクト名、最後に修正が行われた日時、およ びオブジェクトに対するコメントです。すべてのオブジェクトのリス トまたは特定のオブジェクトのリストを取得することができます。 構文 LibraryDirectory ( libraryname, objecttype ) 引数 libraryname 752 説明 String 型の値。オブジェクトをリストする PowerBuilder ラ イブラリの名前を指定します。絶対パス名が指定されてい ない場合、LibraryDirectory 関数はシステムの標準のファイ ル検索方法でファイルを検索します。 PowerBuilder 第 10 章 引数 objecttype PowerScript 関数 説明 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 を返します。 解説 1 つ目の引数として PBD ファイルを指定して LibraryDirectory 関数を呼 び出した場合、PBD ファイルにはコメントが含まれていないため、コ メントが表示されません。 LibraryDirectory 関数が返した文字列を ImportString 関数に渡して、データ ウィンドウ コントロールにオブジェクトのリストを表示することが できます。そのデータウィンドウには、3 つの文字列カラムが含まれ ていることが必要です。3 つのカラムは渡されたデータを格納するの に十分な大きさでなければなりません。大きさが十分でない場合、無 効となりエラーが発生します。 オブジェクトのデータ型を返すには、LibraryDirectoryEx 関数を使用しま す。 タブで区切られたデータの解析方法については、Pos 関数を参照して ください。 例 次のステートメントは、返された文字列を データウィンドウ コント ロール dw_list にインポートし、dw_list を作成します。データウィンド ウは、外部ソースと 3 つの文字列カラムを持っています。 PowerScript リファレンス ボリューム 2 753 LibraryDirectoryEx 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 754 説明 String 型の値。オブジェクトをリストする PowerBuilder ラ イブラリの名前を指定します。絶対パス名が指定されてい ない場合、システムの標準のファイル検索方法でファイル を検索します。 PowerBuilder 第 10 章 引数 objecttype PowerScript 関数 説明 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 を返します。 解説 1 つ目の引数として PBD ファイルを指定して LibraryDirectoryEx 関数を 呼び出した場合、PBD ファイルにはコメントが含まれていないため、 コメントが表示されません。 LibraryDirectoryEx 関数が返した文字列を ImportString 関数に渡して、デー タウィンドウ コントロールにオブジェクトのリストを表示すること ができます。そのデータウィンドウには、4 つの文字列カラムが含ま れていることが必要です。4 つのカラムは渡されたデータを格納する のに十分な大きさでなければなりません。大きさが十分でない場合、 無効となりエラーが発生します。 オブジェクトのデータ型を返す必要がなければ、LibraryDirectory 関数を 使用できます。 タブで区切られたデータの解析方法については、Pos または LastPos を 参照してください。 例 次のステートメントは、返された文字列を データウィンドウ コント ロール dw_list にインポートし、dw_list を作成します。データウィンド ウは、外部ソースと 4 つの文字列カラムを持っています。 PowerScript リファレンス ボリューム 2 755 LibraryExport 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 756 説明 String 型の値。オブジェクトをエクスポートする PowerBuilder ライブラリの名前を指定します。絶対パス名 が指定されていない場合、システムの標準のファイル検 索方法でファイルを検索します。 String 型の値。エクスポートするオブジェクトの名前を指 定します。 PowerBuilder 第 10 章 引数 objecttype PowerScript 関数 説明 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 757 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!, & 758 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 型。正常に終了した場合は editname に行数を返し、エラーが発生 した場合は -1 を返します。editname が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 759 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 760 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() 関連項目 Position SelectedLine SelectedStart TextLine PowerScript リファレンス ボリューム 2 761 LineList LineList 機能 パフォーマンス解析モデルに含まれるルーチンのラインリストを取得 します。 対象 ProfileRoutine オブジェクト 構文 iinstancename.LineList ( list ) 引数 instancename list 戻り値 解説 説明 ProfileRoutine オブジェクトのインスタンス名を指定しま す。 データ型 ProfileLine の可変長配列変数です。LineList 関数 は、ルーチンのラインごとに ProfileLine オブジェクトとし て格納します。この引数は、参照渡しされます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • ModelNotExistsError! - モデルが存在しません。 パフォーマンス解析モデルに含まれるルーチンのラインリストを取得 します。BuildModel 関数を使用してトレース ファイルからパフォーマ ンス解析モデルをあらかじめ作成しておかなければなりません。各ラ インは ProfileLine オブジェクトとして定義され、リストには、ライン がヒットした回数、ラインからの呼び出し、ラインや呼び出し関数の 経過時間などがラインごとに示されます。ラインは番号順にリストさ れます。 ラインはデータベース ステートメントやオブジェクトに返されるこ とはありません。ライン情報がトレース ファイルに記録されていない 場合、ラインは返されません。 例 次の例では、パフォーマンス解析モデルに含まれるルーチンのリスト を取得してから、各ルーチンに含まれるラインのリストを取得します。 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 関連項目 762 BuildModel PowerBuilder 第 10 章 PowerScript 関数 LinkTo 機能 OLE コントロールとファイル、または OLE コントロールとファイルの ソース アイテムとの間にリンクを確立します。 構文 olecontrol.LinkTo ( filename {, sourceitem } ) 引数 olecontrol filename sourceitem (オプション) 戻り値 説明 リンクされたオブジェクトを挿入する OLE コントロール の名前を指定します。 String 型の値。olecontrol に挿入するデータを含むファイル の名前を指定します。リンクによって PowerBuilder のオブ ジ ェ ク ト と オ リ ジ ナ ル の デ ー タ が 接 続 さ れ ま す。 sourceitem を省略すると、ファイル全体に対してリンクが 確立されます。 リンクする filename 内の ソース アイテムの名前を指定し ます。指定方法は、OLE サーバ アプリケーションによっ て決まります。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -9 ファイルがありません。 ソース アイテムがありません。 そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 例 次の例は、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 PowerScript リファレンス ボリューム 2 763 LoadInk LoadInk 機能 インクピクチャ コントロールにファイルまたは Blob からインクを ロードします。 対象 インクピクチャ コントロール 構文 inkpicname.LoadInk ( t | b ) 引数 inkpicname t b 説明 インクをロードしたいインクピクチャ コントロールの名前 を指定します。 String 型の値。コントロールにロードしたいインクを含む ファイルの名前と位置を指定します。 コントロールにロードしたいインクを含む Blob の名前を指 定します。この引数は、参照渡しされます。 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、-1 を返します。 解説 LoadInk 関数を使用して、ファイルまたは Blob に保存したインクをコ ントロールにロードします。 例 次の例は、ファイルからインクをロードします。ユーザは単一のファ イルを選択するため、GetFileOpenName の 2 番目の引数はファイルのパ スと名前を含み、3 番目の引数は無視されます。 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 関連項目 764 & LoadPicture ResetInk PowerBuilder 第 10 章 PowerScript 関数 ResetPicture SaveInk Save LoadPicture 機能 インクピクチャ コントロールにファイルまたは Blob からピクチャを ロードします。 対象 インクピクチャ コントロール 構文 inkpicname.LoadPicture ( t | b ) 引数 inkpicname t b 説明 ピクチャをロードしたいインクピクチャ コントロールの名 前を指定します。 String 型の値。コントロールにロードしたいピクチャを含む ファイルの名前と位置を指定します。 コントロールにロードしたいピクチャを含む Blob の名前を 指定します。この引数は、参照渡しされます。 戻り値 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) PowerScript リファレンス ボリューム 2 765 Log FileClose(li_filenum) ip_1.LoadInk(lblb_ink) End If 関連項目 LoadInk ResetInk ResetPicture SaveInk Save Log 数値の自然対数を返します。ErrorLogging オブジェクトの場合は、こ の関数を使って、オブジェクトのコンテナによって管理されているロ グ ファイルに文字列を書きこむことができます。 目的 数値の自然対数を求める ログ ファイルに文字列を書き込む 構文 1 すべてのオブジェクトに対して 機能 数値の自然対数を返します。 構文 Log ( n ) 引数 n 戻り値 使用する構文 構文 1 構文 2 説明 自然対数(底 e)を返す数値を指定します。n は正の値で なければなりません。 Double 型。n の自然対数を返します。n が負の値または 0 の場合、エ ラーが発生します。n が null の場合、null を返します。 ヒント Log 関数の逆関数は Exp 関数です。 例 次のステートメントは、2.302585092 を返します。 Log(10) 次のステートメントは、-0.693147. . を返します。 766 PowerBuilder 第 10 章 PowerScript 関数 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 ) 引数 errorlogobj message 説明 ErrorLogging サービス インスタンスへの参照を指定しま す。 ログに書き込むテキスト文字列を指定します。 戻り値 なし 解説 ErrorLogging オブジェクトは、オブジェクトのコンテナによって使用 されるログ ファイルにメッセージを書き込む機能を提供します。たと えば、EAServer の jaguar.log などがあります。 Log 関数を呼び出す前に、GetContextService 関数を呼び出して、 ErrorLogging サービスのインスタンスを作成しておく必要があります。 例 次の例は、EAServer または COM+ のログに文字列を書き込む方法を示 しています。 ErrorLogging el this.GetContextService("ErrorLogging", el) el.log("Write this string to log") 関連項目 GetContextService PowerScript リファレンス ボリューム 2 767 LogTen 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 を返します。 LogTen(1) LogTen(0) 次のステートメントでは、実行時にエラーが発生します。 LogTen( - 2) 次のステートメントを実行すると、a の値は 200 になります。 double a, b = LogTen(200) a = 10^b// a = 200 関連項目 768 Exp LogTen 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの LogTen メソッド PowerBuilder 第 10 章 PowerScript 関数 Long データを Long 型に変換します。次の 2 つの構文を使用します。 目的 使用する構文 2 つの Unsignedinteger 型の値を結合して Long 型の値に変 構文 1 換する 値が数値である文字列を Long 型に変換する、または Blob 構文 2 型の変数から Long 型の値を取得する 構文 1 UnsignedInteger 型の値を結合する 機能 2 つの UnsignedInteger 型の値を結合して Long 型の値に変換します。 構文 Long ( lowword, highword ) 引数 lowword highword 説明 UnsignedInteger 型の値。Long 型に変換する下位ワードを指 定します。 UnsignedInteger 型の値。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) PowerScript リファレンス ボリューム 2 769 Long 構文 2 文字列の変換、または Blob 型からの値の取得 機能 値が数値である文字列を 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 型の値を取得します。 long lb_num lb_num = Long(BlobMid(lb_blob, 20, 4)) Blob 型の変数にデータを代入する方法、および Blob 型の変数からデー タを取り出す方法については、Real 関数の例を参照してください。 関連項目 770 Dec Double Integer LongLong Real 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Long メソッド PowerBuilder 第 10 章 PowerScript 関数 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 関数を使用しま す。 例 次の例は、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) PowerScript リファレンス ボリューム 2 771 LongLong 構文 2 文字列の変換、または Blob 型からの値の取得 機能 値が数値である文字列を 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 関数の例を参照してください。 関連項目 772 Dec Double Integer Real PowerBuilder 第 10 章 PowerScript 関数 Lookup EAServer コンポーネントのインスタンスを作成するためのファクトリ インタフェースまたはホーム インタフェースを PowerBuilder クライア ントまたはコンポーネントが取得できるようにします。この関数を使 用するのは、PowerBuilder クライアント(EAServer 内のコンポーネン トに接続する場合)と、PowerBuilder コンポーネント(同じサーバ上 のほかのコンポーネントに接続する場合)です。 目的 EAServer 内で動作する CORBA 準拠コンポーネントの ファクトリ インタフェースを取得します。 EAServer 内で動作する EJB コンポーネントのホーム イン タフェースを取得します。 使用する構文 構文 1 構文 2 構文 1 CORBA 準拠の EAServer コンポーネントの場合 機能 EAServer コンポーネントのファクトリ インタフェース(コンポーネン ト インスタンスを作成するためのインタフェース)を PowerBuilder ク ライアントまたはコンポーネントが取得できるようにします。 対象 接続オブジェクト、TransactionServer オブジェクト 構文 objname.Lookup (objectvariable , componentname ) 引数 objname objectvariable componentname 戻り値 説明 接続を確立するための接続オブジェクトの名前、また は TransactionServer コンテキスト オブジェクトのイン スタンスの名前を指定します。 ファクトリ インタフェースのデータ型のグローバル 変数、インスタンス変数あるいはローカル変数を指定 します。 String 型の値。作成するコンポーネント インスタンス の名前を指定します。オプションで、コンポーネン ト名の前にスラッシュで区切ってパッケージ名を指 定することもできます(たとえば、 「mypackage/mycomponent」など)。 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 PowerScript リファレンス ボリューム 2 773 Lookup 解説 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) 関連項目 CreateInstance 構文 2 EJB コンポーネントのインスタンス 機能 EAServer 内の EJB コンポーネントのホーム インタフェース(コンポー ネント インスタンスを作成するためのインタフェース)を PowerBuilder クライアントまたはコンポーネントが取得することを可能にします。 対象 接続オブジェクト、TransactionServer オブジェクト 774 PowerBuilder 第 10 章 構文 objname.Lookup (objectvariable , componentname {, homeid} ) 引数 objname objectvariable componentname homeid 戻り値 PowerScript 関数 説明 接続を確立するための接続オブジェクトの名前、また は TransactionServer コンテキスト オブジェクトのイン スタンスの名前を指定します。 作成するホーム インタフェースのデータ型のグロー バル変数、インスタンス変数あるいはローカル変数を 指定します。 String 型の値。作成する EJB コンポーネントの名前を 指定します。オプションで、コンポーネント名の前に スラッシュで区切ってパッケージ名を指定することもで きます(たとえば、 「mypackage/mycomponent」など)。 String 型の値。作成するホーム インタフェースの名前 を指定します。この引数はオプションです。 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 解説 EJBConnection J2EE 準拠のアプリケーション サーバで実行している EJB コンポーネ ントのインスタンスを作成する場合は、EJBConnection PowerBuilder 拡 張オブジェクトの Lookup メソッドを使用することもできます。詳細に ついては、 『PowerBuilder エクステンション リファレンス』の「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 などの形式を持ちます。 PowerScript リファレンス ボリューム 2 775 Lookup ホーム インタフェースの名前を指定する 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 プロパティ の文字列の大文字 / 小文字が一致していることを確かめます。 例 次の例では、接続オブジェクトの 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()) // 例外を処理します。 776 PowerBuilder 第 10 章 PowerScript 関数 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 例外 ", & 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)) PowerScript リファレンス ボリューム 2 777 Lower ELSE TRY MyCalc = MyCalcHome.create() MyCalc.square(12) CATCH (ctscomponents_createexception ce) errlog.log("Create exception:" + ce.getmessage()) END TRY END IF 関連項目 ConnectToServer Lower 機能 文字列内のすべての英文字の大文字を小文字に変換します。 構文 Lower ( string ) 引数 string 戻り値 説明 文字列を指定します。指定された文字列に含まれる英文字 の大文字をすべて小文字に変換します。 String 型。正常に終了した場合、string で指定された文字列の英文字の 大文字を小文字に変換して返します。エラーが発生した場合、空の文 字列("")を返します。string が null の場合、null を返します。 例 次の例は、"babe ruth" を返します。 Lower("Babe Ruth") 関連項目 778 Upper 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Lower メソッド PowerBuilder 第 10 章 PowerScript 関数 LowerBound 機能 配列の次元の下限を求めます。 構文 LowerBound ( array {, n } ) 引数 array 説明 配列の名前を指定します。指定された配列の n 次元の下限 を求めます。 n 下限を求める次元を指定します。特に指定しない限り、1 が設定されます。 (オプション) 戻り値 Long 型。array に指定された配列の n 次元の下限を返します。n に指定 された値が配列の次元数よりも大きい場合、-1 を返します。引数のい ずれかの値が null の場合、null を返します。 解説 可変長の配列に対しては、配列に値を割り当てたときに、その配列に メモリが割り当てられます。値が割り当てられる前の下限は 1 で、上 限は 0 です。 例 次のステートメントは、固定長および可変長の配列に対して、メモリ が割り当てられる前後に返される値を示します。 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 関連項目 UpperBound PowerScript リファレンス ボリューム 2 779 mailAddress 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 関数を呼び出してメール システムとのセッションを開始 する必要があります。 780 PowerBuilder 第 10 章 例 PowerScript 関数 次のステートメントは、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 関連項目 mailLogoff mailLogon mailResolveRecipient mailSend PowerScript リファレンス ボリューム 2 781 mailDeleteMessage 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 関連項目 782 mailGetMessages mailLogon PowerBuilder 第 10 章 PowerScript 関数 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 を返します。 解説 MailGetMessages 関数は、mailSession オブジェクトの MessageID 配列に 格納されているメッセージ ID を取り出すだけです。メッセージ ID は、 ほかのメール関数の引数として使用されます。たとえば、 mailReadMessage 関数の引数として使用された場合、メッセージ ID は 読むメッセージを示します。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 PowerScript リファレンス ボリューム 2 783 mailHandle 例 次の例は、エンド ユーザの受信トレイのメッセージのリストを、デー タウィンドウに表示します。このデータウィンドウは外部のデータ ソースによって定義されていて、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 mailHandle 機能 mailSession オブジェクトのハンドルを取得します。 対象 mailSession オブジェクト 構文 mailsession.mailHandle ( ) 引数 mailsession 784 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッションのハンドルを取得します。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 UnsignedLong 型。mailSession オブジェクトの内部ハンドルを返します。 mailsession が null の場合、エラー メッセージを表示します。 解説 エンド ユーザがメール システムとのセッションを開始すると、エンド ユーザの mailSession オブジェクトに有効なハンドルが与えられます。 そのような関数を外部関数として呼び出す場合、mailSession オブジェ クトへのハンドルを使用します。MAPI がサポートしている関数には、 PowerBuilder が直接、関数として実装していないものもあります。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次のステートメントは、現行のメール システムの内部ハンドルを返し ます。 current_session. mailHandle() mailLogoff 機能 PowerBuilder アプリケーションとメール システムとの接続を解除し、 メール セッションを終了します。PowerBuilder がメール セッションを 開始したときにすでに実行されていたメール アプリケーションは、そ のままの状態です。 対象 mailSession オブジェクト 構文 mailsession.mailLogoff ( ) 引数 mailsession 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッションを終了します。 戻り値 mailReturnCode カタログ データ型。以下のいずれかの値を返します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! 解説 mailSession オブジェクトが使用しているメモリを解放するには、メー ル システムとのセッションを終了した後で、 DESTROY キーワードを使 用します。 PowerScript リファレンス ボリューム 2 785 mailLogon メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次のステートメントは、現行のメール システムとのセッションを終了 します。 current_session. mailLogoff() DESTROY current_session 関連項目 mailLogon mailLogon 機能 PowerBuilder アプリケーションのメール セッションを確立します。 PowerBuilder アプリケーションは、新しいメール セッションを開始す るか、既存のセッションを使用します。 対象 mailSession オブジェクト 構文 mailsession.mailLogon ( { profile, password } {, logonoption } ) 引数 mailsession profile (オプション) password (オプション) 786 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッションを開始します。 String 型の値。メール システムとのセッションの開始時に 使用するプロファイルまたはユーザ ID を指定します。 String 型の値。メール システムとのセッションの開始時に 使用するパスワードを表す文字列を指定します。 PowerBuilder 第 10 章 引数 logonoption (オプション) PowerScript 関数 説明 mailLogonOption カタログ データ型の値。メール システム とのセッションの開始時に使用するオプションを指定し ます。 • mailNewSession! - メール アプリケーションが実行中か どうかに関係なく、新しいメール システムとのセッ ションを開始します。 • mailDownLoad! - サーバからユーザの受信トレイに、 メッセージを強制的にダウンロードします。メール ア プリケーションが実行中でない場合、新しいメール シ ステムとのセッションを開始します。 • mailNewSessionWithDownLoad! - 新しいメール システ ムとのセッションを開始し、サーバからエンド ユーザ の受信トレイに新しいメッセージを強制的にダウン ロードします。 特に指定しない限り、既存のセッションが使用されます。 この場合、新しいメッセージの強制的なダウンロードも行 われません。 戻り値 mailReturnCode カタログ データ型。以下の値のいずれかを返します。 mailReturnSuccess! mailReturnLoginFailure! mailReturnInsufficientMemory! mailReturnTooManySessions! mailReturnUserAbort! 引数のいずれかの値が null の場合、null を返します。 解説 エンド ユーザのコンピュータですでにメール アプリケーションが実 行されている場合、新しいセッションを開始する mailLogon 関数を呼び 出さないときには、メール セッションは既存のセッションを使用しま す。profile と password は不要です。 mailLogon 関数がメール システムとの新しいセッションを開始する場 合、スクリプトの中で profile と password を提供していないときには、 メール システムのダイアログボックスが表示されてユーザ ID とパス ワードの入力が要求されます。 ダウンロード オプションにより、メール サーバは最新のメッセージを エンド ユーザの受信トレイにダウンロードします。これにより、受信 トレイを最新の状態にします。ただし、そのメッセージを PowerBuilder から利用できなくなります。mailGetMessages 関数と mailReadMessage 関数を使用してメッセージを参照します。 PowerScript リファレンス ボリューム 2 787 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 mailReadMessage 機能 mailSession オブジェクトのプロパティである配列 MessageID にメッ セージ ID が格納されているメール メッセージを開きます。メッセー ジ全体を読むか、またはヘッダ情報(発信者、受信日付など)だけを 読むかを選択できます。メッセージにファイルが添付されている場合、 一時ファイルに格納されます。また、メッセージの内容を一時ファイ ルに書き込むように選択することもできます。 対象 mailSession オブジェクト 構文 mailsession.mailReadMessage ( messageid, mailmessage, readoption, mark ) 引数 mailsession messageid 788 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメッセージを読みます。 String 型の値。読みたいメール メッセージの ID を指定し ます。 PowerBuilder 第 10 章 PowerScript 関数 引数 mailmessage 説明 mailReadMessage 関数がメッセージ情報を格納する readoption mailMessage オブジェクト構造体を指定します。 MailReadOption カタログ データ型の値を指定します。 • mailEntireMessage! - ヘッダ、テキスト、添付ファイル を取得します。 • mailEnvelopeOnly! - ヘッダ情報だけを取得します。 • mailBodyAsFile! - ヘッダ、テキスト、添付ファイルを 取得します。メッセージの内容を最初の添付ファイルと して扱い、一時ファイルに格納します。 • mailSuppressAttachments! - ヘッダとテキストを取得し ます。添付ファイルの内容は取得しません。 mark Boolean 型の値。エンド ユーザの受信トレイで、メッセー ジに読まれたことを示すマークを付けるかどうかを指定 します。値は以下のとおりです。 • TRUE - マークを付ける • FALSE - マークを付けない 戻り値 mailReturnCode カタログ データ型。以下のいずれかの値を返します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! 引数のいずれかの値が null の場合、null を返します。 解説 エンド ユーザの受信トレイにあるメッセージのメッセージ ID を取得 するには、mailGetMessages 関数を呼び出します。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 添付ファイルを読むには メッセージにファイルが添付されていて添付ファイルを禁止していな い場合、添付ファイルに関する情報が mailMessage オブジェクトの AttachmentFile プロパティに格納されます。AttachmentFile プロパティ は、mailFileDescription オブジェクトです。そのオブジェクトの PathName プロパティには、添付ファイルを保存するために作成された一時ファ イルの位置が格納されています。特に指定しない限り、一時ファイル は TEMP 環境変数で指定されるディレクトリに配置されます。 一時ファイルが不要になった場合には、必ず削除してください。 PowerScript リファレンス ボリューム 2 789 mailReadMessage 例 たとえば、メール メッセージのリストを表示するデータウィンドウ コ ントロール 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 END IF データウィンドウ コントロールにメール メッセージのリストを作成 する方法については、mailGetMessages 関数、または「Code Examples」 のメール アプリケーションを参照してください。 関連項目 790 mailGetMessages mailLogon mailSend PowerBuilder 第 10 章 PowerScript 関数 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 を返します。 解説 allowupdates に true を設定した場合の機能は、メール システムとエン ド ユーザの権限に依存します。 メール関数を呼び出す前に、mailSession オブジェクトを宣言して作成 し、mailLogon 関数を呼び出してメール システムとのセッションを開始 する必要があります。 例 次の例は、エンド ユーザの受信トレイからメッセージ ID を取得し、最 初のメッセージを読み込みます。次に、mailRecipientDetails 関数を呼び 出して最初の受信者のアドレス情報を表示します。Recipient は mailMessage のプロパティで、構造体の配列です。配列の各要素は、メッセージの 受信者を表します。この例では、MessageID や Recipient の要素数を考 慮していません。また、mailSession オブジェクトをすでに作成し、メー ル メッセージとのセッションを開始しているものとします。 PowerScript リファレンス ボリューム 2 791 mailResolveRecipient mailMessage msg integer n long c_row mSes.mailGetMessages() mSes.mailReadMessage(mSes.MessageID[1], & msg, mailEnvelopeOnly!, FALSE ) mSes.mailRecipientDetails(msg.Recipient[1]) 関連項目 mailResolveRecipient mailSend mailResolveRecipient 機能 ユーザのフルネームまたは名前の一部に基づいて、有効な電子メール アドレスを取得します。ユーザが権限を持っている場合、システムの アドレスに格納されている情報を更新することもできます。 対象 mailSession オブジェクト 構文 mailsession.mailResolveRecipient ( recipient {, allowupdates } ) 引数 mailsession recipient allowupdates (オプション) 戻り値 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内で受信者のメール アドレスを取 得します。 受信者の名前を格納する mailRecipient 構造体、または String 型変数を指定します。受信者の名前は、mailRecipient 構造体のプロパティです。mailResolveRecipient 関数は、文 字列の値に受取者のフルネームを設定するか、または構造 体に解決されたアドレス情報を格納します。 Boolean 型の値。受信者の名前の更新を許可するかどうか を指定します。エンド ユーザが更新の権限を持っていない 場合、この allowupdates は無効です。特に指定しない限り、 false が設定されます。 mailReturnCode カタログ データ型。以下のいずれかの値を返します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnUserAbort! 引数のいずれかの値が null の場合、null を返します。 792 PowerBuilder 第 10 章 解説 PowerScript 関数 メール システム内で名前が有効なアドレスかどうかを確認するため に mailResolveRecipient 関数を使用します。名前が検索できない場合、 mailReturnFailure! を返します。 mailRecipient 構造体が指定された場合、mailResolveRecipient 関数は、ア ドレスを割り出す際に有効なアドレス情報をその構造体に格納しま す。文字列が指定された場合、メール システムが識別できるように、 文字列の値はエンド ユーザのフルネームに置き換えられます。ローカ ルなメール システム環境では、アドレスを文字列で指定するのが適切 です。ゲートウェイを介してほかのシステムにメールを送る場合、 mailRecipient 構造体の完全なアドレスの詳細情報を取得する必要があ ります。 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 PowerScript リファレンス ボリューム 2 793 mailSaveMessage 次の例では、sle_to はメール受信者のフルネームまたは名前の一部を格 納しています。名前を mailRecipient オブジェクトに格納し、 mailResolveRecipient 関数を呼び出して名前を検索し、アドレスの詳細 を取得します。名前が検出された場合、mailRecipientDetails 関数はそ の情報を表示し、フルネームが sle_to に格納されます。この例では、ア プリケーションがすでに mailSession オブジェクト mSes を作成し、メー ル システムとのセッションを開始しているものとします。 mailReturnCode mRet mailRecipient mRecip mRecip.Name = sle_to.Text 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 794 説明 セッションを表す mailSession オブジェクトを指定します。 指定されたセッション内でメール メッセージを保存します。 String 型の値。置換されるメッセージ ID を指定します。新 しいメッセージを保存する場合、空の文字列("")を指定 します。 PowerBuilder 第 10 章 引数 mailmessage 戻り値 PowerScript 関数 説明 保存するメッセージの情報を格納する mailMessage オブ ジェクト構造体を指定します。 mailReturnCode カタログ データ型。以下のいずれかの値を返します。 mailReturnSuccess! mailReturnFailure! mailReturnInsufficientMemory! mailReturnInvalidMessage! mailReturnUserAbort! mailReturnDiskFull! 引数のいずれかの値が null の場合、null を返します。 解説 既存のメッセージを置き換える場合でも、メッセージを保存する前に そのメッセージにアドレスを付加する必要があります。後でほかの ユーザに送信するために、メッセージにアドレスを付けておくことが できます。 メール関数を呼び出す前に、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 PowerScript リファレンス ボリューム 2 795 mailSaveMessage MessageBox(" 新しいメッセージの保存 ", & " 何らかの理由で失敗しました。") END IF 次の例は、Jane Smith というエンド ユーザの受信トレイの最新のメッ セージを置き換えます。mailSession オブジェクト mSe の MessageID 配 列からメッセージ ID を取得します。メッセージの件名を変更し、その ユーザのアドレスを再設定して保存します。この例では、アプリケー ションがすでに mailSession オブジェクト mSes を作成し、メール シス テムとのセッションを開始しているものとします。 mailRecipient recip mailMessage msg mailReturnCode mRet string s_ID 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 のサンプルにあるメール アプリケーションを参照してく ださい。 関連項目 796 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 mailMessage mMsg PowerScript リファレンス ボリューム 2 797 Match // 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 のサンプルにあるメール アプリケーションを参照してく ださい。 関連項目 mailReadMessage mailResolveRecipient Match 機能 文字列の中に、指定された文字パターンがあるかどうかを調べます。 構文 Match ( string, textpattern ) 引数 string 798 説明 文字列を指定します。この文字列の中に、指定された文字 パターンがあるかどうかを調べます。 PowerBuilder 第 10 章 引数 textpattern PowerScript 関数 説明 String 型の値。文字列の中にあるかどうかを調べるテキス ト パターンを指定します。 戻り値 Boolean 型。string の中に textpattern がある場合は true を返し、textpattern がない場合は false を返します。引数が指定されていない場合、または textpattern が不正な文字列の場合にも、false を返します。引数のいずれ かの値が null の場合、null を返します。 解説 この関数を使用すると、文字列に一般的な文字パターンが含まれてい るかどうかを調べることができます。特定の位置に文字列があるかど うかを調べるには、Pos 関数を使用してください。 textpattern に指定するテキスト パターンは、通常の式に似ています。テ キスト パターンは、特殊な意味を持つメタ文字と、実際に照合される 通常の文字を組み合わせて指定します。照合される文字列の先頭また は末尾に、特殊な意味を持つ 1 つ以上の文字を指定してください。照 合される文字列には、特殊な意味を持つ文字以外のすべての文字を指 定できます。 テキスト パターンは、照合文字列で特殊な意味を持つメタ文字と、実 際に照合される非メタ文字で構成されます。次の表は、メタ文字の意 味と使用例を示しています。 表 0-6: Match 関数で使用されるメタ文字 メタ文字 キャレット(^) ドル記号($) ピリオド(.) 円記号(\) PowerScript リファレンス ボリューム 2 意味 文字列の先頭文字と照 合します。 文字列の末尾の文字と 照合します。 任意の文字と照合しま す。 円記号(\)の後に指 定されているメタ文字 の特殊な意味を取り消 します。つまり、円記 号(\)の後に指定さ れている文字と照合し ます。 使用例 ^C は、C で始まる文字列と 照合します。 s$ は、s で終わる文字列と照 合します。 . . . は、連続する 3 文字と照 合します。 \\ は、\ と照合します。 799 Match メタ文字 文字集合(角カッ コ([ ]))で囲まれ ている文字のグ ループ) 意味 角カッコ([ ])内の各 文字と照合します。 使用例 [AEIOU] は A、E、I、O、U と照合します。 文字集合の補集合 (角カッコ([ ])内 の最初の文字が キャレット(^)の 場合) キャレット(^)の後 に指定されている文字 グループ以外のすべて の文字と照合します。 ハイフン(-)を使用すると、 文字集合に含まれている文字 の範囲を短縮して表すことが できます。たとえば、[A-Zaz] はすべての英字と照合しま す。 [^0-9] は、数字以外のすべて の文字と照合し、[^A-Za-z] は、英字以外のすべての文字 と照合します。 アスタリスク(*)、プラス記号(+)、疑問符(?)の各メタ文字は、独 立した演算子です。この演算子は、通常の式で反復を指定するときに 使用します。 表 0-7: Match 関数でメタ文字として使用される独立した演算子 メタ文字 *(アスタリスク) 意味 0 回以上の反復を表し ます。 +(プラス記号) 1 回以上の反復を表し ます。 ? (疑問符) 0 回または 1 回の反復 を表します。 使用例 A* は、A がまったくない文 字列か、A が 1 つ以上ある文 字列(A、AA、AAA など) と照合します。 A+ は、A が 1 つ以上ある文 字列(A、AAA など)と照合 します。 A? は、空の文字列("")か、 文字 A と照合します。 テキスト パターンの例 次の表は、さまざまなテキスト パターンと、各 パターンに一致するテキストの例を示しています。 表 0-8: テキスト パターンの例 テキスト パターン AB B* AB*C AB+C 800 照合される文字列の例 AB を含む文字列。例:ABA、DEABC、graphAB_one B がまったくない文字列か、B が 1 つ以上ある文字列。 例:AC、B、BB、BBB、ABBBC AC、ABC、ABBC などのパターンを含む文字列(B が まったくない文字列か、B が 1 つ以上ある文字列) ABC、ABBC、ABBBC などのパターンを含む文字列 (B が 1 つ以上ある文字列) PowerBuilder 第 10 章 テキスト パターン 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])$ 例 PowerScript 関数 照合される文字列の例 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]") 次のステートメントは、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]$") PowerScript リファレンス ボリューム 2 801 MatchW 関連項目 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) 次のステートメントは、-4 を返します。 Max(- 4, - 7) 次の例は、小数点以下の桁を含む値 8.2 を返します。 Max(8.2, 4) 関連項目 802 Min 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Max メソッド PowerBuilder 第 10 章 PowerScript 関数 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 オブジェクトをファイルに書き込みます。 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 PowerScript リファレンス ボリューム 2 803 MemberExists Open MemberExists 機能 指定されたメンバーがストレージの OLE オブジェクトに存在するか どうかを確認します。メンバーであるのは、ほかの OLE オブジェクト (サブストレージ)やストリームです。 対象 OLEStorage オブジェクト 構文 olestorage.MemberExists ( membername, exists ) 引数 olestorage membername exists 戻り値 説明 OLEStorage 型のオブジェクト変数の名前を指定します。 メンバー名を表す文字列を指定します。OLE オブジェクト に存在するかどうかを確認します。 Boolean 型の変数を指定します。メンバーが存在するかど うかを表す値が格納されます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -9 ストレージが開かれていません。 そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 例 次の例は、ストレージ オブジェクトを作成し、ファイルの中の 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 関連項目 804 MemberDelete PowerBuilder 第 10 章 PowerScript 関数 MemberRename Open MemberRename 機能 OLE ストレージのメンバーの名前を変更します。メンバーであるのは、 ほかの OLE オブジェクト(サブストレージ)やストリームです。 対象 OLEStorage オブジェクト 構文 olestorage.MemberRename ( membername, newname ) 引数 olestorage membername newname 戻り値 説明 メンバー(サブストレージまたはストリーム)を含んでい る OLEStorage 型のオブジェクト変数名を指定します。そ の中のメンバーの名前を変更します。 名前を変更するメンバーの名前を表す文字列を指定しま す。 メンバーに割り当てる新しい名前を表す文字列を指定し ます。 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 PowerScript リファレンス ボリューム 2 805 MessageBox 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 関連項目 MemberDelete MemberExists Open MessageBox 機能 指定されたタイトル、テキスト、アイコン、およびボタンが表示され ているシステムのメッセージ ボックスを表示します。 構文 MessageBox ( title, text {, icon {, button {, default } } } ) 引数 title text icon (オプション) 説明 メッセージ ボックスのタイトル バーに表示するタイトル を表す文字列を指定します。 メッセージ ボックスに表示するテキストとして、数値デー タ型、文字列、および Boolean 型の値を指定することがで きます。 メッセージ ボックスの左側に表示するアイコンを示すカ タログ データ型の値を指定します。値は以下のとおりで す。 • Information!(デフォルト) • StopSign! • Exclamation! • Question! • None! 806 PowerBuilder 第 10 章 引数 button (オプション) PowerScript 関数 説明 カタログ データ型の値。メッセージ ボックスの下部に表 示するコマンドボタン群を指定します。カタログ データ型 にリストされる順番に、ボタンに番号が付けられます。値 は以下のとおりです。 • OK! -(デフォルト)[OK]ボタン • OKCancel! -[OK]ボタンと[キャンセル]ボタン • YesNo! -[はい]ボタンと[いいえ]ボタン • YesNoCancel! -[はい]、 [いいえ]、 [キャンセル]の各 ボタン • RetryCancel! -[再試行]ボタンと[キャンセル]ボタン default (オプション) • AbortRetryIgnore! -[中止] 、 [再試行]、 [無視]の各ボ タン デフォルト ボタンとして使用するボタンの番号を指定し ます。標準の設定は 1 です。表示されるボタン数よりも多 い数が指定された場合、標準の設定が使用されます。 戻り値 Integer 型。正常に終了した場合、選択されているボタンの番号(1、2 または 3)を返します。エラーが発生した場合、-1 を返します。引数 のいずれかの値が null の場合、null を返します。 解説 title または text 内の文字列が null 値の場合、メッセージ ボックスは表 示されません。特に指定しない限り、エンド ユーザがボタンをクリッ クするか、〔Enter〕を押すと、スクリプトの実行は続行されます。こ れは、 ボタンが 1 個しかない場合には有効な機能です。メッセージ ボッ クスに複数のボタンがある場合、エンド ユーザが選択したボタンに対 応した処理をスクリプトに記述します。 現行のアプリケーションでの操作を続行するには、メッセージ ボック スへの何らかの応答が必要です。ただし、メッセージ ボックスに応答 せずに、ほかの Windows アプリケーションに切り替えることもできま す。 RightToLeft 対応(右から左に文字を書く言語を使用する国に対応)の PowerBuilder および Windows を実行している場合に、アラビア語また はヘブライ語を使用してボタン作成とメッセージ表示を行うときは、 アプリケーション オブジェクトの RightToLeft プロパティを true にし ます。メッセージは右から左方向へ表示されるようになります。ただ し、PowerBuilder のローカライズ版を使っていない場合、ボタンに表 示されるテキストは、英語のままです。 PowerScript リファレンス ボリューム 2 807 MessageBox メッセージ ボックスが表示されない場合 コントロールは一定の操作を行っているときにマウスを独占してしま います。たとえば、コマンドボタン コントロールの場合はクリックの 操作を行っているとき、エディット コントロールの場合はテキストを 選択しているとき、スクロールバー コントロールの場合はスクロール の操作を行っているときに、マウスを独占します。マウスが独占され ている間に MessageBox 関数を呼び出すと、Windows は不安定になり ます。 MessageBox 関数はフォーカスを横取りするので、フォーカスを移動し ている最中(LoseFocus イベントの間など)は、MessageBox 関数を使 用しないでください。そのかわりに、ウィンドウのタイトルまたはマ ルチライン エディット コントロールにメッセージを表示することが できます。 また、PrintOpen 関数の後に MessageBox 関数を呼び出すと動作がおかし くなります。詳細については、PrintOpen 関数を参照してください。 例 次の例は、タイトル Greeting、テキスト Hello User、アイコン(Information!) 、 およびデフォルト ボタン([OK]ボタン)を表示したメッセージ ボッ クスを開きます。 MessageBox("Greeting", "Hello User") 次の例は、タイトル 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 808 PowerBuilder 第 10 章 PowerScript 関数 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 を返します。 解説 取り出す文字列の位置を検索する場合は、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) PowerScript リファレンス ボリューム 2 809 Mid 次の例では、ユーザ定義関数 str_to_int_array は、文字列を整数配列に変 換します。配列の各整数は、2 文字含みます(最初の文字は上位バイ ト(ASCII 値 * 256)として、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) 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 関数の例を参照し てください。 810 PowerBuilder 第 10 章 関連項目 PowerScript 関数 AscA Left Pos Right UpperBound 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Mid メソッド MidA 機能 文字列を DBCS に一時的に変換し、文字列の指定された位置から、指 定した数のバイトを返します。 構文 MidA (string, start, {length}) 引数 string start length (オプション) 説明 検索する文字列を指定します。 Long 型の値。取り出す文字列の最初のバイト位置を指定 します(文字列の先頭バイトの位置は、1 になります)。 Long 型の値。取り出すバイト数を指定します。length を省 略した場合、または length が start に指定された位置から 末尾までのバイト数よりも大きい場合には、start に指定さ れた位置から末尾までのバイトを返します。 戻り値 String 型。ソース文字列で、start 引数で指定されたバイト位置から、取 り出されるバイト数分の文字列を返します。start に指定された値が string のバイト数よりも大きい場合、空の文字列("")を返します。ま た、length に指定された値が start に指定された文字位置から末尾まで のバイト数よりも大きい場合、start に指定された位置から末尾までの バイトを返します。ただし、戻り値の文字数を length に指定された値 と同じにするために、スペースを追加することはありません。引数の いずれかの値が null の場合、null を返します。 解説 MidA 関数は、PowerBuilder 9 の DBCS 環境 における Mid 関数の機能に 代わるものです。 PowerScript リファレンス ボリューム 2 811 MidC MidC 機能 文字列の指定されたバイト位置から、指定されたバイト数の文字列を 取り出して返します。この関数は、サポートされなくなります。 構文 MidC ( string, start {, length } ) MidW 機能 文字列の中の指定された文字位置から、指定された文字数分の文字列 を取り出します。この関数は、サポートされなくなります。動作は、 すべての環境で Mid 関数と同じです。 構文 MidW ( string, start {, length } ) 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) 関連項目 812 Max PowerBuilder 第 10 章 PowerScript 関数 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Min メソッド Minute 機能 指定された Time 型の値から、分の部分を取り出します。 構文 Minute ( time ) 引数 time 説明 Time 型。時刻を表す値を指定します。指定された値から、 分の部分を取り出します。 戻り値 Integer 型。time で指定された値の分の部分に対応する整数(00 ~ 59) を返します。time が null の場合、null を返します。 例 次のステートメントは、1 を返します。 Minute(19:01:31) 関連項目 Hour Second 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Minute メソッド Mod 機能 除算の余り(剰余)を取得します。 構文 Mod ( x, y ) 引数 x y 説明 y で割られる数値(被除数)を指定します。 x を割る数値(除数)を指定します。 戻り値 x または y のデータ型のうち、精度の高い方のデータ型で返します。引 数のいずれかの値が null の場合、null を返します。 例 次のステートメントは、2 を返します。 Mod(20, 6) PowerScript リファレンス ボリューム 2 813 ModifyData 次のステートメントは、1.5 を返します。 Mod(25.5, 4) 次のステートメントは、2.5 を返します。 Mod(25, 4.5) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Mod メソッド ModifyData グラフのデータ系列におけるデータ ポイントの値を変更します。グラ フ提示様式によって 2 つの構文があります。 目的 散布図以外のすべてのグラフを変更する 散布図を変更する 使用する構文 構文 1 構文 2 構文 1 散布図以外のすべてのグラフを変更する 機能 グラフのデータ系列におけるデータ ポイントの値を変更します。位置 または項目を使用して、変更するデータ ポイントを指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ。データウィンド ウ オブジェクト上のグラフを対象とすることはできません。これは、 データウィンドウ オブジェクト上のグラフでは、データウィンドウか ら直接データが取得されるからです。 構文 controlname.ModifyData (seriesnumber, datapoint, datavalue {, categoryvalue } ) 引数 controlname seriesnumber datapoint datavalue 814 説明 データを変更するグラフ コントロールの名前を指定します。 データを変更するデータ系列の番号を指定します。 データを変更するデータ ポイントの番号を指定します。 データ ポイントの新しい値を指定します。datavalue の データ型は、グラフの値軸のデータ型と同じでなければな りません。 PowerBuilder 第 10 章 引数 categoryvalue (オプション) 解説 PowerScript 関数 説明 datavalue の項目を指定します。categoryvalue のデータ型 は、グラフの項目軸のデータ型と同じでなければなりませ ん。 categoryvalue を指定すると、ModifyData 関数は、指定された位置の項目 の値とデータ ポイントの値を変更します。指定した名前と同じ名前が ほかの位置にすでにある場合、その位置にあるデータが変更されます。 datapoint に指定した位置は無視され、InsertData 関数と同じ処理を行い ます。 位置を 0 に指定すると、ModifyData 関数は常に InsertData 関数と同じ処 理 を 行 い ま す。InsertData 関 数 の「別 の 記 述 方 法」で 解 説 し て い る AddData 関数、InsertData 関数、および 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 ) PowerScript リファレンス ボリューム 2 815 Month 引数 controlname seriesnumber datapoint xvalue yvalue 説明 データ系列のデータを変更する散布図の名前を指定しま す。 データを変更するデータ系列を識別する番号を指定しま す。 データを変更するデータ ポイントの番号を指定します。 変更するデータの新しい x 座標の値を指定します。 変更するデータの新しい y 座標の値を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 散布図には、項目がありません。データを変更するデータ系列の位置 を指定し、データに x 座標と y 座標の値を与えます。 例 次のステートメントは、散布図 gr_product_data のデータ系列 Test One のデータ ポイント 9 を変更します。 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) 816 PowerBuilder 第 10 章 PowerScript 関数 次の例は、シングルライン エディット コントロール sle_start_data に入 力された日付の値から取得した月の部分を start_month に格納します。 integer start_month start_month = Month(date(sle_start_date.Text)) 関連項目 Day Date Year 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Month メソッド 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 は、 表示画面の左上隅と相対的な位置関係を持ちます。 PowerScript リファレンス ボリューム 2 817 Move Move 関数は、最大化されたシートまたはウィンドウを移動することが できません。ウィンドウが最大化されている場合、Move 関数は -1 を返 します。 座標を親ウィンドウのフレームや画面の外に設定できます。このよう にすると、オブジェクトやコントロールを効果的に非表示にすること ができます。 ピクチャ コントロールの画像を指定の位置に描画するには、Draw 関 数を使用します。 移動したオブジェクトの X と Y プロパティは変更されます。 次に示す構文は、オブジェクトまたはコントロールの 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) 818 PowerBuilder 第 10 章 PowerScript 関数 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) 関連項目 OpenTab SelectTab PowerScript リファレンス ボリューム 2 819 _Narrow _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, 820 PowerBuilder 第 10 章 PowerScript 関数 "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 PowerScript リファレンス ボリューム 2 821 Now 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 イベントに対するスクリプトは、時刻を再表示しま す。 822 PowerBuilder 第 10 章 PowerScript 関数 次の例は、ウィンドウの Open イベントに対するスクリプトです。 st_time.Text = String(Now(), "hh:mm") Timer(60) 次の例は、Timer イベントに対するスクリプトで表示している時刻を更 新します。 st_time.Text = String(Now(), "hh:mm") 関連項目 Today 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Now メソッド ObjectAtPointer 機能 エンド ユーザがクリックしたグラフ上の位置を検出します。ObjectAtPointer 関数は、ポインタが位置しているグラフの領域を取得し、関連付けら れるデータ系列とデータ ポイントの番号を指定された変数に格納し ます。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.ObjectAtPointer ( { graphcontrol, } seriesnumber, datapoint ) 引数 controlname 説明 グラフ オブジェクトの名前を指定します。そのグラフ上の ポインタが示すオブジェクトを求めます。または、グラフ を含むデータウィンドウ コントロールを指定します。 graphcontrol (オプション)データウィンドウ コントロール上のグラフ (データウィン 名を表す文字列を指定します。そのグラフ上のポインタの ドウ コント 下のオブジェクトを求めます。 ロールのみ) seriesnumber Integer 型の変数を指定します。ポインタの下のデータ系列 の番号を格納します。 datapoint Integer 型の変数を指定します。ポインタの下のデータ ポ イントの番号を格納します。 戻り値 grObjectType 型。エンド ユーザがグラフ上の任意の箇所(空の領域を 含む)をクリックした場合、grObjectType カタログ データ型の値を返 します。グラフの外をクリックした場合、null を返します。 PowerScript リファレンス ボリューム 2 823 ObjectAtPointer grObjectType カタログ データ型の値とその値が示すグラフの部分は、 次のとおりです。 解説 • TypeCategory! - 項目のラベル • TypeCategoryAxis! - 項目軸、または項目ラベルと項目ラベルの間 • TypeCategoryLabel! - 項目軸のラベル • TypeData! - データ ポイントまたはほかのデータ マーカー • TypeGraph! - 指定された grObjectType カタログ データ型のグラフ コントロール上の任意の位置 • TypeLegend! - 凡例ボックス内(データ系列ラベル上は除く) • TypeSeries! - グラフの型が直線の場合にデータ系列のデータ ポイ ントに接続する直線、または凡例ボックスのデータ系列ラベル上 の直線 • TypeSeriesAxis! - 3D グラフのデータ系列軸 • TypeSeriesLabel! - 3D グラフのデータ系列軸のラベル • TypeTitle! - グラフのタイトル • TypeValueAxis! - 数値軸(数値ラベル上も含む) • TypeValueLabel! - エンド ユーザがクリックした数値軸のラベル ObjectAtPointer 関数を使用すると、エンド ユーザがグラフのどこをク リックしているのかを知ることができます。関数は、エンド ユーザが 操作しているグラフの各部分を識別する grObjectType カタログ データ 型の値を返します。エンド ユーザがデータ系列、データ ポイント、お よび項目をクリックすると、ObjectAtPointer 関数は、指定された変数に データ系列および(または)データ ポイント番号を格納します。 エンド ユーザがデータ ポイント(または、線分や棒などのデータ マー ク)、または凡例ボックスのデータ系列ラベルをクリックすると、 ObjectAtPointer 関数は、指定された変数にデータ系列番号を格納しま す。 エンド ユーザがデータ ポイントまたは項目の目盛ラベルをクリック すると、変数にデータ ポイント番号を格納します。 エンド ユーザが実際のデータ ポイントではなく、データ系列内をク リックした場合、ObjectAtPointer 関数は datapoint に 0 を格納します。項 目をクリックした場合、seriesnumber に 0 を格納します。グラフのその ほかの部分をクリックした場合、両方の変数に 0 を格納します。 824 PowerBuilder 第 10 章 PowerScript 関数 ObjectPointer 関数を最初に呼び出す場合 ObjectAtPointer 関数は、グラフ コントロールに対する Clicked イベント のスクリプトの中で最初に呼び出すと効果的です。グラフ コントロー ルが使用可能であることを確認してください。特に指定しない限り、 グラフ コントロールは使用不可になっています。使用不可になってい ると、Clicked イベントは起動されません。 例 次のステートメントは、グラフ gr_product でクリックされた位置のデー タ系列番号とデータ ポイント番号を SeriesNbr および ItemNbr に格納 します。それらの変数は、オブジェクトの型が TypeSeries! の場合、デー タ系列名を取得し、TypeData! の場合はデータの値を取得します。 integer SeriesNbr, ItemNbr double data_value grObjectTypeobject_type string SeriesName object_type = & 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 PowerScript リファレンス ボリューム 2 825 Object_To_String 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 オブジェクトの文字列表現を返します。 解説 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) 関連項目 826 Init String_To_Object PowerBuilder 第 10 章 PowerScript 関数 OffsetPos 機能 プログレスバー コントロールのオフセットを設定します。 対象 プログレスバー コントロール 構文 control.OffsetPos (increment ) 引数 control increment 説明 プログレスバー コントロールの名前を指定します。 Integer 型。プログレスバー コントロールの開始位置に追 加される値を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次のステートメントは、垂直プログレスバーの開始位置を 10 だけオフ セットします。 HProgressBar.OffsetPos ( 10 ) 関連項目 SelectionRange SetRange StepIt Open ウィンドウ、OLE オブジェクト、またはトレース ファイルを開きます。 ウィンドウを開く場合 Open はウィンドウを表示し、すべてのプロパ ティとコントロールをスクリプトで利用できるようにします。 目的 使用する構文 特定のウィンドウのデータ型のインスタンスを開く 構文 1 スクリプトの実行時にアプリケーションがウィンドウの 構文 2 データ型を選択できるようにする Open はファイルまたはストレージに含 まれる OLE オブジェクトを OLE コントロールまたはストレージ オブ ジェクト変数にロードします。これによって、ソースとターゲットが 保存作業のために接続されます。 OLE オブジェクトを開く場合 PowerScript リファレンス ボリューム 2 827 Open 目的 ファイルに格納された OLE オブジェクトを開き、それを OLE コントロールにロードする メモリのストレージ オブジェクトに格納された OLE オブ ジェクトを開き、それを OLE コントロールにロードする OLE ストレージ ファイルに格納された OLE オブジェクト を開き、それをメモリのストレージ オブジェクトにロード する すでに開かれている OLE ストレージ オブジェクトのメン バーである OLE オブジェクトを開き、それをメモリのス トレージ オブジェクトにロードする メモリの OLE ストレージ オブジェクトに格納されたスト リームを開き、それをストリーム オブジェクトにロードす る 使用する構文 構文 3 構文 4 構文 5 構文 6 構文 7 トレース ファイルを開く場合 Open は指定されたトレース ファイルを 開いて、ファイル内容を読める状態にします。 目的 トレース ファイルを開く 使用する構文 構文 8 構文 1 データ型がわかっているウィンドウを開く 機能 データ型がわかっているウィンドウ オブジェクトを開きます。Open 関 数は、ウィンドウを表示し、すべてのプロパティとコントロールをス クリプトで使用できるようにします。 対象 ウィンドウ オブジェクト 構文 Open ( windowvar {, parent } ) 引数 windowvar 828 説明 表示するウィンドウの名前を指定します。ウィンドウ ペイ ンタで定義されたウィンドウ オブジェクト(ウィンドウの データ型)、または、ウィンドウのデータ型の変数を指定 します。Open 関数は、windowvar に開かれたウィンドウの 参照を渡します。 PowerBuilder 第 10 章 引数 parent (チャイルド ウィンドウ、 ポップアップ ウィンドウの 場合のみ)(オ プション) PowerScript 関数 説明 開くチャイルド ウィンドウまたはポップアップ ウィンド ウの親ウィンドウを指定します。チャイルド ウィンドウま たはポップアップ ウィンドウを開く場合に parent を省略 すると、現在アクティブなウィンドウが親ウィンドウにな ります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 ウィンドウのプロパティにアクセスする前に、ウィンドウを開く必要 があります。ウィンドウを開く前にプロパティにアクセスすると、エ ラーが発生します。 スクリプトで開いているウィンドウを参照するには、windowvar を使 用します。 Open 関数を 2 回呼び出す場合 同じウィンドウに対して構文 1 の Open 関数を 2 回呼び出しても、 PowerBuilder はそのウィンドウを 2 回アクティブにするだけで、ウィ ンドウの 2 つのインスタンスを開くわけではありません。 配列の中の各ウィンドウのデータ型が異なる場合にウィンドウの配列 を開くには、Open 関数の構文 2 を使用します。 parent を指定してチャイルド ウィ ンドウまたはポップアップ ウィンドウを開く場合、parent が開かれた ウィンドウ(windowname または windowvar)の親ウィンドウになりま す。親ウィンドウが閉じるときには、そのすべてのチャイルド ウィン ドウも閉じられます。 開かれたウィンドウの親ウィンドウ すべてのウィンドウが親ウィンドウになれるわけではありません。表 示する領域をほかのウィンドウ内に限定されていないウィンドウだけ が親ウィンドウになることができます。チャイルド ウィンドウ、また はシートとして開かれたウィンドウは、親ウィンドウになることはで きません。ほかのウィンドウに " 閉じこめられた " ウィンドウを親ウィ ンドウとして指定した場合、PowerBuilder はその親、さらにその親と、 親として使用できるウィンドウが見つかるまで検索します。ポップ アップ ウィンドウを開き、シートをその親ウィンドウに指定した場 合、PowerBuilder はそのシートを含む MDI フレームを親ウィンドウにし ます。 PowerScript リファレンス ボリューム 2 829 Open チャイルド ウィンドウまたはポップアップ ウィンドウの親ウィンド ウを指定しない場合、アクティブ ウィンドウがその親ウィンドウにな ります。特定のポップアップ ウィンドウがアクティブのときにほかの ウィンドウを開いた場合、メイン ウィンドウではなく、最初のポップ アップ ウィンドウがその親ウィンドウになります。そのポップアップ ウィンドウが閉じると、そのウィンドウのチャイルド ウィンドウも閉 じます。 ただし、MDI アプリケーションでは、アクティブ シートはアクティブ ウィンドウではないので、親ウィンドウにはなれません。Windows で は、アクティブ シートではなく、MDI フレームがアクティブ ウィン ドウであることが一目でわかります。つまり、MDI フレームのタイト ル バーがアクティブ ウィンドウを示すカラーで表示され、MDI フレー ムはメニューを表示しています。 マウスの動作とウィンドウの応答 コントロールは一定の操作を行っているときにマウスを独占してしま います。たとえば、コマンドボタン コントロールの場合はクリックの 操作を行っているとき、エディット コントロールの場合はテキストを 選択されているとき、スクロールバー コントロールはスクロールの操 作を行っているときに、マウスを独占します。マウスが独占されている 間にレスポンス ウィンドウを開くと、Windows は不安定になります。 レスポンス ウィンドウはフォーカスを横取りするので、フォーカスを 移動している最中(LoseFocus イベントの間など)は、レスポンス ウィ ンドウを使用しないでください。 例 次の例は、ウィンドウのインスタンス 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) 830 PowerBuilder 第 10 章 PowerScript 関数 関連項目 Close OpenWithParm Show 構文 2 データ型がわからないウィンドウを開く 機能 アプリケーションが実行されるまでデータ型がわからないウィンドウ オブジェクトを開きます。Open 関数は、ウィンドウを表示し、すべて のプロパティとコントロールをスクリプトで使用できるようにします。 対象 ウィンドウ オブジェクト 構文 Open ( windowvar, windowtype {, parent } ) 引数 windowvar windowtype parent (チャイルド ウィンドウ、 ポップアップ ウィンドウの 場合のみ)(オ プション) 説明 ウィンドウ オブジェクトの変数を指定します。Open 関数 は、windowvar に開かれたウィンドウの参照を渡します。 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、windowvar と同じ か、または子孫までなければなりません。 これから開くチャイルド ウィンドウまたはポップアップ ウィンドウの親ウィンドウにするウィンドウを指定しま す。チャイルド ウィンドウまたはポップアップ ウィンド ウを開く場合に parent を省略すると、現在アクティブな ウィンドウが親ウィンドウになります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 ウィンドウのプロパティにアクセスする前に、ウィンドウを開く必要 があります。ウィンドウを開く前にプロパティにアクセスすると、エ ラーが発生します。 スクリプトで開いているウィンドウを参照するには、windowvar を使用 します。 windowtype に指定されたウィンドウ オブジェクトは、windowvar と同 じデータ型(または windowvar を継承したデータ型)でなければなり ません。通常、windowvar のデータ型は Window です。すべてのウィン ドウは Window を継承しますが、windowtype の先祖オブジェクトの型 である場合もあります。データ型が異なる場合、エラーが発生します。 PowerScript リファレンス ボリューム 2 831 Open 配列の中の各ウィンドウのデータ型が異なる場合にウィンドウの配列 を開くには、構文 2 を使用します。詳細については、最後の例を参照 してください。その例では、ウィンドウのデータ型は 1 つの配列に格 納され、別の配列の各ウィンドウが開かれているときに、windowtype として使用されます。 ウィンドウのデータ型を指定する場合の注意 構文 2 を使用すると、windowtype に指定したデータ型のウィンドウの インスタンスを開き、変数 windowvar にインスタンスの参照を格納し ます。 windowtype が Window 型を継承して作られた型の場合は、windowvar 変 数のデータ型で定義されたプロパティ、イベント、関数、または構造 体しか参照できません。たとえば、windowtype に対してユーザ イベン トが宣言されている場合は、そのイベントを参照することはできませ ん。 windowtype に指定したオブジェクトは、実行アプリケーションに自動 的には含まれません。実行ファイルに含めるには、アプリケーション とともに配布する PBD ファイル(PowerBuilder 動的ライブラリ)に保 存する必要があります。 親ウィンドウの詳細については、構文 1 を参照してください。 例 次の例は、文字列 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 832 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 Close OpenWithParm Show 構文 3 ファイルからコントロールへ OLE オブジェクトを ロードする 機能 ファイルの OLE オブジェクトを開き、それを OLE コントロールにロー ドします。 対象 OLE コントロール 構文 olecontrol.Open ( OLEsourcefile ) 引数 olecontrol OLEsourcefile 戻り値 説明 OLE オブジェクトをロードする OLE コントロールの名前 を指定します。 オブジェクトを含む OLE ストレージ ファイルの名前を表 す文字列を指定します。ファイルはすでに存在していて、 OLE オブジェクトを含んでいなければなりません。 OLEsourcefile には、OLE ストレージ内のパス情報だけで なく、ファイルのパスを含めることもできます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 PowerScript リファレンス ボリューム 2 833 Open -1 -9 ファイルがないか、またはファイルのデータの書式が無効です。 そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 例 次の例は、MYSTUFF.OLE ファイルの OLE オブジェクトを開き、それ をコントロール ole_1 にロードします。 integer result result = ole_1.Open("c:\ole2\mystuff.ole") 関連項目 InsertFile Save SaveAs 構文 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") 834 PowerBuilder 第 10 章 PowerScript 関数 次の例は、ストレージ変数 stg_stuff 内のサブストレージを開き、それ をコントロール ole_1 にロードします。サブストレージ名は、変数 stuff_1 で指定されています。stg_stuff は、すでに開いています。 integer result string stuff_1 = "excel_obj" result = ole_1.Open(stg_stuff, stuff_1) 関連項目 InsertFile Save SaveAs 構文 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 を変更 できません。 • stgWrite! - 書き込みアクセス。OLEsourcefile を書き換 えることができますが、その現行の内容を読み込むこと はできません。ファイルが存在しない場合、Open 関数 はファイルを作成します。 PowerScript リファレンス ボリューム 2 835 Open 引数 sharemode (オプション) 説明 開発者またはほかの開発者のアプリケーション オブジェ クトから OLEsourcefile を開くことを試みた場合の対応を 示す stgShareMode カタログ データ型の値。値は以下のと おりです。 • stgExclusive! -(デフォルト)ほかからは OLEsourcefile を開けない • stgDenyNone! - ほかからも OLEsourcefile を開ける • stgDenyRead! - ほかからは OLEsourcefile を読み込み用 に開けない • stgDenyWrite - ほかからは OLEsourcefile を書き込み用 に開けない 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -3 -9 ファイルが OLE ストレージ ファイルではありません。 ファイルがありません。 そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 解説 OLE ストレージ ファイルはディレクトリのような構造をしています。 各 OLE オブジェクトは、ほかの OLE オブジェクト(サブストレージ) とほかのデータ(ストリーム)を格納することができます。ストレージ の構造がわかっている場合は、サーバ アプリケーションに属している OLE ストレージのメンバーを開くことができます。 ただし、 PowerBuilder はストレージを扱う関数を提供しているので、個々のアプリケーショ ンに合わせて使用する OLE オブジェクトを構成し、ストレージを構築 できます。 ファイル全体を OLE オブジェクトにしたり、ファイル内のサブスト レージを OLE オブジェクトにしたりすることもできます。ほとんどの 場合、開発者が作成したストレージ ファイルは OLE オブジェクトで ないルート レベルになり、独立した OLE オブジェクトをサブストレー ジとして含みます。ストレージ ファイルの階層のどのレベルも OLE オ ブジェクトを含むことができます。また、単に別のレベルのリポジト リとして使用することもできます。 836 PowerBuilder 第 10 章 PowerScript 関数 ネストしたオブジェクトを開く場合 円記号(\)を区切り文字として、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") 次の例は、同じオブジェクトを読み込むために開きます。 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 PowerScript リファレンス ボリューム 2 837 Open 次の例は、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 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 838 説明 OLE オブジェクトをロードする OLEStorage 型のオブジェ クト変数の名前を指定します。 PowerBuilder 第 10 章 引数 substoragename readmode PowerScript 関数 説明 開く sourcestorage 内のストレージ メンバーの名前を表す 文字列を指定します。構文 4 の sourcestorage および substoragename の指定と逆の順序になることに注意して ください。 substoragename へのアクセス タイプを表す stgReadMode カタログ データ型の値。値は以下のとおりです。 • stgReadWrite! - 読み込みまたは書き込みアクセス。メ ンバーが存在しない場合、Open 関数はメンバーを作成 します。 • stgRead! - 読み込み専用アクセス。substoragename を変 更できません。 sharemode • stgWrite! - 書き込みアクセス。substoragename を書き換 えることができますが、その現行の内容を読み込むこと はできません。メンバーが存在しない場合、Open 関数 はメンバーを作成します。 開発者またはほかの開発者のアプリケーション オブジェ クトから substoragename を開くことを試みた場合の対応 を示す stgShareMode カタログ データ型の値。値は以下の とおりです。 • stgExclusive! -(デフォルト)ほかからは substoragename を開けない • stgDenyNone! - ほかからも substoragename を開ける • stgDenyRead! - ほかからは substoragename を読み込み 用に開けない sourcestorage 戻り値 • stgDenyWrite - ほかからは substoragename を書き込み 用に開けない substoragename を含む OLEStorage オブジェクトを開きま す。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -2 -3 -9 親ストレージが開かれていません。 メンバーがありません。(読み込みのために開けた場合) そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 839 Open 解説 OLE ストレージ ファイルはディレクトリのような構造をしています。 各 OLE オブジェクトは、ほかの OLE オブジェクト(サブストレージ) とほかのデータ(ストリーム)を格納することができます。ストレー ジの構造がわかっている場合は、サーバ アプリケーションに属してい る OLE ス ト レ ー ジ の メ ン バ ー を 開 く こ と が で き ま す。た だ し、 PowerBuilder はストレージを扱う関数を提供しているので、個々のア プリケーションに合わせて使用する OLE オブジェクトを構成し、スト レージを構築できます。 ファイル全体を OLE オブジェクトにしたり、ファイル内のサブスト レージを OLE オブジェクトにしたりすることもできます。ほとんどの 場合、開発者が作成したストレージ ファイルは OLE オブジェクトで ないルート レベルになり、独立した OLE オブジェクトをサブストレー ジとして含みます。ストレージ ファイルの階層のどのレベルも OLE オ ブジェクトを含むことができます。また、単に別のレベルのリポジト リとして使用することもできます。 ネストしたオブジェクトを開く場合 円記号(\)を区切り文字として、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 関連項目 840 Close Save PowerBuilder 第 10 章 PowerScript 関数 SaveAs 構文 7 OLE ストリーム を開く場合 機能 開いている OLE ストレージ オブジェクトのストリームを開き、それ を OLE ストリーム オブジェクトにロードします。 対象 OLE ストリーム オブジェクト 構文 olestream.Open ( sourcestorage, streamname {, readmode {, sharemode } } ) 引数 olestream sourcestorage streamname readmode (オプション) 説明 OLE オブジェクトをロードする OLEStream 型のオブジェ クト変数の名前を指定します。 開かれるストリームを含んでいる OLEStorage オブジェク トを指定します。 開かれる 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 を返します。エラーが発生した場 合、次のいずれかの値を返します。 PowerScript リファレンス ボリューム 2 841 Open -1 -2 -3 -4 -5 -6 -9 ストリームが見つかりません。 ストリームがすでに存在しています。 ストリームがすでに開いています。 ストレージが開かれていません。 アクセスが拒否されました。 名前が無効です。 そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 例 次の例は、MYSTUFF.OLE ファイルのオブジェクトを開き、それを OLEStorage 変数 stg_stuff にロードします。次に、ストリーム info が OLE オブジェクトに存在するかどうかを確認します。存在する場合は、 ストリームを読み込み専用アクセスモードで開きます。この例では、 開いているオブジェクトを閉じて、破棄するためのステートメントを 記述していません。 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 関連項目 842 Close PowerBuilder 第 10 章 PowerScript 関数 構文 8 トレース ファイルを開く 機能 指定されたトレース ファイルを開いて、読める状態にします。 対象 TraceFile オブジェクト 構文 instancename.Open ( filename ) 引数 instancename filename 戻り値 説明 TraceFile オブジェクトのインスタンスを指定します。 読み込むトレース ファイルの名前を文字列で指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • FileAlreadyOpenError! - 指定されたトレース ファイルは、すでに 開かれています。 • FileOpenError! - トレース ファイルは読み込むために開けません。 • FileInvalidFormatError! - 指定されたファイルの書式が正しくあり ません。 • EnterpriseOnlyFeature! - この関数は、PowerBuilder Enterprise 版で のみサポートされています。 • SourcePBLError! - ソース ライブラリが見つかりません。 解説 この構文を使って、PowerBuilder アプリケーションの実行中に作成さ れたトレース ファイルを選択し、そのファイルの内容を参照します。 ファイルを開いた後は、TraceFile オブジェクトが提供するプロパティ および関数を使って、既存の解析モデル化オブジェクトを使わずに、 トレース データを独自の方法で解析できます。 例 次の例では、トレース ファイルを開きます。 TraceFile ltf_file String ls_filename ltf_file = CREATE TraceFile ltf_file.Open(ls_filename) ... 関連項目 Close Reset NextActivity PowerScript リファレンス ボリューム 2 843 OpenChannel OpenChannel 機能 DDE サーバ アプリケーションのチャネルを開きます。 構文 OpenChannel ( applname, topicname {, windowhandle } ) 引数 applname topicname windowhandle (オプション) 戻り値 Long 型。正常に終了した場合、開かれているチャネルを示すハンドル (正の値)を返します。エラーが発生した場合、以下の負の整数のいず れかを返します。値は以下のとおりです。 -1 -9 解説 説明 DDE サーバ アプリケーションの DDE 名(サービス名)を 表す文字列を指定します。 コマンドで使用するデータ、またはアプリケーションのイ ン ス タ ン ス を 表 す 文 字 列 を 指 定 し ま す。た と え ば、 Microsoft Excel の場合、システムまたは開かれているスプ レッド シートの名前を指定します。 DDE クライアントとして機能させるウィンドウを示すハ ンドルを指定します。複数のウィンドウを開いているとき に、DDE クライアントとして機能させるウィンドウを指 定するために使用します。 チャネルを開けません。 handle が null です。 OpenChannel 関数は、 DDE サーバ アプリケーションのチャネルを開き、 開いた状態を維持するので、アプリケーションへの接続を終了するま で複数の DDE 要求を実行することができます。このタイプの DDE 対 話を、 「ウォーム リンク」といいます。チャネルが開かれているので、 オペレーティング システムは、データが送信または要求されるたびに すべての開いているアプリケーションをポーリングする必要がありま せん。 次に、ウォーム リンク型の対話の概要について示します。 • OpenChannel 関数を使用して DDE チャネルを開き、返されたチャ ネル ハンドル(正の値)が有効であることをチェックします。 • 複数の DDE 関数を実行します。次の関数を使用できます。 ExecRemote ( command, handle, <windowhandle> ) GetRemote ( location, target, handle, <windowhandle> ) SetRemote ( location, value, handle, <windowhandle> ) • 844 CloseChannel 関数を使用して DDE チャネルを閉じます。 PowerBuilder 第 10 章 PowerScript 関数 リモート DDE 関数を一度だけ使用する場合、チャネルを開かずに ExecRemote 関数、GetRemote 関数、または SetRemote 関数を呼び出す ことができます。これを「コールド リンク」といいます。DDE 関数が 呼び出されるたびに、オペレーティング システムはすべての実行中の アプリケーションをポーリングし、指定されたサーバ アプリケーショ ンを検索します。 PowerBuilder アプリケーションは、DDE サーバになる場合もあります。 詳細については、StartServerDDE を参照してください。 サーバ アプリケーションについて 各アプリケーションによって、DDE のサポート方法が異なります。各 サーバ アプリケーションの資料を調べ、DDE 名、有効な機能、および データの位置の指定の仕方を確認してください。 例 次の例は、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 PowerScript リファレンス ボリューム 2 845 OpenSheet OpenSheet 機能 MDI(Multiple Document Interface)フレーム ウィンドウ内でシートを 開きます。エンド ユーザがシートを選択できるように、メニュー上に メニュー項目を作成し、開いているシート名のリストを表示します。 対象 ウィンドウ オブジェクト 構文 OpenSheet ( sheetrefvar {, windowtype }, mdiframe {, position {, arrangeopen } } ) 引数 sheetrefvar windowtype (オプション) mdiframe position (オプション) arrangeopen (オプション) 説明 MDI フレーム ウィンドウ以外のウィンドウ オブジェクト の名前を指定します。OpenSheet 関数は開かれたシートへ の参照を sheetrefvar に格納します。 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、sheetrefvar と同じ か、または子孫までなければなりません。 MDI フレーム ウィンドウの名前を指定します。 開かれたシートの名前を追加するメニュー項目(開かれた シートに対応しているメニュー内の項目)の番号を指定し ます。メニューバーのメニュー項目は、左端から順番に 1 から番号が付けられています。標準の設定(0)では、最 後から 2 番目のメニュー項目に、開いているシートのリス トが表示されます。 開いているシートの MDI フレームでの配置を指定する ArrangeOpen カタログ データ型の値。次のいずれかの値を 指定します。 • Cascaded! -(デフォルト)すべてのタイトル バーが見 えるように、開いているシートを重ねて表示します。前 に開いていたシートの下に重ねて表示されます。 • Layered! - 開いているシートを重ねて表示します。フ レーム全体に、そのシートが表示されます。前に開いて いたシートの上に重ねて表示されます。 • Original! - シートを元のサイズで開き、重ねて表示し ます。 戻り値 846 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 windowtype 引数が無効な場合などは、OpenSheet はランタイム エラー を送出し、値を返しません。そのため、例の節の最初の例で示すよう に、戻り値をテストし、try-catch ブロックでの関数呼び出しを囲むこ との両方を行うことをお勧めします。 PowerBuilder 第 10 章 解説 PowerScript 関数 シートは、MDI フレーム ウィンドウ内に含まれるドキュメント ウィ ンドウです。MDI アプリケーションでは、複数のシートを同時に開く ことができます。新しく開いたシートが、アクティブ シートになりま す。関連付けられたメニューを格納するシートが開かれている場合、 そのメニューがフレームのメニューになります。 windowtype を指定する場合、sheetrefvar と同じデータ型(または sheetrefvar を継承したデータ型)でなければなりません。通常、 sheetrefvar のデータ型は Window です。すべてのウィンドウは Window を継承しますが、windowtype の先祖オブジェクトの型である場合もあ ります。データ型が異なる場合、エラーが発生します。 PowerBuilder では、String 型の変数によって実行ファイルで動的に参照 されているオブジェクトのコピーは、自動的には作成されません。ア プリケーションで windowtype に指定されているウィンドウ オブジェ クトを含めるには、実行ファイルを作成するときに使用するリソース (PBR)ファイルに、そのウィンドウ オブジェクトのリストを作成しま す。実行ファイルの PBR ファイルの詳細については、PowerBuilder の 『ユーザーズ ガイド』マニュアルを参照してください。 OpenSheet 関数は、シートを開き、position に指定されているメニュー バーの項目にその名前を追加します。position に指定されている値が 0 の場合、またはメニューバー上の項目数よりも大きな数値の場合、 PowerBuilder はメニューバー上の最後から 2 番目のメニュー項目に シート名を追加します。通常、メニューバーの最後から 2 番目のメ ニュー項目は、ウィンドウ メニューです。ウィンドウ メニューには、 開いているシート名とシートの配置を変更するコマンドが表示されて います。 PowerBuilder では、メニュー項目を持たないメニューにシートを追加 することができません。指定するメニューを確認してください。また、 position を省略した場合、最後から 2 番目のメニューが少なくとも 1 つ のメニュー項目を持つことを確認してください。 10 個以上のシートをフレーム内で開くと、position に指定されたメ ニューの最後に先頭の 9 個のシートのリストが表示され、その下に「そ の他のウィンドウ ...」と表示されます。 フレーム内のシートは、表示不可にはできません。シートを開いた場 合、Visible プロパティの値は無視されます。ウィンドウがすでに開か れている場合、Visible プロパティの変更は有効となりません。 PowerScript リファレンス ボリューム 2 847 OpenSheet レスポンス ウィンドウを開く場合 レスポンス ウィンドウを開く場合は 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, & 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!) 関連項目 848 ArrangeSheets GetActiveSheet OpenSheetWithParm PowerBuilder 第 10 章 PowerScript 関数 OpenSheetWithParm 機能 OpenSheet 関数と同様に、MDI(Multiple Document Interface)フレーム 内にシートを開き、メニュー上にメニュー項目を作成し、エンド ユー ザがシートを選択できるように開かれたシート名のリストを表示しま す。OpenSheetWithParm 関数は、システムの Message オブジェクトにパ ラメータを格納するので、開かれたシートにアクセスすることができ ます。 対象 ウィンドウ オブジェクト 構文 OpenSheetWithParm ( sheetrefvar, parameter {, windowtype }, mdiframe {, position {, arrangeopen } } ) 引数 sheetrefvar parameter 説明 MDI フレーム ウィンドウ以外のウィンドウ オブジェクト の名前を指定します。OpenSheetWithParm 関数は開かれた シートへの参照を sheetrefvar に格納します。 指定されたシートが開かれるときに Message オブジェク トに格納するパラメータを指定します。parameter には、次 のいずれかのデータ型の変数を指定します。 • String 型 • 数値型 windowtype (オプション) mdiframe position (オプション) PowerScript リファレンス ボリューム 2 • PowerObject 型 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、sheetrefvar と同じ か、または子孫までなければなりません。 MDI フレーム ウィンドウの名前を指定します。 開かれたシートの名前を追加するメニュー項目(開かれた シートに対応しているメニュー内の項目)の番号を指定し ます。メニューバーのメニュー項目は、左端から順番に 1 から番号付けされています。特に指定しない限り、最後か ら 2 番目のメニュー項目に開かれたシートのリストが表 示されます。 849 OpenSheetWithParm 引数 arrangeopen (オプション) 説明 MDI フレーム内での開かれたシートの配置を指定する ArrangeOpen カタログ データ型の値。次のいずれかの値を 指定します。 • Cascaded! -(デフォルト)すべてのタイトル バーが見 えるように、開いているシートを重ねて表示します。前 に開いていたシートの下に重ねて表示されます。 • Layered! - 開いているシートを重ねて表示します。フ レーム全体に、そのシートが表示されます。前に開いて いたシートの上に重ねて表示されます。 • Original! - シートを元のサイズで開き、重ねて表示し ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 windowtype 引数が無効な場合などは、OpenSheetWithParm はランタイム エラーを送出し、値を返しません。そのため、例の節の最初の例で示 すように、戻り値をテストし、try-catch ブロックでの関数呼び出しを 囲むことの両方を行うことをお勧めします。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。OpenSheetWithParm 関数のパラメータに指定 されたデータ型に対応するプロパティに値が格納されます。パラメー タのデータ型と Message オブジェクトのプロパティの対応を次に示し ます。 Message オブジェクトの プロパティ Message.DoubleParm Message.PowerObjectParm Message.StringParm 引数のデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 850 PowerBuilder 第 10 章 PowerScript 関数 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!) 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 PowerScript リファレンス ボリューム 2 851 OpenSheetWithParm 次の例は、ウィンドウのスクリプトです。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 ... // 通常勤務時間の計算 END IF 関連項目 852 ArrangeSheets OpenSheet PowerBuilder 第 10 章 PowerScript 関数 OpenTab ビジュアル ユーザ オブジェクトを開き、開いたユーザ オブジェクトを 指定されたタブ コントロールのタブ ページとします。また、すべての プロパティとコントロールをスクリプトで使用できるようにします。 目的 ユーザ オブジェクトをタブ ページとして開く 実行時にアプリケーションがユーザ オブジェクトのデー タ型を選択できるように、ユーザ オブジェクトをタブ ページとして開く 使用する構文 構文 1 構文 2 構文 1 データ型がわかっているユーザ オブジェクトを開く 機能 データ型がわかっているカスタム ビジュアル ユーザ オブジェクトを、 タブ コントロールのタブ ページとして開きます。 対象 タブ コントロール 構文 tabcontrolname.OpenTab ( userobjectvar, index ) 引数 tabcontrolname userobjectvar index 説明 ユーザ オブジェクトをタブ ページとして開くタブ コント ロールの名前を指定します。 タブ ページとして開くカスタム ビジュアル ユーザ オブ ジェクトの名前を指定します。ユーザ オブジェクト ペイ ンタで定義したカスタム ビジュアル ユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenTab 関数は、userobjectvar に指定され たカスタム ビジュアル ユーザ オブジェクトへの参照を配 置します。 新しいタブを挿入する位置を示すタブ番号を指定します。 index が 0、またはタブ数より大きい場合、タブ ページは 最後に挿入されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 どのユーザ オブジェクトを開くかが決まっている場合、構文 1 を使用 します。スクリプトの実行時に、アプリケーションがタブ ページとし て開くユーザ オブジェクトのデータ型を決める場合は、構文 2 を使用 します。 PowerScript リファレンス ボリューム 2 853 OpenTab OpenTab 関数は、ユーザ オブジェクトのタブ ページを選択状態にしま せん。ユーザ オブジェクトのコントロールの Constructor イベントに対 するスクリプトは、タブ ページが選択されるまで実行されません。 ユーザ オブジェクトのプロパティにアクセスする前にユーザ オブ ジェクトを開く必要があります。ユーザ オブジェクトを開く前にその プロパティにアクセスすると、実行時にエラーが発生します。 ユーザ オブジェクトがタブ コントロール定義の一部となっている場 合(つまり、ウィンドウ ペインタから、ユーザ オブジェクトをタブ コ ントロールに追加した場合)には、スクリプトでユーザ オブジェクト を開く必要はありません。タブ コントロールを含むウィンドウを開く 場合は、PowerBuilder は自動的にユーザ オブジェクトも開きます。 OpenTab 関数は、新しく開いたユーザ オブジェクトを、タブ コント ロールの Control 配列に追加します。この Control 配列は、タブ コント ロール内のタブ ページのリストを管理しているプロパティです。 同じオブジェクトを 2 回開いた場合 構文 1 を 2 回呼び出して同じユーザ オブジェクトを開くと、Open 関数 と OpenUserObject 関数の動作形態とは対照的に、OpenTab 関数は、ユー ザ オブジェクトを別のタブ ページとしてもう一度開きます。 動作の変更 以前のリリースでは、タブ ページとしてユーザ オブジェクトを開くた めに OpenTab 関数を呼び出すと、オブジェクトの Visible プロパティに false を設定していたとしても、タブ ページが表示されました。現在の リリースでは、タブ ページが表示されるように、ユーザ オブジェクト の Visible プロパティに true を設定する必要があります。 例 次の例は、ユーザ オブジェクト 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) 関連項目 854 OpenTabWithParm PowerBuilder 第 10 章 PowerScript 関数 構文 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 配列は、タブ コント ロール内のタブ ページのリストを管理しているプロパティです。 PowerScript リファレンス ボリューム 2 855 OpenTab 動作の変更 以前のリリースでは、タブ ページとしてユーザ オブジェクトを開くた めに OpenTab 関数を呼び出すと、オブジェクトの Visible プロパティに false を設定していたとしても、タブ ページが表示されました。現在の リリースでは、タブ ページが表示されるように、ユーザ オブジェクト の Visible プロパティに true を設定する必要があります。 ユーザ オブジェクト データ型を指定するときの考慮点 構文 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) 関連項目 856 OpenTabWithParm PowerBuilder 第 10 章 PowerScript 関数 OpenTabWithParm 指定されたウィンドウにビジュアル ユーザ オブジェクトを追加し、 OpenTab 関数と同様に、そのユーザ オブジェクトのすべてのプロパ ティとコントロールをスクリプトで使用できるようにします。また、 開かれているオブジェクトがパラメータにアクセスできるように、シ ステムの Message オブジェクトにパラメータを格納します。 目的 使用する構文 ユーザ オブジェクトをタブ ページとして開く 構文 1 実行時にアプリケーションがユーザ オブジェクトのデー 構文 2 タ型を選択できるように、ユーザ オブジェクトをタブ ページとして開く 構文 1 データ型がわかっているユーザ オブジェクトを開く 機能 データ型がわかっているカスタム ビジュアル ユーザ オブジェクトを タブ コントロールのタブ ページとして開き、システムの Message オブ ジェクトにパラメータを格納します。 対象 タブ コントロール 構文 tabcontrolname.OpenTabWithParm ( userobjectvar, parameter, index ) 引数 tabcontrolname userobjectvar parameter 説明 ユーザ オブジェクトをタブ ページとして開くタブ コント ロールの名前を指定します。 タブ ページとして開くカスタム ビジュアル ユーザ オブ ジェクトの名前を指定します。ユーザ オブジェクト ペイ ンタで定義したカスタム ビジュアル ユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenTabWithParm 関数は、userobjectvar に 指定されたカスタム ビジュアル ユーザ オブジェクトへの 参照を配置します。 指定されたユーザ オブジェクトが開かれるときに Message オ ブ ジ ェ ク ト に 格 納 す る パ ラ メ ー タ を 指 定 し ま す。 parameter には、次のいずれかのデータ型の変数を指定し ます。 • String 型 • 数値型 • PowerObject 型 PowerScript リファレンス ボリューム 2 857 OpenTabWithParm 引数 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 関数にも 適用できる内容が記述されています。 858 PowerBuilder 第 10 章 例 PowerScript 関数 次の例は、ユーザ オブジェクト 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 PowerScript リファレンス ボリューム 2 説明 ユーザ オブジェクトをタブ ページとして開くタブ コント ロールの名前を指定します。 ユーザオブジェクト データ型の変数を指定します。 OpenTabWithParm 関数は開かれたユーザ オブジェクトへ の参照を userobjectvar に格納します。 859 OpenTabWithParm 引数 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 オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 860 PowerBuilder 第 10 章 PowerScript 関数 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) PowerScript リファレンス ボリューム 2 861 OpenUserObject 次の例は、文字列 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 862 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名 前を指定します。 PowerBuilder 第 10 章 PowerScript 関数 引数 userobjectvar 説明 表示するユーザ オブジェクトの名前を指定します。ユーザ オブジェクト ペインタで定義したユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenUserObject は、開かれたユーザ オブ ジェクトの参照を userobjectvar に格納します。 x ウィンドウのフレーム内のユーザ オブジェクトの表示位 (オプション) 置を示す X 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 y ウィンドウのフレーム内のユーザ オブジェクトの表示位 (オプション) 置を示す Y 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 どのユーザ オブジェクトを開くかが決まっている場合、構文 1 を使用 します。スクリプトの実行時に、アプリケーションがタブ ページとし て開くユーザ オブジェクトのデータ型を決める場合は、構文 2 を使用 します。 ユーザ オブジェクトのプロパティにアクセスする前にユーザ オブ ジェクトを開く必要があります。ユーザ オブジェクトを開く前にその プロパティにアクセスすると、実行時にエラーが発生します。 初期状態のウィンドウで定義されているユーザ オブジェクト(ウィン ドウ ペインタで追加されたウィンドウ)は、スクリプトで開く必要は ありません。このユーザ オブジェクトは、PowerBuilder がウィンドウ を開くときに開かれます。 OpenUserObject 関数は、新しく開かれたユーザ オブジェクトをウィン ドウ プロパティの Control 配列に追加します。Control 配列は、ウィン ドウのコントロールを格納します。 実行時にユーザ オブジェクトを開く場合は、ウィンドウを閉じるとき にユーザ オブジェクトが自動的に破棄されません。通常はウィンドウ を閉じるときに、CloseUserObject 関数を呼び出してユーザ オブジェク トを破棄する必要があります。ユーザ オブジェクトを破棄しない場 合、メモリ内に保存され、メモリ リークの原因となります。 PowerScript リファレンス ボリューム 2 863 OpenUserObject 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 構文 2 データ型がわからないユーザ オブジェクトを開く 機能 スクリプトを実行するまでデータ型がわからないユーザ オブジェク トを開きます。 対象 ウィンドウ オブジェクト 構文 windowname.OpenUserObject ( userobjectvar, userobjecttype {, x, y } ) 引数 windowname 864 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名前 を指定します。 PowerBuilder 第 10 章 引数 userobjectvar userobjecttype x (オプション) y (オプション) PowerScript 関数 説明 DragObject データ型の変数を指定します。OpenUserObject 関数は、開かれたユーザ オブジェクトの参照を userobjectvar に格納します。 表示するユーザ オブジェクトの名前を表す文字列を指定 します。userobjecttype のデータ型は、userobjectvar の子孫 でなければなりません。 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す X 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す Y 座標(PowerBuilder 単位系)を指定します。特 に指定しない限り、0 が設定されます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 どのユーザ オブジェクトを開くかが決まっている場合、構文 1 を使用 します。スクリプトの実行時に、アプリケーションがタブ ページとし て開くユーザ オブジェクトのデータ型を決める場合は、構文 2 を使用 します。 ユーザ オブジェクトのプロパティにアクセスする前にユーザ オブ ジェクトを開く必要があります。ユーザ オブジェクトを開く前にその プロパティにアクセスすると、実行時にエラーが発生します。 初期状態のウィンドウで定義されているユーザ オブジェクト(ウィン ドウ ペインタで追加されたウィンドウ)は、スクリプトで開く必要は ありません。このユーザ オブジェクトは、PowerBuilder がウィンドウ を開くときに開かれます。 OpenUserObject 関数は、新しく開かれたユーザ オブジェクトをウィン ドウ プロパティの Control 配列に追加します。Control 配列は、ウィン ドウのコントロールを格納します。 実行時にユーザ オブジェクトを開く場合は、ウィンドウを閉じるとき にユーザ オブジェクトが自動的に破棄されません。通常はウィンドウ を閉じるときに、CloseUserObject 関数を呼び出してユーザ オブジェク トを破棄する必要があります。ユーザ オブジェクトを破棄しない場 合、メモリ内に保存され、メモリ リークの原因となります。 PowerScript リファレンス ボリューム 2 865 OpenUserObject 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) 関連項目 866 OpenUserObjectWithParm PowerBuilder 第 10 章 PowerScript 関数 OpenUserObjectWithParm OpenUserObject 関数と同様に、指定されたウィンドウにユーザ オブ ジェクトを追加し、そのユーザ オブジェクトのすべてのプロパティと コントロールをスクリプトで利用できるようにします。また、開かれ ているオブジェクトがパラメータにアクセスできるように、システム の Message オブジェクトにパラメータを格納します。 目的 使用する構文 特定のユーザ オブジェクトのインスタンスを開く 構文 1 スクリプトの実行時に、アプリケーションがユーザ オブ 構文 2 ジェクト データ型を選択することができるユーザ オブ ジェクトを開く 構文 1 データ型がわかっているユーザ オブジェクトを開く 機能 データ型がわかっているユーザ オブジェクトを開き、システムのメッ セージ オブジェクトにパラメータを保存します。 対象 ウィンドウ オブジェクト 構文 windowname.OpenUserObjectWithParm ( userobjectvar, parameter {, x, y } ) 引数 windowname userobjectvar parameter 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名前 を指定します。 表示するユーザ オブジェクトの名前を指定します。ユーザ オブジェクト ペインタで定義したユーザ オブジェクト (ユーザ オブジェクト データ型)を指定できます。また、 必要なユーザ オブジェクト データ型の変数を指定するこ ともできます。OpenUserObjectWithParm 関数は、開かれ たユーザ オブジェクトへの参照を userobjectvar に格納し ます。 指定されたユーザ オブジェクトが開かれるときに Message オ ブ ジ ェ ク ト に 格 納 す る パ ラ メ ー タ を 指 定 し ま す。 parameter には、次のいずれかのデータ型の変数を指定し ます。 • String 型 • 数値型 • PowerObject 型 PowerScript リファレンス ボリューム 2 867 OpenUserObjectWithParm 引数 x (オプション) y (オプション) 説明 ウィンドウのフレーム内のユーザ オブジェクトの表示位 置を示す 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 オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 null オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、null オブジェクト参照となり、エラーが発生します。たとえば、 閉じられているウィンドウのコントロール名を渡した場合、そのコン トロールは、スクリプトがパラメータにアクセスするときには存在し ません。 OpenUserObject 関数の解説も参考にしてください。 OpenUserObjectWithParm 関数にも適用できる内容が記述されています。 868 PowerBuilder 第 10 章 例 PowerScript 関数 次の例は、ユーザ オブジェクト 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 PowerScript リファレンス ボリューム 2 説明 ユーザ オブジェクトを開くウィンドウ オブジェクトの名前 を指定します。 DragObject データ型の変数を指定します。 OpenUserObjectWithParm 関数は、開かれたユーザ オブ ジェクトへの参照を userobjectvar に格納します。 869 OpenUserObjectWithParm 引数 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 オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 870 PowerBuilder 第 10 章 PowerScript 関数 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)の位 置に表示されます。 PowerScript リファレンス ボリューム 2 871 OpenWithParm 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 オブジェクトにパラメータを格納します。 対象 ウィンドウ オブジェクト 872 PowerBuilder 第 10 章 構文 PowerScript 関数 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 Message.StringParm 引数のデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 PowerScript リファレンス ボリューム 2 873 OpenWithParm 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) 874 PowerBuilder 第 10 章 PowerScript 関数 次の例は、チャイルド ウィンドウのインスタンス 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 (チャイルド ウィンドウ、 ポップアップ ウィンドウの 場合) PowerScript リファレンス ボリューム 2 • PowerObject 型 開くウィンドウ オブジェクトのデータ型を表す文字列を 指定します。windowtype のデータ型は、windowvar と同じ か、または子孫でなければなりません。 これから開くチャイルド ウィンドウまたはポップアップ ウィンドウの親ウィンドウにするウィンドウを指定しま す。チャイルド ウィンドウまたはポップアップ ウィンド ウを開く場合に parent を省略すると、現在アクティブな ウィンドウが親ウィンドウになります。 875 OpenWithParm 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 システムの Message オブジェクトには、データを格納するための 3 つ のプロパティがあります。OpenWithParm 関数のパラメータに指定され たデータ型に対応するプロパティに値が格納されます。パラメータの データ型と Message オブジェクトのプロパティの対応を次に示します。 Message オブジェクトの プロパティ Message.DoubleParm Message.PowerObjectParm 引数のデータ型 数値型 PowerObject(ユーザ定義構造体を含む PowerBuilder オブジェクト)型 Message.StringParm String 型 開かれているユーザ オブジェクトでは、ほかのスクリプトが Message オブジェクトを別の目的で使用する可能性があります。このため、 Message オブジェクトに渡された値には、すぐにアクセスすることを お勧めします。 null オブジェクト参照の回避 PowerObject 型のデータをパラメータとして渡すときは、オブジェクト への参照を渡しています。後でオブジェクトを参照するときには、オ ブジェクトが存在しなければなりません。オブジェクトが存在しない 場合、null オブジェクト参照となり、エラーが発生します。たとえば、 閉じられているウィンドウのコントロール名を渡した場合、そのコン トロールは、スクリプトがパラメータにアクセスするときには存在し ません。 複数の値を構造体として渡す場合 複数の値を渡すには、値を格納するためのユーザ定義の構造体を作成 し、開かれたウィンドウにおけるメッセージ オブジェクトの PowerObjectParm プロパティにアクセスします。構造体は、参照として ではなく、値として渡されるので、ユーザ定義構造体が破棄された場 合でも情報にアクセスできます。 Open 関数の解説も参考にしてください。OpenWithParm 関数にも適用で きる内容が記述されています。 876 PowerBuilder 第 10 章 例 PowerScript 関数 次の例は、文字列 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) 関連項目 CloseWithReturn Open OutgoingCallList 機能 パフォーマンス解析モデルに含まれているルーチンの呼び出し情報の リストを提供します。 対象 ProfileLine オブジェクト、ProfileRoutine オブジェクト 構文 instancename.OutgoingCallList ( list, aggregate ) 引数 instancename PowerScript リファレンス ボリューム 2 説明 ProfileLine オブジェクトまたは ProfileRoutine オブジェク トのインスタンス名を指定します。 877 OutgoingCallList 引数 list aggregate (ProfileRoutine のみ) 戻り値 解説 説明 ProfileCall 型の可変長配列変数を指定します。指定された ルーチン内からの別ルーチンの呼び出しごとに、 OutgoingCallList 関数は ProfileCall オブジェクトを 1 つ作成 してこの変数に格納します。この引数は、参照渡しされ ます。 Boolean 型の値。呼び出しが複数回発生した場合に、 ProfileCall オブジェクトを 1 つだけ作成するか、または複 数作成するかどうかを指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • ModelNotExistsError! - モデルが存在しません。 OutgoingCallList 関数を使うと、 ある特定のスクリプトの行またはルーチ ンから、パフォーマンス解析モデルに含まれるルーチンを呼び出して いる場合に、その情報のリストを取得できます。BuildModel 関数を使っ てトレース ファイルからパフォーマンス解析モデルをあらかじめ作 成しておかなければなりません。呼び出し側ルーチンはそれぞれ、 ProfileCall オブジェクトとして定義されます。このオブジェクトには、 呼び出されるルーチン、呼び出すルーチン、呼び出し回数、および処 理時間が書き込まれます。リスト中のルーチンの並び方に、特に規則 性はありません。 aggregate 引 数 は、ル ー チ ン の 呼 び 出 し が 複 数 回 発 生 す る 場 合 に、 ProfileCall オブジェクトを 1 つだけ作成するか、または複数作成するか どうかを示します。この引数が有効になるのは、ライン トレースを行 うように設定されていて、呼び出し側ルーチンが呼び出し先ルーチン を、異なる複数のラインから呼び出している場合だけです。aggregate が true である場合、新規作成される ProfileCall オブジェクトは 1 つだ けであり、呼び出し側ルーチンから呼び出し先ルーチンへの呼び出し の情報はすべて、このオブジェクトに 1 つにまとめられます。aggregate が false である場合、ProfileCall オブジェクトは複数作成され、呼び出 し側ルーチンが呼び出し先ルーチンを呼び出している 1 ラインに対 し、1 つのオブジェクトが対応します。 例 次の例では、パフォーマンス解析モデルに含まれるルーチンのリスト を取得し、次に、そのリスト内の個々のルーチンが呼び出しているルー チンのリストを取得します。 Long ll_cnt ProfileCall lproc_call[] lpro_model.BuildModel() 878 PowerBuilder 第 10 章 PowerScript 関数 lpro_model.RoutineList(iprort_list) FOR ll_cnt = 1 TO UpperBound(iprort_list) iprort_list[ll_cnt].OutgoingCallList(lproc_call, & TRUE) ... NEXT 関連項目 BuildModel IncomingCallList PowerScript リファレンス ボリューム 2 879 PageCount PageCount 機能 リッチテキスト エディット コントロールの文書全体のページ数を返 します。 対象 リッチテキスト エディット コントロール 構文 rtename.PageCount ( ) 引数 rtename 説明 ページ数を調べるリッチテキスト エディット コントロー ルの名前を指定します。 戻り値 Integer 型。リッチテキスト エディット コントロールのページ数を返し ます。コントロールにテキストがない場合は 1 を返し、エラーが発生 した場合は -1 を返します。 解説 文書のページ数は、テキストの量や、ページのサイズ、余白、フォン トのサイズなどのレイアウトの仕様によって決まります。 リッチテキスト エディットコントロールがデータウィンドウとデー タを共有すると、データウィンドウの行ごとに文書のインスタンスが 作成されます。PageCount 関数は、1 つのインスタンスのページ数を報 告します。ページ数の合計を取得するには、データウィンドウ関数の RowCount 関数の戻り値にページ数を掛けます。 例 次の例は、リッチテキスト エディット コントロール rte_1 の文書の ページ数をスタティックテキスト コントロール st_status のテキストと して表示します。 st_status.Text = String(rte_1.PageCount()) 関連項目 880 LineCount LineLength 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RowCount メソッド PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 CreatePage PowerScript リファレンス ボリューム 2 881 ParentWindow 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() 882 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、ポップアップ ウィンドウの[キャンセル]ボ タンのスクリプトです。ボタンの親ウィンドウ(ボタンを含むウィン ドウ)の親ウィンドウのイベントを起動し、ボタンの親ウィンドウを 閉じます。続いて、ボタンのウィンドウが閉じます。ボタンのウィン ドウの親ウィンドウには、イベント cancelrequested に対するスクリプ トが定義されています。 Parent.ParentWindow().TriggerEvent("cancelrequested") Close(Parent) Paste 機能 クリップボードの内容を指定されたコントロールに挿入します(貼り 付けます)。編集可能なコントロールを対象とする場合、クリップボー ドのテキストを挿入ポイントに貼り付けます。OLE コントロールを対 象とする場合、クリップボードの OLE オブジェクトをコントロール内 の既存のオブジェクトに置き換えます。 対象 エディットマスク コントロール、インクエディット コントロール、マ ルチライン エディット コントロール、シングルライン エディット コ ントロール、リッチテキスト エディット コントロール、ドロップダウ ン リストボックス コントロール、ドロップダウン ピクチャ リスト ボックス コントロール、データウィンドウ コントロール、OLE コン トロール 構文 controlname.Paste ( ) 引数 controlname 説明 データウィンドウ、エディットマスク、インクエディット、 マルチライン エディット、シングルライン エディット、 リッチテキスト エディット、ドロップダウン リストボッ クス、ドロップダウン ピクチャ リストボックス、OLE の いずれかのコントロールの名前。クリップボードの内容の 貼り付け先を指定します。 controlname がデータウィンドウ コントロールの場合、エ ディット コントロールの現行の行とカラムの上にテキス トを貼り付けます。controlname にドロップダウン リスト ボックス コントロールまたはドロップダウン ピクチャ リ ストボックス コントロールを指定する場合、AllowEdit プ ロパティは true でなければなりません。 戻り値 データウィンドウ、インクエディット、およびリストボックスの 場合 は Integer 型、ほかのコントロールの場合は Long 型 PowerScript リファレンス ボリューム 2 883 Paste エディット コントロールを対象とする場合、controlname に指定された コントロールに貼り付けられた文字数を返します。切り取りやコピー が行われていない場合(クリップボードが空の場合)、Paste 関数はエ ディット コントロールの内容を変更せずに、0 を返します。クリップ ボードにテキスト以外のデータ(ビットマップや OLE オブジェクトな ど)が格納されており、コントロールがそのデータを受け付けること ができない場合、Paste 関数はコントロールの内容を変更せずに、0 を 返します。 OLE コントロールを対象とする場合、正常に終了したときには 0 を返 します。エラーが発生したときには、次のいずれかの負の値を返しま す。 -1 クリップボードにデータがないか、またはクリップボードの内 容を埋め込むことができません。 -9 そのほかのエラーです。 解説 編集可能なコントロールでは、controlname でテキストが選択される と、Paste 関数はそのテキストをクリップボードの内容と置き換えま す。エディット コントロールに格納できる行数より多くの行がクリッ プボードに格納されている場合には、格納できるだけの行数を貼り付 けます。 データウィンドウ コントロールでは、現行の行とカラム上にあるエ ディット コントロールにテキストを貼り付けます。そのカラムに格納 できる行数より多くのテキストがクリップボードに格納されている場 合、格納できるだけのテキストを貼り付け、残りは切り捨てます。ク リップボードのテキストがカラムのデータ型と一致しない場合には、 すべてのテキストが切り捨てられるため、選択したテキストは空の文 字列("")に置き換えられます。 リッチテキスト エディット コントロールには、テキストだけでなく、 ビットマップも貼り付けることができます。 特定の文字列を controlname に挿入したり、選択したテキストを特定の 文字列に置き換えたりするには、ReplaceText 関数を使用します。 Paste 関数を使用して OLE オブジェクトを OLE コントロールに貼り付 ける場合、データは PowerBuilder アプリケーションにリンクされるわ けではなく、埋め込まれます。 884 PowerBuilder 第 10 章 例 PowerScript 関数 クリップボードに 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 を返します。 PowerScript リファレンス ボリューム 2 885 PasteRTF 解説 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 機能 文字列のリッチテキスト形式のデータを、データウィンドウ コント ロール、データストア オブジェクト、またはリッチテキスト エディッ ト コントロールに貼り付けます。 対象 データウィンドウ コントロール、データストア オブジェクト、リッチ テキスト エディット コントロール 886 PowerBuilder 第 10 章 構文 PowerScript 関数 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!) 関連項目 CopyRTF PasteSpecial 機能 OLE オブジェクトを特定のコントロールに貼り付けるときに、標準の OLE ダイアログボックスを表示し、エンド ユーザが OLE オブジェク トを埋めこむのか、リンクするのかを選択できるようにします。埋め 込みを選択した場合の結果は、Paste 関数を使用した場合と同じです。 リンクを選択した場合の結果は、PasteLink 関数を使用した場合と同じ です。 PowerScript リファレンス ボリューム 2 887 Pi 対象 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 Pi 機能 指定された数値に pi(円周率)を掛けます。 構文 Pi ( n ) 引数 n 説明 pi(円周率 3.14159265358979323)を掛ける数値を指定しま す。 戻り値 Double 型。正常に終了した場合は n × pi の結果を返し、エラーが発生 した場合には -1 を返します。n が null の場合、null を返します。 解説 Pi 関数は、 角度と弧度(ラジアン)を互いに変換する場合に使用します。 888 PowerBuilder 第 10 章 PowerScript 関数 次の例は、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)) 関連項目 Cos Sin Tan 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Pi メソッド PixelsToUnits 機能 ピクセル単位の数値を、PowerBuilder 単位系に変換します。通常、ピ クセルは 1 次元なので、変換するピクセルが水平方向か垂直方向かを 指定します。 構文 PixelsToUnits ( pixels, type ) 引数 pixels type 説明 PowerBuilder 単位系に変換するピクセル数を表す Integer 型の数値を指定します。 変換方法を指定する ConvertType カタログ データ型の値を 指定します。 • XPixelsToUnits! - 水平方向のピクセルを変換します。 • YPixelsToUnits! - 垂直方向のピクセルを変換します。 戻り値 Integer 型。正常に終了した場合は変換後の値を返し、エラーが発生し た場合は -1 を返します。引数のいずれかの値が null の場合、null を返 します。 例 次の例は、水平方向の 35 ピクセルを PowerBuilder 単位系に変換し、変 換した値を Value に設定します。 PowerScript リファレンス ボリューム 2 889 Play integer Value Value = PixelsToUnits(35, XPixelsToUnits!) 関連項目 UnitsToPixels 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) 関連項目 890 Stop PowerBuilder 第 10 章 PowerScript 関数 PointerX 機能 指定されたオブジェクトの左端からポインタまでの距離を返します。 対象 すべてのオブジェクトとコントロール 構文 objectname.PointerX ( ) 引数 objectname 戻り値 説明 コントロールまたはウィンドウの名前を指定し、その左端 からポインタまでの距離を返します。objectname を省略す ると、現行のシートまたはウィンドウの左端からの距離が 返されます。 Integer 型。正常に終了した場合、objectname で指定されたコントロー ルまたはウィンドウの左端からポインタまでの距離(PowerBuilder 単 位系)を返し、エラーが発生した場合には -1 を返します。 例 次の例は、ウィンドウのコントロールのスクリプトです。ウィンドウ の端からポインタまでの距離を変数 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 891 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()) 関連項目 892 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 893 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 関 数は何もしません。 894 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 が設定され ます。 895 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) 896 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 897 PosW 解説 PosA 関数は、PowerBuilder 9 の Pos 関数が DBCS 環境で提供していた 機能に代わるものです。SBCS 環境では、Pos 関数、PosW 関数、PosA 関数は同じ結果を返します。 PosW 機能 文字列の中から指定された文字列を検索し、最初に検索した文字列の 先頭文字の位置を返します。この関数は、サポートされなくなります。 動作は、すべての環境で Pos 関数と同じです。 構文 PosW ( string1, string2 {, start } ) Position 編集可能なコントロール内にある挿入ポイントの位置を調べます。 目的 使用する構文 リッチテキスト エディット コントロールを除く編集可能 構文 1 なコントロール内にある挿入ポイントの位置を調べる リッチテキスト エディット コントロールまたはオブジェ 構文 2 クトの提示様式がリッチテキスト エディットのデータ ウィンドウ コントロールで、挿入ポイントの位置または選 択されているテキストの先頭と末尾の位置を調べる 構文 1 リッチテキスト エディット コントロール以外の編集 可能なコントロール内にある挿入ポイントの位置を 調べる 機能 エディット コントロール内にある挿入ポイントの位置を返します。 対象 データウィンドウ コントロール、エディットマスク コントロール、イ ンクエディット コントロール、マルチライン エディット コントロー ル、シングルライン エディット コントロール、ドロップダウン リス トボックス コントロール、ドロップダウン ピクチャ リストボックス コントロール 898 PowerBuilder 第 10 章 構文 editname.Position ( ) 引数 editname 戻り値 PowerScript 関数 説明 データウィンドウ、エディットマスク、インクエディット、 マルチライン エディット、シングルライン エディット、ド ロップダウン リストボックス、ドロップダウン ピクチャ リストボックスのいずれかのコントロールの名前。挿入ポ イントの位置を調べるコントロールの名前を指定します。 データウィンドウ、インクエディット、およびリストボックスの場合 は 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 899 Position 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.Position ( fromline, fromchar {, toline, tochar } ) 引数 rtename fromline fromchar toline (オプション) tochar (オプション) 戻り値 解説 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前。挿入ポイントの位置また は選択範囲の位置を調べるコントロールの名前を指定し ます。データウィンドウ コントロールのデータウィンドウ オブジェクトは、リッチテキスト エディット データウィ ンドウでなければなりません。 Long 型の変数を指定します。指定された変数に、挿入ポ イントの位置または選択範囲の先頭の行番号を格納しま す。 Long 型の変数を指定します。指定された変数に、選択範 囲の 1 文字目の位置または挿入ポイントの後の位置を格 納します。 Long 型の変数を指定します。指定された変数に、選択範 囲の末尾の行番号を格納します。 Long 型の変数を指定します。指定された変数に、選択範 囲の末尾の文字の位置を格納します。 Band カタログ データ型。選択範囲または挿入ポイントを含む区域 (Detail!、Header!、Footer!)を返します。 toline と tochar を省略すると、Position 関数は挿入ポイントの位置を返 します。テキストが選択されている場合、挿入ポイントは、選択範囲 の先頭文字になることも、末尾の文字になることもあります。たとえ ば、エンド ユーザが下方向にテキストを選択した場合、挿入ポイント は選択範囲の末尾にあります。 テキストが選択されている場合、文字引数に 0 を設定して、選択範囲 が行の先頭から始まるのか、行の先頭で終了するのかを示すことがで きます。その行では、何も選択されません。エンド ユーザが上方向に 選択した場合、選択範囲を行の先頭から開始することができます。こ の場合、fromchar には 0 が設定されます。エンド ユーザが下方向選択 した場合、選択範囲を行の先頭で終了することができます。この場合、 tochar には 0 が設定されます。 900 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 901 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) 902 PowerBuilder 第 10 章 IF l2 = 0 and l1select = c1select = l2select = c2select = PowerScript 関数 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 903 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 関数は文字列をコピーし、文字列に 対するポインタを渡します。 904 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 関数を使用します。詳細については、 「解説」を参照 してください。 905 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 イベントをポストするとデータを削除するスクリプトが実行 されます。 906 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 907 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 908 説明 インターネット サービス インスタンスへの参照を指 定します。 ポストするデータの URL を表す文字列を指定します。 Blob 型の変数を指定します。この変数には urlname で 指定した URL に渡す引数を設定します。 PowerBuilder 第 10 章 引数 headers serverport (オプション) data 戻り値 PowerScript 関数 説明 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 は、inet 型のインスタンス変数です。 Blob lblb_args String ls_headers String ls_url PowerScript リファレンス ボリューム 2 909 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 関連項目 910 GetURL HyperLinkToURL InternetData PowerBuilder 第 10 章 PowerScript 関数 Preview 機能 リッチテキスト エディット コントロールの内容を、文書の印刷プレ ビュー モードまたは編集モードで表示します。 対象 リッチテキスト エディット コントロール 構文 rtename.Preview ( previewsetting ) 引数 rtename previewsetting 説明 プレビュー モードまたは編集モードで表示するリッチテ キスト エディット コントロールの名前を指定します。 リッチテキスト エディット コントロールの内容をプレ ビュー モードまたは編集モードのどちらのモードで表示 するかを示す Boolean 型の値。値は以下のとおりです。 • True - リッチテキスト エディット コントロールの内容 の印刷イメージを表示するプレビュー モード • False - 内容を編集できる編集モード 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールの内容を表示するには、編集 モードとプレビュー モードの 2 つの表示モードを使用します。Preview 関数は、この 2 つのモードを切り換えます。 編集モードでは、テキストが読める形式で表示されます。 エンド ユーザは、テキストの入力、選択、および変更を行うことがで きます。キャリッジ リターン、空白、タブ、入力フィールドなど、テ キスト中の印刷されない文字の表示を制御するプロパティがありま す。編集モードでは、ツールバー、ルーラ、タブバーは、コントロー ルの編集エリアの上部に表示されます。 編集モード プレビュー モード プレビュー モードでは、コントロールの中に印刷 イメージが縮小されて表示されます。ページのサイズは、コントロー ルの大きさに合うように変更されます。プレビュー モードには、用紙 のサイズと余白を指定するエディットボックスがあります。コント ロールの表示モードがプレビュー モードに切り換わると、すべての選 択箇所は取り消されます。エンド ユーザは、プレビュー モードでテキ ストを編集することはできません。ただし、スクリプトで関数を呼び 出せば、テキストの選択や変更だけでなく、文書の挿入を行うことが できます。 コントロールがプレビュー モードのときに ShowHeadFoot 関数を呼び 出すと、編集モードに戻り、ヘッダとフッタの編集パネルが表示され ます。 PowerScript リファレンス ボリューム 2 911 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 912 説明 印刷するオブジェクトの名前を指定します。オブジェクト は、先祖の種類が DragObject であるオブジェクトまたは ウィンドウでなければなりません。DragObject には、ウィ ンドウに配置できるすべてのコントロールが含まれてい ます。 PowerBuilder 第 10 章 引数 printjobnumber x y width (オプション) height (オプション) PowerScript 関数 説明 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 913 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 (オプション) 戻り値 914 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 印刷領域の左端からの距離を、1/1000 インチ単位で指定し ます。string を印刷する前に、印刷カーソルを tab1 に指定 された位置まで移動します。印刷カーソルがすでに指定さ れた位置にある場合、指定された位置を越えている場合、 または tab1 を省略した場合には、印刷カーソルの現行の位 置から印刷を開始します。 印刷するテキストを指定します。文字列にキャリッジ リ ターン文字と改行文字(~r~n)が指定されている場合、文 字列は複数行に印刷されます。ただし、2 行目以降では tab1 は無視されます。 印刷領域の左端からの距離を 1/1000 インチ単位で指定し ます。string を印刷した後で、印刷カーソルを tab2 に指定 された位置まで移動します。印刷カーソルがすでに指定さ れた位置にある場合、または指定された位置を越えている 場合には、Print 関数は 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 915 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 インチの位置にカーソルを移動します。 916 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 構文 3 リッチテキスト エディット コントロールに対して 機能 リッチテキスト エディット コントロールの内容を印刷します。 対象 リッチテキスト エディット コントロール 構文 rtename.Print ( copies, pagerange, collate, canceldialog ) 引数 rtename copies PowerScript リファレンス ボリューム 2 説明 印刷するリッチテキスト エディット コントロールの名前 を指定します。 印刷する部数を整数で指定します。 917 Print 引数 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 を返します。 解説 リッチテキスト エディット コントロールがデータをデータウィンド ウと共有している場合、コントロール内の総ページ数は、文書内のペー ジ数にデータウィンドウの行数を乗算した値です。 文書のヘッダまたはフッタに入力フィールドを含めると、印刷する ページ番号を指定できます。 例 次の例は、リッチテキスト エディット コントロール rte_1 内の文書の 1 ~ 5 ページを 1 部ずつ印刷します。部単位の印刷は行われません。エ ンド ユーザが印刷を取り消すことができるように、ダイアログボック スが表示されます。 rte_1.Print(1, "1-5", FALSE, TRUE) 関連項目 918 Preview PrintEx PowerBuilder 第 10 章 PowerScript 関数 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 関数は、印刷カーソルの位置を変更しません。印刷カーソ ルは関数が呼び出される前の位置のままです。通常、座標を引数とす る印刷関数は、印刷カーソルに影響を及ぼしません。印刷関数につい ては、 「関連項目」の関数を参照してください。 例 次の文は、新しく空白ページを定義した後、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 PowerScript リファレンス ボリューム 2 919 PrintCancel PrintRoundRect PrintOval PrintOpen PrintCancel 機能 印刷を取り消し、スプール ファイルを削除します。PrintOpen 関数を使 用して開かれた印刷ジョブを取り消します。印刷ジョブは、PrintOpen 関数が返す番号によって認識されます。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「PrintCancel メソッド」を参照してください。 構文 PrintCancel ( printjobnumber ) 引数 printjobnumber 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。printjobnumber が null の場合、null を返します。 解説 指定された印刷ジョブを取り消し、そのジョブのスプール ファイルが 存在する場合は、スプール ファイルを削除します。PrintCancel 関数は、 印刷ジョブを閉じる処理も同時に行いますので、この関数を呼び出し た後には、PrintClose 関数は呼び出さないでください。 例 次の例は、印刷ボタンのイベントに対するスクリプトです。印刷ジョ ブを開き、次に、[キャンセル]ボタンを持つウィンドウを開きます。 エンド ユーザが[キャンセル]ボタンをクリックすると、そのスクリ プトで、エンド ユーザがジョブをキャンセルしたことを示すグローバ ル変数を設定します。 [印刷]ボタンのイベントに対するスクリプトで は、印刷関数を呼び出すたびにグローバル変数を調べ、true の場合に 印刷ジョブを取り消します。 グローバル変数の定義は、次のとおりです。 boolean gb_printcancel [印刷]ボタンのイベントに対するスクリプトは、次のとおりです。 long job, li gb_printcancel = FALSE job = PrintOpen("Test Page Breaks") 920 PowerBuilder 第 10 章 PowerScript 関数 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 PrintClose 機能 現在のページをプリンタ(またはスプーラ)に送り、印刷ジョブを終 了します。PrintCancel 関数によってジョブを終了しない限り、印刷ジョ ブに対する最後のコマンドとして PrintClose 関数を呼び出します。 構文 PrintClose ( printjobnumber ) 引数 printjobnumber 戻り値 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。printjobnumber が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 921 PrintDataWindow 解説 印刷ジョブを開始した後は、そのジョブを終了する(または取り消す) 必要があります。印刷ジョブのハングアップを避けるために、印刷ジョ ブを開始したイベントと同じイベント内で印刷処理および印刷の終了 を行うようにしてください。 例 次の例は、印刷ジョブを開始します。印刷ジョブは、空白ページを設 定し、そのページにビットマップを印刷して、現行のページをプリン タまたはスプーラに送り、ジョブを終了します。 ulong Job // 新しいジョブとページを開始します。 Job = PrintOpen( ) // 元のサイズでビットマップを印刷します。 PrintBitmap(Job, d:\PB\BITMAP1, 5,10, 0,0) // ページをプリンタに送り、ジョブを終了します。 PrintClose(Job) 関連項目 PrintCancel PrintOpen PrintDataWindow 機能 データウィンドウ コントロールの内容を 1 つの印刷ジョブとして印刷 します。 構文 PrintDataWindow ( printjobnumber, dwcontrol ) 引数 printjobnumber dwcontrol 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 印刷するデータウィンドウ オブジェクトを含むデータ ウィンドウ コントロール、子データウィンドウ、または データストア オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 PrintDataWindow 関数は、PrintOpen 関数、PrintClose 関数以外の Print 関 数とともに使用することはできません。 922 PowerBuilder 第 10 章 PowerScript 関数 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) 関連項目 Print PrintClose PrintOpen PrintDefineFont 機能 プリンタでサポートされているフォントと、フォントのプロパティに 番号を定義します。定義した番号を PrintSetFont 関数または PrintText 関 数で使用することができます。一度に 8 つのフォントを定義できます。 構文 PrintDefineFont ( printjobnumber, fontnumber, facename, height, weight, fontpitch, fontfamily, italic, underline ) 引数 printjobnumber PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま fontnumber す。 フォントに割り当てる番号(1 ~ 8)を指定します。 PowerScript リファレンス ボリューム 2 説明 923 PrintDefineFont 引数 facename height weight fontpitch 説明 プリンタがサポートするフォント名(たとえば、Courier 10Cpi)を表す文字列を指定します。 Integer 型の値。文字の高さを 1/1000 インチ単位で表した もの(たとえば、18 ポイント 10Cpi の場合は 250)または、 ポイント サイズを示す負の数(たとえば、-18 は 18 ポイ ント)を指定します。ポイント サイズで指定した方が厳密 に指定できます。1/1000 インチ単位で示した文字の高さ は、ポイント サイズの近似値にすぎません。 文字の太さを指定します。通常の太さの場合は 400 を指定 し、太字の場合は 700 を指定します。 フォントのピッチを示す FontPitch カタログ データ型の 値。次のいずれかの値を指定します。 Default! Fixed! Variable! fontfamily フォントのファミリーを示す FontFamily カタログ データ 型の値で次のいずれかを指定します。 AnyFont! Decorative! Modern! Roman! Script! Swiss! italic フォントが斜体かどうかを示す Boolean 型の値を指定しま す。標準の設定は false(斜体ではない)です。 フォントに下線が付くかどうかを示す Boolean 型の値を指 定します。標準の設定は false(下線が付かない)です。 underline 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 1 つの印刷ジョブには、最大 8 つのフォントを定義することができます。 1 つのジョブで 9 つ以上のフォントが必要な場合には、PrintDefineFont 関数をもう一度呼び出してフォント数の設定を変更します。 PrintSetFont 関数を使用して、開いている印刷ジョブの現行のフォント にフォント番号を割り当てます。 Microsoft Windows におけるフォント fontfamily は、フォント名に関する情報と重複するように見えますが、 Windows はこの引数をフォント名とともに使用してフォントを識別 し、そのフォントが使用できない場合は類似のフォントで代用します。 924 PowerBuilder 第 10 章 PowerScript 関数 フォント名と大きさ フォント名にはサイズが含まれているものがあります。特に、等幅の フォントには、インチ当りの文字数が含まれています。これは、その フォントの推奨サイズで、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 PrintEx 機能 リッチテキスト エディット コントロールの内容を印刷します。 対象 リッチテキスト エディット コントロール 構文 rtename.PrintEx ( canceldialog ) 引数 rtename canceldialog 説明 印刷するリッチテキスト エディット コントロールの名前 を指定します。 Boolean 型の値。エンド ユーザが印刷を取り消すことがで きるように、非モダルのキャンセル ダイアログボックスを 表示するかどうかを指定します。システムの印刷 ダイアロ グボックスは常に表示されます。値は以下のとおりです。 TRUE - 表示 FALSE - 非表示 PowerScript リファレンス ボリューム 2 925 PrintGetPrinter 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。エンド ユーザが印刷 ダイアログボックスの[キャンセ ル]ボタンをクリックした場合、PrintEx 関数は -1 を返します。エンド ユーザがキャンセル ダイアログボックスの[キャンセル]ボタンをク リックした場合、PrintEx 関数は 1 を返します。 解説 印刷するページの範囲と部数、および部単位で印刷するかどうかを指 定するには、Print 関数を使用します。 例 次の例は、リッチテキスト エディット コントロール rte_1 内の文書を 印刷します。エンド ユーザが印刷を取り消すことができるように、 キャンセル ダイアログボックスが表示されます。 rte_1.PrintEx(TRUE) 関連項目 Preview Print 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) 926 PowerBuilder 第 10 章 PowerScript 関数 sle_1.text=ls_name sle_2.text=ls_driver sle_3.text=ls_port 関連項目 PrintGetPrinters PrintSetPrinter 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 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ImportString メソッド PowerScript リファレンス ボリューム 2 927 PrintLine PrintGetPrinter PrintSetPrinter PrintLine 機能 現在の印刷ページに指定の太さで、指定された 2 点を両端とする線分 を描きます。 構文 PrintLine ( printjobnumber, x1, y1, x2, y2, thickness ) 引数 printjobnumber 説明 x1 線の開始位置の X 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の開始位置の Y 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の終了位置の X 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の終了位置の Y 座標(1/1000 インチ単位)を表す整数値 を指定します。 線の太さを 1/1000 インチ単位の整数値で指定します。 y1 x2 y2 thickness PrintOpen 関数が印刷ジョブに割り当てた番号を指定します。 戻り値 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) 関連項目 928 PrintBitmap PrintClose PowerBuilder 第 10 章 PowerScript 関数 PrintOpen PrintOval PrintRect PrintRoundRect PrintOpen 機能 印刷ジョブを開き、それに番号を割り当てます。番号はほかの印刷ス テートメントで使用します。 構文 PrintOpen ( { jobname {, showprintdialog } } ) 引数 jobname (オプション) showprintdialog (オプション) 説明 ジョブに割り当てる名前を表す文字列を指定します。ジョ ブの名前は、Windows のプリント マネージャのダイアログ ボックスとスプーラのダイアログボックスに表示されま す。 Boolean 型の値。エンド ユーザがプリンタを選択したり印 刷プロパティを設定したりできるように、システムの印刷 ダイアログボックスを表示するかどうかを指定します。値 は以下のとおりです。 TRUE - 表示 FALSE -(デフォルト)非表示 戻り値 Long 型。正常に終了した場合はジョブ番号を返し、エラーが発生した 場合は -1 を返します。印刷 ダイアログボックスが表示され、エンド ユーザが[キャンセル]ボタンをクリックした場合、PrintOpen 関数は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 新しい印刷ジョブは、新しいページから開始されます。フォントはプ リンタの標準のフォントに設定されます。印刷カーソルは、印刷領域 の左上端に位置付けられます。 showprintdialog 引数に true を指定した場合、エンド ユーザが印刷ジョ ブを取り消すことができるように、システムの印刷 ダイアログボック スが表示されます。PowerBuilder はあらかじめ印刷ジョブのページ数 を判断することができないため、印刷 ダイアログボックスのページ範 囲を指定するオプションは使用できません。サーバで動作しているコ ンポーネントでこの引数を指定している場合、その引数は無視されま す。 返されたジョブ番号は、それ以降に使用するすべての印刷関数で、ジョ ブを識別するための番号として使用します。 PowerScript リファレンス ボリューム 2 929 PrintOpen PrintOpen 関数の後に MessageBox 関数を呼び出すと、エンド ユーザを 混乱させる状態を引き起こします。PrintOpen 関数を呼び出すと、現行 のアクティブ ウィンドウからは Windows による印刷処理が使用でき なくなります。PrintOpen 関数の後でメッセージ ボックスを表示する と、Windows はアクティブ ウィンドウをメッセージ ボックスの親ウィ ンドウにします。頻繁に、別のアプリケーションのウィンドウがメッ セージの親ウィンドウになり、別のアプリケーションがアクティブに なってしまいます。 PrintOpen と PrintClose 印刷ジョブを開始した後は、そのジョブを終了する(または取り消す) 必要があります。印刷ジョブのハングアップを避けるために、印刷ジョ ブを開始したイベントと同じイベント内で印刷ジョブを処理し、終了 するようにしてください。 例 次の例は印刷ジョブを開きますが、印刷ジョブ名は指定しません。 ulong li_job li_job = PrintOpen() 次の例は印刷ジョブを開き、その印刷ジョブに名前を指定し、印刷 ダ イアログボックスを開きます。 ulong li_job li_job = PrintOpen("Phone List", true) 関連項目 930 Print PrintBitmap PrintCancel PrintClose PrintDataWindow PrintDefineFont PrintLine PrintOval PrintPage PrintRect PrintRoundRect PrintSend PrintSetFont PrintSetup PrintText PrintWidth PrintX PrintY PowerBuilder 第 10 章 PowerScript 関数 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( ) PowerScript リファレンス ボリューム 2 931 PrintPage // 楕円を印刷します。 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) // 新しいページを始めます。 932 PowerBuilder 第 10 章 PowerScript 関数 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 関数は、印刷カーソルの位置を変更しません。カーソルは、 関数が呼び出される前の位置に留まります。通常、座標を引数とする 印刷関数は、印刷カーソルの位置に影響を及ぼしません。 PowerScript リファレンス ボリューム 2 933 PrintRoundRect 例 次の例は、新しい空白の 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 934 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 長方形の左上端の X 座標を 1/1000 インチ単位の整数値で 指定します。 長方形の左上端の Y 座標を 1/1000 インチ単位の整数値で 指定します。 長方形の幅を 1/1000 インチ単位の整数値で指定します。 長方形の高さを 1/1000 インチ単位の整数値で指定します。 角の x 方向の丸め角度を表す整数値を指定します。 角の y 方向の丸め角度を表す整数値を指定します。 長方形の外周の線の太さを 1/1000 インチ単位の整数値で 指定します。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 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) 関連項目 PrintBitmap PrintClose PrintLine PrintOpen PrintOval PrintRect PowerScript リファレンス ボリューム 2 935 PrintScreen 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) 関連項目 936 Print PrintClose PrintOpen PowerBuilder 第 10 章 PowerScript 関数 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 に変換されます。 プリンタの設定を指定する通常の印刷ジョブでは、次の関数呼び出し が行われます。 1 PrintOpen 関数 2 PrintSend 関数(プリンタの設定の変更、トレイの選択など) 3 PrintDefineFont 関数、PrintSetFont 関数(フォントの指定) 4 Print 関数(テキストの印刷) 5 PrintClose 関数 PowerScript リファレンス ボリューム 2 937 PrintSend 例 次の例は、新しい空白の 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) 関連項目 938 PrintClose PrintOpen PowerBuilder 第 10 章 PowerScript 関数 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") 関連項目 PrintDefineFont PrintOpen PowerScript リファレンス ボリューム 2 939 PrintSetPrinter PrintSetPrinter 機能 次の印刷関数の呼び出し時に使用するプリンタを設定します。この関 数は、開いているジョブには影響しません。 構文 PrintSetPrinter ( printername ) 引数 printername 戻り値 説明 使用するプリンタの名前を表す文字列を指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 printername 引数では、PrintGetPrinter 関数から返される文字列と同じ形 式を使用する必要があります。 例 次の例では、使用するプリンタとして、PrintGetPrinters 関数で取得した リストの最初のプリンタを設定しています。 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 PrintSetSpacing 機能 行間隔の算出に使用するファクタを設定します。 構文 PrintSetSpacing ( printjobnumber, spacingfactor ) 引数 printjobnumber spacingfactor 940 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 現行の文字の高さに乗算して、垂直方向の行間を決めるた めの比例定数(スペース ファクタ)を指定します。特に指 定しない限り、1.2 が設定されます。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 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) 関連項目 PrintOpen PrintSetup 機能 プリンタの設定 ダイアログボックスを表示し、エンド ユーザがプリン タの設定を指定できるようにします。 構文 PrintSetup ( ) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 エンド ユーザの設定は現行のアプリケーションが終了するまで有効 です。アプリケーションが終了すると、プリンタの設定は元の値に戻 ります。 例 次のステートメントは、現行のシステム プリンタのプリンタの設定 ダ イアログボックスを表示し、新しい印刷ジョブを開始します。 long Job // プリンタ セットアップ プログラムを起動します。 PrintSetup() // 印刷ジョブを開始し、改ページします。 PowerScript リファレンス ボリューム 2 941 PrintSetupPrinter Job = PrintOpen( ) 関連項目 PrintOpen 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 () 関連項目 942 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 943 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) 関連項目 944 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 945 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") 関連項目 PrintY PrintY 機能 印刷カーソルの Y 座標を取得します。 構文 PrintY ( printjobnumber ) 引数 printjobnumber 説明 PrintOpen 関数が印刷ジョブに割り当てた番号を指定しま す。 戻り値 Integer 型。正常に終了した場合は印刷カーソルの Y 座標を返し、エ ラーが発生した場合は -1 を返します。引数のいずれかの値が null の場 合、null を返します。 例 次のステートメントは、印刷カーソルの位置から 1 インチ下にビット マップを印刷します。 integer LocX, LocY long Job 946 PowerBuilder 第 10 章 PowerScript 関数 Job = PrintOpen( ) ... // 印刷ステートメント LocX = PrintX(Job) LocY = PrintY(Job) + 1000 PrintBitmap(Job, "CORP.BMP", LocX, LocY, 1000,1000) 関連項目 PrintX ProfileInt 機能 アプリケーションのプロファイルに設定されている情報(Integer 型の 値)を取得します。 構文 ProfileInt ( filename, section, key, default ) 引数 filename section key default PowerScript リファレンス ボリューム 2 説明 プロファイルの名前を表す文字列を指定します。絶対パス 名が指定されていない場合、ProfileInt 関数はシステムの標 準のファイル検索方法でファイルを検索します。 プロファイル内の関連する値のグループの名前(セクショ ン名)を表す文字列を指定します。プロファイルでは、セ クション名が角カッコ([])で囲まれています。ただし、 section を指定する場合には、セクション名を角カッコ([]) で囲まないでください。section は、大文字と小文字を区別 しません。 section でのキーワードを指定する文字列を指定します。プ ロファイルでは、キーワードの後ろに等号(=)が付いて います。ただし、key を指定する場合には、キーワードの 後ろに等号(=)を付けないでください。key は、大文字 と小文字を区別しません。 ProfileInt 関数が返す Integer 型の値を指定します。この値 は、filename に指定されているファイルが見つからない場 合、filename に指定されているファイル内に、section に指 定されているセクションや key に指定されているキーワー ドがない場合、または key の値を Integer 型に変換できない 場合に返されます。 947 ProfileInt 戻り値 Integer 型。filename に指定されたファイルが見つからない場合、section で指定されたセクションがプロファイル内にない場合、key に指定され たキーワードが指定のセクションにない場合、または key に指定され た値が整数でない場合には、default に指定された整数値を返します。 エラーが発生した場合には -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 ProfileInt 関数と ProfileString 関数を使用すると、自分のアプリケーショ ンのプロファイルの設定に関する情報を取得できます。 SetProfileString 関数を使用すると、プロファイルの値を変更してアプリ ケーションの設定を実行時にカスタマイズできます。プロファイルの 値を変更する前に、ProfileInt 関数と ProfileString 関数を使用して元の設 定を保存します。このようにしておくと、エンド ユーザがアプリケー ションを終了したときに、保存しておいた情報を使用してアプリケー ションを元の状態に戻すことができます。 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) 948 PowerBuilder 第 10 章 PowerScript 関数 次の例は、ファイル 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 メソッド ProfileString 機能 アプリケーションのプロファイルに設定されている情報(String 型の 値)を取得します。 構文 ProfileString ( filename, section, key, default ) 引数 filename section key PowerScript リファレンス ボリューム 2 説明 プロファイルの名前を表す文字列を指定します。絶対パス 名が指定されていない場合、ProfileString 関数はシステムの 標準のファイル検索方法でファイルを検索します。 プロファイル内の関連する値のグループの名前(セクショ ン名)を表す文字列を指定します。プロファイルでは、セ クション名が角カッコ([])で囲まれています。ただし、 section を指定する場合には、セクション名を角カッコ([]) で囲まないでください。section は、大文字と小文字を区別 しません。 section でのキーワードを指定する文字列を指定します。プ ロファイルでは、キーワードの後ろに等号(=)が付いて います。ただし、key を指定する場合には、キーワードの 後ろに等号(=)を付けないでください。key は、大文字 と小文字を区別しません。 949 ProfileString 引数 default 説明 ProfileString 関数が返す String 型の値を指定します。この値 は、filename に指定されているファイルが見つからない場 合、filename に指定されているファイル内に、section に指 定されているセクションや key に指定されているキーワー ドがない場合、または key の値を String 型に変換できない 場合に返されます。 戻り値 String 型。最大 4,096 文字までの文字列。filename に指定されているファ イルの section に指定されているセクションで key に指定されている キーワードの値を返します。filename に指定されているファイルが見 つからない場合、section に指定されているセクションがプロファイル 内にない場合、または key に指定されているキーワードが指定のセク ションにない場合は、default に指定されている文字列を返します。エ ラーが発生した場合、空の文字列("")を返します。引数のいずれか の値が null の場合、null を返します。 解説 ProfileInt 関数と ProfileString 関数を使用すると、自分のアプリケーショ ンのプロファイルの設定に関する情報を取得できます。 SetProfileString 関数を使用すると、プロファイルの値を変更してアプリ ケーションの設定を実行時にカスタマイズできます。プロファイルの 値を変更する前に、ProfileInt 関数と ProfileString 関数を使用して元の設 定を保存します。このようにしておくと、エンド ユーザがアプリケー ションを終了したときに、保存しておいた情報を使用してアプリケー ションを元の状態に戻すことができます。 ProfileInt 関数、ProfileString 関数、SetProfileString 関数は、Windows シス テム上では ANSI または UTF16-LE エンコーディング、UNIX システム 上では ANSI または UTF16-BE エンコーディングでファイルからの読 み取りやファイルへの書き込みをすることができます。 Windows レジストリ さらに、32 ビット オペレーティング システムでは、ProfileString 関数を 使って、Windows システム レジストリ から環境設定の情報を取得でき ます。システム レジストリの使用方法についての詳細は、 『アプリケー ション テクニック』マニュアルの「初期設定ファイルおよび Windows レジストリの管理」を参照してください。 例 ここでは、プロファイル PROFILE.INI の次のセクションを使用した例 について説明します(INI ファイル内で文字列値を囲む引用符はオプ ションです)。 [Employee] 950 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 ProfileInt SetProfileString 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ProfileString メソッド Rand 機能 1 から指定された上限までの範囲にある整数の乱数を返します。 構文 Rand ( n ) 引数 n 説明 返される乱数の上限を指定します。下限は常に 1 です。上 限は 32,767 です。 戻り値 数値データ型、n のデータ型。1 から n までの範囲(1 と n を含む)に ある整数の乱数を返します。n が null の場合、null を返します。 解説 Rand 関数を繰り返し呼び出して生成させた一連の数値は、擬似乱数 シーケンスです。アプリケーションの実行のたびに、乱数シーケンス が異なるようにするには、Randomize 関数を呼び出して乱数ジェネレー タを初期化します。 PowerScript リファレンス ボリューム 2 951 Randomize 例 次の文は、1 ~ 10 の範囲の整数の乱数を返します。 Rand(10) 関連項目 Randomize Randomize 機能 Rand 関数が新しい擬似乱数を生成するように、乱数ジェネレータを初 期化します。 構文 Randomize ( n ) 引数 n 説明 乱数ジェネレータを初期化する値(シード値)を指定しま す。n にゼロを指定するとシステム クロックからシード値 を得るので、毎回異なる乱数を生成します。0 以外の値を 指定すると、シード値ごとに同じ乱数を繰り返し生成しま す。n は、32,767 以下です。 戻り値 Integer 型。n が null の場合、null を返します。通常戻り値は使用されま せん。 解説 Rand 関数を繰り返し呼び出して生成させた一連の数値は、擬似乱数 シーケンスです。Randomize 関数を使用してシステム クロックまたは ほかの変更値で乱数ジェネレータを初期化できるので、アプリケー ションの実行のたびに異なる乱数シーケンスを生成することができま す。テスト用のデータを生成するために、特定のシード値を選択し、 アプリケーションの実行のたびに同じ擬似乱数を繰り返し生成するこ とができます。 アプリケーションの Open イベントに対するスクリプトで Randomize 関数を呼び出してください。 例 次のステートメントは、乱数ジェネレータのシード値を 0 に設定し、ス クリプトの実行のたびに Rand 関数を呼び出して乱数を発生させます。 Randomize(0) 次のステートメントは、乱数ジェネレータのシード値を 4 に設定して いるので、乱数ジェネレータが初期化されるたびに Rand 関数が呼び出 され、同じ乱数が繰り返し生成されます。 Randomize(4) 関連項目 952 Rand PowerBuilder 第 10 章 PowerScript 関数 Read 開いている OLEStream オブジェクトからデータを読み込みます。 目的 データを文字列に読み込む データを文字配列または Blob 型の変数に読み込む 使用する構文 構文 1 構文 2 構文 1 データを文字列に読み込む 機能 OLEStream オブジェクトから文字列にデータを読み込みます。 対象 OLEStream オブジェクト 構文 olestream.Read ( variable {, stopforline } ) 引数 olestream variable stopforline (オプション) 説明 開いている OLEStream 変数の名前を指定します。 String 型の変数。olestream から読み込んだデータを格納す る変数の名前を指定します。 Boolean 型の値。一度に 1 行ずつ読み込むかどうかを指定 します。つまり、次のキャリッジ リターン文字とライン フィード文字で、Read 関数が読み込みを停止するかどう かを指定します。値は以下のとおりです。 • TRUE -(デフォルト)行の最後で読み込みを停止し、 読み込みポインタをキャリッジ リターン文字とライン フィード文字の後に設定します。次の読み込み操作で、 次の行を読み込むことができるようにします。 • FALSE - ストリーム全体、または最大 32,765 バイトを 読み込みます。 戻り値 Integer 型。読み込んだ文字数またはバイト数を返します。文字を読み 込む前にエンド オブ ファイル マーク(EOF)が検出された場合、Read 関数は -100 を返します。エラーが発生した場合、次のいずれかの負の 値を返します。 -1 ストリームが開かれていません。 -2 読み込みエラーです。 -9 そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 953 Read 例 次の例は、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) 関連項目 Open Length Seek Write 構文 2 データを文字列配列または Blob 型の変数に読み込む 機能 OLEStream オブジェクトから文字配列または Blob 型の変数にデータ を読み込みます。 対象 OLEStream オブジェクト 構文 olestream.Read ( variable {, maximumread } ) 引数 olestream variable maximumread (オプション) 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 954 説明 開いている OLEStream 変数の名前を指定します。 olestream からデータを読み込む Blob 型の変数または文字 配列の名前を指定します。 Long 型の値。読み込む最大バイト数を指定します。特に 指定しない限り、32,765 文字または olestream の長さが設 定されます。 ストリームが開かれていません。 PowerBuilder 第 10 章 -2 -9 PowerScript 関数 読み込みエラーです。 そのほかのエラーです。 引数のいずれかの値が 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") 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 PowerScript リファレンス ボリューム 2 説明 Real 型として返す String 型、または最初の値が Real 型で ある Blob 型変数を指定します。残りの Blob 型の値は無視 されます。stringorblob は文字列または Blob 型を含む Any 変数を指定することもできます。 955 Real 戻り値 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 関数のように正確な値の 長さを指定する必要はありません。 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)) 関連項目 956 Double Integer Long 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Real メソッド PowerBuilder 第 10 章 PowerScript 関数 RecognizeText 機能 インクエディット コントロール内のテキストを認識するように指定 します。 対象 インクエディット コントロール 構文 inkeditname.RecognizeText ( ) 引数 inkeditname 戻り値 説明 テキストを認識したいインクエディット コントロールの名 前を指定します。 Integer 型。テキストが認識される場合は 1 を返し、そうでない場合は 0 を返します。 解説 デフォルトでは、ユーザがインクの入力中に中断したとき、および RecognitionTimer プロパティで指定した秒数が経過したときに、インク が自動的に認識されます。テキストを認識させずにユーザが中断でき るようにするには、RecognitionTimer 間隔をあけて、ボタンの clicked イベントあるいは別のイベントで RecognizeText 関数をコードに記述し ます。 例 “Done” ボタンの clicked イベントの次のコードで、認識エンジンはユー ザが入力したストロークをテキストとして認識します。 boolean lb_success lb_success = ie_1.RecognizeText() RegistryDelete 機能 Windows のシステム レジストリのキーまたはキーの値を削除します。 構文 RegistryDelete ( key, valuename ) 引数 key valuename PowerScript リファレンス ボリューム 2 説明 String 型の値。削除するシステム レジストリのキーまたは キーの値を指定します。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 レジストリの値の名前を含む文字列を指定します。指定さ れたキーにサブキーがない場合は、空の文字列を指定する と、キーと名前のある値が削除されます。 957 RegistryGet 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 システム レジストリのエントリについての詳細は、「RegistrySet 関数」 を参照してください。 例 次のステートメントは、レジストリから、Title という名前の値とその 値に関連付けられている値を削除します。キーは削除されません。 RegistryDelete( & "HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts",& "Title") 関連項目 RegistryGet RegistryKeys RegistrySet RegistryValues RegistryGet 機能 Windows のシステム レジストリから値を取得します。 構文 RegistryGet ( key, valuename, { valuetype }, valuevariable ) 引数 key valuename 958 説明 String 型の値。システム レジストリのキーの名前を指定し ます。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 レジストリの値の名前を含む文字列を指定します。各キー には、名前のない値を 1 つと、名前のある値を複数持つこ とができます。名前のない値の場合は、空の文字列("") を指定します。 PowerBuilder 第 10 章 引数 valuetype PowerScript 関数 説明 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( & "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 PowerScript リファレンス ボリューム 2 959 RegistryKeys RegistryKeys 機能 Windows のシステム レジストリのキーより 1 つ下のレベルにある子項 目(サブキー)のキー一覧を取得します。 構文 RegistryKeys ( key, subkeys ) 引数 key subkeys 説明 String 型の値。サブキーを取得するシステム レジストリの キーの名前を指定します。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 サブキーを格納する String 型の配列変数を指定します。 配列のサイズが可変の場合、要素数には検索されたサブ キーの数が反映されます。 配列のサイズが固定の場合、すべてのサブキーを格納する のに十分な大きさが必要です。ただし、すべてのサブキー を検索できたかどうかを確認することはできません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 システム レジストリのエントリについての詳細は、「RegistrySet 関数」 を参照してください。 例 次の例は、キー HKEY_CLASSES_ROOT\MyApp に関連付けられたサ ブキーを取得します。サブキーは、可変サイズ配列 ls_subkeylist に格納 されます。 string ls_subkeylist[] integer li_rtn li_rtn = RegistryKeys("HKEY_CLASSES_ROOT\MyApp", & ls_subkeylist) IF li_rtn = -1 THEN ... // エラー処理 END IF 関連項目 960 RegistryDelete RegistryGet RegistrySet RegistryValues PowerBuilder 第 10 章 PowerScript 関数 RegistrySet 機能 キーの値と値の名前をシステム レジストリに設定します。キーまたは 値の名前が存在しない場合、新しいキーまたは名前を作成し、値を設 定します。 構文 RegistrySet ( key, valuename, valuetype, value ) 引数 key 説明 String 型の値。システム レジストリのキーの名前を指定し ます。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 valuename valuetype key がレジストリにない場合、RegistrySet 関数は新しい キーを作成します。名前のない値で key を作成するには、 valuename に空の文字列("")を指定します。 レジストリの値の名前を含む文字列を指定します。各キー には、名前のある値が複数ある可能性があります。名前の ない値を指定するには、空の文字列("")を指定します。 レジストリに valuename がない場合、RegistrySet 関数は key に新しい名前のある値を作成します。 RegistryValueType カタログ データ型の値を指定します。こ の値を使って、レジストリの値のデータ型を識別します。 値は以下のとおりです。 • RegString! - null で終わる文字列 • RegExpandString! - 環境変数への非拡張参照を含む、 null で終わる文字列 • RegBinary! - バイナリ データ • ReguLong! - 32 ビットの数値 • ReguLongBigEndian! - 32 ビットの数値 • RegLink! - Unicode シンボリック リンク value • RegMultiString! - String 型の値の可変長配列 valuetype のデータ型に対応した変数を指定します。レジス トリに設定すべき値をこの変数に格納します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。valuevariable のデータ型が valuetype で指定したデータ 型に対応していない場合は、エラーとなります。 解説 レジストリの値が、長い文字列である(2048 バイトを超える)場合は、 文字列は別のファイルに格納され、そのファイル名がレジストリに格 納されます。 PowerScript リファレンス ボリューム 2 961 RegistrySet 項目 キー 説明 レジストリの構成要素の 1 つです。キーは、キーのツリー の一部で、すでに定義されたルート キーのうちの 1 つの子 孫です。各キーは、サブキーまたは階層構造での親キーの 子です。 ルートには、次の 4 つのキーがあります。 • HKEY_CLASSES_ROOT • HKEY_LOCAL_MACHINE • HKEY_USERS • HKEY_CURRENT_USER キーは、その上位の親キーの一覧で識別されます。一覧に あるキーは、次の例に示されるように円記号(\)で区切 られています。 HKEY_CLASSES_ROOT\Sybase.Application HKEY_USERS\MyApp\Display\Fonts 値の名前 値の型 値 例 キーに属する値の名前です。キーは、名前のない値を1つ と、複数の名前がある値を持つことができます。 レジストリの値のデータ型を示す値です。 値の名前に関連付けられた値または、名前のない値です。 レジストリでは、いくつかの文字列、数値、およびバイナ リのデータ型がサポートされます。 次の例は、レジストリの 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) 関連項目 962 RegistryDelete RegistryGet RegistryKeys RegistryValues PowerBuilder 第 10 章 PowerScript 関数 RegistryValues 機能 キーに関連付けられた名前のある値の一覧を取得します。 構文 RegistryValues ( key, valuename ) 引数 key valuename 説明 String 型の値。サブキーの値を取得するシステム レジスト リのキーを指定します。 キーを特定するには、階層構造の上位のキーを含む絶対パ ス名で正確に指定します。それぞれのキーは、円記号(\) で区切ります。 名前を格納する String 型の配列変数を指定します。 配列のサイズが可変の場合、要素数には検索された名前の ある値の数が反映されます。 配列のサイズが固定の場合、すべての名前を格納するのに 十分な大きさが必要です。ただし、名前が実際にいくつ検 索されたかを知る方法はありません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 システム レジストリのエントリについての詳細は、「RegistrySet 関数」 を参照してください。 例 次の例は、レジストリから Fonts キーに関連付けられている値の名前 を取得し、配列 ls_valuearray に格納します。 string ls_valuearray[] RegistryValues( & "HKEY_LOCAL_MACHINE\Software\MyApp.Settings\Fonts",& ls_valuearray) 関連項目 RegistryDelete RegistryGet RegistryKeys RegistrySet PowerScript リファレンス ボリューム 2 963 RelativeDate RelativeDate 機能 指定された日付から、指定された日数だけ前または後の日付を取得し ます。 構文 RelativeDate ( date, n ) 引数 date n 説明 Date 型の値。日付を指定します。 Integer 型の値。日数を指定します。 戻り値 Date 型。n に指定されている値が 0 以上の場合は date の n 日後の日付 を返します。n が 0 未満の場合は date の n 日前の日付を返します。引 数のいずれかの値が null の場合、null を返します。 例 次のステートメントは、2006-02-10 を返します。 RelativeDate(2006-01-31, 10) 次のステートメントは、2006-01-21 を返します。 RelativeDate(2006-01-31, 関連項目 - 10) DaysAfter 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RelativeDate メソッド RelativeTime 機能 ある時刻を起点とし、指定された秒数より前または後の時刻を 24 時間 未満の表記で返します。 構文 RelativeTime ( time, n ) 引数 time n 戻り値 964 説明 Time 型の値を指定します。 Long 型の値。秒数を指定します。 Time 型。n が正の数の場合は、time で指定された時刻から n 秒後の時 刻を返します。n が負の数の場合は、time で指定された時刻から n 秒 前の時刻を返します。戻り値の最大値は、23:59:59 になります。引数 のいずれかの値が null の場合、null を返します。 PowerBuilder 第 10 章 PowerScript 関数 解説 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 ) 引数 oleobject pointer 説明 OLEObject 型の変数。解放するネイティブ ポインタが示す オブジェクトが含まれる OLE オブジェクトを指定します。 UnsignedLong 型の変数。解放するポインタを指定します。 ReleaseAutomationNativePointer 関数は、指定した pointer に 0 を設定し、ポインタを無効にします。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 pointer は OLE の IUnknown インタフェースへのポインタです。ほかの インタフェースへのポインタを取得するには、IUnknown::QueryInterface とともに使用します。 GetAutomationNativePointer 関数が呼び出されると、PowerBuilder は OLE の AddRef 関数を呼び出してポインタをロックします。DLL 関数、また は PowerBuilder スクリプトで ReleaseAutomationNativePointer 関数を使用 してポインタを解放する必要があります。 PowerScript リファレンス ボリューム 2 965 ReleaseNativePointer 例 例については、GetAutomationNativePointer 関数を参照してください。 関連項目 GetAutomationNativePointer GetNativePointer ReleaseNativePointer ReleaseNativePointer 機能 GetNativePointer 関数で取得した OLE オブジェクトへのポインタを解放 します。 対象 OLE コントロール、OLE カスタム コントロール 構文 olename.ReleaseNativePointer ( pointer ) 引数 olename pointer 説明 解放するネイティブ ポインタが示すオブジェクトが含ま れる OLE コントロールの名前を指定します。 UnsignedLong 型の変数。解放するポインタを指定します。 ReleaseNativePointer 関数は、指定した pointer に 0 を設定 し、ポインタを無効にします。 戻り値 Integer 型。正常に終了した場合は 0 を返し、エラーが発生した場合は -1 を返します。 解説 pointer は OLE の IUnknown インタフェースへのポインタです。ほかの インタフェースへのポインタを取得するには、IUnknown::QueryInterface とともに使用します。 GetNativePointer 関数が呼び出されると、PowerBuilder は OLE の AddRef 関 数 を 呼 び 出 し て ポ イ ン タ を ロ ッ ク し ま す。DLL 関 数、ま た は PowerBuilder スクリプトで ReleaseNativePointer 関数を使用してポイン タを解放する必要があります。 例 例については、GetNativePointer 関数を参照してください。 関連項目 GetAutomationNativePointer GetNativePointer ReleaseAutomationNativePointer 966 PowerBuilder 第 10 章 PowerScript 関数 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 + & " を削除しました ") end if 関連項目 DirectoryExists GetCurrentDirectory Repair 機能 パイプライン ユーザ オブジェクトのエラー データウィンドウで修正 された内容によって、目的のデータベースを更新します。 対象 パイプライン オブジェクト 構文 pipelineobject.Repair ( destinationtrans ) PowerScript リファレンス ボリューム 2 967 Repair 引数 pipelineobject destinationtrans 戻り値 説明 実行されているパイプライン オブジェクトを含むパイプ ライン ユーザ オブジェクトの名前を指定します。 転送先のデータベースに接続するために使用するトラン ザクション オブジェクトの名前を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は 負の値を返します。エラーが発生した場合、次のいずれかの値を返し ます。 -5 接続がありません。 -9 転送先に致命的な SQL エラーがあります。 -10 エラーの最大数を超えました。 -11 ウィンドウ ハンドルが正しくありません。 -12 テーブル構文に誤りがあります。 -15 パイプはすでに進行中です。 -17 転送先のデータベースにエラーがあります。 -18 転送先のデータベースは読み出し専用です。 引数のいずれかの値が null の場合、null を返します。 解説 パイプライン データの転送中にエラーが発生すると、Start 関数はパイ プライン エラー用のデータウィンドウ コントロールにそのエラーが 発生した行を表示します。そのときにエンド ユーザやスクリプトに よって、データを修正することができます。Repair 関数は、通常コマ ンドボタンと連携しており、エンド ユーザはパイプライン エラー用の データウィンドウのデータを訂正してから、これをクリックします。 再びエラーが発生した場合は、エラーが発生した行はパイプライン エ ラー用のデータウィンドウに残ります。エンド ユーザは再度データを 修正して Repair 関数を呼ぶボタンをクリックします。 例 次のステートメントは、トランザクションのインスタンス変数 i_dst を 使用して転送先のデータベースに接続した後、パイプライン i_pipe に 対するパイプライン エラー用のデータウィンドウで行われた修正内 容でデータベースを更新します。 i_pipe.Repair(i_dst) 関連項目 968 Cancel Repair Start PowerBuilder 第 10 章 PowerScript 関数 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 に挿入します。 例 次のステートメントは、Name の値を Davis から Dave に置換します。 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" を返します。 PowerScript リファレンス ボリューム 2 969 ReplaceA 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 sle_1.Text = mystring 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Replace メソッド ReplaceA 機能 現行のロケールに基づいて文字列を DBCS に一時的に変換し、文字列 の一部をほかの文字列と置き換えます。 構文 ReplaceA (string1, start, n, string2) 引数 string1 970 説明 string2 で置き換えられる文字列を含む文字列を指定しま す。 PowerBuilder 第 10 章 引数 start n string2 PowerScript 関数 説明 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 関数は同じ 結果を返します。 ReplaceText 機能 編集可能なコントロールの中で選択されたテキストを、指定された文 字列で置き換えます。 対象 データウィンドウ コントロール、エディットマスク コントロール、イ ンクエディット コントロール、マルチライン エディット コントロー ル、シングルライン エディット コントロール、リッチテキスト エ ディット コントロール、ドロップダウン リストボックス コントロー ル、ドロップダウン ピクチャ リストボックス コントロール 構文 editname.ReplaceText (string ) PowerScript リファレンス ボリューム 2 971 ReplaceText 引数 editname string 戻り値 説明 選択された文字列の置き換えを行うデータウィンドウ、エ ディットマスク、インクエディット、マルチライン エ ディット、シングルライン エディット、リッチテキスト エディット、ドロップダウン リストボックス、ドロップダ ウン ピクチャ リストボックスのいずれかのコントロール の名前を指定します。 データウィンドウ コントロールでは、エディット コント ロール中の現行の行のカラムに関するテキストが置換さ れます。 選択されたテキストの置換に使用する文字列を指定します。 データウィンドウ、インクエディット、およびリストボックスの場合 は Integer 型、ほかのコントロールの場合は Long 型 インクエディットでは正常に終了した場合は 1 を返し、エラーが発生 した場合は -1 を返します。ほかのコントロールでは、正常に終了した 場合は string の文字数を示す整数を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 テキストが選択されていない場合には、ReplaceText 関数は置換テキス トをカーソル位置に挿入します。 リッチテキスト エディット コントロールでは、ピクチャを選択するこ ともできます。 テキスト置換のそのほかの方法 クリップボードの内容を置換テキストとして使用する場合、ReplaceText 関数のかわりに Paste 関数を使用します。 コントロール中のテキストではなく文字列のテキストを置換するに は、Replace 関数を使用します。 例 マルチライン エディット コントロール 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") 972 PowerBuilder 第 10 章 関連項目 PowerScript 関数 Copy Cut Paste ReplaceW 機能 文字列の指定した文字位置から、指定した文字数をほかの文字列で置 換した文字列を返します。この関数は、サポートされなくなります。 動作は、すべての環境で Replace 関数と同じです。 構文 ReplaceW ( string1, start, n, string2 ) Reset データをコントロールまたはオブジェクトから消去します。使用する 構文は、消去するオブジェクトによって異なります。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「Reset メソッド」を参照してください。 目的 リストからすべての項目を削除する グラフから、すべてのデータ(およびオプションで、デー タ系列と項目)を削除する トレース ファイルの最初に戻る 使用する構文 構文 1 構文 2 構文 3 構文 1 リストボックスのデータを消去する 機能 リストからすべての項目を削除します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.Reset ( ) PowerScript リファレンス ボリューム 2 973 Reset 引数 listboxname 説明 リストボックス コントロールの名前。すべての項目を削除 するコントロールを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。listboxname が null の場合、null を返します。通常、戻り 値は使用されません。 例 次のステートメントは、リストボックス コントロール ddlb_Actions の すべての項目を削除します。 ddlb_Actions.Reset() 関連項目 DeleteItem 構文 2 グラフのデータを消去する 機能 グラフからデータ、項目、およびデータ系列を削除します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ、外部にデータ ソースのあるデータウィンドウ オブジェクト上のグラフ データウィンドウ オブジェクト上のグラフを対象とすることはでき ません。これは、データウィンドウ オブジェクト上のグラフでは、デー タウィンドウから直接データが取得されるからです。 構文 controlname.Reset ( graphresettype ) 引数 controlname graphresettype 説明 グラフ オブジェクトの名前を指定します。指定されたグラ フ オブジェクト上のすべてのデータ値、またはすべての データ系列とすべてのデータ値を削除します。 grResetType カタログデータ型の値。データ値だけを削除 するのか、すべてのデータ系列とすべてのデータ値を削除 するのかを指定します。次のいずれかの値を指定します。 • All! - controlname 内のすべてのデータ系列、項目、お よびデータ • Category! - controlname 内の項目とデータ • Data! - controlname 内のデータ • Series! - controlname 内のデータ系列とデータ 戻り値 974 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。通 常、戻り値は使用されません。 PowerBuilder 第 10 章 PowerScript 関数 解説 グラフに新しいデータを追加する前に、グラフから既存のデータを消 去する場合、この関数を使用します。 例 次のステートメントは、グラフ gr_product_data のデータ系列とデータ を削除しますが、項目は削除せずに残します。 gr_product_data.Reset(Series!) 関連項目 AddData AddSeries 構文 3 トレース ファイルの最初に戻る 機能 トレース ファイルの内容をもう一度読み直せるように、ファイルの最 初に戻ります。 対象 TraceFile オブジェクト 構文 instancename.Reset ( ) 引数 instancename 戻り値 説明 TraceFile オブジェクトのインスタンス名を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • FileNotOpenError! - 指定されたトレース ファイルは、開かれてい ません。 解説 開いているトレース ファイルの最初に戻って、ファイルの内容をもう 一度読み直したい場合に、この関数を使用します。Reset 関数を使用す る前に、Open 関数を使ってトレース ファイルを開いておく必要があり ます。Reset 関数と Open 関数とともに、TraceFile オブジェクトが提供 するほかのプロパティおよび関数を使うと、トレース ファイルの内容 に直接アクセスできます。たとえば、既存の解析モデル化オブジェク トを使わずに、トレース データを独自の方法で解析したい場合には、 これらの関数を使用します。 例 以下の例では、エンド ユーザが ltf_file ファイルの内容をもう一度読め るように、ファイルの位置を最初に戻します。 TraceFile ltf_file string ls_filename ltf_file = CREATE TraceFile ltf_file.Open(ls_filename) ... PowerScript リファレンス ボリューム 2 975 ResetArgElements ltf_file.Reset(ls_filename) ... 関連項目 Open NextActivity Close ResetArgElements 機能 引数リストをクリアします。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.ResetArgElements ( ) 引数 activexcontrol 戻り値 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、これはオブジェク ト要素の NAME 属性です。そのほかの環境で使用する場 合には、これは PowerBuilder ウィンドウ ActiveX を含むコ ントロールを参照します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 解説 この関数を呼び出して引数リストをクリアする前に、InvokePBFunction 関数または TriggerPBEvent 関数を呼び出す必要があります。 SetArgElement 関数を使って引数リストに値を設定する場合は、 InvokePBFunction 関数または TriggerPBEvent 関数を使って引数付きでイ ベントまたは関数を呼び出した後、この関数を使って引数をクリアし ておく必要があります。 例 次の JavaScript の例は、ResetArgElements 関数を呼び出します。 ... retcd = PBRX1.TriggerPBEvent(theEvent, numargs); rc = parseInt(PBRX1.GetLastReturn()); IF (rc != 1) { alert(" エラー。空の文字列です。"); } PBRX1.ResetArgElements(); ... 976 PowerBuilder 第 10 章 PowerScript 関数 次に、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 ) 引数 controlname graphcontrol (データウィンド ウ コントロールの み) seriesnumber datapointnumber 戻り値 説明 特定のデータ ポイントの色をリセットするグラフ コ ントロールの名前、またはそのグラフがあるデータ ウィンドウ コントロールの名前を指定します。 (オプション)色を再設定するデータウィンドウ コント ロール内のグラフ名を表す文字列を指定します。 特定のデータ ポイントの色をリセットするデータ系列 の番号を指定します。 色をリセットするデータ ポイントの番号を指定しま す。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 977 ResetInk データ ポイントに対する標準の色 データ系列の色を設定するには、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 ResetInk 機能 インクピクチャ コントロールからインクを消去します。 対象 インクピクチャ コントロール 構文 inkpicname.ResetInk ( ) 引数 inkpicname 説明 インクを消去したいインクピクチャ コントロールの名前を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ResetInk 関数を使用して、インクピクチャ コントロールからインクを 消去します。 978 PowerBuilder 第 10 章 例 PowerScript 関数 次の例は、インクピクチャ コントロールからインクを消去します。 ip_1.ResetInk() 関連項目 LoadInk LoadPicture ResetPicture SaveInk Save ResetPicture 機能 インクピクチャ コントロールからピクチャを消去します。 対象 インクピクチャ コントロール 構文 inkpicname.ResetPicture ( ) 引数 inkpicname 説明 ピクチャを消去したいインクピクチャ コントロールの名前 を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ResetPicture 関数を使用して、インクピクチャ コントロールからイメー ジを消去します。 例 次の例は、インクピクチャ コントロールからイメージを消去します 。 ip_1.ResetPicture() 関連項目 LoadInk LoadPicture ResetInk SaveInk Save PowerScript リファレンス ボリューム 2 979 Resize 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 回目は新しい幅と高さを使用して描きま す。 別の記述方法 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 つと 同じ結果になります。 例 980 次のステートメントは、gb_box1 の Width プロパティと Height プロパ ティを設定し、新しいプロパティで gb_box1 を再描画します。 PowerBuilder 第 10 章 PowerScript 関数 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 戻り値 説明 JaguarORB のインスタンスを指定します。 「NameService」という値の文字列を指定します。 COS ネーミング サービスへの参照を格納する CORBAObject 型の参照変数を指定します。 Long 型。正常に終了した場合は 0 を返し、エラーが発生した場合は負 の値を返します。 解説 Jaguar ネーミング サービス API にアクセスしたい場合は、 Resolve_Initial_References 関数を使用して、最初のネーム コンテキスト を取得します。しかし、この方法を使用することはお勧めできません。 非難されることの多い SessionManager::Factory の create メソッドを使 用する必要があるためです。大部分の PowerBuilder クライアントでは、 CORBA ネーミング サービスを明示的に使用する必要はありません。 そのかわりに、接続オブジェクトの CreateInstance メソッドや Lookup メ ソッドを使って EAServer コンポーネントを作成するときに自動的に 実行される名前解決を利用できます。 また、CORBA ネーミング サービスを明示的に使用しなくても、JaguarORB オブジェクトの String_To_Object メソッドを使用してプロキシ インス タンスをインスタンス化することができます。JaguarORB オブジェク トを使用して EAServer に接続する方法についての詳細は、『アプリ ケーション テクニック』マニュアルを参照してください。 PowerScript リファレンス ボリューム 2 981 Resolve_Initial_References 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 my_orb = CREATE JaguarORB // URL 名を単引用符で囲みます。 my_orb.init("ORBNameServiceURL='iiop://server1:2000'") 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, & 982 PowerBuilder 第 10 章 PowerScript 関数 "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 戻り値 説明 Boolean 型の値を指定します。true は直前に受信したコマ ンドまたはデータが受け入れられたことを示し、false は受 け入れられなかったことを示します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合(た とえば、不正な状況で関数が呼び出された場合)、-1 を返します。 boolean が null の場合、null を返します。 解説 RespondRemote 関数は、PowerBuilder アプリケーションが DDE サーバ アプリケーション、または DDE クライアント アプリケーションの場 合にだけ使用できます。 通常、次の関数の後に RespondRemote 関数を呼び出します。 GetCommandDDE GetCommandDDEOrigin GetDataDDE GetDataDDEOrigin クライアントとして機能する PowerBuilder アプリケーションについて の詳細は、 「OpenChannel 関数」および「ExecRemote 関数」を参照して ください。サーバとして機能する PowerBuilder アプリケーションにつ いての詳細は、「StartServerDDE 関数」を参照してください。 PowerScript リファレンス ボリューム 2 983 Restart 例 次の例は、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 イベン トに対するスクリプトを実行します。 構文 Restart ( ) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。通常、戻り値は使用されません。 解説 アプリケーションの Idle イベントに対するスクリプト内で Restart 関数 を使用して、アプリケーションに対してエンド ユーザが一定時間何も 実行していない場合などにアプリケーションを再起動することができ ます。 例 アプリケーションの Idle イベントに対するスクリプトの中で、次のス テートメントはアプリケーションを再起動します。 Restart() 関連項目 984 HALT on page 143 PowerBuilder 第 10 章 PowerScript 関数 ResumeTransaction 機能 引数として渡された EAServer トランザクションを呼び出し元のスレッ ドに関連付けます。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.ResumeTransaction ( handletrans ) 引数 CORBACurrent handletrans 戻り値 解説 説明 CORBACurrent サービス インスタンスへの参照を指定し ます。 UnsignedLong 型の値。中断したトランザクションのハン ドルを指定します。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 不明なエラーです。 -2 handletrans の示すトランザクションが既に有効ではありません。 ResumeTransaction 関数は、handletrans 引数で指定されたトランザク ションと、呼び出し元のスレッドを関連付けます。 この引数は、SuspendTransaction の呼び出し時に取得したものです。現 行のスレッドあるいは同じ実行環境内の異なるスレッドに以前に関連 付けたことのあるトランザクションでもかまいません。 注意 handletrans 引数は、SuspendTransaction 関数から取得する必要がありま す。ResumeTransaction の引数としてそのほかの値を使用すると、予期 できない結果に終わる可能性があります。 ResumeTransaction は、OTS スタイルのマークが付いているクライアン トまたはコンポーネントで呼び出せます。EAServer は、2 フェーズ コ ミット トランザクション コーディネータ(OTS/XA)を使用している ことが必要です。 例 この例では、ResumeTransaction 関数を使用することで、 SuspendTransaction によって返された ll_handle 引数のトランザクション と、呼び出し元のスレッドを関連付けています。 // インスタンス変数 : // CORBACurrent corbcurr integer li_rc unsignedlong ll_handle PowerScript リファレンス ボリューム 2 985 Reverse 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 Reverse 機能 指定された文字列の文字の順序を逆にします。 構文 Reverse ( string ) 引数 string 説明 末尾の文字が先頭文字になり、先頭文字が末尾の文字にな るように、文字を並べ替える文字列を指定します。 戻り値 String 型。string に指定された文字列の文字の順序を逆にし、その結果 の文字列を返します。エラーが発生した場合、空の文字列("")を返 します。 解説 Reverse 関数は、IsArabic 関数と IsHebrew 関数とともに使用すると便利 です。たとえば、RightToLeft 対応(右から左に文字を書く言語を使用 する国に対応)の PowerBuilder と Windows で RightToLeft 文字(ヘブ ライ語、アラビア語などの右から左に文字を書く言語の文字)を表示 する場合に使用します。 986 PowerBuilder 第 10 章 例 PowerScript 関数 RightToLeft 対応の Windows では、このステートメントは sle_name に 入力された文字の順序を逆にし、その結果の文字列を返します。 string ls_name ls_name = Reverse(sle_name.Text) 関連項目 IsArabic IsHebrew RevertToSelf 機能 COM+ 上で動作し、クライアントに同一化している COM オブジェク トのセキュリティ属性を復元します。 対象 TransactionServer オブジェクト 構文 transactionserver.RevertToSelf ( ) 引数 transactionserver 説明 TransactionServer サービス インスタンスへの参照を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 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() PowerScript リファレンス ボリューム 2 & 987 RGB 関連項目 ImpersonateClient IsCallerInRole IsImpersonating IsSecurityEnabled RGB 機能 色の構成要素である赤、緑、青の数値によって指定された色を表す Long 型の値を計算します。 構文 RGB ( red, green, blue ) 引数 red green blue 戻り値 説明 Integer 型の値。指定する色に含まれる赤の量を指定します。 Integer 型の値。指定する色に含まれる緑の量を指定します。 Integer 型の値。指定する色に含まれる青の量を指定します。 Long 型。正常に終了した場合、指定された red、green、blue の各値を 組み合わせて作成した色を表す Long 型の値を返します。エラーが発生 した場合、-1 を返します。また、引数のいずれかの値が null の場合は null を返します。 解説 色を表す Long 型の値を、赤、緑、および青の値から求める計算式は、 次のとおりです。 65536 * Blue+ 256 * Green+ Red RGB 関数は、テキストまたは描画オブジェクトの色の設定に必要な Long 型の値を取得するために使用します。オブジェクトの色には、色 を表す Long 型の値を設定する必要があります。RGB 関数を使用する と、色を表す Long 型の値を簡単に計算できます。 988 PowerBuilder 第 10 章 PowerScript 関数 色の値について 色の構成要素の値は、目的の色を作成するために必要とされる色の量 を表す 0 ~ 255 の整数です。値を低くすると色は暗くなり、値を高く すると色は明るくなります。 色の構成要素の値(RGB 値)を測定するには、色の設定 ダイアログ ボックスを使用します。色の設定 ダイアログボックスにアクセスする には、ワークスペース最下部のカラーバーの色を選択し、カラーバー のボックス中で最初に表示される選択されている色をダブルクリック します。 次の表は、標準の 16 色に対応する赤、緑、および青の値をまとめたも のです。 表 0-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) PowerScript リファレンス ボリューム 2 989 Right 次のステートメントは、スタティックテキスト コントロール st_title の 色属性を濃いマゼンタの背景と緑色の文字に設定します。 st_title.TextColor = RGB(0, 255, 0) st_title.BackColor = RGB(128, 0, 128) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RGB メソッド 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) 関連項目 990 Left Mid Pos 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Right メソッド PowerBuilder 第 10 章 PowerScript 関数 RightA 機能 現行のロケールに基づいて文字列を Unicode から DBCS に一時的に変 換し、文字列の端から、指定したバイト数を返します。 構文 RightA (string, n) 引数 string n 戻り値 説明 検索する文字列を指定します。 Long 型の値。string の右端から取得する文字列のバイト数 を指定します。 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 ) PowerScript リファレンス ボリューム 2 991 RightTrim RightTrim 機能 文字列の右端からスペースを削除します。 構文 RightTrim ( string {, removeallspaces } ) 引数 string removeallspaces 戻り値 説明 右端からスペースを削除する文字列を指定します。 Boolean 型の値。全種類のスペースの削除を指定します。 String 型。正常に終了した場合は、string の右端からスペースを削除し、 その結果の文字列を返します。エラーが発生した場合、空の文字列("") を返します。引数のいずれかの値が null の場合、null を返します。 解説 オプションの removeallspaces 引数を指定しないか、またはこの引数の 値 に false を 設 定 し た 場 合、文 字 列 か ら ス ペ ー ス 文 字(U+0020 と U+3000)のみが除去されます。 removeallspaces 引数に true を設定した場合、全種類のスペース文字が 除去されます。スペース文字のリストについては、LeftTrim を参照して ください。 例 次のステートメントは、右端のスペースがすべてスペース文字の場合 に RUTH を返します。 RightTrim("RUTH ") 次のステートメントは、右端のスペースにほかの種類の空白スペース 文字が含まれている場合に RUTH を返します。 RightTrim("RUTH ", true) 関連項目 LeftTrim Trim 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの RightTrim メソッド RightTrimW 機能 文字列の右端からスペースを削除します。この関数は、将来サポート されなくなります。動作は、すべての環境で RightTrim 関数と同じです。 構文 RightTrimW ( string ) 992 PowerBuilder 第 10 章 PowerScript 関数 RollbackOnly 機能 トランザクションのロールバックが唯一発生しうる結果になるように、 呼び出し元のスレッドに関連する EAServer トランザクションを修正 します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.RollbackOnly ( ) 引数 CORBACurrent 戻り値 解説 説明 CORBACurrent サービス インスタンスへの参照を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 理由の不明なエラーで失敗しました。 -2 呼び出し元のスレッドにトランザクションが関連付けられていま せん。 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() PowerScript リファレンス ボリューム 2 993 RollbackTransaction IF li_rc <> 0 THEN // エラーを処理します。 ELSE corbcurr.RollbackOnly() END IF 関連項目 BeginTransaction CommitTransaction GetContextService GetStatus GetTransactionName Init ResumeTransaction RollbackTransaction SetTimeout SuspendTransaction RollbackTransaction 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションをロールバックします。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.RollbackTransaction ( ) 引数 CORBACurrent 戻り値 994 説明 CORBACurrent サービス インスタンスへの参照を指定し ます。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 理由の不明なエラーで失敗しました。 -2 呼び出し元のスレッドにトランザクションが関連付けられていま せん。 -3 呼び出し元のスレッドがトランザクションをコミットする権限を 持ちません。 -4 HeuristicCommit 例外が発生しました。 PowerBuilder 第 10 章 解説 PowerScript 関数 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 // エラーを処理します。 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 PowerScript リファレンス ボリューム 2 995 Round SuspendTransaction Round 機能 数値を四捨五入して指定された小数点の桁数にします。 構文 Round ( x, n ) 引数 x n 説明 四捨五入の対象になる数値を指定します。 小数点以下の桁数を指定します。x に指定されている数値 をこの桁数に四捨五入します。有効な値は 0 ~ 30 です。 戻り値 Decimal 型。正常に終了した場合、x を小数点以下 n 桁に四捨五入した 数を返します。エラーが発生した場合、または引数のいずれかの値が null の場合には、null を返します。 例 次のステートメントは、9.62 を返します。 Round(9.624, 2) 次のステートメントは、9.63 を返します。 Round(9.625, 2) 次のステートメントは、9.600 を返します。 Round(9.6, 3) 次のステートメントは、-9.63 を返します。 Round(-9.625, 2) 次のステートメントは、null を返します。 Round(-9.625, -1) 関連項目 996 Ceiling Int Truncate 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Round メソッド PowerBuilder 第 10 章 PowerScript 関数 RoutineList 機能 パフォーマンス解析モデルに含まれるルーチンのリストを取得しま す。 対象 ProfileClass オブジェクトおよび Profiling オブジェクト 構文 instancename.RoutineList ( list ) 引数 instancename list 戻り値 解説 説明 ProfileClass または Profiling オブジェクトのインスタンス 名を指定します。 ProfileRoutine 型の可変長配列変数を指定します。 RoutineList 関数は、解析モデルに登録されているクラス内 のルーチンごとに ProfileRoutine オブジェクトを 1 つずつ 作成し、この配列変数に格納します。この引数は、参照 渡しされます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • ModelNotExistsError! - パフォーマンス解析モデルが存在しませ ん。 パフォーマンス解析モデルに含まれている、ある特定のクラスのルー チンのリストを取得したい場合に、この関数を使用します。BuildModel 関数を使ってトレース ファイルからパフォーマンス解析モデルをあ らかじめ作成しておかなければなりません。各ルーチンごとにそれぞ れ ProfileRoutine オブジェクトが定義されます。このオブジェクトに含 まれる情報は、ルーチンの実行時間、そのルーチンから呼び出される ルーチン名とその呼び出し回数、およびそのルーチンが属するクラス 名です。リスト中のルーチンの並び方に、特に規則性はありません。 あるクラスに属するオブジェクトの作成および削除処理は、この関数 を使って取得されるリスト中に含まれるルーチン内と、埋め込み SQL 文によって示されます。 例 以下の例では、あるパフォーマンス解析モデルに含まれる、クラスご とのルーチン情報をリスト表示します。 Long ll_cnt ProfileCall lproc_call[] lpro_model.BuildModel() lpro_model.RoutineList(iprort_list) ... 関連項目 ClassList PowerScript リファレンス ボリューム 2 997 Run Run 機能 指定されたアプリケーション プログラムを実行します。 構文 Run ( string {, windowstate } ) 引数 string windowstate (オプション) 説明 実行するプログラムのファイル名を表す文字列を指定し ます。必要に応じて、string にはプログラムが使用するパ ラメータを 1 つ以上指定することもできます。 WindowState カタログデータ型の値。プログラムのどの状 態で実行するかを指定します。 • Maximized! - 最大化。プログラムの起動時に、そのプ ログラム ウィンドウのサイズを最大にします。 • Minimized! - 最小化。プログラムの起動時に、そのプ ログラム ウィンドウのサイズを最小にします。 • Normal! -(デフォルト)プログラム ウィンドウを標準 サイズで実行します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 Run 関数を使用して、オペレーティング システムから実行する任意の プログラムを実行することができます。プログラムのパラメータが指 定されていない場合、Run 関数はアプリケーションを開き、最初のア プリケーション ウィンドウを表示します。windowstate を指定すると、 指定された状態でアプリケーション ウィンドウが表示されます。 プログラムのパラメータが指定されている場合、アプリケーションに よってパラメータが何を意味しているかが判断されます。パラメータ の典型的な使用方法は、プログラムの実行時にどのデータ ファイルを 開くべきかを識別することです。パラメータを指定したアプリケー ションの実行中に PowerBuilder アプリケーションを実行している場合 には、その PowerBuilder アプリケーションから CommandParm 関数を呼 び出してパラメータを検索し、それに一致した処理を行うことができ ます。 拡張子を省略してファイル名を指定すると、PowerBuilder は拡張子を EXE とみなします。EXE 以外の拡張子(たとえば BAT、COM、PIF) を持つプログラムを実行する場合、必ず拡張子を指定してください。 例 次のステートメントは、Microsoft Windows の時計アクセサリを標準の サイズで実行します。 Run("Clock") 998 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、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 PowerScript リファレンス ボリューム 2 999 Save Save インクピクチャ コントロールからファイルまたは Blob に、ピクチャ およびオプションでオーバーレイ インクを保存するか、OLE コント ロールあるいは OLEstorage オブジェクトに OLE オブジェクトを保存 します。使用する構文は、保存するオブジェクトの種類によって異な ります。 目的 インクピクチャ コントロールの内容を保存する OLE オブジェクトを保存する 使用する構文 構文 1 構文 2 構文 1 インクピクチャ コントロールの場合 機能 インクピクチャ コントロールからファイルまたは Blob に、ピクチャ およびオプションでオーバーレイ インクを保存します。 対象 インクピクチャ コントロール 構文 inkpicname.Save( t | b , format { , WithInk } ) 引数 inkpicname t b format WithInk(オプ ション) 説明 ピクチャを保存したいインクピクチャ コントロールの名前 を指定します。 ピクチャを保存するファイルの名前と位置を含む文字列を 指定します。 コントロールにピクチャを保持する 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) Boolean 型。オーバーレイ インクをピクチャとともに保存す るかどうかを指定します。値は以下のとおりです。 True – オーバーレイ インクをピクチャとともに保存しま す(デフォルト)。 False – オーバーレイ インクをピクチャとともに保存しま せん。 1000 PowerBuilder 第 10 章 PowerScript 関数 戻り値 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) 関連項目 LoadInk LoadPicture ResetInk ResetPicture SaveInk PowerScript リファレンス ボリューム 2 1001 Save 構文 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 ストレージ ファイル、またはそのファイル内のサブストレージに接続を確立して おく必要があります。 1002 PowerBuilder 第 10 章 PowerScript 関数 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() 関連項目 Close SaveAs PowerScript リファレンス ボリューム 2 1003 SaveAs 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 (オプション) 1004 説明 保存する内容を含むグラフ コントロールの名前を指定す るか、グラフ コントロールを含むデータウィンドウ コン トロール、またはデータストア オブジェクトの名前を指定 します。 String 型の値。グラフ コントロール内のデータの保存先の ファイル名を指定します。この引数を省略した場合、また は空の文字列("")を指定した場合、PowerBuilder はエン ド ユーザにファイル名の入力を要求します。 PowerBuilder 第 10 章 引数 graphcontrol (データウィン ドウ コント ロールのみ) (オプション) saveastype (オプション) PowerScript 関数 説明 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! を使用してください。 PowerScript リファレンス ボリューム 2 1005 SaveAs 引数 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() 1006 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、グラフ 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 を返します。 PowerScript リファレンス ボリューム 2 1007 SaveAs 解説 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 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 -9 1008 説明 保存するオブジェクトを含む OLE コントロールの名前を 指定します。 OLEStorage のオブジェクト変数の名前を指定します。 olecontrol 内のオブジェクトは、この変数に格納されます。 String 型の値。targetstorage 内のサブストレージの名前を指 定します。substorage が存在しない場合は、SaveAs 関数は substorage を作成します。 コントロールが空です。 ストレージが開かれていません。 ストレージの名前が不正です。 そのほかのエラーです。 PowerBuilder 第 10 章 PowerScript 関数 引数のいずれかの値が 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 戻り値 説明 保存する OLE オブジェクトを含む OLEStorage 型のオブ ジェクト変数の名前を指定します。 String 型の値。新しい OLE ストレージ ファイルの名前を 指定します。この引数には、パスを指定することができま す。 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 ストレージが開かれていません。 ストレージの名前が不正です。 親ストレージが開かれていません。 PowerScript リファレンス ボリューム 2 1009 SaveAs -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") 関連項目 1010 Close Open Save PowerBuilder 第 10 章 PowerScript 関数 構文 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 関数を参照してく ださい。 PowerScript リファレンス ボリューム 2 1011 SaveDocument 例 次の例は、OLEStorage 型の変数 stg_stuff 内のオブジェクトを、copy1 と いうサブストレージとして 2 番目のストレージ変数 stg_clone に保存し ます。 integer result result = stg_stuff.SaveAs("copy1", stg_clone) 関連項目 Close Open Save SaveDocument 機能 リッチテキスト エディット コントロールの内容をファイルに保存し ます。保存するファイルの形式として、リッチテキスト形式(RTF)、 テキスト形式、Microsoft Word 形式、HTML 形式、または PDF 形式を 指定できます。 対象 リッチテキスト エディット コントロール 構文 rtename.SaveDocument ( filename {, filetype {, encoding }} ) 引数 rtename filename filetype (オプション) 説明 内容を保存するリッチテキスト エディット コントロール の名前を指定します。 String 型の値。保存するファイルの名前を指定します。指 定されたファイル名がすでに存在する場合、FileExists イベ ントが起動されます。 保存するファイルの形式を指定する FileType カタログ データ型の値。値は以下のとおりです。 • FileTypeRichText! - リッチテキスト形式 • FileTypeText! - テキスト形式 • FileTypeDoc! - Microsoft Word 形式 • FileTypeHTML! - HTML 形式 • FileTypePDF! - PDF 形式 1012 PowerBuilder 第 10 章 引数 encoding (オプション) PowerScript 関数 説明 データを保存するファイルのエンコーディング文字。この 引数はテキスト ファイルにだけ適用されます。encoding 引 数を指定しない場合は、ファイルは ANSI 形式で保存され ます。 filetype 引数は FileTypeText! に設定されなければなりませ ん。filetype 引数がほかのファイルの種類に設定されると、 この引数は無視されます。値は以下の通りです。 • EncodingANSI!(デフォルト) • EncodingUTF8! • EncodingUTF16LE! • EncodingUTF16BE! 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SaveDocument 関数は、指定されたファイル名がすでに存在する場合に FileExists イベントを起動します。SaveDocument で filetype を指定しな い場合、拡張子 .txt を持つファイル名を指定すると、ファイルはテキ スト ファイルとして保存され、拡張子 .doc を持つファイル名を指定す ると、Microsoft Word 文書として保存され、拡張子 .rtf を持つファイル 名を指定すると、RTF ファイルとして保存されます。 encoding 引数で指定する形式は、filetype 引数に FileTypeText! を指定し た場合のみ有効です。SaveDocument は、ほかのファイルの種類の場合 のみ ANSI 形式でテキストを保存します。 例 次のコマンドボタン コントロールのコードは、リッチテキスト エ ディット コントロール 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 PowerScript リファレンス ボリューム 2 1013 SaveInk RETURN -1 // ファイルの保存をキャンセルします。 END IF 次のコマンドボタン コントロールのコードは、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! • InkSerializedFormat!(デフォルト) mode (オ プ インクを保存したい圧縮モードを指定する ション) InkCompressionMode カタログデータ型変数の値を指定しま す。値は以下のとおりです。 • DefaultCompression!(デフォルト) • MaximumCompression! • NoCompression! 1014 PowerBuilder 第 10 章 PowerScript 関数 戻り値 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!) 関連項目 LoadInk LoadPicture ResetInk ResetPicture Save PowerScript リファレンス ボリューム 2 1015 Scroll 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) 関連項目 1016 次の関数は、データウィンドウやリッチテキスト エディット内でスク ロールするために使用します。 ScrollNextPage ScrollNextRow ScrollPriorPage ScrollPriorRow ScrollToRow PowerBuilder 第 10 章 PowerScript 関数 ScrollNextPage 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウで、文書を 1 ページ後方にスクロールしま す。 データウィンドウの場合の構文については、『データウィンドウ リ ファレンス』マニュアル、またはオンライン ヘルプの「ScrollNextPage メソッド」を参照してください。 対象 リッチテキスト エディット コントロール 構文 rtename.ScrollNextPage ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロールの次のページにスクロールします。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 ある行に対して文書の最終ページが表示されているときに ScrollNextPage 関数を呼び出すと、次の行である先頭ページにスクロールします。 ScrollNextPage 関数および ScrollPriorPage 関数は、リッチテキスト コン トロールの HeaderFooter プロパティが選択されたときのみ、リッチテ キスト エディット コントロールの編集モードで動作します。これらの 関数は HeaderFooter プロパティの設定に関係なく印刷プレビュー モー ドで動作し、データウィンドウにヘッダ区域やフッタ区域があっても なくても、編集モードでリッチテキスト データウィンドウ コントロー ルに対して動作します。 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の次のページにスクロールします。文書に複数のインス タンスがある場合、次のインスタンスにスクロールすることができま す。 rte_1.ScrollNextPage() PowerScript リファレンス ボリューム 2 1017 ScrollNextRow 関連項目 Scroll ScrollNextRow ScrollPriorPage ScrollPriorRow ScrollNextRow 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウ内にある文書の次のインスタンスにスク ロールします。リッチテキスト エディット コントロールがデータウィ ンドウとデータを共有している場合、リッチテキスト エディット コン トロールには文書の複数のインスタンスが格納されます。文書の次の インスタンスは、データウィンドウ内の次の行に関連付けられます。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollNextRow メソッド」を参照してくださ い。 対象 データウィンドウ コントロール、リッチテキスト エディット コント ロール 構文 rtename.ScrollNextRow ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロール内にある文書の次のインスタンスにスク ロールします。各インスタンスは、データウィンドウの行 に関連付けられます。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 1018 PowerBuilder 第 10 章 PowerScript 関数 ScrollNextRow 関数は、リッチテキスト エディット コントロール内にあ る文書の次のインスタンスにスクロールします。一方、ScrollNextPage 関数を繰り返して呼び出すと、文書の同じインスタンスのすべての ページを下方向へスクロールした後、次の行のページにスクロールし ます。 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の次のインスタンスにスクロールします。各文書のイン スタンスは、行に関連付けられています。 rte_1.ScrollNextRow() 関連項目 Scroll ScrollNextPage ScrollPriorPage ScrollPriorRow ScrollPriorPage 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウ内にある文書の前のページにスクロール します。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、 『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollPriorPage メソッド」を参照してくださ い。 対象 データウィンドウ コントロール、リッチテキスト エディット コント ロール 構文 rtename.ScrollPriorPage ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロールの前のページにスクロールします。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 1019 ScrollPriorRow 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 ある行に対して文書の先頭ページが表示されているときに、 ScrollPriorPage 関数を呼び出すと、前の行である最終ページにスクロー ルします。 ScrollNextPage 関数および ScrollPriorPage 関数は、リッチテキスト コン トロールの HeaderFooter プロパティが選択されたときのみ、リッチテ キスト エディット コントロールの編集モードで動作します。これらの 関数は HeaderFooter プロパティの設定に関係なく印刷プレビュー モー ドで動作し、データウィンドウにヘッダ区域やフッタ区域があっても なくても、編集モードでリッチテキスト データウィンドウ コントロー ルに対して動作します。 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の前のページにスクロールします。文書に複数のインス タンスがある場合、前のインスタンスにスクロールすることができま す。 rte_1.ScrollPriorPage() 関連項目 Scroll ScrollNextPage ScrollNextRow ScrollPriorRow ScrollPriorRow 機能 リッチテキスト エディット コントロールまたはリッチテキスト エ ディット データウィンドウ内にある文書の前のインスタンスにスク ロールします。リッチテキスト エディット コントロールがデータウィ ンドウとデータを共有している場合、リッチテキスト エディット コン トロールには文書の複数のインスタンスが格納されます。文書の次の インスタンスは、データウィンドウ内の次の行に関連付けられます。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollPriorRow メソッド」を参照してくださ い。 1020 PowerBuilder 第 10 章 PowerScript 関数 対象 データウィンドウ コントロール、リッチテキスト エディット コント ロール 構文 rtename.ScrollPriorRow ( ) 引数 rtename 説明 リッチテキスト エディット コントロールまたはデータ ウィンドウ コントロールの名前を指定します。指定された コントロール内にある文書の前のインスタンスにスク ロールします。各インスタンスは、データウィンドウの行 に関連付けられます。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。 ScrollPriorRow 関数は、リッチテキスト エディット コントロール内にあ る文書の前のインスタンスにスクロールします。一方、ScrollPriorPage 関数を繰り返して呼び出すと、文書のインスタンスのすべてのページ を上方向へスクロールした後、前の行のページにスクロールします。 例 次のステートメントは、リッチテキスト エディット コントロール rte_1 内にある文書の前のインスタンスにスクロールします。各文書のイン スタンスは、行に関連付けられています。 rte_1.ScrollPriorRow() 関連項目 Scroll ScrollNextPage ScrollNextRow ScrollPriorPage PowerScript リファレンス ボリューム 2 1021 ScrollToRow ScrollToRow 機能 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、指定された行に関連付けられている文書のイ ンスタンスにスクロールします。 データウィンドウ コントロールおよび子データウィンドウに固有の 構文については、『データウィンドウ リファレンス』マニュアル、ま たはオンライン ヘルプの「ScrollToRow メソッド」を参照してください。 対象 リッチテキスト エディット コントロール 構文 rtename.ScrollToRow ( row ) 引数 rtename row 説明 リッチテキスト エディット コントロールの名前を指定し ます。指定されたコントロールの指定された行に関連付け られている文書のインスタンスにスクロールします。 Long 型の値。スクロール先の行を指定します。row が 0 の 場合、ScrollToRow 関数は先頭行にスクロールします。row に指定された値が、関連付けられているデータウィンドウ 内の行数より大きい場合、最終行にスクロールします。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールがデータウィンドウとデー タを共有している場合、リッチテキスト エディット コントロールに は、各行に対して 1 つずつ、文書の複数のインスタンスが格納されま す。ScrollToRow 関数は、指定された行に関連付けられているインスタ ンスにスクロールします。 例 次の例では、dw_1 は少なくとも 25 行のデータを検索して格納してい ます。DataSource 関数を呼び出した後、リッチテキスト エディット コン トロールには、少なくとも 25 個の文書のインスタンスが格納されてい ます。ScrollToRow 関数は、25 番目のインスタンスにスクロールします。 rte_1.DataSource(dw_1) rte_1.ScrollToRow(25) 関連項目 1022 Scroll ScrollNextPage ScrollNextRow ScrollPriorPage ScrollPriorRow PowerBuilder 第 10 章 PowerScript 関数 Second 機能 Time 型の値の秒の部分から秒数を取得します。 構文 Second ( time ) 引数 time 説明 秒数を取得する Time 型の値を指定します。 戻り値 Integer 型。time の秒数の部分(00 ~ 59)を返します。time が null の場 合、null を返します。 例 次のステートメントは、31 を返します。 Second(19:01:31) 関連項目 Hour Minute 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Second メソッド 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) PowerScript リファレンス ボリューム 2 1023 Seek 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) 関連項目 DaysAfter RelativeDate RelativeTime 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの SecondsAfter メソッド Seek OLEStream オブジェクトでファイル ポインタを移動するか、アニメー ション コントロールに、AVI クリップで指定したフレームを表示します。 目的 OLEStream オブジェクト中で読み書きポインタを移動す る AVI クリップの指定フレームを表示する 目的 構文 1 構文 2 構文 1 OLEStream オブジェクトの場合 機能 OLEStream オブジェクト中の指定の位置に、読み書きポインタを移動 します。ポインタは、ストリームの中で次の読み書きの開始位置とな ります。 対象 OLEStream オブジェクト 構文 olestream.Seek ( position {, origin } ) 引数 olestream 1024 説明 開いている OLEStream 変数の名前を指定します。 PowerBuilder 第 10 章 引数 position PowerScript 関数 説明 origin (オプション) Long 型の値。読み書きポインタを移動する位置を origin に 相対的な値で指定します。 処理を開始する位置を指定する SeekType カタログ データ 型の値。値は以下のとおりです。 • FromBeginning! -(デフォルト)ファイルの先頭 • FromCurrent! - 現行の位置 • FromEnd! - ファイルの末尾 戻り値 Integer 型。正常に終了した場合、0 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -9 ストリームが開かれていません。 シーク エラーです。 そのほかのエラーです。 引数のいずれかの値が null の場合、null を返します。 例 次の例は、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 PowerScript リファレンス ボリューム 2 1025 Seek 構文 2 アニメーション コントロールの場合 機能 AVI クリップの指定フレームをアニメーション コントロールに表示し ます。 対象 アニメーション コントロール 構文 animationname.Seek ( s ) 引数 animationname s 説明 AVI クリップを表示するアニメーション コントロールの 名前を指定します。 0 ~ 65,535 の Long 型の値。表示するフレームを指定しま す。 戻り値 Integer 型。成功した場合は 1、失敗した場合は -1 を返します。 解説 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) 関連項目 1026 Play Stop PowerBuilder 第 10 章 PowerScript 関数 SelectedColumn 機能 リッチテキスト エディット コントロールの挿入ポイントの直後にあ る文字の行頭からの文字数を取得します。 対象 リッチテキスト エディット コントロール 構文 rtename.SelectedColumn ( ) 引数 rtename 説明 行頭から挿入ポイントの次の文字までの文字数を取得す るリッチテキスト エディット コントロールの名前を指定 します。 戻り値 Long 型。rtename に指定されたコントロールの行頭から挿入ポイント の直後の文字までの文字数を返します。エラーが発生した場合、-1 を 返します。 解説 挿入ポイントは、選択範囲の先頭または末尾に設定することができま す。このため、SelectedColumn 関数は、挿入ポイントの位置に応じて、 選択範囲の先頭文字、または選択範囲の直後の文字までの文字数を返 します。 例 挿入ポイントがリッチテキスト エディット コントロール 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 PowerScript リファレンス ボリューム 2 1027 SelectedIndex SelectedIndex 機能 リストボックス コントロールまたはリストビュー コントロール内で 選択されている項目の番号を取得します。 対象 リストボックス コントロール、リストビュー コントロール 構文 listcontrolname.SelectedIndex ( ) 引数 listcontrolname 戻り値 説明 リストボックス コントロールまたはリストビュー コント ロールの名前を指定します。指定されたコントロール内で 選択されている項目の位置を返します。 Integer 型。listcontrolname 内で選択されている項目のインデックスを返 します。複数の項目が選択された場合、最初に選択された項目のイン デックスを返します。選択された項目が存在しなかった場合、または エラーが発生した場合には、-1 を返します。listcontrolname が null の場 合、null を返します。 解説 SelectedIndex 関数と SelectItem 関数は、単一の選択だけを許可するリス トを想定しています。コントロールの MultiSelect プロパティは、false です。 MultiSelect プロパティが true の場合、SelectedIndex 関数は最初に選択さ れた項目のインデックスだけを取得します。SelectedIndex 関数を使用 せずに、State 関数を使用してリストボックスの項目を 1 つ 1 つチェッ クし、項目が選択されているかどうかを確認します。リストボックス の中の項目のテキストを取得するには、Text 関数を使用します。 例 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) 関連項目 1028 SelectedItem PowerBuilder 第 10 章 PowerScript 関数 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 を設定します。 string ls_Item ls_Item = lb_Shortcuts.SelectedItem() 関連項目 SelectedIndex State PowerScript リファレンス ボリューム 2 1029 SelectedLength SelectedLength 機能 編集可能なコントロール内で選択されているテキストの文字数の合計 を返します。文字数には、空白と行末文字も含まれます。 対象 データウィンドウ コントロール、エディットマスク コントロール、イ ンクエディット コントロール、マルチライン エディット コントロー ル、シングルライン エディット コントロール、リッチテキスト エ ディット コントロール、ドロップダウン リストボックス コントロー ル、ドロップダウン ピクチャ リストボックス コントロール 構文 editname.SelectedLength ( ) 引数 editname 説明 データウィンドウ、エディットマスク、マルチライン エ ディット、シングルライン エディット、リッチテキスト エディット、ドロップダウン リストボックス、ドロップダ ウン ピクチャ リストボックスのいずれかのコントロール の名前を指定します。指定されたコントロール内で選択さ れているテキストの長さを返します。 データウィンドウ コントロールの名前を指定すると、エ ディット コントロール内の現行の行とカラムで選択され ているテキストの長さを返します。 戻り値 データウィンドウ、インクエディット、およびリストボックスの場合 は Integer 型、ほかのコントロールの場合は Long 型 editname に指定されたコントロール内で選択されているテキストの長 さを返します。テキストを選択しなかった場合、0 を返します。エラー が発生した場合、-1 を返します。 editname が null の場合、null を返します。 解説 1030 リッチテキスト コントロールのテキストを除いて、行末文字(〔Ctrl〕 +〔Enter〕または〔Enter〕を入力したときに生成される)は、プラッ トフォームによって異なります。Windows の場合は、キャリッジ リ ターン(CR)とライン フィード(LF)で、長さを計算するときには 2 文字として数えられます。ほかのプラットフォームでは、行末文字は 1 文字です。自動的に折り返された行には、行末文字はありません。ド ロップダウン リストボックス コントロールとドロップダウン ピク チャ リストボックス コントロールの場合、コントロールの AllowEdit プロパティが false のときには -1 を返します。 PowerBuilder 第 10 章 PowerScript 関数 リッチテキスト エディット コントロール リッチテキスト コントロールでは、キャリッジ リターンとライン フィードは、テキストの長さを計算するときに常に 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 1031 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 関連項目 1032 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 PowerScript リファレンス ボリューム 2 1033 SelectedStart SelectedStart 機能 編集可能なコントロール内で選択されている文字の先頭文字の位置を 返します。 対象 データウィンドウ コントロール、エディットマスク コントロール、マ ルチライン エディット コントロール、シングルライン エディット コ ントロール、リッチテキスト エディット コントロール、ドロップダウ ン リストボックス コントロール、ドロップダウン ピクチャ リスト ボックス コントロール 構文 editname.SelectedStart ( ) 引数 editname 説明 データウィンドウ、エディットマスク、マルチライン エ ディット、シングルライン エディット、リッチテキスト エディット、ドロップダウン リストボックス、ドロップダ ウン ピクチャ リストボックスのいずれかのコントロール の名前を指定します。指定されたコントロール内で選択さ れているテキストの先頭文字の位置を返します。 データウィンドウ コントロールの名前を指定すると、エ ディット コントロール内の現行の行とカラムで選択され ているテキストの先頭文字の位置を返します。 戻り値 Long 型。editname に指定されたコントロール内で選択されているテキ ストの開始位置を返します。テキストが選択されていない場合、挿入 ポイントの直後にある文字の位置を返します。エラーが発生した場合、 -1 を返します。editname が null の場合、null を返します。 解説 リッチテキスト エディット コントロール以外のすべてのコントロー ルの場合、SelectedStart 関数は行の途中にあるスペースや行末文字も含 めて、テキストの先頭から文字位置を数えます。 リッチテキスト エディット コントロールの場合、SelectedStart 関数は 選択範囲の先頭行の先頭から文字位置を数えます。先頭とは、選択範 囲の開始位置(挿入ポイント)と反対の位置(終了位置)です。たと えば、エンド ユーザが上方向に選択した場合、選択範囲の先頭はハイ ライト表示されているテキストの末尾になり、挿入ポイントは選択範 囲の先頭の前に設定されます。選択の先頭と末尾に関する情報が必要 な場合、Position 関数を使用してください。 1034 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 機能 編集可能なコントロール内で選択されているテキストを返します。 対象 データウィンドウ コントロール、エディットマスク コントロール、イ ンクエディット コントロール、マルチライン エディット コントロー ル、シングルライン エディット コントロール、リッチテキスト エ ディット コントロール、ドロップダウン リストボックス コントロー ル、ドロップダウン ピクチャ リストボックス コントロール 構文 editname.SelectedText ( ) PowerScript リファレンス ボリューム 2 1035 SelectedText 引数 editname 説明 データウィンドウ、エディットマスク、マルチライン エ ディット、シングルライン エディット、リッチテキスト エディット、ドロップダウン リストボックス、ドロップダ ウン ピクチャ リストボックスのいずれかのコントロール の名前を指定します。指定されたコントロール内で選択さ れているテキストを返します。 ドロップダウン リストボックス コントロールまたはド ロップダウン ピクチャ リストボックス コントロールの名 前を指定した場合、AllowEdit プロパティが true である必 要があります。 データウィンドウ コントロールの名前を指定した場合、エ ディット コントロール内の現行の行とカラムで選択され ているテキストを返します。 戻り値 String 型。editname に指定されたコントロール内で選択されているテキ ストを返します。テキストが選択されていない場合、またはエラーが 発生した場合には、空の文字列("")を返します。editname が null の場 合、null を返します。 解説 リッチテキスト エディット コントロールでは、選択範囲内のピクチャ は無視されます。選択範囲に入力フィールドがある場合、入力フィー ルドの名前は { } で囲まれ、この関数から返される文字列の一部にな ります。入力フィールドの内容は返しません。 たとえば、手紙の書き出しの挨拶文を選択した場合、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 を表示します。 1036 PowerBuilder 第 10 章 PowerScript 関数 string ls_Loc ls_Loc = ddlb_Location.SelectedText() IF ls_Loc = "Maine" THEN lb_LBMaine.Show() ELSE ... END IF 関連項目 SelectText SelectionRange 機能 トラックバー コントロールにおいて、特定の範囲の隣接する値をハイ ライト表示します。トラックバーのチャネルでは、選択した範囲がハ イライト表示され、範囲の両端には矢印が表示されます。 対象 トラックバー コントロール 構文 control.SelectionRange ( startpos, endpos ) 引数 control startpos endpos 説明 トラックバー コントロールの名前を指定します。 Integer 型の値。範囲の開始位置を指定します。 Integer 型の値。範囲の終了位置を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 この関数は、推奨値の範囲を示すのに使用します。 スケジューリング アプリケーションでは、すでに予定の埋まっている 時間帯を示すことができます。選択範囲を設定しても、ユーザがその 範囲の内側または外側の値を選択できなくなるわけではありません。 例 次のステートメントは、トラックバーの 30 ~ 70 の間の値をハイライ ト表示します。 HTrackBar.SelectionRange( 30, 70 ) 関連項目 『オブジェクトとコントロール』マニュアルの「HTrackBar」 『オブジェクトとコントロール』マニュアルの「VTrackBar」 PowerScript リファレンス ボリューム 2 1037 SelectItem SelectItem リストボックス コントロール、ドロップダウン リストボックス コン トロール、またはツリービュー コントロール内の項目を検索し、選択 してハイライト表示します。 目的 リストボックス コントロールで項目のテキストだけがわ かっていて位置がわからない場合に、項目を選択する リストボックス コントロールでリスト内の項目の位置が わかっている場合に、項目を選択するか、または現行の選 択範囲を解除する ツリービュー コントロールで項目を選択する 使用する構文 構文 1 構文 2 構文 3 構文 1 項目のテキストがわかっているときにその項目を選 択する 機能 項目のテキストの一部または全部を指定できる場合に、リストボック スの項目を検索し、選択してハイライト表示します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.SelectItem ( item, index ) 引数 listboxname item index 戻り値 説明 行を選択するリストボックス コントロールの名前を指定 します。 String 型の値。選択する項目の先頭のテキストを指定します。 項目の番号を指定します。指定された番号の後の項目から 検索が開始されます。 Integer 型。選択されている項目のインデックス番号を返します。一致 する項目が見つからない場合は、0 を返します。エラーが発生した場 合、-1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 SelectItem 関数は、index に指定された番号の後の項目から、選択する 項目の検索を開始します。指定されたテキストから始まる項目が検索 されます。指定されたテキストよりも長いテキストが項目に格納され ていても構いません。 項目を検索するだけで、選択しない場合には、FindItem 関数を使用して ください。 1038 PowerBuilder 第 10 章 PowerScript 関数 複数選択が可能なリストボックス MultiSelect プロパティが true のリストボックスやピクチャ リストボッ クスでは、SelectItem 関数は無効です。リストボックス内のほかの項目 の選択状態に影響を与えずに項目を選択するには、SetState 関数を使用 してください。 ドロップダウン リストボックスのエディット ボックスの消去 エンド ユーザが編集できないドロップダウン リストボックス コント ロールやドロップダウン ピクチャ リストボックス コントロールのエ ディット ボックスを消去するには、SelectItem 関数の構文 2 を使用して ください。 例 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 に指定して選択を解除することもできます。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール PowerScript リファレンス ボリューム 2 1039 SelectItem 構文 listboxname.SelectItem ( itemnumber ) 引数 listboxname 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) 1040 PowerBuilder 第 10 章 PowerScript 関数 次の例は、ドロップダウン リストボックス コントロール ddlb_choices のエディット ボックスから選択を解除し、li_Index に 0 を設定します。 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 1041 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 1042 説明 タブを選択するタブ コントロールの名前を指定します。 PowerBuilder 第 10 章 引数 tabidentifier PowerScript 関数 説明 選択するタブを指定します。次のいずれかを指定します。 • タブ ページ インデックス(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 string ls_tabpage tab_1.OpenTab(uo_tabpage, ls_tabpage, 0) tab_1.SelectTab(uo_tabpage) 関連項目 OpenTab PowerScript リファレンス ボリューム 2 1043 SelectText SelectText 編集可能なコントロール内のテキストを選択します。 目的 リッチテキスト エディット コントロール以外の編集可能 なコントロールでテキストを選択する リッチテキスト エディット コントロール、またはリッチ テキスト エディット提示様式のデータウィンドウ オブ ジェクトが格納されているデータウィンドウ コントロー ルのテキストを選択する 使用する構文 構文 1 構文 2 構文 1 編集可能なコントロール(リッチテキスト エディッ ト コントロール以外)でテキストを選択する 機能 編集可能なコントロール内のテキストを選択します。選択範囲の先頭 の位置と選択する文字数を指定します。 対象 データウィンドウ コントロール、エディットマスク コントロール、イ ンクエディット コントロール、マルチライン エディット コントロー ル、シングルライン エディット コントロール、ドロップダウン リス トボックス コントロール、ドロップダウン ピクチャ リストボックス コントロール 構文 editname.SelectText ( start, length ) 引数 editname start length 戻り値 説明 データウィンドウ、エディットマスク、インクエディット、 マルチライン エディット、シングルライン エディット、ド ロップダウン リストボックス、ドロップダウン ピクチャ リストボックスのいずれかのコントロールの名前を指定 します。指定されたコントロールからテキストを選択しま す。 Long 型の値。選択範囲の先頭の位置を指定します。 Long 型の値。選択する文字数を指定します。length が 0 の 場合、テキストを選択せずに、start に指定された位置に挿 入ポイントを移動します。 データウィンドウおよびリストボックスの場合は Integer 型、ほかのコ ントロールの場合は Long 型 選択された文字数を返します。エラーが発生した場合、-1 を返します。 1044 PowerBuilder 第 10 章 解説 PowerScript 関数 コントロールにフォーカスが設定されていない場合に SelectText 関数 を呼び出すと、コントロールにフォーカスが設定されるまで、テキス トはハイライト表示されません。選択したテキストがハイライト表示 されるように、コントロールにフォーカスを設定するには、SetFocus 関数を使用します。 選択する長さ ライン エディットのすべてのテキストを選択する場合、またはエ ディット コントロール内の指定された位置から最後までの内容を選 択する場合、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 PowerScript リファレンス ボリューム 2 1045 SelectText SelectedItem SelectedText SetFocus TextLine 構文 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! 特に指定しない限り、挿入ポイントがある区域のテキスト が選択されます。 1046 PowerBuilder 第 10 章 PowerScript 関数 戻り値 Long 型。選択された文字数を返します。ライン フィードを持つキャ リッジ リターンは、1 文字として数えられます。エラーが発生した場 合、SelectText は -1 を返します。また、引数のいずれかの値が null の場 合、null を返します。 解説 挿入ポイントは選択範囲の末尾に設定されます。つまり、toline と tochar に指定された位置に設定されます。toline と tochar に指定された 位置が、fromline と fromchar に指定された位置よりも前の場合、挿入 ポイントは選択範囲の先頭に設定されます。 選択を行う場合に、文字位置として 0 を指定することはできません。 選択を行う場合に、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() PowerScript リファレンス ボリューム 2 1047 SelectTextAll 次の例は、現行の挿入ポイントから現行の行の末尾までのテキストを 選択します。現行の行が最終行の場合、返される行の長さは選択でき る文字数より 1 だけ大きい値になります。このため、この例では行の 長さを調整しています。 long ll_insertline, ll_insertchar long ll_line, ll_count // 挿入ポイントを取得します。 rte_1.Position(ll_insertline, ll_insertchar) // 行番号と行の長さを取得します。 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 機能 キャリッジ リターンおよびエンド オブ ファイル(EOF)マーカなどの 特殊文字を含めて、リッチテキスト エディット コントロールのすべて の内容を選択します。 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.SelectTextAll ( { band } ) 1048 PowerBuilder 第 10 章 引数 rtename band (オプション) PowerScript 関数 説明 すべての内容を選択するリッチテキスト エディット コン トロールまたはデータウィンドウ コントロールの名前を 指定します。データウィンドウ コントロールのデータウィ ンドウ オブジェクトは、リッチテキスト エディット デー タウィンドウでなければなりません。 すべてのテキストを選択する区域を指定する Band カタロ グ データ型の値。値は以下のとおりです。 • Detail! • Header! • Footer! 特に指定しない限り、挿入ポイントがある区域のテキスト が選択されます。 戻り値 Integer 型。選択された文字数を返します。エラーが発生した場合、-1 を返します。ライン フィードを持つキャリッジ リターンは、1 文字と して数えられます。 例 次のステートメントは、詳細区域のすべてのテキストを選択します。 rte_1.SelectTextAll() 次のステートメントは、ヘッダ区域のすべてのテキストを選択します。 rte_1.SelectTextAll(Header!) 関連項目 SelectedText SelectText SelectTextLine SelectTextWord SelectTextLine 機能 リッチテキスト エディット コントロールで挿入ポイントがある行を 選択します。 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.SelectTextLine ( ) PowerScript リファレンス ボリューム 2 1049 SelectTextWord 引数 rtename 戻り値 説明 行を選択するリッチテキスト エディット コントロールま たはデータウィンドウ コントロールの名前を指定します。 データウィンドウ コントロールのデータウィンドウ オブ ジェクトは、リッチテキスト エディット データウィンド ウでなければなりません。 Integer 型。正常に終了した場合は選択された文字数を返し、エラーが 発生した場合は -1 を返します。 解説 リッチテキスト エディット コントロールに選択範囲が含まれている 場合、挿入ポイントはその選択範囲の先頭または末尾にあります。挿 入ポイントの位置は、テキストの選択方法によって異なります。エン ド ユーザが文末に向かって選択した場合、選択範囲の最後の行が選択 されます。エンド ユーザが文頭に向かって選択した場合、選択範囲の 最初の行が選択されます。 SelectTextLine 関数は、行末文字(Windows ではキャリッジ リターンと ライン フィード、UNIX ではライン フィード)を選択しません。 例 次のステートメントは、現行の行を選択します。 rte_1.SelectTextLine() 関連項目 SelectedText SelectText SelectTextAll SelectTextWord SelectTextWord 機能 リッチテキスト エディット コントロールで挿入ポイントがある単語 を選択します。 対象 リッチテキスト エディット コントロール、データウィンドウ コント ロール 構文 rtename.SelectTextWord ( ) 1050 PowerBuilder 第 10 章 引数 rtename PowerScript 関数 説明 単語を選択するリッチテキスト エディット コントロール またはデータウィンドウ コントロールの名前を指定しま す。データウィンドウ コントロールのデータウィンドウ オブジェクトは、リッチテキスト エディット データウィ ンドウでなければなりません。 戻り値 Integer 型。正常に終了した場合、選択された文字数を返します。単語 が選択できない場合、またはエラーが発生した場合には -1 を返しま す。 解説 単語は英数字の任意のグループです。単語には下線と単引用符を含め ることができますが、句読点や、$、# などの特殊文字を含めることは できません。選択された単語の後に句読点や特殊文字がある場合、句 読点や特殊文字は選択されません。 挿入ポイントの後にある文字が空白、句読点、特殊文字、または行末 記号の場合、SelectTextWord 関数は何も選択せずに -1 を返します。 例 次のステートメントは、挿入ポイントがある単語を選択します。 rte_1.SelectTextWord() 次の例は、挿入ポイントがある位置で単語を選択します。単語がない 場合は、単語が見つかるまで挿入ポイントの位置を移動します。単語 を検索しながら、行の終わりに到達したことをチェックし、次の行へ と折り返します。このスクリプトがコマンドボタンに割り当てられて いる場合に、そのボタンが繰り返しクリックされると、単語から単語 へと選択範囲が移動していきます。 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 // 行の終わりに到達した場合、次の行へ移動します。 PowerScript リファレンス ボリューム 2 1051 Send 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 // 単語を処理するコードをここに追加します // (たとえば、スペル チェッカーに単語を渡すなど) 。 関連項目 SelectedText SelectText SelectTextAll SelectTextLine Send 機能 ウィンドウにメッセージを送信します。メッセージは即時に実行され ます。 構文 Send ( handle, message#, lowword, long ) 引数 handle message# 1052 説明 PowerBuilder またはほかのアプリケーションで生成された ウィンドウのハンドルを表す Long 型を指定します。指定 したハンドルのウィンドウに対して、メッセージが送信さ れます。 送信するメッセージ番号を表す UnsignedInteger 型を指定 します。 PowerBuilder 第 10 章 引数 lowword long PowerScript 関数 説明 送信するメッセージの整数値を表す Long 型の値を指定し ます。メッセージがこの引数を使用しない場合は、0 を指 定します。 送信するメッセージが使用する Long 型の値または文字列 を指定します。 戻り値 Long 型。正常に終了した場合は Windows の SendMessage から返された 値を返し、エラーが発生した場合は -1 を返します。引数のいずれかの 値が null の場合、null を返します。 解説 PowerBuilder の Send 関数は、message# で識別されたメッセージとオプ ションの lowword および long を handle で指定されたウィンドウに送信 し、Windows の SendMessage 関数に処理を依頼します。オブジェクト のメッセージ キューをバイパスしてメッセージはオブジェクトに直 接送信されます。メッセージが処理され、SendMessage 関数の戻り値 を取得するまで、Send 関数は待ち状態になります。 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!) PowerScript リファレンス ボリューム 2 1053 Send 次の例では、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) 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 関連項目 1054 Handle Post PowerBuilder 第 10 章 PowerScript 関数 SeriesCount 機能 グラフのデータ系列の数を返します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SeriesCount ( { graphcontrol } ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) 説明 データ系列の数を調べるグラフ コントロールの名前、また はそのグラフ コントロールのあるデータウィンドウ コン トロールの名前を指定します。 String 型の値。データウィンドウ コントロールのグラフの 名前を指定します。指定されたグラフのデータ系列の数を 調べます。 戻り値 Integer 型。正常に終了した場合はグラフのデータ系列の数を返し、エ ラーが発生した場合は -1 を返します。引数のいずれかの値が null の場 合、null を返します。 例 次のステートメントは、グラフ gr_product_data のデータ系列の数を変 数 li_series_count に格納します。 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 PowerScript リファレンス ボリューム 2 1055 SeriesName SeriesName 機能 指定したデータ系列の番号に対応するデータ系列の名前を取得しま す。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SeriesName ( { graphcontrol, } seriesnumber ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesnumber 説明 グラフ コントロールの名前、またはグラフのあるデータ ウィンドウ コントロールの名前を指定します。そのグラフ の中のデータ系列の名前を取得します。 String 型の値。データウィンドウ コントロールのグラフの 名前を指定します。指定されたグラフのデータ系列の名前 を調べます。 名前を取得するデータ系列の番号を指定します。 戻り値 String 型。指定されたデータ系列に割り当てられた名前を返します。エ ラーが発生した場合、空の文字列("")を返します。引数のいずれか の値が null の場合、null を返します。 解説 データ系列には、1 から SeriesCount 関数で返される値まで、連続した 番号が付けられています。データ系列を 1 つ削除すると、連続した番 号を付けるために、データ系列の番号は付け直されます。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) 関連項目 1056 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 1057 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 がトランザクションを コミットするタイミングを決定するのは、ルート コンポーネント(ト ランザクションを開始したコンポーネント インスタンス)のアクショ ンだけです。 1058 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 1059 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!) 関連項目 1060 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 1061 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 で定義されたソート順 戻り値 1062 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 1063 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() 1064 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 1065 SetBoldDate タイムアウト期間が満了した場合、実行時エラー 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) SetBoldDate 機能 指定した日付を太字で表示します。 対象 月表示カレンダ コントロール 構文 controlname.SetBoldDate ( d, onoff {, rt } ) 引数 controlname d onoff 説明 太字の日付を設定する月表示カレンダ コントロールの名 前を指定します。 太字が設定される日付を指定します。 Boolean 型の値。日付を太字にするかどうかを指定します。 値は以下のとおりです。 true - 日付を太字にします。 false - 日付の太字設定を解除します。 1066 PowerBuilder 第 10 章 引数 rt (オプション) PowerScript 関数 説明 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) 次の例では、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!) PowerScript リファレンス ボリューム 2 1067 SetByte 次の例は、mcVacation コントロールでの毎月 5 日の太字設定を解除し ます。 integer li_return Date d d = date("2005/01/05") li_return = mcVacation.SetBoldDate( d, false, Monthly!) 関連項目 ClearBoldDates SetByte 機能 blob 変数に Byte 型のデータを設定します。 構文 SetByte ( blobvariable, n, b) 引数 blobvariable 説明 n Byte データ型の値を挿入する blobvariable 内の位置の番号を b 指定します。 位置 n に blobvariable に設定する Byte データ型のデータを指 定します。 Byte データ型の値を挿入する Blob データ型の変数を指定し ます。 戻り値 Integer 型。正常に終了した場合は 0 を返します。n が blobvariable のス コープを超える場合は -1 を返します。いずれかの引数が null の場合は、 null を返します。 例 次の例は、emp_photo blob の先頭の位置に 37 に相当する byte データ型 の値を追加します。byte データ型が 2 番目の位置で指定されない場合、 blob は 2 番目のメッセージ ボックスに 37 に相当する ASCII 文字 (パー セント文字、%)で表示されます。 blob {100} emp_photo byte b1 = byte (37) int li_rtn li_rtn = SetByte(emp_photo, 1, b1) messagebox("setbyte", string(b1)) messagebox("setbyte", string(emp_photo)) 関連項目 1068 Byte GetByte 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 1069 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) ) 1070 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 1071 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 関連項目 1072 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 1073 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 を返します。 1074 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 1075 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 & 1076 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 説明 グラフ コントロールの名前、またはグラフがあるデー タウィンドウ コントロールの名前を指定します。その グラフ コントロールのデータ ポイントの色を設定しま す。 データ ポイントの色を設定するデータウィンドウ コン トロールの名前を表す文字列を指定します。 1077 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) 1078 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 1079 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) 1080 PowerBuilder 第 10 章 PowerScript 関数 関連項目 GetDataStyle GetSeriesStyle SeriesName SetSeriesStyle 構文 3 データ ポイントの塗りつぶしパターンやシンボルを 設定する 機能 データ ポイントの塗りつぶしパターンやシンボルを指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetDataStyle ( { graphcontrol, } seriesnumber, datapointnumber, enumvalue ) 引数 controlname 説明 グラフ コントロールの名前、またはそのグラフがある データウィンドウ コントロールの名前を指定します。 そのデータ ポイントの外観を設定します。 String 型の値。データウィンドウ コントロール上の外 観を設定するグラフの名前を指定します。 graphcontrol (データウィンド ウ コントロールの み)(オプション) seriesnumber データ ポイントの外観を設定するデータ系列の番号を 指定します。 datapointnumber 外観を設定するデータ ポイントの番号を指定します。 PowerScript リファレンス ボリューム 2 1081 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 イ ベントは、データウィンドウ オブジェクトにグラフが作成される直前 に起動します。 1082 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 説明 日付の制限を設定する月表示カレンダ コントロールの名 前を指定します。 日付の値。カレンダで参照または表示できる最初の日付と して設定します。 日付の値。カレンダで参照または表示できる最後の日付と して設定します。 1083 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 を返します。 解説 ドラッグ操作で、ドロップ ターゲットを指定するのに使用します。 1084 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 1085 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 戻り値 1086 説明 最初に表示される項目を設定するツリービュー コント ロールの名前を指定します。 ツリービュー コントロールで最初に表示される項目とし て設定される項目のハンドルを指定します。 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 1087 SetGlobalProperty 解説 objectname がリストボックス コントロールの場合、SetFocus 関数は最 初の項目のまわりに長方形のフォーカスを表示します。objectname が ドロップダウン リストボックス コントロールの場合、SetFocus 関数は エディット ボックスをハイライト表示にします。リストボックスまた はドロップダウン リストボックス内の項目を選択するには、SelectItem 関数を使用します。 描画オブジェクトにフォーカスを設定することはできません。した がって、SetFocus 関数を使用しても、直線コントロール、楕円コント ロール、長方形コントロール、丸長方形コントロールにフォーカスを 設定することはできません。 例 ウィンドウの Open イベントに対するスクリプトに記述されている次 のステートメントは、lb_Actions の最初の項目にフォーカスを移動しま す。 lb_Actions.SetFocus() 関連項目 SetItem SetState SetTop SetGlobalProperty 機能 SSL グローバル プロパティの値を設定します。 対象 SSLServiceProvider オブジェクト 構文 sslserviceprovider.SetGlobalProperty ( property, value ) 引数 sslserviceprovider 1088 property 説明 SSLServiceProvider サービス インスタンスへの参照を 指定します。 設定する SSL プロパティの名前を指定します。 value サポートされている全 SSL プロパティのリストにつ いては EAServer のマニュアルまたは接続オブジェク トのオンライン ヘルプを参照してください。 String 型。SSL プロパティの値を指定します。 PowerBuilder 第 10 章 戻り値 Long 型。以下のいずれかの値を返します。 0 -1 -2 -3 -10 -11 解説 PowerScript 関数 正常に終了しました。 不明なプロパティです。 プロパティが読み込み専用です。 プロパティの値が不正です。 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 SetItem リスト項目の値を設定します。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアル、またはオンライン ヘルプの 「SetItem メソッド」を参照してください。 PowerScript リファレンス ボリューム 2 1089 SetItem 設定する値 リストビュー コントロールの項目の値を設定する リストビュー コントロールの項目とカラムの値を設定す る ツリービュー コントロールの項目の値を設定する 使用する構文 構文 1 構文 2 構文 3 構文 1 リストビュー コントロールの項目にプロパティ値を 設定する 機能 リ ス ト ビ ュ ー コ ン ト ロ ー ル の 項 目 に 関 連 付 け ら れ た デ ー タ を、 ListViewItem 変数の中に指定されたプロパティ値に設定します。 対象 リストビュー コントロール 構文 listviewname.SetItem ( index, { column }, item ) 引数 listviewname index column item 説明 項目のプロパティを設定するリストビュー コントロール の名前を指定します。 項目のインデックス番号を指定します。指定された項目の プロパティを設定します。 プロパティを設定する項目のカラムのインデックス番号 を指定します。 リストビュー コントロールの項目に割り当てるプロパ ティ値を含む ListViewItem 変数を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 この構文によって、リストビュー コントロールの任意の項目のプロパ ティを設定することができます。カラムを指定しない場合は、項目の 最初のカラムのプロパティが設定されます。レポート ビューの場合の み、複数のカラムが表示されます。 リストビュー コントロールに項目を追加するには、AddItem 関数を使 用 します。リスト ビュー コン トロー ルにカ ラムを 追加す るには、 AddColumn 関数を使用します。リストビュー コントロールの項目のカ ラムに対する表示値を設定する場合は、構文 2 を使用してください。 配置や幅など、カラムのプロパティを設定したい場合は、SetColumn 関 数を使用してください。これらのカラム プロパティは、ListViewItem オブジェクトとは関連がありません。 1090 PowerBuilder 第 10 章 PowerScript 関数 リストビュー コントロールの項目に関連付けられたピクチャおよび そのほかのプロパティ値を変更するには、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 label 戻り値 説明 表示値を設定するリストビュー コントロールの名前を指 定します。 項目のインデックス番号を指定します。指定された項目の 表示値を設定します。 カラムのインデックス番号を指定します。指定されたカラ ムの表示値を設定します。 リストビュー コントロールの指定された項目の指定され たカラムに割り当てる String 型の値または変数を指定しま す。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 PowerScript リファレンス ボリューム 2 1091 SetItem 解説 単一カラムのリストビュー コントロールに値を割り当てる場合も、カ ラム番号を引数として指定する必要があります。リストビュー コント ロールの項目のプロパティを指定する場合、構文 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") 関連項目 GetItem 構文 3 ツリービュー コントロールの項目の値を設定する 機能 指定された項目に関連付けられているデータを設定します。 対象 ツリービュー コントロール 構文 treeviewname.SetItem ( itemhandle, item ) 引数 treeviewname 1092 説明 ツリービュー コントロールの名前を指定します。指定され たコントロールの特定の項目のデータを設定します。 PowerBuilder 第 10 章 引数 itemhandle item PowerScript 関数 説明 変更する項目に関連付けられているハンドルを指定しま す。 変更するツリービュー コントロールの項目を指定します。 戻り値 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 SetLevelPictures 機能 特定のレベルのすべての項目に、ピクチャ インデックスを設定しま す。 対象 ツリービュー コントロール 構文 treeviewname.SetLevelPictures ( level, pictureindex, selectedpictureindex, statepictureindex, overlaypictureindex) 引数 treeviewname level PowerScript リファレンス ボリューム 2 説明 ツリービュー コントロールの名前を指定します。この コントロールの指定されたレベルに、ピクチャを設定 します。 ピクチャ インデックスを設定するツリービュー コン トロールのレベルを指定します。 1093 SetLevelPictures 引数 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) 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) 関連項目 1094 AddPicture PowerBuilder 第 10 章 PowerScript 関数 SetLibraryList 機能 実行時のアプリケーションのライブラリ探索パスのファイルを変更し ます。 構文仕様の変更 従来と同様に、applicationname.SetLibraryList(filelist) 関数の前にアプリ ケーション オブジェクトの名前を指定する古い構文を使用すること もできます。 構文 SetLibraryList ( filelist ) 引数 filelist 戻り値 解説 説明 カンマ(,)で区切られたファイル名のリストを指定しま す。ファイル名は、拡張子を付けた完全な名前で指定しま す。パスを省略すると、PowerBuilder のシステムの検索パ スでそのファイルが検索されます。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 アプリケーションがスタンド アロンではなく、PowerBuilder から 実行されます。 -2 現行のインスタンス化されたオブジェクトは、新しいリスト上に ないライブラリにあります。引数のいずれかの値が null の場合、null を返します。 アプリケーションがオブジェクトをロードする場合、PowerBuilder で は、まず実行ファイルが検索され、次にそのアプリケーションに指定 された実行時ライブラリが検索されます。SetLibraryList 関数を使用し て、実行ファイル内で指定されているライブラリ ファイルのリストと は異なるリストを指定することができます。 複数のコンポーネントでリソースを共有するときに起こる問題を回避 するには、EAServer に展開するコンポーネントの探索リストに PBD ファイルを追加する際、SetLibraryList 関数のかわりに AddToLibraryList 関 数を使用する必要があります。 SetLibraryList 関数を呼び出すと、実行ファイルに指定されたライブラリ ファイルのリストが新しいファイルのリストに変更されます。たとえ ば、SetLibraryList 関数を使用して、多数のサブシステムを含むアプリ ケーションのライブラリ リストを設定できます。しかしどのような場 合でも、GetLibraryList 関数を使用して現行のライブラリの探索パスを取 得した後、目的のすべてのファイルをこのリストに追加すべきです。 その後、ファイルを追加したリスト全体を filelist 引数に渡します。 PowerScript リファレンス ボリューム 2 1095 SetMask 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 関連項目 AddToLibraryList GetLibraryList SetMask 機能 エディットマスク コントロールに、エディットマスクとエディットマ スクのデータ型を設定します。 対象 エディットマスク コントロール 構文 editmaskname.SetMask ( maskdatatype, mask ) 引数 editmaskname 1096 説明 エディットマスクを指定するエディットマスク コント ロールの名前を指定します。 PowerBuilder 第 10 章 引数 maskdatatype PowerScript 関数 説明 MaskDataType カタログ データ型の値。マスクのデータ型 を指定します。値は以下のとおりです。 • DateMask! • DateTimeMask! • DecimalMask! • NumericMask! • StringMask! • TimeMask! mask エディットマスク コントロールを表す文字列を指定しま す。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 エディットマスクは、固有の文字セットでエンド ユーザが入力できる 文字の種類を表します。また、句読点によって入力値の書式を制御し ます。マスクのデータ型ごとに固有の有効な文字セットがあります。 たとえば、次の例は電話番号を表示する String 型のマスクです。エ ディットマスク コントロールは、エディットマスクの句読点(カッコ とハイフン)をそのまま表示します。# 記号はエンド ユーザが入力す る数字を表していて、数字以外の文字を入力できません。 (###) ###-#### ウィンドウ ペインタ内のエディットマスク コントロールのエディッ トマスクの設定 ダイアログボックスを参照して有効なマスクを指定 してください。エディットマスクの設定 ダイアログボックスの内のリ ストボックスに、それぞれのデータ型に固有のマスク文字の意味と、 マスク文字を使用して定義されたマスクが表示されます。 数値にマスクを指定する場合、書式は U.S. 表記でなければなりません。 つまり、カンマ(,)は 1000 単位の桁区切りを表す書式で、ピリオド (.)は小数点の位置を表す書式です。実行中に適切な位置に記号を表 示します。 エディットマスク コントロールの DropDownCalendar、Spin、または UseCodeTable プロパティに true を設定してある場合は、SetMask 関数 を使用して maskdatatype を変更することはできません。これらのプロ パティのいずれかに true を設定してある場合は、SetMask 関数を呼び出 す前にプロパティの値に false を設定し、その後で値に true を再設定し ます。 PowerScript リファレンス ボリューム 2 1097 SetMessage 表示書式には色を使用できますが、エディットマスクには色を使用で きません。 例 次のステートメントは、エディットマスク コントロール 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 説明 エラー メッセージを設定する Throwable 型のオブジェク トを指定します。 設定するメッセージを含む文字列を指定します。引用符で 囲む必要があります。 戻り値 なし 解説 ユーザ定義例外オブジェクトに対してカスタマイズしたメッセージを 設定する場合に使用します。SetMessage 関数を使用して RuntimeError オブジェクトの事前設定されたエラー メッセージを修正することも 可能ですが、このような使用方法はお勧めできません。 例 次のステートメントの例は、Throwable 型のユーザ オブジェクトに対 してメッセージを設定しています。 MyException.SetMessage ("MyException thrown") 次の例は、try-catch ブロック内で、あるユーザ定義関数を対象にして SetMessage 関数を使用しています。このユーザ定義関数は、テキスト ボックスから入力値をとり、その値の逆余弦を別のテキスト ボックス に出力します。 1098 PowerBuilder 第 10 章 PowerScript 関数 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 説明 マイクロヘルプを設定する MDI フレーム ウィンドウの名 前を指定します。 新しいマイクロヘルプのテキストを表す文字列を指定し ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 コントロールの Tag プロパティは、マイクロヘルプのテキストを格納 するのに便利です。コントロールにフォーカスが移動したときに起動 する GetFocus イベントのスクリプト内で SetMicroHelp 関数を使用する と、ウィンドウ フレーム上のステータスバーに Tag プロパティのテキ ストを表示することができます。 PowerScript リファレンス ボリューム 2 1099 SetNewMobiLinkPassword メニューでは、エンド ユーザがメニュー項目を選択すると、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) SetNewMobiLinkPassword 機能 現行の MobiLink ユーザの新しいパスワードを設定します。 対象 MLSynchronization コントロール、MLSync コントロール、ULSync コン トロール 構文 syncObject.SetNewMobiLinkPassword (newPW) 引数 syncObject newPW 戻り値 解説 1100 説明 同期サーバとの接続を開始する同期オブジェクトの名前を 指定します。 MobiLink 用に設定する新しいパスワードで構成される文字 列を指定します。 Integer 型。正常に終了した場合は 1、失敗した場合は -1 を返します。 SetNewMobiLinkPassword 関数は、同期オブジェクトのプロパティを使用 して通常の dbmlsync コマンド ラインを生成します。このコマンド ラ イ ン に は、-pi(ping)オ プ シ ョ ン と、新 し い MobiLink パ ス ワ ー ド (newPW)を設定するための -mn オプションが含まれます。必要なプ ロパティ(Datasource、Publication、MLServerVersion、MLUser)が同期 オブジェクトにない場合、新しいパスワードは設定されません。 PowerBuilder 第 10 章 関連項目 PowerScript 関数 GetCommandString SetParm SetSyncRegistryProperties Synchronize SetNull 機能 変数に null を設定します。変数のデータ型は、配列、構造体、または 自動インスタンス化オブジェクト以外なら何でも構いません。 構文 SetNull ( anyvariable ) 引数 anyvariable 説明 null を設定する変数を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 データベースに変数を書き込む前に、SetNull 関数を使用して変数に null 値を設定します。PowerBuilder は、変数を null 値に初期化しません。変 数の宣言時に値を指定しない限り、データ型の標準の初期値で変数を 初期化するので注意してください。 データ型が Any の変数に値を割り当て、その変数を null に設定する場 合、null 値のデータ型は割り当てられた値のデータ型のままになりま す。SetNull 関数を使用して Any 変数の型を解除することはできません。 例 次のステートメントは、変数 Salary に null 値を設定します。 SetNull(Salary) 関連項目 IsNull SetOverlayPicture 機能 コントロールの画像リスト内の画像を、オーバーレイ画像リストに入 れます。 対象 リストビュー コントロール、ツリービュー コントロール 構文 controlname.SetOverlayPicture ( overlayindex, imageindex ) PowerScript リファレンス ボリューム 2 1101 SetOverlayPicture 引数 controlname overlayindex imageindex 説明 オーバーレイ画像を追加するリストビューまたはツリー ビュー コントロールの名前を指定します。 オーバーレイ画像リスト内のオーバーレイ ピクチャのイ ンデックス番号を指定します。オーバーレイ画像リストは 1 次元の配列です。overlayindex は、1(最初の画像の場合)、 以前に指定したインデックス(画像を置換する場合)、ま たは現行の最大インデックス + 1(別の画像を追加する場 合)のいずれかでなければなりません。配列に欠番ができ るようなインデックスを指定すると、SetOverlayPicture 関 数はエラーになります。 コントロールのメイン画像リスト内の画像のインデック ス番号を指定します。リストビューの場合、そのインデッ クス番号の位置にある大きいピクチャと小さいピクチャ は、どちらもオーバーレイ画像になります。画像は、依然 として項目のメイン画像として使用できます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 オーバーレイ ピクチャの高さと幅は、オーバーレイの対象となるピク チャと同じでなければなりません。オーバーレイ ピクチャが下にある ピクチャと重なる場合、ピクチャを挿入するときに 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 1102 PowerBuilder 第 10 章 PowerScript 関数 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) SetParagraphSetting 機能 リッチテキスト エディット コントロールで挿入ポイントがある段落 のインデント、左余白、または右余白のサイズを設定します。 対象 リッチテキスト エディット コントロール 構文 rtecontrol.SetParagraphSetting ( whichsetting, value ) 引数 rtecontrol whichsetting 説明 段落情報を取得するコントロールの名前を指定します。 変更する設定を指定する ParagraphSetting カタログ データ 型の値。値は以下のとおりです。 • Indent! - 段落のインデント • LeftMargin! - 段落の左余白 value 戻り値 • RightMargin! - 段落の右余白 Long 型の値。1/1000 インチ単位で、余白またはインデン トの幅を指定します。たとえば、500 は 0.5 インチになり ます。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。いずれかの引数が null の場合は null を返します。 PowerScript リファレンス ボリューム 2 1103 SetParm 解説 各段落には、インデント、左余白、および右余白を設定できます。現 行の段落に 3 つをすべて設定するには、SetParagraphSetting 関数を 3 回 呼び出します。 例 次の例は、現行の段落のインデントを 1/4 インチに設定します。 ll_indent = rte_1.SetParagraphSetting(Indent!, 250) 次の例は、現行の段落の左余白を 1 インチに設定します。 rte_1.SetParagraphSetting(LeftMargin!, 1000) 関連項目 GetParagraphSetting SetAlignment SetSpacing SetTextColor SetTextStyle SetParm 機能 MobiLink 同期サーバに送信するパラメータを設定します。 対象 MLSynchronization コントロール、MLSync コントロール、ULSync コン トロール 構文 SyncObject.SetParm (syncparm ) 引数 syncObject syncparm 説明 同期オブジェクトの名前を指定します。 同 期パラメ ータと して設 定可能な プロパ ティ値 を含む SyncParm の構造体を指定します。 戻り値 Integer 型。正常に終了した場合は 1、失敗した場合は -1 を返します。 例 以下のコード フラグメントは、MLSync オブジェクトのインスタンス を作成し、システムの SyncParm 構造のインスタンスを使用して必要な すべてのプロパティおよびオプションのプロパティをプログラムで生 成します。その後、Synchronize 関数を呼び出してデータベース同期を 開始します。 SyncParm MLSync Long Parms mySync rc mySync = CREATE MLSync mySync.MLServerVersion = 9// 必須プロパティ 1104 PowerBuilder 第 10 章 PowerScript 関数 mySync.Publication = 'salesapi'// 必須プロパティ mySync.UseLogFile = TRUE// オプション mySync.LogFileName = "C:\temp\sync.log"// オプション mySync.Datasource = 'salesdb_remote'// 必須 Parms.MLUser = '50'// 必須 Parms.MLPass = 'xyz123'// 必須 // 以下の値が DSN によって設定されていない場合は、 // 設定する必要があります。 Parms.DBUser = 'dba' Parms.DBPass = 'sql' // 同期オブジェクトにプロパティ値を適用します。 mySync.SetParm(Parms) // 同期プロセスを開始します。 rc = mySync.Synchronize() destroy mySync MLSync オブジェクトのプロパティ設定の保持 通常、MLSync オブジェクトから SetParm(SyncParm) を呼び出すと、特定 の SyncParm プロパティの値が空の文字列であった場合でも、MLSync オ ブジェクトのプロパティとして設定した認証値(AuthenticateParms、 Datasource、DBUser、DBPass、EncryptionKey、MLUser、MLPass)が自 動的に上書きされます。ただし、SetParm を呼び出す前に SetNull を呼 び出して SyncParm オブジェクトの特定のプロパティに NULL を設定 すると、MLSync オブジェクトの該当するプロパティ値がかわりに使 用されます。 関連項目 GetCommandString SetNewMobiLinkPassword SetSyncRegistryProperties PowerScript リファレンス ボリューム 2 1105 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 1106 PowerBuilder 第 10 章 PowerScript 関数 SetPointer 機能 マウス ポインタを設定します。 構文 SetPointer ( type ) 引数 type 説明 ポインタの型を表す Pointer カタログ データ型の値。値は 以下のとおりです。 AppStarting! Arrow! Cross! Beam! Help! HourGlass! Hyperlink! Icon! None! Size! SizeNS! SizeNESW! SizeWE! SizeNWSE! UpArrow! 戻り値 Pointer 型。置き換えられる前のポインタのカタログ型を返します。必 要な場合は元に戻すことができます。type が null の場合、null を返しま す。 解説 スクリプトの実行に時間がかかる場合に、スクリプトの開始時に SetPointer 関数を使用して砂時計を表示します。スクリプト内で再び変 更されるか、スクリプトが終了するまで、そのポインタは設定された ままです。 矢印ポインタを元に戻す方法 スクリプトの実行が終了すると、ポインタは矢印に戻ります。矢印に 変更する必要はありません。 PowerBuilder のペインタでは、エンド ユーザがウィンドウ、コントロー ル、またはデータウィンドウ オブジェクトの特定部分の上でポインタ を移動するときに PowerBuilder が表示するポインタの型を指定できま す。使用できる型は、前述の標準のポインタと開発者が待っているカ スタム カーソル ファイルです。 PowerScript リファレンス ボリューム 2 1107 SetPosition 例 次のステートメントは、マウス ポインタを砂時計型に変更します。 SetPointer(HourGlass!) 次の例は、前のポインタを保存し、長い動作が完了したときにそれを 復元します。 pointer oldpointer // ポインタ変数を宣言します。 oldpointer = SetPointer(HourGlass!) ... // 長い動作を実行します。 SetPointer(oldpointer) SetPosition ウィンドウ上のコントロール、ウィンドウ、データウィンドウ上のオ ブジェクトの前面から背後の重なりの順序を指定します。 目的 ウィンドウ上のコントロールの前面から背後の重なりの 順序を指定する、またはウィンドウをほかの開かれてい るウィンドウの一番上に表示するかどうかを指定する データウィンドウ内部のあるオブジェクトを別の区域に 移動する、または同じ区域内のオブジェクトの重なりの 順序を変更する 使用する構文 構文 1 構文 2 構文 1 ウィンドウ上のウィンドウやコントロールの配置を 指定する 機能 ウィンドウ上のコントロールに対しては、ウィンドウ上での前面から 背後の重なりの順序を指定します。ウィンドウに対しては、そのウィ ンドウをほかの開かれているウィンドウの一番上に表示するかどうか を指定します。 対象 ウィンドウ上のコントロール、ウィンドウ 構文 objectname.SetPosition ( position {, precedingobject } ) 引数 objectname 1108 説明 コントロールの名前を指定します。そのコントロールの ウィンドウ上での重なりの順序を設定します。または、 ウィンドウの名前を指定します。そのウィンドウを常に一番 上に表示するかどうかを指定します。objectname には、チャ イルド ウィンドウとシートを指定することはできません。 PowerBuilder 第 10 章 引数 position PowerScript 関数 説明 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 1109 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) 1110 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 1111 SetRange 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") 関連項目 ProfileInt ProfileString SetRange 機能 プログレスバー コントロールの継続時間、またはトラックバー コント ロールの開始および終了位置を設定します。 対象 プログレスバー コントロール 構文 controlname.SetRange ( startpos, endpos ) 1112 PowerBuilder 第 10 章 引数 controlname startpos endpos PowerScript 関数 説明 プログレスバーまたはトラックバーの名前を指定します。 Integer 型の値。範囲の開始位置を指定します。 Integer 型の値。範囲の終了位置を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 プログレスバー コントロールのデフォルトの範囲は、0 ~ 100 になっ ています。 例 次のステートメントは、プログレスバー コントロールの範囲を 1 ~ 10 に設定します。 HProgressBar.SetRange ( 1, 10 ) 関連項目 OffsetPos SelectionRange StepIt SetRecordSet 機能 ADOResultSet オブジェクトを設定し、渡された ADO Recordset から データとメタデータを取得します。 対象 ADOResultSet オブジェクト 構文 adoresultset.SetRecordSet ( adorecordsetobject ) 引数 adoresultset adorecordsetobject 説明 渡された ADO Recordset を格納する ADOResultSet オブ ジェクトを指定します。 ADO Recordset を含む OLEObject オブジェクトを指定 します。ADO Recordset を含まない OLEObject を渡す とエラーになります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SetRecordSet 関数は、ADO Recordset を含む OLEObject オブジェクトに よって渡されたデータを、ADOResultSet オブジェクトに入力するのに 使用します。Recordset は、COM+ コンポーネントから、ADO Recordset として返されたものです。 PowerScript リファレンス ボリューム 2 1113 SetRecordSet 例 次の例では、まず、COM+ コンポーネントに接続し、このコンポーネ ント上で ADO Recordset を 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 Recordset // を保持するために OLEObject を使用します。 loo_ADOrecordset = loo_mycomponent.GetTestResult() // ADOResultSet を作成し、渡された ADO Recordset を // 保持する OLEObject から ADOResultSet のデータを取得します。 lrs_ADOresultset = CREATE ADOResultSet lrs_ADOresultset.SetRecordSet(loo_ADOrecordset) 関連項目 1114 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの CreateFrom メソッド 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GenerateResultSet メソッド GetRecordSet SetResultSet PowerBuilder 第 10 章 PowerScript 関数 SetRedraw 機能 オブジェクトまたはコントロールのプロパティが変更されるたびに、 自動的に再描画するかどうかを制御します。 対象 メニュー以外のオブジェクト 構文 objectname.SetRedraw ( boolean ) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。boolean が null の場合、null を返します。 解説 特に指定しない限り、PowerBuilder は外観に影響するプロパティを変 更するたびに、コントロールを再描画します。オブジェクトのプロパ ティやコントロールのプロパティを何回も変更すると、ちらつきが発 生します。このちらつきを抑えて再描画にかかる時間を短縮するには、 SetRedraw 関数を使用して一時的に再描画しないように設定します。 ウィンドウが表示されない場合、SetRedraw 関数はエラーになります。 注意 再描画をオフにした場合は、オンに戻す必要があります。オンに戻さ ないと、問題が発生することがあります。また、再描画をオフにして ウィンドウ内のオブジェクトの Visible プロパティと Enabled プロパ ティを変更すると、タブ順序に影響するおそれがあります。 例 次のステートメントは、プロパティ変更の後 lb_Location の再描画をし ません。 lb_Location.SetRedraw(FALSE) 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) PowerScript リファレンス ボリューム 2 1115 SetRemote SetRemote DDE サーバ アプリケーションに対して、データの受信と、そのデータ の指定位置への格納を依頼します。確立した DDE 接続の種類によっ て、使用する構文が異なります。 目的 使用する構文 サーバ アプリケーションに対して 1 つの DDE リクエスト 構文 1 を行う(コールド リンク) チャネルを開いてウォーム リンクを確立している場合に、 構文 2 サーバ アプリケーションに対して DDE リクエストを行う 構文 1 1 つの DDE リクエストを行う 機能 DDE サーバ アプリケーションに対してチャネルを開かずにデータを 受信し、そのデータを指定した場所に格納するように依頼します。サー バに対してリクエストを 1 つまたは 2 つしか行わない場合、この構文 が適しています。 構文 SetRemote ( location, value, applname, topicname {,bAnsi} ) 引数 location value applname topicname bAnsi (オプション) 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 1116 説明 String 型の値。データを受信するサーバ アプリケーション 内のデータの位置を指定します。location の形式は、リク エストを受信するアプリケーションによって異なります。 String 型の値。リモート アプリケーションに送信する値を 指定します。 String 型の値。サーバ アプリケーションの DDE 名を表す 文字列を指定します。 String 型の値。データを受信するアプリケーションのイン スタンスまたはデータを指定します。たとえば、Microsoft Excel の場合、開いているスプレッドシートの名前をト ピック名として使用できます。 Boolean 型の値。DDE サーバへ送る文字列が ANSI 形式か どうかを指定します。bAnsi が NULL、false、または空の 場合、PowerBuilder は初めにデータを UNICODE 形式で送 ろうとします。bAnsi が true の場合、PowerBuilder はデー タを ANSI 形式の文字列で送ろうとします。 リンクは開始されていません。 リクエストが拒否されました。 PowerBuilder 第 10 章 PowerScript 関数 引数のいずれかの値が null の場合、null を返します。 解説 DDE を使用する場合、PowerBuilder アプリケーションは、クライアン ト ウィンドウとなるウィンドウを開いている必要があります。構文 1 では、アクティブ ウィンドウが DDE クライアントのウィンドウにな ります。 DDE チャネル、ウォーム リンク、コールド リンクについての詳細は、 ExecRemote 関数を参照してください。 例 次の例は、Microsoft Excel に対して、SALES.XLS というワークシートの 5 行目のカラム 7 のデータの値を 4500 に設定するように要求します。 SetRemote("R5C7", "4500", "Excel", "SALES.XLS") 関連項目 ExecRemote GetRemote OpenChannel 構文 2 開いたチャネルを介して DDE リクエストを行う 機能 サーバ アプリケーションにチャネルを開いてウォーム リンクを確立 している場合、DDE サーバ アプリケーションに対して、データを受信 し、そのデータを指定した場所に格納するように依頼します。複数の DDE リクエストを行う予定がある場合には、チャネルを開いてウォー ム リンクを使用する方が効率的です。 構文 SetRemote ( location, value, handle {, windowhandle }{, bAnsi} ) 引数 location value handle windowhandle (オプション) bAnsi (オプション) PowerScript リファレンス ボリューム 2 説明 String 型の値。データを受信するサーバ アプリケーション 内のデータの位置を指定します。location の形式は、リク エストを受信するアプリケーションによって異なります。 String 型の値。リモート アプリケーションに送信する値を 指定します。 Long 型の値。DDE サーバ アプリケーションに対するチャ ネルを指定します。handle は、DDE チャネルを開くために 呼び出した OpenChannel 関数から返された値です。 DDE クライアントとして機能させているウィンドウに対 するハンドルを指定します。 Boolean 型の値。DDE サーバへ送る文字列が ANSI 形式か どうかを指定します。bAnsi が NULL、false、または空の 場合、PowerBuilder は初めにデータを UNICODE 形式で送 ろうとします。bAnsi が true の場合、PowerBuilder はデー タを ANSI 形式の文字列で送ろうとします。 1117 SetResultSet 戻り値 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、負の整数値を返します。値は以下のとおりです。 -1 -2 -9 解説 リンクは開始されていません。 リクエストが拒否されました。 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) 関連項目 ExecRemote GetRemote OpenChannel SetResultSet 機能 新規の ADOResultSet オブジェクトに、ResultSet オブジェクトによって 渡されたデータを入力します。 対象 ADOResultSet オブジェクト 構文 adoresultset.SetResultSet ( resultsetobject ) 引数 adoresultset resultsetobject 1118 説明 渡された結果集合を ADO Recordset として格納する ADOResultSet オブジェクトを指定します。 結果集合データを含む ResultSet オブジェクトを指定しま す。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 SetResultSet 関数は、ADOResultSet オブジェクトを作成し、このオブ ジェクトに ResultSet オブジェクトからデータを入力する場合に使用 します。ResultSet オブジェクトは、データストア オブジェクトから GenerateResultSet 関数を使って作成できます。 SetResultSet 関数を使って ADOResultSet オブジェクトを作成した後、 GetRecordSet 関数を使って、ADO の結果集合を OLEObject 型の ADO Recordset オブジェクトの中に返すと、PowerScript においてネイティブ の ADO Recordset オブジェクトとして使用することができます。 例 関連項目 GetRecordSet 関数を参照してください。 『データウィンドウ リファレンス 』マニュアルまたはオンライン ヘル プの GenerateResultSet メソッド GetRecordSet SetRecordSet SetSeriesStyle グラフのデータ系列の外観を指定します。どの設定を変更するかに よって、構文が異なります。 目的 データ系列の色を設定する 線種、線幅を設定する データ系列の塗りつぶしパターンやシンボルを設定する データ系列がオーバーレイかどうかを指定する 使用する構文 構文 1 構文 2 構文 3 構文 4 構文 1 データ系列の色を設定する 機能 グラフのデータ系列の色を指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, colortype, color ) PowerScript リファレンス ボリューム 2 1119 SetSeriesStyle 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname colortype 説明 データ系列の色を設定するグラフ コントロールの名前、ま たはそのグラフがあるデータウィンドウ コントロールの 名前を指定します。 データウィンドウ コントロール上のデータ系列の色を設 定するグラフの名前を表す文字列を指定します。 色を設定するデータ系列の名前を表す文字列を指定しま す。 grColorType カタログ データ型の値。色を設定する項目を 指定します。値は以下のとおりです。 • Foreground! - テキストの色 • Background! - 背景の色 • LineColor! - 線の色 color • Shade! - 影の色(3D グラフ、立体のオブジェクトを 持ったグラフ) colortype に新しく設定する色を表す Long 型の値を指定し ます。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 データ系列のデータ ポイントには、それ自体のスタイルの設定が保存 されています。SetDataStyle 関数を使用して行った設定は、個別のデー タ ポイントのスタイルを設定し、データ系列の設定を上書きします。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、折れ線グラフに塗りつぶしパター ンや、棒グラフの線種を設定することができます。ただし、塗りつぶ しパターンや線種を見ることはできません。 PowerBuilder がデータウィンドウのグラフを描画する前に、グラフの データ系列の外観を指定できます。それを行うには、 pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント スクリプト内から SetSeriesStyle 関数を呼び出します。 pbm_dwngraphcreate イベントは、データウィンドウ オブジェクトにグ ラフが作成される直前に起動します。 例 次のステートメントは、グラフ gr_emp_data のデータ系列 Salary のテ キスト(前景)の色を黒に設定します。 gr_emp_data.SetSeriesStyle("Salary", & 1120 PowerBuilder 第 10 章 PowerScript 関数 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) gr_sales_data.SetSeriesStyle("Northeast", & LineColor!, line_color) END IF 関連項目 GetDataStyle GetSeriesStyle SeriesName SetDataStyle 構文 2 グラフの線種と線幅を設定する 機能 グラフのデータ系列の線種と線幅を指定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, linestyle, linewidth ) PowerScript リファレンス ボリューム 2 1121 SetSeriesStyle 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname linestyle linewidth 説明 データ系列の線種と線幅を設定するグラフ コントロール の名前、またはそのグラフを持つデータウィンドウ コント ロールの名前を指定します。 データウィンドウ コントロール中の線種と線幅を設定す るグラフの名前を表す文字列を指定します。 線種と線幅を設定するデータ系列の名前を表す文字列を 指定します。 LineStyle カタログ データ型の値。値は以下のとおりです。 Continuous! Dash! DashDot! DashDotDot! Dot! Transparent! 線幅のピクセル数を指定する Integer 型の値を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。引数のいずれかの値が null の場合、null を返します。 解説 データ系列のデータ ポイントには、それ自体のスタイルの設定が保存 されています。SetDataStyle 関数を使用して行った設定は、個別のデー タ ポイントのスタイルを設定し、データ系列の設定を上書きします。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、折れ線グラフに塗りつぶしパター ンや、棒グラフの線種を設定することができます。ただし、塗りつぶ しパターンや線種を見ることはできません。 PowerBuilder がデータウィンドウのグラフを描画する前に、グラフの データ系列の外観を指定できます。それを行うには、pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント スクリプト内から SetSeriesStyle 関数を呼び出します。pbm_dwngraphcreate イベントは、 データウィンドウ オブジェクトにグラフが作成される直前に起動し ます。 例 次のステートメントは、グラフ gr_product_data のデータ系列 Costs に線 種と線幅を設定します。 gr_product_data.SetSeriesStyle("Costs", & Dot!, 5) 関連項目 1122 GetDataStyle PowerBuilder 第 10 章 PowerScript 関数 GetSeriesStyle SeriesName SetDataStyle 構文 3 グラフの塗りつぶしパターンやシンボルを設定する 機能 データ系列のデータ マーカーに対する塗りつぶしパターンやシンボ ルを設定します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, enumvalue ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname enumvalue PowerScript リファレンス ボリューム 2 説明 データ系列の外観を設定するグラフ コントロールの名前、 またはそのグラフがあるデータウィンドウ コントロール の名前を指定します。 String 型の値。データウィンドウ コントロール上の外観を 設定するグラフの名前を指定します。 外観を設定するデータ系列の名前を表す文字列を指定し ます。 データ系列の外観の設定を表す値を指定します。FillPattern カタログ データ型または grSymbolType カタログ データ型 の値です。 1123 SetSeriesStyle 引数 説明 塗りつぶしのパターンを変更するには、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 関数を使用して行った設定は、個別のデー タ ポイントのスタイルを設定し、データ系列の設定を上書きします。 グラフには、現行のグラフの種類に適用されないプロパティのスタイ ル情報が格納されます。たとえば、折れ線グラフに塗りつぶしパター ンや、棒グラフの線種を設定することができます。ただし、塗りつぶ しパターンや線種を見ることはできません。 PowerBuilder がデータウィンドウのグラフを描画する前に、グラフの データ系列の外観を指定できます。それを行うには、 pbm_dwngraphcreate をユーザ イベントとして定義して、そのイベント スクリプト内から SetSeriesStyle 関数を呼び出します。 pbm_dwngraphcreate イベントは、データウィンドウ オブジェクトにグ ラフが作成される直前に起動します。 1124 PowerBuilder 第 10 章 例 PowerScript 関数 次のステートメントは、グラフ 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 構文 4 グラフのオーバーレイを作成する 機能 データ系列がオーバーレイかどうかを指定します。つまり、データ系 列は、ほかのデータ型の一番上の線を表します。 対象 ウィンドウ上およびユーザ オブジェクト上のグラフ コントロール、お よびデータウィンドウ コントロール上のグラフ 構文 controlname.SetSeriesStyle ( { graphcontrol, } seriesname, overlaystyle ) 引数 controlname graphcontrol (データウィン ドウ コント ロールのみ) (オプション) seriesname overlaystyle PowerScript リファレンス ボリューム 2 説明 データ系列のオーバーレイの状況を設定するグラフ コン トロールの名前、またはそのグラフがあるデータウィンド ウ コントロールの名前を指定します。 String 型の値。データウィンドウ コントロール上のデータ 系列のオーバーレイの状況を設定するグラフの名前を指 定します。 オーバーレイの状況を変更するデータ系列の名前を表す 文字列を指定します。 Boolean 型の値。データ系列をオーバーレイにするかどう か(データ系列の線を前面に表示するかどうか)を指定し ます。データ系列をオーバーレイにするには、true を指定 します。オーバーレイの設定を解除するには、false を指定 します。 1125 SetSeriesStyle 戻り値 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)に変更します。 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 関連項目 1126 GetDataStyle GetSeriesStyle SeriesName SetDataStyle PowerBuilder 第 10 章 PowerScript 関数 SetSelectedDate 機能 指定された日付を選択します。 対象 月表示カレンダ コントロール 構文 controlname.SetSelectedDate ( d ) 引数 controlname d 戻り値 解説 説明 選択した日付を設定する月表示カレンダ コントロールの 名前を指定します。 選択された日付として設定する日付の値を指定します。 Integer 型。正常に終了した場合は 0 を返します。それ以外の場合は、 次のいずれかの負の値を返します。 -1 無効な引数が指定されました。 -2 不明なエラーです。 単一の日付を選択するには、SetSelectedDate 関数を使用します。 SetDateLimits 関数で指定した日付の範囲外の日付を指定しようとした 場合、SetSelectedDate 関数は -1 を返します。 SetSelectedDate 関数と SetSelectedRange 関数は DateChanged イベントを 起動します。DateChanged イベントの中でこれらのメソッドを呼び出 すべきではありません(特に Post メソッドを使用している場合)。 例 次の例は、選択した日付を関数に渡される日付に設定します。 // 関数の引数 seldate integer li_return li_return = mc_1.SetSelectedDate(seldate) 関連項目 GetSelectedDate SetDateLimits PowerScript リファレンス ボリューム 2 1127 SetSelectedRange SetSelectedRange 機能 選択した日付の範囲を設定します。 対象 月表示カレンダ コントロール 構文 controlname.SetSelectedRange ( start, end ) 引数 controlname start end 戻り値 説明 選択した日付の範囲を設定する月表示カレンダ コント ロールの名前を指定します。 選択される最初の日付として設定する日付の値を指定し ます。 選択される最後の日付として設定する日付の値を指定し ます。 Integer 型。正常に終了した場合は 0 を返します。それ以外の場合は、 次のいずれかの負の値を返します。 解説 -1 無効な引数が指定されました。 -2 不明なエラーです。 連続する日付の範囲を選択するには、SetSelectedRange 関数を使用しま す。 SetSelectedRange 関数は、最初の日付以前の日付を最後の日付として指 定している場合は、最初の日付を最後の日付として使用し、最後の日 付を最初の日付として使用します。SetSelectedRange 関数を呼び出す前 に、MaxSelectedCount プロパティの値を、日付の範囲をサポートする の に 十 分 な 大 き さ に 設 定 す る 必 要 が あ り ま す。指 定 し た 日 付 が SetDateLimits 関数で指定した最初の日付および最後の日付の範囲外で あ る 場 合、ま た は 範 囲 が MaxSelectedCount を 超 え て い る 場 合 は、 SetSelectedRange 関数は -1 を返します。最初の日付および最後の日付 が同じ場合は、単一の日付が選択されます。 日付の範囲を選択するときにエンド ユーザがナビゲーション ボタン を使ってカレンダをスクロールすると、日付の範囲がカレンダのスク ロールに従って変わります。 SetSelectedDate 関数と SetSelectedRange 関数は DateChanged イベントを 起動します。DateChanged イベントの中でこれらのメソッドを呼び出 すべきではありません(特に Post メソッドを使用している場合)。 例 次の例では、選択する範囲の最初の日付を startdate に、また最後の日 付を enddate に設定します。 integer li_return Date startdate, enddate 1128 PowerBuilder 第 10 章 PowerScript 関数 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 行に指定します。 rte_1.SetSpacing(Spacing15!) 関連項目 SetTextColor SetTextStyle PowerScript リファレンス ボリューム 2 1129 SetState 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) 次のステートメントは、lb_Actions の項目 6 が選択された場合にはハイ ライト表示を解除し、選択されていない場合には項目をハイライト表 示します。 IF lb_Actions.State(6) = 1 THEN lb_Actions.SetState(6, FALSE) ELSE lb_Actions.SetState(6, TRUE) END IF 関連項目 1130 SelectItem PowerBuilder 第 10 章 PowerScript 関数 SetTop State SetSyncRegistryProperties 機能 ローカル マシン レジストリに同期プロパティを設定します。 対象 MLSynchronization コントロール、MLSync コントロール、ULSync コン トロール 構文 SyncObject.SetSyncRegistryProperties ( ) 引数 syncObject 説明 同期オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1、失敗した場合は -1 を返します。 解説 必要に応じて、SetSyncRegistryProperties 関数が、同期オブジェクトの SyncRegistryKey プロパティの値を使用して Windows レジストリに キーを作成します。同期オブジェクトの SyncRegistryKey プロパティが 設定されていない場合、失敗します。 例 SQL Anywhere の MobiLink ウィザードによって生成された MLSync オ ブジェクトは、Constructor イベント内で以下のコードを使用します。 IF // // // d_Registry_Build < d_this_object_build THEN 新しいリビジョンの初配布 - このリビジョンの ウィザード オブジェクトに ObjectRevision を設定し、 すべてのレジストリ値を上書きします。 rc = this.SetSyncRegistryProperties() ELSE rc = this.GetSyncRegistryProperties() END IF このコードは、実行中のアプリケーションのビルド番号がレジストリ に格納されているビルド番号よりも大きい場合(または、レジストリ 内にビルド番号が見つからない場合)、Windows レジストリに格納され ている認証プロパティの値を設定します。 関連項目 GetCommandString GetSyncRegistryProperties SetParm PowerScript リファレンス ボリューム 2 1131 SetTextColor SetTextColor 機能 リッチテキスト エディット コントロールで選択されているテキスト の色を設定します。 対象 リッチテキスト エディット コントロール 構文 rtename.SetTextColor ( colornumber ) 引数 rtename colornumber 説明 選択されているテキストの色を設定するリッチテキスト エディット コントロールの名前を指定します。 Long 型の値。選択されているテキストに設定する色を指 定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 色の値の算出についての詳細は、「RGB 関数」を参照してください。 例 次の例は、リッチテキスト エディット コントロール rte_1 で選択され ているテキストの色を暗い赤に設定します。 rte_1.SetTextColor(RGB(100, 0, 0)) 関連項目 GetTextColor RGB SetTextStyle SetTextStyle 機能 リッチテキスト エディット コントロールで選択されているテキスト に設定する書式を指定します。テキストには、太字、下線、斜体、お よび取り消し線のテキスト スタイルを設定できます。また、下付きま たは上付きの書式を設定することもできます。 対象 リッチテキスト エディット コントロール 構文 rtename.SetTextStyle ( bold, underline, {subscript}, {superscript}, italic, strikeout ) 引数 rtename 1132 説明 選択されているテキストに書式を設定するリッチテキス ト エディット コントロールの名前を指定します。 PowerBuilder 第 10 章 引数 bold underline subscript (旧形式) superscript (旧形式) italic strikeout PowerScript 関数 説明 Boolean 型の値。選択されているテキストを太字にするか どうかを指定します。 Boolean 型の値。選択されているテキストに下線を引くか どうかを指定します。 下位互換性のために保持されています。Boolean 型の値。 選択されているテキストを下付きにするかどうかを指定 します。この値は現在無視されます。 下位互換性のために保持されています。Boolean 型の値。 選択されているテキストを上付きにするかどうかを指定 します。subscript と superscript の両方が true の場合、 subscript の設定が優先され、選択されているテキストは下 付きになります。この値は現在無視されます。 Boolean 型の値。選択されているテキストを斜体にするか どうかを指定します。 Boolean 型の値。選択されているテキストに取り消し線を 引くかどうかを指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 例 次の例は、リッチテキスト エディット コントロール rte_1 で選択され ているテキストに太字と斜体の書式を設定します。 rte_1.SetTextStyle(TRUE, FALSE, & TRUE, FALSE) 次の例は、選択されているテキストを斜体にします。テキストのほか の書式設定は、変更されません。 rte_1.SetTextStyle(rte_1.GetTextStyle(Bold!), & rte_1.GetTextStyle(Underlined!), & TRUE, rte_1.GetTextStyle(Strikeout!)) 関連項目 GetTextStyle SetSpacing SetTextColor PowerScript リファレンス ボリューム 2 1133 SetTimeout 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) 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) 1134 PowerBuilder 第 10 章 PowerScript 関数 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 時を過ぎても、コントロールは今日の日付を 自動的に更新しません。 • コントロールは、ロケールの変更に基づいた表示を自動的に更新 しません。 次の例は、エディットマスク コントロールから日付を取得し、月表示 カレンダ コントロールで今日の日付として設定します。 Date currentdate integer li_return PowerScript リファレンス ボリューム 2 1135 SetToolbar 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! - フレームの下端にツールバーを配置 します。 floatingtitle (オプション) 戻り値 1136 • Floating! - ツールバーを浮動ツールバーにします。浮動 ツールバーは、独立したウィンドウとして表示されます。 String 型の値。alignment に Floating! が指定されている場合 に表示されるツールバーのタイトルを指定します。 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が null の場合、null を返します。 PowerBuilder 第 10 章 解説 PowerScript 関数 ツールバーの配置を 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) 次の例では、エンド ユーザはラジオボタンをクリックして配置を選択 します。ラジオボタンの Clicked イベントは、ToolbarAlignment カタロ グ データ型のインスタンス変数を設定します。ここでは、ラジオボタ ンをカスタム ビジュアル ユーザ オブジェクトとしてパッケージ化し ています。i_toolbaralign は、ユーザ オブジェクトのインスタンス変数 です。 [Top]ラジオボタンに対するスクリプトは、次のとおりです。 Parent.i_toolbaralign = AlignAtTop! 次のスクリプトは、ツールバーの配置を変更します。 w_frame.SetToolbar(1, TRUE, & uo_toolbarpos.i_toolbaralign ) 関連項目 GetToolbar GetToolbarPos PowerScript リファレンス ボリューム 2 1137 SetToolbarPos SetToolbarPos SetToolbarPos 指定されたツールバーの表示位置を設定します。 目的 固定ツールバーを配置する位置 浮動ツールバーの座標とサイズ 使用する構文 構文 1 構文 2 構文 1 固定ツールバーの表示位置を設定する 機能 固定ツールバーの表示位置を設定します。 対象 MDI フレーム、シート ウィンドウ 構文 window.SetToolbarPos ( toolbarindex, dockrow, offset, insert ) 引数 window toolbarindex dockrow offset 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。設定を変更するツールバーのインデックス を指定します。 Integer 型の値。ツールバーを配置する行の番号を指定しま す。配置する行には、左から右、または上から下へ番号が 付けられています。 Integer 型の値。ツールバーを配置する行の先頭からの距離 を指定します。上端または下端にあるツールバーの offset は、左端から測定されます。左端または右端にあるツール バーの offset は、上端から測定されます。 insert が true の場合、offset に指定された距離は調整される ので、行内の既存のツールバーとは重なりません。 dockrow の先頭にツールバーを配置するには、offset に 0 を 指定します。 1138 PowerBuilder 第 10 章 引数 insert PowerScript 関数 説明 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 関数で設定された値を 置き換えます。 例 次の例は、ツールバー 1 をウィンドウの左端に配置し、1 行目に追加 します。 w_frame.SetToolbar(1, TRUE, AlignAtLeft!) w_frame.SetToolbarPos(1, 1, 1, FALSE) PowerScript リファレンス ボリューム 2 1139 SetToolbarPos 次の例は、ツールバー 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 説明 ツールバーが設定されている MDI フレームまたはシート を指定します。 Integer 型の値。設定を変更するツールバーのインデックス を指定します。 Integer 型の値。浮動ツールバーの x 座標を指定します。 Integer 型の値。浮動ツールバーの y 座標を指定します。 Integer 型の値。浮動ツールバーの幅を指定します。 Integer 型の値。浮動ツールバーの高さを指定します。 戻り値 Integer 型。正常に終了した場合、1 を返します。指定したインデック スにツールバーがない場合、またはエラーが発生した場合には -1 を返 します。引数のいずれかの値が null の場合、null を返します。 解説 ツールバーの配置が浮動ではなく固定の場合、SetToolbar 関数を使用し て配置を浮動に変更すると、SetToolbarPos 関数の構文 2 に指定されて いる値が有効になります。 1140 PowerBuilder 第 10 章 PowerScript 関数 エンド ユーザがツールバーを浮動の領域までドラッグすると、新しい 表示位置の値は、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) // サイズを考慮して位置を設定します。 w_frame.SetToolbarPos(2, & w_frame.WorkspaceWidth( ) - iw, & w_frame.WorkspaceHeight( ) & - ih - w_frame.MDI_1.MicroHelpHeight, & iw, ih) PowerScript リファレンス ボリューム 2 1141 SetTop // 配置を浮動に設定します。 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()) 関連項目 1142 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 1143 SetTransPool 関連項目 BuildModel SetTransPool 機能 分散アプリケーションのデータベース トランザクションのプールを 設定します。SetTransPool は、PowerBuilder から除去された機能で使用 されていた関数であり、現在のバージョンではサポートされません。 対象 Application オブジェクト 構文 applicationname.SetTransPool ( minimum, maximum, timeout ) 引数 applicationname minimum maximum timeout 戻り値 説明 トランザクション プールを設定するアプリケーション オ ブジェクトの名前を指定します。 プールで開いておくトランザクションの最小数を指定し ます。 プールで開いておくトランザクションの最大数を指定し ます。 トランザクション プールでリクエストが接続待ちできる 秒数を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 SetValue 機能 コントロールの Value プロパティに日付と時間を設定します。 対象 日付ピッカー コントロール 構文 controlname.SetValue ( d, t ) controlname.SetValue ( dt ) 引数 controlname d t dt 1144 説明 日付と時間を設定したいコントロールの名前を指定します。 Value プロパティで設定される日付値を指定します。 Value プロパティで設定される時間値を指定します。 Value プロパティで設定される DateTime 値を指定します。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は 次のいずれかの負の値を返します。 -1 値を設定できません。 -2 ほかのエラーです。 解説 SetValue 関数は、個別の日付と時間の変数あるいは 1 つの DateTime 変 数を使用して Value プロパティを設定できます。 例 次の例は、個別の日付と時間の値を使用して日付ピッカー コントロー ルの Value プロパティを設定します。 date d time t d=date("2007/12/27") t=time("12:00:00") dp_1.SetValue(d, t) 次の例は、DateTime 値を使用して Value プロパティを設定します。 date d time t datetime dt dt = DateTime(d, t) dp_1.SetValue(dt) 関連項目 GetText GetValue PowerScript リファレンス ボリューム 2 1145 SharedObjectDirectory SharedObjectDirectory 機能 共有するように登録されたオブジェクトのリストを検索します。 構文 SharedObjectDirectory ( instancenames {, classnames } ) 引数 instancenames classnames (オプション) 戻り値 説明 共有するために登録したオブジェクトの名前を格納する 結合していない String 型の配列を指定します。 共有するために登録したオブジェクトのクラス名を格納 する結合していない String 型の配列を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • FeatureNotSupportedError! - この関数はこのプラットフォームで はサポートされていません。 解説 この関数を使用して、共有するように登録されたオブジェクトのリス トを取得します。 例 次の例では、アプリケーションが共有オブジェクトとそのクラス名の リストを検索します。 errorreturn status string InstanceNames[] string ClassNames[] status = SharedObjectDirectory(InstanceNames, & ClassNames) 関連項目 SharedObjectGet SharedObjectRegister SharedObjectGet 機能 共有オブジェクト インスタンスの参照を取得します。 構文 SharedObjectGet ( instancename , objectinstance ) 引数 instancename 1146 説明 参照を取得する共有オブジェクト インスタンスの名前を 指定します。指定する名前は、SharedObjectRegister 関数 で最初に登録されたときのオブジェクト インスタンスに 与えられた名前と一致しなければなりません。 PowerBuilder 第 10 章 引数 objectinstance 戻り値 解説 PowerScript 関数 説明 共有オブジェクトのインスタンスを格納する PowerObject 型のオブジェクト変数を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • SharedObjectCreateInstanceError! - 共有オブジェクトに対するロー カル参照を作成できませんでした。 • SharedObjectNotExistsError! - そのインスタンス名は登録されてい ません。 SharedObjectGet 関数は、 SharedObjectRegister 関数で作成されたオブジェ クトの参照を検索します。 PowerBuilder クライアント上の共有オブジェクトを使用することで、 EAServer への非同期呼び出しをシミュレートできます。クライアント のメイン スレッドから、共有オブジェクト上の関数を非同期に呼び出 します。このとき渡すコールバック オブジェクトに、サーバ上での処 理の完了時の通知が行われます。共有オブジェクト上のこのメソッド は、処理を実行する EAServer コンポーネント上のメソッドを同期呼び 出しします。共有オブジェクトがクライアント上の個別のスレッド内 で動作しているので、クライアントのメイン スレッドはサーバ上でプ ロセスの動作中にほかの作業を続行できます。 例 次の例では、共有オブジェクトを使用して EAServer コンポーネントの メソッドに対して非同期要求を行った後、データをクライアント アプ リケーション ウィンドウに返しています。クライアントは、そのウィ ンドウに Retrieve ボタンがあり、さらに SetDW 関数、共有オブジェク ト、およびコールバック ハンドラを持ちます。EAServer に配布された コンポーネントがデータベースから従業員の情報を検索します。 ウィンドウの Retrieve ボタンは、EAServer と通信する共有オブジェク トをコールバック ハンドラのインスタンスとともに作成します。 // インスタンス変数: // uo_sharedobject iuo_sharedobject // uo_callback iuo_callback long ll_rv SharedObjectRegister("uo_sharedobject","myshare") SharedObjectGet("myshare",iuo_sharedobject) iuo_callback = CREATE uo_callback // ウィンドウの参照をコールバック PowerScript リファレンス ボリューム 2 1147 SharedObjectGet // オブジェクトに渡します。 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 があります。 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 1148 PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 SharedObjectRegister SharedObjectUnregister 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの GetFullState メソッド と SetFullState メソッド PowerScript リファレンス ボリューム 2 1149 SharedObjectRegister SharedObjectRegister 機能 ユーザ オブジェクトを登録して共有できるようにします。 構文 SharedObjectRegister ( classname , instancename ) 引数 classname instancename 戻り値 解説 説明 共有するユーザ オブジェクトの名前を指定します。 共有オブジェクト インスタンスに割り当てる名前を指定 する文字列値です。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • SharedObjectExistsError! - そのインスタンス名はすでに使用され ています。 • SharedObjectCreateInstanceError! - オブジェクトは作成できません でした。 • SharedObjectCreatePBSessionError! - 共有オブジェクト セッション は作成できませんでした。 SharedObjectRegister 関数を呼び出すときに、PowerBuilder は、共有オブ ジェクト用に別のランタイム セッションを開き、共有オブジェクトを 作 成しま す。その オブジ ェクト イン スタン スに指 定した 名前で、 SharedObjectGet 関数を使ってそのオブジェクト インスタンスにアクセ スできます。 PowerBuilder クライアント上の共有オブジェクトを使用することで、 EAServer への非同期呼び出しをシミュレートできます。詳細について は、SharedObjectGet 関数の説明を参照してください。 例 次の例では、ユーザ オブジェクト uo_customers を登録し、共有できる ようにします。共有オブジェクト インスタンスに割り当てられる名前 は、share1 です。オブジェクトを登録してからは、アプリケーション は SharedObjectGet 関数を使ってオブジェクト変数にオブジェクトのイ ンスタンスを格納します。 SharedObjectRegister("uo_customers", "share1") SharedObjectGet("share1",shared_object) 関連項目 1150 SharedObjectGet SharedObjectUnregister PowerBuilder 第 10 章 PowerScript 関数 SharedObjectUnregister 機能 以前に登録されたユーザ オブジェクトの登録を取り消します。 構文 SharedObjectUnregister ( instancename ) 引数 instancename 戻り値 解説 説明 共有オブジェクト インスタンスにそれが最初に登録され たときに割り当てられた名前を指定します。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • SharedObjectNotExistsError! - そのインスタンス名は登録されてい ません。 この関数は、共有オブジェクトを破棄するように印を付けます。しか し、マークされたオブジェクトは実際にはそのオブジェクトへの参照 がなくなるまで破棄されません。 PowerBuilder クライアント上の共有オブジェクトを使用することで、 EAServer への非同期呼び出しをシミュレートできます。詳細について は、SharedObjectGet 関数の説明を参照してください。 例 次の例では、アプリケーションが share1 と呼ばれるオブジェクト イン スタンスの登録を取り消します。 SharedObjectUnregister("share1") 関連項目 SharedObjectRegister Show 機能 オブジェクトやコントロールが非表示のとき、それを表示します。そ のオブジェクトがすでに表示されているとき、Show 関数はそれを最前 面に表示します。 対象 すべてのオブジェクト 構文 objectname.Show ( ) 引数 objectname PowerScript リファレンス ボリューム 2 説明 見える状態にする(表示する)オブジェクトまたはコント ロールの名前を指定します。 1151 ShowHeadFoot 戻り値 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 ShowHeadFoot 機能 リッチテキスト エディット コントロールで、ヘッダとフッタを編集す るパネルを表示するか、またはパネルを非表示にしてメイン テキスト の編集画面に戻ります。 対象 リッチテキスト エディット コントロール、提示様式がリッチテキスト のデータウィンドウ コントロール 構文 rtename.ShowHeadFoot ( editheadfoot, {headerfooter}) 1152 PowerBuilder 第 10 章 引数 rtename editheadfoot PowerScript 関数 説明 ヘッダとフッタを編集するリッチテキスト エディット コ ントロールまたはデータウィンドウ コントロールの名前 を指定します。 表示する編集パネルを指定する Boolean 型の値。値は以下 のとおりです。 • TRUE - ヘッダとフッタの編集パネル headerfooter (オプション) • FALSE - 文書本体の詳細編集パネル ヘッダまたはフッタ パネルの編集で挿入ポイント(キャ レット)がヘッダまたはフッタ セクションのどちらにある かを指定する Boolean 型の値。値は以下のとおりです。 • True キャレットはヘッダ セクションにあります。 • False キャレットはフッタ セクションにあります。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 ShowHeadFoot 関数は、コントロールがプレビュー モードまたはメイン テキストの編集モードで表示されている場合に有効です。コントロー ルがプレビュー モードで表示されている場合にこの関数を呼び出す と、編集モードに戻ります。 editheadfoot 引数が false の場合は、headerfooter 引数は無視されます。 headerfooter 引数の値が指定されない場合は、デフォルトで「true」が 設定されます。ヘッダとフッタには、ページ番号と日付の入力フィー ルドを含めることができます。 データウィンドウ コントロールの場合、データウィンドウ オブジェク トの提示様式がリッチテキストでないときには、ShowHeadFoot 関数は 無効です。 例 次の例は、ヘッダとフッタの編集パネルを表示し、エンド ユーザが フッタの内容を指定できるようにします。 rte_1.ShowHeadFoot(TRUE, FALSE) 次のスクリプトは、フッタに現在のページ番号を挿入してから、リッ チテキスト コントロールのドキュメントのボディにフォーカスを戻 します。 rte_1.ShowHeadFoot(true,false) rte_1.SetAlignment ( Center! ) rte_1.InputFieldInsert("PAGENO") rte_1.ShowHeadFoot(false,false) 関連項目 Preview PowerScript リファレンス ボリューム 2 1153 ShowHelp 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 の文字列が固有値で ないときには、ヘルプ検索ウィンドウを表示します。 1154 PowerBuilder 第 10 章 PowerScript 関数 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 を返します。 PowerScript リファレンス ボリューム 2 1155 Sign 解説 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) 関連項目 1156 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Sign メソッド PowerBuilder 第 10 章 PowerScript 関数 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" PowerScript リファレンス ボリューム 2 1157 Sin 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)) 関連項目 1158 ASin Cos Pi Tan 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Sin メソッド PowerBuilder 第 10 章 PowerScript 関数 Sleep 機能 指定した期間、アプリケーションを一時停止します。 構文 Sleep ( seconds ) 引数 seconds 戻り値 説明 Long 型の値。アプリケーションを一時停止させる秒数を 指定します。 Integer 型。関数が正常に終了した場合は 1 を返し、エラーが発生した 場合は -1 を返します。 例 次の例は、アプリケーションを 5 秒間、一時停止させます。 Sleep ( 5 ) Sort データウィンドウ コントロール、データストア オブジェクトまたは子 データウィンドウ、あるいはツリービュー またはリストビュー コント ロールの行をソートします。 データウィンドウおよびデータストアの場合の構文については、 『デー タウィンドウ リファレンス』マニュアルまたはオンライン ヘルプの 「Sort メソッド」を参照してください。 ソートの対象 ツリービュー コントロールの項目 リストビュー コントロールの項目 使用する構文 構文 1 構文 2 構文 1 ツリービュー コントロールの項目をソートする 機能 ツリービュー コントロールの項目の子をソートします。 対象 ツリービュー コントロール 構文 treeviewname.Sort ( itemhandle , sorttype ) 引数 treeviewname itemhandle PowerScript リファレンス ボリューム 2 説明 ツリービュー コントロールの名前を指定します。指定され たコントロールの項目をソートします。 項目を指定します。指定された項目の子をソートします。 1159 Sort 引数 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 (オプション) 1160 説明 リストビュー コントロールを指定します。指定されたコン トロールの項目をソートします。 使用するソート方法を指定します。値は以下のとおりです。 Ascending! Descending! Unsorted! UserDefinedSort! カラム番号を指定します。指定されたカラムに基づいてリ ストビュー コントロールの項目をソートします。 PowerBuilder 第 10 章 PowerScript 関数 戻り値 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 プロパティがソートを呼び出 したときに自動的にソートされます。 PowerScript リファレンス ボリューム 2 1161 Space 例 次の例は、現行のツリービュー コントロールの項目のすべての下位項 目をソートします。 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 Space 機能 指定された長さのスペース(半角)で構成される文字列を返します。 構文 Space ( n ) 引数 n 説明 スペース(空白文字)で構成される文字列の長さを指定す る Long 型の数値を指定します。最大値は、文字列の最大 の長さである 2,147,483,647 です。 戻り値 String 型。正常に終了した場合は n 個のスペースを持つ文字列を返し、 エラーが発生した場合には空の文字列("")を返します。n が null の場 合、null を返します。 例 次のステートメントは、Name に 4 つのスペースを持つ文字列を代入し ます。 string Name Name = Space(4) 次のステートメントは、文字列 Name に 40 個のスペースを代入します。 1162 PowerBuilder 第 10 章 PowerScript 関数 string Name Name = Space(40) 関連項目 Fill 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Space メソッド Sqrt 機能 ある数値の平方根を計算します。 構文 Sqrt ( n ) 引数 n 説明 平方根を計算する数値を指定します。 戻り値 Double 型。正常に終了した場合は n で指定された数値の平方根を返し ます。n が null の場合、null を返します。 解説 Sqrt(n) は、n^.5 と同じ意味です。 負の数の平方根を計算しようとすると、実行時にエラーが発生します。 例 次のステートメントは、1.414213562373095 を返します。 Sqrt(2) 次のステートメントは、実行時にエラーが発生します。 Sqrt(-2) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Sqrt メソッド Start Start 関数には、2 つの構文があります。 目的 パイプライン オブジェクトを実行する タイミング オブジェクトをアクティブ化する PowerScript リファレンス ボリューム 2 使用する構文 構文 1 構文 2 1163 Start 構文 1 パイプライン オブジェクトを実行する 機能 パイプライン オブジェクトを実行し、パイプライン オブジェクトの SQL クエリによって指定された転送先に、転送元からデータを転送し ます。このパイプライン オブジェクトは、パイプライン システム オ ブジェクトから継承したユーザ オブジェクトのプロパティを持ちま す。 対象 パイプライン オブジェクト 構文 pipelineobject.Start ( sourcetrans, destinationtrans, errorobject {, arg1, arg2,..., argn } ) 引数 pipelineobject sourcetrans destinationtrans errorobject argn (オプション) 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は 負の値を返します。エラーが発生した場合、次のいずれかの値を返し ます。 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -12 -13 -15 -16 -17 1164 説明 実行するパイプライン オブジェクトを含むパイプライン ユーザ オブジェクトの名前を指定します。 転送元のデータベースに接続するために使用するトラン ザクション オブジェクトの名前を指定します。 転送先のデータベースに接続するために使用するトラン ザクション オブジェクトの名前を指定します。 パイプライン エラー データウィンドウを格納するデータ ウィンドウ コントロールまたはデータストアの名前を指 定します。 データ パイプライン ペインタのパイプライン オブジェク トに指定された 1 つ以上の検索引数を指定します。 パイプのオープンに失敗しました。 カラムの数が多すぎます。 テーブルはすでに存在しています。 テーブルが存在しません。 接続していません。 引数に誤りがあります。 カラムが一致していません。 転送元に致命的な SQL のエラーがあります。 転送先に致命的な SQL エラーがあります。 エラーの最大数を超えました。 テーブル構文に誤りがあります。 必要なキーが与えられていません。 パイプはすでに進行中です。 転送元のデータベースにエラーがあります。 転送先のデータベースにエラーがあります。 PowerBuilder 第 10 章 -18 PowerScript 関数 転送先のデータベースは読み出し専用です。 引数のいずれかの値が null の場合、null を返します。 解説 パイプラインの転送には、複数の PowerBuilder のオブジェクトが関連 します。次のオブジェクトが必要です。 • パイプライン オブジェクト。データ パイプライン ペインタで定義 します。どのようなデータを転送するのか、またはそのデータを 転送元のデータベースのテーブルから転送先のデータベースの テーブルにどのようにマッピングするのかを指定する SQL 文が含 まれます。 • ユーザ オブジェクト。パイプライン システム オブジェクトから継 承されたものです。パイプライン転送の進行をチェックするため のプロパティを引き継いでいます。ペインタで、インスタンス変 数を定義し、パイプラインのイベントに対するスクリプトを記述 します。 • ウィンドウ。パイプライン エラー データウィンドウとして使用す るデータウィンドウ コントロールまたはデータストアを持ってい ます。データウィンドウ オブジェクトを、そのデータウィンドウ コントロールに配置しないでください。パイプラインの実行時に エ ラ ー が 発 生 し た 場 合、デ ー タ ウ ィ ン ド ウ コ ン ト ロ ー ル は、 PowerBuilder のパイプライン エラー データウィンドウ オブジェク トを表示します。 また、ウィンドウには、パイプラインの実行、エラーの修復、キャン セルなどを行うためのボタンやメニューなどを持たせることもできま す。これらを実行するスクリプトには、Start 関数、Repair 関数、およ び Cancel 関数を使用します。 アプリケーションがパイプラインを実行する前に、転送元と転送先の データベースを接続し、ユーザ オブジェクトのインスタンスを作成 し、ユーザ オブジェクトの DataObject プロパティにパイプライン オブ ジェクトを割り当てておく必要があります。その後で、Start 関数を呼 び出してパイプラインを実行します。1 つまたは複数のスクリプトに、 この処理を記述します。 パイプラインを実行すると、転送されるデータはデータ パイプライン ペインタで定義した内容に従ってコミットされます。次のような指定 ができます。 • パイプラインが終了すると、データはコミットされます。エラー限 界の最大数を超えると、すべてのデータがロールバックされます。 PowerScript リファレンス ボリューム 2 1165 Start • 指定された行数が転送された後、データは通常のインターバルで コミットされます。エラー限界の最大数を超えたときは、転送さ れたすべての行がコミットされます。 データ パイプライン ペインタにおけるパイプライン オブジェクトの 指定方法や、その設定がコミットに与える影響についての詳細は、 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) 関連項目 Cancel Repair 構文 2 タイミング オブジェクトをアクティブ化する 機能 Timer イベントを指定された間隔で繰り返し行われるようにするタイ ミング オブジェクトをアクティブにします。 対象 タイミング オブジェクト 構文 timingobject.Start ( interval ) 引数 timingobject 1166 説明 アクティブにしたいタイミング オブジェクトの名前を指 定します。 PowerBuilder 第 10 章 引数 interval PowerScript 関数 説明 Timer イベント間の秒数を Double 型で指定します。interval は 0 より大きく 4,294,967 秒以下の自然数または分数で指 定できます。間隔 0 は無効です。 戻り値 Integer 型。正常に終了した場合は、1 を返します。タイマーがすでに 実行されている場合、指定された間隔が無効な場合、または使用でき るシステム タイマーがない場合は、-1 を返します。 解説 Start 関数のこの構文は、非表示のタイミング オブジェクトをアクティ ブにするのに使用されます。タイミング オブジェクトは、PowerBuilder ウィンドウと関連付けられていない Timer イベントを起動するために 使用できます。したがって、各クライアント接続用のウィンドウがな い分散アプリケーション サーバまたは共有オブジェクトには便利で す。 タイミング オブジェクトは、Timing システム オブジェクトから継承さ れた標準クラス ユーザ オブジェクトです。タイミング オブジェクト を作成し、その Timer イベントをコーディングすると、オペレーティ ング システムの制限内でオブジェクトのインスタンスをいくつでも 作成できます。オペレーティング システムは、タイマーの固定された 数値をサポートします。これらのタイマーのいくつかは、PowerBuilder およびそのほかのアプリケーションまたはオペレーティング システ ム自身ですでに使用されています。 タイミング オブジェクトのインスタンスをアクティブにするには、 Timer イベント間の interval を指定する Start 関数を呼び出します。その インスタンスの Timer イベントは指定された間隔の後ですぐに起動さ れ、タイミング オブジェクトのそのインスタンスで Stop 関数が呼び出 されるまで、またはそのオブジェクトが破棄されるまで継続します。 Timer イベントはいつ起こるか Start 関数に指定される interval は Timer イベントの間隔の最小値です。 そのほかのすべてのポストされたイベントは Timer イベントの前に起 こります。 間隔の精度は、オペレーティング システムによって異なります。 タイミング間隔をいくつにするか、およびタイマー オブジェクトの Interval と Running プロパティにアクセスすることによってタイマーを 実行するかどうかを決めることができます。これらのプロパティは、 読み込みのみのアクセスです。タイミング間隔の値を変更するには、 タイマーをストップし再起動しなければなりません。 PowerScript リファレンス ボリューム 2 1167 Start ガベージ コレクション タイミング オブジェクトが実行されていれば、ガベージ コレクション にはまわされません。ガベージコレクションは、タイミング オブジェ クトが実行されておらず、それに対する参照がないときにのみ起こり ます。 例 例 1 ローカル クライアントが、データベースの値に基づいて株券の ポートフォリオの値を計算するなどのいくつかの処理を行う分散処理 アプリケーションがあるとします。クライアントは、データベースか らデータの値を検索するためにリモート サーバ上のユーザ オブジェ クトを要求します。 標準クラス ユーザ オブジェクトを Timing システム オブジェクトから 継承された uo_timer と呼ばれるサーバに作成し、データをリフレッ シュするためにその Timer イベントをコーディングします。続いて、以 下のスクリプトがタイミング オブジェクト uo_timer のインスタンス、 MyTimer を作成します。Start 関数は、サーバへの要求が 60 秒の間隔で 発行されるように 60 秒ごとにタイマーをアクティブにします。 uo_timer MyTimer MyTimer = CREATE uo_timer MyTimer.Start(60) 例 2 次の例では、タイマーを起動し、ヒット数を数え、タイマーをス トップし、ウィンドウを閉じるためのボタンがあるウィンドウの共有 オブジェクトとしてタイミング オブジェクトを使用しています。ス テータスは、sle_state と呼ばれるシングルライン エディットで示され ます。タイミング オブジェクトである uo_timing は、Timing システム オブジェクトから継承された標準クラス ユーザ オブジェクトです。接 続の回数を維持する 1 つのインスタンス変数を持ちます。 long il_hits タイミング オブジェクト、uo_timing は 3 つの関数を持ちます。 • of_connect は、il_hits を加算し、整数を返します(この例では、簡 略にするために接続スクリプトを省略します)。 il_hits++ // 接続スクリプトは省略されました。 RETURN 1 • of_hitcount は、il_hits の値を返します。 RETURN il_hits 1168 PowerBuilder 第 10 章 • PowerScript 関数 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" 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 PowerScript リファレンス ボリューム 2 1169 Start ヒット数取得ボタンは、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" 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") 1170 PowerBuilder 第 10 章 PowerScript 関数 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 StartHotLink 機能 DDE サーバ アプリケーションとホット リンクを確立して、指定され たデータに変更があれば、すぐに PowerBuilder にその変更が通知され るようにします。DDE サーバ アプリケーション内でデータが変更され ると、DDE アプリケーションで HotLinkAlarm イベントが起動します。 構文 StartHotLink ( location, applname, topic {, bAnsi}) 引数 location PowerScript リファレンス ボリューム 2 説明 データの位置を示す文字列を指定します。ここに値の変更 があると HotLinkAlarm イベントが起動します。位置を表 す書式は、そのデータを持つアプリケーションによって異 なります。 1171 StartHotLink 引数 applname topic bAnsi (オプション) 戻り値 説明 String 型の値。サーバ アプリケーションの DDE 名を表す 文字列を指定します。 データまたはアプリケーションのインスタンスを識別する 文字列を指定します。ここに変更があると、HotLinkAlarm イベントが起動します。たとえば、Microsoft Excel の場 合、トピック名を開かれているスプレッドシートの名前 にします。 Boolean 型の値。DDE サーバから取得する文字列が ANSI 形式かどうかを指定します。bAnsi が NULL、false、また は空の場合、PowerBuilder は初めにデータを UNICODE 形 式の文字列で取得しようとします。bAnsi が true の場合、 PowerBuilder はデータを ANSI 形式の文字列として取得し ようとします。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、以下の負の整数のいずれかを返します。値は以下のとおりです。 -1 -2 サーバがありません。 リクエストが拒否されました。 引数のいずれかの値が null の場合、null を返します。 解説 例 ホット リンクの確立後、HotLinkAlarm イベントに対するスクリプトで 次の関数を呼び出すことができます。 • GetDataDDEOrigin 関数 - どのアプリケーションがデータの変更を 通知したかを調べます。 • GetDataDDE 関数 - 新しいデータを取得します。 • RespondRemote 関数 - データを受け取ったことを通知します。 次の例では、ある PowerBuilder アプリケーションが StartServerDDE 関 数を呼び出してサーバ アプリケーションを MyPBApp として識別して いるとします。クライアント アプリケーションで記述されている次の ステートメントは、MyPBApp のデータにホット リンクを確立します。 location と topic に指定する値は、MyPBApp が定義している規約によっ て異なります。 StartHotLink("Any", "MyPBApp", "Any") 次のステートメントは、Microsoft Excel にホット リンクを確立し、 REGION.XLS の行 1、カラム 2 のデータが変更された場合に PowerBuilder のウィンドウに通知します。 StartHotLink("R1C2", "Excel", "Region.XLS") 関連項目 1172 StopHotLink PowerBuilder 第 10 章 PowerScript 関数 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 要求を送信します。 表 0-10: DDE 要求で起動されるイベントと各イベントで使用できる DDE 関 数 クライアントの アクション ホット リンクに対して 要求を送信する アプリケーションにコマ ンドを送信する 起動される イベント RemoteHotLinkStart RemoteExec PowerScript リファレンス ボリューム 2 使用できる関数 - 関数の用途 - GetCommandDDE コマンドを取得する GetCommandDDEOrigin コマンドを送信したクライ アント アプリケーション を特定する 1173 State クライアントの アクション データを送信する 起動される イベント RemoteSend サーバ アプリケーショ RemoteRequest ンにデータを要求する 関数の用途 データを取得する GetDataDDEOrigin RespondRemote データを送信したクライア ント アプリケーションを 特定する 要求されたデータを送信す る - 要求を受け取ったことを通 知する - SetDataDDE ホット リンクの終了を RemoteHotLinkStop 要求する 例 使用できる関数 GetDataDDE 次のステートメントは、PowerBuilder アプリケーションに対して、サー バとしての動作を開始させます。このサーバ アプリケーションは、 MyPBApp という名前でほかの DDE アプリケーションに通知されま す。そのトピックは System という名前で、Table1 と Table2 という名前 の項目をサポートしています。 StartServerDDE(w_emp, "MyPBApp","System", & "Table1", "Table2") 関連項目 StopServerDDE State 機能 リストボックス コントロール内の項目が、ハイライト表示されている かどうかを調べます。 対象 リストボックス コントロール、ピクチャ リストボックス コントロール 構文 listboxname.State ( index ) 引数 listboxname index 1174 説明 リストボックス コントロールまたはピクチャ リストボッ クス コントロールの名前を指定します。その中の index で 指定された項目のハイライト表示の状態を取得します。 状態を取得する項目の番号を指定します。 PowerBuilder 第 10 章 戻り値 解説 PowerScript 関数 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 関数は、選択されている項目が見つかるたびにその 項目を表示します。選択された値の配列やリストを作成する処理を記 述することもできます。 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 ... PowerScript リファレンス ボリューム 2 1175 StepIt 関連項目 SelectedItem SetState StepIt 機能 プログレスバー コントロールの現行位置を、このコントロールの SetStep プロパティに指定された値だけ進めます。 対象 プログレスバー コントロール 構文 control.StepIt ( ) 引数 control 説明 プログレスバーの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。 解説 StepIt 関数では、SetStep プロパティの値によって現行位置がプログレ スバーの範囲を超えると、プログレスバー上の位置が先頭位置に戻り ます。たとえば、SetStep の値が 40、現行位置が 80 で、範囲が 0 から 100 に設定されている場合に StepIt 関数を呼び出すと、再描画後のプロ グレスバーの位置は 20 になります。 SetStep プロパティには負の値を設定することもできます。SetStep プロ パティのデフォルト値は 10 です。 例 次のステートメントは、プログレスバー コントロールに SetStep の増 分値を加えます。 HProgressBar.StepIt ( ) 関連項目 SetRange Stop Stop 関数には、次の 2 つの構文があります。 目的 タイミング オブジェクトを非アクティブ化する アニメーションの再生を停止する 1176 使用する構文 構文 1 構文 2 PowerBuilder 第 10 章 PowerScript 関数 構文 1 タイミング オブジェクトを非アクティブ化する 機能 タイミング オブジェクトを非アクティブ化します。 対象 タイミング オブジェクト 構文 timingobject.Stop ( ) 引数 timingobject 説明 非アクティブ化したいタイミング オブジェクトの名前を 指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返します。タイマーが起動して いないまたは止められない場合は -1 を返します。 解説 この関数を使ってタイミング オブジェクトを非アクティブにします。 止められたタイマーは Start 関数で再びアクティブ化できます。 例 次のステートメントは、タイミング オブジェクト インスタンス MyTimer を停止します。 MyTimer.Stop() 関連項目 Start 構文 2 アニメーションの再生を停止する 機能 アニメーション AVI クリップの再生を停止します。 対象 アニメーション コントロール 構文 animationname.Stop ( ) 引数 animationname 説明 AVI クリップを表示しているアニメーション コントロー ルの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1 を返します。アニメーションが動 作していない、または停止できなかった場合は -1 を返します。 解説 この関数を使って、再生中のアニメーションを停止します。停止され たアニメーションは Start 関数で再び開始できます。 例 次のステートメントは、アニメーション コントロール MyAnimation で 再生中の AVI クリップを停止します。 MyAnimation.Stop() 関連項目 Play PowerScript リファレンス ボリューム 2 1177 StopHotLink StopHotLink 機能 DDE サーバ アプリケーションへのホット リンクを終了します。 注意 すべての引数は、StartHotLink 関数を呼び出したときに指定した引数と 一致している必要があります。 構文 StopHotLink ( location, applname, topic ) 引数 location applname topic 戻り値 説明 String 型の値。ホット リンクを終了する位置を指定しま す。StartHotLink 関数で指定した値と同じ値を指定してく ださい。 String 型の値。サーバ アプリケーションの DDE 名を指定 します。StartHotLink 関数で指定した値と同じ値を指定し てください。 ホット リンクを終了させるデータまたはアプリケーショ ン の イ ン ス タ ン ス を 識 別 す る 文 字 列 を 指 定 し ま す。 StartHotLink 関数で指定した文字列と同じ文字列を指定し てください。 Integer 型。正常に終了した場合、1 を返します。エラーが発生した場 合、次のいずれかの値を返します。 -1 -2 -3 リンクは開始されていません。 リクエストが拒否されました。 サーバを終了することはできません。 引数のいずれかの値が null の場合、null を返します。 例 ある 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") 関連項目 1178 StartHotLink PowerBuilder 第 10 章 PowerScript 関数 StopServerDDE 機能 アプリケーションの DDE サーバとしての動作を終了させます。これ以 降、DDE クライアントからのすべての要求がエラーになります。 構文 StopServerDDE ( { windowname, } applname, topic ) 引数 windowname (オプション) applname topic 戻り値 説明 サーバ ウィンドウの名前を指定します。特に指定しない限 り、現行のウィンドウの名前が設定されます。複数のサー バ ウィンドウを使用している場合、windowname の指定が 必要です。 アプリケーションの DDE 名を指定します。 StartServerDDE 関数を呼び出したときに宣言したトピッ クを表す文字列を指定します。 Integer 型。正常に終了した場合は 1 を返し、エラーが発生した場合は -1 を返します。DDE サーバとして動作を開始していないことを意味し ます。引数のいずれかの値が null の場合、null を返します。 注意 applname と topic の各引数は、StartServerDDE 関数を呼び出したときに 指定した引数と一致している必要があります。 例 次のステートメントは、PowerBuilder アプリケーション MyPBApp の サーバとしての動作を終了させます。 StopServerDDE(w_emp, "MyPBApp", "System") 関連項目 StartServerDDE String String 関数には、次の 2 つの構文があります。 目的 使用する構文 指定された表示書式マスクに従ってデータを文字列に変 構文 1 換する Blob 型のデータを文字列に変換する 構文 2 PowerScript リファレンス ボリューム 2 1179 String 構文 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 が互換性のな いデータ型の場合には、空の文字列("")を返します。 解説 Date 型、DateTime 型、数値型、Time 型のデータに書式を指定しなかっ た場合、PowerBuilder はシステムの標準書式を使用します。数値型デー タの場合は、標準書式は [General] 書式です。 文字列には、表示マスクの指定が必要です。指定しなかった場合、こ の関数は何も実行しません。 書式には、1 つ以上のマスクを指定できます。 1180 • Date 型、DateTime 型、String 型、Time 型のデータの書式には、1 つまたは 2 つのマスクを指定できます。最初のマスクはデータの 書式です。2 番目のマスクは null 値の書式です。 • 数値型のデータの書式には、マスクを 4 つまで指定できます。マ スクを 1 つだけ指定すると、正のデータと負のデータの両方にそ のマスクを使用します。複数のマスクを指定すると、1 番目のマス クは正の値、2 番目のマスクは負の値、3 番目のマスクは 0、4 番 目のマスクは null 値に対して使用されます。 PowerBuilder 第 10 章 PowerScript 関数 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" の ような文字列を返します。 String(dw_1.GetItemTime(1, "start_date")) 日付を書式化し、月がテキストで表示される場合(たと えば、mmm を含む表示書式)、アプリケーションの実行時に利用可能 なランタイム DLL の言語でその月が表示されます。使用開発環境ある いはユーザのマシン上にローカライズされたランタイム ファイルが インストールされていれば、そのマシン上では、結果として得られる 文字列内での月の表示は、ローカライズされたファイルの言語により ます。 国際的な配布 ANSI データの処理 この関数はデータのエンコーディングを指定でき るようにする encoding 引数がないため、データが ANSI エンコーディ ングを持つ場合、返される文字列はガベージ文字を含むことができま す。String 関数から返される ANSI 文字列を Unicode Blob に変換し、そ れから Blob および String 変換関数で提供される encoding パラメータを 使用して Blob 内の ANSI 文字列を Unicode 文字列に変換することに よってこれを処理できます。 PowerScript リファレンス ボリューム 2 1181 String 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'") 次のステートメントは、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 を設定します。 1182 PowerBuilder 第 10 章 PowerScript 関数 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", "@-@-@") 次のステートメントは、"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") PowerScript リファレンス ボリューム 2 1183 String 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの String メソッド 構文 2 Blob 型のデータを変換する 機能 Blob 型のデータを String 型の値に変換します。Blob の値がテキスト データでない場合には、String 関数はデータを文字として解釈しようと します。 構文 String ( blob {,encoding} ) 引数 blob encoding 説明 Blob 型の値。指定された値を String 型の値に変換します。 Blob 型の値を格納した Any 型の変数を指定することもで きます。 変換される Blob 値の文字エンコーディングを指定しま す。値は以下のとおりです。 • EncodingANSI! • EncodingUTF8! • EncodingUTF16LE!(デフォルト) • EncodingUTF16BE! 戻り値 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 関数を参照 してください。 1184 PowerBuilder 第 10 章 例 PowerScript 関数 次の例は、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 オブジェクトに格納します。 pos1 = BlobEdit( bb, 1, test_date) pos2 = BlobEdit( bb, pos1, test_status ) ... // 何らかの処理 // bb に格納された状況を取り出して表示します。 sle_status.text = String( & BlobMid(bb, pos1, pos2 - pos1)) 関連項目 Blob 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの String メソッド PowerScript リファレンス ボリューム 2 1185 String_To_Object 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 ネーミング サービスを使用 せずにプロキシ インスタンスをインスタンス化することができます。 EJB コンポーネントへの接続 PowerBuilder 7 以前のバージョンでは、JaguarORB String_To_Object 関数 を使用して EAServer の EJB コンポーネントにアクセスしていました。 PowerBuilder 8 以降では、接続オブジェクトの Lookup 関数を使用する ことで、EAServer の EJB コンポーネントのホーム インタフェースのプ ロキシをインスタンス化できます。 PowerBuilder 9 では、EJBConnection PowerBuilder 拡張オブジェクトの Lookup 関数を使用することで、J2EE 準拠のサーバで実行している EJB コンポーネントのプロキシをインスタンス化できます。 String_To_Object 関数を使ってプロキシのインスタンス化を行う場合、 オブジェクトを直接インスタンス化することになります。この方法の 欠点は、ネーミング サービスによって提供されるサーバ アドレスの抽 象性の持つ利点が失われることです。 1186 PowerBuilder 第 10 章 PowerScript 関数 ネーミング サービス 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://hosta:2000 サーバがクラスタの一部である場合、objstring 引数に IOR のリストを セミコロンで区切って含めることができます。 String_To_Object 関数を呼び出した後、マネージャ インタフェースを 使ってセッション インタフェースのインスタンスを取得し、これに よってコンポーネントのインスタンスを作成できます。マネージャお よびセッション インタフェースを使用する場合は、これらのインタ フェースのプロキシを作成し、クライアントのライブラリ リストに含 める必要があります。これらのインタフェース上のメソッドについて の詳細は、URL http://yourhost:yourport/ir/ でインタフェース リポジトリ に関するドキュメントを参照してください。この URL で、yourhost は サーバのホスト名、yourport は HTTP ポート番号です。 String_To_Object 関数は、プロキシ オブジェクト参照のシリアライズの 解除にも使用できます。オブジェクト参照をシリアライズすることに よって、オブジェクトの状態を保存し、クライアントが処理を終了し た後にも残るようにすることができます。オブジェクト参照のシリア ライズを解除すれば、シリアライズされた文字列からオブジェクト参 照を取得できます。String_To_Object 関数は、多くの場合、オブジェク ト参照をシリアライズする Object_To_String 関数とともに使用されま す。 PowerScript リファレンス ボリューム 2 1187 String_To_Object 例 次の例は、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:2000", & 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) 次の例のコンポーネントは、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:2000", & my_corbaObj) my_corbaObj._narrow(my_mgr, "SessionManager/Manager" ) my_Session = my_mgr.createSession("jagadmin", "") 1188 PowerBuilder 第 10 章 PowerScript 関数 my_corbaObj = my_session.lookup("Cart") ll_return = my_corbaObj._narrow(my_CartHome, "com/shopping/CartHome") my_corbaObj = my_CartHome.create() my_Cart.addItem() 関連項目 Init Lookup _Narrow Object_To_String Resolve_Initial_References SuspendTransaction 機能 呼び出し元のスレッドに関連付けられている EAServer トランザク ションを中断します。 対象 CORBACurrent オブジェクト 構文 CORBACurrent.SuspendTransaction ( ) 引数 CORBACurrent 説明 CORBACurrent サービス インスタンスへの参照を指 定します。 戻り値 Unsigned long 型。スレッドに関連するトランザクションを参照するハ ンドルを返します。エラーが発生した場合には 0 を返します。 解説 SuspendTransaction 関数は、呼び出し元のスレッドに関連付けられてい るトランザクションの参照ハンドルを返します。このハンドルは、同 じスレッド上または異なるスレッド上の ResumeTransaction 関数に渡す ことができます。SuspendTransaction 関数を呼び出すと、現行のスレッ ドはトランザクションに関連しなくなります。 SuspendTransaction 関数を呼び出すことができるのは、クライアントま たは OTS スタイルとしてマークされたコンポーネントです。EAServer は、2 フェーズ コミット トランザクション コーディネータ(OTS/XA) を使用していることが必要です。 例 次の例は、SuspendTransaction 関数を使用することで、呼び出し元のス レッドが現行のトランザクションから分離されることを示していま す。 PowerScript リファレンス ボリューム 2 1189 Synchronize // インスタンス変数 : // 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() 関連項目 BeginTransaction CommitTransaction GetTransactionName ResumeTransaction RollbackTransaction SetTimeout Synchronize リモート データベースと統合データベース間で同期を開始します。同 期呼び出しの dbmlsync にコマンド ライン パラメータを含めるかどう かにより、使用する構文が異なります。 同期の開始 コマンド ライン パラメータを含めない 同期呼び出しにコマンド ライン パラメータを含める 使用する構文 構文 1 構文 2 構文 1 パラメータを使用しないで同期する 機能 リモート データベースと統合データベース間で同期を開始します。 対象 MLSynchronization コントロール、MLSync コントロール、ULSync コン トロール 構文 SyncObject.Synchronize ( ) 1190 PowerBuilder 第 10 章 引数 syncObject PowerScript 関数 説明 同期オブジェクトの名前を指定します。 戻り値 Integer 型。正常に終了した場合は 1、失敗した場合は -1 を返します。 それ以外の戻り値は、dbmlsync からのエラー コードです。 例 ユーザ ID およびパスワードを含む同期オブジェクトのすべてのプロ パティが初期化されている場合、この関数をすぐに使用できます。次 の nvo_my_mlsync という名前の MLsync オブジェクトの例のように、 コードを少し記述するだけで同期を開始できます。 nvu_my_mlsync mySync Long rc mySync = CREATE nvo_my_mlsync mySync.Synchronize() destroy mySync 通常、アプリケーション ウィンドウのメニュー項目またはコマンド ボ タンの Clicked イベントに上記のコードを追加します。 構文 2 パラメータを使用して同期する 機能 syncparm 構造体の値から渡されるコマンド ライン パラメータを使用 して dbmlsync 同期を開始します。 対象 MLSync コントロール 構文 SyncObject.Synchronize (cmdstring ) 引数 syncObject cmdstring 説明 同期オブジェクトの名前を指定します。 読み取り専用文字列。同期呼び出し用のコマンド ライン引 数を指定します。 戻り値 Integer 型。正常に終了した場合は 1、失敗した場合はそれ以外の値を 返します。 解説 Synchronize 関数呼び出しのコマンド文字列の例を以下に示します。 C:\Program Files\Sybase\SQL Anywhere 10\win32\ dbmlsync.exe -c "DSN=salesdb_remote;UID=dba;PWD=sql" -n salesapi -u 50 -mp "pw10" -wc salesapi_50_sync -o "C:\temp\dbmlsync.log" -v+ -q -k PowerScript リファレンス ボリューム 2 1191 SyntaxFromSQL dbmlsync 実行可能ファイルのパス(上記の例では C:\Program Files\Sybase\SQL Anywhere 10\win32\dbmlsync.exe)がコマンド文字列 に含まれていない場合、アプリケーションが Windows レジストリ内 でファイルを検索します。 例 MLSync オブジェクトについては、以下のように、同期を呼び出すた めのコマンド ライン引数をユーザが編集できるようにすることがで きます。 long rc string cmd cmd = myMLSync.GetCommandString() // 必要に応じて cmd を編集できます。 ... rc = myMLSync.Synchronize(cmd) 関連項目 CancelSync GetCommandString SetParm SyntaxFromSQL 機能 SQL SELECT 文に基づいてデータウィンドウのソース コードを生成し ます。 対象 トランザクション オブジェクト 構文 transaction.SyntaxFromSQL ( sqlselect, presentation, err ) 引数 transaction sqlselect 1192 説明 接続されたトランザクション オブジェクトの名前を指定 します。 有効な SQL SELECT 文を表す文字列を指定します。 PowerBuilder 第 10 章 引数 presentation PowerScript 関数 説明 データウィンドウ オブジェクトに設定するデフォルトの 提示様式を表す文字列を指定します。最も簡単な書式は、 次のとおりです。 Style(Type=presentationstyle) presentationstyle の値は、データウィンドウ ペインタの 新 規データ ウィンドウ ダイアログボックスの提示様式に対 応しています。キーワードは、次のとおりです。 (デフォルト)Tabular Grid Form(フリーフォーム) Graph Group Label presentation に使用されるすべてのキーワードのリストに ついては、「解説」を参照してください。 PowerBuilder が、発生したエラー メッセージを割り当てる 文字列を指定します。 err 戻り値 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 PowerScript リファレンス ボリューム 2 1193 SyntaxFromSQL 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 ... ) 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) 1194 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、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 が原因でこれらのエラーが発生しました :" + ERRORS) RETURN END IF dw_1.Create( dwsyntax_str, ERRORS) IF Len(ERRORS) > 0 THEN MessageBox(" 警告 ", & "Create が原因でこれらのエラーが発生します :" + ERRORS) RETURN END IF 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Create メソッド 『データウィンドウ リファレンス』マニュアルのデータウィンドウ オ ブジェクトのプロパティ PowerScript リファレンス ボリューム 2 1195 SystemRoutine SystemRoutine 機能 パフォーマンス解析モデルのシステム ルートを表すルーチン ノード を提供します。 対象 Profiling オブジェクト 構文 instancename.SystemRoutine ( theroutine ) 引数 instancename theroutine 戻り値 説明 Profiling オブジェクトのインスタンス名を指定します。 システム ルートを表すルーチン ノードを含む ProfileRoutine の値を指定します。この引数は、参照渡しされます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • ModelNotExistsError! - モデルが存在しないため、関数は異常終了 しました。 解説 この関数を使って、パフォーマンス解析モデルのシステム ルートを表 すルーチン ノードを抽出します。BuildModel 関数を使ってトレース ファイルからパフォーマンス解析モデルをあらかじめ作成しておかな ければなりません。ルーチン ノードは、ProfileRoutine オブジェクトと して定義され、ルーチンで費やされた時間、ルーチンと呼ばれるもの すべて、各ルーチンが呼び出された回数およびルーチンが属するクラ スを与えます。 例 次の例では、パフォーマンス解析モデルのシステム ルートを表すルー チンを示します。 Profiling lpro_model ProfileRoutine lprort_routine lpro_model.BuildModel() lpro_model.SystemRoutine(lprort_routine) ... 関連項目 1196 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 1197 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") 関連項目 1198 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 メソッド Text 機能 リストボックス コントロールやドロップダウン リストボックス コン トロール内の項目のテキストを取得します。 対象 リストボックス コントロール、ドロップダウン リストボックス コン トロール、ピクチャ リストボックス コントロール、ドロップダウン ピ クチャ リストボックス コントロール 構文 listboxname.Text ( index ) 引数 listboxname index PowerScript リファレンス ボリューム 2 説明 項目のテキストを取得するリストボックス、ドロップダウ ン リストボックス、ドロップダウン ピクチャのいずれか のコントロールの名前を指定します。 テキストを取得する項目の番号を指定します。 1199 TextLine 戻り値 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) 関連項目 FindItem SelectedItem SelectedText TextLine 機能 挿入ポイントがある行のテキストを取得します。TextLine 関数は、複数 の行を持つことができるコントロールに対して機能します。 対象 データウィンドウ コントロール、エディットマスク コントロール、マ ルチライン エディット コントロール、リッチテキスト エディット コ ントロール 構文 editname.TextLine ( ) 引数 editname 説明 挿入ポイントがある行のテキストを取得するデータウィ ンドウ、エディットマスク、マルチライン エディット、 リッチテキスト エディットのいずれかのコントロールの 名前を指定します。 戻り値 String 型。editname 中の挿入ポイントがある行のテキストを返します。 エラーが発生した場合、空の文字列(“”)を返します。editname が null の場合、null を返します。 解説 editname にデータウィンドウ コントロールの名前を指定した場合、 TextLine 関数は、現行の行とカラム上のエディット コントロールにつ いての情報を通知します。 1200 PowerBuilder 第 10 章 例 PowerScript 関数 マルチライン エディット コントロール 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 Time DateTime 型、String 型、数値型のデータを Time 型のデータに変換しま す。Blob 型のデータから時刻の値を取り出すこともできます。使用す る構文は、対象となるデータのデータ型によって異なります。 目的 DateTime 型のデータから時刻を取り出す、または Blob 型 使用する構文 構文 1 変数に格納されている時刻の値を取り出す 文字列を時刻の値に変換する 時、分、秒の数値を結合して時刻の値にする 構文 2 構文 3 構文 1 DateTime 型の値または Blob 型から時刻を取り出す 機能 DateTime 型の値または Blob 型から時刻を取り出します。 構文 Time ( datetime ) 引数 datetime PowerScript リファレンス ボリューム 2 説明 DateTime 型の値を指定するか、Time 型の値または DateTime 型の値で始まる Blob 型の値を指定します。残り の Blob 型の値は無視されます。Datetime には、DateTime 型または Blob 型の値を含む Any 型の変数を指定すること もできます。 1201 Time 戻り値 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)) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの 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)のあらゆる組み合わせです。 1202 PowerBuilder 第 10 章 例 PowerScript 関数 次のステートメントは、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 メソッド 構文 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 PowerScript リファレンス ボリューム 2 1203 Timer 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) 関連項目 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Time メソッド 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 イベ ントを停止します。 1204 PowerBuilder 第 10 章 PowerScript 関数 Timer(0) 次のステートメントでは、ウィンドウ w_Train に 0.5 秒間隔で Timer イ ベントを起動します。 Open(w_Train) Timer(0.5, w_Train) 次の例は、現在の時刻をウィンドウのスタティック テキスト コント ロールに表示させます。ウィンドウの Open イベントに対するスクリ プトで Timer 関数を呼び出すとタイマーが開始します。Timer イベント に対するスクリプトは、表示される時刻をリフレッシュします。 次のコードは、ウィンドウの Open イベントのスクリプトです。初め に時刻を表示してタイマーを開始します。 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 の 将来のバージョンではサポートされなくなる予定です。 PowerScript リファレンス ボリューム 2 1205 Today Unicode ファイル形式 Unicode ファイルの先頭には、Unicode ファイルであることを示す 2 バ イトが追加されています。Unicode ファイルをストリーム モードで開 くときに、この 2 バイトが含まれている場合は、それをとばして読み 込んでください。 関連項目 Blob FromAnsi FromUnicode ToUnicode 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") 1206 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、スタティック テキスト コントロール st_date に現在のシステム日付とシステム時刻を表示します。 st_date.Text = String(Today(), "m/d/yy hh:mm") 関連項目 Now 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Today メソッド 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() PowerScript リファレンス ボリューム 2 1207 TotalColumns lb_Contacts のリストの一番上にある項目が現在選択されていない場 合、次のステートメントは、現在選択されている項目を一番上にスク ロールします。 integer Num Num = lb_Contacts.SelectedIndex() IF lb_Contacts.Top() <> Num THEN & lb_contacts.SetTop(Num) 関連項目 SelectedIndex SetTop TotalColumns 機能 リストビュー コントロールのカラム数を取得します。 対象 リストビュー コントロール 構文 listviewname.TotalColumns ( ) 引数 listviewname 戻り値 説明 カラム数を調べるリストビュー コントロールの名前を指 定します。 Integer 型。正常に終了した場合はカラム数を返し、エラーが発生した 場合は -1 を返します。 解説 リストビュー コントロールがレポート ビューに設定されているとき に使用します。 例 次の例は、リストビュー コントロールのレポート ビューのカラム数を シングルライン エディット コントロールに表示します。 int li_cols li_cols = lv_list.TotalColumns() sle_info.text = "Total columns = " + string(li_cols) 関連項目 1208 TotalItems TotalSelected PowerBuilder 第 10 章 PowerScript 関数 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 関連項目 TotalSelected TotalSelected 機能 リストボックスから、選択されている項目の数を取得します。 対象 リストボックス コントロール、ピクチャ リストボックス コントロー ル、リストビュー コントロール 構文 listcontrolname.TotalSelected ( ) PowerScript リファレンス ボリューム 2 1209 ToUnicode 引数 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 ToUnicode 機能 文字列を Unicode Blob 型に変換します。 構文 ToUnicode ( string ) 引数 string 戻り値 1210 説明 Unicode Blob 型に変換したい文字列を指定します。 Blob 型。成功すると Unicode Blob 型を返し、失敗すると空の Blob 型を 返します。 PowerBuilder 第 10 章 解説 PowerScript 関数 ToUnicode 関 数 は ANSI 文 字 列 を Unicode Blob 型 に 変 換 し ま す。 ToUnicode 関数は、Blob(string) と同じ結果を返すので、PowerBuilder の 将来のバージョンではサポートされなくなる予定です。 Unicode ファイル形式 Unicode ファイルの先頭には、Unicode ファイルであることを示す 2 バ イトが追加されています。 関連項目 FromAnsi FromUnicode ToAnsi TraceBegin 機能 トレース ファイルに動作の種類を挿入し、ログが開始されたことを示 し、すべての有効なアプリケーションのトレース動作のログを開始し ます。TraceOpen 関数を使ってトレース ファイルを開いてから TraceBegin を呼び出します。 構文 TraceBegin ( identifier ) 引数 identifier 戻り値 解説 説明 トレース ファイルに記録され、トレース ブロックを識別 するのに使用する読み込みのみの文字列を指定します。 identifier が null の場合は、空の文字列がトレース ファイル に置かれます。 ErrorReturn 型。以下のいずれかの値を返します。 • Success! - 成功しました。 • FileNotOpenError! - TraceOpen 関数が呼び出されていません。 • TraceStartedError! - TraceBegin 関数は呼び出されました。 TraceBegin 関数の呼び出しは、トレース ファイルに ActBegin! の動作の 種類の値を挿入してログが開始されたことを示し、トレースするよう に選択したすべてのアプリケーションの動作のログを開始します。 TraceBegin 関数は、TraceOpen 関数を呼び出してからでないと呼び出す ことができません。記録するすべての動作を TraceEnableActivity 関数を 使って有効にしてから TraceBegin 関数を呼び出します。 PowerScript リファレンス ボリューム 2 1211 TraceBegin アプリケーションすべての実行に対してトレース ファイルを生成し たい場合は、通常 TraceBegin 関数をアプリケーションの起動スクリプ トに入れます。トレース ファイルをアプリケーションの一部の実行に 対して生成したい場合は、通常 TraceBegin 関数をデータを集めたい機 能を開始するスクリプトに入れます。 トレース ファイル内のトレース ブロックを識別するために identifier 引数を使うことができます。トレース ブロックは、TraceBegin 関数と TraceEnd 関数への呼び出しの間に記録されるデータを表します。アプ リケーション実行の複数の部分をトレースしている場合は、単一のト レース ファイル内に複数のトレース ブロックがあることもあります。 例 次に、シングルライン エディット ボックスに入力した名前とドロップ ダウン リストから選択したタイマーの種類でトレース ファイルを開 く例を示します。トレースされるスクリプトの最初のブロックの有効 な動作のログを開始します。 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") 関連項目 1212 TraceOpen TraceEnableActivity TraceEnd PowerBuilder 第 10 章 PowerScript 関数 TraceClose 機能 トレース ファイルを閉じます。 構文 TraceClose ( ) 戻り値 ErrorReturn 型。以下のいずれかの値を返します。 解説 • Success! - 成功しました。 • FileNotOpenError! - TraceOpen 関数が呼び出されていません。 • FileCloseError! - ログ ファイルがいっぱいです。 TraceClose 関数は、トレース ファイルを閉じます。TraceEnd 関数を呼 び出していない場合、TraceClose 関数は処理を開始する前にその関数を 呼び出します。 通常、TraceClose 関数をアプリケーションの終了スクリプトに入れま す。 例 次に、アプリケーション トレース動作のログを終了させる方法と、ト レース ファイルを閉じる方法を示します。 TraceEnd() TraceClose() 関連項目 TraceBegin TraceEnd TraceOpen PowerScript リファレンス ボリューム 2 1213 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 関数を呼び出さなけ ればなりません。 1214 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 1215 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 関 数を呼び出さなければなりません。 1216 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 1217 TraceEnd TraceEnd 機能 ログが終了したことを示す動作の種類の値をトレース ファイルに挿 入し、アプリケーションのトレース動作のログを中止します。 構文 TraceEnd ( ) 戻り値 ErrorReturn 型。以下のいずれかの値を返します。 解説 • Success! - 成功しました。 • FileNotOpenError! - TraceOpen 関数が呼び出されていません。 • TraceNotStartedError! - TraceBegin が呼び出されていません。 TraceEnd 関数の呼び出しで、トレース ファイルの ActBegin! の動作の 種類の値が挿入されてログが終了したことを示し、トレースするよう に選択したすべてのアプリケーション動作のログを中止します。 TraseClose 関数を呼び出すときに TraceEnd 関数が呼び出されていない 場合は、TraceClose 関数は TraceEnd 関数を呼び出してから処理を始め ます。 すべてのアプリケーション実行に対してトレース ファイルを生成し たい場合は、通常アプリケーションの終了スクリプトに TraceEnd 関数 を入れます。アプリケーション実行の一部分についてのみトレース ファイルを生成したい場合は、通常、データを集める機能を終了させ るスクリプトに TraceEnd 関数を入れます。 例 次に、アプリケーション トレース動作のログを終了させる方法と、ト レース ファイルを閉じる方法を示します。 TraceEnd() TraceClose() 関連項目 1218 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 1219 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! への動作の種類のログを再設定します。 1220 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 1221 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 1222 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 1223 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!) 1224 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 TriggerPBEvent 機能 PowerBuilder ウィンドウ ActiveX コントロールに含まれるチャイルド ウィンドウで指定されたユーザ イベントを起動します。 対象 ウィンドウ ActiveX コントロール 構文 activexcontrol.TriggerPBEvent ( name {, numarguments {, arguments } } ) 引数 activexcontrol name numarguments (オプション) PowerScript リファレンス ボリューム 2 説明 PowerBuilder ウィンドウ ActiveX コントロールのインスタ ンスの識別子。HTML で使用する場合、これはオブジェク ト要素の NAME 属性です。そのほかの環境で使用する場合 には、これは PowerBuilder ウィンドウ ActiveX を含むコン トロールを参照します。 ユーザ イベントの名前を指定する文字列を指定します。こ の引数は、参照渡しされます。 arguments 配列の構成要素の数値を指定する Integer 型の値。 デフォルトは 0 です。 1225 TriggerPBEvent 引数 arguments (オプション) 説明 イベント引数を含む可変配列。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; 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) 1226 PowerBuilder 第 10 章 PowerScript 関数 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 Trim 機能 文字列の左端と右端からスペースを削除します。 構文 Trim ( string {, removeallspaces } ) 引数 string removeallspaces 説明 左端と右端からスペースを削除する文字列を指定します。 Boolean 型の値。全種類のスペースの削除を指定します。 戻り値 String 型。正常に終了した場合は、string の左端と右端からスペースを 削除した文字列を返します。エラーが発生した場合、空の文字列("") を返します。string が null の場合、Trim 関数は null を返します。 解説 Trim 関数は、エンド ユーザが入力したデータの左端と右端からスペー スを削除します。 オプションの removeallspaces 引数を指定しないか、またはこの引数の 値 に false を 設 定 し た 場 合、文 字 列 か ら ス ペ ー ス 文 字(U+0020 と U+3000)のみが除去されます。 PowerScript リファレンス ボリューム 2 1227 TrimW removeallspaces 引数に true を設定した場合、全種類のスペース文字が 除去されます。スペース文字のリストについては、LeftTrim を参照して ください。 例 次のステートメントは、左端と右端のスペースがすべてスペース文字 である場合に BABE RUTH を返します。 Trim(" BABE RUTH ") 次のステートメントは、左端と右端のスペースにほかの種類の空白ス ペース文字が含まれている場合に BABE RUTH を返します。 Trim(" BABE RUTH ", true ) 次の例は、エンド ユーザがシングルライン エディット コントロール sle_emp_fname に入力した値の左端と右端のスペースを取り除き、それ を emp_fname に格納します。 string emp_fname emp_fname = Trim(sle_emp_fname.Text) 関連項目 LeftTrim RightTrim 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Trim メソッド TrimW 機能 文字列の左端と右端からスペースを削除します。この関数は、サポー トされなくなります。動作は、すべての環境で Trim 関数と同じです。 構文 TrimW ( string ) 1228 PowerBuilder 第 10 章 PowerScript 関数 Truncate 機能 指定の小数点以下の位置で、数値の切り捨てを行います。 構文 Truncate ( x, n ) 引数 x n 戻り値 説明 切り捨てを行う数値を指定します。 x の切り捨てを行う小数点以下の位置を指定します。有効 な値は 0 ~ 28 です。 Decimal 型。正常に終了した場合、切り捨てた値を返します。エラーが 発生した場合、または引数が null の場合には、null を返します。 計算フィールドにおける Truncate 関数の使用 浮動小数レジスタ(計算用)にロードされた実数は、バイナリの記憶 領域における最大限の精度で表現されます。たとえば、2.07 として表 示されている実数は、実際には 2.06999999999999999999999997 として 格納されています。 このような数値に対して切り捨てを行うと、期待される結果にならな いことがあります。この問題を回避するためには、元の 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 1229 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(現行のセッションが終わるまで拒否 します) 解説 1230 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 1231 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" 1232 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 TypeOf 機能 オブジェクトまたはコントロールの型を調べて、Object カタログ デー タ型の値を取得します。 対象 すべてのオブジェクト 構文 objectname.TypeOf ( ) 引数 objectname 説明 型を取得するオブジェクトまたはコントロールの名前を 指定します。 戻り値 Object カタログ データ型。objectname の型を返します。objectname が null の場合、null を返します。 解説 TypeOf 関数を使用して、選択またはドラッグされたコントロールの データ型を調べることができます。 例 dw_Customer がデータウィンドウ コントロールの場合、次のステート メントは DataWindow! を返します。 dw_Customer.Typeof() 次の例は、w_dept ウィンドウの Control 配列のうち、最初の 5 つのコン トロールを調べます。ループの中では、コントロールがチェックボッ クスの場合に、何か処理を行います。 integer n PowerScript リファレンス ボリューム 2 1233 TypeOf 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 メッセージ オブジェクトの 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 関連項目 1234 ClassName PowerBuilder 第 10 章 PowerScript 関数 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() PowerScript リファレンス ボリューム 2 1235 Undo 次のステートメントは、メニュー 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() 1236 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、マルチライン エディット コントロール 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!) 関連項目 PixelsToUnits PowerScript リファレンス ボリューム 2 1237 UpdateLinksDialog 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 を返します。 1238 PowerBuilder 第 10 章 PowerScript 関数 リンクの更新についての詳細は、『アプリケーション テクニック』マ ニュアルを参照してください。 例 次の例は、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") 関連項目 Lower 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Upper メソッド PowerScript リファレンス ボリューム 2 1239 UpperBound 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 を返します。 1240 PowerBuilder 第 10 章 PowerScript 関数 次の例では、メニューバー上の[ファイル]メニューの位置を探し、 そのメニューのカスケード メニューに[更新]メニューがある場合、 [更新]メニューを無効状態にします。コードは、ウィンドウ内のコン トロールを表すスクリプトです。 次のスクリプトは、複雑なメニュー項目 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 関連項目 LowerBound PowerScript リファレンス ボリューム 2 1241 Which 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 1242 PowerBuilder 第 10 章 PowerScript 関数 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 に 変換されます。 PowerScript リファレンス ボリューム 2 1243 WorkSpaceHeight 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 1244 フレーム トップ (メニュー バーまたはツール バーがあればその直下) とワークスペース トップ間の距離を加算します。 = lh + This.WorkspaceY( ) PowerBuilder 第 10 章 PowerScript 関数 // ピクチャ コントロールの下のクライアント領域を移動します。 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() PowerScript リファレンス ボリューム 2 1245 WorkSpaceX 関連項目 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() 関連項目 1246 PointerX PointerY WorkSpaceHeight WorkSpaceWidth WorkSpaceY PowerBuilder 第 10 章 PowerScript 関数 WorkSpaceY 機能 カスタム MDI フレーム ウィンドウ以外のウィンドウの場合、ワーク スペースの上端と、スクリーンの上端の間の距離を取得します。 カスタム MDI フレーム ウィンドウの場合、フレーム ウィンドウの上 端からワークスペースの上端までの距離を取得します。フレーム ウィ ンドウの上端は、メニューバーまたはツールバーの下端です。 対象 ウィンドウ オブジェクト 構文 windowname.WorkSpaceY ( ) 引数 windowname 説明 ウィンドウの名前を指定します。このウィンドウのワークス ペースの上端と、スクリーンの上端の間の距離を求めます。 戻り値 Integer 型。スクリーンの上端から、windowname で指定されたウィンド ウのワークスペースの上端までの距離を(PowerBuilder 単位系で)返 します。エラーが発生した場合、-1 を返します。windowname が null の 場合、null を返します。 解説 ワークスペースは、ウィンドウの左右(フレームの太さや垂直スクロー ルバーは除く)と、ウィンドウの上下(フレームの太さ、タイトル バー、メニューバー、水平スクロールバーは除く)に囲まれた領域です。 例 次の例は、スクリーンの上端からウィンドウ w_employee のワークス ペースの上端までの距離を返します。 integer worky worky = w_employee.WorkSpaceY() 関連項目 PointerX PointerY WorkSpaceHeight WorkSpaceWidth WorkSpaceX Write 機能 開いている OLE ストリーム オブジェクトに、データを書き込みます。 対象 OLEStream オブジェクト 構文 olestream.Write ( dataforstream ) PowerScript リファレンス ボリューム 2 1247 Write 引数 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() 関連項目 1248 Length Open Read Seek PowerBuilder 第 10 章 PowerScript 関数 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! に設 定している場合、ドキュメントには、名前空間の使 用をサポートする文法が含まれていなければなりま せん。 schemaprocessing (オプション) 特に指定しない限り、false が設定されます。 Boolean 型の値。スキーマ サポートを有効にするか どうかを指定します。false に設定すると、見つかっ たスキーマは一切処理されません。 schemaprocessing に true を設定する場合、 namespaceprocessing にも true を設定する必要があり ます。 特に指定しない限り、false が設定されます。 PowerScript リファレンス ボリューム 2 1249 XMLParseFile 引数 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 実行時ファイルと一緒に配置しておく必要があります。 例 次のステートメントは、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") 1250 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、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) 次のステートメントは、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 PowerScript リファレンス ボリューム 2 1251 XMLParseString 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 XMLParseString 機能 XML 文字列を解析して、文字列が整形式かどうか、指定した文法でコ ンパイルできるかどうかを判別します。 構文 XMLParseString ( xmlstring {, validationscheme }{, parsingerrors } {, namespaceprocessing {, schemaprocessing {, schemafullchecking }}}) 引数 xmlstring validationscheme (オプション) 説明 解析する XML ドキュメントを保持する String 型の 値を指定します。 ValSchemeType カタログ データ型の値。SAX パーサ で使用される検証メソッドを指定します。値は以下 のとおりです。 • ValNever! - 検証エラーをレポートしません。 • ValAlways! - 常に検証エラーをレポートします。 ファイルの検証に使用できる DTD またはスキー マがあることがわかっている場合のみ、 ValAlways! を使用します。 • ValAuto! -(デフォルト)文法を指定した場合に のみ検証エラーをレポートします。 1252 PowerBuilder 第 10 章 引数 parsingerrors (オプション) namespaceprocessing (オプション) PowerScript 関数 説明 String 型の値。エラー メッセージを格納するための バッファを指定します。省略した場合、または null を設定した場合、エラーはダイアログボックスに表 示されます。 Boolean 型の値。名前空間の規則を適用するかどうか を指定します。true に設定すると、XML の名前空間 に対して、W3C 規格で定義されている制約と規則を 適用します。 validationscheme を ValAlways! または ValAuto! に設 定している場合、ドキュメントには、名前空間の使 用をサポートする文法が含まれていなければなりま せん。 schemaprocessing (オプション) 特に指定しない限り、false が設定されます。 Boolean 型の値。スキーマ サポートを有効にするか どうかを指定します。false に設定すると、見つかっ たスキーマは一切処理されません。 schemaprocessing に true を設定する場合、 namespaceprocessing にも true を設定する必要があり ます。 schemafullchecking (オプション) 特に指定しない限り、false が設定されます。 Boolean 型の値。スキーマの制約をチェックするかど うかを指定します。true を設定すると、スキーマの 文法にエラーがないかどうかがチェックされます。 schemaprocessing に true を設定していない場合、 schemafullchecking に true を設定しても、その設定は 無視されます。 特に指定しない限り、false が設定されます。 戻り値 Long 型。正常に終了した場合、0 を返します。エラーが発生した場合、 次のいずれかの負の値を返します。 -1 解析エラー -2 引数エラー 解説 XMLParseString を使用して、DTD や XML スキーマに対して XML ファ イルを検証した後で、他の処理に進んでください。 DTD や XML スキーマが文字列に含まれていない場合、または参照さ れていない場合、XMLParseString は、文字列の XML が整形式かどうか をチェックします。XML 文字列の検証に失敗した場合、または XML が整形式でない場合、XMLParseString は -1 を返します。 PowerScript リファレンス ボリューム 2 1253 XMLParseString 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> 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) 1254 PowerBuilder 第 10 章 PowerScript 関数 次のステートメントは、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) 関連項目 ImportString XMLParseFile 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの ImportString Year 機能 日付の値から年の部分を取り出します。 構文 Year ( date ) 引数 date 戻り値 説明 Date 型を指定します。この日付から年を取り出します。 Integer 型。正常に終了した場合、date で指定された日付の年の部分か ら 4 桁に合わせた値を返します。エラーが発生した場合、1900 を返し ます。date が null の場合、null を返します。 PowerScript リファレンス ボリューム 2 1255 Yield 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) 関連項目 Day Month 『データウィンドウ リファレンス』マニュアルまたはオンライン ヘル プの Year メソッド Yield 機能 Yield 関数は、PowerBuilder オブジェクトを含めたあらゆるグラフィッ ク オブジェクトの制御に使用することができます。Yield 関数は、メッ セージ キューをチェックし、メッセージがあった場合にはそのメッ セージをキューから取り出します。 構文 Yield ( ) 戻り値 Boolean 型。メッセージ キューからメッセージを取り出した場合は true を返し、メッセージがない場合は false を返します。 1256 PowerBuilder 第 10 章 解説 PowerScript 関数 ループの中で Yield 関数を呼び出して、ほかの処理を発生させます。た とえば、Yield 関数を呼び出して、ループの処理を中断できます。コン トロールに Yield 関数を使用すると、エンド ユーザが必要とするとき に、ほかのウィンドウの[キャンセル]ボタンをクリックできるよう になります。ループ内で、グローバル変数の値が変更されたかどうか をチェックすることができます。また、処理の終了を待っているルー プの中で Yield 関数を使用すると、そのアプリケーションやほかのアプ リケーションの処理を発生させることができます。 データ検索中のほかのアプリケーションの実行 エンド ユーザは、データの検索中に PowerBuilder アプリケーションで ほかの作業を行うことはできません。ただし、実行システム上のほか のアプリケーションを実行することはできます。RetrieveRow イベント に対するスクリプトの中で Yield 関数を呼び出すと、検索中にほかのア プリケーションを実行することができます。 Yield 関数を使用すると、PowerBuilder アプリケーションの実行速度が 低下します。これは、ほかのアプリケーションが処理時間を共有する からです。 例 次の例は、コードが長い作業を処理しています。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 ... // 何らかの処理 PowerScript リファレンス ボリューム 2 1257 Yield 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 関数が呼び出されるので、コンピュータは、ほかのアプ リケーションを実行させる時間を得ることができます。 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 1258 PowerBuilder 第 10 章 PowerScript 関数 MessageBox(" エラー ", & "Notes を起動できませんでした。", StopSign!) SetPointer(Arrow!) RETURN END IF END IF PowerScript リファレンス ボリューム 2 1259 Yield 1260 PowerBuilder 索引 記号 <= (小 さ い ま たは等 し い) 74 <> (等 し く ない) 74 < ( よ り 小 さ い) 74 ! (カ タ ロ グ値) 33 ’、 引用符を参照 &、 ア ンパサン ド 記号を参照 * (乗算) 72 ++、 += (後置式を使っ た代入) 128 + (加算) 72 -、 ハ イ フ ン を参照 -- (後置式を使っ た代入) 128 // ( コ メ ン ト ) 4 /= (後置式を使っ た代入) 128 / (除算) 72 = (関係) 74 = (代入) 43 >= (大 き い ま たは等 し い) 74 > ( よ り 大 き い) 74 ? (動的 SQL) 180, 181, 184 ^ (累乗) 72 _Is_A 関数 717 _Narrow 関数 820 ~、 テ ィ ルダ を参照 数字 0、 判別 1156 2 つの数の最大値 AddCategory 関数 347 AddColumn 関数 348 AddData 関数 372, 349 AddItem 関数 352 AddLargePicture 関数 357 AddPicture 関数 358 AddSeries 関数 359 AddSmallPicture 関数 361 AddStatePicture 関数 362 AddToLibraryList 関数 363 AllowEdit プ ロ パテ ィ 1040 AncestorReturnValue 変数 119 AND 演算子 74 ANSI、 文字列の変換 535, 1205, 1210 Any デー タ 型 28 API と デー タ ベース ハン ド ル 452 ArrangeOpen カ タ ロ グ デー タ 型 846 ArrangeSheets 関数 365 ArrangeTypes カ タ ロ グ デー タ 型 365 Arrange 関数 364 AscA 関数 367 ASCII 値 Char 型の変換 366, 367 印刷で き ない文字 937 Asc 関数 366 ASin 関数 368 ATan 関数 369 AttachmentFile プ ロ パテ ィ 789 AutoCommit 1193 802 B A Abs 関数 344 ACos 関数 344 Activate イ ベン ト 195 Activate 関数 345 Adaptive Server Enterprise 1193 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 BAT フ ァ イ ル 998 Beep 関数 370 BeginDownload イ ベン ト 196 BeginDrag イ ベン ト 196 BeginLabelEdit イ ベン ト 200 BeginLogScan イ ベン ト 201 1261 索引 BeginRightDrag イ ベン ト 202 BeginSync イ ベン ト 204 BeginTransaction 関数 370 BeginUpload イ ベン ト 205 Blob Byte 型に変換 379, 543 String 型に変換 372, 1180 値の抽出 442, 447, 453, 712, 770, 772, 955, 1201 更新 173 ス ト リ ームの読み込み 954 ス ト リ ームへの書 き 込み 1248 宣言 40 デー タ ベース か ら の選択 170 バ イ ト 配列に変換 544 ピ ク チ ャ コ ン ト ロ ールへの配置 1106 へのデー タ の挿入 373 変換 544 Blob 関数 372, 373 Blob 用の関数 Blob 373 BlobEdit 関数 373 BlobMid 関数 375 Blob デー タ 型 23 Blob 用の関数 Blob 372 BlobEdit 373 BlobMid 375 Len 747, 749 Boolean デー タ 型 24 BuildModel 関数 376 Byte デー タ 型 24 Byte 関数 379 C CALL 文 概要 128 使用 し ない 192 CancelSync 関数 381 Cancel 関数 380 CanUndo 関数 382 CategoryCount 関数 383 CategoryName 関数 384 Ceiling 関数 385 1262 ChangeDirectory 関数 385 ChangeMenu 関数 386 CharA 関数 388 CharW 関数 387 Char デー タ 型 String 型に変換 80 概要 24 配列 80 Checked プ ロ パテ ィ 1235 Check 関数 388 CHOOSE CASE 文 129 ChooseColor 関数 390 ClassDefinition オブジ ェ ク ト 、 FindMatchingFunction 529 ClassList 関数 390 ClassName 関数 392 ClearBoldDates 関数 396 Clear 関数 394 Clicked イ ベン ト 206, 825 Clipboard 関数 396 CLOSE Cursor 文 155 CLOSE Procedure 文 156 CloseChannel 関数 403 CloseQuery イ ベン ト 214, 400 CloseTab 関数 404 CloseUp イ ベン ト 216 CloseUserObject 関数 406 CloseWithReturn 関数 407 Close イ ベン ト 212, 399, 984 Close 関数 399 CollapseItem 関数 410 ColumnClick イ ベン ト 216 CommandParm 関数 411 CommitTransaction 関数 412 COMMIT 文 157 COM フ ァ イ ル 998 ConnectMobiLink イ ベン ト 218 ConnectToNewObject 関数 414 ConnectToNewRemoteObject 関数 416 ConnectToServer 関数 423 CONNECT 文 158 Constructor イ ベン ト 218 ContextInformation オブジ ェ ク ト GetCompanyName 関数 553 GetFixesVersion 関数 598 GetHostObject 関数 602 PowerBuilder 索引 GetMajorVersion 関数 609 GetMinorVersion 関数 612 GetName 関数 613 GetShortName 関数 635 GetVersionName 関数 651 ContextKeyword オブジ ェ ク ト 、 GetContextKeywords 関数 CONTINUE 文 131 Control 配列 863, 865 CopyRTF 関数 427 Copy 関数 425 CORBACurrent、 初期化 674 Cos 関数 429 CPU 時刻 430 情報の取得 588 Cpu 関数 430 CreateDirectory 関数 430 CreateInstance 関数 433 CreatePage 関数 436 CREATE 文 132, 893 Cut 関数 437 C 関数 値渡 し 769 戻 り 値のデ コ ー ド 714, 715 554 D DashesInIdentifiers オプシ ョ ン 5 DataChange イ ベン ト 220 DataSource 関数 440 DateChanged イ ベン ト 220 DateSelected イ ベン ト 221 DateTime 関数 446 DateTime デー タ 型 24 Date 関数 442 Date デー タ 型 24 DayName 関数 449 DayNumber 関数 450 DaysAfter 関数 451 Day 関数 448 dBase フ ァ イ ル、 デー タ の イ ン ポー ト DBHandle 関数 452 DBNotification イ ベン ト 221 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 666, 670 dbsign 155 DDE ク ラ イ ア ン ト 用の関数 CloseChannel 403 ExecRemote 485 GetDataDDE 565 GetDataDDEOrigin 566 GetRemote 623 OpenChannel 844 RespondRemote 983 SetRemote 1116 StartHotLink 1171 StopHotLink 1178 DDE サーバ用の関数 GetCommandDDE 550 GetCommandDDEOrigin 551 GetDataDDE 565 GetDataDDEOrigin 566 RespondRemote 983 SetDataDDE 1074 StartServerDDE 1173 StopServerDDE 1179 DDE チ ャ ネル デー タ の リ ク エ ス ト 625 閉 じ る 403 Deactivate イ ベン ト 224 DEBUG シ ン ボル 19 DebugBreak 関数 452 Decimal デー タ 型 概要 25 宣言 40 変換 453 DECLARE Cursor 文 159 DECLARE Procedure 文 160 Dec 関数 453 DELETE Where Current of Cursor 文 DeleteAllItems イ ベン ト 224 DeleteCategory 関数 454 DeleteColumns 関数 455 DeleteColumn 関数 454 DeleteData 関数 455 DeleteItem イ ベン ト 225 DeleteItem 関数 456 DeleteLargePictures 関数 460 DeleteLargePicture 関数 460 DeletePictures 関数 461 DeletePicture 関数 461 163 1263 索引 DeleteSeries 関数 462 DeleteSmallPictures 関数 463 DeleteSmallPicture 関数 463 DeleteStatePictures 関数 464 DeleteStatePicture 関数 464 DELETE 文 161 DestroyModel 関数 465 DESTROY 文 概要 136 メ ール セ ッ シ ョ ンの終了 785 Destructor イ ベン ト 226, 404, 406 DirectoryExists 関数 466 DirList 関数 467 DirSelect 関数 469 DisableCommit 関数 471 Disable 関数 470 DisconnectMobiLink イ ベン ト 227 DisconnectObject 関数 472 DisconnectServer 関数 473 DISCONNECT 文 164 DisplayMessage イ ベン ト 228 DDL、 動的 SQL を と お し た実行 179, 180 DLL フ ァ イ ル、 関数の実行 67 DoubleClicked イ ベン ト 228 DoubleParm プ ロ パテ ィ 850, 858, 860, 868, 870 Double 関数 474 Double デー タ 型 25 DoVerb 関数 475 DragDrop イ ベン ト 232 DragEnter イ ベン ト 237 DraggedObject 関数 478 DragLeave イ ベン ト 238 DragObject 用の関数 ClassName 392 Drag 476 Hide 654 Move 817 PointerX 891 PointerY 892 PostEvent 905 Print 912 Resize 980 SetFocus 1087 SetPosition 1108 SetRedraw 1115 Show 1151 1264 TriggerEvent 1223 TypeOf 1233 DragWithin イ ベン ト 239 Drag 関数 476 DrawObject 用の関数 ClassName 392 Hide 654 Move 817 Print 912 Resize 980 Show 1151 TypeOf 1233 Draw 関数 479 DropDown イ ベン ト 242 DWObject、 OLE 用の関数 DynamicDescriptionArea 概要 176 プ ロ パテ ィ 185 DynamicStagingArea 概要 176 準備 177 345, 425, 475, 1238 E EAServer デー タ 型のマ ッ ピ ン グ EditLabel 関数 431, 480 EnableCommit 関数 483 Enabled プ ロ パテ ィ 654, 1115 Enable 関数 482 EndDownload イ ベン ト 243 EndLabelEdit イ ベン ト 244 EndLogScan イ ベン ト 246 EndSync イ ベン ト 246 EndUpload イ ベン ト 247 EntryList 関数 484 ErrorMessage イ ベン ト 251 Error イ ベン ト 248 ExecRemote 関数 485 EXECUTE 文 164, 1085 EXIT 文 139 ExpandAll 関数 489 ExpandItem 関数 490 Exp 関数 489 ExternalException イ ベン ト 252 33 PowerBuilder 索引 F Fact 関数 491 FETCH 文 165 FileClose 関数 491 FileCopy 関数 492 FileDelete 関数 493 FileEncoding 関数 493 FileExists イ ベン ト 255 FileExists 関数 495 FileLength64 関数 497 FileLength 関数 495 FileMessage イ ベン ト 256 FileMove 関数 498 FileOpen 関数 499 FileReadEx 関数 506 FileRead 関数 503 FileSeek 関数 508, 509 FileWriteEx 関数 513 FileWrite 関数 511 FillA 関数 516 FillPattern 572, 1081, 1123 FillW 関数 515, 517 Fill 関数 印刷 515 概要 515 FindCategory 関数 519 FindClassDefinition 関数 520 FindFunctionDefinition 関数 521 FindItem 関数 522 FindMatchingFunction 関数 529 FindNext 関数 531 FindSeries 関数 532 FindTypeDefinition 関数 533 Find 関数 517 FromAnsi 関数 535 FromUnicode 関数 535 G GarbageCollectGetTimeLimit 関数 GarbageCollectSetTimeLimit 関数 GarbageCollect 関数 536 Gesture イ ベン ト 256 GetActiveSheet 関数 539 GetAlignment 関数 540 537 537 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 GetApplication 関数 540 GetArgElement 関数 541 GetAutomationNativePointer 関数 542 GetByteArray 関数 544 GetByte 関数 543 GetCertificateLabel 関数 545 GetChildrenList 関数 547 GetColumn 関数 548 GetCommandDDEOrigin 関数 551 GetCommandDDE 関数 550 GetCommandString 関数 552 GetCompanyName 関数 553 GetContextKeywords 関数 554 GetContextService 関数 555 GetCredentialAttribute 関数 557 GetCurrentDirectory 関数 560 GetDataDDEOrigin 関数 566 GetDataDDE 関数 565 GetDataPieExplode 関数 568 GetDataStyle 関数 569 GetDataValue 関数 575 GetData 関数 560 GetDateLimits 関数 577 GetDbmlsyncPath 関数 578 GetDisplayRange 関数 579 GetDynamicDate 186 GetDynamicDateTime 186 GetDynamicDateTime 関数 583 GetDynamicDate 関数 581 GetDynamicDecimal 186 GetDynamicDecimal 関数 584 GetDynamicNumber 186 GetDynamicNumber 関数 585 GetDynamicString 186 GetDynamicString 関数 586 GetDynamicTime 186 GetDynamicTime 関数 587 GetEnvironment 関数 588 GetFileOpenName 関数 589 GetFileSaveName 関数 595 GetFirstSheet 関数 597 GetFixesVersion 関数 598 GetFocus イ ベン ト 259 GetFocus 関数 599 GetFolder 関数 600 GetGlobalProperty 関数 601 1265 索引 GetHostObject 関数 602 GetItemAtPointer 関数 607 GetItem 関数 604 GetLastReturn 関数 608 GetLibraryList 関数 609 GetMajorVersion 関数 609 GetMinorVersion 関数 612 GetName 関数 613 GetNativePointer 関数 614 GetNextSheet 関数 615 GetObjectRevisionFromRegistry 関数 616 GetOrigin 関数 617 GetParagraphSetting 関数 618 GetParent 関数 618 GetPin 関数 620 GetRecordSet 関数 622 GetRemote 関数 623 GetSelectedDate 関数 627 GetSelectedRange 関数 628 GetSeriesStyle 関数 629 GetShortName 関数 635 GetStatus 関数 637 GetSyncRegistryProperties 関数 639 GetText 関数 640 GetToday 関数 642 GetToolbarPos 関数 645, 1138 GetToolbar 関数 643 GetTransactionName 関数 647 GetURL 関数 649 GetValue 関数 650 GetVersionName 関数 651 GOTO の ラ ベル 7 GOTO 文 142 grColorType カ タ ロ グ デー タ 型 570 grDataType カ タ ロ グ デー タ 型 561, 576 grObjectType カ タ ロ グ デー タ 型 824 grResetType カ タ ロ グ デー タ 型 974 grSymbolType カ タ ロ グ デー タ 型 1124 H HALT 文 143 Handle 関数 652 Help イ ベン ト 260 hidden オブジ ェ ク ト 1266 1151 Hide イ ベン ト 261 Hide 関数 654 HotLinkAlarm イ ベン ト 262 Hour 関数 655 HyperlinkToURL 関数 656 I Idle イ ベン ト 262 IF...THEN 文 概要 144 単一行 144 複数行 145 IMEGetCompositionText 関数 659 IMEGetMode 関数 659 IMESetMode 関数 660 ImpersonateClient 関数 662 ImportClipboard 関数 663 ImportFile 関数 666 ImportString 関数 670 IncomingCallList 関数 673 Inet オブジ ェ ク ト GetURL 関数 649 HyperlinkToURL 関数 656 PostURL 関数 908 Information ア イ コ ン 806 Init 関数 674, 675, 676 INI フ ァ イ ル 値の書 き 込み 1111 読み込み 947, 949 InputFieldChangeData 関数 678 InputFieldCurrentName 関数 679 InputFieldDeleteCurrent 関数 680 InputFieldGetData 関数 681 InputFieldInsert 関数 682 InputFieldLocate 関数 683 InputFieldSelected イ ベン ト 263 InsertCategory 関数 684 InsertClass 関数 686 InsertColumn 関数 687 InsertData 関数 688 InsertFile 関数 692 InsertItemFirst 関数 700 InsertItemLast 関数 703 PowerBuilder 索引 InsertItemSort 関数 705 InsertItem イ ベン ト 264 InsertItem 関数 693 InsertObject 関数 708 InsertPicture 関数 709 InsertSeries 関数 710 INSERT 文 166 Integer 関数 712 Integer デー タ 型 25 Intel 588 InternetData 関数 713 InternetRequest オブジ ェ ク ト 、 InternetData 関数 713 IntHigh 関数 714 IntLow 関数 715 Int 関数 711 InvokePBFunction 関数 715 Is_A (_Is_A) 関数 717 IsAlive 関数 718 IsAllArabic 関数 719 IsAllHebrew 関数 720 IsAnyArabic 関数 721 IsAnyHebrew 関数 721 IsArabicAndNumbers 関数 723 IsArabic 関数 722 IsCallerInRole 関数 723 IsDate 関数 725 IsHebrewAndNumbers 関数 727 IsHebrew 関数 726 IsImpersonating 関数 728 IsInTransaction 関数 729 IsNull 関数 730 IsNumber 関数 712, 732 IsPreview 関数 733 IsSecurityEnabled 関数 733 IsTime 関数 735 IsTransactionAborted 関数 736 IsValid 関数 Handle 関数 652 ア ク テ ィ ブなシー ト の取得 539 解説 737 概要 737 開いてい る シー ト の取得 597, 615 ItemActivate イ ベン ト 264 ItemChanging イ ベン ト 267 ItemCollapsed イ ベン ト 267 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 ItemCollapsing イ ベン ト 268 ItemExpanded イ ベン ト 270 ItemExpanding イ ベン ト 271 ItemPopulate イ ベン ト 272 J JaguarORB、 初期化 674 JavaScript キーワー ド 、 予約語 11 K KeyCode カ タ ロ グ デー タ 型 値 738 概要 737 KeyDown 関数 738 Key イ ベン ト 272 L LastPosW 関数 743 LastPos 関数 743 Layer カ タ ロ グ デー タ 型 365 LeftA 関数 744 LeftC 関数 745 LeftTrim 関数 745, 747 LeftW 関数 743, 745 Left 関数 743, 745 LenA 関数 748 Length 関数 749 Len 関数 747, 749 LibDirType カ タ ロ グ デー タ 型 752, 754 LibExportType カ タ ロ グ デー タ 型 756 LibraryCreate 関数 750 LibraryDelete 関数 751 LibraryDirectoryEx 関数 754 LibraryDirectory 関数 752 LibraryExport 関数 756 LibraryImport 関数 758 LineCount 関数 759 LineDown イ ベン ト 274 LineLeft イ ベン ト 275 LineLength 関数 761 1267 索引 LineList 関数 762 LineRight イ ベン ト 276 LineUp イ ベン ト 277 LinkTo 関数 763 LoadInk 関数 764 LoadPicture 関数 765 LogTen 関数 概要 768 逆関数 768 Log 関数 概要 767 逆関数 766 自然対数 766 LongLong デー タ 型 25 LongParm 値指定 769 イ ベン ト の発生 1224 イ ベン ト のポ ス ト 906 Long 型の下位 ワー ド 715 Long 型の上位 ワー ド 714 Long 関数 769, 771 Long デー タ 型 概要 25 下位 ワー ド を返す 715 上位 ワー ド を返す 714 変換 769, 771 Lookup 関数 773 LOOP 137 LOOP、 DO...LOOP 文内 137 LoseFocus イ ベン ト 278, 808 LowerBound 関数 779 Lower 関数 778 M mailAddress 関数 780 mailDeleteMessage 関数 782 mailHandle 関数 784 mailLogoff 関数 785 mailLogonOption カ タ ロ グ デー タ 型 787 mailLogon 関数 786 mailReadMessage 関数 788 mailReadOption カ タ ロ グ デー タ 型 789 mailRecipientDetails 関数 791 1268 mailRecipient 構造体 793 mailResolveRecipient 関数 792 mailReturnCode 関数 787 mailSaveMessage 関数 794 mailSend 関数 797 MAPI 784 Match 関数 798 Max 関数 802 MDI ク ラ イ ア ン ト (MDI_1) 用の関数 ClassName 392 Hide 654 Print 912 Resize 980 SetRedraw 1115 Show 1152 TypeOf 1233 MDI フ レーム ア ク テ ィ ブの取得 539 ウ ィ ン ド ウ の整列 365 開 く シー ト 830, 846, 849 ポ ッ プア ッ プ メ ニ ュ ーの表示 893 マ イ ク ロ ヘルプ テ キ ス ト の指定 1099 メ ニ ュ ーの変更 386 MDI フ レーム用の関数 ArrangeSheets 365 GetActiveSheet 539 GetFirstSheet 597 GetNextSheet 615 GetToolbar 643 GetToolbarPos 645, 1138 OpenSheet 846 OpenSheetWithParm 849 Print 912 SetMicroHelp 1099 SetToolbar 1136 MemberDelete 関数 803 MemberExists 関数 804 MemberRename 関数 805 MessageBox 関数 806, 930 Microsoft Windows RightToLeft バージ ョ ン 719, 720, 721, 722, 723, 726, 727, 986 Winhelp の呼出 し 1154 イ ベン ト と メ ッ セージ 907 印刷用の フ ォ ン ト の定義 924 PowerBuilder 索引 返 さ れた メ ッ セージ 714, 715 情報の取得 588 タ イ マー 1204 と DDE 623 ハン ド ルの取得 652 フ ァ イ ルの保存レ ス ポ ン ス ウ ィ ン ド ウ の表示 595 フ ァ イ ル名の取得 589 メ ッ セージ番号 1053 MidA 関数 811 MidC 関数 812 MidW 関数 809, 812 Mid 関数 809 Minute 関数 813 Min 関数 812 Modified イ ベン ト 280 ModifyData 関数 814 Mod 関数 813 Month 関数 816 MouseDown イ ベン ト 282 MouseMove イ ベン ト 284 MouseUp イ ベン ト 287 Moved イ ベン ト 290 Move 関数 817 MultiSelect プ ロ パテ ィ 項目の選択 1028, 1029, 1040 ハ イ ラ イ ト 表示 1130, 1178 N Narrow (_Narrow) 関数 820 NextActivity 関数 821 NEXT、 FOR...NEXT 文内 140 NOT 演算子 74 Notify イ ベン ト 291 NOT 演算子 74 Now 関数 822 NULL オブジ ェ ク ト への参照 851, 858, 860, 868, 870, 874, 876 NULL 値 概要 9 チ ェ ッ ク 730 テス ト 9 動的 SQL 182 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 変数の設定 1101 論理式内 74 O ObjectAtPointer 関数 823 ObjectToString 関数 826 OffsetPos 関数 827 Offsite カ タ ロ グ デー タ 型 346 OK ボ タ ン 806 OLE DWObject 用の関数 Activate 345 Copy 425 DoVerb 475 UpdateLinksDialog 1238 OLEObject 用の関数 ConnectNewToObject 414 ConnectToNewRemoteObject 416 ConnectToObject 418 ConnectToRemoteObject 420 DisconnectObject 472 GetAutomationNativePointer 542 ReleaseAutomationPointer 965 SetAutomationPointer 1064 SetAutomationTimeout 1065 OLEStorage 用の関数 Clear 394 Close 401 MemberDelete 803 MemberExists 804 MemberRename 805 Open 827 SaveAs 1009, 1011 OLEStream 用の関数 Close 402 Length 749 Open 827 Read 953 Seek 1024 Write 1247 OLE オー ト メ ーシ ョ ンの言語 1062, 1065 OLE カ ス タ ム コ ン ト ロ ール用の関数 GetData 563 GetNativePointer 614 ReleaseNativePointer 966 1269 索引 SetAutomationLocale 1062 SetData 1073 OLE コ ン ト ロ ール用の関数 Activate 345 Clear 394 Copy 425 Cut 437 DoVerb 475 GetData 563 GetNativePointer 614 InsertClass 686 InsertFile 692 InsertObject 708 LinkTo 763 Open 827 Paste 883 PasteLink 885 PasteSpecial 887 ReleaseNativePointer 966 Save 1002 SaveAs 1007, 1008 SelectObject 1042 SetAutomationLocale 1062 SetData 1073 UpdateLinksDialog 1238 OLE 式 と Any デー タ 型 30 OPEN Cursor 文 167 OpenChannel 関数 844 OpenSheetWithParm 849 OpenSheet 関数 846 OpenTabWithParm 関数 857 OpenTab 関数 853 OpenUserObjectWithParm 関数 OpenUserObject 関数 862 OpenWithParm 872 Open イ ベン ト 292, 984 Open 関数 827 OR 演算子 74 Other イ ベン ト 295 OutgoingCallList 関数 877 P PageCreated 関数 881 PageDown イ ベン ト 296 1270 867 PageLeft イ ベン ト 297 PageRight イ ベン ト 298 PageUp イ ベン ト 299 ParentWindow 関数 882 Parent 代名詞 13 PasteLink 関数 885 PasteSpecial 関数 887 Paste 関数 883 PBDOTNET シ ン ボル 19 PBL フ ァ イ ル 削除 751 作成 750 内容の リ ス ト 752, 754 pbm_dwngraphcreate イ ベン ト 1120 PBNATIVE シ ン ボル 19 PBWEBFORM シ ン ボル 19 PBWEBSERVICE シ ン ボル 19 PBWINFORM シ ン ボル 19 PDB フ ァ イ ル 832 PictureSelected イ ベン ト 300 PIF フ ァ イ ル 998 PipeEnd イ ベン ト 301 PipeMeter イ ベン ト 302 PipeStart イ ベン ト 303 PixelsToUnits 関数 889 Pi 関数 888 Play 関数 890 PointerX 関数 891 PointerY 関数 892 PopMenu 関数 893 PopulateError 関数 894 PosA 関数 897 Position 関数 898 PostEvent 関数 905 PostURL 関数 908 Post 関数 904 PosW 関数 898 Pos 関数 895 PowerBuilder、 外部関数のデー タ 型 65 PowerBuilder 単位系 889, 1237 PowerObjectParm 種類の決定 1235 と CloseWithReturn 関数 408 パ ラ メ ー タ を使っ てシー ト を開 く 850, 858, 860, 868, 870 PowerObject 関数 PowerBuilder 索引 ClassName 392 GetContextService 555 GetParent 618 PowerObject 基本 ク ラ ス 32, 83 PowerScript 文 126 PrintBitmap 関数 919 PrintCancel 関数 920 PrintClose 関数 921 PrintDataWindow 関数 922 PrintDefineFont 関数 923 PrintEx 関数 925 PrintFooter イ ベン ト 303 PrintGetPrinters 関数 927 PrintGetPrinter 関数 926 PrintHeader イ ベン ト 304 PrintLine 関数 928 PrintOpen 関数 概要 929 メ ッ セージ ボ ッ ク ス 808 PrintOval 関数 931 PrintPage 関数 932 PrintRect 関数 933 PrintRoundRect 関数 934 PrintScreen 関数 936 PrintSend 関数 937 PrintSetFont 関数 939 PrintSetPrinter 関数 940 PrintSetSpacing 関数 940 PrintSetupPrinter 関数 942 PrintSetup 関数 941 PrintText 関数 943 PrintWidth 関数 945 PrintX 関数 946 PrintY 関数 946 Print 関数 912 PRIVATEREAD ア ク セ ス修飾子 46 PRIVATEWRITE ア ク セ ス修飾子 47 ProfileClass オブジ ェ ク ト 、 RoutineList 関数 997 ProfileInt 関数 947 ProfileLine オブジ ェ ク ト 、 OutgoingCallList 関数 877 ProfileRoutine オブジ ェ ク ト IncomingCallList 関数 673 LineList 関数 762 OutgoingCallList 関数 877 ProfileString 関数 949 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 Profiling 用の関数 BuildModel 376 ClassList 390 DestroyModel 465 RoutineList 997 SetTraceFileName 1143 SystemRoutine 1196 ProgressIndex イ ベン ト 304 PropertyChanged イ ベン ト 306 PropertyRequestEdit イ ベン ト 307 PROTECTEDREAD ア ク セ ス修飾子 46 PROTECTEDWRITE ア ク セ ス修飾子 47 R Randomize 関数 952 Rand 関数 951 RButtonDown イ ベン ト 308 RButtonUp イ ベン ト 310 Read 関数 953 Real 関数 955 Real デー タ 型 25 ReceivingUploadAck イ ベン ト 305 RecognitionResult イ ベン ト 311 RecognizeText 関数 957 RegistryDelete 関数 957 RegistryGet 関数 958 RegistryKeys 関数 960 RegistrySet 関数 961 Registryvalues 関数 963 RelativeDate 関数 964 RelativeTime 関数 964 ReleaseAutomationNativePointer 関数 965 ReleaseNativePointer 関数 966 RemoteExec イ ベン ト 311, 550, 1173 RemoteHotLinkStart イ ベン ト 312, 1173 RemoteHotLinkStop イ ベン ト 312, 1173 RemoteRequest イ ベン ト 313, 1074, 1173 RemoteSend イ ベン ト 314, 567, 1173 RemoveDirectory 関数 967 Rename イ ベン ト 314 Repair 関数 967 ReplaceA 関数 970 ReplaceText 関数 971 ReplaceW 関数 973 1271 索引 Replace 関数 969 ResetArgElements 関数 976 ResetDataColors 関数 977 ResetInk 関数 978 ResetPicture 関数 979 Reset 関数 973 Resize イ ベン ト 315 Resize 関数 980 ResolveInitialReferences 関数 981 RespondRemote 関数 983 Restart 関数 984 ResumeTransaction 関数 985 RETURN 文 146 Reverse 関数 986 RevertToSelf 関数 987 RGB 関数 988 RightA 991 RightClicked イ ベン ト 316 RightC 関数 991 RightDoubleClicked イ ベン ト 318 RightToLeft オペレーテ ィ ン グ シ ス テ ム 986 RightToLeft ソ フ ト ウ ェ ア 719, 720, 721, 722, 723, 726, 727 RightTrim 関数 992 RightW 関数 991 Right 関数 990 RollbackOnly 関数 993 RollbackTransaction 関数 994 ROLLBACK 文 168 Round 関数 996 RoutineList 関数 997 RPC、 リ モー ト プ ロ シージ ャ コ ールを参照 Run 関数 998 S Save 関数 ( イ ン ク ピ ク チ ャ コ ン ト ロ ール) SaveDocument 関数 1012 SaveInk 関数 1014 SaveObject イ ベン ト 321 Save イ ベン ト 320 Save 関数 1002 ScrollHorizontal イ ベン ト 808 ScrollNextPage 関数 1017 ScrollNextRow 関数 1018 1272 1000 ScrollPriorPage 関数 1019 ScrollPriorRow 関数 1020 ScrollToRow 関数 1022 ScrollVertical イ ベン ト 808 Scroll 関数 1016 SecondsAfter 関数 1023 Second 関数 1023 SeekType カ タ ロ グ デー タ 型 1024 Seek 関数 1024, 1026 SELECTBLOB 文 170 SelectedColumn 関数 1027 SelectedIndex 関数 1028 SelectedItem 関数 1029 SelectedLength 関数 1030 SelectedLine 関数 1031 SelectedPage 関数 1033 SelectedStart 関数 1034 SelectedText 関数 1035 Selected イ ベン ト 322, 1099 SelectionChanged イ ベン ト 323 SelectionChanging イ ベン ト 326 SelectionRange 関数 1037 SelectItem 関数 1038 SelectObject 関数 1042 SelectTextAll 関数 1048 SelectTextLine 関数 1049 SelectTextWord 関数 1050 SelectText 関数 概要 1044 ク リ ッ プボー ド への コ ピー 427 SELECT 文 169 SendMessage 関数 1053 Send 関数 1052 SeriesCount 関数 1055 SeriesName 関数 1056 SetAbort 関数 1057 SetAlignment 関数 1060 SetArgElement 関数 1061 SetAutomationPointer 関数 1064 SetAutomationTimeout 関数 1065 SetBoldDate 関数 1066 SetByte 関数 1068 SetComplete 関数 1070 SetDataDDE 関数 1074 SetDataPieExplode 関数 1076 SetDataStyle 関数 1077 PowerBuilder 索引 SetData 関数 1073 SetDateLimits 関数 1083 SetDropHighlight 関数 1084 SetDynamicParm 関数 1085 SetFirstVisible 関数 1086 SetFocus 関数 1087 SetGlobalProperty 関数 1088 SetItem 関数 1089 SetLevelPictures 関数 1093 SetLibraryList 関数 1095 SetMask 関数 1096 SetMicroHelp 関数 1099 SetNewMobiLinkPassword 関数 1100 SetNull 関数 1101 SetOverlayPicture 関数 1101 SetParm 関数 1104 SetPicture 関数 1106 SetPointer 関数 1107 SetPosition 関数 1108 SetProfileString 関数 1111 SetRange 関数 1112 SetRecordSet 関数 1113 SetRedraw 関数 1115 SetRemote 関数 1116 SetResultSet 関数 1118 SetSelectedDate 関数 1127 SetSelectedRange 関数 1128 SetSeriesStyle 関数 1119 SetState 関数 1130 SetSyncRegistryProperties 関数 1131 SetTimeout 関数 1134 SetToday 関数 1135 SetToolbar 関数 1136 SetTop 関数 1142 SetTraceFileName 関数 1143 SetTransPool 関数 1144 SetValue 関数 1144 SharedObjectDirectory 関数 1146 SharedObjectGet 関数 1146 SharedObjectRegister 関数 1150 SharedObjectUnregister 関数 1151 ShowHeadFoot 関数 1152 ShowHelp 関数 1154 ShowPopupHelp 関数 1155 Show イ ベン ト 328 Show 関数 1151 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 SignalError 関数 1157 Sign 関数 1156 Sin 関数 1158 Sleep 関数 1159 SNC、 プ ロ シージ ャ の宣言 178, 183, 188 SortAll 関数 1161 Sort イ ベン ト 329 Sort 関数 1159 Space 関数 1162 SQL Native Client、 プ ロ シージ ャ の宣言 178 SQLCode プ ロ パテ ィ 153 SQLDBCode プ ロ パテ ィ 154 SQLErrText プ ロ パテ ィ 154 SQL の イ ン ジ ケー タ 変数 152 SQL のホ ス ト 変数 152 SQL 文 CLOSE Cursor 155 CLOSE Procedure 156 COMMIT 157 CONNECT 158 DECLARE Procedure 160 DISCONNECT 164 EXECUTE 164, 1085 FETCH 165 INSERT 166 OPEN 1085 OPEN Cursor 167 ROLLBACK 168 SELECT 169 SELECTBLOB 170 UPDATE 172 UPDATE Where Current of Cursor 174 UPDATEBLOB 173 エ ラ ー処理 153 概要 152 継続 17 パ イ プ ラ イ ン実行 1165 貼 り 付け 154 Sqrt 関数 1163 StartHotLink 関数 1171 StartServerDDE 関数 1173 Start イ ベン ト 332 Start 関数 概要 1163 サーバ アプ リ ケーシ ョ ン 418, 420 パ イ プ ラ イ ンのキ ャ ン セル 381 1273 索引 State 関数 1174 stgShareMode カ タ ロ グ デー タ 型 836, 839 StopHotLink 関数 1178 StopServerDDE 関数 1179 Stop 関数 1176 StringParm プ ロ パテ ィ 850, 858, 860, 868, 870 StringToObject 関数 1186 String デー タ 型 26 Stroke イ ベン ト 332 Super 代名詞 15 SuspendTransaction 関数 1189 Synchronize 関数 1190, 1191 SyntaxFromSQL 関数 1192 SystemError イ ベン ト 334 SystemKey イ ベン ト 335 SYSTEMREAD 修飾子 47 SystemRoutine 関数 1196 SYSTEMWRITE 修飾子 47 T Tag プ ロ パテ ィ GetFocus 関数 599 マ イ ク ロ ヘルプ テ キ ス ト の格納 Tan 関数 1199 TextLine 関数 1200 Text 関数 1199 Text プ ロ パテ ィ 599 This 代名詞 14 Timer イ ベン ト 336 Timer 関数 1204 Time 関数 1201 Time デー タ 型 27 ToAnsi 関数 1205 Today 関数 1206 ToolbarMoved イ ベン ト 338 Top 関数 1207 TotalColumns 関数 1208 TotalItems 関数 1209 TotalSelected 関数 1209 ToUnicode 関数 1210 TraceBegin 関数 1211 TraceClose 関数 1213 TraceDisableActivity 関数 1214 TraceEnableActivity 関数 1216 1274 1099 TraceEnd 関数 1218 TraceError 関数 1219 TraceFile 用のオブジ ェ ク ト Close 関数 402 NextActivity 関数 821 Reset 関数 975 TraceOpen 関数 1220 TraceTreeGarbageCollect オブジ ェ ク ト 、 GetChildrenList 関数 547 TraceTreeObject オブジ ェ ク ト 、 GetChildrenList 関 数 547 TraceTreeRoutine オブジ ェ ク ト 、 GetChildrenList 関 数 547 TraceTree オブジ ェ ク ト BuildModel 関数 376 DestroyModel 関数 465 EntryList 関数 484 SetTraceFileName 関数 1143 TraceUser 関数 1222 Trace フ ァ イ ル関数、 Open 828 TrigEvent カ タ ロ グ デー タ 型 905 TriggerEvent 関数 1223 TriggerPBEvent 関数 1225 Trim 関数 1227, 1228 Truncate 関数 1229 TrustVerify 関数 1230 TypeOf 関数 1233 U Uncheck 関数 1235 Undo、 テ ス ト 382 Undo 関数 1236 Unicode、 文字列の変換 535, 1205, 1210 UnitsToPixels 関数 1237 UNTIL、 DO...LOOP 文内 137 UPDATE Where Current of Cursor 文 174 UPDATEBLOB 文 173 UPDATE 文 172 UploadAck イ ベン ト 338 UpperBound 関数 1240 Upper 関数 1239 UserString イ ベン ト 339 PowerBuilder 索引 V ValueChanged イ ベン ト 340 ViewChange イ ベン ト 341 Visible プ ロ パテ ィ SetRedraw 関数 1115 設定 1151 ポ ッ プア ッ プ メ ニ ュ ーの表示 デー タ ポ イ ン ト 561, 576, 815 文字列か ら の挿入 672 あ 893 W WaitForUploadAck イ ベン ト 342 WarningMessage イ ベン ト 342 Which 関数 1242 WHILE、 DO...LOOP 文内 137 WordCap 関数 1243 WordParm プ ロ パテ ィ TriggerEvent 関数 1224 イ ベン ト のポ ス ト 906 WorkSpaceHeight 関数 1244 WorkSpaceWidth 関数 1245 WorkSpaceX 関数 1246 WorkSpaceY 関数 1247 Write 1247 Write 関数 1247 X XMLParseFile 関数 1249 XMLParseString 関数 1252 xValue カ タ ロ グ デー タ 型 561, 576 x値 デー タ の イ ン ポー ト 663, 666, 668, 670 デー タ ポ イ ン ト 561, 576, 815 文字列か ら の挿入 672 Y Year 関数 1255 Yield 関数 1256 yValue カ タ ロ グ デー タ 型 561, 576 y値 デー タ の イ ン ポー ト 663, 666, 668, 670 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 アイ コン ウ ィ ン ド ウ の整列 365 メ ッ セージ ボ ッ ク ス 806 リ ス ト ビ ュ ーでの整列 364 ア ク セ ス権 PRIVATE 関数 62 変数 と 定数 46 ア ク セ ス権 PROTECTED 関数 62 変数 と 定数 46 ア ク セ ス権 PUBLIC 関数 62 変数 と 定数 46 ア ク セ ス レベル 関数 62 グループ ラ ベル 49 変数 45 ア ク テ ィ ブ ウ ィ ン ド ウ 893 ア ク テ ィ ブ シー ト 847 値 NULL か ど う かのチ ェ ッ ク 730 数値の検出 732 デー タ ポ イ ン ト 575 リ ス ト か ら の削除 456 リ ス ト への挿入 693 リ ス ト への追加 352 値、 引数渡 し 110 圧縮モー ド 937 ア ド レ ス、 メ ール 780, 791, 792 ア ニ メ ーシ ョ ン 開始 890 停止 1177 アプ リ ケーシ ョ ン DDE チ ャ ネルを閉 じ る 404 オブジ ェ ク ト の リ ス ト 752 経過時間 430 構文か ら オブジ ェ ク ト を再構築 758 1275 索引 構文 と し てオブジ ェ ク ト を エ ク ス ポー ト 756 サーバ 1173, 1179 再起動 984 実行 998 終了 143 接続 414, 416, 418, 420 中断 1257 ハン ド ル 540, 652 引数の取得 411 メ ッ セージのポ ス ト 機能 904 アプ リ ケーシ ョ ン オブジ ェ ク ト 、 SetTransPool 関数 1144 アプ リ ケーシ ョ ン名 1172, 1173, 1179 ア ラ ビ ア語用の関数 IsAllArabic 719 IsAnyArabic 721 IsArabic 722 IsArabicAndNumbers 723 ア ンパサン ド 記号 (&) 16 い 位置 コ ン ト ロ ールの位置の設定 1108 挿入ポ イ ン ト の 898 変更 817 一時フ ァ イ ル 788 一番上 オブジ ェ ク ト の移動 1110, 1151 距離の判別 892 リ ス ト ボ ッ ク ス項目の移動 1142 イ ベン ト 印刷ジ ョ ブ 922 上書 き 109 概要 93, 191 拡張 109 カ ス ケー ド 呼び出 し 114, 117 関数 と の類似点 95 キ ュ ーへの追加 905 検索 97 シ ス テ ム 94, 191 静的お よ び動的な 101 1276 先祖 119 定義 さ れた 94 ト リ ガ 98, 192, 1198, 1223 引数 110, 192 非表示オブジ ェ ク ト 654 ポ ス ト 機能 98, 115, 1197 戻 り 値 114, 192 ユーザ定義 191, 193 呼び出 し 時のエ ラ ー 104 リ タ ーン コ ー ド 193 イ ベン ト の ID 192 色 赤、 緑、 青 988 サポー ト さ れてい る 588 デー タ 系列 629, 1119 デー タ ポ イ ン ト 570, 977, 1077 と エデ ィ ッ ト マ ス ク 1097 標準色のテーブル 989 イ ン ク エデ ィ ッ ト 用の関数 RecognizeText 957 イ ン ク ピ ク チ ャ 用の関数 LoadInk 764 LoadPicture 765 ResetInk 978 ResetPicture 979 Save 1000 SaveInk 1014 印刷カー ソ ル 印刷ジ ョ ブ 915 座標の取得 946 印刷上の表記規則 xxv 印刷ジ ョ ブ 929 印刷用の関数 Print 912 PrintBitmap 919 PrintCancel 920 PrintClose 921 PrintDataWindow 922 PrintDefineFont 923 PrintOpen 929 PrintOval 931 PrintPage 932 PrintRect 933 PrintRoundRect 934 PowerBuilder 索引 PrintScreen 936 PrintSend 937 PrintSetFont 939 PrintSetSpacing 940 PrintSetup 941 PrintText 943 PrintWidth 945 PrintX 946 PrintY 946 インスタンス 定義 さ れた 82 有効性のチ ェ ッ ク 737 ユーザ オブジ ェ ク ト 853, 857, 862, 867 イ ン ス タ ン ス の自動生成設定 88 イ ン ス タ ン ス変数 概要 36 初期化 45 ド ッ ト 表記 38 の ク ラ ス 392 イ ンデ ッ ク ス 一番上の取得 1207 ハ イ ラ イ ト 表示 1130, 1174 リ ス ト ボ ッ ク ス項目 1028, 1039 イ ン ポー ト 、 デー タ 666, 670 引用符 規則 27 指定 8 テ ィ ルダ を使っ た 26 ネ ス ト (入れ子) 26 引用符付 き 文字列の継続 17 う ウィンドウ DDE 対話のハン ド ル 1173 ア ク テ ィ ブの取得 539 位置設定 1108 カ ス タ ム フ レーム 1246, 1247 整列 365, 846 デー タ 型 827 閉 じ る 399 ハン ド ルの取得 652 開 く 827, 872 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 メ ッ セージのポ ス ト 機能 904 メ ニ ュ ーの変更 386 ユーザ オブジ ェ ク ト の追加 853, 862, 867 ワ ー ク スペース の高 さ の取得 1244 ワ ー ク スペース の幅の取得 1245 ウ ィ ン ド ウ ActiveX コ ン ト ロ ール GetArgElement 関数 541 GetLastReturn 関数 608 InvokePBFunction 関数 715 ResetArgElements 関数 976 SetArgElement 関数 1061 TriggerPBEvent 関数 1225 ウ ィ ン ド ウ オブジ ェ ク ト 構文か ら 再構築 758 構文 と し てエ ク ス ポー ト 756 ユーザ オブジ ェ ク ト を閉 じ る 406 リ ス ト 752, 754 ウ ィ ン ド ウ ペ イ ン タ 863, 865 ウ ィ ン ド ウ用の関数 ArrangeSheets 365 ChangeMenu 386 ClassName 392 CloseUserObject 406 Draw 479 GetActiveSheet 539 GetFirstSheet 597 GetNextSheet 615 Hide 654 Move 817 Open 827 OpenSheet 846 OpenSheetWithParm 849 OpenTab 853 OpenUserObject 862 OpenWithParm 872 ParentWindow 882 PointerX 891 PointerY 892 PostEvent 905 Print 912 Resize 980 SetFocus 1087 SetMicroHelp 1099 SetPosition 1108 SetRedraw 1115 1277 索引 Show 1151 TriggerEvent 1223 TypeOf 1233 WorkSpaceHeight 1244 WorkSpaceWidth 1245 WorkSpaceX 1246 WorkSpaceY 1247 上重ね表示 さ れ る ウ ィ ン ド ウ 850 ウ ォーム リ ン ク 485, 625, 844, 1117 埋め込み SQL 151 え エ ス ケープ シーケ ン ス 937 エデ ィ ッ ト コ ン ト ロ ール か ら のテ キ ス ト の削除 394 行カ ウ ン ト 759 ク リ ッ プボー ド の内容の挿入 397 選択 さ れた テ キ ス ト 1030, 1034 挿入ポ イ ン ト の決定 898 テ キ ス ト の置換 971 エデ ィ ッ ト マ ス ク 用の関数 CanUndo 382 Clear 394 Copy 425 Cut 437 GetData 562 LineCount 759 LineLength 761 Paste 883 Position 898 ReplaceText 971 Scroll 1016 SelectedLength 1030 SelectedLine 1031 SelectedStart 1034 SelectedText 1035 SelectText 1044 SetMask 1096 TextLine 1200 Undo 1236 エラー 実行中 73 パ イ プ ラ イ ンの表示 1165 1278 エ ラ ー オブジ ェ ク ト 、 作成 133 エ ラ ー処理 SQL 文の後 153 関数ま たは イ ベン ト の呼び出 し 104, 107 エ ラ ー デー タ ウ ィ ン ド ウ 967 エ ラ ーのチ ェ ッ ク カ ス ケー ド 呼び出 し 115 ス ク リ プ ト の コ ンパ イ ル 103 円グ ラ フ 568, 1076 演算子 概要 71 関係 74 後置式を使っ た代入 126, 128 算術 72 デー タ 型への影響 78 優先順位 76 連結 75 論理 74 演算子の優先順位 76 エンベ ロ ープ、 メ ール メ ッ セージ ヘ ッ ダ 788 お オーデ ィ オ (ビープ) 370 オー ト メ ーシ ョ ン 1062, 1064, 1065 オーバーレ イ 634, 1125 大文字 1239 大文字での表示 大文字 1239 系列名 360 項目名 347, 684 小文字 778 大文字 と 小文字の区別、 比較 74 オブジ ェ ク ト OLE の保存 1002 位置の変更 1110 一般的な参照 12 移動 817 イ ベン ト の発生 1223 イ ベン ト のポ ス ト 905 イ ン ス タ ン ス の作成 85, 132 イ ン ス タ ン ス の破棄 136 親オブジ ェ ク ト 618 PowerBuilder 索引 概要 82 ガベージ コ レ ク シ ョ ン 87, 136 ク ラ ス の決定 392 再構築 758 再描画 1115 参照ハン ド ル 82 種類の決定 1233 先祖 86 選択 1042 挿入 686, 692, 708 代入 89 ハン ド ルの取得 652 引数 と し て渡す 111 非表示 654, 817 フ ォーカ ス の設定 1088 ポ イ ン タ 位置 823 ラ イ ブ ラ リ か ら の削除 751 リ ン ク 763 ロ ー ド 363, 1095 オブジ ェ ク ト 、 共有 SharedObjectDirectory 関数 1146 SharedObjectGet 関数 1146 SharedObjectRegister 関数 1150 SharedObjectUnregister 関数 1151 オブジ ェ ク ト 、 接続 ConnectToServer 関数 423 CreateInstance 関数 431, 433 DisconnectServer 関数 473 オブジ ェ ク ト の挿入 ダ イ ア ロ グボ ッ ク ス 708 オペレーテ ィ ン グ シ ス テ ム RightToLeft バージ ョ ン 719, 720, 721, 722, 723, 726, 727, 986 情報 588 親ウ ィ ン ド ウ 取得 882 相対す る 位置に変更 817 開いてい る ウ ィ ン ド ウ 829, 830, 872 か カー ソ ル ポ ッ プア ッ プ メ ニ ュ ーの表示 印刷 915 カ ス タ ム 1107 カー ソ ル、 デー タ ベース オープン 167 ク ロ ーズ 155 宣言 154, 159 改行、 指定 8 階層 子の ソ ー ト 1159 シ ス テ ム 31, 392 ソ ー ト 1161 ツ リ ービ ュ ーの項目 410, 490 リ ス ト 内の子項目 700, 703, 705 外部関数 60 外部関数の DLL 63 カ ウ ン ト 、 系列のデー タ ポ イ ン ト 439 角度 逆正弦の計算 368 逆正接の計算 369 逆余弦の計算 344 正弦の計算 1158 正接の計算 1199 余弦の計算 429 ラ ジ ア ン (弧度) か ら / への変換 888 影 デー タ 系列 630, 1119 デー タ ポ イ ン ト 570, 1078 加算演算子 72 カ ス ケー ド ウ ィ ン ド ウ、 シー ト の整列 365 カ ス タ ム ク ラ ス ユーザ オブジ ェ ク ト 88 画像 ク リ ッ プボー ド か ら の検索 397 ピ ク チ ャ コ ン ト ロ ールへの配置 1106 形 印刷 931, 933, 935 マ ウ ス ポ イ ン タ 1107 カ タ ロ グ デー タ 型 33 ガベージ コ レ ク シ ョ ン 87, 134, 136 可変長配列、 メ モ リ の割 り 当て 55, 1240 画面 印刷 936 相対する 位置に変更 817 表示 588 893 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 1279 索引 ワー ク スペース ま での距離 1246, 1247 カラム 挿入ポ イ ン ト の決定 898 テ キ ス ト の貼 り 付け 884 リ ス ト 687 間隔 1204 環境 TEMP 変数 789 情報の取得 588 関係演算子 74 関数 DLL 63 イ ベン ト と の類似点 95 上書 き 108 大文字 と 小文字の区別 116 外部 60 外部、 定義 さ れた 95 外部、 デー タ ベース ハン ド ルの レ ポー ト 452 外部、 メ ール 784 外部関数のア ク セ ス レベル 62 外部関数のデー タ 型 65 概要 93 カ ス ケー ド 呼び出 し 114, 117 型の変換 108 グ ロ ーバル関数 と シ ス テ ム関数の呼び出 し 117 検索 96 シ ス テ ム、 定義 さ れた 94 静的お よ び動的な 101 先祖 119 多重定義 108 ト リ ガ 98 引数 110 引数 と し ての Char 80 ポ ス ト 機能 98, 115 戻 り 値 113 ユーザ定義 94 呼び出 し 時のエ ラ ー 104 関数オブジ ェ ク ト 構文か ら 再構築 758 構文 と し てエ ク ス ポー ト 756 リ ス ト 752 関数 と イ ベン ト の多相性 (ポ リ モ フ ィ ズ ム) 101 関数の上書 き 108 1280 関数の多重定義 108 関数ま たは イ ベン ト のポ ス ト 感嘆符ア イ コ ン 806 98 き キーボー ド キーを押 し たかの確認 737 テ キ ス ト の選択 427 キーワー ド 11 キーワー ド address 1224 疑問符 テ キ ス ト パ タ ーン 800 動的 SQL 180, 181, 184 メ ッ セージ ボ ッ ク ス内のア イ コ ン 806 逆正弦 368 逆正接 369 逆余弦 344 キ ャ リ ッ ジ リ タ ーン INI フ ァ イ ル内 950 指定 8 キ ャ ン セル 印刷 920 許可 1256 パ イ プ ラ イ ン オブジ ェ ク ト 380 キ ャ ン セル ボ タ ン 806 行 印刷 943 数 759 グ ラ フ、 デー タ 系列の色 630, 1119 グ ラ フ、 デー タ 系列の ス タ イ ル 631, 632, 1121 グ ラ フ、 デー タ ポ イ ン ト の色 1078 グ ラ フ、 デー タ ポ イ ン ト の ス タ イ ル 572, 1079 ス ク ロ ール 1016, 1017, 1018, 1020, 1022 選択 さ れたテ キ ス ト 1031 挿入ポ イ ン ト の決定 898 デー タ ポ イ ン ト の色 570 テ キ ス ト 1200 長 さ の決定 761 パ イ プ ラ イ ン デー タ の修正 967 幅 572 リ ッ チテ キ ス ト の行間 636 PowerBuilder 索引 行、 デー タ ベース カー ソ ルが置かれた行の更新 174 更新 172 削除 161, 163 挿入 166 フ ェ ッ チ 165 行間 設定 940 テ キ ス ト 印刷時 915 共有オブジ ェ ク ト SharedObjectDirectory 関数 1146 SharedObjectGet 関数 1146 SharedObjectRegister 関数 1150 SharedObjectUnregister 関数 1151 概要 1148 共有変数 概要 36 初期化 44 切 り 取 り 、 ク リ ッ プボー ド へ 437 く 区域 779, 1240 区域、 デー タ ウ ィ ン ド ウ、 オブジ ェ ク ト の移動 1110 空白 18 クラス OLE 686 オブジ ェ ク ト と の対照 82 オブジ ェ ク ト の 392 ク ラ ス階層 32 ク ラ ス ユーザ オブジ ェ ク ト 84 グラフ オーバーレ イ 634 項目 350 デー タ 系列 360 グ ラ フ ィ ッ ク 、 印刷 919 グ ラ フ用の関数 AddCategory 347 AddData 349, 372 AddSeries 359 CategoryCount 383 CategoryName 384 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 Clipboard 398 DataCount 439 DeleteCategory 454 DeleteData 455 DeleteSeries 462 FindCategory 519 FindSeries 532 GetData 560 GetDataPieExplode 568 GetDataStyle 569 GetSeriesStyle 629 ImportClipboard 663 ImportFile 666 ImportString 670 InsertCategory 684 InsertData 688 InsertSeries 710 ModifyData 814 Reset 974 SaveAs 1004 SeriesCount 1055 SeriesName 1056 SetDataPieExplode 1076 SetDataStyle 1077 SetSeriesStyle 1119 グ リ ッ ド 提示様式 1192 ク リ ッ プボー ド 切 り 取 り 437 コ ピー 425 置換テ キ ス ト と し ての コ ン テ ン ツ 972 デー タ の イ ン ポー ト 663 内容の検索 と 置換 396 貼 り 付け 883 貼 り 付け と リ ン ク 885 グループ提示様式 1192 グ ロ ーバル関数 定義 さ れた 94 呼び出 し 117 グ ロ ーバル ス コ ープ記号 37 グ ロ ーバル変数 概要 36 ス コ ープ記号 37 ク ロ ス タ ブ、 ソ ース コ ー ド か ら の作成 1192 1281 索引 け 継承 86 PowerBuilder オブジ ェ ク ト 32 ダブル コ ロ ン 128 バ ッ ク ク ォー ト 128 継続行文字 16 現行 行 と ス ク ロ ール 1018, 1020 シー ト 847 検索、 リ ッ チテ キ ス ト 517, 531 減算演算子 算術演算子の一覧 72 スペース で囲まれた 18, 72 限度、 数値 385 こ 構造体 mailRecipient 793 値の渡 し 874, 876 外部関数への渡 し 66 概要 81 自動生成 さ れたユーザ オブジ ェ ク ト 代入 89 引数 と し て渡す 112 戻 り 値の 408 構造体オブジ ェ ク ト 構文か ら 再構築 758 構文 と し てエ ク ス ポー ト 756 リ ス ト 752 後退、 指定 8 構文 オブジ ェ ク ト を エ ク ス ポー ト 756 オブジ ェ ク ト を再構築 758 項目 一番上 1142, 1207 イ ンデ ッ ク ス番号 1028 選択 1038 選択 さ れた項目数の取得 1209 総数の取得 1209 テ キ ス ト 1029, 1199 ハ イ ラ イ ト 表示 1130, 1174 1282 88 リ ス ト か ら の削除 456, 973 リ ス ト への追加 352, 693 リ ン ク 763 項目、 グ ラ フ InsertCategory 関数 348 カ ウ ン ト 383 ク リ ッ ク 823 系列に追加 348 削除 454, 974 識別 383, 384 新規 347 挿入 684 デー タ 値を系列に追加 348, 350 デー タ の イ ン ポー ト 663, 666, 670 コー ド オブジ ェ ク ト 756 再利用 906 デー タ ウ ィ ン ド ウ の生成 1192 コ ール ド リ ン ク 485, 624, 845, 1116 個人の メ ッ セージ 783 コ ピー ク リ ッ プボー ド か ら の イ ン ポー ト 663 ク リ ッ プボー ド へ 425 コ マン ド DDE アプ リ ケーシ ョ ンか ら の受け取 り 983 DDE ク ラ イ ア ン ト か ら の取得 550 コ マ ン ド ラ イ ン、 引数の取得 411 コメント 使い方 4 ラ イ ブ ラ リ 750 小文字 778 コ ン ト ロ ール 移動 817 サ イ ズ変更 980 再描画 1115 参照 409 種類の決定 1233 中断 1256 ド ラ ッ グ 476 ハン ド ルの取得 652 非表示 654, 817 フ ォーカ ス 599, 1087 コ ン ト ロ ール構造体 PowerBuilder 索引 CHOOSE CASE 129 DO...LOOP 137 FOR...NEXT 140 IF...THEN 144 コ ンパ イ ル時のデー タ ベースへのサ イ ン オン を 回避 155 コ ン ピ ュータ CPU 時間の レ ポー ト 430 ビープ音 370 CloseWithReturn 関数 409 パ ラ メ ー タ 渡 し 851, 858, 860, 868, 870, 874, 876 引数渡 し 110 散布図グ ラ フ 系列への値の追加 351 デー タ の イ ン ポー ト 663, 666, 668, 670 デー タ ポ イ ン ト 値の取得 561 デー タ ポ イ ン ト 値の変更 815 文字列か ら のデー タ の挿入 672 さ サーバ アプ リ ケーシ ョ ン DDE ク ラ イ ア ン ト へ送 る 1074 DDE サポー ト 845 DDE チ ャ ネルを閉 じ る 406 ア ク テ ィ ブ化 346, 1042 接続 414, 416, 418, 419, 420 停止 1179 デー タ の供給 623 デー タ の送信 1116 貼 り 付け と リ ン ク 885 再試行ボ タ ン 806 最小値 2 つの数 812 限度以上 385 サイズ Blob ま たは文字列 747, 749 画面 588 変更 980 サ ウ ン ド (ビープ) 370 座標 印刷オブジ ェ ク ト 919, 931, 933, 934 印刷カー ソ ル 946 リ ス ト ビ ュ ーの項目 617 サブ ス ト レージ、 OLE 削除 803 チ ェ ッ ク 804 名前の変更 805 保存 1007 サマ リ ー、 オブジ ェ ク ト の移動 1110 算術演算子 72 参照 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 し シー ト ア ク テ ィ ブの取得 539 親の取得 882 最初のシー ト を開 く 597 整列 365 ツールバー 643, 645, 1136, 1138 次の開いてい る シー ト を取得する 開 く 830, 846, 849 式 Any デー タ 型 29 NULL か ど う かのチ ェ ッ ク 730 演算子 と デー タ 型 78 宣言 44 デー タ ウ ィ ン ド ウ と Any デー タ 型 デー タ 型 77 デー タ 型の変換 77 リ テ ラ ル 78 式内での優先順位 76 識別名、 規則 5 軸、 グ ラ フ 項目 347, 383, 454, 684 デー タ の挿入 689 次元 779 時刻 CPU 430 DateTime デー タ 型 446 現在 822 相対 964 デー タ 型への変換 1201 615 31 1283 索引 動的に取得 583, 587 秒 1023 分 813 文字列のチ ェ ッ ク 735 システム イ ベン ト 191, 904 イ ベン ト 、 定義 さ れた 94 オブジ ェ ク ト ク ラ ス 83 オブジ ェ ク ト デー タ 型 31 オブジ ェ ク ト の階層 32 関数 117 時刻 822 日付 1206 レ ジ ス ト リ 957, 958, 960, 961, 963 シ ス テ ム と 環境用の関数 Clipboard 396 CommandParm 411 DebugBreak 452 FindClassDefinition 520 FindFunctionDefinition 521 FindTypeDefinition 533 GarbageCollect 536 GarbageCollectGetTimeLimit 537 GarbageCollectSetTimeLimit 537 GetApplication 540 GetEnvironment 588 Handle 652 PopulateError 894 Post 904 ProfileInt 947 ProfileString 949 Restart 984 Run 998 Send 1052 SetProfileString 1111 ShowHelp 1154 SignalError 1157 Yield 1256 子孫 イ ベン ト か ら の戻 り 値 119 ク ラ ス の決定 392 開いてい る ウ ィ ン ド ウ 832 ユーザ オブジ ェ ク ト を開 く 854, 855, 864, 866 実行エ ラ ー 103 1284 実行フ ァ イ ル アプ リ ケーシ ョ ンのハン ド ルを返す 652 実行 998 週、 曜日 449, 450 終端文字列 375 受信者、 メ ール 791 受信 ト レ イ への メ ッ セージのダ ウ ン ロ ー ド 787 への メ ッ セージの保存 794 メ ール メ ッ セージの読み込み 788 メ ッ セージ ID 検索 782, 783 メ ッ セージ削除 782 状況依存ヘルプ 1154 上限以下の最大値 711 条件付 き コ ンパ イ ル 19 詳細区域、 オブジ ェ ク ト の移動 1110 乗算演算子 72, 73 状態 ハ イ ラ イ ト 表示の設定 1130 リ ス ト ボ ッ ク ス項目 1174 剰余 813 除算 813 除算演算子 72, 73 書式、 文字列への適用 1180 シ ン グル ラ イ ン エデ ィ ッ ト 用の関数 CanUndo 382 Clear 394 Copy 425 Cut 437 Move 817 Paste 883 Position 898 ReplaceText 971 SelectedLength 1030 SelectedStart 1034 SelectedText 1035 SelectText 1044 Undo 1236 シ ン ボルの種類、 グ ラ フ デー タ 系列 1123 デー タ ポ イ ン ト 572, 1081 PowerBuilder 索引 す 水平ス ク ロ ール、 リ ス ト への項目の追加 数値 Char 型に変換 387, 388, 443, 453 pi を掛け る 888 行、 カ ウ ン ト 759 切 り 捨て 1229 項目 384 最大値の決定 385 四捨五入 996 剰余を戻す 813 対数 766, 768 動的に取得 584, 585 比較 802, 812 符号の判別 1156 文字列のチ ェ ッ ク 732 曜日 450 ラ ン ダ ム 951, 952 数値デー タ 型の優先順位 77 数値用の関数 Abs 344 ACos 344 ASin 368 ATan 369 Ceiling 385 Cos 429 Exp 489 Fact 491 Int 711 Log 766 Max 802 Min 812 Mod 813 Pi 888 Rand 951 Randomize 952 Round 996 Sign 1156 Sin 1158 Sqrt 1163 Tan 1199 Truncate 1229 スク リプト イ ベン ト の発生 1223 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 353 実行の中止 984 終了 146 ス ク ロ ール ツ リ ービ ュ ー 1086 リ ス ト ボ ッ ク ス 1142 ス ク ロ ール用の関数 Scroll 1016 ScrollNextPage 1017 ScrollNextRow 1018 ScrollPriorPage 1019 ScrollPriorRow 1020 ScrollToRow 1022 Top 1207 ス コ ープ記号 117 ス タ テ ィ ッ ク テ キ ス ト コ ン ト ロ ール、 ク リ ッ プ ボー ド の挿入 397 ス テー ト メ ン ト 、 PowerScript CALL 128 CHOOSE CASE 129 CONTINUE 131 CREATE 132 DESTROY 136 DO...LOOP 137 EXIT 139 FOR...NEXT 140 GOTO 142 HALT 143 IF...THEN 144 RETURN 146 区切 り 18 代入 126 リ ス ト 125 ス ト ア ド プ ロ シージ ャ ク ロ ーズ 156 実行 164 宣言 154, 160 ス ト ア ド プ ロ シージ ャ 、 宣言 68 ス ト ッ プ サ イ ン ア イ コ ン 806 ス ト リ ーム、 OLE 削除 803 チ ェ ッ ク 804 名前の変更 805 ス ト レージ、 OLE 解放 401 フ ァ イ ル 1007 1285 索引 保存 1002 スペース 左端か ら 削除 745, 747 末尾の スペース の削除 992 文字列か ら の削除 1227, 1228 文字列への挿入 1162 せ 世紀 1255 正弦 1158 整数 blob か ら の取得 712 Char に変換 387, 388 Long 値への変換 769, 771 変換 712 正接 1199 静的呼び出 し 101 正の数 1156 接続、 OLE オブジ ェ ク ト への 414, 416 接続オブジ ェ ク ト ConnectToServer 関数 423 CreateInstance 関数 433 DisconnectServer 関数 473 絶対値 344 設定 保存 1111 読み込み 948, 950 設定、 プ リ ン タ 937 セ ミ コ ロ ン (SQL) 17 線 印刷 928 前景色 デー タ 系列 630, 1119 デー タ ポ イ ン ト 570, 1078 宣言 ア ク セ ス レベル 45 外部関数 60 構文 40 初期値 と し ての式 44 宣言場所 35 定数 50 配列 51 1286 変数 35 先祖 イ ベン ト か ら の戻 り 値 119 オブジ ェ ク ト 86 階層 392 関数ま たは イ ベン ト の呼び出 し ス ク リ プ ト の呼び出 し 128 選択、 リ ス ト 内の削除 1039 線の種類 continuous デー タ 系列の設定 1121 デー タ ポ イ ン ト の設定 1080 線の種類 dash 概要 1080, 1122 デー タ 系列の設定 1122 線の種類 dotted デー タ 系列の設定 1122 デー タ ポ イ ン ト の設定 1080 線の種類 transparent、 グ ラ フ デー タ 系列の設定 1122 デー タ ポ イ ン ト の設定 1080 119 そ 送信者 788 挿入ポ イ ン ト ク リ ッ プボー ド か ら の貼 り 付け 883 テ キ ス ト 行 1031, 1200 編集可能な コ ン ト ロ ール 761 文字の位置 1027 ソー ト 順 GetCalc 関数 652 リ ス ト に項目を挿入す る タ イ ミ ン グ 694 測定 1237 その他の ウ ィ ン ド ウ メ ニ ュ ー項目 847 そのほかの関数 IsValid 737 KeyDown 738 MessageBox 889 PixelsToUnits 889 RGB 988 SetNull 1101 SetPointer 1107 TypeOf 1233 PowerBuilder 索引 UnitsToPixels 選択 1042 ユーザ オブジ ェ ク ト を開 く タ ブ文字、 指定 8 タ ブ用の関数 CloseTab 404 MoveTab 819 SelectTab 1042 TabPostEvent 1197 TabTriggerEvent 1198 タ ブ ラ 提示様式 1192 ダブル コ ロ ン 128 単位系 端か ら の距離 891 ピ ク セルか ら の変換 889 ピ ク セルへの変換 1237 段組み提示様式 1192 誕生日 1256 段落 1103 1237 た ダ イ ア ロ グボ ッ ク ス PasteSpecial 887 オブジ ェ ク ト の挿入 708 フ ァ イ ルの保存 595 フ ァ イ ルを開 く 589 対数 766, 768 代入 オーバーフ ロ ー 79 後置式演算子 128 配列 54, 57, 59 文 126 代入時のオーバーフ ロ ー 79 タ イ マー、 イ ベン ト の発生 1204 タ イ ミ ン グ オブジ ェ ク ト 開始 1166 停止 1177 非ア ク テ ィ ブ化 1177 タ イ ミ ン グ用の関数 CPU 430 Idle 657 Timer 1204 代名詞 Parent 13 Super 15 This 14 イ ン ス タ ン ス変数 39 概要 12 楕円 SetFocus 関数 1088 印刷 931 高さ オブジ ェ ク ト 980 ワ ー ク スペース 1244 多次元配列 53, 57 ダ ッ シ ュ 、 変数名での使用の禁止 タ ブ ページ CreatePage 関数 436 PageCreated 関数 881 順序の変更 819 853, 857 ち チャ イルド ウ ィ ン ド ウ 親の取得 882 開 く 830, 872 チ ャ ネル、 DDE 403, 844 長方形 SetFocus 関数 1088 印刷 933, 935 直線 SetFocus 関数 1088 ち ら つき 1115 つ 5 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 ツールバー 643, 645, 1136, 1138 月、 日付の取得 448 ツ リ ービ ュ ー用の関数 AddPicture 358 CollapseItem 410 DeleteItem 458 DeletePicture 461 DeletePictures 461 DeleteStatePicture 464 1287 索引 DeleteStatePictures 464 EditLabel 481 ExpandAll 489 ExpandItem 490 FindItem 526 GetItem 606 InsertItem 698, 699 InsertItemFirst 700 InsertItemLast 703 InsertItemSort 705 SelectItem 1041 SetDropHighlight 1084 SetFirstVisible 1086 SetItem 1092 SetLevelPictures 1093 SetOverlayPicture 1101 Sort 1159 SortAll 1161 て 定義、 印刷の フ ォ ン ト 923 提示様式 1192 定数 値の代入 43 宣言 50 宣言場所 35 テ ィ ルダ 規則 27 指定 8 文字列 26 デ ィ レ ク ト リ 、 ラ イ ブ ラ リ 752, 754 デー タ Blob への挿入 373 DDE アプ リ ケーシ ョ ンか ら の受け取 り DDE ク ラ イ ア ン ト へ送 る 1074 DDE 取得 565 Long 型への変換 769, 771 OLE サーバか ら 563 OLE サーバに 1073 イ ン ポー ト 663 共有 440 グ ラ フ系列への追加 349, 351 1288 983 コ ン ト ロ ールか ら の取得 560 消去 973 ス ト リ ームへの書 き 込み 1247 デー タ ウ ィ ン ド ウ での検索 517 転送 1164 パ イ プ ラ イ ンの修正 967 フ ァ イ ルへの書 き 込み 511, 513 デー タ ウ ィ ン ド ウ オブジ ェ ク ト SELECT 文か ら の作成 1192 構文か ら 再構築 758 構文 と し てエ ク ス ポー ト 756 ラ イ ブ ラ リ か ら の削除 751 リ ス ト 752 デー タ ウ ィ ン ド ウ コ ン ト ロ ール デー タ 式 と Any デー タ 型 31 パ イ プ ラ イ ン エ ラ ー 1165 デー タ ウ ィ ン ド ウ の前景レ イ ヤ 1110 デー タ ウ ィ ン ド ウ の背景レ イ ヤ 1110 デー タ ウ ィ ン ド ウ のボ ト ム レ イ ヤ 1110 デー タ ウ ィ ン ド ウ用の関数 CanUndo 382 CategoryCount 383 CategoryName 384 Clear 394 Clipboard 396 Copy 425 Cut 437 DataCount 439 FindCategory 519 FindNext 531 FindSeries 532 GetData 560 GetDataPieExplode 568 GetDataStyle 569 GetSeriesStyle 629 LineCount 759 ObjectAtPointer 823 Paste 883 PasteRTF 886 Position 898 ReplaceText 971 ResetDataColors 977 Scroll 1016 SelectedLength 1030 SelectedLine 1031 PowerBuilder 索引 SelectedStart 1034 SelectedText 1035 SelectText 1044 SeriesCount 1055 SeriesName 1056 SetDataPieExplode 1076 SetDataStyle 1077 SetPosition 1110 SetSeriesStyle 1119 TextLine 1200 Undo 1236 デー タ 型 Blob 372, 373 byte 379, 544 NULL に設定 1101 real 955 ウ ィ ン ド ウ 827 演算子の影響 78 外部関数 65 概要 23 カ タ ロ グ 33 関数の引数の変換 108 決定 392 時刻 1201 シ ス テ ム オブジ ェ ク ト 31 数値 77 代入 79 貼 り 付け時の型の不一致 884 日付 445 標準 23 変換 77 未定義 28 文字列 1179 リ テ ラ ル 24, 25, 26, 28, 78 デー タ 型のチ ェ ッ ク と 変換用の関数 AscA 367 Char 387, 388 Date 442 DateTime 446 Dec 453 Double 474 Integer 712 IsDate 725 IsNull 730 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 IsNumber 732 IsTime 735 Long 769, 771 Real 955 String 1179 Time 1201 デー タ 型のマ ッ ピ ン グ、 EAServer 33 デー タ 系列、 グ ラ フ イ ン ポー ト 663, 666, 670 外観の レ ポー ト 629 カ ウ ン ト 1055 ク リ ッ ク 823 削除 462, 974 ス タ イ ルの設定 1119 挿入 710 デー タ の挿入 688 デー タ ポ イ ン ト 439, 455, 561, 575, 814, 977 名前の取得 1056 番号の検索 532 値の追加 349, 372 追加 360 デー タ 式 Any デー タ 型 31 デー タ の共有 440 デー タ パ イ プ ラ イ ン ペ イ ン タ 381, 1165 デー タ ベース カー ソ ル、 オープン 167 カー ソ ルが置かれた行の更新 174 行の削除 161, 163 行の選択 169 行の挿入 166 行のフ ェ ッ チ 165 更新 172 再起動 984 修復 967 接続 158 接続解除 164 デー タ 転送 1164 ト ラ ンザ ク シ ョ ン 1144 ハン ド ル 452 変更の コ ミ ッ ト 157 変更の取 り 消 し 168 デー タ ベース ス ト ア ド プ ロ シージ ャ 151 デー タ ポ イ ン ト 1289 索引 値 560, 575 色の リ セ ッ ト 977 外観の レ ポー ト 569 切 り 離 し の割合の レ ポー ト 568 ク リ ッ ク 823 削除 454 散布図への追加 351 ス タ イ ルの設定 1077 挿入 688 テーブル、 デー タ ベース、 デー タ ベース間のデー タ 転送 1164 テキ ス ト RichTextEdit での検索 517, 531 色の設定 989 印刷 914, 943 印刷時の行間 915 エデ ィ ッ ト コ ン ト ロ ールか ら の削除 394 ク リ ッ プボー ド の 396, 427, 437 現行行の取得 1199, 1200 選択 1030, 1035, 1044 置換 971 貼 り 付け 884 部分文字列の検索 895, 898 マ イ ク ロ ヘルプ 1099 メ タ 文字 799 メ ッ セージ ボ ッ ク ス 806 文字列か ら のデー タ の イ ン ポー ト 670 元に戻す 1236 リ ス ト ボ ッ ク ス項目 1029 リ ッ チテ キ ス ト を ASCII テ キ ス ト で保存 1012 テ キ ス ト の削除 394 テ キ ス ト パ タ ーンのア ス タ リ ス ク 800 テ キ ス ト パ タ ーンの円記号 799 テ キ ス ト パ タ ーンのカ ッ コ 800 テ キ ス ト パ タ ーンのキ ャ レ ッ ト 799 テ キ ス ト パ タ ーンの ド ル記号 799 テ キ ス ト パ タ ーンの ピ リ オ ド 799 テ キ ス ト パ タ ーンのプ ラ ス記号 800 テキ ス ト フ ァ イル デー タ の イ ン ポー ト 666 保存 1004 1290 と 動的 SQL DynamicDescriptionArea 176 DynamicStagingArea 176 DynamicStagingArea の準備 177 NULL 値 180, 182 概要 175 書式 1 179 書式 2 180 書式 3 181 書式 4 184 書式の リ ス ト 175 注意点 177 文 176 文の順序 177 動的 SQL 用の関数 GetDynamicDate 581 GetDynamicDateTime 583 GetDynamicDecimal 584 GetDynamicNumber 585 GetDynamicString 586 GetDynamicTime 587 SetDynamicParm 1085 動的呼び出 し エ ラ ー 104 概要 102 動的 ラ イ ブ ラ リ 363, 1095 動的 ラ イ ブ ラ リ (DLL) 1171 登録デー タ ベース 688 ド キ ュ メ ン ト ウ ィ ン ド ウ 847 閉じ る DDE チ ャ ネル 403 印刷ジ ョ ブ 921 ウ ィ ン ド ウ 399 ド ッ ト 表記 イ ン ス タ ン ス変数 38 概要 38 構造体 82 ト ピック サーバ アプ リ ケーシ ョ ンの開始 1173 サーバ アプ リ ケーシ ョ ンの終了 1179 ヘルプの呼出 し 1154 ド ラ ッ グ、 ツ リ ービ ュ ー項目 1084 PowerBuilder 索引 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト 、 作成 133 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト 関数 DBHandle 452 SyntaxFromSQL 1192 ト リガ イ ベン ト 192 関数ま たは イ ベン ト 98 取 り 消し 編集 1236 ト レース用の関数 TraceBegin 1211 TraceClose 1213 TraceDisableActivity 1214 TraceEnableActivity 1216 TraceEnd 1218 TraceError 1219 TraceOpen 1220 TraceUser 1222 ト レー ラ 、 オブジ ェ ク ト の移動 1110 ド ロ ッ プダ ウ ン ピ ク チ ャ リ ス ト ボ ッ ク ス用の関 数 AddItem 354 AddPicture 358 Clear 394 Copy 425 Cut 437 DeletePicture 461 DeletePictures 461 FindItem 522 InsertItem 695 Paste 883 Position 898 ReplaceText 971 SelectedLength 1030 SelectedStart 1034 SelectedText 1035 SelectItem 1038 SelectText 1044 Text 1199 TotalItems 1209 ド ロ ッ プダ ウ ン リ ス ト ボ ッ ク ス コ ン ト ロ ール、 テ キ ス ト の削除 394 ド ロ ッ プダ ウ ン リ ス ト ボ ッ ク ス用の関数 AddItem 352 Clear 394 Copy 425 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 Cut 437 DeleteItem 456 DirList 467 DirSelect 469 DraggedObject 478 FindItem 522 InsertItem 694 Paste 883 Position 898 Post 904 ReplaceText 971 Reset 973 SelectedLength 1030 SelectedStart 1034 SelectedText 1035 SelectItem 1038 SelectText 1044 Text 1199 TotalItems 1209 な 長さ Blob ま たは文字列 747, 749 OLEStream 749 行 761 選択 さ れたテ キ ス ト 1030 名前、 規則 5 名前を付けて保存 ダ イ ア ロ グボ ッ ク ス 1006 ぬ 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン 塗 り つぶ し パ タ ーン diagonal 1082, 1123 diamond 1082, 1124 horizontal 1082, 1124 solid 1082, 1124 square 1082, 1124 vertical 1082, 1124 ね ネ ス ト さ れた (入れ子状の) OLE オブジ ェ ク ト 837, 840 1291 索引 年、 概要 445 は 背景色、 グ ラ フ デー タ 系列 630, 1119 デー タ ポ イ ン ト 570, 1078 排他的な共有モー ド 836, 839 バ イ ト 配列 Blob か ら の取得 544 Blob に変換 373 パ イ プ ラ イ ンの置換、 キ ャ ン セル 380 パ イ プ ラ イ ンの転送先デー タ ベース 1164 パ イ プ ラ イ ン用の関数 Cancel 380 Repair 967 Start 1164 ハ イ フ ン、 変数名での使用の禁止 5 ハ イ ラ イ ト 表示 ス ク ロ ール 1020 設定 1130 リ ス ト 内の項目 1038, 1174 配列 Char 型 と String 型 80 mailRecipient 780 値の代入 57, 59, 126 エ ラ ー 60 概要 51 可変長 55 コ ピー 126 初期化 59 ス ト リ ーム 954, 1248 デフ ォ ル ト 値 54 動的 SQL の入力パ ラ メ ー タ 1085 引数 と し て渡す 112 メ ッ セージ ID 782 例 367 配列の次元 1240 配列用の関数 LowerBound 779 UpperBound 1240 配列 リ ス ト 59 パス 1292 OLE ス ト レージ 830 フ ァ イ ルの保存 595 戻 る 589 ラ イ ブ ラ リ フ ァ イ ル 750 パ ス ワー ド 787 パ タ ーン照合 798 バ ッ ク ク ォー ト 128 バ ッ チ アプ リ ケーシ ョ ン 906 幅 設定 980 デー タ 系列の線 1121 デー タ ポ イ ン ト の線 1079 文字列 945 ワー ク スペース 1245 パフ ォーマ ン ス Any デー タ 型 31 Yield 関数 1257 動的関数 と イ ベン ト 呼び出 し 103 パラ メ ータ DynamicDescriptionArea の設定 1085 ウ ィ ン ド ウ を開 く 872 コ マ ン ド ラ イ ン 411 シー ト を開 く 849 タ ブ ページ を開 く 857 ユーザ オブジ ェ ク ト を開 く 854, 855, 864, 866, 867 貼 り 付け 埋め込みま たは リ ン ク 887 ク リ ッ プボー ド 883, 885 ハン ド ル DDE 403, 844, 1173 mailSession オブジ ェ ク ト 784, 1053 検証 737 デー タ ベース 452 ひ 比較 数 711, 802, 812 引数 イ ベン ト 192 関数お よ び イ ベン ト 110 PowerBuilder 索引 コ マ ン ド ラ イ ン 411 サーバ アプ リ ケーシ ョ ン 1173, 1179 ホ ッ ト リ ン ク 1171, 1178 ピ ク セル 889, 1237 ピ クチャ ツ リ ービ ュ ー項目 1093 ツ リ ービ ュ ー コ ン ト ロ ール 358, 362 リ ス ト のオーバーレ イ ピ ク チ ャ 1101 リ ス ト ビ ュ ー コ ン ト ロ ール 357, 361, 362 リ ス ト ボ ッ ク ス 358 リ ッ チテ キ ス ト 709 ピ ク チ ャ 用の関数 ClassName 392 Drag 476 Draw 479 Hide 654 Move 817 PointerX 891 PointerY 892 PostEvent 905 Print 912 SetFocus 1087 SetPicture 1106 SetPosition 1108 SetRedraw 1115 Show 1151 TriggerEvent 1223 TypeOf 1233 ピ ク チ ャ リ ス ト ボ ッ ク ス用の関数 AddItem 354 AddPicture 358 DeletePicture 461 DeletePictures 461 FindItem 522 InsertItem 695 SelectedItem 1029 SelectItem 1038 SetTop 1142 State 1174 Text 1199 Top 1207 TotalItems 1209 TotalSelected 1209 ビ ジ ュ アル ユーザ オブジ ェ ク ト 84 日付 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 Blob 442 DateTime デー タ 型 442, 446 間隔の決定 451 現行の取得 1206 月の日付を取得 448 動的に取得 581, 583 変換 443 文字列のチ ェ ッ ク 725 曜日 449, 450 日付 と 時刻用の関数 Day 448 DayName 449 DayNumber 450 DaysAfter 451 Hour 655 Minute 813 Month 816 Now 822 RelativeDate 964 RelativeTime 964 Second 1023 SecondsAfter 1023 Today 1206 Year 1255 ビ ッ ト マップ 印刷 919 ク リ ッ プボー ド か ら の検索 396 ピ ク チ ャ コ ン ト ロ ールへの配置 1106 リ ッ チテ キ ス ト 709 ビデオ モニ タ 588 描画オブジ ェ ク ト SetFocus 関数 1088 イ ベン ト のポ ス ト 906 色の設定 989 表記規則 xxv 表示書式、 文字列への適用 1179 開いた ウ ィ ン ド ウ を上重ね表示 846 開いた ウ ィ ン ド ウ を重ねて表示 846 ふ フ ァ イル セキ ュ リ テ ィ と 共有違反 496, 498 1293 索引 デー タ の イ ン ポー ト 666 リ ン ク 763 フ ァ イ ルの保存レ ス ポ ン ス ウ ィ ン ド ウ 595 フ ァ イ ル名の フ ィ ル タ 589, 595 フ ァ イ ル用の関数 FileClose 491 FileDelete 493 FileExists 495 FileLength 495, 497 FileOpen 499 FileRead 503 FileReadEx 506 FileSeek 508, 509 FileWrite 511 FileWriteEx 513 GetFileOpenName 589 GetFileSaveName 595 フ ォーカ ス 行の長 さ 761 コ ン ト ロ ールの検索 599 設定 1087 選択 さ れた テ キ ス ト 1031, 1035, 1036, 1045 フ ォーム提示様式 1192 フ ォ ルダ 752 フォン ト FontFamily カ タ ロ グ デー タ 型 923 FontPitch カ タ ロ グ デー タ 型 923 印刷時 915 印刷の定義 923 設定 939 デー タ ウ ィ ン ド ウ コ ン ト ロ ールの印刷時 923 と 印刷時の文字列の長 さ 945 名前 と サ イ ズ 924 符号な し Integer デー タ 型 28 符号な し Long デー タ 型 28 フ ッ タ 、 オブジ ェ ク ト の移動 1110 負の数 1156 部分文字列 検索 895, 898 置換 969, 973 抽出 809 プ リ プ ロ セ ッ サ シ ン ボル 19 プ リ ン タ の設定 937 プ リ ン タ の設定 ダ イ ア ロ グボ ッ ク ス 941 1294 フ レーム ウ ィ ン ド ウ 893, 1246, 1247 プ ロ セ ス間の メ ッ セージ 783 プ ロ セ ッ サ 588 プ ロ パテ ィ GetFocus 関数 599 ウ ィ ン ド ウ 829, 831 取得 と 設定 540 幅 と 高 さ の設定 980 フ ォ ン ト 、 印刷 923 メ ッ セージ オブジ ェ ク ト 850 プ ロ パテ ィ 式、 Any デー タ 型 31 プロ フ ァ イル フ ァ イル 書 き 込み 1111 読み込み 947, 949 分散アプ リ ケーシ ョ ン ConnectToServer 関数 423 DisconnectServer 関数 473 SharedObjectDirectory 関数 1146 SharedObjectGet 関数 1146 SharedObjectRegister 関数 1150, 1151 へ 平方根 1163 ページ 印刷 932 サ イ ズ 915 枠の印刷 931, 933, 934 ページ用の関数 ScrollNextPage 1017 ScrollPriorPage 1019 ヘ ッ ダ区域、 オブジ ェ ク ト の移動 ヘブ ラ イ 語の関数 IsAllHebrew 720 IsAnyHebrew 721 IsHebrew 726 IsHebrewAndNumbers 727 ヘルプ Winhelp の呼出 し 1154 マ イ ク ロ ヘルプの表示 1099 ヘルプ検索 ウ ィ ン ド ウ 1154 変数 Blob か ら のデー タ の抽出 375 1110 PowerBuilder 索引 親の取得 882 開 く 830, 872 Blob へのデー タ の挿入 373 NULL か ど う かのチ ェ ッ ク 730 NULL に設定 9, 1101 OLEObject 419 SQL の参照 152 ア ク セ ス レベル 45 値の代入 43 イ ン ジ ケー タ 152 検索の順番 37 検証 738 初期値 と し ての式 44 初期値の宣言 42 宣言 35 宣言場所 35 デー タ 型 42 デフ ォ ル ト 値 42 名前 42 のデー タ 型の決定 392 ホ ス ト 152 リ テ ラ ルの代入 24, 25, 26, 28 ま ほ ポインタ 形の設定 1107 上部か ら の距離 892 端か ら の距離の判別 891 フ ァ イ ル 508, 509, 511, 513 ポ イ ン ト 位置のオブジ ェ ク ト を戻す 読み書 き 1024 ポ イ ン タ arrow 1107 ポ イ ン タ beam 1107 ポ イ ン タ hourglass 1107 ポ イ ン ト サ イ ズ 923 ホッ ト リ ンク 概要 1075 確立 1171 終了 1178 デー タ の ソ ース の判別 567 発信元の判別 566 ポ ッ プア ッ プ ウ ィ ン ド ウ 移動 817 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 823 マ イ ク ロ ヘルプ 1099 マウ ス テ キ ス ト の選択 427 ポ イ ン タ の形の設定 1107 マ ウ ス ポ イ ン タ cross 1107 マス ク 照合 798 設定 1096 長 さ の レ ポー ト 761 文字列への適用 1180 マルチ ラ イ ン エデ ィ ッ ト 用の関数 CanUndo 382 Clear 394 Copy 425 Cut 437 LineCount 759 LineLength 761 Paste 883 Position 898 ReplaceText 971 Scroll 1016 SelectedLength 1030 SelectedLine 1031 SelectedStart 1034 SelectedText 1035 SelectText 1044 TextLine 1200 Undo 1236 み 未読 メ ッ セージ 783 め 命名規約 42 メ イン ウ ィ ンド ウ 817 1295 索引 メ ール用の関数 mailAddress 780 mailDeleteMessage 782 mailGetMessages 783 mailHandle 784 mailLogoff 785 mailLogon 786 mailReadMessage 788 mailRecipientDetails 791 mailResolveRecipient 792 mailReturnCode 787 mailSaveMessage 794 mailSend 797 メ タ 文字 798, 799 メ ッ セージ ウ ィ ン ド ウへ送 る 1052 削除 782 ポ ス ト 機能 904 保存 794, 797 メ ッ セージ ID 配列 783 メ ッ セージ オブジ ェ ク ト PowerObjectParm プ ロ パテ ィ 408 TriggerEvent 関数 1224 値指定 769 か ら の文字列の抽出 1182, 1184 作成 133 シー ト を開 く パ ラ メ ー タ 849 種類の決定 1235 パ ラ メ ー タ のア ク セ ス 872 プ ロ パテ ィ 858, 860, 868, 870 戻 り 値を閉 じ る 407 メ ッ セージ ボ ッ ク ス の タ イ ト ル 806 メ ニ ュー Checked プ ロ パテ ィ 388 オブジ ェ ク ト の作成 133 シー ト 847 表示 893 変更 386 メ ニ ュ ー オブジ ェ ク ト 構文か ら 再構築 758 構文 と し てエ ク ス ポー ト 756 リ ス ト 752 メ ニ ュ ー用の関数 Check 388 1296 ClassName 392 Disable 470 Enable 482 PopMenu 893 Show 1151 TriggerEvent 1223 TypeOf 1233 Uncheck 1235 メモリ 可変長配列 1240 配列への割 り 当て 55 メ ール セ ッ シ ョ ン後の解放 メ ンバー、 OLE 803, 804, 805 785 も 文字 ASCII 値に変換す る 366, 367 大文字での表示の変換 778, 1239 照合 798 選択 1044 選択 さ れた 1030, 1034 抽出 387, 388, 809 配列 954 マ ス ク 1097 右端の文字を返す 990, 991 文字配列 1248 文字列 Char 型配列 80 Char に変換 80 入れ子 26 印刷の幅の決定 945 大文字 1239 継続 17 小文字 778 ス ト リ ームへの書 き 込み 1248 抽出 387, 388, 809 デー タ の イ ン ポー ト 670 動的に取得 586 内容の検出 725, 732, 735 比較 74 左端か ら スペース を削除 745, 747 PowerBuilder 索引 部分文字列の検索 895, 898 変換 367, 372, 379, 443, 453, 474, 770, 772, 955 連結 75 文字列での特殊な ASCII 文字 7 文字列の解析 895, 898 文字列の挿入 969, 973 文字列の比較 74 文字列用の関数 1179 Asc 366, 367 AscA 367 Char 387 CharA 388 Fill 515 FillW 515, 517 Left 743, 745 LeftC 745 LeftTrim 745, 747 LeftW 743, 745 Len 747, 749 Lower 778 Match 798 Mid 809 MidW 809 Pos 895 PosW 898 Replace 969, 973 Right 990 RightC 991 RightTrim 992 RightW 991 Space 1162 Trim 1227, 1228 Upper 1239 元のサ イ ズで開 き 重ねて表示 さ れ る ウ ィ ン ド ウ 850 元のデー タ ベース 1164 戻り値 TriggerEvent 関数 1224 イ ベン ト リ タ ーン コ ー ド 193 概要 113 先祖の イ ベン ト か ら の 119 メ ール セ ッ シ ョ ン 787 モニ タ 588 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 ゆ ユーザ ID 787 ユーザ イ ベン ト pbm_dwngraphcreate 1120 定義 さ れた 94 ユーザ オブジ ェ ク ト 概要 84 構造体の よ う に使用 さ れ る 88 構文か ら 再構築 758 構文 と し てエ ク ス ポー ト 756 作成 133 自動生成 さ れた 88 タ ブ ページ 853, 857 タ ブ ページ を閉 じ る 404 動的に作成 133 閉 じ る 406 パ イ プ ラ イ ン 1164 開 く 853, 854, 855, 862, 864, 866, 867 リ ス ト 752 ユーザ定義 イ ベン ト 191, 193 ユーザ名 792 ユニ フ ォーム デー タ 転送 563, 1073 よ 用紙送 り 、 指定 8 余弦 429 余白 915, 937, 1103 読み取 り 専用の引数 予約語 11 110 ら ラ イブラ リ オブジ ェ ク ト の削除 752, 754 か ら のオブジ ェ ク ト の貼 り 付け と リ ン ク 探索パス 363, 609, 1095 ラ イ ブ ラ リ 用の関数 LibraryCreate 750 LibraryDelete 751 LibraryDirectory 752 LibraryDirectoryEx 754 885 1297 索引 LibraryExport 756 LibraryImport 758 ラ ジ ア ン (弧度) 888 ラ ベル提示様式 1192 乱数 取得 951 乱数ジ ェ ネ レー タ の初期化 952 り リスト 項目の削除 973 項目の追加 693 新規項目の追加 352 水平ス ク ロ ールバー 353 ソ ー ト さ れた 354 ラ イ ブ ラ リ のオブジ ェ ク ト 752, 754 リ ス ト ボ ッ ク ス の フ ァ イ ル 467 リ ス ト の水平ス ク ロ ールバー 353 リ ス ト ビ ュ ー コ ン ト ロ ールのカ ラ ム 1091 リ ス ト ビ ュ ーの レ ポー ト ビ ュ ー 605 リ ス ト ビ ュ ー用の関数 AddColumn 348 AddItem 355, 356 AddLargePicture 357 AddSmallPicture 361 AddStatePicture 362 Arrange 364 DeleteColumn 454 DeleteColumns 455 DeleteItem 458 DeleteLargePicture 460 DeleteLargePictures 460 DeleteSmallPicture 463 DeleteSmallPictures 463 DeleteStatePicture 464 DeleteStatePictures 464 EditLabel 480 FindItem 523, 525 GetColumn 548 GetItem 605 GetOrigin 617 InsertColumn 687 InsertItem 696 1298 SelectedIndex 1028 SetItem 1090 SetOverlayPicture 1101 Sort 1160 TotalColumns 1208 TotalItems 1209 TotalSelected 1209 リ ス ト ボ ッ ク ス用の関数 AddItem 352 DeleteItem 456 DirList 467 DirSelect 469 FindItem 522 InsertItem 694 Reset 973 SelectedIndex 1028 SelectedItem 1029 SelectItem 1038 SetState 1130 SetTop 1142 State 1174 Text 1199 Top 1207 TotalItems 1209 TotalSelected 1209 リ ッ チテ キ ス ト 印刷 917, 925 行間 1129 行の選択 1049 再検索 531 書式 618, 636, 641, 1103 書式 と と も に コ ピー 427, 886 すべて選択 1048 選択 1046 挿入ポ イ ン ト の決定 899 単語の選択 1050 デー タ 440, 678, 679, 680, 681, 682, 683 テ キ ス ト 設定 1132 テ キ ス ト の色 641, 1132 テ キ ス ト の検索 517 ド キ ュ メ ン ト のプ レ ビ ュ ー 733, 911 配置 540, 1060 フ ァ イ ルの保存 1012 プ レ ビ ュ ー 733 PowerBuilder 索引 ヘ ッ ダ と フ ッ タ の編集 1152 リ ッ チテ キ ス ト エデ ィ ッ ト 用の関数 CanUndo 382 Clear 394 Copy 425 CopyRTF 427 Cut 437 DataSource 440 Find 517 FindNext 531 GetAlignment 540 GetParagraphSetting 618 GetSpacing 636 GetTextColor 641 GetTextStyle 641 InputFieldChangeData 678 InputFieldCurrentName 679 InputFieldDeleteCurrent 680 InputFieldGetData 681 InputFieldInsert 682 InputFieldLocate 683 InsertPicture 709 IsPreview 733 LineCount 759 LineLength 761 Paste 883 PasteRTF 886 Position 899 Preview 911 Print 917 PrintEx 925 ReplaceText 971 SaveDocument 1012 Scroll 1016 ScrollNextPage 1017 ScrollNextRow 1018 ScrollPriorPage 1019 ScrollPriorRow 1020 ScrollToRow 1022 SelectedColumn 1027 SelectedLength 1030 SelectedLine 1031 SelectedPage 1033 SelectedStart 1034 SelectedText 1035 SelectText 1046 PowerScript リ フ ァ レ ン ス ボ リ ュ ーム 2 SelectTextAll 1048 SelectTextLine 1049 SelectTextWord 1050 SetAlignment 1060 SetParagraphSetting 1103 SetSpacing 1129 SetTextColor 1132 SetTextStyle 1132 ShowHeadFoot 1152 Undo 1236 リ ッ チテ キ ス ト の入力フ ィ ール ド 678, 679, 680, 681, 682, 683 リ テラル 指定 24, 25, 26, 28 デー タ 型 78 リ モー ト の DDE アプ リ ケーシ ョ ン 983 リ モー ト プ ロ シージ ャ コ ール 宣言 68 定義 さ れた 95 リ ンク 確立 763 ク リ ッ プボー ド の内容 885, 887 る 累乗 489 累乗演算子 72 ループ 概要 137 繰 り 返 し 140 現行の繰 り 返 し を ス キ ッ プ 外に移る 139 中断 1256 131 れ レ イ ア ウ ト 923 レ スポン ス ウ ィ ン ド ウ 移動 817 閉 じ る 407 連結演算子 75 1299 索引 ろ ロ ーカル変数 36 論理演算子 74 わ ワー ク スペース 画面ま での距離 1246, 1247 高 さ の取得 1244 幅の取得 1245 枠 印刷 931, 933, 934 距離の指定 891, 892 1300 PowerBuilder