Util din Utilitar – ClipGrab
ClipGrab este un utilitar gratuit care stie sa downlodeze foarte usor filmulete de pe site-urile suportate.E foarte atent la ce link-uri copiezi in clipboard si te atentioneaza daca vrei sa le descarci pe calculatorul tau.

Link Detector
Le poti descarca si manual prin interfata utilitarului care e foarte usor de folosit si ai avantajul ca poti selecta formatul in care vrei sa descarci filmele si calitatea care poate fi chiar si HD pentru cele suportate.

ClipGrap
Site-uri Suportate:
Format-uri Suportate:
- MPEG4
- WMV
- OGG Theora
- MP3 (audio only)
- OGG Vorbis (audio only)
ClipGrab ruleaza cu succes pe Windows, Linux, Mac OS X si iti pune la dispozitie si codul sursa
Util din Utilitar – Listary
In windows daca tastezi numele unui fisier sau al unui director din explorer (teoretic in orice lista) , selectia sare automat pe ceea ce gaseste. Aceasta facilitate are de acum si o interfata grafica care se comporta ca un listbox ce iti pune la dispozitie toate combinatiile ce incep cu ceea ce ai tastat. Ai posibilitatea sa excluzi aplicatii unde nu vrei sa apara, de exemplu desktop-ul sau Y!M, iar in varianta Pro, printre altele, poti folosii si expresii regulate! Dupa parerea mea, aplicatia mai are drum lung pana a fi perfecta, dar este un utilitar bun care poate ajuta in multe cazuri!

Listary in action
ScreenZap
Am placerea sa-ti prezint un mic utilitar ce ar trebui sa-ti faca viata mai usoara. Il cheama ScreenZap si a invatat sa faca capturi ale ecranului prin selectie sau prin selectarea ferestrelor de pe desktop trimitandu-le pe Imageshack sau lasandu-le pe discul local.
Daca le lasi pe discul local(capturile), ai posibilitatea sa setezi prefixul textului ce apare in clipboard asa cum vrei tu! De exemplu daca ai un server http instalat pe local in folderul c:\serverhttp ce ruleaza la adresa http://localhost/ atunci poti salva fisierul in c:\serverhttp si ai putea sa pui prefixul http:\\localhost\ rezultand in clipboard http://localhost/file.png
El, ScreenZap, este inca in dezvoltare in functie si de timpul liber asa ca daca ai idei sau probleme poti sa-mi lasi un comentariu.

Settings TabPage 2
Daca iti place ideea te incurajez sa-l descarci si sa ai grija sa-i setezi cele 2 scurtaturi si calea catre folderul unde vrei sa salvezi capturile! Iti Multumesc, ScreenZap.
ScreenZap.rar (93.2 KiB, 202 hits)
Imagini dinamice si Crystal Reports
Pentru ca se cere si se cauta, am sa-ti prezint o metoda pentru a integra imagini dintr-o cale(path) intr-un raport, la runtime. Metoda este pentru cei care folosesc CR < 11(pentru fericitii utilizatori de >11 exista ole object de tip bitmap cu optiunea Graphic Location).
Bun, sa purcedem!
In prima faza trebuie sa adaugi un DataSet nou in proiectul tau

si sa continui prin a-l edita pentru a adauga o tabela noua in dataset, dupa care adaugi o coloana noua “picture” in tabela:

1

2

3
Acum nu iti mai ramane decat sa setezi tipul coloanei picture in byte[] si ai terminat cu dataset-ul!
![Setam tipul in byte[] Setam tipul in byte[]](http://olteteanu.com/wp-content/uploads/2009/12/5.png)
Setezi tipul

Adaugarea tabelei din dataset in raport
Apesi ok si adaugi campul “picture” in raport. Ar trebui sa arate cam asa:

Raport final
Tot ce mai trebuie sa mai faci acum e sa creezi o metoda care sa citeasca o imagine de pe disc (sau sa o folosesti pe a mea), sa o transforme in byte[] si apoi sa o puna in tabela noastra.
private void PutMyPicture()
{
String picturePath = @"c:\picture.jpg";
byte[] myBytePicture = null;
if (File.Exists(picturePath))
{
//citim imaginea ca un array de bytes
FileStream fs = new FileStream(picturePath, FileMode.Open);
BinaryReader br = new BinaryReader(fs);
int pictureLenght = (int)br.BaseStream.Length;
myBytePicture = new byte[pictureLenght];
myBytePicture = br.ReadBytes(pictureLenght);
br.Close();
fs.Close();
//adaugam un rand nou in tabela noastra
DataSet ds=new DataSet1();
DataRow dr = ds.Tables["DataTable1"].NewRow();
dr["picture"] = myBytePicture;
ds.Tables["DataTable1"].Rows.Add(dr);
//asociem raportului nostru dataset-ul
CrystalReport11.SetDataSource(ds);
}
else
{
MessageBox.Show("O nu, poza nu exista!\nIncearca sa pui o poza cu numele picture.jpg in c"
;
}
}
Am atasat si un demo ca proiect daca cumva te ajuta mai mult:
Imagini Dinamice cu CR (89.9 KiB, 147 hits)
Crystal Reports – Rapoarte multiple
La un moment dat a trebuit sa ma lupt cu o problema aparent usoara la inceput dar care a degenerat pe masura ce incercam solutii si solutii. Scenariul arata cam asa:
- Se da un numar de rapoarte folosite ca Embedded Resource.
- Utilizatorul trebuie sa aibe optiunea de a le printa / vizualiza pe toate.
- Se da o tabela care contine numele raportului(cel din proiect), descrierea lui, si firma de care apartine.
Eu trebuia sa selectez anumite nume de rapoarte din tabela, sa le regasesc in proiectul meu dupa care sa le afisez/printez.
Problema nr1:
Cum regasesc si folosesc raportul meu in viewer in functie de numele lui din tabela?
Dupa multe sapaturi am hotarat ca solutia cea mai buna era sa imi salvez fiecare document pe disc dupa care sa-l incarc in Viewer iar apoi sa-l sterg.
Metoda pentru a-l scrie pe disc:
private void LoadReportToFile(string nameOfTemplateFile, string pathToDest)
{
System.IO.FileInfo fi = new System.IO.FileInfo(pathToDest);
if (fi.Exists) fi.Delete();
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
foreach (string str in asm.GetManifestResourceNames())
{
if (str.ToLower().IndexOf(nameOfTemplateFile.ToLower()) > -1) nameOfTemplateFile = str;
}
System.IO.Stream file = asm.GetManifestResourceStream(nameOfTemplateFile);
System.IO.FileStream outFile = new System.IO.FileStream(pathToDest, System.IO.FileMode.Create);
int bufferLen = 1024;
byte[] buffer = new byte[bufferLen];
int bytesRead;
do
{
bytesRead = file.Read(buffer, 0, bufferLen);
outFile.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
outFile.Close();
outFile.Dispose();
}
Mai departe aveam un combobox care tinea selectul meu din tabela cu numele exact al raportului. Daca aveam un raport cu numele rptRaportFirma.rpt in tabela era trecut ca rptRaportFirma drept urmare m-am folosit de combobox pentru a chema functia LoadReportToFile();
Cu urmatorul cod cand selectam un raport din combobox era incarcat automat in preview.
private void cbReports_SelectedIndexChanged(object sender, EventArgs e)
{
................
String rptPath = "Reports." + cbReports.Text;
String pathToSave = Variabile.ReportTemplatePath;//cale definita global
LoadReportToFile(rptPath, pathToSave);
//aici eliberam memoria de rapoarte incarcate precedent
if (Rpt != null)
{
Rpt.Close();
Rpt.Dispose();
}
Rpt = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
Rpt.Load(pathToSave);
//stergem raportul generat
DeleteReportFile(pathToTemplateFile);
Rpt.SetDataSource(rptdataSet);
rptViewer.ReportSource = Rpt;
}
Problema nr2:
Cand incercam sa automatizez procesul de printare a peste 100-200 de rapoarte am aflat ca Crystal Reports are o anumita limita care se reflecta prin urmatoarea eroare :
“The maximum report processing jobs limit configured by your system administrator has been reached“
Una din solutii a fost sa modific o anumita cheie in registry pentru a scoate aceasta limitare si anume
HKEY_LOCAL_MACHINE\SOFTWARE\CRYSTAL DECISIONS\10.0\REPORT APPLICATION SERVER\SERVER\PrintJobLimit
pentru versiunea 10.0 dar din pacate e inacceptabil sa modific pe fiecare statie registrii asa ca am ales urmatoarea metoda:
.................. String rptPath = "Reports." + lbDepartureDocuments.GetItemValue(id).ToString(); LoadReportToFile(rptPath, Variabile.ReportTemplatePrintPath); ReportDocument Rpt = new ReportDocument(); Rpt.Load(Variabile.ReportTemplatePrintPath); Rpt.SetDataSource(rptdataSet); Rpt.PrintToPrinter(1, false, 0, 0); DeleteReportFile(Variabile.ReportTemplatePrintPath); //Eliberam fortat resursele folosite de raport pentru a nu ajunge la limita impusa de Crystal Reports: Rpt.Close(); Rpt.Dispose(); ..................
Poate aceste lucruri mai ajuta pe cineva la fel de incepator ca mine
Acvariul din Tulcea
Tu ce ai facut Sambata, 14 Noiembrie? Eu pot sa zic ca am facut ceva special. Pe data de 14 Noiembrie am fost pe strada 14 Noiembrie, nr. 5 ! Pura coincidenta, dar acolo este Centrul Muzeal Ecoturistic Delta Dunarii, mai pe scurt, noul(>1 an?) si laudatul Acvariu din Tulcea! Pot spune ca fata de cel din Constanta, care e la fel de cand eram de-o schioapa, nu este mult prea mare(acvariul in sine) sau cu prea multe specii acvatice dar in schimb sunt prezentate exceptional de bine. Una peste alta am ramas impresionat. Am si filmat cate ceva, poate mai doreste cineva sa stie ce pierde!
CnpList
Vreau sa iti prezint un programel care se aseamana putin cu branza mucegaita! Pai cum asa? Pai branza asta ori iti place ori nu-ti place, nu exista cale de mijloc. O detesti sau nu! Asa e si cu CnpList, il ignori sau il folosesti! Mi-a venit ideea sa-l fac atunci cand am fost in fata unui fisier excel cu aproximativ 20.000 randuri printre care si cnp-uri care trebuiau verificate! Cu ce am gasit pe internet nu puteai verifica decat unu cate unu, cam inutil, asa ca a luat nastere CnpList.
Facilitati:
- Cnp-ul poate contine spatii si puncte(.)
- Cnp-urile pot fi delimitate cu virgula(,), punct si virgula(
si slash (/). - Genereaza raport sortat dupa oricare criteriu(din fereastra principala)
- Raportul contine grafice pe validati/nevalidati, orase si sex
Este facut pentru .Net Framework 2.0 si pentru a face uz de raport trebuie instalat si Report Viewer de la Microsoft!
CnpList (105.5 KiB, 127 hits)
