Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   действия мужду 2 формами (http://www.flasher.ru/forum/showthread.php?t=130317)

lighto 23.09.2009 14:31

действия мужду 2 формами
 
короче вот код 2 файлов при этом я использую готовую библиотеку anfphp
первый файл
Код AS3:

<?xml version = "1.0" encoding = "utf-8"?>
<mx:TitleWindow xmlns:mx = "http://www.adobe.com/2006/mxml"
                creationComplete="onCreateComplete()"
                showCloseButton = "true"
                layout="absolute"
                xmlns:phi="phi.db.*"
                close = "CloseAll()"
                width="546"
                height="358"
                title="Должности"
                themeColor="#101213"
                borderColor="#FF0000"
                backgroundColor="#FEFEFE">
    <mx:Script>
        <![CDATA[
                import mx.controls.Text;
        import mx.managers.PopUpManager;
                import mx.binding.utils.BindingUtils;
                import mx.collections.ArrayCollection;
                import mx.controls.Alert;
                import mx.events.CloseEvent;
 
                import phi.interfaces.IQuery;
            import phi.interfaces.IDatabase;
            import phi.db.Database;
            import phi.db.Query;
 
            private var db1 :IDatabase; 
            private var query1 :IQuery;
            private var pId1 :String;
            private var pSearchSQL1 :String;
 
 
            [Bindable] public var aW:UsersWindow;
            [Bindable] public var a:int;
            [Bindable] public var doljnost1 : ArrayCollection;
 
 
            private function Checkbox1_Check():void
        {
        if (Checkbox1.selected==true)
                {
                Checkbox2.selected=false;       
                Checkbox2.visible=true;
                txtDoljnost.enabled=false;
            BtnInsert.visible=false;
        BtnChange.visible=false;
        BtnDelete.visible=false;
        BtnDelete.label='Удалить';
        BtnChange.label='Изменить';
        BtnDelete.toolTip='Удалить';
        BtnChange.toolTip='Изменить';
        BtnClear.label='Поиск';
        BtnClear.toolTip='Поиск';
        txtDoljnost.text="";
        return;
                }
                else
                {
                Checkbox2.visible=false;
                txtDoljnost.enabled=true;
                BtnInsert.visible=true;
        BtnChange.visible=true;
        BtnDelete.visible=true;
        BtnClear.label='Очистить';
        BtnClear.toolTip='Очистить';
        LoadDatagrid();
        return;
                }
        }
 
            private function Checkbox_Check():void
        {
        if (Checkbox2.selected==true){txtDoljnost.enabled=true} else {txtDoljnost.enabled=false}
        }
 
            private function queryDoljnostEnd (evt:Object):void
        {
        doljnost1=query1.getRecords();
        }
 
        private function LoadDatagrid():void
            {
        query1.addEventListener(Query.QUERY_END,queryDoljnostEnd);
        query1.execute("Select * from doljnost");
            }       
 
        private function onCreateComplete():void
                {
                PopUpManager.centerPopUp(this);
                db1 = Database.getInstance();
            query1=new Query();
            db1.connect("conn_","root","","localhost","test",true);
            query1.connect("conn_",db1);
            LoadDatagrid();
            ClearAll();
                Checkbox2.visible=false;
                }
 
            private function CloseAll():void
                {
                db1.disconnect("conn_");       
        //        aW.Combo1.selectedIndex=datagrid.selectedItem.id;
        PopUpManager.removePopUp(this)
                }
 
            private function ClearAll():void
                {
 
            if (BtnClear.label=='Очистить')
                {
                BtnClose.useHandCursor = true; 
                BtnClose.buttonMode = true; 
                BtnClose.mouseChildren = false;
 
                BtnClear.useHandCursor = true; 
                BtnClear.buttonMode = true; 
                BtnClear.mouseChildren = false;       
 
                BtnInsert.useHandCursor = true; 
                BtnInsert.buttonMode = true; 
                BtnInsert.mouseChildren = false;                       
 
                BtnChange.useHandCursor = true; 
                BtnChange.buttonMode = true; 
                BtnChange.mouseChildren = false;       
 
                BtnDelete.useHandCursor = true; 
                BtnDelete.buttonMode = true; 
                BtnDelete.mouseChildren = false;
 
                Checkbox1.useHandCursor = true; 
                Checkbox1.buttonMode = true; 
                Checkbox1.mouseChildren = false;
 
                Checkbox2.useHandCursor = true; 
                Checkbox2.buttonMode = true; 
                Checkbox2.mouseChildren = false;
 
                txtDoljnost.text="";
            txtDoljnost.setFocus();
        return;
                }
                else
                {
                pSearchSQL1="";
 
            if (BtnClear.label=='Поиск')
                {
                if (Checkbox2.selected==false){}else{pSearchSQL1=pSearchSQL1+" name like '"+txtDoljnost.text+"%' and "}
                }       
 
                pSearchSQL1=pSearchSQL1.substr(0,pSearchSQL1.length-4);
                //Alert.show(pSearchSQL);       
        query1.addEventListener(Query.QUERY_END,queryDoljnostEnd);
        query1.execute("Select name from Doljnost where "+pSearchSQL1);
        return;
                }       
                }
 
            private function ChangeRecord():void
                {
 
                if (datagrid.selectedIndex==-1)
                {Alert.show("Укажите запись для изменения");
                return;
                }               
 
                if (BtnChange.label=='Изменить')
                {
                txtDoljnost.text=datagrid.selectedItem.name;
            BtnChange.label='Обновить';
            BtnChange.toolTip='Обновить';
            BtnDelete.toolTip='Отменить';
            BtnDelete.label='Отменить';
        return;
                }
                else
                {
 
        query1.addEventListener(Query.QUERY_END,queryDoljnostEnd);
                query1.execute("Update doljnost set name='"+txtDoljnost.text+"' where id="+datagrid.selectedItem.id);
                LoadDatagrid();
                ClearAll();
                BtnDelete.label='Удалить';
        BtnChange.label='Изменить';
        BtnDelete.toolTip='Удалить';
        BtnChange.toolTip='Изменить';
        return;
                }
                }       
 
                private function DelRecord():void
                {
                if (BtnDelete.label=='Отменить')
                {
        BtnDelete.label='Удалить';
        BtnChange.label='Изменить';
        BtnDelete.toolTip='Удалить';
        BtnChange.toolTip='Изменить';
        txtDoljnost.text="";
        return;
                }
                else
                {
            pId1=datagrid.selectedItem.id;
                Alert.show("Удалить запись","Удаление записи",(Alert.YES|Alert.NO), this,findDeleteResponse);
                }       
                }       
 
                private function findDeleteResponse(e:CloseEvent):void{
                if (e.detail == Alert.YES) {
                query1.execute("Delete from Doljnost where id="+pId1);
                LoadDatagrid();
                }
                else
                {
                }
                }
            private function InsertRecord():void
            {
 
        if (txtDoljnost.text == "")
                {
                Alert.show("Укажите должность");
                txtDoljnost.setFocus();
                return;
                }
 
        query1.addEventListener(Query.QUERY_END,queryDoljnostEnd);
        query1.execute("Insert into Doljnost (name) values ('"+txtDoljnost.text+"')")
        LoadDatagrid();
        txtDoljnost.text="";
        LabelCount.text='Всего записей : '+ doljnost1.length.toString();
            }
 
            private function DeleteRecord():void
            {
 
            if (datagrid.selectedIndex==-1)
                {Alert.show("Укажите запись для удаления");
                return;
                }       
 
        DelRecord();
        LoadDatagrid();
            }
 
 
            private function TestIt():void
            {
        query1.addEventListener(Query.QUERY_END,queryDoljnostEnd);
        query1.execute("Select name from Doljnost");
            }
 
 
        private function UsersWindowShow():void
        {       
 
            aW = new UsersWindow();
            PopUpManager.addPopUp(aW, this, false);
 
 
            //Combo1.selectedItem.name=datagrid.selectedItem.name;
        }
 
 
        ]]>
    </mx:Script>
    <mx:Spacer height = "100%"/>
    <mx:DataGrid id="datagrid" dataProvider="{doljnost1}selectable="true" width="505" height="215" x="10" y="70" click="a=datagrid.selectedItem.id">
            <mx:columns>
                    <mx:DataGridColumn headerText="ID" width="30"  dataField="id"/>
                    <mx:DataGridColumn headerText="Должность" width="200" dataField="name"/>
            </mx:columns>
    </mx:DataGrid>
    <mx:TextInput id="txtDoljnost" width="417" x="76" y="10"/>
    <mx:Button label="Добавить" click="InsertRecord()" id="BtnInsert" toolTip="Добавить" x="188" y="40"/>
    <mx:Label text="Фамилия" width="56" height="20" x="12" y="12"/>
    <mx:Button label="Удалить" width="81" click="DeleteRecord()" id="BtnDelete" toolTip="Удалить" x="365" y="40"/>
    <mx:Button label="Изменить" click="ChangeRecord()" id="BtnChange" toolTip="Изменить" x="277" y="40"/>
    <mx:Button label="Закрыть" width="81" id="BtnClose" click="CloseAll()" toolTip="Закрыть" x="10" y="40"/>
    <mx:Button label="Очистить" width="81" click="ClearAll()" id="BtnClear" toolTip="Очистить" x="99" y="40"/>
    <mx:Label text="Всего записей : {doljnost1.length.toString()}" id="LabelCount" x="10" y="293"/>
    <mx:RadioButtonGroup id="radiogroup1"/>
    <mx:CheckBox label="Поиск" id="Checkbox1" selected="false" click="Checkbox1_Check()" toolTip="Поиск" width="60" alpha="1.0" x="456" y="40"/>
    <mx:CheckBox x="501" y="10" id="Checkbox2" click="Checkbox_Check()"/>
    <mx:Button x="335" y="291" label="Button" click="UsersWindowShow();"/>
    <mx:Button x="428" y="291" label="pokaz" click="Alert.show(a.toString());"/>
</mx:TitleWindow>


lighto 23.09.2009 14:34

вот 2 файл
Код AS3:

<?xml version = "1.0" encoding = "utf-8"?>
<mx:TitleWindow xmlns:mx = "http://www.adobe.com/2006/mxml"
                creationComplete="onCreateComplete()"
                showCloseButton = "true"
                layout="absolute"
                xmlns:phi="phi.db.*"
                close = "CloseAll()"
                width="546"
                height="358"
                title="Пользователи"
                themeColor="#101213"
                borderColor="#FF0000"
                backgroundColor="#FEFEFE">
    <mx:Script>
        <![CDATA[
                import mx.controls.Text;
//*------------------------------------------------------------------------------------------------
        import mx.managers.PopUpManager;
                import mx.binding.utils.BindingUtils;
                import mx.collections.ArrayCollection;
                import mx.controls.Alert;
                import mx.events.CloseEvent;
 
                import phi.interfaces.IQuery;
            import phi.interfaces.IDatabase;
            import phi.db.Database;
            import phi.db.Query;
 
            private var db :IDatabase; 
            private var query1 :IQuery;
            private var query2 :IQuery;
            private var pId :String;
            private var pSearchSQL :String;
 
            [Bindable] public var sel:DoljnostWindow;
            [Bindable] public var users : ArrayCollection;
            [Bindable] public var doljnost : ArrayCollection;
            [Bindable] private var aD:DoljnostWindow;
 
 
        private function DoljnostWindowShow():void
        { 
            aD = new DoljnostWindow();
            PopUpManager.addPopUp(aD, this, true);
        aD.title='Выбор должности';
        }
 
//*Checkbox1_Check-----------------------------------------------------------------------------------                     
            private function Checkbox1_Check():void
        {
        if (Checkbox1.selected==true)
                {
                Checkbox2.selected=false;       
                Checkbox3.selected=false;       
                Checkbox4.selected=false;       
                Checkbox2.visible=true;
                Checkbox3.visible=true;
                Checkbox4.visible=true;
                txtUsername.enabled=false;
                txtPassword.enabled=false;
                Combo1.enabled=false;
                BtnInsert.visible=false;
        BtnChange.visible=false;
        BtnDelete.visible=false;
        BtnDelete.label='Удалить';
        BtnChange.label='Изменить';
        BtnDelete.toolTip='Удалить';
        BtnChange.toolTip='Изменить';
        BtnClear.label='Поиск';
        BtnClear.toolTip='Поиск';
        txtUsername.text="";
        txtPassword.text="";
        Combo1.selectedIndex=0;
        return;
                }
                else
                {
                Checkbox2.visible=false;
                Checkbox3.visible=false;
                Checkbox4.visible=false;
                txtUsername.enabled=true;
                txtPassword.enabled=true;
                Combo1.enabled=true;
                BtnInsert.visible=true;
        BtnChange.visible=true;
        BtnDelete.visible=true;
        BtnClear.label='Очистить';
        BtnClear.toolTip='Очистить';
        LoadDatagrid();
        return;
                }
        }
 
//*------------------------------------------------------------------------------------------------
 
//*Checkbox_Check-----------------------------------------------------------------------------------                     
            private function Checkbox_Check():void
        {
        if (Checkbox2.selected==true){txtUsername.enabled=true} else {txtUsername.enabled=false}
        if (Checkbox3.selected==true){txtPassword.enabled=true} else {txtPassword.enabled=false}
        if (Checkbox4.selected==true){Combo1.enabled=true} else {Combo1.enabled=false}
        }
//*------------------------------------------------------------------------------------------------
 
//*queryUsersEnd-----------------------------------------------------------------------------------           
            private function queryUsersEnd (evt:Object):void
        {
        users=query1.getRecords();
        }
//*------------------------------------------------------------------------------------------------
 
//*queryDoljnostEnd--------------------------------------------------------------------------------           
        private function queryDoljnostEnd (evt:Object):void
        {
        doljnost=query2.getRecords();
        }
//*------------------------------------------------------------------------------------------------
 
//*LoadDatagrid--------------------------------------------------------------------------------       
        private function LoadDatagrid():void
            {
        query1.addEventListener(Query.QUERY_END,queryUsersEnd);
        query1.execute("Select users.id,users.username,users.password,doljnost.name as doljnost_name from Users,Doljnost where users.doljnost_id=doljnost.id");
            }       
//*------------------------------------------------------------------------------------------------
 
//*LoadCombo1--------------------------------------------------------------------------------       
            private function LoadCombo1():void
            {
        query2.addEventListener(Query.QUERY_END,queryDoljnostEnd);
        query2.execute("Select id,name from Doljnost");
        Combo1.selectedIndex=0;
            } 
//*------------------------------------------------------------------------------------------------
 
//*onCreateComplete--------------------------------------------------------------------------------       
        private function onCreateComplete():void
                {
                PopUpManager.centerPopUp(this);
                db = Database.getInstance();
            query1=new Query();
            query2=new Query();
            db.connect("conn1","root","","localhost","test",true);
            query1.connect("conn1",db);
            query2.connect("conn1",db);
            LoadDatagrid();
            LoadCombo1();
            ClearAll();
                Checkbox2.visible=false;
                Checkbox3.visible=false;
                Checkbox4.visible=false;
                Combo1.selectedIndex=sel.a;
                }
//*------------------------------------------------------------------------------------------------
 
//*CloseAll--------------------------------------------------------------------------------       
            private function CloseAll():void
                {
                db.disconnect("conn1");       
        PopUpManager.removePopUp(this)
                }
//*------------------------------------------------------------------------------------------------
 
//*ClearAll--------------------------------------------------------------------------------       
            private function ClearAll():void
                {
 
            if (BtnClear.label=='Очистить')
                {
                BtnClose.useHandCursor = true; 
                BtnClose.buttonMode = true; 
                BtnClose.mouseChildren = false;
 
                BtnClear.useHandCursor = true; 
                BtnClear.buttonMode = true; 
                BtnClear.mouseChildren = false;       
 
                BtnInsert.useHandCursor = true; 
                BtnInsert.buttonMode = true; 
                BtnInsert.mouseChildren = false;                       
 
                BtnChange.useHandCursor = true; 
                BtnChange.buttonMode = true; 
                BtnChange.mouseChildren = false;       
 
                BtnDelete.useHandCursor = true; 
                BtnDelete.buttonMode = true; 
                BtnDelete.mouseChildren = false;
 
                Checkbox1.useHandCursor = true; 
                Checkbox1.buttonMode = true; 
                Checkbox1.mouseChildren = false;
 
                Checkbox2.useHandCursor = true; 
                Checkbox2.buttonMode = true; 
                Checkbox2.mouseChildren = false;
 
                Checkbox3.useHandCursor = true; 
                Checkbox3.buttonMode = true; 
                Checkbox3.mouseChildren = false;
 
                Checkbox4.useHandCursor = true; 
                Checkbox4.buttonMode = true; 
                Checkbox4.mouseChildren = false;
 
                btnDoljnost.useHandCursor = true; 
                btnDoljnost.buttonMode = true; 
                btnDoljnost.mouseChildren = false;
 
                txtUsername.text="";
            txtPassword.text="";
            Combo1.selectedIndex=0;
            txtUsername.setFocus();
        return;
                }
                else
                {
                pSearchSQL="";
 
            if (BtnClear.label=='Поиск')
                {
                if (Checkbox2.selected==false){}else{pSearchSQL=pSearchSQL+" username like '"+txtUsername.text+"%' and "}
                if (Checkbox3.selected==false){}else{pSearchSQL=pSearchSQL+" password like '"+txtPassword.text+"%' and "}
                if (Checkbox4.selected==false){}else{pSearchSQL=pSearchSQL+" doljnost_id = "+Combo1.selectedItem.id+" and "}
                }       
 
                pSearchSQL=pSearchSQL.substr(0,pSearchSQL.length-4);
                //Alert.show(pSearchSQL);       
        query1.addEventListener(Query.QUERY_END,queryUsersEnd);
        query1.execute("Select users.id,users.username,users.password,doljnost.name as doljnost_name from Users,Doljnost where users.doljnost_id=doljnost.id and "+pSearchSQL);
        return;
                }       
                }
//*------------------------------------------------------------------------------------------------
 
//*ChangeRecord--------------------------------------------------------------------------------       
            private function ChangeRecord():void
                {
 
                if (datagrid.selectedIndex==-1)
                {Alert.show("Укажите запись для изменения");
                return;
                }               
 
                if (BtnChange.label=='Изменить')
                {
                txtUsername.text=datagrid.selectedItem.username;
            txtPassword.text=datagrid.selectedItem.password;
            Combo1.text=datagrid.selectedItem.doljnost_name;
            BtnChange.label='Обновить';
            BtnChange.toolTip='Обновить';
            BtnDelete.toolTip='Отменить';
            BtnDelete.label='Отменить';
        return;
                }
                else
                {
 
        query1.addEventListener(Query.QUERY_END,queryUsersEnd);
                query1.execute("Update users set username='"+txtUsername.text+"',password='"+txtPassword.text+"',doljnost_id='"+Combo1.selectedItem.id+"' where id="+datagrid.selectedItem.id);
                LoadDatagrid();
                ClearAll();
                BtnDelete.label='Удалить';
        BtnChange.label='Изменить';
        BtnDelete.toolTip='Удалить';
        BtnChange.toolTip='Изменить';
        return;
                }
                }       
//*------------------------------------------------------------------------------------------------

продолжение файла ниже))) не пускает говорит много)

lighto 23.09.2009 14:38

продолжение
Код AS3:

//*------------------------------------------------------------------------------------------------
 
//*DelRecord--------------------------------------------------------------------------------                   
                private function DelRecord():void
                {
                if (BtnDelete.label=='Отменить')
                {
        BtnDelete.label='Удалить';
        BtnChange.label='Изменить';
        BtnDelete.toolTip='Удалить';
        BtnChange.toolTip='Изменить';
        txtUsername.text="";
            txtPassword.text="";
            Combo1.selectedIndex=0;
        return;
                }
                else
                {
            pId=datagrid.selectedItem.id;
                Alert.show("Удалить запись","Удаление записи",(Alert.YES|Alert.NO), this,findDeleteResponse);
                }       
                }       
//*------------------------------------------------------------------------------------------------
 
//*findDeleteResponse--------------------------------------------------------------------------------       
                private function findDeleteResponse(e:CloseEvent):void{
                if (e.detail == Alert.YES) {
                query1.execute("Delete from Users where id="+pId);
                LoadDatagrid();
                }
                else
                {
                }
                }
//*------------------------------------------------------------------------------------------------
 
//*InsertRecord--------------------------------------------------------------------------------
            private function InsertRecord():void
            {
 
        if (txtUsername.text == "")
                {
                Alert.show("Укажите имя пользователя");
                txtUsername.setFocus();
                return;
                }
 
        if (txtPassword.text == "")
                {
                Alert.show("Укажите пароль");
                txtPassword.setFocus();
                return;
                }
 
        if (Combo1.text=="Выбор должности")
                {Alert.show("Выберите должность из списка");
                Combo1.setFocus();
                return;
                }         
 
        query1.addEventListener(Query.QUERY_END,queryUsersEnd);
        query1.execute("Insert into Users (username,password,doljnost_id) values ('"+txtUsername.text+"','"+txtPassword.text+"',"+Combo1.selectedItem.id+")")
        LoadDatagrid();
        txtUsername.text="";
        txtPassword.text="";
        Combo1.selectedIndex=0;
        LabelCount.text='Всего записей : '+ users.length.toString();
            }
//*------------------------------------------------------------------------------------------------
 
//*DeleteRecord--------------------------------------------------------------------------------
            private function DeleteRecord():void
            {
 
            if (datagrid.selectedIndex==-1)
                {Alert.show("Укажите запись для удаления");
                return;
                }       
 
        DelRecord();
        LoadDatagrid();
            }
//*------------------------------------------------------------------------------------------------
 
//*!!!!!!!!!--------------------------------------------------------------------------------------
            private function TestIt():void
            {
        query1.addEventListener(Query.QUERY_END,queryUsersEnd);
        query1.execute("Select users.id,users.username,users.password,doljnost.name as doljnost_name from Users,Doljnost where users.doljnost_id=doljnost.id and users.username like 'Иванов%'");
            }
//*------------------------------------------------------------------------------------------------
 
 
        ]]>
    </mx:Script>
    <mx:Spacer height = "100%"/>
    <mx:DataGrid id="datagrid" dataProvider="{users}selectable="true" width="505" height="157" x="10" y="128">
            <mx:columns>
                    <mx:DataGridColumn headerText="ID" width="30"  dataField="id"/>
                    <mx:DataGridColumn headerText="ФИО" width="200" dataField="username"/>
                    <mx:DataGridColumn headerText="Пароль" width="80" dataField="password"/>
                    <mx:DataGridColumn headerText="Должность" width="100" dataField="doljnost_name"/>
            </mx:columns>
    </mx:DataGrid>

мне нужно Combo1 из 2 файла присвоить позицию(значение) datagrid.selectedItem.id из 1 файла??? вроде бы сделал но что не пашет мож подскажите иль хотя бы мысли выскажите почему не работает

Alex_41 23.09.2009 15:18

а поменьше кода нет? :)

lighto 23.09.2009 15:48

нету((((

wvxvw 23.09.2009 18:06

Я сдался...
Смотрите, я думаю, что более-менее понял, о чем речь... но ваш код очень тяжело переваривать...
Вы когда пользуетесь билдером, поищите, там в настройках где-то должен быть PMD плагин или что-то такое... он правит ошибки стиля и т.п.
Просто мало того, что кода много, он еще и в диком виде подан...
Ну, как для примера, как обратится к свойствам одного класса из другого класса, и при этом ислоьзуя фреймворк / MXML - вот:
http://www.actionscript.org/forums/s...52&postcount=6

lighto 24.09.2009 10:29

А вот так можно?
Код AS3:

[Bindable]public var sel:НАЗВАНИЕ ФАЙЛА;

А затем
Код AS3:

<mx:Button x="456" y="291" label="Button" click="Combo1.selectedIndex=sel.a;"/>

приложение FlexBuilder от Адоба говорит что можно но при запуске не получается переменная а из другого файла и в ней значение которое мне нужно помогите пожалуйста

wvxvw 24.09.2009 12:59

ОК, во-первых, не название файла, а класс. Название MXML файла - это и есть его класс. Соответственно, все, что можно сделать с классом в AS3, можно сделать и с ним.
Во-вторых, ну в примере же это все просто показано...


Часовой пояс GMT +4, время: 15:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.