criando um crud com formdin v1.3

Upload: leandro-dias-chagas

Post on 10-Feb-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    1/12

    Criando um CRUD com FormDin

    Pgina 1

    O objetivo deste exemplo criar uma aplicao utilizando a framework FormDin, que

    permita fazer a manuteno completa em uma tabela, ou seja, ncluso, !onsulta, "lterao e

    a #xcluso de re$istros, o que c%amamos de !&'D ( !reate )criar*, &etrieve )recuperar*,

    'pdate )atualizar* e Delete )excluir*+

    "consel%o ler o anual de nstalao e fazer a instalao do FormDin antes decomear com este exerc-cio+

    O Projeto

    O projeto consistir. em criar um cadastro de ve-culos e um relat/rio em pdf, com os

    se$uintes campos0

    a1 2laca 3 campo 4exto com .scara1b1 5ome 3 campo 4exto 1c1 arca 3 campo 4exto 1d1 odelo 3 campo 4exto 1e1 "no Fabricao 3 campo nteiro 1f1 !or 3 campo 4exto 1$1 6alor 3 campo 5umrico 1%1 Data "quisio 3 campo Data 1i1 Observao 3 campo emo 1

    O banco de dados utilizado ser. o 789ite :, devido a sua simplicidade e no precisar

    de instalao , e todos podero executar o exemplo sem problemas+

    A Aplicao

    " aplicao ser. c%amada de 7istema de !adastro de 6e-culos ; 7!"6, dever.

    possuir um menu principal com as se$uintes op etapas, e poderei explicar mel%or cada uma delas+

    ?@1 !onfi$urao da "plicao 34"pplication1A

    B@1 !onfi$urao da !onexo com banco de dados 342DO!onnection1A

    :@1 !riao do enu 2rincipal 3 4D%tmlxenu 1A

    C@1 !riao do formul.rio de cadastro de ve-culos 3 4Form 1 e

    >@1 !riao do relat/rio utilizando a classe 42DF que uma extenso da classe fpdf+

    #nto vamos l.+

    1 Passo; !riao da "plicao

    ( crie o arquivo indexp!p"que ser. o nosso controlador respons.vel pela criao da interface

    da aplicao e o tratamento das requisi

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    2/12

    Criando um CRUD com FormDin

    Pgina 2

    (crie no diret/rio sica#$o subdiret/rio %ancoDados$e utilizando qualquer &D'para o ()*ite,

    aqui estou utilizando a (+*ite Admin 3 %ttp0EEsqliteadmin+orbmuBk+deE 1, crie um banco de

    dados c%amado %dCruds,d%e tambm a tabela t%-#eiculoconforme o script abaixo0

    CREATE TABLE [tb_veiculo] ([id] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT[!l"c"] v"#c$"#(%& UNI'UE NOT NULL[o)e] v"#c$"#(*++& NOT NULL[)"#c"] v"#c$"#(,+& NULL[)odelo] v"#c$"#(,+& NULL["o] ite-e# NULL[co#] v"#c$"#(.+& NULL[v"lo#] u)e#ic(*+.& NULL["/ui0ic"o] d"te NULL[ob0e#v"c"o] te1t NULL&

    Dentro do diret/rio sica#$, crie um arquivo c%amado indexp!pcom o se$uinte c/di$o0

    23!$!

    #e/ui#e_oce(4556b"0e6cl"00e067eb8o#)6TA!!lic"tio5cl"005!$!4&9:"!! ; e7 TA!!lic"tio(4

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    3/12

    Criando um CRUD com FormDin

    Pgina 3

    ( adicione o se$uinte c/di$o0

    de8ie(4BANCO44culo044c"d_veiculo4ull48olde#AulO!e5-i84&9:)eu"dd(.+4Rel"tH#io04ullull4!#it*5-i84&9

    :)eu"dd(.*.4=e>culo044#el_veiculo4ull4!#it*5-i84&9

    :)eu"dd(Q+4Ge#"do# ?AO6=O44b"0e6iclude06-e#"do#_vo_d"o5!$!4&9:)eu-et)l(&96SSS Ob0e#v"Fe0S A0 i)"-e0 utili"d"0 o )eu e0tJo o di#etH#io b"0e6i)"-e05 P"#" utili"#S i)"-e0 de out#o di#etH#io co8i-u#e o c")i$o /ue deve# 0e# utili"doS o ide15!$! co) o 0e-uite co)"do :"!!0etMeuIco0P"t$(4c")i$o64&9SS A c#i"FJo do )eu )uito 0i)!le0 0edoS id do ite)S id do !"iS tituloS $itS i)"-e)S etc555S P"#" " c#i"FJo d" $ie#"#/ui" )"u"l)ete eu utiliei o0 id0 co)o 0e 8o00e u)"li0t" u)e#"d" 0e) o0 !oto05S A00i)S ite) * ; *S ite) *5* ; **S ite) . ; .S ite) .5* ; .*S63

    7 Passo / !riao do formul.rio de cadastro de ve-culos+

    ( crie o subdiret/rio modulos$e dentro dele outro subdiret/rio com o nome cad-#eiculo$+ #sta

    a estrutura su$erida para or$anizarmos a aplicao por m/dulos+ !ada m/dulo tem seusubdiret/rio com seus respectivos arquivos p!p" css" jsentre outros+ 4oda vez que o m/dulo

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    4/12

    Criando um CRUD com FormDin

    Pgina 4

    for c%amado, a classe 2Form procurar. pelos arquivos js e css com o mesmo nome do

    m/dulo trocando a extenso para js ecss, se existirem, sero adicionados automaticamente

    p.$ina+ Outros arquivos js e css podem ser adicionados sempre que necess.rios atravs dos

    mtodos0 add8sFile9:xxxjs;< e addCssFile9:xxxcss;

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    5/12

    Criando um CRUD com FormDin

    Pgina 5

    ( retornemos ao c/di$o fonte do arquivo cad-#eiculop!p e altere para que fique com as

    se$uintes lin%as0 3o que est. em ne$rito o que foi adicionado ao c/di$o j. existente 1

    23!$!:8#) ; e7 T@o#)(4C"d"0t#o de =iculo04&9

    // adicionar o campo hidden para a coluna chave da tabela.$frm->addHiddenField('id');

    // adicionando abas ao formulrio$pc $frm->add!a"e#ontrol('pc'); // criar instncia do controlador de p"inas// adicionar a pa"ina %#adastro%$pc->add!a"e('#adastro'&true&true&'aba#adastro'); // a partir daui& tudo ue foradicionado ao form ficar dentro da aba at encontrar o metodo closeroup();

    // adicionar os campos na aba cadastro$frm->add*as+Field('placa'&', da !laca'&true&'aaa-');$frm->add0e1tField('nome'&',ome'&233&true&43);$frm->add0e1tField('marca'&'*arca'&53);$frm->add0e1tField('modelo'&'*odelo'&53&false&null&null&false);$frm->add,umberField('ano'&'6no'&7&false&3);$frm->add0e1tField('cor'&'#or'&83&null&null&null&false);$frm->add,umberField('valor'&'9alor :$'&23&false&8);$frm->addateField('auisicao'&'ata 6uisi

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    6/12

    Criando um CRUD com FormDin

    Pgina 6

    ( devemos fazer o tratamento das aaddButton3 H7alvarH ,limpar, +++1+

    7e estiver utilizando o linux, lembre(se de verificar os direitos de acesso para o apac%e, a

    sempre que criar um diret/rio ou arquivo+

    ( antes de prosse$uirmos com a codificao, criaremos as classes DAO e ?O da tabela

    t%-#eiculos, que sero as respons.veis pelas opera1, e dever. aparecer o item erador DAO$?O, conforme

    a ima$em do menu abaixo0

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    7/12

    Criando um CRUD com FormDin

    Pgina 7

    ( clique na opo erador DAO$?Opara exibir a tela abaixo+

    0

    ( 6amos preenc%L(la assim0

    a1 diret/rio no precisa alterar deixe com0 dao$

    b1 nome da tabela0 t%-#eiculo

    c1 nome da coluna c%ave0 id

    d1 colunas0 id"placa"nome"marca"modelo"ano"cor"#alor"a)uisicao"o%ser#acao

    Os nomes das colunas tambm podem ser informados, um em baixo do outro, utilizando

    o Menter= como delimitador e retirando as vir$ulas+

    ( ap/s preenc%imento dos campos, clique no boto Nerar e a$uarde a mensa$em F+ Fec%e a

    tela e verifique se no subdiret/rio sica#$daoforam criados os arquivos0

    2%-#eiculoDAOclassp!pe 2%-#eiculo?Oclassp!p+

    ( caso ocorra al$um problema, verifique os direitos de acesso para o apac%e nos diret/rios e

    arquivos+ 4ente criar o subdiret/rio sica#$dao manualmente e dar os direitos de escrita e

    leitura para o apac%e+

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    8/12

    Criando um CRUD com FormDin

    Pgina 8

    ( a$ora prosse$uiremos com a codificao das a")o0 /ue utili"#o0 )todo0 0et0 do obeto vo !"#" c"d" c")!o5 E1e)!lo:vo0etId(:8#)-et(4id4&&9:vo0etPl"c"(:8#)-et(4!l"c"4&&9:vo0etNo)e(:8#)-et(4o)e4&&9555

    S6:8#)0et=o(:vo&9

    66 G#"v"do o d"do o b"co de d"do0i8( tb_veiculo?AOi0e#t(:vo& &

    :8#)0etMe00"-e(4=e>culo 0"lvo co)

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    9/12

    Criando um CRUD com FormDin

    Pgina 9

    ( pr/ximo passo ser. fazer a lista$em dos ve-culos na aba 9ista$em, com as a

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    10/12

    Criando um CRUD com FormDin

    Pgina10

    ( crie o arquivo modulos$cad-#eiculo$action$d-alterarp!p e adicione o se$uinte c/di$o0

    23!$!66 #ecu!e#"# o ve>culo !elo id 0elecio"do o -#ide:d"do0 ; Tb_veiculo?AO0elect(:8#)-et(4id4&&9

    66 "tu"li"# o0 c")!o0 do 8o#) co) o0 d"do0 do ve>culo:8#)u!d"te(:d"do0&9

    6S Obe0e#v"FJoco)o o0 o)e0 do0 c")!o0 d" t"bel" 0Jo o0 )e0)o0 do 8o#)ul#io

    !ode)o0 utili"# o )todo :8#)u!d"te(:d"do0&9 c"0o cot##iote#>")o0 /ue 8"e# c")!o " c")!o5 E1e)!lo:8#)0et(4id4:d"do0[4I?4][+]&9:8#)0et(4!l"c"4:d"do0[4PLACA4][+]&9:8#)0et(4o)e4:d"do0[4NOME4][+]&9555S6

    66 de8ii# " "b" iici"l !"#" " "b" C"d"0t#o

    :8#)-et@ield(4!c4&0etActiveP"-e(4"b"C"d"0t#o4t#ue&93

    ( crie o arquivo modulos$cad-#eiculo$action$d-ecluirp!pe adicione o se$uinte c/di$o0

    23!$!Tb_veiculo?AOdelete(:8#)-et(4id4&&93

    H Passo( !riao do relat/rio utilizando a classe 42DF

    4erminamos aqui o nosso CRUD"podemos a$ora fazer a nosso relat/rio em PDF com

    a lista$em dos ve-culos+

    ( dentro do diret/rio modulos$ crie o subdiret/rio rel-#eiculo$ e dentro dele o arquivo

    rel-#eiculop!pcom o se$uinte c/di$o0

    23!$!:8#) ; e7 T@o#)(4Rel"tH#io de =e>culo04.++&9

    66 "dicio"# u) -#u!o co) +!1 " !#i)ei#" colu" vi#tu"l !"#" o0 i!ut0 8ic"#e))"i0 !#H1i)o0 do0 #Htulo0:8#)"ddG#ou!@ield(4-!@ilt#o44CodiFJo4&0etColu)0(+&9

    :8#)"ddTe1t@ield(4)"#c"44M"#c"4,+&9:8#)"ddNu)be#@ield(4"o44Ao4Xull+&9

    :8#)clo0eG#ou!(&9

    :8#)"ddButto(4=i0u"li"#4ull4bt=i0u"li"#44-e#"#Pd8(&44Co8i#)" " C#i"FJodo Rel"tH#io 34&9

    66 !#oce00"# " "c"o c#i"#_!d8:8#)!#oce00Actio(&9

    66 e1ibi# o 8o#)ul#io:8#)0$o7(&9320c#i!t8uctio -e#"#Pd8(&

    66 "b#i# "el" )od"l !"#" e1ibi# o !d8 det#o de u) i8#")e87

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    11/12

    Criando um CRUD com FormDin

    Pgina11

    ( em se$uida crie o subdiret/rio action$ dentro do subdiret/rio modulos$rel-#eiculo$e dentro

    dele o arquivo criar-pd0p!p, esta ser. nossa ao para $erar o pdf+ "dicione o c/di$o

    abaixo0

    23!$!66 vou 8"e# u) e1e)!lo de co)o e1ecut"# u)" co)"do 0/l di#et")ete " c")"d" devi0Jo66 0e) !"00"# !el" c")"d" )odel5 NJo 8"F") i00o 0o)ete !"#" e1e)!li8ic"#566 O co##eto 0e# c#i"# o )todo #el"to#io(& !o# e1e)!lo o66 "#/uivo d"o6Tb_veiculo?AO5cl"005!$! /ue #eto#" o "##"W de d"do0

    :0/l ; 0elect S 8#o) tb_veiculo 7$e#e id + 9:!"#")et#o0;"##"W(&9i8( :_RE'UEculo0 =*5+4+*4C4&9:!d80et@ot(444B4*.&9:!d8cell(+4Li0t"-e) do0 =e>culo04+*4C4&9:!d8l(*&9:!d80et@ot(4444*+&9:c#ite#io ; 449i8( :_RE'UE

  • 7/22/2019 Criando Um CRUD Com FormDin V1.3

    12/12

    Criando um CRUD com FormDin

    Pgina12

    V

    66 "dicio"# o "##"W de d"do0 "o obeto !d8:!d80et?"t"(:d"do0&9

    66 c#i"FJo do co#!o do #eltH#io /ue e0te c"0o 0e# u)" li0t"-e) 0i)!le0 ti!ot"bel" ( -#ide &

    66 "dicio"# "0 colu"0 /ue i#e)o0 li0t"# d" t"bel"5:!d8"ddColu)(4Pl"c"4 *4C4 4PLACA4

    47$ite4ull%4bl"cD4 4ti)e04&9:!d8"ddColu)(4No)e4 +4L4 4NOME4

    47$ite44B4%4bl"cD4 4"#i"l4&9:!d8"ddColu)(4M"#c"4 .+4L4 4MARCA4

    47$ite4ull%4bl"cD4 4"#i"l4&9:!d8"ddColu)(4Modelo4 .+4L4 4MO?ELO4 47$ite4ull%4bl"cD4 4"#i"l4&9:!d8"ddColu)(4Ao4 *+4C4 4ANO4

    47$ite4ull%4blue4 4"#i"l4&9:!d8"ddColu)(4="lo#4 .+4R4 4=ALOR4

    47$ite4ull%4bl"cD4 4"#i"l4&9:!d8"ddColu)(4A/ui0iFJo4 .+4C4 4A'UI