2012-06-20 3 views
1

Я искал интернет, прежде чем приехать сюда. Думаю, все потребности разные. Я хочу, чтобы программа GUI Windows получала информацию из базы данных и показывала ее в сетке и имела кнопку удаления рядом с каждой записью. Я также хочу, чтобы у него была ссылка, например, если щелкнул номер идентификатора записи, он открывает новый браузер и переходит к связанной с ним странице и заполняет формы, а затем отправляет их самостоятельно.Perl для Windows GUI

Вопрос в том, что существует много модулей, один из которых является лучшим для этого?

(Perl Nubie)

+1

Почему бы не использовать какой-либо исследователь базы данных? Какую базу данных вы хотите запросить? –

+0

Это MySQL. Дело в том, что вы хотите cilck на строке и открыть новое приложение для браузера Win32 :: Ole и «проехать» через Perl – Grigor

+3

Я до сих пор не вижу преимущества, например, [MySQL Workbench] (http: // dev. mysql.com/doc/workbench/en/index.html) –

ответ

3

Никто не может с уверенностью сказать, что лучше, но вариант из Tk модуля с бэкэндом, в вашем случае, DBD::MySQL, может быть, самый «стандартный» для таких вещей, как это в Perl. Примеры для обоих можно найти в Интернете.

Вот некоторые для SQL с MySql и DBD:

http://sql-info.de/mysql/examples/Perl-DBI-examples.html

Вот хороший документ примеров для PERL ТЗ:

http://www.ibm.com/developerworks/aix/library/au-perltkmodule/index.html

Что касается открытия браузера - простая команда системы будет делать:

my @command = ('start', $url); 
system(@command); 

^Это для Windows. Похоже, у вас довольно приличное приложение, которое вы хотите создать - открытие браузера - лишь малая его часть - вы захотите выполнить вышеприведенное при нажатии кнопки, без сомнения.

Последняя часть ... отправка данных в формы в Интернете - это тема под названием «обход веб-страниц» ... WWW::Mechanize - это библиотека для поиска в Google «perl web crawler», и вы обязаны получить больше хорошие примеры.

Я нашел это с небольшим количеством поиска - это выглядит, чтобы быть полезным для вас:

http://www.stratos.me/2009/05/writing-a-simple-web-crawler-in-perl/

+0

Как вы могли бы управлять браузером, скажем, заполнить формы из программы, а затем отправить на страницу – Grigor

+0

Отредактированный мой ответ, чтобы обратиться к нему! – PinkElephantsOnParade

+0

Моя текущая программа делает это в Dos, и я хочу, чтобы она была встроена в графический интерфейс Windows. Приложение не такое большое, вероятно, будет содержать не более 2000 строк. Часть, о которой я беспокоюсь, когда я открываю браузер, смогу ли я ее контролировать с помощью Win32 :: Ole? – Grigor

2

Я предложил бы использовать:

  • Wx для пользовательского интерфейса (обеспечивает более современный/родной вид, чем Tk, см. также основной сайт wxWidgets)
  • DBD::SQLite для локального хранения базы данных
  • WWW::Mechanize - подающие формы

Поскольку вы используете Windows, вам лучше всего было бы установить Strawberry Perl, который включает в себя SQLite и Mechanize. Установка Wx или Tk - дополнительный шаг, но вы можете найти учебники в Интернете у других, которые это сделали. Вы также можете посмотреть на Padre, the Perl IDE, который является редактором/средой разработки Perl (также используется Wx).

3

Дайте одно (неприятное) предварительное условие, ок. 25 строк HTML

<html> 
<head> 
    <hta:application id="demo" scroll="No"></hta> 
    <title>Demo</title> 
    <script language = "PerlScript" 
      src  = "demo.pl" 
      type  = "text/perlscript" 
    ></script> 
</head> 
<body onload="DoOnLoad()" onunload="DoOnUnLoad()"> 
    <object classid = "clsid:67397AA3-7FB1-11D0-B148-00A0C922E820" 
      id  = "id_oDC" 
      style = "position:relative;width:1px;height:1px" 
    ></object> 
    <object classid = "clsid:CDE57A43-8B86-11D0-B3C6-00A0C90AEA82" 
      id  = "id_oDG" 
      style = "position:relative;width:100%;height:95%" 
    ></object> 
</body> 
</html> 

и ca.40 строк Perl:

use strict; 
use warnings; 

use Win32::OLE qw(in); 
use Win32::OLE::Const 'Microsoft ActiveX Data Objects'; 
use vars qw($window); 

my $oAdoDC; 
my $oAdoDG; 

sub DoOnLoad { 
    my $owda     = $window->document->all; 
    $oAdoDC      = $owda->id_oDC; 
    $oAdoDC->{ConnectionString} = 'DSN=SakilaGent'; 
    $oAdoDG      = $owda->id_oDG; 
    $oAdoDC->{CursorType}  = adOpenKeyset; 
    $oAdoDG->Font->{Name}  = "Arial"; 
    $oAdoDG->Font->{Size}  = "8"; 
    $oAdoDG->HeadFont->{Name} = "Arial"; 
    $oAdoDG->HeadFont->{Size} = "8"; 
    $oAdoDC->{RecordSource}  = "select * from customer"; 
    $oAdoDG->{Caption}   = $oAdoDC->{RecordSource}; 
    $oAdoDC->Refresh(); 
    $oAdoDG->{DataSource}  = $oAdoDC; 
} 

sub DoOnUnLoad { 
    $oAdoDG->{ DataSource }->Close(); 
    $oAdoDC->{ Recordset }->Close(); 
    $oAdoDG = undef; 
    $oAdoDC = undef; 
} 

даст вам гибкий '' Display/редактировать каждый набор записей из каждой базы данных, доступной ADO' типа сетки данных:

ADO Grid

без каких-либо затрат. Человек, знакомый с HTML (но не Tk или Wx) и ADO/Access/Excel (но не DBI), мог бы легко и эффективно создавать хороший графический интерфейс базы данных. Предпосылкой (т. Е. Недостатком) является: Даже компьютеры развертывания должны иметь «Microsoft DataGrid Control 6.0 (OLEDB)» (есть простой табличный, иерархический и гибкий иерархический контроль сетки, возможно, более современные средства управления могут использоваться также), установленный в режиме с поддержкой разработки/разработки.

+0

Я проверю все ответы в реальном времени, прежде чем принимать лучший ответ – Grigor

Смежные вопросы