問題タブ [datawindow]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powerbuilder - Excel ファイルをデータウィンドウにインポートする方法
.xlsx ファイルを PowerBuilder DataWindow にインポートしたいです。CSV 形式で実行できることはわかっていますが、ユーザーは xlsx 形式を使用したいと考えています。インポートするオプションがあれば教えてください。
datawindow - データを縦に表示するのではなく、データウィンドウの表示形式を変更するにはどうすればよいですか
powerbuilder.net
どのように見えるか
私が望むもの:
powerbuilder - 別のデータウィンドウのレコードをクリックしてウィンドウを開く
select を使用してレコードを取得するデータウィンドウがあります。
私がやりたいことは、任意のレコードをクリックして新しいウィンドウ/データウィンドウを開いて、選択/クリックしたレコードに関する詳細情報を表示できるようにすることです。
私はPB8を初めて使用し、現在これに苦労しています。
正しい方向に私を導いてください、本当に感謝します。
乾杯。
excel - Powerbuilder で xlsx として保存すると、170000 行を超えると機能せず、-1 が返されるかクラッシュする
SaveAs
DataWindow関数の使用時に問題が発生しました。以前は、関数は Excel8 形式で動作し、行数は 65536 を超えませんでした。しかし、現在、エクスポートする必要がある DW に 300000 以上の行がある可能性があります。
形式を XLSX! に変更し、SaveAs
66 列で 170000 行を保存することに成功しました。
しかし、180000 以上の行数の DW は保存されませんでした。クラッシュしたり、-1 を返したりすることもありました。しかしその後、Powerbuilder を再起動した場合にのみ、小さな dw-s をエクスポートできました。
このマシンは Windows 8 を使用しており、16 GB の RAM があり、Office がインストールされています。私は Powerbuilder バージョン 12.5.2 を使用しています。
Windows 7 と 3GB の RAM、さらに Powerbuilder 12.5 を搭載した別のマシンで小さなテスト プログラムを作成しました。別の列を追加すると再びクラッシュしましたが、990000 行と 15 列の .xlsx 形式で DW を正常に保存しました。
Excel の制限事項を読みましたが、保存しようとしているものには問題ないようです。
上記の状況で何を確認するか、何をすべきか考えていますか?
tree - Powerbuilder ツリー ノードの選択された行の色
ツリー ビュー データウィンドウがあり、行を選択すると、行全体が青色で強調表示されます。色を青から透明に設定するにはどうすればよいですか?
powerbuilder - DW ImportClipboard と検証の間でデータを操作する
Excel ドキュメントからコピー/貼り付けを使用して入力できるようにしたいデータウィンドウがあります。現在、日付フィールドを除いて、必要なものすべてをインポートしています。現在、ユーザーは MM/YYYY 日付を含む Excel ファイルからすべてを手動で入力し、[保存] をクリックすると、システムが日付コンポーネントを追加して、Oracle データベースに日付フィールドとして渡すことができます。
コピー/貼り付けを実装した後、日付フィールドは MM/YYYY 形式 (例: 11/2013) の Excel ファイルから取得され、すぐに PowerBuilder がデータ検証エラー メッセージ (アイテム '11/2013' は検証テストに合格しません) を表示します。貼り付け済みです。
インポートを続行すると、他のすべてのデータが正しく貼り付けられます。Excel で日付を 2013 年 1 月 11 日と手動で変更すると、日付を含むすべてが正しく貼り付けられます。Excel ドキュメントはサードパーティから保護されており、日付形式を変更して日付コンポーネントを含めることはできません。
メソッドを使用しdw.ImportClipboard()
てクリップボードからデータを取得し、それを正しい DW 列に割り当てています。コードスニペット:
日付フィールドの前にImportClipboard()
a を追加して検証に合格するために、関数と自動検証の間でデータを傍受できる方法はありますか? DD/
おそらく、上記のコードのプロセスデータのさらなるセクションにあります。
あるいは、それを行うためのより良い方法はありますか?
ありがとう。
PowerBuilder Classic 12.5 を使用しています。これは、もともと PB8 で開発されたアプリケーションです。
編集:
データストアの使用が提案され、それを調べました。それが私が求めているもののようです。しかし、私はそれを私のために働かせることができませんでした。
これが私がやったことです:
どちらのメッセージ ボックスも表示されませんが、インポート クリップボードを削除すると、メッセージ ボックスは正常に表示されます。それらが機能していない理由を特定できません..
行を変更すると:
に
(これは DW オブジェクトの名前です)
メッセージボックスはエラーコード -4 を返します。ドキュメントによると、これは無効な入力を意味します。いつも持っているのと同じ行とデータをコピー/貼り付けているので、なぜこれを行っているのかよくわかりません。
EDIT2/ソリューション:
示唆されたように、外部データ ソースを選択して列を追加する新しいデータウィンドウ オブジェクト (リッチテキスト) を作成し、今回は必要な日付フィールドを文字列にしました。次に、上記のように、新しいデータ オブジェクトを参照して importClipboard を実行する DataStore を作成しました。次に、日付文字列に日付コンポーネントを追加しました。
次に、データウィンドウ オブジェクトをデータストアの値と等しくしました。
ご意見とアイデアをありがとうございます。