Ozzie PHP op 15/10/2017 01:47:49
[quote="Toms Diner op 12/10/2017 22:29:12"]
En $a is gekozen (ipv $data) omdat het korter is:)
Ik raad je aan om af te stappen van dat soort gedachtes. Als je ooit je eigen codes moet aanpassen, heb je geen flauw idee meer wat je bedoelde. Tip: gebruik normale namen.
Als je die 3 extra letters niet wil typen ... zou ik eens overwegen of programmeren wel bij je past ;-)
[/quote]
Hoewel ik de reactie weinig vind toevoegen, "dwingt" de laatste zin mij toch even tot reageren...
Ik ben bekend met naming conventions en documenteer mijn programma's netjes. Zoals je zou moeten weten, zijn de naming conventions meestal een richtlijn, geen wet.
Mocht jij een wat minder zekere, beginnende programmeur zijn: prima! Gebruik de conventions alsof het een wet is. Als je wat meer ervaring (en misschien ook in teamverband) hebt, zul je zien dat er soms beargumenteerbare redenen zijn om af te wijken van de conventions. De richtlijnen zijn vaak handig en duidelijk, maar soms weegt dit niet op tegen een alternatief.
Dus als je je er zekerder bij voelt: vooral doen. Maar ga niet lopen miepen dat mensen die er anders over denken misschien een ander beroep moeten kiezen. En ik wil dan ook niet één [for ($i=0;...] in jouw programma's tegenkomen!
Overigens is dit het laatste wat ik over de var-namen wil zeggen, want het vervuilt dit topic, en draagt niet bij aan een oplossing.
Rob Doemaarwat op 15/10/2017 01:57:44
Je weet dat je in Excel cellen ook een naam kunt geven?
Als ik het zo lees lijkt me dit echt een typische "Excel applicatie". Een (of meerdere) tabblad(en) met alle invoervelden, en dan een ander tabblad(en) met het rekenwerk (+ evt macro's). Als je PHP alleen maar als veredelde rekenmachine wilt gebruiken zie ik niet zoveel voordelen.
En als je het in Excel doet snapt elke kantoorpipo het. Ook de huis-econoom.
De huidige aanpak zal niet ideaal zijn (en misschien ook nog wel geoptimaliseerd kunnen worden), maar als je dit in PHP met een HTML+javascript+ajax frontend gaat doen, dan snapt niemand anders het (behalve jij - en als ik het zo lees ligt zelfs dat nog niet 100% vast).
Wel goed voor je baangarantie / slecht voor het bedrijf als jij een keer onder lijn 5 komt.
[size=xsmall]Toevoeging op 15/10/2017 09:48:36:[/size]
Andersom: Ben je niet gewoon op zoek naar extract? Kun je al je parameters direct als variabele aanroepen, ipv steeds $a['...'] te moeten schrijven.
Hee, dat wist ik niet... In Excel cellen een naam geven. Daar ga ik zeker even naar kijken, omdat mijn bron-sheet niet geheel foutloos is gebleken.
En ja: dit is imho een typische Excel applicatie. Echter mag deze straks door de branche gebruikt gaan worden via de website van mijn werkgever (tegen betaling), en dus mag de sheet niet in verkeerde handen vallen.
Dus we gaan idd voor Ajax/JS aan de frontend (is al klaar, is zelfs netjes multilinguaal tot de button teksten aan toe). Overigens delen front en back een tabel met alle veldnamen(ja, die stomme array $a), dus één veld toevoegen en de frontend is gelijk bijgewerkt. (7 tabbladen, 36 collapsible divs daarbinnen en zo'n 250 vragen daar weer in...)
En nee: extract was ik niet naar op zoek. Ik vind het fijn als alles in een array zit. Hoewel deze niet multidimensionaal is, is er wel code samen te nemen:
$producten = array ('producta', 'productb', 'productc');
foreach ($producten as $currentproduct){
echo $a[$currentproduct . 'Consumentenprijs');
}
Hoewel dit soort geintjes maar sporadisch te gebruiken zijn, houden ze met name de uitvoer-view compacter.
Thomas van den Heuvel op 15/10/2017 14:49:17
@Toms Diner begrijp ik het goed dat je direct van Excel naar PHP-code wilt? Of heb je deze Excel-sheets al ge-reverse engineered naar een soort van specificatie? Zoniet, is dat wellicht een idee, zodat je daar van uit kunt na gaan denken over een implementatie in PHP. En als dat jou niet direct lukt heb je meteen een soort van documentatie die verwoordt wat er zou moeten gebeuren zodat je niet helemaal vanaf 0 hoeft te beginnen / niet alles opnieuw hoeft uit te leggen.
Als een 1:1 vertaling uit de hand loopt kan een tussenstap misschien wat meer inzicht verschaffen.
Ja! Hij is ge-reverse engineered, en daarna geoptimaliseerd. Wat een k klus trouwens, dit heeft me bijna vier dagen gekost. Het is zeer makkelijk om in excel de berekeningen voorwaarts te volgen, maar terug.. Zoeken op celgebruik in formules: daar hebben we zelf een tool voor geschreven. Die kleurde ook alle broncellen paars, zodat we ontdekten dat de makers sommige koppelingen verkeerd hadden gekopieerd.
(Overigens weet ik als ICT-er niet zo heel veel van kostprijs berekeningen, maar dat is de laatste weken aardig veranderd)
Frank Nietbelangrijk op 15/10/2017 17:29:02
Mja ik herken het wel enigzins. Uit zo een Excel bestand proberen al die formules over te nemen in je applicatie is een hels karwei. En inderdaad moeilijk om daar structuur aan te geven.
Een idee waar je voor jezelf maar moet bedenken of je er iets mee kan.
Héé.. Ik zie hier wel mogelijkheden, vooral omdat ik al een VBA-runner heb voor het exporteren van alle formules.. Die genereert iets wat hier op lijkt:
MarginResults!C3 = GeneralPrices!A6 + SUM(GeneralPrices!D1:GeneralPrices!D6)
Als ik 'em nu nog leer om de SUM's voluit (dus met het noemen van alle cellen) op te slaan, dan ben ik al een heel eind. En dan kan de Excel-sheet als de "bewijslast" dienen: als PHP en Excel continue dezelfde antwoorden geven, dan zijn ze één op één, en dan kan ik alle vragen over de berekeningen doorsturen naar de maker van de sheet.
Helaas heb ik denk ik al een minpuntje: excel is heer en meester in het "door elkaar rekenen". Je hoeft er bij de bouw geen rekening mee te houden dat sommige waarden later pas bekend zullen zijn: excel rekent rond tot alle velden gevuld zijn. In PHP zul je dat eerst moeten detecteren...
En tot slot: een (math) calculation parser: die naam kende ik ook niet. #bookmark#! We gaan morgen de tijd van de baas maar weer eens nutteloos besteden om hier eens een uurtje mee te spelen... Mijn zoektermen leverde telkens niets op, maar dit is in ieder geval al zeer bruikbaar voor het compacter (en leesbaarder!) schrijven van complete formules. Mag ik u bedanken?